Loading core/java/android/view/View.java +0 −4 Original line number Diff line number Diff line Loading @@ -9992,8 +9992,6 @@ public class View implements Drawable.Callback2, KeyEvent.Callback, Accessibilit // The dirty rect should always be null for a display list canvas.onPreDraw(null); final int restoreCount = canvas.save(); computeScroll(); canvas.translate(-mScrollX, -mScrollY); mPrivateFlags |= DRAWN | DRAWING_CACHE_VALID; Loading @@ -10005,8 +10003,6 @@ public class View implements Drawable.Callback2, KeyEvent.Callback, Accessibilit } else { draw(canvas); } canvas.restoreToCount(restoreCount); } finally { canvas.onPostDraw(); Loading libs/hwui/DisplayListRenderer.cpp +10 −2 Original line number Diff line number Diff line Loading @@ -194,6 +194,7 @@ void DisplayList::initFromDisplayListRenderer(const DisplayListRenderer& recorde void DisplayList::init() { mSize = 0; mIsRenderable = true; } size_t DisplayList::getSize() { Loading Loading @@ -892,7 +893,7 @@ bool DisplayList::replay(OpenGLRenderer& renderer, Rect& dirty, uint32_t level) // Base structure /////////////////////////////////////////////////////////////////////////////// DisplayListRenderer::DisplayListRenderer(): mWriter(MIN_WRITER_SIZE) { DisplayListRenderer::DisplayListRenderer(): mWriter(MIN_WRITER_SIZE), mHasDrawOps(false) { } DisplayListRenderer::~DisplayListRenderer() { Loading Loading @@ -926,6 +927,8 @@ void DisplayListRenderer::reset() { mPathMap.clear(); mMatrices.clear(); mHasDrawOps = false; } /////////////////////////////////////////////////////////////////////////////// Loading @@ -938,6 +941,7 @@ DisplayList* DisplayListRenderer::getDisplayList(DisplayList* displayList) { } else { displayList->initFromDisplayListRenderer(*this, true); } displayList->setRenderable(mHasDrawOps); return displayList; } Loading Loading @@ -982,7 +986,11 @@ int DisplayListRenderer::save(int flags) { } void DisplayListRenderer::restore() { if (mRestoreSaveCount < 0) { addOp(DisplayList::Restore); } else { mRestoreSaveCount--; } OpenGLRenderer::restore(); } Loading libs/hwui/DisplayListRenderer.h +14 −0 Original line number Diff line number Diff line Loading @@ -63,6 +63,7 @@ public: // IMPORTANT: Update the intialization of OP_NAMES in the .cpp file // when modifying this file enum Op { // Non-drawing operations Save = 0, Restore, RestoreToCount, Loading @@ -75,6 +76,7 @@ public: SetMatrix, ConcatMatrix, ClipRect, // Drawing operations DrawDisplayList, DrawLayer, DrawBitmap, Loading Loading @@ -113,6 +115,14 @@ public: static void outputLogBuffer(int fd); void setRenderable(bool renderable) { mIsRenderable = renderable; } bool isRenderable() const { return mIsRenderable; } private: void init(); Loading Loading @@ -207,6 +217,8 @@ private: mutable SkFlattenableReadBuffer mReader; size_t mSize; bool mIsRenderable; }; /////////////////////////////////////////////////////////////////////////////// Loading Loading @@ -328,6 +340,7 @@ private: inline void addOp(DisplayList::Op drawOp) { insertRestoreToCount(); mWriter.writeInt(drawOp); mHasDrawOps = mHasDrawOps || drawOp >= DisplayList::DrawDisplayList; } inline void addInt(int value) { Loading Loading @@ -479,6 +492,7 @@ private: SkWriter32 mWriter; int mRestoreSaveCount; bool mHasDrawOps; friend class DisplayList; Loading libs/hwui/OpenGLRenderer.cpp +1 −1 Original line number Diff line number Diff line Loading @@ -1278,7 +1278,7 @@ bool OpenGLRenderer::drawDisplayList(DisplayList* displayList, uint32_t width, u // All the usual checks and setup operations (quickReject, setupDraw, etc.) // will be performed by the display list itself if (displayList) { if (displayList && displayList->isRenderable()) { return displayList->replay(*this, dirty, level); } Loading Loading
core/java/android/view/View.java +0 −4 Original line number Diff line number Diff line Loading @@ -9992,8 +9992,6 @@ public class View implements Drawable.Callback2, KeyEvent.Callback, Accessibilit // The dirty rect should always be null for a display list canvas.onPreDraw(null); final int restoreCount = canvas.save(); computeScroll(); canvas.translate(-mScrollX, -mScrollY); mPrivateFlags |= DRAWN | DRAWING_CACHE_VALID; Loading @@ -10005,8 +10003,6 @@ public class View implements Drawable.Callback2, KeyEvent.Callback, Accessibilit } else { draw(canvas); } canvas.restoreToCount(restoreCount); } finally { canvas.onPostDraw(); Loading
libs/hwui/DisplayListRenderer.cpp +10 −2 Original line number Diff line number Diff line Loading @@ -194,6 +194,7 @@ void DisplayList::initFromDisplayListRenderer(const DisplayListRenderer& recorde void DisplayList::init() { mSize = 0; mIsRenderable = true; } size_t DisplayList::getSize() { Loading Loading @@ -892,7 +893,7 @@ bool DisplayList::replay(OpenGLRenderer& renderer, Rect& dirty, uint32_t level) // Base structure /////////////////////////////////////////////////////////////////////////////// DisplayListRenderer::DisplayListRenderer(): mWriter(MIN_WRITER_SIZE) { DisplayListRenderer::DisplayListRenderer(): mWriter(MIN_WRITER_SIZE), mHasDrawOps(false) { } DisplayListRenderer::~DisplayListRenderer() { Loading Loading @@ -926,6 +927,8 @@ void DisplayListRenderer::reset() { mPathMap.clear(); mMatrices.clear(); mHasDrawOps = false; } /////////////////////////////////////////////////////////////////////////////// Loading @@ -938,6 +941,7 @@ DisplayList* DisplayListRenderer::getDisplayList(DisplayList* displayList) { } else { displayList->initFromDisplayListRenderer(*this, true); } displayList->setRenderable(mHasDrawOps); return displayList; } Loading Loading @@ -982,7 +986,11 @@ int DisplayListRenderer::save(int flags) { } void DisplayListRenderer::restore() { if (mRestoreSaveCount < 0) { addOp(DisplayList::Restore); } else { mRestoreSaveCount--; } OpenGLRenderer::restore(); } Loading
libs/hwui/DisplayListRenderer.h +14 −0 Original line number Diff line number Diff line Loading @@ -63,6 +63,7 @@ public: // IMPORTANT: Update the intialization of OP_NAMES in the .cpp file // when modifying this file enum Op { // Non-drawing operations Save = 0, Restore, RestoreToCount, Loading @@ -75,6 +76,7 @@ public: SetMatrix, ConcatMatrix, ClipRect, // Drawing operations DrawDisplayList, DrawLayer, DrawBitmap, Loading Loading @@ -113,6 +115,14 @@ public: static void outputLogBuffer(int fd); void setRenderable(bool renderable) { mIsRenderable = renderable; } bool isRenderable() const { return mIsRenderable; } private: void init(); Loading Loading @@ -207,6 +217,8 @@ private: mutable SkFlattenableReadBuffer mReader; size_t mSize; bool mIsRenderable; }; /////////////////////////////////////////////////////////////////////////////// Loading Loading @@ -328,6 +340,7 @@ private: inline void addOp(DisplayList::Op drawOp) { insertRestoreToCount(); mWriter.writeInt(drawOp); mHasDrawOps = mHasDrawOps || drawOp >= DisplayList::DrawDisplayList; } inline void addInt(int value) { Loading Loading @@ -479,6 +492,7 @@ private: SkWriter32 mWriter; int mRestoreSaveCount; bool mHasDrawOps; friend class DisplayList; Loading
libs/hwui/OpenGLRenderer.cpp +1 −1 Original line number Diff line number Diff line Loading @@ -1278,7 +1278,7 @@ bool OpenGLRenderer::drawDisplayList(DisplayList* displayList, uint32_t width, u // All the usual checks and setup operations (quickReject, setupDraw, etc.) // will be performed by the display list itself if (displayList) { if (displayList && displayList->isRenderable()) { return displayList->replay(*this, dirty, level); } Loading