aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/gpu/effects/GrBlurredEdgeFragmentProcessor.cpp
diff options
context:
space:
mode:
authorGravatar Ethan Nicholas <ethannicholas@google.com>2017-07-14 16:17:04 -0400
committerGravatar Skia Commit-Bot <skia-commit-bot@chromium.org>2017-07-14 20:46:34 +0000
commit0274b30feeacae0bcd12f03ae96cb4721c1393a2 (patch)
tree24b8932516009d057d898a5741e73c192b32c21a /src/gpu/effects/GrBlurredEdgeFragmentProcessor.cpp
parent91982ee8d92a80193915d59760e2ba9ce6f46989 (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.cpp66
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