Multiply alpha for AA as late as possible
Should be done after all color computation
Change-Id: Iaadd565f7d2263f111f6841a00e7c341025833d3
diff --git a/libs/hwui/ProgramCache.cpp b/libs/hwui/ProgramCache.cpp
index 0ed8008..be8f80a 100644
--- a/libs/hwui/ProgramCache.cpp
+++ b/libs/hwui/ProgramCache.cpp
@@ -671,11 +671,6 @@
shader.append(gFS_Main_FetchColor);
}
}
- if (description.isAARect) {
- shader.append(gFS_Main_AccountForAARect);
- } else if (description.isAA) {
- shader.append(gFS_Main_AccountForAA);
- }
if (description.hasGradient) {
shader.append(gFS_Main_FetchGradient[gradientIndex(description)]);
shader.append(gFS_Main_AddDitherToGradient);
@@ -721,6 +716,13 @@
}
// Apply the color op if needed
shader.append(gFS_Main_ApplyColorOp[description.colorOp]);
+
+ if (description.isAARect) {
+ shader.append(gFS_Main_AccountForAARect);
+ } else if (description.isAA) {
+ shader.append(gFS_Main_AccountForAA);
+ }
+
// Output the fragment
if (!blendFramebuffer) {
shader.append(gFS_Main_FragColor);