summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Chris Craik <ccraik@google.com> 2013-03-16 02:09:16 +0000
committer Android (Google) Code Review <android-gerrit@google.com> 2013-03-16 02:09:16 +0000
commitc8a9fdff4b229b129920aecb1d048d1ff36729b4 (patch)
tree464b018bdbf45e353480c2a8c4167992791d81c8
parentbb131f52daf0792c3f1566df992024d5d7640f25 (diff)
parentd0afeac6dfc0856eeb72e6176ad6335e81871d24 (diff)
Merge "Reset draw modifiers after flushing" into jb-mr2-dev
-rw-r--r--libs/hwui/DeferredDisplayList.cpp2
-rw-r--r--libs/hwui/OpenGLRenderer.cpp12
-rw-r--r--libs/hwui/OpenGLRenderer.h1
3 files changed, 10 insertions, 5 deletions
diff --git a/libs/hwui/DeferredDisplayList.cpp b/libs/hwui/DeferredDisplayList.cpp
index 2027fc86ad8a..84555450ecf5 100644
--- a/libs/hwui/DeferredDisplayList.cpp
+++ b/libs/hwui/DeferredDisplayList.cpp
@@ -372,8 +372,8 @@ status_t DeferredDisplayList::flush(OpenGLRenderer& renderer, Rect& dirty) {
renderer.eventMark("Flush");
renderer.restoreToCount(1);
-
status |= replayBatchList(mBatches, renderer, dirty);
+ renderer.resetDrawModifiers();
DEFER_LOGD("--flush complete, returning %x", status);
diff --git a/libs/hwui/OpenGLRenderer.cpp b/libs/hwui/OpenGLRenderer.cpp
index 428980e485f1..e576f76f8660 100644
--- a/libs/hwui/OpenGLRenderer.cpp
+++ b/libs/hwui/OpenGLRenderer.cpp
@@ -112,10 +112,7 @@ static const Blender gBlendsSwap[] = {
OpenGLRenderer::OpenGLRenderer():
mCaches(Caches::getInstance()), mExtensions(Extensions::getInstance()) {
- mDrawModifiers.mShader = NULL;
- mDrawModifiers.mColorFilter = NULL;
- mDrawModifiers.mHasShadow = false;
- mDrawModifiers.mHasDrawFilter = false;
+ resetDrawModifiers();
memcpy(mMeshVertices, gMeshVertices, sizeof(gMeshVertices));
@@ -1204,6 +1201,13 @@ void OpenGLRenderer::clearLayerRegions() {
// State Deferral
///////////////////////////////////////////////////////////////////////////////
+void OpenGLRenderer::resetDrawModifiers() {
+ mDrawModifiers.mShader = NULL;
+ mDrawModifiers.mColorFilter = NULL;
+ mDrawModifiers.mHasShadow = false;
+ mDrawModifiers.mHasDrawFilter = false;
+}
+
bool OpenGLRenderer::storeDisplayState(DeferredDisplayState& state, int stateDeferFlags) {
const Rect& currentClip = *(mSnapshot->clipRect);
const mat4& currentMatrix = *(mSnapshot->transform);
diff --git a/libs/hwui/OpenGLRenderer.h b/libs/hwui/OpenGLRenderer.h
index e6c636c37356..3aa9975520f0 100644
--- a/libs/hwui/OpenGLRenderer.h
+++ b/libs/hwui/OpenGLRenderer.h
@@ -274,6 +274,7 @@ public:
SkPaint* filterPaint(SkPaint* paint, bool alwaysCopy = false);
+ void resetDrawModifiers();
bool storeDisplayState(DeferredDisplayState& state, int stateDeferFlags);
void restoreDisplayState(const DeferredDisplayState& state, int stateDeferFlags);