Fix flicker from multiwindow resize
Move content bounds into DrawFrameTask. This ensures that changes in bounds are synchronized with changes in rendering commands, avoiding potential underdraw. Bug: 64200212 Test: Repro steps in bug. Drag up/down on resize handle, verify no flicker. Change-Id: I3109acf262e23c2a7d8904f1dcbfc8273aaed65b
This commit is contained in:
@@ -32,6 +32,7 @@ namespace renderthread {
|
||||
DrawFrameTask::DrawFrameTask()
|
||||
: mRenderThread(nullptr)
|
||||
, mContext(nullptr)
|
||||
, mContentDrawBounds(0, 0, 0, 0)
|
||||
, mSyncResult(SyncResult::OK) {
|
||||
}
|
||||
|
||||
@@ -123,6 +124,7 @@ bool DrawFrameTask::syncFrameState(TreeInfo& info) {
|
||||
mLayers[i]->apply();
|
||||
}
|
||||
mLayers.clear();
|
||||
mContext->setContentDrawBounds(mContentDrawBounds);
|
||||
mContext->prepareTree(info, mFrameInfo, mSyncQueued, mTargetNode);
|
||||
|
||||
// This is after the prepareTree so that any pending operations
|
||||
|
||||
Reference in New Issue
Block a user