aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/gpu/effects/GrCustomXfermode.cpp
diff options
context:
space:
mode:
authorGravatar robertphillips <robertphillips@google.com>2016-01-22 06:53:57 -0800
committerGravatar Commit bot <commit-bot@chromium.org>2016-01-22 06:53:57 -0800
commite429c88a811dfa05a26582a06fd53752768aa9f4 (patch)
treebfa6b730c3fa305036ebf6054a5cdae5232ead02 /src/gpu/effects/GrCustomXfermode.cpp
parentaa97a84404c7505738713a4c19b42347c7daef9e (diff)
Revert of Add gpu implementation of OverdrawXfermode (patchset #6 id:100001 of https://codereview.chromium.org/1607253002/ )
Reason for revert: Overdraw Xfer mode using new fangled glsl features Original issue's description: > 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 TBR=egdaniel@google.com # Not skipping CQ checks because original CL landed more than 1 days ago. Review URL: https://codereview.chromium.org/1626443002
Diffstat (limited to 'src/gpu/effects/GrCustomXfermode.cpp')
-rw-r--r--src/gpu/effects/GrCustomXfermode.cpp13
1 files changed, 11 insertions, 2 deletions
diff --git a/src/gpu/effects/GrCustomXfermode.cpp b/src/gpu/effects/GrCustomXfermode.cpp
index dccec0c599..93f20738b4 100644
--- a/src/gpu/effects/GrCustomXfermode.cpp
+++ b/src/gpu/effects/GrCustomXfermode.cpp
@@ -175,8 +175,17 @@ private:
GrGLSLBlend::AppendMode(fragBuilder, srcColor, dstColor, outColor, xp.mode());
// Apply coverage.
- INHERITED::DefaultCoverageModulation(fragBuilder, srcCoverage, dstColor, outColor,
- outColorSecondary, xp);
+ 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);
+ }
}
void onSetData(const GrGLSLProgramDataManager&, const GrXferProcessor&) override {}