diff options
author | Mike Reed <reed@google.com> | 2018-01-20 22:24:21 +0000 |
---|---|---|
committer | Skia Commit-Bot <skia-commit-bot@chromium.org> | 2018-01-20 22:24:31 +0000 |
commit | bfadcf0224cb22e2aec10592fa197ba7ab19b479 (patch) | |
tree | c3a3635a542239a30928855e6b322c36b91c96ba /include/core/SkMaskFilter.h | |
parent | 2914555e004676465c5255d8b42ee0d25887ac73 (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.h | 27 |
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, |