diff options
| -rw-r--r-- | libs/hwui/Dither.cpp | 4 | ||||
| -rw-r--r-- | libs/hwui/ProgramCache.cpp | 2 |
2 files changed, 5 insertions, 1 deletions
diff --git a/libs/hwui/Dither.cpp b/libs/hwui/Dither.cpp index 9bc5c140e8d5..51f1e39c1501 100644 --- a/libs/hwui/Dither.cpp +++ b/libs/hwui/Dither.cpp @@ -38,6 +38,10 @@ void Dither::bindDitherTexture() { glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_REPEAT); if (useFloatTexture) { + // We use a R16F texture, let's remap the alpha channel to the + // red channel to avoid changing the shader sampling code on GL ES 3.0+ + glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_SWIZZLE_A, GL_RED); + float dither = 1.0f / (255.0f * DITHER_KERNEL_SIZE * DITHER_KERNEL_SIZE); const GLfloat pattern[] = { 0 * dither, 8 * dither, 2 * dither, 10 * dither, diff --git a/libs/hwui/ProgramCache.cpp b/libs/hwui/ProgramCache.cpp index 2479630daea5..8eb85e5547eb 100644 --- a/libs/hwui/ProgramCache.cpp +++ b/libs/hwui/ProgramCache.cpp @@ -186,7 +186,7 @@ const char* gFS_Main_Dither[2] = { // ES 2.0 "texture2D(ditherSampler, ditherTexCoords).a * " STR(DITHER_KERNEL_SIZE_INV_SQUARE), // ES 3.0 - "texture2D(ditherSampler, ditherTexCoords).r" + "texture2D(ditherSampler, ditherTexCoords).a" }; const char* gFS_Main_AddDitherToGradient = " gradientColor += %s;\n"; |