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