[LUT implementation] add Lut HAL new interface changes.
Bug: 329472856
Test: builds
Flag: EXEMPT HAL interface change
Change-Id: I724af90d585c996e09b2b1167285a854d7860999
diff --git a/services/surfaceflinger/DisplayHardware/HWC2.cpp b/services/surfaceflinger/DisplayHardware/HWC2.cpp
index d5f65c6..8e78af4 100644
--- a/services/surfaceflinger/DisplayHardware/HWC2.cpp
+++ b/services/surfaceflinger/DisplayHardware/HWC2.cpp
@@ -41,6 +41,7 @@
using aidl::android::hardware::graphics::composer3::Composition;
using AidlCapability = aidl::android::hardware::graphics::composer3::Capability;
using aidl::android::hardware::graphics::composer3::DisplayCapability;
+using aidl::android::hardware::graphics::composer3::DisplayLuts;
using aidl::android::hardware::graphics::composer3::Lut;
using aidl::android::hardware::graphics::composer3::OverlayProperties;
@@ -608,13 +609,14 @@
return static_cast<Error>(error);
}
-Error Display::getDisplayLuts(std::vector<Lut>* outLuts) {
- std::vector<Lut> tmpLuts;
- const auto error = mComposer.getDisplayLuts(mId, &tmpLuts);
- for (Lut& lut : tmpLuts) {
- if (lut.pfd.get() >= 0) {
- outLuts->push_back(
- {lut.layer, ndk::ScopedFileDescriptor(lut.pfd.release()), lut.lutProperties});
+Error Display::getRequestedLuts(std::vector<DisplayLuts::LayerLut>* outLayerLuts) {
+ std::vector<DisplayLuts::LayerLut> tmpLayerLuts;
+ const auto error = mComposer.getRequestedLuts(mId, &tmpLayerLuts);
+ for (DisplayLuts::LayerLut& layerLut : tmpLayerLuts) {
+ if (layerLut.lut.pfd.get() >= 0) {
+ outLayerLuts->push_back({layerLut.layer,
+ Lut{ndk::ScopedFileDescriptor(layerLut.lut.pfd.release()),
+ layerLut.lut.lutProperties}});
}
}
return static_cast<Error>(error);
@@ -1050,6 +1052,14 @@
return static_cast<Error>(intError);
}
+Error Layer::setLuts(std::vector<Lut>& luts) {
+ if (CC_UNLIKELY(!mDisplay)) {
+ return Error::BAD_DISPLAY;
+ }
+ const auto intError = mComposer.setLayerLuts(mDisplay->getId(), mId, luts);
+ return static_cast<Error>(intError);
+}
+
} // namespace impl
} // namespace HWC2
} // namespace android