Add gpu implementation of OverdrawXfermode
GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1607253002
Committed: https://skia.googlesource.com/skia/+/8bc3cf88bbf5e5d5724356f076931bb70a6117ba
Review URL: https://codereview.chromium.org/1607253002
diff --git a/src/gpu/effects/GrPorterDuffXferProcessor.cpp b/src/gpu/effects/GrPorterDuffXferProcessor.cpp
index 94d3dd6..c443e1e 100644
--- a/src/gpu/effects/GrPorterDuffXferProcessor.cpp
+++ b/src/gpu/effects/GrPorterDuffXferProcessor.cpp
@@ -559,17 +559,8 @@
GrGLSLBlend::AppendMode(fragBuilder, srcColor, dstColor, outColor, xp.getXfermode());
// Apply coverage.
- if (xp.dstReadUsesMixedSamples()) {
- if (srcCoverage) {
- fragBuilder->codeAppendf("%s *= %s;", outColor, srcCoverage);
- fragBuilder->codeAppendf("%s = %s;", outColorSecondary, srcCoverage);
- } else {
- fragBuilder->codeAppendf("%s = vec4(1.0);", outColorSecondary);
- }
- } else if (srcCoverage) {
- fragBuilder->codeAppendf("%s = %s * %s + (vec4(1.0) - %s) * %s;",
- outColor, srcCoverage, outColor, srcCoverage, dstColor);
- }
+ INHERITED::DefaultCoverageModulation(fragBuilder, srcCoverage, dstColor, outColor,
+ outColorSecondary, xp);
}
void onSetData(const GrGLSLProgramDataManager&, const GrXferProcessor&) override {}