Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit aef9dc8d authored by John Reck's avatar John Reck
Browse files

Fix kSkippedFrame setting

It was only set previously if RenderThread dropped the frame,
but not if the UI thread frame was dropped. Unify the
two paths

Change-Id: If2574edde3cb0949deed4e47f3daaddb890a1b28
parent a0698b61
Loading
Loading
Loading
Loading
+5 −2
Original line number Diff line number Diff line
@@ -185,6 +185,7 @@ void CanvasContext::prepareTree(TreeInfo& info, int64_t* uiFrameInfo) {
    }

    if (CC_UNLIKELY(!mNativeWindow.get())) {
        mCurrentFrameInfo->addFlag(FrameInfoFlags::kSkippedFrame);
        info.out.canDrawThisFrame = false;
        return;
    }
@@ -197,6 +198,10 @@ void CanvasContext::prepareTree(TreeInfo& info, int64_t* uiFrameInfo) {
            NATIVE_WINDOW_CONSUMER_RUNNING_BEHIND, &runningBehind);
    info.out.canDrawThisFrame = !runningBehind;

    if (!info.out.canDrawThisFrame) {
        mCurrentFrameInfo->addFlag(FrameInfoFlags::kSkippedFrame);
    }

    if (info.out.hasAnimations || !info.out.canDrawThisFrame) {
        if (!info.out.requiresUiRedraw) {
            // If animationsNeedsRedraw is set don't bother posting for an RT anim
@@ -298,8 +303,6 @@ void CanvasContext::doFrame() {
    prepareTree(info, frameInfo);
    if (info.out.canDrawThisFrame) {
        draw();
    } else {
        mCurrentFrameInfo->addFlag(FrameInfoFlags::kSkippedFrame);
    }
}