diff options
-rw-r--r-- | libs/hwui/OpenGLRenderer.cpp | 11 | ||||
-rw-r--r-- | libs/hwui/Program.cpp | 2 | ||||
-rw-r--r-- | libs/hwui/shaders/drawColor.frag | 4 | ||||
-rw-r--r-- | libs/hwui/shaders/drawColor.vert | 4 | ||||
-rw-r--r-- | libs/hwui/shaders/drawTexture.frag | 4 | ||||
-rw-r--r-- | libs/hwui/shaders/drawTexture.vert | 3 | ||||
-rw-r--r-- | tests/HwAccelerationTest/src/com/google/android/test/hwui/NinePatchesActivity.java | 1 |
7 files changed, 11 insertions, 18 deletions
diff --git a/libs/hwui/OpenGLRenderer.cpp b/libs/hwui/OpenGLRenderer.cpp index e333060aa7a4..6d041ae48426 100644 --- a/libs/hwui/OpenGLRenderer.cpp +++ b/libs/hwui/OpenGLRenderer.cpp @@ -469,9 +469,9 @@ void OpenGLRenderer::drawPatch(SkBitmap* bitmap, Res_png_9patch* patch, // Specify right and bottom as +1.0f from left/top to prevent scaling since the // patch mesh already defines the final size - drawTextureMesh(left, top, left + 1.0f, top + 1.0f, texture->id, alpha, mode, texture->blend, - true, &mesh->vertices[0].position[0], &mesh->vertices[0].texture[0], mesh->indices, - mesh->indicesCount); + drawTextureMesh(left, top, left + 1.0f, top + 1.0f, texture->id, alpha / 255.0f, mode, + texture->blend, true, &mesh->vertices[0].position[0], + &mesh->vertices[0].texture[0], mesh->indices, mesh->indicesCount); } void OpenGLRenderer::drawColor(int color, SkXfermode::Mode mode) { @@ -518,7 +518,7 @@ void OpenGLRenderer::drawColorRect(float left, float top, float right, float bot glEnableVertexAttribArray(mDrawColorShader->position); glVertexAttribPointer(mDrawColorShader->position, 2, GL_FLOAT, GL_FALSE, gDrawColorVertexStride, p); - glVertexAttrib4f(mDrawColorShader->color, r, g, b, a); + glUniform4f(mDrawColorShader->color, r, g, b, a); glDrawArrays(GL_TRIANGLE_STRIP, 0, gDrawColorVertexCount); @@ -558,6 +558,7 @@ void OpenGLRenderer::drawTextureMesh(float left, float top, float right, float b glActiveTexture(GL_TEXTURE0); glUniform1i(mDrawTextureShader->sampler, 0); + glUniform4f(mDrawTextureShader->color, 1.0f, 1.0f, 1.0f, alpha); glEnableVertexAttribArray(mDrawTextureShader->position); glVertexAttribPointer(mDrawTextureShader->position, 2, GL_FLOAT, GL_FALSE, @@ -567,8 +568,6 @@ void OpenGLRenderer::drawTextureMesh(float left, float top, float right, float b glVertexAttribPointer(mDrawTextureShader->texCoords, 2, GL_FLOAT, GL_FALSE, gDrawTextureVertexStride, texCoords); - glVertexAttrib4f(mDrawTextureShader->color, 1.0f, 1.0f, 1.0f, alpha); - if (!indices) { glDrawArrays(GL_TRIANGLE_STRIP, 0, gDrawTextureVertexCount); } else { diff --git a/libs/hwui/Program.cpp b/libs/hwui/Program.cpp index 2acddfcf2419..819e7368aad3 100644 --- a/libs/hwui/Program.cpp +++ b/libs/hwui/Program.cpp @@ -126,7 +126,7 @@ DrawColorProgram::DrawColorProgram(const char* vertex, const char* fragment): void DrawColorProgram::getAttribsAndUniforms() { position = addAttrib("position"); - color = addAttrib("color"); + color = addUniform("color"); projection = addUniform("projection"); modelView = addUniform("modelView"); transform = addUniform("transform"); diff --git a/libs/hwui/shaders/drawColor.frag b/libs/hwui/shaders/drawColor.frag index e84c47bb6f33..0628850defc5 100644 --- a/libs/hwui/shaders/drawColor.frag +++ b/libs/hwui/shaders/drawColor.frag @@ -1,9 +1,9 @@ SHADER_SOURCE(gDrawColorFragmentShader, -varying lowp vec4 outColor; +uniform vec4 color; void main(void) { - gl_FragColor = outColor; + gl_FragColor = color; } ); diff --git a/libs/hwui/shaders/drawColor.vert b/libs/hwui/shaders/drawColor.vert index cef6e498dfc1..742ed989e65c 100644 --- a/libs/hwui/shaders/drawColor.vert +++ b/libs/hwui/shaders/drawColor.vert @@ -1,16 +1,12 @@ SHADER_SOURCE(gDrawColorVertexShader, attribute vec4 position; -attribute vec4 color; uniform mat4 projection; uniform mat4 modelView; uniform mat4 transform; -varying vec4 outColor; - void main(void) { - outColor = color; gl_Position = projection * transform * modelView * position; } diff --git a/libs/hwui/shaders/drawTexture.frag b/libs/hwui/shaders/drawTexture.frag index 5bd420eea7f0..0f2aa9185c50 100644 --- a/libs/hwui/shaders/drawTexture.frag +++ b/libs/hwui/shaders/drawTexture.frag @@ -1,12 +1,12 @@ SHADER_SOURCE(gDrawTextureFragmentShader, -varying lowp vec4 outColor; varying mediump vec2 outTexCoords; +uniform vec4 color; uniform sampler2D sampler; void main(void) { - gl_FragColor = texture2D(sampler, outTexCoords) * outColor; + gl_FragColor = texture2D(sampler, outTexCoords) * color; } ); diff --git a/libs/hwui/shaders/drawTexture.vert b/libs/hwui/shaders/drawTexture.vert index 310a81249c97..8abddb87f9d1 100644 --- a/libs/hwui/shaders/drawTexture.vert +++ b/libs/hwui/shaders/drawTexture.vert @@ -2,17 +2,14 @@ SHADER_SOURCE(gDrawTextureVertexShader, attribute vec4 position; attribute vec2 texCoords; -attribute vec4 color; uniform mat4 projection; uniform mat4 modelView; uniform mat4 transform; -varying vec4 outColor; varying vec2 outTexCoords; void main(void) { - outColor = color; outTexCoords = texCoords; gl_Position = projection * transform * modelView * position; } diff --git a/tests/HwAccelerationTest/src/com/google/android/test/hwui/NinePatchesActivity.java b/tests/HwAccelerationTest/src/com/google/android/test/hwui/NinePatchesActivity.java index dc8fbcc6593e..3268fbf5251b 100644 --- a/tests/HwAccelerationTest/src/com/google/android/test/hwui/NinePatchesActivity.java +++ b/tests/HwAccelerationTest/src/com/google/android/test/hwui/NinePatchesActivity.java @@ -34,6 +34,7 @@ public class NinePatchesActivity extends Activity { FrameLayout.LayoutParams.WRAP_CONTENT, Gravity.CENTER)); b.setText("9 patches"); layout.addView(b); + layout.setBackgroundColor(0xffffffff); setContentView(layout); } |