| Index: src/core/SkRecordDraw.cpp
|
| diff --git a/src/core/SkRecordDraw.cpp b/src/core/SkRecordDraw.cpp
|
| index f512ecf0154c01eaffec3d6219ecfd91ff3fe126..849e8f92b249aa422cb3b538b6f06f2a10d9d2c1 100644
|
| --- a/src/core/SkRecordDraw.cpp
|
| +++ b/src/core/SkRecordDraw.cpp
|
| @@ -111,6 +111,7 @@
|
| DRAW(DrawPosTextH, drawPosTextH(r.text, r.byteLength, r.xpos, r.y, r.paint));
|
| DRAW(DrawRRect, drawRRect(r.rrect, r.paint));
|
| DRAW(DrawRect, drawRect(r.rect, r.paint));
|
| +DRAW(DrawSprite, drawSprite(r.bitmap.shallowCopy(), r.left, r.top, r.paint));
|
| DRAW(DrawText, drawText(r.text, r.byteLength, r.x, r.y, r.paint));
|
| DRAW(DrawTextBlob, drawTextBlob(r.blob, r.x, r.y, r.paint));
|
| DRAW(DrawTextOnPath, drawTextOnPath(r.text, r.byteLength, r.path, &r.matrix, r.paint));
|
| @@ -388,6 +389,14 @@
|
| Bounds bounds(const DrawPaint&) const { return fCurrentClipBounds; }
|
| Bounds bounds(const NoOp&) const { return Bounds::MakeEmpty(); } // NoOps don't draw.
|
|
|
| + Bounds bounds(const DrawSprite& op) const { // Ignores the matrix, but respects the clip.
|
| + SkRect rect = Bounds::MakeXYWH(op.left, op.top, op.bitmap.width(), op.bitmap.height());
|
| + if (!rect.intersect(fCurrentClipBounds)) {
|
| + return Bounds::MakeEmpty();
|
| + }
|
| + return rect;
|
| + }
|
| +
|
| Bounds bounds(const DrawRect& op) const { return this->adjustAndMap(op.rect, &op.paint); }
|
| Bounds bounds(const DrawOval& op) const { return this->adjustAndMap(op.oval, &op.paint); }
|
| Bounds bounds(const DrawRRect& op) const {
|
|
|