Chromium Code Reviews| Index: src/core/SkPicturePlayback.cpp |
| diff --git a/src/core/SkPicturePlayback.cpp b/src/core/SkPicturePlayback.cpp |
| index d54a6c5f3b3384d99499e6966dd139b4fce280e5..e1c9a3a65f98c78df4caeae806a01ca716ee782d 100644 |
| --- a/src/core/SkPicturePlayback.cpp |
| +++ b/src/core/SkPicturePlayback.cpp |
| @@ -656,7 +656,7 @@ static DrawType read_op_and_size(SkReader32* reader, uint32_t* size) { |
| return (DrawType) op; |
| } |
| -void SkPicturePlayback::draw(SkCanvas& canvas) { |
| +void SkPicturePlayback::draw(SkCanvas& canvas, SkDrawPictureCallback* callback) { |
| #ifdef ENABLE_TIME_DRAW |
| SkAutoTime at("SkPicture::draw", 50); |
| #endif |
| @@ -706,12 +706,17 @@ void SkPicturePlayback::draw(SkCanvas& canvas) { |
| // Record this, so we can concat w/ it if we encounter a setMatrix() |
| SkMatrix initialMatrix = canvas.getTotalMatrix(); |
| + int originalSaveCount = canvas.getSaveCount(); |
| #ifdef SK_BUILD_FOR_ANDROID |
| fAbortCurrentPlayback = false; |
| #endif |
| while (!reader.eof()) { |
| + if (callback && callback->abortDrawing()) { |
| + canvas.restoreToCount(originalSaveCount); |
| + return; |
| + } |
| #ifdef SK_BUILD_FOR_ANDROID |
|
robertphillips
2013/05/16 15:04:23
can this be folded into the new system?
|
| if (fAbortCurrentPlayback) { |
| return; |