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

Commit 60559631 authored by Romain Guy's avatar Romain Guy Committed by Android (Google) Code Review
Browse files

Merge "Collapse sucessive calls to restoreToCount() in display lists." into honeycomb

parents b35672e4 27454a42
Loading
Loading
Loading
Loading
+7 −2
Original line number Diff line number Diff line
@@ -473,6 +473,12 @@ void DisplayListRenderer::prepare(bool opaque) {
            SkCanvas::kMatrix_SaveFlag | SkCanvas::kClip_SaveFlag);
    mSaveCount = 1;
    mSnapshot->setClip(0.0f, 0.0f, mWidth, mHeight);
    mRestoreSaveCount = -1;
}

void DisplayListRenderer::finish() {
    insertRestoreToCount();
    OpenGLRenderer::finish();
}

void DisplayListRenderer::acquireContext() {
@@ -497,8 +503,7 @@ void DisplayListRenderer::restore() {
}

void DisplayListRenderer::restoreToCount(int saveCount) {
    addOp(DisplayList::RestoreToCount);
    addInt(saveCount);
    mRestoreSaveCount = saveCount;
    OpenGLRenderer::restoreToCount(saveCount);
}

+12 −0
Original line number Diff line number Diff line
@@ -238,6 +238,7 @@ public:

    void setViewport(int width, int height);
    void prepare(bool opaque);
    void finish();

    void acquireContext();
    void releaseContext();
@@ -318,7 +319,16 @@ public:
    }

private:
    void insertRestoreToCount() {
        if (mRestoreSaveCount >= 0) {
            mWriter.writeInt(DisplayList::RestoreToCount);
            addInt(mRestoreSaveCount);
            mRestoreSaveCount = -1;
        }
    }

    inline void addOp(DisplayList::Op drawOp) {
        insertRestoreToCount();
        mWriter.writeInt(drawOp);
    }

@@ -461,6 +471,8 @@ private:

    DisplayList *mDisplayList;

    int mRestoreSaveCount;

    friend class DisplayList;

}; // class DisplayListRenderer