Simplify clip inside a layer -- will be applied in restore
This reverts commit 4412465089
.
NOTREECHECKS=True
BUG=skia:
Review URL: https://codereview.chromium.org/996233002
This commit is contained in:
parent
d5b98404ec
commit
180aec4345
@ -833,7 +833,6 @@ static bool bounds_affects_clip(SkCanvas::SaveFlags flags) {
|
||||
bool SkCanvas::clipRectBounds(const SkRect* bounds, SaveFlags flags,
|
||||
SkIRect* intersection, const SkImageFilter* imageFilter) {
|
||||
SkIRect clipBounds;
|
||||
SkRegion::Op op = SkRegion::kIntersect_Op;
|
||||
if (!this->getClipDeviceBounds(&clipBounds)) {
|
||||
return false;
|
||||
}
|
||||
@ -842,8 +841,6 @@ bool SkCanvas::clipRectBounds(const SkRect* bounds, SaveFlags flags,
|
||||
|
||||
if (imageFilter) {
|
||||
imageFilter->filterBounds(clipBounds, ctm, &clipBounds);
|
||||
// Filters may grow the bounds beyond the device bounds.
|
||||
op = SkRegion::kReplace_Op;
|
||||
}
|
||||
SkIRect ir;
|
||||
if (bounds) {
|
||||
@ -862,14 +859,13 @@ bool SkCanvas::clipRectBounds(const SkRect* bounds, SaveFlags flags,
|
||||
} else { // no user bounds, so just use the clip
|
||||
ir = clipBounds;
|
||||
}
|
||||
SkASSERT(!ir.isEmpty());
|
||||
|
||||
if (bounds_affects_clip(flags)) {
|
||||
// Simplify the current clips since they will be applied properly during restore()
|
||||
fCachedLocalClipBoundsDirty = true;
|
||||
fClipStack->clipDevRect(ir, op);
|
||||
// early exit if the clip is now empty
|
||||
if (!fMCRec->fRasterClip.op(ir, op)) {
|
||||
return false;
|
||||
}
|
||||
fClipStack->clipDevRect(ir, SkRegion::kReplace_Op);
|
||||
fMCRec->fRasterClip.setRect(ir);
|
||||
}
|
||||
|
||||
if (intersection) {
|
||||
|
Loading…
Reference in New Issue
Block a user