91 lines
3.4 KiB
Plaintext
91 lines
3.4 KiB
Plaintext
/*
|
|
* Copyright (c) 2021 The Linux Foundation. All rights reserved.
|
|
*
|
|
* Redistribution and use in source and binary forms, with or without
|
|
* modification, are permitted provided that the following conditions are
|
|
* met:
|
|
* * Redistributions of source code must retain the above copyright
|
|
* notice, this list of conditions and the following disclaimer.
|
|
* * Redistributions in binary form must reproduce the above
|
|
* copyright notice, this list of conditions and the following
|
|
* disclaimer in the documentation and/or other materials provided
|
|
* with the distribution.
|
|
* * Neither the name of The Linux Foundation. nor the names of its
|
|
* contributors may be used to endorse or promote products derived
|
|
* from this software without specific prior written permission.
|
|
*
|
|
* THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESS OR IMPLIED
|
|
* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
|
|
* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT
|
|
* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS
|
|
* BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
|
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
|
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
|
|
* BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
|
|
* WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
|
|
* OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN
|
|
* IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
|
*/
|
|
|
|
package vendor.qti.hardware.display.composer@3.1;
|
|
|
|
import @3.0::IQtiComposerClient;
|
|
import android.hardware.graphics.composer@2.1::Display;
|
|
import android.hardware.graphics.composer@2.1::Error;
|
|
interface IQtiComposerClient extends @3.0::IQtiComposerClient {
|
|
|
|
/**
|
|
* Layer flag to set compatible
|
|
*/
|
|
enum LayerFlag : uint32_t {
|
|
DEFAULT = 0,
|
|
COMPATIBLE = 1,
|
|
};
|
|
|
|
/**
|
|
* Set draw method
|
|
*/
|
|
enum DrawMethod : uint32_t {
|
|
DEFAULT = 0,
|
|
UNIFIED_DRAW = 1,
|
|
};
|
|
|
|
enum Command : @3.0::IQtiComposerClient.Command {
|
|
/**
|
|
* SET_LAYER_FLAG has this pseudo prototype
|
|
* setLayerFlag(uint32_t type);
|
|
*
|
|
* param type is the layer type.
|
|
* 0 - DEFAULT
|
|
* 1 - COMPATIBLE
|
|
*/
|
|
|
|
SET_LAYER_FLAG_3_1 = 0x803 << IQtiComposerClient.Command:OPCODE_SHIFT,
|
|
/**
|
|
* SET_CLIENT_TARGET_3_1 has this pseudo prototype
|
|
* setClientTarget_3_1(uint32_t targetSlot,
|
|
* int32_t acquireFenceIndex,
|
|
uint32_t dataspace,
|
|
vec<Rect> damage);
|
|
* @param targetSlot is input slot for FB
|
|
* @param acquireFenceIndex is input fence for FB
|
|
* @param dataspace is current dataspace for FB
|
|
* @param damage is current surface damage region
|
|
*/
|
|
SET_CLIENT_TARGET_3_1 = 0x804 << IQtiComposerClient.Command:OPCODE_SHIFT,
|
|
};
|
|
|
|
/**
|
|
* Set draw method
|
|
* set the draw method if the composer implementation supports specified draw method.
|
|
* @ param DrawMethod is enum
|
|
* @ DEFAULT = 0,
|
|
* @ UNIFIED_DRAW = 1,
|
|
*/
|
|
@callflow(next="*")
|
|
tryDrawMethod(Display display, DrawMethod drawMethod)
|
|
generates (Error error);
|
|
|
|
};
|
|
|