diff options
author | Jim Van Verth <jvanverth@google.com> | 2017-05-04 09:58:17 -0400 |
---|---|---|
committer | Skia Commit-Bot <skia-commit-bot@chromium.org> | 2017-05-04 14:28:28 +0000 |
commit | 060d9820364b0cf09c7eb3bda449f24c3dcba2e2 (patch) | |
tree | c839d2c3129f90c281d3b0f2c642cf160675b056 /src/gpu | |
parent | db711c982bfaa805d2de5a253c55a680c30189e0 (diff) |
Combine the ambient and spot alphas into the base color
for geometric shadows.
This matches the analytic shadow approach better, and
is color space invariant.
Also includes cleanup in SampleAndroidShadows.
Bug: skia:6546
Change-Id: I7a7cd060420dae741f967334c8b19542a14f0bcf
Reviewed-on: https://skia-review.googlesource.com/15228
Commit-Queue: Jim Van Verth <jvanverth@google.com>
Reviewed-by: Robert Phillips <robertphillips@google.com>
Diffstat (limited to 'src/gpu')
-rw-r--r-- | src/gpu/effects/GrBlurredEdgeFragmentProcessor.cpp | 10 |
1 files changed, 3 insertions, 7 deletions
diff --git a/src/gpu/effects/GrBlurredEdgeFragmentProcessor.cpp b/src/gpu/effects/GrBlurredEdgeFragmentProcessor.cpp index 95b08d2f0d..a37c173c0b 100644 --- a/src/gpu/effects/GrBlurredEdgeFragmentProcessor.cpp +++ b/src/gpu/effects/GrBlurredEdgeFragmentProcessor.cpp @@ -23,7 +23,7 @@ public: fragBuilder->codeAppendf("vec4 color = %s;", args.fInputColor); if (!args.fGpImplementsDistanceVector) { fragBuilder->codeAppendf("// assuming interpolant is set in vertex colors\n"); - fragBuilder->codeAppendf("float factor = 1.0 - color.b;"); + fragBuilder->codeAppendf("float factor = 1.0 - color.a;"); } else { fragBuilder->codeAppendf("// using distance to edge to compute interpolant\n"); fragBuilder->codeAppend("float radius = color.r*256.0*64.0 + color.g*64.0;"); @@ -37,14 +37,10 @@ public: fragBuilder->codeAppend("factor = exp(-factor * factor * 4.0) - 0.018;"); break; case GrBlurredEdgeFP::kSmoothstep_Mode: - fragBuilder->codeAppend("factor = smoothstep(factor, 0.0, 1.0);"); + fragBuilder->codeAppend("factor = smoothstep(1.0, 0.0, factor);"); break; } - if (!args.fGpImplementsDistanceVector) { - fragBuilder->codeAppendf("%s = vec4(factor*color.g);", args.fOutputColor); - } else { - fragBuilder->codeAppendf("%s = vec4(factor*color.a);", args.fOutputColor); - } + fragBuilder->codeAppendf("%s = vec4(factor);", args.fOutputColor); } protected: |