From c0bf700441e1b53f1693d7445dc6f9876f5c9b4f Mon Sep 17 00:00:00 2001 From: Derek Sollenberger Date: Fri, 6 Mar 2015 13:48:27 -0500 Subject: [PATCH] SkPorterDuff Multiply mode maps to SkXfermode modulate. bug:19627342 Change-Id: I97f26ca1bc8abe2768f4a12cc70fb0fa5d905098 --- graphics/java/android/graphics/PorterDuff.java | 2 +- libs/hwui/ProgramCache.cpp | 7 ++----- 2 files changed, 3 insertions(+), 6 deletions(-) diff --git a/graphics/java/android/graphics/PorterDuff.java b/graphics/java/android/graphics/PorterDuff.java index f5fbe70e2658..dcccf35b88de 100644 --- a/graphics/java/android/graphics/PorterDuff.java +++ b/graphics/java/android/graphics/PorterDuff.java @@ -51,7 +51,7 @@ public class PorterDuff { Sc*(1 - Da) + Dc*(1 - Sa) + max(Sc, Dc)] */ LIGHTEN (17), /** [Sa * Da, Sc * Dc] */ - MULTIPLY (24), + MULTIPLY (13), /** [Sa + Da - Sa * Da, Sc + Dc - Sc * Dc] */ SCREEN (14), /** Saturate(S + D) */ diff --git a/libs/hwui/ProgramCache.cpp b/libs/hwui/ProgramCache.cpp index 7ad4a57628d2..e9b22e20bc18 100644 --- a/libs/hwui/ProgramCache.cpp +++ b/libs/hwui/ProgramCache.cpp @@ -380,9 +380,9 @@ const char* gBlendOps[18] = { // Xor "return vec4(src.rgb * (1.0 - dst.a) + (1.0 - src.a) * dst.rgb, " "src.a + dst.a - 2.0 * src.a * dst.a);\n", - // Add + // Plus "return min(src + dst, 1.0);\n", - // Multiply + // Modulate "return src * dst;\n", // Screen "return src + dst - src * dst;\n", @@ -777,9 +777,6 @@ String8 ProgramCache::generateFragmentShader(const ProgramDescription& descripti } void ProgramCache::generateBlend(String8& shader, const char* name, SkXfermode::Mode mode) { - // TODO: update gBlendOps so this workaround isn't necessary - if (mode > SkXfermode::kPlus_Mode) mode = SkXfermode::kClear_Mode; - shader.append("\nvec4 "); shader.append(name); shader.append("(vec4 src, vec4 dst) {\n"); -- 2.11.0