Fix for clip assert in Chrome tests
http://codereview.appspot.com/6442063/ git-svn-id: http://skia.googlecode.com/svn/trunk@4834 2bbb7eff-a529-9590-31e7-b0007b416f81
This commit is contained in:
parent
48af8a0a6a
commit
b0fe4c59e8
@ -256,7 +256,20 @@ void GrClipData::getConservativeBounds(const GrSurface* surface,
|
|||||||
GrIRect* result,
|
GrIRect* result,
|
||||||
bool* isIntersectionOfRects) const {
|
bool* isIntersectionOfRects) const {
|
||||||
|
|
||||||
const GrRect& conservativeBounds = fClipStack->getConservativeBounds();
|
// Until we switch to using the SkClipStack directly we need to take
|
||||||
|
// this belt and suspenders approach here. When the clip stack
|
||||||
|
// reduces to a single clip, GrClip uses that rect as the conservative
|
||||||
|
// bounds rather than SkClipStack's bounds and the reduced rect
|
||||||
|
// was never trimmed to the render target's bounds.
|
||||||
|
SkRect temp = SkRect::MakeLTRB(0, 0,
|
||||||
|
SkIntToScalar(surface->width()),
|
||||||
|
SkIntToScalar(surface->height()));
|
||||||
|
|
||||||
|
GrRect conservativeBounds = fClipStack->getConservativeBounds();
|
||||||
|
if (!conservativeBounds.intersect(temp)) {
|
||||||
|
conservativeBounds.setEmpty();
|
||||||
|
}
|
||||||
|
|
||||||
conservativeBounds.roundOut(result);
|
conservativeBounds.roundOut(result);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user