GrGLBlend::AppendPorterDuffBlend now supports kClear_Mode
authorwangyix <wangyix@google.com>
Tue, 1 Sep 2015 14:56:14 +0000 (07:56 -0700)
committerCommit bot <commit-bot@chromium.org>
Tue, 1 Sep 2015 14:56:14 +0000 (07:56 -0700)
BUG=skia:4182

Review URL: https://codereview.chromium.org/1307393005

src/gpu/gl/GrGLBlend.cpp

index 0f73fbd..4179ec0 100644 (file)
@@ -58,12 +58,13 @@ void GrGLBlend::AppendPorterDuffBlend(GrGLFragmentBuilder* fsBuilder, const char
     SkXfermode::Coeff srcCoeff, dstCoeff;
     SkXfermode::ModeAsCoeff(mode, &srcCoeff, &dstCoeff);
 
-    fsBuilder->codeAppendf("%s =", outColor);
+    fsBuilder->codeAppendf("%s = ", outColor);
     // append src blend
     bool didAppend = append_porterduff_term(fsBuilder, srcCoeff, srcColor, srcColor, dstColor,
                                             false);
     // append dst blend
-    SkAssertResult(append_porterduff_term(fsBuilder, dstCoeff, dstColor, srcColor, dstColor,
-                                          didAppend));
+    if(!append_porterduff_term(fsBuilder, dstCoeff, dstColor, srcColor, dstColor, didAppend)) {
+        fsBuilder->codeAppend("vec4(0, 0, 0, 0)");
+    }
     fsBuilder->codeAppend(";");
 }