diff options
author | 2023-02-14 19:55:01 +0000 | |
---|---|---|
committer | 2023-02-14 19:55:01 +0000 | |
commit | ed3f29135507e954d3cc12e4c16f7a3447677720 (patch) | |
tree | 10fbcdd42fc4b9602b628acc765740c4a1940c14 /native | |
parent | 57ed8e3f4df6db7e10ecf2230529ae3c5ed5a16d (diff) | |
parent | a40ad03c58141d919e5dfbb2ba65d6ca8e86460d (diff) |
Merge "Add extended range brightness APIs"
Diffstat (limited to 'native')
-rw-r--r-- | native/android/libandroid.map.txt | 1 | ||||
-rw-r--r-- | native/android/surface_control.cpp | 24 |
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, |