diff options
author | Chris Craik <ccraik@google.com> | 2013-07-22 16:16:06 -0700 |
---|---|---|
committer | Chris Craik <ccraik@google.com> | 2013-07-22 16:21:55 -0700 |
commit | 9ab2d1847552aa4169b4325aae1b1368d6947a9f (patch) | |
tree | 52955e896e6f021961bbfc9dd52003c918fdbb50 /libs | |
parent | 7bfddb5434736a26fa9b32d7cd1741067169ae74 (diff) | |
download | frameworks_base-9ab2d1847552aa4169b4325aae1b1368d6947a9f.zip frameworks_base-9ab2d1847552aa4169b4325aae1b1368d6947a9f.tar.gz frameworks_base-9ab2d1847552aa4169b4325aae1b1368d6947a9f.tar.bz2 |
Ensure glActiveTexture is cleaned up correctly on functor resume
Change-Id: I103d7d63b17289d599c2c08dcc442cfba9b8e51d
Diffstat (limited to 'libs')
-rw-r--r-- | libs/hwui/Caches.cpp | 4 | ||||
-rw-r--r-- | libs/hwui/Caches.h | 5 | ||||
-rw-r--r-- | libs/hwui/OpenGLRenderer.cpp | 1 |
3 files changed, 10 insertions, 0 deletions
diff --git a/libs/hwui/Caches.cpp b/libs/hwui/Caches.cpp index 6de8c8c..6ac637e 100644 --- a/libs/hwui/Caches.cpp +++ b/libs/hwui/Caches.cpp @@ -495,6 +495,10 @@ void Caches::activeTexture(GLuint textureUnit) { } } +void Caches::resetActiveTexture() { + mTextureUnit = -1; +} + void Caches::bindTexture(GLuint texture) { if (mBoundTextures[mTextureUnit] != texture) { glBindTexture(GL_TEXTURE_2D, texture); diff --git a/libs/hwui/Caches.h b/libs/hwui/Caches.h index b7a97ad..f8b1e17 100644 --- a/libs/hwui/Caches.h +++ b/libs/hwui/Caches.h @@ -226,6 +226,11 @@ public: void activeTexture(GLuint textureUnit); /** + * Invalidate the cached value of the active texture unit. + */ + void resetActiveTexture(); + + /** * Binds the specified texture as a GL_TEXTURE_2D texture. * All texture bindings must be performed with this method or * bindTexture(GLenum, GLuint). diff --git a/libs/hwui/OpenGLRenderer.cpp b/libs/hwui/OpenGLRenderer.cpp index 3e84273..dcf4ecf 100644 --- a/libs/hwui/OpenGLRenderer.cpp +++ b/libs/hwui/OpenGLRenderer.cpp @@ -351,6 +351,7 @@ void OpenGLRenderer::interrupt() { mCaches.currentProgram = NULL; } } + mCaches.resetActiveTexture(); mCaches.unbindMeshBuffer(); mCaches.unbindIndicesBuffer(); mCaches.resetVertexPointers(); |