diff options
| author | 2021-09-30 23:36:02 +0000 | |
|---|---|---|
| committer | 2021-09-30 23:36:02 +0000 | |
| commit | 1d07b101fb0b4c76ba4eacbb7abe514ccbb824c6 (patch) | |
| tree | c6ea49fa67b44daf0a0331ce5541b00c4e44d75e /libs/gui/BLASTBufferQueue.cpp | |
| parent | 5f6fa3e0ade0a067b226f696d0520f1ece5f177a (diff) | |
| parent | fec689d8c3f00f11b84dfa508436a8786ae2a798 (diff) | |
BlastBufferQueue: Fix scaling when buffer scaling mode changes am: 932f6aee50 am: fec689d8c3
Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/native/+/15952944
Change-Id: I664321549f871fe5d38eec82de13f82f1678b562
Diffstat (limited to 'libs/gui/BLASTBufferQueue.cpp')
| -rw-r--r-- | libs/gui/BLASTBufferQueue.cpp | 8 | 
1 files changed, 3 insertions, 5 deletions
| diff --git a/libs/gui/BLASTBufferQueue.cpp b/libs/gui/BLASTBufferQueue.cpp index 379b090c5b..406272c479 100644 --- a/libs/gui/BLASTBufferQueue.cpp +++ b/libs/gui/BLASTBufferQueue.cpp @@ -456,10 +456,10 @@ void BLASTBufferQueue::processNextBufferLocked(bool useNextTransaction) {      // Ensure BLASTBufferQueue stays alive until we receive the transaction complete callback.      incStrong((void*)transactionCallbackThunk); +    const bool sizeHasChanged = mRequestedSize != mSize; +    mSize = mRequestedSize; +    const bool updateDestinationFrame = sizeHasChanged || !mLastBufferInfo.hasBuffer;      Rect crop = computeCrop(bufferItem); -    const bool updateDestinationFrame = -            bufferItem.mScalingMode == NATIVE_WINDOW_SCALING_MODE_FREEZE || -            !mLastBufferInfo.hasBuffer;      mLastBufferInfo.update(true /* hasBuffer */, bufferItem.mGraphicBuffer->getWidth(),                             bufferItem.mGraphicBuffer->getHeight(), bufferItem.mTransform,                             bufferItem.mScalingMode, crop); @@ -572,7 +572,6 @@ void BLASTBufferQueue::setNextTransaction(SurfaceComposerClient::Transaction* t)  bool BLASTBufferQueue::rejectBuffer(const BufferItem& item) {      if (item.mScalingMode != NATIVE_WINDOW_SCALING_MODE_FREEZE) { -        mSize = mRequestedSize;          // Only reject buffers if scaling mode is freeze.          return false;      } @@ -586,7 +585,6 @@ bool BLASTBufferQueue::rejectBuffer(const BufferItem& item) {      }      ui::Size bufferSize(bufWidth, bufHeight);      if (mRequestedSize != mSize && mRequestedSize == bufferSize) { -        mSize = mRequestedSize;          return false;      } |