1 /* 2 * Copyright 2014 Google Inc. 3 * 4 * Use of this source code is governed by a BSD-style license that can be 5 * found in the LICENSE file. 6 */ 7 8 #ifndef SkDrawPictureCallback_DEFINED 9 #define SkDrawPictureCallback_DEFINED 10 11 #include "SkTypes.h" 12 13 #ifdef SK_LEGACY_DRAWPICTURECALLBACK 14 #include "SkPicture.h" 15 16 /** 17 * Subclasses of this can be passed to canvas.drawPicture(). During the drawing 18 * of the picture, this callback will periodically be invoked. If its 19 * abortDrawing() returns true, then picture playback will be interrupted. 20 * 21 * The resulting drawing is undefined, as there is no guarantee how often the 22 * callback will be invoked. If the abort happens inside some level of nested 23 * calls to save(), restore will automatically be called to return the state 24 * to the same level it was before the drawPicture call was made. 25 */ 26 class SK_API SkDrawPictureCallback : public SkPicture::AbortCallback { 27 public: 28 virtual bool abortDrawing() = 0; 29 30 bool abort() override { return this->abortDrawing(); } 31 }; 32 #endif 33 34 #endif // SkDrawPictureCallback_DEFINED 35