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>
diff --git a/src/gpu/effects/GrBlurredEdgeFragmentProcessor.cpp b/src/gpu/effects/GrBlurredEdgeFragmentProcessor.cpp
index 1996a94..a66de57 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);
}
-
-protected:
- void onSetData(const GrGLSLProgramDataManager& pdman,
- const GrFragmentProcessor& proc) override {}
-
- GrBlurredEdgeFP::Mode fMode;
+private:
+ void onSetData(const GrGLSLProgramDataManager& pdman, const GrFragmentProcessor& _proc) override {
+ }
};
-
-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