diff options
author | Mike Reed <reed@google.com> | 2017-03-09 07:51:09 -0500 |
---|---|---|
committer | Skia Commit-Bot <skia-commit-bot@chromium.org> | 2017-03-09 14:46:11 +0000 |
commit | 4a21c94f40815d56c6dff6264a2ae6c942c52dcd (patch) | |
tree | fd50f297a65b1321ccc70432c9f1b816f3795d81 /include/core/SkPathEffect.h | |
parent | c65aec97619682b2c0191554f44ddf35f618a94d (diff) |
move intermediate patheffect classes inside src
BUG=skia:
Change-Id: I49d2079ff35c7d228839940a57ba29169cb5b310
Reviewed-on: https://skia-review.googlesource.com/9462
Reviewed-by: Mike Reed <reed@google.com>
Commit-Queue: Mike Reed <reed@google.com>
Diffstat (limited to 'include/core/SkPathEffect.h')
-rw-r--r-- | include/core/SkPathEffect.h | 129 |
1 files changed, 14 insertions, 115 deletions
diff --git a/include/core/SkPathEffect.h b/include/core/SkPathEffect.h index 62f8993354..65adb33f3c 100644 --- a/include/core/SkPathEffect.h +++ b/include/core/SkPathEffect.h @@ -26,7 +26,21 @@ class SkStrokeRec; */ class SK_API SkPathEffect : public SkFlattenable { public: + /** + * Returns a patheffect that apples each effect (first and second) to the original path, + * and returns a path with the sum of these. + * + * result = first(path) + second(path) + * + */ static sk_sp<SkPathEffect> MakeSum(sk_sp<SkPathEffect> first, sk_sp<SkPathEffect> second); + + /** + * Returns a patheffect that applies the inner effect to the path, and then applies the + * outer effect to the result of the inner's. + * + * result = outer(inner(path)) + */ static sk_sp<SkPathEffect> MakeCompose(sk_sp<SkPathEffect> outer, sk_sp<SkPathEffect> inner); /** @@ -152,119 +166,4 @@ private: typedef SkFlattenable INHERITED; }; -#ifdef SK_SUPPORT_LEGACY_PATHEFFECT_SUBCLASSES - -/** \class SkPairPathEffect - - Common baseclass for Compose and Sum. This subclass manages two pathEffects, - including flattening them. It does nothing in filterPath, and is only useful - for managing the lifetimes of its two arguments. -*/ -class SK_API SkPairPathEffect : public SkPathEffect { -protected: - SkPairPathEffect(sk_sp<SkPathEffect> pe0, sk_sp<SkPathEffect> pe1); - - void flatten(SkWriteBuffer&) const override; - - // these are visible to our subclasses - sk_sp<SkPathEffect> fPE0; - sk_sp<SkPathEffect> fPE1; - - SK_TO_STRING_OVERRIDE() - -private: - typedef SkPathEffect INHERITED; -}; - -/** \class SkComposePathEffect - - This subclass of SkPathEffect composes its two arguments, to create - a compound pathEffect. -*/ -class SK_API SkComposePathEffect : public SkPairPathEffect { -public: - /** Construct a pathEffect whose effect is to apply first the inner pathEffect - and the the outer pathEffect (e.g. outer(inner(path))) - The reference counts for outer and inner are both incremented in the constructor, - and decremented in the destructor. - */ - static sk_sp<SkPathEffect> Make(sk_sp<SkPathEffect> outer, sk_sp<SkPathEffect> inner) { - if (!outer) { - return inner; - } - if (!inner) { - return outer; - } - return sk_sp<SkPathEffect>(new SkComposePathEffect(outer, inner)); - } - - virtual bool filterPath(SkPath* dst, const SkPath& src, - SkStrokeRec*, const SkRect*) const override; - - SK_TO_STRING_OVERRIDE() - SK_DECLARE_PUBLIC_FLATTENABLE_DESERIALIZATION_PROCS(SkComposePathEffect) - -#ifdef SK_BUILD_FOR_ANDROID_FRAMEWORK - bool exposedInAndroidJavaAPI() const override { return true; } -#endif - -protected: - SkComposePathEffect(sk_sp<SkPathEffect> outer, sk_sp<SkPathEffect> inner) - : INHERITED(outer, inner) {} - -private: - // illegal - SkComposePathEffect(const SkComposePathEffect&); - SkComposePathEffect& operator=(const SkComposePathEffect&); - friend class SkPathEffect; - - typedef SkPairPathEffect INHERITED; -}; - -/** \class SkSumPathEffect - - This subclass of SkPathEffect applies two pathEffects, one after the other. - Its filterPath() returns true if either of the effects succeeded. -*/ -class SK_API SkSumPathEffect : public SkPairPathEffect { -public: - /** Construct a pathEffect whose effect is to apply two effects, in sequence. - (e.g. first(path) + second(path)) - The reference counts for first and second are both incremented in the constructor, - and decremented in the destructor. - */ - static sk_sp<SkPathEffect> Make(sk_sp<SkPathEffect> first, sk_sp<SkPathEffect> second) { - if (!first) { - return second; - } - if (!second) { - return first; - } - return sk_sp<SkPathEffect>(new SkSumPathEffect(first, second)); - } - - virtual bool filterPath(SkPath* dst, const SkPath& src, - SkStrokeRec*, const SkRect*) const override; - - SK_TO_STRING_OVERRIDE() - SK_DECLARE_PUBLIC_FLATTENABLE_DESERIALIZATION_PROCS(SkSumPathEffect) - -#ifdef SK_BUILD_FOR_ANDROID_FRAMEWORK - bool exposedInAndroidJavaAPI() const override { return true; } -#endif - -protected: - SkSumPathEffect(sk_sp<SkPathEffect> first, sk_sp<SkPathEffect> second) - : INHERITED(first, second) {} - -private: - // illegal - SkSumPathEffect(const SkSumPathEffect&); - SkSumPathEffect& operator=(const SkSumPathEffect&); - friend class SkPathEffect; - - typedef SkPairPathEffect INHERITED; -}; -#endif - #endif |