| Index: src/core/SkCanvas.cpp
|
| diff --git a/src/core/SkCanvas.cpp b/src/core/SkCanvas.cpp
|
| index 2308151b40f55b422f131ac027f784e1349d7945..5f01bb5422033f9991ee247690f7f9f92fb8ea15 100644
|
| --- a/src/core/SkCanvas.cpp
|
| +++ b/src/core/SkCanvas.cpp
|
| @@ -2744,6 +2744,19 @@ void SkCanvas::drawPicture(const SkPicture* picture, const SkMatrix* matrix, con
|
|
|
| void SkCanvas::onDrawPicture(const SkPicture* picture, const SkMatrix* matrix,
|
| const SkPaint* paint) {
|
| + if (!paint || paint->canComputeFastBounds()) {
|
| + SkRect bounds = picture->cullRect();
|
| + if (paint) {
|
| + paint->computeFastBounds(bounds, &bounds);
|
| + }
|
| + if (matrix) {
|
| + matrix->mapRect(&bounds);
|
| + }
|
| + if (this->quickReject(bounds)) {
|
| + return;
|
| + }
|
| + }
|
| +
|
| SkBaseDevice* device = this->getTopDevice();
|
| if (device) {
|
| // Canvas has to first give the device the opportunity to render
|
|
|