Moved brightness from Lights to SF.
Test: manual.
Check that brightness works.
Fixes: 111435292
Change-Id: I3d19bc2fc4088bc9a956a5cf38c3b163fe35256f
diff --git a/graphics/composer/2.3/utils/hal/include/composer-hal/2.3/ComposerClient.h b/graphics/composer/2.3/utils/hal/include/composer-hal/2.3/ComposerClient.h
index a272e72..1b40795 100644
--- a/graphics/composer/2.3/utils/hal/include/composer-hal/2.3/ComposerClient.h
+++ b/graphics/composer/2.3/utils/hal/include/composer-hal/2.3/ComposerClient.h
@@ -172,7 +172,19 @@
return Void();
}
- protected:
+ Return<void> getDisplayBrightnessSupport(
+ Display display, IComposerClient::getDisplayBrightnessSupport_cb hidl_cb) override {
+ bool support = false;
+ Error error = mHal->getDisplayBrightnessSupport(display, &support);
+ hidl_cb(error, support);
+ return Void();
+ }
+
+ Return<Error> setDisplayBrightness(Display display, float brightness) override {
+ return mHal->setDisplayBrightness(display, brightness);
+ }
+
+ protected:
std::unique_ptr<V2_1::hal::ComposerCommandEngine> createCommandEngine() override {
return std::make_unique<ComposerCommandEngine>(
mHal, static_cast<V2_2::hal::ComposerResources*>(mResources.get()));
diff --git a/graphics/composer/2.3/utils/hal/include/composer-hal/2.3/ComposerHal.h b/graphics/composer/2.3/utils/hal/include/composer-hal/2.3/ComposerHal.h
index a0812ad..186b004 100644
--- a/graphics/composer/2.3/utils/hal/include/composer-hal/2.3/ComposerHal.h
+++ b/graphics/composer/2.3/utils/hal/include/composer-hal/2.3/ComposerHal.h
@@ -119,6 +119,8 @@
virtual Error setLayerPerFrameMetadataBlobs(
Display display, Layer layer,
std::vector<IComposerClient::PerFrameMetadataBlob>& blobs) = 0;
+ virtual Error getDisplayBrightnessSupport(Display display, bool* outSupport) = 0;
+ virtual Error setDisplayBrightness(Display display, float brightness) = 0;
};
} // namespace hal
diff --git a/graphics/composer/2.3/utils/passthrough/include/composer-passthrough/2.3/HwcHal.h b/graphics/composer/2.3/utils/passthrough/include/composer-passthrough/2.3/HwcHal.h
index 41e333a..070cf80 100644
--- a/graphics/composer/2.3/utils/passthrough/include/composer-passthrough/2.3/HwcHal.h
+++ b/graphics/composer/2.3/utils/passthrough/include/composer-passthrough/2.3/HwcHal.h
@@ -245,7 +245,29 @@
return static_cast<Error>(err);
}
- protected:
+ Error getDisplayBrightnessSupport(Display display, bool* outSupport) {
+ if (!mDispatch.getDisplayBrightnessSupport) {
+ return Error::UNSUPPORTED;
+ }
+ bool support = false;
+ int32_t error = mDispatch.getDisplayBrightnessSupport(mDevice, display, &support);
+ *outSupport = support;
+ return static_cast<Error>(error);
+ }
+
+ Error setDisplayBrightness(Display display, float brightness) {
+ if (std::isnan(brightness) || brightness > 1.0f ||
+ (brightness < 0.0f && brightness != -1.0f)) {
+ return Error::BAD_PARAMETER;
+ }
+ if (!mDispatch.setDisplayBrightness) {
+ return Error::UNSUPPORTED;
+ }
+ int32_t error = mDispatch.setDisplayBrightness(mDevice, display, brightness);
+ return static_cast<Error>(error);
+ }
+
+ protected:
bool initDispatch() override {
if (!BaseType2_2::initDispatch()) {
return false;
@@ -265,6 +287,10 @@
&mDispatch.getDisplayCapabilities);
this->initOptionalDispatch(HWC2_FUNCTION_SET_LAYER_PER_FRAME_METADATA_BLOBS,
&mDispatch.setLayerPerFrameMetadataBlobs);
+ this->initOptionalDispatch(HWC2_FUNCTION_GET_DISPLAY_BRIGHTNESS_SUPPORT,
+ &mDispatch.getDisplayBrightnessSupport);
+ this->initOptionalDispatch(HWC2_FUNCTION_SET_DISPLAY_BRIGHTNESS,
+ &mDispatch.setDisplayBrightness);
return true;
}
@@ -277,6 +303,8 @@
HWC2_PFN_GET_DISPLAYED_CONTENT_SAMPLE getDisplayedContentSample;
HWC2_PFN_GET_DISPLAY_CAPABILITIES getDisplayCapabilities;
HWC2_PFN_SET_LAYER_PER_FRAME_METADATA_BLOBS setLayerPerFrameMetadataBlobs;
+ HWC2_PFN_GET_DISPLAY_BRIGHTNESS_SUPPORT getDisplayBrightnessSupport;
+ HWC2_PFN_SET_DISPLAY_BRIGHTNESS setDisplayBrightness;
} mDispatch = {};
using BaseType2_2 = V2_2::passthrough::detail::HwcHalImpl<Hal>;
diff --git a/graphics/composer/2.3/utils/vts/ComposerVts.cpp b/graphics/composer/2.3/utils/vts/ComposerVts.cpp
index 0e541ed..4de85d6 100644
--- a/graphics/composer/2.3/utils/vts/ComposerVts.cpp
+++ b/graphics/composer/2.3/utils/vts/ComposerVts.cpp
@@ -186,6 +186,19 @@
return capabilities;
}
+bool ComposerClient::getDisplayBrightnessSupport(Display display) {
+ bool support = false;
+ mClient->getDisplayBrightnessSupport(display, [&](const auto& error, const auto& tmpSupport) {
+ ASSERT_EQ(Error::NONE, error) << "failed to get brightness support";
+ support = tmpSupport;
+ });
+ return support;
+}
+
+Error ComposerClient::setDisplayBrightness(Display display, float brightness) {
+ return mClient->setDisplayBrightness(display, brightness);
+}
+
} // 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 ad4ef0b..a0e764d 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
@@ -52,7 +52,7 @@
std::unique_ptr<ComposerClient> createClient();
- protected:
+ protected:
explicit Composer(const sp<IComposer>& composer);
private:
@@ -99,7 +99,11 @@
std::vector<IComposerClient::PerFrameMetadataKey> getPerFrameMetadataKeys_2_3(Display display);
- private:
+ bool getDisplayBrightnessSupport(Display display);
+
+ Error setDisplayBrightness(Display display, float brightness);
+
+ private:
const sp<IComposerClient> mClient;
};