/*
* Copyright 2014 Google Inc.
*
* Use of this source code is governed by a BSD-style license that can be
* found in the LICENSE file.
*/
#ifndef SkDrawPictureCallback_DEFINED
#define SkDrawPictureCallback_DEFINED
#include "SkTypes.h"
#ifdef SK_LEGACY_DRAWPICTURECALLBACK
#include "SkPicture.h"
/**
* Subclasses of this can be passed to canvas.drawPicture(). During the drawing
* of the picture, this callback will periodically be invoked. If its
* abortDrawing() 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 drawPicture call was made.
*/
class SK_API SkDrawPictureCallback : public SkPicture::AbortCallback {
public:
virtual bool abortDrawing() = 0;
bool abort() override { return this->abortDrawing(); }
};
#endif
#endif // SkDrawPictureCallback_DEFINED