| Index: src/core/SkPicturePlayback.cpp
|
| ===================================================================
|
| --- src/core/SkPicturePlayback.cpp (revision 9244)
|
| +++ src/core/SkPicturePlayback.cpp (working copy)
|
| @@ -625,11 +625,11 @@
|
| #endif
|
|
|
| #ifdef SK_DEVELOPER
|
| -size_t SkPicturePlayback::preDraw(size_t offset, int type) {
|
| - return 0;
|
| +bool SkPicturePlayback::preDraw(int opIndex, int type) {
|
| + return false;
|
| }
|
|
|
| -void SkPicturePlayback::postDraw(size_t offset) {
|
| +void SkPicturePlayback::postDraw(int opIndex) {
|
| }
|
| #endif
|
|
|
| @@ -712,6 +712,10 @@
|
| fAbortCurrentPlayback = false;
|
| #endif
|
|
|
| +#ifdef SK_DEVELOPER
|
| + int opIndex = -1;
|
| +#endif
|
| +
|
| while (!reader.eof()) {
|
| if (callback && callback->abortDrawing()) {
|
| canvas.restoreToCount(originalSaveCount);
|
| @@ -727,14 +731,16 @@
|
| uint32_t size;
|
| DrawType op = read_op_and_size(&reader, &size);
|
| size_t skipTo = 0;
|
| + if (NOOP == op) {
|
| + // NOOPs are to be ignored - do not propagate them any further
|
| + skipTo = curOffset + size;
|
| #ifdef SK_DEVELOPER
|
| - // TODO: once chunk sizes are in all .skps just use
|
| - // "curOffset + size"
|
| - skipTo = this->preDraw(curOffset, op);
|
| + } else {
|
| + opIndex++;
|
| + if (this->preDraw(opIndex, op)) {
|
| + skipTo = curOffset + size;
|
| + }
|
| #endif
|
| - if (0 == skipTo && NOOP == op) {
|
| - // NOOPs are to be ignored - do not propagate them any further
|
| - skipTo = curOffset + size;
|
| }
|
|
|
| if (0 != skipTo) {
|
| @@ -1023,7 +1029,7 @@
|
| }
|
|
|
| #ifdef SK_DEVELOPER
|
| - this->postDraw(curOffset);
|
| + this->postDraw(opIndex);
|
| #endif
|
|
|
| if (it.isValid()) {
|
|
|