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:
@@ -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);
|
||||
|
||||
|
||||
@@ -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.
|
||||
*/
|
||||
|
||||
Reference in New Issue
Block a user