diff options
author | 2024-09-13 15:03:02 +0000 | |
---|---|---|
committer | 2024-09-13 15:03:02 +0000 | |
commit | de3019c89c0cd6d24f9f2037ad60fa57a2a9345e (patch) | |
tree | bb998b17ed1927d2a44a3559e39ed3ff2e7ab7e5 /libs/gui/ScreenCaptureResults.cpp | |
parent | 25f78d0ea920370a94689247bef1641d85bf9d48 (diff) | |
parent | 1b1853f92528a2214f0337decf4685250334a43c (diff) |
Merge "Support capturing a gainmapped screenshot" into main
Diffstat (limited to 'libs/gui/ScreenCaptureResults.cpp')
-rw-r--r-- | libs/gui/ScreenCaptureResults.cpp | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/libs/gui/ScreenCaptureResults.cpp b/libs/gui/ScreenCaptureResults.cpp index 601a5f9b33..2de023e5b2 100644 --- a/libs/gui/ScreenCaptureResults.cpp +++ b/libs/gui/ScreenCaptureResults.cpp @@ -40,6 +40,13 @@ status_t ScreenCaptureResults::writeToParcel(android::Parcel* parcel) const { SAFE_PARCEL(parcel->writeBool, capturedSecureLayers); SAFE_PARCEL(parcel->writeBool, capturedHdrLayers); SAFE_PARCEL(parcel->writeUint32, static_cast<uint32_t>(capturedDataspace)); + if (optionalGainMap != nullptr) { + SAFE_PARCEL(parcel->writeBool, true); + SAFE_PARCEL(parcel->write, *optionalGainMap); + } else { + SAFE_PARCEL(parcel->writeBool, false); + } + SAFE_PARCEL(parcel->writeFloat, hdrSdrRatio); return NO_ERROR; } @@ -68,6 +75,14 @@ status_t ScreenCaptureResults::readFromParcel(const android::Parcel* parcel) { uint32_t dataspace = 0; SAFE_PARCEL(parcel->readUint32, &dataspace); capturedDataspace = static_cast<ui::Dataspace>(dataspace); + + bool hasGainmap; + SAFE_PARCEL(parcel->readBool, &hasGainmap); + if (hasGainmap) { + optionalGainMap = new GraphicBuffer(); + SAFE_PARCEL(parcel->read, *optionalGainMap); + } + SAFE_PARCEL(parcel->readFloat, &hdrSdrRatio); return NO_ERROR; } |