Merge "Collapse sucessive calls to restoreToCount() in display lists." into honeycomb
This commit is contained in:
@@ -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);
|
||||
}
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user