diff options
author | 2017-07-14 16:17:04 -0400 | |
---|---|---|
committer | 2017-07-14 20:46:34 +0000 | |
commit | 0274b30feeacae0bcd12f03ae96cb4721c1393a2 (patch) | |
tree | 24b8932516009d057d898a5741e73c192b32c21a /src/gpu/effects/GrBlurredEdgeFragmentProcessor.cpp | |
parent | 91982ee8d92a80193915d59760e2ba9ce6f46989 (diff) |
converted GrBlurredEdgeFragmentProcessor to sksl
Bug: skia:
Change-Id: I028c85f692b2e54e64be301940708387014ee0c7
Reviewed-on: https://skia-review.googlesource.com/23540
Reviewed-by: Jim Van Verth <jvanverth@google.com>
Commit-Queue: Ethan Nicholas <ethannicholas@google.com>
Diffstat (limited to 'src/gpu/effects/GrBlurredEdgeFragmentProcessor.cpp')
-rw-r--r-- | src/gpu/effects/GrBlurredEdgeFragmentProcessor.cpp | 66 |
1 files changed, 26 insertions, 40 deletions
diff --git a/src/gpu/effects/GrBlurredEdgeFragmentProcessor.cpp b/src/gpu/effects/GrBlurredEdgeFragmentProcessor.cpp index 1996a942c2..a66de57e7a 100644 --- a/src/gpu/effects/GrBlurredEdgeFragmentProcessor.cpp +++ b/src/gpu/effects/GrBlurredEdgeFragmentProcessor.cpp @@ -5,54 +5,40 @@ * found in the LICENSE file. */ -#include "effects/GrBlurredEdgeFragmentProcessor.h" - +/* + * This file was autogenerated from GrBlurredEdgeFragmentProcessor.fp; do not modify. + */ +#include "GrBlurredEdgeFragmentProcessor.h" +#if SK_SUPPORT_GPU +#include "glsl/GrGLSLColorSpaceXformHelper.h" #include "glsl/GrGLSLFragmentProcessor.h" #include "glsl/GrGLSLFragmentShaderBuilder.h" - -class GLSLBlurredEdgeFP : public GrGLSLFragmentProcessor { +#include "glsl/GrGLSLProgramBuilder.h" +#include "SkSLCPP.h" +#include "SkSLUtil.h" +class GrGLSLBlurredEdgeFragmentProcessor : public GrGLSLFragmentProcessor { public: - GLSLBlurredEdgeFP() {} - + GrGLSLBlurredEdgeFragmentProcessor() {} void emitCode(EmitArgs& args) override { - - GrBlurredEdgeFP::Mode mode = args.fFp.cast<GrBlurredEdgeFP>().mode(); - GrGLSLFPFragmentBuilder* fragBuilder = args.fFragBuilder; - - fragBuilder->codeAppendf("vec4 color = %s;", args.fInputColor); - fragBuilder->codeAppendf("// assuming interpolant is set in vertex colors\n"); - fragBuilder->codeAppendf("float factor = 1.0 - color.a;"); - switch (mode) { - case GrBlurredEdgeFP::kGaussian_Mode: - fragBuilder->codeAppend("factor = exp(-factor * factor * 4.0) - 0.018;"); - break; - case GrBlurredEdgeFP::kSmoothstep_Mode: - fragBuilder->codeAppend("factor = smoothstep(1.0, 0.0, factor);"); - break; - } - fragBuilder->codeAppendf("%s = vec4(factor);", args.fOutputColor); + const GrBlurredEdgeFragmentProcessor& _outer = args.fFp.cast<GrBlurredEdgeFragmentProcessor>(); + (void) _outer; + fragBuilder->codeAppendf("float factor = 1.0 - %s.w;\n@switch (%d) {\n case 0:\n factor = exp((-factor * factor) * 4.0) - 0.017999999999999999;\n break;\n case 1:\n factor = smoothstep(1.0, 0.0, factor);\n break;\n}\n%s = vec4(factor);\n", args.fInputColor ? args.fInputColor : "vec4(1)", _outer.mode(), args.fOutputColor); + } +private: + void onSetData(const GrGLSLProgramDataManager& pdman, const GrFragmentProcessor& _proc) override { } - -protected: - void onSetData(const GrGLSLProgramDataManager& pdman, - const GrFragmentProcessor& proc) override {} - - GrBlurredEdgeFP::Mode fMode; }; - -GrGLSLFragmentProcessor* GrBlurredEdgeFP::onCreateGLSLInstance() const { - return new GLSLBlurredEdgeFP(); +GrGLSLFragmentProcessor* GrBlurredEdgeFragmentProcessor::onCreateGLSLInstance() const { + return new GrGLSLBlurredEdgeFragmentProcessor(); } - -void GrBlurredEdgeFP::onGetGLSLProcessorKey(const GrShaderCaps& caps, - GrProcessorKeyBuilder* b) const { +void GrBlurredEdgeFragmentProcessor::onGetGLSLProcessorKey(const GrShaderCaps& caps, GrProcessorKeyBuilder* b) const { b->add32(fMode); } - -bool GrBlurredEdgeFP::onIsEqual(const GrFragmentProcessor& other) const { - const GrBlurredEdgeFP& that = other.cast<GrBlurredEdgeFP>(); - return that.fMode == fMode; +bool GrBlurredEdgeFragmentProcessor::onIsEqual(const GrFragmentProcessor& other) const { + const GrBlurredEdgeFragmentProcessor& that = other.cast<GrBlurredEdgeFragmentProcessor>(); + (void) that; + if (fMode != that.fMode) return false; + return true; } - - +#endif |