aboutsummaryrefslogtreecommitdiffhomepage
path: root/include/core/SkMaskFilter.h
diff options
context:
space:
mode:
authorGravatar Mike Reed <reed@google.com>2018-01-24 16:34:02 -0500
committerGravatar Skia Commit-Bot <skia-commit-bot@chromium.org>2018-01-25 01:54:21 +0000
commit20dc672821d743a0c32f07dc6ec994f9deb478d7 (patch)
treee74946ccaf3a94b1e2bccb55528241b6d5481418 /include/core/SkMaskFilter.h
parent868a68061ecf608ab7c2b353d5fe29325c3fddd7 (diff)
compose and combine maskfilters
Bug: skia: Change-Id: Id470124021d00ee25cf4ae392a4ee345ced84110 Reviewed-on: https://skia-review.googlesource.com/97760 Reviewed-by: Mike Klein <mtklein@chromium.org> Reviewed-by: Florin Malita <fmalita@chromium.org> Commit-Queue: Mike Reed <reed@google.com>
Diffstat (limited to 'include/core/SkMaskFilter.h')
-rw-r--r--include/core/SkMaskFilter.h17
1 files changed, 17 insertions, 0 deletions
diff --git a/include/core/SkMaskFilter.h b/include/core/SkMaskFilter.h
index 55bf8bf4d5..e8a4e38863 100644
--- a/include/core/SkMaskFilter.h
+++ b/include/core/SkMaskFilter.h
@@ -8,6 +8,7 @@
#ifndef SkMaskFilter_DEFINED
#define SkMaskFilter_DEFINED
+#include "SkBlendMode.h"
#include "SkFlattenable.h"
class SkString;
@@ -19,8 +20,24 @@ class SkString;
*/
class SK_API SkMaskFilter : public SkFlattenable {
public:
+ /**
+ * Construct a maskfilter whose effect is to first apply the inner filter and then apply
+ * the outer filter to the result of the inner's. Returns nullptr on failure.
+ */
+ static sk_sp<SkMaskFilter> MakeCompose(sk_sp<SkMaskFilter> outer, sk_sp<SkMaskFilter> inner);
+
+ /**
+ * Compose two maskfilters together using a blendmode. Returns nullptr on failure.
+ */
+ static sk_sp<SkMaskFilter> MakeCombine(sk_sp<SkMaskFilter> dst, sk_sp<SkMaskFilter> src,
+ SkBlendMode);
+
SK_TO_STRING_PUREVIRT()
SK_DEFINE_FLATTENABLE_TYPE(SkMaskFilter)
+
+private:
+ static void InitializeFlattenables();
+ friend class SkFlattenable;
};
#endif