Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit c0bf7004 authored by Derek Sollenberger's avatar Derek Sollenberger
Browse files

SkPorterDuff Multiply mode maps to SkXfermode modulate.

bug:19627342
Change-Id: I97f26ca1bc8abe2768f4a12cc70fb0fa5d905098
parent 1592f989
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -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) */
+2 −5
Original line number Diff line number Diff line
@@ -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");