| Index: src/core/SkPicturePlayback.cpp
|
| ===================================================================
|
| --- src/core/SkPicturePlayback.cpp (revision 13577)
|
| +++ src/core/SkPicturePlayback.cpp (working copy)
|
| @@ -814,7 +814,8 @@
|
| size_t offsetToRestore = reader.readInt();
|
| SkASSERT(!offsetToRestore || \
|
| offsetToRestore >= reader.offset());
|
| - if (!canvas.clipPath(path, regionOp, doAA) && offsetToRestore) {
|
| + canvas.clipPath(path, regionOp, doAA);
|
| + if (canvas.isClipEmpty() && offsetToRestore) {
|
| #ifdef SPEW_CLIP_SKIPPING
|
| skipPath.recordSkip(offsetToRestore - reader.offset());
|
| #endif
|
| @@ -829,7 +830,8 @@
|
| size_t offsetToRestore = reader.readInt();
|
| SkASSERT(!offsetToRestore || \
|
| offsetToRestore >= reader.offset());
|
| - if (!canvas.clipRegion(region, regionOp) && offsetToRestore) {
|
| + canvas.clipRegion(region, regionOp);
|
| + if (canvas.isClipEmpty() && offsetToRestore) {
|
| #ifdef SPEW_CLIP_SKIPPING
|
| skipRegion.recordSkip(offsetToRestore - reader.offset());
|
| #endif
|
| @@ -844,7 +846,8 @@
|
| size_t offsetToRestore = reader.readInt();
|
| SkASSERT(!offsetToRestore || \
|
| offsetToRestore >= reader.offset());
|
| - if (!canvas.clipRect(rect, regionOp, doAA) && offsetToRestore) {
|
| + canvas.clipRect(rect, regionOp, doAA);
|
| + if (canvas.isClipEmpty() && offsetToRestore) {
|
| #ifdef SPEW_CLIP_SKIPPING
|
| skipRect.recordSkip(offsetToRestore - reader.offset());
|
| #endif
|
| @@ -860,7 +863,8 @@
|
| size_t offsetToRestore = reader.readInt();
|
| SkASSERT(!offsetToRestore || \
|
| offsetToRestore >= reader.offset());
|
| - if (!canvas.clipRRect(rrect, regionOp, doAA) && offsetToRestore) {
|
| + canvas.clipRRect(rrect, regionOp, doAA);
|
| + if (canvas.isClipEmpty() && offsetToRestore) {
|
| #ifdef SPEW_CLIP_SKIPPING
|
| skipRRect.recordSkip(offsetToRestore - reader.offset());
|
| #endif
|
|
|