summaryrefslogtreecommitdiffstats
path: root/services/surfaceflinger/RenderEngine
diff options
context:
space:
mode:
Diffstat (limited to 'services/surfaceflinger/RenderEngine')
-rw-r--r--services/surfaceflinger/RenderEngine/ProgramCache.cpp22
1 files changed, 5 insertions, 17 deletions
diff --git a/services/surfaceflinger/RenderEngine/ProgramCache.cpp b/services/surfaceflinger/RenderEngine/ProgramCache.cpp
index f378713..1f2eb9d 100644
--- a/services/surfaceflinger/RenderEngine/ProgramCache.cpp
+++ b/services/surfaceflinger/RenderEngine/ProgramCache.cpp
@@ -140,28 +140,16 @@ String8 ProgramCache::generateFragmentShader(const Key& needs) {
} else {
fs << "gl_FragColor = color;";
}
+ if (needs.isOpaque()) {
+ fs << "gl_FragColor.a = 1.0;";
+ }
if (needs.hasPlaneAlpha()) {
// modulate the alpha value with planeAlpha
if (needs.isPremultiplied()) {
// ... and the color too if we're premultiplied
- if (needs.isOpaque()) {
- // ... we're opaque, only premultiply the color component
- fs << "gl_FragColor.rgb *= alphaPlane;"
- << "gl_FragColor.a = alphaPlane;";
- } else {
- fs << "gl_FragColor *= alphaPlane;";
- }
+ fs << "gl_FragColor *= alphaPlane;";
} else {
- // not premultiplied
- if (needs.isOpaque()) {
- fs << "gl_FragColor.a = alphaPlane;";
- } else {
- fs << "gl_FragColor.a *= alphaPlane;";
- }
- }
- } else {
- if (needs.isOpaque()) {
- fs << "gl_FragColor.a = 1.0;";
+ fs << "gl_FragColor.a *= alphaPlane;";
}
}
fs << dedent << "}";