| OLD | NEW |
| 1 /* | 1 /* |
| 2 * Copyright 2008 The Android Open Source Project | 2 * Copyright 2008 The Android Open Source Project |
| 3 * | 3 * |
| 4 * Use of this source code is governed by a BSD-style license that can be | 4 * Use of this source code is governed by a BSD-style license that can be |
| 5 * found in the LICENSE file. | 5 * found in the LICENSE file. |
| 6 */ | 6 */ |
| 7 | 7 |
| 8 | 8 |
| 9 #include "SkCanvas.h" | 9 #include "SkCanvas.h" |
| 10 #include "SkCanvasPriv.h" | 10 #include "SkCanvasPriv.h" |
| (...skipping 2427 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2438 const SkPaint* paint) { | 2438 const SkPaint* paint) { |
| 2439 SkBaseDevice* device = this->getTopDevice(); | 2439 SkBaseDevice* device = this->getTopDevice(); |
| 2440 if (NULL != device) { | 2440 if (NULL != device) { |
| 2441 // Canvas has to first give the device the opportunity to render | 2441 // Canvas has to first give the device the opportunity to render |
| 2442 // the picture itself. | 2442 // the picture itself. |
| 2443 if (device->EXPERIMENTAL_drawPicture(this, picture, matrix, paint)) { | 2443 if (device->EXPERIMENTAL_drawPicture(this, picture, matrix, paint)) { |
| 2444 return; // the device has rendered the entire picture | 2444 return; // the device has rendered the entire picture |
| 2445 } | 2445 } |
| 2446 } | 2446 } |
| 2447 | 2447 |
| 2448 SkAutoCanvasMatrixPaint acmp(this, matrix, paint, picture->width(), picture-
>height()); | 2448 SkAutoCanvasMatrixPaint acmp(this, matrix, paint, picture->cullRect()); |
| 2449 | 2449 |
| 2450 picture->draw(this); | 2450 picture->draw(this); |
| 2451 } | 2451 } |
| 2452 | 2452 |
| 2453 /////////////////////////////////////////////////////////////////////////////// | 2453 /////////////////////////////////////////////////////////////////////////////// |
| 2454 /////////////////////////////////////////////////////////////////////////////// | 2454 /////////////////////////////////////////////////////////////////////////////// |
| 2455 | 2455 |
| 2456 SkCanvas::LayerIter::LayerIter(SkCanvas* canvas, bool skipEmptyClips) { | 2456 SkCanvas::LayerIter::LayerIter(SkCanvas* canvas, bool skipEmptyClips) { |
| 2457 SK_COMPILE_ASSERT(sizeof(fStorage) >= sizeof(SkDrawIter), fStorage_too_small
); | 2457 SK_COMPILE_ASSERT(sizeof(fStorage) >= sizeof(SkDrawIter), fStorage_too_small
); |
| 2458 | 2458 |
| (...skipping 83 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2542 SkBitmap bitmap; | 2542 SkBitmap bitmap; |
| 2543 if (!bitmap.installPixels(info, pixels, rowBytes)) { | 2543 if (!bitmap.installPixels(info, pixels, rowBytes)) { |
| 2544 return NULL; | 2544 return NULL; |
| 2545 } | 2545 } |
| 2546 return SkNEW_ARGS(SkCanvas, (bitmap)); | 2546 return SkNEW_ARGS(SkCanvas, (bitmap)); |
| 2547 } | 2547 } |
| 2548 | 2548 |
| 2549 /////////////////////////////////////////////////////////////////////////////// | 2549 /////////////////////////////////////////////////////////////////////////////// |
| 2550 | 2550 |
| 2551 SkAutoCanvasMatrixPaint::SkAutoCanvasMatrixPaint(SkCanvas* canvas, const SkMatri
x* matrix, | 2551 SkAutoCanvasMatrixPaint::SkAutoCanvasMatrixPaint(SkCanvas* canvas, const SkMatri
x* matrix, |
| 2552 const SkPaint* paint, int width
, int height) | 2552 const SkPaint* paint, const SkR
ect& bounds) |
| 2553 : fCanvas(canvas) | 2553 : fCanvas(canvas) |
| 2554 , fSaveCount(canvas->getSaveCount()) | 2554 , fSaveCount(canvas->getSaveCount()) |
| 2555 { | 2555 { |
| 2556 if (NULL != paint) { | 2556 if (NULL != paint) { |
| 2557 SkRect bounds = SkRect::MakeWH(SkIntToScalar(width), SkIntToScalar(heigh
t)); | 2557 SkRect newBounds = bounds; |
| 2558 if (matrix) { | 2558 if (matrix) { |
| 2559 matrix->mapRect(&bounds); | 2559 matrix->mapRect(&newBounds); |
| 2560 } | 2560 } |
| 2561 canvas->saveLayer(&bounds, paint); | 2561 canvas->saveLayer(&newBounds, paint); |
| 2562 } else if (NULL != matrix) { | 2562 } else if (NULL != matrix) { |
| 2563 canvas->save(); | 2563 canvas->save(); |
| 2564 } | 2564 } |
| 2565 | 2565 |
| 2566 if (NULL != matrix) { | 2566 if (NULL != matrix) { |
| 2567 canvas->concat(*matrix); | 2567 canvas->concat(*matrix); |
| 2568 } | 2568 } |
| 2569 } | 2569 } |
| 2570 | 2570 |
| 2571 SkAutoCanvasMatrixPaint::~SkAutoCanvasMatrixPaint() { | 2571 SkAutoCanvasMatrixPaint::~SkAutoCanvasMatrixPaint() { |
| 2572 fCanvas->restoreToCount(fSaveCount); | 2572 fCanvas->restoreToCount(fSaveCount); |
| 2573 } | 2573 } |
| OLD | NEW |