aboutsummaryrefslogtreecommitdiffhomepage
path: root/site/user
diff options
context:
space:
mode:
authorGravatar Cary Clark <caryclark@skia.org>2017-11-02 17:49:34 -0400
committerGravatar Skia Commit-Bot <skia-commit-bot@chromium.org>2017-11-02 22:10:53 +0000
commit2ade99783120cf9149e7b2e85b3c3c2bd63d4839 (patch)
tree62498c450e03777d3e8f6a2e3aed31eb0b4c3020 /site/user
parentba7cf29fa8cb60514177bcf7c91f5f1607480ad6 (diff)
filling holes in canvas doc
filling holes in canvas doc Docs-Preview: https://skia.org/?cl=66920 TBR=caryclark@google.com Bug: skia:6898 Change-Id: I3a211df5f19ecfbfa0bb060bb6d55005a38cd360 Reviewed-on: https://skia-review.googlesource.com/66920 Reviewed-by: Cary Clark <caryclark@skia.org> Commit-Queue: Cary Clark <caryclark@skia.org>
Diffstat (limited to 'site/user')
-rw-r--r--site/user/api/SkBitmap_Reference.md6
-rw-r--r--site/user/api/SkCanvas_Reference.md517
-rw-r--r--site/user/api/SkMatrix_Reference.md8
-rw-r--r--site/user/api/SkPaint_Reference.md16
-rw-r--r--site/user/api/SkPath_Reference.md3
-rw-r--r--site/user/api/SkPixmap_Reference.md14
-rw-r--r--site/user/api/catalog.htm85
-rw-r--r--site/user/api/undocumented.md147
8 files changed, 715 insertions, 81 deletions
diff --git a/site/user/api/SkBitmap_Reference.md b/site/user/api/SkBitmap_Reference.md
index df514533e9..824da343c7 100644
--- a/site/user/api/SkBitmap_Reference.md
+++ b/site/user/api/SkBitmap_Reference.md
@@ -1406,7 +1406,7 @@ integral rectangle from origin to <a href="#SkBitmap_width">width</a> and <a hre
### Example
-<div><fiddle-embed name="977dd8a850f89a610505e3f4f260d540"></fiddle-embed></div>
+<div><fiddle-embed name="bd020c1527964761adf7646e82a36487"></fiddle-embed></div>
### See Also
@@ -2262,6 +2262,10 @@ subset origin: 32, 64
</fiddle-embed></div>
+### See Also
+
+<a href="undocumented#SkPixelRef">SkPixelRef</a> <a href="#SkBitmap_getSubset">getSubset</a> <a href="#SkBitmap_setPixelRef">setPixelRef</a>
+
---
<a name="SkBitmap_setPixelRef"></a>
diff --git a/site/user/api/SkCanvas_Reference.md b/site/user/api/SkCanvas_Reference.md
index 5d59fd4dd4..33ce63104b 100644
--- a/site/user/api/SkCanvas_Reference.md
+++ b/site/user/api/SkCanvas_Reference.md
@@ -268,6 +268,10 @@ in the center.</div>
</fiddle-embed></div>
+### See Also
+
+<a href="#SkCanvas_MakeRasterDirect">MakeRasterDirect</a> <a href="#SkSurface_MakeRasterDirect">SkSurface::MakeRasterDirect</a> <a href="#SkImageInfo_MakeN32Premul">SkImageInfo::MakeN32Premul</a>
+
---
<a name="SkCanvas_empty_constructor"></a>
@@ -298,6 +302,10 @@ paint draws text top to bottom
</fiddle-embed></div>
+### See Also
+
+<a href="#SkCanvas_MakeRasterDirect">MakeRasterDirect</a> <a href="#SkRasterHandleAllocator_MakeCanvas">SkRasterHandleAllocator::MakeCanvas</a> <a href="#SkSurface_getCanvas">SkSurface::getCanvas</a> <a href="undocumented#SkCreateColorSpaceXformCanvas">SkCreateColorSpaceXformCanvas</a>
+
---
<a name="SkCanvas_int_int_const_SkSurfaceProps_star"></a>
@@ -346,7 +354,7 @@ canvas is empty
### See Also
-<a href="undocumented#SkSurfaceProps">SkSurfaceProps</a> <a href="undocumented#SkPixelGeometry">SkPixelGeometry</a>
+<a href="#SkCanvas_MakeRasterDirect">MakeRasterDirect</a> <a href="undocumented#SkSurfaceProps">SkSurfaceProps</a> <a href="undocumented#SkPixelGeometry">SkPixelGeometry</a> <a href="undocumented#SkCreateColorSpaceXformCanvas">SkCreateColorSpaceXformCanvas</a>
---
@@ -375,6 +383,10 @@ specifies a <a href="#SkCanvas_copy_SkBaseDevice_star_device">device</a> for the
<div><fiddle-embed name=""></fiddle-embed></div>
+### See Also
+
+<a href="#SkCanvas_MakeRasterDirect">MakeRasterDirect</a> <a href="#SkRasterHandleAllocator_MakeCanvas">SkRasterHandleAllocator::MakeCanvas</a> <a href="#SkSurface_getCanvas">SkSurface::getCanvas</a> <a href="undocumented#SkCreateColorSpaceXformCanvas">SkCreateColorSpaceXformCanvas</a>
+
---
<a name="SkCanvas_copy_const_SkBitmap"></a>
@@ -426,6 +438,10 @@ storage of <a href="undocumented#Raster_Surface">Raster Surface</a></td>
</fiddle-embed></div>
+### See Also
+
+<a href="#SkCanvas_MakeRasterDirect">MakeRasterDirect</a> <a href="#SkRasterHandleAllocator_MakeCanvas">SkRasterHandleAllocator::MakeCanvas</a> <a href="#SkSurface_getCanvas">SkSurface::getCanvas</a> <a href="undocumented#SkCreateColorSpaceXformCanvas">SkCreateColorSpaceXformCanvas</a>
+
---
## <a name="SkCanvas_ColorBehavior"></a> Enum SkCanvas::ColorBehavior
@@ -516,6 +532,10 @@ device independent fonts</td>
</fiddle-embed></div>
+### See Also
+
+<a href="#SkCanvas_MakeRasterDirect">MakeRasterDirect</a> <a href="#SkRasterHandleAllocator_MakeCanvas">SkRasterHandleAllocator::MakeCanvas</a> <a href="#SkSurface_getCanvas">SkSurface::getCanvas</a> <a href="undocumented#SkCreateColorSpaceXformCanvas">SkCreateColorSpaceXformCanvas</a>
+
---
<a name="SkCanvas_destructor"></a>
@@ -569,6 +589,10 @@ after: (null)
</fiddle-embed></div>
+### See Also
+
+<a href="undocumented#SkMetaData">SkMetaData</a>
+
---
<a name="SkCanvas_imageInfo"></a>
@@ -597,6 +621,10 @@ emptyInfo == canvasInfo
</fiddle-embed></div>
+### See Also
+
+<a href="undocumented#SkImageInfo">SkImageInfo</a> <a href="#SkCanvas_MakeRasterDirect">MakeRasterDirect</a> <a href="#SkCanvas_makeSurface">makeSurface</a>
+
---
<a name="SkCanvas_getProps"></a>
@@ -634,6 +662,10 @@ isRGB:1
</fiddle-embed></div>
+### See Also
+
+<a href="undocumented#SkSurfaceProps">SkSurfaceProps</a> <a href="#SkCanvas_makeSurface">makeSurface</a>
+
---
<a name="SkCanvas_flush"></a>
@@ -645,11 +677,17 @@ void flush()
Triggers the immediate execution of all pending draw operations.
If <a href="#Canvas">Canvas</a> is associated with <a href="undocumented#GPU_Surface">GPU Surface</a>, resolves all pending <a href="undocumented#GPU">GPU</a> operations.
+If <a href="#Canvas">Canvas</a> is associated with <a href="undocumented#Raster_Surface">Raster Surface</a>, has no effect; raster draw
+operations are never deferred.
### Example
<div><fiddle-embed name=""></fiddle-embed></div>
+### See Also
+
+<a href="#SkCanvas_peekPixels">peekPixels</a> <a href="#SkSurface_flush">SkSurface::flush()</a> <a href="#flush">GrContext::flush()</a> <a href="#SkSurface_prepareForExternalIO">SkSurface::prepareForExternalIO</a> GrContext::abandonContext()
+
---
<a name="SkCanvas_getBaseLayerSize"></a>
@@ -680,6 +718,10 @@ size=20,30
</fiddle-embed></div>
+### See Also
+
+<a href="#SkCanvas_getDeviceClipBounds">getDeviceClipBounds</a>
+
---
<a name="SkCanvas_makeSurface"></a>
@@ -722,6 +764,10 @@ size = 3, 4
</fiddle-embed></div>
+### See Also
+
+<a href="undocumented#SkSurface">SkSurface</a> <a href="#SkSurface_makeSurface">SkSurface::makeSurface</a> <a href="undocumented#SkImageInfo">SkImageInfo</a> <a href="undocumented#SkSurfaceProps">SkSurfaceProps</a>
+
---
<a name="SkCanvas_getGrContext"></a>
@@ -741,6 +787,10 @@ Returns <a href="undocumented#GPU_Context">GPU Context</a> of the <a href="undoc
<div><fiddle-embed name="c4ea949e5fa5a0630dcb6b0204bd498f"></fiddle-embed></div>
+### See Also
+
+<a href="undocumented#GrContext">GrContext</a>
+
---
<a name="SkCanvas_accessTopLayerPixels"></a>
@@ -787,6 +837,10 @@ device.
The <a href="#Layer">Layer</a> and blended result appear on the <a href="undocumented#CPU">CPU</a> and <a href="undocumented#GPU">GPU</a> but the large dotted
"" appear only on the <a href="undocumented#CPU">CPU</a>.</div></fiddle-embed></div>
+### See Also
+
+<a href="undocumented#SkImageInfo">SkImageInfo</a> <a href="SkPixmap_Reference#SkPixmap">SkPixmap</a>
+
---
<a name="SkCanvas_accessTopRasterHandle"></a>
@@ -865,6 +919,10 @@ width=256 height=256
</fiddle-embed></div>
+### See Also
+
+<a href="#SkCanvas_readPixels">readPixels</a> <a href="#SkBitmap_peekPixels">SkBitmap::peekPixels</a> <a href="#SkImage_peekPixels">SkImage::peekPixels</a> <a href="#SkSurface_peekPixels">SkSurface::peekPixels</a>
+
---
<a name="SkCanvas_readPixels"></a>
@@ -949,7 +1007,7 @@ pixel = 8056a9ff
### See Also
-<a href="#SkCanvas_peekPixels">peekPixels</a> <a href="#SkCanvas_writePixels">writePixels</a> <a href="#SkCanvas_drawBitmap">drawBitmap</a> <a href="#SkCanvas_drawImage">drawImage</a>
+<a href="#SkCanvas_peekPixels">peekPixels</a> <a href="#SkCanvas_writePixels">writePixels</a> <a href="#SkCanvas_drawBitmap">drawBitmap</a> <a href="#SkCanvas_drawImage">drawImage</a> <a href="#SkBitmap_readPixels">SkBitmap::readPixels</a> <a href="#SkPixmap_readPixels">SkPixmap::readPixels</a> <a href="#SkImage_readPixels">SkImage::readPixels</a> <a href="#SkSurface_readPixels">SkSurface::readPixels</a>
---
@@ -1019,7 +1077,7 @@ pixel = 802b5580
### See Also
-<a href="#SkCanvas_peekPixels">peekPixels</a> <a href="#SkCanvas_writePixels">writePixels</a> <a href="#SkCanvas_drawBitmap">drawBitmap</a> <a href="#SkCanvas_drawImage">drawImage</a>
+<a href="#SkCanvas_peekPixels">peekPixels</a> <a href="#SkCanvas_writePixels">writePixels</a> <a href="#SkCanvas_drawBitmap">drawBitmap</a> <a href="#SkCanvas_drawImage">drawImage</a> <a href="#SkBitmap_readPixels">SkBitmap::readPixels</a> <a href="#SkPixmap_readPixels">SkPixmap::readPixels</a> <a href="#SkImage_readPixels">SkImage::readPixels</a> <a href="#SkSurface_readPixels">SkSurface::readPixels</a>
---
@@ -1089,7 +1147,7 @@ pixel = 802b5580
### See Also
-<a href="#SkCanvas_peekPixels">peekPixels</a> <a href="#SkCanvas_writePixels">writePixels</a> <a href="#SkCanvas_drawBitmap">drawBitmap</a> <a href="#SkCanvas_drawImage">drawImage</a>
+<a href="#SkCanvas_peekPixels">peekPixels</a> <a href="#SkCanvas_writePixels">writePixels</a> <a href="#SkCanvas_drawBitmap">drawBitmap</a> <a href="#SkCanvas_drawImage">drawImage</a> <a href="#SkBitmap_readPixels">SkBitmap::readPixels</a> <a href="#SkPixmap_readPixels">SkPixmap::readPixels</a> <a href="#SkImage_readPixels">SkImage::readPixels</a> <a href="#SkSurface_readPixels">SkSurface::readPixels</a>
---
@@ -1156,7 +1214,7 @@ true if <a href="#SkCanvas_writePixels_pixels">pixels</a> were written to <a hre
### See Also
-<a href="#SkCanvas_readPixels">readPixels</a> <a href="#SkCanvas_drawBitmap">drawBitmap</a> <a href="#SkCanvas_drawImage">drawImage</a>
+<a href="#SkCanvas_readPixels">readPixels</a> <a href="#SkCanvas_drawBitmap">drawBitmap</a> <a href="#SkCanvas_drawImage">drawImage</a> <a href="#SkBitmap_writePixels">SkBitmap::writePixels</a>
---
@@ -1217,7 +1275,7 @@ true if pixels were written to <a href="#Canvas">Canvas</a>
### See Also
-<a href="#SkCanvas_readPixels">readPixels</a> <a href="#SkCanvas_drawBitmap">drawBitmap</a> <a href="#SkCanvas_drawImage">drawImage</a>
+<a href="#SkCanvas_readPixels">readPixels</a> <a href="#SkCanvas_drawBitmap">drawBitmap</a> <a href="#SkCanvas_drawImage">drawImage</a> <a href="#SkBitmap_writePixels">SkBitmap::writePixels</a>
---
@@ -1282,6 +1340,10 @@ depth of saved stack
Restoring <a href="#Canvas">Canvas</a> state removes <a href="#SkCanvas_translate">translate</a> from <a href="#Canvas">Canvas</a> stack;
the red square is not translated, and is drawn at the origin.</div></fiddle-embed></div>
+### See Also
+
+<a href="#SkCanvas_saveLayer">saveLayer</a> <a href="#SkCanvas_saveLayerPreserveLCDTextRequests">saveLayerPreserveLCDTextRequests</a> <a href="#SkCanvas_saveLayerAlpha">saveLayerAlpha</a> <a href="#SkCanvas_restore">restore</a> <a href="#SkCanvas_restoreToCount">restoreToCount</a>
+
---
<a name="SkCanvas_restore"></a>
@@ -1300,6 +1362,10 @@ Does nothing if the stack is empty.
<div><fiddle-embed name="e78471212a67f2f4fd39496e17a30d17"></fiddle-embed></div>
+### See Also
+
+<a href="#SkCanvas_save">save</a> <a href="#SkCanvas_saveLayer">saveLayer</a> <a href="#SkCanvas_saveLayerPreserveLCDTextRequests">saveLayerPreserveLCDTextRequests</a> <a href="#SkCanvas_saveLayerAlpha">saveLayerAlpha</a> <a href="#SkCanvas_restoreToCount">restoreToCount</a>
+
---
<a name="SkCanvas_getSaveCount"></a>
@@ -1331,6 +1397,10 @@ depth = 1
</fiddle-embed></div>
+### See Also
+
+<a href="#SkCanvas_save">save</a> <a href="#SkCanvas_restore">restore</a> <a href="#SkCanvas_restoreToCount">restoreToCount</a>
+
---
<a name="SkCanvas_restoreToCount"></a>
@@ -1367,6 +1437,10 @@ depth = 1
</fiddle-embed></div>
+### See Also
+
+<a href="#SkCanvas_restore">restore</a> <a href="#SkCanvas_getSaveCount">getSaveCount</a> <a href="#SkCanvas_save">save</a>
+
---
# <a name="Layer"></a> Layer
@@ -1422,6 +1496,10 @@ depth of saved stack
<div><fiddle-embed name="05f9b6fa6b5007aea89dfe66c306855d"><div>Rectangles are blurred by <a href="undocumented#Image_Filter">Image Filter</a> when <a href="#SkCanvas_restore">restore</a> draws <a href="#Layer">Layer</a> to main
<a href="#Canvas">Canvas</a>.</div></fiddle-embed></div>
+### See Also
+
+<a href="#SkCanvas_save">save</a> <a href="#SkCanvas_restore">restore</a> <a href="#SkCanvas_saveLayer">saveLayer</a> <a href="#SkCanvas_saveLayerPreserveLCDTextRequests">saveLayerPreserveLCDTextRequests</a> <a href="#SkCanvas_saveLayerAlpha">saveLayerAlpha</a> <a href="#SkCanvas_SaveLayerRec">SaveLayerRec</a>
+
---
<pre style="padding: 1em 1em 1em 1em;width: 50em; background-color: #f0f0f0">
@@ -1464,6 +1542,10 @@ depth of saved stack
The red rectangle is clipped; it does not fully fit on <a href="#Layer">Layer</a>.
<a href="undocumented#Image_Filter">Image Filter</a> blurs past edge of <a href="#Layer">Layer</a> so red rectangle is blurred on all sides.</div></fiddle-embed></div>
+### See Also
+
+<a href="#SkCanvas_save">save</a> <a href="#SkCanvas_restore">restore</a> <a href="#SkCanvas_saveLayerPreserveLCDTextRequests">saveLayerPreserveLCDTextRequests</a> <a href="#SkCanvas_saveLayerAlpha">saveLayerAlpha</a> <a href="#SkCanvas_SaveLayerRec">SaveLayerRec</a>
+
---
<a name="SkCanvas_saveLayerPreserveLCDTextRequests"></a>
@@ -1512,6 +1594,10 @@ depth of saved stack
<div><fiddle-embed name="8460bf8b013f46c67e0bd96e13451aff"></fiddle-embed></div>
+### See Also
+
+<a href="#SkCanvas_save">save</a> <a href="#SkCanvas_restore">restore</a> <a href="#SkCanvas_saveLayer">saveLayer</a> <a href="#SkCanvas_saveLayerAlpha">saveLayerAlpha</a> <a href="#SkCanvas_SaveLayerRec">SaveLayerRec</a>
+
---
<a name="SkCanvas_saveLayerAlpha"></a>
@@ -1555,6 +1641,10 @@ depth of saved stack
<div><fiddle-embed name="8ab88d86fb438856cc48d6e2f08a6e24"></fiddle-embed></div>
+### See Also
+
+<a href="#SkCanvas_save">save</a> <a href="#SkCanvas_restore">restore</a> <a href="#SkCanvas_saveLayer">saveLayer</a> <a href="#SkCanvas_saveLayerPreserveLCDTextRequests">saveLayerPreserveLCDTextRequests</a> <a href="#SkCanvas_SaveLayerRec">SaveLayerRec</a>
+
---
## <a name="SkCanvas__anonymous"></a> Enum SkCanvas::_anonymous
@@ -1597,6 +1687,10 @@ Skips setting a clip to the <a href="#Layer">Layer</a> bounds.</td>
<div><fiddle-embed name="d314c688925d2c549d4762f5cc6e6a1a"><div><a href="#Canvas">Canvas</a> <a href="#Layer">Layer</a> captures red and blue circles scaled up by four.
scalePaint blends <a href="#Layer">Layer</a> back with transparency.</div></fiddle-embed></div>
+### See Also
+
+<a href="#SkCanvas_save">save</a> <a href="#SkCanvas_restore">restore</a> <a href="#SkCanvas_saveLayer">saveLayer</a> <a href="#SkCanvas_saveLayerPreserveLCDTextRequests">saveLayerPreserveLCDTextRequests</a> <a href="#SkCanvas_saveLayerAlpha">saveLayerAlpha</a> <a href="#SkCanvas_SaveLayerRec">SaveLayerRec</a>
+
# <a name="SkCanvas_SaveLayerRec"></a> Struct SkCanvas::SaveLayerRec
@@ -1679,6 +1773,10 @@ rec1 == rec2
</fiddle-embed></div>
+### See Also
+
+<a href="#SkCanvas_save">save</a> <a href="#SkCanvas_restore">restore</a> <a href="#SkCanvas_saveLayer">saveLayer</a> <a href="#SkCanvas_saveLayerPreserveLCDTextRequests">saveLayerPreserveLCDTextRequests</a> <a href="#SkCanvas_saveLayerAlpha">saveLayerAlpha</a>
+
---
<pre style="padding: 1em 1em 1em 1em;width: 50em; background-color: #f0f0f0">
@@ -1715,6 +1813,10 @@ rec1 == rec2
</fiddle-embed></div>
+### See Also
+
+<a href="#SkCanvas_save">save</a> <a href="#SkCanvas_restore">restore</a> <a href="#SkCanvas_saveLayer">saveLayer</a> <a href="#SkCanvas_saveLayerPreserveLCDTextRequests">saveLayerPreserveLCDTextRequests</a> <a href="#SkCanvas_saveLayerAlpha">saveLayerAlpha</a>
+
---
<pre style="padding: 1em 1em 1em 1em;width: 50em; background-color: #f0f0f0">
@@ -1754,6 +1856,10 @@ rec1 == rec2
</fiddle-embed></div>
+### See Also
+
+<a href="#SkCanvas_save">save</a> <a href="#SkCanvas_restore">restore</a> <a href="#SkCanvas_saveLayer">saveLayer</a> <a href="#SkCanvas_saveLayerPreserveLCDTextRequests">saveLayerPreserveLCDTextRequests</a> <a href="#SkCanvas_saveLayerAlpha">saveLayerAlpha</a>
+
---
<pre style="padding: 1em 1em 1em 1em;width: 50em; background-color: #f0f0f0">
@@ -1766,7 +1872,7 @@ Not ready for general use.Sets <a href="#SkCanvas_SaveLayerRec_fBounds">fBounds<
<a href="#SkCanvas_SaveLayerRec_SaveLayerRec_4_clipMatrix">clipMatrix</a> uses <a href="#Alpha">Color Alpha</a> channel of image, transformed by <a href="#SkCanvas_SaveLayerRec_SaveLayerRec_4_clipMatrix">clipMatrix</a>, to clip
<a href="#Layer">Layer</a> when drawn to <a href="#Canvas">Canvas</a>.
-Implementation is incomplete; has no effect if <a href="undocumented#Device">Device</a> is <a href="undocumented#GPU_backed">GPU-backed</a>.
+Implementation is not complete; has no effect if <a href="undocumented#Device">Device</a> is <a href="undocumented#GPU_backed">GPU-backed</a>.
### Parameters
@@ -1792,6 +1898,10 @@ identity matrix</td>
<a href="#SkCanvas_SaveLayerRec_SaveLayerRec">SaveLayerRec</a> fully specified
+### See Also
+
+<a href="#SkCanvas_save">save</a> <a href="#SkCanvas_restore">restore</a> <a href="#SkCanvas_saveLayer">saveLayer</a> <a href="#SkCanvas_saveLayerPreserveLCDTextRequests">saveLayerPreserveLCDTextRequests</a> <a href="#SkCanvas_saveLayerAlpha">saveLayerAlpha</a>
+
---
<pre style="padding: 1em 1em 1em 1em;width: 50em; background-color: #f0f0f0">
@@ -1830,6 +1940,10 @@ Next it punches a hole in <a href="#Layer">Layer</a> and <a href="#SkCanvas_rest
Where <a href="#Layer">Layer</a> was cleared, the original image will draw unchanged.
Outside of the circle the mandrill is brightened.</div></fiddle-embed></div>
+### See Also
+
+<a href="#SkCanvas_save">save</a> <a href="#SkCanvas_restore">restore</a> <a href="#SkCanvas_saveLayer">saveLayer</a> <a href="#SkCanvas_saveLayerPreserveLCDTextRequests">saveLayerPreserveLCDTextRequests</a> <a href="#SkCanvas_saveLayerAlpha">saveLayerAlpha</a>
+
---
# <a name="Matrix"></a> Matrix
@@ -1868,6 +1982,10 @@ fill follows <a href="#SkCanvas_scale">scale</a> of (2, 1/2.f). After restoring
<a href="#Matrix">Matrix</a>, a red frame follows the same <a href="#SkCanvas_scale">scale</a> of (2, 1/2.f); a gray fill
follows <a href="#SkCanvas_translate">translate</a> of (50, 50).</div></fiddle-embed></div>
+### See Also
+
+<a href="#SkCanvas_concat">concat</a> <a href="#SkCanvas_scale">scale</a> <a href="#SkCanvas_skew">skew</a> <a href="#SkCanvas_rotate">rotate</a> <a href="#SkCanvas_setMatrix">setMatrix</a>
+
---
<a name="SkCanvas_scale"></a>
@@ -1898,6 +2016,10 @@ amount to <a href="#SkCanvas_scale">scale</a> in y</td>
<div><fiddle-embed name="7d0d801ef13c6c6da51e840c22ac15b0"></fiddle-embed></div>
+### See Also
+
+<a href="#SkCanvas_concat">concat</a> <a href="#SkCanvas_translate">translate</a> <a href="#SkCanvas_skew">skew</a> <a href="#SkCanvas_rotate">rotate</a> <a href="#SkCanvas_setMatrix">setMatrix</a>
+
---
<a name="SkCanvas_rotate"></a>
@@ -1927,6 +2049,10 @@ amount to <a href="#SkCanvas_rotate">rotate</a>, in <a href="#SkCanvas_rotate_de
<div><fiddle-embed name="caafb205771b714948e00dcd58ccaf1f"><div>Draw clock hands at time 5:10. The hour hand and minute hand point up and
are rotated clockwise.</div></fiddle-embed></div>
+### See Also
+
+<a href="#SkCanvas_concat">concat</a> <a href="#SkCanvas_translate">translate</a> <a href="#SkCanvas_skew">skew</a> <a href="#SkCanvas_scale">scale</a> <a href="#SkCanvas_setMatrix">setMatrix</a>
+
---
<pre style="padding: 1em 1em 1em 1em;width: 50em; background-color: #f0f0f0">
@@ -1958,6 +2084,10 @@ y-coordinate of the point to <a href="#SkCanvas_rotate">rotate</a> about</td>
<div><fiddle-embed name="bcf5baea1c66a957d5ffd7b54bbbfeff"></fiddle-embed></div>
+### See Also
+
+<a href="#SkCanvas_concat">concat</a> <a href="#SkCanvas_translate">translate</a> <a href="#SkCanvas_skew">skew</a> <a href="#SkCanvas_scale">scale</a> <a href="#SkCanvas_setMatrix">setMatrix</a>
+
---
<a name="SkCanvas_skew"></a>
@@ -1993,6 +2123,10 @@ shifts the geometry to the right as the y values decrease.
increase.
<a href="#Blue">Blue</a> text combines x and y <a href="#SkCanvas_skew">skew</a> to <a href="#SkCanvas_rotate">rotate</a> and <a href="#SkCanvas_scale">scale</a>.</div></fiddle-embed></div>
+### See Also
+
+<a href="#SkCanvas_concat">concat</a> <a href="#SkCanvas_translate">translate</a> <a href="#SkCanvas_rotate">rotate</a> <a href="#SkCanvas_scale">scale</a> <a href="#SkCanvas_setMatrix">setMatrix</a>
+
---
<a name="SkCanvas_concat"></a>
@@ -2018,6 +2152,10 @@ transforming the result with existing <a href="#Matrix">Matrix</a>.
<div><fiddle-embed name="8f6818b25a92a88638ad99b2dd293f61"></fiddle-embed></div>
+### See Also
+
+<a href="#SkCanvas_translate">translate</a> <a href="#SkCanvas_rotate">rotate</a> <a href="#SkCanvas_scale">scale</a> <a href="#SkCanvas_skew">skew</a> <a href="#SkCanvas_setMatrix">setMatrix</a>
+
---
<a name="SkCanvas_setMatrix"></a>
@@ -2041,6 +2179,10 @@ Unlike <a href="#SkCanvas_concat">concat</a>, any prior <a href="#SkCanvas_setMa
<div><fiddle-embed name="24b9cf7e6f9a08394e1e07413bd8733a"></fiddle-embed></div>
+### See Also
+
+<a href="#SkCanvas_resetMatrix">resetMatrix</a> <a href="#SkCanvas_concat">concat</a> <a href="#SkCanvas_translate">translate</a> <a href="#SkCanvas_rotate">rotate</a> <a href="#SkCanvas_scale">scale</a> <a href="#SkCanvas_skew">skew</a>
+
---
<a name="SkCanvas_resetMatrix"></a>
@@ -2057,6 +2199,10 @@ Any prior matrix state is overwritten.
<div><fiddle-embed name="412afffdf4682baa503a4e2e99201967"></fiddle-embed></div>
+### See Also
+
+<a href="#SkCanvas_setMatrix">setMatrix</a> <a href="#SkCanvas_concat">concat</a> <a href="#SkCanvas_translate">translate</a> <a href="#SkCanvas_rotate">rotate</a> <a href="#SkCanvas_scale">scale</a> <a href="#SkCanvas_skew">skew</a>
+
---
<a name="SkCanvas_getTotalMatrix"></a>
@@ -2085,6 +2231,10 @@ isIdentity true
</fiddle-embed></div>
+### See Also
+
+<a href="#SkCanvas_setMatrix">setMatrix</a> <a href="#SkCanvas_resetMatrix">resetMatrix</a> <a href="#SkCanvas_concat">concat</a>
+
---
# <a name="Clip"></a> Clip
@@ -2148,6 +2298,10 @@ true if <a href="#Clip">Clip</a> is to be <a href="undocumented#Anti_alias">Anti
<div><fiddle-embed name="6a614faa0fbcf19958b5559c19b02d0f"></fiddle-embed></div>
+### See Also
+
+<a href="#SkCanvas_clipRRect">clipRRect</a> <a href="#SkCanvas_clipPath">clipPath</a> <a href="#SkCanvas_clipRegion">clipRegion</a>
+
---
<pre style="padding: 1em 1em 1em 1em;width: 50em; background-color: #f0f0f0">
@@ -2171,6 +2325,10 @@ Resulting <a href="#Clip">Clip</a> is <a href="#Alias">Aliased</a>; pixels are f
<div><fiddle-embed name="13bbc5fa5597a6cd4d704b419dbc66d9"></fiddle-embed></div>
+### See Also
+
+<a href="#SkCanvas_clipRRect">clipRRect</a> <a href="#SkCanvas_clipPath">clipPath</a> <a href="#SkCanvas_clipRegion">clipRegion</a>
+
---
<pre style="padding: 1em 1em 1em 1em;width: 50em; background-color: #f0f0f0">
@@ -2197,6 +2355,10 @@ true if <a href="#Clip">Clip</a> is to be <a href="undocumented#Anti_alias">Anti
The same circle pieces blend with pixels more than once when <a href="undocumented#Anti_alias">Anti-aliased</a>,
visible as a thin pair of lines through the right circle.</div></fiddle-embed></div>
+### See Also
+
+<a href="#SkCanvas_clipRRect">clipRRect</a> <a href="#SkCanvas_clipPath">clipPath</a> <a href="#SkCanvas_clipRegion">clipRegion</a>
+
---
<a name="SkCanvas_androidFramework_setDeviceClipRestriction"></a>
@@ -2251,6 +2413,10 @@ true if <a href="#Clip">Clip</a> is to be <a href="undocumented#Anti_alias">Anti
<div><fiddle-embed name="182ef48ab5e04ba3578496fda8d9fa36"></fiddle-embed></div>
+### See Also
+
+<a href="#SkCanvas_clipRect">clipRect</a> <a href="#SkCanvas_clipPath">clipPath</a> <a href="#SkCanvas_clipRegion">clipRegion</a>
+
---
<pre style="padding: 1em 1em 1em 1em;width: 50em; background-color: #f0f0f0">
@@ -2274,6 +2440,10 @@ Resulting <a href="#Clip">Clip</a> is <a href="#Alias">Aliased</a>; pixels are f
<div><fiddle-embed name="ef6ae2eaae6761130ce38065d0364abd"></fiddle-embed></div>
+### See Also
+
+<a href="#SkCanvas_clipRect">clipRect</a> <a href="#SkCanvas_clipPath">clipPath</a> <a href="#SkCanvas_clipRegion">clipRegion</a>
+
---
<pre style="padding: 1em 1em 1em 1em;width: 50em; background-color: #f0f0f0">
@@ -2297,6 +2467,10 @@ true if <a href="#Clip">Clip</a> is to be <a href="undocumented#Anti_alias">Anti
<div><fiddle-embed name="f583114580b2176fe3e75b0994476a84"></fiddle-embed></div>
+### See Also
+
+<a href="#SkCanvas_clipRect">clipRect</a> <a href="#SkCanvas_clipPath">clipPath</a> <a href="#SkCanvas_clipRegion">clipRegion</a>
+
---
<a name="SkCanvas_clipPath"></a>
@@ -2331,6 +2505,10 @@ area outside clip is subtracted from circle.
Bottom figure uses <a href="#SkPath_kWinding_FillType">SkPath::kWinding FillType</a> and <a href="#SkClipOp_kIntersect">SkClipOp::kIntersect</a>;
area inside clip is intersected with circle.</div></fiddle-embed></div>
+### See Also
+
+<a href="#SkCanvas_clipRect">clipRect</a> <a href="#SkCanvas_clipRRect">clipRRect</a> <a href="#SkCanvas_clipRegion">clipRegion</a>
+
---
<pre style="padding: 1em 1em 1em 1em;width: 50em; background-color: #f0f0f0">
@@ -2360,6 +2538,10 @@ before it is combined with <a href="#Clip">Clip</a>.
<a href="#SkPath_kWinding_FillType">SkPath::kWinding FillType</a>, the overlap is included. Set to
<a href="#SkPath_kEvenOdd_FillType">SkPath::kEvenOdd FillType</a>, the overlap is excluded and forms a hole.</div></fiddle-embed></div>
+### See Also
+
+<a href="#SkCanvas_clipRect">clipRect</a> <a href="#SkCanvas_clipRRect">clipRRect</a> <a href="#SkCanvas_clipRegion">clipRegion</a>
+
---
<pre style="padding: 1em 1em 1em 1em;width: 50em; background-color: #f0f0f0">
@@ -2388,6 +2570,10 @@ true if <a href="#Clip">Clip</a> is to be <a href="undocumented#Anti_alias">Anti
is set to <a href="#SkPath_kWinding_FillType">SkPath::kWinding FillType</a>, the overlap is included. Set to
<a href="#SkPath_kEvenOdd_FillType">SkPath::kEvenOdd FillType</a>, the overlap is excluded and forms a hole.</div></fiddle-embed></div>
+### See Also
+
+<a href="#SkCanvas_clipRect">clipRect</a> <a href="#SkCanvas_clipRRect">clipRRect</a> <a href="#SkCanvas_clipRegion">clipRegion</a>
+
---
<a name="SkCanvas_setAllowSimplifyClip"></a>
@@ -2427,6 +2613,10 @@ Resulting <a href="#Clip">Clip</a> is <a href="#Alias">Aliased</a>; pixels are f
Both clips are <a href="#Alias">Aliased</a>; this is not noticeable on <a href="undocumented#Region">Region</a> clip because it
aligns to pixel boundaries.</div></fiddle-embed></div>
+### See Also
+
+<a href="#SkCanvas_clipRect">clipRect</a> <a href="#SkCanvas_clipRRect">clipRRect</a> <a href="#SkCanvas_clipPath">clipPath</a>
+
---
<a name="SkCanvas_quickReject"></a>
@@ -2465,6 +2655,10 @@ quickReject false
</fiddle-embed></div>
+### See Also
+
+<a href="#SkCanvas_getLocalClipBounds">getLocalClipBounds</a> <a href="#SkCanvas_getTotalMatrix">getTotalMatrix</a> <a href="#SkBitmap_drawsNothing">SkBitmap::drawsNothing</a>
+
---
<pre style="padding: 1em 1em 1em 1em;width: 50em; background-color: #f0f0f0">
@@ -2500,6 +2694,10 @@ quickReject false
</fiddle-embed></div>
+### See Also
+
+<a href="#SkCanvas_getLocalClipBounds">getLocalClipBounds</a> <a href="#SkCanvas_getTotalMatrix">getTotalMatrix</a> <a href="#SkBitmap_drawsNothing">SkBitmap::drawsNothing</a>
+
---
<a name="SkCanvas_getLocalClipBounds"></a>
@@ -2535,6 +2733,10 @@ left:14.5 top:64.5 right:60.5 bottom:115.5
</fiddle-embed></div>
+### See Also
+
+<a href="#SkCanvas_getDeviceClipBounds">getDeviceClipBounds</a> <a href="#SkCanvas_getBaseLayerSize">getBaseLayerSize</a> <a href="#SkCanvas_quickReject">quickReject</a>
+
---
<pre style="padding: 1em 1em 1em 1em;width: 50em; background-color: #f0f0f0">
@@ -2571,6 +2773,10 @@ local bounds empty = true
</fiddle-embed></div>
+### See Also
+
+<a href="#SkCanvas_getDeviceClipBounds">getDeviceClipBounds</a> <a href="#SkCanvas_getBaseLayerSize">getBaseLayerSize</a> <a href="#SkCanvas_quickReject">quickReject</a>
+
---
<a name="SkCanvas_getDeviceClipBounds"></a>
@@ -2605,6 +2811,10 @@ left:15 top:65 right:60 bottom:115
</fiddle-embed></div>
+### See Also
+
+<a href="#SkCanvas_getLocalClipBounds">getLocalClipBounds</a> <a href="#SkCanvas_getBaseLayerSize">getBaseLayerSize</a> <a href="#SkCanvas_quickReject">quickReject</a>
+
---
<pre style="padding: 1em 1em 1em 1em;width: 50em; background-color: #f0f0f0">
@@ -2640,6 +2850,10 @@ device bounds empty = true
</fiddle-embed></div>
+### See Also
+
+<a href="#SkCanvas_getLocalClipBounds">getLocalClipBounds</a> <a href="#SkCanvas_getBaseLayerSize">getBaseLayerSize</a> <a href="#SkCanvas_quickReject">quickReject</a>
+
---
<a name="SkCanvas_drawColor"></a>
@@ -2665,6 +2879,10 @@ Fill <a href="#Clip">Clip</a> with <a href="undocumented#Color">Color</a> <a hre
<div><fiddle-embed name="9cf94fead1e6b17d836c704b4eac269a"></fiddle-embed></div>
+### See Also
+
+<a href="#SkCanvas_clear">clear</a> <a href="#SkBitmap_erase">SkBitmap::erase</a> <a href="#SkCanvas_drawPaint">drawPaint</a>
+
---
<a name="SkCanvas_clear"></a>
@@ -2688,6 +2906,10 @@ This has the effect of replacing all pixels contained by <a href="#Clip">Clip</a
<div><fiddle-embed name="d97750e04989d42dc879406127b22c0b"></fiddle-embed></div>
+### See Also
+
+<a href="#SkCanvas_drawColor">drawColor</a> <a href="#SkBitmap_erase">SkBitmap::erase</a> <a href="#SkCanvas_drawPaint">drawPaint</a>
+
---
<a name="SkCanvas_discard"></a>
@@ -2709,6 +2931,10 @@ cached data associated with <a href="undocumented#Surface">Surface</a> or <a hre
It is not necessary to call <a href="#SkCanvas_discard">discard</a> once done with <a href="#Canvas">Canvas</a>;
any cached data is deleted when owning <a href="undocumented#Surface">Surface</a> or <a href="undocumented#Device">Device</a> is deleted.
+### See Also
+
+<a href="#SkCanvas_flush">flush</a> <a href="#SkSurface_prepareForExternalIO">SkSurface::prepareForExternalIO</a> GrContext::abandonContext
+
---
<a name="SkCanvas_drawPaint"></a>
@@ -2733,6 +2959,10 @@ graphics state used to fill <a href="#Canvas">Canvas</a></td>
<div><fiddle-embed name="1cd076b9b1a7c976cdca72b93c4f42dd"></fiddle-embed></div>
+### See Also
+
+<a href="#SkCanvas_clear">clear</a> <a href="#SkCanvas_drawColor">drawColor</a> <a href="#SkBitmap_erase">SkBitmap::erase</a>
+
---
## <a name="SkCanvas_PointMode"></a> Enum SkCanvas::PointMode
@@ -2768,6 +2998,10 @@ The upper right corner shows one line; when drawn as lines, two points are requi
The lower right corner shows two lines; when draw as polygon, no miter is drawn at the corner.
The lower left corner shows two lines with a miter when path contains polygon.</div></fiddle-embed></div>
+### See Also
+
+<a href="#SkCanvas_drawLine">drawLine</a> <a href="#SkCanvas_drawPoint">drawPoint</a> <a href="#SkCanvas_drawPath">drawPath</a>
+
<a name="SkCanvas_drawPoints"></a>
@@ -2832,6 +3066,10 @@ stroke, blend, color, and so on, used to draw</td>
The transparent color makes multiple line draws visible;
the path is drawn all at once.</div></fiddle-embed></div>
+### See Also
+
+<a href="#SkCanvas_drawLine">drawLine</a> <a href="#SkCanvas_drawPoint">drawPoint</a> <a href="#SkCanvas_drawPath">drawPath</a>
+
---
<a name="SkCanvas_drawPoint"></a>
@@ -2864,6 +3102,10 @@ stroke, blend, color, and so on, used to draw</td>
<div><fiddle-embed name="3476b553e7b547b604a3f6969f02d933"></fiddle-embed></div>
+### See Also
+
+<a href="#SkCanvas_drawPoints">drawPoints</a> <a href="#SkCanvas_drawCircle">drawCircle</a> <a href="#SkCanvas_drawRect">drawRect</a> <a href="#SkCanvas_drawLine">drawLine</a> <a href="#SkCanvas_drawPath">drawPath</a>
+
---
<pre style="padding: 1em 1em 1em 1em;width: 50em; background-color: #f0f0f0">
@@ -2893,7 +3135,7 @@ stroke, blend, color, and so on, used to draw</td>
### See Also
-<a href="#SkCanvas_drawPoints">drawPoints</a> <a href="#SkCanvas_drawCircle">drawCircle</a> <a href="#SkCanvas_drawRect">drawRect</a>
+<a href="#SkCanvas_drawPoints">drawPoints</a> <a href="#SkCanvas_drawCircle">drawCircle</a> <a href="#SkCanvas_drawRect">drawRect</a> <a href="#SkCanvas_drawLine">drawLine</a> <a href="#SkCanvas_drawPath">drawPath</a>
---
@@ -2929,6 +3171,10 @@ stroke, blend, color, and so on, used to draw</td>
<div><fiddle-embed name="d10ee4a265f278d02afe11ad889b293b"></fiddle-embed></div>
+### See Also
+
+<a href="#SkCanvas_drawPoint">drawPoint</a> <a href="#SkCanvas_drawCircle">drawCircle</a> <a href="#SkCanvas_drawRect">drawRect</a> <a href="#SkCanvas_drawPath">drawPath</a>
+
---
<pre style="padding: 1em 1em 1em 1em;width: 50em; background-color: #f0f0f0">
@@ -2955,6 +3201,10 @@ stroke, blend, color, and so on, used to draw</td>
<div><fiddle-embed name="f8525816cb596dde1a3855446792c8e0"></fiddle-embed></div>
+### See Also
+
+<a href="#SkCanvas_drawPoint">drawPoint</a> <a href="#SkCanvas_drawCircle">drawCircle</a> <a href="#SkCanvas_drawRect">drawRect</a> <a href="#SkCanvas_drawPath">drawPath</a>
+
---
<a name="SkCanvas_drawRect"></a>
@@ -2982,6 +3232,10 @@ stroke or fill, blend, color, and so on, used to draw</td>
<div><fiddle-embed name="871b0da9b4a23de11ae7a772ce14aed3"></fiddle-embed></div>
+### See Also
+
+<a href="#SkCanvas_drawIRect">drawIRect</a> <a href="#SkCanvas_drawRRect">drawRRect</a> <a href="#SkCanvas_drawRoundRect">drawRoundRect</a> <a href="#SkCanvas_drawRegion">drawRegion</a> <a href="#SkCanvas_drawPath">drawPath</a> <a href="#SkCanvas_drawLine">drawLine</a>
+
---
<a name="SkCanvas_drawIRect"></a>
@@ -3009,6 +3263,10 @@ stroke or fill, blend, color, and so on, used to draw</td>
<div><fiddle-embed name="d3d8ca584134560750b1efa4a4c6e138"></fiddle-embed></div>
+### See Also
+
+<a href="#SkCanvas_drawRect">drawRect</a> <a href="#SkCanvas_drawRRect">drawRRect</a> <a href="#SkCanvas_drawRoundRect">drawRoundRect</a> <a href="#SkCanvas_drawRegion">drawRegion</a> <a href="#SkCanvas_drawPath">drawPath</a> <a href="#SkCanvas_drawLine">drawLine</a>
+
---
<a name="SkCanvas_drawRegion"></a>
@@ -3036,6 +3294,10 @@ if stroked, <a href="#Stroke_Width">Paint Stroke Width</a> describes the line th
<div><fiddle-embed name="80309e0deca0f8add616cec7bec634ca"></fiddle-embed></div>
+### See Also
+
+<a href="#SkCanvas_drawRect">drawRect</a> <a href="#SkCanvas_drawIRect">drawIRect</a> <a href="#SkCanvas_drawPath">drawPath</a>
+
---
<a name="SkCanvas_drawOval"></a>
@@ -3062,6 +3324,10 @@ if stroked, <a href="#Stroke_Width">Paint Stroke Width</a> describes the line th
<div><fiddle-embed name="8b6b86f8a022811cd29a9c6ab771df12"></fiddle-embed></div>
+### See Also
+
+<a href="#SkCanvas_drawCircle">drawCircle</a> <a href="#SkCanvas_drawPoint">drawPoint</a> <a href="#SkCanvas_drawPath">drawPath</a> <a href="#SkCanvas_drawRRect">drawRRect</a> <a href="#SkCanvas_drawRoundRect">drawRoundRect</a>
+
---
<a name="SkCanvas_drawRRect"></a>
@@ -3091,6 +3357,10 @@ may have any combination of positive non-square radii for the four corners.
<div><fiddle-embed name="369cdbfb2a200d5bb8ae40f7cc1025c3"></fiddle-embed></div>
+### See Also
+
+<a href="#SkCanvas_drawRect">drawRect</a> <a href="#SkCanvas_drawRoundRect">drawRoundRect</a> <a href="#SkCanvas_drawDRRect">drawDRRect</a> <a href="#SkCanvas_drawCircle">drawCircle</a> <a href="#SkCanvas_drawOval">drawOval</a> <a href="#SkCanvas_drawPath">drawPath</a>
+
---
<a name="SkCanvas_drawDRRect"></a>
@@ -3133,6 +3403,10 @@ concave and <a href="#SkCanvas_drawDRRect_outer">outer</a> contains <a href="#Sk
Inner <a href="undocumented#Round_Rect">Round Rect</a> has corner radii; outset stroke increases radii of corners.
Stroke join does not affect <a href="#SkCanvas_drawDRRect_inner">inner</a> <a href="undocumented#Round_Rect">Round Rect</a> since it has no sharp corners.</div></fiddle-embed></div>
+### See Also
+
+<a href="#SkCanvas_drawRect">drawRect</a> <a href="#SkCanvas_drawRoundRect">drawRoundRect</a> <a href="#SkCanvas_drawRRect">drawRRect</a> <a href="#SkCanvas_drawCircle">drawCircle</a> <a href="#SkCanvas_drawOval">drawOval</a> <a href="#SkCanvas_drawPath">drawPath</a>
+
---
<a name="SkCanvas_drawCircle"></a>
@@ -3164,6 +3438,10 @@ half the diameter of <a href="undocumented#Circle">Circle</a></td>
<div><fiddle-embed name="841229e25ca9dfb68bd0dc4dfff356eb"></fiddle-embed></div>
+### See Also
+
+<a href="#SkCanvas_drawOval">drawOval</a> <a href="#SkCanvas_drawRRect">drawRRect</a> <a href="#SkCanvas_drawRoundRect">drawRoundRect</a> <a href="#SkCanvas_drawPath">drawPath</a> <a href="#SkCanvas_drawArc">drawArc</a> <a href="#SkCanvas_drawPoint">drawPoint</a> <a href="#SkCanvas_drawLine">drawLine</a>
+
---
<pre style="padding: 1em 1em 1em 1em;width: 50em; background-color: #f0f0f0">
@@ -3190,6 +3468,10 @@ half the diameter of <a href="undocumented#Circle">Circle</a></td>
<div><fiddle-embed name="9303ffae45ddd0b0a1f93d816a1762f4"></fiddle-embed></div>
+### See Also
+
+<a href="#SkCanvas_drawOval">drawOval</a> <a href="#SkCanvas_drawRRect">drawRRect</a> <a href="#SkCanvas_drawRoundRect">drawRoundRect</a> <a href="#SkCanvas_drawPath">drawPath</a> <a href="#SkCanvas_drawArc">drawArc</a> <a href="#SkCanvas_drawPoint">drawPoint</a> <a href="#SkCanvas_drawLine">drawLine</a>
+
---
<a name="SkCanvas_drawArc"></a>
@@ -3237,6 +3519,10 @@ if true, include the center of the <a href="#SkCanvas_drawArc_oval">oval</a></td
<div><fiddle-embed name="e91dbe45974489b8962c815017b7914f"></fiddle-embed></div>
+### See Also
+
+<a href="#SkPath_arcTo">SkPath::arcTo</a> <a href="#SkCanvas_drawCircle">drawCircle</a> <a href="#SkCanvas_drawOval">drawOval</a> <a href="#SkCanvas_drawPath">drawPath</a>
+
---
<a name="SkCanvas_drawRoundRect"></a>
@@ -3277,6 +3563,10 @@ Second row radii sum to less than sides.
Third row radii sum equals sides.
Fourth row radii sum exceeds sides; radii are scaled to fit.</div></fiddle-embed></div>
+### See Also
+
+DrawRRect <a href="#SkCanvas_drawRect">drawRect</a> <a href="#SkCanvas_drawDRRect">drawDRRect</a> <a href="#SkCanvas_drawPath">drawPath</a> <a href="#SkCanvas_drawCircle">drawCircle</a> <a href="#SkCanvas_drawOval">drawOval</a> <a href="#SkCanvas_drawPoint">drawPoint</a>
+
---
<a name="SkCanvas_drawPath"></a>
@@ -3313,6 +3603,10 @@ First bottom column shows winding fills overlap.
Second bottom column shows even odd fills exclude overlap.
Third bottom column shows inverse winding fills area outside both contours.</div></fiddle-embed></div>
+### See Also
+
+<a href="SkPath_Reference#SkPath">SkPath</a> <a href="#SkCanvas_drawLine">drawLine</a> <a href="#SkCanvas_drawArc">drawArc</a> <a href="#SkCanvas_drawRect">drawRect</a> <a href="#SkCanvas_drawPoints">drawPoints</a>
+
---
# <a name="Draw_Image"></a> Draw Image
@@ -3355,6 +3649,10 @@ and so on; or nullptr</td>
<div><fiddle-embed name="185746dc0faa6f1df30c4afe098646ff"></fiddle-embed></div>
+### See Also
+
+<a href="#SkCanvas_drawBitmap">drawBitmap</a> <a href="#SkCanvas_drawImageLattice">drawImageLattice</a> <a href="#SkCanvas_drawImageNine">drawImageNine</a> <a href="#SkCanvas_drawImageRect">drawImageRect</a> <a href="#SkPaint_setImageFilter">SkPaint::setImageFilter</a>
+
---
<pre style="padding: 1em 1em 1em 1em;width: 50em; background-color: #f0f0f0">
@@ -3390,6 +3688,10 @@ and so on; or nullptr</td>
<div><fiddle-embed name="a4e877e891b1be5faa2b7fd07f673a10"></fiddle-embed></div>
+### See Also
+
+<a href="#SkCanvas_drawBitmap">drawBitmap</a> <a href="#SkCanvas_drawImageLattice">drawImageLattice</a> <a href="#SkCanvas_drawImageNine">drawImageNine</a> <a href="#SkCanvas_drawImageRect">drawImageRect</a> <a href="#SkPaint_setImageFilter">SkPaint::setImageFilter</a>
+
---
## <a name="SkCanvas_SrcRectConstraint"></a> Enum SkCanvas::SrcRectConstraint
@@ -3429,6 +3731,10 @@ The middle and right bitmaps are filtered checkerboards.
Drawing the checkerboard with <a href="#SkCanvas_kStrict_SrcRectConstraint">kStrict SrcRectConstraint</a> shows only a blur of black and white.
Drawing the checkerboard with <a href="#SkCanvas_kFast_SrcRectConstraint">kFast SrcRectConstraint</a> allows red to bleed in the corners.</div></fiddle-embed></div>
+### See Also
+
+<a href="#SkCanvas_drawImageRect">drawImageRect</a> <a href="#SkCanvas_drawImage">drawImage</a> <a href="#SkPaint_setImageFilter">SkPaint::setImageFilter</a>
+
<a name="SkCanvas_drawImageRect"></a>
@@ -3479,6 +3785,10 @@ the middle and right bitmaps draw with <a href="undocumented#SkFilterQuality">kL
<a href="#SkCanvas_kStrict_SrcRectConstraint">kStrict SrcRectConstraint</a>, the filter remains within the checkerboard, and
with <a href="#SkCanvas_kFast_SrcRectConstraint">kFast SrcRectConstraint</a> red bleeds on the edges.</div></fiddle-embed></div>
+### See Also
+
+<a href="#SkCanvas_SrcRectConstraint">SrcRectConstraint</a> <a href="#SkCanvas_drawImage">drawImage</a> <a href="#SkCanvas_drawImageLattice">drawImageLattice</a> <a href="#SkCanvas_drawImageNine">drawImageNine</a>
+
---
<pre style="padding: 1em 1em 1em 1em;width: 50em; background-color: #f0f0f0">
@@ -3524,6 +3834,10 @@ filter strictly within <a href="#SkCanvas_drawImageRect_2_isrc">isrc</a> or draw
<div><fiddle-embed name="b63b8f9f587b8d918973dc065ce4a593"></fiddle-embed></div>
+### See Also
+
+<a href="#SkCanvas_SrcRectConstraint">SrcRectConstraint</a> <a href="#SkCanvas_drawImage">drawImage</a> <a href="#SkCanvas_drawImageLattice">drawImageLattice</a> <a href="#SkCanvas_drawImageNine">drawImageNine</a>
+
---
<pre style="padding: 1em 1em 1em 1em;width: 50em; background-color: #f0f0f0">
@@ -3564,6 +3878,10 @@ filter strictly within <a href="#SkCanvas_drawImageRect_3_image">image</a> or dr
<div><fiddle-embed name="3cf8fb639fef99993cafc064d550c739"></fiddle-embed></div>
+### See Also
+
+<a href="#SkCanvas_SrcRectConstraint">SrcRectConstraint</a> <a href="#SkCanvas_drawImage">drawImage</a> <a href="#SkCanvas_drawImageLattice">drawImageLattice</a> <a href="#SkCanvas_drawImageNine">drawImageNine</a>
+
---
<pre style="padding: 1em 1em 1em 1em;width: 50em; background-color: #f0f0f0">
@@ -3608,6 +3926,10 @@ filter strictly within <a href="#SkCanvas_drawImageRect_4_src">src</a> or draw f
<div><fiddle-embed name="589999454db90c573f7facfb007253a7"><div><a href="#Canvas">Canvas</a> scales and translates; transformation from <a href="#SkCanvas_drawImageRect_4_src">src</a> to <a href="#SkCanvas_drawImageRect_4_dst">dst</a> also scales.
The two matrices are concatenated to create the final transformation.</div></fiddle-embed></div>
+### See Also
+
+<a href="#SkCanvas_SrcRectConstraint">SrcRectConstraint</a> <a href="#SkCanvas_drawImage">drawImage</a> <a href="#SkCanvas_drawImageLattice">drawImageLattice</a> <a href="#SkCanvas_drawImageNine">drawImageNine</a>
+
---
<pre style="padding: 1em 1em 1em 1em;width: 50em; background-color: #f0f0f0">
@@ -3652,6 +3974,10 @@ filter strictly within <a href="#SkCanvas_drawImageRect_5_image">image</a> or dr
<div><fiddle-embed name="249fadde5d0d0fc515e9f53f188af48b"></fiddle-embed></div>
+### See Also
+
+<a href="#SkCanvas_SrcRectConstraint">SrcRectConstraint</a> <a href="#SkCanvas_drawImage">drawImage</a> <a href="#SkCanvas_drawImageLattice">drawImageLattice</a> <a href="#SkCanvas_drawImageNine">drawImageNine</a>
+
---
<pre style="padding: 1em 1em 1em 1em;width: 50em; background-color: #f0f0f0">
@@ -3693,6 +4019,10 @@ filter strictly within <a href="#SkCanvas_drawImageRect_6_image">image</a> or dr
<div><fiddle-embed name="37a85bd2247487c7af584e42c1cabe4a"></fiddle-embed></div>
+### See Also
+
+<a href="#SkCanvas_SrcRectConstraint">SrcRectConstraint</a> <a href="#SkCanvas_drawImage">drawImage</a> <a href="#SkCanvas_drawImageLattice">drawImageLattice</a> <a href="#SkCanvas_drawImageNine">drawImageNine</a>
+
---
<a name="SkCanvas_drawImageNine"></a>
@@ -3739,6 +4069,10 @@ The second <a href="#SkCanvas_drawImageNine_image">image</a> equals the size of
The remaining images are larger than <a href="#SkCanvas_drawImageNine_center">center</a>. All corners draw without scaling.
The sides and <a href="#SkCanvas_drawImageNine_center">center</a> are scaled if needed to take up the remaining space.</div></fiddle-embed></div>
+### See Also
+
+<a href="#SkCanvas_drawImage">drawImage</a> <a href="#SkCanvas_drawBitmapNine">drawBitmapNine</a> <a href="#SkCanvas_drawImageLattice">drawImageLattice</a> <a href="#SkCanvas_drawImageRect">drawImageRect</a>
+
---
<pre style="padding: 1em 1em 1em 1em;width: 50em; background-color: #f0f0f0">
@@ -3784,6 +4118,10 @@ fill the remaining space.
The rightmost <a href="#SkCanvas_drawImageNine_2_image">image</a> has four corners scaled vertically to fit, and uses sides above
and below <a href="#SkCanvas_drawImageNine_2_center">center</a> to fill the remaining space.</div></fiddle-embed></div>
+### See Also
+
+<a href="#SkCanvas_drawImage">drawImage</a> <a href="#SkCanvas_drawBitmapNine">drawBitmapNine</a> <a href="#SkCanvas_drawImageLattice">drawImageLattice</a> <a href="#SkCanvas_drawImageRect">drawImageRect</a>
+
---
<a name="SkCanvas_drawBitmap"></a>
@@ -3824,6 +4162,10 @@ and so on; or nullptr</td>
<div><fiddle-embed name="70d7fbf7de82264dd66a526d98d31def"></fiddle-embed></div>
+### See Also
+
+<a href="#SkCanvas_drawImage">drawImage</a> <a href="#SkCanvas_drawBitmapLattice">drawBitmapLattice</a> <a href="#SkCanvas_drawBitmapNine">drawBitmapNine</a> <a href="#SkCanvas_drawBitmapRect">drawBitmapRect</a> <a href="#SkBitmap_readPixels">SkBitmap::readPixels</a> <a href="#SkBitmap_writePixels">SkBitmap::writePixels</a>
+
---
<a name="SkCanvas_drawBitmapRect"></a>
@@ -3871,6 +4213,10 @@ filter strictly within <a href="#SkCanvas_drawBitmapRect_src">src</a> or draw fa
<div><fiddle-embed name="de449106e78ec558d9921b9f076de164"></fiddle-embed></div>
+### See Also
+
+<a href="#SkCanvas_drawImageRect">drawImageRect</a> <a href="#SkCanvas_drawBitmap">drawBitmap</a> <a href="#SkCanvas_drawBitmapLattice">drawBitmapLattice</a> <a href="#SkCanvas_drawBitmapNine">drawBitmapNine</a>
+
---
<pre style="padding: 1em 1em 1em 1em;width: 50em; background-color: #f0f0f0">
@@ -3916,6 +4262,10 @@ sample strictly within <a href="#SkCanvas_drawBitmapRect_2_isrc">isrc</a>, or dr
<div><fiddle-embed name="69b028ef1f95c355672fbdcbf47550f2"></fiddle-embed></div>
+### See Also
+
+<a href="#SkCanvas_drawImageRect">drawImageRect</a> <a href="#SkCanvas_drawBitmap">drawBitmap</a> <a href="#SkCanvas_drawBitmapLattice">drawBitmapLattice</a> <a href="#SkCanvas_drawBitmapNine">drawBitmapNine</a>
+
---
<pre style="padding: 1em 1em 1em 1em;width: 50em; background-color: #f0f0f0">
@@ -3959,6 +4309,10 @@ filter strictly within <a href="#SkCanvas_drawBitmapRect_3_bitmap">bitmap</a> or
<div><fiddle-embed name="76b74b826e43b4a595d18115564e88c7"></fiddle-embed></div>
+### See Also
+
+<a href="#SkCanvas_drawImageRect">drawImageRect</a> <a href="#SkCanvas_drawBitmap">drawBitmap</a> <a href="#SkCanvas_drawBitmapLattice">drawBitmapLattice</a> <a href="#SkCanvas_drawBitmapNine">drawBitmapNine</a>
+
---
<a name="SkCanvas_drawBitmapNine"></a>
@@ -4009,6 +4363,10 @@ fill the remaining space.
The rightmost <a href="#SkCanvas_drawBitmapNine_bitmap">bitmap</a> draw has four corners scaled vertically to fit, and uses sides above
and below <a href="#SkCanvas_drawBitmapNine_center">center</a> to fill the remaining space.</div></fiddle-embed></div>
+### See Also
+
+<a href="#SkCanvas_drawImageNine">drawImageNine</a> <a href="#SkCanvas_drawBitmap">drawBitmap</a> <a href="#SkCanvas_drawBitmapLattice">drawBitmapLattice</a> <a href="#SkCanvas_drawBitmapRect">drawBitmapRect</a>
+
---
# <a name="SkCanvas_Lattice"></a> Struct SkCanvas::Lattice
@@ -4140,6 +4498,10 @@ fill the remaining space; the center is transparent.
The rightmost <a href="#SkCanvas_drawBitmapLattice_bitmap">bitmap</a> draw has four corners scaled vertically to fit, and uses sides above
and below center to fill the remaining space.</div></fiddle-embed></div>
+### See Also
+
+<a href="#SkCanvas_drawImageLattice">drawImageLattice</a> <a href="#SkCanvas_drawBitmap">drawBitmap</a> <a href="#SkCanvas_drawBitmapNine">drawBitmapNine</a> <a href="#SkCanvas_Lattice">Lattice</a>
+
---
<a name="SkCanvas_drawImageLattice"></a>
@@ -4190,6 +4552,10 @@ The second <a href="#SkCanvas_drawImageLattice_image">image</a> equals the size
The remaining images are larger than center. All corners draw without scaling. The sides
are scaled if needed to take up the remaining space; the center is transparent.</div></fiddle-embed></div>
+### See Also
+
+<a href="#SkCanvas_drawBitmapLattice">drawBitmapLattice</a> <a href="#SkCanvas_drawImage">drawImage</a> <a href="#SkCanvas_drawImageNine">drawImageNine</a> <a href="#SkCanvas_Lattice">Lattice</a>
+
---
<a name="SkCanvas_drawText"></a>
@@ -4233,6 +4599,10 @@ start of <a href="#SkCanvas_drawText_text">text</a> on y-axis</td>
<div><fiddle-embed name="a3365bd3044b13e8e0318ee8aefbdf91"><div>The same <a href="#SkCanvas_drawText_text">text</a> is drawn varying <a href="#Text_Size">Paint Text Size</a> and varying
<a href="#Matrix">Matrix</a>.</div></fiddle-embed></div>
+### See Also
+
+<a href="#SkCanvas_drawString">drawString</a> <a href="#SkCanvas_drawPosText">drawPosText</a> <a href="#SkCanvas_drawPosTextH">drawPosTextH</a> <a href="#SkCanvas_drawTextBlob">drawTextBlob</a> <a href="#SkCanvas_drawTextOnPath">drawTextOnPath</a> <a href="#SkCanvas_drawTextRSXform">drawTextRSXform</a>
+
---
<a name="SkCanvas_drawString"></a>
@@ -4277,7 +4647,7 @@ text size, blend, color, and so on, used to draw</td>
### See Also
-<a href="#SkCanvas_drawText">drawText</a>
+<a href="#SkCanvas_drawText">drawText</a> <a href="#SkCanvas_drawPosText">drawPosText</a> <a href="#SkCanvas_drawPosTextH">drawPosTextH</a> <a href="#SkCanvas_drawTextBlob">drawTextBlob</a> <a href="#SkCanvas_drawTextOnPath">drawTextOnPath</a> <a href="#SkCanvas_drawTextRSXform">drawTextRSXform</a>
---
@@ -4321,7 +4691,7 @@ text size, blend, color, and so on, used to draw</td>
### See Also
-<a href="#SkCanvas_drawText">drawText</a>
+<a href="#SkCanvas_drawText">drawText</a> <a href="#SkCanvas_drawPosText">drawPosText</a> <a href="#SkCanvas_drawPosTextH">drawPosTextH</a> <a href="#SkCanvas_drawTextBlob">drawTextBlob</a> <a href="#SkCanvas_drawTextOnPath">drawTextOnPath</a> <a href="#SkCanvas_drawTextRSXform">drawTextRSXform</a>
---
@@ -4367,6 +4737,10 @@ array of glyph origins</td>
<div><fiddle-embed name="bf0b2402533a23b6392e0676b7a8414c"></fiddle-embed></div>
+### See Also
+
+<a href="#SkCanvas_drawText">drawText</a> <a href="#SkCanvas_drawPosTextH">drawPosTextH</a> <a href="#SkCanvas_drawTextBlob">drawTextBlob</a> <a href="#SkCanvas_drawTextOnPath">drawTextOnPath</a> <a href="#SkCanvas_drawTextRSXform">drawTextRSXform</a>
+
---
<a name="SkCanvas_drawPosTextH"></a>
@@ -4414,6 +4788,10 @@ shared y coordinate for all of x positions</td>
<div><fiddle-embed name="95c6a7ef82993a8d2add676080e9438a"></fiddle-embed></div>
+### See Also
+
+<a href="#SkCanvas_drawText">drawText</a> <a href="#SkCanvas_drawPosText">drawPosText</a> <a href="#SkCanvas_drawTextBlob">drawTextBlob</a> <a href="#SkCanvas_drawTextOnPath">drawTextOnPath</a> <a href="#SkCanvas_drawTextRSXform">drawTextRSXform</a>
+
---
<a name="SkCanvas_drawTextOnPathHV"></a>
@@ -4462,6 +4840,10 @@ offset of <a href="#SkCanvas_drawTextOnPathHV_text">text</a> above (if negative)
<div><fiddle-embed name="25cc5452156d7f06e85f514913d46b5c"></fiddle-embed></div>
+### See Also
+
+<a href="#SkCanvas_drawTextOnPath">drawTextOnPath</a> <a href="#SkCanvas_drawText">drawText</a> <a href="#SkCanvas_drawPosTextH">drawPosTextH</a> <a href="#SkCanvas_drawTextBlob">drawTextBlob</a> <a href="#SkCanvas_drawTextRSXform">drawTextRSXform</a>
+
---
<a name="SkCanvas_drawTextOnPath"></a>
@@ -4509,6 +4891,10 @@ to use identity <a href="#Matrix">Matrix</a></td>
<div><fiddle-embed name="0f60797fbdce3d3c71c46b800e6bd6f8"></fiddle-embed></div>
+### See Also
+
+<a href="#SkCanvas_drawTextOnPathHV">drawTextOnPathHV</a> <a href="#SkCanvas_drawText">drawText</a> <a href="#SkCanvas_drawPosTextH">drawPosTextH</a> <a href="#SkCanvas_drawTextBlob">drawTextBlob</a> <a href="#SkCanvas_drawTextRSXform">drawTextRSXform</a>
+
---
<a name="SkCanvas_drawTextRSXform"></a>
@@ -4552,6 +4938,10 @@ byte length of <a href="#SkCanvas_drawTextRSXform_text">text</a> array</td>
<div><fiddle-embed name="55c84c39890c7516f7c835c46b1b8fc9"></fiddle-embed></div>
+### See Also
+
+<a href="#SkCanvas_drawTextOnPath">drawTextOnPath</a> <a href="#SkCanvas_drawTextOnPathHV">drawTextOnPathHV</a> <a href="#SkCanvas_drawText">drawText</a> <a href="#SkCanvas_drawPosText">drawPosText</a> <a href="#SkCanvas_drawTextBlob">drawTextBlob</a>
+
---
<a name="SkCanvas_drawTextBlob"></a>
@@ -4590,6 +4980,10 @@ blend, color, stroking, and so on, used to draw</td>
<div><fiddle-embed name="b8c0a748ed5c328f38e00f5f3d12e5e6"></fiddle-embed></div>
+### See Also
+
+<a href="#SkCanvas_drawText">drawText</a> <a href="#SkCanvas_drawPosText">drawPosText</a> <a href="#SkCanvas_drawPosTextH">drawPosTextH</a>
+
---
<pre style="padding: 1em 1em 1em 1em;width: 50em; background-color: #f0f0f0">
@@ -4626,6 +5020,10 @@ blend, color, stroking, and so on, used to draw</td>
<div><fiddle-embed name="d313ad4726518f5d44f6433887bb7ce9"><div><a href="SkPaint_Reference#Paint">Paint</a> attributes unrelated to text, like color, have no effect on <a href="#SkCanvas_drawTextBlob_2_paint">paint</a> in allocated <a href="undocumented#Text_Blob">Text Blob</a>.
<a href="SkPaint_Reference#Paint">Paint</a> attributes related to text, like text size, have no effect on <a href="#SkCanvas_drawTextBlob_2_paint">paint</a> passed to <a href="#SkCanvas_drawTextBlob">drawTextBlob</a>.</div></fiddle-embed></div>
+### See Also
+
+<a href="#SkCanvas_drawText">drawText</a> <a href="#SkCanvas_drawPosText">drawPosText</a> <a href="#SkCanvas_drawPosTextH">drawPosTextH</a>
+
---
<a name="SkCanvas_drawPicture"></a>
@@ -4652,6 +5050,10 @@ recorded drawing commands to play</td>
<div><fiddle-embed name="fde216281ff93d612768a49f2cf309ae"></fiddle-embed></div>
+### See Also
+
+<a href="#SkCanvas_drawDrawable">drawDrawable</a> <a href="undocumented#SkPicture">SkPicture</a> <a href="#SkPicture_playback">SkPicture::playback</a>
+
---
<pre style="padding: 1em 1em 1em 1em;width: 50em; background-color: #f0f0f0">
@@ -4675,6 +5077,10 @@ recorded drawing commands to play</td>
<div><fiddle-embed name="a7373b01354dda73dafe8718f4fd0cfc"></fiddle-embed></div>
+### See Also
+
+<a href="#SkCanvas_drawDrawable">drawDrawable</a> <a href="undocumented#SkPicture">SkPicture</a> <a href="#SkPicture_playback">SkPicture::playback</a>
+
---
<pre style="padding: 1em 1em 1em 1em;width: 50em; background-color: #f0f0f0">
@@ -4704,6 +5110,10 @@ recorded drawing commands to play</td>
<div><fiddle-embed name="4ec028d8ffa0a6ae1a99ff8d094b02bc"></fiddle-embed></div>
+### See Also
+
+<a href="#SkCanvas_drawDrawable">drawDrawable</a> <a href="undocumented#SkPicture">SkPicture</a> <a href="#SkPicture_playback">SkPicture::playback</a>
+
---
<pre style="padding: 1em 1em 1em 1em;width: 50em; background-color: #f0f0f0">
@@ -4733,6 +5143,10 @@ recorded drawing commands to play</td>
<div><fiddle-embed name="7295eb14091e98565cec0353661a6a7d"></fiddle-embed></div>
+### See Also
+
+<a href="#SkCanvas_drawDrawable">drawDrawable</a> <a href="undocumented#SkPicture">SkPicture</a> <a href="#SkPicture_playback">SkPicture::playback</a>
+
---
<a name="SkCanvas_drawVertices"></a>
@@ -4762,6 +5176,10 @@ specifies the <a href="undocumented#Shader">Shader</a>, used as <a href="undocum
<div><fiddle-embed name="f48b22eaad1bb7adcc3faaa321754af6"></fiddle-embed></div>
+### See Also
+
+<a href="#SkCanvas_drawPatch">drawPatch</a> <a href="#SkCanvas_drawPicture">drawPicture</a>
+
---
<pre style="padding: 1em 1em 1em 1em;width: 50em; background-color: #f0f0f0">
@@ -4788,6 +5206,10 @@ specifies the <a href="undocumented#Shader">Shader</a>, used as <a href="undocum
<div><fiddle-embed name="94e32538646d5f1299c427e473f9ec87"></fiddle-embed></div>
+### See Also
+
+<a href="#SkCanvas_drawPatch">drawPatch</a> <a href="#SkCanvas_drawPicture">drawPicture</a>
+
---
<a name="SkCanvas_drawPatch"></a>
@@ -4838,6 +5260,10 @@ may be nullptr</td>
<div><fiddle-embed name="accb545d67984ced168f5be6ab824795"></fiddle-embed></div>
+### See Also
+
+SeeAlso <a href="#SkCanvas_drawVertices">drawVertices</a> <a href="#SkCanvas_drawPicture">drawPicture</a>
+
---
<pre style="padding: 1em 1em 1em 1em;width: 50em; background-color: #f0f0f0">
@@ -4886,6 +5312,10 @@ may be nullptr</td>
<div><fiddle-embed name="3412c2a16cb529af0e04878d264451f2"></fiddle-embed></div>
+### See Also
+
+SeeAlso <a href="#SkCanvas_drawVertices">drawVertices</a> <a href="#SkCanvas_drawPicture">drawPicture</a>
+
---
<a name="SkCanvas_drawAtlas"></a>
@@ -4932,6 +5362,10 @@ bounds of transformed sprites for efficient clipping; may be nullptr</td>
<div><fiddle-embed name="1df575f9b8132306ce0552a2554ed132"></fiddle-embed></div>
+### See Also
+
+<a href="#SkCanvas_drawBitmap">drawBitmap</a> <a href="#SkCanvas_drawImage">drawImage</a>
+
---
<pre style="padding: 1em 1em 1em 1em;width: 50em; background-color: #f0f0f0">
@@ -4975,6 +5409,10 @@ bounds of transformed sprites for efficient clipping; may be nullptr</td>
<div><fiddle-embed name="0e66a8f230a8d531bcef9f5ebdc5aac1"></fiddle-embed></div>
+### See Also
+
+<a href="#SkCanvas_drawBitmap">drawBitmap</a> <a href="#SkCanvas_drawImage">drawImage</a>
+
---
<pre style="padding: 1em 1em 1em 1em;width: 50em; background-color: #f0f0f0">
@@ -5012,6 +5450,10 @@ bounds of transformed sprites for efficient clipping; may be nullptr</td>
<div><fiddle-embed name="8dc0d0fdeab20bbc21cac6874ddbefcd"></fiddle-embed></div>
+### See Also
+
+<a href="#SkCanvas_drawBitmap">drawBitmap</a> <a href="#SkCanvas_drawImage">drawImage</a>
+
---
<pre style="padding: 1em 1em 1em 1em;width: 50em; background-color: #f0f0f0">
@@ -5050,6 +5492,10 @@ bounds of transformed sprites for efficient clipping; may be nullptr</td>
<div><fiddle-embed name="c093c2b14bd3e6171ede7cd4049d9b57"></fiddle-embed></div>
+### See Also
+
+<a href="#SkCanvas_drawBitmap">drawBitmap</a> <a href="#SkCanvas_drawImage">drawImage</a>
+
---
<a name="SkCanvas_drawDrawable"></a>
@@ -5080,6 +5526,10 @@ transformation applied to drawing; may be nullptr</td>
<div><fiddle-embed name="3a4dfcd08838866b5cfc0d82489195ba"></fiddle-embed></div>
+### See Also
+
+<a href="undocumented#SkDrawable">SkDrawable</a> <a href="#SkCanvas_drawPicture">drawPicture</a>
+
---
<pre style="padding: 1em 1em 1em 1em;width: 50em; background-color: #f0f0f0">
@@ -5108,6 +5558,10 @@ offset into <a href="#Canvas">Canvas</a> writable pixels in <a href="#SkCanvas_d
<div><fiddle-embed name="1bdc07ad3b154c89b771722c2fcaee3f"></fiddle-embed></div>
+### See Also
+
+<a href="undocumented#SkDrawable">SkDrawable</a> <a href="#SkCanvas_drawPicture">drawPicture</a>
+
---
<a name="SkCanvas_drawAnnotation"></a>
@@ -5138,6 +5592,10 @@ data holding <a href="#SkCanvas_drawAnnotation_value">value</a> stored in annota
<div><fiddle-embed name="00b430bd80d740e19c6d020a940f56d5"></fiddle-embed></div>
+### See Also
+
+<a href="undocumented#SkPicture">SkPicture</a> <a href="undocumented#SkDocument">SkDocument</a>
+
---
<pre style="padding: 1em 1em 1em 1em;width: 50em; background-color: #f0f0f0">
@@ -5166,6 +5624,10 @@ data holding <a href="#SkCanvas_drawAnnotation_2_value">value</a> stored in anno
<div><fiddle-embed name="00b430bd80d740e19c6d020a940f56d5"></fiddle-embed></div>
+### See Also
+
+<a href="undocumented#SkPicture">SkPicture</a> <a href="undocumented#SkDocument">SkDocument</a>
+
---
<a name="SkCanvas_getDrawFilter"></a>
@@ -5220,6 +5682,10 @@ clip is empty
</fiddle-embed></div>
+### See Also
+
+<a href="#SkCanvas_isClipRect">isClipRect</a> <a href="#SkCanvas_getLocalClipBounds">getLocalClipBounds</a> <a href="#SkCanvas_getDeviceClipBounds">getDeviceClipBounds</a>
+
---
<a name="SkCanvas_isClipRect"></a>
@@ -5249,6 +5715,10 @@ clip is not rect
</fiddle-embed></div>
+### See Also
+
+<a href="#SkCanvas_isClipEmpty">isClipEmpty</a> <a href="#SkCanvas_getLocalClipBounds">getLocalClipBounds</a> <a href="#SkCanvas_getDeviceClipBounds">getDeviceClipBounds</a>
+
---
# <a name="SkAutoCanvasRestore"></a> Class SkAutoCanvasRestore
@@ -5278,7 +5748,7 @@ utility to <a href="#SkAutoCanvasRestore_restore">restore</a> <a href="#Canvas">
### Example
-<div><fiddle-embed name="882e8e0103048009a25cfc20400492f7"></fiddle-embed></div>
+<div><fiddle-embed name="466ef576b88e29d7252422db7adeed1c"></fiddle-embed></div>
### See Also
@@ -5293,11 +5763,8 @@ utility to <a href="#SkAutoCanvasRestore_restore">restore</a> <a href="#Canvas">
~SkAutoCanvasRestore()
</pre>
-Restores <a href="#Canvas">Canvas</a> to saved state.
-
-### Example
-
-<div><fiddle-embed name="882e8e0103048009a25cfc20400492f7"></fiddle-embed></div>
+Restores <a href="#Canvas">Canvas</a> to saved state. <a href="undocumented#Destructor">Destructor</a> is called when container goes out of
+scope.
### See Also
@@ -5317,7 +5784,23 @@ Restores <a href="#Canvas">Canvas</a> to saved state immediately. Subsequent cal
### Example
-<div><fiddle-embed name="882e8e0103048009a25cfc20400492f7"></fiddle-embed></div>
+<div><fiddle-embed name="9f459b218ec079c1ada23f4412968f9a">
+
+#### Example Output
+
+~~~~
+saveCanvas: false before restore: 2
+saveCanvas: false after restore: 2
+saveCanvas: true before restore: 2
+saveCanvas: true after restore: 2
+saveCanvas: false before restore: 2
+saveCanvas: false after restore: 1
+saveCanvas: true before restore: 2
+saveCanvas: true after restore: 1
+final count: 1
+~~~~
+
+</fiddle-embed></div>
### See Also
diff --git a/site/user/api/SkMatrix_Reference.md b/site/user/api/SkMatrix_Reference.md
index 6c9b893794..4fb273ca0f 100644
--- a/site/user/api/SkMatrix_Reference.md
+++ b/site/user/api/SkMatrix_Reference.md
@@ -1466,7 +1466,7 @@ perspective scale factor to store</td>
### Example
-<div><fiddle-embed name="c51d81b637b58da30fb9ae2d68877167"></fiddle-embed></div>
+<div><fiddle-embed name="95ccfc2a89ce593e6b7a9f992a844bc0"></fiddle-embed></div>
### See Also
@@ -1697,7 +1697,7 @@ pivot y</td>
### Example
-<div><fiddle-embed name="397db8da89bc92e7c576ad013d64ed24"></fiddle-embed></div>
+<div><fiddle-embed name="4565a0792058178c88e0a129a87272d6"></fiddle-embed></div>
### See Also
@@ -1722,7 +1722,7 @@ vertical scale factor</td>
### Example
-<div><fiddle-embed name="94a9ec11b994580dca14aa2159a796a9"></fiddle-embed></div>
+<div><fiddle-embed name="1579d0cc109c26e69f66f73abd35fb0e"></fiddle-embed></div>
### See Also
@@ -3771,7 +3771,7 @@ storage for mapped corner <a href="#Point">Points</a></td>
### Example
-<div><fiddle-embed name="3bf9404624735d7cf34b47b9c7b27bcc"></fiddle-embed></div>
+<div><fiddle-embed name="c69cd2a590b5733c3cbc92cb9ceed3f5"></fiddle-embed></div>
### See Also
diff --git a/site/user/api/SkPaint_Reference.md b/site/user/api/SkPaint_Reference.md
index ffab03e288..33a92a7da3 100644
--- a/site/user/api/SkPaint_Reference.md
+++ b/site/user/api/SkPaint_Reference.md
@@ -647,6 +647,10 @@ serialized data describing <a href="#Paint">Paint</a> content</td>
</tr>
</table>
+### See Also
+
+<a href="undocumented#SkReadBuffer">SkReadBuffer</a>
+
---
# <a name="Hinting"></a> Hinting
@@ -862,6 +866,10 @@ enum <a href="#SkPaint_ReserveFlags">ReserveFlags</a> {
</tr>
</table>
+### See Also
+
+<a href="#Flags">Flags</a> <a href="#SkPaint_getFlags">getFlags</a>
+
<a name="SkPaint_getFlags"></a>
@@ -2436,7 +2444,7 @@ at the contour point.
### Example
-<div><fiddle-embed name="3d92b449b298b4ce4004cfca6b91cee7"></fiddle-embed></div>
+<div><fiddle-embed name="2bffb6384cc20077e632e7d01da045ca"></fiddle-embed></div>
<a name="SkPaint_getStrokeCap"></a>
## getStrokeCap
@@ -2516,7 +2524,7 @@ the following curve, the pair of curves meet at <a href="#Stroke_Join">Stroke Jo
### Example
-<div><fiddle-embed name="4a4e41ed89a57d47eab5d1600c33b0e8"></fiddle-embed></div>
+<div><fiddle-embed name="917c44b504d3f9308571fd3835d90a0d"></fiddle-embed></div>
## <a name="SkPaint_Join"></a> Enum SkPaint::Join
@@ -5204,5 +5212,9 @@ text size = 12
</fiddle-embed></div>
+### See Also
+
+<a href="#SkPathEffect_toString">SkPathEffect::toString</a> <a href="#SkMaskFilter_toString">SkMaskFilter::toString</a> <a href="#SkColorFilter_toString">SkColorFilter::toString</a> <a href="#SkImageFilter_toString">SkImageFilter::toString</a>
+
---
diff --git a/site/user/api/SkPath_Reference.md b/site/user/api/SkPath_Reference.md
index 154b66b27d..d0bb7e0d50 100644
--- a/site/user/api/SkPath_Reference.md
+++ b/site/user/api/SkPath_Reference.md
@@ -106,7 +106,8 @@ Internally, <a href="#Path">Path</a> lazily computes metrics likes bounds and co
| <a href="#SkPath_Convexity">Convexity</a> | Returns if <a href="#Path">Path</a> is convex or concave. |
| <a href="#SkPath_Direction">Direction</a> | Sets <a href="#Contour">Contour</a> clockwise or counterclockwise. |
| <a href="#SkPath_FillType">FillType</a> | Sets winding rule and inverse fill. |
-| <a href="#SkPath_SegmentMask">SegmentMask</a> | <a href="#SkPath_Verb">Verb</a> | Controls how <a href="#Path">Path</a> <a href="#Point">Points</a> are interpreted. |
+| <a href="#SkPath_SegmentMask">SegmentMask</a> | Returns <a href="#SkPath_Verb">Verb</a> types in <a href="#Path">Path</a>. |
+| <a href="#SkPath_Verb">Verb</a> | Controls how <a href="#Path">Path</a> <a href="#Point">Points</a> are interpreted. |
## <a name="Classes_and_Structs"></a> Classes and Structs
diff --git a/site/user/api/SkPixmap_Reference.md b/site/user/api/SkPixmap_Reference.md
index 6e44b60aff..969fdb3ed6 100644
--- a/site/user/api/SkPixmap_Reference.md
+++ b/site/user/api/SkPixmap_Reference.md
@@ -224,7 +224,7 @@ size of one row of <a href="#SkPixmap_addr">addr</a>; <a href="#SkPixmap_width">
### Example
-<div><fiddle-embed name="c8e31733704bfebdb038b003aa8a62d7"></fiddle-embed></div>
+<div><fiddle-embed name="a7c9bfe44f5d888ab5b9996f2b126788"></fiddle-embed></div>
### See Also
@@ -1253,6 +1253,10 @@ pixmap.addr32(1, 2) == &storage[1 + 2 * w]
</fiddle-embed></div>
+### See Also
+
+<a href="#SkPixmap_addr">addr</a> <a href="#SkPixmap_addr8">addr8</a> <a href="#SkPixmap_addr16">addr16</a> <a href="#SkPixmap_addr64">addr64</a> <a href="#SkPixmap_addrF16">addrF16</a> <a href="#SkPixmap_getColor">getColor</a> <a href="#SkPixmap_writable_addr">writable addr</a> <a href="#SkPixmap_writable_addr64">writable addr64</a>
+
---
<pre style="padding: 1em 1em 1em 1em;width: 50em; background-color: #f0f0f0">
@@ -1561,7 +1565,7 @@ writable unsigned 64-bit pointer to pixel
### Example
-<div><fiddle-embed name="33a04ac51c74a1e8d461b1d6f31ed82a"></fiddle-embed></div>
+<div><fiddle-embed name="de14d8d30e4a7b6462103d0e0dd96b0b"></fiddle-embed></div>
### See Also
@@ -1938,7 +1942,7 @@ true if pixels are changed
### Example
-<div><fiddle-embed name="f0a8f4e07fd8b6c48eb52f2238d8f88b"></fiddle-embed></div>
+<div><fiddle-embed name="a0cdbafed4786788cc90681e7b294234"></fiddle-embed></div>
### See Also
@@ -1967,7 +1971,7 @@ true if pixels are changed
### Example
-<div><fiddle-embed name="ee0bb3f3aae12dbc1c2759349527e9da"></fiddle-embed></div>
+<div><fiddle-embed name="838202e0d49cad2eb3eeb495834f6d63"></fiddle-embed></div>
### See Also
@@ -1999,7 +2003,7 @@ true if pixels are changed
### Example
-<div><fiddle-embed name="da215a59c574d26bc5caf7de630d5966"></fiddle-embed></div>
+<div><fiddle-embed name="f884f3f46a565f052a5e252ae2f36e9b"></fiddle-embed></div>
### See Also
diff --git a/site/user/api/catalog.htm b/site/user/api/catalog.htm
index c38bd5fbc1..de9d211879 100644
--- a/site/user/api/catalog.htm
+++ b/site/user/api/catalog.htm
@@ -28,6 +28,13 @@
"name": "Weight_3",
"stdout": "move {0, 0}, \\nline {0, 0}, {20, 0}, \\nline {20, 0}, {20, 20}, \\ndone \\n"
},
+ "SkAutoCanvasRestore_restore": {
+ "code": "void draw(SkCanvas* canvas) {\n for (bool callRestore : { false, true } ) {\n for (bool saveCanvas : {false, true} ) {\n SkAutoCanvasRestore autoRestore(canvas, saveCanvas);\n if (!saveCanvas) {\n canvas->save();\n }\n SkDebugf(\"saveCanvas: %s before restore: %d\\n\",\n saveCanvas ? \"true\" : \"false\", canvas->getSaveCount());\n if (callRestore) autoRestore.restore();\n SkDebugf(\"saveCanvas: %s after restore: %d\\n\",\n saveCanvas ? \"true\" : \"false\", canvas->getSaveCount());\n }\n }\n SkDebugf(\"final count: %d\\n\", canvas->getSaveCount());\n}",
+ "hash": "9f459b218ec079c1ada23f4412968f9a",
+ "file": "SkCanvas_Reference",
+ "name": "SkAutoCanvasRestore::restore()",
+ "stdout": "saveCanvas: false before restore: 2\\nsaveCanvas: false after restore: 2\\nsaveCanvas: true before restore: 2\\nsaveCanvas: true after restore: 2\\nsaveCanvas: false before restore: 2\\nsaveCanvas: false after restore: 1\\nsaveCanvas: true before restore: 2\\nsaveCanvas: true after restore: 1\\nfinal count: 1\\n"
+ },
"SkBitmap_ComputeIsOpaque": {
"code": "void draw(SkCanvas* canvas) {\n SkBitmap bitmap;\n bitmap.setInfo(SkImageInfo::Make(2, 2, kN32_SkColorType, kPremul_SkAlphaType));\n for (int index = 0; index < 2; ++index) {\n bitmap.allocPixels();\n bitmap.eraseColor(0x00000000);\n SkDebugf(\"computeIsOpaque: %s\\n\", SkBitmap::ComputeIsOpaque(bitmap) ? \"true\" : \"false\");\n bitmap.eraseColor(0xFFFFFFFF);\n SkDebugf(\"computeIsOpaque: %s\\n\", SkBitmap::ComputeIsOpaque(bitmap) ? \"true\" : \"false\");\n bitmap.setInfo(bitmap.info().makeAlphaType(kOpaque_SkAlphaType));\n }\n}",
"hash": "9df1baa17658fbd0c419780f26fd854f",
@@ -3127,16 +3134,16 @@
"Paint_Stroke_Cap": {
"code": "void draw(SkCanvas* canvas) {\n SkPaint paint;\n paint.setStyle(SkPaint::kStroke_Style);\n paint.setStrokeWidth(20);\n SkPath path;\n path.moveTo(30, 30);\n path.lineTo(30, 30);\n path.moveTo(70, 30);\n path.lineTo(90, 40);\n for (SkPaint::Cap c : { SkPaint::kButt_Cap, SkPaint::kRound_Cap, SkPaint::kSquare_Cap } ) {\n paint.setStrokeCap(c);\n canvas->drawPath(path, paint);\n canvas->translate(0, 70);\n }\n}",
"width": 256,
- "height": 256,
- "hash": "3d92b449b298b4ce4004cfca6b91cee7",
+ "height": 200,
+ "hash": "2bffb6384cc20077e632e7d01da045ca",
"file": "SkPaint_Reference",
"name": "Stroke_Cap"
},
"Paint_Stroke_Join": {
- "code": "void draw(SkCanvas* canvas) {\n SkPaint paint;\n paint.setStyle(SkPaint::kStroke_Style);\n paint.setStrokeWidth(20);\n SkPath path;\n path.moveTo(30, 30);\n path.lineTo(40, 50);\n path.conicTo(70, 30, 100, 30, .707f);\n for (SkPaint::Join j : { SkPaint::kMiter_Join, SkPaint::kRound_Join, SkPaint::kBevel_Join } ) {\n paint.setStrokeJoin(j);\n canvas->drawPath(path, paint);\n canvas->translate(0, 70);\n }\n}",
+ "code": "void draw(SkCanvas* canvas) {\n SkPaint paint;\n paint.setStyle(SkPaint::kStroke_Style);\n paint.setStrokeWidth(20);\n SkPath path;\n path.moveTo(30, 20);\n path.lineTo(40, 40);\n path.conicTo(70, 20, 100, 20, .707f);\n for (SkPaint::Join j : { SkPaint::kMiter_Join, SkPaint::kRound_Join, SkPaint::kBevel_Join } ) {\n paint.setStrokeJoin(j);\n canvas->drawPath(path, paint);\n canvas->translate(0, 70);\n }\n}",
"width": 256,
- "height": 256,
- "hash": "4a4e41ed89a57d47eab5d1600c33b0e8",
+ "height": 200,
+ "hash": "917c44b504d3f9308571fd3835d90a0d",
"file": "SkPaint_Reference",
"name": "Stroke_Join"
},
@@ -3293,29 +3300,13 @@
"name": "Path_2"
},
"SkAutoCanvasRestore_SkCanvas_star": {
- "code": "void draw(SkCanvas* canvas) {\n // incomplete\n}",
+ "code": "void draw(SkCanvas* canvas) {\n SkPaint p;\n p.setAntiAlias(true);\n p.setTextSize(64);\n for (SkScalar sx : { -1, 1 } ) {\n for (SkScalar sy : { -1, 1 } ) {\n SkAutoCanvasRestore autoRestore(canvas, true);\n SkMatrix m = SkMatrix::MakeAll(sx, 1, 96, 0, sy, 64, 0, 0, 1);\n canvas->concat(m);\n canvas->drawString(\"R\", 0, 0, p);\n }\n }\n}",
"width": 256,
- "height": 256,
- "hash": "882e8e0103048009a25cfc20400492f7",
+ "height": 128,
+ "hash": "466ef576b88e29d7252422db7adeed1c",
"file": "SkCanvas_Reference",
"name": "SkAutoCanvasRestore::SkAutoCanvasRestore(SkCanvas* canvas, bool doSave)"
},
- "SkAutoCanvasRestore_destructor": {
- "code": "void draw(SkCanvas* canvas) {\n // incomplete\n}",
- "width": 256,
- "height": 256,
- "hash": "882e8e0103048009a25cfc20400492f7",
- "file": "SkCanvas_Reference",
- "name": "SkAutoCanvasRestore::~SkAutoCanvasRestore()"
-},
- "SkAutoCanvasRestore_restore": {
- "code": "void draw(SkCanvas* canvas) {\n // incomplete\n}",
- "width": 256,
- "height": 256,
- "hash": "882e8e0103048009a25cfc20400492f7",
- "file": "SkCanvas_Reference",
- "name": "SkAutoCanvasRestore::restore()"
-},
"SkBitmap_allocN32Pixels": {
"code": "void draw(SkCanvas* canvas) {\n SkRandom random;\n SkBitmap bitmap;\n bitmap.allocN32Pixels(64, 64);\n bitmap.eraseColor(SK_ColorTRANSPARENT);\n for (int y = 0; y < 256; y += 64) {\n for (int x = 0; x < 256; x += 64) {\n SkColor color = random.nextU();\n uint32_t w = random.nextRangeU(4, 32);\n uint32_t cx = random.nextRangeU(0, 64 - w);\n uint32_t h = random.nextRangeU(4, 32);\n uint32_t cy = random.nextRangeU(0, 64 - h);\n bitmap.erase(color, SkIRect::MakeXYWH(cx, cy, w, h));\n canvas->drawBitmap(bitmap, x, y);\n }\n }\n}",
"width": 256,
@@ -3367,8 +3358,8 @@
"SkBitmap_bounds": {
"code": "void draw(SkCanvas* canvas) {\n SkIRect bounds = source.bounds();\n for (int x : { 0, bounds.width() } ) {\n for (int y : { 0, bounds.height() } ) {\n canvas->drawBitmap(source, x, y);\n }\n }\n}",
"width": 256,
- "height": 256,
- "hash": "977dd8a850f89a610505e3f4f260d540",
+ "height": 128,
+ "hash": "bd020c1527964761adf7646e82a36487",
"file": "SkBitmap_Reference",
"name": "SkBitmap::bounds()"
},
@@ -4575,8 +4566,8 @@
"SkMatrix_mapRectToQuad": {
"code": "void draw(SkCanvas* canvas) {\n SkPaint paint;\n paint.setAntiAlias(true);\n SkMatrix matrix;\n matrix.setRotate(60, 128, 128);\n SkRect rect = {50, 50, 150, 150};\n SkPoint pts[4];\n matrix.mapRectToQuad(pts, rect);\n for (int i = 0; i < 4; ++i) {\n canvas->drawCircle(pts[i].fX, pts[i].fY, 3, paint);\n }\n canvas->concat(matrix);\n paint.setStyle(SkPaint::kStroke_Style);\n canvas->drawRect(rect, paint);\n}",
"width": 256,
- "height": 256,
- "hash": "3bf9404624735d7cf34b47b9c7b27bcc",
+ "height": 192,
+ "hash": "c69cd2a590b5733c3cbc92cb9ceed3f5",
"file": "SkMatrix_Reference",
"name": "SkMatrix::mapRectToQuad"
},
@@ -4789,10 +4780,10 @@
"name": "SkMatrix::set9"
},
"SkMatrix_setAll": {
- "code": "void draw(SkCanvas* canvas) {\n SkPaint p;\n p.setAntiAlias(true);\n p.setTextSize(64);\n SkMatrix m;\n for (SkScalar sx : { -1, 1 } ) {\n for (SkScalar sy : { -1, 1 } ) {\n SkAutoCanvasRestore autoRestore(canvas, true);\n m.setAll(sx, 1, 128, 0, sy, 128, 0, 0, 1);\n canvas->concat(m);\n canvas->drawString(\"K\", 0, 0, p);\n }\n }\n}",
+ "code": "void draw(SkCanvas* canvas) {\n SkPaint p;\n p.setAntiAlias(true);\n p.setTextSize(64);\n SkMatrix m;\n for (SkScalar sx : { -1, 1 } ) {\n for (SkScalar sy : { -1, 1 } ) {\n SkAutoCanvasRestore autoRestore(canvas, true);\n m.setAll(sx, 1, 128, 0, sy, 64, 0, 0, 1);\n canvas->concat(m);\n canvas->drawString(\"K\", 0, 0, p);\n }\n }\n}",
"width": 256,
- "height": 256,
- "hash": "c51d81b637b58da30fb9ae2d68877167",
+ "height": 128,
+ "hash": "95ccfc2a89ce593e6b7a9f992a844bc0",
"file": "SkMatrix_Reference",
"name": "SkMatrix::setAll"
},
@@ -4853,10 +4844,10 @@
"name": "SkMatrix::setRotate_2"
},
"SkMatrix_setScale": {
- "code": "void draw(SkCanvas* canvas) {\n SkPaint p;\n p.setAntiAlias(true);\n p.setTextSize(64);\n SkMatrix m;\n for (SkScalar sx : { -1, 1 } ) {\n for (SkScalar sy : { -1, 1 } ) {\n SkAutoCanvasRestore autoRestore(canvas, true);\n m.setScale(sx, sy, 128, 128);\n canvas->concat(m);\n canvas->drawString(\"K\", 128, 128, p);\n }\n }\n}",
+ "code": "void draw(SkCanvas* canvas) {\n SkPaint p;\n p.setAntiAlias(true);\n p.setTextSize(64);\n SkMatrix m;\n for (SkScalar sx : { -1, 1 } ) {\n for (SkScalar sy : { -1, 1 } ) {\n SkAutoCanvasRestore autoRestore(canvas, true);\n m.setScale(sx, sy, 128, 64);\n canvas->concat(m);\n canvas->drawString(\"%\", 128, 64, p);\n }\n }\n}",
"width": 256,
- "height": 256,
- "hash": "397db8da89bc92e7c576ad013d64ed24",
+ "height": 128,
+ "hash": "4565a0792058178c88e0a129a87272d6",
"file": "SkMatrix_Reference",
"name": "SkMatrix::setScale"
},
@@ -4877,10 +4868,10 @@
"name": "SkMatrix::setScaleY"
},
"SkMatrix_setScale_2": {
- "code": "void draw(SkCanvas* canvas) {\n SkPaint p;\n p.setAntiAlias(true);\n p.setTextSize(64);\n SkMatrix m;\n for (SkScalar sx : { -1, 1 } ) {\n for (SkScalar sy : { -1, 1 } ) {\n SkAutoCanvasRestore autoRestore(canvas, true);\n m.setScale(sx, sy);\n m.postTranslate(128, 128);\n canvas->concat(m);\n canvas->drawString(\"K\", 0, 0, p);\n }\n }\n}",
+ "code": "void draw(SkCanvas* canvas) {\n SkPaint p;\n p.setAntiAlias(true);\n p.setTextSize(64);\n SkMatrix m;\n for (SkScalar sx : { -1, 1 } ) {\n for (SkScalar sy : { -1, 1 } ) {\n SkAutoCanvasRestore autoRestore(canvas, true);\n m.setScale(sx, sy);\n m.postTranslate(128, 64);\n canvas->concat(m);\n canvas->drawString(\"@\", 0, 0, p);\n }\n }\n}",
"width": 256,
- "height": 256,
- "hash": "94a9ec11b994580dca14aa2159a796a9",
+ "height": 128,
+ "hash": "1579d0cc109c26e69f66f73abd35fb0e",
"file": "SkMatrix_Reference",
"name": "SkMatrix::setScale_2"
},
@@ -5695,24 +5686,24 @@
"SkPixmap_erase": {
"code": "void draw(SkCanvas* canvas) {\n uint32_t storage[2];\n SkImageInfo info = SkImageInfo::MakeN32Premul(1, 2);\n SkPixmap pixmap(info, storage, info.minRowBytes());\n pixmap.erase(SK_ColorBLUE, {0, 0, 1, 1});\n pixmap.erase(SK_ColorRED, {0, 1, 1, 2});\n SkBitmap bitmap;\n canvas->scale(20, 20);\n bitmap.installPixels(pixmap);\n canvas->drawBitmap(bitmap, 0, 0);\n}",
"width": 256,
- "height": 256,
- "hash": "f0a8f4e07fd8b6c48eb52f2238d8f88b",
+ "height": 50,
+ "hash": "a0cdbafed4786788cc90681e7b294234",
"file": "SkPixmap_Reference",
"name": "SkPixmap::erase()"
},
"SkPixmap_erase_2": {
"code": "void draw(SkCanvas* canvas) {\n uint32_t storage[2];\n SkImageInfo info = SkImageInfo::MakeN32Premul(1, 2);\n SkPixmap pixmap(info, storage, info.minRowBytes());\n pixmap.erase(SK_ColorBLUE);\n SkBitmap bitmap;\n canvas->scale(20, 20);\n bitmap.installPixels(pixmap);\n canvas->drawBitmap(bitmap, 0, 0);\n}",
"width": 256,
- "height": 256,
- "hash": "ee0bb3f3aae12dbc1c2759349527e9da",
+ "height": 50,
+ "hash": "838202e0d49cad2eb3eeb495834f6d63",
"file": "SkPixmap_Reference",
"name": "SkPixmap::erase_2"
},
"SkPixmap_erase_3": {
"code": "void draw(SkCanvas* canvas) {\n uint32_t storage[2];\n SkImageInfo info = SkImageInfo::MakeN32Premul(1, 2);\n SkPixmap pixmap(info, storage, info.minRowBytes());\n SkIRect topPixelBounds = {0, 0, 1, 1};\n pixmap.erase({ 0.65f, 0.45f, 0.25f, 1 }, &topPixelBounds);\n SkIRect bottomPixelBounds = {0, 1, 1, 2};\n pixmap.erase({ 0.25f, 0.65f, 0.45f, 1 }, &bottomPixelBounds);\n SkBitmap bitmap;\n canvas->scale(20, 20);\n bitmap.installPixels(pixmap);\n canvas->drawBitmap(bitmap, 0, 0);\n}",
"width": 256,
- "height": 256,
- "hash": "da215a59c574d26bc5caf7de630d5966",
+ "height": 50,
+ "hash": "f884f3f46a565f052a5e252ae2f36e9b",
"file": "SkPixmap_Reference",
"name": "SkPixmap::erase_3"
},
@@ -5767,8 +5758,8 @@
"SkPixmap_reset_2": {
"code": "void draw(SkCanvas* canvas) {\n std::vector<int32_t> pixels;\n pixels.resize(image->height() * image->width() * 4);\n SkPixmap pixmap(SkImageInfo::Make(image->width(), image->height(), kN32_SkColorType,\n image->alphaType()), (const void*) &pixels.front(), image->width() * 4);\n image->readPixels(pixmap, 0, 0);\n int x = 0;\n for (auto colorType : { kRGBA_8888_SkColorType, kBGRA_8888_SkColorType } ) {\n pixmap.reset(SkImageInfo::Make(image->width(), image->height(), colorType, \n image->alphaType()), (const void*) &pixels.front(), image->width() * 4);\n SkBitmap bitmap;\n bitmap.installPixels(pixmap);\n canvas->drawBitmap(bitmap, x, 0);\n x += 128;\n }\n}\n",
"width": 256,
- "height": 128,
- "hash": "c8e31733704bfebdb038b003aa8a62d7",
+ "height": 64,
+ "hash": "a7c9bfe44f5d888ab5b9996f2b126788",
"file": "SkPixmap_Reference",
"name": "SkPixmap::reset_2"
},
@@ -5799,8 +5790,8 @@
"SkPixmap_writable_addr64": {
"code": "void draw(SkCanvas* canvas) {\n SkImageInfo info = SkImageInfo::Make(3, 3, kRGBA_F16_SkColorType, kPremul_SkAlphaType);\n uint64_t storage[9];\n SkPixmap pixmap(info, storage, 3 * sizeof(uint64_t));\n SkColor4f c4 { 1, 0.45f, 0.25f, 0.65f };\n pixmap.erase(c4);\n SkBitmap bitmap;\n canvas->scale(10, 10);\n bitmap.installPixels(pixmap);\n canvas->drawBitmap(bitmap, 0, 0);\n *pixmap.writable_addr64(1, 1) |= 0x00ff000000000000LL;\n bitmap.installPixels(pixmap);\n canvas->drawBitmap(bitmap, 10, 0);\n}",
"width": 256,
- "height": 256,
- "hash": "33a04ac51c74a1e8d461b1d6f31ed82a",
+ "height": 40,
+ "hash": "de14d8d30e4a7b6462103d0e0dd96b0b",
"file": "SkPixmap_Reference",
"name": "SkPixmap::writable_addr64"
},
diff --git a/site/user/api/undocumented.md b/site/user/api/undocumented.md
index dc102f84ab..7ac1e12d33 100644
--- a/site/user/api/undocumented.md
+++ b/site/user/api/undocumented.md
@@ -223,6 +223,15 @@ int SkColorSetARGB(a, r, g, b)
# <a name="SkColorFilter"></a> Class SkColorFilter
+<a name="SkColorFilter_toString"></a>
+## toString
+
+<pre style="padding: 1em 1em 1em 1em;width: 50em; background-color: #f0f0f0">
+void toString(SkString* str) const
+</pre>
+
+---
+
# <a name="Color_Space"></a> Color Space
# <a name="SkColorSpace"></a> Class SkColorSpace
@@ -250,6 +259,19 @@ static sk_sp&lt;SkColorSpace&gt; MakeSRGBLinear()
</table>
+# <a name="Create_Color_Space_Xform_Canvas"></a> Create Color Space Xform Canvas
+
+<a name="SkCreateColorSpaceXformCanvas"></a>
+## SkCreateColorSpaceXformCanvas
+
+<pre style="padding: 1em 1em 1em 1em;width: 50em; background-color: #f0f0f0">
+std::unique_ptr&lt;SkCanvas&gt; SK_API
+ SkCreateColorSpaceXformCanvas(SkCanvas* target,
+ sk_sp&lt;SkColorSpace&gt; targetCS)
+</pre>
+
+---
+
# <a name="Core_Graphics"></a> Core Graphics
# <a name="Core_Text"></a> Core Text
@@ -341,6 +363,17 @@ static std::unique_ptr&lt;SkCanvas&gt;
# <a name="GPU_Context"></a> GPU Context
+# <a name="GrContext"></a> Class GrContext
+
+<a name="GrContext_flush"></a>
+## flush
+
+<pre style="padding: 1em 1em 1em 1em;width: 50em; background-color: #f0f0f0">
+void flush()
+</pre>
+
+---
+
# <a name="GPU_Surface"></a> GPU Surface
# <a name="Image"></a> Image
@@ -425,6 +458,16 @@ SkImageInfo()
---
+<a name="SkImageInfo_MakeN32Premul"></a>
+## MakeN32Premul
+
+<pre style="padding: 1em 1em 1em 1em;width: 50em; background-color: #f0f0f0">
+static SkImageInfo MakeN32Premul(int width, int height,
+ sk_sp&lt;SkColorSpace&gt; cs = nullptr)
+</pre>
+
+---
+
<a name="SkImageInfo_makeColorSpace"></a>
## makeColorSpace
@@ -577,12 +620,30 @@ bool scalePixels(const SkPixmap& dst, SkFilterQuality,
---
+<a name="SkImage_peekPixels"></a>
+## peekPixels
+
+<pre style="padding: 1em 1em 1em 1em;width: 50em; background-color: #f0f0f0">
+bool peekPixels(SkPixmap* pixmap) const
+</pre>
+
+---
+
# <a name="Image_Filter"></a> Image Filter
## <a name="Scaling"></a> Scaling
# <a name="SkImageFilter"></a> Class SkImageFilter
+<a name="SkImageFilter_toString"></a>
+## toString
+
+<pre style="padding: 1em 1em 1em 1em;width: 50em; background-color: #f0f0f0">
+void toString(SkString* str) const
+</pre>
+
+---
+
# <a name="Image_Scaling"></a> Image Scaling
# <a name="Malloc_Pixel_Ref"></a> Malloc Pixel Ref
@@ -650,6 +711,15 @@ virtual bool filterMask(SkMask* dst, const SkMask& src, const SkMatrix&,
---
+<a name="SkMaskFilter_toString"></a>
+## toString
+
+<pre style="padding: 1em 1em 1em 1em;width: 50em; background-color: #f0f0f0">
+void toString(SkString* str) const
+</pre>
+
+---
+
# <a name="Math"></a> Math
<a name="sk_64_isS32"></a>
@@ -742,6 +812,14 @@ template &lt;typename D, typename S&gt; inline bool SkTFitsIn(S s)
---
+# <a name="Stream"></a> Stream
+
+# <a name="SkStream"></a> Class SkStream
+
+# <a name="Meta_Data"></a> Meta Data
+
+# <a name="SkMetaData"></a> Class SkMetaData
+
# <a name="Nine_Patch"></a> Nine Patch
# <a name="Number_Types"></a> Number Types
@@ -805,6 +883,15 @@ template &lt;typename D, typename S&gt; inline bool SkTFitsIn(S s)
# <a name="SkPathEffect"></a> Class SkPathEffect
+<a name="SkPathEffect_toString"></a>
+## toString
+
+<pre style="padding: 1em 1em 1em 1em;width: 50em; background-color: #f0f0f0">
+void toString(SkString* str) const
+</pre>
+
+---
+
# <a name="Path_Measure"></a> Path Measure
# <a name="SkPathMeasure"></a> Class SkPathMeasure
@@ -831,6 +918,17 @@ bool SK_API Op(const SkPath& one, const SkPath& two, SkPathOp op, SkPath* result
# <a name="Picture"></a> Picture
+# <a name="SkPicture"></a> Class SkPicture
+
+<a name="SkPicture_playback"></a>
+## playback
+
+<pre style="padding: 1em 1em 1em 1em;width: 50em; background-color: #f0f0f0">
+virtual void playback(SkCanvas*, AbortCallback* = nullptr) const = 0
+</pre>
+
+---
+
## <a name="Recorder"></a> Recorder
# <a name="SkPictureRecorder"></a> Class SkPictureRecorder
@@ -969,10 +1067,6 @@ static sk_sp&lt;SkShader&gt; MakeBitmapShader(const SkBitmap& src, TileMode tmx,
# <a name="Sprite"></a> Sprite
-# <a name="Stream"></a> Stream
-
-# <a name="SkStream"></a> Class SkStream
-
# <a name="String"></a> String
# <a name="SkString"></a> Class SkString
@@ -1003,6 +1097,51 @@ bool readPixels(const SkPixmap& dst, int srcX, int srcY) ;
---
+<a name="SkSurface_getCanvas"></a>
+## getCanvas
+
+<pre style="padding: 1em 1em 1em 1em;width: 50em; background-color: #f0f0f0">
+SkCanvas* getCanvas()
+</pre>
+
+---
+
+<a name="SkSurface_flush"></a>
+## flush
+
+<pre style="padding: 1em 1em 1em 1em;width: 50em; background-color: #f0f0f0">
+void flush()
+</pre>
+
+---
+
+<a name="SkSurface_prepareForExternalIO"></a>
+## prepareForExternalIO
+
+<pre style="padding: 1em 1em 1em 1em;width: 50em; background-color: #f0f0f0">
+void prepareForExternalIO()
+</pre>
+
+---
+
+<a name="SkSurface_makeSurface"></a>
+## makeSurface
+
+<pre style="padding: 1em 1em 1em 1em;width: 50em; background-color: #f0f0f0">
+sk_sp&lt;SkSurface&gt; makeSurface(const SkImageInfo&)
+</pre>
+
+---
+
+<a name="SkSurface_peekPixels"></a>
+## peekPixels
+
+<pre style="padding: 1em 1em 1em 1em;width: 50em; background-color: #f0f0f0">
+bool peekPixels(SkPixmap*)
+</pre>
+
+---
+
## <a name="Properties"></a> Properties
# <a name="SkSurfaceProps"></a> Class SkSurfaceProps