diff options
Diffstat (limited to 'include/core/SkMaskFilter.h')
-rw-r--r-- | include/core/SkMaskFilter.h | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/include/core/SkMaskFilter.h b/include/core/SkMaskFilter.h index 641ad83886..84a8fd0c3a 100644 --- a/include/core/SkMaskFilter.h +++ b/include/core/SkMaskFilter.h @@ -72,6 +72,28 @@ public: virtual void flatten(SkFlattenableWriteBuffer& ) {} + enum BlurType { + kNone_BlurType, //!< this maskfilter is not a blur + kNormal_BlurType, //!< fuzzy inside and outside + kSolid_BlurType, //!< solid inside, fuzzy outside + kOuter_BlurType, //!< nothing inside, fuzzy outside + kInner_BlurType, //!< fuzzy inside, nothing outside + }; + + struct BlurInfo { + SkScalar fRadius; + bool fIgnoreTransform; + bool fHighQuality; + }; + + /** + * Optional method for maskfilters that can be described as a blur. If so, + * they return the corresponding BlurType and set the fields in BlurInfo + * (if not null). If they cannot be described as a blur, they return + * kNone_BlurType and ignore the info parameter. + */ + virtual BlurType asABlur(BlurInfo*); + protected: // empty for now, but lets get our subclass to remember to init us for the future SkMaskFilter(SkFlattenableReadBuffer&) {} |