Fix some edge cases
Bug: 27709981 This desperately needs a refactor, but to keep the current (really needed & nice) behavior of dispatching after sync finishes would be difficult to handle cleanly without lots of ripping so... #yolo Change-Id: I831a06c6ae7412a062720d68ecbe3085190f0258
This commit is contained in:
@@ -65,11 +65,12 @@ void DrawFrameTask::removeLayerUpdate(DeferredLayerUpdater* layer) {
|
||||
}
|
||||
}
|
||||
|
||||
int DrawFrameTask::drawFrame() {
|
||||
int DrawFrameTask::drawFrame(TreeObserver* observer) {
|
||||
LOG_ALWAYS_FATAL_IF(!mContext, "Cannot drawFrame with no CanvasContext!");
|
||||
|
||||
mSyncResult = kSync_OK;
|
||||
mSyncQueued = systemTime(CLOCK_MONOTONIC);
|
||||
mObserver = observer;
|
||||
postAndWait();
|
||||
|
||||
return mSyncResult;
|
||||
@@ -88,6 +89,7 @@ void DrawFrameTask::run() {
|
||||
bool canDrawThisFrame;
|
||||
{
|
||||
TreeInfo info(TreeInfo::MODE_FULL, *mContext);
|
||||
info.observer = mObserver;
|
||||
canUnblockUiThread = syncFrameState(info);
|
||||
canDrawThisFrame = info.out.canDrawThisFrame;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user