Turn clear-to-white-then-intersect clips into clear-to-black-then-replace
R=robertphillips@google.com, brian@thesalomons.net
Author: bsalomon@google.com
Review URL: https://codereview.chromium.org/27170003
git-svn-id: http://skia.googlecode.com/svn/trunk@11786 2bbb7eff-a529-9590-31e7-b0007b416f81
diff --git a/src/gpu/GrReducedClip.cpp b/src/gpu/GrReducedClip.cpp
index da42e8c..2b6583e 100644
--- a/src/gpu/GrReducedClip.cpp
+++ b/src/gpu/GrReducedClip.cpp
@@ -355,7 +355,13 @@
break;
case SkRegion::kIntersect_Op:
// intersecting with the empty set yields the empty set
- skippable = kAllOut_InitialState == *initialState;
+ if (kAllOut_InitialState == *initialState) {
+ skippable = true;
+ } else {
+ // We can clear to zero and then simply draw the clip element.
+ *initialState = kAllOut_InitialState;
+ element->setOp(SkRegion::kReplace_Op);
+ }
break;
case SkRegion::kUnion_Op:
if (kAllIn_InitialState == *initialState) {