Skia
2D Graphics Library
SkPictureRecorder Class Reference

#include <SkPictureRecorder.h>

Public Types

enum  FinishFlags
 

Public Member Functions

 SkPictureRecorder ()
 
 ~SkPictureRecorder ()
 
SkCanvasbeginRecording (const SkRect &bounds, sk_sp< SkBBoxHierarchy > bbh)
 Returns the canvas that records the drawing commands. More...
 
SkCanvasbeginRecording (const SkRect &bounds, SkBBHFactory *bbhFactory=nullptr)
 
SkCanvasbeginRecording (SkScalar width, SkScalar height, SkBBHFactory *bbhFactory=nullptr)
 
SkCanvasgetRecordingCanvas ()
 Returns the recording canvas if one is active, or NULL if recording is not active. More...
 
sk_sp< SkPicturefinishRecordingAsPicture ()
 Signal that the caller is done recording. More...
 
sk_sp< SkPicturefinishRecordingAsPictureWithCull (const SkRect &cullRect)
 Signal that the caller is done recording, and update the cull rect to use for bounding box hierarchy (BBH) generation. More...
 
sk_sp< SkDrawablefinishRecordingAsDrawable ()
 Signal that the caller is done recording. More...
 

Friends

class SkPictureRecorderReplayTester
 Replay the current (partially recorded) operation stream into canvas. More...
 

Member Enumeration Documentation

◆ FinishFlags

Constructor & Destructor Documentation

◆ SkPictureRecorder()

SkPictureRecorder::SkPictureRecorder ( )

◆ ~SkPictureRecorder()

SkPictureRecorder::~SkPictureRecorder ( )

Member Function Documentation

◆ beginRecording() [1/3]

SkCanvas* SkPictureRecorder::beginRecording ( const SkRect bounds,
sk_sp< SkBBoxHierarchy bbh 
)

Returns the canvas that records the drawing commands.

Parameters
boundsthe cull rect used when recording this picture. Any drawing the falls outside of this rect is undefined, and may be drawn or it may not.
bbhoptional acceleration structure
recordFlagsoptional flags that control recording.
Returns
the canvas.

◆ beginRecording() [2/3]

SkCanvas* SkPictureRecorder::beginRecording ( const SkRect bounds,
SkBBHFactory bbhFactory = nullptr 
)

◆ beginRecording() [3/3]

SkCanvas* SkPictureRecorder::beginRecording ( SkScalar  width,
SkScalar  height,
SkBBHFactory bbhFactory = nullptr 
)
inline

◆ finishRecordingAsDrawable()

sk_sp<SkDrawable> SkPictureRecorder::finishRecordingAsDrawable ( )

Signal that the caller is done recording.

This invalidates the canvas returned by beginRecording/getRecordingCanvas. Ownership of the object is passed to the caller, who must call unref() when they are done using it.

Unlike finishRecordingAsPicture(), which returns an immutable picture, the returned drawable may contain live references to other drawables (if they were added to the recording canvas) and therefore this drawable will reflect the current state of those nested drawables anytime it is drawn or a new picture is snapped from it (by calling drawable->newPictureSnapshot()).

◆ finishRecordingAsPicture()

sk_sp<SkPicture> SkPictureRecorder::finishRecordingAsPicture ( )

Signal that the caller is done recording.

This invalidates the canvas returned by beginRecording/getRecordingCanvas. Ownership of the object is passed to the caller, who must call unref() when they are done using it.

The returned picture is immutable. If during recording drawables were added to the canvas, these will have been "drawn" into a recording canvas, so that this resulting picture will reflect their current state, but will not contain a live reference to the drawables themselves.

◆ finishRecordingAsPictureWithCull()

sk_sp<SkPicture> SkPictureRecorder::finishRecordingAsPictureWithCull ( const SkRect cullRect)

Signal that the caller is done recording, and update the cull rect to use for bounding box hierarchy (BBH) generation.

The behavior is the same as calling finishRecordingAsPicture(), except that this method updates the cull rect initially passed into beginRecording.

Parameters
cullRectthe new culling rectangle to use as the overall bound for BBH generation and subsequent culling operations.
Returns
the picture containing the recorded content.

◆ getRecordingCanvas()

SkCanvas* SkPictureRecorder::getRecordingCanvas ( )

Returns the recording canvas if one is active, or NULL if recording is not active.

This does not alter the refcnt on the canvas (if present).

Friends And Related Function Documentation

◆ SkPictureRecorderReplayTester

friend class SkPictureRecorderReplayTester
friend

Replay the current (partially recorded) operation stream into canvas.

This call doesn't close the current recording.


The documentation for this class was generated from the following file: