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

Commit c8538ade authored by Chris Craik's avatar Chris Craik
Browse files

Don't clear the functor at every draw

instead clear functors at invoke time, and let them detach themselves as needed.

bug:6511995
Change-Id: I9115fcadffb27eb850c1d1773c098d3d2e22788b
parent 0eaeb69d
Loading
Loading
Loading
Loading
+2 −1
Original line number Diff line number Diff line
@@ -170,7 +170,6 @@ void OpenGLRenderer::prepare(bool opaque) {

void OpenGLRenderer::prepareDirty(float left, float top, float right, float bottom, bool opaque) {
    mCaches.clearGarbage();
    mFunctors.clear();

    mSnapshot = new Snapshot(mFirstSnapshot,
            SkCanvas::kMatrix_SaveFlag | SkCanvas::kClip_SaveFlag);
@@ -303,6 +302,8 @@ status_t OpenGLRenderer::invokeFunctors(Rect& dirty) {

status_t OpenGLRenderer::callDrawGLFunction(Functor* functor, Rect& dirty) {
    interrupt();
    detachFunctor(functor);

    if (mDirtyClip) {
        setScissorFromClip();
    }