Flutter Engine
The Flutter Engine
Loading...
Searching...
No Matches
Public Member Functions | List of all members
SkAutoCanvasRestore Class Reference

#include <SkCanvas.h>

Public Member Functions

 SkAutoCanvasRestore (SkCanvas *canvas, bool doSave)
 
 ~SkAutoCanvasRestore ()
 
void restore ()
 

Detailed Description

Stack helper class calls SkCanvas::restoreToCount when SkAutoCanvasRestore goes out of scope. Use this to guarantee that the canvas is restored to a known state.

Definition at line 2645 of file SkCanvas.h.

Constructor & Destructor Documentation

◆ SkAutoCanvasRestore()

SkAutoCanvasRestore::SkAutoCanvasRestore ( SkCanvas canvas,
bool  doSave 
)
inline

Preserves SkCanvas::save() count. Optionally saves SkCanvas clip and SkCanvas matrix.

Parameters
canvasSkCanvas to guard
doSavecall SkCanvas::save()
Returns
utility to restore SkCanvas state on destructor

Definition at line 2654 of file SkCanvas.h.

2654 : fCanvas(canvas), fSaveCount(0) {
2655 if (fCanvas) {
2656 fSaveCount = canvas->getSaveCount();
2657 if (doSave) {
2658 canvas->save();
2659 }
2660 }
2661 }
int getSaveCount() const
Definition SkCanvas.cpp:435
int save()
Definition SkCanvas.cpp:451

◆ ~SkAutoCanvasRestore()

SkAutoCanvasRestore::~SkAutoCanvasRestore ( )
inline

Restores SkCanvas to saved state. Destructor is called when container goes out of scope.

Definition at line 2666 of file SkCanvas.h.

2666 {
2667 if (fCanvas) {
2668 fCanvas->restoreToCount(fSaveCount);
2669 }
2670 }
void restoreToCount(int saveCount)
Definition SkCanvas.cpp:482

Member Function Documentation

◆ restore()

void SkAutoCanvasRestore::restore ( )
inline

Restores SkCanvas to saved state immediately. Subsequent calls and ~SkAutoCanvasRestore() have no effect.

Definition at line 2675 of file SkCanvas.h.

2675 {
2676 if (fCanvas) {
2677 fCanvas->restoreToCount(fSaveCount);
2678 fCanvas = nullptr;
2679 }
2680 }

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