diff options
| author | 2013-03-15 18:43:11 -0700 | |
|---|---|---|
| committer | 2013-03-15 18:48:41 -0700 | |
| commit | d0afeac6dfc0856eeb72e6176ad6335e81871d24 (patch) | |
| tree | b850971ba9f3e12093fa550284b56f49e91df6ad /libs/hwui/OpenGLRenderer.cpp | |
| parent | 2e6ce4f737dcdeb748f467836dd12490c0cdfd22 (diff) | |
Reset draw modifiers after flushing
bug:8401910
This avoids leaving the renderer in a state with stale pointers (to,
e.g., shaders or color filters)
Change-Id: Idf8b63657041352e70e34e91ea416fe4385d4bc2
Diffstat (limited to 'libs/hwui/OpenGLRenderer.cpp')
| -rw-r--r-- | libs/hwui/OpenGLRenderer.cpp | 12 |
1 files changed, 8 insertions, 4 deletions
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); |