Index: src/core/SkCanvas.cpp |
diff --git a/src/core/SkCanvas.cpp b/src/core/SkCanvas.cpp |
index cdc9489afcc99765af039d9c2d0612d84f7c5dde..99786151abb150dd9500c46121079f1af43a5b81 100644 |
--- a/src/core/SkCanvas.cpp |
+++ b/src/core/SkCanvas.cpp |
@@ -1301,37 +1301,7 @@ void SkCanvas::onClipRect(const SkRect& rect, SkRegion::Op op, ClipEdgeStyle edg |
static void rasterclip_path(SkRasterClip* rc, const SkCanvas* canvas, const SkPath& devPath, |
SkRegion::Op op, bool doAA) { |
- // base is used to limit the size (and therefore memory allocation) of the |
- // region that results from scan converting devPath. |
- SkRegion base; |
- |
- if (SkRegion::kIntersect_Op == op) { |
- // since we are intersect, we can do better (tighter) with currRgn's |
- // bounds, than just using the device. However, if currRgn is complex, |
- // our region blitter may hork, so we do that case in two steps. |
- if (rc->isRect()) { |
- // FIXME: we should also be able to do this when rc->isBW(), |
- // but relaxing the test above triggers GM asserts in |
- // SkRgnBuilder::blitH(). We need to investigate what's going on. |
- rc->setPath(devPath, rc->bwRgn(), doAA); |
- } else { |
- base.setRect(rc->getBounds()); |
- SkRasterClip clip; |
- clip.setPath(devPath, base, doAA); |
- rc->op(clip, op); |
- } |
- } else { |
- const SkISize size = canvas->getBaseLayerSize(); |
- base.setRect(0, 0, size.width(), size.height()); |
- |
- if (SkRegion::kReplace_Op == op) { |
- rc->setPath(devPath, base, doAA); |
- } else { |
- SkRasterClip clip; |
- clip.setPath(devPath, base, doAA); |
- rc->op(clip, op); |
- } |
- } |
+ rc->op(devPath, canvas->getBaseLayerSize(), op, doAA); |
} |
void SkCanvas::clipRRect(const SkRRect& rrect, SkRegion::Op op, bool doAA) { |