From f3f40fefdd67eab97aefdd62a08ab99eef442039 Mon Sep 17 00:00:00 2001 From: chaviw Date: Tue, 27 Apr 2021 15:54:02 -0500 Subject: Added setBufferCrop Added setBufferCrop to handle setGeometry calls from the public SurfaceControl. This is because setGeometry gets crop in buffer space, but setCrop can only handle layer space crop. Added setBufferCrop to handle this case Test: ASurfaceControlTest Fixes: 186266903 Change-Id: I14fb329d2d6f504ca8fa8e330c8a036cbde56f28 --- libs/gui/LayerState.cpp | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) (limited to 'libs/gui/LayerState.cpp') diff --git a/libs/gui/LayerState.cpp b/libs/gui/LayerState.cpp index 517b49e6b5..267db7686a 100644 --- a/libs/gui/LayerState.cpp +++ b/libs/gui/LayerState.cpp @@ -98,7 +98,6 @@ status_t layer_state_t::write(Parcel& output) const SAFE_PARCEL(output.write, transparentRegion); SAFE_PARCEL(output.writeUint32, transform); SAFE_PARCEL(output.writeBool, transformToDisplayInverse); - SAFE_PARCEL(output.write, crop); SAFE_PARCEL(output.write, orientedDisplaySpaceRect); if (buffer) { @@ -167,6 +166,7 @@ status_t layer_state_t::write(Parcel& output) const } SAFE_PARCEL(output.write, stretchEffect); + SAFE_PARCEL(output.write, bufferCrop); return NO_ERROR; } @@ -209,7 +209,6 @@ status_t layer_state_t::read(const Parcel& input) SAFE_PARCEL(input.read, transparentRegion); SAFE_PARCEL(input.readUint32, &transform); SAFE_PARCEL(input.readBool, &transformToDisplayInverse); - SAFE_PARCEL(input.read, crop); SAFE_PARCEL(input.read, orientedDisplaySpaceRect); bool tmpBool = false; @@ -296,6 +295,7 @@ status_t layer_state_t::read(const Parcel& input) } SAFE_PARCEL(input.read, stretchEffect); + SAFE_PARCEL(input.read, bufferCrop); return NO_ERROR; } @@ -539,6 +539,10 @@ void layer_state_t::merge(const layer_state_t& other) { what |= eStretchChanged; stretchEffect = other.stretchEffect; } + if (other.what & eBufferCropChanged) { + what |= eBufferCropChanged; + bufferCrop = other.bufferCrop; + } if ((other.what & what) != other.what) { ALOGE("Unmerged SurfaceComposer Transaction properties. LayerState::merge needs updating? " "other.what=0x%" PRIu64 " what=0x%" PRIu64, -- cgit v1.2.3-59-g8ed1b