diff options
Diffstat (limited to 'libs/hwui/OpenGLRenderer.cpp')
| -rw-r--r-- | libs/hwui/OpenGLRenderer.cpp | 10 |
1 files changed, 9 insertions, 1 deletions
diff --git a/libs/hwui/OpenGLRenderer.cpp b/libs/hwui/OpenGLRenderer.cpp index 19a5973..ad72584 100644 --- a/libs/hwui/OpenGLRenderer.cpp +++ b/libs/hwui/OpenGLRenderer.cpp @@ -135,6 +135,8 @@ void OpenGLRenderer::setViewport(int width, int height) { } void OpenGLRenderer::prepare(bool opaque) { + mCaches.clearGarbage(); + mSnapshot = new Snapshot(mFirstSnapshot, SkCanvas::kMatrix_SaveFlag | SkCanvas::kClip_SaveFlag); mSaveCount = 1; @@ -163,6 +165,10 @@ void OpenGLRenderer::finish() { #endif #if DEBUG_MEMORY_USAGE mCaches.dumpMemoryUsage(); +#else + if (mCaches.getDebugLevel() & kDebugMemory) { + mCaches.dumpMemoryUsage(); + } #endif } @@ -1459,7 +1465,9 @@ void OpenGLRenderer::setupColorRect(float left, float top, float right, float bo dirtyLayer(left, top, right, bottom); } } - mCaches.currentProgram->setColor(r, g, b, a); + if (!mShader || (mShader && setColor)) { + mCaches.currentProgram->setColor(r, g, b, a); + } // Setup attributes and uniforms required by the shaders if (mShader) { |
