aboutsummaryrefslogtreecommitdiffhomepage
path: root/include/core/SkMaskFilter.h
diff options
context:
space:
mode:
authorGravatar Mike Reed <reed@google.com>2018-01-20 22:24:21 +0000
committerGravatar Skia Commit-Bot <skia-commit-bot@chromium.org>2018-01-20 22:24:31 +0000
commitbfadcf0224cb22e2aec10592fa197ba7ab19b479 (patch)
treec3a3635a542239a30928855e6b322c36b91c96ba /include/core/SkMaskFilter.h
parent2914555e004676465c5255d8b42ee0d25887ac73 (diff)
Revert "Revert "use GrFPArgs for maskfilters""
This reverts commit 4f7f197c09443232f02cd81f3ac7fb5a216acd05. Reason for revert: not needed for roll Original change's description: > Revert "use GrFPArgs for maskfilters" > > This reverts commit a99b39399522658d7e5ddee97d0e45aa9fceaf89. > > Reason for revert: try to unblock android roller > > Original change's description: > > use GrFPArgs for maskfilters > > > > Bug: skia: > > Change-Id: I8516a3b0f6d8301c51f0861c65b9fe8f692fc5e5 > > Reviewed-on: https://skia-review.googlesource.com/97260 > > Commit-Queue: Mike Reed <reed@google.com> > > Reviewed-by: Brian Salomon <bsalomon@google.com> > > TBR=egdaniel@google.com,bsalomon@google.com,reed@google.com > > Change-Id: Iefe8ed19bba75df86173dec53f5ed4f1ea8724d0 > No-Presubmit: true > No-Tree-Checks: true > No-Try: true > Bug: skia: > Reviewed-on: https://skia-review.googlesource.com/97581 > Reviewed-by: Mike Reed <reed@google.com> > Commit-Queue: Mike Reed <reed@google.com> TBR=egdaniel@google.com,bsalomon@google.com,reed@google.com Change-Id: I82c0e3234ff1b23c6d08259aae7dcb03087a415e No-Presubmit: true No-Tree-Checks: true No-Try: true Bug: skia: Reviewed-on: https://skia-review.googlesource.com/97583 Reviewed-by: Mike Reed <reed@google.com> Commit-Queue: Mike Reed <reed@google.com>
Diffstat (limited to 'include/core/SkMaskFilter.h')
-rw-r--r--include/core/SkMaskFilter.h27
1 files changed, 17 insertions, 10 deletions
diff --git a/include/core/SkMaskFilter.h b/include/core/SkMaskFilter.h
index 1714d17bca..3e10dc9ad3 100644
--- a/include/core/SkMaskFilter.h
+++ b/include/core/SkMaskFilter.h
@@ -6,7 +6,6 @@
* found in the LICENSE file.
*/
-
#ifndef SkMaskFilter_DEFINED
#define SkMaskFilter_DEFINED
@@ -18,6 +17,7 @@
class GrClip;
class GrContext;
+struct GrFPArgs;
class GrRenderTargetContext;
class GrPaint;
class GrFragmentProcessor;
@@ -69,16 +69,18 @@ public:
#if SK_SUPPORT_GPU
/**
- * Returns true if the filter can be expressed a single-pass GrProcessor without requiring an
- * explicit input mask. Per-pixel, the effect receives the incoming mask's coverage as
- * the input color and outputs the filtered covereage value. This means that each pixel's
- * filtered coverage must only depend on the unfiltered mask value for that pixel and not on
- * surrounding values.
- *
- * If effect is non-NULL, a new GrProcessor instance is stored in it. The caller assumes
- * ownership of the effect and must unref it.
+ * Returns a processor if the filter can be expressed a single-pass GrProcessor without
+ * requiring an explicit input mask. Per-pixel, the effect receives the incoming mask's
+ * coverage as the input color and outputs the filtered covereage value. This means that each
+ * pixel's filtered coverage must only depend on the unfiltered mask value for that pixel and
+ * not on surrounding values.
+ */
+ std::unique_ptr<GrFragmentProcessor> asFragmentProcessor(const GrFPArgs& args) const;
+
+ /**
+ * Returns true iff asFragmentProcessor() will return a processor
*/
- virtual bool asFragmentProcessor(GrFragmentProcessor**) const { return false; }
+ bool hasFragmentProcessor() const;
/**
* If asFragmentProcessor() fails the filter may be implemented on the GPU by a subclass
@@ -179,6 +181,11 @@ public:
protected:
SkMaskFilter() {}
+#if SK_SUPPORT_GPU
+ virtual std::unique_ptr<GrFragmentProcessor> onAsFragmentProcessor(const GrFPArgs&) const;
+ virtual bool onHasFragmentProcessor() const;
+#endif
+
enum FilterReturn {
kFalse_FilterReturn,
kTrue_FilterReturn,