Adding Dataspace BT2020_SRGB and ColorMode BT2020_SRGB
BT2020_SRGB is BT2020 with SRGB transfer function. Adding to types V1.2
and upgrading methods that utilize Dataspace and ColorMode
Bug: 115335239
Test: ./libsurfaceflinger_unittest --gtest_filter=GetBestColorMode.*
Change-Id: Ic807183ae2bd0212cd8c5d7a24c93db0a1bc28fb
diff --git a/graphics/composer/2.3/utils/vts/ComposerVts.cpp b/graphics/composer/2.3/utils/vts/ComposerVts.cpp
index f1d3a50..656c8c4 100644
--- a/graphics/composer/2.3/utils/vts/ComposerVts.cpp
+++ b/graphics/composer/2.3/utils/vts/ComposerVts.cpp
@@ -45,6 +45,10 @@
return client;
}
+sp<IComposerClient> ComposerClient::getRaw() const {
+ return mClient;
+}
+
bool ComposerClient::getDisplayIdentificationData(Display display, uint8_t* outPort,
std::vector<uint8_t>* outData) {
bool supported = true;
@@ -64,6 +68,46 @@
return supported;
}
+std::vector<ColorMode> ComposerClient::getColorModes_2_3(Display display) {
+ std::vector<ColorMode> modes;
+ mClient->getColorModes_2_3(display, [&](const auto& tmpError, const auto& tmpModes) {
+ ASSERT_EQ(Error::NONE, tmpError) << "failed to get color modes";
+ modes = tmpModes;
+ });
+ return modes;
+}
+
+void ComposerClient::setColorMode_2_3(Display display, ColorMode mode, RenderIntent intent) {
+ Error error = mClient->setColorMode_2_3(display, mode, intent);
+ ASSERT_TRUE(error == Error::NONE || error == Error::UNSUPPORTED) << "failed to set color mode";
+}
+
+std::vector<RenderIntent> ComposerClient::getRenderIntents_2_3(Display display, ColorMode mode) {
+ std::vector<RenderIntent> intents;
+ mClient->getRenderIntents_2_3(display, mode, [&](const auto& tmpError, const auto& tmpIntents) {
+ ASSERT_EQ(Error::NONE, tmpError) << "failed to get render intents";
+ intents = tmpIntents;
+ });
+ return intents;
+}
+
+void ComposerClient::getReadbackBufferAttributes_2_3(Display display, PixelFormat* outPixelFormat,
+ Dataspace* outDataspace) {
+ mClient->getReadbackBufferAttributes_2_3(
+ display,
+ [&](const auto& tmpError, const auto& tmpOutPixelFormat, const auto& tmpOutDataspace) {
+ ASSERT_EQ(Error::NONE, tmpError) << "failed to get readback buffer attributes";
+ *outPixelFormat = tmpOutPixelFormat;
+ *outDataspace = tmpOutDataspace;
+ });
+}
+
+bool ComposerClient::getClientTargetSupport_2_3(Display display, uint32_t width, uint32_t height,
+ PixelFormat format, Dataspace dataspace) {
+ Error error = mClient->getClientTargetSupport_2_3(display, width, height, format, dataspace);
+ return error == Error::NONE;
+}
+
} // namespace vts
} // namespace V2_3
} // namespace composer
diff --git a/graphics/composer/2.3/utils/vts/include/composer-vts/2.3/ComposerVts.h b/graphics/composer/2.3/utils/vts/include/composer-vts/2.3/ComposerVts.h
index 103b85a..ec1a2a1 100644
--- a/graphics/composer/2.3/utils/vts/include/composer-vts/2.3/ComposerVts.h
+++ b/graphics/composer/2.3/utils/vts/include/composer-vts/2.3/ComposerVts.h
@@ -32,6 +32,10 @@
namespace V2_3 {
namespace vts {
+using common::V1_1::PixelFormat;
+using common::V1_1::RenderIntent;
+using common::V1_2::ColorMode;
+using common::V1_2::Dataspace;
using V2_1::Display;
using V2_3::IComposer;
using V2_3::IComposerClient;
@@ -59,9 +63,23 @@
explicit ComposerClient(const sp<IComposerClient>& client)
: V2_2::vts::ComposerClient(client), mClient(client) {}
+ sp<IComposerClient> getRaw() const;
+
bool getDisplayIdentificationData(Display display, uint8_t* outPort,
std::vector<uint8_t>* outData);
+ std::vector<ColorMode> getColorModes_2_3(Display display);
+
+ void setColorMode_2_3(Display display, ColorMode mode, RenderIntent intent);
+
+ std::vector<RenderIntent> getRenderIntents_2_3(Display display, ColorMode mode);
+
+ void getReadbackBufferAttributes_2_3(Display display, PixelFormat* outPixelFormat,
+ Dataspace* outDataspace);
+
+ bool getClientTargetSupport_2_3(Display display, uint32_t width, uint32_t height,
+ PixelFormat format, Dataspace dataspace);
+
private:
const sp<IComposerClient> mClient;
};