Reduce number of GL calls when drawing with shaders.
Change-Id: I27aca9f6d381d5c7e363d90a93225d185f2ff4e3
diff --git a/libs/hwui/SkiaShader.cpp b/libs/hwui/SkiaShader.cpp
index e7e1187..590a9d7 100644
--- a/libs/hwui/SkiaShader.cpp
+++ b/libs/hwui/SkiaShader.cpp
@@ -63,8 +63,7 @@
GLuint* textureUnit) {
}
-void SkiaShader::bindTexture(Texture* texture, GLenum wrapS, GLenum wrapT, GLuint textureUnit) {
- glActiveTexture(gTextureUnitsMap[textureUnit]);
+void SkiaShader::bindTexture(Texture* texture, GLenum wrapS, GLenum wrapT) {
glBindTexture(GL_TEXTURE_2D, texture->id);
if (wrapS != texture->wrapS) {
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, wrapS);
@@ -132,7 +131,7 @@
computeScreenSpaceMatrix(textureTransform, modelView);
// Uniforms
- bindTexture(texture, mWrapS, mWrapT, textureSlot);
+ bindTexture(texture, mWrapS, mWrapT);
glUniform1i(program->getUniform("bitmapSampler"), textureSlot);
glUniformMatrix4fv(program->getUniform("textureTransform"), 1,
GL_FALSE, &textureTransform.data[0]);
@@ -204,7 +203,7 @@
computeScreenSpaceMatrix(screenSpace, modelView);
// Uniforms
- bindTexture(texture, gTileModes[mTileX], gTileModes[mTileY], textureSlot);
+ bindTexture(texture, gTileModes[mTileX], gTileModes[mTileY]);
glUniform1i(program->getUniform("gradientSampler"), textureSlot);
glUniformMatrix4fv(program->getUniform("screenSpace"), 1, GL_FALSE, &screenSpace.data[0]);
}
@@ -297,7 +296,7 @@
computeScreenSpaceMatrix(screenSpace, modelView);
// Uniforms
- bindTexture(texture, gTileModes[mTileX], gTileModes[mTileY], textureSlot);
+ bindTexture(texture, gTileModes[mTileX], gTileModes[mTileY]);
glUniform1i(program->getUniform("gradientSampler"), textureSlot);
glUniformMatrix4fv(program->getUniform("screenSpace"), 1, GL_FALSE, &screenSpace.data[0]);
}