aboutsummaryrefslogtreecommitdiffhomepage
path: root/experimental/sksg/effects/SkSGMaskEffect.h
diff options
context:
space:
mode:
authorGravatar Florin Malita <fmalita@chromium.org>2018-03-05 14:01:41 -0500
committerGravatar Skia Commit-Bot <skia-commit-bot@chromium.org>2018-03-05 20:11:05 +0000
commita016be94993aa57a3a5afcea07d70e6e18068d48 (patch)
treedd8a313268b3c81377e818784244f046f1d76018 /experimental/sksg/effects/SkSGMaskEffect.h
parent07edbd45c24b13c6d8c638c50f04291c427e9575 (diff)
[skottie] Inverted matte support
TBR= Change-Id: I761d80d27d9a737710123a183af37135c270b8a7 Reviewed-on: https://skia-review.googlesource.com/112162 Reviewed-by: Florin Malita <fmalita@chromium.org> Commit-Queue: Florin Malita <fmalita@chromium.org>
Diffstat (limited to 'experimental/sksg/effects/SkSGMaskEffect.h')
-rw-r--r--experimental/sksg/effects/SkSGMaskEffect.h15
1 files changed, 11 insertions, 4 deletions
diff --git a/experimental/sksg/effects/SkSGMaskEffect.h b/experimental/sksg/effects/SkSGMaskEffect.h
index aef82b4ef6..c4fd0120e5 100644
--- a/experimental/sksg/effects/SkSGMaskEffect.h
+++ b/experimental/sksg/effects/SkSGMaskEffect.h
@@ -18,23 +18,30 @@ namespace sksg {
*/
class MaskEffect final : public EffectNode {
public:
- static sk_sp<MaskEffect> Make(sk_sp<RenderNode> child, sk_sp<RenderNode> mask) {
+ enum class Mode {
+ kNormal,
+ kInvert
+ };
+
+ static sk_sp<MaskEffect> Make(sk_sp<RenderNode> child, sk_sp<RenderNode> mask,
+ Mode mode = Mode::kNormal) {
return (child && mask)
- ? sk_sp<MaskEffect>(new MaskEffect(std::move(child), std::move(mask)))
+ ? sk_sp<MaskEffect>(new MaskEffect(std::move(child), std::move(mask), mode))
: nullptr;
}
~MaskEffect() override;
protected:
- MaskEffect(sk_sp<RenderNode>, sk_sp<RenderNode> mask);
+ MaskEffect(sk_sp<RenderNode>, sk_sp<RenderNode> mask, Mode);
void onRender(SkCanvas*) const override;
SkRect onRevalidate(InvalidationController*, const SkMatrix&) override;
private:
- sk_sp<RenderNode> fMaskNode;
+ const sk_sp<RenderNode> fMaskNode;
+ const Mode fMaskMode;
typedef EffectNode INHERITED;
};