aboutsummaryrefslogtreecommitdiffhomepage
path: root/experimental/sksg/effects/SkSGClipEffect.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'experimental/sksg/effects/SkSGClipEffect.cpp')
-rw-r--r--experimental/sksg/effects/SkSGClipEffect.cpp50
1 files changed, 0 insertions, 50 deletions
diff --git a/experimental/sksg/effects/SkSGClipEffect.cpp b/experimental/sksg/effects/SkSGClipEffect.cpp
deleted file mode 100644
index b2d68fc8cf..0000000000
--- a/experimental/sksg/effects/SkSGClipEffect.cpp
+++ /dev/null
@@ -1,50 +0,0 @@
-/*
- * Copyright 2018 Google Inc.
- *
- * Use of this source code is governed by a BSD-style license that can be
- * found in the LICENSE file.
- */
-
-#include "SkSGClipEffect.h"
-
-#include "SkCanvas.h"
-#include "SkPath.h"
-#include "SkSGGeometryNode.h"
-
-namespace sksg {
-
-ClipEffect::ClipEffect(sk_sp<RenderNode> child, sk_sp<GeometryNode> clip, bool aa)
- : INHERITED(std::move(child))
- , fClipNode(std::move(clip))
- , fAntiAlias(aa) {
- this->observeInval(fClipNode);
-}
-
-ClipEffect::~ClipEffect() {
- this->unobserveInval(fClipNode);
-}
-
-void ClipEffect::onRender(SkCanvas* canvas) const {
- if (this->bounds().isEmpty())
- return;
-
- SkAutoCanvasRestore acr(canvas, !fNoop);
- if (!fNoop) {
- fClipNode->clip(canvas, fAntiAlias);
- }
-
- this->INHERITED::onRender(canvas);
-}
-
-SkRect ClipEffect::onRevalidate(InvalidationController* ic, const SkMatrix& ctm) {
- SkASSERT(this->hasInval());
-
- const auto clipBounds = fClipNode->revalidate(ic, ctm);
- auto childBounds = this->INHERITED::onRevalidate(ic, ctm);
-
- fNoop = fClipNode->asPath().conservativelyContainsRect(childBounds);
-
- return childBounds.intersect(clipBounds) ? childBounds : SkRect::MakeEmpty();
-}
-
-} // namespace sksg