Index: src/core/SkClipStack.cpp |
diff --git a/src/core/SkClipStack.cpp b/src/core/SkClipStack.cpp |
index 30f5a46fac8a0a2ae5c650d84741b9db6dee7084..0019077804967ddf354fdb4f2f634eee013a99d0 100644 |
--- a/src/core/SkClipStack.cpp |
+++ b/src/core/SkClipStack.cpp |
@@ -83,7 +83,7 @@ void SkClipStack::Element::replay(SkCanvasClipVisitor* visitor) const { |
visitor->clipRect(this->getRect(), this->getOp(), this->isAA()); |
break; |
case kEmpty_Type: |
- visitor->clipRect(kEmptyRect, SkRegion::kIntersect_Op, false); |
+ visitor->clipRect(kEmptyRect, SkCanvas::kIntersect_Op, false); |
break; |
} |
} |
@@ -111,7 +111,7 @@ void SkClipStack::Element::invertShapeFillType() { |
} |
} |
-void SkClipStack::Element::initPath(int saveCount, const SkPath& path, SkRegion::Op op, |
+void SkClipStack::Element::initPath(int saveCount, const SkPath& path, SkCanvas::ClipOp op, |
bool doAA) { |
if (!path.isInverseFillType()) { |
SkRect r; |
@@ -176,16 +176,16 @@ void SkClipStack::Element::checkEmpty() const { |
SkASSERT(!fPath.isValid()); |
} |
-bool SkClipStack::Element::canBeIntersectedInPlace(int saveCount, SkRegion::Op op) const { |
+bool SkClipStack::Element::canBeIntersectedInPlace(int saveCount, SkCanvas::ClipOp op) const { |
if (kEmpty_Type == fType && |
- (SkRegion::kDifference_Op == op || SkRegion::kIntersect_Op == op)) { |
+ (SkCanvas::kDifference_Op == op || SkCanvas::kIntersect_Op == op)) { |
return true; |
} |
// Only clips within the same save/restore frame (as captured by |
// the save count) can be merged |
return fSaveCount == saveCount && |
- SkRegion::kIntersect_Op == op && |
- (SkRegion::kIntersect_Op == fOp || SkRegion::kReplace_Op == fOp); |
+ SkCanvas::kIntersect_Op == op && |
+ (SkCanvas::kIntersect_Op == fOp || SkCanvas::kReplace_Op == fOp); |
} |
bool SkClipStack::Element::rectRectIntersectAllowed(const SkRect& newR, bool newAA) const { |
@@ -399,9 +399,9 @@ void SkClipStack::Element::updateBoundAndGenID(const Element* prior) { |
fFiniteBound = this->getRect(); |
fFiniteBoundType = kNormal_BoundsType; |
- if (SkRegion::kReplace_Op == fOp || |
- (SkRegion::kIntersect_Op == fOp && nullptr == prior) || |
- (SkRegion::kIntersect_Op == fOp && prior->fIsIntersectionOfRects && |
+ if (SkCanvas::kReplace_Op == fOp || |
+ (SkCanvas::kIntersect_Op == fOp && nullptr == prior) || |
+ (SkCanvas::kIntersect_Op == fOp && prior->fIsIntersectionOfRects && |
prior->rectRectIntersectAllowed(this->getRect(), fDoAA))) { |
fIsIntersectionOfRects = true; |
} |
@@ -460,28 +460,28 @@ void SkClipStack::Element::updateBoundAndGenID(const Element* prior) { |
// Now integrate with clip with the prior clips |
switch (fOp) { |
- case SkRegion::kDifference_Op: |
+ case SkCanvas::kDifference_Op: |
this->combineBoundsDiff(combination, prevFinite); |
break; |
- case SkRegion::kXOR_Op: |
+ case SkCanvas::kXOR_Op: |
this->combineBoundsXOR(combination, prevFinite); |
break; |
- case SkRegion::kUnion_Op: |
+ case SkCanvas::kUnion_Op: |
this->combineBoundsUnion(combination, prevFinite); |
break; |
- case SkRegion::kIntersect_Op: |
+ case SkCanvas::kIntersect_Op: |
this->combineBoundsIntersection(combination, prevFinite); |
break; |
- case SkRegion::kReverseDifference_Op: |
+ case SkCanvas::kReverseDifference_Op: |
this->combineBoundsRevDiff(combination, prevFinite); |
break; |
- case SkRegion::kReplace_Op: |
+ case SkCanvas::kReplace_Op: |
// Replace just ignores everything prior |
// The current clip's bound information is already filled in |
// so nothing to do |
break; |
default: |
- SkDebugf("SkRegion::Op error\n"); |
+ SkDebugf("SkCanvas::ClipOp error\n"); |
SkASSERT(0); |
break; |
} |
@@ -507,7 +507,7 @@ SkClipStack::SkClipStack(const SkRect& r) |
: fDeque(sizeof(Element), kDefaultElementAllocCnt) |
, fSaveCount(0) { |
if (!r.isEmpty()) { |
- this->clipDevRect(r, SkRegion::kReplace_Op, false); |
+ this->clipDevRect(r, SkCanvas::kReplace_Op, false); |
} |
} |
@@ -517,7 +517,7 @@ SkClipStack::SkClipStack(const SkIRect& r) |
if (!r.isEmpty()) { |
SkRect temp; |
temp.set(r); |
- this->clipDevRect(temp, SkRegion::kReplace_Op, false); |
+ this->clipDevRect(temp, SkCanvas::kReplace_Op, false); |
} |
} |
@@ -626,7 +626,7 @@ bool SkClipStack::internalQuickContains(const SkRect& rect) const { |
Iter iter(*this, Iter::kTop_IterStart); |
const Element* element = iter.prev(); |
while (element != nullptr) { |
- if (SkRegion::kIntersect_Op != element->getOp() && SkRegion::kReplace_Op != element->getOp()) |
+ if (SkCanvas::kIntersect_Op != element->getOp() && SkCanvas::kReplace_Op != element->getOp()) |
return false; |
if (element->isInverseFilled()) { |
// Part of 'rect' could be trimmed off by the inverse-filled clip element |
@@ -638,7 +638,7 @@ bool SkClipStack::internalQuickContains(const SkRect& rect) const { |
return false; |
} |
} |
- if (SkRegion::kReplace_Op == element->getOp()) { |
+ if (SkCanvas::kReplace_Op == element->getOp()) { |
break; |
} |
element = iter.prev(); |
@@ -651,7 +651,7 @@ bool SkClipStack::internalQuickContains(const SkRRect& rrect) const { |
Iter iter(*this, Iter::kTop_IterStart); |
const Element* element = iter.prev(); |
while (element != nullptr) { |
- if (SkRegion::kIntersect_Op != element->getOp() && SkRegion::kReplace_Op != element->getOp()) |
+ if (SkCanvas::kIntersect_Op != element->getOp() && SkCanvas::kReplace_Op != element->getOp()) |
return false; |
if (element->isInverseFilled()) { |
// Part of 'rrect' could be trimmed off by the inverse-filled clip element |
@@ -663,7 +663,7 @@ bool SkClipStack::internalQuickContains(const SkRRect& rrect) const { |
return false; |
} |
} |
- if (SkRegion::kReplace_Op == element->getOp()) { |
+ if (SkCanvas::kReplace_Op == element->getOp()) { |
break; |
} |
element = iter.prev(); |
@@ -684,8 +684,8 @@ bool SkClipStack::asPath(SkPath *path) const { |
element->asPath(&operand); |
} |
- SkRegion::Op elementOp = element->getOp(); |
- if (elementOp == SkRegion::kReplace_Op) { |
+ SkCanvas::ClipOp elementOp = element->getOp(); |
+ if (elementOp == SkCanvas::kReplace_Op) { |
*path = operand; |
} else { |
Op(*path, operand, (SkPathOp)elementOp, path); |
@@ -736,7 +736,7 @@ void SkClipStack::pushElement(const Element& element) { |
} |
break; |
} |
- } else if (SkRegion::kReplace_Op == element.getOp()) { |
+ } else if (SkCanvas::kReplace_Op == element.getOp()) { |
this->restoreTo(fSaveCount - 1); |
prior = (Element*) fDeque.back(); |
} |
@@ -745,17 +745,17 @@ void SkClipStack::pushElement(const Element& element) { |
newElement->updateBoundAndGenID(prior); |
} |
-void SkClipStack::clipDevRRect(const SkRRect& rrect, SkRegion::Op op, bool doAA) { |
+void SkClipStack::clipDevRRect(const SkRRect& rrect, SkCanvas::ClipOp op, bool doAA) { |
Element element(fSaveCount, rrect, op, doAA); |
this->pushElement(element); |
} |
-void SkClipStack::clipDevRect(const SkRect& rect, SkRegion::Op op, bool doAA) { |
+void SkClipStack::clipDevRect(const SkRect& rect, SkCanvas::ClipOp op, bool doAA) { |
Element element(fSaveCount, rect, op, doAA); |
this->pushElement(element); |
} |
-void SkClipStack::clipDevPath(const SkPath& path, SkRegion::Op op, bool doAA) { |
+void SkClipStack::clipDevPath(const SkPath& path, SkCanvas::ClipOp op, bool doAA) { |
Element element(fSaveCount, path, op, doAA); |
this->pushElement(element); |
} |
@@ -763,7 +763,7 @@ void SkClipStack::clipDevPath(const SkPath& path, SkRegion::Op op, bool doAA) { |
void SkClipStack::clipEmpty() { |
Element* element = (Element*) fDeque.back(); |
- if (element && element->canBeIntersectedInPlace(fSaveCount, SkRegion::kIntersect_Op)) { |
+ if (element && element->canBeIntersectedInPlace(fSaveCount, SkCanvas::kIntersect_Op)) { |
element->setEmpty(); |
} |
new (fDeque.push_back()) Element(fSaveCount); |
@@ -789,7 +789,7 @@ const SkClipStack::Element* SkClipStack::Iter::prev() { |
return (const SkClipStack::Element*)fIter.prev(); |
} |
-const SkClipStack::Element* SkClipStack::Iter::skipToTopmost(SkRegion::Op op) { |
+const SkClipStack::Element* SkClipStack::Iter::skipToTopmost(SkCanvas::ClipOp op) { |
if (nullptr == fStack) { |
return nullptr; |
@@ -874,13 +874,13 @@ bool SkClipStack::isRRect(const SkRect& bounds, SkRRect* rrect, bool* aa) const |
back->getType() != SkClipStack::Element::kRRect_Type) { |
return false; |
} |
- if (back->getOp() == SkRegion::kReplace_Op) { |
+ if (back->getOp() == SkCanvas::kReplace_Op) { |
*rrect = back->asRRect(); |
*aa = back->isAA(); |
return true; |
} |
- if (back->getOp() == SkRegion::kIntersect_Op) { |
+ if (back->getOp() == SkCanvas::kIntersect_Op) { |
SkRect backBounds; |
if (!backBounds.intersect(bounds, back->asRRect().rect())) { |
return false; |
@@ -889,12 +889,12 @@ bool SkClipStack::isRRect(const SkRect& bounds, SkRRect* rrect, bool* aa) const |
SkDeque::Iter iter(fDeque, SkDeque::Iter::kBack_IterStart); |
SkAssertResult(static_cast<const Element*>(iter.prev()) == back); |
while (const Element* prior = (const Element*)iter.prev()) { |
- if ((prior->getOp() != SkRegion::kIntersect_Op && |
- prior->getOp() != SkRegion::kReplace_Op) || |
+ if ((prior->getOp() != SkCanvas::kIntersect_Op && |
+ prior->getOp() != SkCanvas::kReplace_Op) || |
!prior->contains(backBounds)) { |
return false; |
} |
- if (prior->getOp() == SkRegion::kReplace_Op) { |
+ if (prior->getOp() == SkCanvas::kReplace_Op) { |
break; |
} |
} |
@@ -946,12 +946,12 @@ void SkClipStack::Element::dump() const { |
"reverse-difference", |
"replace", |
}; |
- static_assert(0 == SkRegion::kDifference_Op, "op_str"); |
- static_assert(1 == SkRegion::kIntersect_Op, "op_str"); |
- static_assert(2 == SkRegion::kUnion_Op, "op_str"); |
- static_assert(3 == SkRegion::kXOR_Op, "op_str"); |
- static_assert(4 == SkRegion::kReverseDifference_Op, "op_str"); |
- static_assert(5 == SkRegion::kReplace_Op, "op_str"); |
+ static_assert(0 == SkCanvas::kDifference_Op, "op_str"); |
+ static_assert(1 == SkCanvas::kIntersect_Op, "op_str"); |
+ static_assert(2 == SkCanvas::kUnion_Op, "op_str"); |
+ static_assert(3 == SkCanvas::kXOR_Op, "op_str"); |
+ static_assert(4 == SkCanvas::kReverseDifference_Op, "op_str"); |
+ static_assert(5 == SkCanvas::kReplace_Op, "op_str"); |
static_assert(SK_ARRAY_COUNT(kOpStrings) == SkRegion::kOpCnt, "op_str"); |
SkDebugf("Type: %s, Op: %s, AA: %s, Save Count: %d\n", kTypeStrings[fType], |