summaryrefslogtreecommitdiff
path: root/libs/gui/BufferQueueProducer.cpp
diff options
context:
space:
mode:
author Xin Li <delphij@google.com> 2019-10-25 10:27:59 -0700
committer Xin Li <delphij@google.com> 2019-10-25 10:27:59 -0700
commit0205f87a0121f1e6057055752365a01b390c60ec (patch)
tree772ee24019cd8355996cb68c5130535361af39ac /libs/gui/BufferQueueProducer.cpp
parente8d0bd6337634e9b5a1922ae3e663c15cd255d97 (diff)
parent091d81511b92b0f38eb7068dbff3fa55b4645c63 (diff)
Merge Coral/Flame into AOSP master
Bug: 141248619 Change-Id: I1899c8278a37d181c50fb8d2f288b1bf76546b77 Merged-In: I96a71b7a888dac84188d7e546b0bfb9082711da8
Diffstat (limited to 'libs/gui/BufferQueueProducer.cpp')
-rw-r--r--libs/gui/BufferQueueProducer.cpp9
1 files changed, 9 insertions, 0 deletions
diff --git a/libs/gui/BufferQueueProducer.cpp b/libs/gui/BufferQueueProducer.cpp
index 9c311a314f..92ab41019e 100644
--- a/libs/gui/BufferQueueProducer.cpp
+++ b/libs/gui/BufferQueueProducer.cpp
@@ -936,6 +936,15 @@ status_t BufferQueueProducer::queueBuffer(int slot,
}
}
+ // Make sure to merge the damage rect from the frame we're about
+ // to drop into the new frame's damage rect.
+ if (last.mSurfaceDamage.bounds() == Rect::INVALID_RECT ||
+ item.mSurfaceDamage.bounds() == Rect::INVALID_RECT) {
+ item.mSurfaceDamage = Region::INVALID_REGION;
+ } else {
+ item.mSurfaceDamage |= last.mSurfaceDamage;
+ }
+
// Overwrite the droppable buffer with the incoming one
mCore->mQueue.editItemAt(mCore->mQueue.size() - 1) = item;
frameReplacedListener = mCore->mConsumerListener;