| OLD | NEW |
| 1 | 1 |
| 2 /* | 2 /* |
| 3 * Copyright 2011 Google Inc. | 3 * Copyright 2011 Google Inc. |
| 4 * | 4 * |
| 5 * Use of this source code is governed by a BSD-style license that can be | 5 * Use of this source code is governed by a BSD-style license that can be |
| 6 * found in the LICENSE file. | 6 * found in the LICENSE file. |
| 7 */ | 7 */ |
| 8 #include "SkPicturePlayback.h" | 8 #include "SkPicturePlayback.h" |
| 9 #include "SkPictureRecord.h" | 9 #include "SkPictureRecord.h" |
| 10 #include "SkTypeface.h" | 10 #include "SkTypeface.h" |
| (...skipping 638 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 649 *size = 0; | 649 *size = 0; |
| 650 } else { | 650 } else { |
| 651 UNPACK_8_24(temp, op, *size); | 651 UNPACK_8_24(temp, op, *size); |
| 652 if (MASK_24 == *size) { | 652 if (MASK_24 == *size) { |
| 653 *size = reader->readInt(); | 653 *size = reader->readInt(); |
| 654 } | 654 } |
| 655 } | 655 } |
| 656 return (DrawType) op; | 656 return (DrawType) op; |
| 657 } | 657 } |
| 658 | 658 |
| 659 void SkPicturePlayback::draw(SkCanvas& canvas) { | 659 void SkPicturePlayback::draw(SkCanvas& canvas, SkDrawPictureCallback* callback)
{ |
| 660 #ifdef ENABLE_TIME_DRAW | 660 #ifdef ENABLE_TIME_DRAW |
| 661 SkAutoTime at("SkPicture::draw", 50); | 661 SkAutoTime at("SkPicture::draw", 50); |
| 662 #endif | 662 #endif |
| 663 | 663 |
| 664 #ifdef SPEW_CLIP_SKIPPING | 664 #ifdef SPEW_CLIP_SKIPPING |
| 665 SkipClipRec skipRect, skipRRect, skipRegion, skipPath; | 665 SkipClipRec skipRect, skipRRect, skipRegion, skipPath; |
| 666 #endif | 666 #endif |
| 667 | 667 |
| 668 #ifdef SK_BUILD_FOR_ANDROID | 668 #ifdef SK_BUILD_FOR_ANDROID |
| 669 SkAutoMutexAcquire autoMutex(fDrawMutex); | 669 SkAutoMutexAcquire autoMutex(fDrawMutex); |
| (...skipping 29 matching lines...) Expand all Loading... |
| 699 if (it.isValid()) { | 699 if (it.isValid()) { |
| 700 uint32_t skipTo = it.draw(); | 700 uint32_t skipTo = it.draw(); |
| 701 if (kDrawComplete == skipTo) { | 701 if (kDrawComplete == skipTo) { |
| 702 return; | 702 return; |
| 703 } | 703 } |
| 704 reader.setOffset(skipTo); | 704 reader.setOffset(skipTo); |
| 705 } | 705 } |
| 706 | 706 |
| 707 // Record this, so we can concat w/ it if we encounter a setMatrix() | 707 // Record this, so we can concat w/ it if we encounter a setMatrix() |
| 708 SkMatrix initialMatrix = canvas.getTotalMatrix(); | 708 SkMatrix initialMatrix = canvas.getTotalMatrix(); |
| 709 int originalSaveCount = canvas.getSaveCount(); |
| 709 | 710 |
| 710 #ifdef SK_BUILD_FOR_ANDROID | 711 #ifdef SK_BUILD_FOR_ANDROID |
| 711 fAbortCurrentPlayback = false; | 712 fAbortCurrentPlayback = false; |
| 712 #endif | 713 #endif |
| 713 | 714 |
| 714 while (!reader.eof()) { | 715 while (!reader.eof()) { |
| 716 if (callback && callback->abortDrawing()) { |
| 717 canvas.restoreToCount(originalSaveCount); |
| 718 return; |
| 719 } |
| 715 #ifdef SK_BUILD_FOR_ANDROID | 720 #ifdef SK_BUILD_FOR_ANDROID |
| 716 if (fAbortCurrentPlayback) { | 721 if (fAbortCurrentPlayback) { |
| 717 return; | 722 return; |
| 718 } | 723 } |
| 719 #endif | 724 #endif |
| 720 | 725 |
| 721 size_t curOffset = reader.offset(); | 726 size_t curOffset = reader.offset(); |
| 722 uint32_t size; | 727 uint32_t size; |
| 723 DrawType op = read_op_and_size(&reader, &size); | 728 DrawType op = read_op_and_size(&reader, &size); |
| 724 size_t skipTo = 0; | 729 size_t skipTo = 0; |
| (...skipping 862 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1587 for (index = 0; index < fRegionCount; index++) | 1592 for (index = 0; index < fRegionCount; index++) |
| 1588 bufferPtr += snprintf(bufferPtr, DUMP_BUFFER_SIZE - (bufferPtr - pBuffer
), | 1593 bufferPtr += snprintf(bufferPtr, DUMP_BUFFER_SIZE - (bufferPtr - pBuffer
), |
| 1589 "region%p, ", &fRegions[index]); | 1594 "region%p, ", &fRegions[index]); |
| 1590 if (fRegionCount > 0) | 1595 if (fRegionCount > 0) |
| 1591 SkDebugf("%s0};\n", pBuffer); | 1596 SkDebugf("%s0};\n", pBuffer); |
| 1592 | 1597 |
| 1593 const_cast<SkPicturePlayback*>(this)->dumpStream(); | 1598 const_cast<SkPicturePlayback*>(this)->dumpStream(); |
| 1594 } | 1599 } |
| 1595 | 1600 |
| 1596 #endif | 1601 #endif |
| OLD | NEW |