summaryrefslogtreecommitdiffstats
path: root/libs/hwui/OpenGLRenderer.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'libs/hwui/OpenGLRenderer.cpp')
-rw-r--r--libs/hwui/OpenGLRenderer.cpp10
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) {