diff options
| author | 2013-03-16 02:09:16 +0000 | |
|---|---|---|
| committer | 2013-03-16 02:09:16 +0000 | |
| commit | c8a9fdff4b229b129920aecb1d048d1ff36729b4 (patch) | |
| tree | 464b018bdbf45e353480c2a8c4167992791d81c8 | |
| parent | bb131f52daf0792c3f1566df992024d5d7640f25 (diff) | |
| parent | d0afeac6dfc0856eeb72e6176ad6335e81871d24 (diff) | |
Merge "Reset draw modifiers after flushing" into jb-mr2-dev
| -rw-r--r-- | libs/hwui/DeferredDisplayList.cpp | 2 | ||||
| -rw-r--r-- | libs/hwui/OpenGLRenderer.cpp | 12 | ||||
| -rw-r--r-- | libs/hwui/OpenGLRenderer.h | 1 |
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); |