summaryrefslogtreecommitdiff
path: root/native
diff options
context:
space:
mode:
author John Reck <jreck@google.com> 2023-02-14 19:55:01 +0000
committer Android (Google) Code Review <android-gerrit@google.com> 2023-02-14 19:55:01 +0000
commited3f29135507e954d3cc12e4c16f7a3447677720 (patch)
tree10fbcdd42fc4b9602b628acc765740c4a1940c14 /native
parent57ed8e3f4df6db7e10ecf2230529ae3c5ed5a16d (diff)
parenta40ad03c58141d919e5dfbb2ba65d6ca8e86460d (diff)
Merge "Add extended range brightness APIs"
Diffstat (limited to 'native')
-rw-r--r--native/android/libandroid.map.txt1
-rw-r--r--native/android/surface_control.cpp24
2 files changed, 25 insertions, 0 deletions
diff --git a/native/android/libandroid.map.txt b/native/android/libandroid.map.txt
index f258c27aa070..d74f9b7bb659 100644
--- a/native/android/libandroid.map.txt
+++ b/native/android/libandroid.map.txt
@@ -275,6 +275,7 @@ LIBANDROID {
ASurfaceTransaction_setGeometry; # introduced=29
ASurfaceTransaction_setHdrMetadata_cta861_3; # introduced=29
ASurfaceTransaction_setHdrMetadata_smpte2086; # introduced=29
+ ASurfaceTransaction_setExtendedRangeBrightness; # introduced=UpsideDownCake
ASurfaceTransaction_setOnComplete; # introduced=29
ASurfaceTransaction_setOnCommit; # introduced=31
ASurfaceTransaction_setPosition; # introduced=31
diff --git a/native/android/surface_control.cpp b/native/android/surface_control.cpp
index b7f359602a5d..904fa7484027 100644
--- a/native/android/surface_control.cpp
+++ b/native/android/surface_control.cpp
@@ -621,6 +621,30 @@ void ASurfaceTransaction_setHdrMetadata_cta861_3(ASurfaceTransaction* aSurfaceTr
transaction->setHdrMetadata(surfaceControl, hdrMetadata);
}
+void ASurfaceTransaction_setExtendedRangeBrightness(ASurfaceTransaction* aSurfaceTransaction,
+ ASurfaceControl* aSurfaceControl,
+ float currentBufferRatio, float desiredRatio) {
+ CHECK_NOT_NULL(aSurfaceTransaction);
+ CHECK_NOT_NULL(aSurfaceControl);
+
+ if (!isfinite(currentBufferRatio) || currentBufferRatio < 1.0f) {
+ ALOGE("Ignore setExtendedRangeBrightness, currentBufferRatio %f isn't finite or >= 1.0f",
+ currentBufferRatio);
+ return;
+ }
+
+ if (!isfinite(desiredRatio) || desiredRatio < 1.0f) {
+ ALOGE("Ignore setExtendedRangeBrightness, desiredRatio %f isn't finite or >= 1.0f",
+ desiredRatio);
+ return;
+ }
+
+ sp<SurfaceControl> surfaceControl = ASurfaceControl_to_SurfaceControl(aSurfaceControl);
+ Transaction* transaction = ASurfaceTransaction_to_Transaction(aSurfaceTransaction);
+
+ transaction->setExtendedRangeBrightness(surfaceControl, currentBufferRatio, desiredRatio);
+}
+
void ASurfaceTransaction_setColor(ASurfaceTransaction* aSurfaceTransaction,
ASurfaceControl* aSurfaceControl,
float r, float g, float b, float alpha,