8 #ifndef SkPictureRecorder_DEFINED
9 #define SkPictureRecorder_DEFINED
11 #include "../private/SkMiniRecorder.h"
12 #include "SkBBHFactory.h"
13 #include "SkPicture.h"
16 #ifdef SK_BUILD_FOR_ANDROID_FRAMEWORK
25 class SkPictureRecord;
37 kPlaybackDrawPicture_RecordFlag = 1 << 0,
41 kReturnNullForEmpty_FinishFlag = 1 << 0,
53 uint32_t recordFlags = 0);
55 SkCanvas* beginRecording(SkScalar width, SkScalar height,
57 uint32_t recordFlags = 0) {
58 return this->beginRecording(SkRect::MakeWH(width, height), bbhFactory, recordFlags);
88 uint32_t endFlags = 0);
102 #ifdef SK_SUPPORT_LEGACY_PICTURE_PTR
103 SkPicture* SK_WARN_UNUSED_RESULT endRecordingAsPicture() {
104 return this->finishRecordingAsPicture().
release();
106 SkPicture* SK_WARN_UNUSED_RESULT endRecordingAsPicture(
const SkRect& cullRect) {
107 return this->finishRecordingAsPictureWithCull(cullRect).
release();
109 SkDrawable* SK_WARN_UNUSED_RESULT endRecordingAsDrawable() {
110 return this->finishRecordingAsDrawable().
release();
112 SkPicture* SK_WARN_UNUSED_RESULT endRecording() {
return this->endRecordingAsPicture(); }
116 void optimizeFor(
GrContext* ctx) { fGrContextToOptimizeFor = ctx; }
124 #ifdef SK_BUILD_FOR_ANDROID_FRAMEWORK
125 friend class android::Picture;
127 friend class SkPictureRecorderReplayTester;
128 void partialReplay(
SkCanvas* canvas)
const;
130 bool fActivelyRecording;
136 SkMiniRecorder fMiniRecorder;
138 GrContext* fGrContextToOptimizeFor =
nullptr;
140 typedef SkNoncopyable INHERITED;
T *SK_WARN_UNUSED_RESULT release()
Return the bare pointer, and set the internal object pointer to nullptr.
Definition: SkRefCnt.h:363
A Canvas encapsulates all of the state about drawing into a device (bitmap).
Definition: SkCanvas.h:58
Definition: SkBBHFactory.h:15
An SkPicture records drawing commands made to a canvas to be played back at a later time...
Definition: SkPicture.h:38
Definition: GrContext.h:48
Base-class for objects that draw into SkCanvas.
Definition: SkDrawable.h:25
Definition: SkPictureRecorder.h:29