diff options
author | 2019-10-27 04:44:29 +0000 | |
---|---|---|
committer | 2019-10-27 04:44:29 +0000 | |
commit | 1aed8b369dd977fba69134fc03bf3762c26c560c (patch) | |
tree | 5840f75cb9669f1da1c4aae8ab1cf2dedd016fb8 /libs/gui/BufferQueueProducer.cpp | |
parent | 19c8513c7b7d75ddd78d1b4c6948e4dadc1e50f7 (diff) | |
parent | 0205f87a0121f1e6057055752365a01b390c60ec (diff) |
Merge "Merge Coral/Flame into AOSP master"
Diffstat (limited to 'libs/gui/BufferQueueProducer.cpp')
-rw-r--r-- | libs/gui/BufferQueueProducer.cpp | 9 |
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; |