summaryrefslogtreecommitdiff
path: root/graphics/composer/2.2/utils/command-buffer/include/composer-command-buffer
diff options
context:
space:
mode:
authorPeiyong Lin <lpy@google.com>2018-01-24 20:24:32 -0800
committerChia-I Wu <olv@google.com>2018-01-25 05:58:32 +0000
commitab505aaf90b4188f88a104689c3936e7ed91a2a5 (patch)
treed143e6396bdeb87bff5a094fe8f8d09ff722f08c /graphics/composer/2.2/utils/command-buffer/include/composer-command-buffer
parentc133b9087af83abe1c45621facdade1491c3968a (diff)
[HWC] Add setLayerFloatColor API into HAL.
This patch: 1. Adds setLayerFloatColor API into HAL to enable setting more bits of color on ColorLayer; 2. Adds VTS tests for setLayerFloatColor. BUG: 69970838 Test: adb shell /data/nativetest/VtsHalGraphicsComposerV2_2TargetTest/VtsHalGraphicsComposerV2_2TargetTest Change-Id: I439e35cb2505ee47b8e9a8dd1c19a3f3f2cf9c2f
Diffstat (limited to 'graphics/composer/2.2/utils/command-buffer/include/composer-command-buffer')
-rw-r--r--graphics/composer/2.2/utils/command-buffer/include/composer-command-buffer/2.2/ComposerCommandBuffer.h28
1 files changed, 26 insertions, 2 deletions
diff --git a/graphics/composer/2.2/utils/command-buffer/include/composer-command-buffer/2.2/ComposerCommandBuffer.h b/graphics/composer/2.2/utils/command-buffer/include/composer-command-buffer/2.2/ComposerCommandBuffer.h
index f953b96c74..c803d3ca97 100644
--- a/graphics/composer/2.2/utils/command-buffer/include/composer-command-buffer/2.2/ComposerCommandBuffer.h
+++ b/graphics/composer/2.2/utils/command-buffer/include/composer-command-buffer/2.2/ComposerCommandBuffer.h
@@ -64,8 +64,16 @@ class CommandWriterBase : public V2_1::CommandWriterBase {
public:
CommandWriterBase(uint32_t initialMaxSize) : V2_1::CommandWriterBase(initialMaxSize) {}
+ static constexpr uint16_t kSetLayerFloatColorLength = 4;
+ void setLayerFloatColor(IComposerClient::FloatColor color) {
+ beginCommand_2_2(IComposerClient::Command::SET_LAYER_FLOAT_COLOR,
+ kSetLayerFloatColorLength);
+ writeFloatColor(color);
+ endCommand();
+ }
+
void setPerFrameMetadata(const hidl_vec<IComposerClient::PerFrameMetadata>& metadataVec) {
- beginCommand2_2(IComposerClient::Command::SET_PER_FRAME_METADATA, metadataVec.size() * 2);
+ beginCommand_2_2(IComposerClient::Command::SET_PER_FRAME_METADATA, metadataVec.size() * 2);
for (const auto& metadata : metadataVec) {
writeSigned(static_cast<int32_t>(metadata.key));
writeFloat(metadata.value);
@@ -74,10 +82,17 @@ class CommandWriterBase : public V2_1::CommandWriterBase {
}
protected:
- void beginCommand2_2(IComposerClient::Command command, uint16_t length) {
+ void beginCommand_2_2(IComposerClient::Command command, uint16_t length) {
V2_1::CommandWriterBase::beginCommand(
static_cast<V2_1::IComposerClient::Command>(static_cast<int32_t>(command)), length);
}
+
+ void writeFloatColor(const IComposerClient::FloatColor& color) {
+ writeFloat(color.r);
+ writeFloat(color.g);
+ writeFloat(color.b);
+ writeFloat(color.a);
+ }
};
// This class helps parse a command queue. Note that all sizes/lengths are in
@@ -85,6 +100,15 @@ class CommandWriterBase : public V2_1::CommandWriterBase {
class CommandReaderBase : public V2_1::CommandReaderBase {
public:
CommandReaderBase() : V2_1::CommandReaderBase(){};
+
+ protected:
+ IComposerClient::FloatColor readFloatColor() {
+ float r = readFloat();
+ float g = readFloat();
+ float b = readFloat();
+ float a = readFloat();
+ return IComposerClient::FloatColor{r, g, b, a};
+ }
};
} // namespace V2_2