| Index: include/core/SkPicture.h
|
| diff --git a/include/core/SkPicture.h b/include/core/SkPicture.h
|
| index 35b4d056a532927b343effb1d040b8b6d2aecb6d..80c3ca30a1e5d976ac3d473bcc08a01eaecf28c8 100644
|
| --- a/include/core/SkPicture.h
|
| +++ b/include/core/SkPicture.h
|
| @@ -9,8 +9,6 @@
|
| #ifndef SkPicture_DEFINED
|
| #define SkPicture_DEFINED
|
|
|
| -#include "SkBitmap.h"
|
| -#include "SkDrawPictureCallback.h"
|
| #include "SkImageDecoder.h"
|
| #include "SkRefCnt.h"
|
| #include "SkTDArray.h"
|
| @@ -19,6 +17,7 @@
|
| class GrContext;
|
| #endif
|
|
|
| +class SkBitmap;
|
| class SkBBoxHierarchy;
|
| class SkCanvas;
|
| class SkData;
|
| @@ -102,6 +101,24 @@ public:
|
|
|
| ~SkPicture();
|
|
|
| + /**
|
| + * Subclasses of this can be passed to playback(). During the playback
|
| + * of the picture, this callback will periodically be invoked. If its
|
| + * abort() returns true, then picture playback will be interrupted.
|
| + *
|
| + * The resulting drawing is undefined, as there is no guarantee how often the
|
| + * callback will be invoked. If the abort happens inside some level of nested
|
| + * calls to save(), restore will automatically be called to return the state
|
| + * to the same level it was before the playback call was made.
|
| + */
|
| + class SK_API AbortCallback {
|
| + public:
|
| + AbortCallback() {}
|
| + virtual ~AbortCallback() {}
|
| +
|
| + virtual bool abort() = 0;
|
| + };
|
| +
|
| /** Replays the drawing commands on the specified canvas. Note that
|
| this has the effect of unfurling this picture into the destination
|
| canvas. Using the SkCanvas::drawPicture entry point gives the destination
|
| @@ -109,7 +126,7 @@ public:
|
| @param canvas the canvas receiving the drawing commands.
|
| @param callback a callback that allows interruption of playback
|
| */
|
| - void playback(SkCanvas* canvas, SkDrawPictureCallback* = NULL) const;
|
| + void playback(SkCanvas* canvas, AbortCallback* = NULL) const;
|
|
|
| /** Return the cull rect used when creating this picture: { 0, 0, cullWidth, cullHeight }.
|
| It does not necessarily reflect the bounds of what has been recorded into the picture.
|
|
|