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:
@@ -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
|
||||
///////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
@@ -263,6 +263,11 @@ public:
|
||||
*/
|
||||
void resetBoundTextures();
|
||||
|
||||
/**
|
||||
* Clear the cache of bound textures.
|
||||
*/
|
||||
void unbindTexture(GLuint texture);
|
||||
|
||||
/**
|
||||
* Sets the scissor for the current surface.
|
||||
*/
|
||||
|
||||
@@ -171,6 +171,7 @@ void Layer::deleteTexture() {
|
||||
}
|
||||
|
||||
void Layer::clearTexture() {
|
||||
caches.unbindTexture(texture.id);
|
||||
texture.id = 0;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user