aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/gpu/effects/GrCircleBlurFragmentProcessor.h
diff options
context:
space:
mode:
authorGravatar Mike Reed <reed@google.com>2018-03-12 14:03:47 -0400
committerGravatar Skia Commit-Bot <skia-commit-bot@chromium.org>2018-03-12 18:48:18 +0000
commit18e7556371506fd08bd0767a270c5db5a7804103 (patch)
treedbb3791194125d85970936ae37168770a0e8cc54 /src/gpu/effects/GrCircleBlurFragmentProcessor.h
parent05cb229e58efa052db5acf33be0441f4b4a28e7c (diff)
move blur impl into core
Ever since we added drawShadow to the public api, blurs have necessarily part of the core. This CL just formalizes that. This should also allow us to have builds that exclude all of /effects (for code size) and still be valid. Will follow-up with a change to deprecate SkBlurMaskFilter and SkBlurQuality (both no longer needed). Bug: skia: Change-Id: Ifbbd8b47a30a0386d215726b67bcf1e8b84fb8f5 Reviewed-on: https://skia-review.googlesource.com/113713 Reviewed-by: Mike Reed <reed@google.com> Commit-Queue: Mike Reed <reed@google.com>
Diffstat (limited to 'src/gpu/effects/GrCircleBlurFragmentProcessor.h')
-rw-r--r--src/gpu/effects/GrCircleBlurFragmentProcessor.h51
1 files changed, 51 insertions, 0 deletions
diff --git a/src/gpu/effects/GrCircleBlurFragmentProcessor.h b/src/gpu/effects/GrCircleBlurFragmentProcessor.h
new file mode 100644
index 0000000000..25dcb9ade6
--- /dev/null
+++ b/src/gpu/effects/GrCircleBlurFragmentProcessor.h
@@ -0,0 +1,51 @@
+/*
+ * Copyright 2018 Google Inc.
+ *
+ * Use of this source code is governed by a BSD-style license that can be
+ * found in the LICENSE file.
+ */
+
+/**************************************************************************************************
+ *** This file was autogenerated from GrCircleBlurFragmentProcessor.fp; do not modify.
+ **************************************************************************************************/
+#ifndef GrCircleBlurFragmentProcessor_DEFINED
+#define GrCircleBlurFragmentProcessor_DEFINED
+#include "SkTypes.h"
+#if SK_SUPPORT_GPU
+#include "GrFragmentProcessor.h"
+#include "GrCoordTransform.h"
+class GrCircleBlurFragmentProcessor : public GrFragmentProcessor {
+public:
+ SkRect circleRect() const { return fCircleRect; }
+ float textureRadius() const { return fTextureRadius; }
+ float solidRadius() const { return fSolidRadius; }
+
+ static std::unique_ptr<GrFragmentProcessor> Make(GrProxyProvider*, const SkRect& circle,
+ float sigma);
+ GrCircleBlurFragmentProcessor(const GrCircleBlurFragmentProcessor& src);
+ std::unique_ptr<GrFragmentProcessor> clone() const override;
+ const char* name() const override { return "CircleBlurFragmentProcessor"; }
+
+private:
+ GrCircleBlurFragmentProcessor(SkRect circleRect, float textureRadius, float solidRadius,
+ sk_sp<GrTextureProxy> blurProfileSampler)
+ : INHERITED(kGrCircleBlurFragmentProcessor_ClassID,
+ (OptimizationFlags)kCompatibleWithCoverageAsAlpha_OptimizationFlag)
+ , fCircleRect(circleRect)
+ , fTextureRadius(textureRadius)
+ , fSolidRadius(solidRadius)
+ , fBlurProfileSampler(std::move(blurProfileSampler)) {
+ this->addTextureSampler(&fBlurProfileSampler);
+ }
+ GrGLSLFragmentProcessor* onCreateGLSLInstance() const override;
+ void onGetGLSLProcessorKey(const GrShaderCaps&, GrProcessorKeyBuilder*) const override;
+ bool onIsEqual(const GrFragmentProcessor&) const override;
+ GR_DECLARE_FRAGMENT_PROCESSOR_TEST
+ SkRect fCircleRect;
+ float fTextureRadius;
+ float fSolidRadius;
+ TextureSampler fBlurProfileSampler;
+ typedef GrFragmentProcessor INHERITED;
+};
+#endif
+#endif