Fix bug where we incorrectly clipped the bounds to the device size.

This CL also updates the documenation to make it clear that the API
returns in local space, not clipped to the size of the bitmap/device.

bug: 8747526
Change-Id: I389844672ce955341863f9940c3b401ab00dc1dc
This commit is contained in:
Derek Sollenberger
2013-05-09 09:49:41 -04:00
parent 2c76016cbc
commit 708144e828
2 changed files with 6 additions and 9 deletions

View File

@@ -964,16 +964,10 @@ static void doDrawTextDecorations(SkCanvas* canvas, jfloat x, jfloat y, jfloat l
jobject bounds) {
SkRect r;
SkIRect ir;
bool result = canvas->getClipBounds(&r);
bool result = canvas->getClipBounds(&r);
if (!result) {
r.setEmpty();
} else {
// ensure the clip is not larger than the canvas
SkRect canvasRect;
SkISize deviceSize = canvas->getDeviceSize();
canvasRect.iset(0, 0, deviceSize.fWidth, deviceSize.fHeight);
r.intersect(canvasRect);
}
r.round(&ir);

View File

@@ -781,7 +781,10 @@ public class Canvas {
}
/**
* Retrieve the clip bounds, returning true if they are non-empty.
* Return the bounds of the current clip (in local coordinates) in the
* bounds parameter, and return true if it is non-empty. This can be useful
* in a way similar to quickReject, in that it tells you that drawing
* outside of these bounds will be clipped out.
*
* @param bounds Return the clip bounds here. If it is null, ignore it but
* still return true if the current clip is non-empty.
@@ -792,7 +795,7 @@ public class Canvas {
}
/**
* Retrieve the clip bounds.
* Retrieve the bounds of the current clip (in local coordinates).
*
* @return the clip bounds, or [0, 0, 0, 0] if the clip is empty.
*/