• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1SkAutoCanvasRestore Reference
2===
3
4# <a name="Automatic_Canvas_Restore"></a> Automatic Canvas Restore
5
6## <a name="Overview"></a> Overview
7
8## <a name="Subtopics"></a> Subtopics
9
10| name | description |
11| --- | --- |
12| <a href="SkAutoCanvasRestore_Reference#Automatic_Canvas_Restore_Constructors">Constructors</a> | functions that construct <a href="SkAutoCanvasRestore_Reference#SkAutoCanvasRestore">SkAutoCanvasRestore</a> |
13| <a href="SkAutoCanvasRestore_Reference#Automatic_Canvas_Restore_Member_Functions">Member Functions</a> | static functions and member methods |
14
15# <a name="SkAutoCanvasRestore"></a> Class SkAutoCanvasRestore
16Stack helper class calls
17
18## <a name="Constructors"></a> Constructors
19
20| name | description |
21| --- | --- |
22| <a href="#SkAutoCanvasRestore_SkCanvas_star">SkAutoCanvasRestore(SkCanvas* canvas, bool doSave)</a> | preserves <a href="SkCanvas_Reference#Canvas">Canvas</a> save count |
23| <a href="#SkAutoCanvasRestore_destructor">~SkAutoCanvasRestore()</a> | restores <a href="SkCanvas_Reference#Canvas">Canvas</a> to saved state |
24
25## <a name="Member_Functions"></a> Member Functions
26
27| name | description |
28| --- | --- |
29| <a href="#SkAutoCanvasRestore_restore">restore</a> | restores <a href="SkCanvas_Reference#Canvas">Canvas</a> to saved state |
30
31<a name="SkAutoCanvasRestore_SkCanvas_star"></a>
32## SkAutoCanvasRestore
33
34<pre style="padding: 1em 1em 1em 1em;width: 62.5em; background-color: #f0f0f0">
35SkAutoCanvasRestore(SkCanvas* canvas, bool doSave)
36</pre>
37
38Preserves <a href="SkCanvas_Reference#Canvas">Canvas</a> save count. Optionally saves <a href="#Clip">Canvas Clip</a> and <a href="#Matrix">Canvas Matrix</a>.
39
40### Parameters
41
42<table>  <tr>    <td><a name="SkAutoCanvasRestore_SkCanvas_star_canvas"> <code><strong>canvas </strong></code> </a></td> <td>
43<a href="SkCanvas_Reference#Canvas">Canvas</a> to guard</td>
44  </tr>  <tr>    <td><a name="SkAutoCanvasRestore_SkCanvas_star_doSave"> <code><strong>doSave </strong></code> </a></td> <td>
45call <a href="#SkCanvas_save">SkCanvas::save()</a></td>
46  </tr>
47</table>
48
49### Return Value
50
51utility to restore <a href="SkCanvas_Reference#Canvas">Canvas</a> state on destructor
52
53### Example
54
55<div><fiddle-embed name="466ef576b88e29d7252422db7adeed1c"></fiddle-embed></div>
56
57### See Also
58
59<a href="#SkCanvas_save">SkCanvas::save</a> <a href="#SkCanvas_restore">SkCanvas::restore</a>
60
61---
62
63<a name="SkAutoCanvasRestore_destructor"></a>
64## ~SkAutoCanvasRestore
65
66<pre style="padding: 1em 1em 1em 1em;width: 62.5em; background-color: #f0f0f0">
67~SkAutoCanvasRestore()
68</pre>
69
70Restores <a href="SkCanvas_Reference#Canvas">Canvas</a> to saved state. Destructor is called when container goes out of
71scope.
72
73### See Also
74
75<a href="#SkCanvas_save">SkCanvas::save</a> <a href="#SkCanvas_restore">SkCanvas::restore</a>
76
77---
78
79<a name="SkAutoCanvasRestore_restore"></a>
80## restore
81
82<pre style="padding: 1em 1em 1em 1em;width: 62.5em; background-color: #f0f0f0">
83void restore()
84</pre>
85
86Restores <a href="SkCanvas_Reference#Canvas">Canvas</a> to saved state immediately. Subsequent calls and
87<a href="#SkAutoCanvasRestore_destructor">~SkAutoCanvasRestore</a> have no effect.
88
89### Example
90
91<div><fiddle-embed name="9f459b218ec079c1ada23f4412968f9a">
92
93#### Example Output
94
95~~~~
96saveCanvas: false  before restore: 2
97saveCanvas: false  after restore: 2
98saveCanvas: true  before restore: 2
99saveCanvas: true  after restore: 2
100saveCanvas: false  before restore: 2
101saveCanvas: false  after restore: 1
102saveCanvas: true  before restore: 2
103saveCanvas: true  after restore: 1
104final count: 1
105~~~~
106
107</fiddle-embed></div>
108
109### See Also
110
111<a href="#SkCanvas_save">SkCanvas::save</a> <a href="#SkCanvas_restore">SkCanvas::restore</a>
112
113---
114
115