Index: src/core/SkClipStack.cpp |
diff --git a/src/core/SkClipStack.cpp b/src/core/SkClipStack.cpp |
index b60a6c961d24977e6e3857df10585cda0b1bcf61..d087592b173c3fbaaacc5441075b283929a26813 100644 |
--- a/src/core/SkClipStack.cpp |
+++ b/src/core/SkClipStack.cpp |
@@ -1,10 +1,11 @@ |
- |
/* |
* Copyright 2011 Google Inc. |
* |
* Use of this source code is governed by a BSD-style license that can be |
* found in the LICENSE file. |
*/ |
+ |
+#include "SkCanvas.h" |
#include "SkClipStack.h" |
#include "SkPath.h" |
#include "SkThread.h" |
@@ -66,6 +67,25 @@ bool SkClipStack::Element::operator== (const Element& element) const { |
} |
} |
+void SkClipStack::Element::replay(SkCanvasClipVisitor* visitor) const { |
+ static const SkRect kEmptyRect = { 0, 0, 0, 0 }; |
+ |
+ switch (fType) { |
+ case kPath_Type: |
+ visitor->clipPath(this->getPath(), this->getOp(), this->isAA()); |
+ break; |
+ case kRRect_Type: |
+ visitor->clipRRect(this->getRRect(), this->getOp(), this->isAA()); |
+ break; |
+ case kRect_Type: |
+ visitor->clipRect(this->getRect(), this->getOp(), this->isAA()); |
+ break; |
+ case kEmpty_Type: |
+ visitor->clipRect(kEmptyRect, SkRegion::kIntersect_Op, false); |
+ break; |
+ } |
+} |
+ |
void SkClipStack::Element::invertShapeFillType() { |
switch (fType) { |
case kRect_Type: |