Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(115)

Unified Diff: src/core/SkCanvas.cpp

Issue 546113002: move rasterclip_ helper into rasterclip (Closed) Base URL: https://skia.googlesource.com/skia.git@master
Patch Set: Created 6 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « no previous file | src/core/SkRasterClip.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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) {
« no previous file with comments | « no previous file | src/core/SkRasterClip.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698