* commit '110bc6a50fb0c06053bef83afe5075f7e25c5093': Simplify handling of opaque layers in shader generation
This commit is contained in:
commit
9ab41030a8
@ -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 << "}";
|
||||
|
Loading…
Reference in New Issue
Block a user