Chromium Code Reviews| Index: src/core/SkPicturePlayback.cpp |
| =================================================================== |
| --- src/core/SkPicturePlayback.cpp (revision 9211) |
| +++ 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 opNum, int type) { |
|
scroggo
2013/05/22 14:11:07
I find opNum a little confusing. I was assuming th
robertphillips
2013/05/22 18:51:28
I think opIndex is a bit clearer - done.
|
| + return false; |
| } |
| -void SkPicturePlayback::postDraw(size_t offset) { |
| +void SkPicturePlayback::postDraw(int opNum) { |
| } |
| #endif |
| @@ -712,6 +712,10 @@ |
| fAbortCurrentPlayback = false; |
| #endif |
| +#ifdef SK_DEVELOPER |
| + int opNum = -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 { |
| + opNum++; |
| + if (this->preDraw(opNum, 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(opNum); |
| #endif |
| if (it.isValid()) { |