Improve handling of inverse clip paths in GrClipMaskManager.
Will require rebaselining of complexclip_aa and complexclip_aa_layer on GPU.
R=robertphillips@google.com
Review URL: https://codereview.appspot.com/6907052
git-svn-id: http://skia.googlecode.com/svn/trunk@6712 2bbb7eff-a529-9590-31e7-b0007b416f81
diff --git a/src/core/SkClipStack.cpp b/src/core/SkClipStack.cpp
index 107c20f..29d008a 100644
--- a/src/core/SkClipStack.cpp
+++ b/src/core/SkClipStack.cpp
@@ -16,6 +16,21 @@
static const int32_t kFirstUnreservedGenID = 3;
int32_t SkClipStack::gGenID = kFirstUnreservedGenID;
+void SkClipStack::Element::invertShapeFillType() {
+ switch (fType) {
+ case kRect_Type:
+ fPath.reset();
+ fPath.addRect(fRect);
+ fPath.setFillType(SkPath::kInverseWinding_FillType);
+ fType = kPath_Type;
+ break;
+ case kPath_Type:
+ fPath.toggleInverseFillType();
+ case kEmpty_Type:
+ break;
+ }
+}
+
void SkClipStack::Element::checkEmpty() const {
SkASSERT(fFiniteBound.isEmpty());
SkASSERT(kNormal_BoundsType == fFiniteBoundType);