am 0d28bb47: Merge "Fix the texture ID reuse issue in HWUI."

* commit '0d28bb47d771a2ac99cec6e4a071a98d2cd705dd':
  Fix the texture ID reuse issue in HWUI.
This commit is contained in:
Chris Craik
2014-06-16 23:43:21 +00:00
committed by Android Git Automerger
3 changed files with 16 additions and 5 deletions

View File

@@ -554,11 +554,8 @@ void Caches::deleteTexture(GLuint texture) {
// call, any texture operation will be performed on the default
// texture (name=0)
for (int i = 0; i < REQUIRED_TEXTURE_UNITS_COUNT; i++) {
if (mBoundTextures[i] == texture) {
mBoundTextures[i] = 0;
}
}
unbindTexture(texture);
glDeleteTextures(1, &texture);
}
@@ -566,6 +563,14 @@ void Caches::resetBoundTextures() {
memset(mBoundTextures, 0, REQUIRED_TEXTURE_UNITS_COUNT * sizeof(GLuint));
}
void Caches::unbindTexture(GLuint texture) {
for (int i = 0; i < REQUIRED_TEXTURE_UNITS_COUNT; i++) {
if (mBoundTextures[i] == texture) {
mBoundTextures[i] = 0;
}
}
}
///////////////////////////////////////////////////////////////////////////////
// Scissor
///////////////////////////////////////////////////////////////////////////////

View File

@@ -263,6 +263,11 @@ public:
*/
void resetBoundTextures();
/**
* Clear the cache of bound textures.
*/
void unbindTexture(GLuint texture);
/**
* Sets the scissor for the current surface.
*/

View File

@@ -171,6 +171,7 @@ void Layer::deleteTexture() {
}
void Layer::clearTexture() {
caches.unbindTexture(texture.id);
texture.id = 0;
}