fix bookmaker
Remove references to old SkPaint::Hinting.
Also fix bug recently introduced that made
unlinkable words use the last link found.
TBR=reed@google.com
Docs-Preview: https://skia.org/?cl=170266
Bug: skia:
Change-Id: I8b83bcb479bd3f79699a1c74818a817190fd42a5
Reviewed-on: https://skia-review.googlesource.com/c/170266
Commit-Queue: Cary Clark <caryclark@skia.org>
Auto-Submit: Cary Clark <caryclark@skia.org>
Reviewed-by: Cary Clark <caryclark@skia.org>
diff --git a/docs/SkPaint_Reference.bmh b/docs/SkPaint_Reference.bmh
index cf6749a..6c91f08 100644
--- a/docs/SkPaint_Reference.bmh
+++ b/docs/SkPaint_Reference.bmh
@@ -296,70 +296,7 @@
#Line # glyph outline adjustment ##
##
-#Enum Hinting
-#Line # level of glyph outline adjustment ##
-
-#Code
-#Populate
-##
-
-Hinting adjusts the glyph outlines so that the shape provides a uniform
-look at a given point size on font engines that support it. Hinting may have a
-muted effect or no effect at all depending on the platform.
-
-The four levels roughly control corresponding features on platforms that use FreeType
-as the Font_Engine.
-
-#Const kNo_Hinting 0
-#Line # glyph outlines unchanged ##
- Leaves glyph outlines unchanged from their native representation.
- With FreeType, this is equivalent to the FT_LOAD_NO_HINTING
- bit-field constant supplied to FT_Load_Glyph, which indicates that the vector
- outline being loaded should not be fitted to the pixel grid but simply scaled
- to 26.6 fractional pixels.
-##
-#Const kSlight_Hinting 1
-#Line # minimal modification to improve contrast ##
- Modifies glyph outlines minimally to improve contrast.
- With FreeType, this is equivalent in spirit to the
- FT_LOAD_TARGET_LIGHT value supplied to FT_Load_Glyph. It chooses a
- lighter hinting algorithm for non-monochrome modes.
- Generated Glyphs may be fuzzy but better resemble their original shape.
-##
-#Const kNormal_Hinting 2
-#Line # glyph outlines modified to improve contrast ##
- Modifies glyph outlines to improve contrast. This is the default.
- With FreeType, this supplies FT_LOAD_TARGET_NORMAL to FT_Load_Glyph,
- choosing the default hinting algorithm, which is optimized for standard
- gray-level rendering.
-##
-#Const kFull_Hinting 3
-#Line # modifies glyph outlines for maximum contrast ##
- Modifies glyph outlines for maximum contrast. With FreeType, this selects
- FT_LOAD_TARGET_LCD or FT_LOAD_TARGET_LCD_V if kLCDRenderText_Flag is set.
- FT_LOAD_TARGET_LCD is a variant of FT_LOAD_TARGET_NORMAL optimized for
- horizontally decimated LCD displays; FT_LOAD_TARGET_LCD_V is a
- variant of FT_LOAD_TARGET_NORMAL optimized for vertically decimated LCD displays.
-##
-
-#Bug 915
-On OS_X and iOS, hinting controls whether Core_Graphics dilates the font outlines
-to account for LCD text. No hinting uses Core_Text grayscale output.
-Normal hinting uses Core_Text LCD output. If kLCDRenderText_Flag is clear,
-the LCD output is reduced to a single grayscale channel.
-
-On Windows with DirectWrite, Hinting has no effect.
-
-Hinting defaults to SkFontHinting::kNormal.
-Set SkPaintDefaults_Hinting at compile time to change the default setting.
-
-#ToDo add an illustration? linux running GM:typefacerendering is best for this
- the hinting variations are every other character horizontally
-#ToDo ##
-
-#Enum ##
-
-#Method Hinting getHinting() const
+#Method SkFontHinting getHinting() const
#In Hinting
#Line # returns Hinting, glyph outline adjustment level ##
#Populate
@@ -391,21 +328,6 @@
##
##
-#Method void setHinting(Hinting h)
-#In Hinting
-#Populate
-
- #Example
- SkPaint paint1, paint2;
- paint2.setHinting(SkFontHinting::kNormal);
- SkDebugf("paint1 %c= paint2\n", paint1 == paint2 ? '=' : ':');
-
- #StdOut
- paint1 == paint2
- ##
- ##
-##
-
# ------------------------------------------------------------------------------
#Subtopic Flags
#Line # attributes represented by single bits ##
@@ -1050,8 +972,8 @@
If Hinting is set to SkFontHinting::kNormal or SkFontHinting::kFull, Automatic_Hinting
instructs the Font_Manager to always hint Glyphs.
-Automatic_Hinting has no effect if Hinting is set to kNo_Hinting or
-kSlight_Hinting.
+Automatic_Hinting has no effect if Hinting is set to SkFontHinting::kNone or
+SkFontHinting::kSlight.
Automatic_Hinting only affects platforms that use FreeType as the Font_Manager.
#Subtopic Automatic_Hinting ##
@@ -1187,7 +1109,7 @@
#Line # glyph spacing affected by hinting ##
#Alias Full_Hinting_Spacing ## # long winded enough -- maybe things with two underscores auto-aliased?
-if Hinting is set to kFull_Hinting, Full_Hinting_Spacing adjusts the character
+if Hinting is set to SkFontHinting::kFull, Full_Hinting_Spacing adjusts the character
spacing by the difference of the hinted and unhinted Left_Side_Bearing and
Right_Side_Bearing. Full_Hinting_Spacing only applies to platforms that use
FreeType as their Font_Engine.
diff --git a/include/core/SkPaint.h b/include/core/SkPaint.h
index 251fdae..66bc83c 100644
--- a/include/core/SkPaint.h
+++ b/include/core/SkPaint.h
@@ -355,9 +355,9 @@
*/
void setEmbeddedBitmapText(bool useEmbeddedBitmapText);
- /** Returns true if SkPaint::Hinting is set to kNormal_Hinting or kFull_Hinting, and if
- platform uses FreeType as the font manager. If true, instructs
- the font manager to always hint glyphs.
+ /** Returns true if SkPaint::Hinting is set to SkFontHinting::kNormal or
+ SkFontHinting::kFull, and if platform uses FreeType as the font manager.
+ If true, instructs the font manager to always hint glyphs.
Equivalent to getFlags() masked with kAutoHinting_Flag.
@@ -368,10 +368,10 @@
}
/** Sets whether to always hint glyphs.
- If SkPaint::Hinting is set to kNormal_Hinting or kFull_Hinting and useAutohinter is set,
- instructs the font manager to always hint glyphs.
- auto-hinting has no effect if SkPaint::Hinting is set to kNo_Hinting or
- kSlight_Hinting.
+ If SkPaint::Hinting is set to SkFontHinting::kNormal or SkFontHinting::kFull
+ and useAutohinter is set, instructs the font manager to always hint glyphs.
+ auto-hinting has no effect if SkPaint::Hinting is set to SkFontHinting::kNone or
+ SkFontHinting::kSlight.
Only affects platforms that use FreeType as the font manager.
diff --git a/site/user/api/SkAutoCanvasRestore_Reference.md b/site/user/api/SkAutoCanvasRestore_Reference.md
index aaf1776..c371f93 100644
--- a/site/user/api/SkAutoCanvasRestore_Reference.md
+++ b/site/user/api/SkAutoCanvasRestore_Reference.md
@@ -8,31 +8,31 @@
<pre style="padding: 1em 1em 1em 1em;width: 62.5em; background-color: #f0f0f0">
class <a href='SkAutoCanvasRestore_Reference#SkAutoCanvasRestore'>SkAutoCanvasRestore</a> {
-<a href='SkAutoCanvasRestore_Reference#SkAutoCanvasRestore'>public</a>:
- <a href='SkAutoCanvasRestore_Reference#SkAutoCanvasRestore'>SkAutoCanvasRestore</a>(<a href='SkCanvas_Reference#SkCanvas'>SkCanvas</a>* <a href='SkCanvas_Reference#Canvas'>canvas</a>, <a href='SkCanvas_Reference#Canvas'>bool</a> <a href='SkCanvas_Reference#Canvas'>doSave</a>);
+public:
+ <a href='SkAutoCanvasRestore_Reference#SkAutoCanvasRestore'>SkAutoCanvasRestore</a>(<a href='SkCanvas_Reference#SkCanvas'>SkCanvas</a>* <a href='SkCanvas_Reference#Canvas'>canvas</a>, bool doSave);
~<a href='SkAutoCanvasRestore_Reference#SkAutoCanvasRestore'>SkAutoCanvasRestore</a>();
- <a href='SkAutoCanvasRestore_Reference#SkAutoCanvasRestore'>void</a> <a href='#SkAutoCanvasRestore_restore'>restore()</a>;
+ void <a href='#SkAutoCanvasRestore_restore'>restore()</a>;
};
</pre>
-Stack helper class calls <a href='SkCanvas_Reference#SkCanvas'>SkCanvas</a>::<a href='#SkCanvas_restoreToCount'>restoreToCount</a> <a href='#SkCanvas_restoreToCount'>when</a> <a href='SkAutoCanvasRestore_Reference#SkAutoCanvasRestore'>SkAutoCanvasRestore</a>
-<a href='SkAutoCanvasRestore_Reference#SkAutoCanvasRestore'>goes</a> <a href='SkAutoCanvasRestore_Reference#SkAutoCanvasRestore'>out</a> <a href='SkAutoCanvasRestore_Reference#SkAutoCanvasRestore'>of</a> <a href='SkAutoCanvasRestore_Reference#SkAutoCanvasRestore'>scope</a>. <a href='SkAutoCanvasRestore_Reference#SkAutoCanvasRestore'>Use</a> <a href='SkAutoCanvasRestore_Reference#SkAutoCanvasRestore'>this</a> <a href='SkAutoCanvasRestore_Reference#SkAutoCanvasRestore'>to</a> <a href='SkAutoCanvasRestore_Reference#SkAutoCanvasRestore'>guarantee</a> <a href='SkAutoCanvasRestore_Reference#SkAutoCanvasRestore'>that</a> <a href='SkAutoCanvasRestore_Reference#SkAutoCanvasRestore'>the</a> <a href='SkCanvas_Reference#Canvas'>canvas</a> <a href='SkCanvas_Reference#Canvas'>is</a> <a href='SkCanvas_Reference#Canvas'>restored</a> <a href='SkCanvas_Reference#Canvas'>to</a> <a href='SkCanvas_Reference#Canvas'>a</a> <a href='SkCanvas_Reference#Canvas'>known</a>
-<a href='SkCanvas_Reference#Canvas'>state</a>.
+Stack helper class calls <a href='SkCanvas_Reference#SkCanvas'>SkCanvas</a>::<a href='#SkCanvas_restoreToCount'>restoreToCount</a> when <a href='SkAutoCanvasRestore_Reference#SkAutoCanvasRestore'>SkAutoCanvasRestore</a>
+goes out of scope. Use this to guarantee that the <a href='SkCanvas_Reference#Canvas'>canvas</a> is restored to a known
+state.
<a name='SkAutoCanvasRestore_SkCanvas_star'></a>
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-<a href='SkAutoCanvasRestore_Reference#SkAutoCanvasRestore'>SkAutoCanvasRestore</a>(<a href='SkCanvas_Reference#SkCanvas'>SkCanvas</a>* <a href='SkCanvas_Reference#Canvas'>canvas</a>, <a href='SkCanvas_Reference#Canvas'>bool</a> <a href='SkCanvas_Reference#Canvas'>doSave</a>)
+<a href='SkAutoCanvasRestore_Reference#SkAutoCanvasRestore'>SkAutoCanvasRestore</a>(<a href='SkCanvas_Reference#SkCanvas'>SkCanvas</a>* <a href='SkCanvas_Reference#Canvas'>canvas</a>, bool doSave)
</pre>
-Preserves <a href='SkCanvas_Reference#SkCanvas'>SkCanvas</a>::<a href='#SkCanvas_save'>save()</a> <a href='#SkCanvas_save'>count</a>. <a href='#SkCanvas_save'>Optionally</a> <a href='#SkCanvas_save'>saves</a> <a href='SkCanvas_Reference#SkCanvas'>SkCanvas</a> <a href='SkCanvas_Reference#SkCanvas'>clip</a> <a href='SkCanvas_Reference#SkCanvas'>and</a> <a href='SkCanvas_Reference#SkCanvas'>SkCanvas</a> <a href='SkMatrix_Reference#Matrix'>matrix</a>.
+Preserves <a href='SkCanvas_Reference#SkCanvas'>SkCanvas</a>::<a href='#SkCanvas_save'>save()</a> count. Optionally saves <a href='SkCanvas_Reference#SkCanvas'>SkCanvas</a> clip and <a href='SkCanvas_Reference#SkCanvas'>SkCanvas</a> <a href='SkMatrix_Reference#Matrix'>matrix</a>.
### Parameters
<table> <tr> <td><a name='SkAutoCanvasRestore_SkCanvas_star_canvas'><code><strong>canvas</strong></code></a></td>
- <td><a href='SkCanvas_Reference#SkCanvas'>SkCanvas</a> <a href='SkCanvas_Reference#SkCanvas'>to</a> <a href='SkCanvas_Reference#SkCanvas'>guard</a></td>
+ <td><a href='SkCanvas_Reference#SkCanvas'>SkCanvas</a> to guard</td>
</tr>
<tr> <td><a name='SkAutoCanvasRestore_SkCanvas_star_doSave'><code><strong>doSave</strong></code></a></td>
<td>call <a href='SkCanvas_Reference#SkCanvas'>SkCanvas</a>::<a href='#SkCanvas_save'>save()</a></td>
@@ -41,7 +41,7 @@
### Return Value
-utility to restore <a href='SkCanvas_Reference#SkCanvas'>SkCanvas</a> <a href='SkCanvas_Reference#SkCanvas'>state</a> <a href='SkCanvas_Reference#SkCanvas'>on</a> <a href='SkCanvas_Reference#SkCanvas'>destructor</a>
+utility to restore <a href='SkCanvas_Reference#SkCanvas'>SkCanvas</a> state on destructor
### Example
@@ -59,7 +59,7 @@
~<a href='SkAutoCanvasRestore_Reference#SkAutoCanvasRestore'>SkAutoCanvasRestore</a>()
</pre>
-Restores <a href='SkCanvas_Reference#SkCanvas'>SkCanvas</a> <a href='SkCanvas_Reference#SkCanvas'>to</a> <a href='SkCanvas_Reference#SkCanvas'>saved</a> <a href='SkCanvas_Reference#SkCanvas'>state</a>. <a href='SkCanvas_Reference#SkCanvas'>Destructor</a> <a href='SkCanvas_Reference#SkCanvas'>is</a> <a href='SkCanvas_Reference#SkCanvas'>called</a> <a href='SkCanvas_Reference#SkCanvas'>when</a> <a href='SkCanvas_Reference#SkCanvas'>container</a> <a href='SkCanvas_Reference#SkCanvas'>goes</a> <a href='SkCanvas_Reference#SkCanvas'>out</a> <a href='SkCanvas_Reference#SkCanvas'>of</a>
+Restores <a href='SkCanvas_Reference#SkCanvas'>SkCanvas</a> to saved state. Destructor is called when container goes out of
scope.
### See Also
@@ -74,8 +74,8 @@
void <a href='#SkAutoCanvasRestore_restore'>restore()</a>
</pre>
-Restores <a href='SkCanvas_Reference#SkCanvas'>SkCanvas</a> <a href='SkCanvas_Reference#SkCanvas'>to</a> <a href='SkCanvas_Reference#SkCanvas'>saved</a> <a href='SkCanvas_Reference#SkCanvas'>state</a> <a href='SkCanvas_Reference#SkCanvas'>immediately</a>. <a href='SkCanvas_Reference#SkCanvas'>Subsequent</a> <a href='SkCanvas_Reference#SkCanvas'>calls</a> <a href='SkCanvas_Reference#SkCanvas'>and</a>
-~<a href='SkAutoCanvasRestore_Reference#SkAutoCanvasRestore'>SkAutoCanvasRestore</a> <a href='SkAutoCanvasRestore_Reference#SkAutoCanvasRestore'>have</a> <a href='SkAutoCanvasRestore_Reference#SkAutoCanvasRestore'>no</a> <a href='SkAutoCanvasRestore_Reference#SkAutoCanvasRestore'>effect</a>.
+Restores <a href='SkCanvas_Reference#SkCanvas'>SkCanvas</a> to saved state immediately. Subsequent calls and
+~<a href='SkAutoCanvasRestore_Reference#SkAutoCanvasRestore'>SkAutoCanvasRestore</a> have no effect.
### Example
diff --git a/site/user/api/SkBitmap_Reference.md b/site/user/api/SkBitmap_Reference.md
index a9112f1..fc05ed2 100644
--- a/site/user/api/SkBitmap_Reference.md
+++ b/site/user/api/SkBitmap_Reference.md
@@ -8,147 +8,147 @@
<pre style="padding: 1em 1em 1em 1em;width: 62.5em; background-color: #f0f0f0">
class <a href='SkBitmap_Reference#SkBitmap'>SkBitmap</a> {
-<a href='SkBitmap_Reference#SkBitmap'>public</a>:
+public:
<a href='#SkBitmap_empty_constructor'>SkBitmap()</a>;
- <a href='SkBitmap_Reference#SkBitmap'>SkBitmap</a>(<a href='SkBitmap_Reference#SkBitmap'>const</a> <a href='SkBitmap_Reference#SkBitmap'>SkBitmap</a>& <a href='SkBitmap_Reference#SkBitmap'>src</a>);
- <a href='SkBitmap_Reference#SkBitmap'>SkBitmap</a>(<a href='SkBitmap_Reference#SkBitmap'>SkBitmap</a>&& <a href='SkBitmap_Reference#SkBitmap'>src</a>);
+ <a href='SkBitmap_Reference#SkBitmap'>SkBitmap</a>(const <a href='SkBitmap_Reference#SkBitmap'>SkBitmap</a>& src);
+ <a href='SkBitmap_Reference#SkBitmap'>SkBitmap</a>(<a href='SkBitmap_Reference#SkBitmap'>SkBitmap</a>&& src);
~<a href='#SkBitmap_empty_constructor'>SkBitmap()</a>;
- <a href='SkBitmap_Reference#SkBitmap'>SkBitmap</a>& <a href='SkBitmap_Reference#SkBitmap'>operator</a>=(<a href='SkBitmap_Reference#SkBitmap'>const</a> <a href='SkBitmap_Reference#SkBitmap'>SkBitmap</a>& <a href='SkBitmap_Reference#SkBitmap'>src</a>);
- <a href='SkBitmap_Reference#SkBitmap'>SkBitmap</a>& <a href='SkBitmap_Reference#SkBitmap'>operator</a>=(<a href='SkBitmap_Reference#SkBitmap'>SkBitmap</a>&& <a href='SkBitmap_Reference#SkBitmap'>src</a>);
- <a href='SkBitmap_Reference#SkBitmap'>void</a> <a href='#SkBitmap_swap'>swap</a>(<a href='SkBitmap_Reference#SkBitmap'>SkBitmap</a>& <a href='SkBitmap_Reference#SkBitmap'>other</a>);
- <a href='SkBitmap_Reference#SkBitmap'>const</a> <a href='SkPixmap_Reference#SkPixmap'>SkPixmap</a>& <a href='#SkBitmap_pixmap'>pixmap()</a> <a href='#SkBitmap_pixmap'>const</a>;
- <a href='#SkBitmap_pixmap'>const</a> <a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a>& <a href='#SkBitmap_info'>info()</a> <a href='#SkBitmap_info'>const</a>;
- <a href='#SkBitmap_info'>int</a> <a href='#SkBitmap_width'>width()</a> <a href='#SkBitmap_width'>const</a>;
- <a href='#SkBitmap_width'>int</a> <a href='#SkBitmap_height'>height()</a> <a href='#SkBitmap_height'>const</a>;
- <a href='SkImageInfo_Reference#SkColorType'>SkColorType</a> <a href='#SkBitmap_colorType'>colorType</a>() <a href='#SkBitmap_colorType'>const</a>;
- <a href='SkImageInfo_Reference#SkAlphaType'>SkAlphaType</a> <a href='#SkBitmap_alphaType'>alphaType</a>() <a href='#SkBitmap_alphaType'>const</a>;
- <a href='undocumented#SkColorSpace'>SkColorSpace</a>* <a href='#SkBitmap_colorSpace'>colorSpace</a>() <a href='#SkBitmap_colorSpace'>const</a>;
- <a href='undocumented#sk_sp'>sk_sp</a><<a href='undocumented#SkColorSpace'>SkColorSpace</a>> <a href='#SkBitmap_refColorSpace'>refColorSpace</a>() <a href='#SkBitmap_refColorSpace'>const</a>;
- <a href='#SkBitmap_refColorSpace'>int</a> <a href='#SkBitmap_bytesPerPixel'>bytesPerPixel</a>() <a href='#SkBitmap_bytesPerPixel'>const</a>;
- <a href='#SkBitmap_bytesPerPixel'>int</a> <a href='#SkBitmap_rowBytesAsPixels'>rowBytesAsPixels</a>() <a href='#SkBitmap_rowBytesAsPixels'>const</a>;
- <a href='#SkBitmap_rowBytesAsPixels'>int</a> <a href='#SkBitmap_shiftPerPixel'>shiftPerPixel</a>() <a href='#SkBitmap_shiftPerPixel'>const</a>;
- <a href='#SkBitmap_shiftPerPixel'>bool</a> <a href='#SkBitmap_empty'>empty()</a> <a href='#SkBitmap_empty'>const</a>;
- <a href='#SkBitmap_empty'>bool</a> <a href='#SkBitmap_isNull'>isNull</a>() <a href='#SkBitmap_isNull'>const</a>;
- <a href='#SkBitmap_isNull'>bool</a> <a href='#SkBitmap_drawsNothing'>drawsNothing</a>() <a href='#SkBitmap_drawsNothing'>const</a>;
- <a href='#SkBitmap_drawsNothing'>size_t</a> <a href='#SkBitmap_rowBytes'>rowBytes</a>() <a href='#SkBitmap_rowBytes'>const</a>;
- <a href='#SkBitmap_rowBytes'>bool</a> <a href='#SkBitmap_setAlphaType'>setAlphaType</a>(<a href='SkImageInfo_Reference#SkAlphaType'>SkAlphaType</a> <a href='#SkBitmap_alphaType'>alphaType</a>);
- <a href='#SkBitmap_alphaType'>void</a>* <a href='#SkBitmap_getPixels'>getPixels</a>() <a href='#SkBitmap_getPixels'>const</a>;
- <a href='#SkBitmap_getPixels'>size_t</a> <a href='#SkBitmap_computeByteSize'>computeByteSize</a>() <a href='#SkBitmap_computeByteSize'>const</a>;
- <a href='#SkBitmap_computeByteSize'>bool</a> <a href='#SkBitmap_isImmutable'>isImmutable</a>() <a href='#SkBitmap_isImmutable'>const</a>;
- <a href='#SkBitmap_isImmutable'>void</a> <a href='#SkBitmap_setImmutable'>setImmutable</a>();
- <a href='#SkBitmap_setImmutable'>bool</a> <a href='#SkBitmap_isOpaque'>isOpaque</a>() <a href='#SkBitmap_isOpaque'>const</a>;
- <a href='#SkBitmap_isOpaque'>bool</a> <a href='#SkBitmap_isVolatile'>isVolatile</a>() <a href='#SkBitmap_isVolatile'>const</a>;
- <a href='#SkBitmap_isVolatile'>void</a> <a href='#SkBitmap_setIsVolatile'>setIsVolatile</a>(<a href='#SkBitmap_setIsVolatile'>bool</a> <a href='#SkBitmap_isVolatile'>isVolatile</a>);
- <a href='#SkBitmap_isVolatile'>void</a> <a href='#SkBitmap_reset'>reset()</a>;
- <a href='#SkBitmap_reset'>static</a> <a href='#SkBitmap_reset'>bool</a> <a href='#SkBitmap_ComputeIsOpaque'>ComputeIsOpaque</a>(<a href='#SkBitmap_ComputeIsOpaque'>const</a> <a href='SkBitmap_Reference#SkBitmap'>SkBitmap</a>& <a href='SkBitmap_Reference#SkBitmap'>bm</a>);
- <a href='SkBitmap_Reference#SkBitmap'>void</a> <a href='#SkBitmap_getBounds'>getBounds</a>(<a href='SkRect_Reference#SkRect'>SkRect</a>* <a href='SkRect_Reference#SkRect'>bounds</a>) <a href='SkRect_Reference#SkRect'>const</a>;
- <a href='SkRect_Reference#SkRect'>void</a> <a href='#SkBitmap_getBounds'>getBounds</a>(<a href='SkIRect_Reference#SkIRect'>SkIRect</a>* <a href='SkIRect_Reference#SkIRect'>bounds</a>) <a href='SkIRect_Reference#SkIRect'>const</a>;
- <a href='SkIRect_Reference#SkIRect'>SkIRect</a> <a href='#SkBitmap_bounds'>bounds()</a> <a href='#SkBitmap_bounds'>const</a>;
- <a href='undocumented#SkISize'>SkISize</a> <a href='#SkBitmap_dimensions'>dimensions()</a> <a href='#SkBitmap_dimensions'>const</a>;
- <a href='SkIRect_Reference#SkIRect'>SkIRect</a> <a href='#SkBitmap_getSubset'>getSubset</a>() <a href='#SkBitmap_getSubset'>const</a>;
- <a href='#SkBitmap_getSubset'>bool</a> <a href='#SkBitmap_setInfo'>setInfo</a>(<a href='#SkBitmap_setInfo'>const</a> <a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a>& <a href='SkImageInfo_Reference#SkImageInfo'>imageInfo</a>, <a href='SkImageInfo_Reference#SkImageInfo'>size_t</a> <a href='#SkBitmap_rowBytes'>rowBytes</a> = 0);
+ <a href='SkBitmap_Reference#SkBitmap'>SkBitmap</a>& operator=(const <a href='SkBitmap_Reference#SkBitmap'>SkBitmap</a>& src);
+ <a href='SkBitmap_Reference#SkBitmap'>SkBitmap</a>& operator=(<a href='SkBitmap_Reference#SkBitmap'>SkBitmap</a>&& src);
+ void <a href='#SkBitmap_swap'>swap</a>(<a href='SkBitmap_Reference#SkBitmap'>SkBitmap</a>& other);
+ const <a href='SkPixmap_Reference#SkPixmap'>SkPixmap</a>& <a href='#SkBitmap_pixmap'>pixmap()</a> const;
+ const <a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a>& <a href='#SkBitmap_info'>info()</a> const;
+ int <a href='#SkBitmap_width'>width()</a> const;
+ int <a href='#SkBitmap_height'>height()</a> const;
+ <a href='SkImageInfo_Reference#SkColorType'>SkColorType</a> <a href='#SkBitmap_colorType'>colorType</a>() const;
+ <a href='SkImageInfo_Reference#SkAlphaType'>SkAlphaType</a> <a href='#SkBitmap_alphaType'>alphaType</a>() const;
+ <a href='undocumented#SkColorSpace'>SkColorSpace</a>* <a href='#SkBitmap_colorSpace'>colorSpace</a>() const;
+ <a href='undocumented#sk_sp'>sk_sp</a><<a href='undocumented#SkColorSpace'>SkColorSpace</a>> <a href='#SkBitmap_refColorSpace'>refColorSpace</a>() const;
+ int <a href='#SkBitmap_bytesPerPixel'>bytesPerPixel</a>() const;
+ int <a href='#SkBitmap_rowBytesAsPixels'>rowBytesAsPixels</a>() const;
+ int <a href='#SkBitmap_shiftPerPixel'>shiftPerPixel</a>() const;
+ bool <a href='#SkBitmap_empty'>empty()</a> const;
+ bool <a href='#SkBitmap_isNull'>isNull</a>() const;
+ bool <a href='#SkBitmap_drawsNothing'>drawsNothing</a>() const;
+ size_t <a href='#SkBitmap_rowBytes'>rowBytes</a>() const;
+ bool <a href='#SkBitmap_setAlphaType'>setAlphaType</a>(<a href='SkImageInfo_Reference#SkAlphaType'>SkAlphaType</a> <a href='#SkBitmap_alphaType'>alphaType</a>);
+ void* <a href='#SkBitmap_getPixels'>getPixels</a>() const;
+ size_t <a href='#SkBitmap_computeByteSize'>computeByteSize</a>() const;
+ bool <a href='#SkBitmap_isImmutable'>isImmutable</a>() const;
+ void <a href='#SkBitmap_setImmutable'>setImmutable</a>();
+ bool <a href='#SkBitmap_isOpaque'>isOpaque</a>() const;
+ bool <a href='#SkBitmap_isVolatile'>isVolatile</a>() const;
+ void <a href='#SkBitmap_setIsVolatile'>setIsVolatile</a>(bool <a href='#SkBitmap_isVolatile'>isVolatile</a>);
+ void <a href='#SkBitmap_reset'>reset()</a>;
+ static bool <a href='#SkBitmap_ComputeIsOpaque'>ComputeIsOpaque</a>(const <a href='SkBitmap_Reference#SkBitmap'>SkBitmap</a>& bm);
+ void <a href='#SkBitmap_getBounds'>getBounds</a>(<a href='SkRect_Reference#SkRect'>SkRect</a>* bounds) const;
+ void <a href='#SkBitmap_getBounds'>getBounds</a>(<a href='SkIRect_Reference#SkIRect'>SkIRect</a>* bounds) const;
+ <a href='SkIRect_Reference#SkIRect'>SkIRect</a> <a href='#SkBitmap_bounds'>bounds()</a> const;
+ <a href='undocumented#SkISize'>SkISize</a> <a href='#SkBitmap_dimensions'>dimensions()</a> const;
+ <a href='SkIRect_Reference#SkIRect'>SkIRect</a> <a href='#SkBitmap_getSubset'>getSubset</a>() const;
+ bool <a href='#SkBitmap_setInfo'>setInfo</a>(const <a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a>& imageInfo, size_t <a href='#SkBitmap_rowBytes'>rowBytes</a> = 0);
- <a href='#SkBitmap_rowBytes'>enum</a> <a href='#SkBitmap_AllocFlags'>AllocFlags</a> {
+ enum <a href='#SkBitmap_AllocFlags'>AllocFlags</a> {
<a href='#SkBitmap_kZeroPixels_AllocFlag'>kZeroPixels_AllocFlag</a> = 1 << 0,
};
- <a href='#SkBitmap_kZeroPixels_AllocFlag'>bool</a> <a href='#SkBitmap_tryAllocPixelsFlags'>tryAllocPixelsFlags</a>(<a href='#SkBitmap_tryAllocPixelsFlags'>const</a> <a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a>& <a href='SkImageInfo_Reference#SkImageInfo'>info</a>, <a href='SkImageInfo_Reference#SkImageInfo'>uint32_t</a> <a href='SkImageInfo_Reference#SkImageInfo'>flags</a>);
- <a href='SkImageInfo_Reference#SkImageInfo'>void</a> <a href='#SkBitmap_allocPixelsFlags'>allocPixelsFlags</a>(<a href='#SkBitmap_allocPixelsFlags'>const</a> <a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a>& <a href='SkImageInfo_Reference#SkImageInfo'>info</a>, <a href='SkImageInfo_Reference#SkImageInfo'>uint32_t</a> <a href='SkImageInfo_Reference#SkImageInfo'>flags</a>);
- <a href='SkImageInfo_Reference#SkImageInfo'>bool</a> <a href='#SkBitmap_tryAllocPixels'>tryAllocPixels</a>(<a href='#SkBitmap_tryAllocPixels'>const</a> <a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a>& <a href='SkImageInfo_Reference#SkImageInfo'>info</a>, <a href='SkImageInfo_Reference#SkImageInfo'>size_t</a> <a href='#SkBitmap_rowBytes'>rowBytes</a>);
- <a href='#SkBitmap_rowBytes'>void</a> <a href='#SkBitmap_allocPixels'>allocPixels</a>(<a href='#SkBitmap_allocPixels'>const</a> <a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a>& <a href='SkImageInfo_Reference#SkImageInfo'>info</a>, <a href='SkImageInfo_Reference#SkImageInfo'>size_t</a> <a href='#SkBitmap_rowBytes'>rowBytes</a>);
- <a href='#SkBitmap_rowBytes'>bool</a> <a href='#SkBitmap_tryAllocPixels'>tryAllocPixels</a>(<a href='#SkBitmap_tryAllocPixels'>const</a> <a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a>& <a href='SkImageInfo_Reference#SkImageInfo'>info</a>);
- <a href='SkImageInfo_Reference#SkImageInfo'>void</a> <a href='#SkBitmap_allocPixels'>allocPixels</a>(<a href='#SkBitmap_allocPixels'>const</a> <a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a>& <a href='SkImageInfo_Reference#SkImageInfo'>info</a>);
- <a href='SkImageInfo_Reference#SkImageInfo'>bool</a> <a href='#SkBitmap_tryAllocN32Pixels'>tryAllocN32Pixels</a>(<a href='#SkBitmap_tryAllocN32Pixels'>int</a> <a href='#SkBitmap_tryAllocN32Pixels'>width</a>, <a href='#SkBitmap_tryAllocN32Pixels'>int</a> <a href='#SkBitmap_tryAllocN32Pixels'>height</a>, <a href='#SkBitmap_tryAllocN32Pixels'>bool</a> <a href='#SkBitmap_isOpaque'>isOpaque</a> = <a href='#SkBitmap_isOpaque'>false</a>);
- <a href='#SkBitmap_isOpaque'>void</a> <a href='#SkBitmap_allocN32Pixels'>allocN32Pixels</a>(<a href='#SkBitmap_allocN32Pixels'>int</a> <a href='#SkBitmap_allocN32Pixels'>width</a>, <a href='#SkBitmap_allocN32Pixels'>int</a> <a href='#SkBitmap_allocN32Pixels'>height</a>, <a href='#SkBitmap_allocN32Pixels'>bool</a> <a href='#SkBitmap_isOpaque'>isOpaque</a> = <a href='#SkBitmap_isOpaque'>false</a>);
- <a href='#SkBitmap_isOpaque'>bool</a> <a href='#SkBitmap_installPixels'>installPixels</a>(<a href='#SkBitmap_installPixels'>const</a> <a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a>& <a href='SkImageInfo_Reference#SkImageInfo'>info</a>, <a href='SkImageInfo_Reference#SkImageInfo'>void</a>* <a href='SkImageInfo_Reference#SkImageInfo'>pixels</a>, <a href='SkImageInfo_Reference#SkImageInfo'>size_t</a> <a href='#SkBitmap_rowBytes'>rowBytes</a>,
- <a href='#SkBitmap_rowBytes'>void</a> (*<a href='#SkBitmap_rowBytes'>releaseProc</a>)(<a href='#SkBitmap_rowBytes'>void</a>* <a href='#SkBitmap_rowBytes'>addr</a>, <a href='#SkBitmap_rowBytes'>void</a>* <a href='#SkBitmap_rowBytes'>context</a>), <a href='#SkBitmap_rowBytes'>void</a>* <a href='#SkBitmap_rowBytes'>context</a>);
- <a href='#SkBitmap_rowBytes'>bool</a> <a href='#SkBitmap_installPixels'>installPixels</a>(<a href='#SkBitmap_installPixels'>const</a> <a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a>& <a href='SkImageInfo_Reference#SkImageInfo'>info</a>, <a href='SkImageInfo_Reference#SkImageInfo'>void</a>* <a href='SkImageInfo_Reference#SkImageInfo'>pixels</a>, <a href='SkImageInfo_Reference#SkImageInfo'>size_t</a> <a href='#SkBitmap_rowBytes'>rowBytes</a>);
- <a href='#SkBitmap_rowBytes'>bool</a> <a href='#SkBitmap_installPixels'>installPixels</a>(<a href='#SkBitmap_installPixels'>const</a> <a href='SkPixmap_Reference#SkPixmap'>SkPixmap</a>& <a href='SkPixmap_Reference#Pixmap'>pixmap</a>);
- <a href='SkPixmap_Reference#Pixmap'>bool</a> <a href='#SkBitmap_installMaskPixels'>installMaskPixels</a>(<a href='#SkBitmap_installMaskPixels'>const</a> <a href='undocumented#SkMask'>SkMask</a>& <a href='undocumented#SkMask'>mask</a>);
- <a href='undocumented#SkMask'>void</a> <a href='#SkBitmap_setPixels'>setPixels</a>(<a href='#SkBitmap_setPixels'>void</a>* <a href='#SkBitmap_setPixels'>pixels</a>);
- <a href='#SkBitmap_setPixels'>bool</a> <a href='#SkBitmap_tryAllocPixels'>tryAllocPixels</a>();
- <a href='#SkBitmap_tryAllocPixels'>void</a> <a href='#SkBitmap_allocPixels'>allocPixels</a>();
- <a href='#SkBitmap_allocPixels'>bool</a> <a href='#SkBitmap_tryAllocPixels'>tryAllocPixels</a>(<a href='#SkBitmap_Allocator'>Allocator</a>* <a href='#SkBitmap_Allocator'>allocator</a>);
- <a href='#SkBitmap_Allocator'>void</a> <a href='#SkBitmap_allocPixels'>allocPixels</a>(<a href='#SkBitmap_Allocator'>Allocator</a>* <a href='#SkBitmap_Allocator'>allocator</a>);
- <a href='undocumented#SkPixelRef'>SkPixelRef</a>* <a href='#SkBitmap_pixelRef'>pixelRef</a>() <a href='#SkBitmap_pixelRef'>const</a>;
- <a href='SkIPoint_Reference#SkIPoint'>SkIPoint</a> <a href='#SkBitmap_pixelRefOrigin'>pixelRefOrigin</a>() <a href='#SkBitmap_pixelRefOrigin'>const</a>;
- <a href='#SkBitmap_pixelRefOrigin'>void</a> <a href='#SkBitmap_setPixelRef'>setPixelRef</a>(<a href='undocumented#sk_sp'>sk_sp</a><<a href='undocumented#SkPixelRef'>SkPixelRef</a>> <a href='#SkBitmap_pixelRef'>pixelRef</a>, <a href='#SkBitmap_pixelRef'>int</a> <a href='#SkBitmap_pixelRef'>dx</a>, <a href='#SkBitmap_pixelRef'>int</a> <a href='#SkBitmap_pixelRef'>dy</a>);
- <a href='#SkBitmap_pixelRef'>bool</a> <a href='#SkBitmap_readyToDraw'>readyToDraw</a>() <a href='#SkBitmap_readyToDraw'>const</a>;
- <a href='#SkBitmap_readyToDraw'>uint32_t</a> <a href='#SkBitmap_getGenerationID'>getGenerationID</a>() <a href='#SkBitmap_getGenerationID'>const</a>;
- <a href='#SkBitmap_getGenerationID'>void</a> <a href='#SkBitmap_notifyPixelsChanged'>notifyPixelsChanged</a>() <a href='#SkBitmap_notifyPixelsChanged'>const</a>;
- <a href='#SkBitmap_notifyPixelsChanged'>void</a> <a href='#SkBitmap_eraseColor'>eraseColor</a>(<a href='SkColor_Reference#SkColor'>SkColor</a> <a href='SkColor_Reference#SkColor'>c</a>) <a href='SkColor_Reference#SkColor'>const</a>;
- <a href='SkColor_Reference#SkColor'>void</a> <a href='#SkBitmap_eraseARGB'>eraseARGB</a>(<a href='undocumented#U8CPU'>U8CPU</a> <a href='undocumented#U8CPU'>a</a>, <a href='undocumented#U8CPU'>U8CPU</a> <a href='undocumented#U8CPU'>r</a>, <a href='undocumented#U8CPU'>U8CPU</a> <a href='undocumented#U8CPU'>g</a>, <a href='undocumented#U8CPU'>U8CPU</a> <a href='undocumented#U8CPU'>b</a>) <a href='undocumented#U8CPU'>const</a>;
- <a href='undocumented#U8CPU'>void</a> <a href='#SkBitmap_erase'>erase</a>(<a href='SkColor_Reference#SkColor'>SkColor</a> <a href='SkColor_Reference#SkColor'>c</a>, <a href='SkColor_Reference#SkColor'>const</a> <a href='SkIRect_Reference#SkIRect'>SkIRect</a>& <a href='SkIRect_Reference#SkIRect'>area</a>) <a href='SkIRect_Reference#SkIRect'>const</a>;
- <a href='SkIRect_Reference#SkIRect'>void</a> <a href='#SkBitmap_eraseArea'>eraseArea</a>(<a href='#SkBitmap_eraseArea'>const</a> <a href='SkIRect_Reference#SkIRect'>SkIRect</a>& <a href='SkIRect_Reference#SkIRect'>area</a>, <a href='SkColor_Reference#SkColor'>SkColor</a> <a href='SkColor_Reference#SkColor'>c</a>) <a href='SkColor_Reference#SkColor'>const</a>;
- <a href='SkColor_Reference#SkColor'>SkColor</a> <a href='#SkBitmap_getColor'>getColor</a>(<a href='#SkBitmap_getColor'>int</a> <a href='#SkBitmap_getColor'>x</a>, <a href='#SkBitmap_getColor'>int</a> <a href='#SkBitmap_getColor'>y</a>) <a href='#SkBitmap_getColor'>const</a>;
- <a href='#SkBitmap_getColor'>float</a> <a href='#SkBitmap_getAlphaf'>getAlphaf</a>(<a href='#SkBitmap_getAlphaf'>int</a> <a href='#SkBitmap_getAlphaf'>x</a>, <a href='#SkBitmap_getAlphaf'>int</a> <a href='#SkBitmap_getAlphaf'>y</a>) <a href='#SkBitmap_getAlphaf'>const</a>;
- <a href='#SkBitmap_getAlphaf'>void</a>* <a href='#SkBitmap_getAddr'>getAddr</a>(<a href='#SkBitmap_getAddr'>int</a> <a href='#SkBitmap_getAddr'>x</a>, <a href='#SkBitmap_getAddr'>int</a> <a href='#SkBitmap_getAddr'>y</a>) <a href='#SkBitmap_getAddr'>const</a>;
- <a href='#SkBitmap_getAddr'>uint32_t</a>* <a href='#SkBitmap_getAddr32'>getAddr32</a>(<a href='#SkBitmap_getAddr32'>int</a> <a href='#SkBitmap_getAddr32'>x</a>, <a href='#SkBitmap_getAddr32'>int</a> <a href='#SkBitmap_getAddr32'>y</a>) <a href='#SkBitmap_getAddr32'>const</a>;
- <a href='#SkBitmap_getAddr32'>uint16_t</a>* <a href='#SkBitmap_getAddr16'>getAddr16</a>(<a href='#SkBitmap_getAddr16'>int</a> <a href='#SkBitmap_getAddr16'>x</a>, <a href='#SkBitmap_getAddr16'>int</a> <a href='#SkBitmap_getAddr16'>y</a>) <a href='#SkBitmap_getAddr16'>const</a>;
- <a href='#SkBitmap_getAddr16'>uint8_t</a>* <a href='#SkBitmap_getAddr8'>getAddr8</a>(<a href='#SkBitmap_getAddr8'>int</a> <a href='#SkBitmap_getAddr8'>x</a>, <a href='#SkBitmap_getAddr8'>int</a> <a href='#SkBitmap_getAddr8'>y</a>) <a href='#SkBitmap_getAddr8'>const</a>;
- <a href='#SkBitmap_getAddr8'>bool</a> <a href='#SkBitmap_extractSubset'>extractSubset</a>(<a href='SkBitmap_Reference#SkBitmap'>SkBitmap</a>* <a href='SkBitmap_Reference#SkBitmap'>dst</a>, <a href='SkBitmap_Reference#SkBitmap'>const</a> <a href='SkIRect_Reference#SkIRect'>SkIRect</a>& <a href='SkIRect_Reference#SkIRect'>subset</a>) <a href='SkIRect_Reference#SkIRect'>const</a>;
- <a href='SkIRect_Reference#SkIRect'>bool</a> <a href='#SkBitmap_readPixels'>readPixels</a>(<a href='#SkBitmap_readPixels'>const</a> <a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a>& <a href='SkImageInfo_Reference#SkImageInfo'>dstInfo</a>, <a href='SkImageInfo_Reference#SkImageInfo'>void</a>* <a href='SkImageInfo_Reference#SkImageInfo'>dstPixels</a>, <a href='SkImageInfo_Reference#SkImageInfo'>size_t</a> <a href='SkImageInfo_Reference#SkImageInfo'>dstRowBytes</a>,
- <a href='SkImageInfo_Reference#SkImageInfo'>int</a> <a href='SkImageInfo_Reference#SkImageInfo'>srcX</a>, <a href='SkImageInfo_Reference#SkImageInfo'>int</a> <a href='SkImageInfo_Reference#SkImageInfo'>srcY</a>) <a href='SkImageInfo_Reference#SkImageInfo'>const</a>;
- <a href='SkImageInfo_Reference#SkImageInfo'>bool</a> <a href='#SkBitmap_readPixels'>readPixels</a>(<a href='#SkBitmap_readPixels'>const</a> <a href='SkPixmap_Reference#SkPixmap'>SkPixmap</a>& <a href='SkPixmap_Reference#SkPixmap'>dst</a>, <a href='SkPixmap_Reference#SkPixmap'>int</a> <a href='SkPixmap_Reference#SkPixmap'>srcX</a>, <a href='SkPixmap_Reference#SkPixmap'>int</a> <a href='SkPixmap_Reference#SkPixmap'>srcY</a>) <a href='SkPixmap_Reference#SkPixmap'>const</a>;
- <a href='SkPixmap_Reference#SkPixmap'>bool</a> <a href='#SkBitmap_readPixels'>readPixels</a>(<a href='#SkBitmap_readPixels'>const</a> <a href='SkPixmap_Reference#SkPixmap'>SkPixmap</a>& <a href='SkPixmap_Reference#SkPixmap'>dst</a>) <a href='SkPixmap_Reference#SkPixmap'>const</a>;
- <a href='SkPixmap_Reference#SkPixmap'>bool</a> <a href='#SkBitmap_writePixels'>writePixels</a>(<a href='#SkBitmap_writePixels'>const</a> <a href='SkPixmap_Reference#SkPixmap'>SkPixmap</a>& <a href='SkPixmap_Reference#SkPixmap'>src</a>, <a href='SkPixmap_Reference#SkPixmap'>int</a> <a href='SkPixmap_Reference#SkPixmap'>dstX</a>, <a href='SkPixmap_Reference#SkPixmap'>int</a> <a href='SkPixmap_Reference#SkPixmap'>dstY</a>);
- <a href='SkPixmap_Reference#SkPixmap'>bool</a> <a href='#SkBitmap_writePixels'>writePixels</a>(<a href='#SkBitmap_writePixels'>const</a> <a href='SkPixmap_Reference#SkPixmap'>SkPixmap</a>& <a href='SkPixmap_Reference#SkPixmap'>src</a>);
- <a href='SkPixmap_Reference#SkPixmap'>bool</a> <a href='#SkBitmap_extractAlpha'>extractAlpha</a>(<a href='SkBitmap_Reference#SkBitmap'>SkBitmap</a>* <a href='SkBitmap_Reference#SkBitmap'>dst</a>) <a href='SkBitmap_Reference#SkBitmap'>const</a>;
- <a href='SkBitmap_Reference#SkBitmap'>bool</a> <a href='#SkBitmap_extractAlpha'>extractAlpha</a>(<a href='SkBitmap_Reference#SkBitmap'>SkBitmap</a>* <a href='SkBitmap_Reference#SkBitmap'>dst</a>, <a href='SkBitmap_Reference#SkBitmap'>const</a> <a href='SkPaint_Reference#SkPaint'>SkPaint</a>* <a href='SkPaint_Reference#Paint'>paint</a>,
- <a href='SkIPoint_Reference#SkIPoint'>SkIPoint</a>* <a href='SkIPoint_Reference#SkIPoint'>offset</a>) <a href='SkIPoint_Reference#SkIPoint'>const</a>;
- <a href='SkIPoint_Reference#SkIPoint'>bool</a> <a href='#SkBitmap_extractAlpha'>extractAlpha</a>(<a href='SkBitmap_Reference#SkBitmap'>SkBitmap</a>* <a href='SkBitmap_Reference#SkBitmap'>dst</a>, <a href='SkBitmap_Reference#SkBitmap'>const</a> <a href='SkPaint_Reference#SkPaint'>SkPaint</a>* <a href='SkPaint_Reference#Paint'>paint</a>, <a href='#SkBitmap_Allocator'>Allocator</a>* <a href='#SkBitmap_Allocator'>allocator</a>,
- <a href='SkIPoint_Reference#SkIPoint'>SkIPoint</a>* <a href='SkIPoint_Reference#SkIPoint'>offset</a>) <a href='SkIPoint_Reference#SkIPoint'>const</a>;
- <a href='SkIPoint_Reference#SkIPoint'>bool</a> <a href='#SkBitmap_peekPixels'>peekPixels</a>(<a href='SkPixmap_Reference#SkPixmap'>SkPixmap</a>* <a href='SkPixmap_Reference#Pixmap'>pixmap</a>) <a href='SkPixmap_Reference#Pixmap'>const</a>;
- <a href='SkPixmap_Reference#Pixmap'>void</a> <a href='#SkBitmap_validate'>validate()</a> <a href='#SkBitmap_validate'>const</a>;
+ bool <a href='#SkBitmap_tryAllocPixelsFlags'>tryAllocPixelsFlags</a>(const <a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a>& info, uint32_t flags);
+ void <a href='#SkBitmap_allocPixelsFlags'>allocPixelsFlags</a>(const <a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a>& info, uint32_t flags);
+ bool <a href='#SkBitmap_tryAllocPixels'>tryAllocPixels</a>(const <a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a>& info, size_t <a href='#SkBitmap_rowBytes'>rowBytes</a>);
+ void <a href='#SkBitmap_allocPixels'>allocPixels</a>(const <a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a>& info, size_t <a href='#SkBitmap_rowBytes'>rowBytes</a>);
+ bool <a href='#SkBitmap_tryAllocPixels'>tryAllocPixels</a>(const <a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a>& info);
+ void <a href='#SkBitmap_allocPixels'>allocPixels</a>(const <a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a>& info);
+ bool <a href='#SkBitmap_tryAllocN32Pixels'>tryAllocN32Pixels</a>(int width, int height, bool <a href='#SkBitmap_isOpaque'>isOpaque</a> = false);
+ void <a href='#SkBitmap_allocN32Pixels'>allocN32Pixels</a>(int width, int height, bool <a href='#SkBitmap_isOpaque'>isOpaque</a> = false);
+ bool <a href='#SkBitmap_installPixels'>installPixels</a>(const <a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a>& info, void* pixels, size_t <a href='#SkBitmap_rowBytes'>rowBytes</a>,
+ void (*releaseProc)(void* addr, void* context), void* context);
+ bool <a href='#SkBitmap_installPixels'>installPixels</a>(const <a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a>& info, void* pixels, size_t <a href='#SkBitmap_rowBytes'>rowBytes</a>);
+ bool <a href='#SkBitmap_installPixels'>installPixels</a>(const <a href='SkPixmap_Reference#SkPixmap'>SkPixmap</a>& <a href='SkPixmap_Reference#Pixmap'>pixmap</a>);
+ bool <a href='#SkBitmap_installMaskPixels'>installMaskPixels</a>(const <a href='undocumented#SkMask'>SkMask</a>& mask);
+ void <a href='#SkBitmap_setPixels'>setPixels</a>(void* pixels);
+ bool <a href='#SkBitmap_tryAllocPixels'>tryAllocPixels</a>();
+ void <a href='#SkBitmap_allocPixels'>allocPixels</a>();
+ bool <a href='#SkBitmap_tryAllocPixels'>tryAllocPixels</a>(<a href='#SkBitmap_Allocator'>Allocator</a>* allocator);
+ void <a href='#SkBitmap_allocPixels'>allocPixels</a>(<a href='#SkBitmap_Allocator'>Allocator</a>* allocator);
+ <a href='undocumented#SkPixelRef'>SkPixelRef</a>* <a href='#SkBitmap_pixelRef'>pixelRef</a>() const;
+ <a href='SkIPoint_Reference#SkIPoint'>SkIPoint</a> <a href='#SkBitmap_pixelRefOrigin'>pixelRefOrigin</a>() const;
+ void <a href='#SkBitmap_setPixelRef'>setPixelRef</a>(<a href='undocumented#sk_sp'>sk_sp</a><<a href='undocumented#SkPixelRef'>SkPixelRef</a>> <a href='#SkBitmap_pixelRef'>pixelRef</a>, int dx, int dy);
+ bool <a href='#SkBitmap_readyToDraw'>readyToDraw</a>() const;
+ uint32_t <a href='#SkBitmap_getGenerationID'>getGenerationID</a>() const;
+ void <a href='#SkBitmap_notifyPixelsChanged'>notifyPixelsChanged</a>() const;
+ void <a href='#SkBitmap_eraseColor'>eraseColor</a>(<a href='SkColor_Reference#SkColor'>SkColor</a> c) const;
+ void <a href='#SkBitmap_eraseARGB'>eraseARGB</a>(<a href='undocumented#U8CPU'>U8CPU</a> a, <a href='undocumented#U8CPU'>U8CPU</a> r, <a href='undocumented#U8CPU'>U8CPU</a> g, <a href='undocumented#U8CPU'>U8CPU</a> b) const;
+ void <a href='#SkBitmap_erase'>erase</a>(<a href='SkColor_Reference#SkColor'>SkColor</a> c, const <a href='SkIRect_Reference#SkIRect'>SkIRect</a>& area) const;
+ void <a href='#SkBitmap_eraseArea'>eraseArea</a>(const <a href='SkIRect_Reference#SkIRect'>SkIRect</a>& area, <a href='SkColor_Reference#SkColor'>SkColor</a> c) const;
+ <a href='SkColor_Reference#SkColor'>SkColor</a> <a href='#SkBitmap_getColor'>getColor</a>(int x, int y) const;
+ float <a href='#SkBitmap_getAlphaf'>getAlphaf</a>(int x, int y) const;
+ void* <a href='#SkBitmap_getAddr'>getAddr</a>(int x, int y) const;
+ uint32_t* <a href='#SkBitmap_getAddr32'>getAddr32</a>(int x, int y) const;
+ uint16_t* <a href='#SkBitmap_getAddr16'>getAddr16</a>(int x, int y) const;
+ uint8_t* <a href='#SkBitmap_getAddr8'>getAddr8</a>(int x, int y) const;
+ bool <a href='#SkBitmap_extractSubset'>extractSubset</a>(<a href='SkBitmap_Reference#SkBitmap'>SkBitmap</a>* dst, const <a href='SkIRect_Reference#SkIRect'>SkIRect</a>& subset) const;
+ bool <a href='#SkBitmap_readPixels'>readPixels</a>(const <a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a>& dstInfo, void* dstPixels, size_t dstRowBytes,
+ int srcX, int srcY) const;
+ bool <a href='#SkBitmap_readPixels'>readPixels</a>(const <a href='SkPixmap_Reference#SkPixmap'>SkPixmap</a>& dst, int srcX, int srcY) const;
+ bool <a href='#SkBitmap_readPixels'>readPixels</a>(const <a href='SkPixmap_Reference#SkPixmap'>SkPixmap</a>& dst) const;
+ bool <a href='#SkBitmap_writePixels'>writePixels</a>(const <a href='SkPixmap_Reference#SkPixmap'>SkPixmap</a>& src, int dstX, int dstY);
+ bool <a href='#SkBitmap_writePixels'>writePixels</a>(const <a href='SkPixmap_Reference#SkPixmap'>SkPixmap</a>& src);
+ bool <a href='#SkBitmap_extractAlpha'>extractAlpha</a>(<a href='SkBitmap_Reference#SkBitmap'>SkBitmap</a>* dst) const;
+ bool <a href='#SkBitmap_extractAlpha'>extractAlpha</a>(<a href='SkBitmap_Reference#SkBitmap'>SkBitmap</a>* dst, const <a href='SkPaint_Reference#SkPaint'>SkPaint</a>* <a href='SkPaint_Reference#Paint'>paint</a>,
+ <a href='SkIPoint_Reference#SkIPoint'>SkIPoint</a>* offset) const;
+ bool <a href='#SkBitmap_extractAlpha'>extractAlpha</a>(<a href='SkBitmap_Reference#SkBitmap'>SkBitmap</a>* dst, const <a href='SkPaint_Reference#SkPaint'>SkPaint</a>* <a href='SkPaint_Reference#Paint'>paint</a>, <a href='#SkBitmap_Allocator'>Allocator</a>* allocator,
+ <a href='SkIPoint_Reference#SkIPoint'>SkIPoint</a>* offset) const;
+ bool <a href='#SkBitmap_peekPixels'>peekPixels</a>(<a href='SkPixmap_Reference#SkPixmap'>SkPixmap</a>* <a href='SkPixmap_Reference#Pixmap'>pixmap</a>) const;
+ void <a href='#SkBitmap_validate'>validate()</a> const;
- <a href='#SkBitmap_validate'>class</a> <a href='#SkBitmap_Allocator'>Allocator</a> : <a href='#SkBitmap_Allocator'>public</a> <a href='undocumented#SkRefCnt'>SkRefCnt</a> {
- <a href='undocumented#SkRefCnt'>public</a>:
- <a href='undocumented#SkRefCnt'>virtual</a> <a href='undocumented#SkRefCnt'>bool</a> <a href='undocumented#SkRefCnt'>allocPixelRef</a>(<a href='SkBitmap_Reference#SkBitmap'>SkBitmap</a>* <a href='SkBitmap_Reference#Bitmap'>bitmap</a>) = 0;
+ class <a href='#SkBitmap_Allocator'>Allocator</a> : public <a href='undocumented#SkRefCnt'>SkRefCnt</a> {
+ public:
+ virtual bool allocPixelRef(<a href='SkBitmap_Reference#SkBitmap'>SkBitmap</a>* <a href='SkBitmap_Reference#Bitmap'>bitmap</a>) = 0;
};
- <a href='SkBitmap_Reference#Bitmap'>class</a> <a href='#SkBitmap_HeapAllocator'>HeapAllocator</a> : <a href='#SkBitmap_HeapAllocator'>public</a> <a href='#SkBitmap_Allocator'>Allocator</a> {
- <a href='#SkBitmap_Allocator'>public</a>:
- <a href='#SkBitmap_Allocator'>bool</a> <a href='#SkBitmap_Allocator'>allocPixelRef</a>(<a href='SkBitmap_Reference#SkBitmap'>SkBitmap</a>* <a href='SkBitmap_Reference#Bitmap'>bitmap</a>) <a href='SkBitmap_Reference#Bitmap'>override</a>;
+ class <a href='#SkBitmap_HeapAllocator'>HeapAllocator</a> : public <a href='#SkBitmap_Allocator'>Allocator</a> {
+ public:
+ bool allocPixelRef(<a href='SkBitmap_Reference#SkBitmap'>SkBitmap</a>* <a href='SkBitmap_Reference#Bitmap'>bitmap</a>) override;
};
};
</pre>
-<a href='SkBitmap_Reference#Bitmap'>Bitmap</a> <a href='SkBitmap_Reference#Bitmap'>describes</a> <a href='SkBitmap_Reference#Bitmap'>a</a> <a href='SkBitmap_Reference#Bitmap'>two-dimensional</a> <a href='SkBitmap_Reference#Bitmap'>raster</a> <a href='undocumented#Pixel'>pixel</a> <a href='undocumented#Pixel'>array</a>. <a href='SkBitmap_Reference#Bitmap'>Bitmap</a> <a href='SkBitmap_Reference#Bitmap'>is</a> <a href='SkBitmap_Reference#Bitmap'>built</a> <a href='SkBitmap_Reference#Bitmap'>on</a>
-<a href='#Image_Info'>Image_Info</a>, <a href='#Image_Info'>containing</a> <a href='#Image_Info'>integer</a> <a href='#Image_Info'>width</a> <a href='#Image_Info'>and</a> <a href='#Image_Info'>height</a>, <a href='#Image_Info_Color_Type'>Color_Type</a> <a href='#Image_Info_Color_Type'>and</a> <a href='#Image_Info_Alpha_Type'>Alpha_Type</a>
-<a href='#Image_Info_Alpha_Type'>describing</a> <a href='#Image_Info_Alpha_Type'>the</a> <a href='undocumented#Pixel'>pixel</a> <a href='undocumented#Pixel'>format</a>, <a href='undocumented#Pixel'>and</a> <a href='#Color_Space'>Color_Space</a> <a href='#Color_Space'>describing</a> <a href='#Color_Space'>the</a> <a href='#Color_Space'>range</a> <a href='#Color_Space'>of</a> <a href='#Color_Space'>colors</a>.
-<a href='SkBitmap_Reference#Bitmap'>Bitmap</a> <a href='SkPoint_Reference#Point'>points</a> <a href='SkPoint_Reference#Point'>to</a> <a href='#Pixel_Ref'>Pixel_Ref</a>, <a href='#Pixel_Ref'>which</a> <a href='#Pixel_Ref'>describes</a> <a href='#Pixel_Ref'>the</a> <a href='#Pixel_Ref'>physical</a> <a href='#Pixel_Ref'>array</a> <a href='#Pixel_Ref'>of</a> <a href='#Pixel_Ref'>pixels</a>.
-<a href='#Image_Info'>Image_Info</a> <a href='#Image_Info'>bounds</a> <a href='#Image_Info'>may</a> <a href='#Image_Info'>be</a> <a href='#Image_Info'>located</a> <a href='#Image_Info'>anywhere</a> <a href='#Image_Info'>fully</a> <a href='#Image_Info'>inside</a> <a href='#Pixel_Ref'>Pixel_Ref</a> <a href='#Pixel_Ref'>bounds</a>.
+<a href='SkBitmap_Reference#Bitmap'>Bitmap</a> describes a two-dimensional raster <a href='undocumented#Pixel'>pixel</a> array. <a href='SkBitmap_Reference#Bitmap'>Bitmap</a> is built on
+<a href='#Image_Info'>Image_Info</a>, containing integer width and height, <a href='#Image_Info_Color_Type'>Color_Type</a> and <a href='#Image_Info_Alpha_Type'>Alpha_Type</a>
+describing the <a href='undocumented#Pixel'>pixel</a> format, and <a href='#Color_Space'>Color_Space</a> describing the range of colors.
+<a href='SkBitmap_Reference#Bitmap'>Bitmap</a> <a href='SkPoint_Reference#Point'>points</a> to <a href='#Pixel_Ref'>Pixel_Ref</a>, which describes the physical array of pixels.
+<a href='#Image_Info'>Image_Info</a> bounds may be located anywhere fully inside <a href='#Pixel_Ref'>Pixel_Ref</a> bounds.
-<a href='SkBitmap_Reference#Bitmap'>Bitmap</a> <a href='SkBitmap_Reference#Bitmap'>can</a> <a href='SkBitmap_Reference#Bitmap'>be</a> <a href='SkBitmap_Reference#Bitmap'>drawn</a> <a href='SkBitmap_Reference#Bitmap'>using</a> <a href='SkCanvas_Reference#Canvas'>Canvas</a>. <a href='SkBitmap_Reference#Bitmap'>Bitmap</a> <a href='SkBitmap_Reference#Bitmap'>can</a> <a href='SkBitmap_Reference#Bitmap'>be</a> <a href='SkBitmap_Reference#Bitmap'>a</a> <a href='SkBitmap_Reference#Bitmap'>drawing</a> <a href='SkBitmap_Reference#Bitmap'>destination</a> <a href='SkBitmap_Reference#Bitmap'>for</a> <a href='SkCanvas_Reference#Canvas'>Canvas</a>
-<a href='SkCanvas_Reference#Canvas'>draw</a> <a href='SkCanvas_Reference#Canvas'>member</a> <a href='SkCanvas_Reference#Canvas'>functions</a>. <a href='SkBitmap_Reference#Bitmap'>Bitmap</a> <a href='SkBitmap_Reference#Bitmap'>flexibility</a> <a href='SkBitmap_Reference#Bitmap'>as</a> <a href='SkBitmap_Reference#Bitmap'>a</a> <a href='undocumented#Pixel'>pixel</a> <a href='undocumented#Pixel'>container</a> <a href='undocumented#Pixel'>limits</a> <a href='undocumented#Pixel'>some</a>
-<a href='undocumented#Pixel'>optimizations</a> <a href='undocumented#Pixel'>available</a> <a href='undocumented#Pixel'>to</a> <a href='undocumented#Pixel'>the</a> <a href='undocumented#Pixel'>target</a> <a href='undocumented#Pixel'>platform</a>.
+<a href='SkBitmap_Reference#Bitmap'>Bitmap</a> can be drawn using <a href='SkCanvas_Reference#Canvas'>Canvas</a>. <a href='SkBitmap_Reference#Bitmap'>Bitmap</a> can be a drawing destination for <a href='SkCanvas_Reference#Canvas'>Canvas</a>
+draw member functions. <a href='SkBitmap_Reference#Bitmap'>Bitmap</a> flexibility as a <a href='undocumented#Pixel'>pixel</a> container limits some
+optimizations available to the target platform.
-<a href='undocumented#Pixel'>If</a> <a href='undocumented#Pixel'>pixel</a> <a href='undocumented#Pixel'>array</a> <a href='undocumented#Pixel'>is</a> <a href='undocumented#Pixel'>primarily</a> <a href='undocumented#Pixel'>read-only</a>, <a href='undocumented#Pixel'>use</a> <a href='SkImage_Reference#Image'>Image</a> <a href='SkImage_Reference#Image'>for</a> <a href='SkImage_Reference#Image'>better</a> <a href='SkImage_Reference#Image'>performance</a>.
-<a href='SkImage_Reference#Image'>If</a> <a href='undocumented#Pixel'>pixel</a> <a href='undocumented#Pixel'>array</a> <a href='undocumented#Pixel'>is</a> <a href='undocumented#Pixel'>primarily</a> <a href='undocumented#Pixel'>written</a> <a href='undocumented#Pixel'>to</a>, <a href='undocumented#Pixel'>use</a> <a href='SkSurface_Reference#Surface'>Surface</a> <a href='SkSurface_Reference#Surface'>for</a> <a href='SkSurface_Reference#Surface'>better</a> <a href='SkSurface_Reference#Surface'>performance</a>.
+If <a href='undocumented#Pixel'>pixel</a> array is primarily read-only, use <a href='SkImage_Reference#Image'>Image</a> for better performance.
+If <a href='undocumented#Pixel'>pixel</a> array is primarily written to, use <a href='SkSurface_Reference#Surface'>Surface</a> for better performance.
-<a href='SkSurface_Reference#Surface'>Declaring</a> <a href='SkBitmap_Reference#SkBitmap'>SkBitmap</a> <a href='SkBitmap_Reference#SkBitmap'>const</a> <a href='SkBitmap_Reference#SkBitmap'>prevents</a> <a href='SkBitmap_Reference#SkBitmap'>altering</a> <a href='#Image_Info'>Image_Info</a>: <a href='#Image_Info'>the</a> <a href='SkBitmap_Reference#Bitmap'>Bitmap</a> <a href='SkBitmap_Reference#Bitmap'>height</a>, <a href='SkBitmap_Reference#Bitmap'>width</a>,
-<a href='SkBitmap_Reference#Bitmap'>and</a> <a href='SkBitmap_Reference#Bitmap'>so</a> <a href='SkBitmap_Reference#Bitmap'>on</a> <a href='SkBitmap_Reference#Bitmap'>cannot</a> <a href='SkBitmap_Reference#Bitmap'>change</a>. <a href='SkBitmap_Reference#Bitmap'>It</a> <a href='SkBitmap_Reference#Bitmap'>does</a> <a href='SkBitmap_Reference#Bitmap'>not</a> <a href='SkBitmap_Reference#Bitmap'>affect</a> <a href='#Pixel_Ref'>Pixel_Ref</a>: <a href='#Pixel_Ref'>a</a> <a href='#Pixel_Ref'>caller</a> <a href='#Pixel_Ref'>may</a> <a href='#Pixel_Ref'>write</a> <a href='#Pixel_Ref'>its</a>
-<a href='#Pixel_Ref'>pixels</a>. <a href='#Pixel_Ref'>Declaring</a> <a href='SkBitmap_Reference#SkBitmap'>SkBitmap</a> <a href='SkBitmap_Reference#SkBitmap'>const</a> <a href='SkBitmap_Reference#SkBitmap'>affects</a> <a href='SkBitmap_Reference#Bitmap'>Bitmap</a> <a href='SkBitmap_Reference#Bitmap'>configuration</a>, <a href='SkBitmap_Reference#Bitmap'>not</a> <a href='SkBitmap_Reference#Bitmap'>its</a> <a href='SkBitmap_Reference#Bitmap'>contents</a>.
+Declaring <a href='SkBitmap_Reference#SkBitmap'>SkBitmap</a> const prevents altering <a href='#Image_Info'>Image_Info</a>: the <a href='SkBitmap_Reference#Bitmap'>Bitmap</a> height, width,
+and so on cannot change. It does not affect <a href='#Pixel_Ref'>Pixel_Ref</a>: a caller may write its
+pixels. Declaring <a href='SkBitmap_Reference#SkBitmap'>SkBitmap</a> const affects <a href='SkBitmap_Reference#Bitmap'>Bitmap</a> configuration, not its contents.
-<a href='SkBitmap_Reference#Bitmap'>Bitmap</a> <a href='SkBitmap_Reference#Bitmap'>is</a> <a href='SkBitmap_Reference#Bitmap'>not</a> <a href='SkBitmap_Reference#Bitmap'>thread</a> <a href='SkBitmap_Reference#Bitmap'>safe</a>. <a href='SkBitmap_Reference#Bitmap'>Each</a> <a href='SkBitmap_Reference#Bitmap'>thread</a> <a href='SkBitmap_Reference#Bitmap'>must</a> <a href='SkBitmap_Reference#Bitmap'>have</a> <a href='SkBitmap_Reference#Bitmap'>its</a> <a href='SkBitmap_Reference#Bitmap'>own</a> <a href='SkBitmap_Reference#Bitmap'>copy</a> <a href='SkBitmap_Reference#Bitmap'>of</a> <a href='SkBitmap_Reference#Bitmap'>Bitmap</a> <a href='SkBitmap_Reference#Bitmap'>fields</a>,
-<a href='SkBitmap_Reference#Bitmap'>although</a> <a href='SkBitmap_Reference#Bitmap'>threads</a> <a href='SkBitmap_Reference#Bitmap'>may</a> <a href='SkBitmap_Reference#Bitmap'>share</a> <a href='SkBitmap_Reference#Bitmap'>the</a> <a href='SkBitmap_Reference#Bitmap'>underlying</a> <a href='undocumented#Pixel'>pixel</a> <a href='undocumented#Pixel'>array</a>.
+<a href='SkBitmap_Reference#Bitmap'>Bitmap</a> is not thread safe. Each thread must have its own copy of <a href='SkBitmap_Reference#Bitmap'>Bitmap</a> fields,
+although threads may share the underlying <a href='undocumented#Pixel'>pixel</a> array.
<a name='Row_Bytes'></a>
-<a href='SkBitmap_Reference#Bitmap'>Bitmap</a> <a href='SkBitmap_Reference#Bitmap'>pixels</a> <a href='SkBitmap_Reference#Bitmap'>may</a> <a href='SkBitmap_Reference#Bitmap'>be</a> <a href='SkBitmap_Reference#Bitmap'>contiguous</a>, <a href='SkBitmap_Reference#Bitmap'>or</a> <a href='SkBitmap_Reference#Bitmap'>may</a> <a href='SkBitmap_Reference#Bitmap'>have</a> <a href='SkBitmap_Reference#Bitmap'>a</a> <a href='SkBitmap_Reference#Bitmap'>gap</a> <a href='SkBitmap_Reference#Bitmap'>at</a> <a href='SkBitmap_Reference#Bitmap'>the</a> <a href='SkBitmap_Reference#Bitmap'>end</a> <a href='SkBitmap_Reference#Bitmap'>of</a> <a href='SkBitmap_Reference#Bitmap'>each</a> <a href='SkBitmap_Reference#Bitmap'>row</a>.
-<a href='#Bitmap_Row_Bytes'>Row_Bytes</a> <a href='#Bitmap_Row_Bytes'>is</a> <a href='#Bitmap_Row_Bytes'>the</a> <a href='#Bitmap_Row_Bytes'>interval</a> <a href='#Bitmap_Row_Bytes'>from</a> <a href='#Bitmap_Row_Bytes'>one</a> <a href='#Bitmap_Row_Bytes'>row</a> <a href='#Bitmap_Row_Bytes'>to</a> <a href='#Bitmap_Row_Bytes'>the</a> <a href='#Bitmap_Row_Bytes'>next</a>. <a href='#Bitmap_Row_Bytes'>Row_Bytes</a> <a href='#Bitmap_Row_Bytes'>may</a> <a href='#Bitmap_Row_Bytes'>be</a> <a href='#Bitmap_Row_Bytes'>specified</a>;
-<a href='#Bitmap_Row_Bytes'>sometimes</a> <a href='#Bitmap_Row_Bytes'>passing</a> <a href='#Bitmap_Row_Bytes'>zero</a> <a href='#Bitmap_Row_Bytes'>will</a> <a href='#Bitmap_Row_Bytes'>compute</a> <a href='#Bitmap_Row_Bytes'>the</a> <a href='#Bitmap_Row_Bytes'>Row_Bytes</a> <a href='#Bitmap_Row_Bytes'>from</a> <a href='#Bitmap_Row_Bytes'>the</a> <a href='#Bitmap_Row_Bytes'>row</a> <a href='#Bitmap_Row_Bytes'>width</a> <a href='#Bitmap_Row_Bytes'>and</a> <a href='#Bitmap_Row_Bytes'>the</a>
-<a href='#Bitmap_Row_Bytes'>number</a> <a href='#Bitmap_Row_Bytes'>of</a> <a href='#Bitmap_Row_Bytes'>bytes</a> <a href='#Bitmap_Row_Bytes'>in</a> <a href='#Bitmap_Row_Bytes'>a</a> <a href='undocumented#Pixel'>pixel</a>. <a href='#Bitmap_Row_Bytes'>Row_Bytes</a> <a href='#Bitmap_Row_Bytes'>may</a> <a href='#Bitmap_Row_Bytes'>be</a> <a href='#Bitmap_Row_Bytes'>larger</a> <a href='#Bitmap_Row_Bytes'>than</a> <a href='#Bitmap_Row_Bytes'>the</a> <a href='#Bitmap_Row_Bytes'>row</a> <a href='#Bitmap_Row_Bytes'>requires</a>. <a href='#Bitmap_Row_Bytes'>This</a>
-<a href='#Bitmap_Row_Bytes'>is</a> <a href='#Bitmap_Row_Bytes'>useful</a> <a href='#Bitmap_Row_Bytes'>to</a> <a href='#Bitmap_Row_Bytes'>position</a> <a href='#Bitmap_Row_Bytes'>one</a> <a href='#Bitmap_Row_Bytes'>or</a> <a href='#Bitmap_Row_Bytes'>more</a> <a href='SkBitmap_Reference#Bitmap'>Bitmaps</a> <a href='SkBitmap_Reference#Bitmap'>within</a> <a href='SkBitmap_Reference#Bitmap'>a</a> <a href='SkBitmap_Reference#Bitmap'>shared</a> <a href='undocumented#Pixel'>pixel</a> <a href='undocumented#Pixel'>array</a>.
+<a href='SkBitmap_Reference#Bitmap'>Bitmap</a> pixels may be contiguous, or may have a gap at the end of each row.
+<a href='#Bitmap_Row_Bytes'>Row_Bytes</a> is the interval from one row to the next. <a href='#Bitmap_Row_Bytes'>Row_Bytes</a> may be specified;
+sometimes passing zero will compute the <a href='#Bitmap_Row_Bytes'>Row_Bytes</a> from the row width and the
+number of bytes in a <a href='undocumented#Pixel'>pixel</a>. <a href='#Bitmap_Row_Bytes'>Row_Bytes</a> may be larger than the row requires. This
+is useful to position one or more <a href='SkBitmap_Reference#Bitmap'>Bitmaps</a> within a shared <a href='undocumented#Pixel'>pixel</a> array.
<a name='SkBitmap_Allocator'></a>
---
<pre style="padding: 1em 1em 1em 1em;width: 62.5em; background-color: #f0f0f0">
- class <a href='#SkBitmap_Allocator'>Allocator</a> : <a href='#SkBitmap_Allocator'>public</a> <a href='undocumented#SkRefCnt'>SkRefCnt</a> {
- <a href='undocumented#SkRefCnt'>public</a>:
- <a href='undocumented#SkRefCnt'>virtual</a> <a href='undocumented#SkRefCnt'>bool</a> <a href='#SkBitmap_Allocator_allocPixelRef'>allocPixelRef</a>(<a href='SkBitmap_Reference#SkBitmap'>SkBitmap</a>* <a href='SkBitmap_Reference#Bitmap'>bitmap</a>) = 0;
+ class <a href='#SkBitmap_Allocator'>Allocator</a> : public <a href='undocumented#SkRefCnt'>SkRefCnt</a> {
+ public:
+ virtual bool <a href='#SkBitmap_Allocator_allocPixelRef'>allocPixelRef</a>(<a href='SkBitmap_Reference#SkBitmap'>SkBitmap</a>* <a href='SkBitmap_Reference#Bitmap'>bitmap</a>) = 0;
};
</pre>
@@ -162,20 +162,20 @@
virtual bool <a href='#SkBitmap_Allocator_allocPixelRef'>allocPixelRef</a>(<a href='SkBitmap_Reference#SkBitmap'>SkBitmap</a>* <a href='SkBitmap_Reference#Bitmap'>bitmap</a>) = 0
</pre>
-Allocates the <a href='undocumented#Pixel'>pixel</a> <a href='undocumented#Pixel'>memory</a> <a href='undocumented#Pixel'>for</a> <a href='undocumented#Pixel'>the</a> <a href='#SkBitmap_Allocator_allocPixelRef_bitmap'>bitmap</a>, <a href='#SkBitmap_Allocator_allocPixelRef_bitmap'>given</a> <a href='#SkBitmap_Allocator_allocPixelRef_bitmap'>its</a> <a href='#SkBitmap_Allocator_allocPixelRef_bitmap'>dimensions</a> <a href='#SkBitmap_Allocator_allocPixelRef_bitmap'>and</a>
-<a href='SkImageInfo_Reference#SkColorType'>SkColorType</a>. <a href='SkImageInfo_Reference#SkColorType'>Returns</a> <a href='SkImageInfo_Reference#SkColorType'>true</a> <a href='SkImageInfo_Reference#SkColorType'>on</a> <a href='SkImageInfo_Reference#SkColorType'>success</a>, <a href='SkImageInfo_Reference#SkColorType'>where</a> <a href='SkImageInfo_Reference#SkColorType'>success</a> <a href='SkImageInfo_Reference#SkColorType'>means</a> <a href='SkImageInfo_Reference#SkColorType'>either</a> <a href='#SkBitmap_setPixels'>setPixels</a>()
-or <a href='#SkBitmap_setPixelRef'>setPixelRef</a>() <a href='#SkBitmap_setPixelRef'>was</a> <a href='#SkBitmap_setPixelRef'>called</a>.
+Allocates the <a href='undocumented#Pixel'>pixel</a> memory for the <a href='#SkBitmap_Allocator_allocPixelRef_bitmap'>bitmap</a>, given its dimensions and
+<a href='SkImageInfo_Reference#SkColorType'>SkColorType</a>. Returns true on success, where success means either <a href='#SkBitmap_setPixels'>setPixels</a>()
+or <a href='#SkBitmap_setPixelRef'>setPixelRef</a>() was called.
### Parameters
<table> <tr> <td><a name='SkBitmap_Allocator_allocPixelRef_bitmap'><code><strong>bitmap</strong></code></a></td>
- <td><a href='SkBitmap_Reference#SkBitmap'>SkBitmap</a> <a href='SkBitmap_Reference#SkBitmap'>containing</a> <a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a> <a href='SkImageInfo_Reference#SkImageInfo'>as</a> <a href='SkImageInfo_Reference#SkImageInfo'>input</a>, <a href='SkImageInfo_Reference#SkImageInfo'>and</a> <a href='undocumented#SkPixelRef'>SkPixelRef</a> <a href='undocumented#SkPixelRef'>as</a> <a href='undocumented#SkPixelRef'>output</a></td>
+ <td><a href='SkBitmap_Reference#SkBitmap'>SkBitmap</a> containing <a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a> as input, and <a href='undocumented#SkPixelRef'>SkPixelRef</a> as output</td>
</tr>
</table>
### Return Value
-true if <a href='undocumented#SkPixelRef'>SkPixelRef</a> <a href='undocumented#SkPixelRef'>was</a> <a href='undocumented#SkPixelRef'>allocated</a>
+true if <a href='undocumented#SkPixelRef'>SkPixelRef</a> was allocated
### See Also
@@ -186,14 +186,14 @@
---
<pre style="padding: 1em 1em 1em 1em;width: 62.5em; background-color: #f0f0f0">
- class <a href='#SkBitmap_HeapAllocator'>HeapAllocator</a> : <a href='#SkBitmap_HeapAllocator'>public</a> <a href='#SkBitmap_Allocator'>Allocator</a> {
- <a href='#SkBitmap_Allocator'>public</a>:
- <a href='#SkBitmap_Allocator'>bool</a> <a href='#SkBitmap_HeapAllocator_allocPixelRef'>allocPixelRef</a>(<a href='SkBitmap_Reference#SkBitmap'>SkBitmap</a>* <a href='SkBitmap_Reference#Bitmap'>bitmap</a>) <a href='SkBitmap_Reference#Bitmap'>override</a>;
+ class <a href='#SkBitmap_HeapAllocator'>HeapAllocator</a> : public <a href='#SkBitmap_Allocator'>Allocator</a> {
+ public:
+ bool <a href='#SkBitmap_HeapAllocator_allocPixelRef'>allocPixelRef</a>(<a href='SkBitmap_Reference#SkBitmap'>SkBitmap</a>* <a href='SkBitmap_Reference#Bitmap'>bitmap</a>) override;
};
</pre>
-Subclass of <a href='SkBitmap_Reference#SkBitmap'>SkBitmap</a>::<a href='#SkBitmap_Allocator'>Allocator</a> <a href='#SkBitmap_Allocator'>that</a> <a href='#SkBitmap_Allocator'>returns</a> <a href='#SkBitmap_Allocator'>a</a> <a href='#Pixel_Ref'>Pixel_Ref</a> <a href='#Pixel_Ref'>that</a> <a href='#Pixel_Ref'>allocates</a> <a href='#Pixel_Ref'>its</a> <a href='undocumented#Pixel'>pixel</a>
-<a href='undocumented#Pixel'>memory</a> <a href='undocumented#Pixel'>from</a> <a href='undocumented#Pixel'>the</a> <a href='undocumented#Pixel'>heap</a>. <a href='undocumented#Pixel'>This</a> <a href='undocumented#Pixel'>is</a> <a href='undocumented#Pixel'>the</a> <a href='undocumented#Pixel'>default</a> <a href='SkBitmap_Reference#SkBitmap'>SkBitmap</a>::<a href='#SkBitmap_Allocator'>Allocator</a> <a href='#SkBitmap_Allocator'>invoked</a> <a href='#SkBitmap_Allocator'>by</a>
+Subclass of <a href='SkBitmap_Reference#SkBitmap'>SkBitmap</a>::<a href='#SkBitmap_Allocator'>Allocator</a> that returns a <a href='#Pixel_Ref'>Pixel_Ref</a> that allocates its <a href='undocumented#Pixel'>pixel</a>
+memory from the heap. This is the default <a href='SkBitmap_Reference#SkBitmap'>SkBitmap</a>::<a href='#SkBitmap_Allocator'>Allocator</a> invoked by
<a href='#SkBitmap_allocPixels'>allocPixels</a>.
<a name='SkBitmap_HeapAllocator_allocPixelRef'></a>
@@ -201,17 +201,17 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-bool <a href='#SkBitmap_HeapAllocator_allocPixelRef'>allocPixelRef</a>(<a href='SkBitmap_Reference#SkBitmap'>SkBitmap</a>* <a href='SkBitmap_Reference#Bitmap'>bitmap</a>) <a href='SkBitmap_Reference#Bitmap'>override</a>
+bool <a href='#SkBitmap_HeapAllocator_allocPixelRef'>allocPixelRef</a>(<a href='SkBitmap_Reference#SkBitmap'>SkBitmap</a>* <a href='SkBitmap_Reference#Bitmap'>bitmap</a>) override
</pre>
-Allocates the <a href='undocumented#Pixel'>pixel</a> <a href='undocumented#Pixel'>memory</a> <a href='undocumented#Pixel'>for</a> <a href='undocumented#Pixel'>the</a> <a href='#SkBitmap_HeapAllocator_allocPixelRef_bitmap'>bitmap</a>, <a href='#SkBitmap_HeapAllocator_allocPixelRef_bitmap'>given</a> <a href='#SkBitmap_HeapAllocator_allocPixelRef_bitmap'>its</a> <a href='#SkBitmap_HeapAllocator_allocPixelRef_bitmap'>dimensions</a> <a href='#SkBitmap_HeapAllocator_allocPixelRef_bitmap'>and</a>
-<a href='SkImageInfo_Reference#SkColorType'>SkColorType</a>. <a href='SkImageInfo_Reference#SkColorType'>Returns</a> <a href='SkImageInfo_Reference#SkColorType'>true</a> <a href='SkImageInfo_Reference#SkColorType'>on</a> <a href='SkImageInfo_Reference#SkColorType'>success</a>, <a href='SkImageInfo_Reference#SkColorType'>where</a> <a href='SkImageInfo_Reference#SkColorType'>success</a> <a href='SkImageInfo_Reference#SkColorType'>means</a> <a href='SkImageInfo_Reference#SkColorType'>either</a> <a href='#SkBitmap_setPixels'>setPixels</a>()
-or <a href='#SkBitmap_setPixelRef'>setPixelRef</a>() <a href='#SkBitmap_setPixelRef'>was</a> <a href='#SkBitmap_setPixelRef'>called</a>.
+Allocates the <a href='undocumented#Pixel'>pixel</a> memory for the <a href='#SkBitmap_HeapAllocator_allocPixelRef_bitmap'>bitmap</a>, given its dimensions and
+<a href='SkImageInfo_Reference#SkColorType'>SkColorType</a>. Returns true on success, where success means either <a href='#SkBitmap_setPixels'>setPixels</a>()
+or <a href='#SkBitmap_setPixelRef'>setPixelRef</a>() was called.
### Parameters
<table> <tr> <td><a name='SkBitmap_HeapAllocator_allocPixelRef_bitmap'><code><strong>bitmap</strong></code></a></td>
- <td><a href='SkBitmap_Reference#SkBitmap'>SkBitmap</a> <a href='SkBitmap_Reference#SkBitmap'>containing</a> <a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a> <a href='SkImageInfo_Reference#SkImageInfo'>as</a> <a href='SkImageInfo_Reference#SkImageInfo'>input</a>, <a href='SkImageInfo_Reference#SkImageInfo'>and</a> <a href='undocumented#SkPixelRef'>SkPixelRef</a> <a href='undocumented#SkPixelRef'>as</a> <a href='undocumented#SkPixelRef'>output</a></td>
+ <td><a href='SkBitmap_Reference#SkBitmap'>SkBitmap</a> containing <a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a> as input, and <a href='undocumented#SkPixelRef'>SkPixelRef</a> as output</td>
</tr>
</table>
@@ -245,12 +245,12 @@
<a href='#SkBitmap_empty_constructor'>SkBitmap()</a>
</pre>
-Creates an empty <a href='SkBitmap_Reference#SkBitmap'>SkBitmap</a> <a href='SkBitmap_Reference#SkBitmap'>without</a> <a href='SkBitmap_Reference#SkBitmap'>pixels</a>, <a href='SkBitmap_Reference#SkBitmap'>with</a> <a href='SkImageInfo_Reference#kUnknown_SkColorType'>kUnknown_SkColorType</a>,
-<a href='SkImageInfo_Reference#kUnknown_SkAlphaType'>kUnknown_SkAlphaType</a>, <a href='SkImageInfo_Reference#kUnknown_SkAlphaType'>and</a> <a href='SkImageInfo_Reference#kUnknown_SkAlphaType'>with</a> <a href='SkImageInfo_Reference#kUnknown_SkAlphaType'>a</a> <a href='SkImageInfo_Reference#kUnknown_SkAlphaType'>width</a> <a href='SkImageInfo_Reference#kUnknown_SkAlphaType'>and</a> <a href='SkImageInfo_Reference#kUnknown_SkAlphaType'>height</a> <a href='SkImageInfo_Reference#kUnknown_SkAlphaType'>of</a> <a href='SkImageInfo_Reference#kUnknown_SkAlphaType'>zero</a>. <a href='undocumented#SkPixelRef'>SkPixelRef</a> <a href='undocumented#SkPixelRef'>origin</a> <a href='undocumented#SkPixelRef'>is</a>
-set to (0, 0). <a href='SkBitmap_Reference#SkBitmap'>SkBitmap</a> <a href='SkBitmap_Reference#SkBitmap'>is</a> <a href='SkBitmap_Reference#SkBitmap'>not</a> <a href='SkBitmap_Reference#SkBitmap'>volatile</a>.
+Creates an empty <a href='SkBitmap_Reference#SkBitmap'>SkBitmap</a> without pixels, with <a href='SkImageInfo_Reference#kUnknown_SkColorType'>kUnknown_SkColorType</a>,
+<a href='SkImageInfo_Reference#kUnknown_SkAlphaType'>kUnknown_SkAlphaType</a>, and with a width and height of zero. <a href='undocumented#SkPixelRef'>SkPixelRef</a> origin is
+set to (0, 0). <a href='SkBitmap_Reference#SkBitmap'>SkBitmap</a> is not volatile.
-Use <a href='#SkBitmap_setInfo'>setInfo</a>() <a href='#SkBitmap_setInfo'>to</a> <a href='#SkBitmap_setInfo'>associate</a> <a href='SkImageInfo_Reference#SkColorType'>SkColorType</a>, <a href='SkImageInfo_Reference#SkAlphaType'>SkAlphaType</a>, <a href='SkImageInfo_Reference#SkAlphaType'>width</a>, <a href='SkImageInfo_Reference#SkAlphaType'>and</a> <a href='SkImageInfo_Reference#SkAlphaType'>height</a>
-after <a href='SkBitmap_Reference#SkBitmap'>SkBitmap</a> <a href='SkBitmap_Reference#SkBitmap'>has</a> <a href='SkBitmap_Reference#SkBitmap'>been</a> <a href='SkBitmap_Reference#SkBitmap'>created</a>.
+Use <a href='#SkBitmap_setInfo'>setInfo</a>() to associate <a href='SkImageInfo_Reference#SkColorType'>SkColorType</a>, <a href='SkImageInfo_Reference#SkAlphaType'>SkAlphaType</a>, width, and height
+after <a href='SkBitmap_Reference#SkBitmap'>SkBitmap</a> has been created.
### Return Value
@@ -278,16 +278,16 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-<a href='SkBitmap_Reference#SkBitmap'>SkBitmap</a>(<a href='SkBitmap_Reference#SkBitmap'>const</a> <a href='SkBitmap_Reference#SkBitmap'>SkBitmap</a>& <a href='SkBitmap_Reference#SkBitmap'>src</a>)
+<a href='SkBitmap_Reference#SkBitmap'>SkBitmap</a>(const <a href='SkBitmap_Reference#SkBitmap'>SkBitmap</a>& src)
</pre>
-Copies settings from <a href='#SkBitmap_copy_const_SkBitmap_src'>src</a> <a href='#SkBitmap_copy_const_SkBitmap_src'>to</a> <a href='#SkBitmap_copy_const_SkBitmap_src'>returned</a> <a href='SkBitmap_Reference#SkBitmap'>SkBitmap</a>. <a href='SkBitmap_Reference#SkBitmap'>Shares</a> <a href='SkBitmap_Reference#SkBitmap'>pixels</a> <a href='SkBitmap_Reference#SkBitmap'>if</a> <a href='#SkBitmap_copy_const_SkBitmap_src'>src</a> <a href='#SkBitmap_copy_const_SkBitmap_src'>has</a> <a href='#SkBitmap_copy_const_SkBitmap_src'>pixels</a>
-allocated, so both <a href='SkBitmap_Reference#Bitmap'>bitmaps</a> <a href='SkBitmap_Reference#Bitmap'>reference</a> <a href='SkBitmap_Reference#Bitmap'>the</a> <a href='SkBitmap_Reference#Bitmap'>same</a> <a href='SkBitmap_Reference#Bitmap'>pixels</a>.
+Copies settings from <a href='#SkBitmap_copy_const_SkBitmap_src'>src</a> to returned <a href='SkBitmap_Reference#SkBitmap'>SkBitmap</a>. Shares pixels if <a href='#SkBitmap_copy_const_SkBitmap_src'>src</a> has pixels
+allocated, so both <a href='SkBitmap_Reference#Bitmap'>bitmaps</a> reference the same pixels.
### Parameters
<table> <tr> <td><a name='SkBitmap_copy_const_SkBitmap_src'><code><strong>src</strong></code></a></td>
- <td><a href='SkBitmap_Reference#SkBitmap'>SkBitmap</a> <a href='SkBitmap_Reference#SkBitmap'>to</a> <a href='SkBitmap_Reference#SkBitmap'>copy</a> <a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a>, <a href='SkImageInfo_Reference#SkImageInfo'>and</a> <a href='SkImageInfo_Reference#SkImageInfo'>share</a> <a href='undocumented#SkPixelRef'>SkPixelRef</a></td>
+ <td><a href='SkBitmap_Reference#SkBitmap'>SkBitmap</a> to copy <a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a>, and share <a href='undocumented#SkPixelRef'>SkPixelRef</a></td>
</tr>
</table>
@@ -318,16 +318,16 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-<a href='SkBitmap_Reference#SkBitmap'>SkBitmap</a>(<a href='SkBitmap_Reference#SkBitmap'>SkBitmap</a>&& <a href='SkBitmap_Reference#SkBitmap'>src</a>)
+<a href='SkBitmap_Reference#SkBitmap'>SkBitmap</a>(<a href='SkBitmap_Reference#SkBitmap'>SkBitmap</a>&& src)
</pre>
-Copies settings from <a href='#SkBitmap_move_SkBitmap_src'>src</a> <a href='#SkBitmap_move_SkBitmap_src'>to</a> <a href='#SkBitmap_move_SkBitmap_src'>returned</a> <a href='SkBitmap_Reference#SkBitmap'>SkBitmap</a>. <a href='SkBitmap_Reference#SkBitmap'>Moves</a> <a href='SkBitmap_Reference#SkBitmap'>ownership</a> <a href='SkBitmap_Reference#SkBitmap'>of</a> <a href='#SkBitmap_move_SkBitmap_src'>src</a> <a href='#SkBitmap_move_SkBitmap_src'>pixels</a> <a href='#SkBitmap_move_SkBitmap_src'>to</a>
+Copies settings from <a href='#SkBitmap_move_SkBitmap_src'>src</a> to returned <a href='SkBitmap_Reference#SkBitmap'>SkBitmap</a>. Moves ownership of <a href='#SkBitmap_move_SkBitmap_src'>src</a> pixels to
<a href='SkBitmap_Reference#SkBitmap'>SkBitmap</a>.
### Parameters
<table> <tr> <td><a name='SkBitmap_move_SkBitmap_src'><code><strong>src</strong></code></a></td>
- <td><a href='SkBitmap_Reference#SkBitmap'>SkBitmap</a> <a href='SkBitmap_Reference#SkBitmap'>to</a> <a href='SkBitmap_Reference#SkBitmap'>copy</a> <a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a>, <a href='SkImageInfo_Reference#SkImageInfo'>and</a> <a href='SkImageInfo_Reference#SkImageInfo'>reassign</a> <a href='undocumented#SkPixelRef'>SkPixelRef</a></td>
+ <td><a href='SkBitmap_Reference#SkBitmap'>SkBitmap</a> to copy <a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a>, and reassign <a href='undocumented#SkPixelRef'>SkPixelRef</a></td>
</tr>
</table>
@@ -361,7 +361,7 @@
~<a href='#SkBitmap_empty_constructor'>SkBitmap()</a>
</pre>
-Decrements <a href='undocumented#SkPixelRef'>SkPixelRef</a> <a href='undocumented#SkPixelRef'>reference</a> <a href='undocumented#SkPixelRef'>count</a>, <a href='undocumented#SkPixelRef'>if</a> <a href='undocumented#SkPixelRef'>SkPixelRef</a> <a href='undocumented#SkPixelRef'>is</a> <a href='undocumented#SkPixelRef'>not</a> <a href='undocumented#SkPixelRef'>nullptr</a>.
+Decrements <a href='undocumented#SkPixelRef'>SkPixelRef</a> reference count, if <a href='undocumented#SkPixelRef'>SkPixelRef</a> is not nullptr.
### See Also
@@ -372,16 +372,16 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-<a href='SkBitmap_Reference#SkBitmap'>SkBitmap</a>& <a href='SkBitmap_Reference#SkBitmap'>operator</a>=(<a href='SkBitmap_Reference#SkBitmap'>const</a> <a href='SkBitmap_Reference#SkBitmap'>SkBitmap</a>& <a href='SkBitmap_Reference#SkBitmap'>src</a>)
+<a href='SkBitmap_Reference#SkBitmap'>SkBitmap</a>& operator=(const <a href='SkBitmap_Reference#SkBitmap'>SkBitmap</a>& src)
</pre>
-Copies settings from <a href='#SkBitmap_copy_operator_src'>src</a> <a href='#SkBitmap_copy_operator_src'>to</a> <a href='#SkBitmap_copy_operator_src'>returned</a> <a href='SkBitmap_Reference#SkBitmap'>SkBitmap</a>. <a href='SkBitmap_Reference#SkBitmap'>Shares</a> <a href='SkBitmap_Reference#SkBitmap'>pixels</a> <a href='SkBitmap_Reference#SkBitmap'>if</a> <a href='#SkBitmap_copy_operator_src'>src</a> <a href='#SkBitmap_copy_operator_src'>has</a> <a href='#SkBitmap_copy_operator_src'>pixels</a>
-allocated, so both <a href='SkBitmap_Reference#Bitmap'>bitmaps</a> <a href='SkBitmap_Reference#Bitmap'>reference</a> <a href='SkBitmap_Reference#Bitmap'>the</a> <a href='SkBitmap_Reference#Bitmap'>same</a> <a href='SkBitmap_Reference#Bitmap'>pixels</a>.
+Copies settings from <a href='#SkBitmap_copy_operator_src'>src</a> to returned <a href='SkBitmap_Reference#SkBitmap'>SkBitmap</a>. Shares pixels if <a href='#SkBitmap_copy_operator_src'>src</a> has pixels
+allocated, so both <a href='SkBitmap_Reference#Bitmap'>bitmaps</a> reference the same pixels.
### Parameters
<table> <tr> <td><a name='SkBitmap_copy_operator_src'><code><strong>src</strong></code></a></td>
- <td><a href='SkBitmap_Reference#SkBitmap'>SkBitmap</a> <a href='SkBitmap_Reference#SkBitmap'>to</a> <a href='SkBitmap_Reference#SkBitmap'>copy</a> <a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a>, <a href='SkImageInfo_Reference#SkImageInfo'>and</a> <a href='SkImageInfo_Reference#SkImageInfo'>share</a> <a href='undocumented#SkPixelRef'>SkPixelRef</a></td>
+ <td><a href='SkBitmap_Reference#SkBitmap'>SkBitmap</a> to copy <a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a>, and share <a href='undocumented#SkPixelRef'>SkPixelRef</a></td>
</tr>
</table>
@@ -412,16 +412,16 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-<a href='SkBitmap_Reference#SkBitmap'>SkBitmap</a>& <a href='SkBitmap_Reference#SkBitmap'>operator</a>=(<a href='SkBitmap_Reference#SkBitmap'>SkBitmap</a>&& <a href='SkBitmap_Reference#SkBitmap'>src</a>)
+<a href='SkBitmap_Reference#SkBitmap'>SkBitmap</a>& operator=(<a href='SkBitmap_Reference#SkBitmap'>SkBitmap</a>&& src)
</pre>
-Copies settings from <a href='#SkBitmap_move_operator_src'>src</a> <a href='#SkBitmap_move_operator_src'>to</a> <a href='#SkBitmap_move_operator_src'>returned</a> <a href='SkBitmap_Reference#SkBitmap'>SkBitmap</a>. <a href='SkBitmap_Reference#SkBitmap'>Moves</a> <a href='SkBitmap_Reference#SkBitmap'>ownership</a> <a href='SkBitmap_Reference#SkBitmap'>of</a> <a href='#SkBitmap_move_operator_src'>src</a> <a href='#SkBitmap_move_operator_src'>pixels</a> <a href='#SkBitmap_move_operator_src'>to</a>
+Copies settings from <a href='#SkBitmap_move_operator_src'>src</a> to returned <a href='SkBitmap_Reference#SkBitmap'>SkBitmap</a>. Moves ownership of <a href='#SkBitmap_move_operator_src'>src</a> pixels to
<a href='SkBitmap_Reference#SkBitmap'>SkBitmap</a>.
### Parameters
<table> <tr> <td><a name='SkBitmap_move_operator_src'><code><strong>src</strong></code></a></td>
- <td><a href='SkBitmap_Reference#SkBitmap'>SkBitmap</a> <a href='SkBitmap_Reference#SkBitmap'>to</a> <a href='SkBitmap_Reference#SkBitmap'>copy</a> <a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a>, <a href='SkImageInfo_Reference#SkImageInfo'>and</a> <a href='SkImageInfo_Reference#SkImageInfo'>reassign</a> <a href='undocumented#SkPixelRef'>SkPixelRef</a></td>
+ <td><a href='SkBitmap_Reference#SkBitmap'>SkBitmap</a> to copy <a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a>, and reassign <a href='undocumented#SkPixelRef'>SkPixelRef</a></td>
</tr>
</table>
@@ -452,7 +452,7 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-void <a href='#SkBitmap_swap'>swap</a>(<a href='SkBitmap_Reference#SkBitmap'>SkBitmap</a>& <a href='SkBitmap_Reference#SkBitmap'>other</a>)
+void <a href='#SkBitmap_swap'>swap</a>(<a href='SkBitmap_Reference#SkBitmap'>SkBitmap</a>& other)
</pre>
Swaps the fields of the two <a href='SkBitmap_Reference#Bitmap'>bitmaps</a>.
@@ -460,7 +460,7 @@
### Parameters
<table> <tr> <td><a name='SkBitmap_swap_other'><code><strong>other</strong></code></a></td>
- <td><a href='SkBitmap_Reference#SkBitmap'>SkBitmap</a> <a href='SkBitmap_Reference#SkBitmap'>exchanged</a> <a href='SkBitmap_Reference#SkBitmap'>with</a> <a href='SkBitmap_Reference#SkBitmap'>original</a></td>
+ <td><a href='SkBitmap_Reference#SkBitmap'>SkBitmap</a> exchanged with original</td>
</tr>
</table>
@@ -490,15 +490,15 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-const <a href='SkPixmap_Reference#SkPixmap'>SkPixmap</a>& <a href='#SkBitmap_pixmap'>pixmap()</a> <a href='#SkBitmap_pixmap'>const</a>
+const <a href='SkPixmap_Reference#SkPixmap'>SkPixmap</a>& <a href='#SkBitmap_pixmap'>pixmap()</a> const
</pre>
-Returns a constant reference to the <a href='SkPixmap_Reference#SkPixmap'>SkPixmap</a> <a href='SkPixmap_Reference#SkPixmap'>holding</a> <a href='SkPixmap_Reference#SkPixmap'>the</a> <a href='SkBitmap_Reference#SkBitmap'>SkBitmap</a> <a href='undocumented#Pixel'>pixel</a>
+Returns a constant reference to the <a href='SkPixmap_Reference#SkPixmap'>SkPixmap</a> holding the <a href='SkBitmap_Reference#SkBitmap'>SkBitmap</a> <a href='undocumented#Pixel'>pixel</a>
address, row bytes, and <a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a>.
### Return Value
-reference to <a href='SkPixmap_Reference#SkPixmap'>SkPixmap</a> <a href='SkPixmap_Reference#SkPixmap'>describing</a> <a href='SkPixmap_Reference#SkPixmap'>this</a> <a href='SkBitmap_Reference#SkBitmap'>SkBitmap</a>
+reference to <a href='SkPixmap_Reference#SkPixmap'>SkPixmap</a> describing this <a href='SkBitmap_Reference#SkBitmap'>SkBitmap</a>
### Example
@@ -531,10 +531,10 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-const <a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a>& <a href='#SkBitmap_info'>info()</a> <a href='#SkBitmap_info'>const</a>
+const <a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a>& <a href='#SkBitmap_info'>info()</a> const
</pre>
-Returns width, height, <a href='SkImageInfo_Reference#SkAlphaType'>SkAlphaType</a>, <a href='SkImageInfo_Reference#SkColorType'>SkColorType</a>, <a href='SkImageInfo_Reference#SkColorType'>and</a> <a href='undocumented#SkColorSpace'>SkColorSpace</a>.
+Returns width, height, <a href='SkImageInfo_Reference#SkAlphaType'>SkAlphaType</a>, <a href='SkImageInfo_Reference#SkColorType'>SkColorType</a>, and <a href='undocumented#SkColorSpace'>SkColorSpace</a>.
### Return Value
@@ -561,18 +561,18 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-int <a href='#SkBitmap_width'>width()</a> <a href='#SkBitmap_width'>const</a>
+int <a href='#SkBitmap_width'>width()</a> const
</pre>
-Returns <a href='undocumented#Pixel'>pixel</a> <a href='undocumented#Pixel'>count</a> <a href='undocumented#Pixel'>in</a> <a href='undocumented#Pixel'>each</a> <a href='undocumented#Pixel'>row</a>. <a href='undocumented#Pixel'>Should</a> <a href='undocumented#Pixel'>be</a> <a href='undocumented#Pixel'>equal</a> <a href='undocumented#Pixel'>or</a> <a href='undocumented#Pixel'>less</a> <a href='undocumented#Pixel'>than</a>
+Returns <a href='undocumented#Pixel'>pixel</a> count in each row. Should be equal or less than
<code><a href='#SkBitmap_rowBytes'>rowBytes</a>() / <a href='#SkBitmap_info'>info()</a>.<a href='#SkImageInfo_bytesPerPixel'>bytesPerPixel</a>()</code>.
-May be less than <a href='#SkBitmap_pixelRef'>pixelRef</a>().<a href='#SkPixelRef_width'>width()</a>. <a href='#SkPixelRef_width'>Will</a> <a href='#SkPixelRef_width'>not</a> <a href='#SkPixelRef_width'>exceed</a> <a href='#SkBitmap_pixelRef'>pixelRef</a>().<a href='#SkPixelRef_width'>width()</a> <a href='#SkPixelRef_width'>less</a>
+May be less than <a href='#SkBitmap_pixelRef'>pixelRef</a>().<a href='#SkPixelRef_width'>width()</a>. Will not exceed <a href='#SkBitmap_pixelRef'>pixelRef</a>().<a href='#SkPixelRef_width'>width()</a> less
<a href='#SkBitmap_pixelRefOrigin'>pixelRefOrigin</a>().<a href='#SkIPoint_fX'>fX</a>.
### Return Value
-<a href='undocumented#Pixel'>pixel</a> <a href='undocumented#Pixel'>width</a> <a href='undocumented#Pixel'>in</a> <a href='#Image_Info'>Image_Info</a>
+<a href='undocumented#Pixel'>pixel</a> width in <a href='#Image_Info'>Image_Info</a>
### Example
@@ -595,17 +595,17 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-int <a href='#SkBitmap_height'>height()</a> <a href='#SkBitmap_height'>const</a>
+int <a href='#SkBitmap_height'>height()</a> const
</pre>
-Returns <a href='undocumented#Pixel'>pixel</a> <a href='undocumented#Pixel'>row</a> <a href='undocumented#Pixel'>count</a>.
+Returns <a href='undocumented#Pixel'>pixel</a> row count.
-Maybe be less than <a href='#SkBitmap_pixelRef'>pixelRef</a>().<a href='#SkPixelRef_height'>height()</a>. <a href='#SkPixelRef_height'>Will</a> <a href='#SkPixelRef_height'>not</a> <a href='#SkPixelRef_height'>exceed</a> <a href='#SkBitmap_pixelRef'>pixelRef</a>().<a href='#SkPixelRef_height'>height()</a> <a href='#SkPixelRef_height'>less</a>
+Maybe be less than <a href='#SkBitmap_pixelRef'>pixelRef</a>().<a href='#SkPixelRef_height'>height()</a>. Will not exceed <a href='#SkBitmap_pixelRef'>pixelRef</a>().<a href='#SkPixelRef_height'>height()</a> less
<a href='#SkBitmap_pixelRefOrigin'>pixelRefOrigin</a>().<a href='#SkIPoint_fY'>fY</a>.
### Return Value
-<a href='undocumented#Pixel'>pixel</a> <a href='undocumented#Pixel'>height</a> <a href='undocumented#Pixel'>in</a> <a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a>
+<a href='undocumented#Pixel'>pixel</a> height in <a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a>
### Example
@@ -628,10 +628,10 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-<a href='SkImageInfo_Reference#SkColorType'>SkColorType</a> <a href='#SkBitmap_colorType'>colorType</a>() <a href='#SkBitmap_colorType'>const</a>
+<a href='SkImageInfo_Reference#SkColorType'>SkColorType</a> <a href='#SkBitmap_colorType'>colorType</a>() const
</pre>
-Returns <a href='#Image_Info_Color_Type'>Color_Type</a>, <a href='#Image_Info_Color_Type'>one</a> <a href='#Image_Info_Color_Type'>of</a>: <a href='SkImageInfo_Reference#kUnknown_SkColorType'>kUnknown_SkColorType</a>, <a href='SkImageInfo_Reference#kAlpha_8_SkColorType'>kAlpha_8_SkColorType</a>, <a href='SkImageInfo_Reference#kRGB_565_SkColorType'>kRGB_565_SkColorType</a>,
+Returns <a href='#Image_Info_Color_Type'>Color_Type</a>, one of: <a href='SkImageInfo_Reference#kUnknown_SkColorType'>kUnknown_SkColorType</a>, <a href='SkImageInfo_Reference#kAlpha_8_SkColorType'>kAlpha_8_SkColorType</a>, <a href='SkImageInfo_Reference#kRGB_565_SkColorType'>kRGB_565_SkColorType</a>,
<a href='SkImageInfo_Reference#kARGB_4444_SkColorType'>kARGB_4444_SkColorType</a>, <a href='SkImageInfo_Reference#kRGBA_8888_SkColorType'>kRGBA_8888_SkColorType</a>, <a href='SkImageInfo_Reference#kRGB_888x_SkColorType'>kRGB_888x_SkColorType</a>,
<a href='SkImageInfo_Reference#kBGRA_8888_SkColorType'>kBGRA_8888_SkColorType</a>, <a href='SkImageInfo_Reference#kRGBA_1010102_SkColorType'>kRGBA_1010102_SkColorType</a>, <a href='SkImageInfo_Reference#kRGB_101010x_SkColorType'>kRGB_101010x_SkColorType</a>,
<a href='SkImageInfo_Reference#kGray_8_SkColorType'>kGray_8_SkColorType</a>, <a href='SkImageInfo_Reference#kRGBA_F16_SkColorType'>kRGBA_F16_SkColorType</a>
@@ -639,7 +639,7 @@
### Return Value
-<a href='#Image_Info_Color_Type'>Color_Type</a> <a href='#Image_Info_Color_Type'>in</a> <a href='#Image_Info'>Image_Info</a>
+<a href='#Image_Info_Color_Type'>Color_Type</a> in <a href='#Image_Info'>Image_Info</a>
### Example
@@ -662,16 +662,16 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-<a href='SkImageInfo_Reference#SkAlphaType'>SkAlphaType</a> <a href='#SkBitmap_alphaType'>alphaType</a>() <a href='#SkBitmap_alphaType'>const</a>
+<a href='SkImageInfo_Reference#SkAlphaType'>SkAlphaType</a> <a href='#SkBitmap_alphaType'>alphaType</a>() const
</pre>
-Returns <a href='#Image_Info_Alpha_Type'>Alpha_Type</a>, <a href='#Image_Info_Alpha_Type'>one</a> <a href='#Image_Info_Alpha_Type'>of</a>: <a href='SkImageInfo_Reference#kUnknown_SkAlphaType'>kUnknown_SkAlphaType</a>, <a href='SkImageInfo_Reference#kOpaque_SkAlphaType'>kOpaque_SkAlphaType</a>, <a href='SkImageInfo_Reference#kPremul_SkAlphaType'>kPremul_SkAlphaType</a>,
+Returns <a href='#Image_Info_Alpha_Type'>Alpha_Type</a>, one of: <a href='SkImageInfo_Reference#kUnknown_SkAlphaType'>kUnknown_SkAlphaType</a>, <a href='SkImageInfo_Reference#kOpaque_SkAlphaType'>kOpaque_SkAlphaType</a>, <a href='SkImageInfo_Reference#kPremul_SkAlphaType'>kPremul_SkAlphaType</a>,
<a href='SkImageInfo_Reference#kUnpremul_SkAlphaType'>kUnpremul_SkAlphaType</a>
.
### Return Value
-<a href='#Image_Info_Alpha_Type'>Alpha_Type</a> <a href='#Image_Info_Alpha_Type'>in</a> <a href='#Image_Info'>Image_Info</a>
+<a href='#Image_Info_Alpha_Type'>Alpha_Type</a> in <a href='#Image_Info'>Image_Info</a>
### Example
@@ -694,21 +694,21 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-<a href='undocumented#SkColorSpace'>SkColorSpace</a>* <a href='#SkBitmap_colorSpace'>colorSpace</a>() <a href='#SkBitmap_colorSpace'>const</a>
+<a href='undocumented#SkColorSpace'>SkColorSpace</a>* <a href='#SkBitmap_colorSpace'>colorSpace</a>() const
</pre>
-Returns <a href='undocumented#SkColorSpace'>SkColorSpace</a>, <a href='undocumented#SkColorSpace'>the</a> <a href='undocumented#SkColorSpace'>range</a> <a href='undocumented#SkColorSpace'>of</a> <a href='undocumented#SkColorSpace'>colors</a>, <a href='undocumented#SkColorSpace'>associated</a> <a href='undocumented#SkColorSpace'>with</a> <a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a>. <a href='SkImageInfo_Reference#SkImageInfo'>The</a>
-reference count of <a href='undocumented#SkColorSpace'>SkColorSpace</a> <a href='undocumented#SkColorSpace'>is</a> <a href='undocumented#SkColorSpace'>unchanged</a>. <a href='undocumented#SkColorSpace'>The</a> <a href='undocumented#SkColorSpace'>returned</a> <a href='undocumented#SkColorSpace'>SkColorSpace</a> <a href='undocumented#SkColorSpace'>is</a>
+Returns <a href='undocumented#SkColorSpace'>SkColorSpace</a>, the range of colors, associated with <a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a>. The
+reference count of <a href='undocumented#SkColorSpace'>SkColorSpace</a> is unchanged. The returned <a href='undocumented#SkColorSpace'>SkColorSpace</a> is
immutable.
### Return Value
-<a href='undocumented#SkColorSpace'>SkColorSpace</a> <a href='undocumented#SkColorSpace'>in</a> <a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a>, <a href='SkImageInfo_Reference#SkImageInfo'>or</a> <a href='SkImageInfo_Reference#SkImageInfo'>nullptr</a>
+<a href='undocumented#SkColorSpace'>SkColorSpace</a> in <a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a>, or nullptr
### Example
-<div><fiddle-embed name="817f95879fadba44baf87ea60e9b595a"><div><a href='undocumented#SkColorSpace'>SkColorSpace</a>::<a href='#SkColorSpace_MakeSRGBLinear'>MakeSRGBLinear</a> <a href='#SkColorSpace_MakeSRGBLinear'>creates</a> <a href='#Color_Space'>Color_Space</a> <a href='#Color_Space'>with</a> <a href='#Color_Space'>linear</a> <a href='#Color_Space'>gamma</a>
-<a href='#Color_Space'>and</a> <a href='#Color_Space'>an</a> <a href='#Color_Space'>sRGB</a> <a href='#Color_Space'>gamut</a>. <a href='#Color_Space'>This</a> <a href='#Color_Space'>Color_Space</a> <a href='#Color_Space'>gamma</a> <a href='#Color_Space'>is</a> <a href='#Color_Space'>not</a> <a href='#Color_Space'>close</a> <a href='#Color_Space'>to</a> <a href='#Color_Space'>sRGB</a> <a href='#Color_Space'>gamma</a>.
+<div><fiddle-embed name="817f95879fadba44baf87ea60e9b595a"><div><a href='undocumented#SkColorSpace'>SkColorSpace</a>::<a href='#SkColorSpace_MakeSRGBLinear'>MakeSRGBLinear</a> creates <a href='#Color_Space'>Color_Space</a> with linear gamma
+and an sRGB gamut. This <a href='#Color_Space'>Color_Space</a> gamma is not close to sRGB gamma.
</div>
#### Example Output
@@ -728,18 +728,18 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-<a href='undocumented#sk_sp'>sk_sp</a>&<a href='undocumented#sk_sp'>lt</a>;<a href='undocumented#SkColorSpace'>SkColorSpace</a>&<a href='undocumented#SkColorSpace'>gt</a>; <a href='#SkBitmap_refColorSpace'>refColorSpace</a>() <a href='#SkBitmap_refColorSpace'>const</a>
+<a href='undocumented#sk_sp'>sk_sp</a><<a href='undocumented#SkColorSpace'>SkColorSpace</a>> <a href='#SkBitmap_refColorSpace'>refColorSpace</a>() const
</pre>
-Returns smart pointer to <a href='undocumented#SkColorSpace'>SkColorSpace</a>, <a href='undocumented#SkColorSpace'>the</a> <a href='undocumented#SkColorSpace'>range</a> <a href='undocumented#SkColorSpace'>of</a> <a href='undocumented#SkColorSpace'>colors</a>, <a href='undocumented#SkColorSpace'>associated</a> <a href='undocumented#SkColorSpace'>with</a>
-<a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a>. <a href='SkImageInfo_Reference#SkImageInfo'>The</a> <a href='SkImageInfo_Reference#SkImageInfo'>smart</a> <a href='SkImageInfo_Reference#SkImageInfo'>pointer</a> <a href='SkImageInfo_Reference#SkImageInfo'>tracks</a> <a href='SkImageInfo_Reference#SkImageInfo'>the</a> <a href='SkImageInfo_Reference#SkImageInfo'>number</a> <a href='SkImageInfo_Reference#SkImageInfo'>of</a> <a href='SkImageInfo_Reference#SkImageInfo'>objects</a> <a href='SkImageInfo_Reference#SkImageInfo'>sharing</a> <a href='SkImageInfo_Reference#SkImageInfo'>this</a>
-<a href='undocumented#SkColorSpace'>SkColorSpace</a> <a href='undocumented#SkColorSpace'>reference</a> <a href='undocumented#SkColorSpace'>so</a> <a href='undocumented#SkColorSpace'>the</a> <a href='undocumented#SkColorSpace'>memory</a> <a href='undocumented#SkColorSpace'>is</a> <a href='undocumented#SkColorSpace'>released</a> <a href='undocumented#SkColorSpace'>when</a> <a href='undocumented#SkColorSpace'>the</a> <a href='undocumented#SkColorSpace'>owners</a> <a href='undocumented#SkColorSpace'>destruct</a>.
+Returns smart pointer to <a href='undocumented#SkColorSpace'>SkColorSpace</a>, the range of colors, associated with
+<a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a>. The smart pointer tracks the number of objects sharing this
+<a href='undocumented#SkColorSpace'>SkColorSpace</a> reference so the memory is released when the owners destruct.
-The returned <a href='undocumented#SkColorSpace'>SkColorSpace</a> <a href='undocumented#SkColorSpace'>is</a> <a href='undocumented#SkColorSpace'>immutable</a>.
+The returned <a href='undocumented#SkColorSpace'>SkColorSpace</a> is immutable.
### Return Value
-<a href='undocumented#SkColorSpace'>SkColorSpace</a> <a href='undocumented#SkColorSpace'>in</a> <a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a> <a href='SkImageInfo_Reference#SkImageInfo'>wrapped</a> <a href='SkImageInfo_Reference#SkImageInfo'>in</a> <a href='SkImageInfo_Reference#SkImageInfo'>a</a> <a href='SkImageInfo_Reference#SkImageInfo'>smart</a> <a href='SkImageInfo_Reference#SkImageInfo'>pointer</a>
+<a href='undocumented#SkColorSpace'>SkColorSpace</a> in <a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a> wrapped in a smart pointer
### Example
@@ -762,11 +762,11 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-int <a href='#SkBitmap_bytesPerPixel'>bytesPerPixel</a>() <a href='#SkBitmap_bytesPerPixel'>const</a>
+int <a href='#SkBitmap_bytesPerPixel'>bytesPerPixel</a>() const
</pre>
-Returns number of bytes per <a href='undocumented#Pixel'>pixel</a> <a href='undocumented#Pixel'>required</a> <a href='undocumented#Pixel'>by</a> <a href='SkImageInfo_Reference#SkColorType'>SkColorType</a>.
-Returns zero if <a href='#SkBitmap_colorType'>colorType</a>( <a href='#SkBitmap_colorType'>is</a> <a href='SkImageInfo_Reference#kUnknown_SkColorType'>kUnknown_SkColorType</a>.
+Returns number of bytes per <a href='undocumented#Pixel'>pixel</a> required by <a href='SkImageInfo_Reference#SkColorType'>SkColorType</a>.
+Returns zero if <a href='#SkBitmap_colorType'>colorType</a>( is <a href='SkImageInfo_Reference#kUnknown_SkColorType'>kUnknown_SkColorType</a>.
### Return Value
@@ -806,7 +806,7 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-int <a href='#SkBitmap_rowBytesAsPixels'>rowBytesAsPixels</a>() <a href='#SkBitmap_rowBytesAsPixels'>const</a>
+int <a href='#SkBitmap_rowBytesAsPixels'>rowBytesAsPixels</a>() const
</pre>
Returns number of pixels that fit on row. Should be greater than or equal to
@@ -841,7 +841,7 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-int <a href='#SkBitmap_shiftPerPixel'>shiftPerPixel</a>() <a href='#SkBitmap_shiftPerPixel'>const</a>
+int <a href='#SkBitmap_shiftPerPixel'>shiftPerPixel</a>() const
</pre>
Returns bit shift converting row bytes to row pixels.
@@ -885,13 +885,13 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-bool <a href='#SkBitmap_empty'>empty()</a> <a href='#SkBitmap_empty'>const</a>
+bool <a href='#SkBitmap_empty'>empty()</a> const
</pre>
-Returns true if either <a href='#SkBitmap_width'>width()</a> <a href='#SkBitmap_width'>or</a> <a href='#SkBitmap_height'>height()</a> <a href='#SkBitmap_height'>are</a> <a href='#SkBitmap_height'>zero</a>.
+Returns true if either <a href='#SkBitmap_width'>width()</a> or <a href='#SkBitmap_height'>height()</a> are zero.
-Does not check if <a href='undocumented#SkPixelRef'>SkPixelRef</a> <a href='undocumented#SkPixelRef'>is</a> <a href='undocumented#SkPixelRef'>nullptr</a>; <a href='undocumented#SkPixelRef'>call</a> <a href='#SkBitmap_drawsNothing'>drawsNothing</a>() <a href='#SkBitmap_drawsNothing'>to</a> <a href='#SkBitmap_drawsNothing'>check</a> <a href='#SkBitmap_width'>width()</a>,
-<a href='#SkBitmap_height'>height()</a>, <a href='#SkBitmap_height'>and</a> <a href='undocumented#SkPixelRef'>SkPixelRef</a>.
+Does not check if <a href='undocumented#SkPixelRef'>SkPixelRef</a> is nullptr; call <a href='#SkBitmap_drawsNothing'>drawsNothing</a>() to check <a href='#SkBitmap_width'>width()</a>,
+<a href='#SkBitmap_height'>height()</a>, and <a href='undocumented#SkPixelRef'>SkPixelRef</a>.
### Return Value
@@ -921,17 +921,17 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-bool <a href='#SkBitmap_isNull'>isNull</a>() <a href='#SkBitmap_isNull'>const</a>
+bool <a href='#SkBitmap_isNull'>isNull</a>() const
</pre>
-Returns true if <a href='undocumented#SkPixelRef'>SkPixelRef</a> <a href='undocumented#SkPixelRef'>is</a> <a href='undocumented#SkPixelRef'>nullptr</a>.
+Returns true if <a href='undocumented#SkPixelRef'>SkPixelRef</a> is nullptr.
-Does not check if <a href='#SkBitmap_width'>width()</a> <a href='#SkBitmap_width'>or</a> <a href='#SkBitmap_height'>height()</a> <a href='#SkBitmap_height'>are</a> <a href='#SkBitmap_height'>zero</a>; <a href='#SkBitmap_height'>call</a> <a href='#SkBitmap_drawsNothing'>drawsNothing</a>() <a href='#SkBitmap_drawsNothing'>to</a> <a href='#SkBitmap_drawsNothing'>check</a>
-<a href='#SkBitmap_width'>width()</a>, <a href='#SkBitmap_height'>height()</a>, <a href='#SkBitmap_height'>and</a> <a href='undocumented#SkPixelRef'>SkPixelRef</a>.
+Does not check if <a href='#SkBitmap_width'>width()</a> or <a href='#SkBitmap_height'>height()</a> are zero; call <a href='#SkBitmap_drawsNothing'>drawsNothing</a>() to check
+<a href='#SkBitmap_width'>width()</a>, <a href='#SkBitmap_height'>height()</a>, and <a href='undocumented#SkPixelRef'>SkPixelRef</a>.
### Return Value
-true if no <a href='undocumented#SkPixelRef'>SkPixelRef</a> <a href='undocumented#SkPixelRef'>is</a> <a href='undocumented#SkPixelRef'>associated</a>
+true if no <a href='undocumented#SkPixelRef'>SkPixelRef</a> is associated
### Example
@@ -956,11 +956,11 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-bool <a href='#SkBitmap_drawsNothing'>drawsNothing</a>() <a href='#SkBitmap_drawsNothing'>const</a>
+bool <a href='#SkBitmap_drawsNothing'>drawsNothing</a>() const
</pre>
-Returns true if <a href='#SkBitmap_width'>width()</a> <a href='#SkBitmap_width'>or</a> <a href='#SkBitmap_height'>height()</a> <a href='#SkBitmap_height'>are</a> <a href='#SkBitmap_height'>zero</a>, <a href='#SkBitmap_height'>or</a> <a href='#SkBitmap_height'>if</a> <a href='undocumented#SkPixelRef'>SkPixelRef</a> <a href='undocumented#SkPixelRef'>is</a> <a href='undocumented#SkPixelRef'>nullptr</a>.
-If true, <a href='SkBitmap_Reference#SkBitmap'>SkBitmap</a> <a href='SkBitmap_Reference#SkBitmap'>has</a> <a href='SkBitmap_Reference#SkBitmap'>no</a> <a href='SkBitmap_Reference#SkBitmap'>effect</a> <a href='SkBitmap_Reference#SkBitmap'>when</a> <a href='SkBitmap_Reference#SkBitmap'>drawn</a> <a href='SkBitmap_Reference#SkBitmap'>or</a> <a href='SkBitmap_Reference#SkBitmap'>drawn</a> <a href='SkBitmap_Reference#SkBitmap'>into</a>.
+Returns true if <a href='#SkBitmap_width'>width()</a> or <a href='#SkBitmap_height'>height()</a> are zero, or if <a href='undocumented#SkPixelRef'>SkPixelRef</a> is nullptr.
+If true, <a href='SkBitmap_Reference#SkBitmap'>SkBitmap</a> has no effect when drawn or drawn into.
### Return Value
@@ -990,18 +990,18 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-size_t <a href='#SkBitmap_rowBytes'>rowBytes</a>() <a href='#SkBitmap_rowBytes'>const</a>
+size_t <a href='#SkBitmap_rowBytes'>rowBytes</a>() const
</pre>
-Returns row bytes, the interval from one <a href='undocumented#Pixel'>pixel</a> <a href='undocumented#Pixel'>row</a> <a href='undocumented#Pixel'>to</a> <a href='undocumented#Pixel'>the</a> <a href='undocumented#Pixel'>next</a>. <a href='undocumented#Pixel'>Row</a> <a href='undocumented#Pixel'>bytes</a>
-<a href='undocumented#Pixel'>is</a> <a href='undocumented#Pixel'>at</a> <a href='undocumented#Pixel'>least</a> <a href='undocumented#Pixel'>as</a> <a href='undocumented#Pixel'>large</a> <a href='undocumented#Pixel'>as</a>: <code><a href='#SkBitmap_width'>width()</a> * <a href='#SkBitmap_info'>info()</a>.<a href='#SkImageInfo_bytesPerPixel'>bytesPerPixel</a>()</code>.
+Returns row bytes, the interval from one <a href='undocumented#Pixel'>pixel</a> row to the next. Row bytes
+is at least as large as: <code><a href='#SkBitmap_width'>width()</a> * <a href='#SkBitmap_info'>info()</a>.<a href='#SkImageInfo_bytesPerPixel'>bytesPerPixel</a>()</code>.
-Returns zero if <a href='#SkBitmap_colorType'>colorType</a> <a href='#SkBitmap_colorType'>is</a> <a href='SkImageInfo_Reference#kUnknown_SkColorType'>kUnknown_SkColorType</a>, <a href='SkImageInfo_Reference#kUnknown_SkColorType'>or</a> <a href='SkImageInfo_Reference#kUnknown_SkColorType'>if</a> <a href='SkImageInfo_Reference#kUnknown_SkColorType'>row</a> <a href='SkImageInfo_Reference#kUnknown_SkColorType'>bytes</a> <a href='SkImageInfo_Reference#kUnknown_SkColorType'>supplied</a> <a href='SkImageInfo_Reference#kUnknown_SkColorType'>to</a>
-<a href='#SkBitmap_setInfo'>setInfo</a> <a href='#SkBitmap_setInfo'>is</a> <a href='#SkBitmap_setInfo'>not</a> <a href='#SkBitmap_setInfo'>large</a> <a href='#SkBitmap_setInfo'>enough</a> <a href='#SkBitmap_setInfo'>to</a> <a href='#SkBitmap_setInfo'>hold</a> <a href='#SkBitmap_setInfo'>a</a> <a href='#SkBitmap_setInfo'>row</a> <a href='#SkBitmap_setInfo'>of</a> <a href='#SkBitmap_setInfo'>pixels</a>.
+Returns zero if <a href='#SkBitmap_colorType'>colorType</a> is <a href='SkImageInfo_Reference#kUnknown_SkColorType'>kUnknown_SkColorType</a>, or if row bytes supplied to
+<a href='#SkBitmap_setInfo'>setInfo</a> is not large enough to hold a row of pixels.
### Return Value
-byte length of <a href='undocumented#Pixel'>pixel</a> <a href='undocumented#Pixel'>row</a>
+byte length of <a href='undocumented#Pixel'>pixel</a> row
### Example
@@ -1028,27 +1028,27 @@
bool <a href='#SkBitmap_setAlphaType'>setAlphaType</a>(<a href='SkImageInfo_Reference#SkAlphaType'>SkAlphaType</a> <a href='#SkBitmap_alphaType'>alphaType</a>)
</pre>
-Sets <a href='SkImageInfo_Reference#SkAlphaType'>SkAlphaType</a>, <a href='SkImageInfo_Reference#SkAlphaType'>if</a> <a href='#SkBitmap_setAlphaType_alphaType'>alphaType</a> <a href='#SkBitmap_setAlphaType_alphaType'>is</a> <a href='#SkBitmap_setAlphaType_alphaType'>compatible</a> <a href='#SkBitmap_setAlphaType_alphaType'>with</a> <a href='SkImageInfo_Reference#SkColorType'>SkColorType</a>.
-Returns true unless <a href='#SkBitmap_setAlphaType_alphaType'>alphaType</a> <a href='#SkBitmap_setAlphaType_alphaType'>is</a> <a href='SkImageInfo_Reference#kUnknown_SkAlphaType'>kUnknown_SkAlphaType</a> <a href='SkImageInfo_Reference#kUnknown_SkAlphaType'>and</a> <a href='SkImageInfo_Reference#kUnknown_SkAlphaType'>current</a> <a href='SkImageInfo_Reference#SkAlphaType'>SkAlphaType</a>
+Sets <a href='SkImageInfo_Reference#SkAlphaType'>SkAlphaType</a>, if <a href='#SkBitmap_setAlphaType_alphaType'>alphaType</a> is compatible with <a href='SkImageInfo_Reference#SkColorType'>SkColorType</a>.
+Returns true unless <a href='#SkBitmap_setAlphaType_alphaType'>alphaType</a> is <a href='SkImageInfo_Reference#kUnknown_SkAlphaType'>kUnknown_SkAlphaType</a> and current <a href='SkImageInfo_Reference#SkAlphaType'>SkAlphaType</a>
is not <a href='SkImageInfo_Reference#kUnknown_SkAlphaType'>kUnknown_SkAlphaType</a>.
-Returns true if <a href='SkImageInfo_Reference#SkColorType'>SkColorType</a> <a href='SkImageInfo_Reference#SkColorType'>is</a> <a href='SkImageInfo_Reference#kUnknown_SkColorType'>kUnknown_SkColorType</a>. <a href='#SkBitmap_setAlphaType_alphaType'>alphaType</a> <a href='#SkBitmap_setAlphaType_alphaType'>is</a> <a href='#SkBitmap_setAlphaType_alphaType'>ignored</a>, <a href='#SkBitmap_setAlphaType_alphaType'>and</a>
-<a href='SkImageInfo_Reference#SkAlphaType'>SkAlphaType</a> <a href='SkImageInfo_Reference#SkAlphaType'>remains</a> <a href='SkImageInfo_Reference#kUnknown_SkAlphaType'>kUnknown_SkAlphaType</a>.
+Returns true if <a href='SkImageInfo_Reference#SkColorType'>SkColorType</a> is <a href='SkImageInfo_Reference#kUnknown_SkColorType'>kUnknown_SkColorType</a>. <a href='#SkBitmap_setAlphaType_alphaType'>alphaType</a> is ignored, and
+<a href='SkImageInfo_Reference#SkAlphaType'>SkAlphaType</a> remains <a href='SkImageInfo_Reference#kUnknown_SkAlphaType'>kUnknown_SkAlphaType</a>.
-Returns true if <a href='SkImageInfo_Reference#SkColorType'>SkColorType</a> <a href='SkImageInfo_Reference#SkColorType'>is</a> <a href='SkImageInfo_Reference#kRGB_565_SkColorType'>kRGB_565_SkColorType</a> <a href='SkImageInfo_Reference#kRGB_565_SkColorType'>or</a> <a href='SkImageInfo_Reference#kGray_8_SkColorType'>kGray_8_SkColorType</a>.
-<a href='#SkBitmap_setAlphaType_alphaType'>alphaType</a> <a href='#SkBitmap_setAlphaType_alphaType'>is</a> <a href='#SkBitmap_setAlphaType_alphaType'>ignored</a>, <a href='#SkBitmap_setAlphaType_alphaType'>and</a> <a href='SkImageInfo_Reference#SkAlphaType'>SkAlphaType</a> <a href='SkImageInfo_Reference#SkAlphaType'>remains</a> <a href='SkImageInfo_Reference#kOpaque_SkAlphaType'>kOpaque_SkAlphaType</a>.
+Returns true if <a href='SkImageInfo_Reference#SkColorType'>SkColorType</a> is <a href='SkImageInfo_Reference#kRGB_565_SkColorType'>kRGB_565_SkColorType</a> or <a href='SkImageInfo_Reference#kGray_8_SkColorType'>kGray_8_SkColorType</a>.
+<a href='#SkBitmap_setAlphaType_alphaType'>alphaType</a> is ignored, and <a href='SkImageInfo_Reference#SkAlphaType'>SkAlphaType</a> remains <a href='SkImageInfo_Reference#kOpaque_SkAlphaType'>kOpaque_SkAlphaType</a>.
-If <a href='SkImageInfo_Reference#SkColorType'>SkColorType</a> <a href='SkImageInfo_Reference#SkColorType'>is</a> <a href='SkImageInfo_Reference#kARGB_4444_SkColorType'>kARGB_4444_SkColorType</a>, <a href='SkImageInfo_Reference#kRGBA_8888_SkColorType'>kRGBA_8888_SkColorType</a>,
-<a href='SkImageInfo_Reference#kBGRA_8888_SkColorType'>kBGRA_8888_SkColorType</a>, <a href='SkImageInfo_Reference#kBGRA_8888_SkColorType'>or</a> <a href='SkImageInfo_Reference#kRGBA_F16_SkColorType'>kRGBA_F16_SkColorType</a>: <a href='SkImageInfo_Reference#kRGBA_F16_SkColorType'>returns</a> <a href='SkImageInfo_Reference#kRGBA_F16_SkColorType'>true</a> <a href='SkImageInfo_Reference#kRGBA_F16_SkColorType'>unless</a>
-<a href='#SkBitmap_setAlphaType_alphaType'>alphaType</a> <a href='#SkBitmap_setAlphaType_alphaType'>is</a> <a href='SkImageInfo_Reference#kUnknown_SkAlphaType'>kUnknown_SkAlphaType</a> <a href='SkImageInfo_Reference#kUnknown_SkAlphaType'>and</a> <a href='SkImageInfo_Reference#SkAlphaType'>SkAlphaType</a> <a href='SkImageInfo_Reference#SkAlphaType'>is</a> <a href='SkImageInfo_Reference#SkAlphaType'>not</a> <a href='SkImageInfo_Reference#kUnknown_SkAlphaType'>kUnknown_SkAlphaType</a>.
-If <a href='SkImageInfo_Reference#SkAlphaType'>SkAlphaType</a> <a href='SkImageInfo_Reference#SkAlphaType'>is</a> <a href='SkImageInfo_Reference#kUnknown_SkAlphaType'>kUnknown_SkAlphaType</a>, <a href='#SkBitmap_setAlphaType_alphaType'>alphaType</a> <a href='#SkBitmap_setAlphaType_alphaType'>is</a> <a href='#SkBitmap_setAlphaType_alphaType'>ignored</a>.
+If <a href='SkImageInfo_Reference#SkColorType'>SkColorType</a> is <a href='SkImageInfo_Reference#kARGB_4444_SkColorType'>kARGB_4444_SkColorType</a>, <a href='SkImageInfo_Reference#kRGBA_8888_SkColorType'>kRGBA_8888_SkColorType</a>,
+<a href='SkImageInfo_Reference#kBGRA_8888_SkColorType'>kBGRA_8888_SkColorType</a>, or <a href='SkImageInfo_Reference#kRGBA_F16_SkColorType'>kRGBA_F16_SkColorType</a>: returns true unless
+<a href='#SkBitmap_setAlphaType_alphaType'>alphaType</a> is <a href='SkImageInfo_Reference#kUnknown_SkAlphaType'>kUnknown_SkAlphaType</a> and <a href='SkImageInfo_Reference#SkAlphaType'>SkAlphaType</a> is not <a href='SkImageInfo_Reference#kUnknown_SkAlphaType'>kUnknown_SkAlphaType</a>.
+If <a href='SkImageInfo_Reference#SkAlphaType'>SkAlphaType</a> is <a href='SkImageInfo_Reference#kUnknown_SkAlphaType'>kUnknown_SkAlphaType</a>, <a href='#SkBitmap_setAlphaType_alphaType'>alphaType</a> is ignored.
-If <a href='SkImageInfo_Reference#SkColorType'>SkColorType</a> <a href='SkImageInfo_Reference#SkColorType'>is</a> <a href='SkImageInfo_Reference#kAlpha_8_SkColorType'>kAlpha_8_SkColorType</a>, <a href='SkImageInfo_Reference#kAlpha_8_SkColorType'>returns</a> <a href='SkImageInfo_Reference#kAlpha_8_SkColorType'>true</a> <a href='SkImageInfo_Reference#kAlpha_8_SkColorType'>unless</a>
-<a href='#SkBitmap_setAlphaType_alphaType'>alphaType</a> <a href='#SkBitmap_setAlphaType_alphaType'>is</a> <a href='SkImageInfo_Reference#kUnknown_SkAlphaType'>kUnknown_SkAlphaType</a> <a href='SkImageInfo_Reference#kUnknown_SkAlphaType'>and</a> <a href='SkImageInfo_Reference#SkAlphaType'>SkAlphaType</a> <a href='SkImageInfo_Reference#SkAlphaType'>is</a> <a href='SkImageInfo_Reference#SkAlphaType'>not</a> <a href='SkImageInfo_Reference#kUnknown_SkAlphaType'>kUnknown_SkAlphaType</a>.
-If <a href='SkImageInfo_Reference#SkAlphaType'>SkAlphaType</a> <a href='SkImageInfo_Reference#SkAlphaType'>is</a> <a href='SkImageInfo_Reference#kUnknown_SkAlphaType'>kUnknown_SkAlphaType</a>, <a href='#SkBitmap_setAlphaType_alphaType'>alphaType</a> <a href='#SkBitmap_setAlphaType_alphaType'>is</a> <a href='#SkBitmap_setAlphaType_alphaType'>ignored</a>. <a href='#SkBitmap_setAlphaType_alphaType'>If</a> <a href='#SkBitmap_setAlphaType_alphaType'>alphaType</a> <a href='#SkBitmap_setAlphaType_alphaType'>is</a>
-<a href='SkImageInfo_Reference#kUnpremul_SkAlphaType'>kUnpremul_SkAlphaType</a>, <a href='SkImageInfo_Reference#kUnpremul_SkAlphaType'>it</a> <a href='SkImageInfo_Reference#kUnpremul_SkAlphaType'>is</a> <a href='SkImageInfo_Reference#kUnpremul_SkAlphaType'>treated</a> <a href='SkImageInfo_Reference#kUnpremul_SkAlphaType'>as</a> <a href='SkImageInfo_Reference#kPremul_SkAlphaType'>kPremul_SkAlphaType</a>.
+If <a href='SkImageInfo_Reference#SkColorType'>SkColorType</a> is <a href='SkImageInfo_Reference#kAlpha_8_SkColorType'>kAlpha_8_SkColorType</a>, returns true unless
+<a href='#SkBitmap_setAlphaType_alphaType'>alphaType</a> is <a href='SkImageInfo_Reference#kUnknown_SkAlphaType'>kUnknown_SkAlphaType</a> and <a href='SkImageInfo_Reference#SkAlphaType'>SkAlphaType</a> is not <a href='SkImageInfo_Reference#kUnknown_SkAlphaType'>kUnknown_SkAlphaType</a>.
+If <a href='SkImageInfo_Reference#SkAlphaType'>SkAlphaType</a> is <a href='SkImageInfo_Reference#kUnknown_SkAlphaType'>kUnknown_SkAlphaType</a>, <a href='#SkBitmap_setAlphaType_alphaType'>alphaType</a> is ignored. If <a href='#SkBitmap_setAlphaType_alphaType'>alphaType</a> is
+<a href='SkImageInfo_Reference#kUnpremul_SkAlphaType'>kUnpremul_SkAlphaType</a>, it is treated as <a href='SkImageInfo_Reference#kPremul_SkAlphaType'>kPremul_SkAlphaType</a>.
-This changes <a href='SkImageInfo_Reference#SkAlphaType'>SkAlphaType</a> <a href='SkImageInfo_Reference#SkAlphaType'>in</a> <a href='undocumented#SkPixelRef'>SkPixelRef</a>; <a href='undocumented#SkPixelRef'>all</a> <a href='SkBitmap_Reference#Bitmap'>bitmaps</a> <a href='SkBitmap_Reference#Bitmap'>sharing</a> <a href='undocumented#SkPixelRef'>SkPixelRef</a>
+This changes <a href='SkImageInfo_Reference#SkAlphaType'>SkAlphaType</a> in <a href='undocumented#SkPixelRef'>SkPixelRef</a>; all <a href='SkBitmap_Reference#Bitmap'>bitmaps</a> sharing <a href='undocumented#SkPixelRef'>SkPixelRef</a>
are affected.
### Parameters
@@ -1063,7 +1063,7 @@
### Return Value
-true if <a href='SkImageInfo_Reference#SkAlphaType'>SkAlphaType</a> <a href='SkImageInfo_Reference#SkAlphaType'>is</a> <a href='SkImageInfo_Reference#SkAlphaType'>set</a>
+true if <a href='SkImageInfo_Reference#SkAlphaType'>SkAlphaType</a> is set
### Example
@@ -1084,14 +1084,14 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-void* <a href='#SkBitmap_getPixels'>getPixels</a>() <a href='#SkBitmap_getPixels'>const</a>
+void* <a href='#SkBitmap_getPixels'>getPixels</a>() const
</pre>
-Returns <a href='undocumented#Pixel'>pixel</a> <a href='undocumented#Pixel'>address</a>, <a href='undocumented#Pixel'>the</a> <a href='undocumented#Pixel'>base</a> <a href='undocumented#Pixel'>address</a> <a href='undocumented#Pixel'>corresponding</a> <a href='undocumented#Pixel'>to</a> <a href='undocumented#Pixel'>the</a> <a href='undocumented#Pixel'>pixel</a> <a href='undocumented#Pixel'>origin</a>.
+Returns <a href='undocumented#Pixel'>pixel</a> address, the base address corresponding to the <a href='undocumented#Pixel'>pixel</a> origin.
### Return Value
-<a href='undocumented#Pixel'>pixel</a> <a href='undocumented#Pixel'>address</a>
+<a href='undocumented#Pixel'>pixel</a> address
### Example
@@ -1115,18 +1115,18 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-size_t <a href='#SkBitmap_computeByteSize'>computeByteSize</a>() <a href='#SkBitmap_computeByteSize'>const</a>
+size_t <a href='#SkBitmap_computeByteSize'>computeByteSize</a>() const
</pre>
-Returns minimum memory required for <a href='undocumented#Pixel'>pixel</a> <a href='undocumented#Pixel'>storage</a>.
-Does not include unused memory on last row when <a href='#SkBitmap_rowBytesAsPixels'>rowBytesAsPixels</a>() <a href='#SkBitmap_rowBytesAsPixels'>exceeds</a> <a href='#SkBitmap_width'>width()</a>.
+Returns minimum memory required for <a href='undocumented#Pixel'>pixel</a> storage.
+Does not include unused memory on last row when <a href='#SkBitmap_rowBytesAsPixels'>rowBytesAsPixels</a>() exceeds <a href='#SkBitmap_width'>width()</a>.
Returns zero if result does not fit in size_t.
-Returns zero if <a href='#SkBitmap_height'>height()</a> <a href='#SkBitmap_height'>or</a> <a href='#SkBitmap_width'>width()</a> <a href='#SkBitmap_width'>is</a> 0.
-Returns <a href='#SkBitmap_height'>height()</a> <a href='#SkBitmap_height'>times</a> <a href='#SkBitmap_rowBytes'>rowBytes</a>() <a href='#SkBitmap_rowBytes'>if</a> <a href='#SkBitmap_colorType'>colorType</a>() <a href='#SkBitmap_colorType'>is</a> <a href='SkImageInfo_Reference#kUnknown_SkColorType'>kUnknown_SkColorType</a>.
+Returns zero if <a href='#SkBitmap_height'>height()</a> or <a href='#SkBitmap_width'>width()</a> is 0.
+Returns <a href='#SkBitmap_height'>height()</a> times <a href='#SkBitmap_rowBytes'>rowBytes</a>() if <a href='#SkBitmap_colorType'>colorType</a>() is <a href='SkImageInfo_Reference#kUnknown_SkColorType'>kUnknown_SkColorType</a>.
### Return Value
-<a href='undocumented#Size'>size</a> <a href='undocumented#Size'>in</a> <a href='undocumented#Size'>bytes</a> <a href='undocumented#Size'>of</a> <a href='SkImage_Reference#Image'>image</a> <a href='SkImage_Reference#Image'>buffer</a>
+<a href='undocumented#Size'>size</a> in bytes of <a href='SkImage_Reference#Image'>image</a> buffer
### Example
@@ -1157,12 +1157,12 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-bool <a href='#SkBitmap_isImmutable'>isImmutable</a>() <a href='#SkBitmap_isImmutable'>const</a>
+bool <a href='#SkBitmap_isImmutable'>isImmutable</a>() const
</pre>
Returns true if pixels can not change.
-Most immutable <a href='SkBitmap_Reference#SkBitmap'>SkBitmap</a> <a href='SkBitmap_Reference#SkBitmap'>checks</a> <a href='SkBitmap_Reference#SkBitmap'>trigger</a> <a href='SkBitmap_Reference#SkBitmap'>an</a> <a href='SkBitmap_Reference#SkBitmap'>assert</a> <a href='SkBitmap_Reference#SkBitmap'>only</a> <a href='SkBitmap_Reference#SkBitmap'>on</a> <a href='SkBitmap_Reference#SkBitmap'>debug</a> <a href='SkBitmap_Reference#SkBitmap'>builds</a>.
+Most immutable <a href='SkBitmap_Reference#SkBitmap'>SkBitmap</a> checks trigger an assert only on debug builds.
### Return Value
@@ -1193,11 +1193,11 @@
void <a href='#SkBitmap_setImmutable'>setImmutable</a>()
</pre>
-Sets internal flag to mark <a href='SkBitmap_Reference#SkBitmap'>SkBitmap</a> <a href='SkBitmap_Reference#SkBitmap'>as</a> <a href='SkBitmap_Reference#SkBitmap'>immutable</a>. <a href='SkBitmap_Reference#SkBitmap'>Once</a> <a href='SkBitmap_Reference#SkBitmap'>set</a>, <a href='SkBitmap_Reference#SkBitmap'>pixels</a> <a href='SkBitmap_Reference#SkBitmap'>can</a> <a href='SkBitmap_Reference#SkBitmap'>not</a> <a href='SkBitmap_Reference#SkBitmap'>change</a>.
-Any other <a href='SkBitmap_Reference#Bitmap'>bitmap</a> <a href='SkBitmap_Reference#Bitmap'>sharing</a> <a href='SkBitmap_Reference#Bitmap'>the</a> <a href='SkBitmap_Reference#Bitmap'>same</a> <a href='undocumented#SkPixelRef'>SkPixelRef</a> <a href='undocumented#SkPixelRef'>are</a> <a href='undocumented#SkPixelRef'>also</a> <a href='undocumented#SkPixelRef'>marked</a> <a href='undocumented#SkPixelRef'>as</a> <a href='undocumented#SkPixelRef'>immutable</a>.
-Once <a href='undocumented#SkPixelRef'>SkPixelRef</a> <a href='undocumented#SkPixelRef'>is</a> <a href='undocumented#SkPixelRef'>marked</a> <a href='undocumented#SkPixelRef'>immutable</a>, <a href='undocumented#SkPixelRef'>the</a> <a href='undocumented#SkPixelRef'>setting</a> <a href='undocumented#SkPixelRef'>cannot</a> <a href='undocumented#SkPixelRef'>be</a> <a href='undocumented#SkPixelRef'>cleared</a>.
+Sets internal flag to mark <a href='SkBitmap_Reference#SkBitmap'>SkBitmap</a> as immutable. Once set, pixels can not change.
+Any other <a href='SkBitmap_Reference#Bitmap'>bitmap</a> sharing the same <a href='undocumented#SkPixelRef'>SkPixelRef</a> are also marked as immutable.
+Once <a href='undocumented#SkPixelRef'>SkPixelRef</a> is marked immutable, the setting cannot be cleared.
-Writing to immutable <a href='SkBitmap_Reference#SkBitmap'>SkBitmap</a> <a href='SkBitmap_Reference#SkBitmap'>pixels</a> <a href='SkBitmap_Reference#SkBitmap'>triggers</a> <a href='SkBitmap_Reference#SkBitmap'>an</a> <a href='SkBitmap_Reference#SkBitmap'>assert</a> <a href='SkBitmap_Reference#SkBitmap'>on</a> <a href='SkBitmap_Reference#SkBitmap'>debug</a> <a href='SkBitmap_Reference#SkBitmap'>builds</a>.
+Writing to immutable <a href='SkBitmap_Reference#SkBitmap'>SkBitmap</a> pixels triggers an assert on debug builds.
### Example
@@ -1213,23 +1213,23 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-bool <a href='#SkBitmap_isOpaque'>isOpaque</a>() <a href='#SkBitmap_isOpaque'>const</a>
+bool <a href='#SkBitmap_isOpaque'>isOpaque</a>() const
</pre>
-Returns true if <a href='SkImageInfo_Reference#SkAlphaType'>SkAlphaType</a> <a href='SkImageInfo_Reference#SkAlphaType'>is</a> <a href='SkImageInfo_Reference#SkAlphaType'>set</a> <a href='SkImageInfo_Reference#SkAlphaType'>to</a> <a href='SkImageInfo_Reference#SkAlphaType'>hint</a> <a href='SkImageInfo_Reference#SkAlphaType'>that</a> <a href='SkImageInfo_Reference#SkAlphaType'>all</a> <a href='SkImageInfo_Reference#SkAlphaType'>pixels</a> <a href='SkImageInfo_Reference#SkAlphaType'>are</a> <a href='SkImageInfo_Reference#SkAlphaType'>opaque</a>; <a href='SkImageInfo_Reference#SkAlphaType'>their</a>
-<a href='SkColor_Reference#Alpha'>alpha</a> <a href='SkColor_Reference#Alpha'>value</a> <a href='SkColor_Reference#Alpha'>is</a> <a href='SkColor_Reference#Alpha'>implicitly</a> <a href='SkColor_Reference#Alpha'>or</a> <a href='SkColor_Reference#Alpha'>explicitly</a> 1.0. <a href='SkColor_Reference#Alpha'>If</a> <a href='SkColor_Reference#Alpha'>true</a>, <a href='SkColor_Reference#Alpha'>and</a> <a href='SkColor_Reference#Alpha'>all</a> <a href='SkColor_Reference#Alpha'>pixels</a> <a href='SkColor_Reference#Alpha'>are</a>
+Returns true if <a href='SkImageInfo_Reference#SkAlphaType'>SkAlphaType</a> is set to hint that all pixels are opaque; their
+<a href='SkColor_Reference#Alpha'>alpha</a> value is implicitly or explicitly 1.0. If true, and all pixels are
not opaque, Skia may draw incorrectly.
-Does not check if <a href='SkImageInfo_Reference#SkColorType'>SkColorType</a> <a href='SkImageInfo_Reference#SkColorType'>allows</a> <a href='SkColor_Reference#Alpha'>alpha</a>, <a href='SkColor_Reference#Alpha'>or</a> <a href='SkColor_Reference#Alpha'>if</a> <a href='SkColor_Reference#Alpha'>any</a> <a href='undocumented#Pixel'>pixel</a> <a href='undocumented#Pixel'>value</a> <a href='undocumented#Pixel'>has</a>
+Does not check if <a href='SkImageInfo_Reference#SkColorType'>SkColorType</a> allows <a href='SkColor_Reference#Alpha'>alpha</a>, or if any <a href='undocumented#Pixel'>pixel</a> value has
transparency.
### Return Value
-true if <a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a> <a href='SkImageInfo_Reference#SkAlphaType'>SkAlphaType</a> <a href='SkImageInfo_Reference#SkAlphaType'>is</a> <a href='SkImageInfo_Reference#kOpaque_SkAlphaType'>kOpaque_SkAlphaType</a>
+true if <a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a> <a href='SkImageInfo_Reference#SkAlphaType'>SkAlphaType</a> is <a href='SkImageInfo_Reference#kOpaque_SkAlphaType'>kOpaque_SkAlphaType</a>
### Example
-<div><fiddle-embed name="5e76b68bb46d54315eb0c12d83bd6949"><div><a href='#SkBitmap_isOpaque'>isOpaque</a> <a href='#SkBitmap_isOpaque'>ignores</a> <a href='#SkBitmap_isOpaque'>whether</a> <a href='#SkBitmap_isOpaque'>all</a> <a href='#SkBitmap_isOpaque'>pixels</a> <a href='#SkBitmap_isOpaque'>are</a> <a href='#SkBitmap_isOpaque'>opaque</a> <a href='#SkBitmap_isOpaque'>or</a> <a href='#SkBitmap_isOpaque'>not</a>.
+<div><fiddle-embed name="5e76b68bb46d54315eb0c12d83bd6949"><div><a href='#SkBitmap_isOpaque'>isOpaque</a> ignores whether all pixels are opaque or not.
</div>
#### Example Output
@@ -1252,13 +1252,13 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-bool <a href='#SkBitmap_isVolatile'>isVolatile</a>() <a href='#SkBitmap_isVolatile'>const</a>
+bool <a href='#SkBitmap_isVolatile'>isVolatile</a>() const
</pre>
Provides a hint to caller that pixels should not be cached. Only true if
-<a href='#SkBitmap_setIsVolatile'>setIsVolatile</a>() <a href='#SkBitmap_setIsVolatile'>has</a> <a href='#SkBitmap_setIsVolatile'>been</a> <a href='#SkBitmap_setIsVolatile'>called</a> <a href='#SkBitmap_setIsVolatile'>to</a> <a href='#SkBitmap_setIsVolatile'>mark</a> <a href='#SkBitmap_setIsVolatile'>as</a> <a href='#SkBitmap_setIsVolatile'>volatile</a>.
+<a href='#SkBitmap_setIsVolatile'>setIsVolatile</a>() has been called to mark as volatile.
-Volatile state is not shared by other <a href='SkBitmap_Reference#Bitmap'>bitmaps</a> <a href='SkBitmap_Reference#Bitmap'>sharing</a> <a href='SkBitmap_Reference#Bitmap'>the</a> <a href='SkBitmap_Reference#Bitmap'>same</a> <a href='undocumented#SkPixelRef'>SkPixelRef</a>.
+Volatile state is not shared by other <a href='SkBitmap_Reference#Bitmap'>bitmaps</a> sharing the same <a href='undocumented#SkPixelRef'>SkPixelRef</a>.
### Return Value
@@ -1286,13 +1286,13 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-void <a href='#SkBitmap_setIsVolatile'>setIsVolatile</a>(<a href='#SkBitmap_setIsVolatile'>bool</a> <a href='#SkBitmap_isVolatile'>isVolatile</a>)
+void <a href='#SkBitmap_setIsVolatile'>setIsVolatile</a>(bool <a href='#SkBitmap_isVolatile'>isVolatile</a>)
</pre>
-Sets if pixels should be read from <a href='undocumented#SkPixelRef'>SkPixelRef</a> <a href='undocumented#SkPixelRef'>on</a> <a href='undocumented#SkPixelRef'>every</a> <a href='undocumented#SkPixelRef'>access</a>. <a href='SkBitmap_Reference#SkBitmap'>SkBitmap</a> <a href='SkBitmap_Reference#SkBitmap'>are</a> <a href='SkBitmap_Reference#SkBitmap'>not</a>
-volatile by default; a GPU back end may upload <a href='undocumented#Pixel'>pixel</a> <a href='undocumented#Pixel'>values</a> <a href='undocumented#Pixel'>expecting</a> <a href='undocumented#Pixel'>them</a> <a href='undocumented#Pixel'>to</a> <a href='undocumented#Pixel'>be</a>
-accessed repeatedly. Marking temporary <a href='SkBitmap_Reference#SkBitmap'>SkBitmap</a> <a href='SkBitmap_Reference#SkBitmap'>as</a> <a href='SkBitmap_Reference#SkBitmap'>volatile</a> <a href='SkBitmap_Reference#SkBitmap'>provides</a> <a href='SkBitmap_Reference#SkBitmap'>a</a> <a href='SkBitmap_Reference#SkBitmap'>hint</a> <a href='SkBitmap_Reference#SkBitmap'>to</a>
-<a href='undocumented#SkBaseDevice'>SkBaseDevice</a> <a href='undocumented#SkBaseDevice'>that</a> <a href='undocumented#SkBaseDevice'>the</a> <a href='SkBitmap_Reference#SkBitmap'>SkBitmap</a> <a href='SkBitmap_Reference#SkBitmap'>pixels</a> <a href='SkBitmap_Reference#SkBitmap'>should</a> <a href='SkBitmap_Reference#SkBitmap'>not</a> <a href='SkBitmap_Reference#SkBitmap'>be</a> <a href='SkBitmap_Reference#SkBitmap'>cached</a>. <a href='SkBitmap_Reference#SkBitmap'>This</a> <a href='SkBitmap_Reference#SkBitmap'>can</a>
+Sets if pixels should be read from <a href='undocumented#SkPixelRef'>SkPixelRef</a> on every access. <a href='SkBitmap_Reference#SkBitmap'>SkBitmap</a> are not
+volatile by default; a GPU back end may upload <a href='undocumented#Pixel'>pixel</a> values expecting them to be
+accessed repeatedly. Marking temporary <a href='SkBitmap_Reference#SkBitmap'>SkBitmap</a> as volatile provides a hint to
+<a href='undocumented#SkBaseDevice'>SkBaseDevice</a> that the <a href='SkBitmap_Reference#SkBitmap'>SkBitmap</a> pixels should not be cached. This can
improve performance by avoiding overhead and reducing resource
consumption on <a href='undocumented#SkBaseDevice'>SkBaseDevice</a>.
@@ -1319,14 +1319,14 @@
void <a href='#SkBitmap_reset'>reset()</a>
</pre>
-Resets to its initial state; all fields are set to zero, as if <a href='SkBitmap_Reference#SkBitmap'>SkBitmap</a> <a href='SkBitmap_Reference#SkBitmap'>had</a>
+Resets to its initial state; all fields are set to zero, as if <a href='SkBitmap_Reference#SkBitmap'>SkBitmap</a> had
been initialized by <a href='#SkBitmap_empty_constructor'>SkBitmap()</a>.
-Sets width, height, row bytes to zero; <a href='undocumented#Pixel'>pixel</a> <a href='undocumented#Pixel'>address</a> <a href='undocumented#Pixel'>to</a> <a href='undocumented#Pixel'>nullptr</a>; <a href='SkImageInfo_Reference#SkColorType'>SkColorType</a> <a href='SkImageInfo_Reference#SkColorType'>to</a>
-<a href='SkImageInfo_Reference#kUnknown_SkColorType'>kUnknown_SkColorType</a>; <a href='SkImageInfo_Reference#kUnknown_SkColorType'>and</a> <a href='SkImageInfo_Reference#SkAlphaType'>SkAlphaType</a> <a href='SkImageInfo_Reference#SkAlphaType'>to</a> <a href='SkImageInfo_Reference#kUnknown_SkAlphaType'>kUnknown_SkAlphaType</a>.
+Sets width, height, row bytes to zero; <a href='undocumented#Pixel'>pixel</a> address to nullptr; <a href='SkImageInfo_Reference#SkColorType'>SkColorType</a> to
+<a href='SkImageInfo_Reference#kUnknown_SkColorType'>kUnknown_SkColorType</a>; and <a href='SkImageInfo_Reference#SkAlphaType'>SkAlphaType</a> to <a href='SkImageInfo_Reference#kUnknown_SkAlphaType'>kUnknown_SkAlphaType</a>.
-If <a href='undocumented#SkPixelRef'>SkPixelRef</a> <a href='undocumented#SkPixelRef'>is</a> <a href='undocumented#SkPixelRef'>allocated</a>, <a href='undocumented#SkPixelRef'>its</a> <a href='undocumented#SkPixelRef'>reference</a> <a href='undocumented#SkPixelRef'>count</a> <a href='undocumented#SkPixelRef'>is</a> <a href='undocumented#SkPixelRef'>decreased</a> <a href='undocumented#SkPixelRef'>by</a> <a href='undocumented#SkPixelRef'>one</a>, <a href='undocumented#SkPixelRef'>releasing</a>
-its memory if <a href='SkBitmap_Reference#SkBitmap'>SkBitmap</a> <a href='SkBitmap_Reference#SkBitmap'>is</a> <a href='SkBitmap_Reference#SkBitmap'>the</a> <a href='SkBitmap_Reference#SkBitmap'>sole</a> <a href='SkBitmap_Reference#SkBitmap'>owner</a>.
+If <a href='undocumented#SkPixelRef'>SkPixelRef</a> is allocated, its reference count is decreased by one, releasing
+its memory if <a href='SkBitmap_Reference#SkBitmap'>SkBitmap</a> is the sole owner.
### Example
@@ -1350,19 +1350,19 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-static bool <a href='#SkBitmap_ComputeIsOpaque'>ComputeIsOpaque</a>(<a href='#SkBitmap_ComputeIsOpaque'>const</a> <a href='SkBitmap_Reference#SkBitmap'>SkBitmap</a>& <a href='SkBitmap_Reference#SkBitmap'>bm</a>)
+static bool <a href='#SkBitmap_ComputeIsOpaque'>ComputeIsOpaque</a>(const <a href='SkBitmap_Reference#SkBitmap'>SkBitmap</a>& bm)
</pre>
-Returns true if all pixels are opaque. <a href='SkImageInfo_Reference#SkColorType'>SkColorType</a> <a href='SkImageInfo_Reference#SkColorType'>determines</a> <a href='SkImageInfo_Reference#SkColorType'>how</a> <a href='SkImageInfo_Reference#SkColorType'>pixels</a>
-are encoded, and whether <a href='undocumented#Pixel'>pixel</a> <a href='undocumented#Pixel'>describes</a> <a href='SkColor_Reference#Alpha'>alpha</a>. <a href='SkColor_Reference#Alpha'>Returns</a> <a href='SkColor_Reference#Alpha'>true</a> <a href='SkColor_Reference#Alpha'>for</a> <a href='SkImageInfo_Reference#SkColorType'>SkColorType</a>
-without <a href='SkColor_Reference#Alpha'>alpha</a> <a href='SkColor_Reference#Alpha'>in</a> <a href='SkColor_Reference#Alpha'>each</a> <a href='undocumented#Pixel'>pixel</a>; <a href='undocumented#Pixel'>for</a> <a href='undocumented#Pixel'>other</a> <a href='SkImageInfo_Reference#SkColorType'>SkColorType</a>, <a href='SkImageInfo_Reference#SkColorType'>returns</a> <a href='SkImageInfo_Reference#SkColorType'>true</a> <a href='SkImageInfo_Reference#SkColorType'>if</a> <a href='SkImageInfo_Reference#SkColorType'>all</a>
-pixels have <a href='SkColor_Reference#Alpha'>alpha</a> <a href='SkColor_Reference#Alpha'>values</a> <a href='SkColor_Reference#Alpha'>equivalent</a> <a href='SkColor_Reference#Alpha'>to</a> 1.0 <a href='SkColor_Reference#Alpha'>or</a> <a href='SkColor_Reference#Alpha'>greater</a>.
+Returns true if all pixels are opaque. <a href='SkImageInfo_Reference#SkColorType'>SkColorType</a> determines how pixels
+are encoded, and whether <a href='undocumented#Pixel'>pixel</a> describes <a href='SkColor_Reference#Alpha'>alpha</a>. Returns true for <a href='SkImageInfo_Reference#SkColorType'>SkColorType</a>
+without <a href='SkColor_Reference#Alpha'>alpha</a> in each <a href='undocumented#Pixel'>pixel</a>; for other <a href='SkImageInfo_Reference#SkColorType'>SkColorType</a>, returns true if all
+pixels have <a href='SkColor_Reference#Alpha'>alpha</a> values equivalent to 1.0 or greater.
-For <a href='SkImageInfo_Reference#SkColorType'>SkColorType</a> <a href='SkImageInfo_Reference#kRGB_565_SkColorType'>kRGB_565_SkColorType</a> <a href='SkImageInfo_Reference#kRGB_565_SkColorType'>or</a> <a href='SkImageInfo_Reference#kGray_8_SkColorType'>kGray_8_SkColorType</a>: <a href='SkImageInfo_Reference#kGray_8_SkColorType'>always</a>
+For <a href='SkImageInfo_Reference#SkColorType'>SkColorType</a> <a href='SkImageInfo_Reference#kRGB_565_SkColorType'>kRGB_565_SkColorType</a> or <a href='SkImageInfo_Reference#kGray_8_SkColorType'>kGray_8_SkColorType</a>: always
returns true. For <a href='SkImageInfo_Reference#SkColorType'>SkColorType</a> <a href='SkImageInfo_Reference#kAlpha_8_SkColorType'>kAlpha_8_SkColorType</a>, <a href='SkImageInfo_Reference#kBGRA_8888_SkColorType'>kBGRA_8888_SkColorType</a>,
-<a href='SkImageInfo_Reference#kRGBA_8888_SkColorType'>kRGBA_8888_SkColorType</a>: <a href='SkImageInfo_Reference#kRGBA_8888_SkColorType'>returns</a> <a href='SkImageInfo_Reference#kRGBA_8888_SkColorType'>true</a> <a href='SkImageInfo_Reference#kRGBA_8888_SkColorType'>if</a> <a href='SkImageInfo_Reference#kRGBA_8888_SkColorType'>all</a> <a href='undocumented#Pixel'>pixel</a> <a href='SkColor_Reference#Alpha'>alpha</a> <a href='SkColor_Reference#Alpha'>values</a> <a href='SkColor_Reference#Alpha'>are</a> 255.
-For <a href='SkImageInfo_Reference#SkColorType'>SkColorType</a> <a href='SkImageInfo_Reference#kARGB_4444_SkColorType'>kARGB_4444_SkColorType</a>: <a href='SkImageInfo_Reference#kARGB_4444_SkColorType'>returns</a> <a href='SkImageInfo_Reference#kARGB_4444_SkColorType'>true</a> <a href='SkImageInfo_Reference#kARGB_4444_SkColorType'>if</a> <a href='SkImageInfo_Reference#kARGB_4444_SkColorType'>all</a> <a href='undocumented#Pixel'>pixel</a> <a href='SkColor_Reference#Alpha'>alpha</a> <a href='SkColor_Reference#Alpha'>values</a> <a href='SkColor_Reference#Alpha'>are</a> 15.
-For <a href='SkImageInfo_Reference#kRGBA_F16_SkColorType'>kRGBA_F16_SkColorType</a>: <a href='SkImageInfo_Reference#kRGBA_F16_SkColorType'>returns</a> <a href='SkImageInfo_Reference#kRGBA_F16_SkColorType'>true</a> <a href='SkImageInfo_Reference#kRGBA_F16_SkColorType'>if</a> <a href='SkImageInfo_Reference#kRGBA_F16_SkColorType'>all</a> <a href='undocumented#Pixel'>pixel</a> <a href='SkColor_Reference#Alpha'>alpha</a> <a href='SkColor_Reference#Alpha'>values</a> <a href='SkColor_Reference#Alpha'>are</a> 1.0 <a href='SkColor_Reference#Alpha'>or</a>
+<a href='SkImageInfo_Reference#kRGBA_8888_SkColorType'>kRGBA_8888_SkColorType</a>: returns true if all <a href='undocumented#Pixel'>pixel</a> <a href='SkColor_Reference#Alpha'>alpha</a> values are 255.
+For <a href='SkImageInfo_Reference#SkColorType'>SkColorType</a> <a href='SkImageInfo_Reference#kARGB_4444_SkColorType'>kARGB_4444_SkColorType</a>: returns true if all <a href='undocumented#Pixel'>pixel</a> <a href='SkColor_Reference#Alpha'>alpha</a> values are 15.
+For <a href='SkImageInfo_Reference#kRGBA_F16_SkColorType'>kRGBA_F16_SkColorType</a>: returns true if all <a href='undocumented#Pixel'>pixel</a> <a href='SkColor_Reference#Alpha'>alpha</a> values are 1.0 or
greater.
Returns false for <a href='SkImageInfo_Reference#kUnknown_SkColorType'>kUnknown_SkColorType</a>.
@@ -1370,13 +1370,13 @@
### Parameters
<table> <tr> <td><a name='SkBitmap_ComputeIsOpaque_bm'><code><strong>bm</strong></code></a></td>
- <td><a href='SkBitmap_Reference#SkBitmap'>SkBitmap</a> <a href='SkBitmap_Reference#SkBitmap'>to</a> <a href='SkBitmap_Reference#SkBitmap'>check</a></td>
+ <td><a href='SkBitmap_Reference#SkBitmap'>SkBitmap</a> to check</td>
</tr>
</table>
### Return Value
-true if all pixels have opaque values or <a href='SkImageInfo_Reference#SkColorType'>SkColorType</a> <a href='SkImageInfo_Reference#SkColorType'>is</a> <a href='SkImageInfo_Reference#SkColorType'>opaque</a>
+true if all pixels have opaque values or <a href='SkImageInfo_Reference#SkColorType'>SkColorType</a> is opaque
### Example
@@ -1402,7 +1402,7 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-void <a href='#SkBitmap_getBounds'>getBounds</a>(<a href='SkRect_Reference#SkRect'>SkRect</a>* <a href='SkRect_Reference#SkRect'>bounds</a>) <a href='SkRect_Reference#SkRect'>const</a>
+void <a href='#SkBitmap_getBounds'>getBounds</a>(<a href='SkRect_Reference#SkRect'>SkRect</a>* bounds) const
</pre>
Returns <a href='SkRect_Reference#SkRect'>SkRect</a> { 0, 0, <a href='#SkBitmap_width'>width()</a>, <a href='#SkBitmap_height'>height()</a> }.
@@ -1410,7 +1410,7 @@
### Parameters
<table> <tr> <td><a name='SkBitmap_getBounds_bounds'><code><strong>bounds</strong></code></a></td>
- <td>container for floating <a href='SkPoint_Reference#Point'>point</a> <a href='SkPoint_Reference#Point'>rectangle</a></td>
+ <td>container for floating <a href='SkPoint_Reference#Point'>point</a> rectangle</td>
</tr>
</table>
@@ -1427,7 +1427,7 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-void <a href='#SkBitmap_getBounds'>getBounds</a>(<a href='SkIRect_Reference#SkIRect'>SkIRect</a>* <a href='SkIRect_Reference#SkIRect'>bounds</a>) <a href='SkIRect_Reference#SkIRect'>const</a>
+void <a href='#SkBitmap_getBounds'>getBounds</a>(<a href='SkIRect_Reference#SkIRect'>SkIRect</a>* bounds) const
</pre>
Returns <a href='SkIRect_Reference#SkIRect'>SkIRect</a> { 0, 0, <a href='#SkBitmap_width'>width()</a>, <a href='#SkBitmap_height'>height()</a> }.
@@ -1452,14 +1452,14 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-<a href='SkIRect_Reference#SkIRect'>SkIRect</a> <a href='#SkBitmap_bounds'>bounds()</a> <a href='#SkBitmap_bounds'>const</a>
+<a href='SkIRect_Reference#SkIRect'>SkIRect</a> <a href='#SkBitmap_bounds'>bounds()</a> const
</pre>
Returns <a href='SkIRect_Reference#SkIRect'>SkIRect</a> { 0, 0, <a href='#SkBitmap_width'>width()</a>, <a href='#SkBitmap_height'>height()</a> }.
### Return Value
-integral rectangle from origin to <a href='#SkBitmap_width'>width()</a> <a href='#SkBitmap_width'>and</a> <a href='#SkBitmap_height'>height()</a>
+integral rectangle from origin to <a href='#SkBitmap_width'>width()</a> and <a href='#SkBitmap_height'>height()</a>
### Example
@@ -1474,14 +1474,14 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-<a href='undocumented#SkISize'>SkISize</a> <a href='#SkBitmap_dimensions'>dimensions()</a> <a href='#SkBitmap_dimensions'>const</a>
+<a href='undocumented#SkISize'>SkISize</a> <a href='#SkBitmap_dimensions'>dimensions()</a> const
</pre>
Returns <a href='undocumented#SkISize'>SkISize</a> { <a href='#SkBitmap_width'>width()</a>, <a href='#SkBitmap_height'>height()</a> }.
### Return Value
-integral <a href='undocumented#Size'>size</a> <a href='undocumented#Size'>of</a> <a href='#SkBitmap_width'>width()</a> <a href='#SkBitmap_width'>and</a> <a href='#SkBitmap_height'>height()</a>
+integral <a href='undocumented#Size'>size</a> of <a href='#SkBitmap_width'>width()</a> and <a href='#SkBitmap_height'>height()</a>
### Example
@@ -1496,14 +1496,14 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-<a href='SkIRect_Reference#SkIRect'>SkIRect</a> <a href='#SkBitmap_getSubset'>getSubset</a>() <a href='#SkBitmap_getSubset'>const</a>
+<a href='SkIRect_Reference#SkIRect'>SkIRect</a> <a href='#SkBitmap_getSubset'>getSubset</a>() const
</pre>
-Returns the bounds of this <a href='SkBitmap_Reference#Bitmap'>bitmap</a>, <a href='SkBitmap_Reference#Bitmap'>offset</a> <a href='SkBitmap_Reference#Bitmap'>by</a> <a href='SkBitmap_Reference#Bitmap'>its</a> <a href='undocumented#SkPixelRef'>SkPixelRef</a> <a href='undocumented#SkPixelRef'>origin</a>.
+Returns the bounds of this <a href='SkBitmap_Reference#Bitmap'>bitmap</a>, offset by its <a href='undocumented#SkPixelRef'>SkPixelRef</a> origin.
### Return Value
-bounds within <a href='undocumented#SkPixelRef'>SkPixelRef</a> <a href='undocumented#SkPixelRef'>bounds</a>
+bounds within <a href='undocumented#SkPixelRef'>SkPixelRef</a> bounds
### Example
@@ -1527,37 +1527,37 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-bool <a href='#SkBitmap_setInfo'>setInfo</a>(<a href='#SkBitmap_setInfo'>const</a> <a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a>& <a href='SkImageInfo_Reference#SkImageInfo'>imageInfo</a>, <a href='SkImageInfo_Reference#SkImageInfo'>size_t</a> <a href='#SkBitmap_rowBytes'>rowBytes</a> = 0)
+bool <a href='#SkBitmap_setInfo'>setInfo</a>(const <a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a>& imageInfo, size_t <a href='#SkBitmap_rowBytes'>rowBytes</a> = 0)
</pre>
-Sets width, height, <a href='#Image_Info_Alpha_Type'>Alpha_Type</a>, <a href='#Image_Info_Color_Type'>Color_Type</a>, <a href='#Color_Space'>Color_Space</a>, <a href='#Color_Space'>and</a> <a href='#Color_Space'>optional</a>
-<a href='#SkBitmap_setInfo_rowBytes'>rowBytes</a>. <a href='#SkBitmap_setInfo_rowBytes'>Frees</a> <a href='#SkBitmap_setInfo_rowBytes'>pixels</a>, <a href='#SkBitmap_setInfo_rowBytes'>and</a> <a href='#SkBitmap_setInfo_rowBytes'>returns</a> <a href='#SkBitmap_setInfo_rowBytes'>true</a> <a href='#SkBitmap_setInfo_rowBytes'>if</a> <a href='#SkBitmap_setInfo_rowBytes'>successful</a>.
+Sets width, height, <a href='#Image_Info_Alpha_Type'>Alpha_Type</a>, <a href='#Image_Info_Color_Type'>Color_Type</a>, <a href='#Color_Space'>Color_Space</a>, and optional
+<a href='#SkBitmap_setInfo_rowBytes'>rowBytes</a>. Frees pixels, and returns true if successful.
-<a href='#SkBitmap_setInfo_imageInfo'>imageInfo</a>.<a href='#SkImageInfo_alphaType'>alphaType</a>() <a href='#SkImageInfo_alphaType'>may</a> <a href='#SkImageInfo_alphaType'>be</a> <a href='#SkImageInfo_alphaType'>altered</a> <a href='#SkImageInfo_alphaType'>to</a> <a href='#SkImageInfo_alphaType'>a</a> <a href='#SkImageInfo_alphaType'>value</a> <a href='#SkImageInfo_alphaType'>permitted</a> <a href='#SkImageInfo_alphaType'>by</a> <a href='#SkBitmap_setInfo_imageInfo'>imageInfo</a>.<a href='#SkImageInfo_colorSpace'>colorSpace</a>().
-<a href='#SkImageInfo_colorSpace'>If</a> <a href='#SkBitmap_setInfo_imageInfo'>imageInfo</a>.<a href='#SkImageInfo_colorType'>colorType</a>() <a href='#SkImageInfo_colorType'>is</a> <a href='SkImageInfo_Reference#kUnknown_SkColorType'>kUnknown_SkColorType</a>, <a href='#SkBitmap_setInfo_imageInfo'>imageInfo</a>.<a href='#SkImageInfo_alphaType'>alphaType</a>() <a href='#SkImageInfo_alphaType'>is</a>
-<a href='#SkImageInfo_alphaType'>set</a> <a href='#SkImageInfo_alphaType'>to</a> <a href='SkImageInfo_Reference#kUnknown_SkAlphaType'>kUnknown_SkAlphaType</a>.
-<a href='SkImageInfo_Reference#kUnknown_SkAlphaType'>If</a> <a href='#SkBitmap_setInfo_imageInfo'>imageInfo</a>.<a href='#SkImageInfo_colorType'>colorType</a>() <a href='#SkImageInfo_colorType'>is</a> <a href='SkImageInfo_Reference#kAlpha_8_SkColorType'>kAlpha_8_SkColorType</a> <a href='SkImageInfo_Reference#kAlpha_8_SkColorType'>and</a> <a href='#SkBitmap_setInfo_imageInfo'>imageInfo</a>.<a href='#SkImageInfo_alphaType'>alphaType</a>() <a href='#SkImageInfo_alphaType'>is</a>
-<a href='SkImageInfo_Reference#kUnpremul_SkAlphaType'>kUnpremul_SkAlphaType</a>, <a href='#SkBitmap_setInfo_imageInfo'>imageInfo</a>.<a href='#SkImageInfo_alphaType'>alphaType</a>() <a href='#SkImageInfo_alphaType'>is</a> <a href='#SkImageInfo_alphaType'>replaced</a> <a href='#SkImageInfo_alphaType'>by</a> <a href='SkImageInfo_Reference#kPremul_SkAlphaType'>kPremul_SkAlphaType</a>.
-<a href='SkImageInfo_Reference#kPremul_SkAlphaType'>If</a> <a href='#SkBitmap_setInfo_imageInfo'>imageInfo</a>.<a href='#SkImageInfo_colorType'>colorType</a>() <a href='#SkImageInfo_colorType'>is</a> <a href='SkImageInfo_Reference#kRGB_565_SkColorType'>kRGB_565_SkColorType</a> <a href='SkImageInfo_Reference#kRGB_565_SkColorType'>or</a> <a href='SkImageInfo_Reference#kGray_8_SkColorType'>kGray_8_SkColorType</a>,
-<a href='#SkBitmap_setInfo_imageInfo'>imageInfo</a>.<a href='#SkImageInfo_alphaType'>alphaType</a>() <a href='#SkImageInfo_alphaType'>is</a> <a href='#SkImageInfo_alphaType'>set</a> <a href='#SkImageInfo_alphaType'>to</a> <a href='SkImageInfo_Reference#kOpaque_SkAlphaType'>kOpaque_SkAlphaType</a>.
-<a href='SkImageInfo_Reference#kOpaque_SkAlphaType'>If</a> <a href='#SkBitmap_setInfo_imageInfo'>imageInfo</a>.<a href='#SkImageInfo_colorType'>colorType</a>() <a href='#SkImageInfo_colorType'>is</a> <a href='SkImageInfo_Reference#kARGB_4444_SkColorType'>kARGB_4444_SkColorType</a>, <a href='SkImageInfo_Reference#kRGBA_8888_SkColorType'>kRGBA_8888_SkColorType</a>,
-<a href='SkImageInfo_Reference#kBGRA_8888_SkColorType'>kBGRA_8888_SkColorType</a>, <a href='SkImageInfo_Reference#kBGRA_8888_SkColorType'>or</a> <a href='SkImageInfo_Reference#kRGBA_F16_SkColorType'>kRGBA_F16_SkColorType</a>: <a href='#SkBitmap_setInfo_imageInfo'>imageInfo</a>.<a href='#SkImageInfo_alphaType'>alphaType</a>() <a href='#SkImageInfo_alphaType'>remains</a>
-<a href='#SkImageInfo_alphaType'>unchanged</a>.
+<a href='#SkBitmap_setInfo_imageInfo'>imageInfo</a>.<a href='#SkImageInfo_alphaType'>alphaType</a>() may be altered to a value permitted by <a href='#SkBitmap_setInfo_imageInfo'>imageInfo</a>.<a href='#SkImageInfo_colorSpace'>colorSpace</a>().
+If <a href='#SkBitmap_setInfo_imageInfo'>imageInfo</a>.<a href='#SkImageInfo_colorType'>colorType</a>() is <a href='SkImageInfo_Reference#kUnknown_SkColorType'>kUnknown_SkColorType</a>, <a href='#SkBitmap_setInfo_imageInfo'>imageInfo</a>.<a href='#SkImageInfo_alphaType'>alphaType</a>() is
+set to <a href='SkImageInfo_Reference#kUnknown_SkAlphaType'>kUnknown_SkAlphaType</a>.
+If <a href='#SkBitmap_setInfo_imageInfo'>imageInfo</a>.<a href='#SkImageInfo_colorType'>colorType</a>() is <a href='SkImageInfo_Reference#kAlpha_8_SkColorType'>kAlpha_8_SkColorType</a> and <a href='#SkBitmap_setInfo_imageInfo'>imageInfo</a>.<a href='#SkImageInfo_alphaType'>alphaType</a>() is
+<a href='SkImageInfo_Reference#kUnpremul_SkAlphaType'>kUnpremul_SkAlphaType</a>, <a href='#SkBitmap_setInfo_imageInfo'>imageInfo</a>.<a href='#SkImageInfo_alphaType'>alphaType</a>() is replaced by <a href='SkImageInfo_Reference#kPremul_SkAlphaType'>kPremul_SkAlphaType</a>.
+If <a href='#SkBitmap_setInfo_imageInfo'>imageInfo</a>.<a href='#SkImageInfo_colorType'>colorType</a>() is <a href='SkImageInfo_Reference#kRGB_565_SkColorType'>kRGB_565_SkColorType</a> or <a href='SkImageInfo_Reference#kGray_8_SkColorType'>kGray_8_SkColorType</a>,
+<a href='#SkBitmap_setInfo_imageInfo'>imageInfo</a>.<a href='#SkImageInfo_alphaType'>alphaType</a>() is set to <a href='SkImageInfo_Reference#kOpaque_SkAlphaType'>kOpaque_SkAlphaType</a>.
+If <a href='#SkBitmap_setInfo_imageInfo'>imageInfo</a>.<a href='#SkImageInfo_colorType'>colorType</a>() is <a href='SkImageInfo_Reference#kARGB_4444_SkColorType'>kARGB_4444_SkColorType</a>, <a href='SkImageInfo_Reference#kRGBA_8888_SkColorType'>kRGBA_8888_SkColorType</a>,
+<a href='SkImageInfo_Reference#kBGRA_8888_SkColorType'>kBGRA_8888_SkColorType</a>, or <a href='SkImageInfo_Reference#kRGBA_F16_SkColorType'>kRGBA_F16_SkColorType</a>: <a href='#SkBitmap_setInfo_imageInfo'>imageInfo</a>.<a href='#SkImageInfo_alphaType'>alphaType</a>() remains
+unchanged.
-<a href='#SkBitmap_setInfo_rowBytes'>rowBytes</a> <a href='#SkBitmap_setInfo_rowBytes'>must</a> <a href='#SkBitmap_setInfo_rowBytes'>equal</a> <a href='#SkBitmap_setInfo_rowBytes'>or</a> <a href='#SkBitmap_setInfo_rowBytes'>exceed</a> <a href='#SkBitmap_setInfo_imageInfo'>imageInfo</a>.<a href='#SkImageInfo_minRowBytes'>minRowBytes</a>(). <a href='#SkImageInfo_minRowBytes'>If</a> <a href='#SkBitmap_setInfo_imageInfo'>imageInfo</a>.<a href='#SkImageInfo_colorSpace'>colorSpace</a>() <a href='#SkImageInfo_colorSpace'>is</a>
-<a href='SkImageInfo_Reference#kUnknown_SkColorType'>kUnknown_SkColorType</a>, <a href='#SkBitmap_setInfo_rowBytes'>rowBytes</a> <a href='#SkBitmap_setInfo_rowBytes'>is</a> <a href='#SkBitmap_setInfo_rowBytes'>ignored</a> <a href='#SkBitmap_setInfo_rowBytes'>and</a> <a href='#SkBitmap_setInfo_rowBytes'>treated</a> <a href='#SkBitmap_setInfo_rowBytes'>as</a> <a href='#SkBitmap_setInfo_rowBytes'>zero</a>; <a href='#SkBitmap_setInfo_rowBytes'>for</a> <a href='#SkBitmap_setInfo_rowBytes'>all</a> <a href='#SkBitmap_setInfo_rowBytes'>other</a>
-<a href='#Color_Space'>Color_Space</a> <a href='#Color_Space'>values</a>, <a href='#SkBitmap_setInfo_rowBytes'>rowBytes</a> <a href='#SkBitmap_setInfo_rowBytes'>of</a> <a href='#SkBitmap_setInfo_rowBytes'>zero</a> <a href='#SkBitmap_setInfo_rowBytes'>is</a> <a href='#SkBitmap_setInfo_rowBytes'>treated</a> <a href='#SkBitmap_setInfo_rowBytes'>as</a> <a href='#SkBitmap_setInfo_imageInfo'>imageInfo</a>.<a href='#SkImageInfo_minRowBytes'>minRowBytes</a>().
+<a href='#SkBitmap_setInfo_rowBytes'>rowBytes</a> must equal or exceed <a href='#SkBitmap_setInfo_imageInfo'>imageInfo</a>.<a href='#SkImageInfo_minRowBytes'>minRowBytes</a>(). If <a href='#SkBitmap_setInfo_imageInfo'>imageInfo</a>.<a href='#SkImageInfo_colorSpace'>colorSpace</a>() is
+<a href='SkImageInfo_Reference#kUnknown_SkColorType'>kUnknown_SkColorType</a>, <a href='#SkBitmap_setInfo_rowBytes'>rowBytes</a> is ignored and treated as zero; for all other
+<a href='#Color_Space'>Color_Space</a> values, <a href='#SkBitmap_setInfo_rowBytes'>rowBytes</a> of zero is treated as <a href='#SkBitmap_setInfo_imageInfo'>imageInfo</a>.<a href='#SkImageInfo_minRowBytes'>minRowBytes</a>().
-<a href='#SkImageInfo_minRowBytes'>Calls</a> <a href='#SkBitmap_reset'>reset()</a> <a href='#SkBitmap_reset'>and</a> <a href='#SkBitmap_reset'>returns</a> <a href='#SkBitmap_reset'>false</a> <a href='#SkBitmap_reset'>if</a>:
+Calls <a href='#SkBitmap_reset'>reset()</a> and returns false if:
<table> <tr>
- <td><a href='#SkBitmap_setInfo_rowBytes'>rowBytes</a> <a href='#SkBitmap_setInfo_rowBytes'>exceeds</a> 31 <a href='#SkBitmap_setInfo_rowBytes'>bits</a></td>
+ <td><a href='#SkBitmap_setInfo_rowBytes'>rowBytes</a> exceeds 31 bits</td>
</tr> <tr>
- <td><a href='#SkBitmap_setInfo_imageInfo'>imageInfo</a>.<a href='#SkImageInfo_width'>width()</a> <a href='#SkImageInfo_width'>is</a> <a href='#SkImageInfo_width'>negative</a></td>
+ <td><a href='#SkBitmap_setInfo_imageInfo'>imageInfo</a>.<a href='#SkImageInfo_width'>width()</a> is negative</td>
</tr> <tr>
- <td><a href='#SkBitmap_setInfo_imageInfo'>imageInfo</a>.<a href='#SkImageInfo_height'>height()</a> <a href='#SkImageInfo_height'>is</a> <a href='#SkImageInfo_height'>negative</a></td>
+ <td><a href='#SkBitmap_setInfo_imageInfo'>imageInfo</a>.<a href='#SkImageInfo_height'>height()</a> is negative</td>
</tr> <tr>
- <td><a href='#SkBitmap_setInfo_rowBytes'>rowBytes</a> <a href='#SkBitmap_setInfo_rowBytes'>is</a> <a href='#SkBitmap_setInfo_rowBytes'>positive</a> <a href='#SkBitmap_setInfo_rowBytes'>and</a> <a href='#SkBitmap_setInfo_rowBytes'>less</a> <a href='#SkBitmap_setInfo_rowBytes'>than</a> <a href='#SkBitmap_setInfo_imageInfo'>imageInfo</a>.<a href='#SkImageInfo_width'>width()</a> <a href='#SkImageInfo_width'>times</a> <a href='#SkBitmap_setInfo_imageInfo'>imageInfo</a>.<a href='#SkImageInfo_bytesPerPixel'>bytesPerPixel</a>()</td>
+ <td><a href='#SkBitmap_setInfo_rowBytes'>rowBytes</a> is positive and less than <a href='#SkBitmap_setInfo_imageInfo'>imageInfo</a>.<a href='#SkImageInfo_width'>width()</a> times <a href='#SkBitmap_setInfo_imageInfo'>imageInfo</a>.<a href='#SkImageInfo_bytesPerPixel'>bytesPerPixel</a>()</td>
</tr>
</table>
@@ -1567,13 +1567,13 @@
<td>contains width, height, <a href='#Image_Info_Alpha_Type'>Alpha_Type</a>, <a href='#Image_Info_Color_Type'>Color_Type</a>, <a href='#Color_Space'>Color_Space</a></td>
</tr>
<tr> <td><a name='SkBitmap_setInfo_rowBytes'><code><strong>rowBytes</strong></code></a></td>
- <td><a href='#SkBitmap_setInfo_imageInfo'>imageInfo</a>.<a href='#SkImageInfo_minRowBytes'>minRowBytes</a>() <a href='#SkImageInfo_minRowBytes'>or</a> <a href='#SkImageInfo_minRowBytes'>larger</a>; <a href='#SkImageInfo_minRowBytes'>or</a> <a href='#SkImageInfo_minRowBytes'>zero</a></td>
+ <td><a href='#SkBitmap_setInfo_imageInfo'>imageInfo</a>.<a href='#SkImageInfo_minRowBytes'>minRowBytes</a>() or larger; or zero</td>
</tr>
</table>
### Return Value
-true if <a href='#Image_Info'>Image_Info</a> <a href='#Image_Info'>set</a> <a href='#Image_Info'>successfully</a>
+true if <a href='#Image_Info'>Image_Info</a> set successfully
### Example
@@ -1593,7 +1593,7 @@
};
</pre>
-<a href='#SkBitmap_AllocFlags'>AllocFlags</a> <a href='#SkBitmap_AllocFlags'>provides</a> <a href='#SkBitmap_AllocFlags'>the</a> <a href='#SkBitmap_AllocFlags'>option</a> <a href='#SkBitmap_AllocFlags'>to</a> <a href='#SkBitmap_AllocFlags'>zero</a> <a href='undocumented#Pixel'>pixel</a> <a href='undocumented#Pixel'>memory</a> <a href='undocumented#Pixel'>when</a> <a href='undocumented#Pixel'>allocated</a>.
+<a href='#SkBitmap_AllocFlags'>AllocFlags</a> provides the option to zero <a href='undocumented#Pixel'>pixel</a> memory when allocated.
### Constants
@@ -1605,7 +1605,7 @@
<td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a name='SkBitmap_kZeroPixels_AllocFlag'><code>SkBitmap::kZeroPixels_AllocFlag</code></a></td>
<td style='text-align: center; border: 2px solid #dddddd; padding: 8px; '>1</td>
<td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>
-Instructs <a href='#SkBitmap_tryAllocPixelsFlags'>tryAllocPixelsFlags</a> <a href='#SkBitmap_tryAllocPixelsFlags'>and</a> <a href='#SkBitmap_allocPixelsFlags'>allocPixelsFlags</a> <a href='#SkBitmap_allocPixelsFlags'>to</a> <a href='#SkBitmap_allocPixelsFlags'>zero</a> <a href='undocumented#Pixel'>pixel</a> <a href='undocumented#Pixel'>memory</a>.
+Instructs <a href='#SkBitmap_tryAllocPixelsFlags'>tryAllocPixelsFlags</a> and <a href='#SkBitmap_allocPixelsFlags'>allocPixelsFlags</a> to zero <a href='undocumented#Pixel'>pixel</a> memory.
</td>
</tr>
</table>
@@ -1621,23 +1621,23 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-bool <a href='#SkBitmap_tryAllocPixelsFlags'>tryAllocPixelsFlags</a>(<a href='#SkBitmap_tryAllocPixelsFlags'>const</a> <a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a>& <a href='SkImageInfo_Reference#SkImageInfo'>info</a>, <a href='SkImageInfo_Reference#SkImageInfo'>uint32_t</a> <a href='SkImageInfo_Reference#SkImageInfo'>flags</a>)
+bool <a href='#SkBitmap_tryAllocPixelsFlags'>tryAllocPixelsFlags</a>(const <a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a>& info, uint32_t flags)
</pre>
-Sets <a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a> <a href='SkImageInfo_Reference#SkImageInfo'>to</a> <a href='#SkBitmap_tryAllocPixelsFlags_info'>info</a> <a href='#SkBitmap_tryAllocPixelsFlags_info'>following</a> <a href='#SkBitmap_tryAllocPixelsFlags_info'>the</a> <a href='#SkBitmap_tryAllocPixelsFlags_info'>rules</a> <a href='#SkBitmap_tryAllocPixelsFlags_info'>in</a> <a href='#SkBitmap_setInfo'>setInfo</a>() <a href='#SkBitmap_setInfo'>and</a> <a href='#SkBitmap_setInfo'>allocates</a> <a href='undocumented#Pixel'>pixel</a>
-memory. If <a href='#SkBitmap_tryAllocPixelsFlags_flags'>flags</a> <a href='#SkBitmap_tryAllocPixelsFlags_flags'>is</a> <a href='#SkBitmap_kZeroPixels_AllocFlag'>kZeroPixels_AllocFlag</a>, <a href='#SkBitmap_kZeroPixels_AllocFlag'>memory</a> <a href='#SkBitmap_kZeroPixels_AllocFlag'>is</a> <a href='#SkBitmap_kZeroPixels_AllocFlag'>zeroed</a>.
+Sets <a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a> to <a href='#SkBitmap_tryAllocPixelsFlags_info'>info</a> following the rules in <a href='#SkBitmap_setInfo'>setInfo</a>() and allocates <a href='undocumented#Pixel'>pixel</a>
+memory. If <a href='#SkBitmap_tryAllocPixelsFlags_flags'>flags</a> is <a href='#SkBitmap_kZeroPixels_AllocFlag'>kZeroPixels_AllocFlag</a>, memory is zeroed.
-Returns false and calls <a href='#SkBitmap_reset'>reset()</a> <a href='#SkBitmap_reset'>if</a> <a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a> <a href='SkImageInfo_Reference#SkImageInfo'>could</a> <a href='SkImageInfo_Reference#SkImageInfo'>not</a> <a href='SkImageInfo_Reference#SkImageInfo'>be</a> <a href='SkImageInfo_Reference#SkImageInfo'>set</a>, <a href='SkImageInfo_Reference#SkImageInfo'>or</a> <a href='SkImageInfo_Reference#SkImageInfo'>memory</a> <a href='SkImageInfo_Reference#SkImageInfo'>could</a>
+Returns false and calls <a href='#SkBitmap_reset'>reset()</a> if <a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a> could not be set, or memory could
not be allocated, or memory could not optionally be zeroed.
-On most platforms, allocating <a href='undocumented#Pixel'>pixel</a> <a href='undocumented#Pixel'>memory</a> <a href='undocumented#Pixel'>may</a> <a href='undocumented#Pixel'>succeed</a> <a href='undocumented#Pixel'>even</a> <a href='undocumented#Pixel'>though</a> <a href='undocumented#Pixel'>there</a> <a href='undocumented#Pixel'>is</a>
+On most platforms, allocating <a href='undocumented#Pixel'>pixel</a> memory may succeed even though there is
not sufficient memory to hold pixels; allocation does not take place
until the pixels are written to. The actual behavior depends on the platform
-implementation of malloc(), if <a href='#SkBitmap_tryAllocPixelsFlags_flags'>flags</a> <a href='#SkBitmap_tryAllocPixelsFlags_flags'>is</a> <a href='#SkBitmap_tryAllocPixelsFlags_flags'>zero</a>, <a href='#SkBitmap_tryAllocPixelsFlags_flags'>and</a> <a href='#SkBitmap_tryAllocPixelsFlags_flags'>calloc()</a>, <a href='#SkBitmap_tryAllocPixelsFlags_flags'>if</a> <a href='#SkBitmap_tryAllocPixelsFlags_flags'>flags</a> <a href='#SkBitmap_tryAllocPixelsFlags_flags'>is</a>
+implementation of malloc(), if <a href='#SkBitmap_tryAllocPixelsFlags_flags'>flags</a> is zero, and calloc(), if <a href='#SkBitmap_tryAllocPixelsFlags_flags'>flags</a> is
<a href='#SkBitmap_kZeroPixels_AllocFlag'>kZeroPixels_AllocFlag</a>.
-<a href='#SkBitmap_tryAllocPixelsFlags_flags'>flags</a> <a href='#SkBitmap_tryAllocPixelsFlags_flags'>set</a> <a href='#SkBitmap_tryAllocPixelsFlags_flags'>to</a> <a href='#SkBitmap_kZeroPixels_AllocFlag'>kZeroPixels_AllocFlag</a> <a href='#SkBitmap_kZeroPixels_AllocFlag'>offers</a> <a href='#SkBitmap_kZeroPixels_AllocFlag'>equal</a> <a href='#SkBitmap_kZeroPixels_AllocFlag'>or</a> <a href='#SkBitmap_kZeroPixels_AllocFlag'>better</a> <a href='#SkBitmap_kZeroPixels_AllocFlag'>performance</a> <a href='#SkBitmap_kZeroPixels_AllocFlag'>than</a>
-subsequently calling <a href='#SkBitmap_eraseColor'>eraseColor</a>() <a href='#SkBitmap_eraseColor'>with</a> <a href='SkColor_Reference#SK_ColorTRANSPARENT'>SK_ColorTRANSPARENT</a>.
+<a href='#SkBitmap_tryAllocPixelsFlags_flags'>flags</a> set to <a href='#SkBitmap_kZeroPixels_AllocFlag'>kZeroPixels_AllocFlag</a> offers equal or better performance than
+subsequently calling <a href='#SkBitmap_eraseColor'>eraseColor</a>() with <a href='SkColor_Reference#SK_ColorTRANSPARENT'>SK_ColorTRANSPARENT</a>.
### Parameters
@@ -1645,7 +1645,7 @@
<td>contains width, height, <a href='SkImageInfo_Reference#SkAlphaType'>SkAlphaType</a>, <a href='SkImageInfo_Reference#SkColorType'>SkColorType</a>, <a href='undocumented#SkColorSpace'>SkColorSpace</a></td>
</tr>
<tr> <td><a name='SkBitmap_tryAllocPixelsFlags_flags'><code><strong>flags</strong></code></a></td>
- <td><a href='#SkBitmap_kZeroPixels_AllocFlag'>kZeroPixels_AllocFlag</a>, <a href='#SkBitmap_kZeroPixels_AllocFlag'>or</a> <a href='#SkBitmap_kZeroPixels_AllocFlag'>zero</a></td>
+ <td><a href='#SkBitmap_kZeroPixels_AllocFlag'>kZeroPixels_AllocFlag</a>, or zero</td>
</tr>
</table>
@@ -1674,25 +1674,25 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-void <a href='#SkBitmap_allocPixelsFlags'>allocPixelsFlags</a>(<a href='#SkBitmap_allocPixelsFlags'>const</a> <a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a>& <a href='SkImageInfo_Reference#SkImageInfo'>info</a>, <a href='SkImageInfo_Reference#SkImageInfo'>uint32_t</a> <a href='SkImageInfo_Reference#SkImageInfo'>flags</a>)
+void <a href='#SkBitmap_allocPixelsFlags'>allocPixelsFlags</a>(const <a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a>& info, uint32_t flags)
</pre>
-Sets <a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a> <a href='SkImageInfo_Reference#SkImageInfo'>to</a> <a href='#SkBitmap_allocPixelsFlags_info'>info</a> <a href='#SkBitmap_allocPixelsFlags_info'>following</a> <a href='#SkBitmap_allocPixelsFlags_info'>the</a> <a href='#SkBitmap_allocPixelsFlags_info'>rules</a> <a href='#SkBitmap_allocPixelsFlags_info'>in</a> <a href='#SkBitmap_setInfo'>setInfo</a>() <a href='#SkBitmap_setInfo'>and</a> <a href='#SkBitmap_setInfo'>allocates</a> <a href='undocumented#Pixel'>pixel</a>
-memory. If <a href='#SkBitmap_allocPixelsFlags_flags'>flags</a> <a href='#SkBitmap_allocPixelsFlags_flags'>is</a> <a href='#SkBitmap_kZeroPixels_AllocFlag'>kZeroPixels_AllocFlag</a>, <a href='#SkBitmap_kZeroPixels_AllocFlag'>memory</a> <a href='#SkBitmap_kZeroPixels_AllocFlag'>is</a> <a href='#SkBitmap_kZeroPixels_AllocFlag'>zeroed</a>.
+Sets <a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a> to <a href='#SkBitmap_allocPixelsFlags_info'>info</a> following the rules in <a href='#SkBitmap_setInfo'>setInfo</a>() and allocates <a href='undocumented#Pixel'>pixel</a>
+memory. If <a href='#SkBitmap_allocPixelsFlags_flags'>flags</a> is <a href='#SkBitmap_kZeroPixels_AllocFlag'>kZeroPixels_AllocFlag</a>, memory is zeroed.
-Aborts execution if <a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a> <a href='SkImageInfo_Reference#SkImageInfo'>could</a> <a href='SkImageInfo_Reference#SkImageInfo'>not</a> <a href='SkImageInfo_Reference#SkImageInfo'>be</a> <a href='SkImageInfo_Reference#SkImageInfo'>set</a>, <a href='SkImageInfo_Reference#SkImageInfo'>or</a> <a href='SkImageInfo_Reference#SkImageInfo'>memory</a> <a href='SkImageInfo_Reference#SkImageInfo'>could</a>
+Aborts execution if <a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a> could not be set, or memory could
not be allocated, or memory could not optionally
be zeroed. Abort steps may be provided by the user at compile time by defining
SK_ABORT.
-On most platforms, allocating <a href='undocumented#Pixel'>pixel</a> <a href='undocumented#Pixel'>memory</a> <a href='undocumented#Pixel'>may</a> <a href='undocumented#Pixel'>succeed</a> <a href='undocumented#Pixel'>even</a> <a href='undocumented#Pixel'>though</a> <a href='undocumented#Pixel'>there</a> <a href='undocumented#Pixel'>is</a>
+On most platforms, allocating <a href='undocumented#Pixel'>pixel</a> memory may succeed even though there is
not sufficient memory to hold pixels; allocation does not take place
until the pixels are written to. The actual behavior depends on the platform
-implementation of malloc(), if <a href='#SkBitmap_allocPixelsFlags_flags'>flags</a> <a href='#SkBitmap_allocPixelsFlags_flags'>is</a> <a href='#SkBitmap_allocPixelsFlags_flags'>zero</a>, <a href='#SkBitmap_allocPixelsFlags_flags'>and</a> <a href='#SkBitmap_allocPixelsFlags_flags'>calloc()</a>, <a href='#SkBitmap_allocPixelsFlags_flags'>if</a> <a href='#SkBitmap_allocPixelsFlags_flags'>flags</a> <a href='#SkBitmap_allocPixelsFlags_flags'>is</a>
+implementation of malloc(), if <a href='#SkBitmap_allocPixelsFlags_flags'>flags</a> is zero, and calloc(), if <a href='#SkBitmap_allocPixelsFlags_flags'>flags</a> is
<a href='#SkBitmap_kZeroPixels_AllocFlag'>kZeroPixels_AllocFlag</a>.
-<a href='#SkBitmap_allocPixelsFlags_flags'>flags</a> <a href='#SkBitmap_allocPixelsFlags_flags'>set</a> <a href='#SkBitmap_allocPixelsFlags_flags'>to</a> <a href='#SkBitmap_kZeroPixels_AllocFlag'>kZeroPixels_AllocFlag</a> <a href='#SkBitmap_kZeroPixels_AllocFlag'>offers</a> <a href='#SkBitmap_kZeroPixels_AllocFlag'>equal</a> <a href='#SkBitmap_kZeroPixels_AllocFlag'>or</a> <a href='#SkBitmap_kZeroPixels_AllocFlag'>better</a> <a href='#SkBitmap_kZeroPixels_AllocFlag'>performance</a> <a href='#SkBitmap_kZeroPixels_AllocFlag'>than</a>
-subsequently calling <a href='#SkBitmap_eraseColor'>eraseColor</a>() <a href='#SkBitmap_eraseColor'>with</a> <a href='SkColor_Reference#SK_ColorTRANSPARENT'>SK_ColorTRANSPARENT</a>.
+<a href='#SkBitmap_allocPixelsFlags_flags'>flags</a> set to <a href='#SkBitmap_kZeroPixels_AllocFlag'>kZeroPixels_AllocFlag</a> offers equal or better performance than
+subsequently calling <a href='#SkBitmap_eraseColor'>eraseColor</a>() with <a href='SkColor_Reference#SK_ColorTRANSPARENT'>SK_ColorTRANSPARENT</a>.
### Parameters
@@ -1700,14 +1700,14 @@
<td>contains width, height, <a href='SkImageInfo_Reference#SkAlphaType'>SkAlphaType</a>, <a href='SkImageInfo_Reference#SkColorType'>SkColorType</a>, <a href='undocumented#SkColorSpace'>SkColorSpace</a></td>
</tr>
<tr> <td><a name='SkBitmap_allocPixelsFlags_flags'><code><strong>flags</strong></code></a></td>
- <td><a href='#SkBitmap_kZeroPixels_AllocFlag'>kZeroPixels_AllocFlag</a>, <a href='#SkBitmap_kZeroPixels_AllocFlag'>or</a> <a href='#SkBitmap_kZeroPixels_AllocFlag'>zero</a></td>
+ <td><a href='#SkBitmap_kZeroPixels_AllocFlag'>kZeroPixels_AllocFlag</a>, or zero</td>
</tr>
</table>
### Example
-<div><fiddle-embed name="737e721c7d9e0f367d25521a1b823b9d"><div><a href='undocumented#Text'>Text</a> <a href='undocumented#Text'>is</a> <a href='undocumented#Text'>drawn</a> <a href='undocumented#Text'>on</a> <a href='undocumented#Text'>a</a> <a href='undocumented#Text'>transparent</a> <a href='undocumented#Text'>background</a>; <a href='undocumented#Text'>drawing</a> <a href='undocumented#Text'>the</a> <a href='SkBitmap_Reference#Bitmap'>bitmap</a> <a href='SkBitmap_Reference#Bitmap'>a</a> <a href='SkBitmap_Reference#Bitmap'>second</a> <a href='SkBitmap_Reference#Bitmap'>time</a>
-<a href='SkBitmap_Reference#Bitmap'>lets</a> <a href='SkBitmap_Reference#Bitmap'>the</a> <a href='SkBitmap_Reference#Bitmap'>first</a> <a href='SkBitmap_Reference#Bitmap'>draw</a> <a href='SkBitmap_Reference#Bitmap'>show</a> <a href='SkBitmap_Reference#Bitmap'>through</a>.
+<div><fiddle-embed name="737e721c7d9e0f367d25521a1b823b9d"><div><a href='undocumented#Text'>Text</a> is drawn on a transparent background; drawing the <a href='SkBitmap_Reference#Bitmap'>bitmap</a> a second time
+lets the first draw show through.
</div></fiddle-embed></div>
### See Also
@@ -1719,17 +1719,17 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-bool <a href='#SkBitmap_tryAllocPixels'>tryAllocPixels</a>(<a href='#SkBitmap_tryAllocPixels'>const</a> <a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a>& <a href='SkImageInfo_Reference#SkImageInfo'>info</a>, <a href='SkImageInfo_Reference#SkImageInfo'>size_t</a> <a href='#SkBitmap_rowBytes'>rowBytes</a>)
+bool <a href='#SkBitmap_tryAllocPixels'>tryAllocPixels</a>(const <a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a>& info, size_t <a href='#SkBitmap_rowBytes'>rowBytes</a>)
</pre>
-Sets <a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a> <a href='SkImageInfo_Reference#SkImageInfo'>to</a> <a href='#SkBitmap_tryAllocPixels_info'>info</a> <a href='#SkBitmap_tryAllocPixels_info'>following</a> <a href='#SkBitmap_tryAllocPixels_info'>the</a> <a href='#SkBitmap_tryAllocPixels_info'>rules</a> <a href='#SkBitmap_tryAllocPixels_info'>in</a> <a href='#SkBitmap_setInfo'>setInfo</a>() <a href='#SkBitmap_setInfo'>and</a> <a href='#SkBitmap_setInfo'>allocates</a> <a href='undocumented#Pixel'>pixel</a>
-memory. <a href='#SkBitmap_tryAllocPixels_rowBytes'>rowBytes</a> <a href='#SkBitmap_tryAllocPixels_rowBytes'>must</a> <a href='#SkBitmap_tryAllocPixels_rowBytes'>equal</a> <a href='#SkBitmap_tryAllocPixels_rowBytes'>or</a> <a href='#SkBitmap_tryAllocPixels_rowBytes'>exceed</a> <a href='#SkBitmap_tryAllocPixels_info'>info</a>.<a href='#SkImageInfo_width'>width()</a> <a href='#SkImageInfo_width'>times</a> <a href='#SkBitmap_tryAllocPixels_info'>info</a>.<a href='#SkImageInfo_bytesPerPixel'>bytesPerPixel</a>(),
-or equal zero. Pass in zero for <a href='#SkBitmap_tryAllocPixels_rowBytes'>rowBytes</a> <a href='#SkBitmap_tryAllocPixels_rowBytes'>to</a> <a href='#SkBitmap_tryAllocPixels_rowBytes'>compute</a> <a href='#SkBitmap_tryAllocPixels_rowBytes'>the</a> <a href='#SkBitmap_tryAllocPixels_rowBytes'>minimum</a> <a href='#SkBitmap_tryAllocPixels_rowBytes'>valid</a> <a href='#SkBitmap_tryAllocPixels_rowBytes'>value</a>.
+Sets <a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a> to <a href='#SkBitmap_tryAllocPixels_info'>info</a> following the rules in <a href='#SkBitmap_setInfo'>setInfo</a>() and allocates <a href='undocumented#Pixel'>pixel</a>
+memory. <a href='#SkBitmap_tryAllocPixels_rowBytes'>rowBytes</a> must equal or exceed <a href='#SkBitmap_tryAllocPixels_info'>info</a>.<a href='#SkImageInfo_width'>width()</a> times <a href='#SkBitmap_tryAllocPixels_info'>info</a>.<a href='#SkImageInfo_bytesPerPixel'>bytesPerPixel</a>(),
+or equal zero. Pass in zero for <a href='#SkBitmap_tryAllocPixels_rowBytes'>rowBytes</a> to compute the minimum valid value.
-Returns false and calls <a href='#SkBitmap_reset'>reset()</a> <a href='#SkBitmap_reset'>if</a> <a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a> <a href='SkImageInfo_Reference#SkImageInfo'>could</a> <a href='SkImageInfo_Reference#SkImageInfo'>not</a> <a href='SkImageInfo_Reference#SkImageInfo'>be</a> <a href='SkImageInfo_Reference#SkImageInfo'>set</a>, <a href='SkImageInfo_Reference#SkImageInfo'>or</a> <a href='SkImageInfo_Reference#SkImageInfo'>memory</a> <a href='SkImageInfo_Reference#SkImageInfo'>could</a>
+Returns false and calls <a href='#SkBitmap_reset'>reset()</a> if <a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a> could not be set, or memory could
not be allocated.
-On most platforms, allocating <a href='undocumented#Pixel'>pixel</a> <a href='undocumented#Pixel'>memory</a> <a href='undocumented#Pixel'>may</a> <a href='undocumented#Pixel'>succeed</a> <a href='undocumented#Pixel'>even</a> <a href='undocumented#Pixel'>though</a> <a href='undocumented#Pixel'>there</a> <a href='undocumented#Pixel'>is</a>
+On most platforms, allocating <a href='undocumented#Pixel'>pixel</a> memory may succeed even though there is
not sufficient memory to hold pixels; allocation does not take place
until the pixels are written to. The actual behavior depends on the platform
implementation of malloc().
@@ -1740,13 +1740,13 @@
<td>contains width, height, <a href='SkImageInfo_Reference#SkAlphaType'>SkAlphaType</a>, <a href='SkImageInfo_Reference#SkColorType'>SkColorType</a>, <a href='undocumented#SkColorSpace'>SkColorSpace</a></td>
</tr>
<tr> <td><a name='SkBitmap_tryAllocPixels_rowBytes'><code><strong>rowBytes</strong></code></a></td>
- <td><a href='undocumented#Size'>size</a> <a href='undocumented#Size'>of</a> <a href='undocumented#Pixel'>pixel</a> <a href='undocumented#Pixel'>row</a> <a href='undocumented#Pixel'>or</a> <a href='undocumented#Pixel'>larger</a>; <a href='undocumented#Pixel'>may</a> <a href='undocumented#Pixel'>be</a> <a href='undocumented#Pixel'>zero</a></td>
+ <td><a href='undocumented#Size'>size</a> of <a href='undocumented#Pixel'>pixel</a> row or larger; may be zero</td>
</tr>
</table>
### Return Value
-true if <a href='undocumented#Pixel_Storage'>pixel storage</a> <a href='undocumented#Pixel'>is</a> <a href='undocumented#Pixel'>allocated</a>
+true if <a href='undocumented#Pixel_Storage'>pixel storage</a> is allocated
### Example
@@ -1761,18 +1761,18 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-void <a href='#SkBitmap_allocPixels'>allocPixels</a>(<a href='#SkBitmap_allocPixels'>const</a> <a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a>& <a href='SkImageInfo_Reference#SkImageInfo'>info</a>, <a href='SkImageInfo_Reference#SkImageInfo'>size_t</a> <a href='#SkBitmap_rowBytes'>rowBytes</a>)
+void <a href='#SkBitmap_allocPixels'>allocPixels</a>(const <a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a>& info, size_t <a href='#SkBitmap_rowBytes'>rowBytes</a>)
</pre>
-Sets <a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a> <a href='SkImageInfo_Reference#SkImageInfo'>to</a> <a href='#SkBitmap_allocPixels_info'>info</a> <a href='#SkBitmap_allocPixels_info'>following</a> <a href='#SkBitmap_allocPixels_info'>the</a> <a href='#SkBitmap_allocPixels_info'>rules</a> <a href='#SkBitmap_allocPixels_info'>in</a> <a href='#SkBitmap_setInfo'>setInfo</a>() <a href='#SkBitmap_setInfo'>and</a> <a href='#SkBitmap_setInfo'>allocates</a> <a href='undocumented#Pixel'>pixel</a>
-memory. <a href='#SkBitmap_allocPixels_rowBytes'>rowBytes</a> <a href='#SkBitmap_allocPixels_rowBytes'>must</a> <a href='#SkBitmap_allocPixels_rowBytes'>equal</a> <a href='#SkBitmap_allocPixels_rowBytes'>or</a> <a href='#SkBitmap_allocPixels_rowBytes'>exceed</a> <a href='#SkBitmap_allocPixels_info'>info</a>.<a href='#SkImageInfo_width'>width()</a> <a href='#SkImageInfo_width'>times</a> <a href='#SkBitmap_allocPixels_info'>info</a>.<a href='#SkImageInfo_bytesPerPixel'>bytesPerPixel</a>(),
-or equal zero. Pass in zero for <a href='#SkBitmap_allocPixels_rowBytes'>rowBytes</a> <a href='#SkBitmap_allocPixels_rowBytes'>to</a> <a href='#SkBitmap_allocPixels_rowBytes'>compute</a> <a href='#SkBitmap_allocPixels_rowBytes'>the</a> <a href='#SkBitmap_allocPixels_rowBytes'>minimum</a> <a href='#SkBitmap_allocPixels_rowBytes'>valid</a> <a href='#SkBitmap_allocPixels_rowBytes'>value</a>.
+Sets <a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a> to <a href='#SkBitmap_allocPixels_info'>info</a> following the rules in <a href='#SkBitmap_setInfo'>setInfo</a>() and allocates <a href='undocumented#Pixel'>pixel</a>
+memory. <a href='#SkBitmap_allocPixels_rowBytes'>rowBytes</a> must equal or exceed <a href='#SkBitmap_allocPixels_info'>info</a>.<a href='#SkImageInfo_width'>width()</a> times <a href='#SkBitmap_allocPixels_info'>info</a>.<a href='#SkImageInfo_bytesPerPixel'>bytesPerPixel</a>(),
+or equal zero. Pass in zero for <a href='#SkBitmap_allocPixels_rowBytes'>rowBytes</a> to compute the minimum valid value.
-Aborts execution if <a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a> <a href='SkImageInfo_Reference#SkImageInfo'>could</a> <a href='SkImageInfo_Reference#SkImageInfo'>not</a> <a href='SkImageInfo_Reference#SkImageInfo'>be</a> <a href='SkImageInfo_Reference#SkImageInfo'>set</a>, <a href='SkImageInfo_Reference#SkImageInfo'>or</a> <a href='SkImageInfo_Reference#SkImageInfo'>memory</a> <a href='SkImageInfo_Reference#SkImageInfo'>could</a>
+Aborts execution if <a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a> could not be set, or memory could
not be allocated. Abort steps may be provided by
the user at compile time by defining SK_ABORT.
-On most platforms, allocating <a href='undocumented#Pixel'>pixel</a> <a href='undocumented#Pixel'>memory</a> <a href='undocumented#Pixel'>may</a> <a href='undocumented#Pixel'>succeed</a> <a href='undocumented#Pixel'>even</a> <a href='undocumented#Pixel'>though</a> <a href='undocumented#Pixel'>there</a> <a href='undocumented#Pixel'>is</a>
+On most platforms, allocating <a href='undocumented#Pixel'>pixel</a> memory may succeed even though there is
not sufficient memory to hold pixels; allocation does not take place
until the pixels are written to. The actual behavior depends on the platform
implementation of malloc().
@@ -1783,7 +1783,7 @@
<td>contains width, height, <a href='SkImageInfo_Reference#SkAlphaType'>SkAlphaType</a>, <a href='SkImageInfo_Reference#SkColorType'>SkColorType</a>, <a href='undocumented#SkColorSpace'>SkColorSpace</a></td>
</tr>
<tr> <td><a name='SkBitmap_allocPixels_rowBytes'><code><strong>rowBytes</strong></code></a></td>
- <td><a href='undocumented#Size'>size</a> <a href='undocumented#Size'>of</a> <a href='undocumented#Pixel'>pixel</a> <a href='undocumented#Pixel'>row</a> <a href='undocumented#Pixel'>or</a> <a href='undocumented#Pixel'>larger</a>; <a href='undocumented#Pixel'>may</a> <a href='undocumented#Pixel'>be</a> <a href='undocumented#Pixel'>zero</a></td>
+ <td><a href='undocumented#Size'>size</a> of <a href='undocumented#Pixel'>pixel</a> row or larger; may be zero</td>
</tr>
</table>
@@ -1800,16 +1800,16 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-bool <a href='#SkBitmap_tryAllocPixels'>tryAllocPixels</a>(<a href='#SkBitmap_tryAllocPixels'>const</a> <a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a>& <a href='SkImageInfo_Reference#SkImageInfo'>info</a>)
+bool <a href='#SkBitmap_tryAllocPixels'>tryAllocPixels</a>(const <a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a>& info)
</pre>
-Sets <a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a> <a href='SkImageInfo_Reference#SkImageInfo'>to</a> <a href='#SkBitmap_tryAllocPixels_2_info'>info</a> <a href='#SkBitmap_tryAllocPixels_2_info'>following</a> <a href='#SkBitmap_tryAllocPixels_2_info'>the</a> <a href='#SkBitmap_tryAllocPixels_2_info'>rules</a> <a href='#SkBitmap_tryAllocPixels_2_info'>in</a> <a href='#SkBitmap_setInfo'>setInfo</a>() <a href='#SkBitmap_setInfo'>and</a> <a href='#SkBitmap_setInfo'>allocates</a> <a href='undocumented#Pixel'>pixel</a>
+Sets <a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a> to <a href='#SkBitmap_tryAllocPixels_2_info'>info</a> following the rules in <a href='#SkBitmap_setInfo'>setInfo</a>() and allocates <a href='undocumented#Pixel'>pixel</a>
memory.
-Returns false and calls <a href='#SkBitmap_reset'>reset()</a> <a href='#SkBitmap_reset'>if</a> <a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a> <a href='SkImageInfo_Reference#SkImageInfo'>could</a> <a href='SkImageInfo_Reference#SkImageInfo'>not</a> <a href='SkImageInfo_Reference#SkImageInfo'>be</a> <a href='SkImageInfo_Reference#SkImageInfo'>set</a>, <a href='SkImageInfo_Reference#SkImageInfo'>or</a> <a href='SkImageInfo_Reference#SkImageInfo'>memory</a> <a href='SkImageInfo_Reference#SkImageInfo'>could</a>
+Returns false and calls <a href='#SkBitmap_reset'>reset()</a> if <a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a> could not be set, or memory could
not be allocated.
-On most platforms, allocating <a href='undocumented#Pixel'>pixel</a> <a href='undocumented#Pixel'>memory</a> <a href='undocumented#Pixel'>may</a> <a href='undocumented#Pixel'>succeed</a> <a href='undocumented#Pixel'>even</a> <a href='undocumented#Pixel'>though</a> <a href='undocumented#Pixel'>there</a> <a href='undocumented#Pixel'>is</a>
+On most platforms, allocating <a href='undocumented#Pixel'>pixel</a> memory may succeed even though there is
not sufficient memory to hold pixels; allocation does not take place
until the pixels are written to. The actual behavior depends on the platform
implementation of malloc().
@@ -1823,7 +1823,7 @@
### Return Value
-true if <a href='undocumented#Pixel_Storage'>pixel storage</a> <a href='undocumented#Pixel'>is</a> <a href='undocumented#Pixel'>allocated</a>
+true if <a href='undocumented#Pixel_Storage'>pixel storage</a> is allocated
### Example
@@ -1838,17 +1838,17 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-void <a href='#SkBitmap_allocPixels'>allocPixels</a>(<a href='#SkBitmap_allocPixels'>const</a> <a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a>& <a href='SkImageInfo_Reference#SkImageInfo'>info</a>)
+void <a href='#SkBitmap_allocPixels'>allocPixels</a>(const <a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a>& info)
</pre>
-Sets <a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a> <a href='SkImageInfo_Reference#SkImageInfo'>to</a> <a href='#SkBitmap_allocPixels_2_info'>info</a> <a href='#SkBitmap_allocPixels_2_info'>following</a> <a href='#SkBitmap_allocPixels_2_info'>the</a> <a href='#SkBitmap_allocPixels_2_info'>rules</a> <a href='#SkBitmap_allocPixels_2_info'>in</a> <a href='#SkBitmap_setInfo'>setInfo</a>() <a href='#SkBitmap_setInfo'>and</a> <a href='#SkBitmap_setInfo'>allocates</a> <a href='undocumented#Pixel'>pixel</a>
+Sets <a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a> to <a href='#SkBitmap_allocPixels_2_info'>info</a> following the rules in <a href='#SkBitmap_setInfo'>setInfo</a>() and allocates <a href='undocumented#Pixel'>pixel</a>
memory.
-Aborts execution if <a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a> <a href='SkImageInfo_Reference#SkImageInfo'>could</a> <a href='SkImageInfo_Reference#SkImageInfo'>not</a> <a href='SkImageInfo_Reference#SkImageInfo'>be</a> <a href='SkImageInfo_Reference#SkImageInfo'>set</a>, <a href='SkImageInfo_Reference#SkImageInfo'>or</a> <a href='SkImageInfo_Reference#SkImageInfo'>memory</a> <a href='SkImageInfo_Reference#SkImageInfo'>could</a>
+Aborts execution if <a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a> could not be set, or memory could
not be allocated. Abort steps may be provided by
the user at compile time by defining SK_ABORT.
-On most platforms, allocating <a href='undocumented#Pixel'>pixel</a> <a href='undocumented#Pixel'>memory</a> <a href='undocumented#Pixel'>may</a> <a href='undocumented#Pixel'>succeed</a> <a href='undocumented#Pixel'>even</a> <a href='undocumented#Pixel'>though</a> <a href='undocumented#Pixel'>there</a> <a href='undocumented#Pixel'>is</a>
+On most platforms, allocating <a href='undocumented#Pixel'>pixel</a> memory may succeed even though there is
not sufficient memory to hold pixels; allocation does not take place
until the pixels are written to. The actual behavior depends on the platform
implementation of malloc().
@@ -1873,28 +1873,28 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-bool <a href='#SkBitmap_tryAllocN32Pixels'>tryAllocN32Pixels</a>(<a href='#SkBitmap_tryAllocN32Pixels'>int</a> <a href='#SkBitmap_tryAllocN32Pixels'>width</a>, <a href='#SkBitmap_tryAllocN32Pixels'>int</a> <a href='#SkBitmap_tryAllocN32Pixels'>height</a>, <a href='#SkBitmap_tryAllocN32Pixels'>bool</a> <a href='#SkBitmap_isOpaque'>isOpaque</a> = <a href='#SkBitmap_isOpaque'>false</a>)
+bool <a href='#SkBitmap_tryAllocN32Pixels'>tryAllocN32Pixels</a>(int width, int height, bool <a href='#SkBitmap_isOpaque'>isOpaque</a> = false)
</pre>
-Sets <a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a> <a href='SkImageInfo_Reference#SkImageInfo'>to</a> <a href='#SkBitmap_tryAllocN32Pixels_width'>width</a>, <a href='#SkBitmap_tryAllocN32Pixels_height'>height</a>, <a href='#SkBitmap_tryAllocN32Pixels_height'>and</a> <a href='#SkBitmap_tryAllocN32Pixels_height'>native</a> <a href='SkImageInfo_Reference#Color_Type'>color type</a>; <a href='SkColor_Reference#Color'>and</a> <a href='SkColor_Reference#Color'>allocates</a>
-<a href='undocumented#Pixel'>pixel</a> <a href='undocumented#Pixel'>memory</a>. <a href='undocumented#Pixel'>If</a> <a href='#SkBitmap_tryAllocN32Pixels_isOpaque'>isOpaque</a> <a href='#SkBitmap_tryAllocN32Pixels_isOpaque'>is</a> <a href='#SkBitmap_tryAllocN32Pixels_isOpaque'>true</a>, <a href='#SkBitmap_tryAllocN32Pixels_isOpaque'>sets</a> <a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a> <a href='SkImageInfo_Reference#SkImageInfo'>to</a> <a href='SkImageInfo_Reference#kOpaque_SkAlphaType'>kOpaque_SkAlphaType</a>;
+Sets <a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a> to <a href='#SkBitmap_tryAllocN32Pixels_width'>width</a>, <a href='#SkBitmap_tryAllocN32Pixels_height'>height</a>, and native <a href='SkImageInfo_Reference#Color_Type'>color type</a>; and allocates
+<a href='undocumented#Pixel'>pixel</a> memory. If <a href='#SkBitmap_tryAllocN32Pixels_isOpaque'>isOpaque</a> is true, sets <a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a> to <a href='SkImageInfo_Reference#kOpaque_SkAlphaType'>kOpaque_SkAlphaType</a>;
otherwise, sets to <a href='SkImageInfo_Reference#kPremul_SkAlphaType'>kPremul_SkAlphaType</a>.
-Calls <a href='#SkBitmap_reset'>reset()</a> <a href='#SkBitmap_reset'>and</a> <a href='#SkBitmap_reset'>returns</a> <a href='#SkBitmap_reset'>false</a> <a href='#SkBitmap_reset'>if</a> <a href='#SkBitmap_tryAllocN32Pixels_width'>width</a> <a href='#SkBitmap_tryAllocN32Pixels_width'>exceeds</a> 29 <a href='#SkBitmap_tryAllocN32Pixels_width'>bits</a> <a href='#SkBitmap_tryAllocN32Pixels_width'>or</a> <a href='#SkBitmap_tryAllocN32Pixels_width'>is</a> <a href='#SkBitmap_tryAllocN32Pixels_width'>negative</a>,
-or <a href='#SkBitmap_tryAllocN32Pixels_height'>height</a> <a href='#SkBitmap_tryAllocN32Pixels_height'>is</a> <a href='#SkBitmap_tryAllocN32Pixels_height'>negative</a>.
+Calls <a href='#SkBitmap_reset'>reset()</a> and returns false if <a href='#SkBitmap_tryAllocN32Pixels_width'>width</a> exceeds 29 bits or is negative,
+or <a href='#SkBitmap_tryAllocN32Pixels_height'>height</a> is negative.
Returns false if allocation fails.
-Use to create <a href='SkBitmap_Reference#SkBitmap'>SkBitmap</a> <a href='SkBitmap_Reference#SkBitmap'>that</a> <a href='SkBitmap_Reference#SkBitmap'>matches</a> <a href='SkColor_Reference#SkPMColor'>SkPMColor</a>, <a href='SkColor_Reference#SkPMColor'>the</a> <a href='SkColor_Reference#SkPMColor'>native</a> <a href='undocumented#Pixel'>pixel</a> <a href='undocumented#Pixel'>arrangement</a> <a href='undocumented#Pixel'>on</a>
-the platform. <a href='SkBitmap_Reference#SkBitmap'>SkBitmap</a> <a href='SkBitmap_Reference#SkBitmap'>drawn</a> <a href='SkBitmap_Reference#SkBitmap'>to</a> <a href='SkBitmap_Reference#SkBitmap'>output</a> <a href='undocumented#Device'>device</a> <a href='undocumented#Device'>skips</a> <a href='undocumented#Device'>converting</a> <a href='undocumented#Device'>its</a> <a href='undocumented#Pixel'>pixel</a> <a href='undocumented#Pixel'>format</a>.
+Use to create <a href='SkBitmap_Reference#SkBitmap'>SkBitmap</a> that matches <a href='SkColor_Reference#SkPMColor'>SkPMColor</a>, the native <a href='undocumented#Pixel'>pixel</a> arrangement on
+the platform. <a href='SkBitmap_Reference#SkBitmap'>SkBitmap</a> drawn to output <a href='undocumented#Device'>device</a> skips converting its <a href='undocumented#Pixel'>pixel</a> format.
### Parameters
<table> <tr> <td><a name='SkBitmap_tryAllocN32Pixels_width'><code><strong>width</strong></code></a></td>
- <td><a href='undocumented#Pixel'>pixel</a> <a href='undocumented#Pixel'>column</a> <a href='undocumented#Pixel'>count</a>; <a href='undocumented#Pixel'>must</a> <a href='undocumented#Pixel'>be</a> <a href='undocumented#Pixel'>zero</a> <a href='undocumented#Pixel'>or</a> <a href='undocumented#Pixel'>greater</a></td>
+ <td><a href='undocumented#Pixel'>pixel</a> column count; must be zero or greater</td>
</tr>
<tr> <td><a name='SkBitmap_tryAllocN32Pixels_height'><code><strong>height</strong></code></a></td>
- <td><a href='undocumented#Pixel'>pixel</a> <a href='undocumented#Pixel'>row</a> <a href='undocumented#Pixel'>count</a>; <a href='undocumented#Pixel'>must</a> <a href='undocumented#Pixel'>be</a> <a href='undocumented#Pixel'>zero</a> <a href='undocumented#Pixel'>or</a> <a href='undocumented#Pixel'>greater</a></td>
+ <td><a href='undocumented#Pixel'>pixel</a> row count; must be zero or greater</td>
</tr>
<tr> <td><a name='SkBitmap_tryAllocN32Pixels_isOpaque'><code><strong>isOpaque</strong></code></a></td>
<td>true if pixels do not have transparency</td>
@@ -1903,7 +1903,7 @@
### Return Value
-true if <a href='undocumented#Pixel_Storage'>pixel storage</a> <a href='undocumented#Pixel'>is</a> <a href='undocumented#Pixel'>allocated</a>
+true if <a href='undocumented#Pixel_Storage'>pixel storage</a> is allocated
### Example
@@ -1918,27 +1918,27 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-void <a href='#SkBitmap_allocN32Pixels'>allocN32Pixels</a>(<a href='#SkBitmap_allocN32Pixels'>int</a> <a href='#SkBitmap_allocN32Pixels'>width</a>, <a href='#SkBitmap_allocN32Pixels'>int</a> <a href='#SkBitmap_allocN32Pixels'>height</a>, <a href='#SkBitmap_allocN32Pixels'>bool</a> <a href='#SkBitmap_isOpaque'>isOpaque</a> = <a href='#SkBitmap_isOpaque'>false</a>)
+void <a href='#SkBitmap_allocN32Pixels'>allocN32Pixels</a>(int width, int height, bool <a href='#SkBitmap_isOpaque'>isOpaque</a> = false)
</pre>
-Sets <a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a> <a href='SkImageInfo_Reference#SkImageInfo'>to</a> <a href='#SkBitmap_allocN32Pixels_width'>width</a>, <a href='#SkBitmap_allocN32Pixels_height'>height</a>, <a href='#SkBitmap_allocN32Pixels_height'>and</a> <a href='#SkBitmap_allocN32Pixels_height'>the</a> <a href='#SkBitmap_allocN32Pixels_height'>native</a> <a href='SkImageInfo_Reference#Color_Type'>color type</a>; <a href='SkColor_Reference#Color'>and</a> <a href='SkColor_Reference#Color'>allocates</a>
-<a href='undocumented#Pixel'>pixel</a> <a href='undocumented#Pixel'>memory</a>. <a href='undocumented#Pixel'>If</a> <a href='#SkBitmap_allocN32Pixels_isOpaque'>isOpaque</a> <a href='#SkBitmap_allocN32Pixels_isOpaque'>is</a> <a href='#SkBitmap_allocN32Pixels_isOpaque'>true</a>, <a href='#SkBitmap_allocN32Pixels_isOpaque'>sets</a> <a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a> <a href='SkImageInfo_Reference#SkImageInfo'>to</a> <a href='SkImageInfo_Reference#kPremul_SkAlphaType'>kPremul_SkAlphaType</a>;
+Sets <a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a> to <a href='#SkBitmap_allocN32Pixels_width'>width</a>, <a href='#SkBitmap_allocN32Pixels_height'>height</a>, and the native <a href='SkImageInfo_Reference#Color_Type'>color type</a>; and allocates
+<a href='undocumented#Pixel'>pixel</a> memory. If <a href='#SkBitmap_allocN32Pixels_isOpaque'>isOpaque</a> is true, sets <a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a> to <a href='SkImageInfo_Reference#kPremul_SkAlphaType'>kPremul_SkAlphaType</a>;
otherwise, sets to <a href='SkImageInfo_Reference#kOpaque_SkAlphaType'>kOpaque_SkAlphaType</a>.
-Aborts if <a href='#SkBitmap_allocN32Pixels_width'>width</a> <a href='#SkBitmap_allocN32Pixels_width'>exceeds</a> 29 <a href='#SkBitmap_allocN32Pixels_width'>bits</a> <a href='#SkBitmap_allocN32Pixels_width'>or</a> <a href='#SkBitmap_allocN32Pixels_width'>is</a> <a href='#SkBitmap_allocN32Pixels_width'>negative</a>, <a href='#SkBitmap_allocN32Pixels_width'>or</a> <a href='#SkBitmap_allocN32Pixels_height'>height</a> <a href='#SkBitmap_allocN32Pixels_height'>is</a> <a href='#SkBitmap_allocN32Pixels_height'>negative</a>, <a href='#SkBitmap_allocN32Pixels_height'>or</a>
+Aborts if <a href='#SkBitmap_allocN32Pixels_width'>width</a> exceeds 29 bits or is negative, or <a href='#SkBitmap_allocN32Pixels_height'>height</a> is negative, or
allocation fails. Abort steps may be provided by the user at compile time by
defining SK_ABORT.
-Use to create <a href='SkBitmap_Reference#SkBitmap'>SkBitmap</a> <a href='SkBitmap_Reference#SkBitmap'>that</a> <a href='SkBitmap_Reference#SkBitmap'>matches</a> <a href='SkColor_Reference#SkPMColor'>SkPMColor</a>, <a href='SkColor_Reference#SkPMColor'>the</a> <a href='SkColor_Reference#SkPMColor'>native</a> <a href='undocumented#Pixel'>pixel</a> <a href='undocumented#Pixel'>arrangement</a> <a href='undocumented#Pixel'>on</a>
-the platform. <a href='SkBitmap_Reference#SkBitmap'>SkBitmap</a> <a href='SkBitmap_Reference#SkBitmap'>drawn</a> <a href='SkBitmap_Reference#SkBitmap'>to</a> <a href='SkBitmap_Reference#SkBitmap'>output</a> <a href='undocumented#Device'>device</a> <a href='undocumented#Device'>skips</a> <a href='undocumented#Device'>converting</a> <a href='undocumented#Device'>its</a> <a href='undocumented#Pixel'>pixel</a> <a href='undocumented#Pixel'>format</a>.
+Use to create <a href='SkBitmap_Reference#SkBitmap'>SkBitmap</a> that matches <a href='SkColor_Reference#SkPMColor'>SkPMColor</a>, the native <a href='undocumented#Pixel'>pixel</a> arrangement on
+the platform. <a href='SkBitmap_Reference#SkBitmap'>SkBitmap</a> drawn to output <a href='undocumented#Device'>device</a> skips converting its <a href='undocumented#Pixel'>pixel</a> format.
### Parameters
<table> <tr> <td><a name='SkBitmap_allocN32Pixels_width'><code><strong>width</strong></code></a></td>
- <td><a href='undocumented#Pixel'>pixel</a> <a href='undocumented#Pixel'>column</a> <a href='undocumented#Pixel'>count</a>; <a href='undocumented#Pixel'>must</a> <a href='undocumented#Pixel'>be</a> <a href='undocumented#Pixel'>zero</a> <a href='undocumented#Pixel'>or</a> <a href='undocumented#Pixel'>greater</a></td>
+ <td><a href='undocumented#Pixel'>pixel</a> column count; must be zero or greater</td>
</tr>
<tr> <td><a name='SkBitmap_allocN32Pixels_height'><code><strong>height</strong></code></a></td>
- <td><a href='undocumented#Pixel'>pixel</a> <a href='undocumented#Pixel'>row</a> <a href='undocumented#Pixel'>count</a>; <a href='undocumented#Pixel'>must</a> <a href='undocumented#Pixel'>be</a> <a href='undocumented#Pixel'>zero</a> <a href='undocumented#Pixel'>or</a> <a href='undocumented#Pixel'>greater</a></td>
+ <td><a href='undocumented#Pixel'>pixel</a> row count; must be zero or greater</td>
</tr>
<tr> <td><a name='SkBitmap_allocN32Pixels_isOpaque'><code><strong>isOpaque</strong></code></a></td>
<td>true if pixels do not have transparency</td>
@@ -1958,23 +1958,23 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-bool <a href='#SkBitmap_installPixels'>installPixels</a>(<a href='#SkBitmap_installPixels'>const</a> <a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a>& <a href='SkImageInfo_Reference#SkImageInfo'>info</a>, <a href='SkImageInfo_Reference#SkImageInfo'>void</a>* <a href='SkImageInfo_Reference#SkImageInfo'>pixels</a>, <a href='SkImageInfo_Reference#SkImageInfo'>size_t</a> <a href='#SkBitmap_rowBytes'>rowBytes</a>, <a href='#SkBitmap_rowBytes'>void</a> (*<a href='#SkBitmap_rowBytes'>releaseProc</a>)
- (<a href='#SkBitmap_rowBytes'>void</a>* <a href='#SkBitmap_rowBytes'>addr</a>, <a href='#SkBitmap_rowBytes'>void</a>* <a href='#SkBitmap_rowBytes'>context</a>) , <a href='#SkBitmap_rowBytes'>void</a>* <a href='#SkBitmap_rowBytes'>context</a>)
+bool <a href='#SkBitmap_installPixels'>installPixels</a>(const <a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a>& info, void* pixels, size_t <a href='#SkBitmap_rowBytes'>rowBytes</a>, void (*releaseProc)
+ (void* addr, void* context) , void* context)
</pre>
-Sets <a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a> <a href='SkImageInfo_Reference#SkImageInfo'>to</a> <a href='#SkBitmap_installPixels_info'>info</a> <a href='#SkBitmap_installPixels_info'>following</a> <a href='#SkBitmap_installPixels_info'>the</a> <a href='#SkBitmap_installPixels_info'>rules</a> <a href='#SkBitmap_installPixels_info'>in</a> <a href='#SkBitmap_setInfo'>setInfo</a>(), <a href='#SkBitmap_setInfo'>and</a> <a href='#SkBitmap_setInfo'>creates</a> <a href='undocumented#SkPixelRef'>SkPixelRef</a>
-containing <a href='#SkBitmap_installPixels_pixels'>pixels</a> <a href='#SkBitmap_installPixels_pixels'>and</a> <a href='#SkBitmap_installPixels_rowBytes'>rowBytes</a>. <a href='#SkBitmap_installPixels_releaseProc'>releaseProc</a>, <a href='#SkBitmap_installPixels_releaseProc'>if</a> <a href='#SkBitmap_installPixels_releaseProc'>not</a> <a href='#SkBitmap_installPixels_releaseProc'>nullptr</a>, <a href='#SkBitmap_installPixels_releaseProc'>is</a> <a href='#SkBitmap_installPixels_releaseProc'>called</a>
-immediately on failure or when <a href='#SkBitmap_installPixels_pixels'>pixels</a> <a href='#SkBitmap_installPixels_pixels'>are</a> <a href='#SkBitmap_installPixels_pixels'>no</a> <a href='#SkBitmap_installPixels_pixels'>longer</a> <a href='#SkBitmap_installPixels_pixels'>referenced</a>. <a href='#SkBitmap_installPixels_context'>context</a> <a href='#SkBitmap_installPixels_context'>may</a> <a href='#SkBitmap_installPixels_context'>be</a>
+Sets <a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a> to <a href='#SkBitmap_installPixels_info'>info</a> following the rules in <a href='#SkBitmap_setInfo'>setInfo</a>(), and creates <a href='undocumented#SkPixelRef'>SkPixelRef</a>
+containing <a href='#SkBitmap_installPixels_pixels'>pixels</a> and <a href='#SkBitmap_installPixels_rowBytes'>rowBytes</a>. <a href='#SkBitmap_installPixels_releaseProc'>releaseProc</a>, if not nullptr, is called
+immediately on failure or when <a href='#SkBitmap_installPixels_pixels'>pixels</a> are no longer referenced. <a href='#SkBitmap_installPixels_context'>context</a> may be
nullptr.
-If <a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a> <a href='SkImageInfo_Reference#SkImageInfo'>could</a> <a href='SkImageInfo_Reference#SkImageInfo'>not</a> <a href='SkImageInfo_Reference#SkImageInfo'>be</a> <a href='SkImageInfo_Reference#SkImageInfo'>set</a>, <a href='SkImageInfo_Reference#SkImageInfo'>or</a> <a href='#SkBitmap_installPixels_rowBytes'>rowBytes</a> <a href='#SkBitmap_installPixels_rowBytes'>is</a> <a href='#SkBitmap_installPixels_rowBytes'>less</a> <a href='#SkBitmap_installPixels_rowBytes'>than</a> <a href='#SkBitmap_installPixels_info'>info</a>.<a href='#SkImageInfo_minRowBytes'>minRowBytes</a>():
-calls <a href='#SkBitmap_installPixels_releaseProc'>releaseProc</a> <a href='#SkBitmap_installPixels_releaseProc'>if</a> <a href='#SkBitmap_installPixels_releaseProc'>present</a>, <a href='#SkBitmap_installPixels_releaseProc'>calls</a> <a href='#SkBitmap_reset'>reset()</a>, <a href='#SkBitmap_reset'>and</a> <a href='#SkBitmap_reset'>returns</a> <a href='#SkBitmap_reset'>false</a>.
+If <a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a> could not be set, or <a href='#SkBitmap_installPixels_rowBytes'>rowBytes</a> is less than <a href='#SkBitmap_installPixels_info'>info</a>.<a href='#SkImageInfo_minRowBytes'>minRowBytes</a>():
+calls <a href='#SkBitmap_installPixels_releaseProc'>releaseProc</a> if present, calls <a href='#SkBitmap_reset'>reset()</a>, and returns false.
-Otherwise, if <a href='#SkBitmap_installPixels_pixels'>pixels</a> <a href='#SkBitmap_installPixels_pixels'>equals</a> <a href='#SkBitmap_installPixels_pixels'>nullptr</a>: <a href='#SkBitmap_installPixels_pixels'>sets</a> <a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a>, <a href='SkImageInfo_Reference#SkImageInfo'>calls</a> <a href='#SkBitmap_installPixels_releaseProc'>releaseProc</a> <a href='#SkBitmap_installPixels_releaseProc'>if</a>
+Otherwise, if <a href='#SkBitmap_installPixels_pixels'>pixels</a> equals nullptr: sets <a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a>, calls <a href='#SkBitmap_installPixels_releaseProc'>releaseProc</a> if
present, returns true.
-If <a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a> <a href='SkImageInfo_Reference#SkImageInfo'>is</a> <a href='SkImageInfo_Reference#SkImageInfo'>set</a>, <a href='#SkBitmap_installPixels_pixels'>pixels</a> <a href='#SkBitmap_installPixels_pixels'>is</a> <a href='#SkBitmap_installPixels_pixels'>not</a> <a href='#SkBitmap_installPixels_pixels'>nullptr</a>, <a href='#SkBitmap_installPixels_pixels'>and</a> <a href='#SkBitmap_installPixels_releaseProc'>releaseProc</a> <a href='#SkBitmap_installPixels_releaseProc'>is</a> <a href='#SkBitmap_installPixels_releaseProc'>not</a> <a href='#SkBitmap_installPixels_releaseProc'>nullptr</a>:
-when <a href='#SkBitmap_installPixels_pixels'>pixels</a> <a href='#SkBitmap_installPixels_pixels'>are</a> <a href='#SkBitmap_installPixels_pixels'>no</a> <a href='#SkBitmap_installPixels_pixels'>longer</a> <a href='#SkBitmap_installPixels_pixels'>referenced</a>, <a href='#SkBitmap_installPixels_pixels'>calls</a> <a href='#SkBitmap_installPixels_releaseProc'>releaseProc</a> <a href='#SkBitmap_installPixels_releaseProc'>with</a> <a href='#SkBitmap_installPixels_pixels'>pixels</a> <a href='#SkBitmap_installPixels_pixels'>and</a> <a href='#SkBitmap_installPixels_context'>context</a>
+If <a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a> is set, <a href='#SkBitmap_installPixels_pixels'>pixels</a> is not nullptr, and <a href='#SkBitmap_installPixels_releaseProc'>releaseProc</a> is not nullptr:
+when <a href='#SkBitmap_installPixels_pixels'>pixels</a> are no longer referenced, calls <a href='#SkBitmap_installPixels_releaseProc'>releaseProc</a> with <a href='#SkBitmap_installPixels_pixels'>pixels</a> and <a href='#SkBitmap_installPixels_context'>context</a>
as parameters.
### Parameters
@@ -1983,26 +1983,26 @@
<td>contains width, height, <a href='SkImageInfo_Reference#SkAlphaType'>SkAlphaType</a>, <a href='SkImageInfo_Reference#SkColorType'>SkColorType</a>, <a href='undocumented#SkColorSpace'>SkColorSpace</a></td>
</tr>
<tr> <td><a name='SkBitmap_installPixels_pixels'><code><strong>pixels</strong></code></a></td>
- <td>address or <a href='undocumented#Pixel_Storage'>pixel storage</a>; <a href='undocumented#Pixel'>may</a> <a href='undocumented#Pixel'>be</a> <a href='undocumented#Pixel'>nullptr</a></td>
+ <td>address or <a href='undocumented#Pixel_Storage'>pixel storage</a>; may be nullptr</td>
</tr>
<tr> <td><a name='SkBitmap_installPixels_rowBytes'><code><strong>rowBytes</strong></code></a></td>
- <td><a href='undocumented#Size'>size</a> <a href='undocumented#Size'>of</a> <a href='undocumented#Pixel'>pixel</a> <a href='undocumented#Pixel'>row</a> <a href='undocumented#Pixel'>or</a> <a href='undocumented#Pixel'>larger</a></td>
+ <td><a href='undocumented#Size'>size</a> of <a href='undocumented#Pixel'>pixel</a> row or larger</td>
</tr>
<tr> <td><a name='SkBitmap_installPixels_releaseProc'><code><strong>releaseProc</strong></code></a></td>
- <td>function called when <a href='#SkBitmap_installPixels_pixels'>pixels</a> <a href='#SkBitmap_installPixels_pixels'>can</a> <a href='#SkBitmap_installPixels_pixels'>be</a> <a href='#SkBitmap_installPixels_pixels'>deleted</a>; <a href='#SkBitmap_installPixels_pixels'>may</a> <a href='#SkBitmap_installPixels_pixels'>be</a> <a href='#SkBitmap_installPixels_pixels'>nullptr</a></td>
+ <td>function called when <a href='#SkBitmap_installPixels_pixels'>pixels</a> can be deleted; may be nullptr</td>
</tr>
<tr> <td><a name='SkBitmap_installPixels_context'><code><strong>context</strong></code></a></td>
- <td>caller state passed to <a href='#SkBitmap_installPixels_releaseProc'>releaseProc</a>; <a href='#SkBitmap_installPixels_releaseProc'>may</a> <a href='#SkBitmap_installPixels_releaseProc'>be</a> <a href='#SkBitmap_installPixels_releaseProc'>nullptr</a></td>
+ <td>caller state passed to <a href='#SkBitmap_installPixels_releaseProc'>releaseProc</a>; may be nullptr</td>
</tr>
</table>
### Return Value
-true if <a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a> <a href='SkImageInfo_Reference#SkImageInfo'>is</a> <a href='SkImageInfo_Reference#SkImageInfo'>set</a> <a href='SkImageInfo_Reference#SkImageInfo'>to</a> <a href='#SkBitmap_installPixels_info'>info</a>
+true if <a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a> is set to <a href='#SkBitmap_installPixels_info'>info</a>
### Example
-<div><fiddle-embed name="8c4f7bf73fffa1a812ee8e88e44e639c"><div><a href='#SkBitmap_installPixels_releaseProc'>releaseProc</a> <a href='#SkBitmap_installPixels_releaseProc'>is</a> <a href='#SkBitmap_installPixels_releaseProc'>called</a> <a href='#SkBitmap_installPixels_releaseProc'>immediately</a> <a href='#SkBitmap_installPixels_releaseProc'>because</a> <a href='#SkBitmap_installPixels_rowBytes'>rowBytes</a> <a href='#SkBitmap_installPixels_rowBytes'>is</a> <a href='#SkBitmap_installPixels_rowBytes'>too</a> <a href='#SkBitmap_installPixels_rowBytes'>small</a> <a href='#SkBitmap_installPixels_rowBytes'>for</a> <a href='#Pixel_Ref'>Pixel_Ref</a>.
+<div><fiddle-embed name="8c4f7bf73fffa1a812ee8e88e44e639c"><div><a href='#SkBitmap_installPixels_releaseProc'>releaseProc</a> is called immediately because <a href='#SkBitmap_installPixels_rowBytes'>rowBytes</a> is too small for <a href='#Pixel_Ref'>Pixel_Ref</a>.
</div>
#### Example Output
@@ -2024,18 +2024,18 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-bool <a href='#SkBitmap_installPixels'>installPixels</a>(<a href='#SkBitmap_installPixels'>const</a> <a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a>& <a href='SkImageInfo_Reference#SkImageInfo'>info</a>, <a href='SkImageInfo_Reference#SkImageInfo'>void</a>* <a href='SkImageInfo_Reference#SkImageInfo'>pixels</a>, <a href='SkImageInfo_Reference#SkImageInfo'>size_t</a> <a href='#SkBitmap_rowBytes'>rowBytes</a>)
+bool <a href='#SkBitmap_installPixels'>installPixels</a>(const <a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a>& info, void* pixels, size_t <a href='#SkBitmap_rowBytes'>rowBytes</a>)
</pre>
-Sets <a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a> <a href='SkImageInfo_Reference#SkImageInfo'>to</a> <a href='#SkBitmap_installPixels_2_info'>info</a> <a href='#SkBitmap_installPixels_2_info'>following</a> <a href='#SkBitmap_installPixels_2_info'>the</a> <a href='#SkBitmap_installPixels_2_info'>rules</a> <a href='#SkBitmap_installPixels_2_info'>in</a> <a href='#SkBitmap_setInfo'>setInfo</a>(), <a href='#SkBitmap_setInfo'>and</a> <a href='#SkBitmap_setInfo'>creates</a> <a href='undocumented#SkPixelRef'>SkPixelRef</a>
-containing <a href='#SkBitmap_installPixels_2_pixels'>pixels</a> <a href='#SkBitmap_installPixels_2_pixels'>and</a> <a href='#SkBitmap_installPixels_2_rowBytes'>rowBytes</a>.
+Sets <a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a> to <a href='#SkBitmap_installPixels_2_info'>info</a> following the rules in <a href='#SkBitmap_setInfo'>setInfo</a>(), and creates <a href='undocumented#SkPixelRef'>SkPixelRef</a>
+containing <a href='#SkBitmap_installPixels_2_pixels'>pixels</a> and <a href='#SkBitmap_installPixels_2_rowBytes'>rowBytes</a>.
-If <a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a> <a href='SkImageInfo_Reference#SkImageInfo'>could</a> <a href='SkImageInfo_Reference#SkImageInfo'>not</a> <a href='SkImageInfo_Reference#SkImageInfo'>be</a> <a href='SkImageInfo_Reference#SkImageInfo'>set</a>, <a href='SkImageInfo_Reference#SkImageInfo'>or</a> <a href='#SkBitmap_installPixels_2_rowBytes'>rowBytes</a> <a href='#SkBitmap_installPixels_2_rowBytes'>is</a> <a href='#SkBitmap_installPixels_2_rowBytes'>less</a> <a href='#SkBitmap_installPixels_2_rowBytes'>than</a> <a href='#SkBitmap_installPixels_2_info'>info</a>.<a href='#SkImageInfo_minRowBytes'>minRowBytes</a>():
-calls <a href='#SkBitmap_reset'>reset()</a>, <a href='#SkBitmap_reset'>and</a> <a href='#SkBitmap_reset'>returns</a> <a href='#SkBitmap_reset'>false</a>.
+If <a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a> could not be set, or <a href='#SkBitmap_installPixels_2_rowBytes'>rowBytes</a> is less than <a href='#SkBitmap_installPixels_2_info'>info</a>.<a href='#SkImageInfo_minRowBytes'>minRowBytes</a>():
+calls <a href='#SkBitmap_reset'>reset()</a>, and returns false.
-Otherwise, if <a href='#SkBitmap_installPixels_2_pixels'>pixels</a> <a href='#SkBitmap_installPixels_2_pixels'>equals</a> <a href='#SkBitmap_installPixels_2_pixels'>nullptr</a>: <a href='#SkBitmap_installPixels_2_pixels'>sets</a> <a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a>, <a href='SkImageInfo_Reference#SkImageInfo'>returns</a> <a href='SkImageInfo_Reference#SkImageInfo'>true</a>.
+Otherwise, if <a href='#SkBitmap_installPixels_2_pixels'>pixels</a> equals nullptr: sets <a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a>, returns true.
-Caller must ensure that <a href='#SkBitmap_installPixels_2_pixels'>pixels</a> <a href='#SkBitmap_installPixels_2_pixels'>are</a> <a href='#SkBitmap_installPixels_2_pixels'>valid</a> <a href='#SkBitmap_installPixels_2_pixels'>for</a> <a href='#SkBitmap_installPixels_2_pixels'>the</a> <a href='#SkBitmap_installPixels_2_pixels'>lifetime</a> <a href='#SkBitmap_installPixels_2_pixels'>of</a> <a href='SkBitmap_Reference#SkBitmap'>SkBitmap</a> <a href='SkBitmap_Reference#SkBitmap'>and</a> <a href='undocumented#SkPixelRef'>SkPixelRef</a>.
+Caller must ensure that <a href='#SkBitmap_installPixels_2_pixels'>pixels</a> are valid for the lifetime of <a href='SkBitmap_Reference#SkBitmap'>SkBitmap</a> and <a href='undocumented#SkPixelRef'>SkPixelRef</a>.
### Parameters
@@ -2043,20 +2043,20 @@
<td>contains width, height, <a href='SkImageInfo_Reference#SkAlphaType'>SkAlphaType</a>, <a href='SkImageInfo_Reference#SkColorType'>SkColorType</a>, <a href='undocumented#SkColorSpace'>SkColorSpace</a></td>
</tr>
<tr> <td><a name='SkBitmap_installPixels_2_pixels'><code><strong>pixels</strong></code></a></td>
- <td>address or <a href='undocumented#Pixel_Storage'>pixel storage</a>; <a href='undocumented#Pixel'>may</a> <a href='undocumented#Pixel'>be</a> <a href='undocumented#Pixel'>nullptr</a></td>
+ <td>address or <a href='undocumented#Pixel_Storage'>pixel storage</a>; may be nullptr</td>
</tr>
<tr> <td><a name='SkBitmap_installPixels_2_rowBytes'><code><strong>rowBytes</strong></code></a></td>
- <td><a href='undocumented#Size'>size</a> <a href='undocumented#Size'>of</a> <a href='undocumented#Pixel'>pixel</a> <a href='undocumented#Pixel'>row</a> <a href='undocumented#Pixel'>or</a> <a href='undocumented#Pixel'>larger</a></td>
+ <td><a href='undocumented#Size'>size</a> of <a href='undocumented#Pixel'>pixel</a> row or larger</td>
</tr>
</table>
### Return Value
-true if <a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a> <a href='SkImageInfo_Reference#SkImageInfo'>is</a> <a href='SkImageInfo_Reference#SkImageInfo'>set</a> <a href='SkImageInfo_Reference#SkImageInfo'>to</a> <a href='#SkBitmap_installPixels_2_info'>info</a>
+true if <a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a> is set to <a href='#SkBitmap_installPixels_2_info'>info</a>
### Example
-<div><fiddle-embed name="a7e04447b2081010c50d7920e80a6bb2"><div>GPU does not support <a href='SkImageInfo_Reference#kUnpremul_SkAlphaType'>kUnpremul_SkAlphaType</a>, <a href='SkImageInfo_Reference#kUnpremul_SkAlphaType'>does</a> <a href='SkImageInfo_Reference#kUnpremul_SkAlphaType'>not</a> <a href='SkImageInfo_Reference#kUnpremul_SkAlphaType'>assert</a> <a href='SkImageInfo_Reference#kUnpremul_SkAlphaType'>that</a> <a href='SkImageInfo_Reference#kUnpremul_SkAlphaType'>it</a> <a href='SkImageInfo_Reference#kUnpremul_SkAlphaType'>does</a> <a href='SkImageInfo_Reference#kUnpremul_SkAlphaType'>not</a>.
+<div><fiddle-embed name="a7e04447b2081010c50d7920e80a6bb2"><div>GPU does not support <a href='SkImageInfo_Reference#kUnpremul_SkAlphaType'>kUnpremul_SkAlphaType</a>, does not assert that it does not.
</div></fiddle-embed></div>
### See Also
@@ -2068,33 +2068,33 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-bool <a href='#SkBitmap_installPixels'>installPixels</a>(<a href='#SkBitmap_installPixels'>const</a> <a href='SkPixmap_Reference#SkPixmap'>SkPixmap</a>& <a href='SkPixmap_Reference#Pixmap'>pixmap</a>)
+bool <a href='#SkBitmap_installPixels'>installPixels</a>(const <a href='SkPixmap_Reference#SkPixmap'>SkPixmap</a>& <a href='SkPixmap_Reference#Pixmap'>pixmap</a>)
</pre>
-Sets <a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a> <a href='SkImageInfo_Reference#SkImageInfo'>to</a> <a href='#SkBitmap_installPixels_3_pixmap'>pixmap</a>.<a href='#SkPixmap_info'>info()</a> <a href='#SkPixmap_info'>following</a> <a href='#SkPixmap_info'>the</a> <a href='#SkPixmap_info'>rules</a> <a href='#SkPixmap_info'>in</a> <a href='#SkBitmap_setInfo'>setInfo</a>(), <a href='#SkBitmap_setInfo'>and</a> <a href='#SkBitmap_setInfo'>creates</a>
-<a href='undocumented#SkPixelRef'>SkPixelRef</a> <a href='undocumented#SkPixelRef'>containing</a> <a href='#SkBitmap_installPixels_3_pixmap'>pixmap</a>.<a href='#SkPixmap_addr'>addr()</a> <a href='#SkPixmap_addr'>and</a> <a href='#SkBitmap_installPixels_3_pixmap'>pixmap</a>.<a href='#SkPixmap_rowBytes'>rowBytes</a>().
+Sets <a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a> to <a href='#SkBitmap_installPixels_3_pixmap'>pixmap</a>.<a href='#SkPixmap_info'>info()</a> following the rules in <a href='#SkBitmap_setInfo'>setInfo</a>(), and creates
+<a href='undocumented#SkPixelRef'>SkPixelRef</a> containing <a href='#SkBitmap_installPixels_3_pixmap'>pixmap</a>.<a href='#SkPixmap_addr'>addr()</a> and <a href='#SkBitmap_installPixels_3_pixmap'>pixmap</a>.<a href='#SkPixmap_rowBytes'>rowBytes</a>().
-If <a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a> <a href='SkImageInfo_Reference#SkImageInfo'>could</a> <a href='SkImageInfo_Reference#SkImageInfo'>not</a> <a href='SkImageInfo_Reference#SkImageInfo'>be</a> <a href='SkImageInfo_Reference#SkImageInfo'>set</a>, <a href='SkImageInfo_Reference#SkImageInfo'>or</a> <a href='#SkBitmap_installPixels_3_pixmap'>pixmap</a>.<a href='#SkPixmap_rowBytes'>rowBytes</a>() <a href='#SkPixmap_rowBytes'>is</a> <a href='#SkPixmap_rowBytes'>less</a> <a href='#SkPixmap_rowBytes'>than</a>
-<a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a>::<a href='#SkImageInfo_minRowBytes'>minRowBytes</a>(): <a href='#SkImageInfo_minRowBytes'>calls</a> <a href='#SkBitmap_reset'>reset()</a>, <a href='#SkBitmap_reset'>and</a> <a href='#SkBitmap_reset'>returns</a> <a href='#SkBitmap_reset'>false</a>.
+If <a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a> could not be set, or <a href='#SkBitmap_installPixels_3_pixmap'>pixmap</a>.<a href='#SkPixmap_rowBytes'>rowBytes</a>() is less than
+<a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a>::<a href='#SkImageInfo_minRowBytes'>minRowBytes</a>(): calls <a href='#SkBitmap_reset'>reset()</a>, and returns false.
-Otherwise, if <a href='#SkBitmap_installPixels_3_pixmap'>pixmap</a>.<a href='#SkPixmap_addr'>addr()</a> <a href='#SkPixmap_addr'>equals</a> <a href='#SkPixmap_addr'>nullptr</a>: <a href='#SkPixmap_addr'>sets</a> <a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a>, <a href='SkImageInfo_Reference#SkImageInfo'>returns</a> <a href='SkImageInfo_Reference#SkImageInfo'>true</a>.
+Otherwise, if <a href='#SkBitmap_installPixels_3_pixmap'>pixmap</a>.<a href='#SkPixmap_addr'>addr()</a> equals nullptr: sets <a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a>, returns true.
-Caller must ensure that <a href='#SkBitmap_installPixels_3_pixmap'>pixmap</a> <a href='#SkBitmap_installPixels_3_pixmap'>is</a> <a href='#SkBitmap_installPixels_3_pixmap'>valid</a> <a href='#SkBitmap_installPixels_3_pixmap'>for</a> <a href='#SkBitmap_installPixels_3_pixmap'>the</a> <a href='#SkBitmap_installPixels_3_pixmap'>lifetime</a> <a href='#SkBitmap_installPixels_3_pixmap'>of</a> <a href='SkBitmap_Reference#SkBitmap'>SkBitmap</a> <a href='SkBitmap_Reference#SkBitmap'>and</a> <a href='undocumented#SkPixelRef'>SkPixelRef</a>.
+Caller must ensure that <a href='#SkBitmap_installPixels_3_pixmap'>pixmap</a> is valid for the lifetime of <a href='SkBitmap_Reference#SkBitmap'>SkBitmap</a> and <a href='undocumented#SkPixelRef'>SkPixelRef</a>.
### Parameters
<table> <tr> <td><a name='SkBitmap_installPixels_3_pixmap'><code><strong>pixmap</strong></code></a></td>
- <td><a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a>, <a href='undocumented#Pixel'>pixel</a> <a href='undocumented#Pixel'>address</a>, <a href='undocumented#Pixel'>and</a> <a href='#SkBitmap_rowBytes'>rowBytes</a>()</td>
+ <td><a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a>, <a href='undocumented#Pixel'>pixel</a> address, and <a href='#SkBitmap_rowBytes'>rowBytes</a>()</td>
</tr>
</table>
### Return Value
-true if <a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a> <a href='SkImageInfo_Reference#SkImageInfo'>was</a> <a href='SkImageInfo_Reference#SkImageInfo'>set</a> <a href='SkImageInfo_Reference#SkImageInfo'>to</a> <a href='#SkBitmap_installPixels_3_pixmap'>pixmap</a>.<a href='#SkPixmap_info'>info()</a>
+true if <a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a> was set to <a href='#SkBitmap_installPixels_3_pixmap'>pixmap</a>.<a href='#SkPixmap_info'>info()</a>
### Example
-<div><fiddle-embed name="6e2a8c9358b34aebd2ec586815fe9d3a"><div>Draw a five by five <a href='SkBitmap_Reference#Bitmap'>bitmap</a>, <a href='SkBitmap_Reference#Bitmap'>and</a> <a href='SkBitmap_Reference#Bitmap'>draw</a> <a href='SkBitmap_Reference#Bitmap'>it</a> <a href='SkBitmap_Reference#Bitmap'>again</a> <a href='SkBitmap_Reference#Bitmap'>with</a> <a href='SkBitmap_Reference#Bitmap'>a</a> <a href='SkBitmap_Reference#Bitmap'>center</a> <a href='SkBitmap_Reference#Bitmap'>white</a> <a href='undocumented#Pixel'>pixel</a>.
+<div><fiddle-embed name="6e2a8c9358b34aebd2ec586815fe9d3a"><div>Draw a five by five <a href='SkBitmap_Reference#Bitmap'>bitmap</a>, and draw it again with a center white <a href='undocumented#Pixel'>pixel</a>.
</div></fiddle-embed></div>
### See Also
@@ -2106,7 +2106,7 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-bool <a href='#SkBitmap_installMaskPixels'>installMaskPixels</a>(<a href='#SkBitmap_installMaskPixels'>const</a> <a href='undocumented#SkMask'>SkMask</a>& <a href='undocumented#SkMask'>mask</a>)
+bool <a href='#SkBitmap_installMaskPixels'>installMaskPixels</a>(const <a href='undocumented#SkMask'>SkMask</a>& mask)
</pre>
To be deprecated soon.
@@ -2118,22 +2118,22 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-void <a href='#SkBitmap_setPixels'>setPixels</a>(<a href='#SkBitmap_setPixels'>void</a>* <a href='#SkBitmap_setPixels'>pixels</a>)
+void <a href='#SkBitmap_setPixels'>setPixels</a>(void* pixels)
</pre>
-Replaces <a href='undocumented#SkPixelRef'>SkPixelRef</a> <a href='undocumented#SkPixelRef'>with</a> <a href='#SkBitmap_setPixels_pixels'>pixels</a>, <a href='#SkBitmap_setPixels_pixels'>preserving</a> <a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a> <a href='SkImageInfo_Reference#SkImageInfo'>and</a> <a href='#SkBitmap_rowBytes'>rowBytes</a>().
-Sets <a href='undocumented#SkPixelRef'>SkPixelRef</a> <a href='undocumented#SkPixelRef'>origin</a> <a href='undocumented#SkPixelRef'>to</a> (0, 0).
+Replaces <a href='undocumented#SkPixelRef'>SkPixelRef</a> with <a href='#SkBitmap_setPixels_pixels'>pixels</a>, preserving <a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a> and <a href='#SkBitmap_rowBytes'>rowBytes</a>().
+Sets <a href='undocumented#SkPixelRef'>SkPixelRef</a> origin to (0, 0).
-If <a href='#SkBitmap_setPixels_pixels'>pixels</a> <a href='#SkBitmap_setPixels_pixels'>is</a> <a href='#SkBitmap_setPixels_pixels'>nullptr</a>, <a href='#SkBitmap_setPixels_pixels'>or</a> <a href='#SkBitmap_setPixels_pixels'>if</a> <a href='#SkBitmap_info'>info()</a>.<a href='#SkImageInfo_colorType'>colorType</a>() <a href='#SkImageInfo_colorType'>equals</a> <a href='SkImageInfo_Reference#kUnknown_SkColorType'>kUnknown_SkColorType</a>;
-release reference to <a href='undocumented#SkPixelRef'>SkPixelRef</a>, <a href='undocumented#SkPixelRef'>and</a> <a href='undocumented#SkPixelRef'>set</a> <a href='undocumented#SkPixelRef'>SkPixelRef</a> <a href='undocumented#SkPixelRef'>to</a> <a href='undocumented#SkPixelRef'>nullptr</a>.
+If <a href='#SkBitmap_setPixels_pixels'>pixels</a> is nullptr, or if <a href='#SkBitmap_info'>info()</a>.<a href='#SkImageInfo_colorType'>colorType</a>() equals <a href='SkImageInfo_Reference#kUnknown_SkColorType'>kUnknown_SkColorType</a>;
+release reference to <a href='undocumented#SkPixelRef'>SkPixelRef</a>, and set <a href='undocumented#SkPixelRef'>SkPixelRef</a> to nullptr.
-Caller is responsible for handling ownership <a href='undocumented#Pixel'>pixel</a> <a href='undocumented#Pixel'>memory</a> <a href='undocumented#Pixel'>for</a> <a href='undocumented#Pixel'>the</a> <a href='undocumented#Pixel'>lifetime</a>
-of <a href='SkBitmap_Reference#SkBitmap'>SkBitmap</a> <a href='SkBitmap_Reference#SkBitmap'>and</a> <a href='undocumented#SkPixelRef'>SkPixelRef</a>.
+Caller is responsible for handling ownership <a href='undocumented#Pixel'>pixel</a> memory for the lifetime
+of <a href='SkBitmap_Reference#SkBitmap'>SkBitmap</a> and <a href='undocumented#SkPixelRef'>SkPixelRef</a>.
### Parameters
<table> <tr> <td><a name='SkBitmap_setPixels_pixels'><code><strong>pixels</strong></code></a></td>
- <td>address of <a href='undocumented#Pixel_Storage'>pixel storage</a>, <a href='undocumented#Pixel'>managed</a> <a href='undocumented#Pixel'>by</a> <a href='undocumented#Pixel'>caller</a></td>
+ <td>address of <a href='undocumented#Pixel_Storage'>pixel storage</a>, managed by caller</td>
</tr>
</table>
@@ -2153,10 +2153,10 @@
bool <a href='#SkBitmap_tryAllocPixels'>tryAllocPixels</a>()
</pre>
-Allocates <a href='undocumented#Pixel'>pixel</a> <a href='undocumented#Pixel'>memory</a> <a href='undocumented#Pixel'>with</a> <a href='#SkBitmap_HeapAllocator'>HeapAllocator</a>, <a href='#SkBitmap_HeapAllocator'>and</a> <a href='#SkBitmap_HeapAllocator'>replaces</a> <a href='#SkBitmap_HeapAllocator'>existing</a> <a href='undocumented#SkPixelRef'>SkPixelRef</a>.
-The allocation <a href='undocumented#Size'>size</a> <a href='undocumented#Size'>is</a> <a href='undocumented#Size'>determined</a> <a href='undocumented#Size'>by</a> <a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a> <a href='SkImageInfo_Reference#SkImageInfo'>width</a>, <a href='SkImageInfo_Reference#SkImageInfo'>height</a>, <a href='SkImageInfo_Reference#SkImageInfo'>and</a> <a href='SkImageInfo_Reference#SkColorType'>SkColorType</a>.
+Allocates <a href='undocumented#Pixel'>pixel</a> memory with <a href='#SkBitmap_HeapAllocator'>HeapAllocator</a>, and replaces existing <a href='undocumented#SkPixelRef'>SkPixelRef</a>.
+The allocation <a href='undocumented#Size'>size</a> is determined by <a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a> width, height, and <a href='SkImageInfo_Reference#SkColorType'>SkColorType</a>.
-Returns false if <a href='#SkBitmap_info'>info()</a>.<a href='#SkImageInfo_colorType'>colorType</a>() <a href='#SkImageInfo_colorType'>is</a> <a href='SkImageInfo_Reference#kUnknown_SkColorType'>kUnknown_SkColorType</a>, <a href='SkImageInfo_Reference#kUnknown_SkColorType'>or</a> <a href='SkImageInfo_Reference#kUnknown_SkColorType'>allocation</a> <a href='SkImageInfo_Reference#kUnknown_SkColorType'>fails</a>.
+Returns false if <a href='#SkBitmap_info'>info()</a>.<a href='#SkImageInfo_colorType'>colorType</a>() is <a href='SkImageInfo_Reference#kUnknown_SkColorType'>kUnknown_SkColorType</a>, or allocation fails.
### Return Value
@@ -2164,9 +2164,9 @@
### Example
-<div><fiddle-embed name="720e4c053fae9e929ab6518b47e49370"><div><a href='SkBitmap_Reference#Bitmap'>Bitmap</a> <a href='SkBitmap_Reference#Bitmap'>hosts</a> <a href='SkBitmap_Reference#Bitmap'>and</a> <a href='SkBitmap_Reference#Bitmap'>draws</a> <a href='SkBitmap_Reference#Bitmap'>gray</a> <a href='SkBitmap_Reference#Bitmap'>values</a> <a href='SkBitmap_Reference#Bitmap'>in</a> <a href='SkBitmap_Reference#Bitmap'>set1</a>. <a href='#SkBitmap_tryAllocPixels'>tryAllocPixels</a> <a href='#SkBitmap_tryAllocPixels'>replaces</a> <a href='#Pixel_Ref'>Pixel_Ref</a>
-<a href='#Pixel_Ref'>and</a> <a href='#Pixel_Ref'>erases</a> <a href='#Pixel_Ref'>it</a> <a href='#Pixel_Ref'>to</a> <a href='#Pixel_Ref'>black</a>, <a href='#Pixel_Ref'>but</a> <a href='#Pixel_Ref'>does</a> <a href='#Pixel_Ref'>not</a> <a href='#Pixel_Ref'>alter</a> <a href='#Pixel_Ref'>set1</a>. <a href='#SkBitmap_setPixels'>setPixels</a> <a href='#SkBitmap_setPixels'>replaces</a> <a href='#SkBitmap_setPixels'>black</a>
-<a href='#Pixel_Ref'>Pixel_Ref</a> <a href='#Pixel_Ref'>with</a> <a href='#Pixel_Ref'>set1</a>.
+<div><fiddle-embed name="720e4c053fae9e929ab6518b47e49370"><div><a href='SkBitmap_Reference#Bitmap'>Bitmap</a> hosts and draws gray values in set1. <a href='#SkBitmap_tryAllocPixels'>tryAllocPixels</a> replaces <a href='#Pixel_Ref'>Pixel_Ref</a>
+and erases it to black, but does not alter set1. <a href='#SkBitmap_setPixels'>setPixels</a> replaces black
+<a href='#Pixel_Ref'>Pixel_Ref</a> with set1.
</div></fiddle-embed></div>
### See Also
@@ -2181,18 +2181,18 @@
void <a href='#SkBitmap_allocPixels'>allocPixels</a>()
</pre>
-Allocates <a href='undocumented#Pixel'>pixel</a> <a href='undocumented#Pixel'>memory</a> <a href='undocumented#Pixel'>with</a> <a href='#SkBitmap_HeapAllocator'>HeapAllocator</a>, <a href='#SkBitmap_HeapAllocator'>and</a> <a href='#SkBitmap_HeapAllocator'>replaces</a> <a href='#SkBitmap_HeapAllocator'>existing</a> <a href='undocumented#SkPixelRef'>SkPixelRef</a>.
-The allocation <a href='undocumented#Size'>size</a> <a href='undocumented#Size'>is</a> <a href='undocumented#Size'>determined</a> <a href='undocumented#Size'>by</a> <a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a> <a href='SkImageInfo_Reference#SkImageInfo'>width</a>, <a href='SkImageInfo_Reference#SkImageInfo'>height</a>, <a href='SkImageInfo_Reference#SkImageInfo'>and</a> <a href='SkImageInfo_Reference#SkColorType'>SkColorType</a>.
+Allocates <a href='undocumented#Pixel'>pixel</a> memory with <a href='#SkBitmap_HeapAllocator'>HeapAllocator</a>, and replaces existing <a href='undocumented#SkPixelRef'>SkPixelRef</a>.
+The allocation <a href='undocumented#Size'>size</a> is determined by <a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a> width, height, and <a href='SkImageInfo_Reference#SkColorType'>SkColorType</a>.
-Aborts if <a href='#SkBitmap_info'>info()</a>.<a href='#SkImageInfo_colorType'>colorType</a>() <a href='#SkImageInfo_colorType'>is</a> <a href='SkImageInfo_Reference#kUnknown_SkColorType'>kUnknown_SkColorType</a>, <a href='SkImageInfo_Reference#kUnknown_SkColorType'>or</a> <a href='SkImageInfo_Reference#kUnknown_SkColorType'>allocation</a> <a href='SkImageInfo_Reference#kUnknown_SkColorType'>fails</a>.
+Aborts if <a href='#SkBitmap_info'>info()</a>.<a href='#SkImageInfo_colorType'>colorType</a>() is <a href='SkImageInfo_Reference#kUnknown_SkColorType'>kUnknown_SkColorType</a>, or allocation fails.
Abort steps may be provided by the user at compile
time by defining SK_ABORT.
### Example
-<div><fiddle-embed name="1219b38c788bf270fb20f8cd2d78cff8"><div><a href='SkBitmap_Reference#Bitmap'>Bitmap</a> <a href='SkBitmap_Reference#Bitmap'>hosts</a> <a href='SkBitmap_Reference#Bitmap'>and</a> <a href='SkBitmap_Reference#Bitmap'>draws</a> <a href='SkBitmap_Reference#Bitmap'>gray</a> <a href='SkBitmap_Reference#Bitmap'>values</a> <a href='SkBitmap_Reference#Bitmap'>in</a> <a href='SkBitmap_Reference#Bitmap'>set1</a>. <a href='#SkBitmap_allocPixels'>allocPixels</a> <a href='#SkBitmap_allocPixels'>replaces</a> <a href='#Pixel_Ref'>Pixel_Ref</a>
-<a href='#Pixel_Ref'>and</a> <a href='#Pixel_Ref'>erases</a> <a href='#Pixel_Ref'>it</a> <a href='#Pixel_Ref'>to</a> <a href='#Pixel_Ref'>black</a>, <a href='#Pixel_Ref'>but</a> <a href='#Pixel_Ref'>does</a> <a href='#Pixel_Ref'>not</a> <a href='#Pixel_Ref'>alter</a> <a href='#Pixel_Ref'>set1</a>. <a href='#SkBitmap_setPixels'>setPixels</a> <a href='#SkBitmap_setPixels'>replaces</a> <a href='#SkBitmap_setPixels'>black</a>
-<a href='#Pixel_Ref'>Pixel_Ref</a> <a href='#Pixel_Ref'>with</a> <a href='#Pixel_Ref'>set2</a>.
+<div><fiddle-embed name="1219b38c788bf270fb20f8cd2d78cff8"><div><a href='SkBitmap_Reference#Bitmap'>Bitmap</a> hosts and draws gray values in set1. <a href='#SkBitmap_allocPixels'>allocPixels</a> replaces <a href='#Pixel_Ref'>Pixel_Ref</a>
+and erases it to black, but does not alter set1. <a href='#SkBitmap_setPixels'>setPixels</a> replaces black
+<a href='#Pixel_Ref'>Pixel_Ref</a> with set2.
</div></fiddle-embed></div>
### See Also
@@ -2204,32 +2204,32 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-bool <a href='#SkBitmap_tryAllocPixels'>tryAllocPixels</a>(<a href='#SkBitmap_Allocator'>Allocator</a>* <a href='#SkBitmap_Allocator'>allocator</a>)
+bool <a href='#SkBitmap_tryAllocPixels'>tryAllocPixels</a>(<a href='#SkBitmap_Allocator'>Allocator</a>* allocator)
</pre>
-Allocates <a href='undocumented#Pixel'>pixel</a> <a href='undocumented#Pixel'>memory</a> <a href='undocumented#Pixel'>with</a> <a href='#SkBitmap_tryAllocPixels_4_allocator'>allocator</a>, <a href='#SkBitmap_tryAllocPixels_4_allocator'>and</a> <a href='#SkBitmap_tryAllocPixels_4_allocator'>replaces</a> <a href='#SkBitmap_tryAllocPixels_4_allocator'>existing</a> <a href='undocumented#SkPixelRef'>SkPixelRef</a>.
-The allocation <a href='undocumented#Size'>size</a> <a href='undocumented#Size'>is</a> <a href='undocumented#Size'>determined</a> <a href='undocumented#Size'>by</a> <a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a> <a href='SkImageInfo_Reference#SkImageInfo'>width</a>, <a href='SkImageInfo_Reference#SkImageInfo'>height</a>, <a href='SkImageInfo_Reference#SkImageInfo'>and</a> <a href='SkImageInfo_Reference#SkColorType'>SkColorType</a>.
-If <a href='#SkBitmap_tryAllocPixels_4_allocator'>allocator</a> <a href='#SkBitmap_tryAllocPixels_4_allocator'>is</a> <a href='#SkBitmap_tryAllocPixels_4_allocator'>nullptr</a>, <a href='#SkBitmap_tryAllocPixels_4_allocator'>use</a> <a href='#SkBitmap_HeapAllocator'>HeapAllocator</a> <a href='#SkBitmap_HeapAllocator'>instead</a>.
+Allocates <a href='undocumented#Pixel'>pixel</a> memory with <a href='#SkBitmap_tryAllocPixels_4_allocator'>allocator</a>, and replaces existing <a href='undocumented#SkPixelRef'>SkPixelRef</a>.
+The allocation <a href='undocumented#Size'>size</a> is determined by <a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a> width, height, and <a href='SkImageInfo_Reference#SkColorType'>SkColorType</a>.
+If <a href='#SkBitmap_tryAllocPixels_4_allocator'>allocator</a> is nullptr, use <a href='#SkBitmap_HeapAllocator'>HeapAllocator</a> instead.
-Returns false if <a href='#SkBitmap_Allocator'>Allocator</a>::<a href='#SkBitmap_Allocator_allocPixelRef'>allocPixelRef</a> <a href='#SkBitmap_Allocator_allocPixelRef'>return</a> <a href='#SkBitmap_Allocator_allocPixelRef'>false</a>.
+Returns false if <a href='#SkBitmap_Allocator'>Allocator</a>::<a href='#SkBitmap_Allocator_allocPixelRef'>allocPixelRef</a> return false.
### Parameters
<table> <tr> <td><a name='SkBitmap_tryAllocPixels_4_allocator'><code><strong>allocator</strong></code></a></td>
- <td>instance of <a href='SkBitmap_Reference#SkBitmap'>SkBitmap</a>::<a href='#SkBitmap_Allocator'>Allocator</a> <a href='#SkBitmap_Allocator'>instantiation</a></td>
+ <td>instance of <a href='SkBitmap_Reference#SkBitmap'>SkBitmap</a>::<a href='#SkBitmap_Allocator'>Allocator</a> instantiation</td>
</tr>
</table>
### Return Value
-true if custom <a href='#SkBitmap_tryAllocPixels_4_allocator'>allocator</a> <a href='#SkBitmap_tryAllocPixels_4_allocator'>reports</a> <a href='#SkBitmap_tryAllocPixels_4_allocator'>success</a>
+true if custom <a href='#SkBitmap_tryAllocPixels_4_allocator'>allocator</a> reports success
### Example
-<div><fiddle-embed name="eb6f861ca1839146d26e40d56c2a001c"><div><a href='#SkBitmap_HeapAllocator'>HeapAllocator</a> <a href='#SkBitmap_HeapAllocator'>limits</a> <a href='#SkBitmap_HeapAllocator'>the</a> <a href='#SkBitmap_HeapAllocator'>maximum</a> <a href='undocumented#Size'>size</a> <a href='undocumented#Size'>of</a> <a href='SkBitmap_Reference#Bitmap'>Bitmap</a> <a href='SkBitmap_Reference#Bitmap'>to</a> <a href='SkBitmap_Reference#Bitmap'>two</a> <a href='SkBitmap_Reference#Bitmap'>gigabytes</a>. <a href='SkBitmap_Reference#Bitmap'>Using</a>
-<a href='SkBitmap_Reference#Bitmap'>a</a> <a href='SkBitmap_Reference#Bitmap'>custom</a> <a href='#SkBitmap_tryAllocPixels_4_allocator'>allocator</a>, <a href='#SkBitmap_tryAllocPixels_4_allocator'>this</a> <a href='#SkBitmap_tryAllocPixels_4_allocator'>limitation</a> <a href='#SkBitmap_tryAllocPixels_4_allocator'>may</a> <a href='#SkBitmap_tryAllocPixels_4_allocator'>be</a> <a href='#SkBitmap_tryAllocPixels_4_allocator'>relaxed</a>. <a href='#SkBitmap_tryAllocPixels_4_allocator'>This</a> <a href='#SkBitmap_tryAllocPixels_4_allocator'>example</a> <a href='#SkBitmap_tryAllocPixels_4_allocator'>can</a> <a href='#SkBitmap_tryAllocPixels_4_allocator'>be</a>
-<a href='#SkBitmap_tryAllocPixels_4_allocator'>modified</a> <a href='#SkBitmap_tryAllocPixels_4_allocator'>to</a> <a href='#SkBitmap_tryAllocPixels_4_allocator'>allocate</a> <a href='#SkBitmap_tryAllocPixels_4_allocator'>an</a> <a href='#SkBitmap_tryAllocPixels_4_allocator'>eight</a> <a href='#SkBitmap_tryAllocPixels_4_allocator'>gigabyte</a> <a href='SkBitmap_Reference#Bitmap'>Bitmap</a> <a href='SkBitmap_Reference#Bitmap'>on</a> <a href='SkBitmap_Reference#Bitmap'>a</a> 64-<a href='SkBitmap_Reference#Bitmap'>bit</a> <a href='SkBitmap_Reference#Bitmap'>platform</a> <a href='SkBitmap_Reference#Bitmap'>with</a>
-<a href='SkBitmap_Reference#Bitmap'>sufficient</a> <a href='SkBitmap_Reference#Bitmap'>memory</a>.
+<div><fiddle-embed name="eb6f861ca1839146d26e40d56c2a001c"><div><a href='#SkBitmap_HeapAllocator'>HeapAllocator</a> limits the maximum <a href='undocumented#Size'>size</a> of <a href='SkBitmap_Reference#Bitmap'>Bitmap</a> to two gigabytes. Using
+a custom <a href='#SkBitmap_tryAllocPixels_4_allocator'>allocator</a>, this limitation may be relaxed. This example can be
+modified to allocate an eight gigabyte <a href='SkBitmap_Reference#Bitmap'>Bitmap</a> on a 64-bit platform with
+sufficient memory.
</div></fiddle-embed></div>
### See Also
@@ -2241,20 +2241,20 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-void <a href='#SkBitmap_allocPixels'>allocPixels</a>(<a href='#SkBitmap_Allocator'>Allocator</a>* <a href='#SkBitmap_Allocator'>allocator</a>)
+void <a href='#SkBitmap_allocPixels'>allocPixels</a>(<a href='#SkBitmap_Allocator'>Allocator</a>* allocator)
</pre>
-Allocates <a href='undocumented#Pixel'>pixel</a> <a href='undocumented#Pixel'>memory</a> <a href='undocumented#Pixel'>with</a> <a href='#SkBitmap_allocPixels_4_allocator'>allocator</a>, <a href='#SkBitmap_allocPixels_4_allocator'>and</a> <a href='#SkBitmap_allocPixels_4_allocator'>replaces</a> <a href='#SkBitmap_allocPixels_4_allocator'>existing</a> <a href='undocumented#SkPixelRef'>SkPixelRef</a>.
-The allocation <a href='undocumented#Size'>size</a> <a href='undocumented#Size'>is</a> <a href='undocumented#Size'>determined</a> <a href='undocumented#Size'>by</a> <a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a> <a href='SkImageInfo_Reference#SkImageInfo'>width</a>, <a href='SkImageInfo_Reference#SkImageInfo'>height</a>, <a href='SkImageInfo_Reference#SkImageInfo'>and</a> <a href='SkImageInfo_Reference#SkColorType'>SkColorType</a>.
-If <a href='#SkBitmap_allocPixels_4_allocator'>allocator</a> <a href='#SkBitmap_allocPixels_4_allocator'>is</a> <a href='#SkBitmap_allocPixels_4_allocator'>nullptr</a>, <a href='#SkBitmap_allocPixels_4_allocator'>use</a> <a href='#SkBitmap_HeapAllocator'>HeapAllocator</a> <a href='#SkBitmap_HeapAllocator'>instead</a>.
+Allocates <a href='undocumented#Pixel'>pixel</a> memory with <a href='#SkBitmap_allocPixels_4_allocator'>allocator</a>, and replaces existing <a href='undocumented#SkPixelRef'>SkPixelRef</a>.
+The allocation <a href='undocumented#Size'>size</a> is determined by <a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a> width, height, and <a href='SkImageInfo_Reference#SkColorType'>SkColorType</a>.
+If <a href='#SkBitmap_allocPixels_4_allocator'>allocator</a> is nullptr, use <a href='#SkBitmap_HeapAllocator'>HeapAllocator</a> instead.
-Aborts if <a href='#SkBitmap_Allocator'>Allocator</a>::<a href='#SkBitmap_Allocator_allocPixelRef'>allocPixelRef</a> <a href='#SkBitmap_Allocator_allocPixelRef'>return</a> <a href='#SkBitmap_Allocator_allocPixelRef'>false</a>. <a href='#SkBitmap_Allocator_allocPixelRef'>Abort</a> <a href='#SkBitmap_Allocator_allocPixelRef'>steps</a> <a href='#SkBitmap_Allocator_allocPixelRef'>may</a> <a href='#SkBitmap_Allocator_allocPixelRef'>be</a> <a href='#SkBitmap_Allocator_allocPixelRef'>provided</a> <a href='#SkBitmap_Allocator_allocPixelRef'>by</a>
+Aborts if <a href='#SkBitmap_Allocator'>Allocator</a>::<a href='#SkBitmap_Allocator_allocPixelRef'>allocPixelRef</a> return false. Abort steps may be provided by
the user at compile time by defining SK_ABORT.
### Parameters
<table> <tr> <td><a name='SkBitmap_allocPixels_4_allocator'><code><strong>allocator</strong></code></a></td>
- <td>instance of <a href='SkBitmap_Reference#SkBitmap'>SkBitmap</a>::<a href='#SkBitmap_Allocator'>Allocator</a> <a href='#SkBitmap_Allocator'>instantiation</a></td>
+ <td>instance of <a href='SkBitmap_Reference#SkBitmap'>SkBitmap</a>::<a href='#SkBitmap_Allocator'>Allocator</a> instantiation</td>
</tr>
</table>
@@ -2271,17 +2271,17 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-<a href='undocumented#SkPixelRef'>SkPixelRef</a>* <a href='#SkBitmap_pixelRef'>pixelRef</a>() <a href='#SkBitmap_pixelRef'>const</a>
+<a href='undocumented#SkPixelRef'>SkPixelRef</a>* <a href='#SkBitmap_pixelRef'>pixelRef</a>() const
</pre>
-Returns <a href='undocumented#SkPixelRef'>SkPixelRef</a>, <a href='undocumented#SkPixelRef'>which</a> <a href='undocumented#SkPixelRef'>contains</a>: <a href='undocumented#Pixel'>pixel</a> <a href='undocumented#Pixel'>base</a> <a href='undocumented#Pixel'>address</a>; <a href='undocumented#Pixel'>its</a> <a href='undocumented#Pixel'>dimensions</a>; <a href='undocumented#Pixel'>and</a>
-<a href='#SkBitmap_rowBytes'>rowBytes</a>(), <a href='#SkBitmap_rowBytes'>the</a> <a href='#SkBitmap_rowBytes'>interval</a> <a href='#SkBitmap_rowBytes'>from</a> <a href='#SkBitmap_rowBytes'>one</a> <a href='#SkBitmap_rowBytes'>row</a> <a href='#SkBitmap_rowBytes'>to</a> <a href='#SkBitmap_rowBytes'>the</a> <a href='#SkBitmap_rowBytes'>next</a>. <a href='#SkBitmap_rowBytes'>Does</a> <a href='#SkBitmap_rowBytes'>not</a> <a href='#SkBitmap_rowBytes'>change</a> <a href='undocumented#SkPixelRef'>SkPixelRef</a>
-reference count. <a href='undocumented#SkPixelRef'>SkPixelRef</a> <a href='undocumented#SkPixelRef'>may</a> <a href='undocumented#SkPixelRef'>be</a> <a href='undocumented#SkPixelRef'>shared</a> <a href='undocumented#SkPixelRef'>by</a> <a href='undocumented#SkPixelRef'>multiple</a> <a href='SkBitmap_Reference#Bitmap'>bitmaps</a>.
-If <a href='undocumented#SkPixelRef'>SkPixelRef</a> <a href='undocumented#SkPixelRef'>has</a> <a href='undocumented#SkPixelRef'>not</a> <a href='undocumented#SkPixelRef'>been</a> <a href='undocumented#SkPixelRef'>set</a>, <a href='undocumented#SkPixelRef'>returns</a> <a href='undocumented#SkPixelRef'>nullptr</a>.
+Returns <a href='undocumented#SkPixelRef'>SkPixelRef</a>, which contains: <a href='undocumented#Pixel'>pixel</a> base address; its dimensions; and
+<a href='#SkBitmap_rowBytes'>rowBytes</a>(), the interval from one row to the next. Does not change <a href='undocumented#SkPixelRef'>SkPixelRef</a>
+reference count. <a href='undocumented#SkPixelRef'>SkPixelRef</a> may be shared by multiple <a href='SkBitmap_Reference#Bitmap'>bitmaps</a>.
+If <a href='undocumented#SkPixelRef'>SkPixelRef</a> has not been set, returns nullptr.
### Return Value
-<a href='undocumented#SkPixelRef'>SkPixelRef</a>, <a href='undocumented#SkPixelRef'>or</a> <a href='undocumented#SkPixelRef'>nullptr</a>
+<a href='undocumented#SkPixelRef'>SkPixelRef</a>, or nullptr
### Example
@@ -2296,21 +2296,21 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-<a href='SkIPoint_Reference#SkIPoint'>SkIPoint</a> <a href='#SkBitmap_pixelRefOrigin'>pixelRefOrigin</a>() <a href='#SkBitmap_pixelRefOrigin'>const</a>
+<a href='SkIPoint_Reference#SkIPoint'>SkIPoint</a> <a href='#SkBitmap_pixelRefOrigin'>pixelRefOrigin</a>() const
</pre>
-Returns origin of pixels within <a href='undocumented#SkPixelRef'>SkPixelRef</a>. <a href='SkBitmap_Reference#SkBitmap'>SkBitmap</a> <a href='SkBitmap_Reference#SkBitmap'>bounds</a> <a href='SkBitmap_Reference#SkBitmap'>is</a> <a href='SkBitmap_Reference#SkBitmap'>always</a> <a href='SkBitmap_Reference#SkBitmap'>contained</a>
-by <a href='undocumented#SkPixelRef'>SkPixelRef</a> <a href='undocumented#SkPixelRef'>bounds</a>, <a href='undocumented#SkPixelRef'>which</a> <a href='undocumented#SkPixelRef'>may</a> <a href='undocumented#SkPixelRef'>be</a> <a href='undocumented#SkPixelRef'>the</a> <a href='undocumented#SkPixelRef'>same</a> <a href='undocumented#Size'>size</a> <a href='undocumented#Size'>or</a> <a href='undocumented#Size'>larger</a>. <a href='undocumented#Size'>Multiple</a> <a href='SkBitmap_Reference#SkBitmap'>SkBitmap</a>
-can share the same <a href='undocumented#SkPixelRef'>SkPixelRef</a>, <a href='undocumented#SkPixelRef'>where</a> <a href='undocumented#SkPixelRef'>each</a> <a href='SkBitmap_Reference#SkBitmap'>SkBitmap</a> <a href='SkBitmap_Reference#SkBitmap'>has</a> <a href='SkBitmap_Reference#SkBitmap'>different</a> <a href='SkBitmap_Reference#SkBitmap'>bounds</a>.
+Returns origin of pixels within <a href='undocumented#SkPixelRef'>SkPixelRef</a>. <a href='SkBitmap_Reference#SkBitmap'>SkBitmap</a> bounds is always contained
+by <a href='undocumented#SkPixelRef'>SkPixelRef</a> bounds, which may be the same <a href='undocumented#Size'>size</a> or larger. Multiple <a href='SkBitmap_Reference#SkBitmap'>SkBitmap</a>
+can share the same <a href='undocumented#SkPixelRef'>SkPixelRef</a>, where each <a href='SkBitmap_Reference#SkBitmap'>SkBitmap</a> has different bounds.
-The returned origin added to <a href='SkBitmap_Reference#SkBitmap'>SkBitmap</a> <a href='SkBitmap_Reference#SkBitmap'>dimensions</a> <a href='SkBitmap_Reference#SkBitmap'>equals</a> <a href='SkBitmap_Reference#SkBitmap'>or</a> <a href='SkBitmap_Reference#SkBitmap'>is</a> <a href='SkBitmap_Reference#SkBitmap'>smaller</a> <a href='SkBitmap_Reference#SkBitmap'>than</a> <a href='SkBitmap_Reference#SkBitmap'>the</a>
-<a href='undocumented#SkPixelRef'>SkPixelRef</a> <a href='undocumented#SkPixelRef'>dimensions</a>.
+The returned origin added to <a href='SkBitmap_Reference#SkBitmap'>SkBitmap</a> dimensions equals or is smaller than the
+<a href='undocumented#SkPixelRef'>SkPixelRef</a> dimensions.
-Returns (0, 0) if <a href='undocumented#SkPixelRef'>SkPixelRef</a> <a href='undocumented#SkPixelRef'>is</a> <a href='undocumented#SkPixelRef'>nullptr</a>.
+Returns (0, 0) if <a href='undocumented#SkPixelRef'>SkPixelRef</a> is nullptr.
### Return Value
-<a href='undocumented#Pixel'>pixel</a> <a href='undocumented#Pixel'>origin</a> <a href='undocumented#Pixel'>within</a> <a href='undocumented#SkPixelRef'>SkPixelRef</a>
+<a href='undocumented#Pixel'>pixel</a> origin within <a href='undocumented#SkPixelRef'>SkPixelRef</a>
### Example
@@ -2336,34 +2336,34 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-void <a href='#SkBitmap_setPixelRef'>setPixelRef</a>(<a href='undocumented#sk_sp'>sk_sp</a>&<a href='undocumented#sk_sp'>lt</a>;<a href='undocumented#SkPixelRef'>SkPixelRef</a>&<a href='undocumented#SkPixelRef'>gt</a>; <a href='#SkBitmap_pixelRef'>pixelRef</a>, <a href='#SkBitmap_pixelRef'>int</a> <a href='#SkBitmap_pixelRef'>dx</a>, <a href='#SkBitmap_pixelRef'>int</a> <a href='#SkBitmap_pixelRef'>dy</a>)
+void <a href='#SkBitmap_setPixelRef'>setPixelRef</a>(<a href='undocumented#sk_sp'>sk_sp</a><<a href='undocumented#SkPixelRef'>SkPixelRef</a>> <a href='#SkBitmap_pixelRef'>pixelRef</a>, int dx, int dy)
</pre>
-Replaces <a href='#SkBitmap_setPixelRef_pixelRef'>pixelRef</a> <a href='#SkBitmap_setPixelRef_pixelRef'>and</a> <a href='#SkBitmap_setPixelRef_pixelRef'>origin</a> <a href='#SkBitmap_setPixelRef_pixelRef'>in</a> <a href='SkBitmap_Reference#SkBitmap'>SkBitmap</a>. <a href='#SkBitmap_setPixelRef_dx'>dx</a> <a href='#SkBitmap_setPixelRef_dx'>and</a> <a href='#SkBitmap_setPixelRef_dy'>dy</a> <a href='#SkBitmap_setPixelRef_dy'>specify</a> <a href='#SkBitmap_setPixelRef_dy'>the</a> <a href='#SkBitmap_setPixelRef_dy'>offset</a>
-within the <a href='undocumented#SkPixelRef'>SkPixelRef</a> <a href='undocumented#SkPixelRef'>pixels</a> <a href='undocumented#SkPixelRef'>for</a> <a href='undocumented#SkPixelRef'>the</a> <a href='undocumented#SkPixelRef'>top-left</a> <a href='undocumented#SkPixelRef'>corner</a> <a href='undocumented#SkPixelRef'>of</a> <a href='undocumented#SkPixelRef'>the</a> <a href='SkBitmap_Reference#Bitmap'>bitmap</a>.
+Replaces <a href='#SkBitmap_setPixelRef_pixelRef'>pixelRef</a> and origin in <a href='SkBitmap_Reference#SkBitmap'>SkBitmap</a>. <a href='#SkBitmap_setPixelRef_dx'>dx</a> and <a href='#SkBitmap_setPixelRef_dy'>dy</a> specify the offset
+within the <a href='undocumented#SkPixelRef'>SkPixelRef</a> pixels for the top-left corner of the <a href='SkBitmap_Reference#Bitmap'>bitmap</a>.
-Asserts in debug builds if <a href='#SkBitmap_setPixelRef_dx'>dx</a> <a href='#SkBitmap_setPixelRef_dx'>or</a> <a href='#SkBitmap_setPixelRef_dy'>dy</a> <a href='#SkBitmap_setPixelRef_dy'>are</a> <a href='#SkBitmap_setPixelRef_dy'>out</a> <a href='#SkBitmap_setPixelRef_dy'>of</a> <a href='#SkBitmap_setPixelRef_dy'>range</a>. <a href='#SkBitmap_setPixelRef_dy'>Pins</a> <a href='#SkBitmap_setPixelRef_dx'>dx</a> <a href='#SkBitmap_setPixelRef_dx'>and</a> <a href='#SkBitmap_setPixelRef_dy'>dy</a>
+Asserts in debug builds if <a href='#SkBitmap_setPixelRef_dx'>dx</a> or <a href='#SkBitmap_setPixelRef_dy'>dy</a> are out of range. Pins <a href='#SkBitmap_setPixelRef_dx'>dx</a> and <a href='#SkBitmap_setPixelRef_dy'>dy</a>
to legal range in release builds.
The caller is responsible for ensuring that the pixels match the
-<a href='SkImageInfo_Reference#SkColorType'>SkColorType</a> <a href='SkImageInfo_Reference#SkColorType'>and</a> <a href='SkImageInfo_Reference#SkAlphaType'>SkAlphaType</a> <a href='SkImageInfo_Reference#SkAlphaType'>in</a> <a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a>.
+<a href='SkImageInfo_Reference#SkColorType'>SkColorType</a> and <a href='SkImageInfo_Reference#SkAlphaType'>SkAlphaType</a> in <a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a>.
### Parameters
<table> <tr> <td><a name='SkBitmap_setPixelRef_pixelRef'><code><strong>pixelRef</strong></code></a></td>
- <td><a href='undocumented#SkPixelRef'>SkPixelRef</a> <a href='undocumented#SkPixelRef'>describing</a> <a href='undocumented#Pixel'>pixel</a> <a href='undocumented#Pixel'>address</a> <a href='undocumented#Pixel'>and</a> <a href='#SkBitmap_rowBytes'>rowBytes</a>()</td>
+ <td><a href='undocumented#SkPixelRef'>SkPixelRef</a> describing <a href='undocumented#Pixel'>pixel</a> address and <a href='#SkBitmap_rowBytes'>rowBytes</a>()</td>
</tr>
<tr> <td><a name='SkBitmap_setPixelRef_dx'><code><strong>dx</strong></code></a></td>
- <td>column offset in <a href='undocumented#SkPixelRef'>SkPixelRef</a> <a href='undocumented#SkPixelRef'>for</a> <a href='SkBitmap_Reference#Bitmap'>bitmap</a> <a href='SkBitmap_Reference#Bitmap'>origin</a></td>
+ <td>column offset in <a href='undocumented#SkPixelRef'>SkPixelRef</a> for <a href='SkBitmap_Reference#Bitmap'>bitmap</a> origin</td>
</tr>
<tr> <td><a name='SkBitmap_setPixelRef_dy'><code><strong>dy</strong></code></a></td>
- <td>row offset in <a href='undocumented#SkPixelRef'>SkPixelRef</a> <a href='undocumented#SkPixelRef'>for</a> <a href='SkBitmap_Reference#Bitmap'>bitmap</a> <a href='SkBitmap_Reference#Bitmap'>origin</a></td>
+ <td>row offset in <a href='undocumented#SkPixelRef'>SkPixelRef</a> for <a href='SkBitmap_Reference#Bitmap'>bitmap</a> origin</td>
</tr>
</table>
### Example
-<div><fiddle-embed name="f98cc0451c6e77a8833d261c9a484c5f"><div>Treating 32-bit <a href='undocumented#Data'>data</a> <a href='undocumented#Data'>as</a> 8-<a href='undocumented#Data'>bit</a> <a href='undocumented#Data'>data</a> <a href='undocumented#Data'>is</a> <a href='undocumented#Data'>unlikely</a> <a href='undocumented#Data'>to</a> <a href='undocumented#Data'>produce</a> <a href='undocumented#Data'>useful</a> <a href='undocumented#Data'>results</a>.
+<div><fiddle-embed name="f98cc0451c6e77a8833d261c9a484c5f"><div>Treating 32-bit <a href='undocumented#Data'>data</a> as 8-bit <a href='undocumented#Data'>data</a> is unlikely to produce useful results.
</div></fiddle-embed></div>
### See Also
@@ -2375,14 +2375,14 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-bool <a href='#SkBitmap_readyToDraw'>readyToDraw</a>() <a href='#SkBitmap_readyToDraw'>const</a>
+bool <a href='#SkBitmap_readyToDraw'>readyToDraw</a>() const
</pre>
-Returns true if <a href='SkBitmap_Reference#SkBitmap'>SkBitmap</a> <a href='SkBitmap_Reference#SkBitmap'>is</a> <a href='SkBitmap_Reference#SkBitmap'>can</a> <a href='SkBitmap_Reference#SkBitmap'>be</a> <a href='SkBitmap_Reference#SkBitmap'>drawn</a>.
+Returns true if <a href='SkBitmap_Reference#SkBitmap'>SkBitmap</a> is can be drawn.
### Return Value
-true if <a href='#SkBitmap_getPixels'>getPixels</a>() <a href='#SkBitmap_getPixels'>is</a> <a href='#SkBitmap_getPixels'>not</a> <a href='#SkBitmap_getPixels'>nullptr</a>
+true if <a href='#SkBitmap_getPixels'>getPixels</a>() is not nullptr
### Example
@@ -2397,12 +2397,12 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-uint32_t <a href='#SkBitmap_getGenerationID'>getGenerationID</a>() <a href='#SkBitmap_getGenerationID'>const</a>
+uint32_t <a href='#SkBitmap_getGenerationID'>getGenerationID</a>() const
</pre>
Returns a unique value corresponding to the pixels in <a href='undocumented#SkPixelRef'>SkPixelRef</a>.
-Returns a different value after <a href='#SkBitmap_notifyPixelsChanged'>notifyPixelsChanged</a>() <a href='#SkBitmap_notifyPixelsChanged'>has</a> <a href='#SkBitmap_notifyPixelsChanged'>been</a> <a href='#SkBitmap_notifyPixelsChanged'>called</a>.
-Returns zero if <a href='undocumented#SkPixelRef'>SkPixelRef</a> <a href='undocumented#SkPixelRef'>is</a> <a href='undocumented#SkPixelRef'>nullptr</a>.
+Returns a different value after <a href='#SkBitmap_notifyPixelsChanged'>notifyPixelsChanged</a>() has been called.
+Returns zero if <a href='undocumented#SkPixelRef'>SkPixelRef</a> is nullptr.
Determines if pixels have changed since last examined.
@@ -2434,11 +2434,11 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-void <a href='#SkBitmap_notifyPixelsChanged'>notifyPixelsChanged</a>() <a href='#SkBitmap_notifyPixelsChanged'>const</a>
+void <a href='#SkBitmap_notifyPixelsChanged'>notifyPixelsChanged</a>() const
</pre>
-Marks that pixels in <a href='undocumented#SkPixelRef'>SkPixelRef</a> <a href='undocumented#SkPixelRef'>have</a> <a href='undocumented#SkPixelRef'>changed</a>. <a href='undocumented#SkPixelRef'>Subsequent</a> <a href='undocumented#SkPixelRef'>calls</a> <a href='undocumented#SkPixelRef'>to</a>
-<a href='#SkBitmap_getGenerationID'>getGenerationID</a>() <a href='#SkBitmap_getGenerationID'>return</a> <a href='#SkBitmap_getGenerationID'>a</a> <a href='#SkBitmap_getGenerationID'>different</a> <a href='#SkBitmap_getGenerationID'>value</a>.
+Marks that pixels in <a href='undocumented#SkPixelRef'>SkPixelRef</a> have changed. Subsequent calls to
+<a href='#SkBitmap_getGenerationID'>getGenerationID</a>() return a different value.
### Example
@@ -2455,12 +2455,12 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-void <a href='#SkBitmap_eraseColor'>eraseColor</a>(<a href='SkColor_Reference#SkColor'>SkColor</a> <a href='SkColor_Reference#SkColor'>c</a>) <a href='SkColor_Reference#SkColor'>const</a>
+void <a href='#SkBitmap_eraseColor'>eraseColor</a>(<a href='SkColor_Reference#SkColor'>SkColor</a> c) const
</pre>
-Replaces <a href='undocumented#Pixel'>pixel</a> <a href='undocumented#Pixel'>values</a> <a href='undocumented#Pixel'>with</a> <a href='#SkBitmap_eraseColor_c'>c</a>. <a href='#SkBitmap_eraseColor_c'>All</a> <a href='#SkBitmap_eraseColor_c'>pixels</a> <a href='#SkBitmap_eraseColor_c'>contained</a> <a href='#SkBitmap_eraseColor_c'>by</a> <a href='#SkBitmap_bounds'>bounds()</a> <a href='#SkBitmap_bounds'>are</a> <a href='#SkBitmap_bounds'>affected</a>.
-If the <a href='#SkBitmap_colorType'>colorType</a>() <a href='#SkBitmap_colorType'>is</a> <a href='SkImageInfo_Reference#kGray_8_SkColorType'>kGray_8_SkColorType</a> <a href='SkImageInfo_Reference#kGray_8_SkColorType'>or</a> <a href='SkImageInfo_Reference#kRGB_565_SkColorType'>kRGB_565_SkColorType</a>, <a href='SkImageInfo_Reference#kRGB_565_SkColorType'>then</a> <a href='SkColor_Reference#Alpha'>alpha</a>
-is ignored; RGB is treated as opaque. If <a href='#SkBitmap_colorType'>colorType</a>() <a href='#SkBitmap_colorType'>is</a> <a href='SkImageInfo_Reference#kAlpha_8_SkColorType'>kAlpha_8_SkColorType</a>,
+Replaces <a href='undocumented#Pixel'>pixel</a> values with <a href='#SkBitmap_eraseColor_c'>c</a>. All pixels contained by <a href='#SkBitmap_bounds'>bounds()</a> are affected.
+If the <a href='#SkBitmap_colorType'>colorType</a>() is <a href='SkImageInfo_Reference#kGray_8_SkColorType'>kGray_8_SkColorType</a> or <a href='SkImageInfo_Reference#kRGB_565_SkColorType'>kRGB_565_SkColorType</a>, then <a href='SkColor_Reference#Alpha'>alpha</a>
+is ignored; RGB is treated as opaque. If <a href='#SkBitmap_colorType'>colorType</a>() is <a href='SkImageInfo_Reference#kAlpha_8_SkColorType'>kAlpha_8_SkColorType</a>,
then RGB is ignored.
### Parameters
@@ -2483,19 +2483,19 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-void <a href='#SkBitmap_eraseARGB'>eraseARGB</a>(<a href='undocumented#U8CPU'>U8CPU</a> <a href='undocumented#U8CPU'>a</a>, <a href='undocumented#U8CPU'>U8CPU</a> <a href='undocumented#U8CPU'>r</a>, <a href='undocumented#U8CPU'>U8CPU</a> <a href='undocumented#U8CPU'>g</a>, <a href='undocumented#U8CPU'>U8CPU</a> <a href='undocumented#U8CPU'>b</a>) <a href='undocumented#U8CPU'>const</a>
+void <a href='#SkBitmap_eraseARGB'>eraseARGB</a>(<a href='undocumented#U8CPU'>U8CPU</a> a, <a href='undocumented#U8CPU'>U8CPU</a> r, <a href='undocumented#U8CPU'>U8CPU</a> g, <a href='undocumented#U8CPU'>U8CPU</a> b) const
</pre>
-Replaces <a href='undocumented#Pixel'>pixel</a> <a href='undocumented#Pixel'>values</a> <a href='undocumented#Pixel'>with</a> <a href='undocumented#Unpremultiply'>unpremultiplied</a> <a href='SkColor_Reference#Color'>color</a> <a href='SkColor_Reference#Color'>built</a> <a href='SkColor_Reference#Color'>from</a> <a href='#SkBitmap_eraseARGB_a'>a</a>, <a href='#SkBitmap_eraseARGB_r'>r</a>, <a href='#SkBitmap_eraseARGB_g'>g</a>, <a href='#SkBitmap_eraseARGB_g'>and</a> <a href='#SkBitmap_eraseARGB_b'>b</a>.
-All pixels contained by <a href='#SkBitmap_bounds'>bounds()</a> <a href='#SkBitmap_bounds'>are</a> <a href='#SkBitmap_bounds'>affected</a>.
-If the <a href='#SkBitmap_colorType'>colorType</a>() <a href='#SkBitmap_colorType'>is</a> <a href='SkImageInfo_Reference#kGray_8_SkColorType'>kGray_8_SkColorType</a> <a href='SkImageInfo_Reference#kGray_8_SkColorType'>or</a> <a href='SkImageInfo_Reference#kRGB_565_SkColorType'>kRGB_565_SkColorType</a>, <a href='SkImageInfo_Reference#kRGB_565_SkColorType'>then</a> <a href='#SkBitmap_eraseARGB_a'>a</a>
-is ignored; <a href='#SkBitmap_eraseARGB_r'>r</a>, <a href='#SkBitmap_eraseARGB_g'>g</a>, <a href='#SkBitmap_eraseARGB_g'>and</a> <a href='#SkBitmap_eraseARGB_b'>b</a> <a href='#SkBitmap_eraseARGB_b'>are</a> <a href='#SkBitmap_eraseARGB_b'>treated</a> <a href='#SkBitmap_eraseARGB_b'>as</a> <a href='#SkBitmap_eraseARGB_b'>opaque</a>. <a href='#SkBitmap_eraseARGB_b'>If</a> <a href='#SkBitmap_colorType'>colorType</a>() <a href='#SkBitmap_colorType'>is</a> <a href='SkImageInfo_Reference#kAlpha_8_SkColorType'>kAlpha_8_SkColorType</a>,
-then <a href='#SkBitmap_eraseARGB_r'>r</a>, <a href='#SkBitmap_eraseARGB_g'>g</a>, <a href='#SkBitmap_eraseARGB_g'>and</a> <a href='#SkBitmap_eraseARGB_b'>b</a> <a href='#SkBitmap_eraseARGB_b'>are</a> <a href='#SkBitmap_eraseARGB_b'>ignored</a>.
+Replaces <a href='undocumented#Pixel'>pixel</a> values with <a href='undocumented#Unpremultiply'>unpremultiplied</a> <a href='SkColor_Reference#Color'>color</a> built from <a href='#SkBitmap_eraseARGB_a'>a</a>, <a href='#SkBitmap_eraseARGB_r'>r</a>, <a href='#SkBitmap_eraseARGB_g'>g</a>, and <a href='#SkBitmap_eraseARGB_b'>b</a>.
+All pixels contained by <a href='#SkBitmap_bounds'>bounds()</a> are affected.
+If the <a href='#SkBitmap_colorType'>colorType</a>() is <a href='SkImageInfo_Reference#kGray_8_SkColorType'>kGray_8_SkColorType</a> or <a href='SkImageInfo_Reference#kRGB_565_SkColorType'>kRGB_565_SkColorType</a>, then <a href='#SkBitmap_eraseARGB_a'>a</a>
+is ignored; <a href='#SkBitmap_eraseARGB_r'>r</a>, <a href='#SkBitmap_eraseARGB_g'>g</a>, and <a href='#SkBitmap_eraseARGB_b'>b</a> are treated as opaque. If <a href='#SkBitmap_colorType'>colorType</a>() is <a href='SkImageInfo_Reference#kAlpha_8_SkColorType'>kAlpha_8_SkColorType</a>,
+then <a href='#SkBitmap_eraseARGB_r'>r</a>, <a href='#SkBitmap_eraseARGB_g'>g</a>, and <a href='#SkBitmap_eraseARGB_b'>b</a> are ignored.
### Parameters
<table> <tr> <td><a name='SkBitmap_eraseARGB_a'><code><strong>a</strong></code></a></td>
- <td>amount of <a href='SkColor_Reference#Alpha'>alpha</a>, <a href='SkColor_Reference#Alpha'>from</a> <a href='SkColor_Reference#Alpha'>fully</a> <a href='SkColor_Reference#Alpha'>transparent</a> (0) <a href='SkColor_Reference#Alpha'>to</a> <a href='SkColor_Reference#Alpha'>fully</a> <a href='SkColor_Reference#Alpha'>opaque</a> (255)</td>
+ <td>amount of <a href='SkColor_Reference#Alpha'>alpha</a>, from fully transparent (0) to fully opaque (255)</td>
</tr>
<tr> <td><a name='SkBitmap_eraseARGB_r'><code><strong>r</strong></code></a></td>
<td>amount of red, from no red (0) to full red (255)</td>
@@ -2521,14 +2521,14 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-void <a href='#SkBitmap_erase'>erase</a>(<a href='SkColor_Reference#SkColor'>SkColor</a> <a href='SkColor_Reference#SkColor'>c</a>, <a href='SkColor_Reference#SkColor'>const</a> <a href='SkIRect_Reference#SkIRect'>SkIRect</a>& <a href='SkIRect_Reference#SkIRect'>area</a>) <a href='SkIRect_Reference#SkIRect'>const</a>
+void <a href='#SkBitmap_erase'>erase</a>(<a href='SkColor_Reference#SkColor'>SkColor</a> c, const <a href='SkIRect_Reference#SkIRect'>SkIRect</a>& area) const
</pre>
-Replaces <a href='undocumented#Pixel'>pixel</a> <a href='undocumented#Pixel'>values</a> <a href='undocumented#Pixel'>inside</a> <a href='#SkBitmap_erase_area'>area</a> <a href='#SkBitmap_erase_area'>with</a> <a href='#SkBitmap_erase_c'>c</a>. <a href='#SkBitmap_erase_c'>If</a> <a href='#SkBitmap_erase_area'>area</a> <a href='#SkBitmap_erase_area'>does</a> <a href='#SkBitmap_erase_area'>not</a> <a href='#SkBitmap_erase_area'>intersect</a> <a href='#SkBitmap_bounds'>bounds()</a>,
+Replaces <a href='undocumented#Pixel'>pixel</a> values inside <a href='#SkBitmap_erase_area'>area</a> with <a href='#SkBitmap_erase_c'>c</a>. If <a href='#SkBitmap_erase_area'>area</a> does not intersect <a href='#SkBitmap_bounds'>bounds()</a>,
call has no effect.
-If the <a href='#SkBitmap_colorType'>colorType</a>() <a href='#SkBitmap_colorType'>is</a> <a href='SkImageInfo_Reference#kGray_8_SkColorType'>kGray_8_SkColorType</a> <a href='SkImageInfo_Reference#kGray_8_SkColorType'>or</a> <a href='SkImageInfo_Reference#kRGB_565_SkColorType'>kRGB_565_SkColorType</a>, <a href='SkImageInfo_Reference#kRGB_565_SkColorType'>then</a> <a href='SkColor_Reference#Alpha'>alpha</a>
-is ignored; RGB is treated as opaque. If <a href='#SkBitmap_colorType'>colorType</a>() <a href='#SkBitmap_colorType'>is</a> <a href='SkImageInfo_Reference#kAlpha_8_SkColorType'>kAlpha_8_SkColorType</a>,
+If the <a href='#SkBitmap_colorType'>colorType</a>() is <a href='SkImageInfo_Reference#kGray_8_SkColorType'>kGray_8_SkColorType</a> or <a href='SkImageInfo_Reference#kRGB_565_SkColorType'>kRGB_565_SkColorType</a>, then <a href='SkColor_Reference#Alpha'>alpha</a>
+is ignored; RGB is treated as opaque. If <a href='#SkBitmap_colorType'>colorType</a>() is <a href='SkImageInfo_Reference#kAlpha_8_SkColorType'>kAlpha_8_SkColorType</a>,
then RGB is ignored.
### Parameters
@@ -2554,7 +2554,7 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-void <a href='#SkBitmap_eraseArea'>eraseArea</a>(<a href='#SkBitmap_eraseArea'>const</a> <a href='SkIRect_Reference#SkIRect'>SkIRect</a>& <a href='SkIRect_Reference#SkIRect'>area</a>, <a href='SkColor_Reference#SkColor'>SkColor</a> <a href='SkColor_Reference#SkColor'>c</a>) <a href='SkColor_Reference#SkColor'>const</a>
+void <a href='#SkBitmap_eraseArea'>eraseArea</a>(const <a href='SkIRect_Reference#SkIRect'>SkIRect</a>& area, <a href='SkColor_Reference#SkColor'>SkColor</a> c) const
</pre>
Deprecated.
@@ -2564,19 +2564,19 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-<a href='SkColor_Reference#SkColor'>SkColor</a> <a href='#SkBitmap_getColor'>getColor</a>(<a href='#SkBitmap_getColor'>int</a> <a href='#SkBitmap_getColor'>x</a>, <a href='#SkBitmap_getColor'>int</a> <a href='#SkBitmap_getColor'>y</a>) <a href='#SkBitmap_getColor'>const</a>
+<a href='SkColor_Reference#SkColor'>SkColor</a> <a href='#SkBitmap_getColor'>getColor</a>(int x, int y) const
</pre>
-Returns <a href='undocumented#Pixel'>pixel</a> <a href='undocumented#Pixel'>at</a> (<a href='#SkBitmap_getColor_x'>x</a>, <a href='#SkBitmap_getColor_y'>y</a>) <a href='#SkBitmap_getColor_y'>as</a> <a href='undocumented#Unpremultiply'>unpremultiplied</a> <a href='SkColor_Reference#Color'>color</a>.
-Returns black with <a href='SkColor_Reference#Alpha'>alpha</a> <a href='SkColor_Reference#Alpha'>if</a> <a href='SkImageInfo_Reference#SkColorType'>SkColorType</a> <a href='SkImageInfo_Reference#SkColorType'>is</a> <a href='SkImageInfo_Reference#kAlpha_8_SkColorType'>kAlpha_8_SkColorType</a>.
+Returns <a href='undocumented#Pixel'>pixel</a> at (<a href='#SkBitmap_getColor_x'>x</a>, <a href='#SkBitmap_getColor_y'>y</a>) as <a href='undocumented#Unpremultiply'>unpremultiplied</a> <a href='SkColor_Reference#Color'>color</a>.
+Returns black with <a href='SkColor_Reference#Alpha'>alpha</a> if <a href='SkImageInfo_Reference#SkColorType'>SkColorType</a> is <a href='SkImageInfo_Reference#kAlpha_8_SkColorType'>kAlpha_8_SkColorType</a>.
-Input is not validated: out of bounds values of <a href='#SkBitmap_getColor_x'>x</a> <a href='#SkBitmap_getColor_x'>or</a> <a href='#SkBitmap_getColor_y'>y</a> <a href='#SkBitmap_getColor_y'>trigger</a> <a href='#SkBitmap_getColor_y'>an</a> <a href='#SkBitmap_getColor_y'>assert()</a> <a href='#SkBitmap_getColor_y'>if</a>
+Input is not validated: out of bounds values of <a href='#SkBitmap_getColor_x'>x</a> or <a href='#SkBitmap_getColor_y'>y</a> trigger an assert() if
built with SK_DEBUG defined; and returns undefined values or may crash if
-SK_RELEASE is defined. Fails if <a href='SkImageInfo_Reference#SkColorType'>SkColorType</a> <a href='SkImageInfo_Reference#SkColorType'>is</a> <a href='SkImageInfo_Reference#kUnknown_SkColorType'>kUnknown_SkColorType</a> <a href='SkImageInfo_Reference#kUnknown_SkColorType'>or</a>
-<a href='undocumented#Pixel'>pixel</a> <a href='undocumented#Pixel'>address</a> <a href='undocumented#Pixel'>is</a> <a href='undocumented#Pixel'>nullptr</a>.
+SK_RELEASE is defined. Fails if <a href='SkImageInfo_Reference#SkColorType'>SkColorType</a> is <a href='SkImageInfo_Reference#kUnknown_SkColorType'>kUnknown_SkColorType</a> or
+<a href='undocumented#Pixel'>pixel</a> address is nullptr.
-<a href='undocumented#SkColorSpace'>SkColorSpace</a> <a href='undocumented#SkColorSpace'>in</a> <a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a> <a href='SkImageInfo_Reference#SkImageInfo'>is</a> <a href='SkImageInfo_Reference#SkImageInfo'>ignored</a>. <a href='SkImageInfo_Reference#SkImageInfo'>Some</a> <a href='SkColor_Reference#Color'>color</a> <a href='SkColor_Reference#Color'>precision</a> <a href='SkColor_Reference#Color'>may</a> <a href='SkColor_Reference#Color'>be</a> <a href='SkColor_Reference#Color'>lost</a> <a href='SkColor_Reference#Color'>in</a> <a href='SkColor_Reference#Color'>the</a>
-conversion to <a href='undocumented#Unpremultiply'>unpremultiplied</a> <a href='SkColor_Reference#Color'>color</a>; <a href='SkColor_Reference#Color'>original</a> <a href='undocumented#Pixel'>pixel</a> <a href='undocumented#Data'>data</a> <a href='undocumented#Data'>may</a> <a href='undocumented#Data'>have</a> <a href='undocumented#Data'>additional</a>
+<a href='undocumented#SkColorSpace'>SkColorSpace</a> in <a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a> is ignored. Some <a href='SkColor_Reference#Color'>color</a> precision may be lost in the
+conversion to <a href='undocumented#Unpremultiply'>unpremultiplied</a> <a href='SkColor_Reference#Color'>color</a>; original <a href='undocumented#Pixel'>pixel</a> <a href='undocumented#Data'>data</a> may have additional
precision.
### Parameters
@@ -2591,7 +2591,7 @@
### Return Value
-<a href='undocumented#Pixel'>pixel</a> <a href='undocumented#Pixel'>converted</a> <a href='undocumented#Pixel'>to</a> <a href='undocumented#Unpremultiply'>unpremultiplied</a> <a href='SkColor_Reference#Color'>color</a>
+<a href='undocumented#Pixel'>pixel</a> converted to <a href='undocumented#Unpremultiply'>unpremultiplied</a> <a href='SkColor_Reference#Color'>color</a>
### Example
@@ -2623,11 +2623,11 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-float <a href='#SkBitmap_getAlphaf'>getAlphaf</a>(<a href='#SkBitmap_getAlphaf'>int</a> <a href='#SkBitmap_getAlphaf'>x</a>, <a href='#SkBitmap_getAlphaf'>int</a> <a href='#SkBitmap_getAlphaf'>y</a>) <a href='#SkBitmap_getAlphaf'>const</a>
+float <a href='#SkBitmap_getAlphaf'>getAlphaf</a>(int x, int y) const
</pre>
-Looks up the <a href='undocumented#Pixel'>pixel</a> <a href='undocumented#Pixel'>at</a> (<a href='#SkBitmap_getAlphaf_x'>x</a>,<a href='#SkBitmap_getAlphaf_y'>y</a>) <a href='#SkBitmap_getAlphaf_y'>and</a> <a href='#SkBitmap_getAlphaf_y'>return</a> <a href='#SkBitmap_getAlphaf_y'>its</a> <a href='SkColor_Reference#Alpha'>alpha</a> <a href='SkColor_Reference#Alpha'>component</a>, <a href='SkColor_Reference#Alpha'>normalized</a> <a href='SkColor_Reference#Alpha'>to</a> [0..1].
-<a href='SkColor_Reference#Alpha'>This</a> <a href='SkColor_Reference#Alpha'>is</a> <a href='SkColor_Reference#Alpha'>roughly</a> <a href='SkColor_Reference#Alpha'>equivalent</a> <a href='SkColor_Reference#Alpha'>to</a> <code>SkGetColorA(<a href='#SkBitmap_getColor'>getColor</a>())</code>, but can be more efficient
+Looks up the <a href='undocumented#Pixel'>pixel</a> at (<a href='#SkBitmap_getAlphaf_x'>x</a>,<a href='#SkBitmap_getAlphaf_y'>y</a>) and return its <a href='SkColor_Reference#Alpha'>alpha</a> component, normalized to [0..1].
+This is roughly equivalent to <code>SkGetColorA(<a href='#SkBitmap_getColor'>getColor</a>())</code>, but can be more efficient
(and more precise if the pixels store more than 8 bits per component).
### Parameters
@@ -2642,7 +2642,7 @@
### Return Value
-<a href='SkColor_Reference#Alpha'>alpha</a> <a href='SkColor_Reference#Alpha'>converted</a> <a href='SkColor_Reference#Alpha'>to</a> <a href='SkColor_Reference#Alpha'>normalized</a> <a href='SkColor_Reference#Alpha'>float</a>
+<a href='SkColor_Reference#Alpha'>alpha</a> converted to normalized float
### See Also
@@ -2653,17 +2653,17 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-void* <a href='#SkBitmap_getAddr'>getAddr</a>(<a href='#SkBitmap_getAddr'>int</a> <a href='#SkBitmap_getAddr'>x</a>, <a href='#SkBitmap_getAddr'>int</a> <a href='#SkBitmap_getAddr'>y</a>) <a href='#SkBitmap_getAddr'>const</a>
+void* <a href='#SkBitmap_getAddr'>getAddr</a>(int x, int y) const
</pre>
-Returns <a href='undocumented#Pixel'>pixel</a> <a href='undocumented#Pixel'>address</a> <a href='undocumented#Pixel'>at</a> (<a href='#SkBitmap_getAddr_x'>x</a>, <a href='#SkBitmap_getAddr_y'>y</a>).
+Returns <a href='undocumented#Pixel'>pixel</a> address at (<a href='#SkBitmap_getAddr_x'>x</a>, <a href='#SkBitmap_getAddr_y'>y</a>).
-Input is not validated: out of bounds values of <a href='#SkBitmap_getAddr_x'>x</a> <a href='#SkBitmap_getAddr_x'>or</a> <a href='#SkBitmap_getAddr_y'>y</a>, <a href='#SkBitmap_getAddr_y'>or</a> <a href='SkImageInfo_Reference#kUnknown_SkColorType'>kUnknown_SkColorType</a>,
+Input is not validated: out of bounds values of <a href='#SkBitmap_getAddr_x'>x</a> or <a href='#SkBitmap_getAddr_y'>y</a>, or <a href='SkImageInfo_Reference#kUnknown_SkColorType'>kUnknown_SkColorType</a>,
trigger an assert() if built with SK_DEBUG defined. Returns nullptr if
-<a href='SkImageInfo_Reference#SkColorType'>SkColorType</a> <a href='SkImageInfo_Reference#SkColorType'>is</a> <a href='SkImageInfo_Reference#kUnknown_SkColorType'>kUnknown_SkColorType</a>, <a href='SkImageInfo_Reference#kUnknown_SkColorType'>or</a> <a href='undocumented#SkPixelRef'>SkPixelRef</a> <a href='undocumented#SkPixelRef'>is</a> <a href='undocumented#SkPixelRef'>nullptr</a>.
+<a href='SkImageInfo_Reference#SkColorType'>SkColorType</a> is <a href='SkImageInfo_Reference#kUnknown_SkColorType'>kUnknown_SkColorType</a>, or <a href='undocumented#SkPixelRef'>SkPixelRef</a> is nullptr.
-Performs a lookup of <a href='undocumented#Pixel'>pixel</a> <a href='undocumented#Size'>size</a>; <a href='undocumented#Size'>for</a> <a href='undocumented#Size'>better</a> <a href='undocumented#Size'>performance</a>, <a href='undocumented#Size'>call</a>
-one of: <a href='#SkBitmap_getAddr8'>getAddr8</a>(), <a href='#SkBitmap_getAddr16'>getAddr16</a>(), <a href='#SkBitmap_getAddr16'>or</a> <a href='#SkBitmap_getAddr32'>getAddr32</a>().
+Performs a lookup of <a href='undocumented#Pixel'>pixel</a> <a href='undocumented#Size'>size</a>; for better performance, call
+one of: <a href='#SkBitmap_getAddr8'>getAddr8</a>(), <a href='#SkBitmap_getAddr16'>getAddr16</a>(), or <a href='#SkBitmap_getAddr32'>getAddr32</a>().
### Parameters
@@ -2700,21 +2700,21 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-uint32_t* <a href='#SkBitmap_getAddr32'>getAddr32</a>(<a href='#SkBitmap_getAddr32'>int</a> <a href='#SkBitmap_getAddr32'>x</a>, <a href='#SkBitmap_getAddr32'>int</a> <a href='#SkBitmap_getAddr32'>y</a>) <a href='#SkBitmap_getAddr32'>const</a>
+uint32_t* <a href='#SkBitmap_getAddr32'>getAddr32</a>(int x, int y) const
</pre>
Returns address at (<a href='#SkBitmap_getAddr32_x'>x</a>, <a href='#SkBitmap_getAddr32_y'>y</a>).
-<a href='#SkBitmap_getAddr32_y'>Input</a> <a href='#SkBitmap_getAddr32_y'>is</a> <a href='#SkBitmap_getAddr32_y'>not</a> <a href='#SkBitmap_getAddr32_y'>validated</a>. <a href='#SkBitmap_getAddr32_y'>Triggers</a> <a href='#SkBitmap_getAddr32_y'>an</a> <a href='#SkBitmap_getAddr32_y'>assert()</a> <a href='#SkBitmap_getAddr32_y'>if</a> <a href='#SkBitmap_getAddr32_y'>built</a> <a href='#SkBitmap_getAddr32_y'>with</a> <a href='#SkBitmap_getAddr32_y'>SK_DEBUG</a> <a href='#SkBitmap_getAddr32_y'>defined</a> <a href='#SkBitmap_getAddr32_y'>and</a>:
+Input is not validated. Triggers an assert() if built with SK_DEBUG defined and:
<table> <tr>
- <td><a href='#Pixel_Ref'>Pixel_Ref</a> <a href='#Pixel_Ref'>is</a> <a href='#Pixel_Ref'>nullptr</a></td>
+ <td><a href='#Pixel_Ref'>Pixel_Ref</a> is nullptr</td>
</tr> <tr>
- <td><a href='#SkBitmap_bytesPerPixel'>bytesPerPixel</a>() <a href='#SkBitmap_bytesPerPixel'>is</a> <a href='#SkBitmap_bytesPerPixel'>not</a> <a href='#SkBitmap_bytesPerPixel'>four</a></td>
+ <td><a href='#SkBitmap_bytesPerPixel'>bytesPerPixel</a>() is not four</td>
</tr> <tr>
- <td><a href='#SkBitmap_getAddr32_x'>x</a> <a href='#SkBitmap_getAddr32_x'>is</a> <a href='#SkBitmap_getAddr32_x'>negative</a>, <a href='#SkBitmap_getAddr32_x'>or</a> <a href='#SkBitmap_getAddr32_x'>not</a> <a href='#SkBitmap_getAddr32_x'>less</a> <a href='#SkBitmap_getAddr32_x'>than</a> <a href='#SkBitmap_width'>width()</a></td>
+ <td><a href='#SkBitmap_getAddr32_x'>x</a> is negative, or not less than <a href='#SkBitmap_width'>width()</a></td>
</tr> <tr>
- <td><a href='#SkBitmap_getAddr32_y'>y</a> <a href='#SkBitmap_getAddr32_y'>is</a> <a href='#SkBitmap_getAddr32_y'>negative</a>, <a href='#SkBitmap_getAddr32_y'>or</a> <a href='#SkBitmap_getAddr32_y'>not</a> <a href='#SkBitmap_getAddr32_y'>less</a> <a href='#SkBitmap_getAddr32_y'>than</a> <a href='#SkBitmap_height'>height()</a></td>
+ <td><a href='#SkBitmap_getAddr32_y'>y</a> is negative, or not less than <a href='#SkBitmap_height'>height()</a></td>
</tr>
</table>
@@ -2730,7 +2730,7 @@
### Return Value
-unsigned 32-bit pointer to <a href='undocumented#Pixel'>pixel</a> <a href='undocumented#Pixel'>at</a> (<a href='#SkBitmap_getAddr32_x'>x</a>, <a href='#SkBitmap_getAddr32_y'>y</a>)
+unsigned 32-bit pointer to <a href='undocumented#Pixel'>pixel</a> at (<a href='#SkBitmap_getAddr32_x'>x</a>, <a href='#SkBitmap_getAddr32_y'>y</a>)
### Example
@@ -2753,21 +2753,21 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-uint16_t* <a href='#SkBitmap_getAddr16'>getAddr16</a>(<a href='#SkBitmap_getAddr16'>int</a> <a href='#SkBitmap_getAddr16'>x</a>, <a href='#SkBitmap_getAddr16'>int</a> <a href='#SkBitmap_getAddr16'>y</a>) <a href='#SkBitmap_getAddr16'>const</a>
+uint16_t* <a href='#SkBitmap_getAddr16'>getAddr16</a>(int x, int y) const
</pre>
Returns address at (<a href='#SkBitmap_getAddr16_x'>x</a>, <a href='#SkBitmap_getAddr16_y'>y</a>).
-<a href='#SkBitmap_getAddr16_y'>Input</a> <a href='#SkBitmap_getAddr16_y'>is</a> <a href='#SkBitmap_getAddr16_y'>not</a> <a href='#SkBitmap_getAddr16_y'>validated</a>. <a href='#SkBitmap_getAddr16_y'>Triggers</a> <a href='#SkBitmap_getAddr16_y'>an</a> <a href='#SkBitmap_getAddr16_y'>assert()</a> <a href='#SkBitmap_getAddr16_y'>if</a> <a href='#SkBitmap_getAddr16_y'>built</a> <a href='#SkBitmap_getAddr16_y'>with</a> <a href='#SkBitmap_getAddr16_y'>SK_DEBUG</a> <a href='#SkBitmap_getAddr16_y'>defined</a> <a href='#SkBitmap_getAddr16_y'>and</a>:
+Input is not validated. Triggers an assert() if built with SK_DEBUG defined and:
<table> <tr>
- <td><a href='#Pixel_Ref'>Pixel_Ref</a> <a href='#Pixel_Ref'>is</a> <a href='#Pixel_Ref'>nullptr</a></td>
+ <td><a href='#Pixel_Ref'>Pixel_Ref</a> is nullptr</td>
</tr> <tr>
- <td><a href='#SkBitmap_bytesPerPixel'>bytesPerPixel</a>() <a href='#SkBitmap_bytesPerPixel'>is</a> <a href='#SkBitmap_bytesPerPixel'>not</a> <a href='#SkBitmap_bytesPerPixel'>two</a></td>
+ <td><a href='#SkBitmap_bytesPerPixel'>bytesPerPixel</a>() is not two</td>
</tr> <tr>
- <td><a href='#SkBitmap_getAddr16_x'>x</a> <a href='#SkBitmap_getAddr16_x'>is</a> <a href='#SkBitmap_getAddr16_x'>negative</a>, <a href='#SkBitmap_getAddr16_x'>or</a> <a href='#SkBitmap_getAddr16_x'>not</a> <a href='#SkBitmap_getAddr16_x'>less</a> <a href='#SkBitmap_getAddr16_x'>than</a> <a href='#SkBitmap_width'>width()</a></td>
+ <td><a href='#SkBitmap_getAddr16_x'>x</a> is negative, or not less than <a href='#SkBitmap_width'>width()</a></td>
</tr> <tr>
- <td><a href='#SkBitmap_getAddr16_y'>y</a> <a href='#SkBitmap_getAddr16_y'>is</a> <a href='#SkBitmap_getAddr16_y'>negative</a>, <a href='#SkBitmap_getAddr16_y'>or</a> <a href='#SkBitmap_getAddr16_y'>not</a> <a href='#SkBitmap_getAddr16_y'>less</a> <a href='#SkBitmap_getAddr16_y'>than</a> <a href='#SkBitmap_height'>height()</a></td>
+ <td><a href='#SkBitmap_getAddr16_y'>y</a> is negative, or not less than <a href='#SkBitmap_height'>height()</a></td>
</tr>
</table>
@@ -2783,7 +2783,7 @@
### Return Value
-unsigned 16-bit pointer to <a href='undocumented#Pixel'>pixel</a> <a href='undocumented#Pixel'>at</a> (<a href='#SkBitmap_getAddr16_x'>x</a>, <a href='#SkBitmap_getAddr16_y'>y</a>)
+unsigned 16-bit pointer to <a href='undocumented#Pixel'>pixel</a> at (<a href='#SkBitmap_getAddr16_x'>x</a>, <a href='#SkBitmap_getAddr16_y'>y</a>)
### Example
@@ -2806,21 +2806,21 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-uint8_t* <a href='#SkBitmap_getAddr8'>getAddr8</a>(<a href='#SkBitmap_getAddr8'>int</a> <a href='#SkBitmap_getAddr8'>x</a>, <a href='#SkBitmap_getAddr8'>int</a> <a href='#SkBitmap_getAddr8'>y</a>) <a href='#SkBitmap_getAddr8'>const</a>
+uint8_t* <a href='#SkBitmap_getAddr8'>getAddr8</a>(int x, int y) const
</pre>
Returns address at (<a href='#SkBitmap_getAddr8_x'>x</a>, <a href='#SkBitmap_getAddr8_y'>y</a>).
-<a href='#SkBitmap_getAddr8_y'>Input</a> <a href='#SkBitmap_getAddr8_y'>is</a> <a href='#SkBitmap_getAddr8_y'>not</a> <a href='#SkBitmap_getAddr8_y'>validated</a>. <a href='#SkBitmap_getAddr8_y'>Triggers</a> <a href='#SkBitmap_getAddr8_y'>an</a> <a href='#SkBitmap_getAddr8_y'>assert()</a> <a href='#SkBitmap_getAddr8_y'>if</a> <a href='#SkBitmap_getAddr8_y'>built</a> <a href='#SkBitmap_getAddr8_y'>with</a> <a href='#SkBitmap_getAddr8_y'>SK_DEBUG</a> <a href='#SkBitmap_getAddr8_y'>defined</a> <a href='#SkBitmap_getAddr8_y'>and</a>:
+Input is not validated. Triggers an assert() if built with SK_DEBUG defined and:
<table> <tr>
- <td><a href='#Pixel_Ref'>Pixel_Ref</a> <a href='#Pixel_Ref'>is</a> <a href='#Pixel_Ref'>nullptr</a></td>
+ <td><a href='#Pixel_Ref'>Pixel_Ref</a> is nullptr</td>
</tr> <tr>
- <td><a href='#SkBitmap_bytesPerPixel'>bytesPerPixel</a>() <a href='#SkBitmap_bytesPerPixel'>is</a> <a href='#SkBitmap_bytesPerPixel'>not</a> <a href='#SkBitmap_bytesPerPixel'>one</a></td>
+ <td><a href='#SkBitmap_bytesPerPixel'>bytesPerPixel</a>() is not one</td>
</tr> <tr>
- <td><a href='#SkBitmap_getAddr8_x'>x</a> <a href='#SkBitmap_getAddr8_x'>is</a> <a href='#SkBitmap_getAddr8_x'>negative</a>, <a href='#SkBitmap_getAddr8_x'>or</a> <a href='#SkBitmap_getAddr8_x'>not</a> <a href='#SkBitmap_getAddr8_x'>less</a> <a href='#SkBitmap_getAddr8_x'>than</a> <a href='#SkBitmap_width'>width()</a></td>
+ <td><a href='#SkBitmap_getAddr8_x'>x</a> is negative, or not less than <a href='#SkBitmap_width'>width()</a></td>
</tr> <tr>
- <td><a href='#SkBitmap_getAddr8_y'>y</a> <a href='#SkBitmap_getAddr8_y'>is</a> <a href='#SkBitmap_getAddr8_y'>negative</a>, <a href='#SkBitmap_getAddr8_y'>or</a> <a href='#SkBitmap_getAddr8_y'>not</a> <a href='#SkBitmap_getAddr8_y'>less</a> <a href='#SkBitmap_getAddr8_y'>than</a> <a href='#SkBitmap_height'>height()</a></td>
+ <td><a href='#SkBitmap_getAddr8_y'>y</a> is negative, or not less than <a href='#SkBitmap_height'>height()</a></td>
</tr>
</table>
@@ -2836,7 +2836,7 @@
### Return Value
-unsigned 8-bit pointer to <a href='undocumented#Pixel'>pixel</a> <a href='undocumented#Pixel'>at</a> (<a href='#SkBitmap_getAddr8_x'>x</a>, <a href='#SkBitmap_getAddr8_y'>y</a>)
+unsigned 8-bit pointer to <a href='undocumented#Pixel'>pixel</a> at (<a href='#SkBitmap_getAddr8_x'>x</a>, <a href='#SkBitmap_getAddr8_y'>y</a>)
### Example
@@ -2859,33 +2859,33 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-bool <a href='#SkBitmap_extractSubset'>extractSubset</a>(<a href='SkBitmap_Reference#SkBitmap'>SkBitmap</a>* <a href='SkBitmap_Reference#SkBitmap'>dst</a>, <a href='SkBitmap_Reference#SkBitmap'>const</a> <a href='SkIRect_Reference#SkIRect'>SkIRect</a>& <a href='SkIRect_Reference#SkIRect'>subset</a>) <a href='SkIRect_Reference#SkIRect'>const</a>
+bool <a href='#SkBitmap_extractSubset'>extractSubset</a>(<a href='SkBitmap_Reference#SkBitmap'>SkBitmap</a>* dst, const <a href='SkIRect_Reference#SkIRect'>SkIRect</a>& subset) const
</pre>
-Shares <a href='#Pixel_Ref'>Pixel_Ref</a> <a href='#Pixel_Ref'>with</a> <a href='#SkBitmap_extractSubset_dst'>dst</a>. <a href='#SkBitmap_extractSubset_dst'>Pixels</a> <a href='#SkBitmap_extractSubset_dst'>are</a> <a href='#SkBitmap_extractSubset_dst'>not</a> <a href='#SkBitmap_extractSubset_dst'>copied</a>; <a href='SkBitmap_Reference#Bitmap'>Bitmap</a> <a href='SkBitmap_Reference#Bitmap'>and</a> <a href='#SkBitmap_extractSubset_dst'>dst</a> <a href='SkPoint_Reference#Point'>point</a>
-<a href='SkPoint_Reference#Point'>to</a> <a href='SkPoint_Reference#Point'>the</a> <a href='SkPoint_Reference#Point'>same</a> <a href='SkPoint_Reference#Point'>pixels</a>; <a href='#SkBitmap_extractSubset_dst'>dst</a> <a href='#SkBitmap_bounds'>bounds()</a> <a href='#SkBitmap_bounds'>are</a> <a href='#SkBitmap_bounds'>set</a> <a href='#SkBitmap_bounds'>to</a> <a href='#SkBitmap_bounds'>the</a> <a href='#SkBitmap_bounds'>intersection</a> <a href='#SkBitmap_bounds'>of</a> <a href='#SkBitmap_extractSubset_subset'>subset</a>
-<a href='#SkBitmap_extractSubset_subset'>and</a> <a href='#SkBitmap_extractSubset_subset'>the</a> <a href='#SkBitmap_extractSubset_subset'>original</a> <a href='#SkBitmap_bounds'>bounds()</a>.
+Shares <a href='#Pixel_Ref'>Pixel_Ref</a> with <a href='#SkBitmap_extractSubset_dst'>dst</a>. Pixels are not copied; <a href='SkBitmap_Reference#Bitmap'>Bitmap</a> and <a href='#SkBitmap_extractSubset_dst'>dst</a> <a href='SkPoint_Reference#Point'>point</a>
+to the same pixels; <a href='#SkBitmap_extractSubset_dst'>dst</a> <a href='#SkBitmap_bounds'>bounds()</a> are set to the intersection of <a href='#SkBitmap_extractSubset_subset'>subset</a>
+and the original <a href='#SkBitmap_bounds'>bounds()</a>.
-<a href='#SkBitmap_extractSubset_subset'>subset</a> <a href='#SkBitmap_extractSubset_subset'>may</a> <a href='#SkBitmap_extractSubset_subset'>be</a> <a href='#SkBitmap_extractSubset_subset'>larger</a> <a href='#SkBitmap_extractSubset_subset'>than</a> <a href='#SkBitmap_bounds'>bounds()</a>. <a href='#SkBitmap_bounds'>Any</a> <a href='#SkBitmap_bounds'>area</a> <a href='#SkBitmap_bounds'>outside</a> <a href='#SkBitmap_bounds'>of</a> <a href='#SkBitmap_bounds'>bounds()</a> <a href='#SkBitmap_bounds'>is</a> <a href='#SkBitmap_bounds'>ignored</a>.
+<a href='#SkBitmap_extractSubset_subset'>subset</a> may be larger than <a href='#SkBitmap_bounds'>bounds()</a>. Any area outside of <a href='#SkBitmap_bounds'>bounds()</a> is ignored.
-<a href='#SkBitmap_bounds'>Any</a> <a href='#SkBitmap_bounds'>contents</a> <a href='#SkBitmap_bounds'>of</a> <a href='#SkBitmap_extractSubset_dst'>dst</a> <a href='#SkBitmap_extractSubset_dst'>are</a> <a href='#SkBitmap_extractSubset_dst'>discarded</a>. <a href='#SkBitmap_isVolatile'>isVolatile</a> <a href='#SkBitmap_isVolatile'>setting</a> <a href='#SkBitmap_isVolatile'>is</a> <a href='#SkBitmap_isVolatile'>copied</a> <a href='#SkBitmap_isVolatile'>to</a> <a href='#SkBitmap_extractSubset_dst'>dst</a>.
-<a href='#SkBitmap_extractSubset_dst'>dst</a> <a href='#SkBitmap_extractSubset_dst'>is</a> <a href='#SkBitmap_extractSubset_dst'>set</a> <a href='#SkBitmap_extractSubset_dst'>to</a> <a href='#SkBitmap_colorType'>colorType</a>, <a href='#SkBitmap_alphaType'>alphaType</a>, <a href='#SkBitmap_alphaType'>and</a> <a href='#SkBitmap_colorSpace'>colorSpace</a>.
+Any contents of <a href='#SkBitmap_extractSubset_dst'>dst</a> are discarded. <a href='#SkBitmap_isVolatile'>isVolatile</a> setting is copied to <a href='#SkBitmap_extractSubset_dst'>dst</a>.
+<a href='#SkBitmap_extractSubset_dst'>dst</a> is set to <a href='#SkBitmap_colorType'>colorType</a>, <a href='#SkBitmap_alphaType'>alphaType</a>, and <a href='#SkBitmap_colorSpace'>colorSpace</a>.
-<a href='#SkBitmap_colorSpace'>Return</a> <a href='#SkBitmap_colorSpace'>false</a> <a href='#SkBitmap_colorSpace'>if</a>:
+Return false if:
<table> <tr>
- <td><a href='#SkBitmap_extractSubset_dst'>dst</a> <a href='#SkBitmap_extractSubset_dst'>is</a> <a href='#SkBitmap_extractSubset_dst'>nullptr</a></td>
+ <td><a href='#SkBitmap_extractSubset_dst'>dst</a> is nullptr</td>
</tr> <tr>
- <td><a href='#Pixel_Ref'>Pixel_Ref</a> <a href='#Pixel_Ref'>is</a> <a href='#Pixel_Ref'>nullptr</a></td>
+ <td><a href='#Pixel_Ref'>Pixel_Ref</a> is nullptr</td>
</tr> <tr>
- <td><a href='#SkBitmap_extractSubset_subset'>subset</a> <a href='#SkBitmap_extractSubset_subset'>does</a> <a href='#SkBitmap_extractSubset_subset'>not</a> <a href='#SkBitmap_extractSubset_subset'>intersect</a> <a href='#SkBitmap_bounds'>bounds()</a></td>
+ <td><a href='#SkBitmap_extractSubset_subset'>subset</a> does not intersect <a href='#SkBitmap_bounds'>bounds()</a></td>
</tr>
</table>
### Parameters
<table> <tr> <td><a name='SkBitmap_extractSubset_dst'><code><strong>dst</strong></code></a></td>
- <td><a href='SkBitmap_Reference#Bitmap'>Bitmap</a> <a href='SkBitmap_Reference#Bitmap'>set</a> <a href='SkBitmap_Reference#Bitmap'>to</a> <a href='#SkBitmap_extractSubset_subset'>subset</a></td>
+ <td><a href='SkBitmap_Reference#Bitmap'>Bitmap</a> set to <a href='#SkBitmap_extractSubset_subset'>subset</a></td>
</tr>
<tr> <td><a name='SkBitmap_extractSubset_subset'><code><strong>subset</strong></code></a></td>
<td>rectangle of pixels to reference</td>
@@ -2894,7 +2894,7 @@
### Return Value
-true if <a href='#SkBitmap_extractSubset_dst'>dst</a> <a href='#SkBitmap_extractSubset_dst'>is</a> <a href='#SkBitmap_extractSubset_dst'>replaced</a> <a href='#SkBitmap_extractSubset_dst'>by</a> <a href='#SkBitmap_extractSubset_subset'>subset</a>
+true if <a href='#SkBitmap_extractSubset_dst'>dst</a> is replaced by <a href='#SkBitmap_extractSubset_subset'>subset</a>
### Example
@@ -2929,35 +2929,35 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-bool <a href='#SkBitmap_readPixels'>readPixels</a>(<a href='#SkBitmap_readPixels'>const</a> <a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a>& <a href='SkImageInfo_Reference#SkImageInfo'>dstInfo</a>, <a href='SkImageInfo_Reference#SkImageInfo'>void</a>* <a href='SkImageInfo_Reference#SkImageInfo'>dstPixels</a>, <a href='SkImageInfo_Reference#SkImageInfo'>size_t</a> <a href='SkImageInfo_Reference#SkImageInfo'>dstRowBytes</a>, <a href='SkImageInfo_Reference#SkImageInfo'>int</a> <a href='SkImageInfo_Reference#SkImageInfo'>srcX</a>, <a href='SkImageInfo_Reference#SkImageInfo'>int</a> <a href='SkImageInfo_Reference#SkImageInfo'>srcY</a>) <a href='SkImageInfo_Reference#SkImageInfo'>const</a>
+bool <a href='#SkBitmap_readPixels'>readPixels</a>(const <a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a>& dstInfo, void* dstPixels, size_t dstRowBytes, int srcX, int srcY) const
</pre>
-Copies a <a href='SkRect_Reference#Rect'>Rect</a> <a href='SkRect_Reference#Rect'>of</a> <a href='SkRect_Reference#Rect'>pixels</a> <a href='SkRect_Reference#Rect'>from</a> <a href='SkBitmap_Reference#Bitmap'>Bitmap</a> <a href='SkBitmap_Reference#Bitmap'>to</a> <a href='#SkBitmap_readPixels_dstPixels'>dstPixels</a>. <a href='#SkBitmap_readPixels_dstPixels'>Copy</a> <a href='#SkBitmap_readPixels_dstPixels'>starts</a> <a href='#SkBitmap_readPixels_dstPixels'>at</a> (<a href='#SkBitmap_readPixels_srcX'>srcX</a>, <a href='#SkBitmap_readPixels_srcY'>srcY</a>),
-<a href='#SkBitmap_readPixels_srcY'>and</a> <a href='#SkBitmap_readPixels_srcY'>does</a> <a href='#SkBitmap_readPixels_srcY'>not</a> <a href='#SkBitmap_readPixels_srcY'>exceed</a> <a href='SkBitmap_Reference#Bitmap'>Bitmap</a> (<a href='#SkBitmap_width'>width()</a>, <a href='#SkBitmap_height'>height()</a>).
+Copies a <a href='SkRect_Reference#Rect'>Rect</a> of pixels from <a href='SkBitmap_Reference#Bitmap'>Bitmap</a> to <a href='#SkBitmap_readPixels_dstPixels'>dstPixels</a>. Copy starts at (<a href='#SkBitmap_readPixels_srcX'>srcX</a>, <a href='#SkBitmap_readPixels_srcY'>srcY</a>),
+and does not exceed <a href='SkBitmap_Reference#Bitmap'>Bitmap</a> (<a href='#SkBitmap_width'>width()</a>, <a href='#SkBitmap_height'>height()</a>).
-<a href='#SkBitmap_readPixels_dstInfo'>dstInfo</a> <a href='#SkBitmap_readPixels_dstInfo'>specifies</a> <a href='#SkBitmap_readPixels_dstInfo'>width</a>, <a href='#SkBitmap_readPixels_dstInfo'>height</a>, <a href='#Image_Info_Color_Type'>Color_Type</a>, <a href='#Image_Info_Alpha_Type'>Alpha_Type</a>, <a href='#Image_Info_Alpha_Type'>and</a> <a href='#Color_Space'>Color_Space</a> <a href='#Color_Space'>of</a>
-<a href='#Color_Space'>destination</a>. <a href='#SkBitmap_readPixels_dstRowBytes'>dstRowBytes</a> <a href='#SkBitmap_readPixels_dstRowBytes'>specifics</a> <a href='#SkBitmap_readPixels_dstRowBytes'>the</a> <a href='#SkBitmap_readPixels_dstRowBytes'>gap</a> <a href='#SkBitmap_readPixels_dstRowBytes'>from</a> <a href='#SkBitmap_readPixels_dstRowBytes'>one</a> <a href='#SkBitmap_readPixels_dstRowBytes'>destination</a> <a href='#SkBitmap_readPixels_dstRowBytes'>row</a> <a href='#SkBitmap_readPixels_dstRowBytes'>to</a> <a href='#SkBitmap_readPixels_dstRowBytes'>the</a> <a href='#SkBitmap_readPixels_dstRowBytes'>next</a>.
-<a href='#SkBitmap_readPixels_dstRowBytes'>Returns</a> <a href='#SkBitmap_readPixels_dstRowBytes'>true</a> <a href='#SkBitmap_readPixels_dstRowBytes'>if</a> <a href='#SkBitmap_readPixels_dstRowBytes'>pixels</a> <a href='#SkBitmap_readPixels_dstRowBytes'>are</a> <a href='#SkBitmap_readPixels_dstRowBytes'>copied</a>. <a href='#SkBitmap_readPixels_dstRowBytes'>Returns</a> <a href='#SkBitmap_readPixels_dstRowBytes'>false</a> <a href='#SkBitmap_readPixels_dstRowBytes'>if</a>:
+<a href='#SkBitmap_readPixels_dstInfo'>dstInfo</a> specifies width, height, <a href='#Image_Info_Color_Type'>Color_Type</a>, <a href='#Image_Info_Alpha_Type'>Alpha_Type</a>, and <a href='#Color_Space'>Color_Space</a> of
+destination. <a href='#SkBitmap_readPixels_dstRowBytes'>dstRowBytes</a> specifics the gap from one destination row to the next.
+Returns true if pixels are copied. Returns false if:
<table> <tr>
- <td><a href='#SkBitmap_readPixels_dstInfo'>dstInfo</a> <a href='#SkBitmap_readPixels_dstInfo'>has</a> <a href='#SkBitmap_readPixels_dstInfo'>no</a> <a href='#SkBitmap_readPixels_dstInfo'>address</a></td>
+ <td><a href='#SkBitmap_readPixels_dstInfo'>dstInfo</a> has no address</td>
</tr> <tr>
- <td><a href='#SkBitmap_readPixels_dstRowBytes'>dstRowBytes</a> <a href='#SkBitmap_readPixels_dstRowBytes'>is</a> <a href='#SkBitmap_readPixels_dstRowBytes'>less</a> <a href='#SkBitmap_readPixels_dstRowBytes'>than</a> <a href='#SkBitmap_readPixels_dstInfo'>dstInfo</a>.<a href='#SkImageInfo_minRowBytes'>minRowBytes</a>()</td>
+ <td><a href='#SkBitmap_readPixels_dstRowBytes'>dstRowBytes</a> is less than <a href='#SkBitmap_readPixels_dstInfo'>dstInfo</a>.<a href='#SkImageInfo_minRowBytes'>minRowBytes</a>()</td>
</tr> <tr>
- <td><a href='#Pixel_Ref'>Pixel_Ref</a> <a href='#Pixel_Ref'>is</a> <a href='#Pixel_Ref'>nullptr</a></td>
+ <td><a href='#Pixel_Ref'>Pixel_Ref</a> is nullptr</td>
</tr>
</table>
-Pixels are copied only if <a href='undocumented#Pixel'>pixel</a> <a href='undocumented#Pixel'>conversion</a> <a href='undocumented#Pixel'>is</a> <a href='undocumented#Pixel'>possible</a>. <a href='undocumented#Pixel'>If</a> <a href='SkBitmap_Reference#Bitmap'>Bitmap</a> <a href='#SkBitmap_colorType'>colorType</a> <a href='#SkBitmap_colorType'>is</a>
-<a href='SkImageInfo_Reference#kGray_8_SkColorType'>kGray_8_SkColorType</a>, <a href='SkImageInfo_Reference#kGray_8_SkColorType'>or</a> <a href='SkImageInfo_Reference#kAlpha_8_SkColorType'>kAlpha_8_SkColorType</a>; <a href='#SkBitmap_readPixels_dstInfo'>dstInfo</a>.<a href='#SkImageInfo_colorType'>colorType</a>() <a href='#SkImageInfo_colorType'>must</a> <a href='#SkImageInfo_colorType'>match</a>.
-<a href='#SkImageInfo_colorType'>If</a> <a href='SkBitmap_Reference#Bitmap'>Bitmap</a> <a href='#SkBitmap_colorType'>colorType</a> <a href='#SkBitmap_colorType'>is</a> <a href='SkImageInfo_Reference#kGray_8_SkColorType'>kGray_8_SkColorType</a>, <a href='#SkBitmap_readPixels_dstInfo'>dstInfo</a>.<a href='#SkImageInfo_colorSpace'>colorSpace</a>() <a href='#SkImageInfo_colorSpace'>must</a> <a href='#SkImageInfo_colorSpace'>match</a>.
-<a href='#SkImageInfo_colorSpace'>If</a> <a href='SkBitmap_Reference#Bitmap'>Bitmap</a> <a href='#SkBitmap_alphaType'>alphaType</a> <a href='#SkBitmap_alphaType'>is</a> <a href='SkImageInfo_Reference#kOpaque_SkAlphaType'>kOpaque_SkAlphaType</a>, <a href='#SkBitmap_readPixels_dstInfo'>dstInfo</a>.<a href='#SkImageInfo_alphaType'>alphaType</a>() <a href='#SkImageInfo_alphaType'>must</a>
-<a href='#SkImageInfo_alphaType'>match</a>. <a href='#SkImageInfo_alphaType'>If</a> <a href='SkBitmap_Reference#Bitmap'>Bitmap</a> <a href='#SkBitmap_colorSpace'>colorSpace</a> <a href='#SkBitmap_colorSpace'>is</a> <a href='#SkBitmap_colorSpace'>nullptr</a>, <a href='#SkBitmap_readPixels_dstInfo'>dstInfo</a>.<a href='#SkImageInfo_colorSpace'>colorSpace</a>() <a href='#SkImageInfo_colorSpace'>must</a> <a href='#SkImageInfo_colorSpace'>match</a>. <a href='#SkImageInfo_colorSpace'>Returns</a>
-<a href='#SkImageInfo_colorSpace'>false</a> <a href='#SkImageInfo_colorSpace'>if</a> <a href='undocumented#Pixel'>pixel</a> <a href='undocumented#Pixel'>conversion</a> <a href='undocumented#Pixel'>is</a> <a href='undocumented#Pixel'>not</a> <a href='undocumented#Pixel'>possible</a>.
+Pixels are copied only if <a href='undocumented#Pixel'>pixel</a> conversion is possible. If <a href='SkBitmap_Reference#Bitmap'>Bitmap</a> <a href='#SkBitmap_colorType'>colorType</a> is
+<a href='SkImageInfo_Reference#kGray_8_SkColorType'>kGray_8_SkColorType</a>, or <a href='SkImageInfo_Reference#kAlpha_8_SkColorType'>kAlpha_8_SkColorType</a>; <a href='#SkBitmap_readPixels_dstInfo'>dstInfo</a>.<a href='#SkImageInfo_colorType'>colorType</a>() must match.
+If <a href='SkBitmap_Reference#Bitmap'>Bitmap</a> <a href='#SkBitmap_colorType'>colorType</a> is <a href='SkImageInfo_Reference#kGray_8_SkColorType'>kGray_8_SkColorType</a>, <a href='#SkBitmap_readPixels_dstInfo'>dstInfo</a>.<a href='#SkImageInfo_colorSpace'>colorSpace</a>() must match.
+If <a href='SkBitmap_Reference#Bitmap'>Bitmap</a> <a href='#SkBitmap_alphaType'>alphaType</a> is <a href='SkImageInfo_Reference#kOpaque_SkAlphaType'>kOpaque_SkAlphaType</a>, <a href='#SkBitmap_readPixels_dstInfo'>dstInfo</a>.<a href='#SkImageInfo_alphaType'>alphaType</a>() must
+match. If <a href='SkBitmap_Reference#Bitmap'>Bitmap</a> <a href='#SkBitmap_colorSpace'>colorSpace</a> is nullptr, <a href='#SkBitmap_readPixels_dstInfo'>dstInfo</a>.<a href='#SkImageInfo_colorSpace'>colorSpace</a>() must match. Returns
+false if <a href='undocumented#Pixel'>pixel</a> conversion is not possible.
-<a href='#SkBitmap_readPixels_srcX'>srcX</a> <a href='#SkBitmap_readPixels_srcX'>and</a> <a href='#SkBitmap_readPixels_srcY'>srcY</a> <a href='#SkBitmap_readPixels_srcY'>may</a> <a href='#SkBitmap_readPixels_srcY'>be</a> <a href='#SkBitmap_readPixels_srcY'>negative</a> <a href='#SkBitmap_readPixels_srcY'>to</a> <a href='#SkBitmap_readPixels_srcY'>copy</a> <a href='#SkBitmap_readPixels_srcY'>only</a> <a href='#SkBitmap_readPixels_srcY'>top</a> <a href='#SkBitmap_readPixels_srcY'>or</a> <a href='#SkBitmap_readPixels_srcY'>left</a> <a href='#SkBitmap_readPixels_srcY'>of</a> <a href='#SkBitmap_readPixels_srcY'>source</a>. <a href='#SkBitmap_readPixels_srcY'>Returns</a>
-<a href='#SkBitmap_readPixels_srcY'>false</a> <a href='#SkBitmap_readPixels_srcY'>if</a> <a href='#SkBitmap_width'>width()</a> <a href='#SkBitmap_width'>or</a> <a href='#SkBitmap_height'>height()</a> <a href='#SkBitmap_height'>is</a> <a href='#SkBitmap_height'>zero</a> <a href='#SkBitmap_height'>or</a> <a href='#SkBitmap_height'>negative</a>.
-<a href='#SkBitmap_height'>Returns</a> <a href='#SkBitmap_height'>false</a> <a href='#SkBitmap_height'>if</a> <code><a href='undocumented#abs()'>abs</a>(<a href='#SkBitmap_readPixels_srcX'>srcX</a>) >= <a href='SkBitmap_Reference#Bitmap'>Bitmap</a> <a href='#SkBitmap_width'>width()</a></code>, or if <code><a href='undocumented#abs()'>abs</a>(<a href='#SkBitmap_readPixels_srcY'>srcY</a>) >= <a href='SkBitmap_Reference#Bitmap'>Bitmap</a> <a href='#SkBitmap_height'>height()</a></code>.
+<a href='#SkBitmap_readPixels_srcX'>srcX</a> and <a href='#SkBitmap_readPixels_srcY'>srcY</a> may be negative to copy only top or left of source. Returns
+false if <a href='#SkBitmap_width'>width()</a> or <a href='#SkBitmap_height'>height()</a> is zero or negative.
+Returns false if <code><a href='undocumented#abs()'>abs</a>(<a href='#SkBitmap_readPixels_srcX'>srcX</a>) >= <a href='SkBitmap_Reference#Bitmap'>Bitmap</a> <a href='#SkBitmap_width'>width()</a></code>, or if <code><a href='undocumented#abs()'>abs</a>(<a href='#SkBitmap_readPixels_srcY'>srcY</a>) >= <a href='SkBitmap_Reference#Bitmap'>Bitmap</a> <a href='#SkBitmap_height'>height()</a></code>.
### Parameters
@@ -2997,40 +2997,40 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-bool <a href='#SkBitmap_readPixels'>readPixels</a>(<a href='#SkBitmap_readPixels'>const</a> <a href='SkPixmap_Reference#SkPixmap'>SkPixmap</a>& <a href='SkPixmap_Reference#SkPixmap'>dst</a>, <a href='SkPixmap_Reference#SkPixmap'>int</a> <a href='SkPixmap_Reference#SkPixmap'>srcX</a>, <a href='SkPixmap_Reference#SkPixmap'>int</a> <a href='SkPixmap_Reference#SkPixmap'>srcY</a>) <a href='SkPixmap_Reference#SkPixmap'>const</a>
+bool <a href='#SkBitmap_readPixels'>readPixels</a>(const <a href='SkPixmap_Reference#SkPixmap'>SkPixmap</a>& dst, int srcX, int srcY) const
</pre>
-Copies a <a href='SkRect_Reference#Rect'>Rect</a> <a href='SkRect_Reference#Rect'>of</a> <a href='SkRect_Reference#Rect'>pixels</a> <a href='SkRect_Reference#Rect'>from</a> <a href='SkBitmap_Reference#Bitmap'>Bitmap</a> <a href='SkBitmap_Reference#Bitmap'>to</a> <a href='#SkBitmap_readPixels_2_dst'>dst</a>. <a href='#SkBitmap_readPixels_2_dst'>Copy</a> <a href='#SkBitmap_readPixels_2_dst'>starts</a> <a href='#SkBitmap_readPixels_2_dst'>at</a> (<a href='#SkBitmap_readPixels_2_srcX'>srcX</a>, <a href='#SkBitmap_readPixels_2_srcY'>srcY</a>), <a href='#SkBitmap_readPixels_2_srcY'>and</a>
-<a href='#SkBitmap_readPixels_2_srcY'>does</a> <a href='#SkBitmap_readPixels_2_srcY'>not</a> <a href='#SkBitmap_readPixels_2_srcY'>exceed</a> <a href='SkBitmap_Reference#Bitmap'>Bitmap</a> (<a href='#SkBitmap_width'>width()</a>, <a href='#SkBitmap_height'>height()</a>).
+Copies a <a href='SkRect_Reference#Rect'>Rect</a> of pixels from <a href='SkBitmap_Reference#Bitmap'>Bitmap</a> to <a href='#SkBitmap_readPixels_2_dst'>dst</a>. Copy starts at (<a href='#SkBitmap_readPixels_2_srcX'>srcX</a>, <a href='#SkBitmap_readPixels_2_srcY'>srcY</a>), and
+does not exceed <a href='SkBitmap_Reference#Bitmap'>Bitmap</a> (<a href='#SkBitmap_width'>width()</a>, <a href='#SkBitmap_height'>height()</a>).
-<a href='#SkBitmap_readPixels_2_dst'>dst</a> <a href='#SkBitmap_readPixels_2_dst'>specifies</a> <a href='#SkBitmap_readPixels_2_dst'>width</a>, <a href='#SkBitmap_readPixels_2_dst'>height</a>, <a href='#Image_Info_Color_Type'>Color_Type</a>, <a href='#Image_Info_Alpha_Type'>Alpha_Type</a>, <a href='#Color_Space'>Color_Space</a>, <a href='undocumented#Pixel_Storage'>pixel storage</a>,
-<a href='undocumented#Pixel'>and</a> <a href='#Row_Bytes'>row bytes</a> <a href='undocumented#Pixel'>of</a> <a href='undocumented#Pixel'>destination</a>. <a href='#SkBitmap_readPixels_2_dst'>dst</a>.<a href='#SkPixmap_rowBytes'>rowBytes</a>() <a href='#SkPixmap_rowBytes'>specifics</a> <a href='#SkPixmap_rowBytes'>the</a> <a href='#SkPixmap_rowBytes'>gap</a> <a href='#SkPixmap_rowBytes'>from</a> <a href='#SkPixmap_rowBytes'>one</a> <a href='#SkPixmap_rowBytes'>destination</a>
-<a href='#SkPixmap_rowBytes'>row</a> <a href='#SkPixmap_rowBytes'>to</a> <a href='#SkPixmap_rowBytes'>the</a> <a href='#SkPixmap_rowBytes'>next</a>. <a href='#SkPixmap_rowBytes'>Returns</a> <a href='#SkPixmap_rowBytes'>true</a> <a href='#SkPixmap_rowBytes'>if</a> <a href='#SkPixmap_rowBytes'>pixels</a> <a href='#SkPixmap_rowBytes'>are</a> <a href='#SkPixmap_rowBytes'>copied</a>. <a href='#SkPixmap_rowBytes'>Returns</a> <a href='#SkPixmap_rowBytes'>false</a> <a href='#SkPixmap_rowBytes'>if</a>:
+<a href='#SkBitmap_readPixels_2_dst'>dst</a> specifies width, height, <a href='#Image_Info_Color_Type'>Color_Type</a>, <a href='#Image_Info_Alpha_Type'>Alpha_Type</a>, <a href='#Color_Space'>Color_Space</a>, <a href='undocumented#Pixel_Storage'>pixel storage</a>,
+and <a href='#Row_Bytes'>row bytes</a> of destination. <a href='#SkBitmap_readPixels_2_dst'>dst</a>.<a href='#SkPixmap_rowBytes'>rowBytes</a>() specifics the gap from one destination
+row to the next. Returns true if pixels are copied. Returns false if:
<table> <tr>
- <td><a href='#SkBitmap_readPixels_2_dst'>dst</a> <a href='undocumented#Pixel_Storage'>pixel storage</a> <a href='undocumented#Pixel'>equals</a> <a href='undocumented#Pixel'>nullptr</a></td>
+ <td><a href='#SkBitmap_readPixels_2_dst'>dst</a> <a href='undocumented#Pixel_Storage'>pixel storage</a> equals nullptr</td>
</tr> <tr>
- <td><a href='#SkBitmap_readPixels_2_dst'>dst</a>.<a href='#SkPixmap_rowBytes'>rowBytes</a>() <a href='#SkPixmap_rowBytes'>is</a> <a href='#SkPixmap_rowBytes'>less</a> <a href='#SkPixmap_rowBytes'>than</a> <a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a>::<a href='#SkImageInfo_minRowBytes'>minRowBytes</a>()</td>
+ <td><a href='#SkBitmap_readPixels_2_dst'>dst</a>.<a href='#SkPixmap_rowBytes'>rowBytes</a>() is less than <a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a>::<a href='#SkImageInfo_minRowBytes'>minRowBytes</a>()</td>
</tr> <tr>
- <td><a href='#Pixel_Ref'>Pixel_Ref</a> <a href='#Pixel_Ref'>is</a> <a href='#Pixel_Ref'>nullptr</a></td>
+ <td><a href='#Pixel_Ref'>Pixel_Ref</a> is nullptr</td>
</tr>
</table>
-Pixels are copied only if <a href='undocumented#Pixel'>pixel</a> <a href='undocumented#Pixel'>conversion</a> <a href='undocumented#Pixel'>is</a> <a href='undocumented#Pixel'>possible</a>. <a href='undocumented#Pixel'>If</a> <a href='SkBitmap_Reference#Bitmap'>Bitmap</a> <a href='#SkBitmap_colorType'>colorType</a> <a href='#SkBitmap_colorType'>is</a>
-<a href='SkImageInfo_Reference#kGray_8_SkColorType'>kGray_8_SkColorType</a>, <a href='SkImageInfo_Reference#kGray_8_SkColorType'>or</a> <a href='SkImageInfo_Reference#kAlpha_8_SkColorType'>kAlpha_8_SkColorType</a>; <a href='#SkBitmap_readPixels_2_dst'>dst</a> <a href='#Image_Info_Color_Type'>Color_Type</a> <a href='#Image_Info_Color_Type'>must</a> <a href='#Image_Info_Color_Type'>match</a>.
-<a href='#Image_Info_Color_Type'>If</a> <a href='SkBitmap_Reference#Bitmap'>Bitmap</a> <a href='#SkBitmap_colorType'>colorType</a> <a href='#SkBitmap_colorType'>is</a> <a href='SkImageInfo_Reference#kGray_8_SkColorType'>kGray_8_SkColorType</a>, <a href='#SkBitmap_readPixels_2_dst'>dst</a> <a href='#Color_Space'>Color_Space</a> <a href='#Color_Space'>must</a> <a href='#Color_Space'>match</a>.
-<a href='#Color_Space'>If</a> <a href='SkBitmap_Reference#Bitmap'>Bitmap</a> <a href='#SkBitmap_alphaType'>alphaType</a> <a href='#SkBitmap_alphaType'>is</a> <a href='SkImageInfo_Reference#kOpaque_SkAlphaType'>kOpaque_SkAlphaType</a>, <a href='#SkBitmap_readPixels_2_dst'>dst</a> <a href='#Image_Info_Alpha_Type'>Alpha_Type</a> <a href='#Image_Info_Alpha_Type'>must</a>
-<a href='#Image_Info_Alpha_Type'>match</a>. <a href='#Image_Info_Alpha_Type'>If</a> <a href='SkBitmap_Reference#Bitmap'>Bitmap</a> <a href='#SkBitmap_colorSpace'>colorSpace</a> <a href='#SkBitmap_colorSpace'>is</a> <a href='#SkBitmap_colorSpace'>nullptr</a>, <a href='#SkBitmap_readPixels_2_dst'>dst</a> <a href='#Color_Space'>Color_Space</a> <a href='#Color_Space'>must</a> <a href='#Color_Space'>match</a>. <a href='#Color_Space'>Returns</a>
-<a href='#Color_Space'>false</a> <a href='#Color_Space'>if</a> <a href='undocumented#Pixel'>pixel</a> <a href='undocumented#Pixel'>conversion</a> <a href='undocumented#Pixel'>is</a> <a href='undocumented#Pixel'>not</a> <a href='undocumented#Pixel'>possible</a>.
+Pixels are copied only if <a href='undocumented#Pixel'>pixel</a> conversion is possible. If <a href='SkBitmap_Reference#Bitmap'>Bitmap</a> <a href='#SkBitmap_colorType'>colorType</a> is
+<a href='SkImageInfo_Reference#kGray_8_SkColorType'>kGray_8_SkColorType</a>, or <a href='SkImageInfo_Reference#kAlpha_8_SkColorType'>kAlpha_8_SkColorType</a>; <a href='#SkBitmap_readPixels_2_dst'>dst</a> <a href='#Image_Info_Color_Type'>Color_Type</a> must match.
+If <a href='SkBitmap_Reference#Bitmap'>Bitmap</a> <a href='#SkBitmap_colorType'>colorType</a> is <a href='SkImageInfo_Reference#kGray_8_SkColorType'>kGray_8_SkColorType</a>, <a href='#SkBitmap_readPixels_2_dst'>dst</a> <a href='#Color_Space'>Color_Space</a> must match.
+If <a href='SkBitmap_Reference#Bitmap'>Bitmap</a> <a href='#SkBitmap_alphaType'>alphaType</a> is <a href='SkImageInfo_Reference#kOpaque_SkAlphaType'>kOpaque_SkAlphaType</a>, <a href='#SkBitmap_readPixels_2_dst'>dst</a> <a href='#Image_Info_Alpha_Type'>Alpha_Type</a> must
+match. If <a href='SkBitmap_Reference#Bitmap'>Bitmap</a> <a href='#SkBitmap_colorSpace'>colorSpace</a> is nullptr, <a href='#SkBitmap_readPixels_2_dst'>dst</a> <a href='#Color_Space'>Color_Space</a> must match. Returns
+false if <a href='undocumented#Pixel'>pixel</a> conversion is not possible.
-<a href='#SkBitmap_readPixels_2_srcX'>srcX</a> <a href='#SkBitmap_readPixels_2_srcX'>and</a> <a href='#SkBitmap_readPixels_2_srcY'>srcY</a> <a href='#SkBitmap_readPixels_2_srcY'>may</a> <a href='#SkBitmap_readPixels_2_srcY'>be</a> <a href='#SkBitmap_readPixels_2_srcY'>negative</a> <a href='#SkBitmap_readPixels_2_srcY'>to</a> <a href='#SkBitmap_readPixels_2_srcY'>copy</a> <a href='#SkBitmap_readPixels_2_srcY'>only</a> <a href='#SkBitmap_readPixels_2_srcY'>top</a> <a href='#SkBitmap_readPixels_2_srcY'>or</a> <a href='#SkBitmap_readPixels_2_srcY'>left</a> <a href='#SkBitmap_readPixels_2_srcY'>of</a> <a href='#SkBitmap_readPixels_2_srcY'>source</a>. <a href='#SkBitmap_readPixels_2_srcY'>Returns</a>
-<a href='#SkBitmap_readPixels_2_srcY'>false</a> <a href='#SkBitmap_readPixels_2_srcY'>if</a> <a href='#SkBitmap_width'>width()</a> <a href='#SkBitmap_width'>or</a> <a href='#SkBitmap_height'>height()</a> <a href='#SkBitmap_height'>is</a> <a href='#SkBitmap_height'>zero</a> <a href='#SkBitmap_height'>or</a> <a href='#SkBitmap_height'>negative</a>.
-<a href='#SkBitmap_height'>Returns</a> <a href='#SkBitmap_height'>false</a> <a href='#SkBitmap_height'>if</a> <code><a href='undocumented#abs()'>abs</a>(<a href='#SkBitmap_readPixels_2_srcX'>srcX</a>) >= <a href='SkBitmap_Reference#Bitmap'>Bitmap</a> <a href='#SkBitmap_width'>width()</a></code>, or if <code><a href='undocumented#abs()'>abs</a>(<a href='#SkBitmap_readPixels_2_srcY'>srcY</a>) >= <a href='SkBitmap_Reference#Bitmap'>Bitmap</a> <a href='#SkBitmap_height'>height()</a></code>.
+<a href='#SkBitmap_readPixels_2_srcX'>srcX</a> and <a href='#SkBitmap_readPixels_2_srcY'>srcY</a> may be negative to copy only top or left of source. Returns
+false if <a href='#SkBitmap_width'>width()</a> or <a href='#SkBitmap_height'>height()</a> is zero or negative.
+Returns false if <code><a href='undocumented#abs()'>abs</a>(<a href='#SkBitmap_readPixels_2_srcX'>srcX</a>) >= <a href='SkBitmap_Reference#Bitmap'>Bitmap</a> <a href='#SkBitmap_width'>width()</a></code>, or if <code><a href='undocumented#abs()'>abs</a>(<a href='#SkBitmap_readPixels_2_srcY'>srcY</a>) >= <a href='SkBitmap_Reference#Bitmap'>Bitmap</a> <a href='#SkBitmap_height'>height()</a></code>.
### Parameters
<table> <tr> <td><a name='SkBitmap_readPixels_2_dst'><code><strong>dst</strong></code></a></td>
- <td>destination <a href='SkPixmap_Reference#Pixmap'>Pixmap</a>: <a href='#Image_Info'>Image_Info</a>, <a href='#Image_Info'>pixels</a>, <a href='#Row_Bytes'>row bytes</a></td>
+ <td>destination <a href='SkPixmap_Reference#Pixmap'>Pixmap</a>: <a href='#Image_Info'>Image_Info</a>, pixels, <a href='#Row_Bytes'>row bytes</a></td>
</tr>
<tr> <td><a name='SkBitmap_readPixels_2_srcX'><code><strong>srcX</strong></code></a></td>
<td>column index whose absolute value is less than <a href='#SkBitmap_width'>width()</a></td>
@@ -3057,36 +3057,36 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-bool <a href='#SkBitmap_readPixels'>readPixels</a>(<a href='#SkBitmap_readPixels'>const</a> <a href='SkPixmap_Reference#SkPixmap'>SkPixmap</a>& <a href='SkPixmap_Reference#SkPixmap'>dst</a>) <a href='SkPixmap_Reference#SkPixmap'>const</a>
+bool <a href='#SkBitmap_readPixels'>readPixels</a>(const <a href='SkPixmap_Reference#SkPixmap'>SkPixmap</a>& dst) const
</pre>
-Copies a <a href='SkRect_Reference#Rect'>Rect</a> <a href='SkRect_Reference#Rect'>of</a> <a href='SkRect_Reference#Rect'>pixels</a> <a href='SkRect_Reference#Rect'>from</a> <a href='SkBitmap_Reference#Bitmap'>Bitmap</a> <a href='SkBitmap_Reference#Bitmap'>to</a> <a href='#SkBitmap_readPixels_3_dst'>dst</a>. <a href='#SkBitmap_readPixels_3_dst'>Copy</a> <a href='#SkBitmap_readPixels_3_dst'>starts</a> <a href='#SkBitmap_readPixels_3_dst'>at</a> (0, 0), <a href='#SkBitmap_readPixels_3_dst'>and</a>
-<a href='#SkBitmap_readPixels_3_dst'>does</a> <a href='#SkBitmap_readPixels_3_dst'>not</a> <a href='#SkBitmap_readPixels_3_dst'>exceed</a> <a href='SkBitmap_Reference#Bitmap'>Bitmap</a> (<a href='#SkBitmap_width'>width()</a>, <a href='#SkBitmap_height'>height()</a>).
+Copies a <a href='SkRect_Reference#Rect'>Rect</a> of pixels from <a href='SkBitmap_Reference#Bitmap'>Bitmap</a> to <a href='#SkBitmap_readPixels_3_dst'>dst</a>. Copy starts at (0, 0), and
+does not exceed <a href='SkBitmap_Reference#Bitmap'>Bitmap</a> (<a href='#SkBitmap_width'>width()</a>, <a href='#SkBitmap_height'>height()</a>).
-<a href='#SkBitmap_readPixels_3_dst'>dst</a> <a href='#SkBitmap_readPixels_3_dst'>specifies</a> <a href='#SkBitmap_readPixels_3_dst'>width</a>, <a href='#SkBitmap_readPixels_3_dst'>height</a>, <a href='#Image_Info_Color_Type'>Color_Type</a>, <a href='#Image_Info_Alpha_Type'>Alpha_Type</a>, <a href='#Color_Space'>Color_Space</a>, <a href='undocumented#Pixel_Storage'>pixel storage</a>,
-<a href='undocumented#Pixel'>and</a> <a href='#Row_Bytes'>row bytes</a> <a href='undocumented#Pixel'>of</a> <a href='undocumented#Pixel'>destination</a>. <a href='#SkBitmap_readPixels_3_dst'>dst</a>.<a href='#SkPixmap_rowBytes'>rowBytes</a>() <a href='#SkPixmap_rowBytes'>specifics</a> <a href='#SkPixmap_rowBytes'>the</a> <a href='#SkPixmap_rowBytes'>gap</a> <a href='#SkPixmap_rowBytes'>from</a> <a href='#SkPixmap_rowBytes'>one</a> <a href='#SkPixmap_rowBytes'>destination</a>
-<a href='#SkPixmap_rowBytes'>row</a> <a href='#SkPixmap_rowBytes'>to</a> <a href='#SkPixmap_rowBytes'>the</a> <a href='#SkPixmap_rowBytes'>next</a>. <a href='#SkPixmap_rowBytes'>Returns</a> <a href='#SkPixmap_rowBytes'>true</a> <a href='#SkPixmap_rowBytes'>if</a> <a href='#SkPixmap_rowBytes'>pixels</a> <a href='#SkPixmap_rowBytes'>are</a> <a href='#SkPixmap_rowBytes'>copied</a>. <a href='#SkPixmap_rowBytes'>Returns</a> <a href='#SkPixmap_rowBytes'>false</a> <a href='#SkPixmap_rowBytes'>if</a>:
+<a href='#SkBitmap_readPixels_3_dst'>dst</a> specifies width, height, <a href='#Image_Info_Color_Type'>Color_Type</a>, <a href='#Image_Info_Alpha_Type'>Alpha_Type</a>, <a href='#Color_Space'>Color_Space</a>, <a href='undocumented#Pixel_Storage'>pixel storage</a>,
+and <a href='#Row_Bytes'>row bytes</a> of destination. <a href='#SkBitmap_readPixels_3_dst'>dst</a>.<a href='#SkPixmap_rowBytes'>rowBytes</a>() specifics the gap from one destination
+row to the next. Returns true if pixels are copied. Returns false if:
<table> <tr>
- <td><a href='#SkBitmap_readPixels_3_dst'>dst</a> <a href='undocumented#Pixel_Storage'>pixel storage</a> <a href='undocumented#Pixel'>equals</a> <a href='undocumented#Pixel'>nullptr</a></td>
+ <td><a href='#SkBitmap_readPixels_3_dst'>dst</a> <a href='undocumented#Pixel_Storage'>pixel storage</a> equals nullptr</td>
</tr> <tr>
- <td><a href='#SkBitmap_readPixels_3_dst'>dst</a>.<a href='#SkPixmap_rowBytes'>rowBytes</a>() <a href='#SkPixmap_rowBytes'>is</a> <a href='#SkPixmap_rowBytes'>less</a> <a href='#SkPixmap_rowBytes'>than</a> <a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a>::<a href='#SkImageInfo_minRowBytes'>minRowBytes</a>()</td>
+ <td><a href='#SkBitmap_readPixels_3_dst'>dst</a>.<a href='#SkPixmap_rowBytes'>rowBytes</a>() is less than <a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a>::<a href='#SkImageInfo_minRowBytes'>minRowBytes</a>()</td>
</tr> <tr>
- <td><a href='#Pixel_Ref'>Pixel_Ref</a> <a href='#Pixel_Ref'>is</a> <a href='#Pixel_Ref'>nullptr</a></td>
+ <td><a href='#Pixel_Ref'>Pixel_Ref</a> is nullptr</td>
</tr>
</table>
-Pixels are copied only if <a href='undocumented#Pixel'>pixel</a> <a href='undocumented#Pixel'>conversion</a> <a href='undocumented#Pixel'>is</a> <a href='undocumented#Pixel'>possible</a>. <a href='undocumented#Pixel'>If</a> <a href='SkBitmap_Reference#Bitmap'>Bitmap</a> <a href='#SkBitmap_colorType'>colorType</a> <a href='#SkBitmap_colorType'>is</a>
-<a href='SkImageInfo_Reference#kGray_8_SkColorType'>kGray_8_SkColorType</a>, <a href='SkImageInfo_Reference#kGray_8_SkColorType'>or</a> <a href='SkImageInfo_Reference#kAlpha_8_SkColorType'>kAlpha_8_SkColorType</a>; <a href='#SkBitmap_readPixels_3_dst'>dst</a> <a href='#Image_Info_Color_Type'>Color_Type</a> <a href='#Image_Info_Color_Type'>must</a> <a href='#Image_Info_Color_Type'>match</a>.
-<a href='#Image_Info_Color_Type'>If</a> <a href='SkBitmap_Reference#Bitmap'>Bitmap</a> <a href='#SkBitmap_colorType'>colorType</a> <a href='#SkBitmap_colorType'>is</a> <a href='SkImageInfo_Reference#kGray_8_SkColorType'>kGray_8_SkColorType</a>, <a href='#SkBitmap_readPixels_3_dst'>dst</a> <a href='#Color_Space'>Color_Space</a> <a href='#Color_Space'>must</a> <a href='#Color_Space'>match</a>.
-<a href='#Color_Space'>If</a> <a href='SkBitmap_Reference#Bitmap'>Bitmap</a> <a href='#SkBitmap_alphaType'>alphaType</a> <a href='#SkBitmap_alphaType'>is</a> <a href='SkImageInfo_Reference#kOpaque_SkAlphaType'>kOpaque_SkAlphaType</a>, <a href='#SkBitmap_readPixels_3_dst'>dst</a> <a href='#Image_Info_Alpha_Type'>Alpha_Type</a> <a href='#Image_Info_Alpha_Type'>must</a>
-<a href='#Image_Info_Alpha_Type'>match</a>. <a href='#Image_Info_Alpha_Type'>If</a> <a href='SkBitmap_Reference#Bitmap'>Bitmap</a> <a href='#SkBitmap_colorSpace'>colorSpace</a> <a href='#SkBitmap_colorSpace'>is</a> <a href='#SkBitmap_colorSpace'>nullptr</a>, <a href='#SkBitmap_readPixels_3_dst'>dst</a> <a href='#Color_Space'>Color_Space</a> <a href='#Color_Space'>must</a> <a href='#Color_Space'>match</a>. <a href='#Color_Space'>Returns</a>
-<a href='#Color_Space'>false</a> <a href='#Color_Space'>if</a> <a href='undocumented#Pixel'>pixel</a> <a href='undocumented#Pixel'>conversion</a> <a href='undocumented#Pixel'>is</a> <a href='undocumented#Pixel'>not</a> <a href='undocumented#Pixel'>possible</a>.
+Pixels are copied only if <a href='undocumented#Pixel'>pixel</a> conversion is possible. If <a href='SkBitmap_Reference#Bitmap'>Bitmap</a> <a href='#SkBitmap_colorType'>colorType</a> is
+<a href='SkImageInfo_Reference#kGray_8_SkColorType'>kGray_8_SkColorType</a>, or <a href='SkImageInfo_Reference#kAlpha_8_SkColorType'>kAlpha_8_SkColorType</a>; <a href='#SkBitmap_readPixels_3_dst'>dst</a> <a href='#Image_Info_Color_Type'>Color_Type</a> must match.
+If <a href='SkBitmap_Reference#Bitmap'>Bitmap</a> <a href='#SkBitmap_colorType'>colorType</a> is <a href='SkImageInfo_Reference#kGray_8_SkColorType'>kGray_8_SkColorType</a>, <a href='#SkBitmap_readPixels_3_dst'>dst</a> <a href='#Color_Space'>Color_Space</a> must match.
+If <a href='SkBitmap_Reference#Bitmap'>Bitmap</a> <a href='#SkBitmap_alphaType'>alphaType</a> is <a href='SkImageInfo_Reference#kOpaque_SkAlphaType'>kOpaque_SkAlphaType</a>, <a href='#SkBitmap_readPixels_3_dst'>dst</a> <a href='#Image_Info_Alpha_Type'>Alpha_Type</a> must
+match. If <a href='SkBitmap_Reference#Bitmap'>Bitmap</a> <a href='#SkBitmap_colorSpace'>colorSpace</a> is nullptr, <a href='#SkBitmap_readPixels_3_dst'>dst</a> <a href='#Color_Space'>Color_Space</a> must match. Returns
+false if <a href='undocumented#Pixel'>pixel</a> conversion is not possible.
### Parameters
<table> <tr> <td><a name='SkBitmap_readPixels_3_dst'><code><strong>dst</strong></code></a></td>
- <td>destination <a href='SkPixmap_Reference#Pixmap'>Pixmap</a>: <a href='#Image_Info'>Image_Info</a>, <a href='#Image_Info'>pixels</a>, <a href='#Row_Bytes'>row bytes</a></td>
+ <td>destination <a href='SkPixmap_Reference#Pixmap'>Pixmap</a>: <a href='#Image_Info'>Image_Info</a>, pixels, <a href='#Row_Bytes'>row bytes</a></td>
</tr>
</table>
@@ -3107,40 +3107,40 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-bool <a href='#SkBitmap_writePixels'>writePixels</a>(<a href='#SkBitmap_writePixels'>const</a> <a href='SkPixmap_Reference#SkPixmap'>SkPixmap</a>& <a href='SkPixmap_Reference#SkPixmap'>src</a>, <a href='SkPixmap_Reference#SkPixmap'>int</a> <a href='SkPixmap_Reference#SkPixmap'>dstX</a>, <a href='SkPixmap_Reference#SkPixmap'>int</a> <a href='SkPixmap_Reference#SkPixmap'>dstY</a>)
+bool <a href='#SkBitmap_writePixels'>writePixels</a>(const <a href='SkPixmap_Reference#SkPixmap'>SkPixmap</a>& src, int dstX, int dstY)
</pre>
-Copies a <a href='SkRect_Reference#Rect'>Rect</a> <a href='SkRect_Reference#Rect'>of</a> <a href='SkRect_Reference#Rect'>pixels</a> <a href='SkRect_Reference#Rect'>from</a> <a href='#SkBitmap_writePixels_src'>src</a>. <a href='#SkBitmap_writePixels_src'>Copy</a> <a href='#SkBitmap_writePixels_src'>starts</a> <a href='#SkBitmap_writePixels_src'>at</a> (<a href='#SkBitmap_writePixels_dstX'>dstX</a>, <a href='#SkBitmap_writePixels_dstY'>dstY</a>), <a href='#SkBitmap_writePixels_dstY'>and</a> <a href='#SkBitmap_writePixels_dstY'>does</a> <a href='#SkBitmap_writePixels_dstY'>not</a> <a href='#SkBitmap_writePixels_dstY'>exceed</a>
+Copies a <a href='SkRect_Reference#Rect'>Rect</a> of pixels from <a href='#SkBitmap_writePixels_src'>src</a>. Copy starts at (<a href='#SkBitmap_writePixels_dstX'>dstX</a>, <a href='#SkBitmap_writePixels_dstY'>dstY</a>), and does not exceed
(<a href='#SkBitmap_writePixels_src'>src</a>.<a href='#SkPixmap_width'>width()</a>, <a href='#SkBitmap_writePixels_src'>src</a>.<a href='#SkPixmap_height'>height()</a>).
-<a href='#SkBitmap_writePixels_src'>src</a> <a href='#SkBitmap_writePixels_src'>specifies</a> <a href='#SkBitmap_writePixels_src'>width</a>, <a href='#SkBitmap_writePixels_src'>height</a>, <a href='#Image_Info_Color_Type'>Color_Type</a>, <a href='#Image_Info_Alpha_Type'>Alpha_Type</a>, <a href='#Color_Space'>Color_Space</a>, <a href='undocumented#Pixel_Storage'>pixel storage</a>,
-<a href='undocumented#Pixel'>and</a> <a href='#Row_Bytes'>row bytes</a> <a href='undocumented#Pixel'>of</a> <a href='undocumented#Pixel'>source</a>. <a href='#SkBitmap_writePixels_src'>src</a>.<a href='#SkPixmap_rowBytes'>rowBytes</a>() <a href='#SkPixmap_rowBytes'>specifics</a> <a href='#SkPixmap_rowBytes'>the</a> <a href='#SkPixmap_rowBytes'>gap</a> <a href='#SkPixmap_rowBytes'>from</a> <a href='#SkPixmap_rowBytes'>one</a> <a href='#SkPixmap_rowBytes'>source</a>
-<a href='#SkPixmap_rowBytes'>row</a> <a href='#SkPixmap_rowBytes'>to</a> <a href='#SkPixmap_rowBytes'>the</a> <a href='#SkPixmap_rowBytes'>next</a>. <a href='#SkPixmap_rowBytes'>Returns</a> <a href='#SkPixmap_rowBytes'>true</a> <a href='#SkPixmap_rowBytes'>if</a> <a href='#SkPixmap_rowBytes'>pixels</a> <a href='#SkPixmap_rowBytes'>are</a> <a href='#SkPixmap_rowBytes'>copied</a>. <a href='#SkPixmap_rowBytes'>Returns</a> <a href='#SkPixmap_rowBytes'>false</a> <a href='#SkPixmap_rowBytes'>if</a>:
+<a href='#SkBitmap_writePixels_src'>src</a> specifies width, height, <a href='#Image_Info_Color_Type'>Color_Type</a>, <a href='#Image_Info_Alpha_Type'>Alpha_Type</a>, <a href='#Color_Space'>Color_Space</a>, <a href='undocumented#Pixel_Storage'>pixel storage</a>,
+and <a href='#Row_Bytes'>row bytes</a> of source. <a href='#SkBitmap_writePixels_src'>src</a>.<a href='#SkPixmap_rowBytes'>rowBytes</a>() specifics the gap from one source
+row to the next. Returns true if pixels are copied. Returns false if:
<table> <tr>
- <td><a href='#SkBitmap_writePixels_src'>src</a> <a href='undocumented#Pixel_Storage'>pixel storage</a> <a href='undocumented#Pixel'>equals</a> <a href='undocumented#Pixel'>nullptr</a></td>
+ <td><a href='#SkBitmap_writePixels_src'>src</a> <a href='undocumented#Pixel_Storage'>pixel storage</a> equals nullptr</td>
</tr> <tr>
- <td><a href='#SkBitmap_writePixels_src'>src</a>.<a href='#SkPixmap_rowBytes'>rowBytes</a>() <a href='#SkPixmap_rowBytes'>is</a> <a href='#SkPixmap_rowBytes'>less</a> <a href='#SkPixmap_rowBytes'>than</a> <a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a>::<a href='#SkImageInfo_minRowBytes'>minRowBytes</a>()</td>
+ <td><a href='#SkBitmap_writePixels_src'>src</a>.<a href='#SkPixmap_rowBytes'>rowBytes</a>() is less than <a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a>::<a href='#SkImageInfo_minRowBytes'>minRowBytes</a>()</td>
</tr> <tr>
- <td><a href='#Pixel_Ref'>Pixel_Ref</a> <a href='#Pixel_Ref'>is</a> <a href='#Pixel_Ref'>nullptr</a></td>
+ <td><a href='#Pixel_Ref'>Pixel_Ref</a> is nullptr</td>
</tr>
</table>
-Pixels are copied only if <a href='undocumented#Pixel'>pixel</a> <a href='undocumented#Pixel'>conversion</a> <a href='undocumented#Pixel'>is</a> <a href='undocumented#Pixel'>possible</a>. <a href='undocumented#Pixel'>If</a> <a href='SkBitmap_Reference#Bitmap'>Bitmap</a> <a href='#SkBitmap_colorType'>colorType</a> <a href='#SkBitmap_colorType'>is</a>
-<a href='SkImageInfo_Reference#kGray_8_SkColorType'>kGray_8_SkColorType</a>, <a href='SkImageInfo_Reference#kGray_8_SkColorType'>or</a> <a href='SkImageInfo_Reference#kAlpha_8_SkColorType'>kAlpha_8_SkColorType</a>; <a href='#SkBitmap_writePixels_src'>src</a> <a href='#Image_Info_Color_Type'>Color_Type</a> <a href='#Image_Info_Color_Type'>must</a> <a href='#Image_Info_Color_Type'>match</a>.
-<a href='#Image_Info_Color_Type'>If</a> <a href='SkBitmap_Reference#Bitmap'>Bitmap</a> <a href='#SkBitmap_colorType'>colorType</a> <a href='#SkBitmap_colorType'>is</a> <a href='SkImageInfo_Reference#kGray_8_SkColorType'>kGray_8_SkColorType</a>, <a href='#SkBitmap_writePixels_src'>src</a> <a href='#Color_Space'>Color_Space</a> <a href='#Color_Space'>must</a> <a href='#Color_Space'>match</a>.
-<a href='#Color_Space'>If</a> <a href='SkBitmap_Reference#Bitmap'>Bitmap</a> <a href='#SkBitmap_alphaType'>alphaType</a> <a href='#SkBitmap_alphaType'>is</a> <a href='SkImageInfo_Reference#kOpaque_SkAlphaType'>kOpaque_SkAlphaType</a>, <a href='#SkBitmap_writePixels_src'>src</a> <a href='#Image_Info_Alpha_Type'>Alpha_Type</a> <a href='#Image_Info_Alpha_Type'>must</a>
-<a href='#Image_Info_Alpha_Type'>match</a>. <a href='#Image_Info_Alpha_Type'>If</a> <a href='SkBitmap_Reference#Bitmap'>Bitmap</a> <a href='#SkBitmap_colorSpace'>colorSpace</a> <a href='#SkBitmap_colorSpace'>is</a> <a href='#SkBitmap_colorSpace'>nullptr</a>, <a href='#SkBitmap_writePixels_src'>src</a> <a href='#Color_Space'>Color_Space</a> <a href='#Color_Space'>must</a> <a href='#Color_Space'>match</a>. <a href='#Color_Space'>Returns</a>
-<a href='#Color_Space'>false</a> <a href='#Color_Space'>if</a> <a href='undocumented#Pixel'>pixel</a> <a href='undocumented#Pixel'>conversion</a> <a href='undocumented#Pixel'>is</a> <a href='undocumented#Pixel'>not</a> <a href='undocumented#Pixel'>possible</a>.
+Pixels are copied only if <a href='undocumented#Pixel'>pixel</a> conversion is possible. If <a href='SkBitmap_Reference#Bitmap'>Bitmap</a> <a href='#SkBitmap_colorType'>colorType</a> is
+<a href='SkImageInfo_Reference#kGray_8_SkColorType'>kGray_8_SkColorType</a>, or <a href='SkImageInfo_Reference#kAlpha_8_SkColorType'>kAlpha_8_SkColorType</a>; <a href='#SkBitmap_writePixels_src'>src</a> <a href='#Image_Info_Color_Type'>Color_Type</a> must match.
+If <a href='SkBitmap_Reference#Bitmap'>Bitmap</a> <a href='#SkBitmap_colorType'>colorType</a> is <a href='SkImageInfo_Reference#kGray_8_SkColorType'>kGray_8_SkColorType</a>, <a href='#SkBitmap_writePixels_src'>src</a> <a href='#Color_Space'>Color_Space</a> must match.
+If <a href='SkBitmap_Reference#Bitmap'>Bitmap</a> <a href='#SkBitmap_alphaType'>alphaType</a> is <a href='SkImageInfo_Reference#kOpaque_SkAlphaType'>kOpaque_SkAlphaType</a>, <a href='#SkBitmap_writePixels_src'>src</a> <a href='#Image_Info_Alpha_Type'>Alpha_Type</a> must
+match. If <a href='SkBitmap_Reference#Bitmap'>Bitmap</a> <a href='#SkBitmap_colorSpace'>colorSpace</a> is nullptr, <a href='#SkBitmap_writePixels_src'>src</a> <a href='#Color_Space'>Color_Space</a> must match. Returns
+false if <a href='undocumented#Pixel'>pixel</a> conversion is not possible.
-<a href='#SkBitmap_writePixels_dstX'>dstX</a> <a href='#SkBitmap_writePixels_dstX'>and</a> <a href='#SkBitmap_writePixels_dstY'>dstY</a> <a href='#SkBitmap_writePixels_dstY'>may</a> <a href='#SkBitmap_writePixels_dstY'>be</a> <a href='#SkBitmap_writePixels_dstY'>negative</a> <a href='#SkBitmap_writePixels_dstY'>to</a> <a href='#SkBitmap_writePixels_dstY'>copy</a> <a href='#SkBitmap_writePixels_dstY'>only</a> <a href='#SkBitmap_writePixels_dstY'>top</a> <a href='#SkBitmap_writePixels_dstY'>or</a> <a href='#SkBitmap_writePixels_dstY'>left</a> <a href='#SkBitmap_writePixels_dstY'>of</a> <a href='#SkBitmap_writePixels_dstY'>source</a>. <a href='#SkBitmap_writePixels_dstY'>Returns</a>
-<a href='#SkBitmap_writePixels_dstY'>false</a> <a href='#SkBitmap_writePixels_dstY'>if</a> <a href='#SkBitmap_width'>width()</a> <a href='#SkBitmap_width'>or</a> <a href='#SkBitmap_height'>height()</a> <a href='#SkBitmap_height'>is</a> <a href='#SkBitmap_height'>zero</a> <a href='#SkBitmap_height'>or</a> <a href='#SkBitmap_height'>negative</a>.
-<a href='#SkBitmap_height'>Returns</a> <a href='#SkBitmap_height'>false</a> <a href='#SkBitmap_height'>if</a> <code><a href='undocumented#abs()'>abs</a>(<a href='#SkBitmap_writePixels_dstX'>dstX</a>) >= <a href='SkBitmap_Reference#Bitmap'>Bitmap</a> <a href='#SkBitmap_width'>width()</a></code>, or if <code><a href='undocumented#abs()'>abs</a>(<a href='#SkBitmap_writePixels_dstY'>dstY</a>) >= <a href='SkBitmap_Reference#Bitmap'>Bitmap</a> <a href='#SkBitmap_height'>height()</a></code>.
+<a href='#SkBitmap_writePixels_dstX'>dstX</a> and <a href='#SkBitmap_writePixels_dstY'>dstY</a> may be negative to copy only top or left of source. Returns
+false if <a href='#SkBitmap_width'>width()</a> or <a href='#SkBitmap_height'>height()</a> is zero or negative.
+Returns false if <code><a href='undocumented#abs()'>abs</a>(<a href='#SkBitmap_writePixels_dstX'>dstX</a>) >= <a href='SkBitmap_Reference#Bitmap'>Bitmap</a> <a href='#SkBitmap_width'>width()</a></code>, or if <code><a href='undocumented#abs()'>abs</a>(<a href='#SkBitmap_writePixels_dstY'>dstY</a>) >= <a href='SkBitmap_Reference#Bitmap'>Bitmap</a> <a href='#SkBitmap_height'>height()</a></code>.
### Parameters
<table> <tr> <td><a name='SkBitmap_writePixels_src'><code><strong>src</strong></code></a></td>
- <td>source <a href='SkPixmap_Reference#Pixmap'>Pixmap</a>: <a href='#Image_Info'>Image_Info</a>, <a href='#Image_Info'>pixels</a>, <a href='#Row_Bytes'>row bytes</a></td>
+ <td>source <a href='SkPixmap_Reference#Pixmap'>Pixmap</a>: <a href='#Image_Info'>Image_Info</a>, pixels, <a href='#Row_Bytes'>row bytes</a></td>
</tr>
<tr> <td><a name='SkBitmap_writePixels_dstX'><code><strong>dstX</strong></code></a></td>
<td>column index whose absolute value is less than <a href='#SkBitmap_width'>width()</a></td>
@@ -3152,7 +3152,7 @@
### Return Value
-true if <a href='#SkBitmap_writePixels_src'>src</a> <a href='#SkBitmap_writePixels_src'>pixels</a> <a href='#SkBitmap_writePixels_src'>are</a> <a href='#SkBitmap_writePixels_src'>copied</a> <a href='#SkBitmap_writePixels_src'>to</a> <a href='SkBitmap_Reference#Bitmap'>Bitmap</a>
+true if <a href='#SkBitmap_writePixels_src'>src</a> pixels are copied to <a href='SkBitmap_Reference#Bitmap'>Bitmap</a>
### Example
@@ -3167,42 +3167,42 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-bool <a href='#SkBitmap_writePixels'>writePixels</a>(<a href='#SkBitmap_writePixels'>const</a> <a href='SkPixmap_Reference#SkPixmap'>SkPixmap</a>& <a href='SkPixmap_Reference#SkPixmap'>src</a>)
+bool <a href='#SkBitmap_writePixels'>writePixels</a>(const <a href='SkPixmap_Reference#SkPixmap'>SkPixmap</a>& src)
</pre>
-Copies a <a href='SkRect_Reference#Rect'>Rect</a> <a href='SkRect_Reference#Rect'>of</a> <a href='SkRect_Reference#Rect'>pixels</a> <a href='SkRect_Reference#Rect'>from</a> <a href='#SkBitmap_writePixels_2_src'>src</a>. <a href='#SkBitmap_writePixels_2_src'>Copy</a> <a href='#SkBitmap_writePixels_2_src'>starts</a> <a href='#SkBitmap_writePixels_2_src'>at</a> (0, 0), <a href='#SkBitmap_writePixels_2_src'>and</a> <a href='#SkBitmap_writePixels_2_src'>does</a> <a href='#SkBitmap_writePixels_2_src'>not</a> <a href='#SkBitmap_writePixels_2_src'>exceed</a>
+Copies a <a href='SkRect_Reference#Rect'>Rect</a> of pixels from <a href='#SkBitmap_writePixels_2_src'>src</a>. Copy starts at (0, 0), and does not exceed
(<a href='#SkBitmap_writePixels_2_src'>src</a>.<a href='#SkPixmap_width'>width()</a>, <a href='#SkBitmap_writePixels_2_src'>src</a>.<a href='#SkPixmap_height'>height()</a>).
-<a href='#SkBitmap_writePixels_2_src'>src</a> <a href='#SkBitmap_writePixels_2_src'>specifies</a> <a href='#SkBitmap_writePixels_2_src'>width</a>, <a href='#SkBitmap_writePixels_2_src'>height</a>, <a href='#Image_Info_Color_Type'>Color_Type</a>, <a href='#Image_Info_Alpha_Type'>Alpha_Type</a>, <a href='#Color_Space'>Color_Space</a>, <a href='undocumented#Pixel_Storage'>pixel storage</a>,
-<a href='undocumented#Pixel'>and</a> <a href='#Row_Bytes'>row bytes</a> <a href='undocumented#Pixel'>of</a> <a href='undocumented#Pixel'>source</a>. <a href='#SkBitmap_writePixels_2_src'>src</a>.<a href='#SkPixmap_rowBytes'>rowBytes</a>() <a href='#SkPixmap_rowBytes'>specifics</a> <a href='#SkPixmap_rowBytes'>the</a> <a href='#SkPixmap_rowBytes'>gap</a> <a href='#SkPixmap_rowBytes'>from</a> <a href='#SkPixmap_rowBytes'>one</a> <a href='#SkPixmap_rowBytes'>source</a>
-<a href='#SkPixmap_rowBytes'>row</a> <a href='#SkPixmap_rowBytes'>to</a> <a href='#SkPixmap_rowBytes'>the</a> <a href='#SkPixmap_rowBytes'>next</a>. <a href='#SkPixmap_rowBytes'>Returns</a> <a href='#SkPixmap_rowBytes'>true</a> <a href='#SkPixmap_rowBytes'>if</a> <a href='#SkPixmap_rowBytes'>pixels</a> <a href='#SkPixmap_rowBytes'>are</a> <a href='#SkPixmap_rowBytes'>copied</a>. <a href='#SkPixmap_rowBytes'>Returns</a> <a href='#SkPixmap_rowBytes'>false</a> <a href='#SkPixmap_rowBytes'>if</a>:
+<a href='#SkBitmap_writePixels_2_src'>src</a> specifies width, height, <a href='#Image_Info_Color_Type'>Color_Type</a>, <a href='#Image_Info_Alpha_Type'>Alpha_Type</a>, <a href='#Color_Space'>Color_Space</a>, <a href='undocumented#Pixel_Storage'>pixel storage</a>,
+and <a href='#Row_Bytes'>row bytes</a> of source. <a href='#SkBitmap_writePixels_2_src'>src</a>.<a href='#SkPixmap_rowBytes'>rowBytes</a>() specifics the gap from one source
+row to the next. Returns true if pixels are copied. Returns false if:
<table> <tr>
- <td><a href='#SkBitmap_writePixels_2_src'>src</a> <a href='undocumented#Pixel_Storage'>pixel storage</a> <a href='undocumented#Pixel'>equals</a> <a href='undocumented#Pixel'>nullptr</a></td>
+ <td><a href='#SkBitmap_writePixels_2_src'>src</a> <a href='undocumented#Pixel_Storage'>pixel storage</a> equals nullptr</td>
</tr> <tr>
- <td><a href='#SkBitmap_writePixels_2_src'>src</a>.<a href='#SkPixmap_rowBytes'>rowBytes</a>() <a href='#SkPixmap_rowBytes'>is</a> <a href='#SkPixmap_rowBytes'>less</a> <a href='#SkPixmap_rowBytes'>than</a> <a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a>::<a href='#SkImageInfo_minRowBytes'>minRowBytes</a>()</td>
+ <td><a href='#SkBitmap_writePixels_2_src'>src</a>.<a href='#SkPixmap_rowBytes'>rowBytes</a>() is less than <a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a>::<a href='#SkImageInfo_minRowBytes'>minRowBytes</a>()</td>
</tr> <tr>
- <td><a href='#Pixel_Ref'>Pixel_Ref</a> <a href='#Pixel_Ref'>is</a> <a href='#Pixel_Ref'>nullptr</a></td>
+ <td><a href='#Pixel_Ref'>Pixel_Ref</a> is nullptr</td>
</tr>
</table>
-Pixels are copied only if <a href='undocumented#Pixel'>pixel</a> <a href='undocumented#Pixel'>conversion</a> <a href='undocumented#Pixel'>is</a> <a href='undocumented#Pixel'>possible</a>. <a href='undocumented#Pixel'>If</a> <a href='SkBitmap_Reference#Bitmap'>Bitmap</a> <a href='#SkBitmap_colorType'>colorType</a> <a href='#SkBitmap_colorType'>is</a>
-<a href='SkImageInfo_Reference#kGray_8_SkColorType'>kGray_8_SkColorType</a>, <a href='SkImageInfo_Reference#kGray_8_SkColorType'>or</a> <a href='SkImageInfo_Reference#kAlpha_8_SkColorType'>kAlpha_8_SkColorType</a>; <a href='#SkBitmap_writePixels_2_src'>src</a> <a href='#Image_Info_Color_Type'>Color_Type</a> <a href='#Image_Info_Color_Type'>must</a> <a href='#Image_Info_Color_Type'>match</a>.
-<a href='#Image_Info_Color_Type'>If</a> <a href='SkBitmap_Reference#Bitmap'>Bitmap</a> <a href='#SkBitmap_colorType'>colorType</a> <a href='#SkBitmap_colorType'>is</a> <a href='SkImageInfo_Reference#kGray_8_SkColorType'>kGray_8_SkColorType</a>, <a href='#SkBitmap_writePixels_2_src'>src</a> <a href='#Color_Space'>Color_Space</a> <a href='#Color_Space'>must</a> <a href='#Color_Space'>match</a>.
-<a href='#Color_Space'>If</a> <a href='SkBitmap_Reference#Bitmap'>Bitmap</a> <a href='#SkBitmap_alphaType'>alphaType</a> <a href='#SkBitmap_alphaType'>is</a> <a href='SkImageInfo_Reference#kOpaque_SkAlphaType'>kOpaque_SkAlphaType</a>, <a href='#SkBitmap_writePixels_2_src'>src</a> <a href='#Image_Info_Alpha_Type'>Alpha_Type</a> <a href='#Image_Info_Alpha_Type'>must</a>
-<a href='#Image_Info_Alpha_Type'>match</a>. <a href='#Image_Info_Alpha_Type'>If</a> <a href='SkBitmap_Reference#Bitmap'>Bitmap</a> <a href='#SkBitmap_colorSpace'>colorSpace</a> <a href='#SkBitmap_colorSpace'>is</a> <a href='#SkBitmap_colorSpace'>nullptr</a>, <a href='#SkBitmap_writePixels_2_src'>src</a> <a href='#Color_Space'>Color_Space</a> <a href='#Color_Space'>must</a> <a href='#Color_Space'>match</a>. <a href='#Color_Space'>Returns</a>
-<a href='#Color_Space'>false</a> <a href='#Color_Space'>if</a> <a href='undocumented#Pixel'>pixel</a> <a href='undocumented#Pixel'>conversion</a> <a href='undocumented#Pixel'>is</a> <a href='undocumented#Pixel'>not</a> <a href='undocumented#Pixel'>possible</a>.
+Pixels are copied only if <a href='undocumented#Pixel'>pixel</a> conversion is possible. If <a href='SkBitmap_Reference#Bitmap'>Bitmap</a> <a href='#SkBitmap_colorType'>colorType</a> is
+<a href='SkImageInfo_Reference#kGray_8_SkColorType'>kGray_8_SkColorType</a>, or <a href='SkImageInfo_Reference#kAlpha_8_SkColorType'>kAlpha_8_SkColorType</a>; <a href='#SkBitmap_writePixels_2_src'>src</a> <a href='#Image_Info_Color_Type'>Color_Type</a> must match.
+If <a href='SkBitmap_Reference#Bitmap'>Bitmap</a> <a href='#SkBitmap_colorType'>colorType</a> is <a href='SkImageInfo_Reference#kGray_8_SkColorType'>kGray_8_SkColorType</a>, <a href='#SkBitmap_writePixels_2_src'>src</a> <a href='#Color_Space'>Color_Space</a> must match.
+If <a href='SkBitmap_Reference#Bitmap'>Bitmap</a> <a href='#SkBitmap_alphaType'>alphaType</a> is <a href='SkImageInfo_Reference#kOpaque_SkAlphaType'>kOpaque_SkAlphaType</a>, <a href='#SkBitmap_writePixels_2_src'>src</a> <a href='#Image_Info_Alpha_Type'>Alpha_Type</a> must
+match. If <a href='SkBitmap_Reference#Bitmap'>Bitmap</a> <a href='#SkBitmap_colorSpace'>colorSpace</a> is nullptr, <a href='#SkBitmap_writePixels_2_src'>src</a> <a href='#Color_Space'>Color_Space</a> must match. Returns
+false if <a href='undocumented#Pixel'>pixel</a> conversion is not possible.
### Parameters
<table> <tr> <td><a name='SkBitmap_writePixels_2_src'><code><strong>src</strong></code></a></td>
- <td>source <a href='SkPixmap_Reference#Pixmap'>Pixmap</a>: <a href='#Image_Info'>Image_Info</a>, <a href='#Image_Info'>pixels</a>, <a href='#Row_Bytes'>row bytes</a></td>
+ <td>source <a href='SkPixmap_Reference#Pixmap'>Pixmap</a>: <a href='#Image_Info'>Image_Info</a>, pixels, <a href='#Row_Bytes'>row bytes</a></td>
</tr>
</table>
### Return Value
-true if <a href='#SkBitmap_writePixels_2_src'>src</a> <a href='#SkBitmap_writePixels_2_src'>pixels</a> <a href='#SkBitmap_writePixels_2_src'>are</a> <a href='#SkBitmap_writePixels_2_src'>copied</a> <a href='#SkBitmap_writePixels_2_src'>to</a> <a href='SkBitmap_Reference#Bitmap'>Bitmap</a>
+true if <a href='#SkBitmap_writePixels_2_src'>src</a> pixels are copied to <a href='SkBitmap_Reference#Bitmap'>Bitmap</a>
### Example
@@ -3217,24 +3217,24 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-bool <a href='#SkBitmap_extractAlpha'>extractAlpha</a>(<a href='SkBitmap_Reference#SkBitmap'>SkBitmap</a>* <a href='SkBitmap_Reference#SkBitmap'>dst</a>) <a href='SkBitmap_Reference#SkBitmap'>const</a>
+bool <a href='#SkBitmap_extractAlpha'>extractAlpha</a>(<a href='SkBitmap_Reference#SkBitmap'>SkBitmap</a>* dst) const
</pre>
-Sets <a href='#SkBitmap_extractAlpha_dst'>dst</a> <a href='#SkBitmap_extractAlpha_dst'>to</a> <a href='SkColor_Reference#Alpha'>alpha</a> <a href='SkColor_Reference#Alpha'>described</a> <a href='SkColor_Reference#Alpha'>by</a> <a href='SkColor_Reference#Alpha'>pixels</a>. <a href='SkColor_Reference#Alpha'>Returns</a> <a href='SkColor_Reference#Alpha'>false</a> <a href='SkColor_Reference#Alpha'>if</a> <a href='#SkBitmap_extractAlpha_dst'>dst</a> <a href='#SkBitmap_extractAlpha_dst'>cannot</a> <a href='#SkBitmap_extractAlpha_dst'>be</a> <a href='#SkBitmap_extractAlpha_dst'>written</a> <a href='#SkBitmap_extractAlpha_dst'>to</a>
-or <a href='#SkBitmap_extractAlpha_dst'>dst</a> <a href='#SkBitmap_extractAlpha_dst'>pixels</a> <a href='#SkBitmap_extractAlpha_dst'>cannot</a> <a href='#SkBitmap_extractAlpha_dst'>be</a> <a href='#SkBitmap_extractAlpha_dst'>allocated</a>.
+Sets <a href='#SkBitmap_extractAlpha_dst'>dst</a> to <a href='SkColor_Reference#Alpha'>alpha</a> described by pixels. Returns false if <a href='#SkBitmap_extractAlpha_dst'>dst</a> cannot be written to
+or <a href='#SkBitmap_extractAlpha_dst'>dst</a> pixels cannot be allocated.
-Uses <a href='#SkBitmap_HeapAllocator'>HeapAllocator</a> <a href='#SkBitmap_HeapAllocator'>to</a> <a href='#SkBitmap_HeapAllocator'>reserve</a> <a href='#SkBitmap_HeapAllocator'>memory</a> <a href='#SkBitmap_HeapAllocator'>for</a> <a href='#SkBitmap_extractAlpha_dst'>dst</a> <a href='undocumented#SkPixelRef'>SkPixelRef</a>.
+Uses <a href='#SkBitmap_HeapAllocator'>HeapAllocator</a> to reserve memory for <a href='#SkBitmap_extractAlpha_dst'>dst</a> <a href='undocumented#SkPixelRef'>SkPixelRef</a>.
### Parameters
<table> <tr> <td><a name='SkBitmap_extractAlpha_dst'><code><strong>dst</strong></code></a></td>
- <td>holds <a href='undocumented#SkPixelRef'>SkPixelRef</a> <a href='undocumented#SkPixelRef'>to</a> <a href='undocumented#SkPixelRef'>fill</a> <a href='undocumented#SkPixelRef'>with</a> <a href='SkColor_Reference#Alpha'>alpha</a> <a href='SkCanvas_Reference#Layer'>layer</a></td>
+ <td>holds <a href='undocumented#SkPixelRef'>SkPixelRef</a> to fill with <a href='SkColor_Reference#Alpha'>alpha</a> <a href='SkCanvas_Reference#Layer'>layer</a></td>
</tr>
</table>
### Return Value
-true if <a href='SkColor_Reference#Alpha'>alpha</a> <a href='SkCanvas_Reference#Layer'>layer</a> <a href='SkCanvas_Reference#Layer'>was</a> <a href='SkCanvas_Reference#Layer'>constructed</a> <a href='SkCanvas_Reference#Layer'>in</a> <a href='#SkBitmap_extractAlpha_dst'>dst</a> <a href='undocumented#SkPixelRef'>SkPixelRef</a>
+true if <a href='SkColor_Reference#Alpha'>alpha</a> <a href='SkCanvas_Reference#Layer'>layer</a> was constructed in <a href='#SkBitmap_extractAlpha_dst'>dst</a> <a href='undocumented#SkPixelRef'>SkPixelRef</a>
### Example
@@ -3249,33 +3249,33 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-bool <a href='#SkBitmap_extractAlpha'>extractAlpha</a>(<a href='SkBitmap_Reference#SkBitmap'>SkBitmap</a>* <a href='SkBitmap_Reference#SkBitmap'>dst</a>, <a href='SkBitmap_Reference#SkBitmap'>const</a> <a href='SkPaint_Reference#SkPaint'>SkPaint</a>* <a href='SkPaint_Reference#Paint'>paint</a>, <a href='SkIPoint_Reference#SkIPoint'>SkIPoint</a>* <a href='SkIPoint_Reference#SkIPoint'>offset</a>) <a href='SkIPoint_Reference#SkIPoint'>const</a>
+bool <a href='#SkBitmap_extractAlpha'>extractAlpha</a>(<a href='SkBitmap_Reference#SkBitmap'>SkBitmap</a>* dst, const <a href='SkPaint_Reference#SkPaint'>SkPaint</a>* <a href='SkPaint_Reference#Paint'>paint</a>, <a href='SkIPoint_Reference#SkIPoint'>SkIPoint</a>* offset) const
</pre>
-Sets <a href='#SkBitmap_extractAlpha_2_dst'>dst</a> <a href='#SkBitmap_extractAlpha_2_dst'>to</a> <a href='SkColor_Reference#Alpha'>alpha</a> <a href='SkColor_Reference#Alpha'>described</a> <a href='SkColor_Reference#Alpha'>by</a> <a href='SkColor_Reference#Alpha'>pixels</a>. <a href='SkColor_Reference#Alpha'>Returns</a> <a href='SkColor_Reference#Alpha'>false</a> <a href='SkColor_Reference#Alpha'>if</a> <a href='#SkBitmap_extractAlpha_2_dst'>dst</a> <a href='#SkBitmap_extractAlpha_2_dst'>cannot</a> <a href='#SkBitmap_extractAlpha_2_dst'>be</a> <a href='#SkBitmap_extractAlpha_2_dst'>written</a> <a href='#SkBitmap_extractAlpha_2_dst'>to</a>
-or <a href='#SkBitmap_extractAlpha_2_dst'>dst</a> <a href='#SkBitmap_extractAlpha_2_dst'>pixels</a> <a href='#SkBitmap_extractAlpha_2_dst'>cannot</a> <a href='#SkBitmap_extractAlpha_2_dst'>be</a> <a href='#SkBitmap_extractAlpha_2_dst'>allocated</a>.
+Sets <a href='#SkBitmap_extractAlpha_2_dst'>dst</a> to <a href='SkColor_Reference#Alpha'>alpha</a> described by pixels. Returns false if <a href='#SkBitmap_extractAlpha_2_dst'>dst</a> cannot be written to
+or <a href='#SkBitmap_extractAlpha_2_dst'>dst</a> pixels cannot be allocated.
-If <a href='#SkBitmap_extractAlpha_2_paint'>paint</a> <a href='#SkBitmap_extractAlpha_2_paint'>is</a> <a href='#SkBitmap_extractAlpha_2_paint'>not</a> <a href='#SkBitmap_extractAlpha_2_paint'>nullptr</a> <a href='#SkBitmap_extractAlpha_2_paint'>and</a> <a href='#SkBitmap_extractAlpha_2_paint'>contains</a> <a href='undocumented#SkMaskFilter'>SkMaskFilter</a>, <a href='undocumented#SkMaskFilter'>SkMaskFilter</a>
-generates <a href='undocumented#Mask_Alpha'>mask alpha</a> from <a href='SkBitmap_Reference#SkBitmap'>SkBitmap</a>. <a href='SkBitmap_Reference#SkBitmap'>Uses</a> <a href='#SkBitmap_HeapAllocator'>HeapAllocator</a> <a href='#SkBitmap_HeapAllocator'>to</a> <a href='#SkBitmap_HeapAllocator'>reserve</a> <a href='#SkBitmap_HeapAllocator'>memory</a> <a href='#SkBitmap_HeapAllocator'>for</a> <a href='#SkBitmap_extractAlpha_2_dst'>dst</a>
-<a href='undocumented#SkPixelRef'>SkPixelRef</a>. <a href='undocumented#SkPixelRef'>Sets</a> <a href='#SkBitmap_extractAlpha_2_offset'>offset</a> <a href='#SkBitmap_extractAlpha_2_offset'>to</a> <a href='#SkBitmap_extractAlpha_2_offset'>top-left</a> <a href='#SkBitmap_extractAlpha_2_offset'>position</a> <a href='#SkBitmap_extractAlpha_2_offset'>for</a> <a href='#SkBitmap_extractAlpha_2_dst'>dst</a> <a href='#SkBitmap_extractAlpha_2_dst'>for</a> <a href='#SkBitmap_extractAlpha_2_dst'>alignment</a> <a href='#SkBitmap_extractAlpha_2_dst'>with</a> <a href='SkBitmap_Reference#SkBitmap'>SkBitmap</a>;
-(0, 0) unless <a href='undocumented#SkMaskFilter'>SkMaskFilter</a> <a href='undocumented#SkMaskFilter'>generates</a> <a href='undocumented#SkMaskFilter'>mask</a>.
+If <a href='#SkBitmap_extractAlpha_2_paint'>paint</a> is not nullptr and contains <a href='undocumented#SkMaskFilter'>SkMaskFilter</a>, <a href='undocumented#SkMaskFilter'>SkMaskFilter</a>
+generates <a href='undocumented#Mask_Alpha'>mask alpha</a> from <a href='SkBitmap_Reference#SkBitmap'>SkBitmap</a>. Uses <a href='#SkBitmap_HeapAllocator'>HeapAllocator</a> to reserve memory for <a href='#SkBitmap_extractAlpha_2_dst'>dst</a>
+<a href='undocumented#SkPixelRef'>SkPixelRef</a>. Sets <a href='#SkBitmap_extractAlpha_2_offset'>offset</a> to top-left position for <a href='#SkBitmap_extractAlpha_2_dst'>dst</a> for alignment with <a href='SkBitmap_Reference#SkBitmap'>SkBitmap</a>;
+(0, 0) unless <a href='undocumented#SkMaskFilter'>SkMaskFilter</a> generates mask.
### Parameters
<table> <tr> <td><a name='SkBitmap_extractAlpha_2_dst'><code><strong>dst</strong></code></a></td>
- <td>holds <a href='undocumented#SkPixelRef'>SkPixelRef</a> <a href='undocumented#SkPixelRef'>to</a> <a href='undocumented#SkPixelRef'>fill</a> <a href='undocumented#SkPixelRef'>with</a> <a href='SkColor_Reference#Alpha'>alpha</a> <a href='SkCanvas_Reference#Layer'>layer</a></td>
+ <td>holds <a href='undocumented#SkPixelRef'>SkPixelRef</a> to fill with <a href='SkColor_Reference#Alpha'>alpha</a> <a href='SkCanvas_Reference#Layer'>layer</a></td>
</tr>
<tr> <td><a name='SkBitmap_extractAlpha_2_paint'><code><strong>paint</strong></code></a></td>
- <td>holds optional <a href='undocumented#SkMaskFilter'>SkMaskFilter</a>; <a href='undocumented#SkMaskFilter'>may</a> <a href='undocumented#SkMaskFilter'>be</a> <a href='undocumented#SkMaskFilter'>nullptr</a></td>
+ <td>holds optional <a href='undocumented#SkMaskFilter'>SkMaskFilter</a>; may be nullptr</td>
</tr>
<tr> <td><a name='SkBitmap_extractAlpha_2_offset'><code><strong>offset</strong></code></a></td>
- <td>top-left position for <a href='#SkBitmap_extractAlpha_2_dst'>dst</a>; <a href='#SkBitmap_extractAlpha_2_dst'>may</a> <a href='#SkBitmap_extractAlpha_2_dst'>be</a> <a href='#SkBitmap_extractAlpha_2_dst'>nullptr</a></td>
+ <td>top-left position for <a href='#SkBitmap_extractAlpha_2_dst'>dst</a>; may be nullptr</td>
</tr>
</table>
### Return Value
-true if <a href='SkColor_Reference#Alpha'>alpha</a> <a href='SkCanvas_Reference#Layer'>layer</a> <a href='SkCanvas_Reference#Layer'>was</a> <a href='SkCanvas_Reference#Layer'>constructed</a> <a href='SkCanvas_Reference#Layer'>in</a> <a href='#SkBitmap_extractAlpha_2_dst'>dst</a> <a href='undocumented#SkPixelRef'>SkPixelRef</a>
+true if <a href='SkColor_Reference#Alpha'>alpha</a> <a href='SkCanvas_Reference#Layer'>layer</a> was constructed in <a href='#SkBitmap_extractAlpha_2_dst'>dst</a> <a href='undocumented#SkPixelRef'>SkPixelRef</a>
### Example
@@ -3290,37 +3290,37 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-bool <a href='#SkBitmap_extractAlpha'>extractAlpha</a>(<a href='SkBitmap_Reference#SkBitmap'>SkBitmap</a>* <a href='SkBitmap_Reference#SkBitmap'>dst</a>, <a href='SkBitmap_Reference#SkBitmap'>const</a> <a href='SkPaint_Reference#SkPaint'>SkPaint</a>* <a href='SkPaint_Reference#Paint'>paint</a>, <a href='#SkBitmap_Allocator'>Allocator</a>* <a href='#SkBitmap_Allocator'>allocator</a>, <a href='SkIPoint_Reference#SkIPoint'>SkIPoint</a>* <a href='SkIPoint_Reference#SkIPoint'>offset</a>) <a href='SkIPoint_Reference#SkIPoint'>const</a>
+bool <a href='#SkBitmap_extractAlpha'>extractAlpha</a>(<a href='SkBitmap_Reference#SkBitmap'>SkBitmap</a>* dst, const <a href='SkPaint_Reference#SkPaint'>SkPaint</a>* <a href='SkPaint_Reference#Paint'>paint</a>, <a href='#SkBitmap_Allocator'>Allocator</a>* allocator, <a href='SkIPoint_Reference#SkIPoint'>SkIPoint</a>* offset) const
</pre>
-Sets <a href='#SkBitmap_extractAlpha_3_dst'>dst</a> <a href='#SkBitmap_extractAlpha_3_dst'>to</a> <a href='SkColor_Reference#Alpha'>alpha</a> <a href='SkColor_Reference#Alpha'>described</a> <a href='SkColor_Reference#Alpha'>by</a> <a href='SkColor_Reference#Alpha'>pixels</a>. <a href='SkColor_Reference#Alpha'>Returns</a> <a href='SkColor_Reference#Alpha'>false</a> <a href='SkColor_Reference#Alpha'>if</a> <a href='#SkBitmap_extractAlpha_3_dst'>dst</a> <a href='#SkBitmap_extractAlpha_3_dst'>cannot</a> <a href='#SkBitmap_extractAlpha_3_dst'>be</a> <a href='#SkBitmap_extractAlpha_3_dst'>written</a> <a href='#SkBitmap_extractAlpha_3_dst'>to</a>
-or <a href='#SkBitmap_extractAlpha_3_dst'>dst</a> <a href='#SkBitmap_extractAlpha_3_dst'>pixels</a> <a href='#SkBitmap_extractAlpha_3_dst'>cannot</a> <a href='#SkBitmap_extractAlpha_3_dst'>be</a> <a href='#SkBitmap_extractAlpha_3_dst'>allocated</a>.
+Sets <a href='#SkBitmap_extractAlpha_3_dst'>dst</a> to <a href='SkColor_Reference#Alpha'>alpha</a> described by pixels. Returns false if <a href='#SkBitmap_extractAlpha_3_dst'>dst</a> cannot be written to
+or <a href='#SkBitmap_extractAlpha_3_dst'>dst</a> pixels cannot be allocated.
-If <a href='#SkBitmap_extractAlpha_3_paint'>paint</a> <a href='#SkBitmap_extractAlpha_3_paint'>is</a> <a href='#SkBitmap_extractAlpha_3_paint'>not</a> <a href='#SkBitmap_extractAlpha_3_paint'>nullptr</a> <a href='#SkBitmap_extractAlpha_3_paint'>and</a> <a href='#SkBitmap_extractAlpha_3_paint'>contains</a> <a href='undocumented#SkMaskFilter'>SkMaskFilter</a>, <a href='undocumented#SkMaskFilter'>SkMaskFilter</a>
-generates <a href='undocumented#Mask_Alpha'>mask alpha</a> from <a href='SkBitmap_Reference#SkBitmap'>SkBitmap</a>. <a href='#SkBitmap_extractAlpha_3_allocator'>allocator</a> <a href='#SkBitmap_extractAlpha_3_allocator'>may</a> <a href='#SkBitmap_extractAlpha_3_allocator'>reference</a> <a href='#SkBitmap_extractAlpha_3_allocator'>a</a> <a href='#SkBitmap_extractAlpha_3_allocator'>custom</a> <a href='#SkBitmap_extractAlpha_3_allocator'>allocation</a>
-class or be set to nullptr to use <a href='#SkBitmap_HeapAllocator'>HeapAllocator</a>. <a href='#SkBitmap_HeapAllocator'>Sets</a> <a href='#SkBitmap_extractAlpha_3_offset'>offset</a> <a href='#SkBitmap_extractAlpha_3_offset'>to</a> <a href='#SkBitmap_extractAlpha_3_offset'>top-left</a>
-position for <a href='#SkBitmap_extractAlpha_3_dst'>dst</a> <a href='#SkBitmap_extractAlpha_3_dst'>for</a> <a href='#SkBitmap_extractAlpha_3_dst'>alignment</a> <a href='#SkBitmap_extractAlpha_3_dst'>with</a> <a href='SkBitmap_Reference#SkBitmap'>SkBitmap</a>; (0, 0) <a href='SkBitmap_Reference#SkBitmap'>unless</a> <a href='undocumented#SkMaskFilter'>SkMaskFilter</a> <a href='undocumented#SkMaskFilter'>generates</a>
+If <a href='#SkBitmap_extractAlpha_3_paint'>paint</a> is not nullptr and contains <a href='undocumented#SkMaskFilter'>SkMaskFilter</a>, <a href='undocumented#SkMaskFilter'>SkMaskFilter</a>
+generates <a href='undocumented#Mask_Alpha'>mask alpha</a> from <a href='SkBitmap_Reference#SkBitmap'>SkBitmap</a>. <a href='#SkBitmap_extractAlpha_3_allocator'>allocator</a> may reference a custom allocation
+class or be set to nullptr to use <a href='#SkBitmap_HeapAllocator'>HeapAllocator</a>. Sets <a href='#SkBitmap_extractAlpha_3_offset'>offset</a> to top-left
+position for <a href='#SkBitmap_extractAlpha_3_dst'>dst</a> for alignment with <a href='SkBitmap_Reference#SkBitmap'>SkBitmap</a>; (0, 0) unless <a href='undocumented#SkMaskFilter'>SkMaskFilter</a> generates
mask.
### Parameters
<table> <tr> <td><a name='SkBitmap_extractAlpha_3_dst'><code><strong>dst</strong></code></a></td>
- <td>holds <a href='undocumented#SkPixelRef'>SkPixelRef</a> <a href='undocumented#SkPixelRef'>to</a> <a href='undocumented#SkPixelRef'>fill</a> <a href='undocumented#SkPixelRef'>with</a> <a href='SkColor_Reference#Alpha'>alpha</a> <a href='SkCanvas_Reference#Layer'>layer</a></td>
+ <td>holds <a href='undocumented#SkPixelRef'>SkPixelRef</a> to fill with <a href='SkColor_Reference#Alpha'>alpha</a> <a href='SkCanvas_Reference#Layer'>layer</a></td>
</tr>
<tr> <td><a name='SkBitmap_extractAlpha_3_paint'><code><strong>paint</strong></code></a></td>
- <td>holds optional <a href='undocumented#SkMaskFilter'>SkMaskFilter</a>; <a href='undocumented#SkMaskFilter'>may</a> <a href='undocumented#SkMaskFilter'>be</a> <a href='undocumented#SkMaskFilter'>nullptr</a></td>
+ <td>holds optional <a href='undocumented#SkMaskFilter'>SkMaskFilter</a>; may be nullptr</td>
</tr>
<tr> <td><a name='SkBitmap_extractAlpha_3_allocator'><code><strong>allocator</strong></code></a></td>
- <td>function to reserve memory for <a href='undocumented#SkPixelRef'>SkPixelRef</a>; <a href='undocumented#SkPixelRef'>may</a> <a href='undocumented#SkPixelRef'>be</a> <a href='undocumented#SkPixelRef'>nullptr</a></td>
+ <td>function to reserve memory for <a href='undocumented#SkPixelRef'>SkPixelRef</a>; may be nullptr</td>
</tr>
<tr> <td><a name='SkBitmap_extractAlpha_3_offset'><code><strong>offset</strong></code></a></td>
- <td>top-left position for <a href='#SkBitmap_extractAlpha_3_dst'>dst</a>; <a href='#SkBitmap_extractAlpha_3_dst'>may</a> <a href='#SkBitmap_extractAlpha_3_dst'>be</a> <a href='#SkBitmap_extractAlpha_3_dst'>nullptr</a></td>
+ <td>top-left position for <a href='#SkBitmap_extractAlpha_3_dst'>dst</a>; may be nullptr</td>
</tr>
</table>
### Return Value
-true if <a href='SkColor_Reference#Alpha'>alpha</a> <a href='SkCanvas_Reference#Layer'>layer</a> <a href='SkCanvas_Reference#Layer'>was</a> <a href='SkCanvas_Reference#Layer'>constructed</a> <a href='SkCanvas_Reference#Layer'>in</a> <a href='#SkBitmap_extractAlpha_3_dst'>dst</a> <a href='undocumented#SkPixelRef'>SkPixelRef</a>
+true if <a href='SkColor_Reference#Alpha'>alpha</a> <a href='SkCanvas_Reference#Layer'>layer</a> was constructed in <a href='#SkBitmap_extractAlpha_3_dst'>dst</a> <a href='undocumented#SkPixelRef'>SkPixelRef</a>
### Example
@@ -3335,25 +3335,25 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-bool <a href='#SkBitmap_peekPixels'>peekPixels</a>(<a href='SkPixmap_Reference#SkPixmap'>SkPixmap</a>* <a href='SkPixmap_Reference#Pixmap'>pixmap</a>) <a href='SkPixmap_Reference#Pixmap'>const</a>
+bool <a href='#SkBitmap_peekPixels'>peekPixels</a>(<a href='SkPixmap_Reference#SkPixmap'>SkPixmap</a>* <a href='SkPixmap_Reference#Pixmap'>pixmap</a>) const
</pre>
-Copies <a href='SkBitmap_Reference#SkBitmap'>SkBitmap</a> <a href='undocumented#Pixel'>pixel</a> <a href='undocumented#Pixel'>address</a>, <a href='#Row_Bytes'>row bytes</a>, <a href='undocumented#Pixel'>and</a> <a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a> <a href='SkImageInfo_Reference#SkImageInfo'>to</a> <a href='#SkBitmap_peekPixels_pixmap'>pixmap</a>, <a href='#SkBitmap_peekPixels_pixmap'>if</a> <a href='#SkBitmap_peekPixels_pixmap'>address</a>
-is available, and returns true. If <a href='undocumented#Pixel'>pixel</a> <a href='undocumented#Pixel'>address</a> <a href='undocumented#Pixel'>is</a> <a href='undocumented#Pixel'>not</a> <a href='undocumented#Pixel'>available</a>, <a href='undocumented#Pixel'>return</a>
-false and leave <a href='#SkBitmap_peekPixels_pixmap'>pixmap</a> <a href='#SkBitmap_peekPixels_pixmap'>unchanged</a>.
+Copies <a href='SkBitmap_Reference#SkBitmap'>SkBitmap</a> <a href='undocumented#Pixel'>pixel</a> address, <a href='#Row_Bytes'>row bytes</a>, and <a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a> to <a href='#SkBitmap_peekPixels_pixmap'>pixmap</a>, if address
+is available, and returns true. If <a href='undocumented#Pixel'>pixel</a> address is not available, return
+false and leave <a href='#SkBitmap_peekPixels_pixmap'>pixmap</a> unchanged.
-<a href='#SkBitmap_peekPixels_pixmap'>pixmap</a> <a href='#SkBitmap_peekPixels_pixmap'>contents</a> <a href='#SkBitmap_peekPixels_pixmap'>become</a> <a href='#SkBitmap_peekPixels_pixmap'>invalid</a> <a href='#SkBitmap_peekPixels_pixmap'>on</a> <a href='#SkBitmap_peekPixels_pixmap'>any</a> <a href='#SkBitmap_peekPixels_pixmap'>future</a> <a href='#SkBitmap_peekPixels_pixmap'>change</a> <a href='#SkBitmap_peekPixels_pixmap'>to</a> <a href='SkBitmap_Reference#SkBitmap'>SkBitmap</a>.
+<a href='#SkBitmap_peekPixels_pixmap'>pixmap</a> contents become invalid on any future change to <a href='SkBitmap_Reference#SkBitmap'>SkBitmap</a>.
### Parameters
<table> <tr> <td><a name='SkBitmap_peekPixels_pixmap'><code><strong>pixmap</strong></code></a></td>
- <td>storage for <a href='undocumented#Pixel'>pixel</a> <a href='undocumented#Pixel'>state</a> <a href='undocumented#Pixel'>if</a> <a href='undocumented#Pixel'>pixels</a> <a href='undocumented#Pixel'>are</a> <a href='undocumented#Pixel'>readable</a>; <a href='undocumented#Pixel'>otherwise</a>, <a href='undocumented#Pixel'>ignored</a></td>
+ <td>storage for <a href='undocumented#Pixel'>pixel</a> state if pixels are readable; otherwise, ignored</td>
</tr>
</table>
### Return Value
-true if <a href='SkBitmap_Reference#SkBitmap'>SkBitmap</a> <a href='SkBitmap_Reference#SkBitmap'>has</a> <a href='SkBitmap_Reference#SkBitmap'>direct</a> <a href='SkBitmap_Reference#SkBitmap'>access</a> <a href='SkBitmap_Reference#SkBitmap'>to</a> <a href='SkBitmap_Reference#SkBitmap'>pixels</a>
+true if <a href='SkBitmap_Reference#SkBitmap'>SkBitmap</a> has direct access to pixels
### Example
@@ -3388,7 +3388,7 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-void <a href='#SkBitmap_validate'>validate()</a> <a href='#SkBitmap_validate'>const</a>;
+void <a href='#SkBitmap_validate'>validate()</a> const;
</pre>
### See Also
diff --git a/site/user/api/SkBlendMode_Reference.md b/site/user/api/SkBlendMode_Reference.md
index 62fb63a..efc0ecb 100644
--- a/site/user/api/SkBlendMode_Reference.md
+++ b/site/user/api/SkBlendMode_Reference.md
@@ -4,41 +4,41 @@
<pre style="padding: 1em 1em 1em 1em;width: 62.5em; background-color: #f0f0f0">
enum class <a href='SkBlendMode_Reference#SkBlendMode'>SkBlendMode</a> {
- <a href='SkBlendMode_Reference#SkBlendMode'>kClear</a>,
- <a href='SkBlendMode_Reference#SkBlendMode'>kSrc</a>,
- <a href='SkBlendMode_Reference#SkBlendMode'>kDst</a>,
- <a href='SkBlendMode_Reference#SkBlendMode'>kSrcOver</a>,
- <a href='SkBlendMode_Reference#SkBlendMode'>kDstOver</a>,
- <a href='SkBlendMode_Reference#SkBlendMode'>kSrcIn</a>,
- <a href='SkBlendMode_Reference#SkBlendMode'>kDstIn</a>,
- <a href='SkBlendMode_Reference#SkBlendMode'>kSrcOut</a>,
- <a href='SkBlendMode_Reference#SkBlendMode'>kDstOut</a>,
- <a href='SkBlendMode_Reference#SkBlendMode'>kSrcATop</a>,
- <a href='SkBlendMode_Reference#SkBlendMode'>kDstATop</a>,
- <a href='SkBlendMode_Reference#SkBlendMode'>kXor</a>,
- <a href='SkBlendMode_Reference#SkBlendMode'>kPlus</a>,
- <a href='SkBlendMode_Reference#SkBlendMode'>kModulate</a>,
- <a href='SkBlendMode_Reference#SkBlendMode'>kScreen</a>,
- <a href='SkBlendMode_Reference#SkBlendMode'>kLastCoeffMode</a> = <a href='SkBlendMode_Reference#SkBlendMode'>kScreen</a>,
- <a href='SkBlendMode_Reference#SkBlendMode'>kOverlay</a>,
- <a href='SkBlendMode_Reference#SkBlendMode'>kDarken</a>,
- <a href='SkBlendMode_Reference#SkBlendMode'>kLighten</a>,
- <a href='SkBlendMode_Reference#SkBlendMode'>kColorDodge</a>,
- <a href='SkBlendMode_Reference#SkBlendMode'>kColorBurn</a>,
- <a href='SkBlendMode_Reference#SkBlendMode'>kHardLight</a>,
- <a href='SkBlendMode_Reference#SkBlendMode'>kSoftLight</a>,
- <a href='SkBlendMode_Reference#SkBlendMode'>kDifference</a>,
- <a href='SkBlendMode_Reference#SkBlendMode'>kExclusion</a>,
- <a href='SkBlendMode_Reference#SkBlendMode'>kMultiply</a>,
- <a href='SkBlendMode_Reference#SkBlendMode'>kLastSeparableMode</a> = <a href='SkBlendMode_Reference#SkBlendMode'>kMultiply</a>,
- <a href='SkBlendMode_Reference#SkBlendMode'>kHue</a>,
- <a href='SkBlendMode_Reference#SkBlendMode'>kSaturation</a>,
- <a href='SkBlendMode_Reference#SkBlendMode'>kColor</a>,
- <a href='SkBlendMode_Reference#SkBlendMode'>kLuminosity</a>,
- <a href='SkBlendMode_Reference#SkBlendMode'>kLastMode</a> = <a href='SkBlendMode_Reference#SkBlendMode'>kLuminosity</a>,
+ kClear,
+ kSrc,
+ kDst,
+ kSrcOver,
+ kDstOver,
+ kSrcIn,
+ kDstIn,
+ kSrcOut,
+ kDstOut,
+ kSrcATop,
+ kDstATop,
+ kXor,
+ kPlus,
+ kModulate,
+ kScreen,
+ kLastCoeffMode = kScreen,
+ kOverlay,
+ kDarken,
+ kLighten,
+ kColorDodge,
+ kColorBurn,
+ kHardLight,
+ kSoftLight,
+ kDifference,
+ kExclusion,
+ kMultiply,
+ kLastSeparableMode = kMultiply,
+ kHue,
+ kSaturation,
+ kColor,
+ kLuminosity,
+ kLastMode = kLuminosity,
};
-<a href='SkBlendMode_Reference#SkBlendMode'>const</a> <a href='SkBlendMode_Reference#SkBlendMode'>char</a>* <a href='SkBlendMode_Reference#SkBlendMode_Name'>SkBlendMode_Name</a>(<a href='SkBlendMode_Reference#SkBlendMode'>SkBlendMode</a> <a href='SkBlendMode_Reference#SkBlendMode'>blendMode</a>);
+const char* <a href='SkBlendMode_Reference#SkBlendMode_Name'>SkBlendMode_Name</a>(<a href='SkBlendMode_Reference#SkBlendMode'>SkBlendMode</a> blendMode);
</pre>
<a name='SkBlendMode'></a>
@@ -57,8 +57,8 @@
<td style='text-align: center; border: 2px solid #dddddd; padding: 8px; '>0</td>
<td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a href='#Clear'>Clear</a> </td>
<td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>
-Replaces destination with <a href='SkColor_Reference#Alpha'>Alpha</a> <a href='SkColor_Reference#Alpha'>and</a> <a href='SkColor_Reference#Color'>Color</a> <a href='SkColor_Reference#Color'>components</a> <a href='SkColor_Reference#Color'>set</a> <a href='SkColor_Reference#Color'>to</a> <a href='SkColor_Reference#Color'>zero</a>;
-<a href='SkColor_Reference#Color'>a</a> <a href='SkColor_Reference#Color'>fully</a> <a href='SkColor_Reference#Color'>transparent</a> <a href='undocumented#Pixel'>pixel</a>.
+Replaces destination with <a href='SkColor_Reference#Alpha'>Alpha</a> and <a href='SkColor_Reference#Color'>Color</a> components set to zero;
+a fully transparent <a href='undocumented#Pixel'>pixel</a>.
</td>
</tr>
<tr>
@@ -66,8 +66,8 @@
<td style='text-align: center; border: 2px solid #dddddd; padding: 8px; '>1</td>
<td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a href='#Src'>Src</a> </td>
<td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>
-Replaces destination with source. Destination <a href='SkColor_Reference#Alpha'>alpha</a> <a href='SkColor_Reference#Alpha'>and</a> <a href='SkColor_Reference#Color'>color</a> <a href='SkColor_Reference#Color'>component</a> <a href='SkColor_Reference#Color'>values</a>
-<a href='SkColor_Reference#Color'>are</a> <a href='SkColor_Reference#Color'>ignored</a>.
+Replaces destination with source. Destination <a href='SkColor_Reference#Alpha'>alpha</a> and <a href='SkColor_Reference#Color'>color</a> component values
+are ignored.
</td>
</tr>
<tr style='background-color: #f0f0f0; '>
@@ -75,8 +75,8 @@
<td style='text-align: center; border: 2px solid #dddddd; padding: 8px; '>2</td>
<td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a href='#Dst'>Dst</a> </td>
<td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>
-Preserves destination, ignoring source. Drawing with <a href='SkPaint_Reference#Paint'>Paint</a> <a href='SkPaint_Reference#Paint'>set</a> <a href='SkPaint_Reference#Paint'>to</a> <a href='#SkBlendMode_kDst'>kDst</a> <a href='#SkBlendMode_kDst'>has</a>
-<a href='#SkBlendMode_kDst'>no</a> <a href='#SkBlendMode_kDst'>effect</a>.
+Preserves destination, ignoring source. Drawing with <a href='SkPaint_Reference#Paint'>Paint</a> set to <a href='#SkBlendMode_kDst'>kDst</a> has
+no effect.
</td>
</tr>
<tr>
@@ -85,7 +85,7 @@
<td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a href='#Src_Over'>Src Over</a> </td>
<td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>
Replaces destination with source blended with destination. If source is opaque,
-replaces destination with source. Used as the default <a href='#Blend_Mode'>Blend_Mode</a> <a href='#Blend_Mode'>for</a> <a href='SkPaint_Reference#SkPaint'>SkPaint</a>.
+replaces destination with source. Used as the default <a href='#Blend_Mode'>Blend_Mode</a> for <a href='SkPaint_Reference#SkPaint'>SkPaint</a>.
</td>
</tr>
<tr style='background-color: #f0f0f0; '>
@@ -328,14 +328,14 @@
---
-<a href='SkBlendMode_Reference#SkBlendMode'>SkBlendMode</a>::<a href='#SkBlendMode_kClear'>kClear</a> <a href='#SkBlendMode_kClear'>sets</a> <a href='#SkBlendMode_kClear'>destination</a> <a href='#SkBlendMode_kClear'>to</a>: <code>[0, 0]</code>.
-Use <a href='SkBlendMode_Reference#SkBlendMode'>SkBlendMode</a>::<a href='#SkBlendMode_kClear'>kClear</a> <a href='#SkBlendMode_kClear'>to</a> <a href='#SkBlendMode_kClear'>initialize</a> <a href='#SkBlendMode_kClear'>a</a> <a href='#SkBlendMode_kClear'>buffer</a> <a href='#SkBlendMode_kClear'>to</a> <a href='#SkBlendMode_kClear'>fully</a> <a href='#SkBlendMode_kClear'>transparent</a> <a href='#SkBlendMode_kClear'>pixels</a> <a href='#SkBlendMode_kClear'>when</a>
-<a href='#SkBlendMode_kClear'>creating</a> <a href='#SkBlendMode_kClear'>a</a> <a href='#SkBlendMode_kClear'>mask</a> <a href='#SkBlendMode_kClear'>with</a> <a href='#SkBlendMode_kClear'>irregular</a> <a href='#SkBlendMode_kClear'>edges</a>.
+<a href='SkBlendMode_Reference#SkBlendMode'>SkBlendMode</a>::<a href='#SkBlendMode_kClear'>kClear</a> sets destination to: <code>[0, 0]</code>.
+Use <a href='SkBlendMode_Reference#SkBlendMode'>SkBlendMode</a>::<a href='#SkBlendMode_kClear'>kClear</a> to initialize a buffer to fully transparent pixels when
+creating a mask with irregular edges.
### Example
-<div><fiddle-embed name="a9b56a26ca469bab9ab10e16f62fb2e2"><div><a href='SkColor_Reference#SK_ColorYELLOW'>SK_ColorYELLOW</a> <a href='SkColor_Reference#SK_ColorYELLOW'>is</a> <a href='SkColor_Reference#SK_ColorYELLOW'>ignored</a> <a href='SkColor_Reference#SK_ColorYELLOW'>because</a> <a href='SkBlendMode_Reference#SkBlendMode'>SkBlendMode</a>::<a href='#SkBlendMode_kClear'>kClear</a> <a href='#SkBlendMode_kClear'>ignores</a> <a href='#SkBlendMode_kClear'>the</a> <a href='#SkBlendMode_kClear'>source</a> <a href='undocumented#Pixel'>pixel</a>
-<a href='undocumented#Pixel'>value</a> <a href='undocumented#Pixel'>and</a> <a href='undocumented#Pixel'>the</a> <a href='undocumented#Pixel'>destination</a> <a href='undocumented#Pixel'>pixel</a> <a href='undocumented#Pixel'>value</a>, <a href='undocumented#Pixel'>always</a> <a href='undocumented#Pixel'>setting</a> <a href='undocumented#Pixel'>the</a> <a href='undocumented#Pixel'>destination</a> <a href='undocumented#Pixel'>to</a> <a href='undocumented#Pixel'>zero</a>.
+<div><fiddle-embed name="a9b56a26ca469bab9ab10e16f62fb2e2"><div><a href='SkColor_Reference#SK_ColorYELLOW'>SK_ColorYELLOW</a> is ignored because <a href='SkBlendMode_Reference#SkBlendMode'>SkBlendMode</a>::<a href='#SkBlendMode_kClear'>kClear</a> ignores the source <a href='undocumented#Pixel'>pixel</a>
+value and the destination <a href='undocumented#Pixel'>pixel</a> value, always setting the destination to zero.
</div></fiddle-embed></div>
### See Also
@@ -346,16 +346,16 @@
---
-Given: <code>Sa</code> as source <a href='SkColor_Reference#Alpha'>Alpha</a>, <code>Sc</code> as source <a href='SkColor_Reference#Color'>Color</a> <a href='SkColor_Reference#Color'>component</a>;
-<a href='SkBlendMode_Reference#SkBlendMode'>SkBlendMode</a>::<a href='#SkBlendMode_kSrc'>kSrc</a> <a href='#SkBlendMode_kSrc'>sets</a> <a href='#SkBlendMode_kSrc'>destination</a> <a href='#SkBlendMode_kSrc'>to</a>: <code>[Sa, Sc]</code>.
-Use <a href='SkBlendMode_Reference#SkBlendMode'>SkBlendMode</a>::<a href='#SkBlendMode_kSrc'>kSrc</a> <a href='#SkBlendMode_kSrc'>to</a> <a href='#SkBlendMode_kSrc'>copy</a> <a href='#SkBlendMode_kSrc'>one</a> <a href='#SkBlendMode_kSrc'>buffer</a> <a href='#SkBlendMode_kSrc'>to</a> <a href='#SkBlendMode_kSrc'>another</a>. <a href='#SkBlendMode_kSrc'>All</a> <a href='#SkBlendMode_kSrc'>pixels</a> <a href='#SkBlendMode_kSrc'>are</a> <a href='#SkBlendMode_kSrc'>copied</a>,
-<a href='#SkBlendMode_kSrc'>regardless</a> <a href='#SkBlendMode_kSrc'>of</a> <a href='#SkBlendMode_kSrc'>source</a> <a href='#SkBlendMode_kSrc'>and</a> <a href='#SkBlendMode_kSrc'>destination</a> <a href='SkColor_Reference#Alpha'>Alpha</a> <a href='SkColor_Reference#Alpha'>values</a>. <a href='SkColor_Reference#Alpha'>As</a> <a href='SkColor_Reference#Alpha'>a</a> <a href='SkColor_Reference#Alpha'>parameter</a> <a href='SkColor_Reference#Alpha'>to</a>
-<a href='SkCanvas_Reference#SkCanvas'>SkCanvas</a>::<a href='#SkCanvas_drawAtlas'>drawAtlas</a>, <a href='#SkCanvas_drawAtlas'>selects</a> <a href='undocumented#Sprite'>sprites</a> <a href='undocumented#Sprite'>and</a> <a href='undocumented#Sprite'>ignores</a> <a href='undocumented#Sprite'>colors</a>.
+Given: <code>Sa</code> as source <a href='SkColor_Reference#Alpha'>Alpha</a>, <code>Sc</code> as source <a href='SkColor_Reference#Color'>Color</a> component;
+<a href='SkBlendMode_Reference#SkBlendMode'>SkBlendMode</a>::<a href='#SkBlendMode_kSrc'>kSrc</a> sets destination to: <code>[Sa, Sc]</code>.
+Use <a href='SkBlendMode_Reference#SkBlendMode'>SkBlendMode</a>::<a href='#SkBlendMode_kSrc'>kSrc</a> to copy one buffer to another. All pixels are copied,
+regardless of source and destination <a href='SkColor_Reference#Alpha'>Alpha</a> values. As a parameter to
+<a href='SkCanvas_Reference#SkCanvas'>SkCanvas</a>::<a href='#SkCanvas_drawAtlas'>drawAtlas</a>, selects <a href='undocumented#Sprite'>sprites</a> and ignores colors.
### Example
-<div><fiddle-embed name="0fc85dd916cc1a5896d36c80b9847391"><div><a href='SkBlendMode_Reference#SkBlendMode'>SkBlendMode</a>::<a href='#SkBlendMode_kSrc'>kSrc</a> <a href='#SkBlendMode_kSrc'>does</a> <a href='#SkBlendMode_kSrc'>not</a> <a href='#SkBlendMode_kSrc'>blend</a> <a href='#SkBlendMode_kSrc'>transparent</a> <a href='#SkBlendMode_kSrc'>pixels</a> <a href='#SkBlendMode_kSrc'>with</a> <a href='#SkBlendMode_kSrc'>existing</a> <a href='#SkBlendMode_kSrc'>background</a>;
-<a href='#SkBlendMode_kSrc'>it</a> <a href='#SkBlendMode_kSrc'>punches</a> <a href='#SkBlendMode_kSrc'>a</a> <a href='#SkBlendMode_kSrc'>transparent</a> <a href='#SkBlendMode_kSrc'>hole</a> <a href='#SkBlendMode_kSrc'>in</a> <a href='#SkBlendMode_kSrc'>the</a> <a href='#SkBlendMode_kSrc'>existing</a> <a href='SkImage_Reference#Image'>image</a>.
+<div><fiddle-embed name="0fc85dd916cc1a5896d36c80b9847391"><div><a href='SkBlendMode_Reference#SkBlendMode'>SkBlendMode</a>::<a href='#SkBlendMode_kSrc'>kSrc</a> does not blend transparent pixels with existing background;
+it punches a transparent hole in the existing <a href='SkImage_Reference#Image'>image</a>.
</div></fiddle-embed></div>
### See Also
@@ -366,11 +366,11 @@
---
-Given: <code>Da</code> as destination <a href='SkColor_Reference#Alpha'>Alpha</a>, <code>Dc</code> as destination <a href='SkColor_Reference#Color'>Color</a> <a href='SkColor_Reference#Color'>component</a>;
-<a href='SkBlendMode_Reference#SkBlendMode'>SkBlendMode</a>::<a href='#SkBlendMode_kDst'>kDst</a> <a href='#SkBlendMode_kDst'>preserves</a> <a href='#SkBlendMode_kDst'>destination</a> <a href='#SkBlendMode_kDst'>set</a> <a href='#SkBlendMode_kDst'>to</a>: <code>[Da, Dc]</code>.
-Setting <a href='SkPaint_Reference#Paint'>Paint</a> <a href='#Blend_Mode'>Blend_Mode</a> <a href='#Blend_Mode'>to</a> <a href='SkBlendMode_Reference#SkBlendMode'>SkBlendMode</a>::<a href='#SkBlendMode_kDst'>kDst</a> <a href='#SkBlendMode_kDst'>causes</a> <a href='#SkBlendMode_kDst'>drawing</a> <a href='#SkBlendMode_kDst'>with</a>
-<a href='SkPaint_Reference#Paint'>Paint</a> <a href='SkPaint_Reference#Paint'>to</a> <a href='SkPaint_Reference#Paint'>have</a> <a href='SkPaint_Reference#Paint'>no</a> <a href='SkPaint_Reference#Paint'>effect</a>. <a href='SkPaint_Reference#Paint'>As</a> <a href='SkPaint_Reference#Paint'>a</a> <a href='SkPaint_Reference#Paint'>parameter</a> <a href='SkPaint_Reference#Paint'>to</a> <a href='SkCanvas_Reference#SkCanvas'>SkCanvas</a>::<a href='#SkCanvas_drawAtlas'>drawAtlas</a>,
-<a href='#SkCanvas_drawAtlas'>selects</a> <a href='#SkCanvas_drawAtlas'>colors</a> <a href='#SkCanvas_drawAtlas'>and</a> <a href='#SkCanvas_drawAtlas'>ignores</a> <a href='undocumented#Sprite'>sprites</a>.
+Given: <code>Da</code> as destination <a href='SkColor_Reference#Alpha'>Alpha</a>, <code>Dc</code> as destination <a href='SkColor_Reference#Color'>Color</a> component;
+<a href='SkBlendMode_Reference#SkBlendMode'>SkBlendMode</a>::<a href='#SkBlendMode_kDst'>kDst</a> preserves destination set to: <code>[Da, Dc]</code>.
+Setting <a href='SkPaint_Reference#Paint'>Paint</a> <a href='#Blend_Mode'>Blend_Mode</a> to <a href='SkBlendMode_Reference#SkBlendMode'>SkBlendMode</a>::<a href='#SkBlendMode_kDst'>kDst</a> causes drawing with
+<a href='SkPaint_Reference#Paint'>Paint</a> to have no effect. As a parameter to <a href='SkCanvas_Reference#SkCanvas'>SkCanvas</a>::<a href='#SkCanvas_drawAtlas'>drawAtlas</a>,
+selects colors and ignores <a href='undocumented#Sprite'>sprites</a>.
### Example
@@ -380,13 +380,13 @@
---
-Given: <code>Sa</code> as source <a href='SkColor_Reference#Alpha'>Alpha</a>, <code>Sc</code> as source <a href='SkColor_Reference#Color'>Color</a> <a href='SkColor_Reference#Color'>component</a>,
-<code>Da</code> as destination <a href='SkColor_Reference#Alpha'>Alpha</a>, <code>Dc</code> as destination <a href='SkColor_Reference#Color'>Color</a> <a href='SkColor_Reference#Color'>component</a>;
-<a href='SkBlendMode_Reference#SkBlendMode'>SkBlendMode</a>::<a href='#SkBlendMode_kSrcOver'>kSrcOver</a> <a href='#SkBlendMode_kSrcOver'>replaces</a> <a href='#SkBlendMode_kSrcOver'>destination</a> <a href='#SkBlendMode_kSrcOver'>with</a>: <code>[Sa + Da * (1 - Sa), Sc + Dc * (1 - Sa)]</code>,
-drawing source over destination. <a href='SkBlendMode_Reference#SkBlendMode'>SkBlendMode</a>::<a href='#SkBlendMode_kSrcOver'>kSrcOver</a> <a href='#SkBlendMode_kSrcOver'>is</a> <a href='#SkBlendMode_kSrcOver'>the</a> <a href='#SkBlendMode_kSrcOver'>default</a> <a href='#SkBlendMode_kSrcOver'>for</a> <a href='SkPaint_Reference#Paint'>Paint</a>.
+Given: <code>Sa</code> as source <a href='SkColor_Reference#Alpha'>Alpha</a>, <code>Sc</code> as source <a href='SkColor_Reference#Color'>Color</a> component,
+<code>Da</code> as destination <a href='SkColor_Reference#Alpha'>Alpha</a>, <code>Dc</code> as destination <a href='SkColor_Reference#Color'>Color</a> component;
+<a href='SkBlendMode_Reference#SkBlendMode'>SkBlendMode</a>::<a href='#SkBlendMode_kSrcOver'>kSrcOver</a> replaces destination with: <code>[Sa + Da * (1 - Sa), Sc + Dc * (1 - Sa)]</code>,
+drawing source over destination. <a href='SkBlendMode_Reference#SkBlendMode'>SkBlendMode</a>::<a href='#SkBlendMode_kSrcOver'>kSrcOver</a> is the default for <a href='SkPaint_Reference#Paint'>Paint</a>.
-<a href='SkBlendMode_Reference#SkBlendMode'>SkBlendMode</a>::<a href='#SkBlendMode_kSrcOver'>kSrcOver</a> <a href='#SkBlendMode_kSrcOver'>cannot</a> <a href='#SkBlendMode_kSrcOver'>make</a> <a href='#SkBlendMode_kSrcOver'>destination</a> <a href='#SkBlendMode_kSrcOver'>more</a> <a href='#SkBlendMode_kSrcOver'>transparent</a>; <a href='#SkBlendMode_kSrcOver'>the</a> <a href='#SkBlendMode_kSrcOver'>result</a> <a href='#SkBlendMode_kSrcOver'>will</a>
-<a href='#SkBlendMode_kSrcOver'>be</a> <a href='#SkBlendMode_kSrcOver'>at</a> <a href='#SkBlendMode_kSrcOver'>least</a> <a href='#SkBlendMode_kSrcOver'>as</a> <a href='#SkBlendMode_kSrcOver'>opaque</a> <a href='#SkBlendMode_kSrcOver'>as</a> <a href='#SkBlendMode_kSrcOver'>the</a> <a href='#SkBlendMode_kSrcOver'>less</a> <a href='#SkBlendMode_kSrcOver'>transparent</a> <a href='#SkBlendMode_kSrcOver'>of</a> <a href='#SkBlendMode_kSrcOver'>source</a> <a href='#SkBlendMode_kSrcOver'>and</a> <a href='#SkBlendMode_kSrcOver'>original</a> <a href='#SkBlendMode_kSrcOver'>destination</a>.
+<a href='SkBlendMode_Reference#SkBlendMode'>SkBlendMode</a>::<a href='#SkBlendMode_kSrcOver'>kSrcOver</a> cannot make destination more transparent; the result will
+be at least as opaque as the less transparent of source and original destination.
### Example
@@ -396,9 +396,9 @@
---
-Given: <code>Sa</code> as source <a href='SkColor_Reference#Alpha'>Alpha</a>, <code>Sc</code> as source <a href='SkColor_Reference#Color'>Color</a> <a href='SkColor_Reference#Color'>component</a>,
-<code>Da</code> as destination <a href='SkColor_Reference#Alpha'>Alpha</a>, <code>Dc</code> as destination <a href='SkColor_Reference#Color'>Color</a> <a href='SkColor_Reference#Color'>component</a>;
-<a href='SkBlendMode_Reference#SkBlendMode'>SkBlendMode</a>::<a href='#SkBlendMode_kDstOver'>kDstOver</a> <a href='#SkBlendMode_kDstOver'>replaces</a> <a href='#SkBlendMode_kDstOver'>destination</a> <a href='#SkBlendMode_kDstOver'>with</a>: <code>[Da + Sa * (1 - Da), Dc + Sc * (1 - Da)]</code>,
+Given: <code>Sa</code> as source <a href='SkColor_Reference#Alpha'>Alpha</a>, <code>Sc</code> as source <a href='SkColor_Reference#Color'>Color</a> component,
+<code>Da</code> as destination <a href='SkColor_Reference#Alpha'>Alpha</a>, <code>Dc</code> as destination <a href='SkColor_Reference#Color'>Color</a> component;
+<a href='SkBlendMode_Reference#SkBlendMode'>SkBlendMode</a>::<a href='#SkBlendMode_kDstOver'>kDstOver</a> replaces destination with: <code>[Da + Sa * (1 - Da), Dc + Sc * (1 - Da)]</code>,
drawing destination over source. Has no effect destination if is opaque.
### Example
@@ -409,9 +409,9 @@
---
-Given: <code>Sa</code> as source <a href='SkColor_Reference#Alpha'>Alpha</a>, <code>Sc</code> as source <a href='SkColor_Reference#Color'>Color</a> <a href='SkColor_Reference#Color'>component</a>,
+Given: <code>Sa</code> as source <a href='SkColor_Reference#Alpha'>Alpha</a>, <code>Sc</code> as source <a href='SkColor_Reference#Color'>Color</a> component,
<code>Da</code> as destination <a href='SkColor_Reference#Alpha'>Alpha</a>;
-<a href='SkBlendMode_Reference#SkBlendMode'>SkBlendMode</a>::<a href='#SkBlendMode_kSrcIn'>kSrcIn</a> <a href='#SkBlendMode_kSrcIn'>replaces</a> <a href='#SkBlendMode_kSrcIn'>destination</a> <a href='#SkBlendMode_kSrcIn'>with</a>: <code>[Sa * Da, Sc * Da]</code>,
+<a href='SkBlendMode_Reference#SkBlendMode'>SkBlendMode</a>::<a href='#SkBlendMode_kSrcIn'>kSrcIn</a> replaces destination with: <code>[Sa * Da, Sc * Da]</code>,
drawing source with destination opacity.
### Example
@@ -423,10 +423,10 @@
---
Given: <code>Sa</code> as source <a href='SkColor_Reference#Alpha'>Alpha</a>,
-<code>Da</code> as destination <a href='SkColor_Reference#Alpha'>Alpha</a>, <code>Dc</code> as destination <a href='SkColor_Reference#Color'>Color</a> <a href='SkColor_Reference#Color'>component</a>;
-<a href='SkBlendMode_Reference#SkBlendMode'>SkBlendMode</a>::<a href='#SkBlendMode_kDstIn'>kDstIn</a> <a href='#SkBlendMode_kDstIn'>replaces</a> <a href='#SkBlendMode_kDstIn'>destination</a> <a href='#SkBlendMode_kDstIn'>with</a>: <code>[Da * Sa, Dc * Sa]</code>,
-scaling destination <a href='SkColor_Reference#Alpha'>Alpha</a> <a href='SkColor_Reference#Alpha'>by</a> <a href='SkColor_Reference#Alpha'>source</a> <a href='SkColor_Reference#Alpha'>Alpha</a>. <a href='SkColor_Reference#Alpha'>Resulting</a>
-<a href='SkColor_Reference#Alpha'>destination</a> <a href='SkColor_Reference#Alpha'>is</a> <a href='SkColor_Reference#Alpha'>visible</a> <a href='SkColor_Reference#Alpha'>where</a> <a href='SkColor_Reference#Alpha'>source</a> <a href='SkColor_Reference#Alpha'>is</a> <a href='SkColor_Reference#Alpha'>visible</a>.
+<code>Da</code> as destination <a href='SkColor_Reference#Alpha'>Alpha</a>, <code>Dc</code> as destination <a href='SkColor_Reference#Color'>Color</a> component;
+<a href='SkBlendMode_Reference#SkBlendMode'>SkBlendMode</a>::<a href='#SkBlendMode_kDstIn'>kDstIn</a> replaces destination with: <code>[Da * Sa, Dc * Sa]</code>,
+scaling destination <a href='SkColor_Reference#Alpha'>Alpha</a> by source <a href='SkColor_Reference#Alpha'>Alpha</a>. Resulting
+destination is visible where source is visible.
### Example
@@ -436,11 +436,11 @@
---
-Given: <code>Sa</code> as source <a href='SkColor_Reference#Alpha'>Alpha</a>, <code>Sc</code> as source <a href='SkColor_Reference#Color'>Color</a> <a href='SkColor_Reference#Color'>component</a>,
+Given: <code>Sa</code> as source <a href='SkColor_Reference#Alpha'>Alpha</a>, <code>Sc</code> as source <a href='SkColor_Reference#Color'>Color</a> component,
<code>Da</code> as destination <a href='SkColor_Reference#Alpha'>Alpha</a>;
-<a href='SkBlendMode_Reference#SkBlendMode'>SkBlendMode</a>::<a href='#SkBlendMode_kSrcOut'>kSrcOut</a> <a href='#SkBlendMode_kSrcOut'>replaces</a> <a href='#SkBlendMode_kSrcOut'>destination</a> <a href='#SkBlendMode_kSrcOut'>with</a>: <code>[Sa * (1 - Da), Sc * (1 - Da)]</code>,
-drawing source fully where destination <a href='SkColor_Reference#Alpha'>Alpha</a> <a href='SkColor_Reference#Alpha'>is</a> <a href='SkColor_Reference#Alpha'>zero</a>. <a href='SkColor_Reference#Alpha'>Is</a> <a href='SkColor_Reference#Alpha'>destination</a>
-<a href='SkColor_Reference#Alpha'>is</a> <a href='SkColor_Reference#Alpha'>opaque</a>, <a href='SkColor_Reference#Alpha'>has</a> <a href='SkColor_Reference#Alpha'>no</a> <a href='SkColor_Reference#Alpha'>effect</a>.
+<a href='SkBlendMode_Reference#SkBlendMode'>SkBlendMode</a>::<a href='#SkBlendMode_kSrcOut'>kSrcOut</a> replaces destination with: <code>[Sa * (1 - Da), Sc * (1 - Da)]</code>,
+drawing source fully where destination <a href='SkColor_Reference#Alpha'>Alpha</a> is zero. Is destination
+is opaque, has no effect.
### Example
@@ -451,11 +451,11 @@
---
Given: <code>Sa</code> as source <a href='SkColor_Reference#Alpha'>Alpha</a>,
-<code>Da</code> as destination <a href='SkColor_Reference#Alpha'>Alpha</a>, <code>Dc</code> as destination <a href='SkColor_Reference#Color'>Color</a> <a href='SkColor_Reference#Color'>component</a>;
-<a href='SkBlendMode_Reference#SkBlendMode'>SkBlendMode</a>::<a href='#SkBlendMode_kDstOut'>kDstOut</a> <a href='#SkBlendMode_kDstOut'>replaces</a> <a href='#SkBlendMode_kDstOut'>destination</a> <a href='#SkBlendMode_kDstOut'>with</a>: <code>[Da * (1 - Sa), Dc * (1 - Sa)]</code>,
-scaling destination <a href='SkColor_Reference#Alpha'>Alpha</a> <a href='SkColor_Reference#Alpha'>by</a> <a href='SkColor_Reference#Alpha'>source</a> <a href='SkColor_Reference#Alpha'>transparency</a>. <a href='SkColor_Reference#Alpha'>Resulting</a>
-<a href='SkColor_Reference#Alpha'>destination</a> <a href='SkColor_Reference#Alpha'>is</a> <a href='SkColor_Reference#Alpha'>visible</a> <a href='SkColor_Reference#Alpha'>where</a> <a href='SkColor_Reference#Alpha'>source</a> <a href='SkColor_Reference#Alpha'>is</a> <a href='SkColor_Reference#Alpha'>transparent</a>. <a href='SkColor_Reference#Alpha'>If</a> <a href='SkColor_Reference#Alpha'>source</a> <a href='SkColor_Reference#Alpha'>is</a> <a href='SkColor_Reference#Alpha'>transparent</a>,
-<a href='SkColor_Reference#Alpha'>has</a> <a href='SkColor_Reference#Alpha'>no</a> <a href='SkColor_Reference#Alpha'>effect</a>.
+<code>Da</code> as destination <a href='SkColor_Reference#Alpha'>Alpha</a>, <code>Dc</code> as destination <a href='SkColor_Reference#Color'>Color</a> component;
+<a href='SkBlendMode_Reference#SkBlendMode'>SkBlendMode</a>::<a href='#SkBlendMode_kDstOut'>kDstOut</a> replaces destination with: <code>[Da * (1 - Sa), Dc * (1 - Sa)]</code>,
+scaling destination <a href='SkColor_Reference#Alpha'>Alpha</a> by source transparency. Resulting
+destination is visible where source is transparent. If source is transparent,
+has no effect.
### Example
@@ -465,9 +465,9 @@
---
-Given: <code>Sa</code> as source <a href='SkColor_Reference#Alpha'>Alpha</a>, <code>Sc</code> as source <a href='SkColor_Reference#Color'>Color</a> <a href='SkColor_Reference#Color'>component</a>,
-<code>Da</code> as destination <a href='SkColor_Reference#Alpha'>Alpha</a>, <code>Dc</code> as destination <a href='SkColor_Reference#Color'>Color</a> <a href='SkColor_Reference#Color'>component</a>;
-<a href='SkBlendMode_Reference#SkBlendMode'>SkBlendMode</a>::<a href='#SkBlendMode_kSrcATop'>kSrcATop</a> <a href='#SkBlendMode_kSrcATop'>replaces</a> <a href='#SkBlendMode_kSrcATop'>destination</a> <a href='#SkBlendMode_kSrcATop'>with</a>: <code>[Da, Sc * Da + Dc * (1 - Sa)]</code>,
+Given: <code>Sa</code> as source <a href='SkColor_Reference#Alpha'>Alpha</a>, <code>Sc</code> as source <a href='SkColor_Reference#Color'>Color</a> component,
+<code>Da</code> as destination <a href='SkColor_Reference#Alpha'>Alpha</a>, <code>Dc</code> as destination <a href='SkColor_Reference#Color'>Color</a> component;
+<a href='SkBlendMode_Reference#SkBlendMode'>SkBlendMode</a>::<a href='#SkBlendMode_kSrcATop'>kSrcATop</a> replaces destination with: <code>[Da, Sc * Da + Dc * (1 - Sa)]</code>,
replacing opaque destination with opaque source. If source or destination
is transparent, has no effect.
@@ -479,9 +479,9 @@
---
-Given: <code>Sa</code> as source <a href='SkColor_Reference#Alpha'>Alpha</a>, <code>Sc</code> as source <a href='SkColor_Reference#Color'>Color</a> <a href='SkColor_Reference#Color'>component</a>,
-<code>Da</code> as destination <a href='SkColor_Reference#Alpha'>Alpha</a>, <code>Dc</code> as destination <a href='SkColor_Reference#Color'>Color</a> <a href='SkColor_Reference#Color'>component</a>;
-<a href='SkBlendMode_Reference#SkBlendMode'>SkBlendMode</a>::<a href='#SkBlendMode_kDstATop'>kDstATop</a> <a href='#SkBlendMode_kDstATop'>replaces</a> <a href='#SkBlendMode_kDstATop'>destination</a> <a href='#SkBlendMode_kDstATop'>with</a>: <code>[Sa, Dc * Sa + Sc * (1 - Da)]</code>,
+Given: <code>Sa</code> as source <a href='SkColor_Reference#Alpha'>Alpha</a>, <code>Sc</code> as source <a href='SkColor_Reference#Color'>Color</a> component,
+<code>Da</code> as destination <a href='SkColor_Reference#Alpha'>Alpha</a>, <code>Dc</code> as destination <a href='SkColor_Reference#Color'>Color</a> component;
+<a href='SkBlendMode_Reference#SkBlendMode'>SkBlendMode</a>::<a href='#SkBlendMode_kDstATop'>kDstATop</a> replaces destination with: <code>[Sa, Dc * Sa + Sc * (1 - Da)]</code>,
making destination transparent where source is transparent.
### Example
@@ -492,9 +492,9 @@
---
-Given: <code>Sa</code> as source <a href='SkColor_Reference#Alpha'>Alpha</a>, <code>Sc</code> as source <a href='SkColor_Reference#Color'>Color</a> <a href='SkColor_Reference#Color'>component</a>,
-<code>Da</code> as destination <a href='SkColor_Reference#Alpha'>Alpha</a>, <code>Dc</code> as destination <a href='SkColor_Reference#Color'>Color</a> <a href='SkColor_Reference#Color'>component</a>;
-<a href='SkBlendMode_Reference#SkBlendMode'>SkBlendMode</a>::<a href='#SkBlendMode_kXor'>kXor</a> <a href='#SkBlendMode_kXor'>replaces</a> <a href='#SkBlendMode_kXor'>destination</a> <a href='#SkBlendMode_kXor'>with</a>:
+Given: <code>Sa</code> as source <a href='SkColor_Reference#Alpha'>Alpha</a>, <code>Sc</code> as source <a href='SkColor_Reference#Color'>Color</a> component,
+<code>Da</code> as destination <a href='SkColor_Reference#Alpha'>Alpha</a>, <code>Dc</code> as destination <a href='SkColor_Reference#Color'>Color</a> component;
+<a href='SkBlendMode_Reference#SkBlendMode'>SkBlendMode</a>::<a href='#SkBlendMode_kXor'>kXor</a> replaces destination with:
<code>[Sa + Da - 2 * Sa * Da, Sc * (1 - Da) + Dc * (1 - Sa)]</code>,
exchanging the transparency of the source and destination.
@@ -506,10 +506,10 @@
---
-Given: <code>Sa</code> as source <a href='SkColor_Reference#Alpha'>Alpha</a>, <code>Sc</code> as source <a href='SkColor_Reference#Color'>Color</a> <a href='SkColor_Reference#Color'>component</a>,
-<code>Da</code> as destination <a href='SkColor_Reference#Alpha'>Alpha</a>, <code>Dc</code> as destination <a href='SkColor_Reference#Color'>Color</a> <a href='SkColor_Reference#Color'>component</a>;
-<a href='SkBlendMode_Reference#SkBlendMode'>SkBlendMode</a>::<a href='#SkBlendMode_kPlus'>kPlus</a> <a href='#SkBlendMode_kPlus'>replaces</a> <a href='#SkBlendMode_kPlus'>destination</a> <a href='#SkBlendMode_kPlus'>with</a>: <code>[Sa + Da, Sc + Dc]</code>,
-summing the <a href='SkColor_Reference#Alpha'>Alpha</a> <a href='SkColor_Reference#Alpha'>and</a> <a href='SkColor_Reference#Color'>Color</a> <a href='SkColor_Reference#Color'>components</a>.
+Given: <code>Sa</code> as source <a href='SkColor_Reference#Alpha'>Alpha</a>, <code>Sc</code> as source <a href='SkColor_Reference#Color'>Color</a> component,
+<code>Da</code> as destination <a href='SkColor_Reference#Alpha'>Alpha</a>, <code>Dc</code> as destination <a href='SkColor_Reference#Color'>Color</a> component;
+<a href='SkBlendMode_Reference#SkBlendMode'>SkBlendMode</a>::<a href='#SkBlendMode_kPlus'>kPlus</a> replaces destination with: <code>[Sa + Da, Sc + Dc]</code>,
+summing the <a href='SkColor_Reference#Alpha'>Alpha</a> and <a href='SkColor_Reference#Color'>Color</a> components.
### Example
@@ -519,32 +519,32 @@
---
-Given: <code>Sa</code> as source <a href='SkColor_Reference#Alpha'>Alpha</a>, <code>Sc</code> as source <a href='SkColor_Reference#Color'>Color</a> <a href='SkColor_Reference#Color'>component</a>,
-<code>Da</code> as destination <a href='SkColor_Reference#Alpha'>Alpha</a>, <code>Dc</code> as destination <a href='SkColor_Reference#Color'>Color</a> <a href='SkColor_Reference#Color'>component</a>;
-<a href='SkBlendMode_Reference#SkBlendMode'>SkBlendMode</a>::<a href='#SkBlendMode_kModulate'>kModulate</a> <a href='#SkBlendMode_kModulate'>replaces</a> <a href='#SkBlendMode_kModulate'>destination</a> <a href='#SkBlendMode_kModulate'>with</a>: <code>[Sa * Da, Sc * Dc]</code>,
-scaling <a href='SkColor_Reference#Alpha'>Alpha</a> <a href='SkColor_Reference#Alpha'>and</a> <a href='SkColor_Reference#Color'>Color</a> <a href='SkColor_Reference#Color'>components</a> <a href='SkColor_Reference#Color'>by</a> <a href='SkColor_Reference#Color'>the</a> <a href='SkColor_Reference#Color'>lesser</a> <a href='SkColor_Reference#Color'>of</a> <a href='SkColor_Reference#Color'>the</a> <a href='SkColor_Reference#Color'>values</a>.
-<a href='SkBlendMode_Reference#SkBlendMode'>SkBlendMode</a>::<a href='#SkBlendMode_kModulate'>kModulate</a> <a href='#SkBlendMode_kModulate'>differs</a> <a href='#SkBlendMode_kModulate'>from</a> <a href='SkBlendMode_Reference#SkBlendMode'>SkBlendMode</a>::<a href='#SkBlendMode_kMultiply'>kMultiply</a> <a href='#SkBlendMode_kMultiply'>in</a> <a href='#SkBlendMode_kMultiply'>two</a> <a href='#SkBlendMode_kMultiply'>ways</a>.
-<a href='SkBlendMode_Reference#SkBlendMode'>SkBlendMode</a>::<a href='#SkBlendMode_kModulate'>kModulate</a> <a href='#SkBlendMode_kModulate'>like</a> <a href='SkBlendMode_Reference#SkBlendMode'>SkBlendMode</a>::<a href='#SkBlendMode_kSrcATop'>kSrcATop</a> <a href='#SkBlendMode_kSrcATop'>alters</a> <a href='#SkBlendMode_kSrcATop'>the</a> <a href='#SkBlendMode_kSrcATop'>destination</a> <a href='#SkBlendMode_kSrcATop'>inside</a>
-<a href='#SkBlendMode_kSrcATop'>the</a> <a href='#SkBlendMode_kSrcATop'>destination</a> <a href='#SkBlendMode_kSrcATop'>area</a>, <a href='#SkBlendMode_kSrcATop'>as</a> <a href='#SkBlendMode_kSrcATop'>if</a> <a href='#SkBlendMode_kSrcATop'>the</a> <a href='#SkBlendMode_kSrcATop'>destination</a> <a href='SkColor_Reference#Alpha'>Alpha</a> <a href='SkColor_Reference#Alpha'>defined</a> <a href='SkColor_Reference#Alpha'>the</a> <a href='SkColor_Reference#Alpha'>boundaries</a> <a href='SkColor_Reference#Alpha'>of</a> <a href='SkColor_Reference#Alpha'>a</a>
-<a href='SkColor_Reference#Alpha'>soft</a> <a href='SkColor_Reference#Alpha'>clip</a>. <a href='SkBlendMode_Reference#SkBlendMode'>SkBlendMode</a>::<a href='#SkBlendMode_kMultiply'>kMultiply</a> <a href='#SkBlendMode_kMultiply'>like</a> <a href='SkBlendMode_Reference#SkBlendMode'>SkBlendMode</a>::<a href='#SkBlendMode_kSrcOver'>kSrcOver</a> <a href='#SkBlendMode_kSrcOver'>can</a> <a href='#SkBlendMode_kSrcOver'>alter</a> <a href='#SkBlendMode_kSrcOver'>the</a>
-<a href='#SkBlendMode_kSrcOver'>destination</a> <a href='#SkBlendMode_kSrcOver'>where</a> <a href='#SkBlendMode_kSrcOver'>the</a> <a href='#SkBlendMode_kSrcOver'>destination</a> <a href='#SkBlendMode_kSrcOver'>is</a> <a href='#SkBlendMode_kSrcOver'>transparent</a>.
-<a href='SkBlendMode_Reference#SkBlendMode'>SkBlendMode</a>::<a href='#SkBlendMode_kModulate'>kModulate</a> <a href='#SkBlendMode_kModulate'>computes</a> <a href='#SkBlendMode_kModulate'>the</a> <a href='#SkBlendMode_kModulate'>product</a> <a href='#SkBlendMode_kModulate'>of</a> <a href='#SkBlendMode_kModulate'>the</a> <a href='#SkBlendMode_kModulate'>source</a> <a href='#SkBlendMode_kModulate'>and</a> <a href='#SkBlendMode_kModulate'>destination</a> <a href='#SkBlendMode_kModulate'>using</a>
-<a href='undocumented#Premultiply'>Premultiplied</a> <a href='undocumented#Premultiply'>component</a> <a href='undocumented#Premultiply'>values</a>. <a href='SkBlendMode_Reference#SkBlendMode'>SkBlendMode</a>::<a href='#SkBlendMode_kMultiply'>kMultiply</a> <a href='#SkBlendMode_kMultiply'>the</a> <a href='#SkBlendMode_kMultiply'>product</a> <a href='#SkBlendMode_kMultiply'>of</a> <a href='#SkBlendMode_kMultiply'>the</a> <a href='#SkBlendMode_kMultiply'>source</a>
-<a href='#SkBlendMode_kMultiply'>and</a> <a href='#SkBlendMode_kMultiply'>destination</a> <a href='#SkBlendMode_kMultiply'>using</a> <a href='undocumented#Unpremultiply'>Unpremultiplied</a> <a href='undocumented#Unpremultiply'>component</a> <a href='undocumented#Unpremultiply'>values</a>.
+Given: <code>Sa</code> as source <a href='SkColor_Reference#Alpha'>Alpha</a>, <code>Sc</code> as source <a href='SkColor_Reference#Color'>Color</a> component,
+<code>Da</code> as destination <a href='SkColor_Reference#Alpha'>Alpha</a>, <code>Dc</code> as destination <a href='SkColor_Reference#Color'>Color</a> component;
+<a href='SkBlendMode_Reference#SkBlendMode'>SkBlendMode</a>::<a href='#SkBlendMode_kModulate'>kModulate</a> replaces destination with: <code>[Sa * Da, Sc * Dc]</code>,
+scaling <a href='SkColor_Reference#Alpha'>Alpha</a> and <a href='SkColor_Reference#Color'>Color</a> components by the lesser of the values.
+<a href='SkBlendMode_Reference#SkBlendMode'>SkBlendMode</a>::<a href='#SkBlendMode_kModulate'>kModulate</a> differs from <a href='SkBlendMode_Reference#SkBlendMode'>SkBlendMode</a>::<a href='#SkBlendMode_kMultiply'>kMultiply</a> in two ways.
+<a href='SkBlendMode_Reference#SkBlendMode'>SkBlendMode</a>::<a href='#SkBlendMode_kModulate'>kModulate</a> like <a href='SkBlendMode_Reference#SkBlendMode'>SkBlendMode</a>::<a href='#SkBlendMode_kSrcATop'>kSrcATop</a> alters the destination inside
+the destination area, as if the destination <a href='SkColor_Reference#Alpha'>Alpha</a> defined the boundaries of a
+soft clip. <a href='SkBlendMode_Reference#SkBlendMode'>SkBlendMode</a>::<a href='#SkBlendMode_kMultiply'>kMultiply</a> like <a href='SkBlendMode_Reference#SkBlendMode'>SkBlendMode</a>::<a href='#SkBlendMode_kSrcOver'>kSrcOver</a> can alter the
+destination where the destination is transparent.
+<a href='SkBlendMode_Reference#SkBlendMode'>SkBlendMode</a>::<a href='#SkBlendMode_kModulate'>kModulate</a> computes the product of the source and destination using
+<a href='undocumented#Premultiply'>Premultiplied</a> component values. <a href='SkBlendMode_Reference#SkBlendMode'>SkBlendMode</a>::<a href='#SkBlendMode_kMultiply'>kMultiply</a> the product of the source
+and destination using <a href='undocumented#Unpremultiply'>Unpremultiplied</a> component values.
### Example
-<div><fiddle-embed name="3fdac2b2f48bd227d2e74234c260bc8e"><div>If source and destination are opaque, <a href='SkBlendMode_Reference#SkBlendMode'>SkBlendMode</a>::<a href='#SkBlendMode_kModulate'>kModulate</a> <a href='#SkBlendMode_kModulate'>and</a>
-<a href='SkBlendMode_Reference#SkBlendMode'>SkBlendMode</a>::<a href='#SkBlendMode_kMultiply'>kMultiply</a> <a href='#SkBlendMode_kMultiply'>produce</a> <a href='#SkBlendMode_kMultiply'>the</a> <a href='#SkBlendMode_kMultiply'>same</a> <a href='#SkBlendMode_kMultiply'>results</a>.
+<div><fiddle-embed name="3fdac2b2f48bd227d2e74234c260bc8e"><div>If source and destination are opaque, <a href='SkBlendMode_Reference#SkBlendMode'>SkBlendMode</a>::<a href='#SkBlendMode_kModulate'>kModulate</a> and
+<a href='SkBlendMode_Reference#SkBlendMode'>SkBlendMode</a>::<a href='#SkBlendMode_kMultiply'>kMultiply</a> produce the same results.
</div></fiddle-embed></div>
<a name='Screen'></a>
---
-Given: <code>Sa</code> as source <a href='SkColor_Reference#Alpha'>Alpha</a>, <code>Sc</code> as source <a href='SkColor_Reference#Color'>Color</a> <a href='SkColor_Reference#Color'>component</a>,
-<code>Da</code> as destination <a href='SkColor_Reference#Alpha'>Alpha</a>, <code>Dc</code> as destination <a href='SkColor_Reference#Color'>Color</a> <a href='SkColor_Reference#Color'>component</a>;
-<a href='SkBlendMode_Reference#SkBlendMode'>SkBlendMode</a>::<a href='#SkBlendMode_kScreen'>kScreen</a> <a href='#SkBlendMode_kScreen'>replaces</a> <a href='#SkBlendMode_kScreen'>destination</a> <a href='#SkBlendMode_kScreen'>with</a>: <code>[Sa + Da - Sa * Da, Sc + Dc - Sc * Dc]</code>.
+Given: <code>Sa</code> as source <a href='SkColor_Reference#Alpha'>Alpha</a>, <code>Sc</code> as source <a href='SkColor_Reference#Color'>Color</a> component,
+<code>Da</code> as destination <a href='SkColor_Reference#Alpha'>Alpha</a>, <code>Dc</code> as destination <a href='SkColor_Reference#Color'>Color</a> component;
+<a href='SkBlendMode_Reference#SkBlendMode'>SkBlendMode</a>::<a href='#SkBlendMode_kScreen'>kScreen</a> replaces destination with: <code>[Sa + Da - Sa * Da, Sc + Dc - Sc * Dc]</code>.
### Example
@@ -554,9 +554,9 @@
---
-Given: <code>Sa</code> as source <a href='SkColor_Reference#Alpha'>Alpha</a>, <code>Sc</code> as source <a href='SkColor_Reference#Color'>Color</a> <a href='SkColor_Reference#Color'>component</a>,
-<code>Da</code> as destination <a href='SkColor_Reference#Alpha'>Alpha</a>, <code>Dc</code> as destination <a href='SkColor_Reference#Color'>Color</a> <a href='SkColor_Reference#Color'>component</a>;
-<a href='SkBlendMode_Reference#SkBlendMode'>SkBlendMode</a>::<a href='#SkBlendMode_kOverlay'>kOverlay</a> <a href='#SkBlendMode_kOverlay'>replaces</a> <a href='#SkBlendMode_kOverlay'>destination</a> <a href='#SkBlendMode_kOverlay'>with</a>:
+Given: <code>Sa</code> as source <a href='SkColor_Reference#Alpha'>Alpha</a>, <code>Sc</code> as source <a href='SkColor_Reference#Color'>Color</a> component,
+<code>Da</code> as destination <a href='SkColor_Reference#Alpha'>Alpha</a>, <code>Dc</code> as destination <a href='SkColor_Reference#Color'>Color</a> component;
+<a href='SkBlendMode_Reference#SkBlendMode'>SkBlendMode</a>::<a href='#SkBlendMode_kOverlay'>kOverlay</a> replaces destination with:
<code>[Sa + Da - Sa * Da, Sc * (1 - Da) + Dc * (1 - Sa) +
(2 * Dc <= Da ? 2 * Sc * Dc : Sa * Da - 2 * (Da - Dc) * (Sa - Sc))]</code>.
@@ -568,12 +568,12 @@
---
-Given: <code>Sa</code> as source <a href='SkColor_Reference#Alpha'>Alpha</a>, <code>Sc</code> as source <a href='SkColor_Reference#Color'>Color</a> <a href='SkColor_Reference#Color'>component</a>,
-<code>Da</code> as destination <a href='SkColor_Reference#Alpha'>Alpha</a>, <code>Dc</code> as destination <a href='SkColor_Reference#Color'>Color</a> <a href='SkColor_Reference#Color'>component</a>;
-<a href='SkBlendMode_Reference#SkBlendMode'>SkBlendMode</a>::<a href='#SkBlendMode_kDarken'>kDarken</a> <a href='#SkBlendMode_kDarken'>replaces</a> <a href='#SkBlendMode_kDarken'>destination</a> <a href='#SkBlendMode_kDarken'>with</a>:
-<code>[Sa + Da - Sa * Da, Sc + Dc - <a href='undocumented#max()'>max</a>(<a href='undocumented#max()'>Sc</a> * <a href='undocumented#max()'>Da</a>, <a href='undocumented#max()'>Dc</a> * <a href='undocumented#max()'>Sa</a>)]</code>.
-<a href='SkBlendMode_Reference#SkBlendMode'>SkBlendMode</a>::<a href='#SkBlendMode_kDarken'>kDarken</a> <a href='#SkBlendMode_kDarken'>does</a> <a href='#SkBlendMode_kDarken'>not</a> <a href='#SkBlendMode_kDarken'>make</a> <a href='#SkBlendMode_kDarken'>an</a> <a href='SkImage_Reference#Image'>image</a> <a href='SkImage_Reference#Image'>darker</a>; <a href='SkImage_Reference#Image'>it</a> <a href='SkImage_Reference#Image'>replaces</a> <a href='SkImage_Reference#Image'>the</a> <a href='SkImage_Reference#Image'>destination</a>
-<a href='SkImage_Reference#Image'>component</a> <a href='SkImage_Reference#Image'>with</a> <a href='SkImage_Reference#Image'>source</a> <a href='SkImage_Reference#Image'>if</a> <a href='SkImage_Reference#Image'>source</a> <a href='SkImage_Reference#Image'>is</a> <a href='SkImage_Reference#Image'>darker</a>.
+Given: <code>Sa</code> as source <a href='SkColor_Reference#Alpha'>Alpha</a>, <code>Sc</code> as source <a href='SkColor_Reference#Color'>Color</a> component,
+<code>Da</code> as destination <a href='SkColor_Reference#Alpha'>Alpha</a>, <code>Dc</code> as destination <a href='SkColor_Reference#Color'>Color</a> component;
+<a href='SkBlendMode_Reference#SkBlendMode'>SkBlendMode</a>::<a href='#SkBlendMode_kDarken'>kDarken</a> replaces destination with:
+<code>[Sa + Da - Sa * Da, Sc + Dc - <a href='undocumented#max()'>max</a>(Sc * Da, Dc * Sa)]</code>.
+<a href='SkBlendMode_Reference#SkBlendMode'>SkBlendMode</a>::<a href='#SkBlendMode_kDarken'>kDarken</a> does not make an <a href='SkImage_Reference#Image'>image</a> darker; it replaces the destination
+component with source if source is darker.
### Example
@@ -583,12 +583,12 @@
---
-Given: <code>Sa</code> as source <a href='SkColor_Reference#Alpha'>Alpha</a>, <code>Sc</code> as source <a href='SkColor_Reference#Color'>Color</a> <a href='SkColor_Reference#Color'>component</a>,
-<code>Da</code> as destination <a href='SkColor_Reference#Alpha'>Alpha</a>, <code>Dc</code> as destination <a href='SkColor_Reference#Color'>Color</a> <a href='SkColor_Reference#Color'>component</a>;
-<a href='SkBlendMode_Reference#SkBlendMode'>SkBlendMode</a>::<a href='#SkBlendMode_kLighten'>kLighten</a> <a href='#SkBlendMode_kLighten'>replaces</a> <a href='#SkBlendMode_kLighten'>destination</a> <a href='#SkBlendMode_kLighten'>with</a>:
-<code>[Sa + Da - Sa * Da, Sc + Dc - <a href='undocumented#min()'>min</a>(<a href='undocumented#min()'>Sc</a> * <a href='undocumented#min()'>Da</a>, <a href='undocumented#min()'>Dc</a> * <a href='undocumented#min()'>Sa</a>)]</code>.
-<a href='SkBlendMode_Reference#SkBlendMode'>SkBlendMode</a>::<a href='#SkBlendMode_kDarken'>kDarken</a> <a href='#SkBlendMode_kDarken'>does</a> <a href='#SkBlendMode_kDarken'>not</a> <a href='#SkBlendMode_kDarken'>make</a> <a href='#SkBlendMode_kDarken'>an</a> <a href='SkImage_Reference#Image'>image</a> <a href='SkImage_Reference#Image'>lighter</a>; <a href='SkImage_Reference#Image'>it</a> <a href='SkImage_Reference#Image'>replaces</a> <a href='SkImage_Reference#Image'>the</a> <a href='SkImage_Reference#Image'>destination</a>
-<a href='SkImage_Reference#Image'>component</a> <a href='SkImage_Reference#Image'>with</a> <a href='SkImage_Reference#Image'>source</a> <a href='SkImage_Reference#Image'>if</a> <a href='SkImage_Reference#Image'>source</a> <a href='SkImage_Reference#Image'>is</a> <a href='SkImage_Reference#Image'>lighter</a>.
+Given: <code>Sa</code> as source <a href='SkColor_Reference#Alpha'>Alpha</a>, <code>Sc</code> as source <a href='SkColor_Reference#Color'>Color</a> component,
+<code>Da</code> as destination <a href='SkColor_Reference#Alpha'>Alpha</a>, <code>Dc</code> as destination <a href='SkColor_Reference#Color'>Color</a> component;
+<a href='SkBlendMode_Reference#SkBlendMode'>SkBlendMode</a>::<a href='#SkBlendMode_kLighten'>kLighten</a> replaces destination with:
+<code>[Sa + Da - Sa * Da, Sc + Dc - <a href='undocumented#min()'>min</a>(Sc * Da, Dc * Sa)]</code>.
+<a href='SkBlendMode_Reference#SkBlendMode'>SkBlendMode</a>::<a href='#SkBlendMode_kDarken'>kDarken</a> does not make an <a href='SkImage_Reference#Image'>image</a> lighter; it replaces the destination
+component with source if source is lighter.
### Example
@@ -598,11 +598,11 @@
---
-Given: <code>Sa</code> as source <a href='SkColor_Reference#Alpha'>Alpha</a>, <code>Sc</code> as source <a href='SkColor_Reference#Color'>Color</a> <a href='SkColor_Reference#Color'>component</a>,
-<code>Da</code> as destination <a href='SkColor_Reference#Alpha'>Alpha</a>, <code>Dc</code> as destination <a href='SkColor_Reference#Color'>Color</a> <a href='SkColor_Reference#Color'>component</a>;
-<a href='SkBlendMode_Reference#SkBlendMode'>SkBlendMode</a>::<a href='#SkBlendMode_kColorDodge'>kColorDodge</a> <a href='#SkBlendMode_kColorDodge'>replaces</a> <a href='#SkBlendMode_kColorDodge'>destination</a> <a href='#SkBlendMode_kColorDodge'>with</a>:
+Given: <code>Sa</code> as source <a href='SkColor_Reference#Alpha'>Alpha</a>, <code>Sc</code> as source <a href='SkColor_Reference#Color'>Color</a> component,
+<code>Da</code> as destination <a href='SkColor_Reference#Alpha'>Alpha</a>, <code>Dc</code> as destination <a href='SkColor_Reference#Color'>Color</a> component;
+<a href='SkBlendMode_Reference#SkBlendMode'>SkBlendMode</a>::<a href='#SkBlendMode_kColorDodge'>kColorDodge</a> replaces destination with:
<code>[Sa + Da - Sa * Da, Dc == 0 ? Sc * (1 - Da) : Sc == Sa ? Sc + Da * (1 - Sa) :
-Sa * <a href='undocumented#min()'>min</a>(<a href='undocumented#min()'>Da</a>, <a href='undocumented#min()'>Dc</a> * <a href='undocumented#min()'>Sa</a> / (<a href='undocumented#min()'>Sa</a> - <a href='undocumented#min()'>Sc</a>)) + <a href='undocumented#min()'>Sc</a> * (1 - <a href='undocumented#min()'>Da</a>) + <a href='undocumented#min()'>Da</a> * (1 - <a href='undocumented#min()'>Sa</a>)]</code>,
+Sa * <a href='undocumented#min()'>min</a>(Da, Dc * Sa / (Sa - Sc)) + Sc * (1 - Da) + Da * (1 - Sa)]</code>,
making destination brighter to reflect source.
### Example
@@ -613,11 +613,11 @@
---
-Given: <code>Sa</code> as source <a href='SkColor_Reference#Alpha'>Alpha</a>, <code>Sc</code> as source <a href='SkColor_Reference#Color'>Color</a> <a href='SkColor_Reference#Color'>component</a>,
-<code>Da</code> as destination <a href='SkColor_Reference#Alpha'>Alpha</a>, <code>Dc</code> as destination <a href='SkColor_Reference#Color'>Color</a> <a href='SkColor_Reference#Color'>component</a>;
-<a href='SkBlendMode_Reference#SkBlendMode'>SkBlendMode</a>::<a href='#SkBlendMode_kColorBurn'>kColorBurn</a> <a href='#SkBlendMode_kColorBurn'>replaces</a> <a href='#SkBlendMode_kColorBurn'>destination</a> <a href='#SkBlendMode_kColorBurn'>with</a>:
+Given: <code>Sa</code> as source <a href='SkColor_Reference#Alpha'>Alpha</a>, <code>Sc</code> as source <a href='SkColor_Reference#Color'>Color</a> component,
+<code>Da</code> as destination <a href='SkColor_Reference#Alpha'>Alpha</a>, <code>Dc</code> as destination <a href='SkColor_Reference#Color'>Color</a> component;
+<a href='SkBlendMode_Reference#SkBlendMode'>SkBlendMode</a>::<a href='#SkBlendMode_kColorBurn'>kColorBurn</a> replaces destination with:
<code>[Sa + Da - Sa * Da, Dc == Da ? Dc + Sc * (1 - Da) : Sc == 0 ? Da * (1 - Sa) :
-Sa * (Da - <a href='undocumented#min()'>min</a>(<a href='undocumented#min()'>Da</a>, (<a href='undocumented#min()'>Da</a> - <a href='undocumented#min()'>Dc</a>) * <a href='undocumented#min()'>Sa</a> / <a href='undocumented#min()'>Sc</a>)) + <a href='undocumented#min()'>Sc</a> * (1 - <a href='undocumented#min()'>Da</a>) + <a href='undocumented#min()'>Da</a> * (1 - <a href='undocumented#min()'>Sa</a>)]</code>,
+Sa * (Da - <a href='undocumented#min()'>min</a>(Da, (Da - Dc) * Sa / Sc)) + Sc * (1 - Da) + Da * (1 - Sa)]</code>,
making destination darker to reflect source.
### Example
@@ -628,9 +628,9 @@
---
-Given: <code>Sa</code> as source <a href='SkColor_Reference#Alpha'>Alpha</a>, <code>Sc</code> as source <a href='SkColor_Reference#Color'>Color</a> <a href='SkColor_Reference#Color'>component</a>,
-<code>Da</code> as destination <a href='SkColor_Reference#Alpha'>Alpha</a>, <code>Dc</code> as destination <a href='SkColor_Reference#Color'>Color</a> <a href='SkColor_Reference#Color'>component</a>;
-<a href='SkBlendMode_Reference#SkBlendMode'>SkBlendMode</a>::<a href='#SkBlendMode_kHardLight'>kHardLight</a> <a href='#SkBlendMode_kHardLight'>replaces</a> <a href='#SkBlendMode_kHardLight'>destination</a> <a href='#SkBlendMode_kHardLight'>with</a>:
+Given: <code>Sa</code> as source <a href='SkColor_Reference#Alpha'>Alpha</a>, <code>Sc</code> as source <a href='SkColor_Reference#Color'>Color</a> component,
+<code>Da</code> as destination <a href='SkColor_Reference#Alpha'>Alpha</a>, <code>Dc</code> as destination <a href='SkColor_Reference#Color'>Color</a> component;
+<a href='SkBlendMode_Reference#SkBlendMode'>SkBlendMode</a>::<a href='#SkBlendMode_kHardLight'>kHardLight</a> replaces destination with:
<code>[Sa + Da - Sa * Da, Sc * (1 - Da) + Dc * (1 - Sa) +
2 * Sc <= Sa ? 2 * Sc * Dc : Sa * Da - 2 * (Da - Dc) * (Sa - Sc)]</code>,
making destination lighter or darker, depending on source.
@@ -643,12 +643,12 @@
---
-Given: <code>Sa</code> as source <a href='SkColor_Reference#Alpha'>Alpha</a>, <code>Sc</code> as source <a href='SkColor_Reference#Color'>Color</a> <a href='SkColor_Reference#Color'>component</a>,
-<code>Da</code> as destination <a href='SkColor_Reference#Alpha'>Alpha</a>, <code>Dc</code> as destination <a href='SkColor_Reference#Color'>Color</a> <a href='SkColor_Reference#Color'>component</a>;
-<a href='SkColor_Reference#Color'>where</a> <code>m = Da > 0 ? Dc / Da : 0</code>;
-<a href='SkBlendMode_Reference#SkBlendMode'>SkBlendMode</a>::<a href='#SkBlendMode_kSoftLight'>kSoftLight</a> <a href='#SkBlendMode_kSoftLight'>replaces</a> <a href='#SkBlendMode_kSoftLight'>destination</a> <a href='#SkBlendMode_kSoftLight'>with</a>: <code>[Sa + Da - Sa * Da, Sc / Da + Dc / Sa +
+Given: <code>Sa</code> as source <a href='SkColor_Reference#Alpha'>Alpha</a>, <code>Sc</code> as source <a href='SkColor_Reference#Color'>Color</a> component,
+<code>Da</code> as destination <a href='SkColor_Reference#Alpha'>Alpha</a>, <code>Dc</code> as destination <a href='SkColor_Reference#Color'>Color</a> component;
+where <code>m = Da > 0 ? Dc / Da : 0</code>;
+<a href='SkBlendMode_Reference#SkBlendMode'>SkBlendMode</a>::<a href='#SkBlendMode_kSoftLight'>kSoftLight</a> replaces destination with: <code>[Sa + Da - Sa * Da, Sc / Da + Dc / Sa +
(2 * Sc <= Sa ? Dc * (Sa + (2 * Sc - Sa) * (1 - m)) : Dc * Sa + Da * (2 * Sc - Sa) *
-(4 * Dc <= Da ? (16 * m * m + 4 * m) * (m - 1) + 7 * m : <a href='undocumented#sqrt()'>sqrt</a>(<a href='undocumented#sqrt()'>m</a>) - <a href='undocumented#sqrt()'>m</a>))]</code>,
+(4 * Dc <= Da ? (16 * m * m + 4 * m) * (m - 1) + 7 * m : <a href='undocumented#sqrt()'>sqrt</a>(m) - m))]</code>,
making destination lighter or darker, depending on source.
### Example
@@ -659,10 +659,10 @@
---
-Given: <code>Sa</code> as source <a href='SkColor_Reference#Alpha'>Alpha</a>, <code>Sc</code> as source <a href='SkColor_Reference#Color'>Color</a> <a href='SkColor_Reference#Color'>component</a>,
-<code>Da</code> as destination <a href='SkColor_Reference#Alpha'>Alpha</a>, <code>Dc</code> as destination <a href='SkColor_Reference#Color'>Color</a> <a href='SkColor_Reference#Color'>component</a>;
-<a href='SkBlendMode_Reference#SkBlendMode'>SkBlendMode</a>::<a href='#SkBlendMode_kDifference'>kDifference</a> <a href='#SkBlendMode_kDifference'>replaces</a> <a href='#SkBlendMode_kDifference'>destination</a> <a href='#SkBlendMode_kDifference'>with</a>:
-<code>[Sa + Da - Sa * Da, Sc + Dc - 2 * <a href='undocumented#min()'>min</a>(<a href='undocumented#min()'>Sc</a> * <a href='undocumented#min()'>Da</a>, <a href='undocumented#min()'>Dc</a> * <a href='undocumented#min()'>Sa</a>)]</code>,
+Given: <code>Sa</code> as source <a href='SkColor_Reference#Alpha'>Alpha</a>, <code>Sc</code> as source <a href='SkColor_Reference#Color'>Color</a> component,
+<code>Da</code> as destination <a href='SkColor_Reference#Alpha'>Alpha</a>, <code>Dc</code> as destination <a href='SkColor_Reference#Color'>Color</a> component;
+<a href='SkBlendMode_Reference#SkBlendMode'>SkBlendMode</a>::<a href='#SkBlendMode_kDifference'>kDifference</a> replaces destination with:
+<code>[Sa + Da - Sa * Da, Sc + Dc - 2 * <a href='undocumented#min()'>min</a>(Sc * Da, Dc * Sa)]</code>,
replacing destination with lighter less darker.
### Example
@@ -673,9 +673,9 @@
---
-Given: <code>Sa</code> as source <a href='SkColor_Reference#Alpha'>Alpha</a>, <code>Sc</code> as source <a href='SkColor_Reference#Color'>Color</a> <a href='SkColor_Reference#Color'>component</a>,
-<code>Da</code> as destination <a href='SkColor_Reference#Alpha'>Alpha</a>, <code>Dc</code> as destination <a href='SkColor_Reference#Color'>Color</a> <a href='SkColor_Reference#Color'>component</a>;
-<a href='SkBlendMode_Reference#SkBlendMode'>SkBlendMode</a>::<a href='#SkBlendMode_kExclusion'>kExclusion</a> <a href='#SkBlendMode_kExclusion'>replaces</a> <a href='#SkBlendMode_kExclusion'>destination</a> <a href='#SkBlendMode_kExclusion'>with</a>:
+Given: <code>Sa</code> as source <a href='SkColor_Reference#Alpha'>Alpha</a>, <code>Sc</code> as source <a href='SkColor_Reference#Color'>Color</a> component,
+<code>Da</code> as destination <a href='SkColor_Reference#Alpha'>Alpha</a>, <code>Dc</code> as destination <a href='SkColor_Reference#Color'>Color</a> component;
+<a href='SkBlendMode_Reference#SkBlendMode'>SkBlendMode</a>::<a href='#SkBlendMode_kExclusion'>kExclusion</a> replaces destination with:
<code>[Sa + Da - Sa * Da, Sc + Dc - 2 * Sc * Dc]</code>,
replacing destination with lighter less darker, ignoring <a href='SkColor_Reference#Alpha'>Alpha</a>.
@@ -687,12 +687,12 @@
---
-Given: <code>Sa</code> as source <a href='SkColor_Reference#Alpha'>Alpha</a>, <code>Sc</code> as source <a href='SkColor_Reference#Color'>Color</a> <a href='SkColor_Reference#Color'>component</a>,
-<code>Da</code> as destination <a href='SkColor_Reference#Alpha'>Alpha</a>, <code>Dc</code> as destination <a href='SkColor_Reference#Color'>Color</a> <a href='SkColor_Reference#Color'>component</a>;
-<a href='SkBlendMode_Reference#SkBlendMode'>SkBlendMode</a>::<a href='#SkBlendMode_kMultiply'>kMultiply</a> <a href='#SkBlendMode_kMultiply'>replaces</a> <a href='#SkBlendMode_kMultiply'>destination</a> <a href='#SkBlendMode_kMultiply'>with</a>:
+Given: <code>Sa</code> as source <a href='SkColor_Reference#Alpha'>Alpha</a>, <code>Sc</code> as source <a href='SkColor_Reference#Color'>Color</a> component,
+<code>Da</code> as destination <a href='SkColor_Reference#Alpha'>Alpha</a>, <code>Dc</code> as destination <a href='SkColor_Reference#Color'>Color</a> component;
+<a href='SkBlendMode_Reference#SkBlendMode'>SkBlendMode</a>::<a href='#SkBlendMode_kMultiply'>kMultiply</a> replaces destination with:
<code>[Sa + Da - Sa * Da, Sc * (1 - Da) + Dc * (1 - Sa) + Sc * Dc]</code>,
-the product of <a href='undocumented#Unpremultiply'>Unpremultiplied</a> <a href='undocumented#Unpremultiply'>source</a> <a href='undocumented#Unpremultiply'>and</a> <a href='undocumented#Unpremultiply'>destination</a>.
-<a href='SkBlendMode_Reference#SkBlendMode'>SkBlendMode</a>::<a href='#SkBlendMode_kMultiply'>kMultiply</a> <a href='#SkBlendMode_kMultiply'>makes</a> <a href='#SkBlendMode_kMultiply'>the</a> <a href='SkImage_Reference#Image'>image</a> <a href='SkImage_Reference#Image'>darker</a>.
+the product of <a href='undocumented#Unpremultiply'>Unpremultiplied</a> source and destination.
+<a href='SkBlendMode_Reference#SkBlendMode'>SkBlendMode</a>::<a href='#SkBlendMode_kMultiply'>kMultiply</a> makes the <a href='SkImage_Reference#Image'>image</a> darker.
### Example
@@ -704,8 +704,8 @@
Given: <code>Sa</code> as source <a href='SkColor_Reference#Alpha'>Alpha</a>, <code>S</code> as source <a href='SkColor_Reference#Color'>Color</a>,
<code>Da</code> as destination <a href='SkColor_Reference#Alpha'>Alpha</a>, <code>D</code> as destination <a href='SkColor_Reference#Color'>Color</a>;
-<a href='SkBlendMode_Reference#SkBlendMode'>SkBlendMode</a>::<a href='#SkBlendMode_kHue'>kHue</a> <a href='#SkBlendMode_kHue'>replaces</a> <a href='#SkBlendMode_kHue'>destination</a> <a href='#SkBlendMode_kHue'>with</a>:
-<code>[Sa + Da - Sa * Da, <a href='undocumented#SetLuminosity'>SetLuminosity</a>(<a href='undocumented#SetSaturation'>SetSaturation</a>(<a href='undocumented#SetSaturation'>S</a>, <a href='undocumented#Saturation'>Saturation</a>(<a href='undocumented#Saturation'>D</a>)), <a href='undocumented#Luminosity'>Luminosity</a>(<a href='undocumented#Luminosity'>D</a>))]</code>,
+<a href='SkBlendMode_Reference#SkBlendMode'>SkBlendMode</a>::<a href='#SkBlendMode_kHue'>kHue</a> replaces destination with:
+<code>[Sa + Da - Sa * Da, <a href='undocumented#SetLuminosity'>SetLuminosity</a>(<a href='undocumented#SetSaturation'>SetSaturation</a>(S, <a href='undocumented#Saturation'>Saturation</a>(D)), <a href='undocumented#Luminosity'>Luminosity</a>(D))]</code>,
source hue, leaving destination luminosity and saturation unchanged.
### Example
@@ -718,8 +718,8 @@
Given: <code>Sa</code> as source <a href='SkColor_Reference#Alpha'>Alpha</a>, <code>S</code> as source <a href='SkColor_Reference#Color'>Color</a>,
<code>Da</code> as destination <a href='SkColor_Reference#Alpha'>Alpha</a>, <code>D</code> as destination <a href='SkColor_Reference#Color'>Color</a>;
-<a href='SkBlendMode_Reference#SkBlendMode'>SkBlendMode</a>::<a href='#SkBlendMode_kHue'>kHue</a> <a href='#SkBlendMode_kHue'>replaces</a> <a href='#SkBlendMode_kHue'>destination</a> <a href='#SkBlendMode_kHue'>with</a>:
-<code>[Sa + Da - Sa * Da, <a href='undocumented#SetLuminosity'>SetLuminosity</a>(<a href='undocumented#SetSaturation'>SetSaturation</a>(<a href='undocumented#SetSaturation'>D</a>, <a href='undocumented#Saturation'>Saturation</a>(<a href='undocumented#Saturation'>S</a>)), <a href='undocumented#Luminosity'>Luminosity</a>(<a href='undocumented#Luminosity'>D</a>))]</code>,
+<a href='SkBlendMode_Reference#SkBlendMode'>SkBlendMode</a>::<a href='#SkBlendMode_kHue'>kHue</a> replaces destination with:
+<code>[Sa + Da - Sa * Da, <a href='undocumented#SetLuminosity'>SetLuminosity</a>(<a href='undocumented#SetSaturation'>SetSaturation</a>(D, <a href='undocumented#Saturation'>Saturation</a>(S)), <a href='undocumented#Luminosity'>Luminosity</a>(D))]</code>,
source hue, leaving destination luminosity and saturation unchanged.
### Example
@@ -732,8 +732,8 @@
Given: <code>Sa</code> as source <a href='SkColor_Reference#Alpha'>Alpha</a>, <code>S</code> as source <a href='SkColor_Reference#Color'>Color</a>,
<code>Da</code> as destination <a href='SkColor_Reference#Alpha'>Alpha</a>, <code>D</code> as destination <a href='SkColor_Reference#Color'>Color</a>;
-<a href='SkBlendMode_Reference#SkBlendMode'>SkBlendMode</a>::<a href='#SkBlendMode_kColor'>kColor</a> <a href='#SkBlendMode_kColor'>replaces</a> <a href='#SkBlendMode_kColor'>destination</a> <a href='#SkBlendMode_kColor'>with</a>:
-<code>[Sa + Da - Sa * Da, <a href='undocumented#SetLuminosity'>SetLuminosity</a>(<a href='undocumented#SetLuminosity'>S</a>, <a href='undocumented#Luminosity'>Luminosity</a>(<a href='undocumented#Luminosity'>D</a>))]</code>,
+<a href='SkBlendMode_Reference#SkBlendMode'>SkBlendMode</a>::<a href='#SkBlendMode_kColor'>kColor</a> replaces destination with:
+<code>[Sa + Da - Sa * Da, <a href='undocumented#SetLuminosity'>SetLuminosity</a>(S, <a href='undocumented#Luminosity'>Luminosity</a>(D))]</code>,
source hue and saturation, leaving destination luminosity unchanged.
### Example
@@ -746,8 +746,8 @@
Given: <code>Sa</code> as source <a href='SkColor_Reference#Alpha'>Alpha</a>, <code>S</code> as source <a href='SkColor_Reference#Color'>Color</a>,
<code>Da</code> as destination <a href='SkColor_Reference#Alpha'>Alpha</a>, <code>D</code> as destination <a href='SkColor_Reference#Color'>Color</a>;
-<a href='SkBlendMode_Reference#SkBlendMode'>SkBlendMode</a>::<a href='#SkBlendMode_kLuminosity'>kLuminosity</a> <a href='#SkBlendMode_kLuminosity'>replaces</a> <a href='#SkBlendMode_kLuminosity'>destination</a> <a href='#SkBlendMode_kLuminosity'>with</a>:
-<code>[Sa + Da - Sa * Da, <a href='undocumented#SetLuminosity'>SetLuminosity</a>(<a href='undocumented#SetLuminosity'>D</a>, <a href='undocumented#Luminosity'>Luminosity</a>(<a href='undocumented#Luminosity'>S</a>))]</code>,
+<a href='SkBlendMode_Reference#SkBlendMode'>SkBlendMode</a>::<a href='#SkBlendMode_kLuminosity'>kLuminosity</a> replaces destination with:
+<code>[Sa + Da - Sa * Da, <a href='undocumented#SetLuminosity'>SetLuminosity</a>(D, <a href='undocumented#Luminosity'>Luminosity</a>(S))]</code>,
source luminosity, leaving destination hue and saturation unchanged.
### Example
@@ -759,10 +759,10 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-const char* <a href='SkBlendMode_Reference#SkBlendMode_Name'>SkBlendMode_Name</a>(<a href='SkBlendMode_Reference#SkBlendMode'>SkBlendMode</a> <a href='SkBlendMode_Reference#SkBlendMode'>blendMode</a>)
+const char* <a href='SkBlendMode_Reference#SkBlendMode_Name'>SkBlendMode_Name</a>(<a href='SkBlendMode_Reference#SkBlendMode'>SkBlendMode</a> blendMode)
</pre>
-Returns name of <a href='#SkBlendMode_Name_blendMode'>blendMode</a> <a href='#SkBlendMode_Name_blendMode'>as</a> <a href='#SkBlendMode_Name_blendMode'>null-terminated</a> <a href='#SkBlendMode_Name_blendMode'>C</a> <a href='undocumented#String'>string</a>.
+Returns name of <a href='#SkBlendMode_Name_blendMode'>blendMode</a> as null-terminated C <a href='undocumented#String'>string</a>.
### Parameters
diff --git a/site/user/api/SkCanvas_Reference.md b/site/user/api/SkCanvas_Reference.md
index b5e443f..5885058 100644
--- a/site/user/api/SkCanvas_Reference.md
+++ b/site/user/api/SkCanvas_Reference.md
@@ -8,314 +8,314 @@
<pre style="padding: 1em 1em 1em 1em;width: 62.5em; background-color: #f0f0f0">
class <a href='SkCanvas_Reference#SkCanvas'>SkCanvas</a> {
-<a href='SkCanvas_Reference#SkCanvas'>public</a>:
- <a href='SkCanvas_Reference#SkCanvas'>static</a> <a href='SkCanvas_Reference#SkCanvas'>std</a>::<a href='SkCanvas_Reference#SkCanvas'>unique_ptr</a><<a href='SkCanvas_Reference#SkCanvas'>SkCanvas</a>> <a href='#SkCanvas_MakeRasterDirect'>MakeRasterDirect</a>(<a href='#SkCanvas_MakeRasterDirect'>const</a> <a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a>& <a href='SkImageInfo_Reference#SkImageInfo'>info</a>, <a href='SkImageInfo_Reference#SkImageInfo'>void</a>* <a href='SkImageInfo_Reference#SkImageInfo'>pixels</a>,
- <a href='SkImageInfo_Reference#SkImageInfo'>size_t</a> <a href='SkImageInfo_Reference#SkImageInfo'>rowBytes</a>,
- <a href='SkImageInfo_Reference#SkImageInfo'>const</a> <a href='undocumented#SkSurfaceProps'>SkSurfaceProps</a>* <a href='undocumented#SkSurfaceProps'>props</a> = <a href='undocumented#SkSurfaceProps'>nullptr</a>);
- <a href='undocumented#SkSurfaceProps'>static</a> <a href='undocumented#SkSurfaceProps'>std</a>::<a href='undocumented#SkSurfaceProps'>unique_ptr</a><<a href='SkCanvas_Reference#SkCanvas'>SkCanvas</a>> <a href='#SkCanvas_MakeRasterDirectN32'>MakeRasterDirectN32</a>(<a href='#SkCanvas_MakeRasterDirectN32'>int</a> <a href='#SkCanvas_MakeRasterDirectN32'>width</a>, <a href='#SkCanvas_MakeRasterDirectN32'>int</a> <a href='#SkCanvas_MakeRasterDirectN32'>height</a>, <a href='SkColor_Reference#SkPMColor'>SkPMColor</a>* <a href='SkColor_Reference#SkPMColor'>pixels</a>,
- <a href='SkColor_Reference#SkPMColor'>size_t</a> <a href='SkColor_Reference#SkPMColor'>rowBytes</a>);
+public:
+ static std::unique_ptr<<a href='SkCanvas_Reference#SkCanvas'>SkCanvas</a>> <a href='#SkCanvas_MakeRasterDirect'>MakeRasterDirect</a>(const <a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a>& info, void* pixels,
+ size_t rowBytes,
+ const <a href='undocumented#SkSurfaceProps'>SkSurfaceProps</a>* props = nullptr);
+ static std::unique_ptr<<a href='SkCanvas_Reference#SkCanvas'>SkCanvas</a>> <a href='#SkCanvas_MakeRasterDirectN32'>MakeRasterDirectN32</a>(int width, int height, <a href='SkColor_Reference#SkPMColor'>SkPMColor</a>* pixels,
+ size_t rowBytes);
<a href='#SkCanvas_empty_constructor'>SkCanvas()</a>;
- <a href='SkCanvas_Reference#SkCanvas'>SkCanvas</a>(<a href='SkCanvas_Reference#SkCanvas'>int</a> <a href='SkCanvas_Reference#SkCanvas'>width</a>, <a href='SkCanvas_Reference#SkCanvas'>int</a> <a href='SkCanvas_Reference#SkCanvas'>height</a>, <a href='SkCanvas_Reference#SkCanvas'>const</a> <a href='undocumented#SkSurfaceProps'>SkSurfaceProps</a>* <a href='undocumented#SkSurfaceProps'>props</a> = <a href='undocumented#SkSurfaceProps'>nullptr</a>);
- <a href='undocumented#SkSurfaceProps'>explicit</a> <a href='SkCanvas_Reference#SkCanvas'>SkCanvas</a>(<a href='undocumented#sk_sp'>sk_sp</a><<a href='undocumented#SkBaseDevice'>SkBaseDevice</a>> <a href='undocumented#Device'>device</a>);
- <a href='undocumented#Device'>explicit</a> <a href='SkCanvas_Reference#SkCanvas'>SkCanvas</a>(<a href='SkCanvas_Reference#SkCanvas'>const</a> <a href='SkBitmap_Reference#SkBitmap'>SkBitmap</a>& <a href='SkBitmap_Reference#Bitmap'>bitmap</a>);
+ <a href='SkCanvas_Reference#SkCanvas'>SkCanvas</a>(int width, int height, const <a href='undocumented#SkSurfaceProps'>SkSurfaceProps</a>* props = nullptr);
+ explicit <a href='SkCanvas_Reference#SkCanvas'>SkCanvas</a>(<a href='undocumented#sk_sp'>sk_sp</a><<a href='undocumented#SkBaseDevice'>SkBaseDevice</a>> <a href='undocumented#Device'>device</a>);
+ explicit <a href='SkCanvas_Reference#SkCanvas'>SkCanvas</a>(const <a href='SkBitmap_Reference#SkBitmap'>SkBitmap</a>& <a href='SkBitmap_Reference#Bitmap'>bitmap</a>);
- <a href='SkBitmap_Reference#Bitmap'>enum</a> <a href='SkBitmap_Reference#Bitmap'>class</a> <a href='#SkCanvas_ColorBehavior'>ColorBehavior</a> {
- <a href='#SkCanvas_ColorBehavior'>kLegacy</a>,
+ enum class <a href='#SkCanvas_ColorBehavior'>ColorBehavior</a> {
+ kLegacy,
};
- <a href='SkCanvas_Reference#SkCanvas'>SkCanvas</a>(<a href='SkCanvas_Reference#SkCanvas'>const</a> <a href='SkBitmap_Reference#SkBitmap'>SkBitmap</a>& <a href='SkBitmap_Reference#Bitmap'>bitmap</a>, <a href='#SkCanvas_ColorBehavior'>ColorBehavior</a> <a href='#SkCanvas_ColorBehavior'>behavior</a>);
- <a href='SkCanvas_Reference#SkCanvas'>SkCanvas</a>(<a href='SkCanvas_Reference#SkCanvas'>const</a> <a href='SkBitmap_Reference#SkBitmap'>SkBitmap</a>& <a href='SkBitmap_Reference#Bitmap'>bitmap</a>, <a href='SkBitmap_Reference#Bitmap'>const</a> <a href='undocumented#SkSurfaceProps'>SkSurfaceProps</a>& <a href='undocumented#SkSurfaceProps'>props</a>);
- <a href='undocumented#SkSurfaceProps'>virtual</a> ~<a href='#SkCanvas_empty_constructor'>SkCanvas()</a>;
+ <a href='SkCanvas_Reference#SkCanvas'>SkCanvas</a>(const <a href='SkBitmap_Reference#SkBitmap'>SkBitmap</a>& <a href='SkBitmap_Reference#Bitmap'>bitmap</a>, <a href='#SkCanvas_ColorBehavior'>ColorBehavior</a> behavior);
+ <a href='SkCanvas_Reference#SkCanvas'>SkCanvas</a>(const <a href='SkBitmap_Reference#SkBitmap'>SkBitmap</a>& <a href='SkBitmap_Reference#Bitmap'>bitmap</a>, const <a href='undocumented#SkSurfaceProps'>SkSurfaceProps</a>& props);
+ virtual ~<a href='#SkCanvas_empty_constructor'>SkCanvas()</a>;
<a href='undocumented#SkMetaData'>SkMetaData</a>& <a href='#SkCanvas_getMetaData'>getMetaData</a>();
- <a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a> <a href='#SkCanvas_imageInfo'>imageInfo</a>() <a href='#SkCanvas_imageInfo'>const</a>;
- <a href='#SkCanvas_imageInfo'>bool</a> <a href='#SkCanvas_getProps'>getProps</a>(<a href='undocumented#SkSurfaceProps'>SkSurfaceProps</a>* <a href='undocumented#SkSurfaceProps'>props</a>) <a href='undocumented#SkSurfaceProps'>const</a>;
- <a href='undocumented#SkSurfaceProps'>void</a> <a href='#SkCanvas_flush'>flush()</a>;
- <a href='#SkCanvas_flush'>virtual</a> <a href='undocumented#SkISize'>SkISize</a> <a href='#SkCanvas_getBaseLayerSize'>getBaseLayerSize</a>() <a href='#SkCanvas_getBaseLayerSize'>const</a>;
- <a href='undocumented#sk_sp'>sk_sp</a><<a href='SkSurface_Reference#SkSurface'>SkSurface</a>> <a href='#SkCanvas_makeSurface'>makeSurface</a>(<a href='#SkCanvas_makeSurface'>const</a> <a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a>& <a href='SkImageInfo_Reference#SkImageInfo'>info</a>, <a href='SkImageInfo_Reference#SkImageInfo'>const</a> <a href='undocumented#SkSurfaceProps'>SkSurfaceProps</a>* <a href='undocumented#SkSurfaceProps'>props</a> = <a href='undocumented#SkSurfaceProps'>nullptr</a>);
- <a href='undocumented#SkSurfaceProps'>virtual</a> <a href='undocumented#GrContext'>GrContext</a>* <a href='#SkCanvas_getGrContext'>getGrContext</a>();
- <a href='#SkCanvas_getGrContext'>void</a>* <a href='#SkCanvas_accessTopLayerPixels'>accessTopLayerPixels</a>(<a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a>* <a href='SkImageInfo_Reference#SkImageInfo'>info</a>, <a href='SkImageInfo_Reference#SkImageInfo'>size_t</a>* <a href='SkImageInfo_Reference#SkImageInfo'>rowBytes</a>, <a href='SkIPoint_Reference#SkIPoint'>SkIPoint</a>* <a href='SkIPoint_Reference#SkIPoint'>origin</a> = <a href='SkIPoint_Reference#SkIPoint'>nullptr</a>);
- <a href='undocumented#SkRasterHandleAllocator'>SkRasterHandleAllocator</a>::<a href='#SkRasterHandleAllocator_Handle'>Handle</a> <a href='#SkCanvas_accessTopRasterHandle'>accessTopRasterHandle</a>() <a href='#SkCanvas_accessTopRasterHandle'>const</a>;
- <a href='#SkCanvas_accessTopRasterHandle'>bool</a> <a href='#SkCanvas_peekPixels'>peekPixels</a>(<a href='SkPixmap_Reference#SkPixmap'>SkPixmap</a>* <a href='SkPixmap_Reference#Pixmap'>pixmap</a>);
- <a href='SkPixmap_Reference#Pixmap'>bool</a> <a href='#SkCanvas_readPixels'>readPixels</a>(<a href='#SkCanvas_readPixels'>const</a> <a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a>& <a href='SkImageInfo_Reference#SkImageInfo'>dstInfo</a>, <a href='SkImageInfo_Reference#SkImageInfo'>void</a>* <a href='SkImageInfo_Reference#SkImageInfo'>dstPixels</a>, <a href='SkImageInfo_Reference#SkImageInfo'>size_t</a> <a href='SkImageInfo_Reference#SkImageInfo'>dstRowBytes</a>,
- <a href='SkImageInfo_Reference#SkImageInfo'>int</a> <a href='SkImageInfo_Reference#SkImageInfo'>srcX</a>, <a href='SkImageInfo_Reference#SkImageInfo'>int</a> <a href='SkImageInfo_Reference#SkImageInfo'>srcY</a>);
- <a href='SkImageInfo_Reference#SkImageInfo'>bool</a> <a href='#SkCanvas_readPixels'>readPixels</a>(<a href='#SkCanvas_readPixels'>const</a> <a href='SkPixmap_Reference#SkPixmap'>SkPixmap</a>& <a href='SkPixmap_Reference#Pixmap'>pixmap</a>, <a href='SkPixmap_Reference#Pixmap'>int</a> <a href='SkPixmap_Reference#Pixmap'>srcX</a>, <a href='SkPixmap_Reference#Pixmap'>int</a> <a href='SkPixmap_Reference#Pixmap'>srcY</a>);
- <a href='SkPixmap_Reference#Pixmap'>bool</a> <a href='#SkCanvas_readPixels'>readPixels</a>(<a href='#SkCanvas_readPixels'>const</a> <a href='SkBitmap_Reference#SkBitmap'>SkBitmap</a>& <a href='SkBitmap_Reference#Bitmap'>bitmap</a>, <a href='SkBitmap_Reference#Bitmap'>int</a> <a href='SkBitmap_Reference#Bitmap'>srcX</a>, <a href='SkBitmap_Reference#Bitmap'>int</a> <a href='SkBitmap_Reference#Bitmap'>srcY</a>);
- <a href='SkBitmap_Reference#Bitmap'>bool</a> <a href='#SkCanvas_writePixels'>writePixels</a>(<a href='#SkCanvas_writePixels'>const</a> <a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a>& <a href='SkImageInfo_Reference#SkImageInfo'>info</a>, <a href='SkImageInfo_Reference#SkImageInfo'>const</a> <a href='SkImageInfo_Reference#SkImageInfo'>void</a>* <a href='SkImageInfo_Reference#SkImageInfo'>pixels</a>, <a href='SkImageInfo_Reference#SkImageInfo'>size_t</a> <a href='SkImageInfo_Reference#SkImageInfo'>rowBytes</a>, <a href='SkImageInfo_Reference#SkImageInfo'>int</a> <a href='SkImageInfo_Reference#SkImageInfo'>x</a>, <a href='SkImageInfo_Reference#SkImageInfo'>int</a> <a href='SkImageInfo_Reference#SkImageInfo'>y</a>);
- <a href='SkImageInfo_Reference#SkImageInfo'>bool</a> <a href='#SkCanvas_writePixels'>writePixels</a>(<a href='#SkCanvas_writePixels'>const</a> <a href='SkBitmap_Reference#SkBitmap'>SkBitmap</a>& <a href='SkBitmap_Reference#Bitmap'>bitmap</a>, <a href='SkBitmap_Reference#Bitmap'>int</a> <a href='SkBitmap_Reference#Bitmap'>x</a>, <a href='SkBitmap_Reference#Bitmap'>int</a> <a href='SkBitmap_Reference#Bitmap'>y</a>);
- <a href='SkBitmap_Reference#Bitmap'>int</a> <a href='#SkCanvas_save'>save()</a>;
- <a href='#SkCanvas_save'>int</a> <a href='#SkCanvas_saveLayer'>saveLayer</a>(<a href='#SkCanvas_saveLayer'>const</a> <a href='SkRect_Reference#SkRect'>SkRect</a>* <a href='SkRect_Reference#SkRect'>bounds</a>, <a href='SkRect_Reference#SkRect'>const</a> <a href='SkPaint_Reference#SkPaint'>SkPaint</a>* <a href='SkPaint_Reference#Paint'>paint</a>);
- <a href='SkPaint_Reference#Paint'>int</a> <a href='#SkCanvas_saveLayer'>saveLayer</a>(<a href='#SkCanvas_saveLayer'>const</a> <a href='SkRect_Reference#SkRect'>SkRect</a>& <a href='SkRect_Reference#SkRect'>bounds</a>, <a href='SkRect_Reference#SkRect'>const</a> <a href='SkPaint_Reference#SkPaint'>SkPaint</a>* <a href='SkPaint_Reference#Paint'>paint</a>);
- <a href='SkPaint_Reference#Paint'>int</a> <a href='#SkCanvas_saveLayerPreserveLCDTextRequests'>saveLayerPreserveLCDTextRequests</a>(<a href='#SkCanvas_saveLayerPreserveLCDTextRequests'>const</a> <a href='SkRect_Reference#SkRect'>SkRect</a>* <a href='SkRect_Reference#SkRect'>bounds</a>, <a href='SkRect_Reference#SkRect'>const</a> <a href='SkPaint_Reference#SkPaint'>SkPaint</a>* <a href='SkPaint_Reference#Paint'>paint</a>);
- <a href='SkPaint_Reference#Paint'>int</a> <a href='#SkCanvas_saveLayerAlpha'>saveLayerAlpha</a>(<a href='#SkCanvas_saveLayerAlpha'>const</a> <a href='SkRect_Reference#SkRect'>SkRect</a>* <a href='SkRect_Reference#SkRect'>bounds</a>, <a href='undocumented#U8CPU'>U8CPU</a> <a href='SkColor_Reference#Alpha'>alpha</a>);
+ <a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a> <a href='#SkCanvas_imageInfo'>imageInfo</a>() const;
+ bool <a href='#SkCanvas_getProps'>getProps</a>(<a href='undocumented#SkSurfaceProps'>SkSurfaceProps</a>* props) const;
+ void <a href='#SkCanvas_flush'>flush()</a>;
+ virtual <a href='undocumented#SkISize'>SkISize</a> <a href='#SkCanvas_getBaseLayerSize'>getBaseLayerSize</a>() const;
+ <a href='undocumented#sk_sp'>sk_sp</a><<a href='SkSurface_Reference#SkSurface'>SkSurface</a>> <a href='#SkCanvas_makeSurface'>makeSurface</a>(const <a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a>& info, const <a href='undocumented#SkSurfaceProps'>SkSurfaceProps</a>* props = nullptr);
+ virtual <a href='undocumented#GrContext'>GrContext</a>* <a href='#SkCanvas_getGrContext'>getGrContext</a>();
+ void* <a href='#SkCanvas_accessTopLayerPixels'>accessTopLayerPixels</a>(<a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a>* info, size_t* rowBytes, <a href='SkIPoint_Reference#SkIPoint'>SkIPoint</a>* origin = nullptr);
+ <a href='undocumented#SkRasterHandleAllocator'>SkRasterHandleAllocator</a>::<a href='#SkRasterHandleAllocator_Handle'>Handle</a> <a href='#SkCanvas_accessTopRasterHandle'>accessTopRasterHandle</a>() const;
+ bool <a href='#SkCanvas_peekPixels'>peekPixels</a>(<a href='SkPixmap_Reference#SkPixmap'>SkPixmap</a>* <a href='SkPixmap_Reference#Pixmap'>pixmap</a>);
+ bool <a href='#SkCanvas_readPixels'>readPixels</a>(const <a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a>& dstInfo, void* dstPixels, size_t dstRowBytes,
+ int srcX, int srcY);
+ bool <a href='#SkCanvas_readPixels'>readPixels</a>(const <a href='SkPixmap_Reference#SkPixmap'>SkPixmap</a>& <a href='SkPixmap_Reference#Pixmap'>pixmap</a>, int srcX, int srcY);
+ bool <a href='#SkCanvas_readPixels'>readPixels</a>(const <a href='SkBitmap_Reference#SkBitmap'>SkBitmap</a>& <a href='SkBitmap_Reference#Bitmap'>bitmap</a>, int srcX, int srcY);
+ bool <a href='#SkCanvas_writePixels'>writePixels</a>(const <a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a>& info, const void* pixels, size_t rowBytes, int x, int y);
+ bool <a href='#SkCanvas_writePixels'>writePixels</a>(const <a href='SkBitmap_Reference#SkBitmap'>SkBitmap</a>& <a href='SkBitmap_Reference#Bitmap'>bitmap</a>, int x, int y);
+ int <a href='#SkCanvas_save'>save()</a>;
+ int <a href='#SkCanvas_saveLayer'>saveLayer</a>(const <a href='SkRect_Reference#SkRect'>SkRect</a>* bounds, const <a href='SkPaint_Reference#SkPaint'>SkPaint</a>* <a href='SkPaint_Reference#Paint'>paint</a>);
+ int <a href='#SkCanvas_saveLayer'>saveLayer</a>(const <a href='SkRect_Reference#SkRect'>SkRect</a>& bounds, const <a href='SkPaint_Reference#SkPaint'>SkPaint</a>* <a href='SkPaint_Reference#Paint'>paint</a>);
+ int <a href='#SkCanvas_saveLayerPreserveLCDTextRequests'>saveLayerPreserveLCDTextRequests</a>(const <a href='SkRect_Reference#SkRect'>SkRect</a>* bounds, const <a href='SkPaint_Reference#SkPaint'>SkPaint</a>* <a href='SkPaint_Reference#Paint'>paint</a>);
+ int <a href='#SkCanvas_saveLayerAlpha'>saveLayerAlpha</a>(const <a href='SkRect_Reference#SkRect'>SkRect</a>* bounds, <a href='undocumented#U8CPU'>U8CPU</a> <a href='SkColor_Reference#Alpha'>alpha</a>);
- <a href='SkColor_Reference#Alpha'>enum</a> <a href='#SkCanvas_SaveLayerFlagsSet'>SaveLayerFlagsSet</a> {
+ enum <a href='#SkCanvas_SaveLayerFlagsSet'>SaveLayerFlagsSet</a> {
<a href='#SkCanvas_kPreserveLCDText_SaveLayerFlag'>kPreserveLCDText_SaveLayerFlag</a> = 1 << 1,
<a href='#SkCanvas_kInitWithPrevious_SaveLayerFlag'>kInitWithPrevious_SaveLayerFlag</a> = 1 << 2,
<a href='#SkCanvas_kMaskAgainstCoverage_EXPERIMENTAL_DONT_USE_SaveLayerFlag'>kMaskAgainstCoverage_EXPERIMENTAL_DONT_USE_SaveLayerFlag</a> =
1 << 3,
<a href='#SkCanvas_kDontClipToLayer_Legacy_SaveLayerFlag'>kDontClipToLayer_Legacy_SaveLayerFlag</a> =
- <a href='#SkCanvas_kDontClipToLayer_Legacy_SaveLayerFlag'>kDontClipToLayer_PrivateSaveLayerFlag</a>,
+ kDontClipToLayer_PrivateSaveLayerFlag,
};
- <a href='#SkCanvas_kDontClipToLayer_Legacy_SaveLayerFlag'>typedef</a> <a href='#SkCanvas_kDontClipToLayer_Legacy_SaveLayerFlag'>uint32_t</a> <a href='#SkCanvas_SaveLayerFlags'>SaveLayerFlags</a>;
+ typedef uint32_t <a href='#SkCanvas_SaveLayerFlags'>SaveLayerFlags</a>;
- <a href='#SkCanvas_SaveLayerFlags'>struct</a> <a href='#SkCanvas_SaveLayerRec'>SaveLayerRec</a> {
+ struct <a href='#SkCanvas_SaveLayerRec'>SaveLayerRec</a> {
<a href='#SkCanvas_SaveLayerRec'>SaveLayerRec</a>();
- <a href='#SkCanvas_SaveLayerRec'>SaveLayerRec</a>(<a href='#SkCanvas_SaveLayerRec'>const</a> <a href='SkRect_Reference#SkRect'>SkRect</a>* <a href='SkRect_Reference#SkRect'>bounds</a>, <a href='SkRect_Reference#SkRect'>const</a> <a href='SkPaint_Reference#SkPaint'>SkPaint</a>* <a href='SkPaint_Reference#Paint'>paint</a>, <a href='#SkCanvas_SaveLayerFlags'>SaveLayerFlags</a> <a href='#SkCanvas_SaveLayerFlags'>saveLayerFlags</a> = 0);
- <a href='#SkCanvas_SaveLayerRec'>SaveLayerRec</a>(<a href='#SkCanvas_SaveLayerRec'>const</a> <a href='SkRect_Reference#SkRect'>SkRect</a>* <a href='SkRect_Reference#SkRect'>bounds</a>, <a href='SkRect_Reference#SkRect'>const</a> <a href='SkPaint_Reference#SkPaint'>SkPaint</a>* <a href='SkPaint_Reference#Paint'>paint</a>, <a href='SkPaint_Reference#Paint'>const</a> <a href='undocumented#SkImageFilter'>SkImageFilter</a>* <a href='undocumented#SkImageFilter'>backdrop</a>,
- <a href='#SkCanvas_SaveLayerFlags'>SaveLayerFlags</a> <a href='#SkCanvas_SaveLayerFlags'>saveLayerFlags</a>);
- <a href='#SkCanvas_SaveLayerRec'>SaveLayerRec</a>(<a href='#SkCanvas_SaveLayerRec'>const</a> <a href='SkRect_Reference#SkRect'>SkRect</a>* <a href='SkRect_Reference#SkRect'>bounds</a>, <a href='SkRect_Reference#SkRect'>const</a> <a href='SkPaint_Reference#SkPaint'>SkPaint</a>* <a href='SkPaint_Reference#Paint'>paint</a>, <a href='SkPaint_Reference#Paint'>const</a> <a href='undocumented#SkImageFilter'>SkImageFilter</a>* <a href='undocumented#SkImageFilter'>backdrop</a>,
- <a href='undocumented#SkImageFilter'>const</a> <a href='SkImage_Reference#SkImage'>SkImage</a>* <a href='SkImage_Reference#SkImage'>clipMask</a>, <a href='SkImage_Reference#SkImage'>const</a> <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a>* <a href='SkMatrix_Reference#SkMatrix'>clipMatrix</a>,
- <a href='#SkCanvas_SaveLayerFlags'>SaveLayerFlags</a> <a href='#SkCanvas_SaveLayerFlags'>saveLayerFlags</a>);
- <a href='#SkCanvas_SaveLayerFlags'>const</a> <a href='SkRect_Reference#SkRect'>SkRect</a>* <a href='SkRect_Reference#SkRect'>fBounds</a> = <a href='SkRect_Reference#SkRect'>nullptr</a>;
- <a href='SkRect_Reference#SkRect'>const</a> <a href='SkPaint_Reference#SkPaint'>SkPaint</a>* <a href='SkPaint_Reference#SkPaint'>fPaint</a> = <a href='SkPaint_Reference#SkPaint'>nullptr</a>;
- <a href='SkPaint_Reference#SkPaint'>const</a> <a href='undocumented#SkImageFilter'>SkImageFilter</a>* <a href='undocumented#SkImageFilter'>fBackdrop</a> = <a href='undocumented#SkImageFilter'>nullptr</a>;
- <a href='undocumented#SkImageFilter'>const</a> <a href='SkImage_Reference#SkImage'>SkImage</a>* <a href='SkImage_Reference#SkImage'>fClipMask</a> = <a href='SkImage_Reference#SkImage'>nullptr</a>;
- <a href='SkImage_Reference#SkImage'>const</a> <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a>* <a href='SkMatrix_Reference#SkMatrix'>fClipMatrix</a> = <a href='SkMatrix_Reference#SkMatrix'>nullptr</a>;
- <a href='#SkCanvas_SaveLayerFlags'>SaveLayerFlags</a> <a href='#SkCanvas_SaveLayerFlags'>fSaveLayerFlags</a> = 0;
+ <a href='#SkCanvas_SaveLayerRec'>SaveLayerRec</a>(const <a href='SkRect_Reference#SkRect'>SkRect</a>* bounds, const <a href='SkPaint_Reference#SkPaint'>SkPaint</a>* <a href='SkPaint_Reference#Paint'>paint</a>, <a href='#SkCanvas_SaveLayerFlags'>SaveLayerFlags</a> saveLayerFlags = 0);
+ <a href='#SkCanvas_SaveLayerRec'>SaveLayerRec</a>(const <a href='SkRect_Reference#SkRect'>SkRect</a>* bounds, const <a href='SkPaint_Reference#SkPaint'>SkPaint</a>* <a href='SkPaint_Reference#Paint'>paint</a>, const <a href='undocumented#SkImageFilter'>SkImageFilter</a>* backdrop,
+ <a href='#SkCanvas_SaveLayerFlags'>SaveLayerFlags</a> saveLayerFlags);
+ <a href='#SkCanvas_SaveLayerRec'>SaveLayerRec</a>(const <a href='SkRect_Reference#SkRect'>SkRect</a>* bounds, const <a href='SkPaint_Reference#SkPaint'>SkPaint</a>* <a href='SkPaint_Reference#Paint'>paint</a>, const <a href='undocumented#SkImageFilter'>SkImageFilter</a>* backdrop,
+ const <a href='SkImage_Reference#SkImage'>SkImage</a>* clipMask, const <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a>* clipMatrix,
+ <a href='#SkCanvas_SaveLayerFlags'>SaveLayerFlags</a> saveLayerFlags);
+ const <a href='SkRect_Reference#SkRect'>SkRect</a>* fBounds = nullptr;
+ const <a href='SkPaint_Reference#SkPaint'>SkPaint</a>* fPaint = nullptr;
+ const <a href='undocumented#SkImageFilter'>SkImageFilter</a>* fBackdrop = nullptr;
+ const <a href='SkImage_Reference#SkImage'>SkImage</a>* fClipMask = nullptr;
+ const <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a>* fClipMatrix = nullptr;
+ <a href='#SkCanvas_SaveLayerFlags'>SaveLayerFlags</a> fSaveLayerFlags = 0;
};
- <a href='#SkCanvas_SaveLayerFlags'>int</a> <a href='#SkCanvas_saveLayer'>saveLayer</a>(<a href='#SkCanvas_saveLayer'>const</a> <a href='#SkCanvas_SaveLayerRec'>SaveLayerRec</a>& <a href='#SkCanvas_SaveLayerRec'>layerRec</a>);
- <a href='#SkCanvas_SaveLayerRec'>void</a> <a href='#SkCanvas_restore'>restore()</a>;
- <a href='#SkCanvas_restore'>int</a> <a href='#SkCanvas_getSaveCount'>getSaveCount</a>() <a href='#SkCanvas_getSaveCount'>const</a>;
- <a href='#SkCanvas_getSaveCount'>void</a> <a href='#SkCanvas_restoreToCount'>restoreToCount</a>(<a href='#SkCanvas_restoreToCount'>int</a> <a href='#SkCanvas_restoreToCount'>saveCount</a>);
- <a href='#SkCanvas_restoreToCount'>void</a> <a href='#SkCanvas_restoreToCount'>translate</a>(<a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>dx</a>, <a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>dy</a>);
- <a href='undocumented#SkScalar'>void</a> <a href='undocumented#SkScalar'>scale</a>(<a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>sx</a>, <a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>sy</a>);
- <a href='undocumented#SkScalar'>void</a> <a href='undocumented#SkScalar'>rotate</a>(<a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>degrees</a>);
- <a href='undocumented#SkScalar'>void</a> <a href='undocumented#SkScalar'>rotate</a>(<a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>degrees</a>, <a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>px</a>, <a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>py</a>);
- <a href='undocumented#SkScalar'>void</a> <a href='undocumented#SkScalar'>skew</a>(<a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>sx</a>, <a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>sy</a>);
- <a href='undocumented#SkScalar'>void</a> <a href='#SkCanvas_concat'>concat</a>(<a href='#SkCanvas_concat'>const</a> <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a>& <a href='SkMatrix_Reference#Matrix'>matrix</a>);
- <a href='SkMatrix_Reference#Matrix'>void</a> <a href='#SkCanvas_setMatrix'>setMatrix</a>(<a href='#SkCanvas_setMatrix'>const</a> <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a>& <a href='SkMatrix_Reference#Matrix'>matrix</a>);
- <a href='SkMatrix_Reference#Matrix'>void</a> <a href='#SkCanvas_resetMatrix'>resetMatrix</a>();
- <a href='#SkCanvas_resetMatrix'>void</a> <a href='#SkCanvas_clipRect'>clipRect</a>(<a href='#SkCanvas_clipRect'>const</a> <a href='SkRect_Reference#SkRect'>SkRect</a>& <a href='SkRect_Reference#Rect'>rect</a>, <a href='undocumented#SkClipOp'>SkClipOp</a> <a href='undocumented#SkClipOp'>op</a>, <a href='undocumented#SkClipOp'>bool</a> <a href='undocumented#SkClipOp'>doAntiAlias</a>);
- <a href='undocumented#SkClipOp'>void</a> <a href='#SkCanvas_clipRect'>clipRect</a>(<a href='#SkCanvas_clipRect'>const</a> <a href='SkRect_Reference#SkRect'>SkRect</a>& <a href='SkRect_Reference#Rect'>rect</a>, <a href='undocumented#SkClipOp'>SkClipOp</a> <a href='undocumented#SkClipOp'>op</a>);
- <a href='undocumented#SkClipOp'>void</a> <a href='#SkCanvas_clipRect'>clipRect</a>(<a href='#SkCanvas_clipRect'>const</a> <a href='SkRect_Reference#SkRect'>SkRect</a>& <a href='SkRect_Reference#Rect'>rect</a>, <a href='SkRect_Reference#Rect'>bool</a> <a href='SkRect_Reference#Rect'>doAntiAlias</a> = <a href='SkRect_Reference#Rect'>false</a>);
- <a href='SkRect_Reference#Rect'>void</a> <a href='#SkCanvas_androidFramework_setDeviceClipRestriction'>androidFramework_setDeviceClipRestriction</a>(<a href='#SkCanvas_androidFramework_setDeviceClipRestriction'>const</a> <a href='SkIRect_Reference#SkIRect'>SkIRect</a>& <a href='SkRect_Reference#Rect'>rect</a>);
- <a href='SkRect_Reference#Rect'>void</a> <a href='#SkCanvas_clipRRect'>clipRRect</a>(<a href='#SkCanvas_clipRRect'>const</a> <a href='SkRRect_Reference#SkRRect'>SkRRect</a>& <a href='SkRRect_Reference#SkRRect'>rrect</a>, <a href='undocumented#SkClipOp'>SkClipOp</a> <a href='undocumented#SkClipOp'>op</a>, <a href='undocumented#SkClipOp'>bool</a> <a href='undocumented#SkClipOp'>doAntiAlias</a>);
- <a href='undocumented#SkClipOp'>void</a> <a href='#SkCanvas_clipRRect'>clipRRect</a>(<a href='#SkCanvas_clipRRect'>const</a> <a href='SkRRect_Reference#SkRRect'>SkRRect</a>& <a href='SkRRect_Reference#SkRRect'>rrect</a>, <a href='undocumented#SkClipOp'>SkClipOp</a> <a href='undocumented#SkClipOp'>op</a>);
- <a href='undocumented#SkClipOp'>void</a> <a href='#SkCanvas_clipRRect'>clipRRect</a>(<a href='#SkCanvas_clipRRect'>const</a> <a href='SkRRect_Reference#SkRRect'>SkRRect</a>& <a href='SkRRect_Reference#SkRRect'>rrect</a>, <a href='SkRRect_Reference#SkRRect'>bool</a> <a href='SkRRect_Reference#SkRRect'>doAntiAlias</a> = <a href='SkRRect_Reference#SkRRect'>false</a>);
- <a href='SkRRect_Reference#SkRRect'>void</a> <a href='#SkCanvas_clipPath'>clipPath</a>(<a href='#SkCanvas_clipPath'>const</a> <a href='SkPath_Reference#SkPath'>SkPath</a>& <a href='SkPath_Reference#Path'>path</a>, <a href='undocumented#SkClipOp'>SkClipOp</a> <a href='undocumented#SkClipOp'>op</a>, <a href='undocumented#SkClipOp'>bool</a> <a href='undocumented#SkClipOp'>doAntiAlias</a>);
- <a href='undocumented#SkClipOp'>void</a> <a href='#SkCanvas_clipPath'>clipPath</a>(<a href='#SkCanvas_clipPath'>const</a> <a href='SkPath_Reference#SkPath'>SkPath</a>& <a href='SkPath_Reference#Path'>path</a>, <a href='undocumented#SkClipOp'>SkClipOp</a> <a href='undocumented#SkClipOp'>op</a>);
- <a href='undocumented#SkClipOp'>void</a> <a href='#SkCanvas_clipPath'>clipPath</a>(<a href='#SkCanvas_clipPath'>const</a> <a href='SkPath_Reference#SkPath'>SkPath</a>& <a href='SkPath_Reference#Path'>path</a>, <a href='SkPath_Reference#Path'>bool</a> <a href='SkPath_Reference#Path'>doAntiAlias</a> = <a href='SkPath_Reference#Path'>false</a>);
- <a href='SkPath_Reference#Path'>void</a> <a href='#SkCanvas_setAllowSimplifyClip'>setAllowSimplifyClip</a>(<a href='#SkCanvas_setAllowSimplifyClip'>bool</a> <a href='#SkCanvas_setAllowSimplifyClip'>allow</a>);
- <a href='#SkCanvas_setAllowSimplifyClip'>void</a> <a href='#SkCanvas_clipRegion'>clipRegion</a>(<a href='#SkCanvas_clipRegion'>const</a> <a href='SkRegion_Reference#SkRegion'>SkRegion</a>& <a href='SkRegion_Reference#SkRegion'>deviceRgn</a>, <a href='undocumented#SkClipOp'>SkClipOp</a> <a href='undocumented#SkClipOp'>op</a> = <a href='undocumented#SkClipOp'>SkClipOp</a>::<a href='#SkClipOp_kIntersect'>kIntersect</a>);
- <a href='#SkClipOp_kIntersect'>bool</a> <a href='#SkCanvas_quickReject'>quickReject</a>(<a href='#SkCanvas_quickReject'>const</a> <a href='SkRect_Reference#SkRect'>SkRect</a>& <a href='SkRect_Reference#Rect'>rect</a>) <a href='SkRect_Reference#Rect'>const</a>;
- <a href='SkRect_Reference#Rect'>bool</a> <a href='#SkCanvas_quickReject'>quickReject</a>(<a href='#SkCanvas_quickReject'>const</a> <a href='SkPath_Reference#SkPath'>SkPath</a>& <a href='SkPath_Reference#Path'>path</a>) <a href='SkPath_Reference#Path'>const</a>;
- <a href='SkRect_Reference#SkRect'>SkRect</a> <a href='#SkCanvas_getLocalClipBounds'>getLocalClipBounds</a>() <a href='#SkCanvas_getLocalClipBounds'>const</a>;
- <a href='#SkCanvas_getLocalClipBounds'>bool</a> <a href='#SkCanvas_getLocalClipBounds'>getLocalClipBounds</a>(<a href='SkRect_Reference#SkRect'>SkRect</a>* <a href='SkRect_Reference#SkRect'>bounds</a>) <a href='SkRect_Reference#SkRect'>const</a>;
- <a href='SkIRect_Reference#SkIRect'>SkIRect</a> <a href='#SkCanvas_getDeviceClipBounds'>getDeviceClipBounds</a>() <a href='#SkCanvas_getDeviceClipBounds'>const</a>;
- <a href='#SkCanvas_getDeviceClipBounds'>bool</a> <a href='#SkCanvas_getDeviceClipBounds'>getDeviceClipBounds</a>(<a href='SkIRect_Reference#SkIRect'>SkIRect</a>* <a href='SkIRect_Reference#SkIRect'>bounds</a>) <a href='SkIRect_Reference#SkIRect'>const</a>;
- <a href='SkIRect_Reference#SkIRect'>void</a> <a href='#SkCanvas_drawColor'>drawColor</a>(<a href='SkColor_Reference#SkColor'>SkColor</a> <a href='SkColor_Reference#Color'>color</a>, <a href='SkBlendMode_Reference#SkBlendMode'>SkBlendMode</a> <a href='SkBlendMode_Reference#SkBlendMode'>mode</a> = <a href='SkBlendMode_Reference#SkBlendMode'>SkBlendMode</a>::<a href='#SkBlendMode_kSrcOver'>kSrcOver</a>);
- <a href='#SkBlendMode_kSrcOver'>void</a> <a href='#SkBlendMode_kSrcOver'>clear</a>(<a href='SkColor_Reference#SkColor'>SkColor</a> <a href='SkColor_Reference#Color'>color</a>);
- <a href='SkColor_Reference#Color'>void</a> <a href='#SkCanvas_discard'>discard()</a>;
- <a href='#SkCanvas_discard'>void</a> <a href='#SkCanvas_drawPaint'>drawPaint</a>(<a href='#SkCanvas_drawPaint'>const</a> <a href='SkPaint_Reference#SkPaint'>SkPaint</a>& <a href='SkPaint_Reference#Paint'>paint</a>);
+ int <a href='#SkCanvas_saveLayer'>saveLayer</a>(const <a href='#SkCanvas_SaveLayerRec'>SaveLayerRec</a>& layerRec);
+ void <a href='#SkCanvas_restore'>restore()</a>;
+ int <a href='#SkCanvas_getSaveCount'>getSaveCount</a>() const;
+ void <a href='#SkCanvas_restoreToCount'>restoreToCount</a>(int saveCount);
+ void translate(<a href='undocumented#SkScalar'>SkScalar</a> dx, <a href='undocumented#SkScalar'>SkScalar</a> dy);
+ void scale(<a href='undocumented#SkScalar'>SkScalar</a> sx, <a href='undocumented#SkScalar'>SkScalar</a> sy);
+ void rotate(<a href='undocumented#SkScalar'>SkScalar</a> degrees);
+ void rotate(<a href='undocumented#SkScalar'>SkScalar</a> degrees, <a href='undocumented#SkScalar'>SkScalar</a> px, <a href='undocumented#SkScalar'>SkScalar</a> py);
+ void skew(<a href='undocumented#SkScalar'>SkScalar</a> sx, <a href='undocumented#SkScalar'>SkScalar</a> sy);
+ void <a href='#SkCanvas_concat'>concat</a>(const <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a>& <a href='SkMatrix_Reference#Matrix'>matrix</a>);
+ void <a href='#SkCanvas_setMatrix'>setMatrix</a>(const <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a>& <a href='SkMatrix_Reference#Matrix'>matrix</a>);
+ void <a href='#SkCanvas_resetMatrix'>resetMatrix</a>();
+ void <a href='#SkCanvas_clipRect'>clipRect</a>(const <a href='SkRect_Reference#SkRect'>SkRect</a>& <a href='SkRect_Reference#Rect'>rect</a>, <a href='undocumented#SkClipOp'>SkClipOp</a> op, bool doAntiAlias);
+ void <a href='#SkCanvas_clipRect'>clipRect</a>(const <a href='SkRect_Reference#SkRect'>SkRect</a>& <a href='SkRect_Reference#Rect'>rect</a>, <a href='undocumented#SkClipOp'>SkClipOp</a> op);
+ void <a href='#SkCanvas_clipRect'>clipRect</a>(const <a href='SkRect_Reference#SkRect'>SkRect</a>& <a href='SkRect_Reference#Rect'>rect</a>, bool doAntiAlias = false);
+ void <a href='#SkCanvas_androidFramework_setDeviceClipRestriction'>androidFramework_setDeviceClipRestriction</a>(const <a href='SkIRect_Reference#SkIRect'>SkIRect</a>& <a href='SkRect_Reference#Rect'>rect</a>);
+ void <a href='#SkCanvas_clipRRect'>clipRRect</a>(const <a href='SkRRect_Reference#SkRRect'>SkRRect</a>& rrect, <a href='undocumented#SkClipOp'>SkClipOp</a> op, bool doAntiAlias);
+ void <a href='#SkCanvas_clipRRect'>clipRRect</a>(const <a href='SkRRect_Reference#SkRRect'>SkRRect</a>& rrect, <a href='undocumented#SkClipOp'>SkClipOp</a> op);
+ void <a href='#SkCanvas_clipRRect'>clipRRect</a>(const <a href='SkRRect_Reference#SkRRect'>SkRRect</a>& rrect, bool doAntiAlias = false);
+ void <a href='#SkCanvas_clipPath'>clipPath</a>(const <a href='SkPath_Reference#SkPath'>SkPath</a>& <a href='SkPath_Reference#Path'>path</a>, <a href='undocumented#SkClipOp'>SkClipOp</a> op, bool doAntiAlias);
+ void <a href='#SkCanvas_clipPath'>clipPath</a>(const <a href='SkPath_Reference#SkPath'>SkPath</a>& <a href='SkPath_Reference#Path'>path</a>, <a href='undocumented#SkClipOp'>SkClipOp</a> op);
+ void <a href='#SkCanvas_clipPath'>clipPath</a>(const <a href='SkPath_Reference#SkPath'>SkPath</a>& <a href='SkPath_Reference#Path'>path</a>, bool doAntiAlias = false);
+ void <a href='#SkCanvas_setAllowSimplifyClip'>setAllowSimplifyClip</a>(bool allow);
+ void <a href='#SkCanvas_clipRegion'>clipRegion</a>(const <a href='SkRegion_Reference#SkRegion'>SkRegion</a>& deviceRgn, <a href='undocumented#SkClipOp'>SkClipOp</a> op = <a href='undocumented#SkClipOp'>SkClipOp</a>::<a href='#SkClipOp_kIntersect'>kIntersect</a>);
+ bool <a href='#SkCanvas_quickReject'>quickReject</a>(const <a href='SkRect_Reference#SkRect'>SkRect</a>& <a href='SkRect_Reference#Rect'>rect</a>) const;
+ bool <a href='#SkCanvas_quickReject'>quickReject</a>(const <a href='SkPath_Reference#SkPath'>SkPath</a>& <a href='SkPath_Reference#Path'>path</a>) const;
+ <a href='SkRect_Reference#SkRect'>SkRect</a> <a href='#SkCanvas_getLocalClipBounds'>getLocalClipBounds</a>() const;
+ bool <a href='#SkCanvas_getLocalClipBounds'>getLocalClipBounds</a>(<a href='SkRect_Reference#SkRect'>SkRect</a>* bounds) const;
+ <a href='SkIRect_Reference#SkIRect'>SkIRect</a> <a href='#SkCanvas_getDeviceClipBounds'>getDeviceClipBounds</a>() const;
+ bool <a href='#SkCanvas_getDeviceClipBounds'>getDeviceClipBounds</a>(<a href='SkIRect_Reference#SkIRect'>SkIRect</a>* bounds) const;
+ void <a href='#SkCanvas_drawColor'>drawColor</a>(<a href='SkColor_Reference#SkColor'>SkColor</a> <a href='SkColor_Reference#Color'>color</a>, <a href='SkBlendMode_Reference#SkBlendMode'>SkBlendMode</a> mode = <a href='SkBlendMode_Reference#SkBlendMode'>SkBlendMode</a>::<a href='#SkBlendMode_kSrcOver'>kSrcOver</a>);
+ void clear(<a href='SkColor_Reference#SkColor'>SkColor</a> <a href='SkColor_Reference#Color'>color</a>);
+ void <a href='#SkCanvas_discard'>discard()</a>;
+ void <a href='#SkCanvas_drawPaint'>drawPaint</a>(const <a href='SkPaint_Reference#SkPaint'>SkPaint</a>& <a href='SkPaint_Reference#Paint'>paint</a>);
- <a href='SkPaint_Reference#Paint'>enum</a> <a href='#SkCanvas_PointMode'>PointMode</a> {
+ enum <a href='#SkCanvas_PointMode'>PointMode</a> {
<a href='#SkCanvas_kPoints_PointMode'>kPoints_PointMode</a>,
<a href='#SkCanvas_kLines_PointMode'>kLines_PointMode</a>,
<a href='#SkCanvas_kPolygon_PointMode'>kPolygon_PointMode</a>,
};
- <a href='#SkCanvas_kPolygon_PointMode'>void</a> <a href='#SkCanvas_drawPoints'>drawPoints</a>(<a href='#SkCanvas_PointMode'>PointMode</a> <a href='#SkCanvas_PointMode'>mode</a>, <a href='#SkCanvas_PointMode'>size_t</a> <a href='#SkCanvas_PointMode'>count</a>, <a href='#SkCanvas_PointMode'>const</a> <a href='SkPoint_Reference#SkPoint'>SkPoint</a> <a href='SkPoint_Reference#SkPoint'>pts</a>[], <a href='SkPoint_Reference#SkPoint'>const</a> <a href='SkPaint_Reference#SkPaint'>SkPaint</a>& <a href='SkPaint_Reference#Paint'>paint</a>);
- <a href='SkPaint_Reference#Paint'>void</a> <a href='#SkCanvas_drawPoint'>drawPoint</a>(<a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>x</a>, <a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>y</a>, <a href='undocumented#SkScalar'>const</a> <a href='SkPaint_Reference#SkPaint'>SkPaint</a>& <a href='SkPaint_Reference#Paint'>paint</a>);
- <a href='SkPaint_Reference#Paint'>void</a> <a href='#SkCanvas_drawPoint'>drawPoint</a>(<a href='SkPoint_Reference#SkPoint'>SkPoint</a> <a href='SkPoint_Reference#SkPoint'>p</a>, <a href='SkPoint_Reference#SkPoint'>const</a> <a href='SkPaint_Reference#SkPaint'>SkPaint</a>& <a href='SkPaint_Reference#Paint'>paint</a>);
- <a href='SkPaint_Reference#Paint'>void</a> <a href='#SkCanvas_drawLine'>drawLine</a>(<a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>x0</a>, <a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>y0</a>, <a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>x1</a>, <a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>y1</a>, <a href='undocumented#SkScalar'>const</a> <a href='SkPaint_Reference#SkPaint'>SkPaint</a>& <a href='SkPaint_Reference#Paint'>paint</a>);
- <a href='SkPaint_Reference#Paint'>void</a> <a href='#SkCanvas_drawLine'>drawLine</a>(<a href='SkPoint_Reference#SkPoint'>SkPoint</a> <a href='SkPoint_Reference#SkPoint'>p0</a>, <a href='SkPoint_Reference#SkPoint'>SkPoint</a> <a href='SkPoint_Reference#SkPoint'>p1</a>, <a href='SkPoint_Reference#SkPoint'>const</a> <a href='SkPaint_Reference#SkPaint'>SkPaint</a>& <a href='SkPaint_Reference#Paint'>paint</a>);
- <a href='SkPaint_Reference#Paint'>void</a> <a href='#SkCanvas_drawRect'>drawRect</a>(<a href='#SkCanvas_drawRect'>const</a> <a href='SkRect_Reference#SkRect'>SkRect</a>& <a href='SkRect_Reference#Rect'>rect</a>, <a href='SkRect_Reference#Rect'>const</a> <a href='SkPaint_Reference#SkPaint'>SkPaint</a>& <a href='SkPaint_Reference#Paint'>paint</a>);
- <a href='SkPaint_Reference#Paint'>void</a> <a href='#SkCanvas_drawIRect'>drawIRect</a>(<a href='#SkCanvas_drawIRect'>const</a> <a href='SkIRect_Reference#SkIRect'>SkIRect</a>& <a href='SkRect_Reference#Rect'>rect</a>, <a href='SkRect_Reference#Rect'>const</a> <a href='SkPaint_Reference#SkPaint'>SkPaint</a>& <a href='SkPaint_Reference#Paint'>paint</a>);
- <a href='SkPaint_Reference#Paint'>void</a> <a href='#SkCanvas_drawRegion'>drawRegion</a>(<a href='#SkCanvas_drawRegion'>const</a> <a href='SkRegion_Reference#SkRegion'>SkRegion</a>& <a href='SkRegion_Reference#Region'>region</a>, <a href='SkRegion_Reference#Region'>const</a> <a href='SkPaint_Reference#SkPaint'>SkPaint</a>& <a href='SkPaint_Reference#Paint'>paint</a>);
- <a href='SkPaint_Reference#Paint'>void</a> <a href='#SkCanvas_drawOval'>drawOval</a>(<a href='#SkCanvas_drawOval'>const</a> <a href='SkRect_Reference#SkRect'>SkRect</a>& <a href='undocumented#Oval'>oval</a>, <a href='undocumented#Oval'>const</a> <a href='SkPaint_Reference#SkPaint'>SkPaint</a>& <a href='SkPaint_Reference#Paint'>paint</a>);
- <a href='SkPaint_Reference#Paint'>void</a> <a href='#SkCanvas_drawRRect'>drawRRect</a>(<a href='#SkCanvas_drawRRect'>const</a> <a href='SkRRect_Reference#SkRRect'>SkRRect</a>& <a href='SkRRect_Reference#SkRRect'>rrect</a>, <a href='SkRRect_Reference#SkRRect'>const</a> <a href='SkPaint_Reference#SkPaint'>SkPaint</a>& <a href='SkPaint_Reference#Paint'>paint</a>);
- <a href='SkPaint_Reference#Paint'>void</a> <a href='#SkCanvas_drawDRRect'>drawDRRect</a>(<a href='#SkCanvas_drawDRRect'>const</a> <a href='SkRRect_Reference#SkRRect'>SkRRect</a>& <a href='SkRRect_Reference#SkRRect'>outer</a>, <a href='SkRRect_Reference#SkRRect'>const</a> <a href='SkRRect_Reference#SkRRect'>SkRRect</a>& <a href='SkRRect_Reference#SkRRect'>inner</a>, <a href='SkRRect_Reference#SkRRect'>const</a> <a href='SkPaint_Reference#SkPaint'>SkPaint</a>& <a href='SkPaint_Reference#Paint'>paint</a>);
- <a href='SkPaint_Reference#Paint'>void</a> <a href='#SkCanvas_drawCircle'>drawCircle</a>(<a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>cx</a>, <a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>cy</a>, <a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>radius</a>, <a href='undocumented#SkScalar'>const</a> <a href='SkPaint_Reference#SkPaint'>SkPaint</a>& <a href='SkPaint_Reference#Paint'>paint</a>);
- <a href='SkPaint_Reference#Paint'>void</a> <a href='#SkCanvas_drawCircle'>drawCircle</a>(<a href='SkPoint_Reference#SkPoint'>SkPoint</a> <a href='SkPoint_Reference#SkPoint'>center</a>, <a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>radius</a>, <a href='undocumented#SkScalar'>const</a> <a href='SkPaint_Reference#SkPaint'>SkPaint</a>& <a href='SkPaint_Reference#Paint'>paint</a>);
- <a href='SkPaint_Reference#Paint'>void</a> <a href='#SkCanvas_drawArc'>drawArc</a>(<a href='#SkCanvas_drawArc'>const</a> <a href='SkRect_Reference#SkRect'>SkRect</a>& <a href='undocumented#Oval'>oval</a>, <a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>startAngle</a>, <a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>sweepAngle</a>,
- <a href='undocumented#SkScalar'>bool</a> <a href='undocumented#SkScalar'>useCenter</a>, <a href='undocumented#SkScalar'>const</a> <a href='SkPaint_Reference#SkPaint'>SkPaint</a>& <a href='SkPaint_Reference#Paint'>paint</a>);
- <a href='SkPaint_Reference#Paint'>void</a> <a href='#SkCanvas_drawRoundRect'>drawRoundRect</a>(<a href='#SkCanvas_drawRoundRect'>const</a> <a href='SkRect_Reference#SkRect'>SkRect</a>& <a href='SkRect_Reference#Rect'>rect</a>, <a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>rx</a>, <a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>ry</a>, <a href='undocumented#SkScalar'>const</a> <a href='SkPaint_Reference#SkPaint'>SkPaint</a>& <a href='SkPaint_Reference#Paint'>paint</a>);
- <a href='SkPaint_Reference#Paint'>void</a> <a href='#SkCanvas_drawPath'>drawPath</a>(<a href='#SkCanvas_drawPath'>const</a> <a href='SkPath_Reference#SkPath'>SkPath</a>& <a href='SkPath_Reference#Path'>path</a>, <a href='SkPath_Reference#Path'>const</a> <a href='SkPaint_Reference#SkPaint'>SkPaint</a>& <a href='SkPaint_Reference#Paint'>paint</a>);
- <a href='SkPaint_Reference#Paint'>void</a> <a href='#SkCanvas_drawImage'>drawImage</a>(<a href='#SkCanvas_drawImage'>const</a> <a href='SkImage_Reference#SkImage'>SkImage</a>* <a href='SkImage_Reference#Image'>image</a>, <a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>left</a>, <a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>top</a>,
- <a href='undocumented#SkScalar'>const</a> <a href='SkPaint_Reference#SkPaint'>SkPaint</a>* <a href='SkPaint_Reference#Paint'>paint</a> = <a href='SkPaint_Reference#Paint'>nullptr</a>);
- <a href='SkPaint_Reference#Paint'>void</a> <a href='#SkCanvas_drawImage'>drawImage</a>(<a href='#SkCanvas_drawImage'>const</a> <a href='undocumented#sk_sp'>sk_sp</a><<a href='SkImage_Reference#SkImage'>SkImage</a>>& <a href='SkImage_Reference#Image'>image</a>, <a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>left</a>, <a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>top</a>,
- <a href='undocumented#SkScalar'>const</a> <a href='SkPaint_Reference#SkPaint'>SkPaint</a>* <a href='SkPaint_Reference#Paint'>paint</a> = <a href='SkPaint_Reference#Paint'>nullptr</a>);
+ void <a href='#SkCanvas_drawPoints'>drawPoints</a>(<a href='#SkCanvas_PointMode'>PointMode</a> mode, size_t count, const <a href='SkPoint_Reference#SkPoint'>SkPoint</a> pts[], const <a href='SkPaint_Reference#SkPaint'>SkPaint</a>& <a href='SkPaint_Reference#Paint'>paint</a>);
+ void <a href='#SkCanvas_drawPoint'>drawPoint</a>(<a href='undocumented#SkScalar'>SkScalar</a> x, <a href='undocumented#SkScalar'>SkScalar</a> y, const <a href='SkPaint_Reference#SkPaint'>SkPaint</a>& <a href='SkPaint_Reference#Paint'>paint</a>);
+ void <a href='#SkCanvas_drawPoint'>drawPoint</a>(<a href='SkPoint_Reference#SkPoint'>SkPoint</a> p, const <a href='SkPaint_Reference#SkPaint'>SkPaint</a>& <a href='SkPaint_Reference#Paint'>paint</a>);
+ void <a href='#SkCanvas_drawLine'>drawLine</a>(<a href='undocumented#SkScalar'>SkScalar</a> x0, <a href='undocumented#SkScalar'>SkScalar</a> y0, <a href='undocumented#SkScalar'>SkScalar</a> x1, <a href='undocumented#SkScalar'>SkScalar</a> y1, const <a href='SkPaint_Reference#SkPaint'>SkPaint</a>& <a href='SkPaint_Reference#Paint'>paint</a>);
+ void <a href='#SkCanvas_drawLine'>drawLine</a>(<a href='SkPoint_Reference#SkPoint'>SkPoint</a> p0, <a href='SkPoint_Reference#SkPoint'>SkPoint</a> p1, const <a href='SkPaint_Reference#SkPaint'>SkPaint</a>& <a href='SkPaint_Reference#Paint'>paint</a>);
+ void <a href='#SkCanvas_drawRect'>drawRect</a>(const <a href='SkRect_Reference#SkRect'>SkRect</a>& <a href='SkRect_Reference#Rect'>rect</a>, const <a href='SkPaint_Reference#SkPaint'>SkPaint</a>& <a href='SkPaint_Reference#Paint'>paint</a>);
+ void <a href='#SkCanvas_drawIRect'>drawIRect</a>(const <a href='SkIRect_Reference#SkIRect'>SkIRect</a>& <a href='SkRect_Reference#Rect'>rect</a>, const <a href='SkPaint_Reference#SkPaint'>SkPaint</a>& <a href='SkPaint_Reference#Paint'>paint</a>);
+ void <a href='#SkCanvas_drawRegion'>drawRegion</a>(const <a href='SkRegion_Reference#SkRegion'>SkRegion</a>& <a href='SkRegion_Reference#Region'>region</a>, const <a href='SkPaint_Reference#SkPaint'>SkPaint</a>& <a href='SkPaint_Reference#Paint'>paint</a>);
+ void <a href='#SkCanvas_drawOval'>drawOval</a>(const <a href='SkRect_Reference#SkRect'>SkRect</a>& <a href='undocumented#Oval'>oval</a>, const <a href='SkPaint_Reference#SkPaint'>SkPaint</a>& <a href='SkPaint_Reference#Paint'>paint</a>);
+ void <a href='#SkCanvas_drawRRect'>drawRRect</a>(const <a href='SkRRect_Reference#SkRRect'>SkRRect</a>& rrect, const <a href='SkPaint_Reference#SkPaint'>SkPaint</a>& <a href='SkPaint_Reference#Paint'>paint</a>);
+ void <a href='#SkCanvas_drawDRRect'>drawDRRect</a>(const <a href='SkRRect_Reference#SkRRect'>SkRRect</a>& outer, const <a href='SkRRect_Reference#SkRRect'>SkRRect</a>& inner, const <a href='SkPaint_Reference#SkPaint'>SkPaint</a>& <a href='SkPaint_Reference#Paint'>paint</a>);
+ void <a href='#SkCanvas_drawCircle'>drawCircle</a>(<a href='undocumented#SkScalar'>SkScalar</a> cx, <a href='undocumented#SkScalar'>SkScalar</a> cy, <a href='undocumented#SkScalar'>SkScalar</a> radius, const <a href='SkPaint_Reference#SkPaint'>SkPaint</a>& <a href='SkPaint_Reference#Paint'>paint</a>);
+ void <a href='#SkCanvas_drawCircle'>drawCircle</a>(<a href='SkPoint_Reference#SkPoint'>SkPoint</a> center, <a href='undocumented#SkScalar'>SkScalar</a> radius, const <a href='SkPaint_Reference#SkPaint'>SkPaint</a>& <a href='SkPaint_Reference#Paint'>paint</a>);
+ void <a href='#SkCanvas_drawArc'>drawArc</a>(const <a href='SkRect_Reference#SkRect'>SkRect</a>& <a href='undocumented#Oval'>oval</a>, <a href='undocumented#SkScalar'>SkScalar</a> startAngle, <a href='undocumented#SkScalar'>SkScalar</a> sweepAngle,
+ bool useCenter, const <a href='SkPaint_Reference#SkPaint'>SkPaint</a>& <a href='SkPaint_Reference#Paint'>paint</a>);
+ void <a href='#SkCanvas_drawRoundRect'>drawRoundRect</a>(const <a href='SkRect_Reference#SkRect'>SkRect</a>& <a href='SkRect_Reference#Rect'>rect</a>, <a href='undocumented#SkScalar'>SkScalar</a> rx, <a href='undocumented#SkScalar'>SkScalar</a> ry, const <a href='SkPaint_Reference#SkPaint'>SkPaint</a>& <a href='SkPaint_Reference#Paint'>paint</a>);
+ void <a href='#SkCanvas_drawPath'>drawPath</a>(const <a href='SkPath_Reference#SkPath'>SkPath</a>& <a href='SkPath_Reference#Path'>path</a>, const <a href='SkPaint_Reference#SkPaint'>SkPaint</a>& <a href='SkPaint_Reference#Paint'>paint</a>);
+ void <a href='#SkCanvas_drawImage'>drawImage</a>(const <a href='SkImage_Reference#SkImage'>SkImage</a>* <a href='SkImage_Reference#Image'>image</a>, <a href='undocumented#SkScalar'>SkScalar</a> left, <a href='undocumented#SkScalar'>SkScalar</a> top,
+ const <a href='SkPaint_Reference#SkPaint'>SkPaint</a>* <a href='SkPaint_Reference#Paint'>paint</a> = nullptr);
+ void <a href='#SkCanvas_drawImage'>drawImage</a>(const <a href='undocumented#sk_sp'>sk_sp</a><<a href='SkImage_Reference#SkImage'>SkImage</a>>& <a href='SkImage_Reference#Image'>image</a>, <a href='undocumented#SkScalar'>SkScalar</a> left, <a href='undocumented#SkScalar'>SkScalar</a> top,
+ const <a href='SkPaint_Reference#SkPaint'>SkPaint</a>* <a href='SkPaint_Reference#Paint'>paint</a> = nullptr);
- <a href='SkPaint_Reference#Paint'>enum</a> <a href='#SkCanvas_SrcRectConstraint'>SrcRectConstraint</a> {
+ enum <a href='#SkCanvas_SrcRectConstraint'>SrcRectConstraint</a> {
<a href='#SkCanvas_kStrict_SrcRectConstraint'>kStrict_SrcRectConstraint</a>,
<a href='#SkCanvas_kFast_SrcRectConstraint'>kFast_SrcRectConstraint</a>,
};
- <a href='#SkCanvas_kFast_SrcRectConstraint'>void</a> <a href='#SkCanvas_drawImageRect'>drawImageRect</a>(<a href='#SkCanvas_drawImageRect'>const</a> <a href='SkImage_Reference#SkImage'>SkImage</a>* <a href='SkImage_Reference#Image'>image</a>, <a href='SkImage_Reference#Image'>const</a> <a href='SkRect_Reference#SkRect'>SkRect</a>& <a href='SkRect_Reference#SkRect'>src</a>, <a href='SkRect_Reference#SkRect'>const</a> <a href='SkRect_Reference#SkRect'>SkRect</a>& <a href='SkRect_Reference#SkRect'>dst</a>,
- <a href='SkRect_Reference#SkRect'>const</a> <a href='SkPaint_Reference#SkPaint'>SkPaint</a>* <a href='SkPaint_Reference#Paint'>paint</a>,
- <a href='#SkCanvas_SrcRectConstraint'>SrcRectConstraint</a> <a href='#SkCanvas_SrcRectConstraint'>constraint</a> = <a href='#SkCanvas_kStrict_SrcRectConstraint'>kStrict_SrcRectConstraint</a>);
- <a href='#SkCanvas_kStrict_SrcRectConstraint'>void</a> <a href='#SkCanvas_drawImageRect'>drawImageRect</a>(<a href='#SkCanvas_drawImageRect'>const</a> <a href='SkImage_Reference#SkImage'>SkImage</a>* <a href='SkImage_Reference#Image'>image</a>, <a href='SkImage_Reference#Image'>const</a> <a href='SkIRect_Reference#SkIRect'>SkIRect</a>& <a href='SkIRect_Reference#SkIRect'>isrc</a>, <a href='SkIRect_Reference#SkIRect'>const</a> <a href='SkRect_Reference#SkRect'>SkRect</a>& <a href='SkRect_Reference#SkRect'>dst</a>,
- <a href='SkRect_Reference#SkRect'>const</a> <a href='SkPaint_Reference#SkPaint'>SkPaint</a>* <a href='SkPaint_Reference#Paint'>paint</a>,
- <a href='#SkCanvas_SrcRectConstraint'>SrcRectConstraint</a> <a href='#SkCanvas_SrcRectConstraint'>constraint</a> = <a href='#SkCanvas_kStrict_SrcRectConstraint'>kStrict_SrcRectConstraint</a>);
- <a href='#SkCanvas_kStrict_SrcRectConstraint'>void</a> <a href='#SkCanvas_drawImageRect'>drawImageRect</a>(<a href='#SkCanvas_drawImageRect'>const</a> <a href='SkImage_Reference#SkImage'>SkImage</a>* <a href='SkImage_Reference#Image'>image</a>, <a href='SkImage_Reference#Image'>const</a> <a href='SkRect_Reference#SkRect'>SkRect</a>& <a href='SkRect_Reference#SkRect'>dst</a>, <a href='SkRect_Reference#SkRect'>const</a> <a href='SkPaint_Reference#SkPaint'>SkPaint</a>* <a href='SkPaint_Reference#Paint'>paint</a>);
- <a href='SkPaint_Reference#Paint'>void</a> <a href='#SkCanvas_drawImageRect'>drawImageRect</a>(<a href='#SkCanvas_drawImageRect'>const</a> <a href='undocumented#sk_sp'>sk_sp</a><<a href='SkImage_Reference#SkImage'>SkImage</a>>& <a href='SkImage_Reference#Image'>image</a>, <a href='SkImage_Reference#Image'>const</a> <a href='SkRect_Reference#SkRect'>SkRect</a>& <a href='SkRect_Reference#SkRect'>src</a>, <a href='SkRect_Reference#SkRect'>const</a> <a href='SkRect_Reference#SkRect'>SkRect</a>& <a href='SkRect_Reference#SkRect'>dst</a>,
- <a href='SkRect_Reference#SkRect'>const</a> <a href='SkPaint_Reference#SkPaint'>SkPaint</a>* <a href='SkPaint_Reference#Paint'>paint</a>,
- <a href='#SkCanvas_SrcRectConstraint'>SrcRectConstraint</a> <a href='#SkCanvas_SrcRectConstraint'>constraint</a> = <a href='#SkCanvas_kStrict_SrcRectConstraint'>kStrict_SrcRectConstraint</a>);
- <a href='#SkCanvas_kStrict_SrcRectConstraint'>void</a> <a href='#SkCanvas_drawImageRect'>drawImageRect</a>(<a href='#SkCanvas_drawImageRect'>const</a> <a href='undocumented#sk_sp'>sk_sp</a><<a href='SkImage_Reference#SkImage'>SkImage</a>>& <a href='SkImage_Reference#Image'>image</a>, <a href='SkImage_Reference#Image'>const</a> <a href='SkIRect_Reference#SkIRect'>SkIRect</a>& <a href='SkIRect_Reference#SkIRect'>isrc</a>, <a href='SkIRect_Reference#SkIRect'>const</a> <a href='SkRect_Reference#SkRect'>SkRect</a>& <a href='SkRect_Reference#SkRect'>dst</a>,
- <a href='SkRect_Reference#SkRect'>const</a> <a href='SkPaint_Reference#SkPaint'>SkPaint</a>* <a href='SkPaint_Reference#Paint'>paint</a>,
- <a href='#SkCanvas_SrcRectConstraint'>SrcRectConstraint</a> <a href='#SkCanvas_SrcRectConstraint'>constraint</a> = <a href='#SkCanvas_kStrict_SrcRectConstraint'>kStrict_SrcRectConstraint</a>);
- <a href='#SkCanvas_kStrict_SrcRectConstraint'>void</a> <a href='#SkCanvas_drawImageRect'>drawImageRect</a>(<a href='#SkCanvas_drawImageRect'>const</a> <a href='undocumented#sk_sp'>sk_sp</a><<a href='SkImage_Reference#SkImage'>SkImage</a>>& <a href='SkImage_Reference#Image'>image</a>, <a href='SkImage_Reference#Image'>const</a> <a href='SkRect_Reference#SkRect'>SkRect</a>& <a href='SkRect_Reference#SkRect'>dst</a>, <a href='SkRect_Reference#SkRect'>const</a> <a href='SkPaint_Reference#SkPaint'>SkPaint</a>* <a href='SkPaint_Reference#Paint'>paint</a>);
- <a href='SkPaint_Reference#Paint'>void</a> <a href='#SkCanvas_drawImageNine'>drawImageNine</a>(<a href='#SkCanvas_drawImageNine'>const</a> <a href='SkImage_Reference#SkImage'>SkImage</a>* <a href='SkImage_Reference#Image'>image</a>, <a href='SkImage_Reference#Image'>const</a> <a href='SkIRect_Reference#SkIRect'>SkIRect</a>& <a href='SkIRect_Reference#SkIRect'>center</a>, <a href='SkIRect_Reference#SkIRect'>const</a> <a href='SkRect_Reference#SkRect'>SkRect</a>& <a href='SkRect_Reference#SkRect'>dst</a>,
- <a href='SkRect_Reference#SkRect'>const</a> <a href='SkPaint_Reference#SkPaint'>SkPaint</a>* <a href='SkPaint_Reference#Paint'>paint</a> = <a href='SkPaint_Reference#Paint'>nullptr</a>);
- <a href='SkPaint_Reference#Paint'>void</a> <a href='#SkCanvas_drawImageNine'>drawImageNine</a>(<a href='#SkCanvas_drawImageNine'>const</a> <a href='undocumented#sk_sp'>sk_sp</a><<a href='SkImage_Reference#SkImage'>SkImage</a>>& <a href='SkImage_Reference#Image'>image</a>, <a href='SkImage_Reference#Image'>const</a> <a href='SkIRect_Reference#SkIRect'>SkIRect</a>& <a href='SkIRect_Reference#SkIRect'>center</a>, <a href='SkIRect_Reference#SkIRect'>const</a> <a href='SkRect_Reference#SkRect'>SkRect</a>& <a href='SkRect_Reference#SkRect'>dst</a>,
- <a href='SkRect_Reference#SkRect'>const</a> <a href='SkPaint_Reference#SkPaint'>SkPaint</a>* <a href='SkPaint_Reference#Paint'>paint</a> = <a href='SkPaint_Reference#Paint'>nullptr</a>);
- <a href='SkPaint_Reference#Paint'>void</a> <a href='#SkCanvas_drawBitmap'>drawBitmap</a>(<a href='#SkCanvas_drawBitmap'>const</a> <a href='SkBitmap_Reference#SkBitmap'>SkBitmap</a>& <a href='SkBitmap_Reference#Bitmap'>bitmap</a>, <a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>left</a>, <a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>top</a>,
- <a href='undocumented#SkScalar'>const</a> <a href='SkPaint_Reference#SkPaint'>SkPaint</a>* <a href='SkPaint_Reference#Paint'>paint</a> = <a href='SkPaint_Reference#Paint'>nullptr</a>);
- <a href='SkPaint_Reference#Paint'>void</a> <a href='#SkCanvas_drawBitmapRect'>drawBitmapRect</a>(<a href='#SkCanvas_drawBitmapRect'>const</a> <a href='SkBitmap_Reference#SkBitmap'>SkBitmap</a>& <a href='SkBitmap_Reference#Bitmap'>bitmap</a>, <a href='SkBitmap_Reference#Bitmap'>const</a> <a href='SkRect_Reference#SkRect'>SkRect</a>& <a href='SkRect_Reference#SkRect'>src</a>, <a href='SkRect_Reference#SkRect'>const</a> <a href='SkRect_Reference#SkRect'>SkRect</a>& <a href='SkRect_Reference#SkRect'>dst</a>,
- <a href='SkRect_Reference#SkRect'>const</a> <a href='SkPaint_Reference#SkPaint'>SkPaint</a>* <a href='SkPaint_Reference#Paint'>paint</a>,
- <a href='#SkCanvas_SrcRectConstraint'>SrcRectConstraint</a> <a href='#SkCanvas_SrcRectConstraint'>constraint</a> = <a href='#SkCanvas_kStrict_SrcRectConstraint'>kStrict_SrcRectConstraint</a>);
- <a href='#SkCanvas_kStrict_SrcRectConstraint'>void</a> <a href='#SkCanvas_drawBitmapRect'>drawBitmapRect</a>(<a href='#SkCanvas_drawBitmapRect'>const</a> <a href='SkBitmap_Reference#SkBitmap'>SkBitmap</a>& <a href='SkBitmap_Reference#Bitmap'>bitmap</a>, <a href='SkBitmap_Reference#Bitmap'>const</a> <a href='SkIRect_Reference#SkIRect'>SkIRect</a>& <a href='SkIRect_Reference#SkIRect'>isrc</a>, <a href='SkIRect_Reference#SkIRect'>const</a> <a href='SkRect_Reference#SkRect'>SkRect</a>& <a href='SkRect_Reference#SkRect'>dst</a>,
- <a href='SkRect_Reference#SkRect'>const</a> <a href='SkPaint_Reference#SkPaint'>SkPaint</a>* <a href='SkPaint_Reference#Paint'>paint</a>,
- <a href='#SkCanvas_SrcRectConstraint'>SrcRectConstraint</a> <a href='#SkCanvas_SrcRectConstraint'>constraint</a> = <a href='#SkCanvas_kStrict_SrcRectConstraint'>kStrict_SrcRectConstraint</a>);
- <a href='#SkCanvas_kStrict_SrcRectConstraint'>void</a> <a href='#SkCanvas_drawBitmapRect'>drawBitmapRect</a>(<a href='#SkCanvas_drawBitmapRect'>const</a> <a href='SkBitmap_Reference#SkBitmap'>SkBitmap</a>& <a href='SkBitmap_Reference#Bitmap'>bitmap</a>, <a href='SkBitmap_Reference#Bitmap'>const</a> <a href='SkRect_Reference#SkRect'>SkRect</a>& <a href='SkRect_Reference#SkRect'>dst</a>, <a href='SkRect_Reference#SkRect'>const</a> <a href='SkPaint_Reference#SkPaint'>SkPaint</a>* <a href='SkPaint_Reference#Paint'>paint</a>,
- <a href='#SkCanvas_SrcRectConstraint'>SrcRectConstraint</a> <a href='#SkCanvas_SrcRectConstraint'>constraint</a> = <a href='#SkCanvas_kStrict_SrcRectConstraint'>kStrict_SrcRectConstraint</a>);
- <a href='#SkCanvas_kStrict_SrcRectConstraint'>void</a> <a href='#SkCanvas_drawBitmapNine'>drawBitmapNine</a>(<a href='#SkCanvas_drawBitmapNine'>const</a> <a href='SkBitmap_Reference#SkBitmap'>SkBitmap</a>& <a href='SkBitmap_Reference#Bitmap'>bitmap</a>, <a href='SkBitmap_Reference#Bitmap'>const</a> <a href='SkIRect_Reference#SkIRect'>SkIRect</a>& <a href='SkIRect_Reference#SkIRect'>center</a>, <a href='SkIRect_Reference#SkIRect'>const</a> <a href='SkRect_Reference#SkRect'>SkRect</a>& <a href='SkRect_Reference#SkRect'>dst</a>,
- <a href='SkRect_Reference#SkRect'>const</a> <a href='SkPaint_Reference#SkPaint'>SkPaint</a>* <a href='SkPaint_Reference#Paint'>paint</a> = <a href='SkPaint_Reference#Paint'>nullptr</a>);
+ void <a href='#SkCanvas_drawImageRect'>drawImageRect</a>(const <a href='SkImage_Reference#SkImage'>SkImage</a>* <a href='SkImage_Reference#Image'>image</a>, const <a href='SkRect_Reference#SkRect'>SkRect</a>& src, const <a href='SkRect_Reference#SkRect'>SkRect</a>& dst,
+ const <a href='SkPaint_Reference#SkPaint'>SkPaint</a>* <a href='SkPaint_Reference#Paint'>paint</a>,
+ <a href='#SkCanvas_SrcRectConstraint'>SrcRectConstraint</a> constraint = <a href='#SkCanvas_kStrict_SrcRectConstraint'>kStrict_SrcRectConstraint</a>);
+ void <a href='#SkCanvas_drawImageRect'>drawImageRect</a>(const <a href='SkImage_Reference#SkImage'>SkImage</a>* <a href='SkImage_Reference#Image'>image</a>, const <a href='SkIRect_Reference#SkIRect'>SkIRect</a>& isrc, const <a href='SkRect_Reference#SkRect'>SkRect</a>& dst,
+ const <a href='SkPaint_Reference#SkPaint'>SkPaint</a>* <a href='SkPaint_Reference#Paint'>paint</a>,
+ <a href='#SkCanvas_SrcRectConstraint'>SrcRectConstraint</a> constraint = <a href='#SkCanvas_kStrict_SrcRectConstraint'>kStrict_SrcRectConstraint</a>);
+ void <a href='#SkCanvas_drawImageRect'>drawImageRect</a>(const <a href='SkImage_Reference#SkImage'>SkImage</a>* <a href='SkImage_Reference#Image'>image</a>, const <a href='SkRect_Reference#SkRect'>SkRect</a>& dst, const <a href='SkPaint_Reference#SkPaint'>SkPaint</a>* <a href='SkPaint_Reference#Paint'>paint</a>);
+ void <a href='#SkCanvas_drawImageRect'>drawImageRect</a>(const <a href='undocumented#sk_sp'>sk_sp</a><<a href='SkImage_Reference#SkImage'>SkImage</a>>& <a href='SkImage_Reference#Image'>image</a>, const <a href='SkRect_Reference#SkRect'>SkRect</a>& src, const <a href='SkRect_Reference#SkRect'>SkRect</a>& dst,
+ const <a href='SkPaint_Reference#SkPaint'>SkPaint</a>* <a href='SkPaint_Reference#Paint'>paint</a>,
+ <a href='#SkCanvas_SrcRectConstraint'>SrcRectConstraint</a> constraint = <a href='#SkCanvas_kStrict_SrcRectConstraint'>kStrict_SrcRectConstraint</a>);
+ void <a href='#SkCanvas_drawImageRect'>drawImageRect</a>(const <a href='undocumented#sk_sp'>sk_sp</a><<a href='SkImage_Reference#SkImage'>SkImage</a>>& <a href='SkImage_Reference#Image'>image</a>, const <a href='SkIRect_Reference#SkIRect'>SkIRect</a>& isrc, const <a href='SkRect_Reference#SkRect'>SkRect</a>& dst,
+ const <a href='SkPaint_Reference#SkPaint'>SkPaint</a>* <a href='SkPaint_Reference#Paint'>paint</a>,
+ <a href='#SkCanvas_SrcRectConstraint'>SrcRectConstraint</a> constraint = <a href='#SkCanvas_kStrict_SrcRectConstraint'>kStrict_SrcRectConstraint</a>);
+ void <a href='#SkCanvas_drawImageRect'>drawImageRect</a>(const <a href='undocumented#sk_sp'>sk_sp</a><<a href='SkImage_Reference#SkImage'>SkImage</a>>& <a href='SkImage_Reference#Image'>image</a>, const <a href='SkRect_Reference#SkRect'>SkRect</a>& dst, const <a href='SkPaint_Reference#SkPaint'>SkPaint</a>* <a href='SkPaint_Reference#Paint'>paint</a>);
+ void <a href='#SkCanvas_drawImageNine'>drawImageNine</a>(const <a href='SkImage_Reference#SkImage'>SkImage</a>* <a href='SkImage_Reference#Image'>image</a>, const <a href='SkIRect_Reference#SkIRect'>SkIRect</a>& center, const <a href='SkRect_Reference#SkRect'>SkRect</a>& dst,
+ const <a href='SkPaint_Reference#SkPaint'>SkPaint</a>* <a href='SkPaint_Reference#Paint'>paint</a> = nullptr);
+ void <a href='#SkCanvas_drawImageNine'>drawImageNine</a>(const <a href='undocumented#sk_sp'>sk_sp</a><<a href='SkImage_Reference#SkImage'>SkImage</a>>& <a href='SkImage_Reference#Image'>image</a>, const <a href='SkIRect_Reference#SkIRect'>SkIRect</a>& center, const <a href='SkRect_Reference#SkRect'>SkRect</a>& dst,
+ const <a href='SkPaint_Reference#SkPaint'>SkPaint</a>* <a href='SkPaint_Reference#Paint'>paint</a> = nullptr);
+ void <a href='#SkCanvas_drawBitmap'>drawBitmap</a>(const <a href='SkBitmap_Reference#SkBitmap'>SkBitmap</a>& <a href='SkBitmap_Reference#Bitmap'>bitmap</a>, <a href='undocumented#SkScalar'>SkScalar</a> left, <a href='undocumented#SkScalar'>SkScalar</a> top,
+ const <a href='SkPaint_Reference#SkPaint'>SkPaint</a>* <a href='SkPaint_Reference#Paint'>paint</a> = nullptr);
+ void <a href='#SkCanvas_drawBitmapRect'>drawBitmapRect</a>(const <a href='SkBitmap_Reference#SkBitmap'>SkBitmap</a>& <a href='SkBitmap_Reference#Bitmap'>bitmap</a>, const <a href='SkRect_Reference#SkRect'>SkRect</a>& src, const <a href='SkRect_Reference#SkRect'>SkRect</a>& dst,
+ const <a href='SkPaint_Reference#SkPaint'>SkPaint</a>* <a href='SkPaint_Reference#Paint'>paint</a>,
+ <a href='#SkCanvas_SrcRectConstraint'>SrcRectConstraint</a> constraint = <a href='#SkCanvas_kStrict_SrcRectConstraint'>kStrict_SrcRectConstraint</a>);
+ void <a href='#SkCanvas_drawBitmapRect'>drawBitmapRect</a>(const <a href='SkBitmap_Reference#SkBitmap'>SkBitmap</a>& <a href='SkBitmap_Reference#Bitmap'>bitmap</a>, const <a href='SkIRect_Reference#SkIRect'>SkIRect</a>& isrc, const <a href='SkRect_Reference#SkRect'>SkRect</a>& dst,
+ const <a href='SkPaint_Reference#SkPaint'>SkPaint</a>* <a href='SkPaint_Reference#Paint'>paint</a>,
+ <a href='#SkCanvas_SrcRectConstraint'>SrcRectConstraint</a> constraint = <a href='#SkCanvas_kStrict_SrcRectConstraint'>kStrict_SrcRectConstraint</a>);
+ void <a href='#SkCanvas_drawBitmapRect'>drawBitmapRect</a>(const <a href='SkBitmap_Reference#SkBitmap'>SkBitmap</a>& <a href='SkBitmap_Reference#Bitmap'>bitmap</a>, const <a href='SkRect_Reference#SkRect'>SkRect</a>& dst, const <a href='SkPaint_Reference#SkPaint'>SkPaint</a>* <a href='SkPaint_Reference#Paint'>paint</a>,
+ <a href='#SkCanvas_SrcRectConstraint'>SrcRectConstraint</a> constraint = <a href='#SkCanvas_kStrict_SrcRectConstraint'>kStrict_SrcRectConstraint</a>);
+ void <a href='#SkCanvas_drawBitmapNine'>drawBitmapNine</a>(const <a href='SkBitmap_Reference#SkBitmap'>SkBitmap</a>& <a href='SkBitmap_Reference#Bitmap'>bitmap</a>, const <a href='SkIRect_Reference#SkIRect'>SkIRect</a>& center, const <a href='SkRect_Reference#SkRect'>SkRect</a>& dst,
+ const <a href='SkPaint_Reference#SkPaint'>SkPaint</a>* <a href='SkPaint_Reference#Paint'>paint</a> = nullptr);
- <a href='SkPaint_Reference#Paint'>struct</a> <a href='#SkCanvas_Lattice'>Lattice</a> {
+ struct <a href='#SkCanvas_Lattice'>Lattice</a> {
- <a href='#SkCanvas_Lattice'>enum</a> <a href='#SkCanvas_Lattice'>RectType</a> : <a href='#SkCanvas_Lattice'>uint8_t</a> {
- <a href='#SkCanvas_Lattice'>kDefault</a> = 0,
- <a href='#SkCanvas_Lattice'>kTransparent</a>,
- <a href='#SkCanvas_Lattice'>kFixedColor</a>,
+ enum RectType : uint8_t {
+ kDefault = 0,
+ kTransparent,
+ kFixedColor,
};
- <a href='#SkCanvas_Lattice'>const</a> <a href='#SkCanvas_Lattice'>int</a>* <a href='#SkCanvas_Lattice'>fXDivs</a>;
- <a href='#SkCanvas_Lattice'>const</a> <a href='#SkCanvas_Lattice'>int</a>* <a href='#SkCanvas_Lattice'>fYDivs</a>;
- <a href='#SkCanvas_Lattice'>const</a> <a href='#SkCanvas_Lattice'>RectType</a>* <a href='#SkCanvas_Lattice'>fRectTypes</a>;
- <a href='#SkCanvas_Lattice'>int</a> <a href='#SkCanvas_Lattice'>fXCount</a>;
- <a href='#SkCanvas_Lattice'>int</a> <a href='#SkCanvas_Lattice'>fYCount</a>;
- <a href='#SkCanvas_Lattice'>const</a> <a href='SkIRect_Reference#SkIRect'>SkIRect</a>* <a href='SkIRect_Reference#SkIRect'>fBounds</a>;
- <a href='SkIRect_Reference#SkIRect'>const</a> <a href='SkColor_Reference#SkColor'>SkColor</a>* <a href='SkColor_Reference#SkColor'>fColors</a>;
+ const int* fXDivs;
+ const int* fYDivs;
+ const RectType* fRectTypes;
+ int fXCount;
+ int fYCount;
+ const <a href='SkIRect_Reference#SkIRect'>SkIRect</a>* fBounds;
+ const <a href='SkColor_Reference#SkColor'>SkColor</a>* fColors;
};
- <a href='SkColor_Reference#SkColor'>void</a> <a href='#SkCanvas_drawBitmapLattice'>drawBitmapLattice</a>(<a href='#SkCanvas_drawBitmapLattice'>const</a> <a href='SkBitmap_Reference#SkBitmap'>SkBitmap</a>& <a href='SkBitmap_Reference#Bitmap'>bitmap</a>, <a href='SkBitmap_Reference#Bitmap'>const</a> <a href='#SkCanvas_Lattice'>Lattice</a>& <a href='#SkCanvas_Lattice'>lattice</a>, <a href='#SkCanvas_Lattice'>const</a> <a href='SkRect_Reference#SkRect'>SkRect</a>& <a href='SkRect_Reference#SkRect'>dst</a>,
- <a href='SkRect_Reference#SkRect'>const</a> <a href='SkPaint_Reference#SkPaint'>SkPaint</a>* <a href='SkPaint_Reference#Paint'>paint</a> = <a href='SkPaint_Reference#Paint'>nullptr</a>);
- <a href='SkPaint_Reference#Paint'>void</a> <a href='#SkCanvas_drawImageLattice'>drawImageLattice</a>(<a href='#SkCanvas_drawImageLattice'>const</a> <a href='SkImage_Reference#SkImage'>SkImage</a>* <a href='SkImage_Reference#Image'>image</a>, <a href='SkImage_Reference#Image'>const</a> <a href='#SkCanvas_Lattice'>Lattice</a>& <a href='#SkCanvas_Lattice'>lattice</a>, <a href='#SkCanvas_Lattice'>const</a> <a href='SkRect_Reference#SkRect'>SkRect</a>& <a href='SkRect_Reference#SkRect'>dst</a>,
- <a href='SkRect_Reference#SkRect'>const</a> <a href='SkPaint_Reference#SkPaint'>SkPaint</a>* <a href='SkPaint_Reference#Paint'>paint</a> = <a href='SkPaint_Reference#Paint'>nullptr</a>);
+ void <a href='#SkCanvas_drawBitmapLattice'>drawBitmapLattice</a>(const <a href='SkBitmap_Reference#SkBitmap'>SkBitmap</a>& <a href='SkBitmap_Reference#Bitmap'>bitmap</a>, const <a href='#SkCanvas_Lattice'>Lattice</a>& lattice, const <a href='SkRect_Reference#SkRect'>SkRect</a>& dst,
+ const <a href='SkPaint_Reference#SkPaint'>SkPaint</a>* <a href='SkPaint_Reference#Paint'>paint</a> = nullptr);
+ void <a href='#SkCanvas_drawImageLattice'>drawImageLattice</a>(const <a href='SkImage_Reference#SkImage'>SkImage</a>* <a href='SkImage_Reference#Image'>image</a>, const <a href='#SkCanvas_Lattice'>Lattice</a>& lattice, const <a href='SkRect_Reference#SkRect'>SkRect</a>& dst,
+ const <a href='SkPaint_Reference#SkPaint'>SkPaint</a>* <a href='SkPaint_Reference#Paint'>paint</a> = nullptr);
- <a href='SkPaint_Reference#Paint'>enum</a> <a href='#SkCanvas_QuadAAFlags'>QuadAAFlags</a> : <a href='#SkCanvas_QuadAAFlags'>unsigned</a> {
- <a href='#SkCanvas_kLeft_QuadAAFlag'>kLeft_QuadAAFlag</a> = 0<a href='#SkCanvas_kLeft_QuadAAFlag'>b0001</a>,
- <a href='#SkCanvas_kTop_QuadAAFlag'>kTop_QuadAAFlag</a> = 0<a href='#SkCanvas_kTop_QuadAAFlag'>b0010</a>,
- <a href='#SkCanvas_kRight_QuadAAFlag'>kRight_QuadAAFlag</a> = 0<a href='#SkCanvas_kRight_QuadAAFlag'>b0100</a>,
- <a href='#SkCanvas_kBottom_QuadAAFlag'>kBottom_QuadAAFlag</a> = 0<a href='#SkCanvas_kBottom_QuadAAFlag'>b1000</a>,
- <a href='#SkCanvas_kNone_QuadAAFlags'>kNone_QuadAAFlags</a> = 0<a href='#SkCanvas_kNone_QuadAAFlags'>b0000</a>,
- <a href='#SkCanvas_kAll_QuadAAFlags'>kAll_QuadAAFlags</a> = 0<a href='#SkCanvas_kAll_QuadAAFlags'>b1111</a>,
+ enum <a href='#SkCanvas_QuadAAFlags'>QuadAAFlags</a> : unsigned {
+ <a href='#SkCanvas_kLeft_QuadAAFlag'>kLeft_QuadAAFlag</a> = 0b0001,
+ <a href='#SkCanvas_kTop_QuadAAFlag'>kTop_QuadAAFlag</a> = 0b0010,
+ <a href='#SkCanvas_kRight_QuadAAFlag'>kRight_QuadAAFlag</a> = 0b0100,
+ <a href='#SkCanvas_kBottom_QuadAAFlag'>kBottom_QuadAAFlag</a> = 0b1000,
+ <a href='#SkCanvas_kNone_QuadAAFlags'>kNone_QuadAAFlags</a> = 0b0000,
+ <a href='#SkCanvas_kAll_QuadAAFlags'>kAll_QuadAAFlags</a> = 0b1111,
};
- <a href='#SkCanvas_kAll_QuadAAFlags'>struct</a> <a href='#SkCanvas_ImageSetEntry'>ImageSetEntry</a> {
- <a href='undocumented#sk_sp'>sk_sp</a><<a href='undocumented#sk_sp'>const</a> <a href='SkImage_Reference#SkImage'>SkImage</a>> <a href='SkImage_Reference#SkImage'>fImage</a>;
- <a href='SkRect_Reference#SkRect'>SkRect</a> <a href='SkRect_Reference#SkRect'>fSrcRect</a>;
- <a href='SkRect_Reference#SkRect'>SkRect</a> <a href='SkRect_Reference#SkRect'>fDstRect</a>;
- <a href='SkRect_Reference#SkRect'>unsigned</a> <a href='SkRect_Reference#SkRect'>fAAFlags</a>;
+ struct <a href='#SkCanvas_ImageSetEntry'>ImageSetEntry</a> {
+ <a href='undocumented#sk_sp'>sk_sp</a><const <a href='SkImage_Reference#SkImage'>SkImage</a>> fImage;
+ <a href='SkRect_Reference#SkRect'>SkRect</a> fSrcRect;
+ <a href='SkRect_Reference#SkRect'>SkRect</a> fDstRect;
+ unsigned fAAFlags;
};
- <a href='SkRect_Reference#SkRect'>void</a> <a href='#SkCanvas_experimental_DrawImageSetV0'>experimental_DrawImageSetV0</a>(<a href='#SkCanvas_experimental_DrawImageSetV0'>const</a> <a href='#SkCanvas_ImageSetEntry'>ImageSetEntry</a> <a href='#SkCanvas_ImageSetEntry'>imageSet</a>[], <a href='#SkCanvas_ImageSetEntry'>int</a> <a href='#SkCanvas_ImageSetEntry'>cnt</a>, <a href='#SkCanvas_ImageSetEntry'>float</a> <a href='SkColor_Reference#Alpha'>alpha</a>,
- <a href='undocumented#SkFilterQuality'>SkFilterQuality</a> <a href='undocumented#SkFilterQuality'>quality</a>, <a href='SkBlendMode_Reference#SkBlendMode'>SkBlendMode</a> <a href='SkBlendMode_Reference#SkBlendMode'>mode</a>);
- <a href='SkBlendMode_Reference#SkBlendMode'>void</a> <a href='#SkCanvas_drawText'>drawText</a>(<a href='#SkCanvas_drawText'>const</a> <a href='#SkCanvas_drawText'>void</a>* <a href='undocumented#Text'>text</a>, <a href='undocumented#Text'>size_t</a> <a href='undocumented#Text'>byteLength</a>, <a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>x</a>, <a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>y</a>,
- <a href='undocumented#SkScalar'>const</a> <a href='SkPaint_Reference#SkPaint'>SkPaint</a>& <a href='SkPaint_Reference#Paint'>paint</a>);
- <a href='SkPaint_Reference#Paint'>void</a> <a href='#SkCanvas_drawString'>drawString</a>(<a href='#SkCanvas_drawString'>const</a> <a href='#SkCanvas_drawString'>char</a>* <a href='undocumented#String'>string</a>, <a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>x</a>, <a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>y</a>, <a href='undocumented#SkScalar'>const</a> <a href='SkPaint_Reference#SkPaint'>SkPaint</a>& <a href='SkPaint_Reference#Paint'>paint</a>);
- <a href='SkPaint_Reference#Paint'>void</a> <a href='#SkCanvas_drawString'>drawString</a>(<a href='#SkCanvas_drawString'>const</a> <a href='undocumented#SkString'>SkString</a>& <a href='undocumented#String'>string</a>, <a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>x</a>, <a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>y</a>, <a href='undocumented#SkScalar'>const</a> <a href='SkPaint_Reference#SkPaint'>SkPaint</a>& <a href='SkPaint_Reference#Paint'>paint</a>);
- <a href='SkPaint_Reference#Paint'>void</a> <a href='#SkCanvas_drawPosText'>drawPosText</a>(<a href='#SkCanvas_drawPosText'>const</a> <a href='#SkCanvas_drawPosText'>void</a>* <a href='undocumented#Text'>text</a>, <a href='undocumented#Text'>size_t</a> <a href='undocumented#Text'>byteLength</a>, <a href='undocumented#Text'>const</a> <a href='SkPoint_Reference#SkPoint'>SkPoint</a> <a href='SkPoint_Reference#SkPoint'>pos</a>[],
- <a href='SkPoint_Reference#SkPoint'>const</a> <a href='SkPaint_Reference#SkPaint'>SkPaint</a>& <a href='SkPaint_Reference#Paint'>paint</a>);
- <a href='SkPaint_Reference#Paint'>void</a> <a href='#SkCanvas_drawPosTextH'>drawPosTextH</a>(<a href='#SkCanvas_drawPosTextH'>const</a> <a href='#SkCanvas_drawPosTextH'>void</a>* <a href='undocumented#Text'>text</a>, <a href='undocumented#Text'>size_t</a> <a href='undocumented#Text'>byteLength</a>, <a href='undocumented#Text'>const</a> <a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>xpos</a>[], <a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>constY</a>,
- <a href='undocumented#SkScalar'>const</a> <a href='SkPaint_Reference#SkPaint'>SkPaint</a>& <a href='SkPaint_Reference#Paint'>paint</a>);
- <a href='SkPaint_Reference#Paint'>void</a> <a href='#SkCanvas_drawTextRSXform'>drawTextRSXform</a>(<a href='#SkCanvas_drawTextRSXform'>const</a> <a href='#SkCanvas_drawTextRSXform'>void</a>* <a href='undocumented#Text'>text</a>, <a href='undocumented#Text'>size_t</a> <a href='undocumented#Text'>byteLength</a>, <a href='undocumented#Text'>const</a> <a href='undocumented#SkRSXform'>SkRSXform</a> <a href='undocumented#SkRSXform'>xform</a>[],
- <a href='undocumented#SkRSXform'>const</a> <a href='SkRect_Reference#SkRect'>SkRect</a>* <a href='SkRect_Reference#SkRect'>cullRect</a>, <a href='SkRect_Reference#SkRect'>const</a> <a href='SkPaint_Reference#SkPaint'>SkPaint</a>& <a href='SkPaint_Reference#Paint'>paint</a>);
- <a href='SkPaint_Reference#Paint'>void</a> <a href='#SkCanvas_drawTextBlob'>drawTextBlob</a>(<a href='#SkCanvas_drawTextBlob'>const</a> <a href='SkTextBlob_Reference#SkTextBlob'>SkTextBlob</a>* <a href='SkTextBlob_Reference#SkTextBlob'>blob</a>, <a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>x</a>, <a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>y</a>, <a href='undocumented#SkScalar'>const</a> <a href='SkPaint_Reference#SkPaint'>SkPaint</a>& <a href='SkPaint_Reference#Paint'>paint</a>);
- <a href='SkPaint_Reference#Paint'>void</a> <a href='#SkCanvas_drawTextBlob'>drawTextBlob</a>(<a href='#SkCanvas_drawTextBlob'>const</a> <a href='undocumented#sk_sp'>sk_sp</a><<a href='SkTextBlob_Reference#SkTextBlob'>SkTextBlob</a>>& <a href='SkTextBlob_Reference#SkTextBlob'>blob</a>, <a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>x</a>, <a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>y</a>, <a href='undocumented#SkScalar'>const</a> <a href='SkPaint_Reference#SkPaint'>SkPaint</a>& <a href='SkPaint_Reference#Paint'>paint</a>);
- <a href='SkPaint_Reference#Paint'>void</a> <a href='#SkCanvas_drawPicture'>drawPicture</a>(<a href='#SkCanvas_drawPicture'>const</a> <a href='SkPicture_Reference#SkPicture'>SkPicture</a>* <a href='SkPicture_Reference#Picture'>picture</a>);
- <a href='SkPicture_Reference#Picture'>void</a> <a href='#SkCanvas_drawPicture'>drawPicture</a>(<a href='#SkCanvas_drawPicture'>const</a> <a href='undocumented#sk_sp'>sk_sp</a><<a href='SkPicture_Reference#SkPicture'>SkPicture</a>>& <a href='SkPicture_Reference#Picture'>picture</a>);
- <a href='SkPicture_Reference#Picture'>void</a> <a href='#SkCanvas_drawPicture'>drawPicture</a>(<a href='#SkCanvas_drawPicture'>const</a> <a href='SkPicture_Reference#SkPicture'>SkPicture</a>* <a href='SkPicture_Reference#Picture'>picture</a>, <a href='SkPicture_Reference#Picture'>const</a> <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a>* <a href='SkMatrix_Reference#Matrix'>matrix</a>, <a href='SkMatrix_Reference#Matrix'>const</a> <a href='SkPaint_Reference#SkPaint'>SkPaint</a>* <a href='SkPaint_Reference#Paint'>paint</a>);
- <a href='SkPaint_Reference#Paint'>void</a> <a href='#SkCanvas_drawPicture'>drawPicture</a>(<a href='#SkCanvas_drawPicture'>const</a> <a href='undocumented#sk_sp'>sk_sp</a><<a href='SkPicture_Reference#SkPicture'>SkPicture</a>>& <a href='SkPicture_Reference#Picture'>picture</a>, <a href='SkPicture_Reference#Picture'>const</a> <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a>* <a href='SkMatrix_Reference#Matrix'>matrix</a>,
- <a href='SkMatrix_Reference#Matrix'>const</a> <a href='SkPaint_Reference#SkPaint'>SkPaint</a>* <a href='SkPaint_Reference#Paint'>paint</a>);
- <a href='SkPaint_Reference#Paint'>void</a> <a href='#SkCanvas_drawVertices'>drawVertices</a>(<a href='#SkCanvas_drawVertices'>const</a> <a href='undocumented#SkVertices'>SkVertices</a>* <a href='undocumented#Vertices'>vertices</a>, <a href='SkBlendMode_Reference#SkBlendMode'>SkBlendMode</a> <a href='SkBlendMode_Reference#SkBlendMode'>mode</a>, <a href='SkBlendMode_Reference#SkBlendMode'>const</a> <a href='SkPaint_Reference#SkPaint'>SkPaint</a>& <a href='SkPaint_Reference#Paint'>paint</a>);
- <a href='SkPaint_Reference#Paint'>void</a> <a href='#SkCanvas_drawVertices'>drawVertices</a>(<a href='#SkCanvas_drawVertices'>const</a> <a href='undocumented#sk_sp'>sk_sp</a><<a href='undocumented#SkVertices'>SkVertices</a>>& <a href='undocumented#Vertices'>vertices</a>, <a href='SkBlendMode_Reference#SkBlendMode'>SkBlendMode</a> <a href='SkBlendMode_Reference#SkBlendMode'>mode</a>, <a href='SkBlendMode_Reference#SkBlendMode'>const</a> <a href='SkPaint_Reference#SkPaint'>SkPaint</a>& <a href='SkPaint_Reference#Paint'>paint</a>);
- <a href='SkPaint_Reference#Paint'>void</a> <a href='#SkCanvas_drawVertices'>drawVertices</a>(<a href='#SkCanvas_drawVertices'>const</a> <a href='undocumented#SkVertices'>SkVertices</a>* <a href='undocumented#Vertices'>vertices</a>, <a href='undocumented#Vertices'>const</a> <a href='undocumented#SkVertices'>SkVertices</a>::<a href='#SkVertices_Bone'>Bone</a> <a href='#SkVertices_Bone'>bones</a>[], <a href='#SkVertices_Bone'>int</a> <a href='#SkVertices_Bone'>boneCount</a>,
- <a href='SkBlendMode_Reference#SkBlendMode'>SkBlendMode</a> <a href='SkBlendMode_Reference#SkBlendMode'>mode</a>, <a href='SkBlendMode_Reference#SkBlendMode'>const</a> <a href='SkPaint_Reference#SkPaint'>SkPaint</a>& <a href='SkPaint_Reference#Paint'>paint</a>);
- <a href='SkPaint_Reference#Paint'>void</a> <a href='#SkCanvas_drawVertices'>drawVertices</a>(<a href='#SkCanvas_drawVertices'>const</a> <a href='undocumented#sk_sp'>sk_sp</a><<a href='undocumented#SkVertices'>SkVertices</a>>& <a href='undocumented#Vertices'>vertices</a>, <a href='undocumented#Vertices'>const</a> <a href='undocumented#SkVertices'>SkVertices</a>::<a href='#SkVertices_Bone'>Bone</a> <a href='#SkVertices_Bone'>bones</a>[],
- <a href='#SkVertices_Bone'>int</a> <a href='#SkVertices_Bone'>boneCount</a>, <a href='SkBlendMode_Reference#SkBlendMode'>SkBlendMode</a> <a href='SkBlendMode_Reference#SkBlendMode'>mode</a>, <a href='SkBlendMode_Reference#SkBlendMode'>const</a> <a href='SkPaint_Reference#SkPaint'>SkPaint</a>& <a href='SkPaint_Reference#Paint'>paint</a>);
- <a href='SkPaint_Reference#Paint'>void</a> <a href='#SkCanvas_drawPatch'>drawPatch</a>(<a href='#SkCanvas_drawPatch'>const</a> <a href='SkPoint_Reference#SkPoint'>SkPoint</a> <a href='SkPath_Reference#Cubic'>cubics</a>[12], <a href='SkPath_Reference#Cubic'>const</a> <a href='SkColor_Reference#SkColor'>SkColor</a> <a href='SkColor_Reference#SkColor'>colors</a>[4],
- <a href='SkColor_Reference#SkColor'>const</a> <a href='SkPoint_Reference#SkPoint'>SkPoint</a> <a href='SkPoint_Reference#SkPoint'>texCoords</a>[4], <a href='SkBlendMode_Reference#SkBlendMode'>SkBlendMode</a> <a href='SkBlendMode_Reference#SkBlendMode'>mode</a>, <a href='SkBlendMode_Reference#SkBlendMode'>const</a> <a href='SkPaint_Reference#SkPaint'>SkPaint</a>& <a href='SkPaint_Reference#Paint'>paint</a>);
- <a href='SkPaint_Reference#Paint'>void</a> <a href='#SkCanvas_drawPatch'>drawPatch</a>(<a href='#SkCanvas_drawPatch'>const</a> <a href='SkPoint_Reference#SkPoint'>SkPoint</a> <a href='SkPath_Reference#Cubic'>cubics</a>[12], <a href='SkPath_Reference#Cubic'>const</a> <a href='SkColor_Reference#SkColor'>SkColor</a> <a href='SkColor_Reference#SkColor'>colors</a>[4],
- <a href='SkColor_Reference#SkColor'>const</a> <a href='SkPoint_Reference#SkPoint'>SkPoint</a> <a href='SkPoint_Reference#SkPoint'>texCoords</a>[4], <a href='SkPoint_Reference#SkPoint'>const</a> <a href='SkPaint_Reference#SkPaint'>SkPaint</a>& <a href='SkPaint_Reference#Paint'>paint</a>);
- <a href='SkPaint_Reference#Paint'>void</a> <a href='#SkCanvas_drawAtlas'>drawAtlas</a>(<a href='#SkCanvas_drawAtlas'>const</a> <a href='SkImage_Reference#SkImage'>SkImage</a>* <a href='SkImage_Reference#SkImage'>atlas</a>, <a href='SkImage_Reference#SkImage'>const</a> <a href='undocumented#SkRSXform'>SkRSXform</a> <a href='undocumented#SkRSXform'>xform</a>[], <a href='undocumented#SkRSXform'>const</a> <a href='SkRect_Reference#SkRect'>SkRect</a> <a href='SkRect_Reference#SkRect'>tex</a>[],
- <a href='SkRect_Reference#SkRect'>const</a> <a href='SkColor_Reference#SkColor'>SkColor</a> <a href='SkColor_Reference#SkColor'>colors</a>[], <a href='SkColor_Reference#SkColor'>int</a> <a href='SkColor_Reference#SkColor'>count</a>, <a href='SkBlendMode_Reference#SkBlendMode'>SkBlendMode</a> <a href='SkBlendMode_Reference#SkBlendMode'>mode</a>, <a href='SkBlendMode_Reference#SkBlendMode'>const</a> <a href='SkRect_Reference#SkRect'>SkRect</a>* <a href='SkRect_Reference#SkRect'>cullRect</a>,
- <a href='SkRect_Reference#SkRect'>const</a> <a href='SkPaint_Reference#SkPaint'>SkPaint</a>* <a href='SkPaint_Reference#Paint'>paint</a>);
- <a href='SkPaint_Reference#Paint'>void</a> <a href='#SkCanvas_drawAtlas'>drawAtlas</a>(<a href='#SkCanvas_drawAtlas'>const</a> <a href='undocumented#sk_sp'>sk_sp</a><<a href='SkImage_Reference#SkImage'>SkImage</a>>& <a href='SkImage_Reference#SkImage'>atlas</a>, <a href='SkImage_Reference#SkImage'>const</a> <a href='undocumented#SkRSXform'>SkRSXform</a> <a href='undocumented#SkRSXform'>xform</a>[], <a href='undocumented#SkRSXform'>const</a> <a href='SkRect_Reference#SkRect'>SkRect</a> <a href='SkRect_Reference#SkRect'>tex</a>[],
- <a href='SkRect_Reference#SkRect'>const</a> <a href='SkColor_Reference#SkColor'>SkColor</a> <a href='SkColor_Reference#SkColor'>colors</a>[], <a href='SkColor_Reference#SkColor'>int</a> <a href='SkColor_Reference#SkColor'>count</a>, <a href='SkBlendMode_Reference#SkBlendMode'>SkBlendMode</a> <a href='SkBlendMode_Reference#SkBlendMode'>mode</a>, <a href='SkBlendMode_Reference#SkBlendMode'>const</a> <a href='SkRect_Reference#SkRect'>SkRect</a>* <a href='SkRect_Reference#SkRect'>cullRect</a>,
- <a href='SkRect_Reference#SkRect'>const</a> <a href='SkPaint_Reference#SkPaint'>SkPaint</a>* <a href='SkPaint_Reference#Paint'>paint</a>);
- <a href='SkPaint_Reference#Paint'>void</a> <a href='#SkCanvas_drawAtlas'>drawAtlas</a>(<a href='#SkCanvas_drawAtlas'>const</a> <a href='SkImage_Reference#SkImage'>SkImage</a>* <a href='SkImage_Reference#SkImage'>atlas</a>, <a href='SkImage_Reference#SkImage'>const</a> <a href='undocumented#SkRSXform'>SkRSXform</a> <a href='undocumented#SkRSXform'>xform</a>[], <a href='undocumented#SkRSXform'>const</a> <a href='SkRect_Reference#SkRect'>SkRect</a> <a href='SkRect_Reference#SkRect'>tex</a>[], <a href='SkRect_Reference#SkRect'>int</a> <a href='SkRect_Reference#SkRect'>count</a>,
- <a href='SkRect_Reference#SkRect'>const</a> <a href='SkRect_Reference#SkRect'>SkRect</a>* <a href='SkRect_Reference#SkRect'>cullRect</a>, <a href='SkRect_Reference#SkRect'>const</a> <a href='SkPaint_Reference#SkPaint'>SkPaint</a>* <a href='SkPaint_Reference#Paint'>paint</a>);
- <a href='SkPaint_Reference#Paint'>void</a> <a href='#SkCanvas_drawAtlas'>drawAtlas</a>(<a href='#SkCanvas_drawAtlas'>const</a> <a href='undocumented#sk_sp'>sk_sp</a><<a href='SkImage_Reference#SkImage'>SkImage</a>>& <a href='SkImage_Reference#SkImage'>atlas</a>, <a href='SkImage_Reference#SkImage'>const</a> <a href='undocumented#SkRSXform'>SkRSXform</a> <a href='undocumented#SkRSXform'>xform</a>[], <a href='undocumented#SkRSXform'>const</a> <a href='SkRect_Reference#SkRect'>SkRect</a> <a href='SkRect_Reference#SkRect'>tex</a>[],
- <a href='SkRect_Reference#SkRect'>int</a> <a href='SkRect_Reference#SkRect'>count</a>, <a href='SkRect_Reference#SkRect'>const</a> <a href='SkRect_Reference#SkRect'>SkRect</a>* <a href='SkRect_Reference#SkRect'>cullRect</a>, <a href='SkRect_Reference#SkRect'>const</a> <a href='SkPaint_Reference#SkPaint'>SkPaint</a>* <a href='SkPaint_Reference#Paint'>paint</a>);
- <a href='SkPaint_Reference#Paint'>void</a> <a href='#SkCanvas_drawDrawable'>drawDrawable</a>(<a href='undocumented#SkDrawable'>SkDrawable</a>* <a href='undocumented#Drawable'>drawable</a>, <a href='undocumented#Drawable'>const</a> <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a>* <a href='SkMatrix_Reference#Matrix'>matrix</a> = <a href='SkMatrix_Reference#Matrix'>nullptr</a>);
- <a href='SkMatrix_Reference#Matrix'>void</a> <a href='#SkCanvas_drawDrawable'>drawDrawable</a>(<a href='undocumented#SkDrawable'>SkDrawable</a>* <a href='undocumented#Drawable'>drawable</a>, <a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>x</a>, <a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>y</a>);
- <a href='undocumented#SkScalar'>void</a> <a href='#SkCanvas_drawAnnotation'>drawAnnotation</a>(<a href='#SkCanvas_drawAnnotation'>const</a> <a href='SkRect_Reference#SkRect'>SkRect</a>& <a href='SkRect_Reference#Rect'>rect</a>, <a href='SkRect_Reference#Rect'>const</a> <a href='SkRect_Reference#Rect'>char</a> <a href='SkRect_Reference#Rect'>key</a>[], <a href='undocumented#SkData'>SkData</a>* <a href='undocumented#SkData'>value</a>);
- <a href='undocumented#SkData'>void</a> <a href='#SkCanvas_drawAnnotation'>drawAnnotation</a>(<a href='#SkCanvas_drawAnnotation'>const</a> <a href='SkRect_Reference#SkRect'>SkRect</a>& <a href='SkRect_Reference#Rect'>rect</a>, <a href='SkRect_Reference#Rect'>const</a> <a href='SkRect_Reference#Rect'>char</a> <a href='SkRect_Reference#Rect'>key</a>[], <a href='SkRect_Reference#Rect'>const</a> <a href='undocumented#sk_sp'>sk_sp</a><<a href='undocumented#SkData'>SkData</a>>& <a href='undocumented#SkData'>value</a>);
- <a href='undocumented#SkData'>virtual</a> <a href='undocumented#SkData'>bool</a> <a href='#SkCanvas_isClipEmpty'>isClipEmpty</a>() <a href='#SkCanvas_isClipEmpty'>const</a>;
- <a href='#SkCanvas_isClipEmpty'>virtual</a> <a href='#SkCanvas_isClipEmpty'>bool</a> <a href='#SkCanvas_isClipRect'>isClipRect</a>() <a href='#SkCanvas_isClipRect'>const</a>;
- <a href='#SkCanvas_isClipRect'>const</a> <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a>& <a href='#SkCanvas_getTotalMatrix'>getTotalMatrix</a>() <a href='#SkCanvas_getTotalMatrix'>const</a>;
+ void <a href='#SkCanvas_experimental_DrawImageSetV0'>experimental_DrawImageSetV0</a>(const <a href='#SkCanvas_ImageSetEntry'>ImageSetEntry</a> imageSet[], int cnt, float <a href='SkColor_Reference#Alpha'>alpha</a>,
+ <a href='undocumented#SkFilterQuality'>SkFilterQuality</a> quality, <a href='SkBlendMode_Reference#SkBlendMode'>SkBlendMode</a> mode);
+ void <a href='#SkCanvas_drawText'>drawText</a>(const void* <a href='undocumented#Text'>text</a>, size_t byteLength, <a href='undocumented#SkScalar'>SkScalar</a> x, <a href='undocumented#SkScalar'>SkScalar</a> y,
+ const <a href='SkPaint_Reference#SkPaint'>SkPaint</a>& <a href='SkPaint_Reference#Paint'>paint</a>);
+ void <a href='#SkCanvas_drawString'>drawString</a>(const char* <a href='undocumented#String'>string</a>, <a href='undocumented#SkScalar'>SkScalar</a> x, <a href='undocumented#SkScalar'>SkScalar</a> y, const <a href='SkPaint_Reference#SkPaint'>SkPaint</a>& <a href='SkPaint_Reference#Paint'>paint</a>);
+ void <a href='#SkCanvas_drawString'>drawString</a>(const <a href='undocumented#SkString'>SkString</a>& <a href='undocumented#String'>string</a>, <a href='undocumented#SkScalar'>SkScalar</a> x, <a href='undocumented#SkScalar'>SkScalar</a> y, const <a href='SkPaint_Reference#SkPaint'>SkPaint</a>& <a href='SkPaint_Reference#Paint'>paint</a>);
+ void <a href='#SkCanvas_drawPosText'>drawPosText</a>(const void* <a href='undocumented#Text'>text</a>, size_t byteLength, const <a href='SkPoint_Reference#SkPoint'>SkPoint</a> pos[],
+ const <a href='SkPaint_Reference#SkPaint'>SkPaint</a>& <a href='SkPaint_Reference#Paint'>paint</a>);
+ void <a href='#SkCanvas_drawPosTextH'>drawPosTextH</a>(const void* <a href='undocumented#Text'>text</a>, size_t byteLength, const <a href='undocumented#SkScalar'>SkScalar</a> xpos[], <a href='undocumented#SkScalar'>SkScalar</a> constY,
+ const <a href='SkPaint_Reference#SkPaint'>SkPaint</a>& <a href='SkPaint_Reference#Paint'>paint</a>);
+ void <a href='#SkCanvas_drawTextRSXform'>drawTextRSXform</a>(const void* <a href='undocumented#Text'>text</a>, size_t byteLength, const <a href='undocumented#SkRSXform'>SkRSXform</a> xform[],
+ const <a href='SkRect_Reference#SkRect'>SkRect</a>* cullRect, const <a href='SkPaint_Reference#SkPaint'>SkPaint</a>& <a href='SkPaint_Reference#Paint'>paint</a>);
+ void <a href='#SkCanvas_drawTextBlob'>drawTextBlob</a>(const <a href='SkTextBlob_Reference#SkTextBlob'>SkTextBlob</a>* blob, <a href='undocumented#SkScalar'>SkScalar</a> x, <a href='undocumented#SkScalar'>SkScalar</a> y, const <a href='SkPaint_Reference#SkPaint'>SkPaint</a>& <a href='SkPaint_Reference#Paint'>paint</a>);
+ void <a href='#SkCanvas_drawTextBlob'>drawTextBlob</a>(const <a href='undocumented#sk_sp'>sk_sp</a><<a href='SkTextBlob_Reference#SkTextBlob'>SkTextBlob</a>>& blob, <a href='undocumented#SkScalar'>SkScalar</a> x, <a href='undocumented#SkScalar'>SkScalar</a> y, const <a href='SkPaint_Reference#SkPaint'>SkPaint</a>& <a href='SkPaint_Reference#Paint'>paint</a>);
+ void <a href='#SkCanvas_drawPicture'>drawPicture</a>(const <a href='SkPicture_Reference#SkPicture'>SkPicture</a>* <a href='SkPicture_Reference#Picture'>picture</a>);
+ void <a href='#SkCanvas_drawPicture'>drawPicture</a>(const <a href='undocumented#sk_sp'>sk_sp</a><<a href='SkPicture_Reference#SkPicture'>SkPicture</a>>& <a href='SkPicture_Reference#Picture'>picture</a>);
+ void <a href='#SkCanvas_drawPicture'>drawPicture</a>(const <a href='SkPicture_Reference#SkPicture'>SkPicture</a>* <a href='SkPicture_Reference#Picture'>picture</a>, const <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a>* <a href='SkMatrix_Reference#Matrix'>matrix</a>, const <a href='SkPaint_Reference#SkPaint'>SkPaint</a>* <a href='SkPaint_Reference#Paint'>paint</a>);
+ void <a href='#SkCanvas_drawPicture'>drawPicture</a>(const <a href='undocumented#sk_sp'>sk_sp</a><<a href='SkPicture_Reference#SkPicture'>SkPicture</a>>& <a href='SkPicture_Reference#Picture'>picture</a>, const <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a>* <a href='SkMatrix_Reference#Matrix'>matrix</a>,
+ const <a href='SkPaint_Reference#SkPaint'>SkPaint</a>* <a href='SkPaint_Reference#Paint'>paint</a>);
+ void <a href='#SkCanvas_drawVertices'>drawVertices</a>(const <a href='undocumented#SkVertices'>SkVertices</a>* <a href='undocumented#Vertices'>vertices</a>, <a href='SkBlendMode_Reference#SkBlendMode'>SkBlendMode</a> mode, const <a href='SkPaint_Reference#SkPaint'>SkPaint</a>& <a href='SkPaint_Reference#Paint'>paint</a>);
+ void <a href='#SkCanvas_drawVertices'>drawVertices</a>(const <a href='undocumented#sk_sp'>sk_sp</a><<a href='undocumented#SkVertices'>SkVertices</a>>& <a href='undocumented#Vertices'>vertices</a>, <a href='SkBlendMode_Reference#SkBlendMode'>SkBlendMode</a> mode, const <a href='SkPaint_Reference#SkPaint'>SkPaint</a>& <a href='SkPaint_Reference#Paint'>paint</a>);
+ void <a href='#SkCanvas_drawVertices'>drawVertices</a>(const <a href='undocumented#SkVertices'>SkVertices</a>* <a href='undocumented#Vertices'>vertices</a>, const <a href='undocumented#SkVertices'>SkVertices</a>::<a href='#SkVertices_Bone'>Bone</a> bones[], int boneCount,
+ <a href='SkBlendMode_Reference#SkBlendMode'>SkBlendMode</a> mode, const <a href='SkPaint_Reference#SkPaint'>SkPaint</a>& <a href='SkPaint_Reference#Paint'>paint</a>);
+ void <a href='#SkCanvas_drawVertices'>drawVertices</a>(const <a href='undocumented#sk_sp'>sk_sp</a><<a href='undocumented#SkVertices'>SkVertices</a>>& <a href='undocumented#Vertices'>vertices</a>, const <a href='undocumented#SkVertices'>SkVertices</a>::<a href='#SkVertices_Bone'>Bone</a> bones[],
+ int boneCount, <a href='SkBlendMode_Reference#SkBlendMode'>SkBlendMode</a> mode, const <a href='SkPaint_Reference#SkPaint'>SkPaint</a>& <a href='SkPaint_Reference#Paint'>paint</a>);
+ void <a href='#SkCanvas_drawPatch'>drawPatch</a>(const <a href='SkPoint_Reference#SkPoint'>SkPoint</a> <a href='SkPath_Reference#Cubic'>cubics</a>[12], const <a href='SkColor_Reference#SkColor'>SkColor</a> colors[4],
+ const <a href='SkPoint_Reference#SkPoint'>SkPoint</a> texCoords[4], <a href='SkBlendMode_Reference#SkBlendMode'>SkBlendMode</a> mode, const <a href='SkPaint_Reference#SkPaint'>SkPaint</a>& <a href='SkPaint_Reference#Paint'>paint</a>);
+ void <a href='#SkCanvas_drawPatch'>drawPatch</a>(const <a href='SkPoint_Reference#SkPoint'>SkPoint</a> <a href='SkPath_Reference#Cubic'>cubics</a>[12], const <a href='SkColor_Reference#SkColor'>SkColor</a> colors[4],
+ const <a href='SkPoint_Reference#SkPoint'>SkPoint</a> texCoords[4], const <a href='SkPaint_Reference#SkPaint'>SkPaint</a>& <a href='SkPaint_Reference#Paint'>paint</a>);
+ void <a href='#SkCanvas_drawAtlas'>drawAtlas</a>(const <a href='SkImage_Reference#SkImage'>SkImage</a>* atlas, const <a href='undocumented#SkRSXform'>SkRSXform</a> xform[], const <a href='SkRect_Reference#SkRect'>SkRect</a> tex[],
+ const <a href='SkColor_Reference#SkColor'>SkColor</a> colors[], int count, <a href='SkBlendMode_Reference#SkBlendMode'>SkBlendMode</a> mode, const <a href='SkRect_Reference#SkRect'>SkRect</a>* cullRect,
+ const <a href='SkPaint_Reference#SkPaint'>SkPaint</a>* <a href='SkPaint_Reference#Paint'>paint</a>);
+ void <a href='#SkCanvas_drawAtlas'>drawAtlas</a>(const <a href='undocumented#sk_sp'>sk_sp</a><<a href='SkImage_Reference#SkImage'>SkImage</a>>& atlas, const <a href='undocumented#SkRSXform'>SkRSXform</a> xform[], const <a href='SkRect_Reference#SkRect'>SkRect</a> tex[],
+ const <a href='SkColor_Reference#SkColor'>SkColor</a> colors[], int count, <a href='SkBlendMode_Reference#SkBlendMode'>SkBlendMode</a> mode, const <a href='SkRect_Reference#SkRect'>SkRect</a>* cullRect,
+ const <a href='SkPaint_Reference#SkPaint'>SkPaint</a>* <a href='SkPaint_Reference#Paint'>paint</a>);
+ void <a href='#SkCanvas_drawAtlas'>drawAtlas</a>(const <a href='SkImage_Reference#SkImage'>SkImage</a>* atlas, const <a href='undocumented#SkRSXform'>SkRSXform</a> xform[], const <a href='SkRect_Reference#SkRect'>SkRect</a> tex[], int count,
+ const <a href='SkRect_Reference#SkRect'>SkRect</a>* cullRect, const <a href='SkPaint_Reference#SkPaint'>SkPaint</a>* <a href='SkPaint_Reference#Paint'>paint</a>);
+ void <a href='#SkCanvas_drawAtlas'>drawAtlas</a>(const <a href='undocumented#sk_sp'>sk_sp</a><<a href='SkImage_Reference#SkImage'>SkImage</a>>& atlas, const <a href='undocumented#SkRSXform'>SkRSXform</a> xform[], const <a href='SkRect_Reference#SkRect'>SkRect</a> tex[],
+ int count, const <a href='SkRect_Reference#SkRect'>SkRect</a>* cullRect, const <a href='SkPaint_Reference#SkPaint'>SkPaint</a>* <a href='SkPaint_Reference#Paint'>paint</a>);
+ void <a href='#SkCanvas_drawDrawable'>drawDrawable</a>(<a href='undocumented#SkDrawable'>SkDrawable</a>* <a href='undocumented#Drawable'>drawable</a>, const <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a>* <a href='SkMatrix_Reference#Matrix'>matrix</a> = nullptr);
+ void <a href='#SkCanvas_drawDrawable'>drawDrawable</a>(<a href='undocumented#SkDrawable'>SkDrawable</a>* <a href='undocumented#Drawable'>drawable</a>, <a href='undocumented#SkScalar'>SkScalar</a> x, <a href='undocumented#SkScalar'>SkScalar</a> y);
+ void <a href='#SkCanvas_drawAnnotation'>drawAnnotation</a>(const <a href='SkRect_Reference#SkRect'>SkRect</a>& <a href='SkRect_Reference#Rect'>rect</a>, const char key[], <a href='undocumented#SkData'>SkData</a>* value);
+ void <a href='#SkCanvas_drawAnnotation'>drawAnnotation</a>(const <a href='SkRect_Reference#SkRect'>SkRect</a>& <a href='SkRect_Reference#Rect'>rect</a>, const char key[], const <a href='undocumented#sk_sp'>sk_sp</a><<a href='undocumented#SkData'>SkData</a>>& value);
+ virtual bool <a href='#SkCanvas_isClipEmpty'>isClipEmpty</a>() const;
+ virtual bool <a href='#SkCanvas_isClipRect'>isClipRect</a>() const;
+ const <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a>& <a href='#SkCanvas_getTotalMatrix'>getTotalMatrix</a>() const;
};
</pre>
-<a href='SkCanvas_Reference#Canvas'>Canvas</a> <a href='SkCanvas_Reference#Canvas'>provides</a> <a href='SkCanvas_Reference#Canvas'>an</a> <a href='SkCanvas_Reference#Canvas'>interface</a> <a href='SkCanvas_Reference#Canvas'>for</a> <a href='SkCanvas_Reference#Canvas'>drawing</a>, <a href='SkCanvas_Reference#Canvas'>and</a> <a href='SkCanvas_Reference#Canvas'>how</a> <a href='SkCanvas_Reference#Canvas'>the</a> <a href='SkCanvas_Reference#Canvas'>drawing</a> <a href='SkCanvas_Reference#Canvas'>is</a> <a href='SkCanvas_Reference#Canvas'>clipped</a> <a href='SkCanvas_Reference#Canvas'>and</a> <a href='SkCanvas_Reference#Canvas'>transformed</a>.
-<a href='SkCanvas_Reference#Canvas'>Canvas</a> <a href='SkCanvas_Reference#Canvas'>contains</a> <a href='SkCanvas_Reference#Canvas'>a</a> <a href='SkCanvas_Reference#Canvas'>stack</a> <a href='SkCanvas_Reference#Canvas'>of</a> <a href='SkMatrix_Reference#Matrix'>Matrix</a> <a href='SkMatrix_Reference#Matrix'>and</a> <a href='SkMatrix_Reference#Matrix'>Clip</a> <a href='SkMatrix_Reference#Matrix'>values</a>.
+<a href='SkCanvas_Reference#Canvas'>Canvas</a> provides an interface for drawing, and how the drawing is clipped and transformed.
+<a href='SkCanvas_Reference#Canvas'>Canvas</a> contains a stack of <a href='SkMatrix_Reference#Matrix'>Matrix</a> and Clip values.
-<a href='SkCanvas_Reference#Canvas'>Canvas</a> <a href='SkCanvas_Reference#Canvas'>and</a> <a href='SkPaint_Reference#Paint'>Paint</a> <a href='SkPaint_Reference#Paint'>together</a> <a href='SkPaint_Reference#Paint'>provide</a> <a href='SkPaint_Reference#Paint'>the</a> <a href='SkPaint_Reference#Paint'>state</a> <a href='SkPaint_Reference#Paint'>to</a> <a href='SkPaint_Reference#Paint'>draw</a> <a href='SkPaint_Reference#Paint'>into</a> <a href='SkSurface_Reference#Surface'>Surface</a> <a href='SkSurface_Reference#Surface'>or</a> <a href='undocumented#Device'>Device</a>.
-<a href='undocumented#Device'>Each</a> <a href='SkCanvas_Reference#Canvas'>Canvas</a> <a href='SkCanvas_Reference#Canvas'>draw</a> <a href='SkCanvas_Reference#Canvas'>call</a> <a href='SkCanvas_Reference#Canvas'>transforms</a> <a href='SkCanvas_Reference#Canvas'>the</a> <a href='SkCanvas_Reference#Canvas'>geometry</a> <a href='SkCanvas_Reference#Canvas'>of</a> <a href='SkCanvas_Reference#Canvas'>the</a> <a href='SkCanvas_Reference#Canvas'>object</a> <a href='SkCanvas_Reference#Canvas'>by</a> <a href='SkCanvas_Reference#Canvas'>the</a> <a href='SkCanvas_Reference#Canvas'>concatenation</a> <a href='SkCanvas_Reference#Canvas'>of</a> <a href='SkCanvas_Reference#Canvas'>all</a>
-<a href='SkMatrix_Reference#Matrix'>Matrix</a> <a href='SkMatrix_Reference#Matrix'>values</a> <a href='SkMatrix_Reference#Matrix'>in</a> <a href='SkMatrix_Reference#Matrix'>the</a> <a href='SkMatrix_Reference#Matrix'>stack</a>. <a href='SkMatrix_Reference#Matrix'>The</a> <a href='SkMatrix_Reference#Matrix'>transformed</a> <a href='SkMatrix_Reference#Matrix'>geometry</a> <a href='SkMatrix_Reference#Matrix'>is</a> <a href='SkMatrix_Reference#Matrix'>clipped</a> <a href='SkMatrix_Reference#Matrix'>by</a> <a href='SkMatrix_Reference#Matrix'>the</a> <a href='SkMatrix_Reference#Matrix'>intersection</a>
-<a href='SkMatrix_Reference#Matrix'>of</a> <a href='SkMatrix_Reference#Matrix'>all</a> <a href='SkMatrix_Reference#Matrix'>of</a> <a href='SkMatrix_Reference#Matrix'>Clip</a> <a href='SkMatrix_Reference#Matrix'>values</a> <a href='SkMatrix_Reference#Matrix'>in</a> <a href='SkMatrix_Reference#Matrix'>the</a> <a href='SkMatrix_Reference#Matrix'>stack</a>. <a href='SkMatrix_Reference#Matrix'>The</a> <a href='SkCanvas_Reference#Canvas'>Canvas</a> <a href='SkCanvas_Reference#Canvas'>draw</a> <a href='SkCanvas_Reference#Canvas'>calls</a> <a href='SkCanvas_Reference#Canvas'>use</a> <a href='SkPaint_Reference#Paint'>Paint</a> <a href='SkPaint_Reference#Paint'>to</a> <a href='SkPaint_Reference#Paint'>supply</a> <a href='SkPaint_Reference#Paint'>drawing</a>
-<a href='SkPaint_Reference#Paint'>state</a> <a href='SkPaint_Reference#Paint'>such</a> <a href='SkPaint_Reference#Paint'>as</a> <a href='SkColor_Reference#Color'>Color</a>, <a href='undocumented#Typeface'>Typeface</a>, <a href='undocumented#Text'>text</a> <a href='undocumented#Size'>size</a>, <a href='undocumented#Size'>stroke</a> <a href='undocumented#Size'>width</a>, <a href='undocumented#Shader'>Shader</a> <a href='undocumented#Shader'>and</a> <a href='undocumented#Shader'>so</a> <a href='undocumented#Shader'>on</a>.
+<a href='SkCanvas_Reference#Canvas'>Canvas</a> and <a href='SkPaint_Reference#Paint'>Paint</a> together provide the state to draw into <a href='SkSurface_Reference#Surface'>Surface</a> or <a href='undocumented#Device'>Device</a>.
+Each <a href='SkCanvas_Reference#Canvas'>Canvas</a> draw call transforms the geometry of the object by the concatenation of all
+<a href='SkMatrix_Reference#Matrix'>Matrix</a> values in the stack. The transformed geometry is clipped by the intersection
+of all of Clip values in the stack. The <a href='SkCanvas_Reference#Canvas'>Canvas</a> draw calls use <a href='SkPaint_Reference#Paint'>Paint</a> to supply drawing
+state such as <a href='SkColor_Reference#Color'>Color</a>, <a href='undocumented#Typeface'>Typeface</a>, <a href='undocumented#Text'>text</a> <a href='undocumented#Size'>size</a>, stroke width, <a href='undocumented#Shader'>Shader</a> and so on.
-<a href='undocumented#Shader'>To</a> <a href='undocumented#Shader'>draw</a> <a href='undocumented#Shader'>to</a> <a href='undocumented#Shader'>a</a> <a href='undocumented#Shader'>pixel-based</a> <a href='undocumented#Shader'>destination</a>, <a href='undocumented#Shader'>create</a> <a href='#Raster_Surface'>Raster_Surface</a> <a href='#Raster_Surface'>or</a> <a href='#GPU_Surface'>GPU_Surface</a>.
-<a href='#GPU_Surface'>Request</a> <a href='SkCanvas_Reference#Canvas'>Canvas</a> <a href='SkCanvas_Reference#Canvas'>from</a> <a href='SkSurface_Reference#Surface'>Surface</a> <a href='SkSurface_Reference#Surface'>to</a> <a href='SkSurface_Reference#Surface'>obtain</a> <a href='SkSurface_Reference#Surface'>the</a> <a href='SkSurface_Reference#Surface'>interface</a> <a href='SkSurface_Reference#Surface'>to</a> <a href='SkSurface_Reference#Surface'>draw</a>.
-<a href='SkCanvas_Reference#Canvas'>Canvas</a> <a href='SkCanvas_Reference#Canvas'>generated</a> <a href='SkCanvas_Reference#Canvas'>by</a> <a href='#Raster_Surface'>Raster_Surface</a> <a href='#Raster_Surface'>draws</a> <a href='#Raster_Surface'>to</a> <a href='#Raster_Surface'>memory</a> <a href='#Raster_Surface'>visible</a> <a href='#Raster_Surface'>to</a> <a href='#Raster_Surface'>the</a> <a href='#Raster_Surface'>CPU</a>.
-<a href='SkCanvas_Reference#Canvas'>Canvas</a> <a href='SkCanvas_Reference#Canvas'>generated</a> <a href='SkCanvas_Reference#Canvas'>by</a> <a href='#GPU_Surface'>GPU_Surface</a> <a href='#GPU_Surface'>uses</a> <a href='#GPU_Surface'>Vulkan</a> <a href='#GPU_Surface'>or</a> <a href='#GPU_Surface'>OpenGL</a> <a href='#GPU_Surface'>to</a> <a href='#GPU_Surface'>draw</a> <a href='#GPU_Surface'>to</a> <a href='#GPU_Surface'>the</a> <a href='#GPU_Surface'>GPU</a>.
+To draw to a pixel-based destination, create <a href='#Raster_Surface'>Raster_Surface</a> or <a href='#GPU_Surface'>GPU_Surface</a>.
+Request <a href='SkCanvas_Reference#Canvas'>Canvas</a> from <a href='SkSurface_Reference#Surface'>Surface</a> to obtain the interface to draw.
+<a href='SkCanvas_Reference#Canvas'>Canvas</a> generated by <a href='#Raster_Surface'>Raster_Surface</a> draws to memory visible to the CPU.
+<a href='SkCanvas_Reference#Canvas'>Canvas</a> generated by <a href='#GPU_Surface'>GPU_Surface</a> uses Vulkan or OpenGL to draw to the GPU.
-<a href='#GPU_Surface'>To</a> <a href='#GPU_Surface'>draw</a> <a href='#GPU_Surface'>to</a> <a href='#GPU_Surface'>a</a> <a href='undocumented#Document'>document</a>, <a href='undocumented#Document'>obtain</a> <a href='SkCanvas_Reference#Canvas'>Canvas</a> <a href='SkCanvas_Reference#Canvas'>from</a> <a href='#SVG_Canvas'>SVG_Canvas</a>, <a href='#Document_PDF'>Document_PDF</a>, <a href='#Document_PDF'>or</a> <a href='#Picture_Recorder'>Picture_Recorder</a>.
-<a href='undocumented#Document'>Document</a> <a href='undocumented#Document'>based</a> <a href='SkCanvas_Reference#Canvas'>Canvas</a> <a href='SkCanvas_Reference#Canvas'>and</a> <a href='SkCanvas_Reference#Canvas'>other</a> <a href='SkCanvas_Reference#Canvas'>Canvas</a> <a href='SkCanvas_Reference#Canvas'>subclasses</a> <a href='SkCanvas_Reference#Canvas'>reference</a> <a href='undocumented#Device'>Device</a> <a href='undocumented#Device'>describing</a> <a href='undocumented#Device'>the</a>
-<a href='undocumented#Device'>destination</a>.
+To draw to a <a href='undocumented#Document'>document</a>, obtain <a href='SkCanvas_Reference#Canvas'>Canvas</a> from <a href='#SVG_Canvas'>SVG_Canvas</a>, <a href='#Document_PDF'>Document_PDF</a>, or <a href='#Picture_Recorder'>Picture_Recorder</a>.
+<a href='undocumented#Document'>Document</a> based <a href='SkCanvas_Reference#Canvas'>Canvas</a> and other <a href='SkCanvas_Reference#Canvas'>Canvas</a> subclasses reference <a href='undocumented#Device'>Device</a> describing the
+destination.
-<a href='SkCanvas_Reference#Canvas'>Canvas</a> <a href='SkCanvas_Reference#Canvas'>can</a> <a href='SkCanvas_Reference#Canvas'>be</a> <a href='SkCanvas_Reference#Canvas'>constructed</a> <a href='SkCanvas_Reference#Canvas'>to</a> <a href='SkCanvas_Reference#Canvas'>draw</a> <a href='SkCanvas_Reference#Canvas'>to</a> <a href='SkBitmap_Reference#Bitmap'>Bitmap</a> <a href='SkBitmap_Reference#Bitmap'>without</a> <a href='SkBitmap_Reference#Bitmap'>first</a> <a href='SkBitmap_Reference#Bitmap'>creating</a> <a href='#Raster_Surface'>Raster_Surface</a>.
-<a href='#Raster_Surface'>This</a> <a href='#Raster_Surface'>approach</a> <a href='#Raster_Surface'>may</a> <a href='#Raster_Surface'>be</a> <a href='#Raster_Surface'>deprecated</a> <a href='#Raster_Surface'>in</a> <a href='#Raster_Surface'>the</a> <a href='#Raster_Surface'>future</a>.
+<a href='SkCanvas_Reference#Canvas'>Canvas</a> can be constructed to draw to <a href='SkBitmap_Reference#Bitmap'>Bitmap</a> without first creating <a href='#Raster_Surface'>Raster_Surface</a>.
+This approach may be deprecated in the future.
-<a href='SkCanvas_Reference#Canvas'>Canvas</a> <a href='SkCanvas_Reference#Canvas'>may</a> <a href='SkCanvas_Reference#Canvas'>be</a> <a href='SkCanvas_Reference#Canvas'>created</a> <a href='SkCanvas_Reference#Canvas'>directly</a> <a href='SkCanvas_Reference#Canvas'>when</a> <a href='SkCanvas_Reference#Canvas'>no</a> <a href='SkSurface_Reference#Surface'>Surface</a> <a href='SkSurface_Reference#Surface'>is</a> <a href='SkSurface_Reference#Surface'>required</a>; <a href='SkSurface_Reference#Surface'>some</a> <a href='SkCanvas_Reference#Canvas'>Canvas</a> <a href='SkCanvas_Reference#Canvas'>methods</a>
-<a href='SkCanvas_Reference#Canvas'>implicitly</a> <a href='SkCanvas_Reference#Canvas'>create</a> <a href='#Raster_Surface'>Raster_Surface</a>.
+<a href='SkCanvas_Reference#Canvas'>Canvas</a> may be created directly when no <a href='SkSurface_Reference#Surface'>Surface</a> is required; some <a href='SkCanvas_Reference#Canvas'>Canvas</a> methods
+implicitly create <a href='#Raster_Surface'>Raster_Surface</a>.
<a name='SkCanvas_MakeRasterDirect'></a>
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-static std::unique_ptr<<a href='SkCanvas_Reference#SkCanvas'>SkCanvas</a>&<a href='SkCanvas_Reference#SkCanvas'>gt</a>; <a href='#SkCanvas_MakeRasterDirect'>MakeRasterDirect</a>(<a href='#SkCanvas_MakeRasterDirect'>const</a> <a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a>& <a href='SkImageInfo_Reference#SkImageInfo'>info</a>, <a href='SkImageInfo_Reference#SkImageInfo'>void</a>* <a href='SkImageInfo_Reference#SkImageInfo'>pixels</a>,
- <a href='SkImageInfo_Reference#SkImageInfo'>size_t</a> <a href='SkImageInfo_Reference#SkImageInfo'>rowBytes</a>,
- <a href='SkImageInfo_Reference#SkImageInfo'>const</a> <a href='undocumented#SkSurfaceProps'>SkSurfaceProps</a>* <a href='undocumented#SkSurfaceProps'>props</a> = <a href='undocumented#SkSurfaceProps'>nullptr</a>)
+static std::unique_ptr<<a href='SkCanvas_Reference#SkCanvas'>SkCanvas</a>> <a href='#SkCanvas_MakeRasterDirect'>MakeRasterDirect</a>(const <a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a>& info, void* pixels,
+ size_t rowBytes,
+ const <a href='undocumented#SkSurfaceProps'>SkSurfaceProps</a>* props = nullptr)
</pre>
-Allocates raster <a href='SkCanvas_Reference#SkCanvas'>SkCanvas</a> <a href='SkCanvas_Reference#SkCanvas'>that</a> <a href='SkCanvas_Reference#SkCanvas'>will</a> <a href='SkCanvas_Reference#SkCanvas'>draw</a> <a href='SkCanvas_Reference#SkCanvas'>directly</a> <a href='SkCanvas_Reference#SkCanvas'>into</a> <a href='#SkCanvas_MakeRasterDirect_pixels'>pixels</a>.
+Allocates raster <a href='SkCanvas_Reference#SkCanvas'>SkCanvas</a> that will draw directly into <a href='#SkCanvas_MakeRasterDirect_pixels'>pixels</a>.
-<a href='SkCanvas_Reference#SkCanvas'>SkCanvas</a> <a href='SkCanvas_Reference#SkCanvas'>is</a> <a href='SkCanvas_Reference#SkCanvas'>returned</a> <a href='SkCanvas_Reference#SkCanvas'>if</a> <a href='SkCanvas_Reference#SkCanvas'>all</a> <a href='SkCanvas_Reference#SkCanvas'>parameters</a> <a href='SkCanvas_Reference#SkCanvas'>are</a> <a href='SkCanvas_Reference#SkCanvas'>valid</a>.
+<a href='SkCanvas_Reference#SkCanvas'>SkCanvas</a> is returned if all parameters are valid.
Valid parameters include:
-<a href='#SkCanvas_MakeRasterDirect_info'>info</a> <a href='#SkCanvas_MakeRasterDirect_info'>dimensions</a> <a href='#SkCanvas_MakeRasterDirect_info'>are</a> <a href='#SkCanvas_MakeRasterDirect_info'>zero</a> <a href='#SkCanvas_MakeRasterDirect_info'>or</a> <a href='#SkCanvas_MakeRasterDirect_info'>positive</a>;
-<a href='#SkCanvas_MakeRasterDirect_info'>info</a> <a href='#SkCanvas_MakeRasterDirect_info'>contains</a> <a href='SkImageInfo_Reference#SkColorType'>SkColorType</a> <a href='SkImageInfo_Reference#SkColorType'>and</a> <a href='SkImageInfo_Reference#SkAlphaType'>SkAlphaType</a> <a href='SkImageInfo_Reference#SkAlphaType'>supported</a> <a href='SkImageInfo_Reference#SkAlphaType'>by</a> <a href='undocumented#Raster_Surface'>raster surface</a>;
-<a href='#SkCanvas_MakeRasterDirect_pixels'>pixels</a> <a href='#SkCanvas_MakeRasterDirect_pixels'>is</a> <a href='#SkCanvas_MakeRasterDirect_pixels'>not</a> <a href='#SkCanvas_MakeRasterDirect_pixels'>nullptr</a>;
-<a href='#SkCanvas_MakeRasterDirect_rowBytes'>rowBytes</a> <a href='#SkCanvas_MakeRasterDirect_rowBytes'>is</a> <a href='#SkCanvas_MakeRasterDirect_rowBytes'>zero</a> <a href='#SkCanvas_MakeRasterDirect_rowBytes'>or</a> <a href='#SkCanvas_MakeRasterDirect_rowBytes'>large</a> <a href='#SkCanvas_MakeRasterDirect_rowBytes'>enough</a> <a href='#SkCanvas_MakeRasterDirect_rowBytes'>to</a> <a href='#SkCanvas_MakeRasterDirect_rowBytes'>contain</a> <a href='#SkCanvas_MakeRasterDirect_info'>info</a> <a href='#SkCanvas_MakeRasterDirect_info'>width</a> <a href='#SkCanvas_MakeRasterDirect_pixels'>pixels</a> <a href='#SkCanvas_MakeRasterDirect_pixels'>of</a> <a href='SkImageInfo_Reference#SkColorType'>SkColorType</a>.
+<a href='#SkCanvas_MakeRasterDirect_info'>info</a> dimensions are zero or positive;
+<a href='#SkCanvas_MakeRasterDirect_info'>info</a> contains <a href='SkImageInfo_Reference#SkColorType'>SkColorType</a> and <a href='SkImageInfo_Reference#SkAlphaType'>SkAlphaType</a> supported by <a href='undocumented#Raster_Surface'>raster surface</a>;
+<a href='#SkCanvas_MakeRasterDirect_pixels'>pixels</a> is not nullptr;
+<a href='#SkCanvas_MakeRasterDirect_rowBytes'>rowBytes</a> is zero or large enough to contain <a href='#SkCanvas_MakeRasterDirect_info'>info</a> width <a href='#SkCanvas_MakeRasterDirect_pixels'>pixels</a> of <a href='SkImageInfo_Reference#SkColorType'>SkColorType</a>.
-Pass zero for <a href='#SkCanvas_MakeRasterDirect_rowBytes'>rowBytes</a> <a href='#SkCanvas_MakeRasterDirect_rowBytes'>to</a> <a href='#SkCanvas_MakeRasterDirect_rowBytes'>compute</a> <a href='#SkCanvas_MakeRasterDirect_rowBytes'>rowBytes</a> <a href='#SkCanvas_MakeRasterDirect_rowBytes'>from</a> <a href='#SkCanvas_MakeRasterDirect_info'>info</a> <a href='#SkCanvas_MakeRasterDirect_info'>width</a> <a href='#SkCanvas_MakeRasterDirect_info'>and</a> <a href='undocumented#Size'>size</a> <a href='undocumented#Size'>of</a> <a href='undocumented#Pixel'>pixel</a>.
-If <a href='#SkCanvas_MakeRasterDirect_rowBytes'>rowBytes</a> <a href='#SkCanvas_MakeRasterDirect_rowBytes'>is</a> <a href='#SkCanvas_MakeRasterDirect_rowBytes'>greater</a> <a href='#SkCanvas_MakeRasterDirect_rowBytes'>than</a> <a href='#SkCanvas_MakeRasterDirect_rowBytes'>zero</a>, <a href='#SkCanvas_MakeRasterDirect_rowBytes'>it</a> <a href='#SkCanvas_MakeRasterDirect_rowBytes'>must</a> <a href='#SkCanvas_MakeRasterDirect_rowBytes'>be</a> <a href='#SkCanvas_MakeRasterDirect_rowBytes'>equal</a> <a href='#SkCanvas_MakeRasterDirect_rowBytes'>to</a> <a href='#SkCanvas_MakeRasterDirect_rowBytes'>or</a> <a href='#SkCanvas_MakeRasterDirect_rowBytes'>greater</a> <a href='#SkCanvas_MakeRasterDirect_rowBytes'>than</a>
-<a href='#SkCanvas_MakeRasterDirect_info'>info</a> <a href='#SkCanvas_MakeRasterDirect_info'>width</a> <a href='#SkCanvas_MakeRasterDirect_info'>times</a> <a href='#SkCanvas_MakeRasterDirect_info'>bytes</a> <a href='#SkCanvas_MakeRasterDirect_info'>required</a> <a href='#SkCanvas_MakeRasterDirect_info'>for</a> <a href='SkImageInfo_Reference#SkColorType'>SkColorType</a>.
+Pass zero for <a href='#SkCanvas_MakeRasterDirect_rowBytes'>rowBytes</a> to compute <a href='#SkCanvas_MakeRasterDirect_rowBytes'>rowBytes</a> from <a href='#SkCanvas_MakeRasterDirect_info'>info</a> width and <a href='undocumented#Size'>size</a> of <a href='undocumented#Pixel'>pixel</a>.
+If <a href='#SkCanvas_MakeRasterDirect_rowBytes'>rowBytes</a> is greater than zero, it must be equal to or greater than
+<a href='#SkCanvas_MakeRasterDirect_info'>info</a> width times bytes required for <a href='SkImageInfo_Reference#SkColorType'>SkColorType</a>.
-<a href='undocumented#Pixel'>Pixel</a> <a href='undocumented#Pixel'>buffer</a> <a href='undocumented#Size'>size</a> <a href='undocumented#Size'>should</a> <a href='undocumented#Size'>be</a> <a href='#SkCanvas_MakeRasterDirect_info'>info</a> <a href='#SkCanvas_MakeRasterDirect_info'>height</a> <a href='#SkCanvas_MakeRasterDirect_info'>times</a> <a href='#SkCanvas_MakeRasterDirect_info'>computed</a> <a href='#SkCanvas_MakeRasterDirect_rowBytes'>rowBytes</a>.
+<a href='undocumented#Pixel'>Pixel</a> buffer <a href='undocumented#Size'>size</a> should be <a href='#SkCanvas_MakeRasterDirect_info'>info</a> height times computed <a href='#SkCanvas_MakeRasterDirect_rowBytes'>rowBytes</a>.
Pixels are not initialized.
-To access <a href='#SkCanvas_MakeRasterDirect_pixels'>pixels</a> <a href='#SkCanvas_MakeRasterDirect_pixels'>after</a> <a href='#SkCanvas_MakeRasterDirect_pixels'>drawing</a>, <a href='#SkCanvas_MakeRasterDirect_pixels'>call</a> <a href='#SkCanvas_flush'>flush()</a> <a href='#SkCanvas_flush'>or</a> <a href='#SkCanvas_peekPixels'>peekPixels</a>().
+To access <a href='#SkCanvas_MakeRasterDirect_pixels'>pixels</a> after drawing, call <a href='#SkCanvas_flush'>flush()</a> or <a href='#SkCanvas_peekPixels'>peekPixels</a>().
### Parameters
<table> <tr> <td><a name='SkCanvas_MakeRasterDirect_info'><code><strong>info</strong></code></a></td>
- <td>width, height, <a href='SkImageInfo_Reference#SkColorType'>SkColorType</a>, <a href='SkImageInfo_Reference#SkAlphaType'>SkAlphaType</a>, <a href='undocumented#SkColorSpace'>SkColorSpace</a>, <a href='undocumented#SkColorSpace'>of</a> <a href='undocumented#Raster_Surface'>raster surface</a>;</td>
+ <td>width, height, <a href='SkImageInfo_Reference#SkColorType'>SkColorType</a>, <a href='SkImageInfo_Reference#SkAlphaType'>SkAlphaType</a>, <a href='undocumented#SkColorSpace'>SkColorSpace</a>, of <a href='undocumented#Raster_Surface'>raster surface</a>;</td>
</tr>
</table>
@@ -324,13 +324,13 @@
### Parameters
<table> <tr> <td><a name='SkCanvas_MakeRasterDirect_pixels'><code><strong>pixels</strong></code></a></td>
- <td>pointer to destination <a href='#SkCanvas_MakeRasterDirect_pixels'>pixels</a> <a href='#SkCanvas_MakeRasterDirect_pixels'>buffer</a></td>
+ <td>pointer to destination <a href='#SkCanvas_MakeRasterDirect_pixels'>pixels</a> buffer</td>
</tr>
<tr> <td><a name='SkCanvas_MakeRasterDirect_rowBytes'><code><strong>rowBytes</strong></code></a></td>
- <td>interval from one <a href='SkSurface_Reference#SkSurface'>SkSurface</a> <a href='SkSurface_Reference#SkSurface'>row</a> <a href='SkSurface_Reference#SkSurface'>to</a> <a href='SkSurface_Reference#SkSurface'>the</a> <a href='SkSurface_Reference#SkSurface'>next</a>, <a href='SkSurface_Reference#SkSurface'>or</a> <a href='SkSurface_Reference#SkSurface'>zero</a></td>
+ <td>interval from one <a href='SkSurface_Reference#SkSurface'>SkSurface</a> row to the next, or zero</td>
</tr>
<tr> <td><a name='SkCanvas_MakeRasterDirect_props'><code><strong>props</strong></code></a></td>
- <td>LCD striping orientation and setting for <a href='undocumented#Device'>device</a> <a href='undocumented#Device'>independent</a> <a href='undocumented#Device'>fonts</a>;</td>
+ <td>LCD striping orientation and setting for <a href='undocumented#Device'>device</a> independent fonts;</td>
</tr>
</table>
@@ -338,12 +338,12 @@
### Return Value
-<a href='SkCanvas_Reference#SkCanvas'>SkCanvas</a> <a href='SkCanvas_Reference#SkCanvas'>if</a> <a href='SkCanvas_Reference#SkCanvas'>all</a> <a href='SkCanvas_Reference#SkCanvas'>parameters</a> <a href='SkCanvas_Reference#SkCanvas'>are</a> <a href='SkCanvas_Reference#SkCanvas'>valid</a>; <a href='SkCanvas_Reference#SkCanvas'>otherwise</a>, <a href='SkCanvas_Reference#SkCanvas'>nullptr</a>
+<a href='SkCanvas_Reference#SkCanvas'>SkCanvas</a> if all parameters are valid; otherwise, nullptr
### Example
-<div><fiddle-embed name="525285073aae7e53eb8f454a398f880c"><div>Allocates a three by three <a href='SkBitmap_Reference#Bitmap'>bitmap</a>, <a href='SkBitmap_Reference#Bitmap'>clears</a> <a href='SkBitmap_Reference#Bitmap'>it</a> <a href='SkBitmap_Reference#Bitmap'>to</a> <a href='SkBitmap_Reference#Bitmap'>white</a>, <a href='SkBitmap_Reference#Bitmap'>and</a> <a href='SkBitmap_Reference#Bitmap'>draws</a> <a href='SkBitmap_Reference#Bitmap'>a</a> <a href='SkBitmap_Reference#Bitmap'>black</a> <a href='undocumented#Pixel'>pixel</a>
-<a href='undocumented#Pixel'>in</a> <a href='undocumented#Pixel'>the</a> <a href='undocumented#Pixel'>center</a>.
+<div><fiddle-embed name="525285073aae7e53eb8f454a398f880c"><div>Allocates a three by three <a href='SkBitmap_Reference#Bitmap'>bitmap</a>, clears it to white, and draws a black <a href='undocumented#Pixel'>pixel</a>
+in the center.
</div>
#### Example Output
@@ -365,38 +365,38 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-static std::unique_ptr<<a href='SkCanvas_Reference#SkCanvas'>SkCanvas</a>&<a href='SkCanvas_Reference#SkCanvas'>gt</a>; <a href='#SkCanvas_MakeRasterDirectN32'>MakeRasterDirectN32</a>(<a href='#SkCanvas_MakeRasterDirectN32'>int</a> <a href='#SkCanvas_MakeRasterDirectN32'>width</a>, <a href='#SkCanvas_MakeRasterDirectN32'>int</a> <a href='#SkCanvas_MakeRasterDirectN32'>height</a>, <a href='SkColor_Reference#SkPMColor'>SkPMColor</a>* <a href='SkColor_Reference#SkPMColor'>pixels</a>,
- <a href='SkColor_Reference#SkPMColor'>size_t</a> <a href='SkColor_Reference#SkPMColor'>rowBytes</a>)
+static std::unique_ptr<<a href='SkCanvas_Reference#SkCanvas'>SkCanvas</a>> <a href='#SkCanvas_MakeRasterDirectN32'>MakeRasterDirectN32</a>(int width, int height, <a href='SkColor_Reference#SkPMColor'>SkPMColor</a>* pixels,
+ size_t rowBytes)
</pre>
-Allocates raster <a href='SkCanvas_Reference#SkCanvas'>SkCanvas</a> <a href='SkCanvas_Reference#SkCanvas'>specified</a> <a href='SkCanvas_Reference#SkCanvas'>by</a> <a href='SkCanvas_Reference#SkCanvas'>inline</a> <a href='SkImage_Reference#Image'>image</a> <a href='SkImage_Reference#Image'>specification</a>. <a href='SkImage_Reference#Image'>Subsequent</a> <a href='SkCanvas_Reference#SkCanvas'>SkCanvas</a>
+Allocates raster <a href='SkCanvas_Reference#SkCanvas'>SkCanvas</a> specified by inline <a href='SkImage_Reference#Image'>image</a> specification. Subsequent <a href='SkCanvas_Reference#SkCanvas'>SkCanvas</a>
calls draw into <a href='#SkCanvas_MakeRasterDirectN32_pixels'>pixels</a>.
-<a href='SkImageInfo_Reference#SkColorType'>SkColorType</a> <a href='SkImageInfo_Reference#SkColorType'>is</a> <a href='SkImageInfo_Reference#SkColorType'>set</a> <a href='SkImageInfo_Reference#SkColorType'>to</a> <a href='SkImageInfo_Reference#kN32_SkColorType'>kN32_SkColorType</a>.
-<a href='SkImageInfo_Reference#SkAlphaType'>SkAlphaType</a> <a href='SkImageInfo_Reference#SkAlphaType'>is</a> <a href='SkImageInfo_Reference#SkAlphaType'>set</a> <a href='SkImageInfo_Reference#SkAlphaType'>to</a> <a href='SkImageInfo_Reference#kPremul_SkAlphaType'>kPremul_SkAlphaType</a>.
-To access <a href='#SkCanvas_MakeRasterDirectN32_pixels'>pixels</a> <a href='#SkCanvas_MakeRasterDirectN32_pixels'>after</a> <a href='#SkCanvas_MakeRasterDirectN32_pixels'>drawing</a>, <a href='#SkCanvas_MakeRasterDirectN32_pixels'>call</a> <a href='#SkCanvas_flush'>flush()</a> <a href='#SkCanvas_flush'>or</a> <a href='#SkCanvas_peekPixels'>peekPixels</a>().
+<a href='SkImageInfo_Reference#SkColorType'>SkColorType</a> is set to <a href='SkImageInfo_Reference#kN32_SkColorType'>kN32_SkColorType</a>.
+<a href='SkImageInfo_Reference#SkAlphaType'>SkAlphaType</a> is set to <a href='SkImageInfo_Reference#kPremul_SkAlphaType'>kPremul_SkAlphaType</a>.
+To access <a href='#SkCanvas_MakeRasterDirectN32_pixels'>pixels</a> after drawing, call <a href='#SkCanvas_flush'>flush()</a> or <a href='#SkCanvas_peekPixels'>peekPixels</a>().
-<a href='SkCanvas_Reference#SkCanvas'>SkCanvas</a> <a href='SkCanvas_Reference#SkCanvas'>is</a> <a href='SkCanvas_Reference#SkCanvas'>returned</a> <a href='SkCanvas_Reference#SkCanvas'>if</a> <a href='SkCanvas_Reference#SkCanvas'>all</a> <a href='SkCanvas_Reference#SkCanvas'>parameters</a> <a href='SkCanvas_Reference#SkCanvas'>are</a> <a href='SkCanvas_Reference#SkCanvas'>valid</a>.
+<a href='SkCanvas_Reference#SkCanvas'>SkCanvas</a> is returned if all parameters are valid.
Valid parameters include:
-<a href='#SkCanvas_MakeRasterDirectN32_width'>width</a> <a href='#SkCanvas_MakeRasterDirectN32_width'>and</a> <a href='#SkCanvas_MakeRasterDirectN32_height'>height</a> <a href='#SkCanvas_MakeRasterDirectN32_height'>are</a> <a href='#SkCanvas_MakeRasterDirectN32_height'>zero</a> <a href='#SkCanvas_MakeRasterDirectN32_height'>or</a> <a href='#SkCanvas_MakeRasterDirectN32_height'>positive</a>;
-<a href='#SkCanvas_MakeRasterDirectN32_pixels'>pixels</a> <a href='#SkCanvas_MakeRasterDirectN32_pixels'>is</a> <a href='#SkCanvas_MakeRasterDirectN32_pixels'>not</a> <a href='#SkCanvas_MakeRasterDirectN32_pixels'>nullptr</a>;
-<a href='#SkCanvas_MakeRasterDirectN32_rowBytes'>rowBytes</a> <a href='#SkCanvas_MakeRasterDirectN32_rowBytes'>is</a> <a href='#SkCanvas_MakeRasterDirectN32_rowBytes'>zero</a> <a href='#SkCanvas_MakeRasterDirectN32_rowBytes'>or</a> <a href='#SkCanvas_MakeRasterDirectN32_rowBytes'>large</a> <a href='#SkCanvas_MakeRasterDirectN32_rowBytes'>enough</a> <a href='#SkCanvas_MakeRasterDirectN32_rowBytes'>to</a> <a href='#SkCanvas_MakeRasterDirectN32_rowBytes'>contain</a> <a href='#SkCanvas_MakeRasterDirectN32_width'>width</a> <a href='#SkCanvas_MakeRasterDirectN32_pixels'>pixels</a> <a href='#SkCanvas_MakeRasterDirectN32_pixels'>of</a> <a href='SkImageInfo_Reference#kN32_SkColorType'>kN32_SkColorType</a>.
+<a href='#SkCanvas_MakeRasterDirectN32_width'>width</a> and <a href='#SkCanvas_MakeRasterDirectN32_height'>height</a> are zero or positive;
+<a href='#SkCanvas_MakeRasterDirectN32_pixels'>pixels</a> is not nullptr;
+<a href='#SkCanvas_MakeRasterDirectN32_rowBytes'>rowBytes</a> is zero or large enough to contain <a href='#SkCanvas_MakeRasterDirectN32_width'>width</a> <a href='#SkCanvas_MakeRasterDirectN32_pixels'>pixels</a> of <a href='SkImageInfo_Reference#kN32_SkColorType'>kN32_SkColorType</a>.
-Pass zero for <a href='#SkCanvas_MakeRasterDirectN32_rowBytes'>rowBytes</a> <a href='#SkCanvas_MakeRasterDirectN32_rowBytes'>to</a> <a href='#SkCanvas_MakeRasterDirectN32_rowBytes'>compute</a> <a href='#SkCanvas_MakeRasterDirectN32_rowBytes'>rowBytes</a> <a href='#SkCanvas_MakeRasterDirectN32_rowBytes'>from</a> <a href='#SkCanvas_MakeRasterDirectN32_width'>width</a> <a href='#SkCanvas_MakeRasterDirectN32_width'>and</a> <a href='undocumented#Size'>size</a> <a href='undocumented#Size'>of</a> <a href='undocumented#Pixel'>pixel</a>.
-If <a href='#SkCanvas_MakeRasterDirectN32_rowBytes'>rowBytes</a> <a href='#SkCanvas_MakeRasterDirectN32_rowBytes'>is</a> <a href='#SkCanvas_MakeRasterDirectN32_rowBytes'>greater</a> <a href='#SkCanvas_MakeRasterDirectN32_rowBytes'>than</a> <a href='#SkCanvas_MakeRasterDirectN32_rowBytes'>zero</a>, <a href='#SkCanvas_MakeRasterDirectN32_rowBytes'>it</a> <a href='#SkCanvas_MakeRasterDirectN32_rowBytes'>must</a> <a href='#SkCanvas_MakeRasterDirectN32_rowBytes'>be</a> <a href='#SkCanvas_MakeRasterDirectN32_rowBytes'>equal</a> <a href='#SkCanvas_MakeRasterDirectN32_rowBytes'>to</a> <a href='#SkCanvas_MakeRasterDirectN32_rowBytes'>or</a> <a href='#SkCanvas_MakeRasterDirectN32_rowBytes'>greater</a> <a href='#SkCanvas_MakeRasterDirectN32_rowBytes'>than</a>
-<a href='#SkCanvas_MakeRasterDirectN32_width'>width</a> <a href='#SkCanvas_MakeRasterDirectN32_width'>times</a> <a href='#SkCanvas_MakeRasterDirectN32_width'>bytes</a> <a href='#SkCanvas_MakeRasterDirectN32_width'>required</a> <a href='#SkCanvas_MakeRasterDirectN32_width'>for</a> <a href='SkImageInfo_Reference#SkColorType'>SkColorType</a>.
+Pass zero for <a href='#SkCanvas_MakeRasterDirectN32_rowBytes'>rowBytes</a> to compute <a href='#SkCanvas_MakeRasterDirectN32_rowBytes'>rowBytes</a> from <a href='#SkCanvas_MakeRasterDirectN32_width'>width</a> and <a href='undocumented#Size'>size</a> of <a href='undocumented#Pixel'>pixel</a>.
+If <a href='#SkCanvas_MakeRasterDirectN32_rowBytes'>rowBytes</a> is greater than zero, it must be equal to or greater than
+<a href='#SkCanvas_MakeRasterDirectN32_width'>width</a> times bytes required for <a href='SkImageInfo_Reference#SkColorType'>SkColorType</a>.
-<a href='undocumented#Pixel'>Pixel</a> <a href='undocumented#Pixel'>buffer</a> <a href='undocumented#Size'>size</a> <a href='undocumented#Size'>should</a> <a href='undocumented#Size'>be</a> <a href='#SkCanvas_MakeRasterDirectN32_height'>height</a> <a href='#SkCanvas_MakeRasterDirectN32_height'>times</a> <a href='#SkCanvas_MakeRasterDirectN32_rowBytes'>rowBytes</a>.
+<a href='undocumented#Pixel'>Pixel</a> buffer <a href='undocumented#Size'>size</a> should be <a href='#SkCanvas_MakeRasterDirectN32_height'>height</a> times <a href='#SkCanvas_MakeRasterDirectN32_rowBytes'>rowBytes</a>.
### Parameters
<table> <tr> <td><a name='SkCanvas_MakeRasterDirectN32_width'><code><strong>width</strong></code></a></td>
- <td><a href='undocumented#Pixel'>pixel</a> <a href='undocumented#Pixel'>column</a> <a href='undocumented#Pixel'>count</a> <a href='undocumented#Pixel'>on</a> <a href='undocumented#Raster_Surface'>raster surface</a> <a href='undocumented#Pixel'>created</a>; <a href='undocumented#Pixel'>must</a> <a href='undocumented#Pixel'>be</a> <a href='undocumented#Pixel'>zero</a> <a href='undocumented#Pixel'>or</a> <a href='undocumented#Pixel'>greater</a></td>
+ <td><a href='undocumented#Pixel'>pixel</a> column count on <a href='undocumented#Raster_Surface'>raster surface</a> created; must be zero or greater</td>
</tr>
<tr> <td><a name='SkCanvas_MakeRasterDirectN32_height'><code><strong>height</strong></code></a></td>
- <td><a href='undocumented#Pixel'>pixel</a> <a href='undocumented#Pixel'>row</a> <a href='undocumented#Pixel'>count</a> <a href='undocumented#Pixel'>on</a> <a href='undocumented#Raster_Surface'>raster surface</a> <a href='undocumented#Pixel'>created</a>; <a href='undocumented#Pixel'>must</a> <a href='undocumented#Pixel'>be</a> <a href='undocumented#Pixel'>zero</a> <a href='undocumented#Pixel'>or</a> <a href='undocumented#Pixel'>greater</a></td>
+ <td><a href='undocumented#Pixel'>pixel</a> row count on <a href='undocumented#Raster_Surface'>raster surface</a> created; must be zero or greater</td>
</tr>
<tr> <td><a name='SkCanvas_MakeRasterDirectN32_pixels'><code><strong>pixels</strong></code></a></td>
- <td>pointer to destination <a href='#SkCanvas_MakeRasterDirectN32_pixels'>pixels</a> <a href='#SkCanvas_MakeRasterDirectN32_pixels'>buffer</a>; <a href='#SkCanvas_MakeRasterDirectN32_pixels'>buffer</a> <a href='undocumented#Size'>size</a> <a href='undocumented#Size'>should</a> <a href='undocumented#Size'>be</a> <a href='#SkCanvas_MakeRasterDirectN32_height'>height</a></td>
+ <td>pointer to destination <a href='#SkCanvas_MakeRasterDirectN32_pixels'>pixels</a> buffer; buffer <a href='undocumented#Size'>size</a> should be <a href='#SkCanvas_MakeRasterDirectN32_height'>height</a></td>
</tr>
</table>
@@ -405,18 +405,18 @@
### Parameters
<table> <tr> <td><a name='SkCanvas_MakeRasterDirectN32_rowBytes'><code><strong>rowBytes</strong></code></a></td>
- <td>interval from one <a href='SkSurface_Reference#SkSurface'>SkSurface</a> <a href='SkSurface_Reference#SkSurface'>row</a> <a href='SkSurface_Reference#SkSurface'>to</a> <a href='SkSurface_Reference#SkSurface'>the</a> <a href='SkSurface_Reference#SkSurface'>next</a>, <a href='SkSurface_Reference#SkSurface'>or</a> <a href='SkSurface_Reference#SkSurface'>zero</a></td>
+ <td>interval from one <a href='SkSurface_Reference#SkSurface'>SkSurface</a> row to the next, or zero</td>
</tr>
</table>
### Return Value
-<a href='SkCanvas_Reference#SkCanvas'>SkCanvas</a> <a href='SkCanvas_Reference#SkCanvas'>if</a> <a href='SkCanvas_Reference#SkCanvas'>all</a> <a href='SkCanvas_Reference#SkCanvas'>parameters</a> <a href='SkCanvas_Reference#SkCanvas'>are</a> <a href='SkCanvas_Reference#SkCanvas'>valid</a>; <a href='SkCanvas_Reference#SkCanvas'>otherwise</a>, <a href='SkCanvas_Reference#SkCanvas'>nullptr</a>
+<a href='SkCanvas_Reference#SkCanvas'>SkCanvas</a> if all parameters are valid; otherwise, nullptr
### Example
-<div><fiddle-embed name="87f55e62ec4c3535e1a5d0f1415b20c6"><div>Allocates a three by three <a href='SkBitmap_Reference#Bitmap'>bitmap</a>, <a href='SkBitmap_Reference#Bitmap'>clears</a> <a href='SkBitmap_Reference#Bitmap'>it</a> <a href='SkBitmap_Reference#Bitmap'>to</a> <a href='SkBitmap_Reference#Bitmap'>white</a>, <a href='SkBitmap_Reference#Bitmap'>and</a> <a href='SkBitmap_Reference#Bitmap'>draws</a> <a href='SkBitmap_Reference#Bitmap'>a</a> <a href='SkBitmap_Reference#Bitmap'>black</a> <a href='undocumented#Pixel'>pixel</a>
-<a href='undocumented#Pixel'>in</a> <a href='undocumented#Pixel'>the</a> <a href='undocumented#Pixel'>center</a>.
+<div><fiddle-embed name="87f55e62ec4c3535e1a5d0f1415b20c6"><div>Allocates a three by three <a href='SkBitmap_Reference#Bitmap'>bitmap</a>, clears it to white, and draws a black <a href='undocumented#Pixel'>pixel</a>
+in the center.
</div>
#### Example Output
@@ -441,7 +441,7 @@
<a href='#SkCanvas_empty_constructor'>SkCanvas()</a>
</pre>
-Creates an empty <a href='SkCanvas_Reference#SkCanvas'>SkCanvas</a> <a href='SkCanvas_Reference#SkCanvas'>with</a> <a href='SkCanvas_Reference#SkCanvas'>no</a> <a href='SkCanvas_Reference#SkCanvas'>backing</a> <a href='undocumented#Device'>device</a> <a href='undocumented#Device'>or</a> <a href='undocumented#Device'>pixels</a>, <a href='undocumented#Device'>with</a>
+Creates an empty <a href='SkCanvas_Reference#SkCanvas'>SkCanvas</a> with no backing <a href='undocumented#Device'>device</a> or pixels, with
a width and height of zero.
### Return Value
@@ -472,16 +472,16 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-<a href='SkCanvas_Reference#SkCanvas'>SkCanvas</a>(<a href='SkCanvas_Reference#SkCanvas'>int</a> <a href='SkCanvas_Reference#SkCanvas'>width</a>, <a href='SkCanvas_Reference#SkCanvas'>int</a> <a href='SkCanvas_Reference#SkCanvas'>height</a>, <a href='SkCanvas_Reference#SkCanvas'>const</a> <a href='undocumented#SkSurfaceProps'>SkSurfaceProps</a>* <a href='undocumented#SkSurfaceProps'>props</a> = <a href='undocumented#SkSurfaceProps'>nullptr</a>)
+<a href='SkCanvas_Reference#SkCanvas'>SkCanvas</a>(int width, int height, const <a href='undocumented#SkSurfaceProps'>SkSurfaceProps</a>* props = nullptr)
</pre>
-Creates <a href='SkCanvas_Reference#SkCanvas'>SkCanvas</a> <a href='SkCanvas_Reference#SkCanvas'>of</a> <a href='SkCanvas_Reference#SkCanvas'>the</a> <a href='SkCanvas_Reference#SkCanvas'>specified</a> <a href='SkCanvas_Reference#SkCanvas'>dimensions</a> <a href='SkCanvas_Reference#SkCanvas'>without</a> <a href='SkCanvas_Reference#SkCanvas'>a</a> <a href='SkSurface_Reference#SkSurface'>SkSurface</a>.
+Creates <a href='SkCanvas_Reference#SkCanvas'>SkCanvas</a> of the specified dimensions without a <a href='SkSurface_Reference#SkSurface'>SkSurface</a>.
Used by subclasses with custom implementations for draw member functions.
-If <a href='#SkCanvas_int_int_const_SkSurfaceProps_star_props'>props</a> <a href='#SkCanvas_int_int_const_SkSurfaceProps_star_props'>equals</a> <a href='#SkCanvas_int_int_const_SkSurfaceProps_star_props'>nullptr</a>, <a href='undocumented#SkSurfaceProps'>SkSurfaceProps</a> <a href='undocumented#SkSurfaceProps'>are</a> <a href='undocumented#SkSurfaceProps'>created</a> <a href='undocumented#SkSurfaceProps'>with</a>
-<a href='undocumented#SkSurfaceProps'>SkSurfaceProps</a>::<a href='#SkSurfaceProps_InitType'>InitType</a> <a href='#SkSurfaceProps_InitType'>settings</a>, <a href='#SkSurfaceProps_InitType'>which</a> <a href='#SkSurfaceProps_InitType'>choose</a> <a href='#SkSurfaceProps_InitType'>the</a> <a href='undocumented#Pixel'>pixel</a> <a href='undocumented#Pixel'>striping</a>
+If <a href='#SkCanvas_int_int_const_SkSurfaceProps_star_props'>props</a> equals nullptr, <a href='undocumented#SkSurfaceProps'>SkSurfaceProps</a> are created with
+<a href='undocumented#SkSurfaceProps'>SkSurfaceProps</a>::<a href='#SkSurfaceProps_InitType'>InitType</a> settings, which choose the <a href='undocumented#Pixel'>pixel</a> striping
direction and order. Since a platform may dynamically change its direction when
-the <a href='undocumented#Device'>device</a> <a href='undocumented#Device'>is</a> <a href='undocumented#Device'>rotated</a>, <a href='undocumented#Device'>and</a> <a href='undocumented#Device'>since</a> <a href='undocumented#Device'>a</a> <a href='undocumented#Device'>platform</a> <a href='undocumented#Device'>may</a> <a href='undocumented#Device'>have</a> <a href='undocumented#Device'>multiple</a> <a href='undocumented#Device'>monitors</a> <a href='undocumented#Device'>with</a>
+the <a href='undocumented#Device'>device</a> is rotated, and since a platform may have multiple monitors with
different characteristics, it is best not to rely on this legacy behavior.
### Parameters
@@ -493,7 +493,7 @@
<td>zero or greater</td>
</tr>
<tr> <td><a name='SkCanvas_int_int_const_SkSurfaceProps_star_props'><code><strong>props</strong></code></a></td>
- <td>LCD striping orientation and setting for <a href='undocumented#Device'>device</a> <a href='undocumented#Device'>independent</a> <a href='undocumented#Device'>fonts</a>;</td>
+ <td>LCD striping orientation and setting for <a href='undocumented#Device'>device</a> independent fonts;</td>
</tr>
</table>
@@ -501,7 +501,7 @@
### Return Value
-<a href='SkCanvas_Reference#SkCanvas'>SkCanvas</a> <a href='SkCanvas_Reference#SkCanvas'>placeholder</a> <a href='SkCanvas_Reference#SkCanvas'>with</a> <a href='SkCanvas_Reference#SkCanvas'>dimensions</a>
+<a href='SkCanvas_Reference#SkCanvas'>SkCanvas</a> placeholder with dimensions
### Example
@@ -524,7 +524,7 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-explicit <a href='SkCanvas_Reference#SkCanvas'>SkCanvas</a>(<a href='undocumented#sk_sp'>sk_sp</a>&<a href='undocumented#sk_sp'>lt</a>;<a href='undocumented#SkBaseDevice'>SkBaseDevice</a>&<a href='undocumented#SkBaseDevice'>gt</a>; <a href='undocumented#Device'>device</a>)
+explicit <a href='SkCanvas_Reference#SkCanvas'>SkCanvas</a>(<a href='undocumented#sk_sp'>sk_sp</a><<a href='undocumented#SkBaseDevice'>SkBaseDevice</a>> <a href='undocumented#Device'>device</a>)
</pre>
To be deprecated soon.
@@ -534,13 +534,13 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-explicit <a href='SkCanvas_Reference#SkCanvas'>SkCanvas</a>(<a href='SkCanvas_Reference#SkCanvas'>const</a> <a href='SkBitmap_Reference#SkBitmap'>SkBitmap</a>& <a href='SkBitmap_Reference#Bitmap'>bitmap</a>)
+explicit <a href='SkCanvas_Reference#SkCanvas'>SkCanvas</a>(const <a href='SkBitmap_Reference#SkBitmap'>SkBitmap</a>& <a href='SkBitmap_Reference#Bitmap'>bitmap</a>)
</pre>
-Constructs a <a href='SkCanvas_Reference#Canvas'>canvas</a> <a href='SkCanvas_Reference#Canvas'>that</a> <a href='SkCanvas_Reference#Canvas'>draws</a> <a href='SkCanvas_Reference#Canvas'>into</a> <a href='#SkCanvas_copy_const_SkBitmap_bitmap'>bitmap</a>.
-Sets <a href='undocumented#SkSurfaceProps'>SkSurfaceProps</a>::<a href='#SkSurfaceProps_kLegacyFontHost_InitType'>kLegacyFontHost_InitType</a> <a href='#SkSurfaceProps_kLegacyFontHost_InitType'>in</a> <a href='#SkSurfaceProps_kLegacyFontHost_InitType'>constructed</a> <a href='SkSurface_Reference#SkSurface'>SkSurface</a>.
+Constructs a <a href='SkCanvas_Reference#Canvas'>canvas</a> that draws into <a href='#SkCanvas_copy_const_SkBitmap_bitmap'>bitmap</a>.
+Sets <a href='undocumented#SkSurfaceProps'>SkSurfaceProps</a>::<a href='#SkSurfaceProps_kLegacyFontHost_InitType'>kLegacyFontHost_InitType</a> in constructed <a href='SkSurface_Reference#SkSurface'>SkSurface</a>.
-<a href='SkBitmap_Reference#SkBitmap'>SkBitmap</a> <a href='SkBitmap_Reference#SkBitmap'>is</a> <a href='SkBitmap_Reference#SkBitmap'>copied</a> <a href='SkBitmap_Reference#SkBitmap'>so</a> <a href='SkBitmap_Reference#SkBitmap'>that</a> <a href='SkBitmap_Reference#SkBitmap'>subsequently</a> <a href='SkBitmap_Reference#SkBitmap'>editing</a> <a href='#SkCanvas_copy_const_SkBitmap_bitmap'>bitmap</a> <a href='#SkCanvas_copy_const_SkBitmap_bitmap'>will</a> <a href='#SkCanvas_copy_const_SkBitmap_bitmap'>not</a> <a href='#SkCanvas_copy_const_SkBitmap_bitmap'>affect</a>
+<a href='SkBitmap_Reference#SkBitmap'>SkBitmap</a> is copied so that subsequently editing <a href='#SkCanvas_copy_const_SkBitmap_bitmap'>bitmap</a> will not affect
constructed <a href='SkCanvas_Reference#SkCanvas'>SkCanvas</a>.
May be deprecated in the future.
@@ -548,7 +548,7 @@
### Parameters
<table> <tr> <td><a name='SkCanvas_copy_const_SkBitmap_bitmap'><code><strong>bitmap</strong></code></a></td>
- <td>width, height, <a href='SkImageInfo_Reference#SkColorType'>SkColorType</a>, <a href='SkImageInfo_Reference#SkAlphaType'>SkAlphaType</a>, <a href='SkImageInfo_Reference#SkAlphaType'>and</a> <a href='undocumented#Pixel'>pixel</a></td>
+ <td>width, height, <a href='SkImageInfo_Reference#SkColorType'>SkColorType</a>, <a href='SkImageInfo_Reference#SkAlphaType'>SkAlphaType</a>, and <a href='undocumented#Pixel'>pixel</a></td>
</tr>
</table>
@@ -556,7 +556,7 @@
### Return Value
-<a href='SkCanvas_Reference#SkCanvas'>SkCanvas</a> <a href='SkCanvas_Reference#SkCanvas'>that</a> <a href='SkCanvas_Reference#SkCanvas'>can</a> <a href='SkCanvas_Reference#SkCanvas'>be</a> <a href='SkCanvas_Reference#SkCanvas'>used</a> <a href='SkCanvas_Reference#SkCanvas'>to</a> <a href='SkCanvas_Reference#SkCanvas'>draw</a> <a href='SkCanvas_Reference#SkCanvas'>into</a> <a href='#SkCanvas_copy_const_SkBitmap_bitmap'>bitmap</a>
+<a href='SkCanvas_Reference#SkCanvas'>SkCanvas</a> that can be used to draw into <a href='#SkCanvas_copy_const_SkBitmap_bitmap'>bitmap</a>
### Example
@@ -617,7 +617,7 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-<a href='SkCanvas_Reference#SkCanvas'>SkCanvas</a>(<a href='SkCanvas_Reference#SkCanvas'>const</a> <a href='SkBitmap_Reference#SkBitmap'>SkBitmap</a>& <a href='SkBitmap_Reference#Bitmap'>bitmap</a>, <a href='#SkCanvas_ColorBehavior'>ColorBehavior</a> <a href='#SkCanvas_ColorBehavior'>behavior</a>)
+<a href='SkCanvas_Reference#SkCanvas'>SkCanvas</a>(const <a href='SkBitmap_Reference#SkBitmap'>SkBitmap</a>& <a href='SkBitmap_Reference#Bitmap'>bitmap</a>, <a href='#SkCanvas_ColorBehavior'>ColorBehavior</a> behavior)
</pre>
For use by Android framework only.
@@ -625,7 +625,7 @@
### Parameters
<table> <tr> <td><a name='SkCanvas_const_SkBitmap_bitmap'><code><strong>bitmap</strong></code></a></td>
- <td>specifies a <a href='#SkCanvas_const_SkBitmap_bitmap'>bitmap</a> <a href='#SkCanvas_const_SkBitmap_bitmap'>for</a> <a href='#SkCanvas_const_SkBitmap_bitmap'>the</a> <a href='SkCanvas_Reference#Canvas'>canvas</a> <a href='SkCanvas_Reference#Canvas'>to</a> <a href='SkCanvas_Reference#Canvas'>draw</a> <a href='SkCanvas_Reference#Canvas'>into</a></td>
+ <td>specifies a <a href='#SkCanvas_const_SkBitmap_bitmap'>bitmap</a> for the <a href='SkCanvas_Reference#Canvas'>canvas</a> to draw into</td>
</tr>
<tr> <td><a name='SkCanvas_const_SkBitmap_behavior'><code><strong>behavior</strong></code></a></td>
<td>specializes this constructor; value is unused</td>
@@ -634,20 +634,20 @@
### Return Value
-<a href='SkCanvas_Reference#SkCanvas'>SkCanvas</a> <a href='SkCanvas_Reference#SkCanvas'>that</a> <a href='SkCanvas_Reference#SkCanvas'>can</a> <a href='SkCanvas_Reference#SkCanvas'>be</a> <a href='SkCanvas_Reference#SkCanvas'>used</a> <a href='SkCanvas_Reference#SkCanvas'>to</a> <a href='SkCanvas_Reference#SkCanvas'>draw</a> <a href='SkCanvas_Reference#SkCanvas'>into</a> <a href='#SkCanvas_const_SkBitmap_bitmap'>bitmap</a>
+<a href='SkCanvas_Reference#SkCanvas'>SkCanvas</a> that can be used to draw into <a href='#SkCanvas_const_SkBitmap_bitmap'>bitmap</a>
<a name='SkCanvas_const_SkBitmap_const_SkSurfaceProps'></a>
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-<a href='SkCanvas_Reference#SkCanvas'>SkCanvas</a>(<a href='SkCanvas_Reference#SkCanvas'>const</a> <a href='SkBitmap_Reference#SkBitmap'>SkBitmap</a>& <a href='SkBitmap_Reference#Bitmap'>bitmap</a>, <a href='SkBitmap_Reference#Bitmap'>const</a> <a href='undocumented#SkSurfaceProps'>SkSurfaceProps</a>& <a href='undocumented#SkSurfaceProps'>props</a>)
+<a href='SkCanvas_Reference#SkCanvas'>SkCanvas</a>(const <a href='SkBitmap_Reference#SkBitmap'>SkBitmap</a>& <a href='SkBitmap_Reference#Bitmap'>bitmap</a>, const <a href='undocumented#SkSurfaceProps'>SkSurfaceProps</a>& props)
</pre>
-Constructs a <a href='SkCanvas_Reference#Canvas'>canvas</a> <a href='SkCanvas_Reference#Canvas'>that</a> <a href='SkCanvas_Reference#Canvas'>draws</a> <a href='SkCanvas_Reference#Canvas'>into</a> <a href='#SkCanvas_const_SkBitmap_const_SkSurfaceProps_bitmap'>bitmap</a>.
-Use <a href='#SkCanvas_const_SkBitmap_const_SkSurfaceProps_props'>props</a> <a href='#SkCanvas_const_SkBitmap_const_SkSurfaceProps_props'>to</a> <a href='#SkCanvas_const_SkBitmap_const_SkSurfaceProps_props'>match</a> <a href='#SkCanvas_const_SkBitmap_const_SkSurfaceProps_props'>the</a> <a href='undocumented#Device'>device</a> <a href='undocumented#Device'>characteristics</a>, <a href='undocumented#Device'>like</a> <a href='undocumented#Device'>LCD</a> <a href='undocumented#Device'>striping</a>.
+Constructs a <a href='SkCanvas_Reference#Canvas'>canvas</a> that draws into <a href='#SkCanvas_const_SkBitmap_const_SkSurfaceProps_bitmap'>bitmap</a>.
+Use <a href='#SkCanvas_const_SkBitmap_const_SkSurfaceProps_props'>props</a> to match the <a href='undocumented#Device'>device</a> characteristics, like LCD striping.
-<a href='#SkCanvas_const_SkBitmap_const_SkSurfaceProps_bitmap'>bitmap</a> <a href='#SkCanvas_const_SkBitmap_const_SkSurfaceProps_bitmap'>is</a> <a href='#SkCanvas_const_SkBitmap_const_SkSurfaceProps_bitmap'>copied</a> <a href='#SkCanvas_const_SkBitmap_const_SkSurfaceProps_bitmap'>so</a> <a href='#SkCanvas_const_SkBitmap_const_SkSurfaceProps_bitmap'>that</a> <a href='#SkCanvas_const_SkBitmap_const_SkSurfaceProps_bitmap'>subsequently</a> <a href='#SkCanvas_const_SkBitmap_const_SkSurfaceProps_bitmap'>editing</a> <a href='#SkCanvas_const_SkBitmap_const_SkSurfaceProps_bitmap'>bitmap</a> <a href='#SkCanvas_const_SkBitmap_const_SkSurfaceProps_bitmap'>will</a> <a href='#SkCanvas_const_SkBitmap_const_SkSurfaceProps_bitmap'>not</a> <a href='#SkCanvas_const_SkBitmap_const_SkSurfaceProps_bitmap'>affect</a>
+<a href='#SkCanvas_const_SkBitmap_const_SkSurfaceProps_bitmap'>bitmap</a> is copied so that subsequently editing <a href='#SkCanvas_const_SkBitmap_const_SkSurfaceProps_bitmap'>bitmap</a> will not affect
constructed <a href='SkCanvas_Reference#SkCanvas'>SkCanvas</a>.
### Parameters
@@ -657,7 +657,7 @@
</tr>
</table>
-and <a href='undocumented#Pixel_Storage'>pixel storage</a> <a href='undocumented#Pixel'>of</a> <a href='undocumented#Raster_Surface'>raster surface</a>
+and <a href='undocumented#Pixel_Storage'>pixel storage</a> of <a href='undocumented#Raster_Surface'>raster surface</a>
### Parameters
@@ -666,11 +666,11 @@
</tr>
</table>
-<a href='undocumented#Device'>device</a> <a href='undocumented#Device'>independent</a> <a href='undocumented#Device'>fonts</a>
+<a href='undocumented#Device'>device</a> independent fonts
### Return Value
-<a href='SkCanvas_Reference#SkCanvas'>SkCanvas</a> <a href='SkCanvas_Reference#SkCanvas'>that</a> <a href='SkCanvas_Reference#SkCanvas'>can</a> <a href='SkCanvas_Reference#SkCanvas'>be</a> <a href='SkCanvas_Reference#SkCanvas'>used</a> <a href='SkCanvas_Reference#SkCanvas'>to</a> <a href='SkCanvas_Reference#SkCanvas'>draw</a> <a href='SkCanvas_Reference#SkCanvas'>into</a> <a href='#SkCanvas_const_SkBitmap_const_SkSurfaceProps_bitmap'>bitmap</a>
+<a href='SkCanvas_Reference#SkCanvas'>SkCanvas</a> that can be used to draw into <a href='#SkCanvas_const_SkBitmap_const_SkSurfaceProps_bitmap'>bitmap</a>
### Example
@@ -707,15 +707,15 @@
virtual ~<a href='#SkCanvas_empty_constructor'>SkCanvas()</a>
</pre>
-Draws saved <a href='SkCanvas_Reference#Layer'>layers</a>, <a href='SkCanvas_Reference#Layer'>if</a> <a href='SkCanvas_Reference#Layer'>any</a>.
+Draws saved <a href='SkCanvas_Reference#Layer'>layers</a>, if any.
Frees up resources used by <a href='SkCanvas_Reference#SkCanvas'>SkCanvas</a>.
### Example
-<div><fiddle-embed name="b7bc91ff16c9b9351b2a127f35394b82"><div><a href='SkCanvas_Reference#Canvas'>Canvas</a> <a href='SkCanvas_Reference#Layer'>Layer</a> <a href='SkCanvas_Reference#Layer'>draws</a> <a href='SkCanvas_Reference#Layer'>into</a> <a href='SkBitmap_Reference#Bitmap'>bitmap</a>. <a href='#SkCanvas_saveLayerAlpha'>saveLayerAlpha</a> <a href='#SkCanvas_saveLayerAlpha'>sets</a> <a href='#SkCanvas_saveLayerAlpha'>up</a> <a href='#SkCanvas_saveLayerAlpha'>an</a> <a href='#SkCanvas_saveLayerAlpha'>additional</a>
-<a href='#SkCanvas_saveLayerAlpha'>drawing</a> <a href='SkSurface_Reference#Surface'>surface</a> <a href='SkSurface_Reference#Surface'>that</a> <a href='SkSurface_Reference#Surface'>blends</a> <a href='SkSurface_Reference#Surface'>with</a> <a href='SkSurface_Reference#Surface'>the</a> <a href='SkBitmap_Reference#Bitmap'>bitmap</a>. <a href='SkBitmap_Reference#Bitmap'>When</a> <a href='SkCanvas_Reference#Layer'>Layer</a> <a href='SkCanvas_Reference#Layer'>goes</a> <a href='SkCanvas_Reference#Layer'>out</a> <a href='SkCanvas_Reference#Layer'>of</a>
-<a href='SkCanvas_Reference#Layer'>scope</a>, <a href='SkCanvas_Reference#Layer'>Layer</a> <a href='SkCanvas_Reference#Layer'>destructor</a> <a href='SkCanvas_Reference#Layer'>is</a> <a href='SkCanvas_Reference#Layer'>called</a>. <a href='SkCanvas_Reference#Layer'>The</a> <a href='SkCanvas_Reference#Layer'>saved</a> <a href='SkCanvas_Reference#Layer'>Layer</a> <a href='SkCanvas_Reference#Layer'>is</a> <a href='SkCanvas_Reference#Layer'>restored</a>, <a href='SkCanvas_Reference#Layer'>drawing</a>
-<a href='SkCanvas_Reference#Layer'>transparent</a> <a href='SkCanvas_Reference#Layer'>letters</a>.
+<div><fiddle-embed name="b7bc91ff16c9b9351b2a127f35394b82"><div><a href='SkCanvas_Reference#Canvas'>Canvas</a> <a href='SkCanvas_Reference#Layer'>Layer</a> draws into <a href='SkBitmap_Reference#Bitmap'>bitmap</a>. <a href='#SkCanvas_saveLayerAlpha'>saveLayerAlpha</a> sets up an additional
+drawing <a href='SkSurface_Reference#Surface'>surface</a> that blends with the <a href='SkBitmap_Reference#Bitmap'>bitmap</a>. When <a href='SkCanvas_Reference#Layer'>Layer</a> goes out of
+scope, <a href='SkCanvas_Reference#Layer'>Layer</a> destructor is called. The saved <a href='SkCanvas_Reference#Layer'>Layer</a> is restored, drawing
+transparent letters.
</div></fiddle-embed></div>
### See Also
@@ -732,8 +732,8 @@
<a href='undocumented#SkMetaData'>SkMetaData</a>& <a href='#SkCanvas_getMetaData'>getMetaData</a>()
</pre>
-Returns storage to associate additional <a href='undocumented#Data'>data</a> <a href='undocumented#Data'>with</a> <a href='undocumented#Data'>the</a> <a href='SkCanvas_Reference#Canvas'>canvas</a>.
-The storage is freed when <a href='SkCanvas_Reference#SkCanvas'>SkCanvas</a> <a href='SkCanvas_Reference#SkCanvas'>is</a> <a href='SkCanvas_Reference#SkCanvas'>deleted</a>.
+Returns storage to associate additional <a href='undocumented#Data'>data</a> with the <a href='SkCanvas_Reference#Canvas'>canvas</a>.
+The storage is freed when <a href='SkCanvas_Reference#SkCanvas'>SkCanvas</a> is deleted.
### Return Value
@@ -762,15 +762,15 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-<a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a> <a href='#SkCanvas_imageInfo'>imageInfo</a>() <a href='#SkCanvas_imageInfo'>const</a>
+<a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a> <a href='#SkCanvas_imageInfo'>imageInfo</a>() const
</pre>
-Returns <a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a> <a href='SkImageInfo_Reference#SkImageInfo'>for</a> <a href='SkCanvas_Reference#SkCanvas'>SkCanvas</a>. <a href='SkCanvas_Reference#SkCanvas'>If</a> <a href='SkCanvas_Reference#SkCanvas'>SkCanvas</a> <a href='SkCanvas_Reference#SkCanvas'>is</a> <a href='SkCanvas_Reference#SkCanvas'>not</a> <a href='SkCanvas_Reference#SkCanvas'>associated</a> <a href='SkCanvas_Reference#SkCanvas'>with</a> <a href='SkCanvas_Reference#SkCanvas'>raster</a> <a href='SkSurface_Reference#Surface'>surface</a> <a href='SkSurface_Reference#Surface'>or</a>
-GPU <a href='SkSurface_Reference#Surface'>surface</a>, <a href='SkSurface_Reference#Surface'>returned</a> <a href='SkImageInfo_Reference#SkColorType'>SkColorType</a> <a href='SkImageInfo_Reference#SkColorType'>is</a> <a href='SkImageInfo_Reference#SkColorType'>set</a> <a href='SkImageInfo_Reference#SkColorType'>to</a> <a href='SkImageInfo_Reference#kUnknown_SkColorType'>kUnknown_SkColorType</a>.
+Returns <a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a> for <a href='SkCanvas_Reference#SkCanvas'>SkCanvas</a>. If <a href='SkCanvas_Reference#SkCanvas'>SkCanvas</a> is not associated with raster <a href='SkSurface_Reference#Surface'>surface</a> or
+GPU <a href='SkSurface_Reference#Surface'>surface</a>, returned <a href='SkImageInfo_Reference#SkColorType'>SkColorType</a> is set to <a href='SkImageInfo_Reference#kUnknown_SkColorType'>kUnknown_SkColorType</a>.
### Return Value
-dimensions and <a href='SkImageInfo_Reference#SkColorType'>SkColorType</a> <a href='SkImageInfo_Reference#SkColorType'>of</a> <a href='SkCanvas_Reference#SkCanvas'>SkCanvas</a>
+dimensions and <a href='SkImageInfo_Reference#SkColorType'>SkColorType</a> of <a href='SkCanvas_Reference#SkCanvas'>SkCanvas</a>
### Example
@@ -793,11 +793,11 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-bool <a href='#SkCanvas_getProps'>getProps</a>(<a href='undocumented#SkSurfaceProps'>SkSurfaceProps</a>* <a href='undocumented#SkSurfaceProps'>props</a>) <a href='undocumented#SkSurfaceProps'>const</a>
+bool <a href='#SkCanvas_getProps'>getProps</a>(<a href='undocumented#SkSurfaceProps'>SkSurfaceProps</a>* props) const
</pre>
-Copies <a href='undocumented#SkSurfaceProps'>SkSurfaceProps</a>, <a href='undocumented#SkSurfaceProps'>if</a> <a href='SkCanvas_Reference#SkCanvas'>SkCanvas</a> <a href='SkCanvas_Reference#SkCanvas'>is</a> <a href='SkCanvas_Reference#SkCanvas'>associated</a> <a href='SkCanvas_Reference#SkCanvas'>with</a> <a href='undocumented#Raster_Surface'>raster surface</a> <a href='SkCanvas_Reference#SkCanvas'>or</a>
-<a href='undocumented#GPU_Surface'>GPU surface</a>, and returns true. Otherwise, returns false and leave <a href='#SkCanvas_getProps_props'>props</a> <a href='#SkCanvas_getProps_props'>unchanged</a>.
+Copies <a href='undocumented#SkSurfaceProps'>SkSurfaceProps</a>, if <a href='SkCanvas_Reference#SkCanvas'>SkCanvas</a> is associated with <a href='undocumented#Raster_Surface'>raster surface</a> or
+<a href='undocumented#GPU_Surface'>GPU surface</a>, and returns true. Otherwise, returns false and leave <a href='#SkCanvas_getProps_props'>props</a> unchanged.
### Parameters
@@ -808,7 +808,7 @@
### Return Value
-true if <a href='undocumented#SkSurfaceProps'>SkSurfaceProps</a> <a href='undocumented#SkSurfaceProps'>was</a> <a href='undocumented#SkSurfaceProps'>copied</a>
+true if <a href='undocumented#SkSurfaceProps'>SkSurfaceProps</a> was copied
### Example
@@ -838,8 +838,8 @@
</pre>
Triggers the immediate execution of all pending draw operations.
-If <a href='SkCanvas_Reference#SkCanvas'>SkCanvas</a> <a href='SkCanvas_Reference#SkCanvas'>is</a> <a href='SkCanvas_Reference#SkCanvas'>associated</a> <a href='SkCanvas_Reference#SkCanvas'>with</a> <a href='SkCanvas_Reference#SkCanvas'>GPU</a> <a href='SkSurface_Reference#Surface'>surface</a>, <a href='SkSurface_Reference#Surface'>resolves</a> <a href='SkSurface_Reference#Surface'>all</a> <a href='SkSurface_Reference#Surface'>pending</a> <a href='SkSurface_Reference#Surface'>GPU</a> <a href='SkSurface_Reference#Surface'>operations</a>.
-If <a href='SkCanvas_Reference#SkCanvas'>SkCanvas</a> <a href='SkCanvas_Reference#SkCanvas'>is</a> <a href='SkCanvas_Reference#SkCanvas'>associated</a> <a href='SkCanvas_Reference#SkCanvas'>with</a> <a href='SkCanvas_Reference#SkCanvas'>raster</a> <a href='SkSurface_Reference#Surface'>surface</a>, <a href='SkSurface_Reference#Surface'>has</a> <a href='SkSurface_Reference#Surface'>no</a> <a href='SkSurface_Reference#Surface'>effect</a>; <a href='SkSurface_Reference#Surface'>raster</a> <a href='SkSurface_Reference#Surface'>draw</a>
+If <a href='SkCanvas_Reference#SkCanvas'>SkCanvas</a> is associated with GPU <a href='SkSurface_Reference#Surface'>surface</a>, resolves all pending GPU operations.
+If <a href='SkCanvas_Reference#SkCanvas'>SkCanvas</a> is associated with raster <a href='SkSurface_Reference#Surface'>surface</a>, has no effect; raster draw
operations are never deferred.
### See Also
@@ -851,11 +851,11 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-virtual <a href='undocumented#SkISize'>SkISize</a> <a href='#SkCanvas_getBaseLayerSize'>getBaseLayerSize</a>() <a href='#SkCanvas_getBaseLayerSize'>const</a>
+virtual <a href='undocumented#SkISize'>SkISize</a> <a href='#SkCanvas_getBaseLayerSize'>getBaseLayerSize</a>() const
</pre>
-Gets the <a href='undocumented#Size'>size</a> <a href='undocumented#Size'>of</a> <a href='undocumented#Size'>the</a> <a href='undocumented#Size'>base</a> <a href='undocumented#Size'>or</a> <a href='undocumented#Size'>root</a> <a href='SkCanvas_Reference#Layer'>layer</a> <a href='SkCanvas_Reference#Layer'>in</a> <a href='SkCanvas_Reference#Layer'>global</a> <a href='SkCanvas_Reference#Canvas'>canvas</a> <a href='SkCanvas_Reference#Canvas'>coordinates</a>. <a href='SkCanvas_Reference#Canvas'>The</a>
-origin of the base <a href='SkCanvas_Reference#Layer'>layer</a> <a href='SkCanvas_Reference#Layer'>is</a> <a href='SkCanvas_Reference#Layer'>always</a> (0,0). <a href='SkCanvas_Reference#Layer'>The</a> <a href='SkCanvas_Reference#Layer'>area</a> <a href='SkCanvas_Reference#Layer'>available</a> <a href='SkCanvas_Reference#Layer'>for</a> <a href='SkCanvas_Reference#Layer'>drawing</a> <a href='SkCanvas_Reference#Layer'>may</a> <a href='SkCanvas_Reference#Layer'>be</a>
+Gets the <a href='undocumented#Size'>size</a> of the base or root <a href='SkCanvas_Reference#Layer'>layer</a> in global <a href='SkCanvas_Reference#Canvas'>canvas</a> coordinates. The
+origin of the base <a href='SkCanvas_Reference#Layer'>layer</a> is always (0,0). The area available for drawing may be
smaller (due to clipping or <a href='#SkCanvas_saveLayer'>saveLayer</a>).
### Return Value
@@ -884,28 +884,28 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-<a href='undocumented#sk_sp'>sk_sp</a>&<a href='undocumented#sk_sp'>lt</a>;<a href='SkSurface_Reference#SkSurface'>SkSurface</a>&<a href='SkSurface_Reference#SkSurface'>gt</a>; <a href='#SkCanvas_makeSurface'>makeSurface</a>(<a href='#SkCanvas_makeSurface'>const</a> <a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a>& <a href='SkImageInfo_Reference#SkImageInfo'>info</a>, <a href='SkImageInfo_Reference#SkImageInfo'>const</a> <a href='undocumented#SkSurfaceProps'>SkSurfaceProps</a>* <a href='undocumented#SkSurfaceProps'>props</a> = <a href='undocumented#SkSurfaceProps'>nullptr</a>)
+<a href='undocumented#sk_sp'>sk_sp</a><<a href='SkSurface_Reference#SkSurface'>SkSurface</a>> <a href='#SkCanvas_makeSurface'>makeSurface</a>(const <a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a>& info, const <a href='undocumented#SkSurfaceProps'>SkSurfaceProps</a>* props = nullptr)
</pre>
-Creates <a href='SkSurface_Reference#SkSurface'>SkSurface</a> <a href='SkSurface_Reference#SkSurface'>matching</a> <a href='#SkCanvas_makeSurface_info'>info</a> <a href='#SkCanvas_makeSurface_info'>and</a> <a href='#SkCanvas_makeSurface_props'>props</a>, <a href='#SkCanvas_makeSurface_props'>and</a> <a href='#SkCanvas_makeSurface_props'>associates</a> <a href='#SkCanvas_makeSurface_props'>it</a> <a href='#SkCanvas_makeSurface_props'>with</a> <a href='SkCanvas_Reference#SkCanvas'>SkCanvas</a>.
+Creates <a href='SkSurface_Reference#SkSurface'>SkSurface</a> matching <a href='#SkCanvas_makeSurface_info'>info</a> and <a href='#SkCanvas_makeSurface_props'>props</a>, and associates it with <a href='SkCanvas_Reference#SkCanvas'>SkCanvas</a>.
Returns nullptr if no match found.
-If <a href='#SkCanvas_makeSurface_props'>props</a> <a href='#SkCanvas_makeSurface_props'>is</a> <a href='#SkCanvas_makeSurface_props'>nullptr</a>, <a href='#SkCanvas_makeSurface_props'>matches</a> <a href='undocumented#SkSurfaceProps'>SkSurfaceProps</a> <a href='undocumented#SkSurfaceProps'>in</a> <a href='SkCanvas_Reference#SkCanvas'>SkCanvas</a>. <a href='SkCanvas_Reference#SkCanvas'>If</a> <a href='#SkCanvas_makeSurface_props'>props</a> <a href='#SkCanvas_makeSurface_props'>is</a> <a href='#SkCanvas_makeSurface_props'>nullptr</a> <a href='#SkCanvas_makeSurface_props'>and</a> <a href='SkCanvas_Reference#SkCanvas'>SkCanvas</a>
-does not have <a href='undocumented#SkSurfaceProps'>SkSurfaceProps</a>, <a href='undocumented#SkSurfaceProps'>creates</a> <a href='SkSurface_Reference#SkSurface'>SkSurface</a> <a href='SkSurface_Reference#SkSurface'>with</a> <a href='SkSurface_Reference#SkSurface'>default</a> <a href='undocumented#SkSurfaceProps'>SkSurfaceProps</a>.
+If <a href='#SkCanvas_makeSurface_props'>props</a> is nullptr, matches <a href='undocumented#SkSurfaceProps'>SkSurfaceProps</a> in <a href='SkCanvas_Reference#SkCanvas'>SkCanvas</a>. If <a href='#SkCanvas_makeSurface_props'>props</a> is nullptr and <a href='SkCanvas_Reference#SkCanvas'>SkCanvas</a>
+does not have <a href='undocumented#SkSurfaceProps'>SkSurfaceProps</a>, creates <a href='SkSurface_Reference#SkSurface'>SkSurface</a> with default <a href='undocumented#SkSurfaceProps'>SkSurfaceProps</a>.
### Parameters
<table> <tr> <td><a name='SkCanvas_makeSurface_info'><code><strong>info</strong></code></a></td>
- <td>width, height, <a href='SkImageInfo_Reference#SkColorType'>SkColorType</a>, <a href='SkImageInfo_Reference#SkAlphaType'>SkAlphaType</a>, <a href='SkImageInfo_Reference#SkAlphaType'>and</a> <a href='undocumented#SkColorSpace'>SkColorSpace</a></td>
+ <td>width, height, <a href='SkImageInfo_Reference#SkColorType'>SkColorType</a>, <a href='SkImageInfo_Reference#SkAlphaType'>SkAlphaType</a>, and <a href='undocumented#SkColorSpace'>SkColorSpace</a></td>
</tr>
<tr> <td><a name='SkCanvas_makeSurface_props'><code><strong>props</strong></code></a></td>
- <td><a href='undocumented#SkSurfaceProps'>SkSurfaceProps</a> <a href='undocumented#SkSurfaceProps'>to</a> <a href='undocumented#SkSurfaceProps'>match</a>; <a href='undocumented#SkSurfaceProps'>may</a> <a href='undocumented#SkSurfaceProps'>be</a> <a href='undocumented#SkSurfaceProps'>nullptr</a> <a href='undocumented#SkSurfaceProps'>to</a> <a href='undocumented#SkSurfaceProps'>match</a> <a href='SkCanvas_Reference#SkCanvas'>SkCanvas</a></td>
+ <td><a href='undocumented#SkSurfaceProps'>SkSurfaceProps</a> to match; may be nullptr to match <a href='SkCanvas_Reference#SkCanvas'>SkCanvas</a></td>
</tr>
</table>
### Return Value
-<a href='SkSurface_Reference#SkSurface'>SkSurface</a> <a href='SkSurface_Reference#SkSurface'>matching</a> <a href='#SkCanvas_makeSurface_info'>info</a> <a href='#SkCanvas_makeSurface_info'>and</a> <a href='#SkCanvas_makeSurface_props'>props</a>, <a href='#SkCanvas_makeSurface_props'>or</a> <a href='#SkCanvas_makeSurface_props'>nullptr</a> <a href='#SkCanvas_makeSurface_props'>if</a> <a href='#SkCanvas_makeSurface_props'>no</a> <a href='#SkCanvas_makeSurface_props'>match</a> <a href='#SkCanvas_makeSurface_props'>is</a> <a href='#SkCanvas_makeSurface_props'>available</a>
+<a href='SkSurface_Reference#SkSurface'>SkSurface</a> matching <a href='#SkCanvas_makeSurface_info'>info</a> and <a href='#SkCanvas_makeSurface_props'>props</a>, or nullptr if no match is available
### Example
@@ -932,7 +932,7 @@
virtual <a href='undocumented#GrContext'>GrContext</a>* <a href='#SkCanvas_getGrContext'>getGrContext</a>()
</pre>
-Returns GPU context of the GPU <a href='SkSurface_Reference#Surface'>surface</a> <a href='SkSurface_Reference#Surface'>associated</a> <a href='SkSurface_Reference#Surface'>with</a> <a href='SkCanvas_Reference#SkCanvas'>SkCanvas</a>.
+Returns GPU context of the GPU <a href='SkSurface_Reference#Surface'>surface</a> associated with <a href='SkCanvas_Reference#SkCanvas'>SkCanvas</a>.
### Return Value
@@ -951,26 +951,26 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-void* <a href='#SkCanvas_accessTopLayerPixels'>accessTopLayerPixels</a>(<a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a>* <a href='SkImageInfo_Reference#SkImageInfo'>info</a>, <a href='SkImageInfo_Reference#SkImageInfo'>size_t</a>* <a href='SkImageInfo_Reference#SkImageInfo'>rowBytes</a>, <a href='SkIPoint_Reference#SkIPoint'>SkIPoint</a>* <a href='SkIPoint_Reference#SkIPoint'>origin</a> = <a href='SkIPoint_Reference#SkIPoint'>nullptr</a>)
+void* <a href='#SkCanvas_accessTopLayerPixels'>accessTopLayerPixels</a>(<a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a>* info, size_t* rowBytes, <a href='SkIPoint_Reference#SkIPoint'>SkIPoint</a>* origin = nullptr)
</pre>
-Returns the <a href='undocumented#Pixel'>pixel</a> <a href='undocumented#Pixel'>base</a> <a href='undocumented#Pixel'>address</a>, <a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a>, <a href='#SkCanvas_accessTopLayerPixels_rowBytes'>rowBytes</a>, <a href='#SkCanvas_accessTopLayerPixels_rowBytes'>and</a> <a href='#SkCanvas_accessTopLayerPixels_origin'>origin</a> <a href='#SkCanvas_accessTopLayerPixels_origin'>if</a> <a href='#SkCanvas_accessTopLayerPixels_origin'>the</a> <a href='#SkCanvas_accessTopLayerPixels_origin'>pixels</a>
+Returns the <a href='undocumented#Pixel'>pixel</a> base address, <a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a>, <a href='#SkCanvas_accessTopLayerPixels_rowBytes'>rowBytes</a>, and <a href='#SkCanvas_accessTopLayerPixels_origin'>origin</a> if the pixels
can be read directly. The returned address is only valid
-while <a href='SkCanvas_Reference#SkCanvas'>SkCanvas</a> <a href='SkCanvas_Reference#SkCanvas'>is</a> <a href='SkCanvas_Reference#SkCanvas'>in</a> <a href='SkCanvas_Reference#SkCanvas'>scope</a> <a href='SkCanvas_Reference#SkCanvas'>and</a> <a href='SkCanvas_Reference#SkCanvas'>unchanged</a>. <a href='SkCanvas_Reference#SkCanvas'>Any</a> <a href='SkCanvas_Reference#SkCanvas'>SkCanvas</a> <a href='SkCanvas_Reference#SkCanvas'>call</a> <a href='SkCanvas_Reference#SkCanvas'>or</a> <a href='SkSurface_Reference#SkSurface'>SkSurface</a> <a href='SkSurface_Reference#SkSurface'>call</a>
+while <a href='SkCanvas_Reference#SkCanvas'>SkCanvas</a> is in scope and unchanged. Any <a href='SkCanvas_Reference#SkCanvas'>SkCanvas</a> call or <a href='SkSurface_Reference#SkSurface'>SkSurface</a> call
may invalidate the returned address and other returned values.
-If pixels are inaccessible, <a href='#SkCanvas_accessTopLayerPixels_info'>info</a>, <a href='#SkCanvas_accessTopLayerPixels_rowBytes'>rowBytes</a>, <a href='#SkCanvas_accessTopLayerPixels_rowBytes'>and</a> <a href='#SkCanvas_accessTopLayerPixels_origin'>origin</a> <a href='#SkCanvas_accessTopLayerPixels_origin'>are</a> <a href='#SkCanvas_accessTopLayerPixels_origin'>unchanged</a>.
+If pixels are inaccessible, <a href='#SkCanvas_accessTopLayerPixels_info'>info</a>, <a href='#SkCanvas_accessTopLayerPixels_rowBytes'>rowBytes</a>, and <a href='#SkCanvas_accessTopLayerPixels_origin'>origin</a> are unchanged.
### Parameters
<table> <tr> <td><a name='SkCanvas_accessTopLayerPixels_info'><code><strong>info</strong></code></a></td>
- <td>storage for writable pixels' <a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a>; <a href='SkImageInfo_Reference#SkImageInfo'>may</a> <a href='SkImageInfo_Reference#SkImageInfo'>be</a> <a href='SkImageInfo_Reference#SkImageInfo'>nullptr</a></td>
+ <td>storage for writable pixels' <a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a>; may be nullptr</td>
</tr>
<tr> <td><a name='SkCanvas_accessTopLayerPixels_rowBytes'><code><strong>rowBytes</strong></code></a></td>
<td>storage for writable pixels' row bytes; may be nullptr</td>
</tr>
<tr> <td><a name='SkCanvas_accessTopLayerPixels_origin'><code><strong>origin</strong></code></a></td>
- <td>storage for <a href='SkCanvas_Reference#SkCanvas'>SkCanvas</a> <a href='SkCanvas_Reference#SkCanvas'>top</a> <a href='SkCanvas_Reference#Layer'>layer</a> <a href='#SkCanvas_accessTopLayerPixels_origin'>origin</a>, <a href='#SkCanvas_accessTopLayerPixels_origin'>its</a> <a href='#SkCanvas_accessTopLayerPixels_origin'>top-left</a> <a href='#SkCanvas_accessTopLayerPixels_origin'>corner</a>;</td>
+ <td>storage for <a href='SkCanvas_Reference#SkCanvas'>SkCanvas</a> top <a href='SkCanvas_Reference#Layer'>layer</a> <a href='#SkCanvas_accessTopLayerPixels_origin'>origin</a>, its top-left corner;</td>
</tr>
</table>
@@ -986,12 +986,12 @@
### Example
-<div><fiddle-embed name="a7ac9c21bbabcdeeca00f72a61cd0f3e"><div>Draws "ABC" on the <a href='undocumented#Device'>device</a>. <a href='undocumented#Device'>Then</a> <a href='undocumented#Device'>draws</a> "<a href='undocumented#Device'>DEF</a>" <a href='undocumented#Device'>in</a> <a href='SkCanvas_Reference#Layer'>Layer</a>, <a href='SkCanvas_Reference#Layer'>and</a> <a href='SkCanvas_Reference#Layer'>reads</a>
-<a href='SkCanvas_Reference#Layer'>Layer</a> <a href='SkCanvas_Reference#Layer'>to</a> <a href='SkCanvas_Reference#Layer'>add</a> <a href='SkCanvas_Reference#Layer'>a</a> <a href='SkCanvas_Reference#Layer'>large</a> <a href='SkCanvas_Reference#Layer'>dotted</a> "<a href='SkCanvas_Reference#Layer'>DEF</a>". <a href='SkCanvas_Reference#Layer'>Finally</a> <a href='SkCanvas_Reference#Layer'>blends</a> <a href='SkCanvas_Reference#Layer'>Layer</a> <a href='SkCanvas_Reference#Layer'>with</a> <a href='SkCanvas_Reference#Layer'>the</a>
+<div><fiddle-embed name="a7ac9c21bbabcdeeca00f72a61cd0f3e"><div>Draws "ABC" on the <a href='undocumented#Device'>device</a>. Then draws "DEF" in <a href='SkCanvas_Reference#Layer'>Layer</a>, and reads
+<a href='SkCanvas_Reference#Layer'>Layer</a> to add a large dotted "DEF". Finally blends <a href='SkCanvas_Reference#Layer'>Layer</a> with the
<a href='undocumented#Device'>device</a>.
-<a href='undocumented#Device'>The</a> <a href='SkCanvas_Reference#Layer'>Layer</a> <a href='SkCanvas_Reference#Layer'>and</a> <a href='SkCanvas_Reference#Layer'>blended</a> <a href='SkCanvas_Reference#Layer'>result</a> <a href='SkCanvas_Reference#Layer'>appear</a> <a href='SkCanvas_Reference#Layer'>on</a> <a href='SkCanvas_Reference#Layer'>the</a> <a href='SkCanvas_Reference#Layer'>CPU</a> <a href='SkCanvas_Reference#Layer'>and</a> <a href='SkCanvas_Reference#Layer'>GPU</a> <a href='SkCanvas_Reference#Layer'>but</a> <a href='SkCanvas_Reference#Layer'>the</a> <a href='SkCanvas_Reference#Layer'>large</a> <a href='SkCanvas_Reference#Layer'>dotted</a>
-"<a href='SkCanvas_Reference#Layer'>DEF</a>" <a href='SkCanvas_Reference#Layer'>appear</a> <a href='SkCanvas_Reference#Layer'>only</a> <a href='SkCanvas_Reference#Layer'>on</a> <a href='SkCanvas_Reference#Layer'>the</a> <a href='SkCanvas_Reference#Layer'>CPU</a>.
+The <a href='SkCanvas_Reference#Layer'>Layer</a> and blended result appear on the CPU and GPU but the large dotted
+"DEF" appear only on the CPU.
</div></fiddle-embed></div>
### See Also
@@ -1003,14 +1003,14 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-<a href='undocumented#SkRasterHandleAllocator'>SkRasterHandleAllocator</a>::<a href='#SkRasterHandleAllocator_Handle'>Handle</a> <a href='#SkCanvas_accessTopRasterHandle'>accessTopRasterHandle</a>() <a href='#SkCanvas_accessTopRasterHandle'>const</a>
+<a href='undocumented#SkRasterHandleAllocator'>SkRasterHandleAllocator</a>::<a href='#SkRasterHandleAllocator_Handle'>Handle</a> <a href='#SkCanvas_accessTopRasterHandle'>accessTopRasterHandle</a>() const
</pre>
-Returns custom context that tracks the <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> <a href='SkMatrix_Reference#SkMatrix'>and</a> <a href='SkMatrix_Reference#SkMatrix'>clip</a>.
+Returns custom context that tracks the <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> and clip.
-Use <a href='undocumented#SkRasterHandleAllocator'>SkRasterHandleAllocator</a> <a href='undocumented#SkRasterHandleAllocator'>to</a> <a href='undocumented#SkRasterHandleAllocator'>blend</a> <a href='undocumented#SkRasterHandleAllocator'>Skia</a> <a href='undocumented#SkRasterHandleAllocator'>drawing</a> <a href='undocumented#SkRasterHandleAllocator'>with</a> <a href='undocumented#SkRasterHandleAllocator'>custom</a> <a href='undocumented#SkRasterHandleAllocator'>drawing</a>, <a href='undocumented#SkRasterHandleAllocator'>typically</a> <a href='undocumented#SkRasterHandleAllocator'>performed</a>
+Use <a href='undocumented#SkRasterHandleAllocator'>SkRasterHandleAllocator</a> to blend Skia drawing with custom drawing, typically performed
by the host platform user interface. The custom context returned is generated by
-<a href='undocumented#SkRasterHandleAllocator'>SkRasterHandleAllocator</a>::<a href='#SkRasterHandleAllocator_MakeCanvas'>MakeCanvas</a>, <a href='#SkRasterHandleAllocator_MakeCanvas'>which</a> <a href='#SkRasterHandleAllocator_MakeCanvas'>creates</a> <a href='#SkRasterHandleAllocator_MakeCanvas'>a</a> <a href='#SkRasterHandleAllocator_MakeCanvas'>custom</a> <a href='SkCanvas_Reference#Canvas'>canvas</a> <a href='SkCanvas_Reference#Canvas'>with</a> <a href='SkCanvas_Reference#Canvas'>raster</a> <a href='SkCanvas_Reference#Canvas'>storage</a> <a href='SkCanvas_Reference#Canvas'>for</a>
+<a href='undocumented#SkRasterHandleAllocator'>SkRasterHandleAllocator</a>::<a href='#SkRasterHandleAllocator_MakeCanvas'>MakeCanvas</a>, which creates a custom <a href='SkCanvas_Reference#Canvas'>canvas</a> with raster storage for
the drawing destination.
### Return Value
@@ -1043,26 +1043,26 @@
bool <a href='#SkCanvas_peekPixels'>peekPixels</a>(<a href='SkPixmap_Reference#SkPixmap'>SkPixmap</a>* <a href='SkPixmap_Reference#Pixmap'>pixmap</a>)
</pre>
-Returns true if <a href='SkCanvas_Reference#SkCanvas'>SkCanvas</a> <a href='SkCanvas_Reference#SkCanvas'>has</a> <a href='SkCanvas_Reference#SkCanvas'>direct</a> <a href='SkCanvas_Reference#SkCanvas'>access</a> <a href='SkCanvas_Reference#SkCanvas'>to</a> <a href='SkCanvas_Reference#SkCanvas'>its</a> <a href='SkCanvas_Reference#SkCanvas'>pixels</a>.
+Returns true if <a href='SkCanvas_Reference#SkCanvas'>SkCanvas</a> has direct access to its pixels.
-Pixels are readable when <a href='undocumented#SkBaseDevice'>SkBaseDevice</a> <a href='undocumented#SkBaseDevice'>is</a> <a href='undocumented#SkBaseDevice'>raster</a>. <a href='undocumented#SkBaseDevice'>Pixels</a> <a href='undocumented#SkBaseDevice'>are</a> <a href='undocumented#SkBaseDevice'>not</a> <a href='undocumented#SkBaseDevice'>readable</a> <a href='undocumented#SkBaseDevice'>when</a> <a href='SkCanvas_Reference#SkCanvas'>SkCanvas</a>
-is returned from <a href='undocumented#GPU_Surface'>GPU surface</a>, returned by <a href='undocumented#SkDocument'>SkDocument</a>::<a href='#SkDocument_beginPage'>beginPage</a>, <a href='#SkDocument_beginPage'>returned</a> <a href='#SkDocument_beginPage'>by</a>
-<a href='undocumented#SkPictureRecorder'>SkPictureRecorder</a>::<a href='#SkPictureRecorder_beginRecording'>beginRecording</a>, <a href='#SkPictureRecorder_beginRecording'>or</a> <a href='SkCanvas_Reference#SkCanvas'>SkCanvas</a> <a href='SkCanvas_Reference#SkCanvas'>is</a> <a href='SkCanvas_Reference#SkCanvas'>the</a> <a href='SkCanvas_Reference#SkCanvas'>base</a> <a href='SkCanvas_Reference#SkCanvas'>of</a> <a href='SkCanvas_Reference#SkCanvas'>a</a> <a href='SkCanvas_Reference#SkCanvas'>utility</a> <a href='SkCanvas_Reference#SkCanvas'>class</a>
+Pixels are readable when <a href='undocumented#SkBaseDevice'>SkBaseDevice</a> is raster. Pixels are not readable when <a href='SkCanvas_Reference#SkCanvas'>SkCanvas</a>
+is returned from <a href='undocumented#GPU_Surface'>GPU surface</a>, returned by <a href='undocumented#SkDocument'>SkDocument</a>::<a href='#SkDocument_beginPage'>beginPage</a>, returned by
+<a href='undocumented#SkPictureRecorder'>SkPictureRecorder</a>::<a href='#SkPictureRecorder_beginRecording'>beginRecording</a>, or <a href='SkCanvas_Reference#SkCanvas'>SkCanvas</a> is the base of a utility class
like <a href='undocumented#SkDebugCanvas'>SkDebugCanvas</a>.
-<a href='#SkCanvas_peekPixels_pixmap'>pixmap</a> <a href='#SkCanvas_peekPixels_pixmap'>is</a> <a href='#SkCanvas_peekPixels_pixmap'>valid</a> <a href='#SkCanvas_peekPixels_pixmap'>only</a> <a href='#SkCanvas_peekPixels_pixmap'>while</a> <a href='SkCanvas_Reference#SkCanvas'>SkCanvas</a> <a href='SkCanvas_Reference#SkCanvas'>is</a> <a href='SkCanvas_Reference#SkCanvas'>in</a> <a href='SkCanvas_Reference#SkCanvas'>scope</a> <a href='SkCanvas_Reference#SkCanvas'>and</a> <a href='SkCanvas_Reference#SkCanvas'>unchanged</a>. <a href='SkCanvas_Reference#SkCanvas'>Any</a>
-<a href='SkCanvas_Reference#SkCanvas'>SkCanvas</a> <a href='SkCanvas_Reference#SkCanvas'>or</a> <a href='SkSurface_Reference#SkSurface'>SkSurface</a> <a href='SkSurface_Reference#SkSurface'>call</a> <a href='SkSurface_Reference#SkSurface'>may</a> <a href='SkSurface_Reference#SkSurface'>invalidate</a> <a href='SkSurface_Reference#SkSurface'>the</a> <a href='#SkCanvas_peekPixels_pixmap'>pixmap</a> <a href='#SkCanvas_peekPixels_pixmap'>values</a>.
+<a href='#SkCanvas_peekPixels_pixmap'>pixmap</a> is valid only while <a href='SkCanvas_Reference#SkCanvas'>SkCanvas</a> is in scope and unchanged. Any
+<a href='SkCanvas_Reference#SkCanvas'>SkCanvas</a> or <a href='SkSurface_Reference#SkSurface'>SkSurface</a> call may invalidate the <a href='#SkCanvas_peekPixels_pixmap'>pixmap</a> values.
### Parameters
<table> <tr> <td><a name='SkCanvas_peekPixels_pixmap'><code><strong>pixmap</strong></code></a></td>
- <td>storage for <a href='undocumented#Pixel'>pixel</a> <a href='undocumented#Pixel'>state</a> <a href='undocumented#Pixel'>if</a> <a href='undocumented#Pixel'>pixels</a> <a href='undocumented#Pixel'>are</a> <a href='undocumented#Pixel'>readable</a>; <a href='undocumented#Pixel'>otherwise</a>, <a href='undocumented#Pixel'>ignored</a></td>
+ <td>storage for <a href='undocumented#Pixel'>pixel</a> state if pixels are readable; otherwise, ignored</td>
</tr>
</table>
### Return Value
-true if <a href='SkCanvas_Reference#SkCanvas'>SkCanvas</a> <a href='SkCanvas_Reference#SkCanvas'>has</a> <a href='SkCanvas_Reference#SkCanvas'>direct</a> <a href='SkCanvas_Reference#SkCanvas'>access</a> <a href='SkCanvas_Reference#SkCanvas'>to</a> <a href='SkCanvas_Reference#SkCanvas'>pixels</a>
+true if <a href='SkCanvas_Reference#SkCanvas'>SkCanvas</a> has direct access to pixels
### Example
@@ -1085,53 +1085,53 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-bool <a href='#SkCanvas_readPixels'>readPixels</a>(<a href='#SkCanvas_readPixels'>const</a> <a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a>& <a href='SkImageInfo_Reference#SkImageInfo'>dstInfo</a>, <a href='SkImageInfo_Reference#SkImageInfo'>void</a>* <a href='SkImageInfo_Reference#SkImageInfo'>dstPixels</a>, <a href='SkImageInfo_Reference#SkImageInfo'>size_t</a> <a href='SkImageInfo_Reference#SkImageInfo'>dstRowBytes</a>, <a href='SkImageInfo_Reference#SkImageInfo'>int</a> <a href='SkImageInfo_Reference#SkImageInfo'>srcX</a>, <a href='SkImageInfo_Reference#SkImageInfo'>int</a> <a href='SkImageInfo_Reference#SkImageInfo'>srcY</a>)
+bool <a href='#SkCanvas_readPixels'>readPixels</a>(const <a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a>& dstInfo, void* dstPixels, size_t dstRowBytes, int srcX, int srcY)
</pre>
-Copies <a href='SkRect_Reference#Rect'>Rect</a> <a href='SkRect_Reference#Rect'>of</a> <a href='SkRect_Reference#Rect'>pixels</a> <a href='SkRect_Reference#Rect'>from</a> <a href='SkCanvas_Reference#Canvas'>Canvas</a> <a href='SkCanvas_Reference#Canvas'>into</a> <a href='#SkCanvas_readPixels_dstPixels'>dstPixels</a>. <a href='SkMatrix_Reference#Matrix'>Matrix</a> <a href='SkMatrix_Reference#Matrix'>and</a> <a href='SkMatrix_Reference#Matrix'>Clip</a> <a href='SkMatrix_Reference#Matrix'>are</a>
-<a href='SkMatrix_Reference#Matrix'>ignored</a>.
+Copies <a href='SkRect_Reference#Rect'>Rect</a> of pixels from <a href='SkCanvas_Reference#Canvas'>Canvas</a> into <a href='#SkCanvas_readPixels_dstPixels'>dstPixels</a>. <a href='SkMatrix_Reference#Matrix'>Matrix</a> and Clip are
+ignored.
-<a href='SkMatrix_Reference#Matrix'>Source</a> <a href='SkRect_Reference#Rect'>Rect</a> <a href='SkRect_Reference#Rect'>corners</a> <a href='SkRect_Reference#Rect'>are</a> (<a href='#SkCanvas_readPixels_srcX'>srcX</a>, <a href='#SkCanvas_readPixels_srcY'>srcY</a>) <a href='#SkCanvas_readPixels_srcY'>and</a> (<a href='#SkCanvas_imageInfo'>imageInfo</a>().<a href='#SkImageInfo_width'>width()</a>, <a href='#SkCanvas_imageInfo'>imageInfo</a>().<a href='#SkImageInfo_height'>height()</a>).
-<a href='#SkImageInfo_height'>Destination</a> <a href='SkRect_Reference#Rect'>Rect</a> <a href='SkRect_Reference#Rect'>corners</a> <a href='SkRect_Reference#Rect'>are</a> (0, 0) <a href='SkRect_Reference#Rect'>and</a> (<a href='#SkCanvas_readPixels_dstInfo'>dstInfo</a>.<a href='#SkImageInfo_width'>width()</a>, <a href='#SkCanvas_readPixels_dstInfo'>dstInfo</a>.<a href='#SkImageInfo_height'>height()</a>).
-<a href='#SkImageInfo_height'>Copies</a> <a href='#SkImageInfo_height'>each</a> <a href='#SkImageInfo_height'>readable</a> <a href='undocumented#Pixel'>pixel</a> <a href='undocumented#Pixel'>intersecting</a> <a href='undocumented#Pixel'>both</a> <a href='undocumented#Pixel'>rectangles</a>, <a href='undocumented#Pixel'>without</a> <a href='undocumented#Pixel'>scaling</a>,
-<a href='undocumented#Pixel'>converting</a> <a href='undocumented#Pixel'>to</a> <a href='#SkCanvas_readPixels_dstInfo'>dstInfo</a>.<a href='#SkImageInfo_colorType'>colorType</a>() <a href='#SkImageInfo_colorType'>and</a> <a href='#SkCanvas_readPixels_dstInfo'>dstInfo</a>.<a href='#SkImageInfo_alphaType'>alphaType</a>() <a href='#SkImageInfo_alphaType'>if</a> <a href='#SkImageInfo_alphaType'>required</a>.
+Source <a href='SkRect_Reference#Rect'>Rect</a> corners are (<a href='#SkCanvas_readPixels_srcX'>srcX</a>, <a href='#SkCanvas_readPixels_srcY'>srcY</a>) and (<a href='#SkCanvas_imageInfo'>imageInfo</a>().<a href='#SkImageInfo_width'>width()</a>, <a href='#SkCanvas_imageInfo'>imageInfo</a>().<a href='#SkImageInfo_height'>height()</a>).
+Destination <a href='SkRect_Reference#Rect'>Rect</a> corners are (0, 0) and (<a href='#SkCanvas_readPixels_dstInfo'>dstInfo</a>.<a href='#SkImageInfo_width'>width()</a>, <a href='#SkCanvas_readPixels_dstInfo'>dstInfo</a>.<a href='#SkImageInfo_height'>height()</a>).
+Copies each readable <a href='undocumented#Pixel'>pixel</a> intersecting both rectangles, without scaling,
+converting to <a href='#SkCanvas_readPixels_dstInfo'>dstInfo</a>.<a href='#SkImageInfo_colorType'>colorType</a>() and <a href='#SkCanvas_readPixels_dstInfo'>dstInfo</a>.<a href='#SkImageInfo_alphaType'>alphaType</a>() if required.
-<a href='#SkImageInfo_alphaType'>Pixels</a> <a href='#SkImageInfo_alphaType'>are</a> <a href='#SkImageInfo_alphaType'>readable</a> <a href='#SkImageInfo_alphaType'>when</a> <a href='undocumented#Device'>Device</a> <a href='undocumented#Device'>is</a> <a href='undocumented#Device'>raster</a>, <a href='undocumented#Device'>or</a> <a href='undocumented#Device'>backed</a> <a href='undocumented#Device'>by</a> <a href='undocumented#Device'>a</a> <a href='undocumented#Device'>GPU</a>.
-<a href='undocumented#Device'>Pixels</a> <a href='undocumented#Device'>are</a> <a href='undocumented#Device'>not</a> <a href='undocumented#Device'>readable</a> <a href='undocumented#Device'>when</a> <a href='SkCanvas_Reference#SkCanvas'>SkCanvas</a> <a href='SkCanvas_Reference#SkCanvas'>is</a> <a href='SkCanvas_Reference#SkCanvas'>returned</a> <a href='SkCanvas_Reference#SkCanvas'>by</a> <a href='undocumented#SkDocument'>SkDocument</a>::<a href='#SkDocument_beginPage'>beginPage</a>,
-<a href='#SkDocument_beginPage'>returned</a> <a href='#SkDocument_beginPage'>by</a> <a href='undocumented#SkPictureRecorder'>SkPictureRecorder</a>::<a href='#SkPictureRecorder_beginRecording'>beginRecording</a>, <a href='#SkPictureRecorder_beginRecording'>or</a> <a href='SkCanvas_Reference#Canvas'>Canvas</a> <a href='SkCanvas_Reference#Canvas'>is</a> <a href='SkCanvas_Reference#Canvas'>the</a> <a href='SkCanvas_Reference#Canvas'>base</a> <a href='SkCanvas_Reference#Canvas'>of</a> <a href='SkCanvas_Reference#Canvas'>a</a> <a href='SkCanvas_Reference#Canvas'>utility</a>
-<a href='SkCanvas_Reference#Canvas'>class</a> <a href='SkCanvas_Reference#Canvas'>like</a> <a href='undocumented#SkDebugCanvas'>SkDebugCanvas</a>.
+Pixels are readable when <a href='undocumented#Device'>Device</a> is raster, or backed by a GPU.
+Pixels are not readable when <a href='SkCanvas_Reference#SkCanvas'>SkCanvas</a> is returned by <a href='undocumented#SkDocument'>SkDocument</a>::<a href='#SkDocument_beginPage'>beginPage</a>,
+returned by <a href='undocumented#SkPictureRecorder'>SkPictureRecorder</a>::<a href='#SkPictureRecorder_beginRecording'>beginRecording</a>, or <a href='SkCanvas_Reference#Canvas'>Canvas</a> is the base of a utility
+class like <a href='undocumented#SkDebugCanvas'>SkDebugCanvas</a>.
-<a href='undocumented#SkDebugCanvas'>The</a> <a href='undocumented#SkDebugCanvas'>destination</a> <a href='undocumented#Pixel_Storage'>pixel storage</a> <a href='undocumented#Pixel'>must</a> <a href='undocumented#Pixel'>be</a> <a href='undocumented#Pixel'>allocated</a> <a href='undocumented#Pixel'>by</a> <a href='undocumented#Pixel'>the</a> <a href='undocumented#Pixel'>caller</a>.
+The destination <a href='undocumented#Pixel_Storage'>pixel storage</a> must be allocated by the caller.
-<a href='undocumented#Pixel'>Pixel</a> <a href='undocumented#Pixel'>values</a> <a href='undocumented#Pixel'>are</a> <a href='undocumented#Pixel'>converted</a> <a href='undocumented#Pixel'>only</a> <a href='undocumented#Pixel'>if</a> <a href='#Image_Info_Color_Type'>Color_Type</a> <a href='#Image_Info_Color_Type'>and</a> <a href='#Image_Info_Alpha_Type'>Alpha_Type</a>
-<a href='#Image_Info_Alpha_Type'>do</a> <a href='#Image_Info_Alpha_Type'>not</a> <a href='#Image_Info_Alpha_Type'>match</a>. <a href='#Image_Info_Alpha_Type'>Only</a> <a href='#Image_Info_Alpha_Type'>pixels</a> <a href='#Image_Info_Alpha_Type'>within</a> <a href='#Image_Info_Alpha_Type'>both</a> <a href='#Image_Info_Alpha_Type'>source</a> <a href='#Image_Info_Alpha_Type'>and</a> <a href='#Image_Info_Alpha_Type'>destination</a> <a href='#Image_Info_Alpha_Type'>rectangles</a>
-<a href='#Image_Info_Alpha_Type'>are</a> <a href='#Image_Info_Alpha_Type'>copied</a>. <a href='#SkCanvas_readPixels_dstPixels'>dstPixels</a> <a href='#SkCanvas_readPixels_dstPixels'>contents</a> <a href='#SkCanvas_readPixels_dstPixels'>outside</a> <a href='SkRect_Reference#Rect'>Rect</a> <a href='SkRect_Reference#Rect'>intersection</a> <a href='SkRect_Reference#Rect'>are</a> <a href='SkRect_Reference#Rect'>unchanged</a>.
+<a href='undocumented#Pixel'>Pixel</a> values are converted only if <a href='#Image_Info_Color_Type'>Color_Type</a> and <a href='#Image_Info_Alpha_Type'>Alpha_Type</a>
+do not match. Only pixels within both source and destination rectangles
+are copied. <a href='#SkCanvas_readPixels_dstPixels'>dstPixels</a> contents outside <a href='SkRect_Reference#Rect'>Rect</a> intersection are unchanged.
-<a href='SkRect_Reference#Rect'>Pass</a> <a href='SkRect_Reference#Rect'>negative</a> <a href='SkRect_Reference#Rect'>values</a> <a href='SkRect_Reference#Rect'>for</a> <a href='#SkCanvas_readPixels_srcX'>srcX</a> <a href='#SkCanvas_readPixels_srcX'>or</a> <a href='#SkCanvas_readPixels_srcY'>srcY</a> <a href='#SkCanvas_readPixels_srcY'>to</a> <a href='#SkCanvas_readPixels_srcY'>offset</a> <a href='#SkCanvas_readPixels_srcY'>pixels</a> <a href='#SkCanvas_readPixels_srcY'>across</a> <a href='#SkCanvas_readPixels_srcY'>or</a> <a href='#SkCanvas_readPixels_srcY'>down</a> <a href='#SkCanvas_readPixels_srcY'>destination</a>.
+Pass negative values for <a href='#SkCanvas_readPixels_srcX'>srcX</a> or <a href='#SkCanvas_readPixels_srcY'>srcY</a> to offset pixels across or down destination.
-<a href='#SkCanvas_readPixels_srcY'>Does</a> <a href='#SkCanvas_readPixels_srcY'>not</a> <a href='#SkCanvas_readPixels_srcY'>copy</a>, <a href='#SkCanvas_readPixels_srcY'>and</a> <a href='#SkCanvas_readPixels_srcY'>returns</a> <a href='#SkCanvas_readPixels_srcY'>false</a> <a href='#SkCanvas_readPixels_srcY'>if</a>:
+Does not copy, and returns false if:
<table> <tr>
<td>Source and destination rectangles do not intersect.</td>
</tr> <tr>
- <td><a href='SkCanvas_Reference#Canvas'>Canvas</a> <a href='SkCanvas_Reference#Canvas'>pixels</a> <a href='SkCanvas_Reference#Canvas'>could</a> <a href='SkCanvas_Reference#Canvas'>not</a> <a href='SkCanvas_Reference#Canvas'>be</a> <a href='SkCanvas_Reference#Canvas'>converted</a> <a href='SkCanvas_Reference#Canvas'>to</a> <a href='#SkCanvas_readPixels_dstInfo'>dstInfo</a>.<a href='#SkImageInfo_colorType'>colorType</a>() <a href='#SkImageInfo_colorType'>or</a> <a href='#SkCanvas_readPixels_dstInfo'>dstInfo</a>.<a href='#SkImageInfo_alphaType'>alphaType</a>().</td>
+ <td><a href='SkCanvas_Reference#Canvas'>Canvas</a> pixels could not be converted to <a href='#SkCanvas_readPixels_dstInfo'>dstInfo</a>.<a href='#SkImageInfo_colorType'>colorType</a>() or <a href='#SkCanvas_readPixels_dstInfo'>dstInfo</a>.<a href='#SkImageInfo_alphaType'>alphaType</a>().</td>
</tr> <tr>
- <td><a href='SkCanvas_Reference#Canvas'>Canvas</a> <a href='SkCanvas_Reference#Canvas'>pixels</a> <a href='SkCanvas_Reference#Canvas'>are</a> <a href='SkCanvas_Reference#Canvas'>not</a> <a href='SkCanvas_Reference#Canvas'>readable</a>; <a href='SkCanvas_Reference#Canvas'>for</a> <a href='SkCanvas_Reference#Canvas'>instance</a>, <a href='SkCanvas_Reference#Canvas'>Canvas</a> <a href='SkCanvas_Reference#Canvas'>is</a> <a href='SkCanvas_Reference#Canvas'>document-based</a>.</td>
+ <td><a href='SkCanvas_Reference#Canvas'>Canvas</a> pixels are not readable; for instance, <a href='SkCanvas_Reference#Canvas'>Canvas</a> is document-based.</td>
</tr> <tr>
- <td><a href='#SkCanvas_readPixels_dstRowBytes'>dstRowBytes</a> <a href='#SkCanvas_readPixels_dstRowBytes'>is</a> <a href='#SkCanvas_readPixels_dstRowBytes'>too</a> <a href='#SkCanvas_readPixels_dstRowBytes'>small</a> <a href='#SkCanvas_readPixels_dstRowBytes'>to</a> <a href='#SkCanvas_readPixels_dstRowBytes'>contain</a> <a href='#SkCanvas_readPixels_dstRowBytes'>one</a> <a href='#SkCanvas_readPixels_dstRowBytes'>row</a> <a href='#SkCanvas_readPixels_dstRowBytes'>of</a> <a href='#SkCanvas_readPixels_dstRowBytes'>pixels</a>.</td>
+ <td><a href='#SkCanvas_readPixels_dstRowBytes'>dstRowBytes</a> is too small to contain one row of pixels.</td>
</tr>
</table>
### Parameters
<table> <tr> <td><a name='SkCanvas_readPixels_dstInfo'><code><strong>dstInfo</strong></code></a></td>
- <td>width, height, <a href='#Image_Info_Color_Type'>Color_Type</a>, <a href='#Image_Info_Color_Type'>and</a> <a href='#Image_Info_Alpha_Type'>Alpha_Type</a> <a href='#Image_Info_Alpha_Type'>of</a> <a href='#SkCanvas_readPixels_dstPixels'>dstPixels</a></td>
+ <td>width, height, <a href='#Image_Info_Color_Type'>Color_Type</a>, and <a href='#Image_Info_Alpha_Type'>Alpha_Type</a> of <a href='#SkCanvas_readPixels_dstPixels'>dstPixels</a></td>
</tr>
<tr> <td><a name='SkCanvas_readPixels_dstPixels'><code><strong>dstPixels</strong></code></a></td>
- <td>storage for pixels; <a href='#SkCanvas_readPixels_dstInfo'>dstInfo</a>.<a href='#SkImageInfo_height'>height()</a> <a href='#SkImageInfo_height'>times</a> <a href='#SkCanvas_readPixels_dstRowBytes'>dstRowBytes</a>, <a href='#SkCanvas_readPixels_dstRowBytes'>or</a> <a href='#SkCanvas_readPixels_dstRowBytes'>larger</a></td>
+ <td>storage for pixels; <a href='#SkCanvas_readPixels_dstInfo'>dstInfo</a>.<a href='#SkImageInfo_height'>height()</a> times <a href='#SkCanvas_readPixels_dstRowBytes'>dstRowBytes</a>, or larger</td>
</tr>
<tr> <td><a name='SkCanvas_readPixels_dstRowBytes'><code><strong>dstRowBytes</strong></code></a></td>
- <td><a href='undocumented#Size'>size</a> <a href='undocumented#Size'>of</a> <a href='undocumented#Size'>one</a> <a href='undocumented#Size'>destination</a> <a href='undocumented#Size'>row</a>; <a href='#SkCanvas_readPixels_dstInfo'>dstInfo</a>.<a href='#SkImageInfo_width'>width()</a> <a href='#SkImageInfo_width'>times</a> <a href='undocumented#Pixel'>pixel</a> <a href='undocumented#Size'>size</a>, <a href='undocumented#Size'>or</a> <a href='undocumented#Size'>larger</a></td>
+ <td><a href='undocumented#Size'>size</a> of one destination row; <a href='#SkCanvas_readPixels_dstInfo'>dstInfo</a>.<a href='#SkImageInfo_width'>width()</a> times <a href='undocumented#Pixel'>pixel</a> <a href='undocumented#Size'>size</a>, or larger</td>
</tr>
<tr> <td><a name='SkCanvas_readPixels_srcX'><code><strong>srcX</strong></code></a></td>
<td>offset into readable pixels on x-axis; may be negative</td>
@@ -1147,18 +1147,18 @@
### Example
-<div><fiddle-embed name="102d014d7f753db2a9b9ee08893aaf11"><div>A black <a href='undocumented#Circle'>circle</a> <a href='undocumented#Circle'>drawn</a> <a href='undocumented#Circle'>on</a> <a href='undocumented#Circle'>a</a> <a href='undocumented#Circle'>blue</a> <a href='undocumented#Circle'>background</a> <a href='undocumented#Circle'>provides</a> <a href='undocumented#Circle'>an</a> <a href='SkImage_Reference#Image'>image</a> <a href='SkImage_Reference#Image'>to</a> <a href='SkImage_Reference#Image'>copy</a>.
-<a href='#SkCanvas_readPixels'>readPixels</a> <a href='#SkCanvas_readPixels'>copies</a> <a href='#SkCanvas_readPixels'>one</a> <a href='#SkCanvas_readPixels'>quarter</a> <a href='#SkCanvas_readPixels'>of</a> <a href='#SkCanvas_readPixels'>the</a> <a href='SkCanvas_Reference#Canvas'>canvas</a> <a href='SkCanvas_Reference#Canvas'>into</a> <a href='SkCanvas_Reference#Canvas'>each</a> <a href='SkCanvas_Reference#Canvas'>of</a> <a href='SkCanvas_Reference#Canvas'>the</a> <a href='SkCanvas_Reference#Canvas'>four</a> <a href='SkCanvas_Reference#Canvas'>corners</a>.
-<a href='SkCanvas_Reference#Canvas'>The</a> <a href='SkCanvas_Reference#Canvas'>copied</a> <a href='SkCanvas_Reference#Canvas'>quarter</a> <a href='undocumented#Circle'>circles</a> <a href='undocumented#Circle'>overdraw</a> <a href='undocumented#Circle'>the</a> <a href='undocumented#Circle'>original</a> <a href='undocumented#Circle'>circle</a>.
+<div><fiddle-embed name="102d014d7f753db2a9b9ee08893aaf11"><div>A black <a href='undocumented#Circle'>circle</a> drawn on a blue background provides an <a href='SkImage_Reference#Image'>image</a> to copy.
+<a href='#SkCanvas_readPixels'>readPixels</a> copies one quarter of the <a href='SkCanvas_Reference#Canvas'>canvas</a> into each of the four corners.
+The copied quarter <a href='undocumented#Circle'>circles</a> overdraw the original <a href='undocumented#Circle'>circle</a>.
</div></fiddle-embed></div>
### Example
-<div><fiddle-embed name="481e990e923a0ed34654f4361b94f096"><div><a href='SkCanvas_Reference#Canvas'>Canvas</a> <a href='SkCanvas_Reference#Canvas'>returned</a> <a href='SkCanvas_Reference#Canvas'>by</a> <a href='#Raster_Surface'>Raster_Surface</a> <a href='#Raster_Surface'>has</a> <a href='undocumented#Premultiply'>Premultiplied</a> <a href='undocumented#Pixel'>pixel</a> <a href='undocumented#Pixel'>values</a>.
-<a href='#SkCanvas_clear'>clear()</a> <a href='#SkCanvas_clear'>takes</a> <a href='undocumented#Unpremultiply'>Unpremultiplied</a> <a href='undocumented#Unpremultiply'>input</a> <a href='undocumented#Unpremultiply'>with</a> <a href='#Color_Alpha'>Color_Alpha</a> <a href='#Color_Alpha'>equal</a> 0<a href='#Color_Alpha'>x80</a>
-<a href='#Color_Alpha'>and</a> <a href='#Color_Alpha'>RGB</a> <a href='#Color_Alpha'>equal</a> 0<a href='#Color_Alpha'>x55</a>, 0<a href='#Color_Alpha'>xAA</a>, 0<a href='#Color_Alpha'>xFF</a>. <a href='#Color_Alpha'>RGB</a> <a href='#Color_Alpha'>is</a> <a href='#Color_Alpha'>multiplied</a> <a href='#Color_Alpha'>by</a> <a href='#Color_Alpha'>Color_Alpha</a>
-<a href='#Color_Alpha'>to</a> <a href='#Color_Alpha'>generate</a> <a href='undocumented#Premultiply'>Premultiplied</a> <a href='undocumented#Premultiply'>value</a> 0<a href='undocumented#Premultiply'>x802B5580</a>. <a href='#SkCanvas_readPixels'>readPixels</a> <a href='#SkCanvas_readPixels'>converts</a> <a href='undocumented#Pixel'>pixel</a> <a href='undocumented#Pixel'>back</a>
-<a href='undocumented#Pixel'>to</a> <a href='undocumented#Unpremultiply'>Unpremultiplied</a> <a href='undocumented#Unpremultiply'>value</a> 0<a href='undocumented#Unpremultiply'>x8056A9FF</a>, <a href='undocumented#Unpremultiply'>introducing</a> <a href='undocumented#Unpremultiply'>error</a>.
+<div><fiddle-embed name="481e990e923a0ed34654f4361b94f096"><div><a href='SkCanvas_Reference#Canvas'>Canvas</a> returned by <a href='#Raster_Surface'>Raster_Surface</a> has <a href='undocumented#Premultiply'>Premultiplied</a> <a href='undocumented#Pixel'>pixel</a> values.
+<a href='#SkCanvas_clear'>clear()</a> takes <a href='undocumented#Unpremultiply'>Unpremultiplied</a> input with <a href='#Color_Alpha'>Color_Alpha</a> equal 0x80
+and RGB equal 0x55, 0xAA, 0xFF. RGB is multiplied by <a href='#Color_Alpha'>Color_Alpha</a>
+to generate <a href='undocumented#Premultiply'>Premultiplied</a> value 0x802B5580. <a href='#SkCanvas_readPixels'>readPixels</a> converts <a href='undocumented#Pixel'>pixel</a> back
+to <a href='undocumented#Unpremultiply'>Unpremultiplied</a> value 0x8056A9FF, introducing error.
</div>
#### Example Output
@@ -1179,42 +1179,42 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-bool <a href='#SkCanvas_readPixels'>readPixels</a>(<a href='#SkCanvas_readPixels'>const</a> <a href='SkPixmap_Reference#SkPixmap'>SkPixmap</a>& <a href='SkPixmap_Reference#Pixmap'>pixmap</a>, <a href='SkPixmap_Reference#Pixmap'>int</a> <a href='SkPixmap_Reference#Pixmap'>srcX</a>, <a href='SkPixmap_Reference#Pixmap'>int</a> <a href='SkPixmap_Reference#Pixmap'>srcY</a>)
+bool <a href='#SkCanvas_readPixels'>readPixels</a>(const <a href='SkPixmap_Reference#SkPixmap'>SkPixmap</a>& <a href='SkPixmap_Reference#Pixmap'>pixmap</a>, int srcX, int srcY)
</pre>
-Copies <a href='SkRect_Reference#Rect'>Rect</a> <a href='SkRect_Reference#Rect'>of</a> <a href='SkRect_Reference#Rect'>pixels</a> <a href='SkRect_Reference#Rect'>from</a> <a href='SkCanvas_Reference#Canvas'>Canvas</a> <a href='SkCanvas_Reference#Canvas'>into</a> <a href='#SkCanvas_readPixels_2_pixmap'>pixmap</a>. <a href='SkMatrix_Reference#Matrix'>Matrix</a> <a href='SkMatrix_Reference#Matrix'>and</a> <a href='SkMatrix_Reference#Matrix'>Clip</a> <a href='SkMatrix_Reference#Matrix'>are</a>
-<a href='SkMatrix_Reference#Matrix'>ignored</a>.
+Copies <a href='SkRect_Reference#Rect'>Rect</a> of pixels from <a href='SkCanvas_Reference#Canvas'>Canvas</a> into <a href='#SkCanvas_readPixels_2_pixmap'>pixmap</a>. <a href='SkMatrix_Reference#Matrix'>Matrix</a> and Clip are
+ignored.
-<a href='SkMatrix_Reference#Matrix'>Source</a> <a href='SkRect_Reference#Rect'>Rect</a> <a href='SkRect_Reference#Rect'>corners</a> <a href='SkRect_Reference#Rect'>are</a> (<a href='#SkCanvas_readPixels_2_srcX'>srcX</a>, <a href='#SkCanvas_readPixels_2_srcY'>srcY</a>) <a href='#SkCanvas_readPixels_2_srcY'>and</a> (<a href='#SkCanvas_imageInfo'>imageInfo</a>().<a href='#SkImageInfo_width'>width()</a>, <a href='#SkCanvas_imageInfo'>imageInfo</a>().<a href='#SkImageInfo_height'>height()</a>).
-<a href='#SkImageInfo_height'>Destination</a> <a href='SkRect_Reference#Rect'>Rect</a> <a href='SkRect_Reference#Rect'>corners</a> <a href='SkRect_Reference#Rect'>are</a> (0, 0) <a href='SkRect_Reference#Rect'>and</a> (<a href='#SkCanvas_readPixels_2_pixmap'>pixmap</a>.<a href='#SkPixmap_width'>width()</a>, <a href='#SkCanvas_readPixels_2_pixmap'>pixmap</a>.<a href='#SkPixmap_height'>height()</a>).
-<a href='#SkPixmap_height'>Copies</a> <a href='#SkPixmap_height'>each</a> <a href='#SkPixmap_height'>readable</a> <a href='undocumented#Pixel'>pixel</a> <a href='undocumented#Pixel'>intersecting</a> <a href='undocumented#Pixel'>both</a> <a href='undocumented#Pixel'>rectangles</a>, <a href='undocumented#Pixel'>without</a> <a href='undocumented#Pixel'>scaling</a>,
-<a href='undocumented#Pixel'>converting</a> <a href='undocumented#Pixel'>to</a> <a href='#SkCanvas_readPixels_2_pixmap'>pixmap</a>.<a href='#SkPixmap_colorType'>colorType</a>() <a href='#SkPixmap_colorType'>and</a> <a href='#SkCanvas_readPixels_2_pixmap'>pixmap</a>.<a href='#SkPixmap_alphaType'>alphaType</a>() <a href='#SkPixmap_alphaType'>if</a> <a href='#SkPixmap_alphaType'>required</a>.
+Source <a href='SkRect_Reference#Rect'>Rect</a> corners are (<a href='#SkCanvas_readPixels_2_srcX'>srcX</a>, <a href='#SkCanvas_readPixels_2_srcY'>srcY</a>) and (<a href='#SkCanvas_imageInfo'>imageInfo</a>().<a href='#SkImageInfo_width'>width()</a>, <a href='#SkCanvas_imageInfo'>imageInfo</a>().<a href='#SkImageInfo_height'>height()</a>).
+Destination <a href='SkRect_Reference#Rect'>Rect</a> corners are (0, 0) and (<a href='#SkCanvas_readPixels_2_pixmap'>pixmap</a>.<a href='#SkPixmap_width'>width()</a>, <a href='#SkCanvas_readPixels_2_pixmap'>pixmap</a>.<a href='#SkPixmap_height'>height()</a>).
+Copies each readable <a href='undocumented#Pixel'>pixel</a> intersecting both rectangles, without scaling,
+converting to <a href='#SkCanvas_readPixels_2_pixmap'>pixmap</a>.<a href='#SkPixmap_colorType'>colorType</a>() and <a href='#SkCanvas_readPixels_2_pixmap'>pixmap</a>.<a href='#SkPixmap_alphaType'>alphaType</a>() if required.
-<a href='#SkPixmap_alphaType'>Pixels</a> <a href='#SkPixmap_alphaType'>are</a> <a href='#SkPixmap_alphaType'>readable</a> <a href='#SkPixmap_alphaType'>when</a> <a href='undocumented#Device'>Device</a> <a href='undocumented#Device'>is</a> <a href='undocumented#Device'>raster</a>, <a href='undocumented#Device'>or</a> <a href='undocumented#Device'>backed</a> <a href='undocumented#Device'>by</a> <a href='undocumented#Device'>a</a> <a href='undocumented#Device'>GPU</a>.
-<a href='undocumented#Device'>Pixels</a> <a href='undocumented#Device'>are</a> <a href='undocumented#Device'>not</a> <a href='undocumented#Device'>readable</a> <a href='undocumented#Device'>when</a> <a href='SkCanvas_Reference#SkCanvas'>SkCanvas</a> <a href='SkCanvas_Reference#SkCanvas'>is</a> <a href='SkCanvas_Reference#SkCanvas'>returned</a> <a href='SkCanvas_Reference#SkCanvas'>by</a> <a href='undocumented#SkDocument'>SkDocument</a>::<a href='#SkDocument_beginPage'>beginPage</a>,
-<a href='#SkDocument_beginPage'>returned</a> <a href='#SkDocument_beginPage'>by</a> <a href='undocumented#SkPictureRecorder'>SkPictureRecorder</a>::<a href='#SkPictureRecorder_beginRecording'>beginRecording</a>, <a href='#SkPictureRecorder_beginRecording'>or</a> <a href='SkCanvas_Reference#Canvas'>Canvas</a> <a href='SkCanvas_Reference#Canvas'>is</a> <a href='SkCanvas_Reference#Canvas'>the</a> <a href='SkCanvas_Reference#Canvas'>base</a> <a href='SkCanvas_Reference#Canvas'>of</a> <a href='SkCanvas_Reference#Canvas'>a</a> <a href='SkCanvas_Reference#Canvas'>utility</a>
-<a href='SkCanvas_Reference#Canvas'>class</a> <a href='SkCanvas_Reference#Canvas'>like</a> <a href='undocumented#SkDebugCanvas'>SkDebugCanvas</a>.
+Pixels are readable when <a href='undocumented#Device'>Device</a> is raster, or backed by a GPU.
+Pixels are not readable when <a href='SkCanvas_Reference#SkCanvas'>SkCanvas</a> is returned by <a href='undocumented#SkDocument'>SkDocument</a>::<a href='#SkDocument_beginPage'>beginPage</a>,
+returned by <a href='undocumented#SkPictureRecorder'>SkPictureRecorder</a>::<a href='#SkPictureRecorder_beginRecording'>beginRecording</a>, or <a href='SkCanvas_Reference#Canvas'>Canvas</a> is the base of a utility
+class like <a href='undocumented#SkDebugCanvas'>SkDebugCanvas</a>.
-<a href='undocumented#SkDebugCanvas'>Caller</a> <a href='undocumented#SkDebugCanvas'>must</a> <a href='undocumented#SkDebugCanvas'>allocate</a> <a href='undocumented#Pixel_Storage'>pixel storage</a> <a href='undocumented#Pixel'>in</a> <a href='#SkCanvas_readPixels_2_pixmap'>pixmap</a> <a href='#SkCanvas_readPixels_2_pixmap'>if</a> <a href='#SkCanvas_readPixels_2_pixmap'>needed</a>.
+Caller must allocate <a href='undocumented#Pixel_Storage'>pixel storage</a> in <a href='#SkCanvas_readPixels_2_pixmap'>pixmap</a> if needed.
-<a href='undocumented#Pixel'>Pixel</a> <a href='undocumented#Pixel'>values</a> <a href='undocumented#Pixel'>are</a> <a href='undocumented#Pixel'>converted</a> <a href='undocumented#Pixel'>only</a> <a href='undocumented#Pixel'>if</a> <a href='#Image_Info_Color_Type'>Color_Type</a> <a href='#Image_Info_Color_Type'>and</a> <a href='#Image_Info_Alpha_Type'>Alpha_Type</a>
-<a href='#Image_Info_Alpha_Type'>do</a> <a href='#Image_Info_Alpha_Type'>not</a> <a href='#Image_Info_Alpha_Type'>match</a>. <a href='#Image_Info_Alpha_Type'>Only</a> <a href='#Image_Info_Alpha_Type'>pixels</a> <a href='#Image_Info_Alpha_Type'>within</a> <a href='#Image_Info_Alpha_Type'>both</a> <a href='#Image_Info_Alpha_Type'>source</a> <a href='#Image_Info_Alpha_Type'>and</a> <a href='#Image_Info_Alpha_Type'>destination</a> <a href='SkRect_Reference#Rect'>Rects</a>
-<a href='SkRect_Reference#Rect'>are</a> <a href='SkRect_Reference#Rect'>copied</a>. <a href='SkPixmap_Reference#Pixmap_Pixels'>pixmap pixels</a> <a href='#SkCanvas_readPixels_2_pixmap'>contents</a> <a href='#SkCanvas_readPixels_2_pixmap'>outside</a> <a href='SkRect_Reference#Rect'>Rect</a> <a href='SkRect_Reference#Rect'>intersection</a> <a href='SkRect_Reference#Rect'>are</a> <a href='SkRect_Reference#Rect'>unchanged</a>.
+<a href='undocumented#Pixel'>Pixel</a> values are converted only if <a href='#Image_Info_Color_Type'>Color_Type</a> and <a href='#Image_Info_Alpha_Type'>Alpha_Type</a>
+do not match. Only pixels within both source and destination <a href='SkRect_Reference#Rect'>Rects</a>
+are copied. <a href='SkPixmap_Reference#Pixmap_Pixels'>pixmap pixels</a> contents outside <a href='SkRect_Reference#Rect'>Rect</a> intersection are unchanged.
-<a href='SkRect_Reference#Rect'>Pass</a> <a href='SkRect_Reference#Rect'>negative</a> <a href='SkRect_Reference#Rect'>values</a> <a href='SkRect_Reference#Rect'>for</a> <a href='#SkCanvas_readPixels_2_srcX'>srcX</a> <a href='#SkCanvas_readPixels_2_srcX'>or</a> <a href='#SkCanvas_readPixels_2_srcY'>srcY</a> <a href='#SkCanvas_readPixels_2_srcY'>to</a> <a href='#SkCanvas_readPixels_2_srcY'>offset</a> <a href='#SkCanvas_readPixels_2_srcY'>pixels</a> <a href='#SkCanvas_readPixels_2_srcY'>across</a> <a href='#SkCanvas_readPixels_2_srcY'>or</a> <a href='#SkCanvas_readPixels_2_srcY'>down</a> <a href='#SkCanvas_readPixels_2_pixmap'>pixmap</a>.
+Pass negative values for <a href='#SkCanvas_readPixels_2_srcX'>srcX</a> or <a href='#SkCanvas_readPixels_2_srcY'>srcY</a> to offset pixels across or down <a href='#SkCanvas_readPixels_2_pixmap'>pixmap</a>.
-<a href='#SkCanvas_readPixels_2_pixmap'>Does</a> <a href='#SkCanvas_readPixels_2_pixmap'>not</a> <a href='#SkCanvas_readPixels_2_pixmap'>copy</a>, <a href='#SkCanvas_readPixels_2_pixmap'>and</a> <a href='#SkCanvas_readPixels_2_pixmap'>returns</a> <a href='#SkCanvas_readPixels_2_pixmap'>false</a> <a href='#SkCanvas_readPixels_2_pixmap'>if</a>:
+Does not copy, and returns false if:
<table> <tr>
<td>Source and destination rectangles do not intersect.</td>
</tr> <tr>
- <td><a href='SkCanvas_Reference#Canvas'>Canvas</a> <a href='SkCanvas_Reference#Canvas'>pixels</a> <a href='SkCanvas_Reference#Canvas'>could</a> <a href='SkCanvas_Reference#Canvas'>not</a> <a href='SkCanvas_Reference#Canvas'>be</a> <a href='SkCanvas_Reference#Canvas'>converted</a> <a href='SkCanvas_Reference#Canvas'>to</a> <a href='#SkCanvas_readPixels_2_pixmap'>pixmap</a>.<a href='#SkPixmap_colorType'>colorType</a>() <a href='#SkPixmap_colorType'>or</a> <a href='#SkCanvas_readPixels_2_pixmap'>pixmap</a>.<a href='#SkPixmap_alphaType'>alphaType</a>().</td>
+ <td><a href='SkCanvas_Reference#Canvas'>Canvas</a> pixels could not be converted to <a href='#SkCanvas_readPixels_2_pixmap'>pixmap</a>.<a href='#SkPixmap_colorType'>colorType</a>() or <a href='#SkCanvas_readPixels_2_pixmap'>pixmap</a>.<a href='#SkPixmap_alphaType'>alphaType</a>().</td>
</tr> <tr>
- <td><a href='SkCanvas_Reference#Canvas'>Canvas</a> <a href='SkCanvas_Reference#Canvas'>pixels</a> <a href='SkCanvas_Reference#Canvas'>are</a> <a href='SkCanvas_Reference#Canvas'>not</a> <a href='SkCanvas_Reference#Canvas'>readable</a>; <a href='SkCanvas_Reference#Canvas'>for</a> <a href='SkCanvas_Reference#Canvas'>instance</a>, <a href='SkCanvas_Reference#Canvas'>Canvas</a> <a href='SkCanvas_Reference#Canvas'>is</a> <a href='SkCanvas_Reference#Canvas'>document-based</a>.</td>
+ <td><a href='SkCanvas_Reference#Canvas'>Canvas</a> pixels are not readable; for instance, <a href='SkCanvas_Reference#Canvas'>Canvas</a> is document-based.</td>
</tr> <tr>
- <td><a href='SkPixmap_Reference#Pixmap'>Pixmap</a> <a href='SkPixmap_Reference#Pixmap'>pixels</a> <a href='SkPixmap_Reference#Pixmap'>could</a> <a href='SkPixmap_Reference#Pixmap'>not</a> <a href='SkPixmap_Reference#Pixmap'>be</a> <a href='SkPixmap_Reference#Pixmap'>allocated</a>.</td>
+ <td><a href='SkPixmap_Reference#Pixmap'>Pixmap</a> pixels could not be allocated.</td>
</tr> <tr>
- <td><a href='#SkCanvas_readPixels_2_pixmap'>pixmap</a>.<a href='#SkPixmap_rowBytes'>rowBytes</a>() <a href='#SkPixmap_rowBytes'>is</a> <a href='#SkPixmap_rowBytes'>too</a> <a href='#SkPixmap_rowBytes'>small</a> <a href='#SkPixmap_rowBytes'>to</a> <a href='#SkPixmap_rowBytes'>contain</a> <a href='#SkPixmap_rowBytes'>one</a> <a href='#SkPixmap_rowBytes'>row</a> <a href='#SkPixmap_rowBytes'>of</a> <a href='#SkPixmap_rowBytes'>pixels</a>.</td>
+ <td><a href='#SkCanvas_readPixels_2_pixmap'>pixmap</a>.<a href='#SkPixmap_rowBytes'>rowBytes</a>() is too small to contain one row of pixels.</td>
</tr>
</table>
@@ -1237,9 +1237,9 @@
### Example
-<div><fiddle-embed name="85f199032943b6483722c34a91c4e20f"><div><a href='#SkCanvas_clear'>clear()</a> <a href='#SkCanvas_clear'>takes</a> <a href='undocumented#Unpremultiply'>Unpremultiplied</a> <a href='undocumented#Unpremultiply'>input</a> <a href='undocumented#Unpremultiply'>with</a> <a href='#Color_Alpha'>Color_Alpha</a> <a href='#Color_Alpha'>equal</a> 0<a href='#Color_Alpha'>x80</a>
-<a href='#Color_Alpha'>and</a> <a href='#Color_Alpha'>RGB</a> <a href='#Color_Alpha'>equal</a> 0<a href='#Color_Alpha'>x55</a>, 0<a href='#Color_Alpha'>xAA</a>, 0<a href='#Color_Alpha'>xFF</a>. <a href='#Color_Alpha'>RGB</a> <a href='#Color_Alpha'>is</a> <a href='#Color_Alpha'>multiplied</a> <a href='#Color_Alpha'>by</a> <a href='#Color_Alpha'>Color_Alpha</a>
-<a href='#Color_Alpha'>to</a> <a href='#Color_Alpha'>generate</a> <a href='undocumented#Premultiply'>Premultiplied</a> <a href='undocumented#Premultiply'>value</a> 0<a href='undocumented#Premultiply'>x802B5580</a>.
+<div><fiddle-embed name="85f199032943b6483722c34a91c4e20f"><div><a href='#SkCanvas_clear'>clear()</a> takes <a href='undocumented#Unpremultiply'>Unpremultiplied</a> input with <a href='#Color_Alpha'>Color_Alpha</a> equal 0x80
+and RGB equal 0x55, 0xAA, 0xFF. RGB is multiplied by <a href='#Color_Alpha'>Color_Alpha</a>
+to generate <a href='undocumented#Premultiply'>Premultiplied</a> value 0x802B5580.
</div>
#### Example Output
@@ -1259,42 +1259,42 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-bool <a href='#SkCanvas_readPixels'>readPixels</a>(<a href='#SkCanvas_readPixels'>const</a> <a href='SkBitmap_Reference#SkBitmap'>SkBitmap</a>& <a href='SkBitmap_Reference#Bitmap'>bitmap</a>, <a href='SkBitmap_Reference#Bitmap'>int</a> <a href='SkBitmap_Reference#Bitmap'>srcX</a>, <a href='SkBitmap_Reference#Bitmap'>int</a> <a href='SkBitmap_Reference#Bitmap'>srcY</a>)
+bool <a href='#SkCanvas_readPixels'>readPixels</a>(const <a href='SkBitmap_Reference#SkBitmap'>SkBitmap</a>& <a href='SkBitmap_Reference#Bitmap'>bitmap</a>, int srcX, int srcY)
</pre>
-Copies <a href='SkRect_Reference#Rect'>Rect</a> <a href='SkRect_Reference#Rect'>of</a> <a href='SkRect_Reference#Rect'>pixels</a> <a href='SkRect_Reference#Rect'>from</a> <a href='SkCanvas_Reference#Canvas'>Canvas</a> <a href='SkCanvas_Reference#Canvas'>into</a> <a href='#SkCanvas_readPixels_3_bitmap'>bitmap</a>. <a href='SkMatrix_Reference#Matrix'>Matrix</a> <a href='SkMatrix_Reference#Matrix'>and</a> <a href='SkMatrix_Reference#Matrix'>Clip</a> <a href='SkMatrix_Reference#Matrix'>are</a>
-<a href='SkMatrix_Reference#Matrix'>ignored</a>.
+Copies <a href='SkRect_Reference#Rect'>Rect</a> of pixels from <a href='SkCanvas_Reference#Canvas'>Canvas</a> into <a href='#SkCanvas_readPixels_3_bitmap'>bitmap</a>. <a href='SkMatrix_Reference#Matrix'>Matrix</a> and Clip are
+ignored.
-<a href='SkMatrix_Reference#Matrix'>Source</a> <a href='SkRect_Reference#Rect'>Rect</a> <a href='SkRect_Reference#Rect'>corners</a> <a href='SkRect_Reference#Rect'>are</a> (<a href='#SkCanvas_readPixels_3_srcX'>srcX</a>, <a href='#SkCanvas_readPixels_3_srcY'>srcY</a>) <a href='#SkCanvas_readPixels_3_srcY'>and</a> (<a href='#SkCanvas_imageInfo'>imageInfo</a>().<a href='#SkImageInfo_width'>width()</a>, <a href='#SkCanvas_imageInfo'>imageInfo</a>().<a href='#SkImageInfo_height'>height()</a>).
-<a href='#SkImageInfo_height'>Destination</a> <a href='SkRect_Reference#Rect'>Rect</a> <a href='SkRect_Reference#Rect'>corners</a> <a href='SkRect_Reference#Rect'>are</a> (0, 0) <a href='SkRect_Reference#Rect'>and</a> (<a href='#SkCanvas_readPixels_3_bitmap'>bitmap</a>.<a href='#SkBitmap_width'>width()</a>, <a href='#SkCanvas_readPixels_3_bitmap'>bitmap</a>.<a href='#SkBitmap_height'>height()</a>).
-<a href='#SkBitmap_height'>Copies</a> <a href='#SkBitmap_height'>each</a> <a href='#SkBitmap_height'>readable</a> <a href='undocumented#Pixel'>pixel</a> <a href='undocumented#Pixel'>intersecting</a> <a href='undocumented#Pixel'>both</a> <a href='undocumented#Pixel'>rectangles</a>, <a href='undocumented#Pixel'>without</a> <a href='undocumented#Pixel'>scaling</a>,
-<a href='undocumented#Pixel'>converting</a> <a href='undocumented#Pixel'>to</a> <a href='#SkCanvas_readPixels_3_bitmap'>bitmap</a>.<a href='#SkBitmap_colorType'>colorType</a>() <a href='#SkBitmap_colorType'>and</a> <a href='#SkCanvas_readPixels_3_bitmap'>bitmap</a>.<a href='#SkBitmap_alphaType'>alphaType</a>() <a href='#SkBitmap_alphaType'>if</a> <a href='#SkBitmap_alphaType'>required</a>.
+Source <a href='SkRect_Reference#Rect'>Rect</a> corners are (<a href='#SkCanvas_readPixels_3_srcX'>srcX</a>, <a href='#SkCanvas_readPixels_3_srcY'>srcY</a>) and (<a href='#SkCanvas_imageInfo'>imageInfo</a>().<a href='#SkImageInfo_width'>width()</a>, <a href='#SkCanvas_imageInfo'>imageInfo</a>().<a href='#SkImageInfo_height'>height()</a>).
+Destination <a href='SkRect_Reference#Rect'>Rect</a> corners are (0, 0) and (<a href='#SkCanvas_readPixels_3_bitmap'>bitmap</a>.<a href='#SkBitmap_width'>width()</a>, <a href='#SkCanvas_readPixels_3_bitmap'>bitmap</a>.<a href='#SkBitmap_height'>height()</a>).
+Copies each readable <a href='undocumented#Pixel'>pixel</a> intersecting both rectangles, without scaling,
+converting to <a href='#SkCanvas_readPixels_3_bitmap'>bitmap</a>.<a href='#SkBitmap_colorType'>colorType</a>() and <a href='#SkCanvas_readPixels_3_bitmap'>bitmap</a>.<a href='#SkBitmap_alphaType'>alphaType</a>() if required.
-<a href='#SkBitmap_alphaType'>Pixels</a> <a href='#SkBitmap_alphaType'>are</a> <a href='#SkBitmap_alphaType'>readable</a> <a href='#SkBitmap_alphaType'>when</a> <a href='undocumented#Device'>Device</a> <a href='undocumented#Device'>is</a> <a href='undocumented#Device'>raster</a>, <a href='undocumented#Device'>or</a> <a href='undocumented#Device'>backed</a> <a href='undocumented#Device'>by</a> <a href='undocumented#Device'>a</a> <a href='undocumented#Device'>GPU</a>.
-<a href='undocumented#Device'>Pixels</a> <a href='undocumented#Device'>are</a> <a href='undocumented#Device'>not</a> <a href='undocumented#Device'>readable</a> <a href='undocumented#Device'>when</a> <a href='SkCanvas_Reference#SkCanvas'>SkCanvas</a> <a href='SkCanvas_Reference#SkCanvas'>is</a> <a href='SkCanvas_Reference#SkCanvas'>returned</a> <a href='SkCanvas_Reference#SkCanvas'>by</a> <a href='undocumented#SkDocument'>SkDocument</a>::<a href='#SkDocument_beginPage'>beginPage</a>,
-<a href='#SkDocument_beginPage'>returned</a> <a href='#SkDocument_beginPage'>by</a> <a href='undocumented#SkPictureRecorder'>SkPictureRecorder</a>::<a href='#SkPictureRecorder_beginRecording'>beginRecording</a>, <a href='#SkPictureRecorder_beginRecording'>or</a> <a href='SkCanvas_Reference#Canvas'>Canvas</a> <a href='SkCanvas_Reference#Canvas'>is</a> <a href='SkCanvas_Reference#Canvas'>the</a> <a href='SkCanvas_Reference#Canvas'>base</a> <a href='SkCanvas_Reference#Canvas'>of</a> <a href='SkCanvas_Reference#Canvas'>a</a> <a href='SkCanvas_Reference#Canvas'>utility</a>
-<a href='SkCanvas_Reference#Canvas'>class</a> <a href='SkCanvas_Reference#Canvas'>like</a> <a href='undocumented#SkDebugCanvas'>SkDebugCanvas</a>.
+Pixels are readable when <a href='undocumented#Device'>Device</a> is raster, or backed by a GPU.
+Pixels are not readable when <a href='SkCanvas_Reference#SkCanvas'>SkCanvas</a> is returned by <a href='undocumented#SkDocument'>SkDocument</a>::<a href='#SkDocument_beginPage'>beginPage</a>,
+returned by <a href='undocumented#SkPictureRecorder'>SkPictureRecorder</a>::<a href='#SkPictureRecorder_beginRecording'>beginRecording</a>, or <a href='SkCanvas_Reference#Canvas'>Canvas</a> is the base of a utility
+class like <a href='undocumented#SkDebugCanvas'>SkDebugCanvas</a>.
-<a href='undocumented#SkDebugCanvas'>Caller</a> <a href='undocumented#SkDebugCanvas'>must</a> <a href='undocumented#SkDebugCanvas'>allocate</a> <a href='undocumented#Pixel_Storage'>pixel storage</a> <a href='undocumented#Pixel'>in</a> <a href='#SkCanvas_readPixels_3_bitmap'>bitmap</a> <a href='#SkCanvas_readPixels_3_bitmap'>if</a> <a href='#SkCanvas_readPixels_3_bitmap'>needed</a>.
+Caller must allocate <a href='undocumented#Pixel_Storage'>pixel storage</a> in <a href='#SkCanvas_readPixels_3_bitmap'>bitmap</a> if needed.
-<a href='SkBitmap_Reference#Bitmap'>Bitmap</a> <a href='SkBitmap_Reference#Bitmap'>values</a> <a href='SkBitmap_Reference#Bitmap'>are</a> <a href='SkBitmap_Reference#Bitmap'>converted</a> <a href='SkBitmap_Reference#Bitmap'>only</a> <a href='SkBitmap_Reference#Bitmap'>if</a> <a href='#Image_Info_Color_Type'>Color_Type</a> <a href='#Image_Info_Color_Type'>and</a> <a href='#Image_Info_Alpha_Type'>Alpha_Type</a>
-<a href='#Image_Info_Alpha_Type'>do</a> <a href='#Image_Info_Alpha_Type'>not</a> <a href='#Image_Info_Alpha_Type'>match</a>. <a href='#Image_Info_Alpha_Type'>Only</a> <a href='#Image_Info_Alpha_Type'>pixels</a> <a href='#Image_Info_Alpha_Type'>within</a> <a href='#Image_Info_Alpha_Type'>both</a> <a href='#Image_Info_Alpha_Type'>source</a> <a href='#Image_Info_Alpha_Type'>and</a> <a href='#Image_Info_Alpha_Type'>destination</a> <a href='#Image_Info_Alpha_Type'>rectangles</a>
-<a href='#Image_Info_Alpha_Type'>are</a> <a href='#Image_Info_Alpha_Type'>copied</a>. <a href='SkBitmap_Reference#Bitmap'>Bitmap</a> <a href='SkBitmap_Reference#Bitmap'>pixels</a> <a href='SkBitmap_Reference#Bitmap'>outside</a> <a href='SkRect_Reference#Rect'>Rect</a> <a href='SkRect_Reference#Rect'>intersection</a> <a href='SkRect_Reference#Rect'>are</a> <a href='SkRect_Reference#Rect'>unchanged</a>.
+<a href='SkBitmap_Reference#Bitmap'>Bitmap</a> values are converted only if <a href='#Image_Info_Color_Type'>Color_Type</a> and <a href='#Image_Info_Alpha_Type'>Alpha_Type</a>
+do not match. Only pixels within both source and destination rectangles
+are copied. <a href='SkBitmap_Reference#Bitmap'>Bitmap</a> pixels outside <a href='SkRect_Reference#Rect'>Rect</a> intersection are unchanged.
-<a href='SkRect_Reference#Rect'>Pass</a> <a href='SkRect_Reference#Rect'>negative</a> <a href='SkRect_Reference#Rect'>values</a> <a href='SkRect_Reference#Rect'>for</a> <a href='#SkCanvas_readPixels_3_srcX'>srcX</a> <a href='#SkCanvas_readPixels_3_srcX'>or</a> <a href='#SkCanvas_readPixels_3_srcY'>srcY</a> <a href='#SkCanvas_readPixels_3_srcY'>to</a> <a href='#SkCanvas_readPixels_3_srcY'>offset</a> <a href='#SkCanvas_readPixels_3_srcY'>pixels</a> <a href='#SkCanvas_readPixels_3_srcY'>across</a> <a href='#SkCanvas_readPixels_3_srcY'>or</a> <a href='#SkCanvas_readPixels_3_srcY'>down</a> <a href='#SkCanvas_readPixels_3_bitmap'>bitmap</a>.
+Pass negative values for <a href='#SkCanvas_readPixels_3_srcX'>srcX</a> or <a href='#SkCanvas_readPixels_3_srcY'>srcY</a> to offset pixels across or down <a href='#SkCanvas_readPixels_3_bitmap'>bitmap</a>.
-<a href='#SkCanvas_readPixels_3_bitmap'>Does</a> <a href='#SkCanvas_readPixels_3_bitmap'>not</a> <a href='#SkCanvas_readPixels_3_bitmap'>copy</a>, <a href='#SkCanvas_readPixels_3_bitmap'>and</a> <a href='#SkCanvas_readPixels_3_bitmap'>returns</a> <a href='#SkCanvas_readPixels_3_bitmap'>false</a> <a href='#SkCanvas_readPixels_3_bitmap'>if</a>:
+Does not copy, and returns false if:
<table> <tr>
<td>Source and destination rectangles do not intersect.</td>
</tr> <tr>
- <td><a href='SkCanvas_Reference#Canvas'>Canvas</a> <a href='SkCanvas_Reference#Canvas'>pixels</a> <a href='SkCanvas_Reference#Canvas'>could</a> <a href='SkCanvas_Reference#Canvas'>not</a> <a href='SkCanvas_Reference#Canvas'>be</a> <a href='SkCanvas_Reference#Canvas'>converted</a> <a href='SkCanvas_Reference#Canvas'>to</a> <a href='#SkCanvas_readPixels_3_bitmap'>bitmap</a>.<a href='#SkBitmap_colorType'>colorType</a>() <a href='#SkBitmap_colorType'>or</a> <a href='#SkCanvas_readPixels_3_bitmap'>bitmap</a>.<a href='#SkBitmap_alphaType'>alphaType</a>().</td>
+ <td><a href='SkCanvas_Reference#Canvas'>Canvas</a> pixels could not be converted to <a href='#SkCanvas_readPixels_3_bitmap'>bitmap</a>.<a href='#SkBitmap_colorType'>colorType</a>() or <a href='#SkCanvas_readPixels_3_bitmap'>bitmap</a>.<a href='#SkBitmap_alphaType'>alphaType</a>().</td>
</tr> <tr>
- <td><a href='SkCanvas_Reference#Canvas'>Canvas</a> <a href='SkCanvas_Reference#Canvas'>pixels</a> <a href='SkCanvas_Reference#Canvas'>are</a> <a href='SkCanvas_Reference#Canvas'>not</a> <a href='SkCanvas_Reference#Canvas'>readable</a>; <a href='SkCanvas_Reference#Canvas'>for</a> <a href='SkCanvas_Reference#Canvas'>instance</a>, <a href='SkCanvas_Reference#Canvas'>Canvas</a> <a href='SkCanvas_Reference#Canvas'>is</a> <a href='SkCanvas_Reference#Canvas'>document-based</a>.</td>
+ <td><a href='SkCanvas_Reference#Canvas'>Canvas</a> pixels are not readable; for instance, <a href='SkCanvas_Reference#Canvas'>Canvas</a> is document-based.</td>
</tr> <tr>
- <td><a href='SkBitmap_Reference#Bitmap_Pixels'>bitmap pixels</a> <a href='#SkCanvas_readPixels_3_bitmap'>could</a> <a href='#SkCanvas_readPixels_3_bitmap'>not</a> <a href='#SkCanvas_readPixels_3_bitmap'>be</a> <a href='#SkCanvas_readPixels_3_bitmap'>allocated</a>.</td>
+ <td><a href='SkBitmap_Reference#Bitmap_Pixels'>bitmap pixels</a> could not be allocated.</td>
</tr> <tr>
- <td><a href='#SkCanvas_readPixels_3_bitmap'>bitmap</a>.<a href='#SkBitmap_rowBytes'>rowBytes</a>() <a href='#SkBitmap_rowBytes'>is</a> <a href='#SkBitmap_rowBytes'>too</a> <a href='#SkBitmap_rowBytes'>small</a> <a href='#SkBitmap_rowBytes'>to</a> <a href='#SkBitmap_rowBytes'>contain</a> <a href='#SkBitmap_rowBytes'>one</a> <a href='#SkBitmap_rowBytes'>row</a> <a href='#SkBitmap_rowBytes'>of</a> <a href='#SkBitmap_rowBytes'>pixels</a>.</td>
+ <td><a href='#SkCanvas_readPixels_3_bitmap'>bitmap</a>.<a href='#SkBitmap_rowBytes'>rowBytes</a>() is too small to contain one row of pixels.</td>
</tr>
</table>
@@ -1317,9 +1317,9 @@
### Example
-<div><fiddle-embed name="af6dec8ef974aa67bf102f29915bcd6a"><div><a href='#SkCanvas_clear'>clear()</a> <a href='#SkCanvas_clear'>takes</a> <a href='undocumented#Unpremultiply'>Unpremultiplied</a> <a href='undocumented#Unpremultiply'>input</a> <a href='undocumented#Unpremultiply'>with</a> <a href='#Color_Alpha'>Color_Alpha</a> <a href='#Color_Alpha'>equal</a> 0<a href='#Color_Alpha'>x80</a>
-<a href='#Color_Alpha'>and</a> <a href='#Color_Alpha'>RGB</a> <a href='#Color_Alpha'>equal</a> 0<a href='#Color_Alpha'>x55</a>, 0<a href='#Color_Alpha'>xAA</a>, 0<a href='#Color_Alpha'>xFF</a>. <a href='#Color_Alpha'>RGB</a> <a href='#Color_Alpha'>is</a> <a href='#Color_Alpha'>multiplied</a> <a href='#Color_Alpha'>by</a> <a href='#Color_Alpha'>Color_Alpha</a>
-<a href='#Color_Alpha'>to</a> <a href='#Color_Alpha'>generate</a> <a href='undocumented#Premultiply'>Premultiplied</a> <a href='undocumented#Premultiply'>value</a> 0<a href='undocumented#Premultiply'>x802B5580</a>.
+<div><fiddle-embed name="af6dec8ef974aa67bf102f29915bcd6a"><div><a href='#SkCanvas_clear'>clear()</a> takes <a href='undocumented#Unpremultiply'>Unpremultiplied</a> input with <a href='#Color_Alpha'>Color_Alpha</a> equal 0x80
+and RGB equal 0x55, 0xAA, 0xFF. RGB is multiplied by <a href='#Color_Alpha'>Color_Alpha</a>
+to generate <a href='undocumented#Premultiply'>Premultiplied</a> value 0x802B5580.
</div>
#### Example Output
@@ -1339,65 +1339,65 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-bool <a href='#SkCanvas_writePixels'>writePixels</a>(<a href='#SkCanvas_writePixels'>const</a> <a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a>& <a href='SkImageInfo_Reference#SkImageInfo'>info</a>, <a href='SkImageInfo_Reference#SkImageInfo'>const</a> <a href='SkImageInfo_Reference#SkImageInfo'>void</a>* <a href='SkImageInfo_Reference#SkImageInfo'>pixels</a>, <a href='SkImageInfo_Reference#SkImageInfo'>size_t</a> <a href='SkImageInfo_Reference#SkImageInfo'>rowBytes</a>, <a href='SkImageInfo_Reference#SkImageInfo'>int</a> <a href='SkImageInfo_Reference#SkImageInfo'>x</a>, <a href='SkImageInfo_Reference#SkImageInfo'>int</a> <a href='SkImageInfo_Reference#SkImageInfo'>y</a>)
+bool <a href='#SkCanvas_writePixels'>writePixels</a>(const <a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a>& info, const void* pixels, size_t rowBytes, int x, int y)
</pre>
-Copies <a href='SkRect_Reference#Rect'>Rect</a> <a href='SkRect_Reference#Rect'>from</a> <a href='#SkCanvas_writePixels_pixels'>pixels</a> <a href='#SkCanvas_writePixels_pixels'>to</a> <a href='SkCanvas_Reference#Canvas'>Canvas</a>. <a href='SkMatrix_Reference#Matrix'>Matrix</a> <a href='SkMatrix_Reference#Matrix'>and</a> <a href='SkMatrix_Reference#Matrix'>Clip</a> <a href='SkMatrix_Reference#Matrix'>are</a> <a href='SkMatrix_Reference#Matrix'>ignored</a>.
-<a href='SkMatrix_Reference#Matrix'>Source</a> <a href='SkRect_Reference#Rect'>Rect</a> <a href='SkRect_Reference#Rect'>corners</a> <a href='SkRect_Reference#Rect'>are</a> (0, 0) <a href='SkRect_Reference#Rect'>and</a> (<a href='#SkCanvas_writePixels_info'>info</a>.<a href='#SkImageInfo_width'>width()</a>, <a href='#SkCanvas_writePixels_info'>info</a>.<a href='#SkImageInfo_height'>height()</a>).
-<a href='#SkImageInfo_height'>Destination</a> <a href='SkRect_Reference#Rect'>Rect</a> <a href='SkRect_Reference#Rect'>corners</a> <a href='SkRect_Reference#Rect'>are</a> (<a href='#SkCanvas_writePixels_x'>x</a>, <a href='#SkCanvas_writePixels_y'>y</a>) <a href='#SkCanvas_writePixels_y'>and</a>
+Copies <a href='SkRect_Reference#Rect'>Rect</a> from <a href='#SkCanvas_writePixels_pixels'>pixels</a> to <a href='SkCanvas_Reference#Canvas'>Canvas</a>. <a href='SkMatrix_Reference#Matrix'>Matrix</a> and Clip are ignored.
+Source <a href='SkRect_Reference#Rect'>Rect</a> corners are (0, 0) and (<a href='#SkCanvas_writePixels_info'>info</a>.<a href='#SkImageInfo_width'>width()</a>, <a href='#SkCanvas_writePixels_info'>info</a>.<a href='#SkImageInfo_height'>height()</a>).
+Destination <a href='SkRect_Reference#Rect'>Rect</a> corners are (<a href='#SkCanvas_writePixels_x'>x</a>, <a href='#SkCanvas_writePixels_y'>y</a>) and
(<a href='#SkCanvas_imageInfo'>imageInfo</a>().<a href='#SkImageInfo_width'>width()</a>, <a href='#SkCanvas_imageInfo'>imageInfo</a>().<a href='#SkImageInfo_height'>height()</a>).
-<a href='#SkImageInfo_height'>Copies</a> <a href='#SkImageInfo_height'>each</a> <a href='#SkImageInfo_height'>readable</a> <a href='undocumented#Pixel'>pixel</a> <a href='undocumented#Pixel'>intersecting</a> <a href='undocumented#Pixel'>both</a> <a href='undocumented#Pixel'>rectangles</a>, <a href='undocumented#Pixel'>without</a> <a href='undocumented#Pixel'>scaling</a>,
-<a href='undocumented#Pixel'>converting</a> <a href='undocumented#Pixel'>to</a> <a href='#SkCanvas_imageInfo'>imageInfo</a>().<a href='#SkImageInfo_colorType'>colorType</a>() <a href='#SkImageInfo_colorType'>and</a> <a href='#SkCanvas_imageInfo'>imageInfo</a>().<a href='#SkImageInfo_alphaType'>alphaType</a>() <a href='#SkImageInfo_alphaType'>if</a> <a href='#SkImageInfo_alphaType'>required</a>.
+Copies each readable <a href='undocumented#Pixel'>pixel</a> intersecting both rectangles, without scaling,
+converting to <a href='#SkCanvas_imageInfo'>imageInfo</a>().<a href='#SkImageInfo_colorType'>colorType</a>() and <a href='#SkCanvas_imageInfo'>imageInfo</a>().<a href='#SkImageInfo_alphaType'>alphaType</a>() if required.
-<a href='#SkImageInfo_alphaType'>Pixels</a> <a href='#SkImageInfo_alphaType'>are</a> <a href='#SkImageInfo_alphaType'>writable</a> <a href='#SkImageInfo_alphaType'>when</a> <a href='undocumented#Device'>Device</a> <a href='undocumented#Device'>is</a> <a href='undocumented#Device'>raster</a>, <a href='undocumented#Device'>or</a> <a href='undocumented#Device'>backed</a> <a href='undocumented#Device'>by</a> <a href='undocumented#Device'>a</a> <a href='undocumented#Device'>GPU</a>.
-<a href='undocumented#Device'>Pixels</a> <a href='undocumented#Device'>are</a> <a href='undocumented#Device'>not</a> <a href='undocumented#Device'>writable</a> <a href='undocumented#Device'>when</a> <a href='SkCanvas_Reference#SkCanvas'>SkCanvas</a> <a href='SkCanvas_Reference#SkCanvas'>is</a> <a href='SkCanvas_Reference#SkCanvas'>returned</a> <a href='SkCanvas_Reference#SkCanvas'>by</a> <a href='undocumented#SkDocument'>SkDocument</a>::<a href='#SkDocument_beginPage'>beginPage</a>,
-<a href='#SkDocument_beginPage'>returned</a> <a href='#SkDocument_beginPage'>by</a> <a href='undocumented#SkPictureRecorder'>SkPictureRecorder</a>::<a href='#SkPictureRecorder_beginRecording'>beginRecording</a>, <a href='#SkPictureRecorder_beginRecording'>or</a> <a href='SkCanvas_Reference#Canvas'>Canvas</a> <a href='SkCanvas_Reference#Canvas'>is</a> <a href='SkCanvas_Reference#Canvas'>the</a> <a href='SkCanvas_Reference#Canvas'>base</a> <a href='SkCanvas_Reference#Canvas'>of</a> <a href='SkCanvas_Reference#Canvas'>a</a> <a href='SkCanvas_Reference#Canvas'>utility</a>
-<a href='SkCanvas_Reference#Canvas'>class</a> <a href='SkCanvas_Reference#Canvas'>like</a> <a href='undocumented#SkDebugCanvas'>SkDebugCanvas</a>.
+Pixels are writable when <a href='undocumented#Device'>Device</a> is raster, or backed by a GPU.
+Pixels are not writable when <a href='SkCanvas_Reference#SkCanvas'>SkCanvas</a> is returned by <a href='undocumented#SkDocument'>SkDocument</a>::<a href='#SkDocument_beginPage'>beginPage</a>,
+returned by <a href='undocumented#SkPictureRecorder'>SkPictureRecorder</a>::<a href='#SkPictureRecorder_beginRecording'>beginRecording</a>, or <a href='SkCanvas_Reference#Canvas'>Canvas</a> is the base of a utility
+class like <a href='undocumented#SkDebugCanvas'>SkDebugCanvas</a>.
-<a href='undocumented#Pixel'>Pixel</a> <a href='undocumented#Pixel'>values</a> <a href='undocumented#Pixel'>are</a> <a href='undocumented#Pixel'>converted</a> <a href='undocumented#Pixel'>only</a> <a href='undocumented#Pixel'>if</a> <a href='#Image_Info_Color_Type'>Color_Type</a> <a href='#Image_Info_Color_Type'>and</a> <a href='#Image_Info_Alpha_Type'>Alpha_Type</a>
-<a href='#Image_Info_Alpha_Type'>do</a> <a href='#Image_Info_Alpha_Type'>not</a> <a href='#Image_Info_Alpha_Type'>match</a>. <a href='#Image_Info_Alpha_Type'>Only</a> <a href='#SkCanvas_writePixels_pixels'>pixels</a> <a href='#SkCanvas_writePixels_pixels'>within</a> <a href='#SkCanvas_writePixels_pixels'>both</a> <a href='#SkCanvas_writePixels_pixels'>source</a> <a href='#SkCanvas_writePixels_pixels'>and</a> <a href='#SkCanvas_writePixels_pixels'>destination</a> <a href='#SkCanvas_writePixels_pixels'>rectangles</a>
-<a href='#SkCanvas_writePixels_pixels'>are</a> <a href='#SkCanvas_writePixels_pixels'>copied</a>. <a href='SkCanvas_Reference#Canvas'>Canvas</a> <a href='#SkCanvas_writePixels_pixels'>pixels</a> <a href='#SkCanvas_writePixels_pixels'>outside</a> <a href='SkRect_Reference#Rect'>Rect</a> <a href='SkRect_Reference#Rect'>intersection</a> <a href='SkRect_Reference#Rect'>are</a> <a href='SkRect_Reference#Rect'>unchanged</a>.
+<a href='undocumented#Pixel'>Pixel</a> values are converted only if <a href='#Image_Info_Color_Type'>Color_Type</a> and <a href='#Image_Info_Alpha_Type'>Alpha_Type</a>
+do not match. Only <a href='#SkCanvas_writePixels_pixels'>pixels</a> within both source and destination rectangles
+are copied. <a href='SkCanvas_Reference#Canvas'>Canvas</a> <a href='#SkCanvas_writePixels_pixels'>pixels</a> outside <a href='SkRect_Reference#Rect'>Rect</a> intersection are unchanged.
-<a href='SkRect_Reference#Rect'>Pass</a> <a href='SkRect_Reference#Rect'>negative</a> <a href='SkRect_Reference#Rect'>values</a> <a href='SkRect_Reference#Rect'>for</a> <a href='#SkCanvas_writePixels_x'>x</a> <a href='#SkCanvas_writePixels_x'>or</a> <a href='#SkCanvas_writePixels_y'>y</a> <a href='#SkCanvas_writePixels_y'>to</a> <a href='#SkCanvas_writePixels_y'>offset</a> <a href='#SkCanvas_writePixels_pixels'>pixels</a> <a href='#SkCanvas_writePixels_pixels'>to</a> <a href='#SkCanvas_writePixels_pixels'>the</a> <a href='#SkCanvas_writePixels_pixels'>left</a> <a href='#SkCanvas_writePixels_pixels'>or</a>
-<a href='#SkCanvas_writePixels_pixels'>above</a> <a href='SkCanvas_Reference#Canvas'>Canvas</a> <a href='#SkCanvas_writePixels_pixels'>pixels</a>.
+Pass negative values for <a href='#SkCanvas_writePixels_x'>x</a> or <a href='#SkCanvas_writePixels_y'>y</a> to offset <a href='#SkCanvas_writePixels_pixels'>pixels</a> to the left or
+above <a href='SkCanvas_Reference#Canvas'>Canvas</a> <a href='#SkCanvas_writePixels_pixels'>pixels</a>.
-<a href='#SkCanvas_writePixels_pixels'>Does</a> <a href='#SkCanvas_writePixels_pixels'>not</a> <a href='#SkCanvas_writePixels_pixels'>copy</a>, <a href='#SkCanvas_writePixels_pixels'>and</a> <a href='#SkCanvas_writePixels_pixels'>returns</a> <a href='#SkCanvas_writePixels_pixels'>false</a> <a href='#SkCanvas_writePixels_pixels'>if</a>:
+Does not copy, and returns false if:
<table> <tr>
<td>Source and destination rectangles do not intersect.</td>
</tr> <tr>
- <td><a href='#SkCanvas_writePixels_pixels'>pixels</a> <a href='#SkCanvas_writePixels_pixels'>could</a> <a href='#SkCanvas_writePixels_pixels'>not</a> <a href='#SkCanvas_writePixels_pixels'>be</a> <a href='#SkCanvas_writePixels_pixels'>converted</a> <a href='#SkCanvas_writePixels_pixels'>to</a> <a href='SkCanvas_Reference#Canvas'>Canvas</a> <a href='#SkCanvas_imageInfo'>imageInfo</a>().<a href='#SkImageInfo_colorType'>colorType</a>() <a href='#SkImageInfo_colorType'>or</a>
+ <td><a href='#SkCanvas_writePixels_pixels'>pixels</a> could not be converted to <a href='SkCanvas_Reference#Canvas'>Canvas</a> <a href='#SkCanvas_imageInfo'>imageInfo</a>().<a href='#SkImageInfo_colorType'>colorType</a>() or
<a href='#SkCanvas_imageInfo'>imageInfo</a>().<a href='#SkImageInfo_alphaType'>alphaType</a>().</td>
</tr> <tr>
- <td><a href='SkCanvas_Reference#Canvas'>Canvas</a> <a href='#SkCanvas_writePixels_pixels'>pixels</a> <a href='#SkCanvas_writePixels_pixels'>are</a> <a href='#SkCanvas_writePixels_pixels'>not</a> <a href='#SkCanvas_writePixels_pixels'>writable</a>; <a href='#SkCanvas_writePixels_pixels'>for</a> <a href='#SkCanvas_writePixels_pixels'>instance</a>, <a href='SkCanvas_Reference#Canvas'>Canvas</a> <a href='SkCanvas_Reference#Canvas'>is</a> <a href='SkCanvas_Reference#Canvas'>document-based</a>.</td>
+ <td><a href='SkCanvas_Reference#Canvas'>Canvas</a> <a href='#SkCanvas_writePixels_pixels'>pixels</a> are not writable; for instance, <a href='SkCanvas_Reference#Canvas'>Canvas</a> is document-based.</td>
</tr> <tr>
- <td><a href='#SkCanvas_writePixels_rowBytes'>rowBytes</a> <a href='#SkCanvas_writePixels_rowBytes'>is</a> <a href='#SkCanvas_writePixels_rowBytes'>too</a> <a href='#SkCanvas_writePixels_rowBytes'>small</a> <a href='#SkCanvas_writePixels_rowBytes'>to</a> <a href='#SkCanvas_writePixels_rowBytes'>contain</a> <a href='#SkCanvas_writePixels_rowBytes'>one</a> <a href='#SkCanvas_writePixels_rowBytes'>row</a> <a href='#SkCanvas_writePixels_rowBytes'>of</a> <a href='#SkCanvas_writePixels_pixels'>pixels</a>.</td>
+ <td><a href='#SkCanvas_writePixels_rowBytes'>rowBytes</a> is too small to contain one row of <a href='#SkCanvas_writePixels_pixels'>pixels</a>.</td>
</tr>
</table>
### Parameters
<table> <tr> <td><a name='SkCanvas_writePixels_info'><code><strong>info</strong></code></a></td>
- <td>width, height, <a href='#Image_Info_Color_Type'>Color_Type</a>, <a href='#Image_Info_Color_Type'>and</a> <a href='#Image_Info_Alpha_Type'>Alpha_Type</a> <a href='#Image_Info_Alpha_Type'>of</a> <a href='#SkCanvas_writePixels_pixels'>pixels</a></td>
+ <td>width, height, <a href='#Image_Info_Color_Type'>Color_Type</a>, and <a href='#Image_Info_Alpha_Type'>Alpha_Type</a> of <a href='#SkCanvas_writePixels_pixels'>pixels</a></td>
</tr>
<tr> <td><a name='SkCanvas_writePixels_pixels'><code><strong>pixels</strong></code></a></td>
- <td><a href='#SkCanvas_writePixels_pixels'>pixels</a> <a href='#SkCanvas_writePixels_pixels'>to</a> <a href='#SkCanvas_writePixels_pixels'>copy</a>, <a href='#SkCanvas_writePixels_pixels'>of</a> <a href='undocumented#Size'>size</a> <a href='#SkCanvas_writePixels_info'>info</a>.<a href='#SkImageInfo_height'>height()</a> <a href='#SkImageInfo_height'>times</a> <a href='#SkCanvas_writePixels_rowBytes'>rowBytes</a>, <a href='#SkCanvas_writePixels_rowBytes'>or</a> <a href='#SkCanvas_writePixels_rowBytes'>larger</a></td>
+ <td><a href='#SkCanvas_writePixels_pixels'>pixels</a> to copy, of <a href='undocumented#Size'>size</a> <a href='#SkCanvas_writePixels_info'>info</a>.<a href='#SkImageInfo_height'>height()</a> times <a href='#SkCanvas_writePixels_rowBytes'>rowBytes</a>, or larger</td>
</tr>
<tr> <td><a name='SkCanvas_writePixels_rowBytes'><code><strong>rowBytes</strong></code></a></td>
- <td><a href='undocumented#Size'>size</a> <a href='undocumented#Size'>of</a> <a href='undocumented#Size'>one</a> <a href='undocumented#Size'>row</a> <a href='undocumented#Size'>of</a> <a href='#SkCanvas_writePixels_pixels'>pixels</a>; <a href='#SkCanvas_writePixels_info'>info</a>.<a href='#SkImageInfo_width'>width()</a> <a href='#SkImageInfo_width'>times</a> <a href='undocumented#Pixel'>pixel</a> <a href='undocumented#Size'>size</a>, <a href='undocumented#Size'>or</a> <a href='undocumented#Size'>larger</a></td>
+ <td><a href='undocumented#Size'>size</a> of one row of <a href='#SkCanvas_writePixels_pixels'>pixels</a>; <a href='#SkCanvas_writePixels_info'>info</a>.<a href='#SkImageInfo_width'>width()</a> times <a href='undocumented#Pixel'>pixel</a> <a href='undocumented#Size'>size</a>, or larger</td>
</tr>
<tr> <td><a name='SkCanvas_writePixels_x'><code><strong>x</strong></code></a></td>
- <td>offset into <a href='SkCanvas_Reference#Canvas'>Canvas</a> <a href='SkCanvas_Reference#Canvas'>writable</a> <a href='#SkCanvas_writePixels_pixels'>pixels</a> <a href='#SkCanvas_writePixels_pixels'>on</a> <a href='#SkCanvas_writePixels_pixels'>x-axis</a>; <a href='#SkCanvas_writePixels_pixels'>may</a> <a href='#SkCanvas_writePixels_pixels'>be</a> <a href='#SkCanvas_writePixels_pixels'>negative</a></td>
+ <td>offset into <a href='SkCanvas_Reference#Canvas'>Canvas</a> writable <a href='#SkCanvas_writePixels_pixels'>pixels</a> on x-axis; may be negative</td>
</tr>
<tr> <td><a name='SkCanvas_writePixels_y'><code><strong>y</strong></code></a></td>
- <td>offset into <a href='SkCanvas_Reference#Canvas'>Canvas</a> <a href='SkCanvas_Reference#Canvas'>writable</a> <a href='#SkCanvas_writePixels_pixels'>pixels</a> <a href='#SkCanvas_writePixels_pixels'>on</a> <a href='#SkCanvas_writePixels_pixels'>y-axis</a>; <a href='#SkCanvas_writePixels_pixels'>may</a> <a href='#SkCanvas_writePixels_pixels'>be</a> <a href='#SkCanvas_writePixels_pixels'>negative</a></td>
+ <td>offset into <a href='SkCanvas_Reference#Canvas'>Canvas</a> writable <a href='#SkCanvas_writePixels_pixels'>pixels</a> on y-axis; may be negative</td>
</tr>
</table>
### Return Value
-true if <a href='#SkCanvas_writePixels_pixels'>pixels</a> <a href='#SkCanvas_writePixels_pixels'>were</a> <a href='#SkCanvas_writePixels_pixels'>written</a> <a href='#SkCanvas_writePixels_pixels'>to</a> <a href='SkCanvas_Reference#Canvas'>Canvas</a>
+true if <a href='#SkCanvas_writePixels_pixels'>pixels</a> were written to <a href='SkCanvas_Reference#Canvas'>Canvas</a>
### Example
@@ -1412,43 +1412,43 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-bool <a href='#SkCanvas_writePixels'>writePixels</a>(<a href='#SkCanvas_writePixels'>const</a> <a href='SkBitmap_Reference#SkBitmap'>SkBitmap</a>& <a href='SkBitmap_Reference#Bitmap'>bitmap</a>, <a href='SkBitmap_Reference#Bitmap'>int</a> <a href='SkBitmap_Reference#Bitmap'>x</a>, <a href='SkBitmap_Reference#Bitmap'>int</a> <a href='SkBitmap_Reference#Bitmap'>y</a>)
+bool <a href='#SkCanvas_writePixels'>writePixels</a>(const <a href='SkBitmap_Reference#SkBitmap'>SkBitmap</a>& <a href='SkBitmap_Reference#Bitmap'>bitmap</a>, int x, int y)
</pre>
-Copies <a href='SkRect_Reference#Rect'>Rect</a> <a href='SkRect_Reference#Rect'>from</a> <a href='SkRect_Reference#Rect'>pixels</a> <a href='SkRect_Reference#Rect'>to</a> <a href='SkCanvas_Reference#Canvas'>Canvas</a>. <a href='SkMatrix_Reference#Matrix'>Matrix</a> <a href='SkMatrix_Reference#Matrix'>and</a> <a href='SkMatrix_Reference#Matrix'>Clip</a> <a href='SkMatrix_Reference#Matrix'>are</a> <a href='SkMatrix_Reference#Matrix'>ignored</a>.
-<a href='SkMatrix_Reference#Matrix'>Source</a> <a href='SkRect_Reference#Rect'>Rect</a> <a href='SkRect_Reference#Rect'>corners</a> <a href='SkRect_Reference#Rect'>are</a> (0, 0) <a href='SkRect_Reference#Rect'>and</a> (<a href='#SkCanvas_writePixels_2_bitmap'>bitmap</a>.<a href='#SkBitmap_width'>width()</a>, <a href='#SkCanvas_writePixels_2_bitmap'>bitmap</a>.<a href='#SkBitmap_height'>height()</a>).
+Copies <a href='SkRect_Reference#Rect'>Rect</a> from pixels to <a href='SkCanvas_Reference#Canvas'>Canvas</a>. <a href='SkMatrix_Reference#Matrix'>Matrix</a> and Clip are ignored.
+Source <a href='SkRect_Reference#Rect'>Rect</a> corners are (0, 0) and (<a href='#SkCanvas_writePixels_2_bitmap'>bitmap</a>.<a href='#SkBitmap_width'>width()</a>, <a href='#SkCanvas_writePixels_2_bitmap'>bitmap</a>.<a href='#SkBitmap_height'>height()</a>).
-<a href='#SkBitmap_height'>Destination</a> <a href='SkRect_Reference#Rect'>Rect</a> <a href='SkRect_Reference#Rect'>corners</a> <a href='SkRect_Reference#Rect'>are</a> (<a href='#SkCanvas_writePixels_2_x'>x</a>, <a href='#SkCanvas_writePixels_2_y'>y</a>) <a href='#SkCanvas_writePixels_2_y'>and</a>
+Destination <a href='SkRect_Reference#Rect'>Rect</a> corners are (<a href='#SkCanvas_writePixels_2_x'>x</a>, <a href='#SkCanvas_writePixels_2_y'>y</a>) and
(<a href='#SkCanvas_imageInfo'>imageInfo</a>().<a href='#SkImageInfo_width'>width()</a>, <a href='#SkCanvas_imageInfo'>imageInfo</a>().<a href='#SkImageInfo_height'>height()</a>).
-<a href='#SkImageInfo_height'>Copies</a> <a href='#SkImageInfo_height'>each</a> <a href='#SkImageInfo_height'>readable</a> <a href='undocumented#Pixel'>pixel</a> <a href='undocumented#Pixel'>intersecting</a> <a href='undocumented#Pixel'>both</a> <a href='undocumented#Pixel'>rectangles</a>, <a href='undocumented#Pixel'>without</a> <a href='undocumented#Pixel'>scaling</a>,
-<a href='undocumented#Pixel'>converting</a> <a href='undocumented#Pixel'>to</a> <a href='#SkCanvas_imageInfo'>imageInfo</a>().<a href='#SkImageInfo_colorType'>colorType</a>() <a href='#SkImageInfo_colorType'>and</a> <a href='#SkCanvas_imageInfo'>imageInfo</a>().<a href='#SkImageInfo_alphaType'>alphaType</a>() <a href='#SkImageInfo_alphaType'>if</a> <a href='#SkImageInfo_alphaType'>required</a>.
+Copies each readable <a href='undocumented#Pixel'>pixel</a> intersecting both rectangles, without scaling,
+converting to <a href='#SkCanvas_imageInfo'>imageInfo</a>().<a href='#SkImageInfo_colorType'>colorType</a>() and <a href='#SkCanvas_imageInfo'>imageInfo</a>().<a href='#SkImageInfo_alphaType'>alphaType</a>() if required.
-<a href='#SkImageInfo_alphaType'>Pixels</a> <a href='#SkImageInfo_alphaType'>are</a> <a href='#SkImageInfo_alphaType'>writable</a> <a href='#SkImageInfo_alphaType'>when</a> <a href='undocumented#Device'>Device</a> <a href='undocumented#Device'>is</a> <a href='undocumented#Device'>raster</a>, <a href='undocumented#Device'>or</a> <a href='undocumented#Device'>backed</a> <a href='undocumented#Device'>by</a> <a href='undocumented#Device'>a</a> <a href='undocumented#Device'>GPU</a>.
-<a href='undocumented#Device'>Pixels</a> <a href='undocumented#Device'>are</a> <a href='undocumented#Device'>not</a> <a href='undocumented#Device'>writable</a> <a href='undocumented#Device'>when</a> <a href='SkCanvas_Reference#SkCanvas'>SkCanvas</a> <a href='SkCanvas_Reference#SkCanvas'>is</a> <a href='SkCanvas_Reference#SkCanvas'>returned</a> <a href='SkCanvas_Reference#SkCanvas'>by</a> <a href='undocumented#SkDocument'>SkDocument</a>::<a href='#SkDocument_beginPage'>beginPage</a>,
-<a href='#SkDocument_beginPage'>returned</a> <a href='#SkDocument_beginPage'>by</a> <a href='undocumented#SkPictureRecorder'>SkPictureRecorder</a>::<a href='#SkPictureRecorder_beginRecording'>beginRecording</a>, <a href='#SkPictureRecorder_beginRecording'>or</a> <a href='SkCanvas_Reference#Canvas'>Canvas</a> <a href='SkCanvas_Reference#Canvas'>is</a> <a href='SkCanvas_Reference#Canvas'>the</a> <a href='SkCanvas_Reference#Canvas'>base</a> <a href='SkCanvas_Reference#Canvas'>of</a> <a href='SkCanvas_Reference#Canvas'>a</a> <a href='SkCanvas_Reference#Canvas'>utility</a>
-<a href='SkCanvas_Reference#Canvas'>class</a> <a href='SkCanvas_Reference#Canvas'>like</a> <a href='undocumented#SkDebugCanvas'>SkDebugCanvas</a>.
+Pixels are writable when <a href='undocumented#Device'>Device</a> is raster, or backed by a GPU.
+Pixels are not writable when <a href='SkCanvas_Reference#SkCanvas'>SkCanvas</a> is returned by <a href='undocumented#SkDocument'>SkDocument</a>::<a href='#SkDocument_beginPage'>beginPage</a>,
+returned by <a href='undocumented#SkPictureRecorder'>SkPictureRecorder</a>::<a href='#SkPictureRecorder_beginRecording'>beginRecording</a>, or <a href='SkCanvas_Reference#Canvas'>Canvas</a> is the base of a utility
+class like <a href='undocumented#SkDebugCanvas'>SkDebugCanvas</a>.
-<a href='undocumented#Pixel'>Pixel</a> <a href='undocumented#Pixel'>values</a> <a href='undocumented#Pixel'>are</a> <a href='undocumented#Pixel'>converted</a> <a href='undocumented#Pixel'>only</a> <a href='undocumented#Pixel'>if</a> <a href='#Image_Info_Color_Type'>Color_Type</a> <a href='#Image_Info_Color_Type'>and</a> <a href='#Image_Info_Alpha_Type'>Alpha_Type</a>
-<a href='#Image_Info_Alpha_Type'>do</a> <a href='#Image_Info_Alpha_Type'>not</a> <a href='#Image_Info_Alpha_Type'>match</a>. <a href='#Image_Info_Alpha_Type'>Only</a> <a href='#Image_Info_Alpha_Type'>pixels</a> <a href='#Image_Info_Alpha_Type'>within</a> <a href='#Image_Info_Alpha_Type'>both</a> <a href='#Image_Info_Alpha_Type'>source</a> <a href='#Image_Info_Alpha_Type'>and</a> <a href='#Image_Info_Alpha_Type'>destination</a> <a href='#Image_Info_Alpha_Type'>rectangles</a>
-<a href='#Image_Info_Alpha_Type'>are</a> <a href='#Image_Info_Alpha_Type'>copied</a>. <a href='SkCanvas_Reference#Canvas'>Canvas</a> <a href='SkCanvas_Reference#Canvas'>pixels</a> <a href='SkCanvas_Reference#Canvas'>outside</a> <a href='SkRect_Reference#Rect'>Rect</a> <a href='SkRect_Reference#Rect'>intersection</a> <a href='SkRect_Reference#Rect'>are</a> <a href='SkRect_Reference#Rect'>unchanged</a>.
+<a href='undocumented#Pixel'>Pixel</a> values are converted only if <a href='#Image_Info_Color_Type'>Color_Type</a> and <a href='#Image_Info_Alpha_Type'>Alpha_Type</a>
+do not match. Only pixels within both source and destination rectangles
+are copied. <a href='SkCanvas_Reference#Canvas'>Canvas</a> pixels outside <a href='SkRect_Reference#Rect'>Rect</a> intersection are unchanged.
-<a href='SkRect_Reference#Rect'>Pass</a> <a href='SkRect_Reference#Rect'>negative</a> <a href='SkRect_Reference#Rect'>values</a> <a href='SkRect_Reference#Rect'>for</a> <a href='#SkCanvas_writePixels_2_x'>x</a> <a href='#SkCanvas_writePixels_2_x'>or</a> <a href='#SkCanvas_writePixels_2_y'>y</a> <a href='#SkCanvas_writePixels_2_y'>to</a> <a href='#SkCanvas_writePixels_2_y'>offset</a> <a href='#SkCanvas_writePixels_2_y'>pixels</a> <a href='#SkCanvas_writePixels_2_y'>to</a> <a href='#SkCanvas_writePixels_2_y'>the</a> <a href='#SkCanvas_writePixels_2_y'>left</a> <a href='#SkCanvas_writePixels_2_y'>or</a>
-<a href='#SkCanvas_writePixels_2_y'>above</a> <a href='SkCanvas_Reference#Canvas'>Canvas</a> <a href='SkCanvas_Reference#Canvas'>pixels</a>.
+Pass negative values for <a href='#SkCanvas_writePixels_2_x'>x</a> or <a href='#SkCanvas_writePixels_2_y'>y</a> to offset pixels to the left or
+above <a href='SkCanvas_Reference#Canvas'>Canvas</a> pixels.
-<a href='SkCanvas_Reference#Canvas'>Does</a> <a href='SkCanvas_Reference#Canvas'>not</a> <a href='SkCanvas_Reference#Canvas'>copy</a>, <a href='SkCanvas_Reference#Canvas'>and</a> <a href='SkCanvas_Reference#Canvas'>returns</a> <a href='SkCanvas_Reference#Canvas'>false</a> <a href='SkCanvas_Reference#Canvas'>if</a>:
+Does not copy, and returns false if:
<table> <tr>
<td>Source and destination rectangles do not intersect.</td>
</tr> <tr>
- <td><a href='#SkCanvas_writePixels_2_bitmap'>bitmap</a> <a href='#SkCanvas_writePixels_2_bitmap'>does</a> <a href='#SkCanvas_writePixels_2_bitmap'>not</a> <a href='#SkCanvas_writePixels_2_bitmap'>have</a> <a href='#SkCanvas_writePixels_2_bitmap'>allocated</a> <a href='#SkCanvas_writePixels_2_bitmap'>pixels</a>.</td>
+ <td><a href='#SkCanvas_writePixels_2_bitmap'>bitmap</a> does not have allocated pixels.</td>
</tr> <tr>
- <td><a href='SkBitmap_Reference#Bitmap_Pixels'>bitmap pixels</a> <a href='#SkCanvas_writePixels_2_bitmap'>could</a> <a href='#SkCanvas_writePixels_2_bitmap'>not</a> <a href='#SkCanvas_writePixels_2_bitmap'>be</a> <a href='#SkCanvas_writePixels_2_bitmap'>converted</a> <a href='#SkCanvas_writePixels_2_bitmap'>to</a> <a href='SkCanvas_Reference#Canvas'>Canvas</a> <a href='#SkCanvas_imageInfo'>imageInfo</a>().<a href='#SkImageInfo_colorType'>colorType</a>() <a href='#SkImageInfo_colorType'>or</a>
+ <td><a href='SkBitmap_Reference#Bitmap_Pixels'>bitmap pixels</a> could not be converted to <a href='SkCanvas_Reference#Canvas'>Canvas</a> <a href='#SkCanvas_imageInfo'>imageInfo</a>().<a href='#SkImageInfo_colorType'>colorType</a>() or
<a href='#SkCanvas_imageInfo'>imageInfo</a>().<a href='#SkImageInfo_alphaType'>alphaType</a>().</td>
</tr> <tr>
- <td><a href='SkCanvas_Reference#Canvas'>Canvas</a> <a href='SkCanvas_Reference#Canvas'>pixels</a> <a href='SkCanvas_Reference#Canvas'>are</a> <a href='SkCanvas_Reference#Canvas'>not</a> <a href='SkCanvas_Reference#Canvas'>writable</a>; <a href='SkCanvas_Reference#Canvas'>for</a> <a href='SkCanvas_Reference#Canvas'>instance</a>, <a href='SkCanvas_Reference#Canvas'>Canvas</a> <a href='SkCanvas_Reference#Canvas'>is</a> <a href='undocumented#Document'>document</a> <a href='undocumented#Document'>based</a>.</td>
+ <td><a href='SkCanvas_Reference#Canvas'>Canvas</a> pixels are not writable; for instance, <a href='SkCanvas_Reference#Canvas'>Canvas</a> is <a href='undocumented#Document'>document</a> based.</td>
</tr> <tr>
- <td><a href='SkBitmap_Reference#Bitmap_Pixels'>bitmap pixels</a> <a href='#SkCanvas_writePixels_2_bitmap'>are</a> <a href='#SkCanvas_writePixels_2_bitmap'>inaccessible</a>; <a href='#SkCanvas_writePixels_2_bitmap'>for</a> <a href='#SkCanvas_writePixels_2_bitmap'>instance</a>, <a href='#SkCanvas_writePixels_2_bitmap'>bitmap</a> <a href='#SkCanvas_writePixels_2_bitmap'>wraps</a> <a href='#SkCanvas_writePixels_2_bitmap'>a</a> <a href='undocumented#Texture'>texture</a>.</td>
+ <td><a href='SkBitmap_Reference#Bitmap_Pixels'>bitmap pixels</a> are inaccessible; for instance, <a href='#SkCanvas_writePixels_2_bitmap'>bitmap</a> wraps a <a href='undocumented#Texture'>texture</a>.</td>
</tr>
</table>
@@ -1458,10 +1458,10 @@
<td>contains pixels copied to <a href='SkCanvas_Reference#Canvas'>Canvas</a></td>
</tr>
<tr> <td><a name='SkCanvas_writePixels_2_x'><code><strong>x</strong></code></a></td>
- <td>offset into <a href='SkCanvas_Reference#Canvas'>Canvas</a> <a href='SkCanvas_Reference#Canvas'>writable</a> <a href='SkCanvas_Reference#Canvas'>pixels</a> <a href='SkCanvas_Reference#Canvas'>in</a> <a href='#SkCanvas_writePixels_2_x'>x</a>; <a href='#SkCanvas_writePixels_2_x'>may</a> <a href='#SkCanvas_writePixels_2_x'>be</a> <a href='#SkCanvas_writePixels_2_x'>negative</a></td>
+ <td>offset into <a href='SkCanvas_Reference#Canvas'>Canvas</a> writable pixels in <a href='#SkCanvas_writePixels_2_x'>x</a>; may be negative</td>
</tr>
<tr> <td><a name='SkCanvas_writePixels_2_y'><code><strong>y</strong></code></a></td>
- <td>offset into <a href='SkCanvas_Reference#Canvas'>Canvas</a> <a href='SkCanvas_Reference#Canvas'>writable</a> <a href='SkCanvas_Reference#Canvas'>pixels</a> <a href='SkCanvas_Reference#Canvas'>in</a> <a href='#SkCanvas_writePixels_2_y'>y</a>; <a href='#SkCanvas_writePixels_2_y'>may</a> <a href='#SkCanvas_writePixels_2_y'>be</a> <a href='#SkCanvas_writePixels_2_y'>negative</a></td>
+ <td>offset into <a href='SkCanvas_Reference#Canvas'>Canvas</a> writable pixels in <a href='#SkCanvas_writePixels_2_y'>y</a>; may be negative</td>
</tr>
</table>
@@ -1481,45 +1481,45 @@
---
-<a href='SkCanvas_Reference#Canvas'>Canvas</a> <a href='SkCanvas_Reference#Canvas'>maintains</a> <a href='SkCanvas_Reference#Canvas'>a</a> <a href='SkCanvas_Reference#Canvas'>stack</a> <a href='SkCanvas_Reference#Canvas'>of</a> <a href='SkCanvas_Reference#Canvas'>state</a> <a href='SkCanvas_Reference#Canvas'>that</a> <a href='SkCanvas_Reference#Canvas'>allows</a> <a href='SkCanvas_Reference#Canvas'>hierarchical</a> <a href='SkCanvas_Reference#Canvas'>drawing</a>, <a href='SkCanvas_Reference#Canvas'>commonly</a> <a href='SkCanvas_Reference#Canvas'>used</a>
-<a href='SkCanvas_Reference#Canvas'>to</a> <a href='SkCanvas_Reference#Canvas'>implement</a> <a href='SkCanvas_Reference#Canvas'>windows</a> <a href='SkCanvas_Reference#Canvas'>and</a> <a href='SkCanvas_Reference#Canvas'>views</a>. <a href='SkCanvas_Reference#Canvas'>The</a> <a href='SkCanvas_Reference#Canvas'>initial</a> <a href='SkCanvas_Reference#Canvas'>state</a> <a href='SkCanvas_Reference#Canvas'>has</a> <a href='SkCanvas_Reference#Canvas'>an</a> <a href='SkCanvas_Reference#Canvas'>identity</a> <a href='SkMatrix_Reference#Matrix'>matrix</a> <a href='SkMatrix_Reference#Matrix'>and</a> <a href='SkMatrix_Reference#Matrix'>and</a>
-<a href='SkMatrix_Reference#Matrix'>an</a> <a href='SkMatrix_Reference#Matrix'>infinite</a> <a href='SkMatrix_Reference#Matrix'>clip</a>. <a href='SkMatrix_Reference#Matrix'>Even</a> <a href='SkMatrix_Reference#Matrix'>with</a> <a href='SkMatrix_Reference#Matrix'>a</a> <a href='SkMatrix_Reference#Matrix'>wide-open</a> <a href='SkMatrix_Reference#Matrix'>clip</a>, <a href='SkMatrix_Reference#Matrix'>drawing</a> <a href='SkMatrix_Reference#Matrix'>is</a> <a href='SkMatrix_Reference#Matrix'>constrained</a> <a href='SkMatrix_Reference#Matrix'>by</a> <a href='SkMatrix_Reference#Matrix'>the</a>
-<a href='SkMatrix_Reference#Matrix'>bounds</a> <a href='SkMatrix_Reference#Matrix'>of</a> <a href='SkMatrix_Reference#Matrix'>the</a> <a href='SkCanvas_Reference#Canvas'>Canvas</a> <a href='SkSurface_Reference#Surface'>Surface</a> <a href='SkSurface_Reference#Surface'>or</a> <a href='undocumented#Device'>Device</a>.
+<a href='SkCanvas_Reference#Canvas'>Canvas</a> maintains a stack of state that allows hierarchical drawing, commonly used
+to implement windows and views. The initial state has an identity <a href='SkMatrix_Reference#Matrix'>matrix</a> and and
+an infinite clip. Even with a wide-open clip, drawing is constrained by the
+bounds of the <a href='SkCanvas_Reference#Canvas'>Canvas</a> <a href='SkSurface_Reference#Surface'>Surface</a> or <a href='undocumented#Device'>Device</a>.
-<a href='SkCanvas_Reference#Canvas'>Canvas</a> <a href='SkCanvas_Reference#Canvas'>savable</a> <a href='SkCanvas_Reference#Canvas'>state</a> <a href='SkCanvas_Reference#Canvas'>consists</a> <a href='SkCanvas_Reference#Canvas'>of</a> <a href='SkCanvas_Reference#Canvas'>Clip</a> <a href='SkCanvas_Reference#Canvas'>and</a> <a href='SkMatrix_Reference#Matrix'>Matrix</a>.
-<a href='SkMatrix_Reference#Matrix'>Clip</a> <a href='SkMatrix_Reference#Matrix'>describes</a> <a href='SkMatrix_Reference#Matrix'>the</a> <a href='SkMatrix_Reference#Matrix'>area</a> <a href='SkMatrix_Reference#Matrix'>that</a> <a href='SkMatrix_Reference#Matrix'>may</a> <a href='SkMatrix_Reference#Matrix'>be</a> <a href='SkMatrix_Reference#Matrix'>drawn</a> <a href='SkMatrix_Reference#Matrix'>to</a>.
-<a href='SkMatrix_Reference#Matrix'>Matrix</a> <a href='SkMatrix_Reference#Matrix'>transforms</a> <a href='SkMatrix_Reference#Matrix'>the</a> <a href='SkMatrix_Reference#Matrix'>geometry</a>.
+<a href='SkCanvas_Reference#Canvas'>Canvas</a> savable state consists of Clip and <a href='SkMatrix_Reference#Matrix'>Matrix</a>.
+Clip describes the area that may be drawn to.
+<a href='SkMatrix_Reference#Matrix'>Matrix</a> transforms the geometry.
-<a href='#SkCanvas_save'>save()</a>, <a href='#SkCanvas_saveLayer'>saveLayer</a>, <a href='#SkCanvas_saveLayerPreserveLCDTextRequests'>saveLayerPreserveLCDTextRequests</a>, <a href='#SkCanvas_saveLayerPreserveLCDTextRequests'>and</a> <a href='#SkCanvas_saveLayerAlpha'>saveLayerAlpha</a>
-<a href='#SkCanvas_saveLayerAlpha'>save</a> <a href='#SkCanvas_saveLayerAlpha'>state</a> <a href='#SkCanvas_saveLayerAlpha'>and</a> <a href='#SkCanvas_saveLayerAlpha'>return</a> <a href='#SkCanvas_saveLayerAlpha'>the</a> <a href='#SkCanvas_saveLayerAlpha'>depth</a> <a href='#SkCanvas_saveLayerAlpha'>of</a> <a href='#SkCanvas_saveLayerAlpha'>the</a> <a href='#SkCanvas_saveLayerAlpha'>stack</a>.
+<a href='#SkCanvas_save'>save()</a>, <a href='#SkCanvas_saveLayer'>saveLayer</a>, <a href='#SkCanvas_saveLayerPreserveLCDTextRequests'>saveLayerPreserveLCDTextRequests</a>, and <a href='#SkCanvas_saveLayerAlpha'>saveLayerAlpha</a>
+save state and return the depth of the stack.
-<a href='#SkCanvas_restore'>restore()</a>, <a href='#SkCanvas_restoreToCount'>restoreToCount</a>, <a href='#SkCanvas_restoreToCount'>and</a> ~<a href='#SkCanvas_empty_constructor'>SkCanvas()</a> <a href='SkCanvas_Reference#SkCanvas'>revert</a> <a href='SkCanvas_Reference#SkCanvas'>state</a> <a href='SkCanvas_Reference#SkCanvas'>to</a> <a href='SkCanvas_Reference#SkCanvas'>its</a> <a href='SkCanvas_Reference#SkCanvas'>value</a> <a href='SkCanvas_Reference#SkCanvas'>when</a> <a href='SkCanvas_Reference#SkCanvas'>saved</a>.
+<a href='#SkCanvas_restore'>restore()</a>, <a href='#SkCanvas_restoreToCount'>restoreToCount</a>, and ~<a href='#SkCanvas_empty_constructor'>SkCanvas()</a> revert state to its value when saved.
-<a href='SkCanvas_Reference#SkCanvas'>Each</a> <a href='SkCanvas_Reference#SkCanvas'>state</a> <a href='SkCanvas_Reference#SkCanvas'>on</a> <a href='SkCanvas_Reference#SkCanvas'>the</a> <a href='SkCanvas_Reference#SkCanvas'>stack</a> <a href='SkCanvas_Reference#SkCanvas'>intersects</a> <a href='SkCanvas_Reference#SkCanvas'>Clip</a> <a href='SkCanvas_Reference#SkCanvas'>with</a> <a href='SkCanvas_Reference#SkCanvas'>the</a> <a href='SkCanvas_Reference#SkCanvas'>previous</a> <a href='SkCanvas_Reference#SkCanvas'>Clip</a>,
-<a href='SkCanvas_Reference#SkCanvas'>and</a> <a href='SkCanvas_Reference#SkCanvas'>concatenates</a> <a href='SkMatrix_Reference#Matrix'>Matrix</a> <a href='SkMatrix_Reference#Matrix'>with</a> <a href='SkMatrix_Reference#Matrix'>the</a> <a href='SkMatrix_Reference#Matrix'>previous</a> <a href='SkMatrix_Reference#Matrix'>Matrix</a>.
-<a href='SkMatrix_Reference#Matrix'>The</a> <a href='SkMatrix_Reference#Matrix'>intersected</a> <a href='SkMatrix_Reference#Matrix'>Clip</a> <a href='SkMatrix_Reference#Matrix'>makes</a> <a href='SkMatrix_Reference#Matrix'>the</a> <a href='SkMatrix_Reference#Matrix'>drawing</a> <a href='SkMatrix_Reference#Matrix'>area</a> <a href='SkMatrix_Reference#Matrix'>the</a> <a href='SkMatrix_Reference#Matrix'>same</a> <a href='SkMatrix_Reference#Matrix'>or</a> <a href='SkMatrix_Reference#Matrix'>smaller</a>;
-<a href='SkMatrix_Reference#Matrix'>the</a> <a href='SkMatrix_Reference#Matrix'>concatenated</a> <a href='SkMatrix_Reference#Matrix'>Matrix</a> <a href='SkMatrix_Reference#Matrix'>may</a> <a href='SkMatrix_Reference#Matrix'>move</a> <a href='SkMatrix_Reference#Matrix'>the</a> <a href='SkMatrix_Reference#Matrix'>origin</a> <a href='SkMatrix_Reference#Matrix'>and</a> <a href='SkMatrix_Reference#Matrix'>potentially</a> <a href='SkMatrix_Reference#Matrix'>scale</a> <a href='SkMatrix_Reference#Matrix'>or</a> <a href='SkMatrix_Reference#Matrix'>rotate</a>
-<a href='SkMatrix_Reference#Matrix'>the</a> <a href='SkMatrix_Reference#Matrix'>coordinate</a> <a href='SkMatrix_Reference#Matrix'>space</a>.
+Each state on the stack intersects Clip with the previous Clip,
+and concatenates <a href='SkMatrix_Reference#Matrix'>Matrix</a> with the previous <a href='SkMatrix_Reference#Matrix'>Matrix</a>.
+The intersected Clip makes the drawing area the same or smaller;
+the concatenated <a href='SkMatrix_Reference#Matrix'>Matrix</a> may move the origin and potentially scale or rotate
+the coordinate space.
-<a href='SkCanvas_Reference#Canvas'>Canvas</a> <a href='SkCanvas_Reference#Canvas'>does</a> <a href='SkCanvas_Reference#Canvas'>not</a> <a href='SkCanvas_Reference#Canvas'>require</a> <a href='SkCanvas_Reference#Canvas'>balancing</a> <a href='SkCanvas_Reference#Canvas'>the</a> <a href='#State_Stack'>state stack</a> <a href='SkCanvas_Reference#Canvas'>but</a> <a href='SkCanvas_Reference#Canvas'>it</a> <a href='SkCanvas_Reference#Canvas'>is</a> <a href='SkCanvas_Reference#Canvas'>a</a> <a href='SkCanvas_Reference#Canvas'>good</a> <a href='SkCanvas_Reference#Canvas'>idea</a>
-<a href='SkCanvas_Reference#Canvas'>to</a> <a href='SkCanvas_Reference#Canvas'>do</a> <a href='SkCanvas_Reference#Canvas'>so</a>. <a href='SkCanvas_Reference#Canvas'>Calling</a> <a href='#SkCanvas_save'>save()</a> <a href='#SkCanvas_save'>without</a> <a href='#SkCanvas_restore'>restore()</a> <a href='#SkCanvas_restore'>will</a> <a href='#SkCanvas_restore'>eventually</a> <a href='#SkCanvas_restore'>cause</a> <a href='#SkCanvas_restore'>Skia</a> <a href='#SkCanvas_restore'>to</a> <a href='#SkCanvas_restore'>fail</a>;
-<a href='#SkCanvas_restore'>mismatched</a> <a href='#SkCanvas_save'>save()</a> <a href='#SkCanvas_save'>and</a> <a href='#SkCanvas_restore'>restore()</a> <a href='#SkCanvas_restore'>create</a> <a href='#SkCanvas_restore'>hard</a> <a href='#SkCanvas_restore'>to</a> <a href='#SkCanvas_restore'>find</a> <a href='#SkCanvas_restore'>bugs</a>.
+<a href='SkCanvas_Reference#Canvas'>Canvas</a> does not require balancing the <a href='#State_Stack'>state stack</a> but it is a good idea
+to do so. Calling <a href='#SkCanvas_save'>save()</a> without <a href='#SkCanvas_restore'>restore()</a> will eventually cause Skia to fail;
+mismatched <a href='#SkCanvas_save'>save()</a> and <a href='#SkCanvas_restore'>restore()</a> create hard to find bugs.
-<a href='#SkCanvas_restore'>It</a> <a href='#SkCanvas_restore'>is</a> <a href='#SkCanvas_restore'>not</a> <a href='#SkCanvas_restore'>possible</a> <a href='#SkCanvas_restore'>to</a> <a href='#SkCanvas_restore'>use</a> <a href='#SkCanvas_restore'>state</a> <a href='#SkCanvas_restore'>to</a> <a href='#SkCanvas_restore'>draw</a> <a href='#SkCanvas_restore'>outside</a> <a href='#SkCanvas_restore'>of</a> <a href='#SkCanvas_restore'>the</a> <a href='#SkCanvas_restore'>clip</a> <a href='#SkCanvas_restore'>defined</a> <a href='#SkCanvas_restore'>by</a> <a href='#SkCanvas_restore'>the</a>
-<a href='#SkCanvas_restore'>previous</a> <a href='#SkCanvas_restore'>state</a>.
+It is not possible to use state to draw outside of the clip defined by the
+previous state.
### Example
<div><fiddle-embed name="bb1dbfdca3aedf716beb6f07e2aab065"><div>Draw to ever smaller clips; then restore drawing to full <a href='SkCanvas_Reference#Canvas'>canvas</a>.
-<a href='SkCanvas_Reference#Canvas'>Note</a> <a href='SkCanvas_Reference#Canvas'>that</a> <a href='SkCanvas_Reference#Canvas'>the</a> <a href='SkCanvas_Reference#Canvas'>second</a> <a href='#SkCanvas_clipRect'>clipRect</a> <a href='#SkCanvas_clipRect'>is</a> <a href='#SkCanvas_clipRect'>not</a> <a href='#SkCanvas_clipRect'>permitted</a> <a href='#SkCanvas_clipRect'>to</a> <a href='#SkCanvas_clipRect'>enlarge</a> <a href='#SkCanvas_clipRect'>Clip</a>.
+Note that the second <a href='#SkCanvas_clipRect'>clipRect</a> is not permitted to enlarge Clip.
</div></fiddle-embed></div>
-Each Clip uses the current <a href='SkMatrix_Reference#Matrix'>Matrix</a> <a href='SkMatrix_Reference#Matrix'>for</a> <a href='SkMatrix_Reference#Matrix'>its</a> <a href='SkMatrix_Reference#Matrix'>coordinates</a>.
+Each Clip uses the current <a href='SkMatrix_Reference#Matrix'>Matrix</a> for its coordinates.
### Example
-<div><fiddle-embed name="9f563a2d60aa31d4b26742e5aa17aa4e"><div>While <a href='#SkCanvas_clipRect'>clipRect</a> <a href='#SkCanvas_clipRect'>is</a> <a href='#SkCanvas_clipRect'>given</a> <a href='#SkCanvas_clipRect'>the</a> <a href='#SkCanvas_clipRect'>same</a> <a href='#SkCanvas_clipRect'>rectangle</a> <a href='#SkCanvas_clipRect'>twice</a>, <a href='SkMatrix_Reference#Matrix'>Matrix</a> <a href='SkMatrix_Reference#Matrix'>makes</a> <a href='SkMatrix_Reference#Matrix'>the</a> <a href='SkMatrix_Reference#Matrix'>second</a>
-<a href='#SkCanvas_clipRect'>clipRect</a> <a href='#SkCanvas_clipRect'>draw</a> <a href='#SkCanvas_clipRect'>at</a> <a href='#SkCanvas_clipRect'>half</a> <a href='#SkCanvas_clipRect'>the</a> <a href='undocumented#Size'>size</a> <a href='undocumented#Size'>of</a> <a href='undocumented#Size'>the</a> <a href='undocumented#Size'>first</a>.
+<div><fiddle-embed name="9f563a2d60aa31d4b26742e5aa17aa4e"><div>While <a href='#SkCanvas_clipRect'>clipRect</a> is given the same rectangle twice, <a href='SkMatrix_Reference#Matrix'>Matrix</a> makes the second
+<a href='#SkCanvas_clipRect'>clipRect</a> draw at half the <a href='undocumented#Size'>size</a> of the first.
</div></fiddle-embed></div>
### See Also
@@ -1534,17 +1534,17 @@
int <a href='#SkCanvas_save'>save()</a>
</pre>
-Saves <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> <a href='SkMatrix_Reference#SkMatrix'>and</a> <a href='SkMatrix_Reference#SkMatrix'>clip</a>.
-Calling <a href='#SkCanvas_restore'>restore()</a> <a href='#SkCanvas_restore'>discards</a> <a href='#SkCanvas_restore'>changes</a> <a href='#SkCanvas_restore'>to</a> <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> <a href='SkMatrix_Reference#SkMatrix'>and</a> <a href='SkMatrix_Reference#SkMatrix'>clip</a>,
-restoring the <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> <a href='SkMatrix_Reference#SkMatrix'>and</a> <a href='SkMatrix_Reference#SkMatrix'>clip</a> <a href='SkMatrix_Reference#SkMatrix'>to</a> <a href='SkMatrix_Reference#SkMatrix'>their</a> <a href='SkMatrix_Reference#SkMatrix'>state</a> <a href='SkMatrix_Reference#SkMatrix'>when</a> <a href='#SkCanvas_save'>save()</a> <a href='#SkCanvas_save'>was</a> <a href='#SkCanvas_save'>called</a>.
+Saves <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> and clip.
+Calling <a href='#SkCanvas_restore'>restore()</a> discards changes to <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> and clip,
+restoring the <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> and clip to their state when <a href='#SkCanvas_save'>save()</a> was called.
-<a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> <a href='SkMatrix_Reference#SkMatrix'>may</a> <a href='SkMatrix_Reference#SkMatrix'>be</a> <a href='SkMatrix_Reference#SkMatrix'>changed</a> <a href='SkMatrix_Reference#SkMatrix'>by</a> <a href='#SkCanvas_translate'>translate()</a>, <a href='#SkCanvas_scale'>scale()</a>, <a href='#SkCanvas_rotate'>rotate()</a>, <a href='#SkCanvas_skew'>skew()</a>, <a href='#SkCanvas_concat'>concat()</a>, <a href='#SkCanvas_setMatrix'>setMatrix</a>(),
-and <a href='#SkCanvas_resetMatrix'>resetMatrix</a>(). <a href='#SkCanvas_resetMatrix'>Clip</a> <a href='#SkCanvas_resetMatrix'>may</a> <a href='#SkCanvas_resetMatrix'>be</a> <a href='#SkCanvas_resetMatrix'>changed</a> <a href='#SkCanvas_resetMatrix'>by</a> <a href='#SkCanvas_clipRect'>clipRect</a>(), <a href='#SkCanvas_clipRRect'>clipRRect</a>(), <a href='#SkCanvas_clipPath'>clipPath</a>(), <a href='#SkCanvas_clipRegion'>clipRegion</a>().
+<a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> may be changed by <a href='#SkCanvas_translate'>translate()</a>, <a href='#SkCanvas_scale'>scale()</a>, <a href='#SkCanvas_rotate'>rotate()</a>, <a href='#SkCanvas_skew'>skew()</a>, <a href='#SkCanvas_concat'>concat()</a>, <a href='#SkCanvas_setMatrix'>setMatrix</a>(),
+and <a href='#SkCanvas_resetMatrix'>resetMatrix</a>(). Clip may be changed by <a href='#SkCanvas_clipRect'>clipRect</a>(), <a href='#SkCanvas_clipRRect'>clipRRect</a>(), <a href='#SkCanvas_clipPath'>clipPath</a>(), <a href='#SkCanvas_clipRegion'>clipRegion</a>().
-Saved <a href='SkCanvas_Reference#SkCanvas'>SkCanvas</a> <a href='SkCanvas_Reference#SkCanvas'>state</a> <a href='SkCanvas_Reference#SkCanvas'>is</a> <a href='SkCanvas_Reference#SkCanvas'>put</a> <a href='SkCanvas_Reference#SkCanvas'>on</a> <a href='SkCanvas_Reference#SkCanvas'>a</a> <a href='SkCanvas_Reference#SkCanvas'>stack</a>; <a href='SkCanvas_Reference#SkCanvas'>multiple</a> <a href='SkCanvas_Reference#SkCanvas'>calls</a> <a href='SkCanvas_Reference#SkCanvas'>to</a> <a href='#SkCanvas_save'>save()</a> <a href='#SkCanvas_save'>should</a> <a href='#SkCanvas_save'>be</a> <a href='#SkCanvas_save'>balance</a>
+Saved <a href='SkCanvas_Reference#SkCanvas'>SkCanvas</a> state is put on a stack; multiple calls to <a href='#SkCanvas_save'>save()</a> should be balance
by an equal number of calls to <a href='#SkCanvas_restore'>restore()</a>.
-Call <a href='#SkCanvas_restoreToCount'>restoreToCount</a>() <a href='#SkCanvas_restoreToCount'>with</a> <a href='#SkCanvas_restoreToCount'>result</a> <a href='#SkCanvas_restoreToCount'>to</a> <a href='#SkCanvas_restoreToCount'>restore</a> <a href='#SkCanvas_restoreToCount'>this</a> <a href='#SkCanvas_restoreToCount'>and</a> <a href='#SkCanvas_restoreToCount'>subsequent</a> <a href='#SkCanvas_restoreToCount'>saves</a>.
+Call <a href='#SkCanvas_restoreToCount'>restoreToCount</a>() with result to restore this and subsequent saves.
### Return Value
@@ -1553,8 +1553,8 @@
### Example
<div><fiddle-embed name="e477dce358a9ba3b0aa1bf33b8a376de"><div>The black square is translated 50 pixels down and to the right.
-Restoring <a href='SkCanvas_Reference#Canvas'>Canvas</a> <a href='SkCanvas_Reference#Canvas'>state</a> <a href='SkCanvas_Reference#Canvas'>removes</a> <a href='#SkCanvas_translate'>translate()</a> <a href='#SkCanvas_translate'>from</a> <a href='SkCanvas_Reference#Canvas'>Canvas</a> <a href='SkCanvas_Reference#Canvas'>stack</a>;
-<a href='SkCanvas_Reference#Canvas'>the</a> <a href='SkCanvas_Reference#Canvas'>red</a> <a href='SkCanvas_Reference#Canvas'>square</a> <a href='SkCanvas_Reference#Canvas'>is</a> <a href='SkCanvas_Reference#Canvas'>not</a> <a href='SkCanvas_Reference#Canvas'>translated</a>, <a href='SkCanvas_Reference#Canvas'>and</a> <a href='SkCanvas_Reference#Canvas'>is</a> <a href='SkCanvas_Reference#Canvas'>drawn</a> <a href='SkCanvas_Reference#Canvas'>at</a> <a href='SkCanvas_Reference#Canvas'>the</a> <a href='SkCanvas_Reference#Canvas'>origin</a>.
+Restoring <a href='SkCanvas_Reference#Canvas'>Canvas</a> state removes <a href='#SkCanvas_translate'>translate()</a> from <a href='SkCanvas_Reference#Canvas'>Canvas</a> stack;
+the red square is not translated, and is drawn at the origin.
</div></fiddle-embed></div>
### See Also
@@ -1569,7 +1569,7 @@
void <a href='#SkCanvas_restore'>restore()</a>
</pre>
-Removes changes to <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> <a href='SkMatrix_Reference#SkMatrix'>and</a> <a href='SkMatrix_Reference#SkMatrix'>clip</a> <a href='SkMatrix_Reference#SkMatrix'>since</a> <a href='SkCanvas_Reference#SkCanvas'>SkCanvas</a> <a href='SkCanvas_Reference#SkCanvas'>state</a> <a href='SkCanvas_Reference#SkCanvas'>was</a>
+Removes changes to <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> and clip since <a href='SkCanvas_Reference#SkCanvas'>SkCanvas</a> state was
last saved. The state is removed from the stack.
Does nothing if the stack is empty.
@@ -1587,12 +1587,12 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-int <a href='#SkCanvas_getSaveCount'>getSaveCount</a>() <a href='#SkCanvas_getSaveCount'>const</a>
+int <a href='#SkCanvas_getSaveCount'>getSaveCount</a>() const
</pre>
-Returns the number of saved states, each containing: <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> <a href='SkMatrix_Reference#SkMatrix'>and</a> <a href='SkMatrix_Reference#SkMatrix'>clip</a>.
-Equals the number of <a href='#SkCanvas_save'>save()</a> <a href='#SkCanvas_save'>calls</a> <a href='#SkCanvas_save'>less</a> <a href='#SkCanvas_save'>the</a> <a href='#SkCanvas_save'>number</a> <a href='#SkCanvas_save'>of</a> <a href='#SkCanvas_restore'>restore()</a> <a href='#SkCanvas_restore'>calls</a> <a href='#SkCanvas_restore'>plus</a> <a href='#SkCanvas_restore'>one</a>.
-The save count of a new <a href='SkCanvas_Reference#Canvas'>canvas</a> <a href='SkCanvas_Reference#Canvas'>is</a> <a href='SkCanvas_Reference#Canvas'>one</a>.
+Returns the number of saved states, each containing: <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> and clip.
+Equals the number of <a href='#SkCanvas_save'>save()</a> calls less the number of <a href='#SkCanvas_restore'>restore()</a> calls plus one.
+The save count of a new <a href='SkCanvas_Reference#Canvas'>canvas</a> is one.
### Return Value
@@ -1621,14 +1621,14 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-void <a href='#SkCanvas_restoreToCount'>restoreToCount</a>(<a href='#SkCanvas_restoreToCount'>int</a> <a href='#SkCanvas_restoreToCount'>saveCount</a>)
+void <a href='#SkCanvas_restoreToCount'>restoreToCount</a>(int saveCount)
</pre>
-Restores state to <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> <a href='SkMatrix_Reference#SkMatrix'>and</a> <a href='SkMatrix_Reference#SkMatrix'>clip</a> <a href='SkMatrix_Reference#SkMatrix'>values</a> <a href='SkMatrix_Reference#SkMatrix'>when</a> <a href='#SkCanvas_save'>save()</a>, <a href='#SkCanvas_saveLayer'>saveLayer</a>(),
-<a href='#SkCanvas_saveLayerPreserveLCDTextRequests'>saveLayerPreserveLCDTextRequests</a>(), <a href='#SkCanvas_saveLayerPreserveLCDTextRequests'>or</a> <a href='#SkCanvas_saveLayerAlpha'>saveLayerAlpha</a>() <a href='#SkCanvas_saveLayerAlpha'>returned</a> <a href='#SkCanvas_restoreToCount_saveCount'>saveCount</a>.
+Restores state to <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> and clip values when <a href='#SkCanvas_save'>save()</a>, <a href='#SkCanvas_saveLayer'>saveLayer</a>(),
+<a href='#SkCanvas_saveLayerPreserveLCDTextRequests'>saveLayerPreserveLCDTextRequests</a>(), or <a href='#SkCanvas_saveLayerAlpha'>saveLayerAlpha</a>() returned <a href='#SkCanvas_restoreToCount_saveCount'>saveCount</a>.
-Does nothing if <a href='#SkCanvas_restoreToCount_saveCount'>saveCount</a> <a href='#SkCanvas_restoreToCount_saveCount'>is</a> <a href='#SkCanvas_restoreToCount_saveCount'>greater</a> <a href='#SkCanvas_restoreToCount_saveCount'>than</a> <a href='#State_Stack'>state stack</a> <a href='#SkCanvas_restoreToCount_saveCount'>count</a>.
-Restores state to initial values if <a href='#SkCanvas_restoreToCount_saveCount'>saveCount</a> <a href='#SkCanvas_restoreToCount_saveCount'>is</a> <a href='#SkCanvas_restoreToCount_saveCount'>less</a> <a href='#SkCanvas_restoreToCount_saveCount'>than</a> <a href='#SkCanvas_restoreToCount_saveCount'>or</a> <a href='#SkCanvas_restoreToCount_saveCount'>equal</a> <a href='#SkCanvas_restoreToCount_saveCount'>to</a> <a href='#SkCanvas_restoreToCount_saveCount'>one</a>.
+Does nothing if <a href='#SkCanvas_restoreToCount_saveCount'>saveCount</a> is greater than <a href='#State_Stack'>state stack</a> count.
+Restores state to initial values if <a href='#SkCanvas_restoreToCount_saveCount'>saveCount</a> is less than or equal to one.
### Parameters
@@ -1657,46 +1657,46 @@
<a name='Layer'></a>
-<a href='SkCanvas_Reference#Layer'>Layer</a> <a href='SkCanvas_Reference#Layer'>allocates</a> <a href='SkCanvas_Reference#Layer'>a</a> <a href='SkCanvas_Reference#Layer'>temporary</a> <a href='SkBitmap_Reference#Bitmap'>Bitmap</a> <a href='SkBitmap_Reference#Bitmap'>to</a> <a href='SkBitmap_Reference#Bitmap'>draw</a> <a href='SkBitmap_Reference#Bitmap'>into</a>. <a href='SkBitmap_Reference#Bitmap'>When</a> <a href='SkBitmap_Reference#Bitmap'>the</a> <a href='SkBitmap_Reference#Bitmap'>drawing</a> <a href='SkBitmap_Reference#Bitmap'>is</a>
-<a href='SkBitmap_Reference#Bitmap'>complete</a>, <a href='SkBitmap_Reference#Bitmap'>the</a> <a href='SkBitmap_Reference#Bitmap'>Bitmap</a> <a href='SkBitmap_Reference#Bitmap'>is</a> <a href='SkBitmap_Reference#Bitmap'>drawn</a> <a href='SkBitmap_Reference#Bitmap'>into</a> <a href='SkBitmap_Reference#Bitmap'>the</a> <a href='SkCanvas_Reference#Canvas'>Canvas</a>.
+<a href='SkCanvas_Reference#Layer'>Layer</a> allocates a temporary <a href='SkBitmap_Reference#Bitmap'>Bitmap</a> to draw into. When the drawing is
+complete, the <a href='SkBitmap_Reference#Bitmap'>Bitmap</a> is drawn into the <a href='SkCanvas_Reference#Canvas'>Canvas</a>.
-<a href='SkCanvas_Reference#Layer'>Layer</a> <a href='SkCanvas_Reference#Layer'>is</a> <a href='SkCanvas_Reference#Layer'>saved</a> <a href='SkCanvas_Reference#Layer'>in</a> <a href='SkCanvas_Reference#Layer'>a</a> <a href='SkCanvas_Reference#Layer'>stack</a> <a href='SkCanvas_Reference#Layer'>along</a> <a href='SkCanvas_Reference#Layer'>with</a> <a href='SkCanvas_Reference#Layer'>other</a> <a href='SkCanvas_Reference#Layer'>saved</a> <a href='SkCanvas_Reference#Layer'>state</a>. <a href='SkCanvas_Reference#Layer'>When</a> <a href='SkCanvas_Reference#Layer'>state</a> <a href='SkCanvas_Reference#Layer'>with</a> <a href='SkCanvas_Reference#Layer'>a</a> <a href='SkCanvas_Reference#Layer'>Layer</a>
-<a href='SkCanvas_Reference#Layer'>is</a> <a href='SkCanvas_Reference#Layer'>restored</a>, <a href='SkCanvas_Reference#Layer'>the</a> <a href='SkBitmap_Reference#Bitmap'>Bitmap</a> <a href='SkBitmap_Reference#Bitmap'>is</a> <a href='SkBitmap_Reference#Bitmap'>drawn</a> <a href='SkBitmap_Reference#Bitmap'>into</a> <a href='SkBitmap_Reference#Bitmap'>the</a> <a href='SkBitmap_Reference#Bitmap'>previous</a> <a href='SkCanvas_Reference#Layer'>Layer</a>.
+<a href='SkCanvas_Reference#Layer'>Layer</a> is saved in a stack along with other saved state. When state with a <a href='SkCanvas_Reference#Layer'>Layer</a>
+is restored, the <a href='SkBitmap_Reference#Bitmap'>Bitmap</a> is drawn into the previous <a href='SkCanvas_Reference#Layer'>Layer</a>.
-<a href='SkCanvas_Reference#Layer'>Layer</a> <a href='SkCanvas_Reference#Layer'>may</a> <a href='SkCanvas_Reference#Layer'>be</a> <a href='SkCanvas_Reference#Layer'>initialized</a> <a href='SkCanvas_Reference#Layer'>with</a> <a href='SkCanvas_Reference#Layer'>the</a> <a href='SkCanvas_Reference#Layer'>contents</a> <a href='SkCanvas_Reference#Layer'>of</a> <a href='SkCanvas_Reference#Layer'>the</a> <a href='SkCanvas_Reference#Layer'>previous</a> <a href='SkCanvas_Reference#Layer'>Layer</a>. <a href='SkCanvas_Reference#Layer'>When</a> <a href='SkCanvas_Reference#Layer'>Layer</a> <a href='SkCanvas_Reference#Layer'>is</a>
-<a href='SkCanvas_Reference#Layer'>restored</a>, <a href='SkCanvas_Reference#Layer'>its</a> <a href='SkBitmap_Reference#Bitmap'>Bitmap</a> <a href='SkBitmap_Reference#Bitmap'>can</a> <a href='SkBitmap_Reference#Bitmap'>be</a> <a href='SkBitmap_Reference#Bitmap'>modified</a> <a href='SkBitmap_Reference#Bitmap'>by</a> <a href='SkPaint_Reference#Paint'>Paint</a> <a href='SkPaint_Reference#Paint'>passed</a> <a href='SkPaint_Reference#Paint'>to</a> <a href='SkCanvas_Reference#Layer'>Layer</a> <a href='SkCanvas_Reference#Layer'>to</a> <a href='SkCanvas_Reference#Layer'>apply</a>
-<a href='#Color_Alpha'>Color_Alpha</a>, <a href='#Color_Filter'>Color_Filter</a>, <a href='#Image_Filter'>Image_Filter</a>, <a href='#Image_Filter'>and</a> <a href='#Blend_Mode'>Blend_Mode</a>.
+<a href='SkCanvas_Reference#Layer'>Layer</a> may be initialized with the contents of the previous <a href='SkCanvas_Reference#Layer'>Layer</a>. When <a href='SkCanvas_Reference#Layer'>Layer</a> is
+restored, its <a href='SkBitmap_Reference#Bitmap'>Bitmap</a> can be modified by <a href='SkPaint_Reference#Paint'>Paint</a> passed to <a href='SkCanvas_Reference#Layer'>Layer</a> to apply
+<a href='#Color_Alpha'>Color_Alpha</a>, <a href='#Color_Filter'>Color_Filter</a>, <a href='#Image_Filter'>Image_Filter</a>, and <a href='#Blend_Mode'>Blend_Mode</a>.
<a name='SkCanvas_saveLayer'></a>
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-int <a href='#SkCanvas_saveLayer'>saveLayer</a>(<a href='#SkCanvas_saveLayer'>const</a> <a href='SkRect_Reference#SkRect'>SkRect</a>* <a href='SkRect_Reference#SkRect'>bounds</a>, <a href='SkRect_Reference#SkRect'>const</a> <a href='SkPaint_Reference#SkPaint'>SkPaint</a>* <a href='SkPaint_Reference#Paint'>paint</a>)
+int <a href='#SkCanvas_saveLayer'>saveLayer</a>(const <a href='SkRect_Reference#SkRect'>SkRect</a>* bounds, const <a href='SkPaint_Reference#SkPaint'>SkPaint</a>* <a href='SkPaint_Reference#Paint'>paint</a>)
</pre>
-Saves <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> <a href='SkMatrix_Reference#SkMatrix'>and</a> <a href='SkMatrix_Reference#SkMatrix'>clip</a>, <a href='SkMatrix_Reference#SkMatrix'>and</a> <a href='SkMatrix_Reference#SkMatrix'>allocates</a> <a href='SkMatrix_Reference#SkMatrix'>a</a> <a href='SkBitmap_Reference#SkBitmap'>SkBitmap</a> <a href='SkBitmap_Reference#SkBitmap'>for</a> <a href='SkBitmap_Reference#SkBitmap'>subsequent</a> <a href='SkBitmap_Reference#SkBitmap'>drawing</a>.
-Calling <a href='#SkCanvas_restore'>restore()</a> <a href='#SkCanvas_restore'>discards</a> <a href='#SkCanvas_restore'>changes</a> <a href='#SkCanvas_restore'>to</a> <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> <a href='SkMatrix_Reference#SkMatrix'>and</a> <a href='SkMatrix_Reference#SkMatrix'>clip</a>, <a href='SkMatrix_Reference#SkMatrix'>and</a> <a href='SkMatrix_Reference#SkMatrix'>draws</a> <a href='SkMatrix_Reference#SkMatrix'>the</a> <a href='SkBitmap_Reference#SkBitmap'>SkBitmap</a>.
+Saves <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> and clip, and allocates a <a href='SkBitmap_Reference#SkBitmap'>SkBitmap</a> for subsequent drawing.
+Calling <a href='#SkCanvas_restore'>restore()</a> discards changes to <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> and clip, and draws the <a href='SkBitmap_Reference#SkBitmap'>SkBitmap</a>.
-<a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> <a href='SkMatrix_Reference#SkMatrix'>may</a> <a href='SkMatrix_Reference#SkMatrix'>be</a> <a href='SkMatrix_Reference#SkMatrix'>changed</a> <a href='SkMatrix_Reference#SkMatrix'>by</a> <a href='#SkCanvas_translate'>translate()</a>, <a href='#SkCanvas_scale'>scale()</a>, <a href='#SkCanvas_rotate'>rotate()</a>, <a href='#SkCanvas_skew'>skew()</a>, <a href='#SkCanvas_concat'>concat()</a>,
-<a href='#SkCanvas_setMatrix'>setMatrix</a>(), <a href='#SkCanvas_setMatrix'>and</a> <a href='#SkCanvas_resetMatrix'>resetMatrix</a>(). <a href='#SkCanvas_resetMatrix'>Clip</a> <a href='#SkCanvas_resetMatrix'>may</a> <a href='#SkCanvas_resetMatrix'>be</a> <a href='#SkCanvas_resetMatrix'>changed</a> <a href='#SkCanvas_resetMatrix'>by</a> <a href='#SkCanvas_clipRect'>clipRect</a>(), <a href='#SkCanvas_clipRRect'>clipRRect</a>(),
+<a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> may be changed by <a href='#SkCanvas_translate'>translate()</a>, <a href='#SkCanvas_scale'>scale()</a>, <a href='#SkCanvas_rotate'>rotate()</a>, <a href='#SkCanvas_skew'>skew()</a>, <a href='#SkCanvas_concat'>concat()</a>,
+<a href='#SkCanvas_setMatrix'>setMatrix</a>(), and <a href='#SkCanvas_resetMatrix'>resetMatrix</a>(). Clip may be changed by <a href='#SkCanvas_clipRect'>clipRect</a>(), <a href='#SkCanvas_clipRRect'>clipRRect</a>(),
<a href='#SkCanvas_clipPath'>clipPath</a>(), <a href='#SkCanvas_clipRegion'>clipRegion</a>().
-<a href='SkRect_Reference#SkRect'>SkRect</a> <a href='#SkCanvas_saveLayer_bounds'>bounds</a> <a href='#SkCanvas_saveLayer_bounds'>suggests</a> <a href='#SkCanvas_saveLayer_bounds'>but</a> <a href='#SkCanvas_saveLayer_bounds'>does</a> <a href='#SkCanvas_saveLayer_bounds'>not</a> <a href='#SkCanvas_saveLayer_bounds'>define</a> <a href='#SkCanvas_saveLayer_bounds'>the</a> <a href='SkBitmap_Reference#SkBitmap'>SkBitmap</a> <a href='undocumented#Size'>size</a>. <a href='undocumented#Size'>To</a> <a href='undocumented#Size'>clip</a> <a href='undocumented#Size'>drawing</a> <a href='undocumented#Size'>to</a>
+<a href='SkRect_Reference#SkRect'>SkRect</a> <a href='#SkCanvas_saveLayer_bounds'>bounds</a> suggests but does not define the <a href='SkBitmap_Reference#SkBitmap'>SkBitmap</a> <a href='undocumented#Size'>size</a>. To clip drawing to
a specific rectangle, use <a href='#SkCanvas_clipRect'>clipRect</a>().
-Optional <a href='SkPaint_Reference#SkPaint'>SkPaint</a> <a href='#SkCanvas_saveLayer_paint'>paint</a> <a href='#SkCanvas_saveLayer_paint'>applies</a> <a href='SkColor_Reference#Alpha'>alpha</a>, <a href='undocumented#SkColorFilter'>SkColorFilter</a>, <a href='undocumented#SkImageFilter'>SkImageFilter</a>, <a href='undocumented#SkImageFilter'>and</a>
-<a href='SkBlendMode_Reference#SkBlendMode'>SkBlendMode</a> <a href='SkBlendMode_Reference#SkBlendMode'>when</a> <a href='#SkCanvas_restore'>restore()</a> <a href='#SkCanvas_restore'>is</a> <a href='#SkCanvas_restore'>called</a>.
+Optional <a href='SkPaint_Reference#SkPaint'>SkPaint</a> <a href='#SkCanvas_saveLayer_paint'>paint</a> applies <a href='SkColor_Reference#Alpha'>alpha</a>, <a href='undocumented#SkColorFilter'>SkColorFilter</a>, <a href='undocumented#SkImageFilter'>SkImageFilter</a>, and
+<a href='SkBlendMode_Reference#SkBlendMode'>SkBlendMode</a> when <a href='#SkCanvas_restore'>restore()</a> is called.
-Call <a href='#SkCanvas_restoreToCount'>restoreToCount</a>() <a href='#SkCanvas_restoreToCount'>with</a> <a href='#SkCanvas_restoreToCount'>returned</a> <a href='#SkCanvas_restoreToCount'>value</a> <a href='#SkCanvas_restoreToCount'>to</a> <a href='#SkCanvas_restoreToCount'>restore</a> <a href='#SkCanvas_restoreToCount'>this</a> <a href='#SkCanvas_restoreToCount'>and</a> <a href='#SkCanvas_restoreToCount'>subsequent</a> <a href='#SkCanvas_restoreToCount'>saves</a>.
+Call <a href='#SkCanvas_restoreToCount'>restoreToCount</a>() with returned value to restore this and subsequent saves.
### Parameters
<table> <tr> <td><a name='SkCanvas_saveLayer_bounds'><code><strong>bounds</strong></code></a></td>
- <td>hint to limit the <a href='undocumented#Size'>size</a> <a href='undocumented#Size'>of</a> <a href='undocumented#Size'>the</a> <a href='SkCanvas_Reference#Layer'>layer</a>; <a href='SkCanvas_Reference#Layer'>may</a> <a href='SkCanvas_Reference#Layer'>be</a> <a href='SkCanvas_Reference#Layer'>nullptr</a></td>
+ <td>hint to limit the <a href='undocumented#Size'>size</a> of the <a href='SkCanvas_Reference#Layer'>layer</a>; may be nullptr</td>
</tr>
<tr> <td><a name='SkCanvas_saveLayer_paint'><code><strong>paint</strong></code></a></td>
- <td>graphics state for <a href='SkCanvas_Reference#Layer'>layer</a>; <a href='SkCanvas_Reference#Layer'>may</a> <a href='SkCanvas_Reference#Layer'>be</a> <a href='SkCanvas_Reference#Layer'>nullptr</a></td>
+ <td>graphics state for <a href='SkCanvas_Reference#Layer'>layer</a>; may be nullptr</td>
</tr>
</table>
@@ -1706,7 +1706,7 @@
### Example
-<div><fiddle-embed name="42318b18d403e17e07a541652da91ee2"><div>Rectangles are blurred by <a href='#Image_Filter'>Image_Filter</a> <a href='#Image_Filter'>when</a> <a href='#SkCanvas_restore'>restore()</a> <a href='#SkCanvas_restore'>draws</a> <a href='SkCanvas_Reference#Layer'>Layer</a> <a href='SkCanvas_Reference#Layer'>to</a> <a href='SkCanvas_Reference#Layer'>main</a>
+<div><fiddle-embed name="42318b18d403e17e07a541652da91ee2"><div>Rectangles are blurred by <a href='#Image_Filter'>Image_Filter</a> when <a href='#SkCanvas_restore'>restore()</a> draws <a href='SkCanvas_Reference#Layer'>Layer</a> to main
<a href='SkCanvas_Reference#Canvas'>Canvas</a>.
</div></fiddle-embed></div>
@@ -1719,31 +1719,31 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-int <a href='#SkCanvas_saveLayer'>saveLayer</a>(<a href='#SkCanvas_saveLayer'>const</a> <a href='SkRect_Reference#SkRect'>SkRect</a>& <a href='SkRect_Reference#SkRect'>bounds</a>, <a href='SkRect_Reference#SkRect'>const</a> <a href='SkPaint_Reference#SkPaint'>SkPaint</a>* <a href='SkPaint_Reference#Paint'>paint</a>)
+int <a href='#SkCanvas_saveLayer'>saveLayer</a>(const <a href='SkRect_Reference#SkRect'>SkRect</a>& bounds, const <a href='SkPaint_Reference#SkPaint'>SkPaint</a>* <a href='SkPaint_Reference#Paint'>paint</a>)
</pre>
-Saves <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> <a href='SkMatrix_Reference#SkMatrix'>and</a> <a href='SkMatrix_Reference#SkMatrix'>clip</a>, <a href='SkMatrix_Reference#SkMatrix'>and</a> <a href='SkMatrix_Reference#SkMatrix'>allocates</a> <a href='SkMatrix_Reference#SkMatrix'>a</a> <a href='SkBitmap_Reference#SkBitmap'>SkBitmap</a> <a href='SkBitmap_Reference#SkBitmap'>for</a> <a href='SkBitmap_Reference#SkBitmap'>subsequent</a> <a href='SkBitmap_Reference#SkBitmap'>drawing</a>.
-Calling <a href='#SkCanvas_restore'>restore()</a> <a href='#SkCanvas_restore'>discards</a> <a href='#SkCanvas_restore'>changes</a> <a href='#SkCanvas_restore'>to</a> <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> <a href='SkMatrix_Reference#SkMatrix'>and</a> <a href='SkMatrix_Reference#SkMatrix'>clip</a>, <a href='SkMatrix_Reference#SkMatrix'>and</a> <a href='SkMatrix_Reference#SkMatrix'>draws</a> <a href='SkMatrix_Reference#SkMatrix'>the</a> <a href='SkBitmap_Reference#SkBitmap'>SkBitmap</a>.
+Saves <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> and clip, and allocates a <a href='SkBitmap_Reference#SkBitmap'>SkBitmap</a> for subsequent drawing.
+Calling <a href='#SkCanvas_restore'>restore()</a> discards changes to <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> and clip, and draws the <a href='SkBitmap_Reference#SkBitmap'>SkBitmap</a>.
-<a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> <a href='SkMatrix_Reference#SkMatrix'>may</a> <a href='SkMatrix_Reference#SkMatrix'>be</a> <a href='SkMatrix_Reference#SkMatrix'>changed</a> <a href='SkMatrix_Reference#SkMatrix'>by</a> <a href='#SkCanvas_translate'>translate()</a>, <a href='#SkCanvas_scale'>scale()</a>, <a href='#SkCanvas_rotate'>rotate()</a>, <a href='#SkCanvas_skew'>skew()</a>, <a href='#SkCanvas_concat'>concat()</a>,
-<a href='#SkCanvas_setMatrix'>setMatrix</a>(), <a href='#SkCanvas_setMatrix'>and</a> <a href='#SkCanvas_resetMatrix'>resetMatrix</a>(). <a href='#SkCanvas_resetMatrix'>Clip</a> <a href='#SkCanvas_resetMatrix'>may</a> <a href='#SkCanvas_resetMatrix'>be</a> <a href='#SkCanvas_resetMatrix'>changed</a> <a href='#SkCanvas_resetMatrix'>by</a> <a href='#SkCanvas_clipRect'>clipRect</a>(), <a href='#SkCanvas_clipRRect'>clipRRect</a>(),
+<a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> may be changed by <a href='#SkCanvas_translate'>translate()</a>, <a href='#SkCanvas_scale'>scale()</a>, <a href='#SkCanvas_rotate'>rotate()</a>, <a href='#SkCanvas_skew'>skew()</a>, <a href='#SkCanvas_concat'>concat()</a>,
+<a href='#SkCanvas_setMatrix'>setMatrix</a>(), and <a href='#SkCanvas_resetMatrix'>resetMatrix</a>(). Clip may be changed by <a href='#SkCanvas_clipRect'>clipRect</a>(), <a href='#SkCanvas_clipRRect'>clipRRect</a>(),
<a href='#SkCanvas_clipPath'>clipPath</a>(), <a href='#SkCanvas_clipRegion'>clipRegion</a>().
-<a href='SkRect_Reference#SkRect'>SkRect</a> <a href='#SkCanvas_saveLayer_2_bounds'>bounds</a> <a href='#SkCanvas_saveLayer_2_bounds'>suggests</a> <a href='#SkCanvas_saveLayer_2_bounds'>but</a> <a href='#SkCanvas_saveLayer_2_bounds'>does</a> <a href='#SkCanvas_saveLayer_2_bounds'>not</a> <a href='#SkCanvas_saveLayer_2_bounds'>define</a> <a href='#SkCanvas_saveLayer_2_bounds'>the</a> <a href='SkCanvas_Reference#Layer'>layer</a> <a href='undocumented#Size'>size</a>. <a href='undocumented#Size'>To</a> <a href='undocumented#Size'>clip</a> <a href='undocumented#Size'>drawing</a> <a href='undocumented#Size'>to</a>
+<a href='SkRect_Reference#SkRect'>SkRect</a> <a href='#SkCanvas_saveLayer_2_bounds'>bounds</a> suggests but does not define the <a href='SkCanvas_Reference#Layer'>layer</a> <a href='undocumented#Size'>size</a>. To clip drawing to
a specific rectangle, use <a href='#SkCanvas_clipRect'>clipRect</a>().
-Optional <a href='SkPaint_Reference#SkPaint'>SkPaint</a> <a href='#SkCanvas_saveLayer_2_paint'>paint</a> <a href='#SkCanvas_saveLayer_2_paint'>applies</a> <a href='SkColor_Reference#Alpha'>alpha</a>, <a href='undocumented#SkColorFilter'>SkColorFilter</a>, <a href='undocumented#SkImageFilter'>SkImageFilter</a>, <a href='undocumented#SkImageFilter'>and</a>
-<a href='SkBlendMode_Reference#SkBlendMode'>SkBlendMode</a> <a href='SkBlendMode_Reference#SkBlendMode'>when</a> <a href='#SkCanvas_restore'>restore()</a> <a href='#SkCanvas_restore'>is</a> <a href='#SkCanvas_restore'>called</a>.
+Optional <a href='SkPaint_Reference#SkPaint'>SkPaint</a> <a href='#SkCanvas_saveLayer_2_paint'>paint</a> applies <a href='SkColor_Reference#Alpha'>alpha</a>, <a href='undocumented#SkColorFilter'>SkColorFilter</a>, <a href='undocumented#SkImageFilter'>SkImageFilter</a>, and
+<a href='SkBlendMode_Reference#SkBlendMode'>SkBlendMode</a> when <a href='#SkCanvas_restore'>restore()</a> is called.
-Call <a href='#SkCanvas_restoreToCount'>restoreToCount</a>() <a href='#SkCanvas_restoreToCount'>with</a> <a href='#SkCanvas_restoreToCount'>returned</a> <a href='#SkCanvas_restoreToCount'>value</a> <a href='#SkCanvas_restoreToCount'>to</a> <a href='#SkCanvas_restoreToCount'>restore</a> <a href='#SkCanvas_restoreToCount'>this</a> <a href='#SkCanvas_restoreToCount'>and</a> <a href='#SkCanvas_restoreToCount'>subsequent</a> <a href='#SkCanvas_restoreToCount'>saves</a>.
+Call <a href='#SkCanvas_restoreToCount'>restoreToCount</a>() with returned value to restore this and subsequent saves.
### Parameters
<table> <tr> <td><a name='SkCanvas_saveLayer_2_bounds'><code><strong>bounds</strong></code></a></td>
- <td>hint to limit the <a href='undocumented#Size'>size</a> <a href='undocumented#Size'>of</a> <a href='SkCanvas_Reference#Layer'>layer</a>; <a href='SkCanvas_Reference#Layer'>may</a> <a href='SkCanvas_Reference#Layer'>be</a> <a href='SkCanvas_Reference#Layer'>nullptr</a></td>
+ <td>hint to limit the <a href='undocumented#Size'>size</a> of <a href='SkCanvas_Reference#Layer'>layer</a>; may be nullptr</td>
</tr>
<tr> <td><a name='SkCanvas_saveLayer_2_paint'><code><strong>paint</strong></code></a></td>
- <td>graphics state for <a href='SkCanvas_Reference#Layer'>layer</a>; <a href='SkCanvas_Reference#Layer'>may</a> <a href='SkCanvas_Reference#Layer'>be</a> <a href='SkCanvas_Reference#Layer'>nullptr</a></td>
+ <td>graphics state for <a href='SkCanvas_Reference#Layer'>layer</a>; may be nullptr</td>
</tr>
</table>
@@ -1753,9 +1753,9 @@
### Example
-<div><fiddle-embed name="a17aec3aa4909527be039e26a7eda694"><div>Rectangles are blurred by <a href='#Image_Filter'>Image_Filter</a> <a href='#Image_Filter'>when</a> <a href='#SkCanvas_restore'>restore()</a> <a href='#SkCanvas_restore'>draws</a> <a href='SkCanvas_Reference#Layer'>Layer</a> <a href='SkCanvas_Reference#Layer'>to</a> <a href='SkCanvas_Reference#Layer'>main</a> <a href='SkCanvas_Reference#Canvas'>Canvas</a>.
-<a href='SkCanvas_Reference#Canvas'>The</a> <a href='SkCanvas_Reference#Canvas'>red</a> <a href='SkCanvas_Reference#Canvas'>rectangle</a> <a href='SkCanvas_Reference#Canvas'>is</a> <a href='SkCanvas_Reference#Canvas'>clipped</a>; <a href='SkCanvas_Reference#Canvas'>it</a> <a href='SkCanvas_Reference#Canvas'>does</a> <a href='SkCanvas_Reference#Canvas'>not</a> <a href='SkCanvas_Reference#Canvas'>fully</a> <a href='SkCanvas_Reference#Canvas'>fit</a> <a href='SkCanvas_Reference#Canvas'>on</a> <a href='SkCanvas_Reference#Layer'>Layer</a>.
-<a href='#Image_Filter'>Image_Filter</a> <a href='#Image_Filter'>blurs</a> <a href='#Image_Filter'>past</a> <a href='#Image_Filter'>edge</a> <a href='#Image_Filter'>of</a> <a href='SkCanvas_Reference#Layer'>Layer</a> <a href='SkCanvas_Reference#Layer'>so</a> <a href='SkCanvas_Reference#Layer'>red</a> <a href='SkCanvas_Reference#Layer'>rectangle</a> <a href='SkCanvas_Reference#Layer'>is</a> <a href='SkCanvas_Reference#Layer'>blurred</a> <a href='SkCanvas_Reference#Layer'>on</a> <a href='SkCanvas_Reference#Layer'>all</a> <a href='SkCanvas_Reference#Layer'>sides</a>.
+<div><fiddle-embed name="a17aec3aa4909527be039e26a7eda694"><div>Rectangles are blurred by <a href='#Image_Filter'>Image_Filter</a> when <a href='#SkCanvas_restore'>restore()</a> draws <a href='SkCanvas_Reference#Layer'>Layer</a> to main <a href='SkCanvas_Reference#Canvas'>Canvas</a>.
+The red rectangle is clipped; it does not fully fit on <a href='SkCanvas_Reference#Layer'>Layer</a>.
+<a href='#Image_Filter'>Image_Filter</a> blurs past edge of <a href='SkCanvas_Reference#Layer'>Layer</a> so red rectangle is blurred on all sides.
</div></fiddle-embed></div>
### See Also
@@ -1767,37 +1767,37 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-int <a href='#SkCanvas_saveLayerPreserveLCDTextRequests'>saveLayerPreserveLCDTextRequests</a>(<a href='#SkCanvas_saveLayerPreserveLCDTextRequests'>const</a> <a href='SkRect_Reference#SkRect'>SkRect</a>* <a href='SkRect_Reference#SkRect'>bounds</a>, <a href='SkRect_Reference#SkRect'>const</a> <a href='SkPaint_Reference#SkPaint'>SkPaint</a>* <a href='SkPaint_Reference#Paint'>paint</a>)
+int <a href='#SkCanvas_saveLayerPreserveLCDTextRequests'>saveLayerPreserveLCDTextRequests</a>(const <a href='SkRect_Reference#SkRect'>SkRect</a>* bounds, const <a href='SkPaint_Reference#SkPaint'>SkPaint</a>* <a href='SkPaint_Reference#Paint'>paint</a>)
</pre>
-Saves <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> <a href='SkMatrix_Reference#SkMatrix'>and</a> <a href='SkMatrix_Reference#SkMatrix'>clip</a>, <a href='SkMatrix_Reference#SkMatrix'>and</a> <a href='SkMatrix_Reference#SkMatrix'>allocates</a> <a href='SkMatrix_Reference#SkMatrix'>a</a> <a href='SkBitmap_Reference#SkBitmap'>SkBitmap</a> <a href='SkBitmap_Reference#SkBitmap'>for</a> <a href='SkBitmap_Reference#SkBitmap'>subsequent</a> <a href='SkBitmap_Reference#SkBitmap'>drawing</a>.
-<a href='SkPaint_Reference#LCD_Text'>LCD text</a> is preserved when the <a href='SkCanvas_Reference#Layer'>layer</a> <a href='SkCanvas_Reference#Layer'>is</a> <a href='SkCanvas_Reference#Layer'>drawn</a> <a href='SkCanvas_Reference#Layer'>to</a> <a href='SkCanvas_Reference#Layer'>the</a> <a href='SkCanvas_Reference#Layer'>prior</a> <a href='SkCanvas_Reference#Layer'>layer</a>.
+Saves <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> and clip, and allocates a <a href='SkBitmap_Reference#SkBitmap'>SkBitmap</a> for subsequent drawing.
+<a href='SkPaint_Reference#LCD_Text'>LCD text</a> is preserved when the <a href='SkCanvas_Reference#Layer'>layer</a> is drawn to the prior <a href='SkCanvas_Reference#Layer'>layer</a>.
-Calling <a href='#SkCanvas_restore'>restore()</a> <a href='#SkCanvas_restore'>discards</a> <a href='#SkCanvas_restore'>changes</a> <a href='#SkCanvas_restore'>to</a> <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> <a href='SkMatrix_Reference#SkMatrix'>and</a> <a href='SkMatrix_Reference#SkMatrix'>clip</a>, <a href='SkMatrix_Reference#SkMatrix'>and</a> <a href='SkMatrix_Reference#SkMatrix'>draws</a> <a href='SkCanvas_Reference#Layer'>layer</a>.
+Calling <a href='#SkCanvas_restore'>restore()</a> discards changes to <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> and clip, and draws <a href='SkCanvas_Reference#Layer'>layer</a>.
-<a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> <a href='SkMatrix_Reference#SkMatrix'>may</a> <a href='SkMatrix_Reference#SkMatrix'>be</a> <a href='SkMatrix_Reference#SkMatrix'>changed</a> <a href='SkMatrix_Reference#SkMatrix'>by</a> <a href='#SkCanvas_translate'>translate()</a>, <a href='#SkCanvas_scale'>scale()</a>, <a href='#SkCanvas_rotate'>rotate()</a>, <a href='#SkCanvas_skew'>skew()</a>, <a href='#SkCanvas_concat'>concat()</a>,
-<a href='#SkCanvas_setMatrix'>setMatrix</a>(), <a href='#SkCanvas_setMatrix'>and</a> <a href='#SkCanvas_resetMatrix'>resetMatrix</a>(). <a href='#SkCanvas_resetMatrix'>Clip</a> <a href='#SkCanvas_resetMatrix'>may</a> <a href='#SkCanvas_resetMatrix'>be</a> <a href='#SkCanvas_resetMatrix'>changed</a> <a href='#SkCanvas_resetMatrix'>by</a> <a href='#SkCanvas_clipRect'>clipRect</a>(), <a href='#SkCanvas_clipRRect'>clipRRect</a>(),
+<a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> may be changed by <a href='#SkCanvas_translate'>translate()</a>, <a href='#SkCanvas_scale'>scale()</a>, <a href='#SkCanvas_rotate'>rotate()</a>, <a href='#SkCanvas_skew'>skew()</a>, <a href='#SkCanvas_concat'>concat()</a>,
+<a href='#SkCanvas_setMatrix'>setMatrix</a>(), and <a href='#SkCanvas_resetMatrix'>resetMatrix</a>(). Clip may be changed by <a href='#SkCanvas_clipRect'>clipRect</a>(), <a href='#SkCanvas_clipRRect'>clipRRect</a>(),
<a href='#SkCanvas_clipPath'>clipPath</a>(), <a href='#SkCanvas_clipRegion'>clipRegion</a>().
-<a href='SkRect_Reference#SkRect'>SkRect</a> <a href='#SkCanvas_saveLayerPreserveLCDTextRequests_bounds'>bounds</a> <a href='#SkCanvas_saveLayerPreserveLCDTextRequests_bounds'>suggests</a> <a href='#SkCanvas_saveLayerPreserveLCDTextRequests_bounds'>but</a> <a href='#SkCanvas_saveLayerPreserveLCDTextRequests_bounds'>does</a> <a href='#SkCanvas_saveLayerPreserveLCDTextRequests_bounds'>not</a> <a href='#SkCanvas_saveLayerPreserveLCDTextRequests_bounds'>define</a> <a href='#SkCanvas_saveLayerPreserveLCDTextRequests_bounds'>the</a> <a href='SkCanvas_Reference#Layer'>layer</a> <a href='undocumented#Size'>size</a>. <a href='undocumented#Size'>To</a> <a href='undocumented#Size'>clip</a> <a href='undocumented#Size'>drawing</a> <a href='undocumented#Size'>to</a>
+<a href='SkRect_Reference#SkRect'>SkRect</a> <a href='#SkCanvas_saveLayerPreserveLCDTextRequests_bounds'>bounds</a> suggests but does not define the <a href='SkCanvas_Reference#Layer'>layer</a> <a href='undocumented#Size'>size</a>. To clip drawing to
a specific rectangle, use <a href='#SkCanvas_clipRect'>clipRect</a>().
-Optional <a href='SkPaint_Reference#SkPaint'>SkPaint</a> <a href='#SkCanvas_saveLayerPreserveLCDTextRequests_paint'>paint</a> <a href='#SkCanvas_saveLayerPreserveLCDTextRequests_paint'>applies</a> <a href='SkColor_Reference#Alpha'>alpha</a>, <a href='undocumented#SkColorFilter'>SkColorFilter</a>, <a href='undocumented#SkImageFilter'>SkImageFilter</a>, <a href='undocumented#SkImageFilter'>and</a>
-<a href='SkBlendMode_Reference#SkBlendMode'>SkBlendMode</a> <a href='SkBlendMode_Reference#SkBlendMode'>when</a> <a href='#SkCanvas_restore'>restore()</a> <a href='#SkCanvas_restore'>is</a> <a href='#SkCanvas_restore'>called</a>.
+Optional <a href='SkPaint_Reference#SkPaint'>SkPaint</a> <a href='#SkCanvas_saveLayerPreserveLCDTextRequests_paint'>paint</a> applies <a href='SkColor_Reference#Alpha'>alpha</a>, <a href='undocumented#SkColorFilter'>SkColorFilter</a>, <a href='undocumented#SkImageFilter'>SkImageFilter</a>, and
+<a href='SkBlendMode_Reference#SkBlendMode'>SkBlendMode</a> when <a href='#SkCanvas_restore'>restore()</a> is called.
-Call <a href='#SkCanvas_restoreToCount'>restoreToCount</a>() <a href='#SkCanvas_restoreToCount'>with</a> <a href='#SkCanvas_restoreToCount'>returned</a> <a href='#SkCanvas_restoreToCount'>value</a> <a href='#SkCanvas_restoreToCount'>to</a> <a href='#SkCanvas_restoreToCount'>restore</a> <a href='#SkCanvas_restoreToCount'>this</a> <a href='#SkCanvas_restoreToCount'>and</a> <a href='#SkCanvas_restoreToCount'>subsequent</a> <a href='#SkCanvas_restoreToCount'>saves</a>.
+Call <a href='#SkCanvas_restoreToCount'>restoreToCount</a>() with returned value to restore this and subsequent saves.
-Draw <a href='undocumented#Text'>text</a> <a href='undocumented#Text'>on</a> <a href='undocumented#Text'>an</a> <a href='undocumented#Text'>opaque</a> <a href='undocumented#Text'>background</a> <a href='undocumented#Text'>so</a> <a href='undocumented#Text'>that</a> <a href='SkPaint_Reference#LCD_Text'>LCD text</a> <a href='undocumented#Text'>blends</a> <a href='undocumented#Text'>correctly</a> <a href='undocumented#Text'>with</a> <a href='undocumented#Text'>the</a>
-prior <a href='SkCanvas_Reference#Layer'>layer</a>. <a href='SkPaint_Reference#LCD_Text'>LCD text</a> <a href='SkCanvas_Reference#Layer'>drawn</a> <a href='SkCanvas_Reference#Layer'>on</a> <a href='SkCanvas_Reference#Layer'>a</a> <a href='SkCanvas_Reference#Layer'>background</a> <a href='SkCanvas_Reference#Layer'>with</a> <a href='SkCanvas_Reference#Layer'>transparency</a> <a href='SkCanvas_Reference#Layer'>may</a> <a href='SkCanvas_Reference#Layer'>result</a> <a href='SkCanvas_Reference#Layer'>in</a>
+Draw <a href='undocumented#Text'>text</a> on an opaque background so that <a href='SkPaint_Reference#LCD_Text'>LCD text</a> blends correctly with the
+prior <a href='SkCanvas_Reference#Layer'>layer</a>. <a href='SkPaint_Reference#LCD_Text'>LCD text</a> drawn on a background with transparency may result in
incorrect blending.
### Parameters
<table> <tr> <td><a name='SkCanvas_saveLayerPreserveLCDTextRequests_bounds'><code><strong>bounds</strong></code></a></td>
- <td>hint to limit the <a href='undocumented#Size'>size</a> <a href='undocumented#Size'>of</a> <a href='SkCanvas_Reference#Layer'>layer</a>; <a href='SkCanvas_Reference#Layer'>may</a> <a href='SkCanvas_Reference#Layer'>be</a> <a href='SkCanvas_Reference#Layer'>nullptr</a></td>
+ <td>hint to limit the <a href='undocumented#Size'>size</a> of <a href='SkCanvas_Reference#Layer'>layer</a>; may be nullptr</td>
</tr>
<tr> <td><a name='SkCanvas_saveLayerPreserveLCDTextRequests_paint'><code><strong>paint</strong></code></a></td>
- <td>graphics state for <a href='SkCanvas_Reference#Layer'>layer</a>; <a href='SkCanvas_Reference#Layer'>may</a> <a href='SkCanvas_Reference#Layer'>be</a> <a href='SkCanvas_Reference#Layer'>nullptr</a></td>
+ <td>graphics state for <a href='SkCanvas_Reference#Layer'>layer</a>; may be nullptr</td>
</tr>
</table>
@@ -1818,29 +1818,29 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-int <a href='#SkCanvas_saveLayerAlpha'>saveLayerAlpha</a>(<a href='#SkCanvas_saveLayerAlpha'>const</a> <a href='SkRect_Reference#SkRect'>SkRect</a>* <a href='SkRect_Reference#SkRect'>bounds</a>, <a href='undocumented#U8CPU'>U8CPU</a> <a href='SkColor_Reference#Alpha'>alpha</a>)
+int <a href='#SkCanvas_saveLayerAlpha'>saveLayerAlpha</a>(const <a href='SkRect_Reference#SkRect'>SkRect</a>* bounds, <a href='undocumented#U8CPU'>U8CPU</a> <a href='SkColor_Reference#Alpha'>alpha</a>)
</pre>
-Saves <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> <a href='SkMatrix_Reference#SkMatrix'>and</a> <a href='SkMatrix_Reference#SkMatrix'>clip</a>, <a href='SkMatrix_Reference#SkMatrix'>and</a> <a href='SkMatrix_Reference#SkMatrix'>allocates</a> <a href='SkBitmap_Reference#SkBitmap'>SkBitmap</a> <a href='SkBitmap_Reference#SkBitmap'>for</a> <a href='SkBitmap_Reference#SkBitmap'>subsequent</a> <a href='SkBitmap_Reference#SkBitmap'>drawing</a>.
+Saves <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> and clip, and allocates <a href='SkBitmap_Reference#SkBitmap'>SkBitmap</a> for subsequent drawing.
-Calling <a href='#SkCanvas_restore'>restore()</a> <a href='#SkCanvas_restore'>discards</a> <a href='#SkCanvas_restore'>changes</a> <a href='#SkCanvas_restore'>to</a> <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> <a href='SkMatrix_Reference#SkMatrix'>and</a> <a href='SkMatrix_Reference#SkMatrix'>clip</a>,
-and blends <a href='SkCanvas_Reference#Layer'>layer</a> <a href='SkCanvas_Reference#Layer'>with</a> <a href='#SkCanvas_saveLayerAlpha_alpha'>alpha</a> <a href='#SkCanvas_saveLayerAlpha_alpha'>opacity</a> <a href='#SkCanvas_saveLayerAlpha_alpha'>onto</a> <a href='#SkCanvas_saveLayerAlpha_alpha'>prior</a> <a href='SkCanvas_Reference#Layer'>layer</a>.
+Calling <a href='#SkCanvas_restore'>restore()</a> discards changes to <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> and clip,
+and blends <a href='SkCanvas_Reference#Layer'>layer</a> with <a href='#SkCanvas_saveLayerAlpha_alpha'>alpha</a> opacity onto prior <a href='SkCanvas_Reference#Layer'>layer</a>.
-<a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> <a href='SkMatrix_Reference#SkMatrix'>may</a> <a href='SkMatrix_Reference#SkMatrix'>be</a> <a href='SkMatrix_Reference#SkMatrix'>changed</a> <a href='SkMatrix_Reference#SkMatrix'>by</a> <a href='#SkCanvas_translate'>translate()</a>, <a href='#SkCanvas_scale'>scale()</a>, <a href='#SkCanvas_rotate'>rotate()</a>, <a href='#SkCanvas_skew'>skew()</a>, <a href='#SkCanvas_concat'>concat()</a>,
-<a href='#SkCanvas_setMatrix'>setMatrix</a>(), <a href='#SkCanvas_setMatrix'>and</a> <a href='#SkCanvas_resetMatrix'>resetMatrix</a>(). <a href='#SkCanvas_resetMatrix'>Clip</a> <a href='#SkCanvas_resetMatrix'>may</a> <a href='#SkCanvas_resetMatrix'>be</a> <a href='#SkCanvas_resetMatrix'>changed</a> <a href='#SkCanvas_resetMatrix'>by</a> <a href='#SkCanvas_clipRect'>clipRect</a>(), <a href='#SkCanvas_clipRRect'>clipRRect</a>(),
+<a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> may be changed by <a href='#SkCanvas_translate'>translate()</a>, <a href='#SkCanvas_scale'>scale()</a>, <a href='#SkCanvas_rotate'>rotate()</a>, <a href='#SkCanvas_skew'>skew()</a>, <a href='#SkCanvas_concat'>concat()</a>,
+<a href='#SkCanvas_setMatrix'>setMatrix</a>(), and <a href='#SkCanvas_resetMatrix'>resetMatrix</a>(). Clip may be changed by <a href='#SkCanvas_clipRect'>clipRect</a>(), <a href='#SkCanvas_clipRRect'>clipRRect</a>(),
<a href='#SkCanvas_clipPath'>clipPath</a>(), <a href='#SkCanvas_clipRegion'>clipRegion</a>().
-<a href='SkRect_Reference#SkRect'>SkRect</a> <a href='#SkCanvas_saveLayerAlpha_bounds'>bounds</a> <a href='#SkCanvas_saveLayerAlpha_bounds'>suggests</a> <a href='#SkCanvas_saveLayerAlpha_bounds'>but</a> <a href='#SkCanvas_saveLayerAlpha_bounds'>does</a> <a href='#SkCanvas_saveLayerAlpha_bounds'>not</a> <a href='#SkCanvas_saveLayerAlpha_bounds'>define</a> <a href='SkCanvas_Reference#Layer'>layer</a> <a href='undocumented#Size'>size</a>. <a href='undocumented#Size'>To</a> <a href='undocumented#Size'>clip</a> <a href='undocumented#Size'>drawing</a> <a href='undocumented#Size'>to</a>
+<a href='SkRect_Reference#SkRect'>SkRect</a> <a href='#SkCanvas_saveLayerAlpha_bounds'>bounds</a> suggests but does not define <a href='SkCanvas_Reference#Layer'>layer</a> <a href='undocumented#Size'>size</a>. To clip drawing to
a specific rectangle, use <a href='#SkCanvas_clipRect'>clipRect</a>().
-<a href='#SkCanvas_saveLayerAlpha_alpha'>alpha</a> <a href='#SkCanvas_saveLayerAlpha_alpha'>of</a> <a href='#SkCanvas_saveLayerAlpha_alpha'>zero</a> <a href='#SkCanvas_saveLayerAlpha_alpha'>is</a> <a href='#SkCanvas_saveLayerAlpha_alpha'>fully</a> <a href='#SkCanvas_saveLayerAlpha_alpha'>transparent</a>, 255 <a href='#SkCanvas_saveLayerAlpha_alpha'>is</a> <a href='#SkCanvas_saveLayerAlpha_alpha'>fully</a> <a href='#SkCanvas_saveLayerAlpha_alpha'>opaque</a>.
+<a href='#SkCanvas_saveLayerAlpha_alpha'>alpha</a> of zero is fully transparent, 255 is fully opaque.
-Call <a href='#SkCanvas_restoreToCount'>restoreToCount</a>() <a href='#SkCanvas_restoreToCount'>with</a> <a href='#SkCanvas_restoreToCount'>returned</a> <a href='#SkCanvas_restoreToCount'>value</a> <a href='#SkCanvas_restoreToCount'>to</a> <a href='#SkCanvas_restoreToCount'>restore</a> <a href='#SkCanvas_restoreToCount'>this</a> <a href='#SkCanvas_restoreToCount'>and</a> <a href='#SkCanvas_restoreToCount'>subsequent</a> <a href='#SkCanvas_restoreToCount'>saves</a>.
+Call <a href='#SkCanvas_restoreToCount'>restoreToCount</a>() with returned value to restore this and subsequent saves.
### Parameters
<table> <tr> <td><a name='SkCanvas_saveLayerAlpha_bounds'><code><strong>bounds</strong></code></a></td>
- <td>hint to limit the <a href='undocumented#Size'>size</a> <a href='undocumented#Size'>of</a> <a href='SkCanvas_Reference#Layer'>layer</a>; <a href='SkCanvas_Reference#Layer'>may</a> <a href='SkCanvas_Reference#Layer'>be</a> <a href='SkCanvas_Reference#Layer'>nullptr</a></td>
+ <td>hint to limit the <a href='undocumented#Size'>size</a> of <a href='SkCanvas_Reference#Layer'>layer</a>; may be nullptr</td>
</tr>
<tr> <td><a name='SkCanvas_saveLayerAlpha_alpha'><code><strong>alpha</strong></code></a></td>
<td>opacity of <a href='SkCanvas_Reference#Layer'>layer</a></td>
@@ -1870,7 +1870,7 @@
<a href='#SkCanvas_kMaskAgainstCoverage_EXPERIMENTAL_DONT_USE_SaveLayerFlag'>kMaskAgainstCoverage_EXPERIMENTAL_DONT_USE_SaveLayerFlag</a> =
1 << 3,
<a href='#SkCanvas_kDontClipToLayer_Legacy_SaveLayerFlag'>kDontClipToLayer_Legacy_SaveLayerFlag</a> =
- <a href='#SkCanvas_kDontClipToLayer_Legacy_SaveLayerFlag'>kDontClipToLayer_PrivateSaveLayerFlag</a>,
+ kDontClipToLayer_PrivateSaveLayerFlag,
};
</pre>
@@ -1878,9 +1878,9 @@
---
-<a href='#SkCanvas_SaveLayerFlags'>SaveLayerFlags</a> <a href='#SkCanvas_SaveLayerFlags'>provides</a> <a href='#SkCanvas_SaveLayerFlags'>options</a> <a href='#SkCanvas_SaveLayerFlags'>that</a> <a href='#SkCanvas_SaveLayerFlags'>may</a> <a href='#SkCanvas_SaveLayerFlags'>be</a> <a href='#SkCanvas_SaveLayerFlags'>used</a> <a href='#SkCanvas_SaveLayerFlags'>in</a> <a href='#SkCanvas_SaveLayerFlags'>any</a> <a href='#SkCanvas_SaveLayerFlags'>combination</a> <a href='#SkCanvas_SaveLayerFlags'>in</a> <a href='#SkCanvas_SaveLayerRec'>SaveLayerRec</a>,
-<a href='#SkCanvas_SaveLayerRec'>defining</a> <a href='#SkCanvas_SaveLayerRec'>how</a> <a href='SkCanvas_Reference#Layer'>Layer</a> <a href='SkCanvas_Reference#Layer'>allocated</a> <a href='SkCanvas_Reference#Layer'>by</a> <a href='#SkCanvas_saveLayer'>saveLayer</a> <a href='#SkCanvas_saveLayer'>operates</a>. <a href='#SkCanvas_saveLayer'>It</a> <a href='#SkCanvas_saveLayer'>may</a> <a href='#SkCanvas_saveLayer'>be</a> <a href='#SkCanvas_saveLayer'>set</a> <a href='#SkCanvas_saveLayer'>to</a> <a href='#SkCanvas_saveLayer'>zero</a>,
-<a href='#SkCanvas_kPreserveLCDText_SaveLayerFlag'>kPreserveLCDText_SaveLayerFlag</a>, <a href='#SkCanvas_kInitWithPrevious_SaveLayerFlag'>kInitWithPrevious_SaveLayerFlag</a>, <a href='#SkCanvas_kInitWithPrevious_SaveLayerFlag'>or</a> <a href='#SkCanvas_kInitWithPrevious_SaveLayerFlag'>both</a> <a href='#SkCanvas_kInitWithPrevious_SaveLayerFlag'>flags</a>.
+<a href='#SkCanvas_SaveLayerFlags'>SaveLayerFlags</a> provides options that may be used in any combination in <a href='#SkCanvas_SaveLayerRec'>SaveLayerRec</a>,
+defining how <a href='SkCanvas_Reference#Layer'>Layer</a> allocated by <a href='#SkCanvas_saveLayer'>saveLayer</a> operates. It may be set to zero,
+<a href='#SkCanvas_kPreserveLCDText_SaveLayerFlag'>kPreserveLCDText_SaveLayerFlag</a>, <a href='#SkCanvas_kInitWithPrevious_SaveLayerFlag'>kInitWithPrevious_SaveLayerFlag</a>, or both flags.
### Constants
@@ -1892,15 +1892,15 @@
<td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a name='SkCanvas_kPreserveLCDText_SaveLayerFlag'><code>SkCanvas::kPreserveLCDText_SaveLayerFlag</code></a></td>
<td style='text-align: center; border: 2px solid #dddddd; padding: 8px; '>2</td>
<td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>
-Creates <a href='SkCanvas_Reference#Layer'>Layer</a> <a href='SkCanvas_Reference#Layer'>for</a> <a href='SkPaint_Reference#LCD_Text'>LCD text</a>. <a href='SkCanvas_Reference#Layer'>Flag</a> <a href='SkCanvas_Reference#Layer'>is</a> <a href='SkCanvas_Reference#Layer'>ignored</a> <a href='SkCanvas_Reference#Layer'>if</a> <a href='SkCanvas_Reference#Layer'>Layer</a> <a href='SkPaint_Reference#Paint'>Paint</a> <a href='SkPaint_Reference#Paint'>contains</a>
-<a href='#Image_Filter'>Image_Filter</a> <a href='#Image_Filter'>or</a> <a href='#Color_Filter'>Color_Filter</a>.
+Creates <a href='SkCanvas_Reference#Layer'>Layer</a> for <a href='SkPaint_Reference#LCD_Text'>LCD text</a>. Flag is ignored if <a href='SkCanvas_Reference#Layer'>Layer</a> <a href='SkPaint_Reference#Paint'>Paint</a> contains
+<a href='#Image_Filter'>Image_Filter</a> or <a href='#Color_Filter'>Color_Filter</a>.
</td>
</tr>
<tr>
<td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a name='SkCanvas_kInitWithPrevious_SaveLayerFlag'><code>SkCanvas::kInitWithPrevious_SaveLayerFlag</code></a></td>
<td style='text-align: center; border: 2px solid #dddddd; padding: 8px; '>4</td>
<td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>
-Initializes <a href='SkCanvas_Reference#Layer'>Layer</a> <a href='SkCanvas_Reference#Layer'>with</a> <a href='SkCanvas_Reference#Layer'>the</a> <a href='SkCanvas_Reference#Layer'>contents</a> <a href='SkCanvas_Reference#Layer'>of</a> <a href='SkCanvas_Reference#Layer'>the</a> <a href='SkCanvas_Reference#Layer'>previous</a> <a href='SkCanvas_Reference#Layer'>Layer</a>.
+Initializes <a href='SkCanvas_Reference#Layer'>Layer</a> with the contents of the previous <a href='SkCanvas_Reference#Layer'>Layer</a>.
</td>
</tr>
<tr style='background-color: #f0f0f0; '>
@@ -1923,8 +1923,8 @@
### Example
-<div><fiddle-embed name="05db6a937225e8e31ae3481173d25dae"><div><a href='SkCanvas_Reference#Canvas'>Canvas</a> <a href='SkCanvas_Reference#Layer'>Layer</a> <a href='SkCanvas_Reference#Layer'>captures</a> <a href='SkCanvas_Reference#Layer'>red</a> <a href='SkCanvas_Reference#Layer'>and</a> <a href='SkCanvas_Reference#Layer'>blue</a> <a href='undocumented#Circle'>circles</a> <a href='undocumented#Circle'>scaled</a> <a href='undocumented#Circle'>up</a> <a href='undocumented#Circle'>by</a> <a href='undocumented#Circle'>four</a>.
-<a href='undocumented#Circle'>scalePaint</a> <a href='undocumented#Circle'>blends</a> <a href='SkCanvas_Reference#Layer'>Layer</a> <a href='SkCanvas_Reference#Layer'>back</a> <a href='SkCanvas_Reference#Layer'>with</a> <a href='SkCanvas_Reference#Layer'>transparency</a>.
+<div><fiddle-embed name="05db6a937225e8e31ae3481173d25dae"><div><a href='SkCanvas_Reference#Canvas'>Canvas</a> <a href='SkCanvas_Reference#Layer'>Layer</a> captures red and blue <a href='undocumented#Circle'>circles</a> scaled up by four.
+scalePaint blends <a href='SkCanvas_Reference#Layer'>Layer</a> back with transparency.
</div></fiddle-embed></div>
### See Also
@@ -1940,22 +1940,22 @@
<pre style="padding: 1em 1em 1em 1em;width: 62.5em; background-color: #f0f0f0">
struct <a href='#SkCanvas_SaveLayerRec'>SaveLayerRec</a> {
<a href='#SkCanvas_SaveLayerRec_SaveLayerRec'>SaveLayerRec()</a>;
- <a href='#SkCanvas_SaveLayerRec'>SaveLayerRec</a>(<a href='#SkCanvas_SaveLayerRec'>const</a> <a href='SkRect_Reference#SkRect'>SkRect</a>* <a href='SkRect_Reference#SkRect'>bounds</a>, <a href='SkRect_Reference#SkRect'>const</a> <a href='SkPaint_Reference#SkPaint'>SkPaint</a>* <a href='SkPaint_Reference#Paint'>paint</a>, <a href='#SkCanvas_SaveLayerFlags'>SaveLayerFlags</a> <a href='#SkCanvas_SaveLayerFlags'>saveLayerFlags</a> = 0);
- <a href='#SkCanvas_SaveLayerRec'>SaveLayerRec</a>(<a href='#SkCanvas_SaveLayerRec'>const</a> <a href='SkRect_Reference#SkRect'>SkRect</a>* <a href='SkRect_Reference#SkRect'>bounds</a>, <a href='SkRect_Reference#SkRect'>const</a> <a href='SkPaint_Reference#SkPaint'>SkPaint</a>* <a href='SkPaint_Reference#Paint'>paint</a>, <a href='SkPaint_Reference#Paint'>const</a> <a href='undocumented#SkImageFilter'>SkImageFilter</a>* <a href='undocumented#SkImageFilter'>backdrop</a>,
- <a href='#SkCanvas_SaveLayerFlags'>SaveLayerFlags</a> <a href='#SkCanvas_SaveLayerFlags'>saveLayerFlags</a>);
- <a href='#SkCanvas_SaveLayerRec'>SaveLayerRec</a>(<a href='#SkCanvas_SaveLayerRec'>const</a> <a href='SkRect_Reference#SkRect'>SkRect</a>* <a href='SkRect_Reference#SkRect'>bounds</a>, <a href='SkRect_Reference#SkRect'>const</a> <a href='SkPaint_Reference#SkPaint'>SkPaint</a>* <a href='SkPaint_Reference#Paint'>paint</a>, <a href='SkPaint_Reference#Paint'>const</a> <a href='undocumented#SkImageFilter'>SkImageFilter</a>* <a href='undocumented#SkImageFilter'>backdrop</a>,
- <a href='undocumented#SkImageFilter'>const</a> <a href='SkImage_Reference#SkImage'>SkImage</a>* <a href='SkImage_Reference#SkImage'>clipMask</a>, <a href='SkImage_Reference#SkImage'>const</a> <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a>* <a href='SkMatrix_Reference#SkMatrix'>clipMatrix</a>,
- <a href='#SkCanvas_SaveLayerFlags'>SaveLayerFlags</a> <a href='#SkCanvas_SaveLayerFlags'>saveLayerFlags</a>);
- <a href='#SkCanvas_SaveLayerFlags'>const</a> <a href='SkRect_Reference#SkRect'>SkRect</a>* <a href='#SkCanvas_SaveLayerRec_fBounds'>fBounds</a> = <a href='#SkCanvas_SaveLayerRec_fBounds'>nullptr</a>;
- <a href='#SkCanvas_SaveLayerRec_fBounds'>const</a> <a href='SkPaint_Reference#SkPaint'>SkPaint</a>* <a href='#SkCanvas_SaveLayerRec_fPaint'>fPaint</a> = <a href='#SkCanvas_SaveLayerRec_fPaint'>nullptr</a>;
- <a href='#SkCanvas_SaveLayerRec_fPaint'>const</a> <a href='undocumented#SkImageFilter'>SkImageFilter</a>* <a href='#SkCanvas_SaveLayerRec_fBackdrop'>fBackdrop</a> = <a href='#SkCanvas_SaveLayerRec_fBackdrop'>nullptr</a>;
- <a href='#SkCanvas_SaveLayerRec_fBackdrop'>const</a> <a href='SkImage_Reference#SkImage'>SkImage</a>* <a href='#SkCanvas_SaveLayerRec_fClipMask'>fClipMask</a> = <a href='#SkCanvas_SaveLayerRec_fClipMask'>nullptr</a>;
- <a href='#SkCanvas_SaveLayerRec_fClipMask'>const</a> <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a>* <a href='#SkCanvas_SaveLayerRec_fClipMatrix'>fClipMatrix</a> = <a href='#SkCanvas_SaveLayerRec_fClipMatrix'>nullptr</a>;
+ <a href='#SkCanvas_SaveLayerRec'>SaveLayerRec</a>(const <a href='SkRect_Reference#SkRect'>SkRect</a>* bounds, const <a href='SkPaint_Reference#SkPaint'>SkPaint</a>* <a href='SkPaint_Reference#Paint'>paint</a>, <a href='#SkCanvas_SaveLayerFlags'>SaveLayerFlags</a> saveLayerFlags = 0);
+ <a href='#SkCanvas_SaveLayerRec'>SaveLayerRec</a>(const <a href='SkRect_Reference#SkRect'>SkRect</a>* bounds, const <a href='SkPaint_Reference#SkPaint'>SkPaint</a>* <a href='SkPaint_Reference#Paint'>paint</a>, const <a href='undocumented#SkImageFilter'>SkImageFilter</a>* backdrop,
+ <a href='#SkCanvas_SaveLayerFlags'>SaveLayerFlags</a> saveLayerFlags);
+ <a href='#SkCanvas_SaveLayerRec'>SaveLayerRec</a>(const <a href='SkRect_Reference#SkRect'>SkRect</a>* bounds, const <a href='SkPaint_Reference#SkPaint'>SkPaint</a>* <a href='SkPaint_Reference#Paint'>paint</a>, const <a href='undocumented#SkImageFilter'>SkImageFilter</a>* backdrop,
+ const <a href='SkImage_Reference#SkImage'>SkImage</a>* clipMask, const <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a>* clipMatrix,
+ <a href='#SkCanvas_SaveLayerFlags'>SaveLayerFlags</a> saveLayerFlags);
+ const <a href='SkRect_Reference#SkRect'>SkRect</a>* <a href='#SkCanvas_SaveLayerRec_fBounds'>fBounds</a> = nullptr;
+ const <a href='SkPaint_Reference#SkPaint'>SkPaint</a>* <a href='#SkCanvas_SaveLayerRec_fPaint'>fPaint</a> = nullptr;
+ const <a href='undocumented#SkImageFilter'>SkImageFilter</a>* <a href='#SkCanvas_SaveLayerRec_fBackdrop'>fBackdrop</a> = nullptr;
+ const <a href='SkImage_Reference#SkImage'>SkImage</a>* <a href='#SkCanvas_SaveLayerRec_fClipMask'>fClipMask</a> = nullptr;
+ const <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a>* <a href='#SkCanvas_SaveLayerRec_fClipMatrix'>fClipMatrix</a> = nullptr;
<a href='#SkCanvas_SaveLayerFlags'>SaveLayerFlags</a> <a href='#SkCanvas_SaveLayerRec_fSaveLayerFlags'>fSaveLayerFlags</a> = 0;
};
</pre>
-<a href='#SkCanvas_SaveLayerRec'>SaveLayerRec</a> <a href='#SkCanvas_SaveLayerRec'>contains</a> <a href='#SkCanvas_SaveLayerRec'>the</a> <a href='#SkCanvas_SaveLayerRec'>state</a> <a href='#SkCanvas_SaveLayerRec'>used</a> <a href='#SkCanvas_SaveLayerRec'>to</a> <a href='#SkCanvas_SaveLayerRec'>create</a> <a href='#SkCanvas_SaveLayerRec'>the</a> <a href='SkCanvas_Reference#Layer'>Layer</a>.<table style='border-collapse: collapse; width: 62.5em'>
+<a href='#SkCanvas_SaveLayerRec'>SaveLayerRec</a> contains the state used to create the <a href='SkCanvas_Reference#Layer'>Layer</a>.<table style='border-collapse: collapse; width: 62.5em'>
<tr><th style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>Type</th>
<th style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>Member</th>
@@ -1964,62 +1964,62 @@
<td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>const SkRect*</td>
<td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a name='SkCanvas_SaveLayerRec_fBounds'><code>fBounds</code></a></td>
<td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>
-<a href='#SkCanvas_SaveLayerRec_fBounds'>fBounds</a> <a href='#SkCanvas_SaveLayerRec_fBounds'>is</a> <a href='#SkCanvas_SaveLayerRec_fBounds'>used</a> <a href='#SkCanvas_SaveLayerRec_fBounds'>as</a> <a href='#SkCanvas_SaveLayerRec_fBounds'>a</a> <a href='#SkCanvas_SaveLayerRec_fBounds'>hint</a> <a href='#SkCanvas_SaveLayerRec_fBounds'>to</a> <a href='#SkCanvas_SaveLayerRec_fBounds'>limit</a> <a href='#SkCanvas_SaveLayerRec_fBounds'>the</a> <a href='undocumented#Size'>size</a> <a href='undocumented#Size'>of</a> <a href='SkCanvas_Reference#Layer'>Layer</a>; <a href='SkCanvas_Reference#Layer'>may</a> <a href='SkCanvas_Reference#Layer'>be</a> <a href='SkCanvas_Reference#Layer'>nullptr</a>.
-<a href='#SkCanvas_SaveLayerRec_fBounds'>fBounds</a> <a href='#SkCanvas_SaveLayerRec_fBounds'>suggests</a> <a href='#SkCanvas_SaveLayerRec_fBounds'>but</a> <a href='#SkCanvas_SaveLayerRec_fBounds'>does</a> <a href='#SkCanvas_SaveLayerRec_fBounds'>not</a> <a href='#SkCanvas_SaveLayerRec_fBounds'>define</a> <a href='SkCanvas_Reference#Layer'>Layer</a> <a href='undocumented#Size'>size</a>. <a href='undocumented#Size'>To</a> <a href='undocumented#Size'>clip</a> <a href='undocumented#Size'>drawing</a> <a href='undocumented#Size'>to</a>
-<a href='undocumented#Size'>a</a> <a href='undocumented#Size'>specific</a> <a href='undocumented#Size'>rectangle</a>, <a href='undocumented#Size'>use</a> <a href='#SkCanvas_clipRect'>clipRect</a>.
+<a href='#SkCanvas_SaveLayerRec_fBounds'>fBounds</a> is used as a hint to limit the <a href='undocumented#Size'>size</a> of <a href='SkCanvas_Reference#Layer'>Layer</a>; may be nullptr.
+<a href='#SkCanvas_SaveLayerRec_fBounds'>fBounds</a> suggests but does not define <a href='SkCanvas_Reference#Layer'>Layer</a> <a href='undocumented#Size'>size</a>. To clip drawing to
+a specific rectangle, use <a href='#SkCanvas_clipRect'>clipRect</a>.
</td>
</tr>
<tr>
<td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>const SkPaint*</td>
<td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a name='SkCanvas_SaveLayerRec_fPaint'><code>fPaint</code></a></td>
<td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>
-<a href='#SkCanvas_SaveLayerRec_fPaint'>fPaint</a> <a href='#SkCanvas_SaveLayerRec_fPaint'>modifies</a> <a href='#SkCanvas_SaveLayerRec_fPaint'>how</a> <a href='SkCanvas_Reference#Layer'>Layer</a> <a href='SkCanvas_Reference#Layer'>overlays</a> <a href='SkCanvas_Reference#Layer'>the</a> <a href='SkCanvas_Reference#Layer'>prior</a> <a href='SkCanvas_Reference#Layer'>Layer</a>; <a href='SkCanvas_Reference#Layer'>may</a> <a href='SkCanvas_Reference#Layer'>be</a> <a href='SkCanvas_Reference#Layer'>nullptr</a>.
-<a href='#Color_Alpha'>Color_Alpha</a>, <a href='#Blend_Mode'>Blend_Mode</a>, <a href='#Color_Filter'>Color_Filter</a>, <a href='#Draw_Looper'>Draw_Looper</a>, <a href='#Image_Filter'>Image_Filter</a>, <a href='#Image_Filter'>and</a>
-<a href='#Mask_Filter'>Mask_Filter</a> <a href='#Mask_Filter'>affect</a> <a href='SkCanvas_Reference#Layer'>Layer</a> <a href='SkCanvas_Reference#Layer'>draw</a>.
+<a href='#SkCanvas_SaveLayerRec_fPaint'>fPaint</a> modifies how <a href='SkCanvas_Reference#Layer'>Layer</a> overlays the prior <a href='SkCanvas_Reference#Layer'>Layer</a>; may be nullptr.
+<a href='#Color_Alpha'>Color_Alpha</a>, <a href='#Blend_Mode'>Blend_Mode</a>, <a href='#Color_Filter'>Color_Filter</a>, <a href='#Draw_Looper'>Draw_Looper</a>, <a href='#Image_Filter'>Image_Filter</a>, and
+<a href='#Mask_Filter'>Mask_Filter</a> affect <a href='SkCanvas_Reference#Layer'>Layer</a> draw.
</td>
</tr>
<tr style='background-color: #f0f0f0; '>
<td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>const SkImageFilter*</td>
<td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a name='SkCanvas_SaveLayerRec_fBackdrop'><code>fBackdrop</code></a></td>
<td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>
-<a href='#SkCanvas_SaveLayerRec_fBackdrop'>fBackdrop</a> <a href='#SkCanvas_SaveLayerRec_fBackdrop'>applies</a> <a href='#Image_Filter'>Image_Filter</a> <a href='#Image_Filter'>to</a> <a href='#Image_Filter'>the</a> <a href='#Image_Filter'>prior</a> <a href='SkCanvas_Reference#Layer'>Layer</a> <a href='SkCanvas_Reference#Layer'>when</a> <a href='SkCanvas_Reference#Layer'>copying</a> <a href='SkCanvas_Reference#Layer'>to</a> <a href='SkCanvas_Reference#Layer'>the</a> <a href='SkCanvas_Reference#Layer'>Layer</a>;
-<a href='SkCanvas_Reference#Layer'>may</a> <a href='SkCanvas_Reference#Layer'>be</a> <a href='SkCanvas_Reference#Layer'>nullptr</a>. <a href='SkCanvas_Reference#Layer'>Use</a> <a href='#SkCanvas_kInitWithPrevious_SaveLayerFlag'>kInitWithPrevious_SaveLayerFlag</a> <a href='#SkCanvas_kInitWithPrevious_SaveLayerFlag'>to</a> <a href='#SkCanvas_kInitWithPrevious_SaveLayerFlag'>copy</a> <a href='#SkCanvas_kInitWithPrevious_SaveLayerFlag'>the</a>
-<a href='#SkCanvas_kInitWithPrevious_SaveLayerFlag'>prior</a> <a href='SkCanvas_Reference#Layer'>Layer</a> <a href='SkCanvas_Reference#Layer'>without</a> <a href='SkCanvas_Reference#Layer'>an</a> <a href='#Image_Filter'>Image_Filter</a>.
+<a href='#SkCanvas_SaveLayerRec_fBackdrop'>fBackdrop</a> applies <a href='#Image_Filter'>Image_Filter</a> to the prior <a href='SkCanvas_Reference#Layer'>Layer</a> when copying to the <a href='SkCanvas_Reference#Layer'>Layer</a>;
+may be nullptr. Use <a href='#SkCanvas_kInitWithPrevious_SaveLayerFlag'>kInitWithPrevious_SaveLayerFlag</a> to copy the
+prior <a href='SkCanvas_Reference#Layer'>Layer</a> without an <a href='#Image_Filter'>Image_Filter</a>.
</td>
</tr>
<tr>
<td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>const SkImage*</td>
<td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a name='SkCanvas_SaveLayerRec_fClipMask'><code>fClipMask</code></a></td>
<td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>
-<a href='#SkCanvas_restore'>restore()</a> <a href='#SkCanvas_restore'>clips</a> <a href='SkCanvas_Reference#Layer'>Layer</a> <a href='SkCanvas_Reference#Layer'>by</a> <a href='SkCanvas_Reference#Layer'>the</a> <a href='#Color_Alpha'>Color_Alpha</a> <a href='#Color_Alpha'>channel</a> <a href='#Color_Alpha'>of</a> <a href='#SkCanvas_SaveLayerRec_fClipMask'>fClipMask</a> <a href='#SkCanvas_SaveLayerRec_fClipMask'>when</a>
-<a href='SkCanvas_Reference#Layer'>Layer</a> <a href='SkCanvas_Reference#Layer'>is</a> <a href='SkCanvas_Reference#Layer'>copied</a> <a href='SkCanvas_Reference#Layer'>to</a> <a href='undocumented#Device'>Device</a>. <a href='#SkCanvas_SaveLayerRec_fClipMask'>fClipMask</a> <a href='#SkCanvas_SaveLayerRec_fClipMask'>may</a> <a href='#SkCanvas_SaveLayerRec_fClipMask'>be</a> <a href='#SkCanvas_SaveLayerRec_fClipMask'>nullptr</a>. .
+<a href='#SkCanvas_restore'>restore()</a> clips <a href='SkCanvas_Reference#Layer'>Layer</a> by the <a href='#Color_Alpha'>Color_Alpha</a> channel of <a href='#SkCanvas_SaveLayerRec_fClipMask'>fClipMask</a> when
+<a href='SkCanvas_Reference#Layer'>Layer</a> is copied to <a href='undocumented#Device'>Device</a>. <a href='#SkCanvas_SaveLayerRec_fClipMask'>fClipMask</a> may be nullptr. .
</td>
</tr>
<tr style='background-color: #f0f0f0; '>
<td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>const SkMatrix*</td>
<td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a name='SkCanvas_SaveLayerRec_fClipMatrix'><code>fClipMatrix</code></a></td>
<td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>
-<a href='#SkCanvas_SaveLayerRec_fClipMatrix'>fClipMatrix</a> <a href='#SkCanvas_SaveLayerRec_fClipMatrix'>transforms</a> <a href='#SkCanvas_SaveLayerRec_fClipMask'>fClipMask</a> <a href='#SkCanvas_SaveLayerRec_fClipMask'>before</a> <a href='#SkCanvas_SaveLayerRec_fClipMask'>it</a> <a href='#SkCanvas_SaveLayerRec_fClipMask'>clips</a> <a href='SkCanvas_Reference#Layer'>Layer</a>. <a href='SkCanvas_Reference#Layer'>If</a>
-<a href='#SkCanvas_SaveLayerRec_fClipMask'>fClipMask</a> <a href='#SkCanvas_SaveLayerRec_fClipMask'>describes</a> <a href='#SkCanvas_SaveLayerRec_fClipMask'>a</a> <a href='#SkCanvas_SaveLayerRec_fClipMask'>translucent</a> <a href='#SkCanvas_SaveLayerRec_fClipMask'>gradient</a>, <a href='#SkCanvas_SaveLayerRec_fClipMask'>it</a> <a href='#SkCanvas_SaveLayerRec_fClipMask'>may</a> <a href='#SkCanvas_SaveLayerRec_fClipMask'>be</a> <a href='#SkCanvas_SaveLayerRec_fClipMask'>scaled</a> <a href='#SkCanvas_SaveLayerRec_fClipMask'>and</a> <a href='#SkCanvas_SaveLayerRec_fClipMask'>rotated</a>
-<a href='#SkCanvas_SaveLayerRec_fClipMask'>without</a> <a href='#SkCanvas_SaveLayerRec_fClipMask'>introducing</a> <a href='#SkCanvas_SaveLayerRec_fClipMask'>artifacts</a>. <a href='#SkCanvas_SaveLayerRec_fClipMatrix'>fClipMatrix</a> <a href='#SkCanvas_SaveLayerRec_fClipMatrix'>may</a> <a href='#SkCanvas_SaveLayerRec_fClipMatrix'>be</a> <a href='#SkCanvas_SaveLayerRec_fClipMatrix'>nullptr</a>.
+<a href='#SkCanvas_SaveLayerRec_fClipMatrix'>fClipMatrix</a> transforms <a href='#SkCanvas_SaveLayerRec_fClipMask'>fClipMask</a> before it clips <a href='SkCanvas_Reference#Layer'>Layer</a>. If
+<a href='#SkCanvas_SaveLayerRec_fClipMask'>fClipMask</a> describes a translucent gradient, it may be scaled and rotated
+without introducing artifacts. <a href='#SkCanvas_SaveLayerRec_fClipMatrix'>fClipMatrix</a> may be nullptr.
</td>
</tr>
<tr>
<td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>SaveLayerFlags</td>
<td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a name='SkCanvas_SaveLayerRec_fSaveLayerFlags'><code>fSaveLayerFlags</code></a></td>
<td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>
-<a href='#SkCanvas_SaveLayerRec_fSaveLayerFlags'>fSaveLayerFlags</a> <a href='#SkCanvas_SaveLayerRec_fSaveLayerFlags'>are</a> <a href='#SkCanvas_SaveLayerRec_fSaveLayerFlags'>used</a> <a href='#SkCanvas_SaveLayerRec_fSaveLayerFlags'>to</a> <a href='#SkCanvas_SaveLayerRec_fSaveLayerFlags'>create</a> <a href='SkCanvas_Reference#Layer'>Layer</a> <a href='SkCanvas_Reference#Layer'>without</a> <a href='SkCanvas_Reference#Layer'>transparency</a>,
-<a href='SkCanvas_Reference#Layer'>create</a> <a href='SkCanvas_Reference#Layer'>Layer</a> <a href='SkCanvas_Reference#Layer'>for</a> <a href='SkPaint_Reference#LCD_Text'>LCD text</a>, <a href='SkCanvas_Reference#Layer'>and</a> <a href='SkCanvas_Reference#Layer'>to</a> <a href='SkCanvas_Reference#Layer'>create</a> <a href='SkCanvas_Reference#Layer'>Layer</a> <a href='SkCanvas_Reference#Layer'>with</a> <a href='SkCanvas_Reference#Layer'>the</a>
-<a href='SkCanvas_Reference#Layer'>contents</a> <a href='SkCanvas_Reference#Layer'>of</a> <a href='SkCanvas_Reference#Layer'>the</a> <a href='SkCanvas_Reference#Layer'>previous</a> <a href='SkCanvas_Reference#Layer'>Layer</a>.
+<a href='#SkCanvas_SaveLayerRec_fSaveLayerFlags'>fSaveLayerFlags</a> are used to create <a href='SkCanvas_Reference#Layer'>Layer</a> without transparency,
+create <a href='SkCanvas_Reference#Layer'>Layer</a> for <a href='SkPaint_Reference#LCD_Text'>LCD text</a>, and to create <a href='SkCanvas_Reference#Layer'>Layer</a> with the
+contents of the previous <a href='SkCanvas_Reference#Layer'>Layer</a>.
</td>
</tr>
</table>
### Example
-<div><fiddle-embed name="ee8c0b120234e27364f8c9a786cf8f89"><div><a href='SkCanvas_Reference#Canvas'>Canvas</a> <a href='SkCanvas_Reference#Layer'>Layer</a> <a href='SkCanvas_Reference#Layer'>captures</a> <a href='SkCanvas_Reference#Layer'>a</a> <a href='SkCanvas_Reference#Layer'>red</a> <a href='#Paint_Anti_Alias'>Anti_Aliased</a> <a href='undocumented#Circle'>circle</a> <a href='undocumented#Circle'>and</a> <a href='undocumented#Circle'>a</a> <a href='undocumented#Circle'>blue</a> <a href='undocumented#Alias'>Aliased</a> <a href='undocumented#Circle'>circle</a> <a href='undocumented#Circle'>scaled</a>
-<a href='undocumented#Circle'>up</a> <a href='undocumented#Circle'>by</a> <a href='undocumented#Circle'>four</a>. <a href='undocumented#Circle'>After</a> <a href='undocumented#Circle'>drawing</a> <a href='undocumented#Circle'>another</a> <a href='undocumented#Circle'>red</a> <a href='undocumented#Circle'>circle</a> <a href='undocumented#Circle'>without</a> <a href='undocumented#Circle'>scaling</a> <a href='undocumented#Circle'>on</a> <a href='undocumented#Circle'>top</a>, <a href='undocumented#Circle'>the</a> <a href='SkCanvas_Reference#Layer'>Layer</a> <a href='SkCanvas_Reference#Layer'>is</a>
-<a href='SkCanvas_Reference#Layer'>transferred</a> <a href='SkCanvas_Reference#Layer'>to</a> <a href='SkCanvas_Reference#Layer'>the</a> <a href='SkCanvas_Reference#Layer'>main</a> <a href='SkCanvas_Reference#Canvas'>canvas</a>.
+<div><fiddle-embed name="ee8c0b120234e27364f8c9a786cf8f89"><div><a href='SkCanvas_Reference#Canvas'>Canvas</a> <a href='SkCanvas_Reference#Layer'>Layer</a> captures a red <a href='#Paint_Anti_Alias'>Anti_Aliased</a> <a href='undocumented#Circle'>circle</a> and a blue <a href='undocumented#Alias'>Aliased</a> <a href='undocumented#Circle'>circle</a> scaled
+up by four. After drawing another red <a href='undocumented#Circle'>circle</a> without scaling on top, the <a href='SkCanvas_Reference#Layer'>Layer</a> is
+transferred to the main <a href='SkCanvas_Reference#Canvas'>canvas</a>.
</div></fiddle-embed></div>
<a name='Layer_SaveLayerRec_Constructors'></a>
@@ -2032,7 +2032,7 @@
<a href='#SkCanvas_SaveLayerRec_SaveLayerRec'>SaveLayerRec()</a>
</pre>
-Sets <a href='#SkCanvas_SaveLayerRec_fBounds'>fBounds</a>, <a href='#SkCanvas_SaveLayerRec_fPaint'>fPaint</a>, <a href='#SkCanvas_SaveLayerRec_fPaint'>and</a> <a href='#SkCanvas_SaveLayerRec_fBackdrop'>fBackdrop</a> <a href='#SkCanvas_SaveLayerRec_fBackdrop'>to</a> <a href='#SkCanvas_SaveLayerRec_fBackdrop'>nullptr</a>. <a href='#SkCanvas_SaveLayerRec_fBackdrop'>Clears</a> <a href='#SkCanvas_SaveLayerRec_fSaveLayerFlags'>fSaveLayerFlags</a>.
+Sets <a href='#SkCanvas_SaveLayerRec_fBounds'>fBounds</a>, <a href='#SkCanvas_SaveLayerRec_fPaint'>fPaint</a>, and <a href='#SkCanvas_SaveLayerRec_fBackdrop'>fBackdrop</a> to nullptr. Clears <a href='#SkCanvas_SaveLayerRec_fSaveLayerFlags'>fSaveLayerFlags</a>.
### Return Value
@@ -2059,27 +2059,27 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-<a href='#SkCanvas_SaveLayerRec'>SaveLayerRec</a>(<a href='#SkCanvas_SaveLayerRec'>const</a> <a href='SkRect_Reference#SkRect'>SkRect</a>* <a href='SkRect_Reference#SkRect'>bounds</a>, <a href='SkRect_Reference#SkRect'>const</a> <a href='SkPaint_Reference#SkPaint'>SkPaint</a>* <a href='SkPaint_Reference#Paint'>paint</a>, <a href='#SkCanvas_SaveLayerFlags'>SaveLayerFlags</a> <a href='#SkCanvas_SaveLayerFlags'>saveLayerFlags</a> = 0)
+<a href='#SkCanvas_SaveLayerRec'>SaveLayerRec</a>(const <a href='SkRect_Reference#SkRect'>SkRect</a>* bounds, const <a href='SkPaint_Reference#SkPaint'>SkPaint</a>* <a href='SkPaint_Reference#Paint'>paint</a>, <a href='#SkCanvas_SaveLayerFlags'>SaveLayerFlags</a> saveLayerFlags = 0)
</pre>
-Sets <a href='#SkCanvas_SaveLayerRec_fBounds'>fBounds</a>, <a href='#SkCanvas_SaveLayerRec_fPaint'>fPaint</a>, <a href='#SkCanvas_SaveLayerRec_fPaint'>and</a> <a href='#SkCanvas_SaveLayerRec_fSaveLayerFlags'>fSaveLayerFlags</a>; <a href='#SkCanvas_SaveLayerRec_fSaveLayerFlags'>sets</a> <a href='#SkCanvas_SaveLayerRec_fBackdrop'>fBackdrop</a> <a href='#SkCanvas_SaveLayerRec_fBackdrop'>to</a> <a href='#SkCanvas_SaveLayerRec_fBackdrop'>nullptr</a>.
+Sets <a href='#SkCanvas_SaveLayerRec_fBounds'>fBounds</a>, <a href='#SkCanvas_SaveLayerRec_fPaint'>fPaint</a>, and <a href='#SkCanvas_SaveLayerRec_fSaveLayerFlags'>fSaveLayerFlags</a>; sets <a href='#SkCanvas_SaveLayerRec_fBackdrop'>fBackdrop</a> to nullptr.
### Parameters
<table> <tr> <td><a name='SkCanvas_SaveLayerRec_const_SkRect_star_const_SkPaint_star_bounds'><code><strong>bounds</strong></code></a></td>
- <td><a href='SkCanvas_Reference#Layer'>layer</a> <a href='SkCanvas_Reference#Layer'>dimensions</a>; <a href='SkCanvas_Reference#Layer'>may</a> <a href='SkCanvas_Reference#Layer'>be</a> <a href='SkCanvas_Reference#Layer'>nullptr</a></td>
+ <td><a href='SkCanvas_Reference#Layer'>layer</a> dimensions; may be nullptr</td>
</tr>
<tr> <td><a name='SkCanvas_SaveLayerRec_const_SkRect_star_const_SkPaint_star_paint'><code><strong>paint</strong></code></a></td>
- <td>applied to <a href='SkCanvas_Reference#Layer'>layer</a> <a href='SkCanvas_Reference#Layer'>when</a> <a href='SkCanvas_Reference#Layer'>overlaying</a> <a href='SkCanvas_Reference#Layer'>prior</a> <a href='SkCanvas_Reference#Layer'>layer</a>; <a href='SkCanvas_Reference#Layer'>may</a> <a href='SkCanvas_Reference#Layer'>be</a> <a href='SkCanvas_Reference#Layer'>nullptr</a></td>
+ <td>applied to <a href='SkCanvas_Reference#Layer'>layer</a> when overlaying prior <a href='SkCanvas_Reference#Layer'>layer</a>; may be nullptr</td>
</tr>
<tr> <td><a name='SkCanvas_SaveLayerRec_const_SkRect_star_const_SkPaint_star_saveLayerFlags'><code><strong>saveLayerFlags</strong></code></a></td>
- <td><a href='#SkCanvas_SaveLayerRec'>SaveLayerRec</a> <a href='#SkCanvas_SaveLayerRec'>options</a> <a href='#SkCanvas_SaveLayerRec'>to</a> <a href='#SkCanvas_SaveLayerRec'>modify</a> <a href='SkCanvas_Reference#Layer'>layer</a></td>
+ <td><a href='#SkCanvas_SaveLayerRec'>SaveLayerRec</a> options to modify <a href='SkCanvas_Reference#Layer'>layer</a></td>
</tr>
</table>
### Return Value
-<a href='#SkCanvas_SaveLayerRec'>SaveLayerRec</a> <a href='#SkCanvas_SaveLayerRec'>with</a> <a href='#SkCanvas_SaveLayerRec'>empty</a> <a href='#SkCanvas_SaveLayerRec_fBackdrop'>fBackdrop</a>
+<a href='#SkCanvas_SaveLayerRec'>SaveLayerRec</a> with empty <a href='#SkCanvas_SaveLayerRec_fBackdrop'>fBackdrop</a>
### Example
@@ -2102,19 +2102,19 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-<a href='#SkCanvas_SaveLayerRec'>SaveLayerRec</a>(<a href='#SkCanvas_SaveLayerRec'>const</a> <a href='SkRect_Reference#SkRect'>SkRect</a>* <a href='SkRect_Reference#SkRect'>bounds</a>, <a href='SkRect_Reference#SkRect'>const</a> <a href='SkPaint_Reference#SkPaint'>SkPaint</a>* <a href='SkPaint_Reference#Paint'>paint</a>, <a href='SkPaint_Reference#Paint'>const</a> <a href='undocumented#SkImageFilter'>SkImageFilter</a>* <a href='undocumented#SkImageFilter'>backdrop</a>,
- <a href='#SkCanvas_SaveLayerFlags'>SaveLayerFlags</a> <a href='#SkCanvas_SaveLayerFlags'>saveLayerFlags</a>)
+<a href='#SkCanvas_SaveLayerRec'>SaveLayerRec</a>(const <a href='SkRect_Reference#SkRect'>SkRect</a>* bounds, const <a href='SkPaint_Reference#SkPaint'>SkPaint</a>* <a href='SkPaint_Reference#Paint'>paint</a>, const <a href='undocumented#SkImageFilter'>SkImageFilter</a>* backdrop,
+ <a href='#SkCanvas_SaveLayerFlags'>SaveLayerFlags</a> saveLayerFlags)
</pre>
-Sets <a href='#SkCanvas_SaveLayerRec_fBounds'>fBounds</a>, <a href='#SkCanvas_SaveLayerRec_fPaint'>fPaint</a>, <a href='#SkCanvas_SaveLayerRec_fBackdrop'>fBackdrop</a>, <a href='#SkCanvas_SaveLayerRec_fBackdrop'>and</a> <a href='#SkCanvas_SaveLayerRec_fSaveLayerFlags'>fSaveLayerFlags</a>.
+Sets <a href='#SkCanvas_SaveLayerRec_fBounds'>fBounds</a>, <a href='#SkCanvas_SaveLayerRec_fPaint'>fPaint</a>, <a href='#SkCanvas_SaveLayerRec_fBackdrop'>fBackdrop</a>, and <a href='#SkCanvas_SaveLayerRec_fSaveLayerFlags'>fSaveLayerFlags</a>.
### Parameters
<table> <tr> <td><a name='SkCanvas_SaveLayerRec_const_SkRect_star_const_SkPaint_star_const_SkImageFilter_star_bounds'><code><strong>bounds</strong></code></a></td>
- <td><a href='SkCanvas_Reference#Layer'>layer</a> <a href='SkCanvas_Reference#Layer'>dimensions</a>; <a href='SkCanvas_Reference#Layer'>may</a> <a href='SkCanvas_Reference#Layer'>be</a> <a href='SkCanvas_Reference#Layer'>nullptr</a></td>
+ <td><a href='SkCanvas_Reference#Layer'>layer</a> dimensions; may be nullptr</td>
</tr>
<tr> <td><a name='SkCanvas_SaveLayerRec_const_SkRect_star_const_SkPaint_star_const_SkImageFilter_star_paint'><code><strong>paint</strong></code></a></td>
- <td>applied to <a href='SkCanvas_Reference#Layer'>layer</a> <a href='SkCanvas_Reference#Layer'>when</a> <a href='SkCanvas_Reference#Layer'>overlaying</a> <a href='SkCanvas_Reference#Layer'>prior</a> <a href='SkCanvas_Reference#Layer'>layer</a>;</td>
+ <td>applied to <a href='SkCanvas_Reference#Layer'>layer</a> when overlaying prior <a href='SkCanvas_Reference#Layer'>layer</a>;</td>
</tr>
</table>
@@ -2123,16 +2123,16 @@
### Parameters
<table> <tr> <td><a name='SkCanvas_SaveLayerRec_const_SkRect_star_const_SkPaint_star_const_SkImageFilter_star_backdrop'><code><strong>backdrop</strong></code></a></td>
- <td>prior <a href='SkCanvas_Reference#Layer'>layer</a> <a href='SkCanvas_Reference#Layer'>copied</a> <a href='SkCanvas_Reference#Layer'>with</a> <a href='undocumented#SkImageFilter'>SkImageFilter</a>; <a href='undocumented#SkImageFilter'>may</a> <a href='undocumented#SkImageFilter'>be</a> <a href='undocumented#SkImageFilter'>nullptr</a></td>
+ <td>prior <a href='SkCanvas_Reference#Layer'>layer</a> copied with <a href='undocumented#SkImageFilter'>SkImageFilter</a>; may be nullptr</td>
</tr>
<tr> <td><a name='SkCanvas_SaveLayerRec_const_SkRect_star_const_SkPaint_star_const_SkImageFilter_star_saveLayerFlags'><code><strong>saveLayerFlags</strong></code></a></td>
- <td><a href='#SkCanvas_SaveLayerRec'>SaveLayerRec</a> <a href='#SkCanvas_SaveLayerRec'>options</a> <a href='#SkCanvas_SaveLayerRec'>to</a> <a href='#SkCanvas_SaveLayerRec'>modify</a> <a href='SkCanvas_Reference#Layer'>layer</a></td>
+ <td><a href='#SkCanvas_SaveLayerRec'>SaveLayerRec</a> options to modify <a href='SkCanvas_Reference#Layer'>layer</a></td>
</tr>
</table>
### Return Value
-<a href='#SkCanvas_SaveLayerRec'>SaveLayerRec</a> <a href='#SkCanvas_SaveLayerRec'>fully</a> <a href='#SkCanvas_SaveLayerRec'>specified</a>
+<a href='#SkCanvas_SaveLayerRec'>SaveLayerRec</a> fully specified
### Example
@@ -2155,49 +2155,49 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-<a href='#SkCanvas_SaveLayerRec'>SaveLayerRec</a>(<a href='#SkCanvas_SaveLayerRec'>const</a> <a href='SkRect_Reference#SkRect'>SkRect</a>* <a href='SkRect_Reference#SkRect'>bounds</a>, <a href='SkRect_Reference#SkRect'>const</a> <a href='SkPaint_Reference#SkPaint'>SkPaint</a>* <a href='SkPaint_Reference#Paint'>paint</a>, <a href='SkPaint_Reference#Paint'>const</a> <a href='undocumented#SkImageFilter'>SkImageFilter</a>* <a href='undocumented#SkImageFilter'>backdrop</a>,
- <a href='undocumented#SkImageFilter'>const</a> <a href='SkImage_Reference#SkImage'>SkImage</a>* <a href='SkImage_Reference#SkImage'>clipMask</a>, <a href='SkImage_Reference#SkImage'>const</a> <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a>* <a href='SkMatrix_Reference#SkMatrix'>clipMatrix</a>, <a href='#SkCanvas_SaveLayerFlags'>SaveLayerFlags</a> <a href='#SkCanvas_SaveLayerFlags'>saveLayerFlags</a>)
+<a href='#SkCanvas_SaveLayerRec'>SaveLayerRec</a>(const <a href='SkRect_Reference#SkRect'>SkRect</a>* bounds, const <a href='SkPaint_Reference#SkPaint'>SkPaint</a>* <a href='SkPaint_Reference#Paint'>paint</a>, const <a href='undocumented#SkImageFilter'>SkImageFilter</a>* backdrop,
+ const <a href='SkImage_Reference#SkImage'>SkImage</a>* clipMask, const <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a>* clipMatrix, <a href='#SkCanvas_SaveLayerFlags'>SaveLayerFlags</a> saveLayerFlags)
</pre>
Experimental. Not ready for general use.
-Sets <a href='#SkCanvas_SaveLayerRec_fBounds'>fBounds</a>, <a href='#SkCanvas_SaveLayerRec_fPaint'>fPaint</a>, <a href='#SkCanvas_SaveLayerRec_fBackdrop'>fBackdrop</a>, <a href='#SkCanvas_SaveLayerRec_fClipMask'>fClipMask</a>, <a href='#SkCanvas_SaveLayerRec_fClipMatrix'>fClipMatrix</a>, <a href='#SkCanvas_SaveLayerRec_fClipMatrix'>and</a> <a href='#SkCanvas_SaveLayerRec_fSaveLayerFlags'>fSaveLayerFlags</a>.
-<a href='#SkCanvas_SaveLayerRec_const_SkRect_star_const_SkPaint_star_const_SkImageFilter_star_const_SkImage_star_const_SkMatrix_star_clipMatrix'>clipMatrix</a> <a href='#SkCanvas_SaveLayerRec_const_SkRect_star_const_SkPaint_star_const_SkImageFilter_star_const_SkImage_star_const_SkMatrix_star_clipMatrix'>uses</a> <a href='#Color_Alpha'>Color_Alpha</a> <a href='#Color_Alpha'>channel</a> <a href='#Color_Alpha'>of</a> <a href='SkImage_Reference#Image'>image</a>, <a href='SkImage_Reference#Image'>transformed</a> <a href='SkImage_Reference#Image'>by</a> <a href='#SkCanvas_SaveLayerRec_const_SkRect_star_const_SkPaint_star_const_SkImageFilter_star_const_SkImage_star_const_SkMatrix_star_clipMatrix'>clipMatrix</a>, <a href='#SkCanvas_SaveLayerRec_const_SkRect_star_const_SkPaint_star_const_SkImageFilter_star_const_SkImage_star_const_SkMatrix_star_clipMatrix'>to</a> <a href='#SkCanvas_SaveLayerRec_const_SkRect_star_const_SkPaint_star_const_SkImageFilter_star_const_SkImage_star_const_SkMatrix_star_clipMatrix'>clip</a>
-<a href='SkCanvas_Reference#Layer'>Layer</a> <a href='SkCanvas_Reference#Layer'>when</a> <a href='SkCanvas_Reference#Layer'>drawn</a> <a href='SkCanvas_Reference#Layer'>to</a> <a href='SkCanvas_Reference#Canvas'>Canvas</a>.
+Sets <a href='#SkCanvas_SaveLayerRec_fBounds'>fBounds</a>, <a href='#SkCanvas_SaveLayerRec_fPaint'>fPaint</a>, <a href='#SkCanvas_SaveLayerRec_fBackdrop'>fBackdrop</a>, <a href='#SkCanvas_SaveLayerRec_fClipMask'>fClipMask</a>, <a href='#SkCanvas_SaveLayerRec_fClipMatrix'>fClipMatrix</a>, and <a href='#SkCanvas_SaveLayerRec_fSaveLayerFlags'>fSaveLayerFlags</a>.
+<a href='#SkCanvas_SaveLayerRec_const_SkRect_star_const_SkPaint_star_const_SkImageFilter_star_const_SkImage_star_const_SkMatrix_star_clipMatrix'>clipMatrix</a> uses <a href='#Color_Alpha'>Color_Alpha</a> channel of <a href='SkImage_Reference#Image'>image</a>, transformed by <a href='#SkCanvas_SaveLayerRec_const_SkRect_star_const_SkPaint_star_const_SkImageFilter_star_const_SkImage_star_const_SkMatrix_star_clipMatrix'>clipMatrix</a>, to clip
+<a href='SkCanvas_Reference#Layer'>Layer</a> when drawn to <a href='SkCanvas_Reference#Canvas'>Canvas</a>.
-<a href='SkCanvas_Reference#Canvas'>Implementation</a> <a href='SkCanvas_Reference#Canvas'>is</a> <a href='SkCanvas_Reference#Canvas'>not</a> <a href='SkCanvas_Reference#Canvas'>complete</a>; <a href='SkCanvas_Reference#Canvas'>has</a> <a href='SkCanvas_Reference#Canvas'>no</a> <a href='SkCanvas_Reference#Canvas'>effect</a> <a href='SkCanvas_Reference#Canvas'>if</a> <a href='undocumented#Device'>Device</a> <a href='undocumented#Device'>is</a> <a href='undocumented#Device'>GPU-backed</a>.
+Implementation is not complete; has no effect if <a href='undocumented#Device'>Device</a> is GPU-backed.
### Parameters
<table> <tr> <td><a name='SkCanvas_SaveLayerRec_const_SkRect_star_const_SkPaint_star_const_SkImageFilter_star_const_SkImage_star_const_SkMatrix_star_bounds'><code><strong>bounds</strong></code></a></td>
- <td><a href='SkCanvas_Reference#Layer'>Layer</a> <a href='SkCanvas_Reference#Layer'>dimensions</a>; <a href='SkCanvas_Reference#Layer'>may</a> <a href='SkCanvas_Reference#Layer'>be</a> <a href='SkCanvas_Reference#Layer'>nullptr</a></td>
+ <td><a href='SkCanvas_Reference#Layer'>Layer</a> dimensions; may be nullptr</td>
</tr>
<tr> <td><a name='SkCanvas_SaveLayerRec_const_SkRect_star_const_SkPaint_star_const_SkImageFilter_star_const_SkImage_star_const_SkMatrix_star_paint'><code><strong>paint</strong></code></a></td>
- <td>graphics state applied to <a href='SkCanvas_Reference#Layer'>Layer</a> <a href='SkCanvas_Reference#Layer'>when</a> <a href='SkCanvas_Reference#Layer'>overlaying</a> <a href='SkCanvas_Reference#Layer'>prior</a>
-<a href='SkCanvas_Reference#Layer'>Layer</a>; <a href='SkCanvas_Reference#Layer'>may</a> <a href='SkCanvas_Reference#Layer'>be</a> <a href='SkCanvas_Reference#Layer'>nullptr</a>
+ <td>graphics state applied to <a href='SkCanvas_Reference#Layer'>Layer</a> when overlaying prior
+<a href='SkCanvas_Reference#Layer'>Layer</a>; may be nullptr
</td>
</tr>
<tr> <td><a name='SkCanvas_SaveLayerRec_const_SkRect_star_const_SkPaint_star_const_SkImageFilter_star_const_SkImage_star_const_SkMatrix_star_backdrop'><code><strong>backdrop</strong></code></a></td>
- <td>prior <a href='SkCanvas_Reference#Layer'>Layer</a> <a href='SkCanvas_Reference#Layer'>copied</a> <a href='SkCanvas_Reference#Layer'>with</a> <a href='#Image_Filter'>Image_Filter</a>;
-<a href='#Image_Filter'>may</a> <a href='#Image_Filter'>be</a> <a href='#Image_Filter'>nullptr</a>
+ <td>prior <a href='SkCanvas_Reference#Layer'>Layer</a> copied with <a href='#Image_Filter'>Image_Filter</a>;
+may be nullptr
</td>
</tr>
<tr> <td><a name='SkCanvas_SaveLayerRec_const_SkRect_star_const_SkPaint_star_const_SkImageFilter_star_const_SkImage_star_const_SkMatrix_star_clipMask'><code><strong>clipMask</strong></code></a></td>
- <td>clip applied to <a href='SkCanvas_Reference#Layer'>Layer</a>; <a href='SkCanvas_Reference#Layer'>may</a> <a href='SkCanvas_Reference#Layer'>be</a> <a href='SkCanvas_Reference#Layer'>nullptr</a></td>
+ <td>clip applied to <a href='SkCanvas_Reference#Layer'>Layer</a>; may be nullptr</td>
</tr>
<tr> <td><a name='SkCanvas_SaveLayerRec_const_SkRect_star_const_SkPaint_star_const_SkImageFilter_star_const_SkImage_star_const_SkMatrix_star_clipMatrix'><code><strong>clipMatrix</strong></code></a></td>
- <td><a href='SkMatrix_Reference#Matrix'>matrix</a> <a href='SkMatrix_Reference#Matrix'>applied</a> <a href='SkMatrix_Reference#Matrix'>to</a> <a href='#SkCanvas_SaveLayerRec_const_SkRect_star_const_SkPaint_star_const_SkImageFilter_star_const_SkImage_star_const_SkMatrix_star_clipMask'>clipMask</a>; <a href='#SkCanvas_SaveLayerRec_const_SkRect_star_const_SkPaint_star_const_SkImageFilter_star_const_SkImage_star_const_SkMatrix_star_clipMask'>may</a> <a href='#SkCanvas_SaveLayerRec_const_SkRect_star_const_SkPaint_star_const_SkImageFilter_star_const_SkImage_star_const_SkMatrix_star_clipMask'>be</a> <a href='#SkCanvas_SaveLayerRec_const_SkRect_star_const_SkPaint_star_const_SkImageFilter_star_const_SkImage_star_const_SkMatrix_star_clipMask'>nullptr</a> <a href='#SkCanvas_SaveLayerRec_const_SkRect_star_const_SkPaint_star_const_SkImageFilter_star_const_SkImage_star_const_SkMatrix_star_clipMask'>to</a> <a href='#SkCanvas_SaveLayerRec_const_SkRect_star_const_SkPaint_star_const_SkImageFilter_star_const_SkImage_star_const_SkMatrix_star_clipMask'>use</a>
-<a href='#SkCanvas_SaveLayerRec_const_SkRect_star_const_SkPaint_star_const_SkImageFilter_star_const_SkImage_star_const_SkMatrix_star_clipMask'>identity</a> <a href='SkMatrix_Reference#Matrix'>matrix </a>
+ <td><a href='SkMatrix_Reference#Matrix'>matrix</a> applied to <a href='#SkCanvas_SaveLayerRec_const_SkRect_star_const_SkPaint_star_const_SkImageFilter_star_const_SkImage_star_const_SkMatrix_star_clipMask'>clipMask</a>; may be nullptr to use
+identity <a href='SkMatrix_Reference#Matrix'>matrix </a>
</td>
</tr>
<tr> <td><a name='SkCanvas_SaveLayerRec_const_SkRect_star_const_SkPaint_star_const_SkImageFilter_star_const_SkImage_star_const_SkMatrix_star_saveLayerFlags'><code><strong>saveLayerFlags</strong></code></a></td>
- <td><a href='#SkCanvas_SaveLayerRec'>SaveLayerRec</a> <a href='#SkCanvas_SaveLayerRec'>options</a> <a href='#SkCanvas_SaveLayerRec'>to</a> <a href='#SkCanvas_SaveLayerRec'>modify</a> <a href='SkCanvas_Reference#Layer'>Layer</a></td>
+ <td><a href='#SkCanvas_SaveLayerRec'>SaveLayerRec</a> options to modify <a href='SkCanvas_Reference#Layer'>Layer</a></td>
</tr>
</table>
### Return Value
-<a href='#SkCanvas_SaveLayerRec'>SaveLayerRec</a> <a href='#SkCanvas_SaveLayerRec'>fully</a> <a href='#SkCanvas_SaveLayerRec'>specified</a>
+<a href='#SkCanvas_SaveLayerRec'>SaveLayerRec</a> fully specified
### See Also
@@ -2208,26 +2208,26 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-int <a href='#SkCanvas_saveLayer'>saveLayer</a>(<a href='#SkCanvas_saveLayer'>const</a> <a href='#SkCanvas_SaveLayerRec'>SaveLayerRec</a>& <a href='#SkCanvas_SaveLayerRec'>layerRec</a>)
+int <a href='#SkCanvas_saveLayer'>saveLayer</a>(const <a href='#SkCanvas_SaveLayerRec'>SaveLayerRec</a>& layerRec)
</pre>
-Saves <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> <a href='SkMatrix_Reference#SkMatrix'>and</a> <a href='SkMatrix_Reference#SkMatrix'>clip</a>, <a href='SkMatrix_Reference#SkMatrix'>and</a> <a href='SkMatrix_Reference#SkMatrix'>allocates</a> <a href='SkBitmap_Reference#SkBitmap'>SkBitmap</a> <a href='SkBitmap_Reference#SkBitmap'>for</a> <a href='SkBitmap_Reference#SkBitmap'>subsequent</a> <a href='SkBitmap_Reference#SkBitmap'>drawing</a>.
+Saves <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> and clip, and allocates <a href='SkBitmap_Reference#SkBitmap'>SkBitmap</a> for subsequent drawing.
-Calling <a href='#SkCanvas_restore'>restore()</a> <a href='#SkCanvas_restore'>discards</a> <a href='#SkCanvas_restore'>changes</a> <a href='#SkCanvas_restore'>to</a> <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> <a href='SkMatrix_Reference#SkMatrix'>and</a> <a href='SkMatrix_Reference#SkMatrix'>clip</a>,
-and blends <a href='SkBitmap_Reference#SkBitmap'>SkBitmap</a> <a href='SkBitmap_Reference#SkBitmap'>with</a> <a href='SkColor_Reference#Alpha'>alpha</a> <a href='SkColor_Reference#Alpha'>opacity</a> <a href='SkColor_Reference#Alpha'>onto</a> <a href='SkColor_Reference#Alpha'>the</a> <a href='SkColor_Reference#Alpha'>prior</a> <a href='SkCanvas_Reference#Layer'>layer</a>.
+Calling <a href='#SkCanvas_restore'>restore()</a> discards changes to <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> and clip,
+and blends <a href='SkBitmap_Reference#SkBitmap'>SkBitmap</a> with <a href='SkColor_Reference#Alpha'>alpha</a> opacity onto the prior <a href='SkCanvas_Reference#Layer'>layer</a>.
-<a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> <a href='SkMatrix_Reference#SkMatrix'>may</a> <a href='SkMatrix_Reference#SkMatrix'>be</a> <a href='SkMatrix_Reference#SkMatrix'>changed</a> <a href='SkMatrix_Reference#SkMatrix'>by</a> <a href='#SkCanvas_translate'>translate()</a>, <a href='#SkCanvas_scale'>scale()</a>, <a href='#SkCanvas_rotate'>rotate()</a>, <a href='#SkCanvas_skew'>skew()</a>, <a href='#SkCanvas_concat'>concat()</a>,
-<a href='#SkCanvas_setMatrix'>setMatrix</a>(), <a href='#SkCanvas_setMatrix'>and</a> <a href='#SkCanvas_resetMatrix'>resetMatrix</a>(). <a href='#SkCanvas_resetMatrix'>Clip</a> <a href='#SkCanvas_resetMatrix'>may</a> <a href='#SkCanvas_resetMatrix'>be</a> <a href='#SkCanvas_resetMatrix'>changed</a> <a href='#SkCanvas_resetMatrix'>by</a> <a href='#SkCanvas_clipRect'>clipRect</a>(), <a href='#SkCanvas_clipRRect'>clipRRect</a>(),
+<a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> may be changed by <a href='#SkCanvas_translate'>translate()</a>, <a href='#SkCanvas_scale'>scale()</a>, <a href='#SkCanvas_rotate'>rotate()</a>, <a href='#SkCanvas_skew'>skew()</a>, <a href='#SkCanvas_concat'>concat()</a>,
+<a href='#SkCanvas_setMatrix'>setMatrix</a>(), and <a href='#SkCanvas_resetMatrix'>resetMatrix</a>(). Clip may be changed by <a href='#SkCanvas_clipRect'>clipRect</a>(), <a href='#SkCanvas_clipRRect'>clipRRect</a>(),
<a href='#SkCanvas_clipPath'>clipPath</a>(), <a href='#SkCanvas_clipRegion'>clipRegion</a>().
-<a href='#SkCanvas_SaveLayerRec'>SaveLayerRec</a> <a href='#SkCanvas_SaveLayerRec'>contains</a> <a href='#SkCanvas_SaveLayerRec'>the</a> <a href='#SkCanvas_SaveLayerRec'>state</a> <a href='#SkCanvas_SaveLayerRec'>used</a> <a href='#SkCanvas_SaveLayerRec'>to</a> <a href='#SkCanvas_SaveLayerRec'>create</a> <a href='#SkCanvas_SaveLayerRec'>the</a> <a href='SkCanvas_Reference#Layer'>layer</a>.
+<a href='#SkCanvas_SaveLayerRec'>SaveLayerRec</a> contains the state used to create the <a href='SkCanvas_Reference#Layer'>layer</a>.
-Call <a href='#SkCanvas_restoreToCount'>restoreToCount</a>() <a href='#SkCanvas_restoreToCount'>with</a> <a href='#SkCanvas_restoreToCount'>returned</a> <a href='#SkCanvas_restoreToCount'>value</a> <a href='#SkCanvas_restoreToCount'>to</a> <a href='#SkCanvas_restoreToCount'>restore</a> <a href='#SkCanvas_restoreToCount'>this</a> <a href='#SkCanvas_restoreToCount'>and</a> <a href='#SkCanvas_restoreToCount'>subsequent</a> <a href='#SkCanvas_restoreToCount'>saves</a>.
+Call <a href='#SkCanvas_restoreToCount'>restoreToCount</a>() with returned value to restore this and subsequent saves.
### Parameters
<table> <tr> <td><a name='SkCanvas_saveLayer_3_layerRec'><code><strong>layerRec</strong></code></a></td>
- <td><a href='SkCanvas_Reference#Layer'>layer</a> <a href='SkCanvas_Reference#Layer'>state</a></td>
+ <td><a href='SkCanvas_Reference#Layer'>layer</a> state</td>
</tr>
</table>
@@ -2237,10 +2237,10 @@
### Example
-<div><fiddle-embed name="7d3751e82d1b6ec328ffa3d6f48ca831"><div>The example draws an <a href='SkImage_Reference#Image'>image</a>, <a href='SkImage_Reference#Image'>and</a> <a href='SkImage_Reference#Image'>saves</a> <a href='SkImage_Reference#Image'>it</a> <a href='SkImage_Reference#Image'>into</a> <a href='SkImage_Reference#Image'>a</a> <a href='SkCanvas_Reference#Layer'>Layer</a> <a href='SkCanvas_Reference#Layer'>with</a> <a href='#SkCanvas_kInitWithPrevious_SaveLayerFlag'>kInitWithPrevious_SaveLayerFlag</a>.
-<a href='#SkCanvas_kInitWithPrevious_SaveLayerFlag'>Next</a> <a href='#SkCanvas_kInitWithPrevious_SaveLayerFlag'>it</a> <a href='#SkCanvas_kInitWithPrevious_SaveLayerFlag'>punches</a> <a href='#SkCanvas_kInitWithPrevious_SaveLayerFlag'>a</a> <a href='#SkCanvas_kInitWithPrevious_SaveLayerFlag'>hole</a> <a href='#SkCanvas_kInitWithPrevious_SaveLayerFlag'>in</a> <a href='SkCanvas_Reference#Layer'>Layer</a> <a href='SkCanvas_Reference#Layer'>and</a> <a href='SkCanvas_Reference#Layer'>restore</a> <a href='SkCanvas_Reference#Layer'>with</a> <a href='SkBlendMode_Reference#SkBlendMode'>SkBlendMode</a>::<a href='#SkBlendMode_kPlus'>kPlus</a>.
-<a href='#SkBlendMode_kPlus'>Where</a> <a href='SkCanvas_Reference#Layer'>Layer</a> <a href='SkCanvas_Reference#Layer'>was</a> <a href='SkCanvas_Reference#Layer'>cleared</a>, <a href='SkCanvas_Reference#Layer'>the</a> <a href='SkCanvas_Reference#Layer'>original</a> <a href='SkImage_Reference#Image'>image</a> <a href='SkImage_Reference#Image'>will</a> <a href='SkImage_Reference#Image'>draw</a> <a href='SkImage_Reference#Image'>unchanged</a>.
-<a href='SkImage_Reference#Image'>Outside</a> <a href='SkImage_Reference#Image'>of</a> <a href='SkImage_Reference#Image'>the</a> <a href='undocumented#Circle'>circle</a> <a href='undocumented#Circle'>the</a> <a href='undocumented#Circle'>mandrill</a> <a href='undocumented#Circle'>is</a> <a href='undocumented#Circle'>brightened</a>.
+<div><fiddle-embed name="7d3751e82d1b6ec328ffa3d6f48ca831"><div>The example draws an <a href='SkImage_Reference#Image'>image</a>, and saves it into a <a href='SkCanvas_Reference#Layer'>Layer</a> with <a href='#SkCanvas_kInitWithPrevious_SaveLayerFlag'>kInitWithPrevious_SaveLayerFlag</a>.
+Next it punches a hole in <a href='SkCanvas_Reference#Layer'>Layer</a> and restore with <a href='SkBlendMode_Reference#SkBlendMode'>SkBlendMode</a>::<a href='#SkBlendMode_kPlus'>kPlus</a>.
+Where <a href='SkCanvas_Reference#Layer'>Layer</a> was cleared, the original <a href='SkImage_Reference#Image'>image</a> will draw unchanged.
+Outside of the <a href='undocumented#Circle'>circle</a> the mandrill is brightened.
</div></fiddle-embed></div>
### See Also
@@ -2254,15 +2254,15 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-void translate(<a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>dx</a>, <a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>dy</a>)
+void translate(<a href='undocumented#SkScalar'>SkScalar</a> dx, <a href='undocumented#SkScalar'>SkScalar</a> dy)
</pre>
-Translates <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> <a href='SkMatrix_Reference#SkMatrix'>by</a> <a href='#SkCanvas_translate_dx'>dx</a> <a href='#SkCanvas_translate_dx'>along</a> <a href='#SkCanvas_translate_dx'>the</a> <a href='#SkCanvas_translate_dx'>x-axis</a> <a href='#SkCanvas_translate_dx'>and</a> <a href='#SkCanvas_translate_dy'>dy</a> <a href='#SkCanvas_translate_dy'>along</a> <a href='#SkCanvas_translate_dy'>the</a> <a href='#SkCanvas_translate_dy'>y-axis</a>.
+Translates <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> by <a href='#SkCanvas_translate_dx'>dx</a> along the x-axis and <a href='#SkCanvas_translate_dy'>dy</a> along the y-axis.
-Mathematically, replaces <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> <a href='SkMatrix_Reference#SkMatrix'>with</a> <a href='SkMatrix_Reference#SkMatrix'>a</a> <a href='SkMatrix_Reference#SkMatrix'>translation</a> <a href='SkMatrix_Reference#Matrix'>matrix</a>
-<a href='undocumented#Premultiply'>premultiplied</a> <a href='undocumented#Premultiply'>with</a> <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a>.
+Mathematically, replaces <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> with a translation <a href='SkMatrix_Reference#Matrix'>matrix</a>
+<a href='undocumented#Premultiply'>premultiplied</a> with <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a>.
-This has the effect of moving the drawing by (<a href='#SkCanvas_translate_dx'>dx</a>, <a href='#SkCanvas_translate_dy'>dy</a>) <a href='#SkCanvas_translate_dy'>before</a> <a href='#SkCanvas_translate_dy'>transforming</a>
+This has the effect of moving the drawing by (<a href='#SkCanvas_translate_dx'>dx</a>, <a href='#SkCanvas_translate_dy'>dy</a>) before transforming
the result with <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a>.
### Parameters
@@ -2277,13 +2277,13 @@
### Example
-<div><fiddle-embed name="eb93d5fa66a5f7a10f4f9210494d7222"><div><a href='#SkCanvas_scale'>scale()</a> <a href='#SkCanvas_scale'>followed</a> <a href='#SkCanvas_scale'>by</a> <a href='#SkCanvas_translate'>translate()</a> <a href='#SkCanvas_translate'>produces</a> <a href='#SkCanvas_translate'>different</a> <a href='#SkCanvas_translate'>results</a> <a href='#SkCanvas_translate'>from</a> <a href='#SkCanvas_translate'>translate()</a> <a href='#SkCanvas_translate'>followed</a>
-<a href='#SkCanvas_translate'>by</a> <a href='#SkCanvas_scale'>scale()</a>.
+<div><fiddle-embed name="eb93d5fa66a5f7a10f4f9210494d7222"><div><a href='#SkCanvas_scale'>scale()</a> followed by <a href='#SkCanvas_translate'>translate()</a> produces different results from <a href='#SkCanvas_translate'>translate()</a> followed
+by <a href='#SkCanvas_scale'>scale()</a>.
-<a href='#SkCanvas_scale'>The</a> <a href='#SkCanvas_scale'>blue</a> <a href='#SkCanvas_scale'>stroke</a> <a href='#SkCanvas_scale'>follows</a> <a href='#SkCanvas_scale'>translate</a> <a href='#SkCanvas_scale'>of</a> (50, 50); <a href='#SkCanvas_scale'>a</a> <a href='#SkCanvas_scale'>black</a>
-<a href='#SkCanvas_scale'>fill</a> <a href='#SkCanvas_scale'>follows</a> <a href='#SkCanvas_scale'>scale</a> <a href='#SkCanvas_scale'>of</a> (2, 1/2.<a href='#SkCanvas_scale'>f</a>). <a href='#SkCanvas_scale'>After</a> <a href='#SkCanvas_scale'>restoring</a> <a href='#SkCanvas_scale'>the</a> <a href='#SkCanvas_scale'>clip</a>, <a href='#SkCanvas_scale'>which</a> <a href='#SkCanvas_scale'>resets</a>
-<a href='SkMatrix_Reference#Matrix'>Matrix</a>, <a href='SkMatrix_Reference#Matrix'>a</a> <a href='SkMatrix_Reference#Matrix'>red</a> <a href='SkMatrix_Reference#Matrix'>frame</a> <a href='SkMatrix_Reference#Matrix'>follows</a> <a href='SkMatrix_Reference#Matrix'>the</a> <a href='SkMatrix_Reference#Matrix'>same</a> <a href='SkMatrix_Reference#Matrix'>scale</a> <a href='SkMatrix_Reference#Matrix'>of</a> (2, 1/2.<a href='SkMatrix_Reference#Matrix'>f</a>); <a href='SkMatrix_Reference#Matrix'>a</a> <a href='SkMatrix_Reference#Matrix'>gray</a> <a href='SkMatrix_Reference#Matrix'>fill</a>
-<a href='SkMatrix_Reference#Matrix'>follows</a> <a href='SkMatrix_Reference#Matrix'>translate</a> <a href='SkMatrix_Reference#Matrix'>of</a> (50, 50).
+The blue stroke follows translate of (50, 50); a black
+fill follows scale of (2, 1/2.f). After restoring the clip, which resets
+<a href='SkMatrix_Reference#Matrix'>Matrix</a>, a red frame follows the same scale of (2, 1/2.f); a gray fill
+follows translate of (50, 50).
</div></fiddle-embed></div>
### See Also
@@ -2295,15 +2295,15 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-void scale(<a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>sx</a>, <a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>sy</a>)
+void scale(<a href='undocumented#SkScalar'>SkScalar</a> sx, <a href='undocumented#SkScalar'>SkScalar</a> sy)
</pre>
-Scales <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> <a href='SkMatrix_Reference#SkMatrix'>by</a> <a href='#SkCanvas_scale_sx'>sx</a> <a href='#SkCanvas_scale_sx'>on</a> <a href='#SkCanvas_scale_sx'>the</a> <a href='#SkCanvas_scale_sx'>x-axis</a> <a href='#SkCanvas_scale_sx'>and</a> <a href='#SkCanvas_scale_sy'>sy</a> <a href='#SkCanvas_scale_sy'>on</a> <a href='#SkCanvas_scale_sy'>the</a> <a href='#SkCanvas_scale_sy'>y-axis</a>.
+Scales <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> by <a href='#SkCanvas_scale_sx'>sx</a> on the x-axis and <a href='#SkCanvas_scale_sy'>sy</a> on the y-axis.
-Mathematically, replaces <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> <a href='SkMatrix_Reference#SkMatrix'>with</a> <a href='SkMatrix_Reference#SkMatrix'>a</a> <a href='SkMatrix_Reference#SkMatrix'>scale</a> <a href='SkMatrix_Reference#Matrix'>matrix</a>
-<a href='undocumented#Premultiply'>premultiplied</a> <a href='undocumented#Premultiply'>with</a> <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a>.
+Mathematically, replaces <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> with a scale <a href='SkMatrix_Reference#Matrix'>matrix</a>
+<a href='undocumented#Premultiply'>premultiplied</a> with <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a>.
-This has the effect of scaling the drawing by (<a href='#SkCanvas_scale_sx'>sx</a>, <a href='#SkCanvas_scale_sy'>sy</a>) <a href='#SkCanvas_scale_sy'>before</a> <a href='#SkCanvas_scale_sy'>transforming</a>
+This has the effect of scaling the drawing by (<a href='#SkCanvas_scale_sx'>sx</a>, <a href='#SkCanvas_scale_sy'>sy</a>) before transforming
the result with <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a>.
### Parameters
@@ -2329,15 +2329,15 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-void rotate(<a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>degrees</a>)
+void rotate(<a href='undocumented#SkScalar'>SkScalar</a> degrees)
</pre>
-Rotates <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> <a href='SkMatrix_Reference#SkMatrix'>by</a> <a href='#SkCanvas_rotate_degrees'>degrees</a>. <a href='#SkCanvas_rotate_degrees'>Positive</a> <a href='#SkCanvas_rotate_degrees'>degrees</a> <a href='#SkCanvas_rotate_degrees'>rotates</a> <a href='#SkCanvas_rotate_degrees'>clockwise</a>.
+Rotates <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> by <a href='#SkCanvas_rotate_degrees'>degrees</a>. Positive <a href='#SkCanvas_rotate_degrees'>degrees</a> rotates clockwise.
-Mathematically, replaces <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> <a href='SkMatrix_Reference#SkMatrix'>with</a> <a href='SkMatrix_Reference#SkMatrix'>a</a> <a href='SkMatrix_Reference#SkMatrix'>rotation</a> <a href='SkMatrix_Reference#Matrix'>matrix</a>
-<a href='undocumented#Premultiply'>premultiplied</a> <a href='undocumented#Premultiply'>with</a> <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a>.
+Mathematically, replaces <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> with a rotation <a href='SkMatrix_Reference#Matrix'>matrix</a>
+<a href='undocumented#Premultiply'>premultiplied</a> with <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a>.
-This has the effect of rotating the drawing by <a href='#SkCanvas_rotate_degrees'>degrees</a> <a href='#SkCanvas_rotate_degrees'>before</a> <a href='#SkCanvas_rotate_degrees'>transforming</a>
+This has the effect of rotating the drawing by <a href='#SkCanvas_rotate_degrees'>degrees</a> before transforming
the result with <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a>.
### Parameters
@@ -2349,8 +2349,8 @@
### Example
-<div><fiddle-embed name="963789ac8498d4e505748ab3b15cdaa5"><div>Draw clock hands at time 5:10. The hour hand and minute hand <a href='SkPoint_Reference#Point'>point</a> <a href='SkPoint_Reference#Point'>up</a> <a href='SkPoint_Reference#Point'>and</a>
-<a href='SkPoint_Reference#Point'>are</a> <a href='SkPoint_Reference#Point'>rotated</a> <a href='SkPoint_Reference#Point'>clockwise</a>.
+<div><fiddle-embed name="963789ac8498d4e505748ab3b15cdaa5"><div>Draw clock hands at time 5:10. The hour hand and minute hand <a href='SkPoint_Reference#Point'>point</a> up and
+are rotated clockwise.
</div></fiddle-embed></div>
### See Also
@@ -2362,17 +2362,17 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-void rotate(<a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>degrees</a>, <a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>px</a>, <a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>py</a>)
+void rotate(<a href='undocumented#SkScalar'>SkScalar</a> degrees, <a href='undocumented#SkScalar'>SkScalar</a> px, <a href='undocumented#SkScalar'>SkScalar</a> py)
</pre>
-Rotates <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> <a href='SkMatrix_Reference#SkMatrix'>by</a> <a href='#SkCanvas_rotate_2_degrees'>degrees</a> <a href='#SkCanvas_rotate_2_degrees'>about</a> <a href='#SkCanvas_rotate_2_degrees'>a</a> <a href='SkPoint_Reference#Point'>point</a> <a href='SkPoint_Reference#Point'>at</a> (<a href='#SkCanvas_rotate_2_px'>px</a>, <a href='#SkCanvas_rotate_2_py'>py</a>). <a href='#SkCanvas_rotate_2_py'>Positive</a> <a href='#SkCanvas_rotate_2_degrees'>degrees</a> <a href='#SkCanvas_rotate_2_degrees'>rotates</a>
+Rotates <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> by <a href='#SkCanvas_rotate_2_degrees'>degrees</a> about a <a href='SkPoint_Reference#Point'>point</a> at (<a href='#SkCanvas_rotate_2_px'>px</a>, <a href='#SkCanvas_rotate_2_py'>py</a>). Positive <a href='#SkCanvas_rotate_2_degrees'>degrees</a> rotates
clockwise.
-Mathematically, constructs a rotation <a href='SkMatrix_Reference#Matrix'>matrix</a>; <a href='undocumented#Premultiply'>premultiplies</a> <a href='undocumented#Premultiply'>the</a> <a href='undocumented#Premultiply'>rotation</a> <a href='SkMatrix_Reference#Matrix'>matrix</a> <a href='SkMatrix_Reference#Matrix'>by</a>
-a translation <a href='SkMatrix_Reference#Matrix'>matrix</a>; <a href='SkMatrix_Reference#Matrix'>then</a> <a href='SkMatrix_Reference#Matrix'>replaces</a> <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> <a href='SkMatrix_Reference#SkMatrix'>with</a> <a href='SkMatrix_Reference#SkMatrix'>the</a> <a href='SkMatrix_Reference#SkMatrix'>resulting</a> <a href='SkMatrix_Reference#Matrix'>matrix</a>
-<a href='undocumented#Premultiply'>premultiplied</a> <a href='undocumented#Premultiply'>with</a> <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a>.
+Mathematically, constructs a rotation <a href='SkMatrix_Reference#Matrix'>matrix</a>; <a href='undocumented#Premultiply'>premultiplies</a> the rotation <a href='SkMatrix_Reference#Matrix'>matrix</a> by
+a translation <a href='SkMatrix_Reference#Matrix'>matrix</a>; then replaces <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> with the resulting <a href='SkMatrix_Reference#Matrix'>matrix</a>
+<a href='undocumented#Premultiply'>premultiplied</a> with <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a>.
-This has the effect of rotating the drawing about a given <a href='SkPoint_Reference#Point'>point</a> <a href='SkPoint_Reference#Point'>before</a>
+This has the effect of rotating the drawing about a given <a href='SkPoint_Reference#Point'>point</a> before
transforming the result with <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a>.
### Parameters
@@ -2381,10 +2381,10 @@
<td>amount to rotate, in <a href='#SkCanvas_rotate_2_degrees'>degrees</a></td>
</tr>
<tr> <td><a name='SkCanvas_rotate_2_px'><code><strong>px</strong></code></a></td>
- <td>x-axis value of the <a href='SkPoint_Reference#Point'>point</a> <a href='SkPoint_Reference#Point'>to</a> <a href='SkPoint_Reference#Point'>rotate</a> <a href='SkPoint_Reference#Point'>about</a></td>
+ <td>x-axis value of the <a href='SkPoint_Reference#Point'>point</a> to rotate about</td>
</tr>
<tr> <td><a name='SkCanvas_rotate_2_py'><code><strong>py</strong></code></a></td>
- <td>y-axis value of the <a href='SkPoint_Reference#Point'>point</a> <a href='SkPoint_Reference#Point'>to</a> <a href='SkPoint_Reference#Point'>rotate</a> <a href='SkPoint_Reference#Point'>about</a></td>
+ <td>y-axis value of the <a href='SkPoint_Reference#Point'>point</a> to rotate about</td>
</tr>
</table>
@@ -2401,16 +2401,16 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-void skew(<a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>sx</a>, <a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>sy</a>)
+void skew(<a href='undocumented#SkScalar'>SkScalar</a> sx, <a href='undocumented#SkScalar'>SkScalar</a> sy)
</pre>
-Skews <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> <a href='SkMatrix_Reference#SkMatrix'>by</a> <a href='#SkCanvas_skew_sx'>sx</a> <a href='#SkCanvas_skew_sx'>on</a> <a href='#SkCanvas_skew_sx'>the</a> <a href='#SkCanvas_skew_sx'>x-axis</a> <a href='#SkCanvas_skew_sx'>and</a> <a href='#SkCanvas_skew_sy'>sy</a> <a href='#SkCanvas_skew_sy'>on</a> <a href='#SkCanvas_skew_sy'>the</a> <a href='#SkCanvas_skew_sy'>y-axis</a>. <a href='#SkCanvas_skew_sy'>A</a> <a href='#SkCanvas_skew_sy'>positive</a> <a href='#SkCanvas_skew_sy'>value</a> <a href='#SkCanvas_skew_sy'>of</a> <a href='#SkCanvas_skew_sx'>sx</a>
-skews the drawing right as y-axis values increase; a positive value of <a href='#SkCanvas_skew_sy'>sy</a> <a href='#SkCanvas_skew_sy'>skews</a>
+Skews <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> by <a href='#SkCanvas_skew_sx'>sx</a> on the x-axis and <a href='#SkCanvas_skew_sy'>sy</a> on the y-axis. A positive value of <a href='#SkCanvas_skew_sx'>sx</a>
+skews the drawing right as y-axis values increase; a positive value of <a href='#SkCanvas_skew_sy'>sy</a> skews
the drawing down as x-axis values increase.
-Mathematically, replaces <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> <a href='SkMatrix_Reference#SkMatrix'>with</a> <a href='SkMatrix_Reference#SkMatrix'>a</a> <a href='SkMatrix_Reference#SkMatrix'>skew</a> <a href='SkMatrix_Reference#Matrix'>matrix</a> <a href='undocumented#Premultiply'>premultiplied</a> <a href='undocumented#Premultiply'>with</a> <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a>.
+Mathematically, replaces <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> with a skew <a href='SkMatrix_Reference#Matrix'>matrix</a> <a href='undocumented#Premultiply'>premultiplied</a> with <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a>.
-This has the effect of skewing the drawing by (<a href='#SkCanvas_skew_sx'>sx</a>, <a href='#SkCanvas_skew_sy'>sy</a>) <a href='#SkCanvas_skew_sy'>before</a> <a href='#SkCanvas_skew_sy'>transforming</a>
+This has the effect of skewing the drawing by (<a href='#SkCanvas_skew_sx'>sx</a>, <a href='#SkCanvas_skew_sy'>sy</a>) before transforming
the result with <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a>.
### Parameters
@@ -2425,11 +2425,11 @@
### Example
-<div><fiddle-embed name="2e2acc21d7774df7e0940a30ad2ca99e"><div>Black <a href='undocumented#Text'>text</a> <a href='undocumented#Text'>mimics</a> <a href='undocumented#Text'>an</a> <a href='undocumented#Text'>oblique</a> <a href='undocumented#Text'>text</a> <a href='undocumented#Text'>style</a> <a href='undocumented#Text'>by</a> <a href='undocumented#Text'>using</a> <a href='undocumented#Text'>a</a> <a href='undocumented#Text'>negative</a> <a href='undocumented#Text'>skew</a> <a href='undocumented#Text'>on</a> <a href='undocumented#Text'>x-axis</a>
-<a href='undocumented#Text'>that</a> <a href='undocumented#Text'>shifts</a> <a href='undocumented#Text'>the</a> <a href='undocumented#Text'>geometry</a> <a href='undocumented#Text'>to</a> <a href='undocumented#Text'>the</a> <a href='undocumented#Text'>right</a> <a href='undocumented#Text'>as</a> <a href='undocumented#Text'>the</a> <a href='undocumented#Text'>y-axis</a> <a href='undocumented#Text'>values</a> <a href='undocumented#Text'>decrease</a>.
-<a href='undocumented#Text'>Red</a> <a href='undocumented#Text'>text</a> <a href='undocumented#Text'>uses</a> <a href='undocumented#Text'>a</a> <a href='undocumented#Text'>positive</a> <a href='undocumented#Text'>skew</a> <a href='undocumented#Text'>on</a> <a href='undocumented#Text'>y-axis</a> <a href='undocumented#Text'>to</a> <a href='undocumented#Text'>shift</a> <a href='undocumented#Text'>the</a> <a href='undocumented#Text'>geometry</a> <a href='undocumented#Text'>down</a>
-<a href='undocumented#Text'>as</a> <a href='undocumented#Text'>the</a> <a href='undocumented#Text'>x-axis</a> <a href='undocumented#Text'>values</a> <a href='undocumented#Text'>increase</a>.
-<a href='undocumented#Text'>Blue</a> <a href='undocumented#Text'>text</a> <a href='undocumented#Text'>combines</a> <a href='#SkCanvas_skew_sx'>sx</a> <a href='#SkCanvas_skew_sx'>and</a> <a href='#SkCanvas_skew_sy'>sy</a> <a href='#SkCanvas_skew_sy'>skew</a> <a href='#SkCanvas_skew_sy'>to</a> <a href='#SkCanvas_skew_sy'>rotate</a> <a href='#SkCanvas_skew_sy'>and</a> <a href='#SkCanvas_skew_sy'>scale</a>.
+<div><fiddle-embed name="2e2acc21d7774df7e0940a30ad2ca99e"><div>Black <a href='undocumented#Text'>text</a> mimics an oblique <a href='undocumented#Text'>text</a> style by using a negative skew on x-axis
+that shifts the geometry to the right as the y-axis values decrease.
+Red <a href='undocumented#Text'>text</a> uses a positive skew on y-axis to shift the geometry down
+as the x-axis values increase.
+Blue <a href='undocumented#Text'>text</a> combines <a href='#SkCanvas_skew_sx'>sx</a> and <a href='#SkCanvas_skew_sy'>sy</a> skew to rotate and scale.
</div></fiddle-embed></div>
### See Also
@@ -2441,18 +2441,18 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-void <a href='#SkCanvas_concat'>concat</a>(<a href='#SkCanvas_concat'>const</a> <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a>& <a href='SkMatrix_Reference#Matrix'>matrix</a>)
+void <a href='#SkCanvas_concat'>concat</a>(const <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a>& <a href='SkMatrix_Reference#Matrix'>matrix</a>)
</pre>
-Replaces <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> <a href='SkMatrix_Reference#SkMatrix'>with</a> <a href='#SkCanvas_concat_matrix'>matrix</a> <a href='undocumented#Premultiply'>premultiplied</a> <a href='undocumented#Premultiply'>with</a> <a href='undocumented#Premultiply'>existing</a> <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a>.
+Replaces <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> with <a href='#SkCanvas_concat_matrix'>matrix</a> <a href='undocumented#Premultiply'>premultiplied</a> with existing <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a>.
-This has the effect of transforming the drawn geometry by <a href='#SkCanvas_concat_matrix'>matrix</a>, <a href='#SkCanvas_concat_matrix'>before</a>
+This has the effect of transforming the drawn geometry by <a href='#SkCanvas_concat_matrix'>matrix</a>, before
transforming the result with existing <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a>.
### Parameters
<table> <tr> <td><a name='SkCanvas_concat_matrix'><code><strong>matrix</strong></code></a></td>
- <td><a href='#SkCanvas_concat_matrix'>matrix</a> <a href='#SkCanvas_concat_matrix'>to</a> <a href='undocumented#Premultiply'>premultiply</a> <a href='undocumented#Premultiply'>with</a> <a href='undocumented#Premultiply'>existing</a> <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a></td>
+ <td><a href='#SkCanvas_concat_matrix'>matrix</a> to <a href='undocumented#Premultiply'>premultiply</a> with existing <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a></td>
</tr>
</table>
@@ -2469,16 +2469,16 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-void <a href='#SkCanvas_setMatrix'>setMatrix</a>(<a href='#SkCanvas_setMatrix'>const</a> <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a>& <a href='SkMatrix_Reference#Matrix'>matrix</a>)
+void <a href='#SkCanvas_setMatrix'>setMatrix</a>(const <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a>& <a href='SkMatrix_Reference#Matrix'>matrix</a>)
</pre>
-Replaces <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> <a href='SkMatrix_Reference#SkMatrix'>with</a> <a href='#SkCanvas_setMatrix_matrix'>matrix</a>.
-Unlike <a href='#SkCanvas_concat'>concat()</a>, <a href='#SkCanvas_concat'>any</a> <a href='#SkCanvas_concat'>prior</a> <a href='#SkCanvas_setMatrix_matrix'>matrix</a> <a href='#SkCanvas_setMatrix_matrix'>state</a> <a href='#SkCanvas_setMatrix_matrix'>is</a> <a href='#SkCanvas_setMatrix_matrix'>overwritten</a>.
+Replaces <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> with <a href='#SkCanvas_setMatrix_matrix'>matrix</a>.
+Unlike <a href='#SkCanvas_concat'>concat()</a>, any prior <a href='#SkCanvas_setMatrix_matrix'>matrix</a> state is overwritten.
### Parameters
<table> <tr> <td><a name='SkCanvas_setMatrix_matrix'><code><strong>matrix</strong></code></a></td>
- <td><a href='#SkCanvas_setMatrix_matrix'>matrix</a> <a href='#SkCanvas_setMatrix_matrix'>to</a> <a href='#SkCanvas_setMatrix_matrix'>copy</a>, <a href='#SkCanvas_setMatrix_matrix'>replacing</a> <a href='#SkCanvas_setMatrix_matrix'>existing</a> <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a></td>
+ <td><a href='#SkCanvas_setMatrix_matrix'>matrix</a> to copy, replacing existing <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a></td>
</tr>
</table>
@@ -2498,8 +2498,8 @@
void <a href='#SkCanvas_resetMatrix'>resetMatrix</a>()
</pre>
-Sets <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> <a href='SkMatrix_Reference#SkMatrix'>to</a> <a href='SkMatrix_Reference#SkMatrix'>the</a> <a href='SkMatrix_Reference#SkMatrix'>identity</a> <a href='SkMatrix_Reference#Matrix'>matrix</a>.
-Any prior <a href='SkMatrix_Reference#Matrix'>matrix</a> <a href='SkMatrix_Reference#Matrix'>state</a> <a href='SkMatrix_Reference#Matrix'>is</a> <a href='SkMatrix_Reference#Matrix'>overwritten</a>.
+Sets <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> to the identity <a href='SkMatrix_Reference#Matrix'>matrix</a>.
+Any prior <a href='SkMatrix_Reference#Matrix'>matrix</a> state is overwritten.
### Example
@@ -2514,15 +2514,15 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-const <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a>& <a href='#SkCanvas_getTotalMatrix'>getTotalMatrix</a>() <a href='#SkCanvas_getTotalMatrix'>const</a>
+const <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a>& <a href='#SkCanvas_getTotalMatrix'>getTotalMatrix</a>() const
</pre>
Returns <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a>.
-This does not account for translation by <a href='undocumented#SkBaseDevice'>SkBaseDevice</a> <a href='undocumented#SkBaseDevice'>or</a> <a href='SkSurface_Reference#SkSurface'>SkSurface</a>.
+This does not account for translation by <a href='undocumented#SkBaseDevice'>SkBaseDevice</a> or <a href='SkSurface_Reference#SkSurface'>SkSurface</a>.
### Return Value
-<a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> <a href='SkMatrix_Reference#SkMatrix'>in</a> <a href='SkCanvas_Reference#SkCanvas'>SkCanvas</a>
+<a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> in <a href='SkCanvas_Reference#SkCanvas'>SkCanvas</a>
### Example
@@ -2544,39 +2544,39 @@
---
-Clip is built from a stack of clipping <a href='SkPath_Reference#Path'>paths</a>. <a href='SkPath_Reference#Path'>Each</a> <a href='SkPath_Reference#Path'>Path</a> <a href='SkPath_Reference#Path'>in</a> <a href='SkPath_Reference#Path'>the</a>
-<a href='SkPath_Reference#Path'>stack</a> <a href='SkPath_Reference#Path'>can</a> <a href='SkPath_Reference#Path'>be</a> <a href='SkPath_Reference#Path'>constructed</a> <a href='SkPath_Reference#Path'>from</a> <a href='SkPath_Reference#Path'>one</a> <a href='SkPath_Reference#Path'>or</a> <a href='SkPath_Reference#Path'>more</a> <a href='#Path_Overview_Contour'>Path_Contour</a> <a href='#Path_Overview_Contour'>elements</a>. <a href='#Path_Overview_Contour'>The</a>
-<a href='#Path_Overview_Contour'>Path_Contour</a> <a href='#Path_Overview_Contour'>may</a> <a href='#Path_Overview_Contour'>be</a> <a href='#Path_Overview_Contour'>composed</a> <a href='#Path_Overview_Contour'>of</a> <a href='#Path_Overview_Contour'>any</a> <a href='#Path_Overview_Contour'>number</a> <a href='#Path_Overview_Contour'>of</a> <a href='#Path_Verb'>Path_Verb</a> <a href='#Path_Verb'>segments</a>. <a href='#Path_Verb'>Each</a>
-<a href='#Path_Overview_Contour'>Path_Contour</a> <a href='#Path_Overview_Contour'>forms</a> <a href='#Path_Overview_Contour'>a</a> <a href='#Path_Overview_Contour'>closed</a> <a href='#Path_Overview_Contour'>area</a>; <a href='#Path_Fill_Type'>Path_Fill_Type</a> <a href='#Path_Fill_Type'>defines</a> <a href='#Path_Fill_Type'>the</a> <a href='#Path_Fill_Type'>area</a> <a href='#Path_Fill_Type'>enclosed</a>
-<a href='#Path_Fill_Type'>by</a> <a href='#Path_Overview_Contour'>Path_Contour</a>.
+Clip is built from a stack of clipping <a href='SkPath_Reference#Path'>paths</a>. Each <a href='SkPath_Reference#Path'>Path</a> in the
+stack can be constructed from one or more <a href='#Path_Overview_Contour'>Path_Contour</a> elements. The
+<a href='#Path_Overview_Contour'>Path_Contour</a> may be composed of any number of <a href='#Path_Verb'>Path_Verb</a> segments. Each
+<a href='#Path_Overview_Contour'>Path_Contour</a> forms a closed area; <a href='#Path_Fill_Type'>Path_Fill_Type</a> defines the area enclosed
+by <a href='#Path_Overview_Contour'>Path_Contour</a>.
-<a href='#Path_Overview_Contour'>Clip</a> <a href='#Path_Overview_Contour'>stack</a> <a href='#Path_Overview_Contour'>of</a> <a href='SkPath_Reference#Path'>Path</a> <a href='SkPath_Reference#Path'>elements</a> <a href='SkPath_Reference#Path'>successfully</a> <a href='SkPath_Reference#Path'>restrict</a> <a href='SkPath_Reference#Path'>the</a> <a href='SkPath_Reference#Path'>Path</a> <a href='SkPath_Reference#Path'>area</a>. <a href='SkPath_Reference#Path'>Each</a>
-<a href='SkPath_Reference#Path'>Path</a> <a href='SkPath_Reference#Path'>is</a> <a href='SkPath_Reference#Path'>transformed</a> <a href='SkPath_Reference#Path'>by</a> <a href='SkMatrix_Reference#Matrix'>Matrix</a>, <a href='SkMatrix_Reference#Matrix'>then</a> <a href='SkMatrix_Reference#Matrix'>intersected</a> <a href='SkMatrix_Reference#Matrix'>with</a> <a href='SkMatrix_Reference#Matrix'>or</a> <a href='SkMatrix_Reference#Matrix'>subtracted</a> <a href='SkMatrix_Reference#Matrix'>from</a> <a href='SkMatrix_Reference#Matrix'>the</a>
-<a href='SkMatrix_Reference#Matrix'>prior</a> <a href='SkMatrix_Reference#Matrix'>Clip</a> <a href='SkMatrix_Reference#Matrix'>to</a> <a href='SkMatrix_Reference#Matrix'>form</a> <a href='SkMatrix_Reference#Matrix'>the</a> <a href='SkMatrix_Reference#Matrix'>replacement</a> <a href='SkMatrix_Reference#Matrix'>Clip</a>. <a href='SkMatrix_Reference#Matrix'>Use</a> <a href='undocumented#SkClipOp'>SkClipOp</a>::<a href='#SkClipOp_kDifference'>kDifference</a>
-<a href='#SkClipOp_kDifference'>to</a> <a href='#SkClipOp_kDifference'>subtract</a> <a href='SkPath_Reference#Path'>Path</a> <a href='SkPath_Reference#Path'>from</a> <a href='SkPath_Reference#Path'>Clip</a>; <a href='SkPath_Reference#Path'>use</a> <a href='undocumented#SkClipOp'>SkClipOp</a>::<a href='#SkClipOp_kIntersect'>kIntersect</a> <a href='#SkClipOp_kIntersect'>to</a> <a href='#SkClipOp_kIntersect'>intersect</a> <a href='SkPath_Reference#Path'>Path</a>
-<a href='SkPath_Reference#Path'>with</a> <a href='SkPath_Reference#Path'>Clip</a>.
+Clip stack of <a href='SkPath_Reference#Path'>Path</a> elements successfully restrict the <a href='SkPath_Reference#Path'>Path</a> area. Each
+<a href='SkPath_Reference#Path'>Path</a> is transformed by <a href='SkMatrix_Reference#Matrix'>Matrix</a>, then intersected with or subtracted from the
+prior Clip to form the replacement Clip. Use <a href='undocumented#SkClipOp'>SkClipOp</a>::<a href='#SkClipOp_kDifference'>kDifference</a>
+to subtract <a href='SkPath_Reference#Path'>Path</a> from Clip; use <a href='undocumented#SkClipOp'>SkClipOp</a>::<a href='#SkClipOp_kIntersect'>kIntersect</a> to intersect <a href='SkPath_Reference#Path'>Path</a>
+with Clip.
-<a href='SkPath_Reference#Path'>A</a> <a href='SkPath_Reference#Path'>clipping</a> <a href='SkPath_Reference#Path'>Path</a> <a href='SkPath_Reference#Path'>may</a> <a href='SkPath_Reference#Path'>be</a> <a href='#Paint_Anti_Alias'>Anti_Aliased</a>; <a href='#Paint_Anti_Alias'>if</a> <a href='SkPath_Reference#Path'>Path</a>, <a href='SkPath_Reference#Path'>after</a> <a href='SkPath_Reference#Path'>transformation</a>, <a href='SkPath_Reference#Path'>is</a>
-<a href='SkPath_Reference#Path'>composed</a> <a href='SkPath_Reference#Path'>of</a> <a href='SkPath_Reference#Path'>horizontal</a> <a href='SkPath_Reference#Path'>and</a> <a href='SkPath_Reference#Path'>vertical</a> <a href='undocumented#Line'>lines</a>, <a href='undocumented#Line'>clearing</a> <a href='#Paint_Anti_Alias'>Anti_Alias</a> <a href='#Paint_Anti_Alias'>allows</a> <a href='#Paint_Anti_Alias'>whole</a> <a href='#Paint_Anti_Alias'>pixels</a>
-<a href='#Paint_Anti_Alias'>to</a> <a href='#Paint_Anti_Alias'>either</a> <a href='#Paint_Anti_Alias'>be</a> <a href='#Paint_Anti_Alias'>inside</a> <a href='#Paint_Anti_Alias'>or</a> <a href='#Paint_Anti_Alias'>outside</a> <a href='#Paint_Anti_Alias'>the</a> <a href='#Paint_Anti_Alias'>clip</a>. <a href='#Paint_Anti_Alias'>The</a> <a href='#Paint_Anti_Alias'>fastest</a> <a href='#Paint_Anti_Alias'>drawing</a> <a href='#Paint_Anti_Alias'>has</a> <a href='#Paint_Anti_Alias'>a</a> <a href='undocumented#Alias'>Aliased</a>,
-<a href='undocumented#Alias'>rectangular</a> <a href='undocumented#Alias'>clip</a>.
+A clipping <a href='SkPath_Reference#Path'>Path</a> may be <a href='#Paint_Anti_Alias'>Anti_Aliased</a>; if <a href='SkPath_Reference#Path'>Path</a>, after transformation, is
+composed of horizontal and vertical <a href='undocumented#Line'>lines</a>, clearing <a href='#Paint_Anti_Alias'>Anti_Alias</a> allows whole pixels
+to either be inside or outside the clip. The fastest drawing has a <a href='undocumented#Alias'>Aliased</a>,
+rectangular clip.
-<a href='undocumented#Alias'>If</a> <a href='undocumented#Alias'>clipping</a> <a href='SkPath_Reference#Path'>Path</a> <a href='SkPath_Reference#Path'>has</a> <a href='#Paint_Anti_Alias'>Anti_Alias</a> <a href='#Paint_Anti_Alias'>set</a>, <a href='#Paint_Anti_Alias'>clip</a> <a href='#Paint_Anti_Alias'>may</a> <a href='#Paint_Anti_Alias'>partially</a> <a href='#Paint_Anti_Alias'>clip</a> <a href='#Paint_Anti_Alias'>a</a> <a href='undocumented#Pixel'>pixel</a>, <a href='undocumented#Pixel'>requiring</a>
-<a href='undocumented#Pixel'>that</a> <a href='undocumented#Pixel'>drawing</a> <a href='undocumented#Pixel'>blend</a> <a href='undocumented#Pixel'>partially</a> <a href='undocumented#Pixel'>with</a> <a href='undocumented#Pixel'>the</a> <a href='undocumented#Pixel'>destination</a> <a href='undocumented#Pixel'>along</a> <a href='undocumented#Pixel'>the</a> <a href='undocumented#Pixel'>edge</a>. <a href='undocumented#Pixel'>A</a> <a href='undocumented#Pixel'>rotated</a>
-<a href='undocumented#Pixel'>rectangular</a> <a href='#Paint_Anti_Alias'>Anti_Aliased</a> <a href='#Paint_Anti_Alias'>clip</a> <a href='#Paint_Anti_Alias'>looks</a> <a href='#Paint_Anti_Alias'>smoother</a> <a href='#Paint_Anti_Alias'>but</a> <a href='#Paint_Anti_Alias'>draws</a> <a href='#Paint_Anti_Alias'>slower</a>.
+If clipping <a href='SkPath_Reference#Path'>Path</a> has <a href='#Paint_Anti_Alias'>Anti_Alias</a> set, clip may partially clip a <a href='undocumented#Pixel'>pixel</a>, requiring
+that drawing blend partially with the destination along the edge. A rotated
+rectangular <a href='#Paint_Anti_Alias'>Anti_Aliased</a> clip looks smoother but draws slower.
-<a href='#Paint_Anti_Alias'>Clip</a> <a href='#Paint_Anti_Alias'>can</a> <a href='#Paint_Anti_Alias'>combine</a> <a href='#Paint_Anti_Alias'>with</a> <a href='SkRect_Reference#Rect'>Rect</a> <a href='SkRect_Reference#Rect'>and</a> <a href='#RRect'>Round_Rect</a> <a href='#RRect'>primitives</a>; <a href='#RRect'>like</a>
-<a href='SkPath_Reference#Path'>Path</a>, <a href='SkPath_Reference#Path'>these</a> <a href='SkPath_Reference#Path'>are</a> <a href='SkPath_Reference#Path'>transformed</a> <a href='SkPath_Reference#Path'>by</a> <a href='SkMatrix_Reference#Matrix'>Matrix</a> <a href='SkMatrix_Reference#Matrix'>before</a> <a href='SkMatrix_Reference#Matrix'>they</a> <a href='SkMatrix_Reference#Matrix'>are</a> <a href='SkMatrix_Reference#Matrix'>combined</a> <a href='SkMatrix_Reference#Matrix'>with</a> <a href='SkMatrix_Reference#Matrix'>Clip</a>.
+Clip can combine with <a href='SkRect_Reference#Rect'>Rect</a> and <a href='#RRect'>Round_Rect</a> primitives; like
+<a href='SkPath_Reference#Path'>Path</a>, these are transformed by <a href='SkMatrix_Reference#Matrix'>Matrix</a> before they are combined with Clip.
-<a href='SkMatrix_Reference#Matrix'>Clip</a> <a href='SkMatrix_Reference#Matrix'>can</a> <a href='SkMatrix_Reference#Matrix'>combine</a> <a href='SkMatrix_Reference#Matrix'>with</a> <a href='SkRegion_Reference#Region'>Region</a>. <a href='SkRegion_Reference#Region'>Region</a> <a href='SkRegion_Reference#Region'>is</a> <a href='SkRegion_Reference#Region'>assumed</a> <a href='SkRegion_Reference#Region'>to</a> <a href='SkRegion_Reference#Region'>be</a> <a href='SkRegion_Reference#Region'>in</a> <a href='undocumented#Device'>Device</a> <a href='undocumented#Device'>coordinates</a>
-<a href='undocumented#Device'>and</a> <a href='undocumented#Device'>is</a> <a href='undocumented#Device'>unaffected</a> <a href='undocumented#Device'>by</a> <a href='SkMatrix_Reference#Matrix'>Matrix</a>.
+Clip can combine with <a href='SkRegion_Reference#Region'>Region</a>. <a href='SkRegion_Reference#Region'>Region</a> is assumed to be in <a href='undocumented#Device'>Device</a> coordinates
+and is unaffected by <a href='SkMatrix_Reference#Matrix'>Matrix</a>.
### Example
-<div><fiddle-embed name="862cc026601a41a58df49c0b9f0d7777"><div>Draw a red <a href='undocumented#Circle'>circle</a> <a href='undocumented#Circle'>with</a> <a href='undocumented#Circle'>an</a> <a href='undocumented#Alias'>Aliased</a> <a href='undocumented#Alias'>clip</a> <a href='undocumented#Alias'>and</a> <a href='undocumented#Alias'>an</a> <a href='#Paint_Anti_Alias'>Anti_Aliased</a> <a href='#Paint_Anti_Alias'>clip</a>.
-<a href='#Paint_Anti_Alias'>Use</a> <a href='#Paint_Anti_Alias'>an</a> <a href='SkImage_Reference#Image'>image filter</a> <a href='SkImage_Reference#Image'>to</a> <a href='SkImage_Reference#Image'>zoom</a> <a href='SkImage_Reference#Image'>into</a> <a href='SkImage_Reference#Image'>the</a> <a href='SkImage_Reference#Image'>pixels</a> <a href='SkImage_Reference#Image'>drawn</a>.
-<a href='SkImage_Reference#Image'>The</a> <a href='SkImage_Reference#Image'>edge</a> <a href='SkImage_Reference#Image'>of</a> <a href='SkImage_Reference#Image'>the</a> <a href='undocumented#Alias'>Aliased</a> <a href='undocumented#Alias'>clip</a> <a href='undocumented#Alias'>fully</a> <a href='undocumented#Alias'>draws</a> <a href='undocumented#Alias'>pixels</a> <a href='undocumented#Alias'>in</a> <a href='undocumented#Alias'>the</a> <a href='undocumented#Alias'>red</a> <a href='undocumented#Circle'>circle</a>.
-<a href='undocumented#Circle'>The</a> <a href='undocumented#Circle'>edge</a> <a href='undocumented#Circle'>of</a> <a href='undocumented#Circle'>the</a> <a href='#Paint_Anti_Alias'>Anti_Aliased</a> <a href='#Paint_Anti_Alias'>clip</a> <a href='#Paint_Anti_Alias'>partially</a> <a href='#Paint_Anti_Alias'>draws</a> <a href='#Paint_Anti_Alias'>pixels</a> <a href='#Paint_Anti_Alias'>in</a> <a href='#Paint_Anti_Alias'>the</a> <a href='#Paint_Anti_Alias'>red</a> <a href='undocumented#Circle'>circle</a>.
+<div><fiddle-embed name="862cc026601a41a58df49c0b9f0d7777"><div>Draw a red <a href='undocumented#Circle'>circle</a> with an <a href='undocumented#Alias'>Aliased</a> clip and an <a href='#Paint_Anti_Alias'>Anti_Aliased</a> clip.
+Use an <a href='SkImage_Reference#Image'>image filter</a> to zoom into the pixels drawn.
+The edge of the <a href='undocumented#Alias'>Aliased</a> clip fully draws pixels in the red <a href='undocumented#Circle'>circle</a>.
+The edge of the <a href='#Paint_Anti_Alias'>Anti_Aliased</a> clip partially draws pixels in the red <a href='undocumented#Circle'>circle</a>.
</div></fiddle-embed></div>
<a name='SkCanvas_clipRect'></a>
@@ -2584,20 +2584,20 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-void <a href='#SkCanvas_clipRect'>clipRect</a>(<a href='#SkCanvas_clipRect'>const</a> <a href='SkRect_Reference#SkRect'>SkRect</a>& <a href='SkRect_Reference#Rect'>rect</a>, <a href='undocumented#SkClipOp'>SkClipOp</a> <a href='undocumented#SkClipOp'>op</a>, <a href='undocumented#SkClipOp'>bool</a> <a href='undocumented#SkClipOp'>doAntiAlias</a>)
+void <a href='#SkCanvas_clipRect'>clipRect</a>(const <a href='SkRect_Reference#SkRect'>SkRect</a>& <a href='SkRect_Reference#Rect'>rect</a>, <a href='undocumented#SkClipOp'>SkClipOp</a> op, bool doAntiAlias)
</pre>
Replaces clip with the intersection or difference of clip and <a href='#SkCanvas_clipRect_rect'>rect</a>,
-with an <a href='undocumented#Alias'>aliased</a> <a href='undocumented#Alias'>or</a> <a href='SkPaint_Reference#Anti_Alias'>anti-aliased</a> <a href='SkPaint_Reference#Anti_Alias'>clip</a> <a href='SkPaint_Reference#Anti_Alias'>edge</a>. <a href='#SkCanvas_clipRect_rect'>rect</a> <a href='#SkCanvas_clipRect_rect'>is</a> <a href='#SkCanvas_clipRect_rect'>transformed</a> <a href='#SkCanvas_clipRect_rect'>by</a> <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a>
+with an <a href='undocumented#Alias'>aliased</a> or <a href='SkPaint_Reference#Anti_Alias'>anti-aliased</a> clip edge. <a href='#SkCanvas_clipRect_rect'>rect</a> is transformed by <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a>
before it is combined with clip.
### Parameters
<table> <tr> <td><a name='SkCanvas_clipRect_rect'><code><strong>rect</strong></code></a></td>
- <td><a href='SkRect_Reference#SkRect'>SkRect</a> <a href='SkRect_Reference#SkRect'>to</a> <a href='SkRect_Reference#SkRect'>combine</a> <a href='SkRect_Reference#SkRect'>with</a> <a href='SkRect_Reference#SkRect'>clip</a></td>
+ <td><a href='SkRect_Reference#SkRect'>SkRect</a> to combine with clip</td>
</tr>
<tr> <td><a name='SkCanvas_clipRect_op'><code><strong>op</strong></code></a></td>
- <td><a href='undocumented#SkClipOp'>SkClipOp</a> <a href='undocumented#SkClipOp'>to</a> <a href='undocumented#SkClipOp'>apply</a> <a href='undocumented#SkClipOp'>to</a> <a href='undocumented#SkClipOp'>clip</a></td>
+ <td><a href='undocumented#SkClipOp'>SkClipOp</a> to apply to clip</td>
</tr>
<tr> <td><a name='SkCanvas_clipRect_doAntiAlias'><code><strong>doAntiAlias</strong></code></a></td>
<td>true if clip is to be <a href='SkPaint_Reference#Anti_Alias'>anti-aliased</a></td>
@@ -2617,20 +2617,20 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-void <a href='#SkCanvas_clipRect'>clipRect</a>(<a href='#SkCanvas_clipRect'>const</a> <a href='SkRect_Reference#SkRect'>SkRect</a>& <a href='SkRect_Reference#Rect'>rect</a>, <a href='undocumented#SkClipOp'>SkClipOp</a> <a href='undocumented#SkClipOp'>op</a>)
+void <a href='#SkCanvas_clipRect'>clipRect</a>(const <a href='SkRect_Reference#SkRect'>SkRect</a>& <a href='SkRect_Reference#Rect'>rect</a>, <a href='undocumented#SkClipOp'>SkClipOp</a> op)
</pre>
Replaces clip with the intersection or difference of clip and <a href='#SkCanvas_clipRect_2_rect'>rect</a>.
-Resulting clip is <a href='undocumented#Alias'>aliased</a>; <a href='undocumented#Alias'>pixels</a> <a href='undocumented#Alias'>are</a> <a href='undocumented#Alias'>fully</a> <a href='undocumented#Alias'>contained</a> <a href='undocumented#Alias'>by</a> <a href='undocumented#Alias'>the</a> <a href='undocumented#Alias'>clip</a>.
-<a href='#SkCanvas_clipRect_2_rect'>rect</a> <a href='#SkCanvas_clipRect_2_rect'>is</a> <a href='#SkCanvas_clipRect_2_rect'>transformed</a> <a href='#SkCanvas_clipRect_2_rect'>by</a> <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> <a href='SkMatrix_Reference#SkMatrix'>before</a> <a href='SkMatrix_Reference#SkMatrix'>it</a> <a href='SkMatrix_Reference#SkMatrix'>is</a> <a href='SkMatrix_Reference#SkMatrix'>combined</a> <a href='SkMatrix_Reference#SkMatrix'>with</a> <a href='SkMatrix_Reference#SkMatrix'>clip</a>.
+Resulting clip is <a href='undocumented#Alias'>aliased</a>; pixels are fully contained by the clip.
+<a href='#SkCanvas_clipRect_2_rect'>rect</a> is transformed by <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> before it is combined with clip.
### Parameters
<table> <tr> <td><a name='SkCanvas_clipRect_2_rect'><code><strong>rect</strong></code></a></td>
- <td><a href='SkRect_Reference#SkRect'>SkRect</a> <a href='SkRect_Reference#SkRect'>to</a> <a href='SkRect_Reference#SkRect'>combine</a> <a href='SkRect_Reference#SkRect'>with</a> <a href='SkRect_Reference#SkRect'>clip</a></td>
+ <td><a href='SkRect_Reference#SkRect'>SkRect</a> to combine with clip</td>
</tr>
<tr> <td><a name='SkCanvas_clipRect_2_op'><code><strong>op</strong></code></a></td>
- <td><a href='undocumented#SkClipOp'>SkClipOp</a> <a href='undocumented#SkClipOp'>to</a> <a href='undocumented#SkClipOp'>apply</a> <a href='undocumented#SkClipOp'>to</a> <a href='undocumented#SkClipOp'>clip</a></td>
+ <td><a href='undocumented#SkClipOp'>SkClipOp</a> to apply to clip</td>
</tr>
</table>
@@ -2647,18 +2647,18 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-void <a href='#SkCanvas_clipRect'>clipRect</a>(<a href='#SkCanvas_clipRect'>const</a> <a href='SkRect_Reference#SkRect'>SkRect</a>& <a href='SkRect_Reference#Rect'>rect</a>, <a href='SkRect_Reference#Rect'>bool</a> <a href='SkRect_Reference#Rect'>doAntiAlias</a> = <a href='SkRect_Reference#Rect'>false</a>)
+void <a href='#SkCanvas_clipRect'>clipRect</a>(const <a href='SkRect_Reference#SkRect'>SkRect</a>& <a href='SkRect_Reference#Rect'>rect</a>, bool doAntiAlias = false)
</pre>
Replaces clip with the intersection of clip and <a href='#SkCanvas_clipRect_3_rect'>rect</a>.
-Resulting clip is <a href='undocumented#Alias'>aliased</a>; <a href='undocumented#Alias'>pixels</a> <a href='undocumented#Alias'>are</a> <a href='undocumented#Alias'>fully</a> <a href='undocumented#Alias'>contained</a> <a href='undocumented#Alias'>by</a> <a href='undocumented#Alias'>the</a> <a href='undocumented#Alias'>clip</a>.
-<a href='#SkCanvas_clipRect_3_rect'>rect</a> <a href='#SkCanvas_clipRect_3_rect'>is</a> <a href='#SkCanvas_clipRect_3_rect'>transformed</a> <a href='#SkCanvas_clipRect_3_rect'>by</a> <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a>
+Resulting clip is <a href='undocumented#Alias'>aliased</a>; pixels are fully contained by the clip.
+<a href='#SkCanvas_clipRect_3_rect'>rect</a> is transformed by <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a>
before it is combined with clip.
### Parameters
<table> <tr> <td><a name='SkCanvas_clipRect_3_rect'><code><strong>rect</strong></code></a></td>
- <td><a href='SkRect_Reference#SkRect'>SkRect</a> <a href='SkRect_Reference#SkRect'>to</a> <a href='SkRect_Reference#SkRect'>combine</a> <a href='SkRect_Reference#SkRect'>with</a> <a href='SkRect_Reference#SkRect'>clip</a></td>
+ <td><a href='SkRect_Reference#SkRect'>SkRect</a> to combine with clip</td>
</tr>
<tr> <td><a name='SkCanvas_clipRect_3_doAntiAlias'><code><strong>doAntiAlias</strong></code></a></td>
<td>true if clip is to be <a href='SkPaint_Reference#Anti_Alias'>anti-aliased</a></td>
@@ -2667,9 +2667,9 @@
### Example
-<div><fiddle-embed name="1d4e0632c97e42692775d834fe10aa99"><div>A <a href='undocumented#Circle'>circle</a> <a href='undocumented#Circle'>drawn</a> <a href='undocumented#Circle'>in</a> <a href='undocumented#Circle'>pieces</a> <a href='undocumented#Circle'>looks</a> <a href='undocumented#Circle'>uniform</a> <a href='undocumented#Circle'>when</a> <a href='undocumented#Circle'>drawn</a> <a href='undocumented#Alias'>Aliased</a>.
-<a href='undocumented#Alias'>The</a> <a href='undocumented#Alias'>same</a> <a href='undocumented#Circle'>circle</a> <a href='undocumented#Circle'>pieces</a> <a href='undocumented#Circle'>blend</a> <a href='undocumented#Circle'>with</a> <a href='undocumented#Circle'>pixels</a> <a href='undocumented#Circle'>more</a> <a href='undocumented#Circle'>than</a> <a href='undocumented#Circle'>once</a> <a href='undocumented#Circle'>when</a> <a href='#Paint_Anti_Alias'>Anti_Aliased</a>,
-<a href='#Paint_Anti_Alias'>visible</a> <a href='#Paint_Anti_Alias'>as</a> <a href='#Paint_Anti_Alias'>a</a> <a href='#Paint_Anti_Alias'>thin</a> <a href='#Paint_Anti_Alias'>pair</a> <a href='#Paint_Anti_Alias'>of</a> <a href='undocumented#Line'>lines</a> <a href='undocumented#Line'>through</a> <a href='undocumented#Line'>the</a> <a href='undocumented#Line'>right</a> <a href='undocumented#Circle'>circle</a>.
+<div><fiddle-embed name="1d4e0632c97e42692775d834fe10aa99"><div>A <a href='undocumented#Circle'>circle</a> drawn in pieces looks uniform when drawn <a href='undocumented#Alias'>Aliased</a>.
+The same <a href='undocumented#Circle'>circle</a> pieces blend with pixels more than once when <a href='#Paint_Anti_Alias'>Anti_Aliased</a>,
+visible as a thin pair of <a href='undocumented#Line'>lines</a> through the right <a href='undocumented#Circle'>circle</a>.
</div></fiddle-embed></div>
### See Also
@@ -2681,22 +2681,22 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-void <a href='#SkCanvas_androidFramework_setDeviceClipRestriction'>androidFramework_setDeviceClipRestriction</a>(<a href='#SkCanvas_androidFramework_setDeviceClipRestriction'>const</a> <a href='SkIRect_Reference#SkIRect'>SkIRect</a>& <a href='SkRect_Reference#Rect'>rect</a>)
+void <a href='#SkCanvas_androidFramework_setDeviceClipRestriction'>androidFramework_setDeviceClipRestriction</a>(const <a href='SkIRect_Reference#SkIRect'>SkIRect</a>& <a href='SkRect_Reference#Rect'>rect</a>)
</pre>
-Sets the maximum clip rectangle, which can be set by <a href='#SkCanvas_clipRect'>clipRect</a>, <a href='#SkCanvas_clipRRect'>clipRRect</a> <a href='#SkCanvas_clipRRect'>and</a>
-<a href='#SkCanvas_clipPath'>clipPath</a> <a href='#SkCanvas_clipPath'>and</a> <a href='#SkCanvas_clipPath'>intersect</a> <a href='#SkCanvas_clipPath'>the</a> <a href='#SkCanvas_clipPath'>current</a> <a href='#SkCanvas_clipPath'>clip</a> <a href='#SkCanvas_clipPath'>with</a> <a href='#SkCanvas_clipPath'>the</a> <a href='#SkCanvas_clipPath'>specified</a> <a href='#SkCanvas_androidFramework_setDeviceClipRestriction_rect'>rect</a>.
-<a href='#SkCanvas_androidFramework_setDeviceClipRestriction_rect'>The</a> <a href='#SkCanvas_androidFramework_setDeviceClipRestriction_rect'>maximum</a> <a href='#SkCanvas_androidFramework_setDeviceClipRestriction_rect'>clip</a> <a href='#SkCanvas_androidFramework_setDeviceClipRestriction_rect'>affects</a> <a href='#SkCanvas_androidFramework_setDeviceClipRestriction_rect'>only</a> <a href='#SkCanvas_androidFramework_setDeviceClipRestriction_rect'>future</a> <a href='#SkCanvas_androidFramework_setDeviceClipRestriction_rect'>clipping</a> <a href='#SkCanvas_androidFramework_setDeviceClipRestriction_rect'>operations</a>; <a href='#SkCanvas_androidFramework_setDeviceClipRestriction_rect'>it</a> <a href='#SkCanvas_androidFramework_setDeviceClipRestriction_rect'>is</a> <a href='#SkCanvas_androidFramework_setDeviceClipRestriction_rect'>not</a> <a href='#SkCanvas_androidFramework_setDeviceClipRestriction_rect'>retroactive</a>.
-<a href='#SkCanvas_androidFramework_setDeviceClipRestriction_rect'>The</a> <a href='#SkCanvas_androidFramework_setDeviceClipRestriction_rect'>clip</a> <a href='#SkCanvas_androidFramework_setDeviceClipRestriction_rect'>restriction</a> <a href='#SkCanvas_androidFramework_setDeviceClipRestriction_rect'>is</a> <a href='#SkCanvas_androidFramework_setDeviceClipRestriction_rect'>not</a> <a href='#SkCanvas_androidFramework_setDeviceClipRestriction_rect'>recorded</a> <a href='#SkCanvas_androidFramework_setDeviceClipRestriction_rect'>in</a> <a href='SkPicture_Reference#Picture'>pictures</a>.
+Sets the maximum clip rectangle, which can be set by <a href='#SkCanvas_clipRect'>clipRect</a>, <a href='#SkCanvas_clipRRect'>clipRRect</a> and
+<a href='#SkCanvas_clipPath'>clipPath</a> and intersect the current clip with the specified <a href='#SkCanvas_androidFramework_setDeviceClipRestriction_rect'>rect</a>.
+The maximum clip affects only future clipping operations; it is not retroactive.
+The clip restriction is not recorded in <a href='SkPicture_Reference#Picture'>pictures</a>.
-<a href='SkPicture_Reference#Picture'>Pass</a> <a href='SkPicture_Reference#Picture'>an</a> <a href='SkPicture_Reference#Picture'>empty</a> <a href='#SkCanvas_androidFramework_setDeviceClipRestriction_rect'>rect</a> <a href='#SkCanvas_androidFramework_setDeviceClipRestriction_rect'>to</a> <a href='#SkCanvas_androidFramework_setDeviceClipRestriction_rect'>disable</a> <a href='#SkCanvas_androidFramework_setDeviceClipRestriction_rect'>maximum</a> <a href='#SkCanvas_androidFramework_setDeviceClipRestriction_rect'>clip</a>.
+Pass an empty <a href='#SkCanvas_androidFramework_setDeviceClipRestriction_rect'>rect</a> to disable maximum clip.
Private: This private API is for use by Android framework only.
### Parameters
<table> <tr> <td><a name='SkCanvas_androidFramework_setDeviceClipRestriction_rect'><code><strong>rect</strong></code></a></td>
- <td>maximum allowed clip in <a href='undocumented#Device'>device</a> <a href='undocumented#Device'>coordinates</a></td>
+ <td>maximum allowed clip in <a href='undocumented#Device'>device</a> coordinates</td>
</tr>
#
@@ -2705,21 +2705,21 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-void <a href='#SkCanvas_clipRRect'>clipRRect</a>(<a href='#SkCanvas_clipRRect'>const</a> <a href='SkRRect_Reference#SkRRect'>SkRRect</a>& <a href='SkRRect_Reference#SkRRect'>rrect</a>, <a href='undocumented#SkClipOp'>SkClipOp</a> <a href='undocumented#SkClipOp'>op</a>, <a href='undocumented#SkClipOp'>bool</a> <a href='undocumented#SkClipOp'>doAntiAlias</a>)
+void <a href='#SkCanvas_clipRRect'>clipRRect</a>(const <a href='SkRRect_Reference#SkRRect'>SkRRect</a>& rrect, <a href='undocumented#SkClipOp'>SkClipOp</a> op, bool doAntiAlias)
</pre>
Replaces clip with the intersection or difference of clip and <a href='#SkCanvas_clipRRect_rrect'>rrect</a>,
-with an <a href='undocumented#Alias'>aliased</a> <a href='undocumented#Alias'>or</a> <a href='SkPaint_Reference#Anti_Alias'>anti-aliased</a> <a href='SkPaint_Reference#Anti_Alias'>clip</a> <a href='SkPaint_Reference#Anti_Alias'>edge</a>.
-<a href='#SkCanvas_clipRRect_rrect'>rrect</a> <a href='#SkCanvas_clipRRect_rrect'>is</a> <a href='#SkCanvas_clipRRect_rrect'>transformed</a> <a href='#SkCanvas_clipRRect_rrect'>by</a> <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a>
+with an <a href='undocumented#Alias'>aliased</a> or <a href='SkPaint_Reference#Anti_Alias'>anti-aliased</a> clip edge.
+<a href='#SkCanvas_clipRRect_rrect'>rrect</a> is transformed by <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a>
before it is combined with clip.
### Parameters
<table> <tr> <td><a name='SkCanvas_clipRRect_rrect'><code><strong>rrect</strong></code></a></td>
- <td><a href='SkRRect_Reference#SkRRect'>SkRRect</a> <a href='SkRRect_Reference#SkRRect'>to</a> <a href='SkRRect_Reference#SkRRect'>combine</a> <a href='SkRRect_Reference#SkRRect'>with</a> <a href='SkRRect_Reference#SkRRect'>clip</a></td>
+ <td><a href='SkRRect_Reference#SkRRect'>SkRRect</a> to combine with clip</td>
</tr>
<tr> <td><a name='SkCanvas_clipRRect_op'><code><strong>op</strong></code></a></td>
- <td><a href='undocumented#SkClipOp'>SkClipOp</a> <a href='undocumented#SkClipOp'>to</a> <a href='undocumented#SkClipOp'>apply</a> <a href='undocumented#SkClipOp'>to</a> <a href='undocumented#SkClipOp'>clip</a></td>
+ <td><a href='undocumented#SkClipOp'>SkClipOp</a> to apply to clip</td>
</tr>
<tr> <td><a name='SkCanvas_clipRRect_doAntiAlias'><code><strong>doAntiAlias</strong></code></a></td>
<td>true if clip is to be <a href='SkPaint_Reference#Anti_Alias'>anti-aliased</a></td>
@@ -2739,20 +2739,20 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-void <a href='#SkCanvas_clipRRect'>clipRRect</a>(<a href='#SkCanvas_clipRRect'>const</a> <a href='SkRRect_Reference#SkRRect'>SkRRect</a>& <a href='SkRRect_Reference#SkRRect'>rrect</a>, <a href='undocumented#SkClipOp'>SkClipOp</a> <a href='undocumented#SkClipOp'>op</a>)
+void <a href='#SkCanvas_clipRRect'>clipRRect</a>(const <a href='SkRRect_Reference#SkRRect'>SkRRect</a>& rrect, <a href='undocumented#SkClipOp'>SkClipOp</a> op)
</pre>
Replaces clip with the intersection or difference of clip and <a href='#SkCanvas_clipRRect_2_rrect'>rrect</a>.
-Resulting clip is <a href='undocumented#Alias'>aliased</a>; <a href='undocumented#Alias'>pixels</a> <a href='undocumented#Alias'>are</a> <a href='undocumented#Alias'>fully</a> <a href='undocumented#Alias'>contained</a> <a href='undocumented#Alias'>by</a> <a href='undocumented#Alias'>the</a> <a href='undocumented#Alias'>clip</a>.
-<a href='#SkCanvas_clipRRect_2_rrect'>rrect</a> <a href='#SkCanvas_clipRRect_2_rrect'>is</a> <a href='#SkCanvas_clipRRect_2_rrect'>transformed</a> <a href='#SkCanvas_clipRRect_2_rrect'>by</a> <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> <a href='SkMatrix_Reference#SkMatrix'>before</a> <a href='SkMatrix_Reference#SkMatrix'>it</a> <a href='SkMatrix_Reference#SkMatrix'>is</a> <a href='SkMatrix_Reference#SkMatrix'>combined</a> <a href='SkMatrix_Reference#SkMatrix'>with</a> <a href='SkMatrix_Reference#SkMatrix'>clip</a>.
+Resulting clip is <a href='undocumented#Alias'>aliased</a>; pixels are fully contained by the clip.
+<a href='#SkCanvas_clipRRect_2_rrect'>rrect</a> is transformed by <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> before it is combined with clip.
### Parameters
<table> <tr> <td><a name='SkCanvas_clipRRect_2_rrect'><code><strong>rrect</strong></code></a></td>
- <td><a href='SkRRect_Reference#SkRRect'>SkRRect</a> <a href='SkRRect_Reference#SkRRect'>to</a> <a href='SkRRect_Reference#SkRRect'>combine</a> <a href='SkRRect_Reference#SkRRect'>with</a> <a href='SkRRect_Reference#SkRRect'>clip</a></td>
+ <td><a href='SkRRect_Reference#SkRRect'>SkRRect</a> to combine with clip</td>
</tr>
<tr> <td><a name='SkCanvas_clipRRect_2_op'><code><strong>op</strong></code></a></td>
- <td><a href='undocumented#SkClipOp'>SkClipOp</a> <a href='undocumented#SkClipOp'>to</a> <a href='undocumented#SkClipOp'>apply</a> <a href='undocumented#SkClipOp'>to</a> <a href='undocumented#SkClipOp'>clip</a></td>
+ <td><a href='undocumented#SkClipOp'>SkClipOp</a> to apply to clip</td>
</tr>
</table>
@@ -2769,17 +2769,17 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-void <a href='#SkCanvas_clipRRect'>clipRRect</a>(<a href='#SkCanvas_clipRRect'>const</a> <a href='SkRRect_Reference#SkRRect'>SkRRect</a>& <a href='SkRRect_Reference#SkRRect'>rrect</a>, <a href='SkRRect_Reference#SkRRect'>bool</a> <a href='SkRRect_Reference#SkRRect'>doAntiAlias</a> = <a href='SkRRect_Reference#SkRRect'>false</a>)
+void <a href='#SkCanvas_clipRRect'>clipRRect</a>(const <a href='SkRRect_Reference#SkRRect'>SkRRect</a>& rrect, bool doAntiAlias = false)
</pre>
Replaces clip with the intersection of clip and <a href='#SkCanvas_clipRRect_3_rrect'>rrect</a>,
-with an <a href='undocumented#Alias'>aliased</a> <a href='undocumented#Alias'>or</a> <a href='SkPaint_Reference#Anti_Alias'>anti-aliased</a> <a href='SkPaint_Reference#Anti_Alias'>clip</a> <a href='SkPaint_Reference#Anti_Alias'>edge</a>.
-<a href='#SkCanvas_clipRRect_3_rrect'>rrect</a> <a href='#SkCanvas_clipRRect_3_rrect'>is</a> <a href='#SkCanvas_clipRRect_3_rrect'>transformed</a> <a href='#SkCanvas_clipRRect_3_rrect'>by</a> <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> <a href='SkMatrix_Reference#SkMatrix'>before</a> <a href='SkMatrix_Reference#SkMatrix'>it</a> <a href='SkMatrix_Reference#SkMatrix'>is</a> <a href='SkMatrix_Reference#SkMatrix'>combined</a> <a href='SkMatrix_Reference#SkMatrix'>with</a> <a href='SkMatrix_Reference#SkMatrix'>clip</a>.
+with an <a href='undocumented#Alias'>aliased</a> or <a href='SkPaint_Reference#Anti_Alias'>anti-aliased</a> clip edge.
+<a href='#SkCanvas_clipRRect_3_rrect'>rrect</a> is transformed by <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> before it is combined with clip.
### Parameters
<table> <tr> <td><a name='SkCanvas_clipRRect_3_rrect'><code><strong>rrect</strong></code></a></td>
- <td><a href='SkRRect_Reference#SkRRect'>SkRRect</a> <a href='SkRRect_Reference#SkRRect'>to</a> <a href='SkRRect_Reference#SkRRect'>combine</a> <a href='SkRRect_Reference#SkRRect'>with</a> <a href='SkRRect_Reference#SkRRect'>clip</a></td>
+ <td><a href='SkRRect_Reference#SkRRect'>SkRRect</a> to combine with clip</td>
</tr>
<tr> <td><a name='SkCanvas_clipRRect_3_doAntiAlias'><code><strong>doAntiAlias</strong></code></a></td>
<td>true if clip is to be <a href='SkPaint_Reference#Anti_Alias'>anti-aliased</a></td>
@@ -2799,22 +2799,22 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-void <a href='#SkCanvas_clipPath'>clipPath</a>(<a href='#SkCanvas_clipPath'>const</a> <a href='SkPath_Reference#SkPath'>SkPath</a>& <a href='SkPath_Reference#Path'>path</a>, <a href='undocumented#SkClipOp'>SkClipOp</a> <a href='undocumented#SkClipOp'>op</a>, <a href='undocumented#SkClipOp'>bool</a> <a href='undocumented#SkClipOp'>doAntiAlias</a>)
+void <a href='#SkCanvas_clipPath'>clipPath</a>(const <a href='SkPath_Reference#SkPath'>SkPath</a>& <a href='SkPath_Reference#Path'>path</a>, <a href='undocumented#SkClipOp'>SkClipOp</a> op, bool doAntiAlias)
</pre>
Replaces clip with the intersection or difference of clip and <a href='#SkCanvas_clipPath_path'>path</a>,
-with an <a href='undocumented#Alias'>aliased</a> <a href='undocumented#Alias'>or</a> <a href='SkPaint_Reference#Anti_Alias'>anti-aliased</a> <a href='SkPaint_Reference#Anti_Alias'>clip</a> <a href='SkPaint_Reference#Anti_Alias'>edge</a>. <a href='SkPath_Reference#SkPath'>SkPath</a>::<a href='#SkPath_FillType'>FillType</a> <a href='#SkPath_FillType'>determines</a> <a href='#SkPath_FillType'>if</a> <a href='#SkCanvas_clipPath_path'>path</a>
-describes the area inside or outside its <a href='SkPath_Overview#Contour'>contours</a>; <a href='SkPath_Overview#Contour'>and</a> <a href='SkPath_Overview#Contour'>if</a> <a href='SkPath_Overview#Contour'>path contour</a> <a href='#SkCanvas_clipPath_path'>overlaps</a>
-itself or another <a href='SkPath_Overview#Contour'>path contour</a>, <a href='#SkCanvas_clipPath_path'>whether</a> <a href='#SkCanvas_clipPath_path'>the</a> <a href='#SkCanvas_clipPath_path'>overlaps</a> <a href='#SkCanvas_clipPath_path'>form</a> <a href='#SkCanvas_clipPath_path'>part</a> <a href='#SkCanvas_clipPath_path'>of</a> <a href='#SkCanvas_clipPath_path'>the</a> <a href='#SkCanvas_clipPath_path'>area</a>.
-<a href='#SkCanvas_clipPath_path'>path</a> <a href='#SkCanvas_clipPath_path'>is</a> <a href='#SkCanvas_clipPath_path'>transformed</a> <a href='#SkCanvas_clipPath_path'>by</a> <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> <a href='SkMatrix_Reference#SkMatrix'>before</a> <a href='SkMatrix_Reference#SkMatrix'>it</a> <a href='SkMatrix_Reference#SkMatrix'>is</a> <a href='SkMatrix_Reference#SkMatrix'>combined</a> <a href='SkMatrix_Reference#SkMatrix'>with</a> <a href='SkMatrix_Reference#SkMatrix'>clip</a>.
+with an <a href='undocumented#Alias'>aliased</a> or <a href='SkPaint_Reference#Anti_Alias'>anti-aliased</a> clip edge. <a href='SkPath_Reference#SkPath'>SkPath</a>::<a href='#SkPath_FillType'>FillType</a> determines if <a href='#SkCanvas_clipPath_path'>path</a>
+describes the area inside or outside its <a href='SkPath_Overview#Contour'>contours</a>; and if <a href='SkPath_Overview#Contour'>path contour</a> overlaps
+itself or another <a href='SkPath_Overview#Contour'>path contour</a>, whether the overlaps form part of the area.
+<a href='#SkCanvas_clipPath_path'>path</a> is transformed by <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> before it is combined with clip.
### Parameters
<table> <tr> <td><a name='SkCanvas_clipPath_path'><code><strong>path</strong></code></a></td>
- <td><a href='SkPath_Reference#SkPath'>SkPath</a> <a href='SkPath_Reference#SkPath'>to</a> <a href='SkPath_Reference#SkPath'>combine</a> <a href='SkPath_Reference#SkPath'>with</a> <a href='SkPath_Reference#SkPath'>clip</a></td>
+ <td><a href='SkPath_Reference#SkPath'>SkPath</a> to combine with clip</td>
</tr>
<tr> <td><a name='SkCanvas_clipPath_op'><code><strong>op</strong></code></a></td>
- <td><a href='undocumented#SkClipOp'>SkClipOp</a> <a href='undocumented#SkClipOp'>to</a> <a href='undocumented#SkClipOp'>apply</a> <a href='undocumented#SkClipOp'>to</a> <a href='undocumented#SkClipOp'>clip</a></td>
+ <td><a href='undocumented#SkClipOp'>SkClipOp</a> to apply to clip</td>
</tr>
<tr> <td><a name='SkCanvas_clipPath_doAntiAlias'><code><strong>doAntiAlias</strong></code></a></td>
<td>true if clip is to be <a href='SkPaint_Reference#Anti_Alias'>anti-aliased</a></td>
@@ -2823,11 +2823,11 @@
### Example
-<div><fiddle-embed name="ee47ae6b813bfaa55e1a7b7c053ed60d"><div>Top figure uses <a href='SkPath_Reference#SkPath'>SkPath</a>::<a href='#SkPath_kInverseWinding_FillType'>kInverseWinding_FillType</a> <a href='#SkPath_kInverseWinding_FillType'>and</a> <a href='undocumented#SkClipOp'>SkClipOp</a>::<a href='#SkClipOp_kDifference'>kDifference</a>;
-<a href='#SkClipOp_kDifference'>area</a> <a href='#SkClipOp_kDifference'>outside</a> <a href='#SkClipOp_kDifference'>clip</a> <a href='#SkClipOp_kDifference'>is</a> <a href='#SkClipOp_kDifference'>subtracted</a> <a href='#SkClipOp_kDifference'>from</a> <a href='undocumented#Circle'>circle</a>.
+<div><fiddle-embed name="ee47ae6b813bfaa55e1a7b7c053ed60d"><div>Top figure uses <a href='SkPath_Reference#SkPath'>SkPath</a>::<a href='#SkPath_kInverseWinding_FillType'>kInverseWinding_FillType</a> and <a href='undocumented#SkClipOp'>SkClipOp</a>::<a href='#SkClipOp_kDifference'>kDifference</a>;
+area outside clip is subtracted from <a href='undocumented#Circle'>circle</a>.
-<a href='undocumented#Circle'>Bottom</a> <a href='undocumented#Circle'>figure</a> <a href='undocumented#Circle'>uses</a> <a href='SkPath_Reference#SkPath'>SkPath</a>::<a href='#SkPath_kWinding_FillType'>kWinding_FillType</a> <a href='#SkPath_kWinding_FillType'>and</a> <a href='undocumented#SkClipOp'>SkClipOp</a>::<a href='#SkClipOp_kIntersect'>kIntersect</a>;
-<a href='#SkClipOp_kIntersect'>area</a> <a href='#SkClipOp_kIntersect'>inside</a> <a href='#SkClipOp_kIntersect'>clip</a> <a href='#SkClipOp_kIntersect'>is</a> <a href='#SkClipOp_kIntersect'>intersected</a> <a href='#SkClipOp_kIntersect'>with</a> <a href='undocumented#Circle'>circle</a>.
+Bottom figure uses <a href='SkPath_Reference#SkPath'>SkPath</a>::<a href='#SkPath_kWinding_FillType'>kWinding_FillType</a> and <a href='undocumented#SkClipOp'>SkClipOp</a>::<a href='#SkClipOp_kIntersect'>kIntersect</a>;
+area inside clip is intersected with <a href='undocumented#Circle'>circle</a>.
</div></fiddle-embed></div>
### See Also
@@ -2839,32 +2839,32 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-void <a href='#SkCanvas_clipPath'>clipPath</a>(<a href='#SkCanvas_clipPath'>const</a> <a href='SkPath_Reference#SkPath'>SkPath</a>& <a href='SkPath_Reference#Path'>path</a>, <a href='undocumented#SkClipOp'>SkClipOp</a> <a href='undocumented#SkClipOp'>op</a>)
+void <a href='#SkCanvas_clipPath'>clipPath</a>(const <a href='SkPath_Reference#SkPath'>SkPath</a>& <a href='SkPath_Reference#Path'>path</a>, <a href='undocumented#SkClipOp'>SkClipOp</a> op)
</pre>
Replaces clip with the intersection or difference of clip and <a href='#SkCanvas_clipPath_2_path'>path</a>.
-Resulting clip is <a href='undocumented#Alias'>aliased</a>; <a href='undocumented#Alias'>pixels</a> <a href='undocumented#Alias'>are</a> <a href='undocumented#Alias'>fully</a> <a href='undocumented#Alias'>contained</a> <a href='undocumented#Alias'>by</a> <a href='undocumented#Alias'>the</a> <a href='undocumented#Alias'>clip</a>.
-<a href='SkPath_Reference#SkPath'>SkPath</a>::<a href='#SkPath_FillType'>FillType</a> <a href='#SkPath_FillType'>determines</a> <a href='#SkPath_FillType'>if</a> <a href='#SkCanvas_clipPath_2_path'>path</a>
-describes the area inside or outside its <a href='SkPath_Overview#Contour'>contours</a>; <a href='SkPath_Overview#Contour'>and</a> <a href='SkPath_Overview#Contour'>if</a> <a href='SkPath_Overview#Contour'>path contour</a> <a href='#SkCanvas_clipPath_2_path'>overlaps</a>
-itself or another <a href='SkPath_Overview#Contour'>path contour</a>, <a href='#SkCanvas_clipPath_2_path'>whether</a> <a href='#SkCanvas_clipPath_2_path'>the</a> <a href='#SkCanvas_clipPath_2_path'>overlaps</a> <a href='#SkCanvas_clipPath_2_path'>form</a> <a href='#SkCanvas_clipPath_2_path'>part</a> <a href='#SkCanvas_clipPath_2_path'>of</a> <a href='#SkCanvas_clipPath_2_path'>the</a> <a href='#SkCanvas_clipPath_2_path'>area</a>.
-<a href='#SkCanvas_clipPath_2_path'>path</a> <a href='#SkCanvas_clipPath_2_path'>is</a> <a href='#SkCanvas_clipPath_2_path'>transformed</a> <a href='#SkCanvas_clipPath_2_path'>by</a> <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a>
+Resulting clip is <a href='undocumented#Alias'>aliased</a>; pixels are fully contained by the clip.
+<a href='SkPath_Reference#SkPath'>SkPath</a>::<a href='#SkPath_FillType'>FillType</a> determines if <a href='#SkCanvas_clipPath_2_path'>path</a>
+describes the area inside or outside its <a href='SkPath_Overview#Contour'>contours</a>; and if <a href='SkPath_Overview#Contour'>path contour</a> overlaps
+itself or another <a href='SkPath_Overview#Contour'>path contour</a>, whether the overlaps form part of the area.
+<a href='#SkCanvas_clipPath_2_path'>path</a> is transformed by <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a>
before it is combined with clip.
### Parameters
<table> <tr> <td><a name='SkCanvas_clipPath_2_path'><code><strong>path</strong></code></a></td>
- <td><a href='SkPath_Reference#SkPath'>SkPath</a> <a href='SkPath_Reference#SkPath'>to</a> <a href='SkPath_Reference#SkPath'>combine</a> <a href='SkPath_Reference#SkPath'>with</a> <a href='SkPath_Reference#SkPath'>clip</a></td>
+ <td><a href='SkPath_Reference#SkPath'>SkPath</a> to combine with clip</td>
</tr>
<tr> <td><a name='SkCanvas_clipPath_2_op'><code><strong>op</strong></code></a></td>
- <td><a href='undocumented#SkClipOp'>SkClipOp</a> <a href='undocumented#SkClipOp'>to</a> <a href='undocumented#SkClipOp'>apply</a> <a href='undocumented#SkClipOp'>to</a> <a href='undocumented#SkClipOp'>clip</a></td>
+ <td><a href='undocumented#SkClipOp'>SkClipOp</a> to apply to clip</td>
</tr>
</table>
### Example
-<div><fiddle-embed name="7856755c1bf8431c286c734b353345ad"><div>Overlapping <a href='SkRect_Reference#Rect'>Rects</a> <a href='SkRect_Reference#Rect'>form</a> <a href='SkRect_Reference#Rect'>a</a> <a href='SkRect_Reference#Rect'>clip</a>. <a href='SkRect_Reference#Rect'>When</a> <a href='SkRect_Reference#Rect'>clip</a> <a href='#Path_Fill_Type'>Path_Fill_Type</a> <a href='#Path_Fill_Type'>is</a> <a href='#Path_Fill_Type'>set</a> <a href='#Path_Fill_Type'>to</a>
-<a href='SkPath_Reference#SkPath'>SkPath</a>::<a href='#SkPath_kWinding_FillType'>kWinding_FillType</a>, <a href='#SkPath_kWinding_FillType'>the</a> <a href='#SkPath_kWinding_FillType'>overlap</a> <a href='#SkPath_kWinding_FillType'>is</a> <a href='#SkPath_kWinding_FillType'>included</a>. <a href='#SkPath_kWinding_FillType'>Set</a> <a href='#SkPath_kWinding_FillType'>to</a>
-<a href='SkPath_Reference#SkPath'>SkPath</a>::<a href='#SkPath_kEvenOdd_FillType'>kEvenOdd_FillType</a>, <a href='#SkPath_kEvenOdd_FillType'>the</a> <a href='#SkPath_kEvenOdd_FillType'>overlap</a> <a href='#SkPath_kEvenOdd_FillType'>is</a> <a href='#SkPath_kEvenOdd_FillType'>excluded</a> <a href='#SkPath_kEvenOdd_FillType'>and</a> <a href='#SkPath_kEvenOdd_FillType'>forms</a> <a href='#SkPath_kEvenOdd_FillType'>a</a> <a href='#SkPath_kEvenOdd_FillType'>hole</a>.
+<div><fiddle-embed name="7856755c1bf8431c286c734b353345ad"><div>Overlapping <a href='SkRect_Reference#Rect'>Rects</a> form a clip. When clip <a href='#Path_Fill_Type'>Path_Fill_Type</a> is set to
+<a href='SkPath_Reference#SkPath'>SkPath</a>::<a href='#SkPath_kWinding_FillType'>kWinding_FillType</a>, the overlap is included. Set to
+<a href='SkPath_Reference#SkPath'>SkPath</a>::<a href='#SkPath_kEvenOdd_FillType'>kEvenOdd_FillType</a>, the overlap is excluded and forms a hole.
</div></fiddle-embed></div>
### See Also
@@ -2876,20 +2876,20 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-void <a href='#SkCanvas_clipPath'>clipPath</a>(<a href='#SkCanvas_clipPath'>const</a> <a href='SkPath_Reference#SkPath'>SkPath</a>& <a href='SkPath_Reference#Path'>path</a>, <a href='SkPath_Reference#Path'>bool</a> <a href='SkPath_Reference#Path'>doAntiAlias</a> = <a href='SkPath_Reference#Path'>false</a>)
+void <a href='#SkCanvas_clipPath'>clipPath</a>(const <a href='SkPath_Reference#SkPath'>SkPath</a>& <a href='SkPath_Reference#Path'>path</a>, bool doAntiAlias = false)
</pre>
Replaces clip with the intersection of clip and <a href='#SkCanvas_clipPath_3_path'>path</a>.
-Resulting clip is <a href='undocumented#Alias'>aliased</a>; <a href='undocumented#Alias'>pixels</a> <a href='undocumented#Alias'>are</a> <a href='undocumented#Alias'>fully</a> <a href='undocumented#Alias'>contained</a> <a href='undocumented#Alias'>by</a> <a href='undocumented#Alias'>the</a> <a href='undocumented#Alias'>clip</a>.
-<a href='SkPath_Reference#SkPath'>SkPath</a>::<a href='#SkPath_FillType'>FillType</a> <a href='#SkPath_FillType'>determines</a> <a href='#SkPath_FillType'>if</a> <a href='#SkCanvas_clipPath_3_path'>path</a>
-describes the area inside or outside its <a href='SkPath_Overview#Contour'>contours</a>; <a href='SkPath_Overview#Contour'>and</a> <a href='SkPath_Overview#Contour'>if</a> <a href='SkPath_Overview#Contour'>path contour</a> <a href='#SkCanvas_clipPath_3_path'>overlaps</a>
-itself or another <a href='SkPath_Overview#Contour'>path contour</a>, <a href='#SkCanvas_clipPath_3_path'>whether</a> <a href='#SkCanvas_clipPath_3_path'>the</a> <a href='#SkCanvas_clipPath_3_path'>overlaps</a> <a href='#SkCanvas_clipPath_3_path'>form</a> <a href='#SkCanvas_clipPath_3_path'>part</a> <a href='#SkCanvas_clipPath_3_path'>of</a> <a href='#SkCanvas_clipPath_3_path'>the</a> <a href='#SkCanvas_clipPath_3_path'>area</a>.
-<a href='#SkCanvas_clipPath_3_path'>path</a> <a href='#SkCanvas_clipPath_3_path'>is</a> <a href='#SkCanvas_clipPath_3_path'>transformed</a> <a href='#SkCanvas_clipPath_3_path'>by</a> <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> <a href='SkMatrix_Reference#SkMatrix'>before</a> <a href='SkMatrix_Reference#SkMatrix'>it</a> <a href='SkMatrix_Reference#SkMatrix'>is</a> <a href='SkMatrix_Reference#SkMatrix'>combined</a> <a href='SkMatrix_Reference#SkMatrix'>with</a> <a href='SkMatrix_Reference#SkMatrix'>clip</a>.
+Resulting clip is <a href='undocumented#Alias'>aliased</a>; pixels are fully contained by the clip.
+<a href='SkPath_Reference#SkPath'>SkPath</a>::<a href='#SkPath_FillType'>FillType</a> determines if <a href='#SkCanvas_clipPath_3_path'>path</a>
+describes the area inside or outside its <a href='SkPath_Overview#Contour'>contours</a>; and if <a href='SkPath_Overview#Contour'>path contour</a> overlaps
+itself or another <a href='SkPath_Overview#Contour'>path contour</a>, whether the overlaps form part of the area.
+<a href='#SkCanvas_clipPath_3_path'>path</a> is transformed by <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> before it is combined with clip.
### Parameters
<table> <tr> <td><a name='SkCanvas_clipPath_3_path'><code><strong>path</strong></code></a></td>
- <td><a href='SkPath_Reference#SkPath'>SkPath</a> <a href='SkPath_Reference#SkPath'>to</a> <a href='SkPath_Reference#SkPath'>combine</a> <a href='SkPath_Reference#SkPath'>with</a> <a href='SkPath_Reference#SkPath'>clip</a></td>
+ <td><a href='SkPath_Reference#SkPath'>SkPath</a> to combine with clip</td>
</tr>
<tr> <td><a name='SkCanvas_clipPath_3_doAntiAlias'><code><strong>doAntiAlias</strong></code></a></td>
<td>true if clip is to be <a href='SkPaint_Reference#Anti_Alias'>anti-aliased</a></td>
@@ -2899,8 +2899,8 @@
### Example
<div><fiddle-embed name="187a7ae77a8176e417181411988534b6"><div>Clip loops over itself covering its center twice. When clip <a href='#Path_Fill_Type'>Path_Fill_Type</a>
-<a href='#Path_Fill_Type'>is</a> <a href='#Path_Fill_Type'>set</a> <a href='#Path_Fill_Type'>to</a> <a href='SkPath_Reference#SkPath'>SkPath</a>::<a href='#SkPath_kWinding_FillType'>kWinding_FillType</a>, <a href='#SkPath_kWinding_FillType'>the</a> <a href='#SkPath_kWinding_FillType'>overlap</a> <a href='#SkPath_kWinding_FillType'>is</a> <a href='#SkPath_kWinding_FillType'>included</a>. <a href='#SkPath_kWinding_FillType'>Set</a> <a href='#SkPath_kWinding_FillType'>to</a>
-<a href='SkPath_Reference#SkPath'>SkPath</a>::<a href='#SkPath_kEvenOdd_FillType'>kEvenOdd_FillType</a>, <a href='#SkPath_kEvenOdd_FillType'>the</a> <a href='#SkPath_kEvenOdd_FillType'>overlap</a> <a href='#SkPath_kEvenOdd_FillType'>is</a> <a href='#SkPath_kEvenOdd_FillType'>excluded</a> <a href='#SkPath_kEvenOdd_FillType'>and</a> <a href='#SkPath_kEvenOdd_FillType'>forms</a> <a href='#SkPath_kEvenOdd_FillType'>a</a> <a href='#SkPath_kEvenOdd_FillType'>hole</a>.
+is set to <a href='SkPath_Reference#SkPath'>SkPath</a>::<a href='#SkPath_kWinding_FillType'>kWinding_FillType</a>, the overlap is included. Set to
+<a href='SkPath_Reference#SkPath'>SkPath</a>::<a href='#SkPath_kEvenOdd_FillType'>kEvenOdd_FillType</a>, the overlap is excluded and forms a hole.
</div></fiddle-embed></div>
### See Also
@@ -2912,7 +2912,7 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-void <a href='#SkCanvas_setAllowSimplifyClip'>setAllowSimplifyClip</a>(<a href='#SkCanvas_setAllowSimplifyClip'>bool</a> <a href='#SkCanvas_setAllowSimplifyClip'>allow</a>)
+void <a href='#SkCanvas_setAllowSimplifyClip'>setAllowSimplifyClip</a>(bool allow)
</pre>
Experimental. For testing only.
@@ -2924,28 +2924,28 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-void <a href='#SkCanvas_clipRegion'>clipRegion</a>(<a href='#SkCanvas_clipRegion'>const</a> <a href='SkRegion_Reference#SkRegion'>SkRegion</a>& <a href='SkRegion_Reference#SkRegion'>deviceRgn</a>, <a href='undocumented#SkClipOp'>SkClipOp</a> <a href='undocumented#SkClipOp'>op</a> = <a href='undocumented#SkClipOp'>SkClipOp</a>::<a href='#SkClipOp_kIntersect'>kIntersect</a>)
+void <a href='#SkCanvas_clipRegion'>clipRegion</a>(const <a href='SkRegion_Reference#SkRegion'>SkRegion</a>& deviceRgn, <a href='undocumented#SkClipOp'>SkClipOp</a> op = <a href='undocumented#SkClipOp'>SkClipOp</a>::<a href='#SkClipOp_kIntersect'>kIntersect</a>)
</pre>
Replaces clip with the intersection or difference of clip and <a href='SkRegion_Reference#SkRegion'>SkRegion</a> <a href='#SkCanvas_clipRegion_deviceRgn'>deviceRgn</a>.
-Resulting clip is <a href='undocumented#Alias'>aliased</a>; <a href='undocumented#Alias'>pixels</a> <a href='undocumented#Alias'>are</a> <a href='undocumented#Alias'>fully</a> <a href='undocumented#Alias'>contained</a> <a href='undocumented#Alias'>by</a> <a href='undocumented#Alias'>the</a> <a href='undocumented#Alias'>clip</a>.
-<a href='#SkCanvas_clipRegion_deviceRgn'>deviceRgn</a> <a href='#SkCanvas_clipRegion_deviceRgn'>is</a> <a href='#SkCanvas_clipRegion_deviceRgn'>unaffected</a> <a href='#SkCanvas_clipRegion_deviceRgn'>by</a> <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a>.
+Resulting clip is <a href='undocumented#Alias'>aliased</a>; pixels are fully contained by the clip.
+<a href='#SkCanvas_clipRegion_deviceRgn'>deviceRgn</a> is unaffected by <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a>.
### Parameters
<table> <tr> <td><a name='SkCanvas_clipRegion_deviceRgn'><code><strong>deviceRgn</strong></code></a></td>
- <td><a href='SkRegion_Reference#SkRegion'>SkRegion</a> <a href='SkRegion_Reference#SkRegion'>to</a> <a href='SkRegion_Reference#SkRegion'>combine</a> <a href='SkRegion_Reference#SkRegion'>with</a> <a href='SkRegion_Reference#SkRegion'>clip</a></td>
+ <td><a href='SkRegion_Reference#SkRegion'>SkRegion</a> to combine with clip</td>
</tr>
<tr> <td><a name='SkCanvas_clipRegion_op'><code><strong>op</strong></code></a></td>
- <td><a href='undocumented#SkClipOp'>SkClipOp</a> <a href='undocumented#SkClipOp'>to</a> <a href='undocumented#SkClipOp'>apply</a> <a href='undocumented#SkClipOp'>to</a> <a href='undocumented#SkClipOp'>clip</a></td>
+ <td><a href='undocumented#SkClipOp'>SkClipOp</a> to apply to clip</td>
</tr>
</table>
### Example
-<div><fiddle-embed name="7bb57c0e456c5fda2c2cca4abb68b19e"><div><a href='SkRegion_Reference#Region'>region</a> <a href='SkRegion_Reference#Region'>is</a> <a href='SkRegion_Reference#Region'>unaffected</a> <a href='SkRegion_Reference#Region'>by</a> <a href='SkCanvas_Reference#Canvas'>canvas</a> <a href='SkCanvas_Reference#Canvas'>rotation</a>; <a href='SkCanvas_Reference#Canvas'>iRect</a> <a href='SkCanvas_Reference#Canvas'>is</a> <a href='SkCanvas_Reference#Canvas'>affected</a> <a href='SkCanvas_Reference#Canvas'>by</a> <a href='SkCanvas_Reference#Canvas'>canvas</a> <a href='SkCanvas_Reference#Canvas'>rotation</a>.
-<a href='SkCanvas_Reference#Canvas'>Both</a> <a href='SkCanvas_Reference#Canvas'>clips</a> <a href='SkCanvas_Reference#Canvas'>are</a> <a href='undocumented#Alias'>Aliased</a>; <a href='undocumented#Alias'>this</a> <a href='undocumented#Alias'>is</a> <a href='undocumented#Alias'>not</a> <a href='undocumented#Alias'>noticeable</a> <a href='undocumented#Alias'>on</a> <a href='SkRegion_Reference#Region'>Region</a> <a href='SkRegion_Reference#Region'>clip</a> <a href='SkRegion_Reference#Region'>because</a> <a href='SkRegion_Reference#Region'>it</a>
-<a href='SkRegion_Reference#Region'>aligns</a> <a href='SkRegion_Reference#Region'>to</a> <a href='undocumented#Pixel'>pixel</a> <a href='undocumented#Pixel'>boundaries</a>.
+<div><fiddle-embed name="7bb57c0e456c5fda2c2cca4abb68b19e"><div><a href='SkRegion_Reference#Region'>region</a> is unaffected by <a href='SkCanvas_Reference#Canvas'>canvas</a> rotation; iRect is affected by <a href='SkCanvas_Reference#Canvas'>canvas</a> rotation.
+Both clips are <a href='undocumented#Alias'>Aliased</a>; this is not noticeable on <a href='SkRegion_Reference#Region'>Region</a> clip because it
+aligns to <a href='undocumented#Pixel'>pixel</a> boundaries.
</div></fiddle-embed></div>
### See Also
@@ -2957,24 +2957,24 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-bool <a href='#SkCanvas_quickReject'>quickReject</a>(<a href='#SkCanvas_quickReject'>const</a> <a href='SkRect_Reference#SkRect'>SkRect</a>& <a href='SkRect_Reference#Rect'>rect</a>) <a href='SkRect_Reference#Rect'>const</a>
+bool <a href='#SkCanvas_quickReject'>quickReject</a>(const <a href='SkRect_Reference#SkRect'>SkRect</a>& <a href='SkRect_Reference#Rect'>rect</a>) const
</pre>
-Returns true if <a href='SkRect_Reference#SkRect'>SkRect</a> <a href='#SkCanvas_quickReject_rect'>rect</a>, <a href='#SkCanvas_quickReject_rect'>transformed</a> <a href='#SkCanvas_quickReject_rect'>by</a> <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a>, <a href='SkMatrix_Reference#SkMatrix'>can</a> <a href='SkMatrix_Reference#SkMatrix'>be</a> <a href='SkMatrix_Reference#SkMatrix'>quickly</a> <a href='SkMatrix_Reference#SkMatrix'>determined</a> <a href='SkMatrix_Reference#SkMatrix'>to</a> <a href='SkMatrix_Reference#SkMatrix'>be</a>
-outside of clip. May return false even though <a href='#SkCanvas_quickReject_rect'>rect</a> <a href='#SkCanvas_quickReject_rect'>is</a> <a href='#SkCanvas_quickReject_rect'>outside</a> <a href='#SkCanvas_quickReject_rect'>of</a> <a href='#SkCanvas_quickReject_rect'>clip</a>.
+Returns true if <a href='SkRect_Reference#SkRect'>SkRect</a> <a href='#SkCanvas_quickReject_rect'>rect</a>, transformed by <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a>, can be quickly determined to be
+outside of clip. May return false even though <a href='#SkCanvas_quickReject_rect'>rect</a> is outside of clip.
Use to check if an area to be drawn is clipped out, to skip subsequent draw calls.
### Parameters
<table> <tr> <td><a name='SkCanvas_quickReject_rect'><code><strong>rect</strong></code></a></td>
- <td><a href='SkRect_Reference#SkRect'>SkRect</a> <a href='SkRect_Reference#SkRect'>to</a> <a href='SkRect_Reference#SkRect'>compare</a> <a href='SkRect_Reference#SkRect'>with</a> <a href='SkRect_Reference#SkRect'>clip</a></td>
+ <td><a href='SkRect_Reference#SkRect'>SkRect</a> to compare with clip</td>
</tr>
</table>
### Return Value
-true if <a href='#SkCanvas_quickReject_rect'>rect</a>, <a href='#SkCanvas_quickReject_rect'>transformed</a> <a href='#SkCanvas_quickReject_rect'>by</a> <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a>, <a href='SkMatrix_Reference#SkMatrix'>does</a> <a href='SkMatrix_Reference#SkMatrix'>not</a> <a href='SkMatrix_Reference#SkMatrix'>intersect</a> <a href='SkMatrix_Reference#SkMatrix'>clip</a>
+true if <a href='#SkCanvas_quickReject_rect'>rect</a>, transformed by <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a>, does not intersect clip
### Example
@@ -2998,24 +2998,24 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-bool <a href='#SkCanvas_quickReject'>quickReject</a>(<a href='#SkCanvas_quickReject'>const</a> <a href='SkPath_Reference#SkPath'>SkPath</a>& <a href='SkPath_Reference#Path'>path</a>) <a href='SkPath_Reference#Path'>const</a>
+bool <a href='#SkCanvas_quickReject'>quickReject</a>(const <a href='SkPath_Reference#SkPath'>SkPath</a>& <a href='SkPath_Reference#Path'>path</a>) const
</pre>
-Returns true if <a href='#SkCanvas_quickReject_2_path'>path</a>, <a href='#SkCanvas_quickReject_2_path'>transformed</a> <a href='#SkCanvas_quickReject_2_path'>by</a> <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a>, <a href='SkMatrix_Reference#SkMatrix'>can</a> <a href='SkMatrix_Reference#SkMatrix'>be</a> <a href='SkMatrix_Reference#SkMatrix'>quickly</a> <a href='SkMatrix_Reference#SkMatrix'>determined</a> <a href='SkMatrix_Reference#SkMatrix'>to</a> <a href='SkMatrix_Reference#SkMatrix'>be</a>
-outside of clip. May return false even though <a href='#SkCanvas_quickReject_2_path'>path</a> <a href='#SkCanvas_quickReject_2_path'>is</a> <a href='#SkCanvas_quickReject_2_path'>outside</a> <a href='#SkCanvas_quickReject_2_path'>of</a> <a href='#SkCanvas_quickReject_2_path'>clip</a>.
+Returns true if <a href='#SkCanvas_quickReject_2_path'>path</a>, transformed by <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a>, can be quickly determined to be
+outside of clip. May return false even though <a href='#SkCanvas_quickReject_2_path'>path</a> is outside of clip.
Use to check if an area to be drawn is clipped out, to skip subsequent draw calls.
### Parameters
<table> <tr> <td><a name='SkCanvas_quickReject_2_path'><code><strong>path</strong></code></a></td>
- <td><a href='SkPath_Reference#SkPath'>SkPath</a> <a href='SkPath_Reference#SkPath'>to</a> <a href='SkPath_Reference#SkPath'>compare</a> <a href='SkPath_Reference#SkPath'>with</a> <a href='SkPath_Reference#SkPath'>clip</a></td>
+ <td><a href='SkPath_Reference#SkPath'>SkPath</a> to compare with clip</td>
</tr>
</table>
### Return Value
-true if <a href='#SkCanvas_quickReject_2_path'>path</a>, <a href='#SkCanvas_quickReject_2_path'>transformed</a> <a href='#SkCanvas_quickReject_2_path'>by</a> <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a>, <a href='SkMatrix_Reference#SkMatrix'>does</a> <a href='SkMatrix_Reference#SkMatrix'>not</a> <a href='SkMatrix_Reference#SkMatrix'>intersect</a> <a href='SkMatrix_Reference#SkMatrix'>clip</a>
+true if <a href='#SkCanvas_quickReject_2_path'>path</a>, transformed by <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a>, does not intersect clip
### Example
@@ -3039,13 +3039,13 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-<a href='SkRect_Reference#SkRect'>SkRect</a> <a href='#SkCanvas_getLocalClipBounds'>getLocalClipBounds</a>() <a href='#SkCanvas_getLocalClipBounds'>const</a>
+<a href='SkRect_Reference#SkRect'>SkRect</a> <a href='#SkCanvas_getLocalClipBounds'>getLocalClipBounds</a>() const
</pre>
-Returns bounds of clip, transformed by inverse of <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a>. <a href='SkMatrix_Reference#SkMatrix'>If</a> <a href='SkMatrix_Reference#SkMatrix'>clip</a> <a href='SkMatrix_Reference#SkMatrix'>is</a> <a href='SkMatrix_Reference#SkMatrix'>empty</a>,
-return <a href='SkRect_Reference#SkRect'>SkRect</a>::<a href='#SkRect_MakeEmpty'>MakeEmpty</a>, <a href='#SkRect_MakeEmpty'>where</a> <a href='#SkRect_MakeEmpty'>all</a> <a href='SkRect_Reference#SkRect'>SkRect</a> <a href='SkRect_Reference#SkRect'>sides</a> <a href='SkRect_Reference#SkRect'>equal</a> <a href='SkRect_Reference#SkRect'>zero</a>.
+Returns bounds of clip, transformed by inverse of <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a>. If clip is empty,
+return <a href='SkRect_Reference#SkRect'>SkRect</a>::<a href='#SkRect_MakeEmpty'>MakeEmpty</a>, where all <a href='SkRect_Reference#SkRect'>SkRect</a> sides equal zero.
-<a href='SkRect_Reference#SkRect'>SkRect</a> <a href='SkRect_Reference#SkRect'>returned</a> <a href='SkRect_Reference#SkRect'>is</a> <a href='SkRect_Reference#SkRect'>outset</a> <a href='SkRect_Reference#SkRect'>by</a> <a href='SkRect_Reference#SkRect'>one</a> <a href='SkRect_Reference#SkRect'>to</a> <a href='SkRect_Reference#SkRect'>account</a> <a href='SkRect_Reference#SkRect'>for</a> <a href='SkRect_Reference#SkRect'>partial</a> <a href='undocumented#Pixel'>pixel</a> <a href='undocumented#Pixel'>coverage</a> <a href='undocumented#Pixel'>if</a> <a href='undocumented#Pixel'>clip</a>
+<a href='SkRect_Reference#SkRect'>SkRect</a> returned is outset by one to account for partial <a href='undocumented#Pixel'>pixel</a> coverage if clip
is <a href='SkPaint_Reference#Anti_Alias'>anti-aliased</a>.
### Return Value
@@ -3054,10 +3054,10 @@
### Example
-<div><fiddle-embed name="7f60cb030d3f9b2473adbe3e34b19d91"><div>Initial bounds is <a href='undocumented#Device'>device</a> <a href='undocumented#Device'>bounds</a> <a href='undocumented#Device'>outset</a> <a href='undocumented#Device'>by</a> 1 <a href='undocumented#Device'>on</a> <a href='undocumented#Device'>all</a> <a href='undocumented#Device'>sides</a>.
-<a href='undocumented#Device'>Clipped</a> <a href='undocumented#Device'>bounds</a> <a href='undocumented#Device'>is</a> <a href='#SkCanvas_clipPath'>clipPath</a> <a href='#SkCanvas_clipPath'>bounds</a> <a href='#SkCanvas_clipPath'>outset</a> <a href='#SkCanvas_clipPath'>by</a> 1 <a href='#SkCanvas_clipPath'>on</a> <a href='#SkCanvas_clipPath'>all</a> <a href='#SkCanvas_clipPath'>sides</a>.
-<a href='#SkCanvas_clipPath'>Scaling</a> <a href='#SkCanvas_clipPath'>the</a> <a href='SkCanvas_Reference#Canvas'>canvas</a> <a href='SkCanvas_Reference#Canvas'>by</a> <a href='SkCanvas_Reference#Canvas'>two</a> <a href='SkCanvas_Reference#Canvas'>on</a> <a href='SkCanvas_Reference#Canvas'>both</a> <a href='SkCanvas_Reference#Canvas'>axes</a> <a href='SkCanvas_Reference#Canvas'>scales</a> <a href='SkCanvas_Reference#Canvas'>the</a> <a href='SkCanvas_Reference#Canvas'>local</a> <a href='SkCanvas_Reference#Canvas'>bounds</a> <a href='SkCanvas_Reference#Canvas'>by</a> 1/2
-<a href='SkCanvas_Reference#Canvas'>on</a> <a href='SkCanvas_Reference#Canvas'>both</a> <a href='SkCanvas_Reference#Canvas'>axes</a>.
+<div><fiddle-embed name="7f60cb030d3f9b2473adbe3e34b19d91"><div>Initial bounds is <a href='undocumented#Device'>device</a> bounds outset by 1 on all sides.
+Clipped bounds is <a href='#SkCanvas_clipPath'>clipPath</a> bounds outset by 1 on all sides.
+Scaling the <a href='SkCanvas_Reference#Canvas'>canvas</a> by two on both axes scales the local bounds by 1/2
+on both axes.
</div>
#### Example Output
@@ -3079,25 +3079,25 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-bool <a href='#SkCanvas_getLocalClipBounds'>getLocalClipBounds</a>(<a href='SkRect_Reference#SkRect'>SkRect</a>* <a href='SkRect_Reference#SkRect'>bounds</a>) <a href='SkRect_Reference#SkRect'>const</a>
+bool <a href='#SkCanvas_getLocalClipBounds'>getLocalClipBounds</a>(<a href='SkRect_Reference#SkRect'>SkRect</a>* bounds) const
</pre>
-Returns <a href='#SkCanvas_getLocalClipBounds_2_bounds'>bounds</a> <a href='#SkCanvas_getLocalClipBounds_2_bounds'>of</a> <a href='#SkCanvas_getLocalClipBounds_2_bounds'>clip</a>, <a href='#SkCanvas_getLocalClipBounds_2_bounds'>transformed</a> <a href='#SkCanvas_getLocalClipBounds_2_bounds'>by</a> <a href='#SkCanvas_getLocalClipBounds_2_bounds'>inverse</a> <a href='#SkCanvas_getLocalClipBounds_2_bounds'>of</a> <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a>. <a href='SkMatrix_Reference#SkMatrix'>If</a> <a href='SkMatrix_Reference#SkMatrix'>clip</a> <a href='SkMatrix_Reference#SkMatrix'>is</a> <a href='SkMatrix_Reference#SkMatrix'>empty</a>,
-return false, and set <a href='#SkCanvas_getLocalClipBounds_2_bounds'>bounds</a> <a href='#SkCanvas_getLocalClipBounds_2_bounds'>to</a> <a href='SkRect_Reference#SkRect'>SkRect</a>::<a href='#SkRect_MakeEmpty'>MakeEmpty</a>, <a href='#SkRect_MakeEmpty'>where</a> <a href='#SkRect_MakeEmpty'>all</a> <a href='SkRect_Reference#SkRect'>SkRect</a> <a href='SkRect_Reference#SkRect'>sides</a> <a href='SkRect_Reference#SkRect'>equal</a> <a href='SkRect_Reference#SkRect'>zero</a>.
+Returns <a href='#SkCanvas_getLocalClipBounds_2_bounds'>bounds</a> of clip, transformed by inverse of <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a>. If clip is empty,
+return false, and set <a href='#SkCanvas_getLocalClipBounds_2_bounds'>bounds</a> to <a href='SkRect_Reference#SkRect'>SkRect</a>::<a href='#SkRect_MakeEmpty'>MakeEmpty</a>, where all <a href='SkRect_Reference#SkRect'>SkRect</a> sides equal zero.
-<a href='#SkCanvas_getLocalClipBounds_2_bounds'>bounds</a> <a href='#SkCanvas_getLocalClipBounds_2_bounds'>is</a> <a href='#SkCanvas_getLocalClipBounds_2_bounds'>outset</a> <a href='#SkCanvas_getLocalClipBounds_2_bounds'>by</a> <a href='#SkCanvas_getLocalClipBounds_2_bounds'>one</a> <a href='#SkCanvas_getLocalClipBounds_2_bounds'>to</a> <a href='#SkCanvas_getLocalClipBounds_2_bounds'>account</a> <a href='#SkCanvas_getLocalClipBounds_2_bounds'>for</a> <a href='#SkCanvas_getLocalClipBounds_2_bounds'>partial</a> <a href='undocumented#Pixel'>pixel</a> <a href='undocumented#Pixel'>coverage</a> <a href='undocumented#Pixel'>if</a> <a href='undocumented#Pixel'>clip</a>
+<a href='#SkCanvas_getLocalClipBounds_2_bounds'>bounds</a> is outset by one to account for partial <a href='undocumented#Pixel'>pixel</a> coverage if clip
is <a href='SkPaint_Reference#Anti_Alias'>anti-aliased</a>.
### Parameters
<table> <tr> <td><a name='SkCanvas_getLocalClipBounds_2_bounds'><code><strong>bounds</strong></code></a></td>
- <td><a href='SkRect_Reference#SkRect'>SkRect</a> <a href='SkRect_Reference#SkRect'>of</a> <a href='SkRect_Reference#SkRect'>clip</a> <a href='SkRect_Reference#SkRect'>in</a> <a href='SkRect_Reference#SkRect'>local</a> <a href='SkRect_Reference#SkRect'>coordinates</a></td>
+ <td><a href='SkRect_Reference#SkRect'>SkRect</a> of clip in local coordinates</td>
</tr>
</table>
### Return Value
-true if clip <a href='#SkCanvas_getLocalClipBounds_2_bounds'>bounds</a> <a href='#SkCanvas_getLocalClipBounds_2_bounds'>is</a> <a href='#SkCanvas_getLocalClipBounds_2_bounds'>not</a> <a href='#SkCanvas_getLocalClipBounds_2_bounds'>empty</a>
+true if clip <a href='#SkCanvas_getLocalClipBounds_2_bounds'>bounds</a> is not empty
### Example
@@ -3121,24 +3121,24 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-<a href='SkIRect_Reference#SkIRect'>SkIRect</a> <a href='#SkCanvas_getDeviceClipBounds'>getDeviceClipBounds</a>() <a href='#SkCanvas_getDeviceClipBounds'>const</a>
+<a href='SkIRect_Reference#SkIRect'>SkIRect</a> <a href='#SkCanvas_getDeviceClipBounds'>getDeviceClipBounds</a>() const
</pre>
-Returns <a href='SkIRect_Reference#SkIRect'>SkIRect</a> <a href='SkIRect_Reference#SkIRect'>bounds</a> <a href='SkIRect_Reference#SkIRect'>of</a> <a href='SkIRect_Reference#SkIRect'>clip</a>, <a href='SkIRect_Reference#SkIRect'>unaffected</a> <a href='SkIRect_Reference#SkIRect'>by</a> <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a>. <a href='SkMatrix_Reference#SkMatrix'>If</a> <a href='SkMatrix_Reference#SkMatrix'>clip</a> <a href='SkMatrix_Reference#SkMatrix'>is</a> <a href='SkMatrix_Reference#SkMatrix'>empty</a>,
-return <a href='SkRect_Reference#SkRect'>SkRect</a>::<a href='#SkRect_MakeEmpty'>MakeEmpty</a>, <a href='#SkRect_MakeEmpty'>where</a> <a href='#SkRect_MakeEmpty'>all</a> <a href='SkRect_Reference#SkRect'>SkRect</a> <a href='SkRect_Reference#SkRect'>sides</a> <a href='SkRect_Reference#SkRect'>equal</a> <a href='SkRect_Reference#SkRect'>zero</a>.
+Returns <a href='SkIRect_Reference#SkIRect'>SkIRect</a> bounds of clip, unaffected by <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a>. If clip is empty,
+return <a href='SkRect_Reference#SkRect'>SkRect</a>::<a href='#SkRect_MakeEmpty'>MakeEmpty</a>, where all <a href='SkRect_Reference#SkRect'>SkRect</a> sides equal zero.
-Unlike <a href='#SkCanvas_getLocalClipBounds'>getLocalClipBounds</a>(), <a href='#SkCanvas_getLocalClipBounds'>returned</a> <a href='SkIRect_Reference#SkIRect'>SkIRect</a> <a href='SkIRect_Reference#SkIRect'>is</a> <a href='SkIRect_Reference#SkIRect'>not</a> <a href='SkIRect_Reference#SkIRect'>outset</a>.
+Unlike <a href='#SkCanvas_getLocalClipBounds'>getLocalClipBounds</a>(), returned <a href='SkIRect_Reference#SkIRect'>SkIRect</a> is not outset.
### Return Value
-bounds of clip in <a href='undocumented#SkBaseDevice'>SkBaseDevice</a> <a href='undocumented#SkBaseDevice'>coordinates</a>
+bounds of clip in <a href='undocumented#SkBaseDevice'>SkBaseDevice</a> coordinates
### Example
-<div><fiddle-embed name="556832ac5711af662a98c21c547185e9"><div>Initial bounds is <a href='undocumented#Device'>device</a> <a href='undocumented#Device'>bounds</a>, <a href='undocumented#Device'>not</a> <a href='undocumented#Device'>outset</a>.
-<a href='undocumented#Device'>Clipped</a> <a href='undocumented#Device'>bounds</a> <a href='undocumented#Device'>is</a> <a href='#SkCanvas_clipPath'>clipPath</a> <a href='#SkCanvas_clipPath'>bounds</a>, <a href='#SkCanvas_clipPath'>not</a> <a href='#SkCanvas_clipPath'>outset</a>.
-<a href='#SkCanvas_clipPath'>Scaling</a> <a href='#SkCanvas_clipPath'>the</a> <a href='SkCanvas_Reference#Canvas'>canvas</a> <a href='SkCanvas_Reference#Canvas'>by</a> 1/2 <a href='SkCanvas_Reference#Canvas'>on</a> <a href='SkCanvas_Reference#Canvas'>both</a> <a href='SkCanvas_Reference#Canvas'>axes</a> <a href='SkCanvas_Reference#Canvas'>scales</a> <a href='SkCanvas_Reference#Canvas'>the</a> <a href='undocumented#Device'>device</a> <a href='undocumented#Device'>bounds</a> <a href='undocumented#Device'>by</a> 1/2
-<a href='undocumented#Device'>on</a> <a href='undocumented#Device'>both</a> <a href='undocumented#Device'>axes</a>.
+<div><fiddle-embed name="556832ac5711af662a98c21c547185e9"><div>Initial bounds is <a href='undocumented#Device'>device</a> bounds, not outset.
+Clipped bounds is <a href='#SkCanvas_clipPath'>clipPath</a> bounds, not outset.
+Scaling the <a href='SkCanvas_Reference#Canvas'>canvas</a> by 1/2 on both axes scales the <a href='undocumented#Device'>device</a> bounds by 1/2
+on both axes.
</div>
#### Example Output
@@ -3160,24 +3160,24 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-bool <a href='#SkCanvas_getDeviceClipBounds'>getDeviceClipBounds</a>(<a href='SkIRect_Reference#SkIRect'>SkIRect</a>* <a href='SkIRect_Reference#SkIRect'>bounds</a>) <a href='SkIRect_Reference#SkIRect'>const</a>
+bool <a href='#SkCanvas_getDeviceClipBounds'>getDeviceClipBounds</a>(<a href='SkIRect_Reference#SkIRect'>SkIRect</a>* bounds) const
</pre>
-Returns <a href='SkIRect_Reference#SkIRect'>SkIRect</a> <a href='#SkCanvas_getDeviceClipBounds_2_bounds'>bounds</a> <a href='#SkCanvas_getDeviceClipBounds_2_bounds'>of</a> <a href='#SkCanvas_getDeviceClipBounds_2_bounds'>clip</a>, <a href='#SkCanvas_getDeviceClipBounds_2_bounds'>unaffected</a> <a href='#SkCanvas_getDeviceClipBounds_2_bounds'>by</a> <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a>. <a href='SkMatrix_Reference#SkMatrix'>If</a> <a href='SkMatrix_Reference#SkMatrix'>clip</a> <a href='SkMatrix_Reference#SkMatrix'>is</a> <a href='SkMatrix_Reference#SkMatrix'>empty</a>,
-return false, and set <a href='#SkCanvas_getDeviceClipBounds_2_bounds'>bounds</a> <a href='#SkCanvas_getDeviceClipBounds_2_bounds'>to</a> <a href='SkRect_Reference#SkRect'>SkRect</a>::<a href='#SkRect_MakeEmpty'>MakeEmpty</a>, <a href='#SkRect_MakeEmpty'>where</a> <a href='#SkRect_MakeEmpty'>all</a> <a href='SkRect_Reference#SkRect'>SkRect</a> <a href='SkRect_Reference#SkRect'>sides</a> <a href='SkRect_Reference#SkRect'>equal</a> <a href='SkRect_Reference#SkRect'>zero</a>.
+Returns <a href='SkIRect_Reference#SkIRect'>SkIRect</a> <a href='#SkCanvas_getDeviceClipBounds_2_bounds'>bounds</a> of clip, unaffected by <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a>. If clip is empty,
+return false, and set <a href='#SkCanvas_getDeviceClipBounds_2_bounds'>bounds</a> to <a href='SkRect_Reference#SkRect'>SkRect</a>::<a href='#SkRect_MakeEmpty'>MakeEmpty</a>, where all <a href='SkRect_Reference#SkRect'>SkRect</a> sides equal zero.
-Unlike <a href='#SkCanvas_getLocalClipBounds'>getLocalClipBounds</a>(), <a href='#SkCanvas_getDeviceClipBounds_2_bounds'>bounds</a> <a href='#SkCanvas_getDeviceClipBounds_2_bounds'>is</a> <a href='#SkCanvas_getDeviceClipBounds_2_bounds'>not</a> <a href='#SkCanvas_getDeviceClipBounds_2_bounds'>outset</a>.
+Unlike <a href='#SkCanvas_getLocalClipBounds'>getLocalClipBounds</a>(), <a href='#SkCanvas_getDeviceClipBounds_2_bounds'>bounds</a> is not outset.
### Parameters
<table> <tr> <td><a name='SkCanvas_getDeviceClipBounds_2_bounds'><code><strong>bounds</strong></code></a></td>
- <td><a href='SkRect_Reference#SkRect'>SkRect</a> <a href='SkRect_Reference#SkRect'>of</a> <a href='SkRect_Reference#SkRect'>clip</a> <a href='SkRect_Reference#SkRect'>in</a> <a href='undocumented#Device'>device</a> <a href='undocumented#Device'>coordinates</a></td>
+ <td><a href='SkRect_Reference#SkRect'>SkRect</a> of clip in <a href='undocumented#Device'>device</a> coordinates</td>
</tr>
</table>
### Return Value
-true if clip <a href='#SkCanvas_getDeviceClipBounds_2_bounds'>bounds</a> <a href='#SkCanvas_getDeviceClipBounds_2_bounds'>is</a> <a href='#SkCanvas_getDeviceClipBounds_2_bounds'>not</a> <a href='#SkCanvas_getDeviceClipBounds_2_bounds'>empty</a>
+true if clip <a href='#SkCanvas_getDeviceClipBounds_2_bounds'>bounds</a> is not empty
### Example
@@ -3203,19 +3203,19 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-void <a href='#SkCanvas_drawColor'>drawColor</a>(<a href='SkColor_Reference#SkColor'>SkColor</a> <a href='SkColor_Reference#Color'>color</a>, <a href='SkBlendMode_Reference#SkBlendMode'>SkBlendMode</a> <a href='SkBlendMode_Reference#SkBlendMode'>mode</a> = <a href='SkBlendMode_Reference#SkBlendMode'>SkBlendMode</a>::<a href='#SkBlendMode_kSrcOver'>kSrcOver</a>)
+void <a href='#SkCanvas_drawColor'>drawColor</a>(<a href='SkColor_Reference#SkColor'>SkColor</a> <a href='SkColor_Reference#Color'>color</a>, <a href='SkBlendMode_Reference#SkBlendMode'>SkBlendMode</a> mode = <a href='SkBlendMode_Reference#SkBlendMode'>SkBlendMode</a>::<a href='#SkBlendMode_kSrcOver'>kSrcOver</a>)
</pre>
Fills clip with <a href='#SkCanvas_drawColor_color'>color color</a>.
-<a href='#SkCanvas_drawColor_mode'>mode</a> <a href='#SkCanvas_drawColor_mode'>determines</a> <a href='#SkCanvas_drawColor_mode'>how</a> <a href='#SkCanvas_drawColor_mode'>ARGB</a> <a href='#SkCanvas_drawColor_mode'>is</a> <a href='#SkCanvas_drawColor_mode'>combined</a> <a href='#SkCanvas_drawColor_mode'>with</a> <a href='#SkCanvas_drawColor_mode'>destination</a>.
+<a href='#SkCanvas_drawColor_mode'>mode</a> determines how ARGB is combined with destination.
### Parameters
<table> <tr> <td><a name='SkCanvas_drawColor_color'><code><strong>color</strong></code></a></td>
- <td><a href='undocumented#Unpremultiply'>unpremultiplied</a> <a href='undocumented#Unpremultiply'>ARGB</a></td>
+ <td><a href='undocumented#Unpremultiply'>unpremultiplied</a> ARGB</td>
</tr>
<tr> <td><a name='SkCanvas_drawColor_mode'><code><strong>mode</strong></code></a></td>
- <td><a href='SkBlendMode_Reference#SkBlendMode'>SkBlendMode</a> <a href='SkBlendMode_Reference#SkBlendMode'>used</a> <a href='SkBlendMode_Reference#SkBlendMode'>to</a> <a href='SkBlendMode_Reference#SkBlendMode'>combine</a> <a href='SkBlendMode_Reference#SkBlendMode'>source</a> <a href='#SkCanvas_drawColor_color'>color</a> <a href='#SkCanvas_drawColor_color'>and</a> <a href='#SkCanvas_drawColor_color'>destination</a></td>
+ <td><a href='SkBlendMode_Reference#SkBlendMode'>SkBlendMode</a> used to combine source <a href='#SkCanvas_drawColor_color'>color</a> and destination</td>
</tr>
</table>
@@ -3235,13 +3235,13 @@
void clear(<a href='SkColor_Reference#SkColor'>SkColor</a> <a href='SkColor_Reference#Color'>color</a>)
</pre>
-Fills clip with <a href='#SkCanvas_clear_color'>color color</a> <a href='#SkCanvas_clear_color'>using</a> <a href='SkBlendMode_Reference#SkBlendMode'>SkBlendMode</a>::<a href='#SkBlendMode_kSrc'>kSrc</a>.
+Fills clip with <a href='#SkCanvas_clear_color'>color color</a> using <a href='SkBlendMode_Reference#SkBlendMode'>SkBlendMode</a>::<a href='#SkBlendMode_kSrc'>kSrc</a>.
This has the effect of replacing all pixels contained by clip with <a href='#SkCanvas_clear_color'>color</a>.
### Parameters
<table> <tr> <td><a name='SkCanvas_clear_color'><code><strong>color</strong></code></a></td>
- <td><a href='undocumented#Unpremultiply'>unpremultiplied</a> <a href='undocumented#Unpremultiply'>ARGB</a></td>
+ <td><a href='undocumented#Unpremultiply'>unpremultiplied</a> ARGB</td>
</tr>
</table>
@@ -3261,17 +3261,17 @@
void <a href='#SkCanvas_discard'>discard()</a>
</pre>
-Makes <a href='SkCanvas_Reference#SkCanvas'>SkCanvas</a> <a href='SkCanvas_Reference#SkCanvas'>contents</a> <a href='SkCanvas_Reference#SkCanvas'>undefined</a>. <a href='SkCanvas_Reference#SkCanvas'>Subsequent</a> <a href='SkCanvas_Reference#SkCanvas'>calls</a> <a href='SkCanvas_Reference#SkCanvas'>that</a> <a href='SkCanvas_Reference#SkCanvas'>read</a> <a href='SkCanvas_Reference#SkCanvas'>SkCanvas</a> <a href='SkCanvas_Reference#SkCanvas'>pixels</a>,
-such as drawing with <a href='SkBlendMode_Reference#SkBlendMode'>SkBlendMode</a>, <a href='SkBlendMode_Reference#SkBlendMode'>return</a> <a href='SkBlendMode_Reference#SkBlendMode'>undefined</a> <a href='SkBlendMode_Reference#SkBlendMode'>results</a>. <a href='#SkCanvas_discard'>discard()</a> <a href='#SkCanvas_discard'>does</a>
+Makes <a href='SkCanvas_Reference#SkCanvas'>SkCanvas</a> contents undefined. Subsequent calls that read <a href='SkCanvas_Reference#SkCanvas'>SkCanvas</a> pixels,
+such as drawing with <a href='SkBlendMode_Reference#SkBlendMode'>SkBlendMode</a>, return undefined results. <a href='#SkCanvas_discard'>discard()</a> does
not change clip or <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a>.
-<a href='#SkCanvas_discard'>discard()</a> <a href='#SkCanvas_discard'>may</a> <a href='#SkCanvas_discard'>do</a> <a href='#SkCanvas_discard'>nothing</a>, <a href='#SkCanvas_discard'>depending</a> <a href='#SkCanvas_discard'>on</a> <a href='#SkCanvas_discard'>the</a> <a href='#SkCanvas_discard'>implementation</a> <a href='#SkCanvas_discard'>of</a> <a href='SkSurface_Reference#SkSurface'>SkSurface</a> <a href='SkSurface_Reference#SkSurface'>or</a> <a href='undocumented#SkBaseDevice'>SkBaseDevice</a>
+<a href='#SkCanvas_discard'>discard()</a> may do nothing, depending on the implementation of <a href='SkSurface_Reference#SkSurface'>SkSurface</a> or <a href='undocumented#SkBaseDevice'>SkBaseDevice</a>
that created <a href='SkCanvas_Reference#SkCanvas'>SkCanvas</a>.
-<a href='#SkCanvas_discard'>discard()</a> <a href='#SkCanvas_discard'>allows</a> <a href='#SkCanvas_discard'>optimized</a> <a href='#SkCanvas_discard'>performance</a> <a href='#SkCanvas_discard'>on</a> <a href='#SkCanvas_discard'>subsequent</a> <a href='#SkCanvas_discard'>draws</a> <a href='#SkCanvas_discard'>by</a> <a href='#SkCanvas_discard'>removing</a>
-cached <a href='undocumented#Data'>data</a> <a href='undocumented#Data'>associated</a> <a href='undocumented#Data'>with</a> <a href='SkSurface_Reference#SkSurface'>SkSurface</a> <a href='SkSurface_Reference#SkSurface'>or</a> <a href='undocumented#SkBaseDevice'>SkBaseDevice</a>.
-It is not necessary to call <a href='#SkCanvas_discard'>discard()</a> <a href='#SkCanvas_discard'>once</a> <a href='#SkCanvas_discard'>done</a> <a href='#SkCanvas_discard'>with</a> <a href='SkCanvas_Reference#SkCanvas'>SkCanvas</a>;
-any cached <a href='undocumented#Data'>data</a> <a href='undocumented#Data'>is</a> <a href='undocumented#Data'>deleted</a> <a href='undocumented#Data'>when</a> <a href='undocumented#Data'>owning</a> <a href='SkSurface_Reference#SkSurface'>SkSurface</a> <a href='SkSurface_Reference#SkSurface'>or</a> <a href='undocumented#SkBaseDevice'>SkBaseDevice</a> <a href='undocumented#SkBaseDevice'>is</a> <a href='undocumented#SkBaseDevice'>deleted</a>.
+<a href='#SkCanvas_discard'>discard()</a> allows optimized performance on subsequent draws by removing
+cached <a href='undocumented#Data'>data</a> associated with <a href='SkSurface_Reference#SkSurface'>SkSurface</a> or <a href='undocumented#SkBaseDevice'>SkBaseDevice</a>.
+It is not necessary to call <a href='#SkCanvas_discard'>discard()</a> once done with <a href='SkCanvas_Reference#SkCanvas'>SkCanvas</a>;
+any cached <a href='undocumented#Data'>data</a> is deleted when owning <a href='SkSurface_Reference#SkSurface'>SkSurface</a> or <a href='undocumented#SkBaseDevice'>SkBaseDevice</a> is deleted.
### See Also
@@ -3282,12 +3282,12 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-void <a href='#SkCanvas_drawPaint'>drawPaint</a>(<a href='#SkCanvas_drawPaint'>const</a> <a href='SkPaint_Reference#SkPaint'>SkPaint</a>& <a href='SkPaint_Reference#Paint'>paint</a>)
+void <a href='#SkCanvas_drawPaint'>drawPaint</a>(const <a href='SkPaint_Reference#SkPaint'>SkPaint</a>& <a href='SkPaint_Reference#Paint'>paint</a>)
</pre>
-Fills clip with <a href='SkPaint_Reference#SkPaint'>SkPaint</a> <a href='#SkCanvas_drawPaint_paint'>paint</a>. <a href='SkPaint_Reference#SkPaint'>SkPaint</a> <a href='SkPaint_Reference#SkPaint'>components</a> <a href='undocumented#SkMaskFilter'>SkMaskFilter</a>, <a href='undocumented#SkShader'>SkShader</a>,
-<a href='undocumented#SkColorFilter'>SkColorFilter</a>, <a href='undocumented#SkImageFilter'>SkImageFilter</a>, <a href='undocumented#SkImageFilter'>and</a> <a href='SkBlendMode_Reference#SkBlendMode'>SkBlendMode</a> <a href='SkBlendMode_Reference#SkBlendMode'>affect</a> <a href='SkBlendMode_Reference#SkBlendMode'>drawing</a>;
-<a href='undocumented#SkPathEffect'>SkPathEffect</a> <a href='undocumented#SkPathEffect'>in</a> <a href='#SkCanvas_drawPaint_paint'>paint</a> <a href='#SkCanvas_drawPaint_paint'>is</a> <a href='#SkCanvas_drawPaint_paint'>ignored</a>.
+Fills clip with <a href='SkPaint_Reference#SkPaint'>SkPaint</a> <a href='#SkCanvas_drawPaint_paint'>paint</a>. <a href='SkPaint_Reference#SkPaint'>SkPaint</a> components <a href='undocumented#SkMaskFilter'>SkMaskFilter</a>, <a href='undocumented#SkShader'>SkShader</a>,
+<a href='undocumented#SkColorFilter'>SkColorFilter</a>, <a href='undocumented#SkImageFilter'>SkImageFilter</a>, and <a href='SkBlendMode_Reference#SkBlendMode'>SkBlendMode</a> affect drawing;
+<a href='undocumented#SkPathEffect'>SkPathEffect</a> in <a href='#SkCanvas_drawPaint_paint'>paint</a> is ignored.
### Parameters
@@ -3316,8 +3316,8 @@
};
</pre>
-Selects if an array of <a href='SkPoint_Reference#Point'>points</a> <a href='SkPoint_Reference#Point'>are</a> <a href='SkPoint_Reference#Point'>drawn</a> <a href='SkPoint_Reference#Point'>as</a> <a href='SkPoint_Reference#Point'>discrete</a> <a href='SkPoint_Reference#Point'>points</a>, <a href='SkPoint_Reference#Point'>as</a> <a href='undocumented#Line'>lines</a>, <a href='undocumented#Line'>or</a> <a href='undocumented#Line'>as</a>
-<a href='undocumented#Line'>an</a> <a href='undocumented#Line'>open</a> <a href='undocumented#Line'>polygon</a>.
+Selects if an array of <a href='SkPoint_Reference#Point'>points</a> are drawn as discrete <a href='SkPoint_Reference#Point'>points</a>, as <a href='undocumented#Line'>lines</a>, or as
+an open polygon.
### Constants
@@ -3348,9 +3348,9 @@
### Example
<div><fiddle-embed name="292b4b2008961b6f612434d3121fc4ce"><div>The upper left corner shows three squares when drawn as <a href='SkPoint_Reference#Point'>points</a>.
-<a href='SkPoint_Reference#Point'>The</a> <a href='SkPoint_Reference#Point'>upper</a> <a href='SkPoint_Reference#Point'>right</a> <a href='SkPoint_Reference#Point'>corner</a> <a href='SkPoint_Reference#Point'>shows</a> <a href='SkPoint_Reference#Point'>one</a> <a href='undocumented#Line'>line</a>; <a href='undocumented#Line'>when</a> <a href='undocumented#Line'>drawn</a> <a href='undocumented#Line'>as</a> <a href='undocumented#Line'>lines</a>, <a href='undocumented#Line'>two</a> <a href='SkPoint_Reference#Point'>points</a> <a href='SkPoint_Reference#Point'>are</a> <a href='SkPoint_Reference#Point'>required</a> <a href='SkPoint_Reference#Point'>per</a> <a href='undocumented#Line'>line</a>.
-<a href='undocumented#Line'>The</a> <a href='undocumented#Line'>lower</a> <a href='undocumented#Line'>right</a> <a href='undocumented#Line'>corner</a> <a href='undocumented#Line'>shows</a> <a href='undocumented#Line'>two</a> <a href='undocumented#Line'>lines</a>; <a href='undocumented#Line'>when</a> <a href='undocumented#Line'>draw</a> <a href='undocumented#Line'>as</a> <a href='undocumented#Line'>polygon</a>, <a href='undocumented#Line'>no</a> <a href='undocumented#Line'>miter</a> <a href='undocumented#Line'>is</a> <a href='undocumented#Line'>drawn</a> <a href='undocumented#Line'>at</a> <a href='undocumented#Line'>the</a> <a href='undocumented#Line'>corner</a>.
-<a href='undocumented#Line'>The</a> <a href='undocumented#Line'>lower</a> <a href='undocumented#Line'>left</a> <a href='undocumented#Line'>corner</a> <a href='undocumented#Line'>shows</a> <a href='undocumented#Line'>two</a> <a href='undocumented#Line'>lines</a> <a href='undocumented#Line'>with</a> <a href='undocumented#Line'>a</a> <a href='undocumented#Line'>miter</a> <a href='undocumented#Line'>when</a> <a href='SkPath_Reference#Path'>path</a> <a href='SkPath_Reference#Path'>contains</a> <a href='SkPath_Reference#Path'>polygon</a>.
+The upper right corner shows one <a href='undocumented#Line'>line</a>; when drawn as <a href='undocumented#Line'>lines</a>, two <a href='SkPoint_Reference#Point'>points</a> are required per <a href='undocumented#Line'>line</a>.
+The lower right corner shows two <a href='undocumented#Line'>lines</a>; when draw as polygon, no miter is drawn at the corner.
+The lower left corner shows two <a href='undocumented#Line'>lines</a> with a miter when <a href='SkPath_Reference#Path'>path</a> contains polygon.
</div></fiddle-embed></div>
### See Also
@@ -3362,46 +3362,46 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-void <a href='#SkCanvas_drawPoints'>drawPoints</a>(<a href='#SkCanvas_PointMode'>PointMode</a> <a href='#SkCanvas_PointMode'>mode</a>, <a href='#SkCanvas_PointMode'>size_t</a> <a href='#SkCanvas_PointMode'>count</a>, <a href='#SkCanvas_PointMode'>const</a> <a href='SkPoint_Reference#SkPoint'>SkPoint</a> <a href='SkPoint_Reference#SkPoint'>pts</a>[], <a href='SkPoint_Reference#SkPoint'>const</a> <a href='SkPaint_Reference#SkPaint'>SkPaint</a>& <a href='SkPaint_Reference#Paint'>paint</a>)
+void <a href='#SkCanvas_drawPoints'>drawPoints</a>(<a href='#SkCanvas_PointMode'>PointMode</a> mode, size_t count, const <a href='SkPoint_Reference#SkPoint'>SkPoint</a> pts[], const <a href='SkPaint_Reference#SkPaint'>SkPaint</a>& <a href='SkPaint_Reference#Paint'>paint</a>)
</pre>
-Draws <a href='#SkCanvas_drawPoints_pts'>pts</a> <a href='#SkCanvas_drawPoints_pts'>using</a> <a href='#SkCanvas_drawPoints_pts'>clip</a>, <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> <a href='SkMatrix_Reference#SkMatrix'>and</a> <a href='SkPaint_Reference#SkPaint'>SkPaint</a> <a href='#SkCanvas_drawPoints_paint'>paint</a>.
-<a href='#SkCanvas_drawPoints_count'>count</a> <a href='#SkCanvas_drawPoints_count'>is</a> <a href='#SkCanvas_drawPoints_count'>the</a> <a href='#SkCanvas_drawPoints_count'>number</a> <a href='#SkCanvas_drawPoints_count'>of</a> <a href='SkPoint_Reference#Point'>points</a>; <a href='SkPoint_Reference#Point'>if</a> <a href='#SkCanvas_drawPoints_count'>count</a> <a href='#SkCanvas_drawPoints_count'>is</a> <a href='#SkCanvas_drawPoints_count'>less</a> <a href='#SkCanvas_drawPoints_count'>than</a> <a href='#SkCanvas_drawPoints_count'>one</a>, <a href='#SkCanvas_drawPoints_count'>has</a> <a href='#SkCanvas_drawPoints_count'>no</a> <a href='#SkCanvas_drawPoints_count'>effect</a>.
-<a href='#SkCanvas_drawPoints_mode'>mode</a> <a href='#SkCanvas_drawPoints_mode'>may</a> <a href='#SkCanvas_drawPoints_mode'>be</a> <a href='#SkCanvas_drawPoints_mode'>one</a> <a href='#SkCanvas_drawPoints_mode'>of</a>: <a href='#SkCanvas_kPoints_PointMode'>kPoints_PointMode</a>, <a href='#SkCanvas_kLines_PointMode'>kLines_PointMode</a>, <a href='#SkCanvas_kLines_PointMode'>or</a> <a href='#SkCanvas_kPolygon_PointMode'>kPolygon_PointMode</a>.
+Draws <a href='#SkCanvas_drawPoints_pts'>pts</a> using clip, <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> and <a href='SkPaint_Reference#SkPaint'>SkPaint</a> <a href='#SkCanvas_drawPoints_paint'>paint</a>.
+<a href='#SkCanvas_drawPoints_count'>count</a> is the number of <a href='SkPoint_Reference#Point'>points</a>; if <a href='#SkCanvas_drawPoints_count'>count</a> is less than one, has no effect.
+<a href='#SkCanvas_drawPoints_mode'>mode</a> may be one of: <a href='#SkCanvas_kPoints_PointMode'>kPoints_PointMode</a>, <a href='#SkCanvas_kLines_PointMode'>kLines_PointMode</a>, or <a href='#SkCanvas_kPolygon_PointMode'>kPolygon_PointMode</a>.
-If <a href='#SkCanvas_drawPoints_mode'>mode</a> <a href='#SkCanvas_drawPoints_mode'>is</a> <a href='#SkCanvas_kPoints_PointMode'>kPoints_PointMode</a>, <a href='#SkCanvas_kPoints_PointMode'>the</a> <a href='#SkCanvas_kPoints_PointMode'>shape</a> <a href='#SkCanvas_kPoints_PointMode'>of</a> <a href='SkPoint_Reference#Point'>point</a> <a href='SkPoint_Reference#Point'>drawn</a> <a href='SkPoint_Reference#Point'>depends</a> <a href='SkPoint_Reference#Point'>on</a> <a href='#SkCanvas_drawPoints_paint'>paint</a>
-<a href='SkPaint_Reference#SkPaint'>SkPaint</a>::<a href='#SkPaint_Cap'>Cap</a>. <a href='#SkPaint_Cap'>If</a> <a href='#SkCanvas_drawPoints_paint'>paint</a> <a href='#SkCanvas_drawPoints_paint'>is</a> <a href='#SkCanvas_drawPoints_paint'>set</a> <a href='#SkCanvas_drawPoints_paint'>to</a> <a href='SkPaint_Reference#SkPaint'>SkPaint</a>::<a href='#SkPaint_kRound_Cap'>kRound_Cap</a>, <a href='#SkPaint_kRound_Cap'>each</a> <a href='SkPoint_Reference#Point'>point</a> <a href='SkPoint_Reference#Point'>draws</a> <a href='SkPoint_Reference#Point'>a</a>
-<a href='undocumented#Circle'>circle</a> <a href='undocumented#Circle'>of</a> <a href='undocumented#Circle'>diameter</a> <a href='SkPaint_Reference#SkPaint'>SkPaint</a> <a href='SkPaint_Reference#SkPaint'>stroke</a> <a href='SkPaint_Reference#SkPaint'>width</a>. <a href='SkPaint_Reference#SkPaint'>If</a> <a href='#SkCanvas_drawPoints_paint'>paint</a> <a href='#SkCanvas_drawPoints_paint'>is</a> <a href='#SkCanvas_drawPoints_paint'>set</a> <a href='#SkCanvas_drawPoints_paint'>to</a> <a href='SkPaint_Reference#SkPaint'>SkPaint</a>::<a href='#SkPaint_kSquare_Cap'>kSquare_Cap</a>
-or <a href='SkPaint_Reference#SkPaint'>SkPaint</a>::<a href='#SkPaint_kButt_Cap'>kButt_Cap</a>, <a href='#SkPaint_kButt_Cap'>each</a> <a href='SkPoint_Reference#Point'>point</a> <a href='SkPoint_Reference#Point'>draws</a> <a href='SkPoint_Reference#Point'>a</a> <a href='SkPoint_Reference#Point'>square</a> <a href='SkPoint_Reference#Point'>of</a> <a href='SkPoint_Reference#Point'>width</a> <a href='SkPoint_Reference#Point'>and</a> <a href='SkPoint_Reference#Point'>height</a>
-<a href='SkPaint_Reference#SkPaint'>SkPaint</a> <a href='SkPaint_Reference#SkPaint'>stroke</a> <a href='SkPaint_Reference#SkPaint'>width</a>.
+If <a href='#SkCanvas_drawPoints_mode'>mode</a> is <a href='#SkCanvas_kPoints_PointMode'>kPoints_PointMode</a>, the shape of <a href='SkPoint_Reference#Point'>point</a> drawn depends on <a href='#SkCanvas_drawPoints_paint'>paint</a>
+<a href='SkPaint_Reference#SkPaint'>SkPaint</a>::<a href='#SkPaint_Cap'>Cap</a>. If <a href='#SkCanvas_drawPoints_paint'>paint</a> is set to <a href='SkPaint_Reference#SkPaint'>SkPaint</a>::<a href='#SkPaint_kRound_Cap'>kRound_Cap</a>, each <a href='SkPoint_Reference#Point'>point</a> draws a
+<a href='undocumented#Circle'>circle</a> of diameter <a href='SkPaint_Reference#SkPaint'>SkPaint</a> stroke width. If <a href='#SkCanvas_drawPoints_paint'>paint</a> is set to <a href='SkPaint_Reference#SkPaint'>SkPaint</a>::<a href='#SkPaint_kSquare_Cap'>kSquare_Cap</a>
+or <a href='SkPaint_Reference#SkPaint'>SkPaint</a>::<a href='#SkPaint_kButt_Cap'>kButt_Cap</a>, each <a href='SkPoint_Reference#Point'>point</a> draws a square of width and height
+<a href='SkPaint_Reference#SkPaint'>SkPaint</a> stroke width.
-If <a href='#SkCanvas_drawPoints_mode'>mode</a> <a href='#SkCanvas_drawPoints_mode'>is</a> <a href='#SkCanvas_kLines_PointMode'>kLines_PointMode</a>, <a href='#SkCanvas_kLines_PointMode'>each</a> <a href='#SkCanvas_kLines_PointMode'>pair</a> <a href='#SkCanvas_kLines_PointMode'>of</a> <a href='SkPoint_Reference#Point'>points</a> <a href='SkPoint_Reference#Point'>draws</a> <a href='SkPoint_Reference#Point'>a</a> <a href='undocumented#Line'>line</a> <a href='undocumented#Line'>segment</a>.
-One <a href='undocumented#Line'>line</a> <a href='undocumented#Line'>is</a> <a href='undocumented#Line'>drawn</a> <a href='undocumented#Line'>for</a> <a href='undocumented#Line'>every</a> <a href='undocumented#Line'>two</a> <a href='SkPoint_Reference#Point'>points</a>; <a href='SkPoint_Reference#Point'>each</a> <a href='SkPoint_Reference#Point'>point</a> <a href='SkPoint_Reference#Point'>is</a> <a href='SkPoint_Reference#Point'>used</a> <a href='SkPoint_Reference#Point'>once</a>. <a href='SkPoint_Reference#Point'>If</a> <a href='#SkCanvas_drawPoints_count'>count</a> <a href='#SkCanvas_drawPoints_count'>is</a> <a href='#SkCanvas_drawPoints_count'>odd</a>,
-the final <a href='SkPoint_Reference#Point'>point</a> <a href='SkPoint_Reference#Point'>is</a> <a href='SkPoint_Reference#Point'>ignored</a>.
+If <a href='#SkCanvas_drawPoints_mode'>mode</a> is <a href='#SkCanvas_kLines_PointMode'>kLines_PointMode</a>, each pair of <a href='SkPoint_Reference#Point'>points</a> draws a <a href='undocumented#Line'>line</a> segment.
+One <a href='undocumented#Line'>line</a> is drawn for every two <a href='SkPoint_Reference#Point'>points</a>; each <a href='SkPoint_Reference#Point'>point</a> is used once. If <a href='#SkCanvas_drawPoints_count'>count</a> is odd,
+the final <a href='SkPoint_Reference#Point'>point</a> is ignored.
-If <a href='#SkCanvas_drawPoints_mode'>mode</a> <a href='#SkCanvas_drawPoints_mode'>is</a> <a href='#SkCanvas_kPolygon_PointMode'>kPolygon_PointMode</a>, <a href='#SkCanvas_kPolygon_PointMode'>each</a> <a href='#SkCanvas_kPolygon_PointMode'>adjacent</a> <a href='#SkCanvas_kPolygon_PointMode'>pair</a> <a href='#SkCanvas_kPolygon_PointMode'>of</a> <a href='SkPoint_Reference#Point'>points</a> <a href='SkPoint_Reference#Point'>draws</a> <a href='SkPoint_Reference#Point'>a</a> <a href='undocumented#Line'>line</a> <a href='undocumented#Line'>segment</a>.
-<a href='#SkCanvas_drawPoints_count'>count</a> <a href='#SkCanvas_drawPoints_count'>minus</a> <a href='#SkCanvas_drawPoints_count'>one</a> <a href='undocumented#Line'>lines</a> <a href='undocumented#Line'>are</a> <a href='undocumented#Line'>drawn</a>; <a href='undocumented#Line'>the</a> <a href='undocumented#Line'>first</a> <a href='undocumented#Line'>and</a> <a href='undocumented#Line'>last</a> <a href='SkPoint_Reference#Point'>point</a> <a href='SkPoint_Reference#Point'>are</a> <a href='SkPoint_Reference#Point'>used</a> <a href='SkPoint_Reference#Point'>once</a>.
+If <a href='#SkCanvas_drawPoints_mode'>mode</a> is <a href='#SkCanvas_kPolygon_PointMode'>kPolygon_PointMode</a>, each adjacent pair of <a href='SkPoint_Reference#Point'>points</a> draws a <a href='undocumented#Line'>line</a> segment.
+<a href='#SkCanvas_drawPoints_count'>count</a> minus one <a href='undocumented#Line'>lines</a> are drawn; the first and last <a href='SkPoint_Reference#Point'>point</a> are used once.
-Each <a href='undocumented#Line'>line</a> <a href='undocumented#Line'>segment</a> <a href='undocumented#Line'>respects</a> <a href='#SkCanvas_drawPoints_paint'>paint</a> <a href='SkPaint_Reference#SkPaint'>SkPaint</a>::<a href='#SkPaint_Cap'>Cap</a> <a href='#SkPaint_Cap'>and</a> <a href='SkPaint_Reference#SkPaint'>SkPaint</a> <a href='SkPaint_Reference#SkPaint'>stroke</a> <a href='SkPaint_Reference#SkPaint'>width</a>.
-<a href='SkPaint_Reference#SkPaint'>SkPaint</a>::<a href='#SkPaint_Style'>Style</a> <a href='#SkPaint_Style'>is</a> <a href='#SkPaint_Style'>ignored</a>, <a href='#SkPaint_Style'>as</a> <a href='#SkPaint_Style'>if</a> <a href='#SkPaint_Style'>were</a> <a href='#SkPaint_Style'>set</a> <a href='#SkPaint_Style'>to</a> <a href='SkPaint_Reference#SkPaint'>SkPaint</a>::<a href='#SkPaint_kStroke_Style'>kStroke_Style</a>.
+Each <a href='undocumented#Line'>line</a> segment respects <a href='#SkCanvas_drawPoints_paint'>paint</a> <a href='SkPaint_Reference#SkPaint'>SkPaint</a>::<a href='#SkPaint_Cap'>Cap</a> and <a href='SkPaint_Reference#SkPaint'>SkPaint</a> stroke width.
+<a href='SkPaint_Reference#SkPaint'>SkPaint</a>::<a href='#SkPaint_Style'>Style</a> is ignored, as if were set to <a href='SkPaint_Reference#SkPaint'>SkPaint</a>::<a href='#SkPaint_kStroke_Style'>kStroke_Style</a>.
Always draws each element one at a time; is not affected by
-<a href='SkPaint_Reference#SkPaint'>SkPaint</a>::<a href='#SkPaint_Join'>Join</a>, <a href='#SkPaint_Join'>and</a> <a href='#SkPaint_Join'>unlike</a> <a href='#SkCanvas_drawPath'>drawPath</a>(), <a href='#SkCanvas_drawPath'>does</a> <a href='#SkCanvas_drawPath'>not</a> <a href='#SkCanvas_drawPath'>create</a> <a href='#SkCanvas_drawPath'>a</a> <a href='#SkCanvas_drawPath'>mask</a> <a href='#SkCanvas_drawPath'>from</a> <a href='#SkCanvas_drawPath'>all</a> <a href='SkPoint_Reference#Point'>points</a>
-and <a href='undocumented#Line'>lines</a> <a href='undocumented#Line'>before</a> <a href='undocumented#Line'>drawing</a>.
+<a href='SkPaint_Reference#SkPaint'>SkPaint</a>::<a href='#SkPaint_Join'>Join</a>, and unlike <a href='#SkCanvas_drawPath'>drawPath</a>(), does not create a mask from all <a href='SkPoint_Reference#Point'>points</a>
+and <a href='undocumented#Line'>lines</a> before drawing.
### Parameters
<table> <tr> <td><a name='SkCanvas_drawPoints_mode'><code><strong>mode</strong></code></a></td>
- <td>whether <a href='#SkCanvas_drawPoints_pts'>pts</a> <a href='#SkCanvas_drawPoints_pts'>draws</a> <a href='SkPoint_Reference#Point'>points</a> <a href='SkPoint_Reference#Point'>or</a> <a href='undocumented#Line'>lines</a></td>
+ <td>whether <a href='#SkCanvas_drawPoints_pts'>pts</a> draws <a href='SkPoint_Reference#Point'>points</a> or <a href='undocumented#Line'>lines</a></td>
</tr>
<tr> <td><a name='SkCanvas_drawPoints_count'><code><strong>count</strong></code></a></td>
- <td>number of <a href='SkPoint_Reference#Point'>points</a> <a href='SkPoint_Reference#Point'>in</a> <a href='SkPoint_Reference#Point'>the</a> <a href='SkPoint_Reference#Point'>array</a></td>
+ <td>number of <a href='SkPoint_Reference#Point'>points</a> in the array</td>
</tr>
<tr> <td><a name='SkCanvas_drawPoints_pts'><code><strong>pts</strong></code></a></td>
- <td>array of <a href='SkPoint_Reference#Point'>points</a> <a href='SkPoint_Reference#Point'>to</a> <a href='SkPoint_Reference#Point'>draw</a></td>
+ <td>array of <a href='SkPoint_Reference#Point'>points</a> to draw</td>
</tr>
<tr> <td><a name='SkCanvas_drawPoints_paint'><code><strong>paint</strong></code></a></td>
- <td>stroke, blend, <a href='SkColor_Reference#Color'>color</a>, <a href='SkColor_Reference#Color'>and</a> <a href='SkColor_Reference#Color'>so</a> <a href='SkColor_Reference#Color'>on</a>, <a href='SkColor_Reference#Color'>used</a> <a href='SkColor_Reference#Color'>to</a> <a href='SkColor_Reference#Color'>draw</a></td>
+ <td>stroke, blend, <a href='SkColor_Reference#Color'>color</a>, and so on, used to draw</td>
</tr>
</table>
@@ -3412,11 +3412,11 @@
<table> <tr>
<td>The first column draws <a href='SkPoint_Reference#Point'>points</a>.</td>
</tr> <tr>
- <td>The second column draws <a href='SkPoint_Reference#Point'>points</a> <a href='SkPoint_Reference#Point'>as</a> <a href='undocumented#Line'>lines</a>.</td>
+ <td>The second column draws <a href='SkPoint_Reference#Point'>points</a> as <a href='undocumented#Line'>lines</a>.</td>
</tr> <tr>
- <td>The third column draws <a href='SkPoint_Reference#Point'>points</a> <a href='SkPoint_Reference#Point'>as</a> <a href='SkPoint_Reference#Point'>a</a> <a href='SkPoint_Reference#Point'>polygon</a>.</td>
+ <td>The third column draws <a href='SkPoint_Reference#Point'>points</a> as a polygon.</td>
</tr> <tr>
- <td>The fourth column draws <a href='SkPoint_Reference#Point'>points</a> <a href='SkPoint_Reference#Point'>as</a> <a href='SkPoint_Reference#Point'>a</a> <a href='SkPoint_Reference#Point'>polygonal</a> <a href='SkPath_Reference#Path'>path</a>.</td>
+ <td>The fourth column draws <a href='SkPoint_Reference#Point'>points</a> as a polygonal <a href='SkPath_Reference#Path'>path</a>.</td>
</tr> <tr>
<td>The first row uses a round cap and round join.</td>
</tr> <tr>
@@ -3426,8 +3426,8 @@
</tr>
</table>
-The transparent <a href='SkColor_Reference#Color'>color</a> <a href='SkColor_Reference#Color'>makes</a> <a href='SkColor_Reference#Color'>multiple</a> <a href='undocumented#Line'>line</a> <a href='undocumented#Line'>draws</a> <a href='undocumented#Line'>visible</a>;
-<a href='undocumented#Line'>the</a> <a href='SkPath_Reference#Path'>path</a> <a href='SkPath_Reference#Path'>is</a> <a href='SkPath_Reference#Path'>drawn</a> <a href='SkPath_Reference#Path'>all</a> <a href='SkPath_Reference#Path'>at</a> <a href='SkPath_Reference#Path'>once</a>.
+The transparent <a href='SkColor_Reference#Color'>color</a> makes multiple <a href='undocumented#Line'>line</a> draws visible;
+the <a href='SkPath_Reference#Path'>path</a> is drawn all at once.
</div></fiddle-embed></div>
### See Also
@@ -3439,27 +3439,27 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-void <a href='#SkCanvas_drawPoint'>drawPoint</a>(<a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>x</a>, <a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>y</a>, <a href='undocumented#SkScalar'>const</a> <a href='SkPaint_Reference#SkPaint'>SkPaint</a>& <a href='SkPaint_Reference#Paint'>paint</a>)
+void <a href='#SkCanvas_drawPoint'>drawPoint</a>(<a href='undocumented#SkScalar'>SkScalar</a> x, <a href='undocumented#SkScalar'>SkScalar</a> y, const <a href='SkPaint_Reference#SkPaint'>SkPaint</a>& <a href='SkPaint_Reference#Paint'>paint</a>)
</pre>
-Draws <a href='SkPoint_Reference#Point'>point</a> <a href='SkPoint_Reference#Point'>at</a> (<a href='#SkCanvas_drawPoint_x'>x</a>, <a href='#SkCanvas_drawPoint_y'>y</a>) <a href='#SkCanvas_drawPoint_y'>using</a> <a href='#SkCanvas_drawPoint_y'>clip</a>, <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> <a href='SkMatrix_Reference#SkMatrix'>and</a> <a href='SkPaint_Reference#SkPaint'>SkPaint</a> <a href='#SkCanvas_drawPoint_paint'>paint</a>.
+Draws <a href='SkPoint_Reference#Point'>point</a> at (<a href='#SkCanvas_drawPoint_x'>x</a>, <a href='#SkCanvas_drawPoint_y'>y</a>) using clip, <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> and <a href='SkPaint_Reference#SkPaint'>SkPaint</a> <a href='#SkCanvas_drawPoint_paint'>paint</a>.
-The shape of <a href='SkPoint_Reference#Point'>point</a> <a href='SkPoint_Reference#Point'>drawn</a> <a href='SkPoint_Reference#Point'>depends</a> <a href='SkPoint_Reference#Point'>on</a> <a href='#SkCanvas_drawPoint_paint'>paint</a> <a href='SkPaint_Reference#SkPaint'>SkPaint</a>::<a href='#SkPaint_Cap'>Cap</a>.
-If <a href='#SkCanvas_drawPoint_paint'>paint</a> <a href='#SkCanvas_drawPoint_paint'>is</a> <a href='#SkCanvas_drawPoint_paint'>set</a> <a href='#SkCanvas_drawPoint_paint'>to</a> <a href='SkPaint_Reference#SkPaint'>SkPaint</a>::<a href='#SkPaint_kRound_Cap'>kRound_Cap</a>, <a href='#SkPaint_kRound_Cap'>draw</a> <a href='#SkPaint_kRound_Cap'>a</a> <a href='undocumented#Circle'>circle</a> <a href='undocumented#Circle'>of</a> <a href='undocumented#Circle'>diameter</a>
-<a href='SkPaint_Reference#SkPaint'>SkPaint</a> <a href='SkPaint_Reference#SkPaint'>stroke</a> <a href='SkPaint_Reference#SkPaint'>width</a>. <a href='SkPaint_Reference#SkPaint'>If</a> <a href='#SkCanvas_drawPoint_paint'>paint</a> <a href='#SkCanvas_drawPoint_paint'>is</a> <a href='#SkCanvas_drawPoint_paint'>set</a> <a href='#SkCanvas_drawPoint_paint'>to</a> <a href='SkPaint_Reference#SkPaint'>SkPaint</a>::<a href='#SkPaint_kSquare_Cap'>kSquare_Cap</a> <a href='#SkPaint_kSquare_Cap'>or</a> <a href='SkPaint_Reference#SkPaint'>SkPaint</a>::<a href='#SkPaint_kButt_Cap'>kButt_Cap</a>,
-draw a square of width and height <a href='SkPaint_Reference#SkPaint'>SkPaint</a> <a href='SkPaint_Reference#SkPaint'>stroke</a> <a href='SkPaint_Reference#SkPaint'>width</a>.
-<a href='SkPaint_Reference#SkPaint'>SkPaint</a>::<a href='#SkPaint_Style'>Style</a> <a href='#SkPaint_Style'>is</a> <a href='#SkPaint_Style'>ignored</a>, <a href='#SkPaint_Style'>as</a> <a href='#SkPaint_Style'>if</a> <a href='#SkPaint_Style'>were</a> <a href='#SkPaint_Style'>set</a> <a href='#SkPaint_Style'>to</a> <a href='SkPaint_Reference#SkPaint'>SkPaint</a>::<a href='#SkPaint_kStroke_Style'>kStroke_Style</a>.
+The shape of <a href='SkPoint_Reference#Point'>point</a> drawn depends on <a href='#SkCanvas_drawPoint_paint'>paint</a> <a href='SkPaint_Reference#SkPaint'>SkPaint</a>::<a href='#SkPaint_Cap'>Cap</a>.
+If <a href='#SkCanvas_drawPoint_paint'>paint</a> is set to <a href='SkPaint_Reference#SkPaint'>SkPaint</a>::<a href='#SkPaint_kRound_Cap'>kRound_Cap</a>, draw a <a href='undocumented#Circle'>circle</a> of diameter
+<a href='SkPaint_Reference#SkPaint'>SkPaint</a> stroke width. If <a href='#SkCanvas_drawPoint_paint'>paint</a> is set to <a href='SkPaint_Reference#SkPaint'>SkPaint</a>::<a href='#SkPaint_kSquare_Cap'>kSquare_Cap</a> or <a href='SkPaint_Reference#SkPaint'>SkPaint</a>::<a href='#SkPaint_kButt_Cap'>kButt_Cap</a>,
+draw a square of width and height <a href='SkPaint_Reference#SkPaint'>SkPaint</a> stroke width.
+<a href='SkPaint_Reference#SkPaint'>SkPaint</a>::<a href='#SkPaint_Style'>Style</a> is ignored, as if were set to <a href='SkPaint_Reference#SkPaint'>SkPaint</a>::<a href='#SkPaint_kStroke_Style'>kStroke_Style</a>.
### Parameters
<table> <tr> <td><a name='SkCanvas_drawPoint_x'><code><strong>x</strong></code></a></td>
- <td>left edge of <a href='undocumented#Circle'>circle</a> <a href='undocumented#Circle'>or</a> <a href='undocumented#Circle'>square</a></td>
+ <td>left edge of <a href='undocumented#Circle'>circle</a> or square</td>
</tr>
<tr> <td><a name='SkCanvas_drawPoint_y'><code><strong>y</strong></code></a></td>
- <td>top edge of <a href='undocumented#Circle'>circle</a> <a href='undocumented#Circle'>or</a> <a href='undocumented#Circle'>square</a></td>
+ <td>top edge of <a href='undocumented#Circle'>circle</a> or square</td>
</tr>
<tr> <td><a name='SkCanvas_drawPoint_paint'><code><strong>paint</strong></code></a></td>
- <td>stroke, blend, <a href='SkColor_Reference#Color'>color</a>, <a href='SkColor_Reference#Color'>and</a> <a href='SkColor_Reference#Color'>so</a> <a href='SkColor_Reference#Color'>on</a>, <a href='SkColor_Reference#Color'>used</a> <a href='SkColor_Reference#Color'>to</a> <a href='SkColor_Reference#Color'>draw</a></td>
+ <td>stroke, blend, <a href='SkColor_Reference#Color'>color</a>, and so on, used to draw</td>
</tr>
</table>
@@ -3476,24 +3476,24 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-void <a href='#SkCanvas_drawPoint'>drawPoint</a>(<a href='SkPoint_Reference#SkPoint'>SkPoint</a> <a href='SkPoint_Reference#SkPoint'>p</a>, <a href='SkPoint_Reference#SkPoint'>const</a> <a href='SkPaint_Reference#SkPaint'>SkPaint</a>& <a href='SkPaint_Reference#Paint'>paint</a>)
+void <a href='#SkCanvas_drawPoint'>drawPoint</a>(<a href='SkPoint_Reference#SkPoint'>SkPoint</a> p, const <a href='SkPaint_Reference#SkPaint'>SkPaint</a>& <a href='SkPaint_Reference#Paint'>paint</a>)
</pre>
-Draws <a href='SkPoint_Reference#Point'>point</a> <a href='#SkCanvas_drawPoint_2_p'>p</a> <a href='#SkCanvas_drawPoint_2_p'>using</a> <a href='#SkCanvas_drawPoint_2_p'>clip</a>, <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> <a href='SkMatrix_Reference#SkMatrix'>and</a> <a href='SkPaint_Reference#SkPaint'>SkPaint</a> <a href='#SkCanvas_drawPoint_2_paint'>paint</a>.
+Draws <a href='SkPoint_Reference#Point'>point</a> <a href='#SkCanvas_drawPoint_2_p'>p</a> using clip, <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> and <a href='SkPaint_Reference#SkPaint'>SkPaint</a> <a href='#SkCanvas_drawPoint_2_paint'>paint</a>.
-The shape of <a href='SkPoint_Reference#Point'>point</a> <a href='SkPoint_Reference#Point'>drawn</a> <a href='SkPoint_Reference#Point'>depends</a> <a href='SkPoint_Reference#Point'>on</a> <a href='#SkCanvas_drawPoint_2_paint'>paint</a> <a href='SkPaint_Reference#SkPaint'>SkPaint</a>::<a href='#SkPaint_Cap'>Cap</a>.
-If <a href='#SkCanvas_drawPoint_2_paint'>paint</a> <a href='#SkCanvas_drawPoint_2_paint'>is</a> <a href='#SkCanvas_drawPoint_2_paint'>set</a> <a href='#SkCanvas_drawPoint_2_paint'>to</a> <a href='SkPaint_Reference#SkPaint'>SkPaint</a>::<a href='#SkPaint_kRound_Cap'>kRound_Cap</a>, <a href='#SkPaint_kRound_Cap'>draw</a> <a href='#SkPaint_kRound_Cap'>a</a> <a href='undocumented#Circle'>circle</a> <a href='undocumented#Circle'>of</a> <a href='undocumented#Circle'>diameter</a>
-<a href='SkPaint_Reference#SkPaint'>SkPaint</a> <a href='SkPaint_Reference#SkPaint'>stroke</a> <a href='SkPaint_Reference#SkPaint'>width</a>. <a href='SkPaint_Reference#SkPaint'>If</a> <a href='#SkCanvas_drawPoint_2_paint'>paint</a> <a href='#SkCanvas_drawPoint_2_paint'>is</a> <a href='#SkCanvas_drawPoint_2_paint'>set</a> <a href='#SkCanvas_drawPoint_2_paint'>to</a> <a href='SkPaint_Reference#SkPaint'>SkPaint</a>::<a href='#SkPaint_kSquare_Cap'>kSquare_Cap</a> <a href='#SkPaint_kSquare_Cap'>or</a> <a href='SkPaint_Reference#SkPaint'>SkPaint</a>::<a href='#SkPaint_kButt_Cap'>kButt_Cap</a>,
-draw a square of width and height <a href='SkPaint_Reference#SkPaint'>SkPaint</a> <a href='SkPaint_Reference#SkPaint'>stroke</a> <a href='SkPaint_Reference#SkPaint'>width</a>.
-<a href='SkPaint_Reference#SkPaint'>SkPaint</a>::<a href='#SkPaint_Style'>Style</a> <a href='#SkPaint_Style'>is</a> <a href='#SkPaint_Style'>ignored</a>, <a href='#SkPaint_Style'>as</a> <a href='#SkPaint_Style'>if</a> <a href='#SkPaint_Style'>were</a> <a href='#SkPaint_Style'>set</a> <a href='#SkPaint_Style'>to</a> <a href='SkPaint_Reference#SkPaint'>SkPaint</a>::<a href='#SkPaint_kStroke_Style'>kStroke_Style</a>.
+The shape of <a href='SkPoint_Reference#Point'>point</a> drawn depends on <a href='#SkCanvas_drawPoint_2_paint'>paint</a> <a href='SkPaint_Reference#SkPaint'>SkPaint</a>::<a href='#SkPaint_Cap'>Cap</a>.
+If <a href='#SkCanvas_drawPoint_2_paint'>paint</a> is set to <a href='SkPaint_Reference#SkPaint'>SkPaint</a>::<a href='#SkPaint_kRound_Cap'>kRound_Cap</a>, draw a <a href='undocumented#Circle'>circle</a> of diameter
+<a href='SkPaint_Reference#SkPaint'>SkPaint</a> stroke width. If <a href='#SkCanvas_drawPoint_2_paint'>paint</a> is set to <a href='SkPaint_Reference#SkPaint'>SkPaint</a>::<a href='#SkPaint_kSquare_Cap'>kSquare_Cap</a> or <a href='SkPaint_Reference#SkPaint'>SkPaint</a>::<a href='#SkPaint_kButt_Cap'>kButt_Cap</a>,
+draw a square of width and height <a href='SkPaint_Reference#SkPaint'>SkPaint</a> stroke width.
+<a href='SkPaint_Reference#SkPaint'>SkPaint</a>::<a href='#SkPaint_Style'>Style</a> is ignored, as if were set to <a href='SkPaint_Reference#SkPaint'>SkPaint</a>::<a href='#SkPaint_kStroke_Style'>kStroke_Style</a>.
### Parameters
<table> <tr> <td><a name='SkCanvas_drawPoint_2_p'><code><strong>p</strong></code></a></td>
- <td>top-left edge of <a href='undocumented#Circle'>circle</a> <a href='undocumented#Circle'>or</a> <a href='undocumented#Circle'>square</a></td>
+ <td>top-left edge of <a href='undocumented#Circle'>circle</a> or square</td>
</tr>
<tr> <td><a name='SkCanvas_drawPoint_2_paint'><code><strong>paint</strong></code></a></td>
- <td>stroke, blend, <a href='SkColor_Reference#Color'>color</a>, <a href='SkColor_Reference#Color'>and</a> <a href='SkColor_Reference#Color'>so</a> <a href='SkColor_Reference#Color'>on</a>, <a href='SkColor_Reference#Color'>used</a> <a href='SkColor_Reference#Color'>to</a> <a href='SkColor_Reference#Color'>draw</a></td>
+ <td>stroke, blend, <a href='SkColor_Reference#Color'>color</a>, and so on, used to draw</td>
</tr>
</table>
@@ -3510,30 +3510,30 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-void <a href='#SkCanvas_drawLine'>drawLine</a>(<a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>x0</a>, <a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>y0</a>, <a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>x1</a>, <a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>y1</a>, <a href='undocumented#SkScalar'>const</a> <a href='SkPaint_Reference#SkPaint'>SkPaint</a>& <a href='SkPaint_Reference#Paint'>paint</a>)
+void <a href='#SkCanvas_drawLine'>drawLine</a>(<a href='undocumented#SkScalar'>SkScalar</a> x0, <a href='undocumented#SkScalar'>SkScalar</a> y0, <a href='undocumented#SkScalar'>SkScalar</a> x1, <a href='undocumented#SkScalar'>SkScalar</a> y1, const <a href='SkPaint_Reference#SkPaint'>SkPaint</a>& <a href='SkPaint_Reference#Paint'>paint</a>)
</pre>
-Draws <a href='undocumented#Line'>line</a> <a href='undocumented#Line'>segment</a> <a href='undocumented#Line'>from</a> (<a href='#SkCanvas_drawLine_x0'>x0</a>, <a href='#SkCanvas_drawLine_y0'>y0</a>) <a href='#SkCanvas_drawLine_y0'>to</a> (<a href='#SkCanvas_drawLine_x1'>x1</a>, <a href='#SkCanvas_drawLine_y1'>y1</a>) <a href='#SkCanvas_drawLine_y1'>using</a> <a href='#SkCanvas_drawLine_y1'>clip</a>, <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a>, <a href='SkMatrix_Reference#SkMatrix'>and</a> <a href='SkPaint_Reference#SkPaint'>SkPaint</a> <a href='#SkCanvas_drawLine_paint'>paint</a>.
-In <a href='#SkCanvas_drawLine_paint'>paint</a>: <a href='SkPaint_Reference#SkPaint'>SkPaint</a> <a href='SkPaint_Reference#SkPaint'>stroke</a> <a href='SkPaint_Reference#SkPaint'>width</a> <a href='SkPaint_Reference#SkPaint'>describes</a> <a href='SkPaint_Reference#SkPaint'>the</a> <a href='undocumented#Line'>line</a> <a href='undocumented#Line'>thickness</a>;
-<a href='SkPaint_Reference#SkPaint'>SkPaint</a>::<a href='#SkPaint_Cap'>Cap</a> <a href='#SkPaint_Cap'>draws</a> <a href='#SkPaint_Cap'>the</a> <a href='#SkPaint_Cap'>end</a> <a href='#SkPaint_Cap'>rounded</a> <a href='#SkPaint_Cap'>or</a> <a href='#SkPaint_Cap'>square</a>;
-<a href='SkPaint_Reference#SkPaint'>SkPaint</a>::<a href='#SkPaint_Style'>Style</a> <a href='#SkPaint_Style'>is</a> <a href='#SkPaint_Style'>ignored</a>, <a href='#SkPaint_Style'>as</a> <a href='#SkPaint_Style'>if</a> <a href='#SkPaint_Style'>were</a> <a href='#SkPaint_Style'>set</a> <a href='#SkPaint_Style'>to</a> <a href='SkPaint_Reference#SkPaint'>SkPaint</a>::<a href='#SkPaint_kStroke_Style'>kStroke_Style</a>.
+Draws <a href='undocumented#Line'>line</a> segment from (<a href='#SkCanvas_drawLine_x0'>x0</a>, <a href='#SkCanvas_drawLine_y0'>y0</a>) to (<a href='#SkCanvas_drawLine_x1'>x1</a>, <a href='#SkCanvas_drawLine_y1'>y1</a>) using clip, <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a>, and <a href='SkPaint_Reference#SkPaint'>SkPaint</a> <a href='#SkCanvas_drawLine_paint'>paint</a>.
+In <a href='#SkCanvas_drawLine_paint'>paint</a>: <a href='SkPaint_Reference#SkPaint'>SkPaint</a> stroke width describes the <a href='undocumented#Line'>line</a> thickness;
+<a href='SkPaint_Reference#SkPaint'>SkPaint</a>::<a href='#SkPaint_Cap'>Cap</a> draws the end rounded or square;
+<a href='SkPaint_Reference#SkPaint'>SkPaint</a>::<a href='#SkPaint_Style'>Style</a> is ignored, as if were set to <a href='SkPaint_Reference#SkPaint'>SkPaint</a>::<a href='#SkPaint_kStroke_Style'>kStroke_Style</a>.
### Parameters
<table> <tr> <td><a name='SkCanvas_drawLine_x0'><code><strong>x0</strong></code></a></td>
- <td>start of <a href='undocumented#Line'>line</a> <a href='undocumented#Line'>segment</a> <a href='undocumented#Line'>on</a> <a href='undocumented#Line'>x-axis</a></td>
+ <td>start of <a href='undocumented#Line'>line</a> segment on x-axis</td>
</tr>
<tr> <td><a name='SkCanvas_drawLine_y0'><code><strong>y0</strong></code></a></td>
- <td>start of <a href='undocumented#Line'>line</a> <a href='undocumented#Line'>segment</a> <a href='undocumented#Line'>on</a> <a href='undocumented#Line'>y-axis</a></td>
+ <td>start of <a href='undocumented#Line'>line</a> segment on y-axis</td>
</tr>
<tr> <td><a name='SkCanvas_drawLine_x1'><code><strong>x1</strong></code></a></td>
- <td>end of <a href='undocumented#Line'>line</a> <a href='undocumented#Line'>segment</a> <a href='undocumented#Line'>on</a> <a href='undocumented#Line'>x-axis</a></td>
+ <td>end of <a href='undocumented#Line'>line</a> segment on x-axis</td>
</tr>
<tr> <td><a name='SkCanvas_drawLine_y1'><code><strong>y1</strong></code></a></td>
- <td>end of <a href='undocumented#Line'>line</a> <a href='undocumented#Line'>segment</a> <a href='undocumented#Line'>on</a> <a href='undocumented#Line'>y-axis</a></td>
+ <td>end of <a href='undocumented#Line'>line</a> segment on y-axis</td>
</tr>
<tr> <td><a name='SkCanvas_drawLine_paint'><code><strong>paint</strong></code></a></td>
- <td>stroke, blend, <a href='SkColor_Reference#Color'>color</a>, <a href='SkColor_Reference#Color'>and</a> <a href='SkColor_Reference#Color'>so</a> <a href='SkColor_Reference#Color'>on</a>, <a href='SkColor_Reference#Color'>used</a> <a href='SkColor_Reference#Color'>to</a> <a href='SkColor_Reference#Color'>draw</a></td>
+ <td>stroke, blend, <a href='SkColor_Reference#Color'>color</a>, and so on, used to draw</td>
</tr>
</table>
@@ -3550,24 +3550,24 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-void <a href='#SkCanvas_drawLine'>drawLine</a>(<a href='SkPoint_Reference#SkPoint'>SkPoint</a> <a href='SkPoint_Reference#SkPoint'>p0</a>, <a href='SkPoint_Reference#SkPoint'>SkPoint</a> <a href='SkPoint_Reference#SkPoint'>p1</a>, <a href='SkPoint_Reference#SkPoint'>const</a> <a href='SkPaint_Reference#SkPaint'>SkPaint</a>& <a href='SkPaint_Reference#Paint'>paint</a>)
+void <a href='#SkCanvas_drawLine'>drawLine</a>(<a href='SkPoint_Reference#SkPoint'>SkPoint</a> p0, <a href='SkPoint_Reference#SkPoint'>SkPoint</a> p1, const <a href='SkPaint_Reference#SkPaint'>SkPaint</a>& <a href='SkPaint_Reference#Paint'>paint</a>)
</pre>
-Draws <a href='undocumented#Line'>line</a> <a href='undocumented#Line'>segment</a> <a href='undocumented#Line'>from</a> <a href='#SkCanvas_drawLine_2_p0'>p0</a> <a href='#SkCanvas_drawLine_2_p0'>to</a> <a href='#SkCanvas_drawLine_2_p1'>p1</a> <a href='#SkCanvas_drawLine_2_p1'>using</a> <a href='#SkCanvas_drawLine_2_p1'>clip</a>, <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a>, <a href='SkMatrix_Reference#SkMatrix'>and</a> <a href='SkPaint_Reference#SkPaint'>SkPaint</a> <a href='#SkCanvas_drawLine_2_paint'>paint</a>.
-In <a href='#SkCanvas_drawLine_2_paint'>paint</a>: <a href='SkPaint_Reference#SkPaint'>SkPaint</a> <a href='SkPaint_Reference#SkPaint'>stroke</a> <a href='SkPaint_Reference#SkPaint'>width</a> <a href='SkPaint_Reference#SkPaint'>describes</a> <a href='SkPaint_Reference#SkPaint'>the</a> <a href='undocumented#Line'>line</a> <a href='undocumented#Line'>thickness</a>;
-<a href='SkPaint_Reference#SkPaint'>SkPaint</a>::<a href='#SkPaint_Cap'>Cap</a> <a href='#SkPaint_Cap'>draws</a> <a href='#SkPaint_Cap'>the</a> <a href='#SkPaint_Cap'>end</a> <a href='#SkPaint_Cap'>rounded</a> <a href='#SkPaint_Cap'>or</a> <a href='#SkPaint_Cap'>square</a>;
-<a href='SkPaint_Reference#SkPaint'>SkPaint</a>::<a href='#SkPaint_Style'>Style</a> <a href='#SkPaint_Style'>is</a> <a href='#SkPaint_Style'>ignored</a>, <a href='#SkPaint_Style'>as</a> <a href='#SkPaint_Style'>if</a> <a href='#SkPaint_Style'>were</a> <a href='#SkPaint_Style'>set</a> <a href='#SkPaint_Style'>to</a> <a href='SkPaint_Reference#SkPaint'>SkPaint</a>::<a href='#SkPaint_kStroke_Style'>kStroke_Style</a>.
+Draws <a href='undocumented#Line'>line</a> segment from <a href='#SkCanvas_drawLine_2_p0'>p0</a> to <a href='#SkCanvas_drawLine_2_p1'>p1</a> using clip, <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a>, and <a href='SkPaint_Reference#SkPaint'>SkPaint</a> <a href='#SkCanvas_drawLine_2_paint'>paint</a>.
+In <a href='#SkCanvas_drawLine_2_paint'>paint</a>: <a href='SkPaint_Reference#SkPaint'>SkPaint</a> stroke width describes the <a href='undocumented#Line'>line</a> thickness;
+<a href='SkPaint_Reference#SkPaint'>SkPaint</a>::<a href='#SkPaint_Cap'>Cap</a> draws the end rounded or square;
+<a href='SkPaint_Reference#SkPaint'>SkPaint</a>::<a href='#SkPaint_Style'>Style</a> is ignored, as if were set to <a href='SkPaint_Reference#SkPaint'>SkPaint</a>::<a href='#SkPaint_kStroke_Style'>kStroke_Style</a>.
### Parameters
<table> <tr> <td><a name='SkCanvas_drawLine_2_p0'><code><strong>p0</strong></code></a></td>
- <td>start of <a href='undocumented#Line'>line</a> <a href='undocumented#Line'>segment</a></td>
+ <td>start of <a href='undocumented#Line'>line</a> segment</td>
</tr>
<tr> <td><a name='SkCanvas_drawLine_2_p1'><code><strong>p1</strong></code></a></td>
- <td>end of <a href='undocumented#Line'>line</a> <a href='undocumented#Line'>segment</a></td>
+ <td>end of <a href='undocumented#Line'>line</a> segment</td>
</tr>
<tr> <td><a name='SkCanvas_drawLine_2_paint'><code><strong>paint</strong></code></a></td>
- <td>stroke, blend, <a href='SkColor_Reference#Color'>color</a>, <a href='SkColor_Reference#Color'>and</a> <a href='SkColor_Reference#Color'>so</a> <a href='SkColor_Reference#Color'>on</a>, <a href='SkColor_Reference#Color'>used</a> <a href='SkColor_Reference#Color'>to</a> <a href='SkColor_Reference#Color'>draw</a></td>
+ <td>stroke, blend, <a href='SkColor_Reference#Color'>color</a>, and so on, used to draw</td>
</tr>
</table>
@@ -3584,13 +3584,13 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-void <a href='#SkCanvas_drawRect'>drawRect</a>(<a href='#SkCanvas_drawRect'>const</a> <a href='SkRect_Reference#SkRect'>SkRect</a>& <a href='SkRect_Reference#Rect'>rect</a>, <a href='SkRect_Reference#Rect'>const</a> <a href='SkPaint_Reference#SkPaint'>SkPaint</a>& <a href='SkPaint_Reference#Paint'>paint</a>)
+void <a href='#SkCanvas_drawRect'>drawRect</a>(const <a href='SkRect_Reference#SkRect'>SkRect</a>& <a href='SkRect_Reference#Rect'>rect</a>, const <a href='SkPaint_Reference#SkPaint'>SkPaint</a>& <a href='SkPaint_Reference#Paint'>paint</a>)
</pre>
-Draws <a href='SkRect_Reference#SkRect'>SkRect</a> <a href='#SkCanvas_drawRect_rect'>rect</a> <a href='#SkCanvas_drawRect_rect'>using</a> <a href='#SkCanvas_drawRect_rect'>clip</a>, <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a>, <a href='SkMatrix_Reference#SkMatrix'>and</a> <a href='SkPaint_Reference#SkPaint'>SkPaint</a> <a href='#SkCanvas_drawRect_paint'>paint</a>.
-In <a href='#SkCanvas_drawRect_paint'>paint</a>: <a href='SkPaint_Reference#SkPaint'>SkPaint</a>::<a href='#SkPaint_Style'>Style</a> <a href='#SkPaint_Style'>determines</a> <a href='#SkPaint_Style'>if</a> <a href='#SkPaint_Style'>rectangle</a> <a href='#SkPaint_Style'>is</a> <a href='#SkPaint_Style'>stroked</a> <a href='#SkPaint_Style'>or</a> <a href='#SkPaint_Style'>filled</a>;
-if stroked, <a href='SkPaint_Reference#SkPaint'>SkPaint</a> <a href='SkPaint_Reference#SkPaint'>stroke</a> <a href='SkPaint_Reference#SkPaint'>width</a> <a href='SkPaint_Reference#SkPaint'>describes</a> <a href='SkPaint_Reference#SkPaint'>the</a> <a href='undocumented#Line'>line</a> <a href='undocumented#Line'>thickness</a>, <a href='undocumented#Line'>and</a>
-<a href='SkPaint_Reference#SkPaint'>SkPaint</a>::<a href='#SkPaint_Join'>Join</a> <a href='#SkPaint_Join'>draws</a> <a href='#SkPaint_Join'>the</a> <a href='#SkPaint_Join'>corners</a> <a href='#SkPaint_Join'>rounded</a> <a href='#SkPaint_Join'>or</a> <a href='#SkPaint_Join'>square</a>.
+Draws <a href='SkRect_Reference#SkRect'>SkRect</a> <a href='#SkCanvas_drawRect_rect'>rect</a> using clip, <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a>, and <a href='SkPaint_Reference#SkPaint'>SkPaint</a> <a href='#SkCanvas_drawRect_paint'>paint</a>.
+In <a href='#SkCanvas_drawRect_paint'>paint</a>: <a href='SkPaint_Reference#SkPaint'>SkPaint</a>::<a href='#SkPaint_Style'>Style</a> determines if rectangle is stroked or filled;
+if stroked, <a href='SkPaint_Reference#SkPaint'>SkPaint</a> stroke width describes the <a href='undocumented#Line'>line</a> thickness, and
+<a href='SkPaint_Reference#SkPaint'>SkPaint</a>::<a href='#SkPaint_Join'>Join</a> draws the corners rounded or square.
### Parameters
@@ -3598,7 +3598,7 @@
<td>rectangle to draw</td>
</tr>
<tr> <td><a name='SkCanvas_drawRect_paint'><code><strong>paint</strong></code></a></td>
- <td>stroke or fill, blend, <a href='SkColor_Reference#Color'>color</a>, <a href='SkColor_Reference#Color'>and</a> <a href='SkColor_Reference#Color'>so</a> <a href='SkColor_Reference#Color'>on</a>, <a href='SkColor_Reference#Color'>used</a> <a href='SkColor_Reference#Color'>to</a> <a href='SkColor_Reference#Color'>draw</a></td>
+ <td>stroke or fill, blend, <a href='SkColor_Reference#Color'>color</a>, and so on, used to draw</td>
</tr>
</table>
@@ -3615,13 +3615,13 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-void <a href='#SkCanvas_drawIRect'>drawIRect</a>(<a href='#SkCanvas_drawIRect'>const</a> <a href='SkIRect_Reference#SkIRect'>SkIRect</a>& <a href='SkRect_Reference#Rect'>rect</a>, <a href='SkRect_Reference#Rect'>const</a> <a href='SkPaint_Reference#SkPaint'>SkPaint</a>& <a href='SkPaint_Reference#Paint'>paint</a>)
+void <a href='#SkCanvas_drawIRect'>drawIRect</a>(const <a href='SkIRect_Reference#SkIRect'>SkIRect</a>& <a href='SkRect_Reference#Rect'>rect</a>, const <a href='SkPaint_Reference#SkPaint'>SkPaint</a>& <a href='SkPaint_Reference#Paint'>paint</a>)
</pre>
-Draws <a href='SkIRect_Reference#SkIRect'>SkIRect</a> <a href='#SkCanvas_drawIRect_rect'>rect</a> <a href='#SkCanvas_drawIRect_rect'>using</a> <a href='#SkCanvas_drawIRect_rect'>clip</a>, <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a>, <a href='SkMatrix_Reference#SkMatrix'>and</a> <a href='SkPaint_Reference#SkPaint'>SkPaint</a> <a href='#SkCanvas_drawIRect_paint'>paint</a>.
-In <a href='#SkCanvas_drawIRect_paint'>paint</a>: <a href='SkPaint_Reference#SkPaint'>SkPaint</a>::<a href='#SkPaint_Style'>Style</a> <a href='#SkPaint_Style'>determines</a> <a href='#SkPaint_Style'>if</a> <a href='#SkPaint_Style'>rectangle</a> <a href='#SkPaint_Style'>is</a> <a href='#SkPaint_Style'>stroked</a> <a href='#SkPaint_Style'>or</a> <a href='#SkPaint_Style'>filled</a>;
-if stroked, <a href='SkPaint_Reference#SkPaint'>SkPaint</a> <a href='SkPaint_Reference#SkPaint'>stroke</a> <a href='SkPaint_Reference#SkPaint'>width</a> <a href='SkPaint_Reference#SkPaint'>describes</a> <a href='SkPaint_Reference#SkPaint'>the</a> <a href='undocumented#Line'>line</a> <a href='undocumented#Line'>thickness</a>, <a href='undocumented#Line'>and</a>
-<a href='SkPaint_Reference#SkPaint'>SkPaint</a>::<a href='#SkPaint_Join'>Join</a> <a href='#SkPaint_Join'>draws</a> <a href='#SkPaint_Join'>the</a> <a href='#SkPaint_Join'>corners</a> <a href='#SkPaint_Join'>rounded</a> <a href='#SkPaint_Join'>or</a> <a href='#SkPaint_Join'>square</a>.
+Draws <a href='SkIRect_Reference#SkIRect'>SkIRect</a> <a href='#SkCanvas_drawIRect_rect'>rect</a> using clip, <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a>, and <a href='SkPaint_Reference#SkPaint'>SkPaint</a> <a href='#SkCanvas_drawIRect_paint'>paint</a>.
+In <a href='#SkCanvas_drawIRect_paint'>paint</a>: <a href='SkPaint_Reference#SkPaint'>SkPaint</a>::<a href='#SkPaint_Style'>Style</a> determines if rectangle is stroked or filled;
+if stroked, <a href='SkPaint_Reference#SkPaint'>SkPaint</a> stroke width describes the <a href='undocumented#Line'>line</a> thickness, and
+<a href='SkPaint_Reference#SkPaint'>SkPaint</a>::<a href='#SkPaint_Join'>Join</a> draws the corners rounded or square.
### Parameters
@@ -3629,7 +3629,7 @@
<td>rectangle to draw</td>
</tr>
<tr> <td><a name='SkCanvas_drawIRect_paint'><code><strong>paint</strong></code></a></td>
- <td>stroke or fill, blend, <a href='SkColor_Reference#Color'>color</a>, <a href='SkColor_Reference#Color'>and</a> <a href='SkColor_Reference#Color'>so</a> <a href='SkColor_Reference#Color'>on</a>, <a href='SkColor_Reference#Color'>used</a> <a href='SkColor_Reference#Color'>to</a> <a href='SkColor_Reference#Color'>draw</a></td>
+ <td>stroke or fill, blend, <a href='SkColor_Reference#Color'>color</a>, and so on, used to draw</td>
</tr>
</table>
@@ -3646,21 +3646,21 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-void <a href='#SkCanvas_drawRegion'>drawRegion</a>(<a href='#SkCanvas_drawRegion'>const</a> <a href='SkRegion_Reference#SkRegion'>SkRegion</a>& <a href='SkRegion_Reference#Region'>region</a>, <a href='SkRegion_Reference#Region'>const</a> <a href='SkPaint_Reference#SkPaint'>SkPaint</a>& <a href='SkPaint_Reference#Paint'>paint</a>)
+void <a href='#SkCanvas_drawRegion'>drawRegion</a>(const <a href='SkRegion_Reference#SkRegion'>SkRegion</a>& <a href='SkRegion_Reference#Region'>region</a>, const <a href='SkPaint_Reference#SkPaint'>SkPaint</a>& <a href='SkPaint_Reference#Paint'>paint</a>)
</pre>
-Draws <a href='SkRegion_Reference#SkRegion'>SkRegion</a> <a href='#SkCanvas_drawRegion_region'>region</a> <a href='#SkCanvas_drawRegion_region'>using</a> <a href='#SkCanvas_drawRegion_region'>clip</a>, <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a>, <a href='SkMatrix_Reference#SkMatrix'>and</a> <a href='SkPaint_Reference#SkPaint'>SkPaint</a> <a href='#SkCanvas_drawRegion_paint'>paint</a>.
-In <a href='#SkCanvas_drawRegion_paint'>paint</a>: <a href='SkPaint_Reference#SkPaint'>SkPaint</a>::<a href='#SkPaint_Style'>Style</a> <a href='#SkPaint_Style'>determines</a> <a href='#SkPaint_Style'>if</a> <a href='#SkPaint_Style'>rectangle</a> <a href='#SkPaint_Style'>is</a> <a href='#SkPaint_Style'>stroked</a> <a href='#SkPaint_Style'>or</a> <a href='#SkPaint_Style'>filled</a>;
-if stroked, <a href='SkPaint_Reference#SkPaint'>SkPaint</a> <a href='SkPaint_Reference#SkPaint'>stroke</a> <a href='SkPaint_Reference#SkPaint'>width</a> <a href='SkPaint_Reference#SkPaint'>describes</a> <a href='SkPaint_Reference#SkPaint'>the</a> <a href='undocumented#Line'>line</a> <a href='undocumented#Line'>thickness</a>, <a href='undocumented#Line'>and</a>
-<a href='SkPaint_Reference#SkPaint'>SkPaint</a>::<a href='#SkPaint_Join'>Join</a> <a href='#SkPaint_Join'>draws</a> <a href='#SkPaint_Join'>the</a> <a href='#SkPaint_Join'>corners</a> <a href='#SkPaint_Join'>rounded</a> <a href='#SkPaint_Join'>or</a> <a href='#SkPaint_Join'>square</a>.
+Draws <a href='SkRegion_Reference#SkRegion'>SkRegion</a> <a href='#SkCanvas_drawRegion_region'>region</a> using clip, <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a>, and <a href='SkPaint_Reference#SkPaint'>SkPaint</a> <a href='#SkCanvas_drawRegion_paint'>paint</a>.
+In <a href='#SkCanvas_drawRegion_paint'>paint</a>: <a href='SkPaint_Reference#SkPaint'>SkPaint</a>::<a href='#SkPaint_Style'>Style</a> determines if rectangle is stroked or filled;
+if stroked, <a href='SkPaint_Reference#SkPaint'>SkPaint</a> stroke width describes the <a href='undocumented#Line'>line</a> thickness, and
+<a href='SkPaint_Reference#SkPaint'>SkPaint</a>::<a href='#SkPaint_Join'>Join</a> draws the corners rounded or square.
### Parameters
<table> <tr> <td><a name='SkCanvas_drawRegion_region'><code><strong>region</strong></code></a></td>
- <td><a href='#SkCanvas_drawRegion_region'>region</a> <a href='#SkCanvas_drawRegion_region'>to</a> <a href='#SkCanvas_drawRegion_region'>draw</a></td>
+ <td><a href='#SkCanvas_drawRegion_region'>region</a> to draw</td>
</tr>
<tr> <td><a name='SkCanvas_drawRegion_paint'><code><strong>paint</strong></code></a></td>
- <td><a href='SkPaint_Reference#SkPaint'>SkPaint</a> <a href='SkPaint_Reference#SkPaint'>stroke</a> <a href='SkPaint_Reference#SkPaint'>or</a> <a href='SkPaint_Reference#SkPaint'>fill</a>, <a href='SkPaint_Reference#SkPaint'>blend</a>, <a href='SkColor_Reference#Color'>color</a>, <a href='SkColor_Reference#Color'>and</a> <a href='SkColor_Reference#Color'>so</a> <a href='SkColor_Reference#Color'>on</a>, <a href='SkColor_Reference#Color'>used</a> <a href='SkColor_Reference#Color'>to</a> <a href='SkColor_Reference#Color'>draw</a></td>
+ <td><a href='SkPaint_Reference#SkPaint'>SkPaint</a> stroke or fill, blend, <a href='SkColor_Reference#Color'>color</a>, and so on, used to draw</td>
</tr>
</table>
@@ -3677,20 +3677,20 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-void <a href='#SkCanvas_drawOval'>drawOval</a>(<a href='#SkCanvas_drawOval'>const</a> <a href='SkRect_Reference#SkRect'>SkRect</a>& <a href='undocumented#Oval'>oval</a>, <a href='undocumented#Oval'>const</a> <a href='SkPaint_Reference#SkPaint'>SkPaint</a>& <a href='SkPaint_Reference#Paint'>paint</a>)
+void <a href='#SkCanvas_drawOval'>drawOval</a>(const <a href='SkRect_Reference#SkRect'>SkRect</a>& <a href='undocumented#Oval'>oval</a>, const <a href='SkPaint_Reference#SkPaint'>SkPaint</a>& <a href='SkPaint_Reference#Paint'>paint</a>)
</pre>
-Draws <a href='#SkCanvas_drawOval_oval'>oval</a> <a href='#SkCanvas_drawOval_oval'>oval</a> <a href='#SkCanvas_drawOval_oval'>using</a> <a href='#SkCanvas_drawOval_oval'>clip</a>, <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a>, <a href='SkMatrix_Reference#SkMatrix'>and</a> <a href='SkPaint_Reference#SkPaint'>SkPaint</a>.
-In <a href='#SkCanvas_drawOval_paint'>paint</a>: <a href='SkPaint_Reference#SkPaint'>SkPaint</a>::<a href='#SkPaint_Style'>Style</a> <a href='#SkPaint_Style'>determines</a> <a href='#SkPaint_Style'>if</a> <a href='#SkCanvas_drawOval_oval'>oval</a> <a href='#SkCanvas_drawOval_oval'>is</a> <a href='#SkCanvas_drawOval_oval'>stroked</a> <a href='#SkCanvas_drawOval_oval'>or</a> <a href='#SkCanvas_drawOval_oval'>filled</a>;
-if stroked, <a href='SkPaint_Reference#SkPaint'>SkPaint</a> <a href='SkPaint_Reference#SkPaint'>stroke</a> <a href='SkPaint_Reference#SkPaint'>width</a> <a href='SkPaint_Reference#SkPaint'>describes</a> <a href='SkPaint_Reference#SkPaint'>the</a> <a href='undocumented#Line'>line</a> <a href='undocumented#Line'>thickness</a>.
+Draws <a href='#SkCanvas_drawOval_oval'>oval</a> <a href='#SkCanvas_drawOval_oval'>oval</a> using clip, <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a>, and <a href='SkPaint_Reference#SkPaint'>SkPaint</a>.
+In <a href='#SkCanvas_drawOval_paint'>paint</a>: <a href='SkPaint_Reference#SkPaint'>SkPaint</a>::<a href='#SkPaint_Style'>Style</a> determines if <a href='#SkCanvas_drawOval_oval'>oval</a> is stroked or filled;
+if stroked, <a href='SkPaint_Reference#SkPaint'>SkPaint</a> stroke width describes the <a href='undocumented#Line'>line</a> thickness.
### Parameters
<table> <tr> <td><a name='SkCanvas_drawOval_oval'><code><strong>oval</strong></code></a></td>
- <td><a href='SkRect_Reference#SkRect'>SkRect</a> <a href='SkRect_Reference#SkRect'>bounds</a> <a href='SkRect_Reference#SkRect'>of</a> <a href='#SkCanvas_drawOval_oval'>oval</a></td>
+ <td><a href='SkRect_Reference#SkRect'>SkRect</a> bounds of <a href='#SkCanvas_drawOval_oval'>oval</a></td>
</tr>
<tr> <td><a name='SkCanvas_drawOval_paint'><code><strong>paint</strong></code></a></td>
- <td><a href='SkPaint_Reference#SkPaint'>SkPaint</a> <a href='SkPaint_Reference#SkPaint'>stroke</a> <a href='SkPaint_Reference#SkPaint'>or</a> <a href='SkPaint_Reference#SkPaint'>fill</a>, <a href='SkPaint_Reference#SkPaint'>blend</a>, <a href='SkColor_Reference#Color'>color</a>, <a href='SkColor_Reference#Color'>and</a> <a href='SkColor_Reference#Color'>so</a> <a href='SkColor_Reference#Color'>on</a>, <a href='SkColor_Reference#Color'>used</a> <a href='SkColor_Reference#Color'>to</a> <a href='SkColor_Reference#Color'>draw</a></td>
+ <td><a href='SkPaint_Reference#SkPaint'>SkPaint</a> stroke or fill, blend, <a href='SkColor_Reference#Color'>color</a>, and so on, used to draw</td>
</tr>
</table>
@@ -3707,23 +3707,23 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-void <a href='#SkCanvas_drawRRect'>drawRRect</a>(<a href='#SkCanvas_drawRRect'>const</a> <a href='SkRRect_Reference#SkRRect'>SkRRect</a>& <a href='SkRRect_Reference#SkRRect'>rrect</a>, <a href='SkRRect_Reference#SkRRect'>const</a> <a href='SkPaint_Reference#SkPaint'>SkPaint</a>& <a href='SkPaint_Reference#Paint'>paint</a>)
+void <a href='#SkCanvas_drawRRect'>drawRRect</a>(const <a href='SkRRect_Reference#SkRRect'>SkRRect</a>& rrect, const <a href='SkPaint_Reference#SkPaint'>SkPaint</a>& <a href='SkPaint_Reference#Paint'>paint</a>)
</pre>
-Draws <a href='SkRRect_Reference#SkRRect'>SkRRect</a> <a href='#SkCanvas_drawRRect_rrect'>rrect</a> <a href='#SkCanvas_drawRRect_rrect'>using</a> <a href='#SkCanvas_drawRRect_rrect'>clip</a>, <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a>, <a href='SkMatrix_Reference#SkMatrix'>and</a> <a href='SkPaint_Reference#SkPaint'>SkPaint</a> <a href='#SkCanvas_drawRRect_paint'>paint</a>.
-In <a href='#SkCanvas_drawRRect_paint'>paint</a>: <a href='SkPaint_Reference#SkPaint'>SkPaint</a>::<a href='#SkPaint_Style'>Style</a> <a href='#SkPaint_Style'>determines</a> <a href='#SkPaint_Style'>if</a> <a href='#SkCanvas_drawRRect_rrect'>rrect</a> <a href='#SkCanvas_drawRRect_rrect'>is</a> <a href='#SkCanvas_drawRRect_rrect'>stroked</a> <a href='#SkCanvas_drawRRect_rrect'>or</a> <a href='#SkCanvas_drawRRect_rrect'>filled</a>;
-if stroked, <a href='SkPaint_Reference#SkPaint'>SkPaint</a> <a href='SkPaint_Reference#SkPaint'>stroke</a> <a href='SkPaint_Reference#SkPaint'>width</a> <a href='SkPaint_Reference#SkPaint'>describes</a> <a href='SkPaint_Reference#SkPaint'>the</a> <a href='undocumented#Line'>line</a> <a href='undocumented#Line'>thickness</a>.
+Draws <a href='SkRRect_Reference#SkRRect'>SkRRect</a> <a href='#SkCanvas_drawRRect_rrect'>rrect</a> using clip, <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a>, and <a href='SkPaint_Reference#SkPaint'>SkPaint</a> <a href='#SkCanvas_drawRRect_paint'>paint</a>.
+In <a href='#SkCanvas_drawRRect_paint'>paint</a>: <a href='SkPaint_Reference#SkPaint'>SkPaint</a>::<a href='#SkPaint_Style'>Style</a> determines if <a href='#SkCanvas_drawRRect_rrect'>rrect</a> is stroked or filled;
+if stroked, <a href='SkPaint_Reference#SkPaint'>SkPaint</a> stroke width describes the <a href='undocumented#Line'>line</a> thickness.
-<a href='#SkCanvas_drawRRect_rrect'>rrect</a> <a href='#SkCanvas_drawRRect_rrect'>may</a> <a href='#SkCanvas_drawRRect_rrect'>represent</a> <a href='#SkCanvas_drawRRect_rrect'>a</a> <a href='#SkCanvas_drawRRect_rrect'>rectangle</a>, <a href='undocumented#Circle'>circle</a>, <a href='undocumented#Oval'>oval</a>, <a href='undocumented#Oval'>uniformly</a> <a href='undocumented#Oval'>rounded</a> <a href='undocumented#Oval'>rectangle</a>, <a href='undocumented#Oval'>or</a>
+<a href='#SkCanvas_drawRRect_rrect'>rrect</a> may represent a rectangle, <a href='undocumented#Circle'>circle</a>, <a href='undocumented#Oval'>oval</a>, uniformly rounded rectangle, or
may have any combination of positive non-square radii for the four corners.
### Parameters
<table> <tr> <td><a name='SkCanvas_drawRRect_rrect'><code><strong>rrect</strong></code></a></td>
- <td><a href='SkRRect_Reference#SkRRect'>SkRRect</a> <a href='SkRRect_Reference#SkRRect'>with</a> <a href='SkRRect_Reference#SkRRect'>up</a> <a href='SkRRect_Reference#SkRRect'>to</a> <a href='SkRRect_Reference#SkRRect'>eight</a> <a href='SkRRect_Reference#SkRRect'>corner</a> <a href='SkRRect_Reference#SkRRect'>radii</a> <a href='SkRRect_Reference#SkRRect'>to</a> <a href='SkRRect_Reference#SkRRect'>draw</a></td>
+ <td><a href='SkRRect_Reference#SkRRect'>SkRRect</a> with up to eight corner radii to draw</td>
</tr>
<tr> <td><a name='SkCanvas_drawRRect_paint'><code><strong>paint</strong></code></a></td>
- <td><a href='SkPaint_Reference#SkPaint'>SkPaint</a> <a href='SkPaint_Reference#SkPaint'>stroke</a> <a href='SkPaint_Reference#SkPaint'>or</a> <a href='SkPaint_Reference#SkPaint'>fill</a>, <a href='SkPaint_Reference#SkPaint'>blend</a>, <a href='SkColor_Reference#Color'>color</a>, <a href='SkColor_Reference#Color'>and</a> <a href='SkColor_Reference#Color'>so</a> <a href='SkColor_Reference#Color'>on</a>, <a href='SkColor_Reference#Color'>used</a> <a href='SkColor_Reference#Color'>to</a> <a href='SkColor_Reference#Color'>draw</a></td>
+ <td><a href='SkPaint_Reference#SkPaint'>SkPaint</a> stroke or fill, blend, <a href='SkColor_Reference#Color'>color</a>, and so on, used to draw</td>
</tr>
</table>
@@ -3740,31 +3740,31 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-void <a href='#SkCanvas_drawDRRect'>drawDRRect</a>(<a href='#SkCanvas_drawDRRect'>const</a> <a href='SkRRect_Reference#SkRRect'>SkRRect</a>& <a href='SkRRect_Reference#SkRRect'>outer</a>, <a href='SkRRect_Reference#SkRRect'>const</a> <a href='SkRRect_Reference#SkRRect'>SkRRect</a>& <a href='SkRRect_Reference#SkRRect'>inner</a>, <a href='SkRRect_Reference#SkRRect'>const</a> <a href='SkPaint_Reference#SkPaint'>SkPaint</a>& <a href='SkPaint_Reference#Paint'>paint</a>)
+void <a href='#SkCanvas_drawDRRect'>drawDRRect</a>(const <a href='SkRRect_Reference#SkRRect'>SkRRect</a>& outer, const <a href='SkRRect_Reference#SkRRect'>SkRRect</a>& inner, const <a href='SkPaint_Reference#SkPaint'>SkPaint</a>& <a href='SkPaint_Reference#Paint'>paint</a>)
</pre>
-Draws <a href='SkRRect_Reference#SkRRect'>SkRRect</a> <a href='#SkCanvas_drawDRRect_outer'>outer</a> <a href='#SkCanvas_drawDRRect_outer'>and</a> <a href='#SkCanvas_drawDRRect_inner'>inner</a>
-using clip, <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a>, <a href='SkMatrix_Reference#SkMatrix'>and</a> <a href='SkPaint_Reference#SkPaint'>SkPaint</a> <a href='#SkCanvas_drawDRRect_paint'>paint</a>.
-<a href='#SkCanvas_drawDRRect_outer'>outer</a> <a href='#SkCanvas_drawDRRect_outer'>must</a> <a href='#SkCanvas_drawDRRect_outer'>contain</a> <a href='#SkCanvas_drawDRRect_inner'>inner</a> <a href='#SkCanvas_drawDRRect_inner'>or</a> <a href='#SkCanvas_drawDRRect_inner'>the</a> <a href='#SkCanvas_drawDRRect_inner'>drawing</a> <a href='#SkCanvas_drawDRRect_inner'>is</a> <a href='#SkCanvas_drawDRRect_inner'>undefined</a>.
-In <a href='#SkCanvas_drawDRRect_paint'>paint</a>: <a href='SkPaint_Reference#SkPaint'>SkPaint</a>::<a href='#SkPaint_Style'>Style</a> <a href='#SkPaint_Style'>determines</a> <a href='#SkPaint_Style'>if</a> <a href='SkRRect_Reference#SkRRect'>SkRRect</a> <a href='SkRRect_Reference#SkRRect'>is</a> <a href='SkRRect_Reference#SkRRect'>stroked</a> <a href='SkRRect_Reference#SkRRect'>or</a> <a href='SkRRect_Reference#SkRRect'>filled</a>;
-if stroked, <a href='SkPaint_Reference#SkPaint'>SkPaint</a> <a href='SkPaint_Reference#SkPaint'>stroke</a> <a href='SkPaint_Reference#SkPaint'>width</a> <a href='SkPaint_Reference#SkPaint'>describes</a> <a href='SkPaint_Reference#SkPaint'>the</a> <a href='undocumented#Line'>line</a> <a href='undocumented#Line'>thickness</a>.
-If stroked and <a href='SkRRect_Reference#SkRRect'>SkRRect</a> <a href='SkRRect_Reference#SkRRect'>corner</a> <a href='SkRRect_Reference#SkRRect'>has</a> <a href='SkRRect_Reference#SkRRect'>zero length</a> <a href='SkRRect_Reference#SkRRect'>radii</a>, <a href='SkPaint_Reference#SkPaint'>SkPaint</a>::<a href='#SkPaint_Join'>Join</a> <a href='#SkPaint_Join'>can</a>
+Draws <a href='SkRRect_Reference#SkRRect'>SkRRect</a> <a href='#SkCanvas_drawDRRect_outer'>outer</a> and <a href='#SkCanvas_drawDRRect_inner'>inner</a>
+using clip, <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a>, and <a href='SkPaint_Reference#SkPaint'>SkPaint</a> <a href='#SkCanvas_drawDRRect_paint'>paint</a>.
+<a href='#SkCanvas_drawDRRect_outer'>outer</a> must contain <a href='#SkCanvas_drawDRRect_inner'>inner</a> or the drawing is undefined.
+In <a href='#SkCanvas_drawDRRect_paint'>paint</a>: <a href='SkPaint_Reference#SkPaint'>SkPaint</a>::<a href='#SkPaint_Style'>Style</a> determines if <a href='SkRRect_Reference#SkRRect'>SkRRect</a> is stroked or filled;
+if stroked, <a href='SkPaint_Reference#SkPaint'>SkPaint</a> stroke width describes the <a href='undocumented#Line'>line</a> thickness.
+If stroked and <a href='SkRRect_Reference#SkRRect'>SkRRect</a> corner has zero length radii, <a href='SkPaint_Reference#SkPaint'>SkPaint</a>::<a href='#SkPaint_Join'>Join</a> can
draw corners rounded or square.
-GPU-backed platforms optimize drawing when both <a href='#SkCanvas_drawDRRect_outer'>outer</a> <a href='#SkCanvas_drawDRRect_outer'>and</a> <a href='#SkCanvas_drawDRRect_inner'>inner</a> <a href='#SkCanvas_drawDRRect_inner'>are</a>
-concave and <a href='#SkCanvas_drawDRRect_outer'>outer</a> <a href='#SkCanvas_drawDRRect_outer'>contains</a> <a href='#SkCanvas_drawDRRect_inner'>inner</a>. <a href='#SkCanvas_drawDRRect_inner'>These</a> <a href='#SkCanvas_drawDRRect_inner'>platforms</a> <a href='#SkCanvas_drawDRRect_inner'>may</a> <a href='#SkCanvas_drawDRRect_inner'>not</a> <a href='#SkCanvas_drawDRRect_inner'>be</a> <a href='#SkCanvas_drawDRRect_inner'>able</a> <a href='#SkCanvas_drawDRRect_inner'>to</a> <a href='#SkCanvas_drawDRRect_inner'>draw</a>
-<a href='SkPath_Reference#SkPath'>SkPath</a> <a href='SkPath_Reference#SkPath'>built</a> <a href='SkPath_Reference#SkPath'>with</a> <a href='SkPath_Reference#SkPath'>identical</a> <a href='undocumented#Data'>data</a> <a href='undocumented#Data'>as</a> <a href='undocumented#Data'>fast</a>.
+GPU-backed platforms optimize drawing when both <a href='#SkCanvas_drawDRRect_outer'>outer</a> and <a href='#SkCanvas_drawDRRect_inner'>inner</a> are
+concave and <a href='#SkCanvas_drawDRRect_outer'>outer</a> contains <a href='#SkCanvas_drawDRRect_inner'>inner</a>. These platforms may not be able to draw
+<a href='SkPath_Reference#SkPath'>SkPath</a> built with identical <a href='undocumented#Data'>data</a> as fast.
### Parameters
<table> <tr> <td><a name='SkCanvas_drawDRRect_outer'><code><strong>outer</strong></code></a></td>
- <td><a href='SkRRect_Reference#SkRRect'>SkRRect</a> <a href='#SkCanvas_drawDRRect_outer'>outer</a> <a href='#SkCanvas_drawDRRect_outer'>bounds</a> <a href='#SkCanvas_drawDRRect_outer'>to</a> <a href='#SkCanvas_drawDRRect_outer'>draw</a></td>
+ <td><a href='SkRRect_Reference#SkRRect'>SkRRect</a> <a href='#SkCanvas_drawDRRect_outer'>outer</a> bounds to draw</td>
</tr>
<tr> <td><a name='SkCanvas_drawDRRect_inner'><code><strong>inner</strong></code></a></td>
- <td><a href='SkRRect_Reference#SkRRect'>SkRRect</a> <a href='#SkCanvas_drawDRRect_inner'>inner</a> <a href='#SkCanvas_drawDRRect_inner'>bounds</a> <a href='#SkCanvas_drawDRRect_inner'>to</a> <a href='#SkCanvas_drawDRRect_inner'>draw</a></td>
+ <td><a href='SkRRect_Reference#SkRRect'>SkRRect</a> <a href='#SkCanvas_drawDRRect_inner'>inner</a> bounds to draw</td>
</tr>
<tr> <td><a name='SkCanvas_drawDRRect_paint'><code><strong>paint</strong></code></a></td>
- <td><a href='SkPaint_Reference#SkPaint'>SkPaint</a> <a href='SkPaint_Reference#SkPaint'>stroke</a> <a href='SkPaint_Reference#SkPaint'>or</a> <a href='SkPaint_Reference#SkPaint'>fill</a>, <a href='SkPaint_Reference#SkPaint'>blend</a>, <a href='SkColor_Reference#Color'>color</a>, <a href='SkColor_Reference#Color'>and</a> <a href='SkColor_Reference#Color'>so</a> <a href='SkColor_Reference#Color'>on</a>, <a href='SkColor_Reference#Color'>used</a> <a href='SkColor_Reference#Color'>to</a> <a href='SkColor_Reference#Color'>draw</a></td>
+ <td><a href='SkPaint_Reference#SkPaint'>SkPaint</a> stroke or fill, blend, <a href='SkColor_Reference#Color'>color</a>, and so on, used to draw</td>
</tr>
</table>
@@ -3774,9 +3774,9 @@
### Example
-<div><fiddle-embed name="30823cb4edf884d330285ea161664931"><div>Outer <a href='SkRect_Reference#Rect'>Rect</a> <a href='SkRect_Reference#Rect'>has</a> <a href='SkRect_Reference#Rect'>no</a> <a href='SkRect_Reference#Rect'>corner</a> <a href='SkRect_Reference#Rect'>radii</a>, <a href='SkRect_Reference#Rect'>but</a> <a href='SkRect_Reference#Rect'>stroke</a> <a href='SkRect_Reference#Rect'>join</a> <a href='SkRect_Reference#Rect'>is</a> <a href='SkRect_Reference#Rect'>rounded</a>.
-<a href='SkRect_Reference#Rect'>Inner</a> <a href='#RRect'>Round_Rect</a> <a href='#RRect'>has</a> <a href='#RRect'>corner</a> <a href='#RRect'>radii</a>; <a href='#RRect'>outset</a> <a href='#RRect'>stroke</a> <a href='#RRect'>increases</a> <a href='#RRect'>radii</a> <a href='#RRect'>of</a> <a href='#RRect'>corners</a>.
-<a href='#RRect'>Stroke</a> <a href='#RRect'>join</a> <a href='#RRect'>does</a> <a href='#RRect'>not</a> <a href='#RRect'>affect</a> <a href='#SkCanvas_drawDRRect_inner'>inner</a> <a href='#RRect'>Round_Rect</a> <a href='#RRect'>since</a> <a href='#RRect'>it</a> <a href='#RRect'>has</a> <a href='#RRect'>no</a> <a href='#RRect'>sharp</a> <a href='#RRect'>corners</a>.
+<div><fiddle-embed name="30823cb4edf884d330285ea161664931"><div>Outer <a href='SkRect_Reference#Rect'>Rect</a> has no corner radii, but stroke join is rounded.
+Inner <a href='#RRect'>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='#RRect'>Round_Rect</a> since it has no sharp corners.
</div></fiddle-embed></div>
### See Also
@@ -3788,27 +3788,27 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-void <a href='#SkCanvas_drawCircle'>drawCircle</a>(<a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>cx</a>, <a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>cy</a>, <a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>radius</a>, <a href='undocumented#SkScalar'>const</a> <a href='SkPaint_Reference#SkPaint'>SkPaint</a>& <a href='SkPaint_Reference#Paint'>paint</a>)
+void <a href='#SkCanvas_drawCircle'>drawCircle</a>(<a href='undocumented#SkScalar'>SkScalar</a> cx, <a href='undocumented#SkScalar'>SkScalar</a> cy, <a href='undocumented#SkScalar'>SkScalar</a> radius, const <a href='SkPaint_Reference#SkPaint'>SkPaint</a>& <a href='SkPaint_Reference#Paint'>paint</a>)
</pre>
-Draws <a href='undocumented#Circle'>circle</a> <a href='undocumented#Circle'>at</a> (<a href='#SkCanvas_drawCircle_cx'>cx</a>, <a href='#SkCanvas_drawCircle_cy'>cy</a>) <a href='#SkCanvas_drawCircle_cy'>with</a> <a href='#SkCanvas_drawCircle_radius'>radius</a> <a href='#SkCanvas_drawCircle_radius'>using</a> <a href='#SkCanvas_drawCircle_radius'>clip</a>, <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a>, <a href='SkMatrix_Reference#SkMatrix'>and</a> <a href='SkPaint_Reference#SkPaint'>SkPaint</a> <a href='#SkCanvas_drawCircle_paint'>paint</a>.
-If <a href='#SkCanvas_drawCircle_radius'>radius</a> <a href='#SkCanvas_drawCircle_radius'>is</a> <a href='#SkCanvas_drawCircle_radius'>zero</a> <a href='#SkCanvas_drawCircle_radius'>or</a> <a href='#SkCanvas_drawCircle_radius'>less</a>, <a href='#SkCanvas_drawCircle_radius'>nothing</a> <a href='#SkCanvas_drawCircle_radius'>is</a> <a href='#SkCanvas_drawCircle_radius'>drawn</a>.
-In <a href='#SkCanvas_drawCircle_paint'>paint</a>: <a href='SkPaint_Reference#SkPaint'>SkPaint</a>::<a href='#SkPaint_Style'>Style</a> <a href='#SkPaint_Style'>determines</a> <a href='#SkPaint_Style'>if</a> <a href='undocumented#Circle'>circle</a> <a href='undocumented#Circle'>is</a> <a href='undocumented#Circle'>stroked</a> <a href='undocumented#Circle'>or</a> <a href='undocumented#Circle'>filled</a>;
-if stroked, <a href='SkPaint_Reference#SkPaint'>SkPaint</a> <a href='SkPaint_Reference#SkPaint'>stroke</a> <a href='SkPaint_Reference#SkPaint'>width</a> <a href='SkPaint_Reference#SkPaint'>describes</a> <a href='SkPaint_Reference#SkPaint'>the</a> <a href='undocumented#Line'>line</a> <a href='undocumented#Line'>thickness</a>.
+Draws <a href='undocumented#Circle'>circle</a> at (<a href='#SkCanvas_drawCircle_cx'>cx</a>, <a href='#SkCanvas_drawCircle_cy'>cy</a>) with <a href='#SkCanvas_drawCircle_radius'>radius</a> using clip, <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a>, and <a href='SkPaint_Reference#SkPaint'>SkPaint</a> <a href='#SkCanvas_drawCircle_paint'>paint</a>.
+If <a href='#SkCanvas_drawCircle_radius'>radius</a> is zero or less, nothing is drawn.
+In <a href='#SkCanvas_drawCircle_paint'>paint</a>: <a href='SkPaint_Reference#SkPaint'>SkPaint</a>::<a href='#SkPaint_Style'>Style</a> determines if <a href='undocumented#Circle'>circle</a> is stroked or filled;
+if stroked, <a href='SkPaint_Reference#SkPaint'>SkPaint</a> stroke width describes the <a href='undocumented#Line'>line</a> thickness.
### Parameters
<table> <tr> <td><a name='SkCanvas_drawCircle_cx'><code><strong>cx</strong></code></a></td>
- <td><a href='undocumented#Circle'>circle</a> <a href='undocumented#Circle'>center</a> <a href='undocumented#Circle'>on</a> <a href='undocumented#Circle'>the</a> <a href='undocumented#Circle'>x-axis</a></td>
+ <td><a href='undocumented#Circle'>circle</a> center on the x-axis</td>
</tr>
<tr> <td><a name='SkCanvas_drawCircle_cy'><code><strong>cy</strong></code></a></td>
- <td><a href='undocumented#Circle'>circle</a> <a href='undocumented#Circle'>center</a> <a href='undocumented#Circle'>on</a> <a href='undocumented#Circle'>the</a> <a href='undocumented#Circle'>y-axis</a></td>
+ <td><a href='undocumented#Circle'>circle</a> center on the y-axis</td>
</tr>
<tr> <td><a name='SkCanvas_drawCircle_radius'><code><strong>radius</strong></code></a></td>
<td>half the diameter of <a href='undocumented#Circle'>circle</a></td>
</tr>
<tr> <td><a name='SkCanvas_drawCircle_paint'><code><strong>paint</strong></code></a></td>
- <td><a href='SkPaint_Reference#SkPaint'>SkPaint</a> <a href='SkPaint_Reference#SkPaint'>stroke</a> <a href='SkPaint_Reference#SkPaint'>or</a> <a href='SkPaint_Reference#SkPaint'>fill</a>, <a href='SkPaint_Reference#SkPaint'>blend</a>, <a href='SkColor_Reference#Color'>color</a>, <a href='SkColor_Reference#Color'>and</a> <a href='SkColor_Reference#Color'>so</a> <a href='SkColor_Reference#Color'>on</a>, <a href='SkColor_Reference#Color'>used</a> <a href='SkColor_Reference#Color'>to</a> <a href='SkColor_Reference#Color'>draw</a></td>
+ <td><a href='SkPaint_Reference#SkPaint'>SkPaint</a> stroke or fill, blend, <a href='SkColor_Reference#Color'>color</a>, and so on, used to draw</td>
</tr>
</table>
@@ -3825,13 +3825,13 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-void <a href='#SkCanvas_drawCircle'>drawCircle</a>(<a href='SkPoint_Reference#SkPoint'>SkPoint</a> <a href='SkPoint_Reference#SkPoint'>center</a>, <a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>radius</a>, <a href='undocumented#SkScalar'>const</a> <a href='SkPaint_Reference#SkPaint'>SkPaint</a>& <a href='SkPaint_Reference#Paint'>paint</a>)
+void <a href='#SkCanvas_drawCircle'>drawCircle</a>(<a href='SkPoint_Reference#SkPoint'>SkPoint</a> center, <a href='undocumented#SkScalar'>SkScalar</a> radius, const <a href='SkPaint_Reference#SkPaint'>SkPaint</a>& <a href='SkPaint_Reference#Paint'>paint</a>)
</pre>
-Draws <a href='undocumented#Circle'>circle</a> <a href='undocumented#Circle'>at</a> <a href='#SkCanvas_drawCircle_2_center'>center</a> <a href='#SkCanvas_drawCircle_2_center'>with</a> <a href='#SkCanvas_drawCircle_2_radius'>radius</a> <a href='#SkCanvas_drawCircle_2_radius'>using</a> <a href='#SkCanvas_drawCircle_2_radius'>clip</a>, <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a>, <a href='SkMatrix_Reference#SkMatrix'>and</a> <a href='SkPaint_Reference#SkPaint'>SkPaint</a> <a href='#SkCanvas_drawCircle_2_paint'>paint</a>.
-If <a href='#SkCanvas_drawCircle_2_radius'>radius</a> <a href='#SkCanvas_drawCircle_2_radius'>is</a> <a href='#SkCanvas_drawCircle_2_radius'>zero</a> <a href='#SkCanvas_drawCircle_2_radius'>or</a> <a href='#SkCanvas_drawCircle_2_radius'>less</a>, <a href='#SkCanvas_drawCircle_2_radius'>nothing</a> <a href='#SkCanvas_drawCircle_2_radius'>is</a> <a href='#SkCanvas_drawCircle_2_radius'>drawn</a>.
-In <a href='#SkCanvas_drawCircle_2_paint'>paint</a>: <a href='SkPaint_Reference#SkPaint'>SkPaint</a>::<a href='#SkPaint_Style'>Style</a> <a href='#SkPaint_Style'>determines</a> <a href='#SkPaint_Style'>if</a> <a href='undocumented#Circle'>circle</a> <a href='undocumented#Circle'>is</a> <a href='undocumented#Circle'>stroked</a> <a href='undocumented#Circle'>or</a> <a href='undocumented#Circle'>filled</a>;
-if stroked, <a href='SkPaint_Reference#SkPaint'>SkPaint</a> <a href='SkPaint_Reference#SkPaint'>stroke</a> <a href='SkPaint_Reference#SkPaint'>width</a> <a href='SkPaint_Reference#SkPaint'>describes</a> <a href='SkPaint_Reference#SkPaint'>the</a> <a href='undocumented#Line'>line</a> <a href='undocumented#Line'>thickness</a>.
+Draws <a href='undocumented#Circle'>circle</a> at <a href='#SkCanvas_drawCircle_2_center'>center</a> with <a href='#SkCanvas_drawCircle_2_radius'>radius</a> using clip, <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a>, and <a href='SkPaint_Reference#SkPaint'>SkPaint</a> <a href='#SkCanvas_drawCircle_2_paint'>paint</a>.
+If <a href='#SkCanvas_drawCircle_2_radius'>radius</a> is zero or less, nothing is drawn.
+In <a href='#SkCanvas_drawCircle_2_paint'>paint</a>: <a href='SkPaint_Reference#SkPaint'>SkPaint</a>::<a href='#SkPaint_Style'>Style</a> determines if <a href='undocumented#Circle'>circle</a> is stroked or filled;
+if stroked, <a href='SkPaint_Reference#SkPaint'>SkPaint</a> stroke width describes the <a href='undocumented#Line'>line</a> thickness.
### Parameters
@@ -3842,7 +3842,7 @@
<td>half the diameter of <a href='undocumented#Circle'>circle</a></td>
</tr>
<tr> <td><a name='SkCanvas_drawCircle_2_paint'><code><strong>paint</strong></code></a></td>
- <td><a href='SkPaint_Reference#SkPaint'>SkPaint</a> <a href='SkPaint_Reference#SkPaint'>stroke</a> <a href='SkPaint_Reference#SkPaint'>or</a> <a href='SkPaint_Reference#SkPaint'>fill</a>, <a href='SkPaint_Reference#SkPaint'>blend</a>, <a href='SkColor_Reference#Color'>color</a>, <a href='SkColor_Reference#Color'>and</a> <a href='SkColor_Reference#Color'>so</a> <a href='SkColor_Reference#Color'>on</a>, <a href='SkColor_Reference#Color'>used</a> <a href='SkColor_Reference#Color'>to</a> <a href='SkColor_Reference#Color'>draw</a></td>
+ <td><a href='SkPaint_Reference#SkPaint'>SkPaint</a> stroke or fill, blend, <a href='SkColor_Reference#Color'>color</a>, and so on, used to draw</td>
</tr>
</table>
@@ -3859,31 +3859,31 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-void <a href='#SkCanvas_drawArc'>drawArc</a>(<a href='#SkCanvas_drawArc'>const</a> <a href='SkRect_Reference#SkRect'>SkRect</a>& <a href='undocumented#Oval'>oval</a>, <a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>startAngle</a>, <a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>sweepAngle</a>, <a href='undocumented#SkScalar'>bool</a> <a href='undocumented#SkScalar'>useCenter</a>,
- <a href='undocumented#SkScalar'>const</a> <a href='SkPaint_Reference#SkPaint'>SkPaint</a>& <a href='SkPaint_Reference#Paint'>paint</a>)
+void <a href='#SkCanvas_drawArc'>drawArc</a>(const <a href='SkRect_Reference#SkRect'>SkRect</a>& <a href='undocumented#Oval'>oval</a>, <a href='undocumented#SkScalar'>SkScalar</a> startAngle, <a href='undocumented#SkScalar'>SkScalar</a> sweepAngle, bool useCenter,
+ const <a href='SkPaint_Reference#SkPaint'>SkPaint</a>& <a href='SkPaint_Reference#Paint'>paint</a>)
</pre>
-Draws <a href='undocumented#Arc'>arc</a> <a href='undocumented#Arc'>using</a> <a href='undocumented#Arc'>clip</a>, <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a>, <a href='SkMatrix_Reference#SkMatrix'>and</a> <a href='SkPaint_Reference#SkPaint'>SkPaint</a> <a href='#SkCanvas_drawArc_paint'>paint</a>.
+Draws <a href='undocumented#Arc'>arc</a> using clip, <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a>, and <a href='SkPaint_Reference#SkPaint'>SkPaint</a> <a href='#SkCanvas_drawArc_paint'>paint</a>.
-<a href='undocumented#Arc'>Arc</a> <a href='undocumented#Arc'>is</a> <a href='undocumented#Arc'>part</a> <a href='undocumented#Arc'>of</a> <a href='#SkCanvas_drawArc_oval'>oval</a> <a href='#SkCanvas_drawArc_oval'>bounded</a> <a href='#SkCanvas_drawArc_oval'>by</a> <a href='#SkCanvas_drawArc_oval'>oval</a>, <a href='#SkCanvas_drawArc_oval'>sweeping</a> <a href='#SkCanvas_drawArc_oval'>from</a> <a href='#SkCanvas_drawArc_startAngle'>startAngle</a> <a href='#SkCanvas_drawArc_startAngle'>to</a> <a href='#SkCanvas_drawArc_startAngle'>startAngle</a> <a href='#SkCanvas_drawArc_startAngle'>plus</a>
-<a href='#SkCanvas_drawArc_sweepAngle'>sweepAngle</a>. <a href='#SkCanvas_drawArc_startAngle'>startAngle</a> <a href='#SkCanvas_drawArc_startAngle'>and</a> <a href='#SkCanvas_drawArc_sweepAngle'>sweepAngle</a> <a href='#SkCanvas_drawArc_sweepAngle'>are</a> <a href='#SkCanvas_drawArc_sweepAngle'>in</a> <a href='#SkCanvas_drawArc_sweepAngle'>degrees</a>.
+<a href='undocumented#Arc'>Arc</a> is part of <a href='#SkCanvas_drawArc_oval'>oval</a> bounded by <a href='#SkCanvas_drawArc_oval'>oval</a>, sweeping from <a href='#SkCanvas_drawArc_startAngle'>startAngle</a> to <a href='#SkCanvas_drawArc_startAngle'>startAngle</a> plus
+<a href='#SkCanvas_drawArc_sweepAngle'>sweepAngle</a>. <a href='#SkCanvas_drawArc_startAngle'>startAngle</a> and <a href='#SkCanvas_drawArc_sweepAngle'>sweepAngle</a> are in degrees.
-<a href='#SkCanvas_drawArc_startAngle'>startAngle</a> <a href='#SkCanvas_drawArc_startAngle'>of</a> <a href='#SkCanvas_drawArc_startAngle'>zero</a> <a href='#SkCanvas_drawArc_startAngle'>places</a> <a href='#SkCanvas_drawArc_startAngle'>start</a> <a href='SkPoint_Reference#Point'>point</a> <a href='SkPoint_Reference#Point'>at</a> <a href='SkPoint_Reference#Point'>the</a> <a href='SkPoint_Reference#Point'>right</a> <a href='SkPoint_Reference#Point'>middle</a> <a href='SkPoint_Reference#Point'>edge</a> <a href='SkPoint_Reference#Point'>of</a> <a href='#SkCanvas_drawArc_oval'>oval</a>.
-A positive <a href='#SkCanvas_drawArc_sweepAngle'>sweepAngle</a> <a href='#SkCanvas_drawArc_sweepAngle'>places</a> <a href='undocumented#Arc'>arc</a> <a href='undocumented#Arc'>end</a> <a href='SkPoint_Reference#Point'>point</a> <a href='SkPoint_Reference#Point'>clockwise</a> <a href='SkPoint_Reference#Point'>from</a> <a href='SkPoint_Reference#Point'>start</a> <a href='SkPoint_Reference#Point'>point</a>;
-a negative <a href='#SkCanvas_drawArc_sweepAngle'>sweepAngle</a> <a href='#SkCanvas_drawArc_sweepAngle'>places</a> <a href='undocumented#Arc'>arc</a> <a href='undocumented#Arc'>end</a> <a href='SkPoint_Reference#Point'>point</a> <a href='SkPoint_Reference#Point'>counterclockwise</a> <a href='SkPoint_Reference#Point'>from</a> <a href='SkPoint_Reference#Point'>start</a> <a href='SkPoint_Reference#Point'>point</a>.
-<a href='#SkCanvas_drawArc_sweepAngle'>sweepAngle</a> <a href='#SkCanvas_drawArc_sweepAngle'>may</a> <a href='#SkCanvas_drawArc_sweepAngle'>exceed</a> 360 <a href='#SkCanvas_drawArc_sweepAngle'>degrees</a>, <a href='#SkCanvas_drawArc_sweepAngle'>a</a> <a href='#SkCanvas_drawArc_sweepAngle'>full</a> <a href='undocumented#Circle'>circle</a>.
-If <a href='#SkCanvas_drawArc_useCenter'>useCenter</a> <a href='#SkCanvas_drawArc_useCenter'>is</a> <a href='#SkCanvas_drawArc_useCenter'>true</a>, <a href='#SkCanvas_drawArc_useCenter'>draw</a> <a href='#SkCanvas_drawArc_useCenter'>a</a> <a href='#SkCanvas_drawArc_useCenter'>wedge</a> <a href='#SkCanvas_drawArc_useCenter'>that</a> <a href='#SkCanvas_drawArc_useCenter'>includes</a> <a href='undocumented#Line'>lines</a> <a href='undocumented#Line'>from</a> <a href='#SkCanvas_drawArc_oval'>oval</a>
-center to <a href='undocumented#Arc'>arc</a> <a href='undocumented#Arc'>end</a> <a href='SkPoint_Reference#Point'>points</a>. <a href='SkPoint_Reference#Point'>If</a> <a href='#SkCanvas_drawArc_useCenter'>useCenter</a> <a href='#SkCanvas_drawArc_useCenter'>is</a> <a href='#SkCanvas_drawArc_useCenter'>false</a>, <a href='#SkCanvas_drawArc_useCenter'>draw</a> <a href='undocumented#Arc'>arc</a> <a href='undocumented#Arc'>between</a> <a href='undocumented#Arc'>end</a> <a href='SkPoint_Reference#Point'>points</a>.
+<a href='#SkCanvas_drawArc_startAngle'>startAngle</a> of zero places start <a href='SkPoint_Reference#Point'>point</a> at the right middle edge of <a href='#SkCanvas_drawArc_oval'>oval</a>.
+A positive <a href='#SkCanvas_drawArc_sweepAngle'>sweepAngle</a> places <a href='undocumented#Arc'>arc</a> end <a href='SkPoint_Reference#Point'>point</a> clockwise from start <a href='SkPoint_Reference#Point'>point</a>;
+a negative <a href='#SkCanvas_drawArc_sweepAngle'>sweepAngle</a> places <a href='undocumented#Arc'>arc</a> end <a href='SkPoint_Reference#Point'>point</a> counterclockwise from start <a href='SkPoint_Reference#Point'>point</a>.
+<a href='#SkCanvas_drawArc_sweepAngle'>sweepAngle</a> may exceed 360 degrees, a full <a href='undocumented#Circle'>circle</a>.
+If <a href='#SkCanvas_drawArc_useCenter'>useCenter</a> is true, draw a wedge that includes <a href='undocumented#Line'>lines</a> from <a href='#SkCanvas_drawArc_oval'>oval</a>
+center to <a href='undocumented#Arc'>arc</a> end <a href='SkPoint_Reference#Point'>points</a>. If <a href='#SkCanvas_drawArc_useCenter'>useCenter</a> is false, draw <a href='undocumented#Arc'>arc</a> between end <a href='SkPoint_Reference#Point'>points</a>.
-If <a href='SkRect_Reference#SkRect'>SkRect</a> <a href='#SkCanvas_drawArc_oval'>oval</a> <a href='#SkCanvas_drawArc_oval'>is</a> <a href='#SkCanvas_drawArc_oval'>empty</a> <a href='#SkCanvas_drawArc_oval'>or</a> <a href='#SkCanvas_drawArc_sweepAngle'>sweepAngle</a> <a href='#SkCanvas_drawArc_sweepAngle'>is</a> <a href='#SkCanvas_drawArc_sweepAngle'>zero</a>, <a href='#SkCanvas_drawArc_sweepAngle'>nothing</a> <a href='#SkCanvas_drawArc_sweepAngle'>is</a> <a href='#SkCanvas_drawArc_sweepAngle'>drawn</a>.
+If <a href='SkRect_Reference#SkRect'>SkRect</a> <a href='#SkCanvas_drawArc_oval'>oval</a> is empty or <a href='#SkCanvas_drawArc_sweepAngle'>sweepAngle</a> is zero, nothing is drawn.
### Parameters
<table> <tr> <td><a name='SkCanvas_drawArc_oval'><code><strong>oval</strong></code></a></td>
- <td><a href='SkRect_Reference#SkRect'>SkRect</a> <a href='SkRect_Reference#SkRect'>bounds</a> <a href='SkRect_Reference#SkRect'>of</a> <a href='#SkCanvas_drawArc_oval'>oval</a> <a href='#SkCanvas_drawArc_oval'>containing</a> <a href='undocumented#Arc'>arc</a> <a href='undocumented#Arc'>to</a> <a href='undocumented#Arc'>draw</a></td>
+ <td><a href='SkRect_Reference#SkRect'>SkRect</a> bounds of <a href='#SkCanvas_drawArc_oval'>oval</a> containing <a href='undocumented#Arc'>arc</a> to draw</td>
</tr>
<tr> <td><a name='SkCanvas_drawArc_startAngle'><code><strong>startAngle</strong></code></a></td>
- <td>angle in degrees where <a href='undocumented#Arc'>arc</a> <a href='undocumented#Arc'>begins</a></td>
+ <td>angle in degrees where <a href='undocumented#Arc'>arc</a> begins</td>
</tr>
<tr> <td><a name='SkCanvas_drawArc_sweepAngle'><code><strong>sweepAngle</strong></code></a></td>
<td>sweep angle in degrees; positive is clockwise</td>
@@ -3892,7 +3892,7 @@
<td>if true, include the center of the <a href='#SkCanvas_drawArc_oval'>oval</a></td>
</tr>
<tr> <td><a name='SkCanvas_drawArc_paint'><code><strong>paint</strong></code></a></td>
- <td><a href='SkPaint_Reference#SkPaint'>SkPaint</a> <a href='SkPaint_Reference#SkPaint'>stroke</a> <a href='SkPaint_Reference#SkPaint'>or</a> <a href='SkPaint_Reference#SkPaint'>fill</a>, <a href='SkPaint_Reference#SkPaint'>blend</a>, <a href='SkColor_Reference#Color'>color</a>, <a href='SkColor_Reference#Color'>and</a> <a href='SkColor_Reference#Color'>so</a> <a href='SkColor_Reference#Color'>on</a>, <a href='SkColor_Reference#Color'>used</a> <a href='SkColor_Reference#Color'>to</a> <a href='SkColor_Reference#Color'>draw</a></td>
+ <td><a href='SkPaint_Reference#SkPaint'>SkPaint</a> stroke or fill, blend, <a href='SkColor_Reference#Color'>color</a>, and so on, used to draw</td>
</tr>
</table>
@@ -3913,32 +3913,32 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-void <a href='#SkCanvas_drawRoundRect'>drawRoundRect</a>(<a href='#SkCanvas_drawRoundRect'>const</a> <a href='SkRect_Reference#SkRect'>SkRect</a>& <a href='SkRect_Reference#Rect'>rect</a>, <a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>rx</a>, <a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>ry</a>, <a href='undocumented#SkScalar'>const</a> <a href='SkPaint_Reference#SkPaint'>SkPaint</a>& <a href='SkPaint_Reference#Paint'>paint</a>)
+void <a href='#SkCanvas_drawRoundRect'>drawRoundRect</a>(const <a href='SkRect_Reference#SkRect'>SkRect</a>& <a href='SkRect_Reference#Rect'>rect</a>, <a href='undocumented#SkScalar'>SkScalar</a> rx, <a href='undocumented#SkScalar'>SkScalar</a> ry, const <a href='SkPaint_Reference#SkPaint'>SkPaint</a>& <a href='SkPaint_Reference#Paint'>paint</a>)
</pre>
-Draws <a href='SkRRect_Reference#SkRRect'>SkRRect</a> <a href='SkRRect_Reference#SkRRect'>bounded</a> <a href='SkRRect_Reference#SkRRect'>by</a> <a href='SkRect_Reference#SkRect'>SkRect</a> <a href='#SkCanvas_drawRoundRect_rect'>rect</a>, <a href='#SkCanvas_drawRoundRect_rect'>with</a> <a href='#SkCanvas_drawRoundRect_rect'>corner</a> <a href='#SkCanvas_drawRoundRect_rect'>radii</a> (<a href='#SkCanvas_drawRoundRect_rx'>rx</a>, <a href='#SkCanvas_drawRoundRect_ry'>ry</a>) <a href='#SkCanvas_drawRoundRect_ry'>using</a> <a href='#SkCanvas_drawRoundRect_ry'>clip</a>,
-<a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a>, <a href='SkMatrix_Reference#SkMatrix'>and</a> <a href='SkPaint_Reference#SkPaint'>SkPaint</a> <a href='#SkCanvas_drawRoundRect_paint'>paint</a>.
+Draws <a href='SkRRect_Reference#SkRRect'>SkRRect</a> bounded by <a href='SkRect_Reference#SkRect'>SkRect</a> <a href='#SkCanvas_drawRoundRect_rect'>rect</a>, with corner radii (<a href='#SkCanvas_drawRoundRect_rx'>rx</a>, <a href='#SkCanvas_drawRoundRect_ry'>ry</a>) using clip,
+<a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a>, and <a href='SkPaint_Reference#SkPaint'>SkPaint</a> <a href='#SkCanvas_drawRoundRect_paint'>paint</a>.
-In <a href='#SkCanvas_drawRoundRect_paint'>paint</a>: <a href='SkPaint_Reference#SkPaint'>SkPaint</a>::<a href='#SkPaint_Style'>Style</a> <a href='#SkPaint_Style'>determines</a> <a href='#SkPaint_Style'>if</a> <a href='SkRRect_Reference#SkRRect'>SkRRect</a> <a href='SkRRect_Reference#SkRRect'>is</a> <a href='SkRRect_Reference#SkRRect'>stroked</a> <a href='SkRRect_Reference#SkRRect'>or</a> <a href='SkRRect_Reference#SkRRect'>filled</a>;
-if stroked, <a href='SkPaint_Reference#SkPaint'>SkPaint</a> <a href='SkPaint_Reference#SkPaint'>stroke</a> <a href='SkPaint_Reference#SkPaint'>width</a> <a href='SkPaint_Reference#SkPaint'>describes</a> <a href='SkPaint_Reference#SkPaint'>the</a> <a href='undocumented#Line'>line</a> <a href='undocumented#Line'>thickness</a>.
-If <a href='#SkCanvas_drawRoundRect_rx'>rx</a> <a href='#SkCanvas_drawRoundRect_rx'>or</a> <a href='#SkCanvas_drawRoundRect_ry'>ry</a> <a href='#SkCanvas_drawRoundRect_ry'>are</a> <a href='#SkCanvas_drawRoundRect_ry'>less</a> <a href='#SkCanvas_drawRoundRect_ry'>than</a> <a href='#SkCanvas_drawRoundRect_ry'>zero</a>, <a href='#SkCanvas_drawRoundRect_ry'>they</a> <a href='#SkCanvas_drawRoundRect_ry'>are</a> <a href='#SkCanvas_drawRoundRect_ry'>treated</a> <a href='#SkCanvas_drawRoundRect_ry'>as</a> <a href='#SkCanvas_drawRoundRect_ry'>if</a> <a href='#SkCanvas_drawRoundRect_ry'>they</a> <a href='#SkCanvas_drawRoundRect_ry'>are</a> <a href='#SkCanvas_drawRoundRect_ry'>zero</a>.
-If <a href='#SkCanvas_drawRoundRect_rx'>rx</a> <a href='#SkCanvas_drawRoundRect_rx'>plus</a> <a href='#SkCanvas_drawRoundRect_ry'>ry</a> <a href='#SkCanvas_drawRoundRect_ry'>exceeds</a> <a href='#SkCanvas_drawRoundRect_rect'>rect</a> <a href='#SkCanvas_drawRoundRect_rect'>width</a> <a href='#SkCanvas_drawRoundRect_rect'>or</a> <a href='#SkCanvas_drawRoundRect_rect'>rect</a> <a href='#SkCanvas_drawRoundRect_rect'>height</a>, <a href='#SkCanvas_drawRoundRect_rect'>radii</a> <a href='#SkCanvas_drawRoundRect_rect'>are</a> <a href='#SkCanvas_drawRoundRect_rect'>scaled</a> <a href='#SkCanvas_drawRoundRect_rect'>down</a> <a href='#SkCanvas_drawRoundRect_rect'>to</a> <a href='#SkCanvas_drawRoundRect_rect'>fit</a>.
-If <a href='#SkCanvas_drawRoundRect_rx'>rx</a> <a href='#SkCanvas_drawRoundRect_rx'>and</a> <a href='#SkCanvas_drawRoundRect_ry'>ry</a> <a href='#SkCanvas_drawRoundRect_ry'>are</a> <a href='#SkCanvas_drawRoundRect_ry'>zero</a>, <a href='SkRRect_Reference#SkRRect'>SkRRect</a> <a href='SkRRect_Reference#SkRRect'>is</a> <a href='SkRRect_Reference#SkRRect'>drawn</a> <a href='SkRRect_Reference#SkRRect'>as</a> <a href='SkRect_Reference#SkRect'>SkRect</a> <a href='SkRect_Reference#SkRect'>and</a> <a href='SkRect_Reference#SkRect'>if</a> <a href='SkRect_Reference#SkRect'>stroked</a> <a href='SkRect_Reference#SkRect'>is</a> <a href='SkRect_Reference#SkRect'>affected</a> <a href='SkRect_Reference#SkRect'>by</a>
+In <a href='#SkCanvas_drawRoundRect_paint'>paint</a>: <a href='SkPaint_Reference#SkPaint'>SkPaint</a>::<a href='#SkPaint_Style'>Style</a> determines if <a href='SkRRect_Reference#SkRRect'>SkRRect</a> is stroked or filled;
+if stroked, <a href='SkPaint_Reference#SkPaint'>SkPaint</a> stroke width describes the <a href='undocumented#Line'>line</a> thickness.
+If <a href='#SkCanvas_drawRoundRect_rx'>rx</a> or <a href='#SkCanvas_drawRoundRect_ry'>ry</a> are less than zero, they are treated as if they are zero.
+If <a href='#SkCanvas_drawRoundRect_rx'>rx</a> plus <a href='#SkCanvas_drawRoundRect_ry'>ry</a> exceeds <a href='#SkCanvas_drawRoundRect_rect'>rect</a> width or <a href='#SkCanvas_drawRoundRect_rect'>rect</a> height, radii are scaled down to fit.
+If <a href='#SkCanvas_drawRoundRect_rx'>rx</a> and <a href='#SkCanvas_drawRoundRect_ry'>ry</a> are zero, <a href='SkRRect_Reference#SkRRect'>SkRRect</a> is drawn as <a href='SkRect_Reference#SkRect'>SkRect</a> and if stroked is affected by
<a href='SkPaint_Reference#SkPaint'>SkPaint</a>::<a href='#SkPaint_Join'>Join</a>.
### Parameters
<table> <tr> <td><a name='SkCanvas_drawRoundRect_rect'><code><strong>rect</strong></code></a></td>
- <td><a href='SkRect_Reference#SkRect'>SkRect</a> <a href='SkRect_Reference#SkRect'>bounds</a> <a href='SkRect_Reference#SkRect'>of</a> <a href='SkRRect_Reference#SkRRect'>SkRRect</a> <a href='SkRRect_Reference#SkRRect'>to</a> <a href='SkRRect_Reference#SkRRect'>draw</a></td>
+ <td><a href='SkRect_Reference#SkRect'>SkRect</a> bounds of <a href='SkRRect_Reference#SkRRect'>SkRRect</a> to draw</td>
</tr>
<tr> <td><a name='SkCanvas_drawRoundRect_rx'><code><strong>rx</strong></code></a></td>
- <td>axis length on x-axis of <a href='undocumented#Oval'>oval</a> <a href='undocumented#Oval'>describing</a> <a href='undocumented#Oval'>rounded</a> <a href='undocumented#Oval'>corners</a></td>
+ <td>axis length on x-axis of <a href='undocumented#Oval'>oval</a> describing rounded corners</td>
</tr>
<tr> <td><a name='SkCanvas_drawRoundRect_ry'><code><strong>ry</strong></code></a></td>
- <td>axis length on y-axis of <a href='undocumented#Oval'>oval</a> <a href='undocumented#Oval'>describing</a> <a href='undocumented#Oval'>rounded</a> <a href='undocumented#Oval'>corners</a></td>
+ <td>axis length on y-axis of <a href='undocumented#Oval'>oval</a> describing rounded corners</td>
</tr>
<tr> <td><a name='SkCanvas_drawRoundRect_paint'><code><strong>paint</strong></code></a></td>
- <td>stroke, blend, <a href='SkColor_Reference#Color'>color</a>, <a href='SkColor_Reference#Color'>and</a> <a href='SkColor_Reference#Color'>so</a> <a href='SkColor_Reference#Color'>on</a>, <a href='SkColor_Reference#Color'>used</a> <a href='SkColor_Reference#Color'>to</a> <a href='SkColor_Reference#Color'>draw</a></td>
+ <td>stroke, blend, <a href='SkColor_Reference#Color'>color</a>, and so on, used to draw</td>
</tr>
</table>
@@ -3959,36 +3959,36 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-void <a href='#SkCanvas_drawPath'>drawPath</a>(<a href='#SkCanvas_drawPath'>const</a> <a href='SkPath_Reference#SkPath'>SkPath</a>& <a href='SkPath_Reference#Path'>path</a>, <a href='SkPath_Reference#Path'>const</a> <a href='SkPaint_Reference#SkPaint'>SkPaint</a>& <a href='SkPaint_Reference#Paint'>paint</a>)
+void <a href='#SkCanvas_drawPath'>drawPath</a>(const <a href='SkPath_Reference#SkPath'>SkPath</a>& <a href='SkPath_Reference#Path'>path</a>, const <a href='SkPaint_Reference#SkPaint'>SkPaint</a>& <a href='SkPaint_Reference#Paint'>paint</a>)
</pre>
-Draws <a href='SkPath_Reference#SkPath'>SkPath</a> <a href='#SkCanvas_drawPath_path'>path</a> <a href='#SkCanvas_drawPath_path'>using</a> <a href='#SkCanvas_drawPath_path'>clip</a>, <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a>, <a href='SkMatrix_Reference#SkMatrix'>and</a> <a href='SkPaint_Reference#SkPaint'>SkPaint</a> <a href='#SkCanvas_drawPath_paint'>paint</a>.
-<a href='SkPath_Reference#SkPath'>SkPath</a> <a href='SkPath_Reference#SkPath'>contains</a> <a href='SkPath_Reference#SkPath'>an</a> <a href='SkPath_Reference#SkPath'>array</a> <a href='SkPath_Reference#SkPath'>of</a> <a href='SkPath_Overview#Contour'>path contour</a>, <a href='#SkCanvas_drawPath_path'>each</a> <a href='#SkCanvas_drawPath_path'>of</a> <a href='#SkCanvas_drawPath_path'>which</a> <a href='#SkCanvas_drawPath_path'>may</a> <a href='#SkCanvas_drawPath_path'>be</a> <a href='#SkCanvas_drawPath_path'>open</a> <a href='#SkCanvas_drawPath_path'>or</a> <a href='#SkCanvas_drawPath_path'>closed</a>.
+Draws <a href='SkPath_Reference#SkPath'>SkPath</a> <a href='#SkCanvas_drawPath_path'>path</a> using clip, <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a>, and <a href='SkPaint_Reference#SkPaint'>SkPaint</a> <a href='#SkCanvas_drawPath_paint'>paint</a>.
+<a href='SkPath_Reference#SkPath'>SkPath</a> contains an array of <a href='SkPath_Overview#Contour'>path contour</a>, each of which may be open or closed.
-In <a href='#SkCanvas_drawPath_paint'>paint</a>: <a href='SkPaint_Reference#SkPaint'>SkPaint</a>::<a href='#SkPaint_Style'>Style</a> <a href='#SkPaint_Style'>determines</a> <a href='#SkPaint_Style'>if</a> <a href='SkRRect_Reference#SkRRect'>SkRRect</a> <a href='SkRRect_Reference#SkRRect'>is</a> <a href='SkRRect_Reference#SkRRect'>stroked</a> <a href='SkRRect_Reference#SkRRect'>or</a> <a href='SkRRect_Reference#SkRRect'>filled</a>:
-if filled, <a href='SkPath_Reference#SkPath'>SkPath</a>::<a href='#SkPath_FillType'>FillType</a> <a href='#SkPath_FillType'>determines</a> <a href='#SkPath_FillType'>whether</a> <a href='SkPath_Overview#Contour'>path contour</a> <a href='#SkCanvas_drawPath_path'>describes</a> <a href='#SkCanvas_drawPath_path'>inside</a> <a href='#SkCanvas_drawPath_path'>or</a>
-outside of fill; if stroked, <a href='SkPaint_Reference#SkPaint'>SkPaint</a> <a href='SkPaint_Reference#SkPaint'>stroke</a> <a href='SkPaint_Reference#SkPaint'>width</a> <a href='SkPaint_Reference#SkPaint'>describes</a> <a href='SkPaint_Reference#SkPaint'>the</a> <a href='undocumented#Line'>line</a> <a href='undocumented#Line'>thickness</a>,
-<a href='SkPaint_Reference#SkPaint'>SkPaint</a>::<a href='#SkPaint_Cap'>Cap</a> <a href='#SkPaint_Cap'>describes</a> <a href='undocumented#Line'>line</a> <a href='undocumented#Line'>ends</a>, <a href='undocumented#Line'>and</a> <a href='SkPaint_Reference#SkPaint'>SkPaint</a>::<a href='#SkPaint_Join'>Join</a> <a href='#SkPaint_Join'>describes</a> <a href='#SkPaint_Join'>how</a>
+In <a href='#SkCanvas_drawPath_paint'>paint</a>: <a href='SkPaint_Reference#SkPaint'>SkPaint</a>::<a href='#SkPaint_Style'>Style</a> determines if <a href='SkRRect_Reference#SkRRect'>SkRRect</a> is stroked or filled:
+if filled, <a href='SkPath_Reference#SkPath'>SkPath</a>::<a href='#SkPath_FillType'>FillType</a> determines whether <a href='SkPath_Overview#Contour'>path contour</a> describes inside or
+outside of fill; if stroked, <a href='SkPaint_Reference#SkPaint'>SkPaint</a> stroke width describes the <a href='undocumented#Line'>line</a> thickness,
+<a href='SkPaint_Reference#SkPaint'>SkPaint</a>::<a href='#SkPaint_Cap'>Cap</a> describes <a href='undocumented#Line'>line</a> ends, and <a href='SkPaint_Reference#SkPaint'>SkPaint</a>::<a href='#SkPaint_Join'>Join</a> describes how
corners are drawn.
### Parameters
<table> <tr> <td><a name='SkCanvas_drawPath_path'><code><strong>path</strong></code></a></td>
- <td><a href='SkPath_Reference#SkPath'>SkPath</a> <a href='SkPath_Reference#SkPath'>to</a> <a href='SkPath_Reference#SkPath'>draw</a></td>
+ <td><a href='SkPath_Reference#SkPath'>SkPath</a> to draw</td>
</tr>
<tr> <td><a name='SkCanvas_drawPath_paint'><code><strong>paint</strong></code></a></td>
- <td>stroke, blend, <a href='SkColor_Reference#Color'>color</a>, <a href='SkColor_Reference#Color'>and</a> <a href='SkColor_Reference#Color'>so</a> <a href='SkColor_Reference#Color'>on</a>, <a href='SkColor_Reference#Color'>used</a> <a href='SkColor_Reference#Color'>to</a> <a href='SkColor_Reference#Color'>draw</a></td>
+ <td>stroke, blend, <a href='SkColor_Reference#Color'>color</a>, and so on, used to draw</td>
</tr>
</table>
### Example
-<div><fiddle-embed name="fe2294131f422b8d6752f6a880f98ad9"><div>Top rows draw stroked <a href='#SkCanvas_drawPath_path'>path</a> <a href='#SkCanvas_drawPath_path'>with</a> <a href='#SkCanvas_drawPath_path'>combinations</a> <a href='#SkCanvas_drawPath_path'>of</a> <a href='#SkCanvas_drawPath_path'>joins</a> <a href='#SkCanvas_drawPath_path'>and</a> <a href='#SkCanvas_drawPath_path'>caps</a>. <a href='#SkCanvas_drawPath_path'>The</a> <a href='#SkCanvas_drawPath_path'>open</a> <a href='SkPath_Overview#Contour'>contour</a>
-<a href='SkPath_Overview#Contour'>is</a> <a href='SkPath_Overview#Contour'>affected</a> <a href='SkPath_Overview#Contour'>by</a> <a href='SkPath_Overview#Contour'>caps</a>; <a href='SkPath_Overview#Contour'>the</a> <a href='SkPath_Overview#Contour'>closed</a> <a href='SkPath_Overview#Contour'>contour</a> <a href='SkPath_Overview#Contour'>is</a> <a href='SkPath_Overview#Contour'>affected</a> <a href='SkPath_Overview#Contour'>by</a> <a href='SkPath_Overview#Contour'>joins</a>.
-<a href='SkPath_Overview#Contour'>Bottom</a> <a href='SkPath_Overview#Contour'>row</a> <a href='SkPath_Overview#Contour'>draws</a> <a href='SkPath_Overview#Contour'>fill</a> <a href='SkPath_Overview#Contour'>the</a> <a href='SkPath_Overview#Contour'>same</a> <a href='SkPath_Overview#Contour'>for</a> <a href='SkPath_Overview#Contour'>open</a> <a href='SkPath_Overview#Contour'>and</a> <a href='SkPath_Overview#Contour'>closed</a> <a href='SkPath_Overview#Contour'>contour</a>.
-<a href='SkPath_Overview#Contour'>First</a> <a href='SkPath_Overview#Contour'>bottom</a> <a href='SkPath_Overview#Contour'>column</a> <a href='SkPath_Overview#Contour'>shows</a> <a href='SkPath_Overview#Contour'>winding</a> <a href='SkPath_Overview#Contour'>fills</a> <a href='SkPath_Overview#Contour'>overlap</a>.
-<a href='SkPath_Overview#Contour'>Second</a> <a href='SkPath_Overview#Contour'>bottom</a> <a href='SkPath_Overview#Contour'>column</a> <a href='SkPath_Overview#Contour'>shows</a> <a href='SkPath_Overview#Contour'>even</a> <a href='SkPath_Overview#Contour'>odd</a> <a href='SkPath_Overview#Contour'>fills</a> <a href='SkPath_Overview#Contour'>exclude</a> <a href='SkPath_Overview#Contour'>overlap</a>.
-<a href='SkPath_Overview#Contour'>Third</a> <a href='SkPath_Overview#Contour'>bottom</a> <a href='SkPath_Overview#Contour'>column</a> <a href='SkPath_Overview#Contour'>shows</a> <a href='SkPath_Overview#Contour'>inverse</a> <a href='SkPath_Overview#Contour'>winding</a> <a href='SkPath_Overview#Contour'>fills</a> <a href='SkPath_Overview#Contour'>area</a> <a href='SkPath_Overview#Contour'>outside</a> <a href='SkPath_Overview#Contour'>both</a> <a href='SkPath_Overview#Contour'>contours</a>.
+<div><fiddle-embed name="fe2294131f422b8d6752f6a880f98ad9"><div>Top rows draw stroked <a href='#SkCanvas_drawPath_path'>path</a> with combinations of joins and caps. The open <a href='SkPath_Overview#Contour'>contour</a>
+is affected by caps; the closed <a href='SkPath_Overview#Contour'>contour</a> is affected by joins.
+Bottom row draws fill the same for open and closed <a href='SkPath_Overview#Contour'>contour</a>.
+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 <a href='SkPath_Overview#Contour'>contours</a>.
</div></fiddle-embed></div>
### See Also
@@ -3997,26 +3997,26 @@
<a name='Draw_Image'></a>
-<a href='#SkCanvas_drawImage'>drawImage</a>, <a href='#SkCanvas_drawImageRect'>drawImageRect</a>, <a href='#SkCanvas_drawImageRect'>and</a> <a href='#SkCanvas_drawImageNine'>drawImageNine</a> <a href='#SkCanvas_drawImageNine'>can</a> <a href='#SkCanvas_drawImageNine'>be</a> <a href='#SkCanvas_drawImageNine'>called</a> <a href='#SkCanvas_drawImageNine'>with</a> <a href='#SkCanvas_drawImageNine'>a</a> <a href='#SkCanvas_drawImageNine'>bare</a> <a href='#SkCanvas_drawImageNine'>pointer</a> <a href='#SkCanvas_drawImageNine'>or</a>
-<a href='#SkCanvas_drawImageNine'>a</a> <a href='undocumented#Smart_Pointer'>smart pointer</a> <a href='#SkCanvas_drawImageNine'>as</a> <a href='#SkCanvas_drawImageNine'>a</a> <a href='#SkCanvas_drawImageNine'>convenience</a>. <a href='#SkCanvas_drawImageNine'>The</a> <a href='#SkCanvas_drawImageNine'>pairs</a> <a href='#SkCanvas_drawImageNine'>of</a> <a href='#SkCanvas_drawImageNine'>calls</a> <a href='#SkCanvas_drawImageNine'>are</a> <a href='#SkCanvas_drawImageNine'>otherwise</a> <a href='#SkCanvas_drawImageNine'>identical</a>.
+<a href='#SkCanvas_drawImage'>drawImage</a>, <a href='#SkCanvas_drawImageRect'>drawImageRect</a>, and <a href='#SkCanvas_drawImageNine'>drawImageNine</a> can be called with a bare pointer or
+a <a href='undocumented#Smart_Pointer'>smart pointer</a> as a convenience. The pairs of calls are otherwise identical.
<a name='SkCanvas_drawImage'></a>
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-void <a href='#SkCanvas_drawImage'>drawImage</a>(<a href='#SkCanvas_drawImage'>const</a> <a href='SkImage_Reference#SkImage'>SkImage</a>* <a href='SkImage_Reference#Image'>image</a>, <a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>left</a>, <a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>top</a>, <a href='undocumented#SkScalar'>const</a> <a href='SkPaint_Reference#SkPaint'>SkPaint</a>* <a href='SkPaint_Reference#Paint'>paint</a> = <a href='SkPaint_Reference#Paint'>nullptr</a>)
+void <a href='#SkCanvas_drawImage'>drawImage</a>(const <a href='SkImage_Reference#SkImage'>SkImage</a>* <a href='SkImage_Reference#Image'>image</a>, <a href='undocumented#SkScalar'>SkScalar</a> left, <a href='undocumented#SkScalar'>SkScalar</a> top, const <a href='SkPaint_Reference#SkPaint'>SkPaint</a>* <a href='SkPaint_Reference#Paint'>paint</a> = nullptr)
</pre>
-Draws <a href='SkImage_Reference#SkImage'>SkImage</a> <a href='#SkCanvas_drawImage_image'>image</a>, <a href='#SkCanvas_drawImage_image'>with</a> <a href='#SkCanvas_drawImage_image'>its</a> <a href='#SkCanvas_drawImage_image'>top-left</a> <a href='#SkCanvas_drawImage_image'>corner</a> <a href='#SkCanvas_drawImage_image'>at</a> (<a href='#SkCanvas_drawImage_left'>left</a>, <a href='#SkCanvas_drawImage_top'>top</a>),
-using clip, <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a>, <a href='SkMatrix_Reference#SkMatrix'>and</a> <a href='SkMatrix_Reference#SkMatrix'>optional</a> <a href='SkPaint_Reference#SkPaint'>SkPaint</a> <a href='#SkCanvas_drawImage_paint'>paint</a>.
+Draws <a href='SkImage_Reference#SkImage'>SkImage</a> <a href='#SkCanvas_drawImage_image'>image</a>, with its top-left corner at (<a href='#SkCanvas_drawImage_left'>left</a>, <a href='#SkCanvas_drawImage_top'>top</a>),
+using clip, <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a>, and optional <a href='SkPaint_Reference#SkPaint'>SkPaint</a> <a href='#SkCanvas_drawImage_paint'>paint</a>.
-If <a href='#SkCanvas_drawImage_paint'>paint</a> <a href='#SkCanvas_drawImage_paint'>is</a> <a href='#SkCanvas_drawImage_paint'>supplied</a>, <a href='#SkCanvas_drawImage_paint'>apply</a> <a href='undocumented#SkColorFilter'>SkColorFilter</a>, <a href='SkColor_Reference#Alpha'>alpha</a>, <a href='undocumented#SkImageFilter'>SkImageFilter</a>, <a href='SkBlendMode_Reference#SkBlendMode'>SkBlendMode</a>,
-and <a href='undocumented#SkDrawLooper'>SkDrawLooper</a>. <a href='undocumented#SkDrawLooper'>If</a> <a href='#SkCanvas_drawImage_image'>image</a> <a href='#SkCanvas_drawImage_image'>is</a> <a href='SkImageInfo_Reference#kAlpha_8_SkColorType'>kAlpha_8_SkColorType</a>, <a href='SkImageInfo_Reference#kAlpha_8_SkColorType'>apply</a> <a href='undocumented#SkShader'>SkShader</a>.
-If <a href='#SkCanvas_drawImage_paint'>paint</a> <a href='#SkCanvas_drawImage_paint'>contains</a> <a href='undocumented#SkMaskFilter'>SkMaskFilter</a>, <a href='undocumented#SkMaskFilter'>generate</a> <a href='undocumented#SkMaskFilter'>mask</a> <a href='undocumented#SkMaskFilter'>from</a> <a href='#SkCanvas_drawImage_image'>image</a> <a href='#SkCanvas_drawImage_image'>bounds</a>. <a href='#SkCanvas_drawImage_image'>If</a> <a href='#SkCanvas_drawImage_image'>generated</a>
-mask extends beyond <a href='#SkCanvas_drawImage_image'>image</a> <a href='#SkCanvas_drawImage_image'>bounds</a>, <a href='#SkCanvas_drawImage_image'>replicate</a> <a href='#SkCanvas_drawImage_image'>image</a> <a href='#SkCanvas_drawImage_image'>edge</a> <a href='#SkCanvas_drawImage_image'>colors</a>, <a href='#SkCanvas_drawImage_image'>just</a> <a href='#SkCanvas_drawImage_image'>as</a> <a href='undocumented#SkShader'>SkShader</a>
-made from <a href='SkImage_Reference#SkImage'>SkImage</a>::<a href='#SkImage_makeShader'>makeShader</a> <a href='#SkImage_makeShader'>with</a> <a href='undocumented#SkShader'>SkShader</a>::<a href='#SkShader_kClamp_TileMode'>kClamp_TileMode</a> <a href='#SkShader_kClamp_TileMode'>set</a> <a href='#SkShader_kClamp_TileMode'>replicates</a> <a href='#SkShader_kClamp_TileMode'>the</a>
-<a href='#SkCanvas_drawImage_image'>image</a> <a href='#SkCanvas_drawImage_image'>edge</a> <a href='SkColor_Reference#Color'>color</a> <a href='SkColor_Reference#Color'>when</a> <a href='SkColor_Reference#Color'>it</a> <a href='SkColor_Reference#Color'>samples</a> <a href='SkColor_Reference#Color'>outside</a> <a href='SkColor_Reference#Color'>of</a> <a href='SkColor_Reference#Color'>its</a> <a href='SkColor_Reference#Color'>bounds</a>.
+If <a href='#SkCanvas_drawImage_paint'>paint</a> is supplied, apply <a href='undocumented#SkColorFilter'>SkColorFilter</a>, <a href='SkColor_Reference#Alpha'>alpha</a>, <a href='undocumented#SkImageFilter'>SkImageFilter</a>, <a href='SkBlendMode_Reference#SkBlendMode'>SkBlendMode</a>,
+and <a href='undocumented#SkDrawLooper'>SkDrawLooper</a>. If <a href='#SkCanvas_drawImage_image'>image</a> is <a href='SkImageInfo_Reference#kAlpha_8_SkColorType'>kAlpha_8_SkColorType</a>, apply <a href='undocumented#SkShader'>SkShader</a>.
+If <a href='#SkCanvas_drawImage_paint'>paint</a> contains <a href='undocumented#SkMaskFilter'>SkMaskFilter</a>, generate mask from <a href='#SkCanvas_drawImage_image'>image</a> bounds. If generated
+mask extends beyond <a href='#SkCanvas_drawImage_image'>image</a> bounds, replicate <a href='#SkCanvas_drawImage_image'>image</a> edge colors, just as <a href='undocumented#SkShader'>SkShader</a>
+made from <a href='SkImage_Reference#SkImage'>SkImage</a>::<a href='#SkImage_makeShader'>makeShader</a> with <a href='undocumented#SkShader'>SkShader</a>::<a href='#SkShader_kClamp_TileMode'>kClamp_TileMode</a> set replicates the
+<a href='#SkCanvas_drawImage_image'>image</a> edge <a href='SkColor_Reference#Color'>color</a> when it samples outside of its bounds.
### Parameters
@@ -4024,13 +4024,13 @@
<td>uncompressed rectangular map of pixels</td>
</tr>
<tr> <td><a name='SkCanvas_drawImage_left'><code><strong>left</strong></code></a></td>
- <td><a href='#SkCanvas_drawImage_left'>left side</a> <a href='#SkCanvas_drawImage_left'>of</a> <a href='#SkCanvas_drawImage_image'>image</a></td>
+ <td><a href='#SkCanvas_drawImage_left'>left side</a> of <a href='#SkCanvas_drawImage_image'>image</a></td>
</tr>
<tr> <td><a name='SkCanvas_drawImage_top'><code><strong>top</strong></code></a></td>
- <td><a href='#SkCanvas_drawImage_top'>top</a> <a href='#SkCanvas_drawImage_top'>side</a> <a href='#SkCanvas_drawImage_top'>of</a> <a href='#SkCanvas_drawImage_image'>image</a></td>
+ <td><a href='#SkCanvas_drawImage_top'>top</a> side of <a href='#SkCanvas_drawImage_image'>image</a></td>
</tr>
<tr> <td><a name='SkCanvas_drawImage_paint'><code><strong>paint</strong></code></a></td>
- <td><a href='SkPaint_Reference#SkPaint'>SkPaint</a> <a href='SkPaint_Reference#SkPaint'>containing</a> <a href='SkBlendMode_Reference#SkBlendMode'>SkBlendMode</a>, <a href='undocumented#SkColorFilter'>SkColorFilter</a>, <a href='undocumented#SkImageFilter'>SkImageFilter</a>,</td>
+ <td><a href='SkPaint_Reference#SkPaint'>SkPaint</a> containing <a href='SkBlendMode_Reference#SkBlendMode'>SkBlendMode</a>, <a href='undocumented#SkColorFilter'>SkColorFilter</a>, <a href='undocumented#SkImageFilter'>SkImageFilter</a>,</td>
</tr>
</table>
@@ -4049,19 +4049,19 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-void <a href='#SkCanvas_drawImage'>drawImage</a>(<a href='#SkCanvas_drawImage'>const</a> <a href='undocumented#sk_sp'>sk_sp</a>&<a href='undocumented#sk_sp'>lt</a>;<a href='SkImage_Reference#SkImage'>SkImage</a>&<a href='SkImage_Reference#SkImage'>gt</a>;& <a href='SkImage_Reference#Image'>image</a>, <a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>left</a>, <a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>top</a>,
- <a href='undocumented#SkScalar'>const</a> <a href='SkPaint_Reference#SkPaint'>SkPaint</a>* <a href='SkPaint_Reference#Paint'>paint</a> = <a href='SkPaint_Reference#Paint'>nullptr</a>)
+void <a href='#SkCanvas_drawImage'>drawImage</a>(const <a href='undocumented#sk_sp'>sk_sp</a><<a href='SkImage_Reference#SkImage'>SkImage</a>>& <a href='SkImage_Reference#Image'>image</a>, <a href='undocumented#SkScalar'>SkScalar</a> left, <a href='undocumented#SkScalar'>SkScalar</a> top,
+ const <a href='SkPaint_Reference#SkPaint'>SkPaint</a>* <a href='SkPaint_Reference#Paint'>paint</a> = nullptr)
</pre>
-Draws <a href='SkImage_Reference#SkImage'>SkImage</a> <a href='#SkCanvas_drawImage_2_image'>image</a>, <a href='#SkCanvas_drawImage_2_image'>with</a> <a href='#SkCanvas_drawImage_2_image'>its</a> <a href='#SkCanvas_drawImage_2_image'>top-left</a> <a href='#SkCanvas_drawImage_2_image'>corner</a> <a href='#SkCanvas_drawImage_2_image'>at</a> (<a href='#SkCanvas_drawImage_2_left'>left</a>, <a href='#SkCanvas_drawImage_2_top'>top</a>),
-using clip, <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a>, <a href='SkMatrix_Reference#SkMatrix'>and</a> <a href='SkMatrix_Reference#SkMatrix'>optional</a> <a href='SkPaint_Reference#SkPaint'>SkPaint</a> <a href='#SkCanvas_drawImage_2_paint'>paint</a>.
+Draws <a href='SkImage_Reference#SkImage'>SkImage</a> <a href='#SkCanvas_drawImage_2_image'>image</a>, with its top-left corner at (<a href='#SkCanvas_drawImage_2_left'>left</a>, <a href='#SkCanvas_drawImage_2_top'>top</a>),
+using clip, <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a>, and optional <a href='SkPaint_Reference#SkPaint'>SkPaint</a> <a href='#SkCanvas_drawImage_2_paint'>paint</a>.
-If <a href='SkPaint_Reference#SkPaint'>SkPaint</a> <a href='#SkCanvas_drawImage_2_paint'>paint</a> <a href='#SkCanvas_drawImage_2_paint'>is</a> <a href='#SkCanvas_drawImage_2_paint'>supplied</a>, <a href='#SkCanvas_drawImage_2_paint'>apply</a> <a href='undocumented#SkColorFilter'>SkColorFilter</a>, <a href='SkColor_Reference#Alpha'>alpha</a>, <a href='undocumented#SkImageFilter'>SkImageFilter</a>,
-<a href='SkBlendMode_Reference#SkBlendMode'>SkBlendMode</a>, <a href='SkBlendMode_Reference#SkBlendMode'>and</a> <a href='undocumented#SkDrawLooper'>SkDrawLooper</a>. <a href='undocumented#SkDrawLooper'>If</a> <a href='#SkCanvas_drawImage_2_image'>image</a> <a href='#SkCanvas_drawImage_2_image'>is</a> <a href='SkImageInfo_Reference#kAlpha_8_SkColorType'>kAlpha_8_SkColorType</a>, <a href='SkImageInfo_Reference#kAlpha_8_SkColorType'>apply</a> <a href='undocumented#SkShader'>SkShader</a>.
-If <a href='#SkCanvas_drawImage_2_paint'>paint</a> <a href='#SkCanvas_drawImage_2_paint'>contains</a> <a href='undocumented#SkMaskFilter'>SkMaskFilter</a>, <a href='undocumented#SkMaskFilter'>generate</a> <a href='undocumented#SkMaskFilter'>mask</a> <a href='undocumented#SkMaskFilter'>from</a> <a href='#SkCanvas_drawImage_2_image'>image</a> <a href='#SkCanvas_drawImage_2_image'>bounds</a>. <a href='#SkCanvas_drawImage_2_image'>If</a> <a href='#SkCanvas_drawImage_2_image'>generated</a>
-mask extends beyond <a href='#SkCanvas_drawImage_2_image'>image</a> <a href='#SkCanvas_drawImage_2_image'>bounds</a>, <a href='#SkCanvas_drawImage_2_image'>replicate</a> <a href='#SkCanvas_drawImage_2_image'>image</a> <a href='#SkCanvas_drawImage_2_image'>edge</a> <a href='#SkCanvas_drawImage_2_image'>colors</a>, <a href='#SkCanvas_drawImage_2_image'>just</a> <a href='#SkCanvas_drawImage_2_image'>as</a> <a href='undocumented#SkShader'>SkShader</a>
-made from <a href='SkImage_Reference#SkImage'>SkImage</a>::<a href='#SkImage_makeShader'>makeShader</a> <a href='#SkImage_makeShader'>with</a> <a href='undocumented#SkShader'>SkShader</a>::<a href='#SkShader_kClamp_TileMode'>kClamp_TileMode</a> <a href='#SkShader_kClamp_TileMode'>set</a> <a href='#SkShader_kClamp_TileMode'>replicates</a> <a href='#SkShader_kClamp_TileMode'>the</a>
-<a href='#SkCanvas_drawImage_2_image'>image</a> <a href='#SkCanvas_drawImage_2_image'>edge</a> <a href='SkColor_Reference#Color'>color</a> <a href='SkColor_Reference#Color'>when</a> <a href='SkColor_Reference#Color'>it</a> <a href='SkColor_Reference#Color'>samples</a> <a href='SkColor_Reference#Color'>outside</a> <a href='SkColor_Reference#Color'>of</a> <a href='SkColor_Reference#Color'>its</a> <a href='SkColor_Reference#Color'>bounds</a>.
+If <a href='SkPaint_Reference#SkPaint'>SkPaint</a> <a href='#SkCanvas_drawImage_2_paint'>paint</a> is supplied, apply <a href='undocumented#SkColorFilter'>SkColorFilter</a>, <a href='SkColor_Reference#Alpha'>alpha</a>, <a href='undocumented#SkImageFilter'>SkImageFilter</a>,
+<a href='SkBlendMode_Reference#SkBlendMode'>SkBlendMode</a>, and <a href='undocumented#SkDrawLooper'>SkDrawLooper</a>. If <a href='#SkCanvas_drawImage_2_image'>image</a> is <a href='SkImageInfo_Reference#kAlpha_8_SkColorType'>kAlpha_8_SkColorType</a>, apply <a href='undocumented#SkShader'>SkShader</a>.
+If <a href='#SkCanvas_drawImage_2_paint'>paint</a> contains <a href='undocumented#SkMaskFilter'>SkMaskFilter</a>, generate mask from <a href='#SkCanvas_drawImage_2_image'>image</a> bounds. If generated
+mask extends beyond <a href='#SkCanvas_drawImage_2_image'>image</a> bounds, replicate <a href='#SkCanvas_drawImage_2_image'>image</a> edge colors, just as <a href='undocumented#SkShader'>SkShader</a>
+made from <a href='SkImage_Reference#SkImage'>SkImage</a>::<a href='#SkImage_makeShader'>makeShader</a> with <a href='undocumented#SkShader'>SkShader</a>::<a href='#SkShader_kClamp_TileMode'>kClamp_TileMode</a> set replicates the
+<a href='#SkCanvas_drawImage_2_image'>image</a> edge <a href='SkColor_Reference#Color'>color</a> when it samples outside of its bounds.
### Parameters
@@ -4069,13 +4069,13 @@
<td>uncompressed rectangular map of pixels</td>
</tr>
<tr> <td><a name='SkCanvas_drawImage_2_left'><code><strong>left</strong></code></a></td>
- <td><a href='#SkCanvas_drawImage_2_left'>left side</a> <a href='#SkCanvas_drawImage_2_left'>of</a> <a href='#SkCanvas_drawImage_2_image'>image</a></td>
+ <td><a href='#SkCanvas_drawImage_2_left'>left side</a> of <a href='#SkCanvas_drawImage_2_image'>image</a></td>
</tr>
<tr> <td><a name='SkCanvas_drawImage_2_top'><code><strong>top</strong></code></a></td>
<td>pop side of <a href='#SkCanvas_drawImage_2_image'>image</a></td>
</tr>
<tr> <td><a name='SkCanvas_drawImage_2_paint'><code><strong>paint</strong></code></a></td>
- <td><a href='SkPaint_Reference#SkPaint'>SkPaint</a> <a href='SkPaint_Reference#SkPaint'>containing</a> <a href='SkBlendMode_Reference#SkBlendMode'>SkBlendMode</a>, <a href='undocumented#SkColorFilter'>SkColorFilter</a>, <a href='undocumented#SkImageFilter'>SkImageFilter</a>,</td>
+ <td><a href='SkPaint_Reference#SkPaint'>SkPaint</a> containing <a href='SkBlendMode_Reference#SkBlendMode'>SkBlendMode</a>, <a href='undocumented#SkColorFilter'>SkColorFilter</a>, <a href='undocumented#SkImageFilter'>SkImageFilter</a>,</td>
</tr>
</table>
@@ -4100,14 +4100,14 @@
};
</pre>
-<a href='#SkCanvas_SrcRectConstraint'>SrcRectConstraint</a> <a href='#SkCanvas_SrcRectConstraint'>controls</a> <a href='#SkCanvas_SrcRectConstraint'>the</a> <a href='#SkCanvas_SrcRectConstraint'>behavior</a> <a href='#SkCanvas_SrcRectConstraint'>at</a> <a href='#SkCanvas_SrcRectConstraint'>the</a> <a href='#SkCanvas_SrcRectConstraint'>edge</a> <a href='#SkCanvas_SrcRectConstraint'>of</a> <a href='#SkCanvas_SrcRectConstraint'>source</a> <a href='SkRect_Reference#Rect'>Rect</a>,
-<a href='SkRect_Reference#Rect'>provided</a> <a href='SkRect_Reference#Rect'>to</a> <a href='#SkCanvas_drawImageRect'>drawImageRect</a>, <a href='#SkCanvas_drawImageRect'>trading</a> <a href='#SkCanvas_drawImageRect'>off</a> <a href='#SkCanvas_drawImageRect'>speed</a> <a href='#SkCanvas_drawImageRect'>for</a> <a href='#SkCanvas_drawImageRect'>precision</a>.
+<a href='#SkCanvas_SrcRectConstraint'>SrcRectConstraint</a> controls the behavior at the edge of source <a href='SkRect_Reference#Rect'>Rect</a>,
+provided to <a href='#SkCanvas_drawImageRect'>drawImageRect</a>, trading off speed for precision.
-<a href='#Image_Filter'>Image_Filter</a> <a href='#Image_Filter'>in</a> <a href='SkPaint_Reference#Paint'>Paint</a> <a href='SkPaint_Reference#Paint'>may</a> <a href='SkPaint_Reference#Paint'>sample</a> <a href='SkPaint_Reference#Paint'>multiple</a> <a href='SkPaint_Reference#Paint'>pixels</a> <a href='SkPaint_Reference#Paint'>in</a> <a href='SkPaint_Reference#Paint'>the</a> <a href='SkImage_Reference#Image'>image</a>. <a href='SkImage_Reference#Image'>Source</a> <a href='SkRect_Reference#Rect'>Rect</a>
-<a href='SkRect_Reference#Rect'>restricts</a> <a href='SkRect_Reference#Rect'>the</a> <a href='SkRect_Reference#Rect'>bounds</a> <a href='SkRect_Reference#Rect'>of</a> <a href='SkRect_Reference#Rect'>pixels</a> <a href='SkRect_Reference#Rect'>that</a> <a href='SkRect_Reference#Rect'>may</a> <a href='SkRect_Reference#Rect'>be</a> <a href='SkRect_Reference#Rect'>read</a>. <a href='#Image_Filter'>Image_Filter</a> <a href='#Image_Filter'>may</a> <a href='#Image_Filter'>slow</a> <a href='#Image_Filter'>down</a> <a href='#Image_Filter'>if</a>
-<a href='#Image_Filter'>it</a> <a href='#Image_Filter'>cannot</a> <a href='#Image_Filter'>read</a> <a href='#Image_Filter'>outside</a> <a href='#Image_Filter'>the</a> <a href='#Image_Filter'>bounds</a>, <a href='#Image_Filter'>when</a> <a href='#Image_Filter'>sampling</a> <a href='#Image_Filter'>near</a> <a href='#Image_Filter'>the</a> <a href='#Image_Filter'>edge</a> <a href='#Image_Filter'>of</a> <a href='#Image_Filter'>source</a> <a href='SkRect_Reference#Rect'>Rect</a>.
-<a href='#SkCanvas_SrcRectConstraint'>SrcRectConstraint</a> <a href='#SkCanvas_SrcRectConstraint'>specifies</a> <a href='#SkCanvas_SrcRectConstraint'>whether</a> <a href='#SkCanvas_SrcRectConstraint'>an</a> <a href='#Image_Filter'>Image_Filter</a> <a href='#Image_Filter'>is</a> <a href='#Image_Filter'>allowed</a> <a href='#Image_Filter'>to</a> <a href='#Image_Filter'>read</a> <a href='#Image_Filter'>pixels</a>
-<a href='#Image_Filter'>outside</a> <a href='#Image_Filter'>source</a> <a href='SkRect_Reference#Rect'>Rect</a>.
+<a href='#Image_Filter'>Image_Filter</a> in <a href='SkPaint_Reference#Paint'>Paint</a> may sample multiple pixels in the <a href='SkImage_Reference#Image'>image</a>. Source <a href='SkRect_Reference#Rect'>Rect</a>
+restricts the bounds of pixels that may be read. <a href='#Image_Filter'>Image_Filter</a> may slow down if
+it cannot read outside the bounds, when sampling near the edge of source <a href='SkRect_Reference#Rect'>Rect</a>.
+<a href='#SkCanvas_SrcRectConstraint'>SrcRectConstraint</a> specifies whether an <a href='#Image_Filter'>Image_Filter</a> is allowed to read pixels
+outside source <a href='SkRect_Reference#Rect'>Rect</a>.
### Constants
@@ -4119,17 +4119,17 @@
<td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a name='SkCanvas_kStrict_SrcRectConstraint'><code>SkCanvas::kStrict_SrcRectConstraint</code></a></td>
<td style='text-align: center; border: 2px solid #dddddd; padding: 8px; '>0</td>
<td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>
-Requires <a href='#Image_Filter'>Image_Filter</a> <a href='#Image_Filter'>to</a> <a href='#Image_Filter'>respect</a> <a href='#Image_Filter'>source</a> <a href='SkRect_Reference#Rect'>Rect</a>,
-<a href='SkRect_Reference#Rect'>sampling</a> <a href='SkRect_Reference#Rect'>only</a> <a href='SkRect_Reference#Rect'>inside</a> <a href='SkRect_Reference#Rect'>of</a> <a href='SkRect_Reference#Rect'>its</a> <a href='SkRect_Reference#Rect'>bounds</a>, <a href='SkRect_Reference#Rect'>possibly</a> <a href='SkRect_Reference#Rect'>with</a> <a href='SkRect_Reference#Rect'>a</a> <a href='SkRect_Reference#Rect'>performance</a> <a href='SkRect_Reference#Rect'>penalty</a>.
+Requires <a href='#Image_Filter'>Image_Filter</a> to respect source <a href='SkRect_Reference#Rect'>Rect</a>,
+sampling only inside of its bounds, possibly with a performance penalty.
</td>
</tr>
<tr>
<td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a name='SkCanvas_kFast_SrcRectConstraint'><code>SkCanvas::kFast_SrcRectConstraint</code></a></td>
<td style='text-align: center; border: 2px solid #dddddd; padding: 8px; '>1</td>
<td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>
-Permits <a href='#Image_Filter'>Image_Filter</a> <a href='#Image_Filter'>to</a> <a href='#Image_Filter'>sample</a> <a href='#Image_Filter'>outside</a> <a href='#Image_Filter'>of</a> <a href='#Image_Filter'>source</a> <a href='SkRect_Reference#Rect'>Rect</a>
-<a href='SkRect_Reference#Rect'>by</a> <a href='SkRect_Reference#Rect'>half</a> <a href='SkRect_Reference#Rect'>the</a> <a href='SkRect_Reference#Rect'>width</a> <a href='SkRect_Reference#Rect'>of</a> <a href='#Image_Filter'>Image_Filter</a>, <a href='#Image_Filter'>permitting</a> <a href='#Image_Filter'>it</a> <a href='#Image_Filter'>to</a> <a href='#Image_Filter'>run</a> <a href='#Image_Filter'>faster</a> <a href='#Image_Filter'>but</a> <a href='#Image_Filter'>with</a>
-<a href='#Image_Filter'>error</a> <a href='#Image_Filter'>at</a> <a href='#Image_Filter'>the</a> <a href='SkImage_Reference#Image'>image</a> <a href='SkImage_Reference#Image'>edges</a>.
+Permits <a href='#Image_Filter'>Image_Filter</a> to sample outside of source <a href='SkRect_Reference#Rect'>Rect</a>
+by half the width of <a href='#Image_Filter'>Image_Filter</a>, permitting it to run faster but with
+error at the <a href='SkImage_Reference#Image'>image</a> edges.
</td>
</tr>
</table>
@@ -4138,9 +4138,9 @@
<div><fiddle-embed name="5df49d1f4da37275a1f10ef7f1a749f0"><div>redBorder contains a black and white checkerboard bordered by red.
redBorder is drawn scaled by 16 on the left.
-The middle and right <a href='SkBitmap_Reference#Bitmap'>bitmaps</a> <a href='SkBitmap_Reference#Bitmap'>are</a> <a href='SkBitmap_Reference#Bitmap'>filtered</a> <a href='SkBitmap_Reference#Bitmap'>checkerboards</a>.
-<a href='SkBitmap_Reference#Bitmap'>Drawing</a> <a href='SkBitmap_Reference#Bitmap'>the</a> <a href='SkBitmap_Reference#Bitmap'>checkerboard</a> <a href='SkBitmap_Reference#Bitmap'>with</a> <a href='#SkCanvas_kStrict_SrcRectConstraint'>kStrict_SrcRectConstraint</a> <a href='#SkCanvas_kStrict_SrcRectConstraint'>shows</a> <a href='#SkCanvas_kStrict_SrcRectConstraint'>only</a> <a href='#SkCanvas_kStrict_SrcRectConstraint'>a</a> <a href='#SkCanvas_kStrict_SrcRectConstraint'>blur</a> <a href='#SkCanvas_kStrict_SrcRectConstraint'>of</a> <a href='#SkCanvas_kStrict_SrcRectConstraint'>black</a> <a href='#SkCanvas_kStrict_SrcRectConstraint'>and</a> <a href='#SkCanvas_kStrict_SrcRectConstraint'>white</a>.
-<a href='#SkCanvas_kStrict_SrcRectConstraint'>Drawing</a> <a href='#SkCanvas_kStrict_SrcRectConstraint'>the</a> <a href='#SkCanvas_kStrict_SrcRectConstraint'>checkerboard</a> <a href='#SkCanvas_kStrict_SrcRectConstraint'>with</a> <a href='#SkCanvas_kFast_SrcRectConstraint'>kFast_SrcRectConstraint</a> <a href='#SkCanvas_kFast_SrcRectConstraint'>allows</a> <a href='#SkCanvas_kFast_SrcRectConstraint'>red</a> <a href='#SkCanvas_kFast_SrcRectConstraint'>to</a> <a href='#SkCanvas_kFast_SrcRectConstraint'>bleed</a> <a href='#SkCanvas_kFast_SrcRectConstraint'>in</a> <a href='#SkCanvas_kFast_SrcRectConstraint'>the</a> <a href='#SkCanvas_kFast_SrcRectConstraint'>corners</a>.
+The middle and right <a href='SkBitmap_Reference#Bitmap'>bitmaps</a> 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
@@ -4152,38 +4152,38 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-void <a href='#SkCanvas_drawImageRect'>drawImageRect</a>(<a href='#SkCanvas_drawImageRect'>const</a> <a href='SkImage_Reference#SkImage'>SkImage</a>* <a href='SkImage_Reference#Image'>image</a>, <a href='SkImage_Reference#Image'>const</a> <a href='SkRect_Reference#SkRect'>SkRect</a>& <a href='SkRect_Reference#SkRect'>src</a>, <a href='SkRect_Reference#SkRect'>const</a> <a href='SkRect_Reference#SkRect'>SkRect</a>& <a href='SkRect_Reference#SkRect'>dst</a>, <a href='SkRect_Reference#SkRect'>const</a> <a href='SkPaint_Reference#SkPaint'>SkPaint</a>* <a href='SkPaint_Reference#Paint'>paint</a>,
- <a href='#SkCanvas_SrcRectConstraint'>SrcRectConstraint</a> <a href='#SkCanvas_SrcRectConstraint'>constraint</a> = <a href='#SkCanvas_kStrict_SrcRectConstraint'>kStrict_SrcRectConstraint</a>)
+void <a href='#SkCanvas_drawImageRect'>drawImageRect</a>(const <a href='SkImage_Reference#SkImage'>SkImage</a>* <a href='SkImage_Reference#Image'>image</a>, const <a href='SkRect_Reference#SkRect'>SkRect</a>& src, const <a href='SkRect_Reference#SkRect'>SkRect</a>& dst, const <a href='SkPaint_Reference#SkPaint'>SkPaint</a>* <a href='SkPaint_Reference#Paint'>paint</a>,
+ <a href='#SkCanvas_SrcRectConstraint'>SrcRectConstraint</a> constraint = <a href='#SkCanvas_kStrict_SrcRectConstraint'>kStrict_SrcRectConstraint</a>)
</pre>
-Draws <a href='SkRect_Reference#SkRect'>SkRect</a> <a href='#SkCanvas_drawImageRect_src'>src</a> <a href='#SkCanvas_drawImageRect_src'>of</a> <a href='SkImage_Reference#SkImage'>SkImage</a> <a href='#SkCanvas_drawImageRect_image'>image</a>, <a href='#SkCanvas_drawImageRect_image'>scaled</a> <a href='#SkCanvas_drawImageRect_image'>and</a> <a href='#SkCanvas_drawImageRect_image'>translated</a> <a href='#SkCanvas_drawImageRect_image'>to</a> <a href='#SkCanvas_drawImageRect_image'>fill</a> <a href='SkRect_Reference#SkRect'>SkRect</a> <a href='#SkCanvas_drawImageRect_dst'>dst</a>.
-Additionally transform draw using clip, <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a>, <a href='SkMatrix_Reference#SkMatrix'>and</a> <a href='SkMatrix_Reference#SkMatrix'>optional</a> <a href='SkPaint_Reference#SkPaint'>SkPaint</a> <a href='#SkCanvas_drawImageRect_paint'>paint</a>.
+Draws <a href='SkRect_Reference#SkRect'>SkRect</a> <a href='#SkCanvas_drawImageRect_src'>src</a> of <a href='SkImage_Reference#SkImage'>SkImage</a> <a href='#SkCanvas_drawImageRect_image'>image</a>, scaled and translated to fill <a href='SkRect_Reference#SkRect'>SkRect</a> <a href='#SkCanvas_drawImageRect_dst'>dst</a>.
+Additionally transform draw using clip, <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a>, and optional <a href='SkPaint_Reference#SkPaint'>SkPaint</a> <a href='#SkCanvas_drawImageRect_paint'>paint</a>.
-If <a href='SkPaint_Reference#SkPaint'>SkPaint</a> <a href='#SkCanvas_drawImageRect_paint'>paint</a> <a href='#SkCanvas_drawImageRect_paint'>is</a> <a href='#SkCanvas_drawImageRect_paint'>supplied</a>, <a href='#SkCanvas_drawImageRect_paint'>apply</a> <a href='undocumented#SkColorFilter'>SkColorFilter</a>, <a href='SkColor_Reference#Alpha'>alpha</a>, <a href='undocumented#SkImageFilter'>SkImageFilter</a>,
-<a href='SkBlendMode_Reference#SkBlendMode'>SkBlendMode</a>, <a href='SkBlendMode_Reference#SkBlendMode'>and</a> <a href='undocumented#SkDrawLooper'>SkDrawLooper</a>. <a href='undocumented#SkDrawLooper'>If</a> <a href='#SkCanvas_drawImageRect_image'>image</a> <a href='#SkCanvas_drawImageRect_image'>is</a> <a href='SkImageInfo_Reference#kAlpha_8_SkColorType'>kAlpha_8_SkColorType</a>, <a href='SkImageInfo_Reference#kAlpha_8_SkColorType'>apply</a> <a href='undocumented#SkShader'>SkShader</a>.
-If <a href='#SkCanvas_drawImageRect_paint'>paint</a> <a href='#SkCanvas_drawImageRect_paint'>contains</a> <a href='undocumented#SkMaskFilter'>SkMaskFilter</a>, <a href='undocumented#SkMaskFilter'>generate</a> <a href='undocumented#SkMaskFilter'>mask</a> <a href='undocumented#SkMaskFilter'>from</a> <a href='#SkCanvas_drawImageRect_image'>image</a> <a href='#SkCanvas_drawImageRect_image'>bounds</a>.
+If <a href='SkPaint_Reference#SkPaint'>SkPaint</a> <a href='#SkCanvas_drawImageRect_paint'>paint</a> is supplied, apply <a href='undocumented#SkColorFilter'>SkColorFilter</a>, <a href='SkColor_Reference#Alpha'>alpha</a>, <a href='undocumented#SkImageFilter'>SkImageFilter</a>,
+<a href='SkBlendMode_Reference#SkBlendMode'>SkBlendMode</a>, and <a href='undocumented#SkDrawLooper'>SkDrawLooper</a>. If <a href='#SkCanvas_drawImageRect_image'>image</a> is <a href='SkImageInfo_Reference#kAlpha_8_SkColorType'>kAlpha_8_SkColorType</a>, apply <a href='undocumented#SkShader'>SkShader</a>.
+If <a href='#SkCanvas_drawImageRect_paint'>paint</a> contains <a href='undocumented#SkMaskFilter'>SkMaskFilter</a>, generate mask from <a href='#SkCanvas_drawImageRect_image'>image</a> bounds.
-If generated mask extends beyond <a href='#SkCanvas_drawImageRect_image'>image</a> <a href='#SkCanvas_drawImageRect_image'>bounds</a>, <a href='#SkCanvas_drawImageRect_image'>replicate</a> <a href='#SkCanvas_drawImageRect_image'>image</a> <a href='#SkCanvas_drawImageRect_image'>edge</a> <a href='#SkCanvas_drawImageRect_image'>colors</a>, <a href='#SkCanvas_drawImageRect_image'>just</a>
-as <a href='undocumented#SkShader'>SkShader</a> <a href='undocumented#SkShader'>made</a> <a href='undocumented#SkShader'>from</a> <a href='SkImage_Reference#SkImage'>SkImage</a>::<a href='#SkImage_makeShader'>makeShader</a> <a href='#SkImage_makeShader'>with</a> <a href='undocumented#SkShader'>SkShader</a>::<a href='#SkShader_kClamp_TileMode'>kClamp_TileMode</a> <a href='#SkShader_kClamp_TileMode'>set</a>
-replicates the <a href='#SkCanvas_drawImageRect_image'>image</a> <a href='#SkCanvas_drawImageRect_image'>edge</a> <a href='SkColor_Reference#Color'>color</a> <a href='SkColor_Reference#Color'>when</a> <a href='SkColor_Reference#Color'>it</a> <a href='SkColor_Reference#Color'>samples</a> <a href='SkColor_Reference#Color'>outside</a> <a href='SkColor_Reference#Color'>of</a> <a href='SkColor_Reference#Color'>its</a> <a href='SkColor_Reference#Color'>bounds</a>.
+If generated mask extends beyond <a href='#SkCanvas_drawImageRect_image'>image</a> bounds, replicate <a href='#SkCanvas_drawImageRect_image'>image</a> edge colors, just
+as <a href='undocumented#SkShader'>SkShader</a> made from <a href='SkImage_Reference#SkImage'>SkImage</a>::<a href='#SkImage_makeShader'>makeShader</a> with <a href='undocumented#SkShader'>SkShader</a>::<a href='#SkShader_kClamp_TileMode'>kClamp_TileMode</a> set
+replicates the <a href='#SkCanvas_drawImageRect_image'>image</a> edge <a href='SkColor_Reference#Color'>color</a> when it samples outside of its bounds.
-<a href='#SkCanvas_drawImageRect_constraint'>constraint</a> <a href='#SkCanvas_drawImageRect_constraint'>set</a> <a href='#SkCanvas_drawImageRect_constraint'>to</a> <a href='#SkCanvas_kStrict_SrcRectConstraint'>kStrict_SrcRectConstraint</a> <a href='#SkCanvas_kStrict_SrcRectConstraint'>limits</a> <a href='SkPaint_Reference#SkPaint'>SkPaint</a> <a href='undocumented#SkFilterQuality'>SkFilterQuality</a> <a href='undocumented#SkFilterQuality'>to</a>
-sample within <a href='#SkCanvas_drawImageRect_src'>src</a>; <a href='#SkCanvas_drawImageRect_src'>set</a> <a href='#SkCanvas_drawImageRect_src'>to</a> <a href='#SkCanvas_kFast_SrcRectConstraint'>kFast_SrcRectConstraint</a> <a href='#SkCanvas_kFast_SrcRectConstraint'>allows</a> <a href='#SkCanvas_kFast_SrcRectConstraint'>sampling</a> <a href='#SkCanvas_kFast_SrcRectConstraint'>outside</a> <a href='#SkCanvas_kFast_SrcRectConstraint'>to</a>
+<a href='#SkCanvas_drawImageRect_constraint'>constraint</a> set to <a href='#SkCanvas_kStrict_SrcRectConstraint'>kStrict_SrcRectConstraint</a> limits <a href='SkPaint_Reference#SkPaint'>SkPaint</a> <a href='undocumented#SkFilterQuality'>SkFilterQuality</a> to
+sample within <a href='#SkCanvas_drawImageRect_src'>src</a>; set to <a href='#SkCanvas_kFast_SrcRectConstraint'>kFast_SrcRectConstraint</a> allows sampling outside to
improve performance.
### Parameters
<table> <tr> <td><a name='SkCanvas_drawImageRect_image'><code><strong>image</strong></code></a></td>
- <td><a href='SkImage_Reference#SkImage'>SkImage</a> <a href='SkImage_Reference#SkImage'>containing</a> <a href='SkImage_Reference#SkImage'>pixels</a>, <a href='SkImage_Reference#SkImage'>dimensions</a>, <a href='SkImage_Reference#SkImage'>and</a> <a href='SkImage_Reference#SkImage'>format</a></td>
+ <td><a href='SkImage_Reference#SkImage'>SkImage</a> containing pixels, dimensions, and format</td>
</tr>
<tr> <td><a name='SkCanvas_drawImageRect_src'><code><strong>src</strong></code></a></td>
- <td>source <a href='SkRect_Reference#SkRect'>SkRect</a> <a href='SkRect_Reference#SkRect'>of</a> <a href='#SkCanvas_drawImageRect_image'>image</a> <a href='#SkCanvas_drawImageRect_image'>to</a> <a href='#SkCanvas_drawImageRect_image'>draw</a> <a href='#SkCanvas_drawImageRect_image'>from</a></td>
+ <td>source <a href='SkRect_Reference#SkRect'>SkRect</a> of <a href='#SkCanvas_drawImageRect_image'>image</a> to draw from</td>
</tr>
<tr> <td><a name='SkCanvas_drawImageRect_dst'><code><strong>dst</strong></code></a></td>
- <td>destination <a href='SkRect_Reference#SkRect'>SkRect</a> <a href='SkRect_Reference#SkRect'>of</a> <a href='#SkCanvas_drawImageRect_image'>image</a> <a href='#SkCanvas_drawImageRect_image'>to</a> <a href='#SkCanvas_drawImageRect_image'>draw</a> <a href='#SkCanvas_drawImageRect_image'>to</a></td>
+ <td>destination <a href='SkRect_Reference#SkRect'>SkRect</a> of <a href='#SkCanvas_drawImageRect_image'>image</a> to draw to</td>
</tr>
<tr> <td><a name='SkCanvas_drawImageRect_paint'><code><strong>paint</strong></code></a></td>
- <td><a href='SkPaint_Reference#SkPaint'>SkPaint</a> <a href='SkPaint_Reference#SkPaint'>containing</a> <a href='SkBlendMode_Reference#SkBlendMode'>SkBlendMode</a>, <a href='undocumented#SkColorFilter'>SkColorFilter</a>, <a href='undocumented#SkImageFilter'>SkImageFilter</a>,</td>
+ <td><a href='SkPaint_Reference#SkPaint'>SkPaint</a> containing <a href='SkBlendMode_Reference#SkBlendMode'>SkBlendMode</a>, <a href='undocumented#SkColorFilter'>SkColorFilter</a>, <a href='undocumented#SkImageFilter'>SkImageFilter</a>,</td>
</tr>
</table>
@@ -4192,17 +4192,17 @@
### Parameters
<table> <tr> <td><a name='SkCanvas_drawImageRect_constraint'><code><strong>constraint</strong></code></a></td>
- <td>filter strictly within <a href='#SkCanvas_drawImageRect_src'>src</a> <a href='#SkCanvas_drawImageRect_src'>or</a> <a href='#SkCanvas_drawImageRect_src'>draw</a> <a href='#SkCanvas_drawImageRect_src'>faster</a></td>
+ <td>filter strictly within <a href='#SkCanvas_drawImageRect_src'>src</a> or draw faster</td>
</tr>
</table>
### Example
-<div><fiddle-embed name="bfd18e9cac896cdf94c9f154ccf94be8"><div>The left <a href='SkBitmap_Reference#Bitmap'>bitmap</a> <a href='SkBitmap_Reference#Bitmap'>draws</a> <a href='SkBitmap_Reference#Bitmap'>with</a> <a href='SkPaint_Reference#Paint'>Paint</a> <a href='SkPaint_Reference#Paint'>default</a> <a href='undocumented#kNone_SkFilterQuality'>kNone_SkFilterQuality</a>, <a href='undocumented#kNone_SkFilterQuality'>and</a> <a href='undocumented#kNone_SkFilterQuality'>stays</a> <a href='undocumented#kNone_SkFilterQuality'>within</a>
-<a href='undocumented#kNone_SkFilterQuality'>its</a> <a href='undocumented#kNone_SkFilterQuality'>bounds</a>; <a href='undocumented#kNone_SkFilterQuality'>there</a> <a href='undocumented#kNone_SkFilterQuality'>is</a> <a href='undocumented#kNone_SkFilterQuality'>no</a> <a href='undocumented#kNone_SkFilterQuality'>bleeding</a> <a href='undocumented#kNone_SkFilterQuality'>with</a> <a href='#SkCanvas_kFast_SrcRectConstraint'>kFast_SrcRectConstraint</a>.
-<a href='#SkCanvas_kFast_SrcRectConstraint'>the</a> <a href='#SkCanvas_kFast_SrcRectConstraint'>middle</a> <a href='#SkCanvas_kFast_SrcRectConstraint'>and</a> <a href='#SkCanvas_kFast_SrcRectConstraint'>right</a> <a href='SkBitmap_Reference#Bitmap'>bitmaps</a> <a href='SkBitmap_Reference#Bitmap'>draw</a> <a href='SkBitmap_Reference#Bitmap'>with</a> <a href='undocumented#kLow_SkFilterQuality'>kLow_SkFilterQuality</a>; <a href='undocumented#kLow_SkFilterQuality'>with</a>
-<a href='#SkCanvas_kStrict_SrcRectConstraint'>kStrict_SrcRectConstraint</a>, <a href='#SkCanvas_kStrict_SrcRectConstraint'>the</a> <a href='#SkCanvas_kStrict_SrcRectConstraint'>filter</a> <a href='#SkCanvas_kStrict_SrcRectConstraint'>remains</a> <a href='#SkCanvas_kStrict_SrcRectConstraint'>within</a> <a href='#SkCanvas_kStrict_SrcRectConstraint'>the</a> <a href='#SkCanvas_kStrict_SrcRectConstraint'>checkerboard</a>, <a href='#SkCanvas_kStrict_SrcRectConstraint'>and</a>
-<a href='#SkCanvas_kStrict_SrcRectConstraint'>with</a> <a href='#SkCanvas_kFast_SrcRectConstraint'>kFast_SrcRectConstraint</a> <a href='#SkCanvas_kFast_SrcRectConstraint'>red</a> <a href='#SkCanvas_kFast_SrcRectConstraint'>bleeds</a> <a href='#SkCanvas_kFast_SrcRectConstraint'>on</a> <a href='#SkCanvas_kFast_SrcRectConstraint'>the</a> <a href='#SkCanvas_kFast_SrcRectConstraint'>edges</a>.
+<div><fiddle-embed name="bfd18e9cac896cdf94c9f154ccf94be8"><div>The left <a href='SkBitmap_Reference#Bitmap'>bitmap</a> draws with <a href='SkPaint_Reference#Paint'>Paint</a> default <a href='undocumented#kNone_SkFilterQuality'>kNone_SkFilterQuality</a>, and stays within
+its bounds; there is no bleeding with <a href='#SkCanvas_kFast_SrcRectConstraint'>kFast_SrcRectConstraint</a>.
+the middle and right <a href='SkBitmap_Reference#Bitmap'>bitmaps</a> draw with <a href='undocumented#kLow_SkFilterQuality'>kLow_SkFilterQuality</a>; with
+<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
@@ -4214,40 +4214,40 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-void <a href='#SkCanvas_drawImageRect'>drawImageRect</a>(<a href='#SkCanvas_drawImageRect'>const</a> <a href='SkImage_Reference#SkImage'>SkImage</a>* <a href='SkImage_Reference#Image'>image</a>, <a href='SkImage_Reference#Image'>const</a> <a href='SkIRect_Reference#SkIRect'>SkIRect</a>& <a href='SkIRect_Reference#SkIRect'>isrc</a>, <a href='SkIRect_Reference#SkIRect'>const</a> <a href='SkRect_Reference#SkRect'>SkRect</a>& <a href='SkRect_Reference#SkRect'>dst</a>, <a href='SkRect_Reference#SkRect'>const</a> <a href='SkPaint_Reference#SkPaint'>SkPaint</a>* <a href='SkPaint_Reference#Paint'>paint</a>,
- <a href='#SkCanvas_SrcRectConstraint'>SrcRectConstraint</a> <a href='#SkCanvas_SrcRectConstraint'>constraint</a> = <a href='#SkCanvas_kStrict_SrcRectConstraint'>kStrict_SrcRectConstraint</a>)
+void <a href='#SkCanvas_drawImageRect'>drawImageRect</a>(const <a href='SkImage_Reference#SkImage'>SkImage</a>* <a href='SkImage_Reference#Image'>image</a>, const <a href='SkIRect_Reference#SkIRect'>SkIRect</a>& isrc, const <a href='SkRect_Reference#SkRect'>SkRect</a>& dst, const <a href='SkPaint_Reference#SkPaint'>SkPaint</a>* <a href='SkPaint_Reference#Paint'>paint</a>,
+ <a href='#SkCanvas_SrcRectConstraint'>SrcRectConstraint</a> constraint = <a href='#SkCanvas_kStrict_SrcRectConstraint'>kStrict_SrcRectConstraint</a>)
</pre>
-Draws <a href='SkIRect_Reference#SkIRect'>SkIRect</a> <a href='#SkCanvas_drawImageRect_2_isrc'>isrc</a> <a href='#SkCanvas_drawImageRect_2_isrc'>of</a> <a href='SkImage_Reference#SkImage'>SkImage</a> <a href='#SkCanvas_drawImageRect_2_image'>image</a>, <a href='#SkCanvas_drawImageRect_2_image'>scaled</a> <a href='#SkCanvas_drawImageRect_2_image'>and</a> <a href='#SkCanvas_drawImageRect_2_image'>translated</a> <a href='#SkCanvas_drawImageRect_2_image'>to</a> <a href='#SkCanvas_drawImageRect_2_image'>fill</a> <a href='SkRect_Reference#SkRect'>SkRect</a> <a href='#SkCanvas_drawImageRect_2_dst'>dst</a>.
-Note that <a href='#SkCanvas_drawImageRect_2_isrc'>isrc</a> <a href='#SkCanvas_drawImageRect_2_isrc'>is</a> <a href='#SkCanvas_drawImageRect_2_isrc'>on</a> <a href='#SkCanvas_drawImageRect_2_isrc'>integer</a> <a href='undocumented#Pixel'>pixel</a> <a href='undocumented#Pixel'>boundaries</a>; <a href='#SkCanvas_drawImageRect_2_dst'>dst</a> <a href='#SkCanvas_drawImageRect_2_dst'>may</a> <a href='#SkCanvas_drawImageRect_2_dst'>include</a> <a href='#SkCanvas_drawImageRect_2_dst'>fractional</a>
-boundaries. Additionally transform draw using clip, <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a>, <a href='SkMatrix_Reference#SkMatrix'>and</a> <a href='SkMatrix_Reference#SkMatrix'>optional</a> <a href='SkPaint_Reference#SkPaint'>SkPaint</a>
+Draws <a href='SkIRect_Reference#SkIRect'>SkIRect</a> <a href='#SkCanvas_drawImageRect_2_isrc'>isrc</a> of <a href='SkImage_Reference#SkImage'>SkImage</a> <a href='#SkCanvas_drawImageRect_2_image'>image</a>, scaled and translated to fill <a href='SkRect_Reference#SkRect'>SkRect</a> <a href='#SkCanvas_drawImageRect_2_dst'>dst</a>.
+Note that <a href='#SkCanvas_drawImageRect_2_isrc'>isrc</a> is on integer <a href='undocumented#Pixel'>pixel</a> boundaries; <a href='#SkCanvas_drawImageRect_2_dst'>dst</a> may include fractional
+boundaries. Additionally transform draw using clip, <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a>, and optional <a href='SkPaint_Reference#SkPaint'>SkPaint</a>
<a href='#SkCanvas_drawImageRect_2_paint'>paint</a>.
-If <a href='SkPaint_Reference#SkPaint'>SkPaint</a> <a href='#SkCanvas_drawImageRect_2_paint'>paint</a> <a href='#SkCanvas_drawImageRect_2_paint'>is</a> <a href='#SkCanvas_drawImageRect_2_paint'>supplied</a>, <a href='#SkCanvas_drawImageRect_2_paint'>apply</a> <a href='undocumented#SkColorFilter'>SkColorFilter</a>, <a href='SkColor_Reference#Alpha'>alpha</a>, <a href='undocumented#SkImageFilter'>SkImageFilter</a>,
-<a href='SkBlendMode_Reference#SkBlendMode'>SkBlendMode</a>, <a href='SkBlendMode_Reference#SkBlendMode'>and</a> <a href='undocumented#SkDrawLooper'>SkDrawLooper</a>. <a href='undocumented#SkDrawLooper'>If</a> <a href='#SkCanvas_drawImageRect_2_image'>image</a> <a href='#SkCanvas_drawImageRect_2_image'>is</a> <a href='SkImageInfo_Reference#kAlpha_8_SkColorType'>kAlpha_8_SkColorType</a>, <a href='SkImageInfo_Reference#kAlpha_8_SkColorType'>apply</a> <a href='undocumented#SkShader'>SkShader</a>.
-If <a href='#SkCanvas_drawImageRect_2_paint'>paint</a> <a href='#SkCanvas_drawImageRect_2_paint'>contains</a> <a href='undocumented#SkMaskFilter'>SkMaskFilter</a>, <a href='undocumented#SkMaskFilter'>generate</a> <a href='undocumented#SkMaskFilter'>mask</a> <a href='undocumented#SkMaskFilter'>from</a> <a href='#SkCanvas_drawImageRect_2_image'>image</a> <a href='#SkCanvas_drawImageRect_2_image'>bounds</a>.
+If <a href='SkPaint_Reference#SkPaint'>SkPaint</a> <a href='#SkCanvas_drawImageRect_2_paint'>paint</a> is supplied, apply <a href='undocumented#SkColorFilter'>SkColorFilter</a>, <a href='SkColor_Reference#Alpha'>alpha</a>, <a href='undocumented#SkImageFilter'>SkImageFilter</a>,
+<a href='SkBlendMode_Reference#SkBlendMode'>SkBlendMode</a>, and <a href='undocumented#SkDrawLooper'>SkDrawLooper</a>. If <a href='#SkCanvas_drawImageRect_2_image'>image</a> is <a href='SkImageInfo_Reference#kAlpha_8_SkColorType'>kAlpha_8_SkColorType</a>, apply <a href='undocumented#SkShader'>SkShader</a>.
+If <a href='#SkCanvas_drawImageRect_2_paint'>paint</a> contains <a href='undocumented#SkMaskFilter'>SkMaskFilter</a>, generate mask from <a href='#SkCanvas_drawImageRect_2_image'>image</a> bounds.
-If generated mask extends beyond <a href='#SkCanvas_drawImageRect_2_image'>image</a> <a href='#SkCanvas_drawImageRect_2_image'>bounds</a>, <a href='#SkCanvas_drawImageRect_2_image'>replicate</a> <a href='#SkCanvas_drawImageRect_2_image'>image</a> <a href='#SkCanvas_drawImageRect_2_image'>edge</a> <a href='#SkCanvas_drawImageRect_2_image'>colors</a>, <a href='#SkCanvas_drawImageRect_2_image'>just</a>
-as <a href='undocumented#SkShader'>SkShader</a> <a href='undocumented#SkShader'>made</a> <a href='undocumented#SkShader'>from</a> <a href='SkImage_Reference#SkImage'>SkImage</a>::<a href='#SkImage_makeShader'>makeShader</a> <a href='#SkImage_makeShader'>with</a> <a href='undocumented#SkShader'>SkShader</a>::<a href='#SkShader_kClamp_TileMode'>kClamp_TileMode</a> <a href='#SkShader_kClamp_TileMode'>set</a>
-replicates the <a href='#SkCanvas_drawImageRect_2_image'>image</a> <a href='#SkCanvas_drawImageRect_2_image'>edge</a> <a href='SkColor_Reference#Color'>color</a> <a href='SkColor_Reference#Color'>when</a> <a href='SkColor_Reference#Color'>it</a> <a href='SkColor_Reference#Color'>samples</a> <a href='SkColor_Reference#Color'>outside</a> <a href='SkColor_Reference#Color'>of</a> <a href='SkColor_Reference#Color'>its</a> <a href='SkColor_Reference#Color'>bounds</a>.
+If generated mask extends beyond <a href='#SkCanvas_drawImageRect_2_image'>image</a> bounds, replicate <a href='#SkCanvas_drawImageRect_2_image'>image</a> edge colors, just
+as <a href='undocumented#SkShader'>SkShader</a> made from <a href='SkImage_Reference#SkImage'>SkImage</a>::<a href='#SkImage_makeShader'>makeShader</a> with <a href='undocumented#SkShader'>SkShader</a>::<a href='#SkShader_kClamp_TileMode'>kClamp_TileMode</a> set
+replicates the <a href='#SkCanvas_drawImageRect_2_image'>image</a> edge <a href='SkColor_Reference#Color'>color</a> when it samples outside of its bounds.
-<a href='#SkCanvas_drawImageRect_2_constraint'>constraint</a> <a href='#SkCanvas_drawImageRect_2_constraint'>set</a> <a href='#SkCanvas_drawImageRect_2_constraint'>to</a> <a href='#SkCanvas_kStrict_SrcRectConstraint'>kStrict_SrcRectConstraint</a> <a href='#SkCanvas_kStrict_SrcRectConstraint'>limits</a> <a href='SkPaint_Reference#SkPaint'>SkPaint</a> <a href='undocumented#SkFilterQuality'>SkFilterQuality</a> <a href='undocumented#SkFilterQuality'>to</a>
-sample within <a href='#SkCanvas_drawImageRect_2_isrc'>isrc</a>; <a href='#SkCanvas_drawImageRect_2_isrc'>set</a> <a href='#SkCanvas_drawImageRect_2_isrc'>to</a> <a href='#SkCanvas_kFast_SrcRectConstraint'>kFast_SrcRectConstraint</a> <a href='#SkCanvas_kFast_SrcRectConstraint'>allows</a> <a href='#SkCanvas_kFast_SrcRectConstraint'>sampling</a> <a href='#SkCanvas_kFast_SrcRectConstraint'>outside</a> <a href='#SkCanvas_kFast_SrcRectConstraint'>to</a>
+<a href='#SkCanvas_drawImageRect_2_constraint'>constraint</a> set to <a href='#SkCanvas_kStrict_SrcRectConstraint'>kStrict_SrcRectConstraint</a> limits <a href='SkPaint_Reference#SkPaint'>SkPaint</a> <a href='undocumented#SkFilterQuality'>SkFilterQuality</a> to
+sample within <a href='#SkCanvas_drawImageRect_2_isrc'>isrc</a>; set to <a href='#SkCanvas_kFast_SrcRectConstraint'>kFast_SrcRectConstraint</a> allows sampling outside to
improve performance.
### Parameters
<table> <tr> <td><a name='SkCanvas_drawImageRect_2_image'><code><strong>image</strong></code></a></td>
- <td><a href='SkImage_Reference#SkImage'>SkImage</a> <a href='SkImage_Reference#SkImage'>containing</a> <a href='SkImage_Reference#SkImage'>pixels</a>, <a href='SkImage_Reference#SkImage'>dimensions</a>, <a href='SkImage_Reference#SkImage'>and</a> <a href='SkImage_Reference#SkImage'>format</a></td>
+ <td><a href='SkImage_Reference#SkImage'>SkImage</a> containing pixels, dimensions, and format</td>
</tr>
<tr> <td><a name='SkCanvas_drawImageRect_2_isrc'><code><strong>isrc</strong></code></a></td>
- <td>source <a href='SkIRect_Reference#SkIRect'>SkIRect</a> <a href='SkIRect_Reference#SkIRect'>of</a> <a href='#SkCanvas_drawImageRect_2_image'>image</a> <a href='#SkCanvas_drawImageRect_2_image'>to</a> <a href='#SkCanvas_drawImageRect_2_image'>draw</a> <a href='#SkCanvas_drawImageRect_2_image'>from</a></td>
+ <td>source <a href='SkIRect_Reference#SkIRect'>SkIRect</a> of <a href='#SkCanvas_drawImageRect_2_image'>image</a> to draw from</td>
</tr>
<tr> <td><a name='SkCanvas_drawImageRect_2_dst'><code><strong>dst</strong></code></a></td>
- <td>destination <a href='SkRect_Reference#SkRect'>SkRect</a> <a href='SkRect_Reference#SkRect'>of</a> <a href='#SkCanvas_drawImageRect_2_image'>image</a> <a href='#SkCanvas_drawImageRect_2_image'>to</a> <a href='#SkCanvas_drawImageRect_2_image'>draw</a> <a href='#SkCanvas_drawImageRect_2_image'>to</a></td>
+ <td>destination <a href='SkRect_Reference#SkRect'>SkRect</a> of <a href='#SkCanvas_drawImageRect_2_image'>image</a> to draw to</td>
</tr>
<tr> <td><a name='SkCanvas_drawImageRect_2_paint'><code><strong>paint</strong></code></a></td>
- <td><a href='SkPaint_Reference#SkPaint'>SkPaint</a> <a href='SkPaint_Reference#SkPaint'>containing</a> <a href='SkBlendMode_Reference#SkBlendMode'>SkBlendMode</a>, <a href='undocumented#SkColorFilter'>SkColorFilter</a>, <a href='undocumented#SkImageFilter'>SkImageFilter</a>,</td>
+ <td><a href='SkPaint_Reference#SkPaint'>SkPaint</a> containing <a href='SkBlendMode_Reference#SkBlendMode'>SkBlendMode</a>, <a href='undocumented#SkColorFilter'>SkColorFilter</a>, <a href='undocumented#SkImageFilter'>SkImageFilter</a>,</td>
</tr>
</table>
@@ -4256,7 +4256,7 @@
### Parameters
<table> <tr> <td><a name='SkCanvas_drawImageRect_2_constraint'><code><strong>constraint</strong></code></a></td>
- <td>filter strictly within <a href='#SkCanvas_drawImageRect_2_isrc'>isrc</a> <a href='#SkCanvas_drawImageRect_2_isrc'>or</a> <a href='#SkCanvas_drawImageRect_2_isrc'>draw</a> <a href='#SkCanvas_drawImageRect_2_isrc'>faster</a></td>
+ <td>filter strictly within <a href='#SkCanvas_drawImageRect_2_isrc'>isrc</a> or draw faster</td>
</tr>
</table>
@@ -4273,30 +4273,30 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-void <a href='#SkCanvas_drawImageRect'>drawImageRect</a>(<a href='#SkCanvas_drawImageRect'>const</a> <a href='SkImage_Reference#SkImage'>SkImage</a>* <a href='SkImage_Reference#Image'>image</a>, <a href='SkImage_Reference#Image'>const</a> <a href='SkRect_Reference#SkRect'>SkRect</a>& <a href='SkRect_Reference#SkRect'>dst</a>, <a href='SkRect_Reference#SkRect'>const</a> <a href='SkPaint_Reference#SkPaint'>SkPaint</a>* <a href='SkPaint_Reference#Paint'>paint</a>)
+void <a href='#SkCanvas_drawImageRect'>drawImageRect</a>(const <a href='SkImage_Reference#SkImage'>SkImage</a>* <a href='SkImage_Reference#Image'>image</a>, const <a href='SkRect_Reference#SkRect'>SkRect</a>& dst, const <a href='SkPaint_Reference#SkPaint'>SkPaint</a>* <a href='SkPaint_Reference#Paint'>paint</a>)
</pre>
-Draws <a href='SkImage_Reference#SkImage'>SkImage</a> <a href='#SkCanvas_drawImageRect_3_image'>image</a>, <a href='#SkCanvas_drawImageRect_3_image'>scaled</a> <a href='#SkCanvas_drawImageRect_3_image'>and</a> <a href='#SkCanvas_drawImageRect_3_image'>translated</a> <a href='#SkCanvas_drawImageRect_3_image'>to</a> <a href='#SkCanvas_drawImageRect_3_image'>fill</a> <a href='SkRect_Reference#SkRect'>SkRect</a> <a href='#SkCanvas_drawImageRect_3_dst'>dst</a>, <a href='#SkCanvas_drawImageRect_3_dst'>using</a> <a href='#SkCanvas_drawImageRect_3_dst'>clip</a>, <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a>,
+Draws <a href='SkImage_Reference#SkImage'>SkImage</a> <a href='#SkCanvas_drawImageRect_3_image'>image</a>, scaled and translated to fill <a href='SkRect_Reference#SkRect'>SkRect</a> <a href='#SkCanvas_drawImageRect_3_dst'>dst</a>, using clip, <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a>,
and optional <a href='SkPaint_Reference#SkPaint'>SkPaint</a> <a href='#SkCanvas_drawImageRect_3_paint'>paint</a>.
-If <a href='SkPaint_Reference#SkPaint'>SkPaint</a> <a href='#SkCanvas_drawImageRect_3_paint'>paint</a> <a href='#SkCanvas_drawImageRect_3_paint'>is</a> <a href='#SkCanvas_drawImageRect_3_paint'>supplied</a>, <a href='#SkCanvas_drawImageRect_3_paint'>apply</a> <a href='undocumented#SkColorFilter'>SkColorFilter</a>, <a href='SkColor_Reference#Alpha'>alpha</a>, <a href='undocumented#SkImageFilter'>SkImageFilter</a>,
-<a href='SkBlendMode_Reference#SkBlendMode'>SkBlendMode</a>, <a href='SkBlendMode_Reference#SkBlendMode'>and</a> <a href='undocumented#SkDrawLooper'>SkDrawLooper</a>. <a href='undocumented#SkDrawLooper'>If</a> <a href='#SkCanvas_drawImageRect_3_image'>image</a> <a href='#SkCanvas_drawImageRect_3_image'>is</a> <a href='SkImageInfo_Reference#kAlpha_8_SkColorType'>kAlpha_8_SkColorType</a>, <a href='SkImageInfo_Reference#kAlpha_8_SkColorType'>apply</a> <a href='undocumented#SkShader'>SkShader</a>.
-If <a href='#SkCanvas_drawImageRect_3_paint'>paint</a> <a href='#SkCanvas_drawImageRect_3_paint'>contains</a> <a href='undocumented#SkMaskFilter'>SkMaskFilter</a>, <a href='undocumented#SkMaskFilter'>generate</a> <a href='undocumented#SkMaskFilter'>mask</a> <a href='undocumented#SkMaskFilter'>from</a> <a href='#SkCanvas_drawImageRect_3_image'>image</a> <a href='#SkCanvas_drawImageRect_3_image'>bounds</a>.
+If <a href='SkPaint_Reference#SkPaint'>SkPaint</a> <a href='#SkCanvas_drawImageRect_3_paint'>paint</a> is supplied, apply <a href='undocumented#SkColorFilter'>SkColorFilter</a>, <a href='SkColor_Reference#Alpha'>alpha</a>, <a href='undocumented#SkImageFilter'>SkImageFilter</a>,
+<a href='SkBlendMode_Reference#SkBlendMode'>SkBlendMode</a>, and <a href='undocumented#SkDrawLooper'>SkDrawLooper</a>. If <a href='#SkCanvas_drawImageRect_3_image'>image</a> is <a href='SkImageInfo_Reference#kAlpha_8_SkColorType'>kAlpha_8_SkColorType</a>, apply <a href='undocumented#SkShader'>SkShader</a>.
+If <a href='#SkCanvas_drawImageRect_3_paint'>paint</a> contains <a href='undocumented#SkMaskFilter'>SkMaskFilter</a>, generate mask from <a href='#SkCanvas_drawImageRect_3_image'>image</a> bounds.
-If generated mask extends beyond <a href='#SkCanvas_drawImageRect_3_image'>image</a> <a href='#SkCanvas_drawImageRect_3_image'>bounds</a>, <a href='#SkCanvas_drawImageRect_3_image'>replicate</a> <a href='#SkCanvas_drawImageRect_3_image'>image</a> <a href='#SkCanvas_drawImageRect_3_image'>edge</a> <a href='#SkCanvas_drawImageRect_3_image'>colors</a>, <a href='#SkCanvas_drawImageRect_3_image'>just</a>
-as <a href='undocumented#SkShader'>SkShader</a> <a href='undocumented#SkShader'>made</a> <a href='undocumented#SkShader'>from</a> <a href='SkImage_Reference#SkImage'>SkImage</a>::<a href='#SkImage_makeShader'>makeShader</a> <a href='#SkImage_makeShader'>with</a> <a href='undocumented#SkShader'>SkShader</a>::<a href='#SkShader_kClamp_TileMode'>kClamp_TileMode</a> <a href='#SkShader_kClamp_TileMode'>set</a>
-replicates the <a href='#SkCanvas_drawImageRect_3_image'>image</a> <a href='#SkCanvas_drawImageRect_3_image'>edge</a> <a href='SkColor_Reference#Color'>color</a> <a href='SkColor_Reference#Color'>when</a> <a href='SkColor_Reference#Color'>it</a> <a href='SkColor_Reference#Color'>samples</a> <a href='SkColor_Reference#Color'>outside</a> <a href='SkColor_Reference#Color'>of</a> <a href='SkColor_Reference#Color'>its</a> <a href='SkColor_Reference#Color'>bounds</a>.
+If generated mask extends beyond <a href='#SkCanvas_drawImageRect_3_image'>image</a> bounds, replicate <a href='#SkCanvas_drawImageRect_3_image'>image</a> edge colors, just
+as <a href='undocumented#SkShader'>SkShader</a> made from <a href='SkImage_Reference#SkImage'>SkImage</a>::<a href='#SkImage_makeShader'>makeShader</a> with <a href='undocumented#SkShader'>SkShader</a>::<a href='#SkShader_kClamp_TileMode'>kClamp_TileMode</a> set
+replicates the <a href='#SkCanvas_drawImageRect_3_image'>image</a> edge <a href='SkColor_Reference#Color'>color</a> when it samples outside of its bounds.
### Parameters
<table> <tr> <td><a name='SkCanvas_drawImageRect_3_image'><code><strong>image</strong></code></a></td>
- <td><a href='SkImage_Reference#SkImage'>SkImage</a> <a href='SkImage_Reference#SkImage'>containing</a> <a href='SkImage_Reference#SkImage'>pixels</a>, <a href='SkImage_Reference#SkImage'>dimensions</a>, <a href='SkImage_Reference#SkImage'>and</a> <a href='SkImage_Reference#SkImage'>format</a></td>
+ <td><a href='SkImage_Reference#SkImage'>SkImage</a> containing pixels, dimensions, and format</td>
</tr>
<tr> <td><a name='SkCanvas_drawImageRect_3_dst'><code><strong>dst</strong></code></a></td>
- <td>destination <a href='SkRect_Reference#SkRect'>SkRect</a> <a href='SkRect_Reference#SkRect'>of</a> <a href='#SkCanvas_drawImageRect_3_image'>image</a> <a href='#SkCanvas_drawImageRect_3_image'>to</a> <a href='#SkCanvas_drawImageRect_3_image'>draw</a> <a href='#SkCanvas_drawImageRect_3_image'>to</a></td>
+ <td>destination <a href='SkRect_Reference#SkRect'>SkRect</a> of <a href='#SkCanvas_drawImageRect_3_image'>image</a> to draw to</td>
</tr>
<tr> <td><a name='SkCanvas_drawImageRect_3_paint'><code><strong>paint</strong></code></a></td>
- <td><a href='SkPaint_Reference#SkPaint'>SkPaint</a> <a href='SkPaint_Reference#SkPaint'>containing</a> <a href='SkBlendMode_Reference#SkBlendMode'>SkBlendMode</a>, <a href='undocumented#SkColorFilter'>SkColorFilter</a>, <a href='undocumented#SkImageFilter'>SkImageFilter</a>,</td>
+ <td><a href='SkPaint_Reference#SkPaint'>SkPaint</a> containing <a href='SkBlendMode_Reference#SkBlendMode'>SkBlendMode</a>, <a href='undocumented#SkColorFilter'>SkColorFilter</a>, <a href='undocumented#SkImageFilter'>SkImageFilter</a>,</td>
</tr>
</table>
@@ -4315,34 +4315,34 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-void <a href='#SkCanvas_drawImageRect'>drawImageRect</a>(<a href='#SkCanvas_drawImageRect'>const</a> <a href='undocumented#sk_sp'>sk_sp</a>&<a href='undocumented#sk_sp'>lt</a>;<a href='SkImage_Reference#SkImage'>SkImage</a>&<a href='SkImage_Reference#SkImage'>gt</a>;& <a href='SkImage_Reference#Image'>image</a>, <a href='SkImage_Reference#Image'>const</a> <a href='SkRect_Reference#SkRect'>SkRect</a>& <a href='SkRect_Reference#SkRect'>src</a>, <a href='SkRect_Reference#SkRect'>const</a> <a href='SkRect_Reference#SkRect'>SkRect</a>& <a href='SkRect_Reference#SkRect'>dst</a>,
- <a href='SkRect_Reference#SkRect'>const</a> <a href='SkPaint_Reference#SkPaint'>SkPaint</a>* <a href='SkPaint_Reference#Paint'>paint</a>, <a href='#SkCanvas_SrcRectConstraint'>SrcRectConstraint</a> <a href='#SkCanvas_SrcRectConstraint'>constraint</a> = <a href='#SkCanvas_kStrict_SrcRectConstraint'>kStrict_SrcRectConstraint</a>)
+void <a href='#SkCanvas_drawImageRect'>drawImageRect</a>(const <a href='undocumented#sk_sp'>sk_sp</a><<a href='SkImage_Reference#SkImage'>SkImage</a>>& <a href='SkImage_Reference#Image'>image</a>, const <a href='SkRect_Reference#SkRect'>SkRect</a>& src, const <a href='SkRect_Reference#SkRect'>SkRect</a>& dst,
+ const <a href='SkPaint_Reference#SkPaint'>SkPaint</a>* <a href='SkPaint_Reference#Paint'>paint</a>, <a href='#SkCanvas_SrcRectConstraint'>SrcRectConstraint</a> constraint = <a href='#SkCanvas_kStrict_SrcRectConstraint'>kStrict_SrcRectConstraint</a>)
</pre>
-Draws <a href='SkRect_Reference#SkRect'>SkRect</a> <a href='#SkCanvas_drawImageRect_4_src'>src</a> <a href='#SkCanvas_drawImageRect_4_src'>of</a> <a href='SkImage_Reference#SkImage'>SkImage</a> <a href='#SkCanvas_drawImageRect_4_image'>image</a>, <a href='#SkCanvas_drawImageRect_4_image'>scaled</a> <a href='#SkCanvas_drawImageRect_4_image'>and</a> <a href='#SkCanvas_drawImageRect_4_image'>translated</a> <a href='#SkCanvas_drawImageRect_4_image'>to</a> <a href='#SkCanvas_drawImageRect_4_image'>fill</a> <a href='SkRect_Reference#SkRect'>SkRect</a> <a href='#SkCanvas_drawImageRect_4_dst'>dst</a>.
-Additionally transform draw using clip, <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a>, <a href='SkMatrix_Reference#SkMatrix'>and</a> <a href='SkMatrix_Reference#SkMatrix'>optional</a> <a href='SkPaint_Reference#SkPaint'>SkPaint</a> <a href='#SkCanvas_drawImageRect_4_paint'>paint</a>.
+Draws <a href='SkRect_Reference#SkRect'>SkRect</a> <a href='#SkCanvas_drawImageRect_4_src'>src</a> of <a href='SkImage_Reference#SkImage'>SkImage</a> <a href='#SkCanvas_drawImageRect_4_image'>image</a>, scaled and translated to fill <a href='SkRect_Reference#SkRect'>SkRect</a> <a href='#SkCanvas_drawImageRect_4_dst'>dst</a>.
+Additionally transform draw using clip, <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a>, and optional <a href='SkPaint_Reference#SkPaint'>SkPaint</a> <a href='#SkCanvas_drawImageRect_4_paint'>paint</a>.
-If <a href='SkPaint_Reference#SkPaint'>SkPaint</a> <a href='#SkCanvas_drawImageRect_4_paint'>paint</a> <a href='#SkCanvas_drawImageRect_4_paint'>is</a> <a href='#SkCanvas_drawImageRect_4_paint'>supplied</a>, <a href='#SkCanvas_drawImageRect_4_paint'>apply</a> <a href='undocumented#SkColorFilter'>SkColorFilter</a>, <a href='SkColor_Reference#Alpha'>alpha</a>, <a href='undocumented#SkImageFilter'>SkImageFilter</a>,
-<a href='SkBlendMode_Reference#SkBlendMode'>SkBlendMode</a>, <a href='SkBlendMode_Reference#SkBlendMode'>and</a> <a href='undocumented#SkDrawLooper'>SkDrawLooper</a>. <a href='undocumented#SkDrawLooper'>If</a> <a href='#SkCanvas_drawImageRect_4_image'>image</a> <a href='#SkCanvas_drawImageRect_4_image'>is</a> <a href='SkImageInfo_Reference#kAlpha_8_SkColorType'>kAlpha_8_SkColorType</a>, <a href='SkImageInfo_Reference#kAlpha_8_SkColorType'>apply</a> <a href='undocumented#SkShader'>SkShader</a>.
-If <a href='#SkCanvas_drawImageRect_4_paint'>paint</a> <a href='#SkCanvas_drawImageRect_4_paint'>contains</a> <a href='undocumented#SkMaskFilter'>SkMaskFilter</a>, <a href='undocumented#SkMaskFilter'>generate</a> <a href='undocumented#SkMaskFilter'>mask</a> <a href='undocumented#SkMaskFilter'>from</a> <a href='#SkCanvas_drawImageRect_4_image'>image</a> <a href='#SkCanvas_drawImageRect_4_image'>bounds</a>.
+If <a href='SkPaint_Reference#SkPaint'>SkPaint</a> <a href='#SkCanvas_drawImageRect_4_paint'>paint</a> is supplied, apply <a href='undocumented#SkColorFilter'>SkColorFilter</a>, <a href='SkColor_Reference#Alpha'>alpha</a>, <a href='undocumented#SkImageFilter'>SkImageFilter</a>,
+<a href='SkBlendMode_Reference#SkBlendMode'>SkBlendMode</a>, and <a href='undocumented#SkDrawLooper'>SkDrawLooper</a>. If <a href='#SkCanvas_drawImageRect_4_image'>image</a> is <a href='SkImageInfo_Reference#kAlpha_8_SkColorType'>kAlpha_8_SkColorType</a>, apply <a href='undocumented#SkShader'>SkShader</a>.
+If <a href='#SkCanvas_drawImageRect_4_paint'>paint</a> contains <a href='undocumented#SkMaskFilter'>SkMaskFilter</a>, generate mask from <a href='#SkCanvas_drawImageRect_4_image'>image</a> bounds.
-If generated mask extends beyond <a href='#SkCanvas_drawImageRect_4_image'>image</a> <a href='#SkCanvas_drawImageRect_4_image'>bounds</a>, <a href='#SkCanvas_drawImageRect_4_image'>replicate</a> <a href='#SkCanvas_drawImageRect_4_image'>image</a> <a href='#SkCanvas_drawImageRect_4_image'>edge</a> <a href='#SkCanvas_drawImageRect_4_image'>colors</a>, <a href='#SkCanvas_drawImageRect_4_image'>just</a>
-as <a href='undocumented#SkShader'>SkShader</a> <a href='undocumented#SkShader'>made</a> <a href='undocumented#SkShader'>from</a> <a href='SkImage_Reference#SkImage'>SkImage</a>::<a href='#SkImage_makeShader'>makeShader</a> <a href='#SkImage_makeShader'>with</a> <a href='undocumented#SkShader'>SkShader</a>::<a href='#SkShader_kClamp_TileMode'>kClamp_TileMode</a> <a href='#SkShader_kClamp_TileMode'>set</a>
-replicates the <a href='#SkCanvas_drawImageRect_4_image'>image</a> <a href='#SkCanvas_drawImageRect_4_image'>edge</a> <a href='SkColor_Reference#Color'>color</a> <a href='SkColor_Reference#Color'>when</a> <a href='SkColor_Reference#Color'>it</a> <a href='SkColor_Reference#Color'>samples</a> <a href='SkColor_Reference#Color'>outside</a> <a href='SkColor_Reference#Color'>of</a> <a href='SkColor_Reference#Color'>its</a> <a href='SkColor_Reference#Color'>bounds</a>.
+If generated mask extends beyond <a href='#SkCanvas_drawImageRect_4_image'>image</a> bounds, replicate <a href='#SkCanvas_drawImageRect_4_image'>image</a> edge colors, just
+as <a href='undocumented#SkShader'>SkShader</a> made from <a href='SkImage_Reference#SkImage'>SkImage</a>::<a href='#SkImage_makeShader'>makeShader</a> with <a href='undocumented#SkShader'>SkShader</a>::<a href='#SkShader_kClamp_TileMode'>kClamp_TileMode</a> set
+replicates the <a href='#SkCanvas_drawImageRect_4_image'>image</a> edge <a href='SkColor_Reference#Color'>color</a> when it samples outside of its bounds.
### Parameters
<table> <tr> <td><a name='SkCanvas_drawImageRect_4_image'><code><strong>image</strong></code></a></td>
- <td><a href='SkImage_Reference#SkImage'>SkImage</a> <a href='SkImage_Reference#SkImage'>containing</a> <a href='SkImage_Reference#SkImage'>pixels</a>, <a href='SkImage_Reference#SkImage'>dimensions</a>, <a href='SkImage_Reference#SkImage'>and</a> <a href='SkImage_Reference#SkImage'>format</a></td>
+ <td><a href='SkImage_Reference#SkImage'>SkImage</a> containing pixels, dimensions, and format</td>
</tr>
<tr> <td><a name='SkCanvas_drawImageRect_4_src'><code><strong>src</strong></code></a></td>
- <td>source <a href='SkRect_Reference#SkRect'>SkRect</a> <a href='SkRect_Reference#SkRect'>of</a> <a href='#SkCanvas_drawImageRect_4_image'>image</a> <a href='#SkCanvas_drawImageRect_4_image'>to</a> <a href='#SkCanvas_drawImageRect_4_image'>draw</a> <a href='#SkCanvas_drawImageRect_4_image'>from</a></td>
+ <td>source <a href='SkRect_Reference#SkRect'>SkRect</a> of <a href='#SkCanvas_drawImageRect_4_image'>image</a> to draw from</td>
</tr>
<tr> <td><a name='SkCanvas_drawImageRect_4_dst'><code><strong>dst</strong></code></a></td>
- <td>destination <a href='SkRect_Reference#SkRect'>SkRect</a> <a href='SkRect_Reference#SkRect'>of</a> <a href='#SkCanvas_drawImageRect_4_image'>image</a> <a href='#SkCanvas_drawImageRect_4_image'>to</a> <a href='#SkCanvas_drawImageRect_4_image'>draw</a> <a href='#SkCanvas_drawImageRect_4_image'>to</a></td>
+ <td>destination <a href='SkRect_Reference#SkRect'>SkRect</a> of <a href='#SkCanvas_drawImageRect_4_image'>image</a> to draw to</td>
</tr>
<tr> <td><a name='SkCanvas_drawImageRect_4_paint'><code><strong>paint</strong></code></a></td>
- <td><a href='SkPaint_Reference#SkPaint'>SkPaint</a> <a href='SkPaint_Reference#SkPaint'>containing</a> <a href='SkBlendMode_Reference#SkBlendMode'>SkBlendMode</a>, <a href='undocumented#SkColorFilter'>SkColorFilter</a>, <a href='undocumented#SkImageFilter'>SkImageFilter</a>,</td>
+ <td><a href='SkPaint_Reference#SkPaint'>SkPaint</a> containing <a href='SkBlendMode_Reference#SkBlendMode'>SkBlendMode</a>, <a href='undocumented#SkColorFilter'>SkColorFilter</a>, <a href='undocumented#SkImageFilter'>SkImageFilter</a>,</td>
</tr>
</table>
@@ -4351,14 +4351,14 @@
### Parameters
<table> <tr> <td><a name='SkCanvas_drawImageRect_4_constraint'><code><strong>constraint</strong></code></a></td>
- <td>filter strictly within <a href='#SkCanvas_drawImageRect_4_src'>src</a> <a href='#SkCanvas_drawImageRect_4_src'>or</a> <a href='#SkCanvas_drawImageRect_4_src'>draw</a> <a href='#SkCanvas_drawImageRect_4_src'>faster</a></td>
+ <td>filter strictly within <a href='#SkCanvas_drawImageRect_4_src'>src</a> or draw faster</td>
</tr>
</table>
### Example
-<div><fiddle-embed name="d4b35a9d24c32c042bd1f529b8de3c0d"><div><a href='SkCanvas_Reference#Canvas'>Canvas</a> <a href='SkCanvas_Reference#Canvas'>scales</a> <a href='SkCanvas_Reference#Canvas'>and</a> <a href='SkCanvas_Reference#Canvas'>translates</a>; <a href='SkCanvas_Reference#Canvas'>transformation</a> <a href='SkCanvas_Reference#Canvas'>from</a> <a href='#SkCanvas_drawImageRect_4_src'>src</a> <a href='#SkCanvas_drawImageRect_4_src'>to</a> <a href='#SkCanvas_drawImageRect_4_dst'>dst</a> <a href='#SkCanvas_drawImageRect_4_dst'>also</a> <a href='#SkCanvas_drawImageRect_4_dst'>scales</a>.
-<a href='#SkCanvas_drawImageRect_4_dst'>The</a> <a href='#SkCanvas_drawImageRect_4_dst'>two</a> <a href='SkMatrix_Reference#Matrix'>matrices</a> <a href='SkMatrix_Reference#Matrix'>are</a> <a href='SkMatrix_Reference#Matrix'>concatenated</a> <a href='SkMatrix_Reference#Matrix'>to</a> <a href='SkMatrix_Reference#Matrix'>create</a> <a href='SkMatrix_Reference#Matrix'>the</a> <a href='SkMatrix_Reference#Matrix'>final</a> <a href='SkMatrix_Reference#Matrix'>transformation</a>.
+<div><fiddle-embed name="d4b35a9d24c32c042bd1f529b8de3c0d"><div><a href='SkCanvas_Reference#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 <a href='SkMatrix_Reference#Matrix'>matrices</a> are concatenated to create the final transformation.
</div></fiddle-embed></div>
### See Also
@@ -4370,39 +4370,39 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-void <a href='#SkCanvas_drawImageRect'>drawImageRect</a>(<a href='#SkCanvas_drawImageRect'>const</a> <a href='undocumented#sk_sp'>sk_sp</a>&<a href='undocumented#sk_sp'>lt</a>;<a href='SkImage_Reference#SkImage'>SkImage</a>&<a href='SkImage_Reference#SkImage'>gt</a>;& <a href='SkImage_Reference#Image'>image</a>, <a href='SkImage_Reference#Image'>const</a> <a href='SkIRect_Reference#SkIRect'>SkIRect</a>& <a href='SkIRect_Reference#SkIRect'>isrc</a>, <a href='SkIRect_Reference#SkIRect'>const</a> <a href='SkRect_Reference#SkRect'>SkRect</a>& <a href='SkRect_Reference#SkRect'>dst</a>,
- <a href='SkRect_Reference#SkRect'>const</a> <a href='SkPaint_Reference#SkPaint'>SkPaint</a>* <a href='SkPaint_Reference#Paint'>paint</a>, <a href='#SkCanvas_SrcRectConstraint'>SrcRectConstraint</a> <a href='#SkCanvas_SrcRectConstraint'>constraint</a> = <a href='#SkCanvas_kStrict_SrcRectConstraint'>kStrict_SrcRectConstraint</a>)
+void <a href='#SkCanvas_drawImageRect'>drawImageRect</a>(const <a href='undocumented#sk_sp'>sk_sp</a><<a href='SkImage_Reference#SkImage'>SkImage</a>>& <a href='SkImage_Reference#Image'>image</a>, const <a href='SkIRect_Reference#SkIRect'>SkIRect</a>& isrc, const <a href='SkRect_Reference#SkRect'>SkRect</a>& dst,
+ const <a href='SkPaint_Reference#SkPaint'>SkPaint</a>* <a href='SkPaint_Reference#Paint'>paint</a>, <a href='#SkCanvas_SrcRectConstraint'>SrcRectConstraint</a> constraint = <a href='#SkCanvas_kStrict_SrcRectConstraint'>kStrict_SrcRectConstraint</a>)
</pre>
-Draws <a href='SkIRect_Reference#SkIRect'>SkIRect</a> <a href='#SkCanvas_drawImageRect_5_isrc'>isrc</a> <a href='#SkCanvas_drawImageRect_5_isrc'>of</a> <a href='SkImage_Reference#SkImage'>SkImage</a> <a href='#SkCanvas_drawImageRect_5_image'>image</a>, <a href='#SkCanvas_drawImageRect_5_image'>scaled</a> <a href='#SkCanvas_drawImageRect_5_image'>and</a> <a href='#SkCanvas_drawImageRect_5_image'>translated</a> <a href='#SkCanvas_drawImageRect_5_image'>to</a> <a href='#SkCanvas_drawImageRect_5_image'>fill</a> <a href='SkRect_Reference#SkRect'>SkRect</a> <a href='#SkCanvas_drawImageRect_5_dst'>dst</a>.
-<a href='#SkCanvas_drawImageRect_5_isrc'>isrc</a> <a href='#SkCanvas_drawImageRect_5_isrc'>is</a> <a href='#SkCanvas_drawImageRect_5_isrc'>on</a> <a href='#SkCanvas_drawImageRect_5_isrc'>integer</a> <a href='undocumented#Pixel'>pixel</a> <a href='undocumented#Pixel'>boundaries</a>; <a href='#SkCanvas_drawImageRect_5_dst'>dst</a> <a href='#SkCanvas_drawImageRect_5_dst'>may</a> <a href='#SkCanvas_drawImageRect_5_dst'>include</a> <a href='#SkCanvas_drawImageRect_5_dst'>fractional</a> <a href='#SkCanvas_drawImageRect_5_dst'>boundaries</a>.
-Additionally transform draw using clip, <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a>, <a href='SkMatrix_Reference#SkMatrix'>and</a> <a href='SkMatrix_Reference#SkMatrix'>optional</a> <a href='SkPaint_Reference#SkPaint'>SkPaint</a> <a href='#SkCanvas_drawImageRect_5_paint'>paint</a>.
+Draws <a href='SkIRect_Reference#SkIRect'>SkIRect</a> <a href='#SkCanvas_drawImageRect_5_isrc'>isrc</a> of <a href='SkImage_Reference#SkImage'>SkImage</a> <a href='#SkCanvas_drawImageRect_5_image'>image</a>, scaled and translated to fill <a href='SkRect_Reference#SkRect'>SkRect</a> <a href='#SkCanvas_drawImageRect_5_dst'>dst</a>.
+<a href='#SkCanvas_drawImageRect_5_isrc'>isrc</a> is on integer <a href='undocumented#Pixel'>pixel</a> boundaries; <a href='#SkCanvas_drawImageRect_5_dst'>dst</a> may include fractional boundaries.
+Additionally transform draw using clip, <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a>, and optional <a href='SkPaint_Reference#SkPaint'>SkPaint</a> <a href='#SkCanvas_drawImageRect_5_paint'>paint</a>.
-If <a href='SkPaint_Reference#SkPaint'>SkPaint</a> <a href='#SkCanvas_drawImageRect_5_paint'>paint</a> <a href='#SkCanvas_drawImageRect_5_paint'>is</a> <a href='#SkCanvas_drawImageRect_5_paint'>supplied</a>, <a href='#SkCanvas_drawImageRect_5_paint'>apply</a> <a href='undocumented#SkColorFilter'>SkColorFilter</a>, <a href='SkColor_Reference#Alpha'>alpha</a>, <a href='undocumented#SkImageFilter'>SkImageFilter</a>,
-<a href='SkBlendMode_Reference#SkBlendMode'>SkBlendMode</a>, <a href='SkBlendMode_Reference#SkBlendMode'>and</a> <a href='undocumented#SkDrawLooper'>SkDrawLooper</a>. <a href='undocumented#SkDrawLooper'>If</a> <a href='#SkCanvas_drawImageRect_5_image'>image</a> <a href='#SkCanvas_drawImageRect_5_image'>is</a> <a href='SkImageInfo_Reference#kAlpha_8_SkColorType'>kAlpha_8_SkColorType</a>, <a href='SkImageInfo_Reference#kAlpha_8_SkColorType'>apply</a> <a href='undocumented#SkShader'>SkShader</a>.
-If <a href='#SkCanvas_drawImageRect_5_paint'>paint</a> <a href='#SkCanvas_drawImageRect_5_paint'>contains</a> <a href='undocumented#SkMaskFilter'>SkMaskFilter</a>, <a href='undocumented#SkMaskFilter'>generate</a> <a href='undocumented#SkMaskFilter'>mask</a> <a href='undocumented#SkMaskFilter'>from</a> <a href='#SkCanvas_drawImageRect_5_image'>image</a> <a href='#SkCanvas_drawImageRect_5_image'>bounds</a>.
+If <a href='SkPaint_Reference#SkPaint'>SkPaint</a> <a href='#SkCanvas_drawImageRect_5_paint'>paint</a> is supplied, apply <a href='undocumented#SkColorFilter'>SkColorFilter</a>, <a href='SkColor_Reference#Alpha'>alpha</a>, <a href='undocumented#SkImageFilter'>SkImageFilter</a>,
+<a href='SkBlendMode_Reference#SkBlendMode'>SkBlendMode</a>, and <a href='undocumented#SkDrawLooper'>SkDrawLooper</a>. If <a href='#SkCanvas_drawImageRect_5_image'>image</a> is <a href='SkImageInfo_Reference#kAlpha_8_SkColorType'>kAlpha_8_SkColorType</a>, apply <a href='undocumented#SkShader'>SkShader</a>.
+If <a href='#SkCanvas_drawImageRect_5_paint'>paint</a> contains <a href='undocumented#SkMaskFilter'>SkMaskFilter</a>, generate mask from <a href='#SkCanvas_drawImageRect_5_image'>image</a> bounds.
-If generated mask extends beyond <a href='#SkCanvas_drawImageRect_5_image'>image</a> <a href='#SkCanvas_drawImageRect_5_image'>bounds</a>, <a href='#SkCanvas_drawImageRect_5_image'>replicate</a> <a href='#SkCanvas_drawImageRect_5_image'>image</a> <a href='#SkCanvas_drawImageRect_5_image'>edge</a> <a href='#SkCanvas_drawImageRect_5_image'>colors</a>, <a href='#SkCanvas_drawImageRect_5_image'>just</a>
-as <a href='undocumented#SkShader'>SkShader</a> <a href='undocumented#SkShader'>made</a> <a href='undocumented#SkShader'>from</a> <a href='SkImage_Reference#SkImage'>SkImage</a>::<a href='#SkImage_makeShader'>makeShader</a> <a href='#SkImage_makeShader'>with</a> <a href='undocumented#SkShader'>SkShader</a>::<a href='#SkShader_kClamp_TileMode'>kClamp_TileMode</a> <a href='#SkShader_kClamp_TileMode'>set</a>
-replicates the <a href='#SkCanvas_drawImageRect_5_image'>image</a> <a href='#SkCanvas_drawImageRect_5_image'>edge</a> <a href='SkColor_Reference#Color'>color</a> <a href='SkColor_Reference#Color'>when</a> <a href='SkColor_Reference#Color'>it</a> <a href='SkColor_Reference#Color'>samples</a> <a href='SkColor_Reference#Color'>outside</a> <a href='SkColor_Reference#Color'>of</a> <a href='SkColor_Reference#Color'>its</a> <a href='SkColor_Reference#Color'>bounds</a>.
+If generated mask extends beyond <a href='#SkCanvas_drawImageRect_5_image'>image</a> bounds, replicate <a href='#SkCanvas_drawImageRect_5_image'>image</a> edge colors, just
+as <a href='undocumented#SkShader'>SkShader</a> made from <a href='SkImage_Reference#SkImage'>SkImage</a>::<a href='#SkImage_makeShader'>makeShader</a> with <a href='undocumented#SkShader'>SkShader</a>::<a href='#SkShader_kClamp_TileMode'>kClamp_TileMode</a> set
+replicates the <a href='#SkCanvas_drawImageRect_5_image'>image</a> edge <a href='SkColor_Reference#Color'>color</a> when it samples outside of its bounds.
-<a href='#SkCanvas_drawImageRect_5_constraint'>constraint</a> <a href='#SkCanvas_drawImageRect_5_constraint'>set</a> <a href='#SkCanvas_drawImageRect_5_constraint'>to</a> <a href='#SkCanvas_kStrict_SrcRectConstraint'>kStrict_SrcRectConstraint</a> <a href='#SkCanvas_kStrict_SrcRectConstraint'>limits</a> <a href='SkPaint_Reference#SkPaint'>SkPaint</a> <a href='undocumented#SkFilterQuality'>SkFilterQuality</a> <a href='undocumented#SkFilterQuality'>to</a>
-sample within <a href='#SkCanvas_drawImageRect_5_image'>image</a>; <a href='#SkCanvas_drawImageRect_5_image'>set</a> <a href='#SkCanvas_drawImageRect_5_image'>to</a> <a href='#SkCanvas_kFast_SrcRectConstraint'>kFast_SrcRectConstraint</a> <a href='#SkCanvas_kFast_SrcRectConstraint'>allows</a> <a href='#SkCanvas_kFast_SrcRectConstraint'>sampling</a> <a href='#SkCanvas_kFast_SrcRectConstraint'>outside</a> <a href='#SkCanvas_kFast_SrcRectConstraint'>to</a>
+<a href='#SkCanvas_drawImageRect_5_constraint'>constraint</a> set to <a href='#SkCanvas_kStrict_SrcRectConstraint'>kStrict_SrcRectConstraint</a> limits <a href='SkPaint_Reference#SkPaint'>SkPaint</a> <a href='undocumented#SkFilterQuality'>SkFilterQuality</a> to
+sample within <a href='#SkCanvas_drawImageRect_5_image'>image</a>; set to <a href='#SkCanvas_kFast_SrcRectConstraint'>kFast_SrcRectConstraint</a> allows sampling outside to
improve performance.
### Parameters
<table> <tr> <td><a name='SkCanvas_drawImageRect_5_image'><code><strong>image</strong></code></a></td>
- <td><a href='SkImage_Reference#SkImage'>SkImage</a> <a href='SkImage_Reference#SkImage'>containing</a> <a href='SkImage_Reference#SkImage'>pixels</a>, <a href='SkImage_Reference#SkImage'>dimensions</a>, <a href='SkImage_Reference#SkImage'>and</a> <a href='SkImage_Reference#SkImage'>format</a></td>
+ <td><a href='SkImage_Reference#SkImage'>SkImage</a> containing pixels, dimensions, and format</td>
</tr>
<tr> <td><a name='SkCanvas_drawImageRect_5_isrc'><code><strong>isrc</strong></code></a></td>
- <td>source <a href='SkIRect_Reference#SkIRect'>SkIRect</a> <a href='SkIRect_Reference#SkIRect'>of</a> <a href='#SkCanvas_drawImageRect_5_image'>image</a> <a href='#SkCanvas_drawImageRect_5_image'>to</a> <a href='#SkCanvas_drawImageRect_5_image'>draw</a> <a href='#SkCanvas_drawImageRect_5_image'>from</a></td>
+ <td>source <a href='SkIRect_Reference#SkIRect'>SkIRect</a> of <a href='#SkCanvas_drawImageRect_5_image'>image</a> to draw from</td>
</tr>
<tr> <td><a name='SkCanvas_drawImageRect_5_dst'><code><strong>dst</strong></code></a></td>
- <td>destination <a href='SkRect_Reference#SkRect'>SkRect</a> <a href='SkRect_Reference#SkRect'>of</a> <a href='#SkCanvas_drawImageRect_5_image'>image</a> <a href='#SkCanvas_drawImageRect_5_image'>to</a> <a href='#SkCanvas_drawImageRect_5_image'>draw</a> <a href='#SkCanvas_drawImageRect_5_image'>to</a></td>
+ <td>destination <a href='SkRect_Reference#SkRect'>SkRect</a> of <a href='#SkCanvas_drawImageRect_5_image'>image</a> to draw to</td>
</tr>
<tr> <td><a name='SkCanvas_drawImageRect_5_paint'><code><strong>paint</strong></code></a></td>
- <td><a href='SkPaint_Reference#SkPaint'>SkPaint</a> <a href='SkPaint_Reference#SkPaint'>containing</a> <a href='SkBlendMode_Reference#SkBlendMode'>SkBlendMode</a>, <a href='undocumented#SkColorFilter'>SkColorFilter</a>, <a href='undocumented#SkImageFilter'>SkImageFilter</a>,</td>
+ <td><a href='SkPaint_Reference#SkPaint'>SkPaint</a> containing <a href='SkBlendMode_Reference#SkBlendMode'>SkBlendMode</a>, <a href='undocumented#SkColorFilter'>SkColorFilter</a>, <a href='undocumented#SkImageFilter'>SkImageFilter</a>,</td>
</tr>
</table>
@@ -4411,7 +4411,7 @@
### Parameters
<table> <tr> <td><a name='SkCanvas_drawImageRect_5_constraint'><code><strong>constraint</strong></code></a></td>
- <td>filter strictly within <a href='#SkCanvas_drawImageRect_5_image'>image</a> <a href='#SkCanvas_drawImageRect_5_image'>or</a> <a href='#SkCanvas_drawImageRect_5_image'>draw</a> <a href='#SkCanvas_drawImageRect_5_image'>faster</a></td>
+ <td>filter strictly within <a href='#SkCanvas_drawImageRect_5_image'>image</a> or draw faster</td>
</tr>
</table>
@@ -4428,34 +4428,34 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-void <a href='#SkCanvas_drawImageRect'>drawImageRect</a>(<a href='#SkCanvas_drawImageRect'>const</a> <a href='undocumented#sk_sp'>sk_sp</a>&<a href='undocumented#sk_sp'>lt</a>;<a href='SkImage_Reference#SkImage'>SkImage</a>&<a href='SkImage_Reference#SkImage'>gt</a>;& <a href='SkImage_Reference#Image'>image</a>, <a href='SkImage_Reference#Image'>const</a> <a href='SkRect_Reference#SkRect'>SkRect</a>& <a href='SkRect_Reference#SkRect'>dst</a>, <a href='SkRect_Reference#SkRect'>const</a> <a href='SkPaint_Reference#SkPaint'>SkPaint</a>* <a href='SkPaint_Reference#Paint'>paint</a>)
+void <a href='#SkCanvas_drawImageRect'>drawImageRect</a>(const <a href='undocumented#sk_sp'>sk_sp</a><<a href='SkImage_Reference#SkImage'>SkImage</a>>& <a href='SkImage_Reference#Image'>image</a>, const <a href='SkRect_Reference#SkRect'>SkRect</a>& dst, const <a href='SkPaint_Reference#SkPaint'>SkPaint</a>* <a href='SkPaint_Reference#Paint'>paint</a>)
</pre>
-Draws <a href='SkImage_Reference#SkImage'>SkImage</a> <a href='#SkCanvas_drawImageRect_6_image'>image</a>, <a href='#SkCanvas_drawImageRect_6_image'>scaled</a> <a href='#SkCanvas_drawImageRect_6_image'>and</a> <a href='#SkCanvas_drawImageRect_6_image'>translated</a> <a href='#SkCanvas_drawImageRect_6_image'>to</a> <a href='#SkCanvas_drawImageRect_6_image'>fill</a> <a href='SkRect_Reference#SkRect'>SkRect</a> <a href='#SkCanvas_drawImageRect_6_dst'>dst</a>,
-using clip, <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a>, <a href='SkMatrix_Reference#SkMatrix'>and</a> <a href='SkMatrix_Reference#SkMatrix'>optional</a> <a href='SkPaint_Reference#SkPaint'>SkPaint</a> <a href='#SkCanvas_drawImageRect_6_paint'>paint</a>.
+Draws <a href='SkImage_Reference#SkImage'>SkImage</a> <a href='#SkCanvas_drawImageRect_6_image'>image</a>, scaled and translated to fill <a href='SkRect_Reference#SkRect'>SkRect</a> <a href='#SkCanvas_drawImageRect_6_dst'>dst</a>,
+using clip, <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a>, and optional <a href='SkPaint_Reference#SkPaint'>SkPaint</a> <a href='#SkCanvas_drawImageRect_6_paint'>paint</a>.
-If <a href='SkPaint_Reference#SkPaint'>SkPaint</a> <a href='#SkCanvas_drawImageRect_6_paint'>paint</a> <a href='#SkCanvas_drawImageRect_6_paint'>is</a> <a href='#SkCanvas_drawImageRect_6_paint'>supplied</a>, <a href='#SkCanvas_drawImageRect_6_paint'>apply</a> <a href='undocumented#SkColorFilter'>SkColorFilter</a>, <a href='SkColor_Reference#Alpha'>alpha</a>, <a href='undocumented#SkImageFilter'>SkImageFilter</a>,
-<a href='SkBlendMode_Reference#SkBlendMode'>SkBlendMode</a>, <a href='SkBlendMode_Reference#SkBlendMode'>and</a> <a href='undocumented#SkDrawLooper'>SkDrawLooper</a>. <a href='undocumented#SkDrawLooper'>If</a> <a href='#SkCanvas_drawImageRect_6_image'>image</a> <a href='#SkCanvas_drawImageRect_6_image'>is</a> <a href='SkImageInfo_Reference#kAlpha_8_SkColorType'>kAlpha_8_SkColorType</a>, <a href='SkImageInfo_Reference#kAlpha_8_SkColorType'>apply</a> <a href='undocumented#SkShader'>SkShader</a>.
-If <a href='#SkCanvas_drawImageRect_6_paint'>paint</a> <a href='#SkCanvas_drawImageRect_6_paint'>contains</a> <a href='undocumented#SkMaskFilter'>SkMaskFilter</a>, <a href='undocumented#SkMaskFilter'>generate</a> <a href='undocumented#SkMaskFilter'>mask</a> <a href='undocumented#SkMaskFilter'>from</a> <a href='#SkCanvas_drawImageRect_6_image'>image</a> <a href='#SkCanvas_drawImageRect_6_image'>bounds</a>.
+If <a href='SkPaint_Reference#SkPaint'>SkPaint</a> <a href='#SkCanvas_drawImageRect_6_paint'>paint</a> is supplied, apply <a href='undocumented#SkColorFilter'>SkColorFilter</a>, <a href='SkColor_Reference#Alpha'>alpha</a>, <a href='undocumented#SkImageFilter'>SkImageFilter</a>,
+<a href='SkBlendMode_Reference#SkBlendMode'>SkBlendMode</a>, and <a href='undocumented#SkDrawLooper'>SkDrawLooper</a>. If <a href='#SkCanvas_drawImageRect_6_image'>image</a> is <a href='SkImageInfo_Reference#kAlpha_8_SkColorType'>kAlpha_8_SkColorType</a>, apply <a href='undocumented#SkShader'>SkShader</a>.
+If <a href='#SkCanvas_drawImageRect_6_paint'>paint</a> contains <a href='undocumented#SkMaskFilter'>SkMaskFilter</a>, generate mask from <a href='#SkCanvas_drawImageRect_6_image'>image</a> bounds.
-If generated mask extends beyond <a href='#SkCanvas_drawImageRect_6_image'>image</a> <a href='#SkCanvas_drawImageRect_6_image'>bounds</a>, <a href='#SkCanvas_drawImageRect_6_image'>replicate</a> <a href='#SkCanvas_drawImageRect_6_image'>image</a> <a href='#SkCanvas_drawImageRect_6_image'>edge</a> <a href='#SkCanvas_drawImageRect_6_image'>colors</a>, <a href='#SkCanvas_drawImageRect_6_image'>just</a>
-as <a href='undocumented#SkShader'>SkShader</a> <a href='undocumented#SkShader'>made</a> <a href='undocumented#SkShader'>from</a> <a href='SkImage_Reference#SkImage'>SkImage</a>::<a href='#SkImage_makeShader'>makeShader</a> <a href='#SkImage_makeShader'>with</a> <a href='undocumented#SkShader'>SkShader</a>::<a href='#SkShader_kClamp_TileMode'>kClamp_TileMode</a> <a href='#SkShader_kClamp_TileMode'>set</a>
-replicates the <a href='#SkCanvas_drawImageRect_6_image'>image</a> <a href='#SkCanvas_drawImageRect_6_image'>edge</a> <a href='SkColor_Reference#Color'>color</a> <a href='SkColor_Reference#Color'>when</a> <a href='SkColor_Reference#Color'>it</a> <a href='SkColor_Reference#Color'>samples</a> <a href='SkColor_Reference#Color'>outside</a> <a href='SkColor_Reference#Color'>of</a> <a href='SkColor_Reference#Color'>its</a> <a href='SkColor_Reference#Color'>bounds</a>.
+If generated mask extends beyond <a href='#SkCanvas_drawImageRect_6_image'>image</a> bounds, replicate <a href='#SkCanvas_drawImageRect_6_image'>image</a> edge colors, just
+as <a href='undocumented#SkShader'>SkShader</a> made from <a href='SkImage_Reference#SkImage'>SkImage</a>::<a href='#SkImage_makeShader'>makeShader</a> with <a href='undocumented#SkShader'>SkShader</a>::<a href='#SkShader_kClamp_TileMode'>kClamp_TileMode</a> set
+replicates the <a href='#SkCanvas_drawImageRect_6_image'>image</a> edge <a href='SkColor_Reference#Color'>color</a> when it samples outside of its bounds.
-constraint set to <a href='#SkCanvas_kStrict_SrcRectConstraint'>kStrict_SrcRectConstraint</a> <a href='#SkCanvas_kStrict_SrcRectConstraint'>limits</a> <a href='SkPaint_Reference#SkPaint'>SkPaint</a> <a href='undocumented#SkFilterQuality'>SkFilterQuality</a> <a href='undocumented#SkFilterQuality'>to</a>
-sample within <a href='#SkCanvas_drawImageRect_6_image'>image</a>; <a href='#SkCanvas_drawImageRect_6_image'>set</a> <a href='#SkCanvas_drawImageRect_6_image'>to</a> <a href='#SkCanvas_kFast_SrcRectConstraint'>kFast_SrcRectConstraint</a> <a href='#SkCanvas_kFast_SrcRectConstraint'>allows</a> <a href='#SkCanvas_kFast_SrcRectConstraint'>sampling</a> <a href='#SkCanvas_kFast_SrcRectConstraint'>outside</a> <a href='#SkCanvas_kFast_SrcRectConstraint'>to</a>
+constraint set to <a href='#SkCanvas_kStrict_SrcRectConstraint'>kStrict_SrcRectConstraint</a> limits <a href='SkPaint_Reference#SkPaint'>SkPaint</a> <a href='undocumented#SkFilterQuality'>SkFilterQuality</a> to
+sample within <a href='#SkCanvas_drawImageRect_6_image'>image</a>; set to <a href='#SkCanvas_kFast_SrcRectConstraint'>kFast_SrcRectConstraint</a> allows sampling outside to
improve performance.
### Parameters
<table> <tr> <td><a name='SkCanvas_drawImageRect_6_image'><code><strong>image</strong></code></a></td>
- <td><a href='SkImage_Reference#SkImage'>SkImage</a> <a href='SkImage_Reference#SkImage'>containing</a> <a href='SkImage_Reference#SkImage'>pixels</a>, <a href='SkImage_Reference#SkImage'>dimensions</a>, <a href='SkImage_Reference#SkImage'>and</a> <a href='SkImage_Reference#SkImage'>format</a></td>
+ <td><a href='SkImage_Reference#SkImage'>SkImage</a> containing pixels, dimensions, and format</td>
</tr>
<tr> <td><a name='SkCanvas_drawImageRect_6_dst'><code><strong>dst</strong></code></a></td>
- <td>destination <a href='SkRect_Reference#SkRect'>SkRect</a> <a href='SkRect_Reference#SkRect'>of</a> <a href='#SkCanvas_drawImageRect_6_image'>image</a> <a href='#SkCanvas_drawImageRect_6_image'>to</a> <a href='#SkCanvas_drawImageRect_6_image'>draw</a> <a href='#SkCanvas_drawImageRect_6_image'>to</a></td>
+ <td>destination <a href='SkRect_Reference#SkRect'>SkRect</a> of <a href='#SkCanvas_drawImageRect_6_image'>image</a> to draw to</td>
</tr>
<tr> <td><a name='SkCanvas_drawImageRect_6_paint'><code><strong>paint</strong></code></a></td>
- <td><a href='SkPaint_Reference#SkPaint'>SkPaint</a> <a href='SkPaint_Reference#SkPaint'>containing</a> <a href='SkBlendMode_Reference#SkBlendMode'>SkBlendMode</a>, <a href='undocumented#SkColorFilter'>SkColorFilter</a>, <a href='undocumented#SkImageFilter'>SkImageFilter</a>,</td>
+ <td><a href='SkPaint_Reference#SkPaint'>SkPaint</a> containing <a href='SkBlendMode_Reference#SkBlendMode'>SkBlendMode</a>, <a href='undocumented#SkColorFilter'>SkColorFilter</a>, <a href='undocumented#SkImageFilter'>SkImageFilter</a>,</td>
</tr>
</table>
@@ -4474,50 +4474,50 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-void <a href='#SkCanvas_drawImageNine'>drawImageNine</a>(<a href='#SkCanvas_drawImageNine'>const</a> <a href='SkImage_Reference#SkImage'>SkImage</a>* <a href='SkImage_Reference#Image'>image</a>, <a href='SkImage_Reference#Image'>const</a> <a href='SkIRect_Reference#SkIRect'>SkIRect</a>& <a href='SkIRect_Reference#SkIRect'>center</a>, <a href='SkIRect_Reference#SkIRect'>const</a> <a href='SkRect_Reference#SkRect'>SkRect</a>& <a href='SkRect_Reference#SkRect'>dst</a>,
- <a href='SkRect_Reference#SkRect'>const</a> <a href='SkPaint_Reference#SkPaint'>SkPaint</a>* <a href='SkPaint_Reference#Paint'>paint</a> = <a href='SkPaint_Reference#Paint'>nullptr</a>)
+void <a href='#SkCanvas_drawImageNine'>drawImageNine</a>(const <a href='SkImage_Reference#SkImage'>SkImage</a>* <a href='SkImage_Reference#Image'>image</a>, const <a href='SkIRect_Reference#SkIRect'>SkIRect</a>& center, const <a href='SkRect_Reference#SkRect'>SkRect</a>& dst,
+ const <a href='SkPaint_Reference#SkPaint'>SkPaint</a>* <a href='SkPaint_Reference#Paint'>paint</a> = nullptr)
</pre>
-Draws <a href='SkImage_Reference#Image'>Image</a> <a href='#SkCanvas_drawImageNine_image'>image</a> <a href='#SkCanvas_drawImageNine_image'>stretched</a> <a href='#SkCanvas_drawImageNine_image'>proportionally</a> <a href='#SkCanvas_drawImageNine_image'>to</a> <a href='#SkCanvas_drawImageNine_image'>fit</a> <a href='#SkCanvas_drawImageNine_image'>into</a> <a href='SkRect_Reference#Rect'>Rect</a> <a href='#SkCanvas_drawImageNine_dst'>dst</a>.
-<a href='SkIRect_Reference#IRect'>IRect</a> <a href='#SkCanvas_drawImageNine_center'>center</a> <a href='#SkCanvas_drawImageNine_center'>divides</a> <a href='#SkCanvas_drawImageNine_center'>the</a> <a href='#SkCanvas_drawImageNine_image'>image</a> <a href='#SkCanvas_drawImageNine_image'>into</a> <a href='#SkCanvas_drawImageNine_image'>nine</a> <a href='#SkCanvas_drawImageNine_image'>sections</a>: <a href='#SkCanvas_drawImageNine_image'>four</a> <a href='#SkCanvas_drawImageNine_image'>sides</a>, <a href='#SkCanvas_drawImageNine_image'>four</a> <a href='#SkCanvas_drawImageNine_image'>corners</a>, <a href='#SkCanvas_drawImageNine_image'>and</a>
-<a href='#SkCanvas_drawImageNine_image'>the</a> <a href='#SkCanvas_drawImageNine_center'>center</a>. <a href='#SkCanvas_drawImageNine_center'>Corners</a> <a href='#SkCanvas_drawImageNine_center'>are</a> <a href='#SkCanvas_drawImageNine_center'>unmodified</a> <a href='#SkCanvas_drawImageNine_center'>or</a> <a href='#SkCanvas_drawImageNine_center'>scaled</a> <a href='#SkCanvas_drawImageNine_center'>down</a> <a href='#SkCanvas_drawImageNine_center'>proportionately</a> <a href='#SkCanvas_drawImageNine_center'>if</a> <a href='#SkCanvas_drawImageNine_center'>their</a> <a href='#SkCanvas_drawImageNine_center'>sides</a>
-<a href='#SkCanvas_drawImageNine_center'>are</a> <a href='#SkCanvas_drawImageNine_center'>larger</a> <a href='#SkCanvas_drawImageNine_center'>than</a> <a href='#SkCanvas_drawImageNine_dst'>dst</a>; <a href='#SkCanvas_drawImageNine_center'>center</a> <a href='#SkCanvas_drawImageNine_center'>and</a> <a href='#SkCanvas_drawImageNine_center'>four</a> <a href='#SkCanvas_drawImageNine_center'>sides</a> <a href='#SkCanvas_drawImageNine_center'>are</a> <a href='#SkCanvas_drawImageNine_center'>scaled</a> <a href='#SkCanvas_drawImageNine_center'>to</a> <a href='#SkCanvas_drawImageNine_center'>fit</a> <a href='#SkCanvas_drawImageNine_center'>remaining</a> <a href='#SkCanvas_drawImageNine_center'>space</a>, <a href='#SkCanvas_drawImageNine_center'>if</a> <a href='#SkCanvas_drawImageNine_center'>any</a>.
+Draws <a href='SkImage_Reference#Image'>Image</a> <a href='#SkCanvas_drawImageNine_image'>image</a> stretched proportionally to fit into <a href='SkRect_Reference#Rect'>Rect</a> <a href='#SkCanvas_drawImageNine_dst'>dst</a>.
+<a href='SkIRect_Reference#IRect'>IRect</a> <a href='#SkCanvas_drawImageNine_center'>center</a> divides the <a href='#SkCanvas_drawImageNine_image'>image</a> into nine sections: four sides, four corners, and
+the <a href='#SkCanvas_drawImageNine_center'>center</a>. Corners are unmodified or scaled down proportionately if their sides
+are larger than <a href='#SkCanvas_drawImageNine_dst'>dst</a>; <a href='#SkCanvas_drawImageNine_center'>center</a> and four sides are scaled to fit remaining space, if any.
-<a href='#SkCanvas_drawImageNine_center'>Additionally</a> <a href='#SkCanvas_drawImageNine_center'>transform</a> <a href='#SkCanvas_drawImageNine_center'>draw</a> <a href='#SkCanvas_drawImageNine_center'>using</a> <a href='#SkCanvas_drawImageNine_center'>Clip</a>, <a href='SkMatrix_Reference#Matrix'>Matrix</a>, <a href='SkMatrix_Reference#Matrix'>and</a> <a href='SkMatrix_Reference#Matrix'>optional</a> <a href='SkPaint_Reference#Paint'>Paint</a> <a href='#SkCanvas_drawImageNine_paint'>paint</a>.
-If <a href='SkPaint_Reference#Paint'>Paint</a> <a href='#SkCanvas_drawImageNine_paint'>paint</a> <a href='#SkCanvas_drawImageNine_paint'>is</a> <a href='#SkCanvas_drawImageNine_paint'>supplied</a>, <a href='#SkCanvas_drawImageNine_paint'>apply</a> <a href='#Color_Filter'>Color_Filter</a>, <a href='#Color_Alpha'>Color_Alpha</a>, <a href='#Image_Filter'>Image_Filter</a>,
-<a href='#Blend_Mode'>Blend_Mode</a>, <a href='#Blend_Mode'>and</a> <a href='#Draw_Looper'>Draw_Looper</a>. <a href='#Draw_Looper'>If</a> image is <a href='SkImageInfo_Reference#kAlpha_8_SkColorType'>kAlpha_8_SkColorType</a>, <a href='SkImageInfo_Reference#kAlpha_8_SkColorType'>apply</a> <a href='undocumented#Shader'>Shader</a>.
-<a href='undocumented#Shader'>If</a> <a href='#SkCanvas_drawImageNine_paint'>paint</a> <a href='#SkCanvas_drawImageNine_paint'>contains</a> <a href='#Mask_Filter'>Mask_Filter</a>, <a href='#Mask_Filter'>generate</a> <a href='#Mask_Filter'>mask</a> <a href='#Mask_Filter'>from</a> image bounds. If <a href='#SkCanvas_drawImageNine_paint'>paint</a>
-<a href='#Filter_Quality'>Filter_Quality</a> <a href='#Filter_Quality'>set</a> <a href='#Filter_Quality'>to</a> <a href='undocumented#kNone_SkFilterQuality'>kNone_SkFilterQuality</a>, <a href='undocumented#kNone_SkFilterQuality'>disable</a> <a href='undocumented#Pixel'>pixel</a> <a href='undocumented#Pixel'>filtering</a>. <a href='undocumented#Pixel'>For</a> <a href='undocumented#Pixel'>all</a>
-<a href='undocumented#Pixel'>other</a> <a href='undocumented#Pixel'>values</a> <a href='undocumented#Pixel'>of</a> <a href='#SkCanvas_drawImageNine_paint'>paint</a> <a href='#Filter_Quality'>Filter_Quality</a>, <a href='#Filter_Quality'>use</a> <a href='undocumented#kLow_SkFilterQuality'>kLow_SkFilterQuality</a> <a href='undocumented#kLow_SkFilterQuality'>to</a> <a href='undocumented#kLow_SkFilterQuality'>filter</a> <a href='undocumented#kLow_SkFilterQuality'>pixels</a>.
-<a href='undocumented#kLow_SkFilterQuality'>Any</a> <a href='undocumented#SkMaskFilter'>SkMaskFilter</a> <a href='undocumented#SkMaskFilter'>on</a> <a href='#SkCanvas_drawImageNine_paint'>paint</a> <a href='#SkCanvas_drawImageNine_paint'>is</a> <a href='#SkCanvas_drawImageNine_paint'>ignored</a> <a href='#SkCanvas_drawImageNine_paint'>as</a> <a href='#SkCanvas_drawImageNine_paint'>is</a> <a href='#SkCanvas_drawImageNine_paint'>paint</a> <a href='#Paint_Anti_Alias'>Anti_Aliasing</a> <a href='#Paint_Anti_Alias'>state</a>.
-If generated mask extends beyond <a href='#SkCanvas_drawImageNine_image'>image</a> <a href='#SkCanvas_drawImageNine_image'>bounds</a>, <a href='#SkCanvas_drawImageNine_image'>replicate</a> <a href='#SkCanvas_drawImageNine_image'>image</a> <a href='#SkCanvas_drawImageNine_image'>edge</a> <a href='#SkCanvas_drawImageNine_image'>colors</a>, <a href='#SkCanvas_drawImageNine_image'>just</a>
-<a href='#SkCanvas_drawImageNine_image'>as</a> <a href='undocumented#Shader'>Shader</a> <a href='undocumented#Shader'>made</a> <a href='undocumented#Shader'>from</a> <a href='SkImage_Reference#SkImage'>SkImage</a>::<a href='#SkImage_makeShader'>makeShader</a> <a href='#SkImage_makeShader'>with</a> <a href='undocumented#SkShader'>SkShader</a>::<a href='#SkShader_kClamp_TileMode'>kClamp_TileMode</a> <a href='#SkShader_kClamp_TileMode'>set</a>
-<a href='#SkShader_kClamp_TileMode'>replicates</a> <a href='#SkShader_kClamp_TileMode'>the</a> <a href='#SkCanvas_drawImageNine_image'>image</a> <a href='#SkCanvas_drawImageNine_image'>edge</a> <a href='SkColor_Reference#Color'>color</a> <a href='SkColor_Reference#Color'>when</a> <a href='SkColor_Reference#Color'>it</a> <a href='SkColor_Reference#Color'>samples</a> <a href='SkColor_Reference#Color'>outside</a> <a href='SkColor_Reference#Color'>of</a> <a href='SkColor_Reference#Color'>its</a> <a href='SkColor_Reference#Color'>bounds</a>.
+Additionally transform draw using Clip, <a href='SkMatrix_Reference#Matrix'>Matrix</a>, and optional <a href='SkPaint_Reference#Paint'>Paint</a> <a href='#SkCanvas_drawImageNine_paint'>paint</a>.
+If <a href='SkPaint_Reference#Paint'>Paint</a> <a href='#SkCanvas_drawImageNine_paint'>paint</a> is supplied, apply <a href='#Color_Filter'>Color_Filter</a>, <a href='#Color_Alpha'>Color_Alpha</a>, <a href='#Image_Filter'>Image_Filter</a>,
+<a href='#Blend_Mode'>Blend_Mode</a>, and <a href='#Draw_Looper'>Draw_Looper</a>. If image is <a href='SkImageInfo_Reference#kAlpha_8_SkColorType'>kAlpha_8_SkColorType</a>, apply <a href='undocumented#Shader'>Shader</a>.
+If <a href='#SkCanvas_drawImageNine_paint'>paint</a> contains <a href='#Mask_Filter'>Mask_Filter</a>, generate mask from image bounds. If <a href='#SkCanvas_drawImageNine_paint'>paint</a>
+<a href='#Filter_Quality'>Filter_Quality</a> set to <a href='undocumented#kNone_SkFilterQuality'>kNone_SkFilterQuality</a>, disable <a href='undocumented#Pixel'>pixel</a> filtering. For all
+other values of <a href='#SkCanvas_drawImageNine_paint'>paint</a> <a href='#Filter_Quality'>Filter_Quality</a>, use <a href='undocumented#kLow_SkFilterQuality'>kLow_SkFilterQuality</a> to filter pixels.
+Any <a href='undocumented#SkMaskFilter'>SkMaskFilter</a> on <a href='#SkCanvas_drawImageNine_paint'>paint</a> is ignored as is <a href='#SkCanvas_drawImageNine_paint'>paint</a> <a href='#Paint_Anti_Alias'>Anti_Aliasing</a> state.
+If generated mask extends beyond <a href='#SkCanvas_drawImageNine_image'>image</a> bounds, replicate <a href='#SkCanvas_drawImageNine_image'>image</a> edge colors, just
+as <a href='undocumented#Shader'>Shader</a> made from <a href='SkImage_Reference#SkImage'>SkImage</a>::<a href='#SkImage_makeShader'>makeShader</a> with <a href='undocumented#SkShader'>SkShader</a>::<a href='#SkShader_kClamp_TileMode'>kClamp_TileMode</a> set
+replicates the <a href='#SkCanvas_drawImageNine_image'>image</a> edge <a href='SkColor_Reference#Color'>color</a> when it samples outside of its bounds.
### Parameters
<table> <tr> <td><a name='SkCanvas_drawImageNine_image'><code><strong>image</strong></code></a></td>
- <td><a href='SkImage_Reference#Image'>Image</a> <a href='SkImage_Reference#Image'>containing</a> <a href='SkImage_Reference#Image'>pixels</a>, <a href='SkImage_Reference#Image'>dimensions</a>, <a href='SkImage_Reference#Image'>and</a> <a href='SkImage_Reference#Image'>format</a></td>
+ <td><a href='SkImage_Reference#Image'>Image</a> containing pixels, dimensions, and format</td>
</tr>
<tr> <td><a name='SkCanvas_drawImageNine_center'><code><strong>center</strong></code></a></td>
- <td><a href='SkIRect_Reference#IRect'>IRect</a> <a href='SkIRect_Reference#IRect'>edge</a> <a href='SkIRect_Reference#IRect'>of</a> <a href='#SkCanvas_drawImageNine_image'>image</a> <a href='#SkCanvas_drawImageNine_image'>corners</a> <a href='#SkCanvas_drawImageNine_image'>and</a> <a href='#SkCanvas_drawImageNine_image'>sides</a></td>
+ <td><a href='SkIRect_Reference#IRect'>IRect</a> edge of <a href='#SkCanvas_drawImageNine_image'>image</a> corners and sides</td>
</tr>
<tr> <td><a name='SkCanvas_drawImageNine_dst'><code><strong>dst</strong></code></a></td>
- <td>destination <a href='SkRect_Reference#Rect'>Rect</a> <a href='SkRect_Reference#Rect'>of</a> <a href='#SkCanvas_drawImageNine_image'>image</a> <a href='#SkCanvas_drawImageNine_image'>to</a> <a href='#SkCanvas_drawImageNine_image'>draw</a> <a href='#SkCanvas_drawImageNine_image'>to</a></td>
+ <td>destination <a href='SkRect_Reference#Rect'>Rect</a> of <a href='#SkCanvas_drawImageNine_image'>image</a> to draw to</td>
</tr>
<tr> <td><a name='SkCanvas_drawImageNine_paint'><code><strong>paint</strong></code></a></td>
- <td><a href='SkPaint_Reference#Paint'>Paint</a> <a href='SkPaint_Reference#Paint'>containing</a> <a href='#Blend_Mode'>Blend_Mode</a>, <a href='#Color_Filter'>Color_Filter</a>, <a href='#Image_Filter'>Image_Filter</a>,
-<a href='#Image_Filter'>and</a> <a href='#Image_Filter'>so</a> <a href='#Image_Filter'>on</a>; <a href='#Image_Filter'>or</a> <a href='#Image_Filter'>nullptr</a>
+ <td><a href='SkPaint_Reference#Paint'>Paint</a> containing <a href='#Blend_Mode'>Blend_Mode</a>, <a href='#Color_Filter'>Color_Filter</a>, <a href='#Image_Filter'>Image_Filter</a>,
+and so on; or nullptr
</td>
</tr>
</table>
### Example
-<div><fiddle-embed name="4f153cf1d0dbe1a95acf5badeec14dae"><div>The leftmost <a href='#SkCanvas_drawImageNine_image'>image</a> <a href='#SkCanvas_drawImageNine_image'>is</a> <a href='#SkCanvas_drawImageNine_image'>smaller</a> <a href='#SkCanvas_drawImageNine_image'>than</a> <a href='#SkCanvas_drawImageNine_center'>center</a>; <a href='#SkCanvas_drawImageNine_center'>only</a> <a href='#SkCanvas_drawImageNine_center'>corners</a> <a href='#SkCanvas_drawImageNine_center'>are</a> <a href='#SkCanvas_drawImageNine_center'>drawn</a>, <a href='#SkCanvas_drawImageNine_center'>all</a> <a href='#SkCanvas_drawImageNine_center'>scaled</a> <a href='#SkCanvas_drawImageNine_center'>to</a> <a href='#SkCanvas_drawImageNine_center'>fit</a>.
-<a href='#SkCanvas_drawImageNine_center'>The</a> <a href='#SkCanvas_drawImageNine_center'>second</a> <a href='#SkCanvas_drawImageNine_image'>image</a> <a href='#SkCanvas_drawImageNine_image'>equals</a> <a href='#SkCanvas_drawImageNine_image'>the</a> <a href='undocumented#Size'>size</a> <a href='undocumented#Size'>of</a> <a href='#SkCanvas_drawImageNine_center'>center</a>; <a href='#SkCanvas_drawImageNine_center'>only</a> <a href='#SkCanvas_drawImageNine_center'>corners</a> <a href='#SkCanvas_drawImageNine_center'>are</a> <a href='#SkCanvas_drawImageNine_center'>drawn</a> <a href='#SkCanvas_drawImageNine_center'>without</a> <a href='#SkCanvas_drawImageNine_center'>scaling</a>.
-<a href='#SkCanvas_drawImageNine_center'>The</a> <a href='#SkCanvas_drawImageNine_center'>remaining</a> <a href='#SkCanvas_drawImageNine_center'>images</a> <a href='#SkCanvas_drawImageNine_center'>are</a> <a href='#SkCanvas_drawImageNine_center'>larger</a> <a href='#SkCanvas_drawImageNine_center'>than</a> <a href='#SkCanvas_drawImageNine_center'>center</a>. <a href='#SkCanvas_drawImageNine_center'>All</a> <a href='#SkCanvas_drawImageNine_center'>corners</a> <a href='#SkCanvas_drawImageNine_center'>draw</a> <a href='#SkCanvas_drawImageNine_center'>without</a> <a href='#SkCanvas_drawImageNine_center'>scaling</a>.
-<a href='#SkCanvas_drawImageNine_center'>The</a> <a href='#SkCanvas_drawImageNine_center'>sides</a> <a href='#SkCanvas_drawImageNine_center'>and</a> <a href='#SkCanvas_drawImageNine_center'>center</a> <a href='#SkCanvas_drawImageNine_center'>are</a> <a href='#SkCanvas_drawImageNine_center'>scaled</a> <a href='#SkCanvas_drawImageNine_center'>if</a> <a href='#SkCanvas_drawImageNine_center'>needed</a> <a href='#SkCanvas_drawImageNine_center'>to</a> <a href='#SkCanvas_drawImageNine_center'>take</a> <a href='#SkCanvas_drawImageNine_center'>up</a> <a href='#SkCanvas_drawImageNine_center'>the</a> <a href='#SkCanvas_drawImageNine_center'>remaining</a> <a href='#SkCanvas_drawImageNine_center'>space</a>.
+<div><fiddle-embed name="4f153cf1d0dbe1a95acf5badeec14dae"><div>The leftmost <a href='#SkCanvas_drawImageNine_image'>image</a> is smaller than <a href='#SkCanvas_drawImageNine_center'>center</a>; only corners are drawn, all scaled to fit.
+The second <a href='#SkCanvas_drawImageNine_image'>image</a> equals the <a href='undocumented#Size'>size</a> of <a href='#SkCanvas_drawImageNine_center'>center</a>; only corners are drawn without scaling.
+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
@@ -4529,40 +4529,40 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-void <a href='#SkCanvas_drawImageNine'>drawImageNine</a>(<a href='#SkCanvas_drawImageNine'>const</a> <a href='undocumented#sk_sp'>sk_sp</a>&<a href='undocumented#sk_sp'>lt</a>;<a href='SkImage_Reference#SkImage'>SkImage</a>&<a href='SkImage_Reference#SkImage'>gt</a>;& <a href='SkImage_Reference#Image'>image</a>, <a href='SkImage_Reference#Image'>const</a> <a href='SkIRect_Reference#SkIRect'>SkIRect</a>& <a href='SkIRect_Reference#SkIRect'>center</a>, <a href='SkIRect_Reference#SkIRect'>const</a> <a href='SkRect_Reference#SkRect'>SkRect</a>& <a href='SkRect_Reference#SkRect'>dst</a>,
- <a href='SkRect_Reference#SkRect'>const</a> <a href='SkPaint_Reference#SkPaint'>SkPaint</a>* <a href='SkPaint_Reference#Paint'>paint</a> = <a href='SkPaint_Reference#Paint'>nullptr</a>)
+void <a href='#SkCanvas_drawImageNine'>drawImageNine</a>(const <a href='undocumented#sk_sp'>sk_sp</a><<a href='SkImage_Reference#SkImage'>SkImage</a>>& <a href='SkImage_Reference#Image'>image</a>, const <a href='SkIRect_Reference#SkIRect'>SkIRect</a>& center, const <a href='SkRect_Reference#SkRect'>SkRect</a>& dst,
+ const <a href='SkPaint_Reference#SkPaint'>SkPaint</a>* <a href='SkPaint_Reference#Paint'>paint</a> = nullptr)
</pre>
-Draws <a href='SkImage_Reference#Image'>Image</a> <a href='#SkCanvas_drawImageNine_2_image'>image</a> <a href='#SkCanvas_drawImageNine_2_image'>stretched</a> <a href='#SkCanvas_drawImageNine_2_image'>proportionally</a> <a href='#SkCanvas_drawImageNine_2_image'>to</a> <a href='#SkCanvas_drawImageNine_2_image'>fit</a> <a href='#SkCanvas_drawImageNine_2_image'>into</a> <a href='SkRect_Reference#Rect'>Rect</a> <a href='#SkCanvas_drawImageNine_2_dst'>dst</a>.
-<a href='SkIRect_Reference#IRect'>IRect</a> <a href='#SkCanvas_drawImageNine_2_center'>center</a> <a href='#SkCanvas_drawImageNine_2_center'>divides</a> <a href='#SkCanvas_drawImageNine_2_center'>the</a> <a href='#SkCanvas_drawImageNine_2_image'>image</a> <a href='#SkCanvas_drawImageNine_2_image'>into</a> <a href='#SkCanvas_drawImageNine_2_image'>nine</a> <a href='#SkCanvas_drawImageNine_2_image'>sections</a>: <a href='#SkCanvas_drawImageNine_2_image'>four</a> <a href='#SkCanvas_drawImageNine_2_image'>sides</a>, <a href='#SkCanvas_drawImageNine_2_image'>four</a> <a href='#SkCanvas_drawImageNine_2_image'>corners</a>, <a href='#SkCanvas_drawImageNine_2_image'>and</a>
-<a href='#SkCanvas_drawImageNine_2_image'>the</a> <a href='#SkCanvas_drawImageNine_2_center'>center</a>. <a href='#SkCanvas_drawImageNine_2_center'>Corners</a> <a href='#SkCanvas_drawImageNine_2_center'>are</a> <a href='#SkCanvas_drawImageNine_2_center'>not</a> <a href='#SkCanvas_drawImageNine_2_center'>scaled</a>, <a href='#SkCanvas_drawImageNine_2_center'>or</a> <a href='#SkCanvas_drawImageNine_2_center'>scaled</a> <a href='#SkCanvas_drawImageNine_2_center'>down</a> <a href='#SkCanvas_drawImageNine_2_center'>proportionately</a> <a href='#SkCanvas_drawImageNine_2_center'>if</a> <a href='#SkCanvas_drawImageNine_2_center'>their</a> <a href='#SkCanvas_drawImageNine_2_center'>sides</a>
-<a href='#SkCanvas_drawImageNine_2_center'>are</a> <a href='#SkCanvas_drawImageNine_2_center'>larger</a> <a href='#SkCanvas_drawImageNine_2_center'>than</a> <a href='#SkCanvas_drawImageNine_2_dst'>dst</a>; <a href='#SkCanvas_drawImageNine_2_center'>center</a> <a href='#SkCanvas_drawImageNine_2_center'>and</a> <a href='#SkCanvas_drawImageNine_2_center'>four</a> <a href='#SkCanvas_drawImageNine_2_center'>sides</a> <a href='#SkCanvas_drawImageNine_2_center'>are</a> <a href='#SkCanvas_drawImageNine_2_center'>scaled</a> <a href='#SkCanvas_drawImageNine_2_center'>to</a> <a href='#SkCanvas_drawImageNine_2_center'>fit</a> <a href='#SkCanvas_drawImageNine_2_center'>remaining</a> <a href='#SkCanvas_drawImageNine_2_center'>space</a>, <a href='#SkCanvas_drawImageNine_2_center'>if</a> <a href='#SkCanvas_drawImageNine_2_center'>any</a>.
+Draws <a href='SkImage_Reference#Image'>Image</a> <a href='#SkCanvas_drawImageNine_2_image'>image</a> stretched proportionally to fit into <a href='SkRect_Reference#Rect'>Rect</a> <a href='#SkCanvas_drawImageNine_2_dst'>dst</a>.
+<a href='SkIRect_Reference#IRect'>IRect</a> <a href='#SkCanvas_drawImageNine_2_center'>center</a> divides the <a href='#SkCanvas_drawImageNine_2_image'>image</a> into nine sections: four sides, four corners, and
+the <a href='#SkCanvas_drawImageNine_2_center'>center</a>. Corners are not scaled, or scaled down proportionately if their sides
+are larger than <a href='#SkCanvas_drawImageNine_2_dst'>dst</a>; <a href='#SkCanvas_drawImageNine_2_center'>center</a> and four sides are scaled to fit remaining space, if any.
-<a href='#SkCanvas_drawImageNine_2_center'>Additionally</a> <a href='#SkCanvas_drawImageNine_2_center'>transform</a> <a href='#SkCanvas_drawImageNine_2_center'>draw</a> <a href='#SkCanvas_drawImageNine_2_center'>using</a> <a href='#SkCanvas_drawImageNine_2_center'>Clip</a>, <a href='SkMatrix_Reference#Matrix'>Matrix</a>, <a href='SkMatrix_Reference#Matrix'>and</a> <a href='SkMatrix_Reference#Matrix'>optional</a> <a href='SkPaint_Reference#Paint'>Paint</a> <a href='#SkCanvas_drawImageNine_2_paint'>paint</a>.
-If <a href='SkPaint_Reference#Paint'>Paint</a> <a href='#SkCanvas_drawImageNine_2_paint'>paint</a> <a href='#SkCanvas_drawImageNine_2_paint'>is</a> <a href='#SkCanvas_drawImageNine_2_paint'>supplied</a>, <a href='#SkCanvas_drawImageNine_2_paint'>apply</a> <a href='#Color_Filter'>Color_Filter</a>, <a href='#Color_Alpha'>Color_Alpha</a>, <a href='#Image_Filter'>Image_Filter</a>,
-<a href='#Blend_Mode'>Blend_Mode</a>, <a href='#Blend_Mode'>and</a> <a href='#Draw_Looper'>Draw_Looper</a>. <a href='#Draw_Looper'>If</a> image is <a href='SkImageInfo_Reference#kAlpha_8_SkColorType'>kAlpha_8_SkColorType</a>, <a href='SkImageInfo_Reference#kAlpha_8_SkColorType'>apply</a> <a href='undocumented#Shader'>Shader</a>.
-<a href='undocumented#Shader'>If</a> <a href='#SkCanvas_drawImageNine_2_paint'>paint</a> <a href='#SkCanvas_drawImageNine_2_paint'>contains</a> <a href='#Mask_Filter'>Mask_Filter</a>, <a href='#Mask_Filter'>generate</a> <a href='#Mask_Filter'>mask</a> <a href='#Mask_Filter'>from</a> image bounds. If <a href='#SkCanvas_drawImageNine_2_paint'>paint</a>
-<a href='#Filter_Quality'>Filter_Quality</a> <a href='#Filter_Quality'>set</a> <a href='#Filter_Quality'>to</a> <a href='undocumented#kNone_SkFilterQuality'>kNone_SkFilterQuality</a>, <a href='undocumented#kNone_SkFilterQuality'>disable</a> <a href='undocumented#Pixel'>pixel</a> <a href='undocumented#Pixel'>filtering</a>. <a href='undocumented#Pixel'>For</a> <a href='undocumented#Pixel'>all</a>
-<a href='undocumented#Pixel'>other</a> <a href='undocumented#Pixel'>values</a> <a href='undocumented#Pixel'>of</a> <a href='#SkCanvas_drawImageNine_2_paint'>paint</a> <a href='#Filter_Quality'>Filter_Quality</a>, <a href='#Filter_Quality'>use</a> <a href='undocumented#kLow_SkFilterQuality'>kLow_SkFilterQuality</a> <a href='undocumented#kLow_SkFilterQuality'>to</a> <a href='undocumented#kLow_SkFilterQuality'>filter</a> <a href='undocumented#kLow_SkFilterQuality'>pixels</a>.
-<a href='undocumented#kLow_SkFilterQuality'>Any</a> <a href='undocumented#SkMaskFilter'>SkMaskFilter</a> <a href='undocumented#SkMaskFilter'>on</a> <a href='#SkCanvas_drawImageNine_2_paint'>paint</a> <a href='#SkCanvas_drawImageNine_2_paint'>is</a> <a href='#SkCanvas_drawImageNine_2_paint'>ignored</a> <a href='#SkCanvas_drawImageNine_2_paint'>as</a> <a href='#SkCanvas_drawImageNine_2_paint'>is</a> <a href='#SkCanvas_drawImageNine_2_paint'>paint</a> <a href='#Paint_Anti_Alias'>Anti_Aliasing</a> <a href='#Paint_Anti_Alias'>state</a>.
-If generated mask extends beyond <a href='#SkCanvas_drawImageNine_2_image'>image</a> <a href='#SkCanvas_drawImageNine_2_image'>bounds</a>, <a href='#SkCanvas_drawImageNine_2_image'>replicate</a> <a href='#SkCanvas_drawImageNine_2_image'>image</a> <a href='#SkCanvas_drawImageNine_2_image'>edge</a> <a href='#SkCanvas_drawImageNine_2_image'>colors</a>, <a href='#SkCanvas_drawImageNine_2_image'>just</a>
-<a href='#SkCanvas_drawImageNine_2_image'>as</a> <a href='undocumented#Shader'>Shader</a> <a href='undocumented#Shader'>made</a> <a href='undocumented#Shader'>from</a> <a href='SkImage_Reference#SkImage'>SkImage</a>::<a href='#SkImage_makeShader'>makeShader</a> <a href='#SkImage_makeShader'>with</a> <a href='undocumented#SkShader'>SkShader</a>::<a href='#SkShader_kClamp_TileMode'>kClamp_TileMode</a> <a href='#SkShader_kClamp_TileMode'>set</a>
-<a href='#SkShader_kClamp_TileMode'>replicates</a> <a href='#SkShader_kClamp_TileMode'>the</a> <a href='#SkCanvas_drawImageNine_2_image'>image</a> <a href='#SkCanvas_drawImageNine_2_image'>edge</a> <a href='SkColor_Reference#Color'>color</a> <a href='SkColor_Reference#Color'>when</a> <a href='SkColor_Reference#Color'>it</a> <a href='SkColor_Reference#Color'>samples</a> <a href='SkColor_Reference#Color'>outside</a> <a href='SkColor_Reference#Color'>of</a> <a href='SkColor_Reference#Color'>its</a> <a href='SkColor_Reference#Color'>bounds</a>.
+Additionally transform draw using Clip, <a href='SkMatrix_Reference#Matrix'>Matrix</a>, and optional <a href='SkPaint_Reference#Paint'>Paint</a> <a href='#SkCanvas_drawImageNine_2_paint'>paint</a>.
+If <a href='SkPaint_Reference#Paint'>Paint</a> <a href='#SkCanvas_drawImageNine_2_paint'>paint</a> is supplied, apply <a href='#Color_Filter'>Color_Filter</a>, <a href='#Color_Alpha'>Color_Alpha</a>, <a href='#Image_Filter'>Image_Filter</a>,
+<a href='#Blend_Mode'>Blend_Mode</a>, and <a href='#Draw_Looper'>Draw_Looper</a>. If image is <a href='SkImageInfo_Reference#kAlpha_8_SkColorType'>kAlpha_8_SkColorType</a>, apply <a href='undocumented#Shader'>Shader</a>.
+If <a href='#SkCanvas_drawImageNine_2_paint'>paint</a> contains <a href='#Mask_Filter'>Mask_Filter</a>, generate mask from image bounds. If <a href='#SkCanvas_drawImageNine_2_paint'>paint</a>
+<a href='#Filter_Quality'>Filter_Quality</a> set to <a href='undocumented#kNone_SkFilterQuality'>kNone_SkFilterQuality</a>, disable <a href='undocumented#Pixel'>pixel</a> filtering. For all
+other values of <a href='#SkCanvas_drawImageNine_2_paint'>paint</a> <a href='#Filter_Quality'>Filter_Quality</a>, use <a href='undocumented#kLow_SkFilterQuality'>kLow_SkFilterQuality</a> to filter pixels.
+Any <a href='undocumented#SkMaskFilter'>SkMaskFilter</a> on <a href='#SkCanvas_drawImageNine_2_paint'>paint</a> is ignored as is <a href='#SkCanvas_drawImageNine_2_paint'>paint</a> <a href='#Paint_Anti_Alias'>Anti_Aliasing</a> state.
+If generated mask extends beyond <a href='#SkCanvas_drawImageNine_2_image'>image</a> bounds, replicate <a href='#SkCanvas_drawImageNine_2_image'>image</a> edge colors, just
+as <a href='undocumented#Shader'>Shader</a> made from <a href='SkImage_Reference#SkImage'>SkImage</a>::<a href='#SkImage_makeShader'>makeShader</a> with <a href='undocumented#SkShader'>SkShader</a>::<a href='#SkShader_kClamp_TileMode'>kClamp_TileMode</a> set
+replicates the <a href='#SkCanvas_drawImageNine_2_image'>image</a> edge <a href='SkColor_Reference#Color'>color</a> when it samples outside of its bounds.
### Parameters
<table> <tr> <td><a name='SkCanvas_drawImageNine_2_image'><code><strong>image</strong></code></a></td>
- <td><a href='SkImage_Reference#Image'>Image</a> <a href='SkImage_Reference#Image'>containing</a> <a href='SkImage_Reference#Image'>pixels</a>, <a href='SkImage_Reference#Image'>dimensions</a>, <a href='SkImage_Reference#Image'>and</a> <a href='SkImage_Reference#Image'>format</a></td>
+ <td><a href='SkImage_Reference#Image'>Image</a> containing pixels, dimensions, and format</td>
</tr>
<tr> <td><a name='SkCanvas_drawImageNine_2_center'><code><strong>center</strong></code></a></td>
- <td><a href='SkIRect_Reference#IRect'>IRect</a> <a href='SkIRect_Reference#IRect'>edge</a> <a href='SkIRect_Reference#IRect'>of</a> <a href='#SkCanvas_drawImageNine_2_image'>image</a> <a href='#SkCanvas_drawImageNine_2_image'>corners</a> <a href='#SkCanvas_drawImageNine_2_image'>and</a> <a href='#SkCanvas_drawImageNine_2_image'>sides</a></td>
+ <td><a href='SkIRect_Reference#IRect'>IRect</a> edge of <a href='#SkCanvas_drawImageNine_2_image'>image</a> corners and sides</td>
</tr>
<tr> <td><a name='SkCanvas_drawImageNine_2_dst'><code><strong>dst</strong></code></a></td>
- <td>destination <a href='SkRect_Reference#Rect'>Rect</a> <a href='SkRect_Reference#Rect'>of</a> <a href='#SkCanvas_drawImageNine_2_image'>image</a> <a href='#SkCanvas_drawImageNine_2_image'>to</a> <a href='#SkCanvas_drawImageNine_2_image'>draw</a> <a href='#SkCanvas_drawImageNine_2_image'>to</a></td>
+ <td>destination <a href='SkRect_Reference#Rect'>Rect</a> of <a href='#SkCanvas_drawImageNine_2_image'>image</a> to draw to</td>
</tr>
<tr> <td><a name='SkCanvas_drawImageNine_2_paint'><code><strong>paint</strong></code></a></td>
- <td><a href='SkPaint_Reference#Paint'>Paint</a> <a href='SkPaint_Reference#Paint'>containing</a> <a href='#Blend_Mode'>Blend_Mode</a>, <a href='#Color_Filter'>Color_Filter</a>, <a href='#Image_Filter'>Image_Filter</a>,
-<a href='#Image_Filter'>and</a> <a href='#Image_Filter'>so</a> <a href='#Image_Filter'>on</a>; <a href='#Image_Filter'>or</a> <a href='#Image_Filter'>nullptr</a>
+ <td><a href='SkPaint_Reference#Paint'>Paint</a> containing <a href='#Blend_Mode'>Blend_Mode</a>, <a href='#Color_Filter'>Color_Filter</a>, <a href='#Image_Filter'>Image_Filter</a>,
+and so on; or nullptr
</td>
</tr>
</table>
@@ -4570,11 +4570,11 @@
### Example
<div><fiddle-embed name="d597d9af8d17fd93e634dd12017058e2"><div>The two leftmost images has four corners and sides to the left and right of <a href='#SkCanvas_drawImageNine_2_center'>center</a>.
-<a href='#SkCanvas_drawImageNine_2_center'>The</a> <a href='#SkCanvas_drawImageNine_2_center'>leftmost</a> <a href='#SkCanvas_drawImageNine_2_image'>image</a> <a href='#SkCanvas_drawImageNine_2_image'>scales</a> <a href='#SkCanvas_drawImageNine_2_image'>the</a> <a href='#SkCanvas_drawImageNine_2_image'>width</a> <a href='#SkCanvas_drawImageNine_2_image'>of</a> <a href='#SkCanvas_drawImageNine_2_image'>corners</a> <a href='#SkCanvas_drawImageNine_2_image'>proportionately</a> <a href='#SkCanvas_drawImageNine_2_image'>to</a> <a href='#SkCanvas_drawImageNine_2_image'>fit</a>.
-<a href='#SkCanvas_drawImageNine_2_image'>The</a> <a href='#SkCanvas_drawImageNine_2_image'>third</a> <a href='#SkCanvas_drawImageNine_2_image'>and</a> <a href='#SkCanvas_drawImageNine_2_image'>fourth</a> <a href='#SkCanvas_drawImageNine_2_image'>image</a> <a href='#SkCanvas_drawImageNine_2_image'>corners</a> <a href='#SkCanvas_drawImageNine_2_image'>are</a> <a href='#SkCanvas_drawImageNine_2_image'>not</a> <a href='#SkCanvas_drawImageNine_2_image'>scaled</a>; <a href='#SkCanvas_drawImageNine_2_image'>the</a> <a href='#SkCanvas_drawImageNine_2_image'>sides</a> <a href='#SkCanvas_drawImageNine_2_image'>and</a> <a href='#SkCanvas_drawImageNine_2_center'>center</a> <a href='#SkCanvas_drawImageNine_2_center'>are</a> <a href='#SkCanvas_drawImageNine_2_center'>scaled</a> <a href='#SkCanvas_drawImageNine_2_center'>to</a>
-<a href='#SkCanvas_drawImageNine_2_center'>fill</a> <a href='#SkCanvas_drawImageNine_2_center'>the</a> <a href='#SkCanvas_drawImageNine_2_center'>remaining</a> <a href='#SkCanvas_drawImageNine_2_center'>space</a>.
-<a href='#SkCanvas_drawImageNine_2_center'>The</a> <a href='#SkCanvas_drawImageNine_2_center'>rightmost</a> <a href='#SkCanvas_drawImageNine_2_image'>image</a> <a href='#SkCanvas_drawImageNine_2_image'>has</a> <a href='#SkCanvas_drawImageNine_2_image'>four</a> <a href='#SkCanvas_drawImageNine_2_image'>corners</a> <a href='#SkCanvas_drawImageNine_2_image'>scaled</a> <a href='#SkCanvas_drawImageNine_2_image'>vertically</a> <a href='#SkCanvas_drawImageNine_2_image'>to</a> <a href='#SkCanvas_drawImageNine_2_image'>fit</a>, <a href='#SkCanvas_drawImageNine_2_image'>and</a> <a href='#SkCanvas_drawImageNine_2_image'>uses</a> <a href='#SkCanvas_drawImageNine_2_image'>sides</a> <a href='#SkCanvas_drawImageNine_2_image'>above</a>
-<a href='#SkCanvas_drawImageNine_2_image'>and</a> <a href='#SkCanvas_drawImageNine_2_image'>below</a> <a href='#SkCanvas_drawImageNine_2_center'>center</a> <a href='#SkCanvas_drawImageNine_2_center'>to</a> <a href='#SkCanvas_drawImageNine_2_center'>fill</a> <a href='#SkCanvas_drawImageNine_2_center'>the</a> <a href='#SkCanvas_drawImageNine_2_center'>remaining</a> <a href='#SkCanvas_drawImageNine_2_center'>space</a>.
+The leftmost <a href='#SkCanvas_drawImageNine_2_image'>image</a> scales the width of corners proportionately to fit.
+The third and fourth <a href='#SkCanvas_drawImageNine_2_image'>image</a> corners are not scaled; the sides and <a href='#SkCanvas_drawImageNine_2_center'>center</a> are scaled to
+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
@@ -4586,34 +4586,34 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-void <a href='#SkCanvas_drawBitmap'>drawBitmap</a>(<a href='#SkCanvas_drawBitmap'>const</a> <a href='SkBitmap_Reference#SkBitmap'>SkBitmap</a>& <a href='SkBitmap_Reference#Bitmap'>bitmap</a>, <a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>left</a>, <a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>top</a>, <a href='undocumented#SkScalar'>const</a> <a href='SkPaint_Reference#SkPaint'>SkPaint</a>* <a href='SkPaint_Reference#Paint'>paint</a> = <a href='SkPaint_Reference#Paint'>nullptr</a>)
+void <a href='#SkCanvas_drawBitmap'>drawBitmap</a>(const <a href='SkBitmap_Reference#SkBitmap'>SkBitmap</a>& <a href='SkBitmap_Reference#Bitmap'>bitmap</a>, <a href='undocumented#SkScalar'>SkScalar</a> left, <a href='undocumented#SkScalar'>SkScalar</a> top, const <a href='SkPaint_Reference#SkPaint'>SkPaint</a>* <a href='SkPaint_Reference#Paint'>paint</a> = nullptr)
</pre>
-Draws <a href='SkBitmap_Reference#SkBitmap'>SkBitmap</a> <a href='#SkCanvas_drawBitmap_bitmap'>bitmap</a>, <a href='#SkCanvas_drawBitmap_bitmap'>with</a> <a href='#SkCanvas_drawBitmap_bitmap'>its</a> <a href='#SkCanvas_drawBitmap_bitmap'>top-left</a> <a href='#SkCanvas_drawBitmap_bitmap'>corner</a> <a href='#SkCanvas_drawBitmap_bitmap'>at</a> (<a href='#SkCanvas_drawBitmap_left'>left</a>, <a href='#SkCanvas_drawBitmap_top'>top</a>),
-using clip, <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a>, <a href='SkMatrix_Reference#SkMatrix'>and</a> <a href='SkMatrix_Reference#SkMatrix'>optional</a> <a href='SkPaint_Reference#SkPaint'>SkPaint</a> <a href='#SkCanvas_drawBitmap_paint'>paint</a>.
+Draws <a href='SkBitmap_Reference#SkBitmap'>SkBitmap</a> <a href='#SkCanvas_drawBitmap_bitmap'>bitmap</a>, with its top-left corner at (<a href='#SkCanvas_drawBitmap_left'>left</a>, <a href='#SkCanvas_drawBitmap_top'>top</a>),
+using clip, <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a>, and optional <a href='SkPaint_Reference#SkPaint'>SkPaint</a> <a href='#SkCanvas_drawBitmap_paint'>paint</a>.
-If <a href='SkPaint_Reference#SkPaint'>SkPaint</a> <a href='#SkCanvas_drawBitmap_paint'>paint</a> <a href='#SkCanvas_drawBitmap_paint'>is</a> <a href='#SkCanvas_drawBitmap_paint'>not</a> <a href='#SkCanvas_drawBitmap_paint'>nullptr</a>, <a href='#SkCanvas_drawBitmap_paint'>apply</a> <a href='undocumented#SkColorFilter'>SkColorFilter</a>, <a href='SkColor_Reference#Alpha'>alpha</a>, <a href='undocumented#SkImageFilter'>SkImageFilter</a>,
-<a href='SkBlendMode_Reference#SkBlendMode'>SkBlendMode</a>, <a href='SkBlendMode_Reference#SkBlendMode'>and</a> <a href='undocumented#SkDrawLooper'>SkDrawLooper</a>. <a href='undocumented#SkDrawLooper'>If</a> <a href='#SkCanvas_drawBitmap_bitmap'>bitmap</a> <a href='#SkCanvas_drawBitmap_bitmap'>is</a> <a href='SkImageInfo_Reference#kAlpha_8_SkColorType'>kAlpha_8_SkColorType</a>, <a href='SkImageInfo_Reference#kAlpha_8_SkColorType'>apply</a> <a href='undocumented#SkShader'>SkShader</a>.
-If <a href='#SkCanvas_drawBitmap_paint'>paint</a> <a href='#SkCanvas_drawBitmap_paint'>contains</a> <a href='undocumented#SkMaskFilter'>SkMaskFilter</a>, <a href='undocumented#SkMaskFilter'>generate</a> <a href='undocumented#SkMaskFilter'>mask</a> <a href='undocumented#SkMaskFilter'>from</a> <a href='#SkCanvas_drawBitmap_bitmap'>bitmap</a> <a href='#SkCanvas_drawBitmap_bitmap'>bounds</a>.
+If <a href='SkPaint_Reference#SkPaint'>SkPaint</a> <a href='#SkCanvas_drawBitmap_paint'>paint</a> is not nullptr, apply <a href='undocumented#SkColorFilter'>SkColorFilter</a>, <a href='SkColor_Reference#Alpha'>alpha</a>, <a href='undocumented#SkImageFilter'>SkImageFilter</a>,
+<a href='SkBlendMode_Reference#SkBlendMode'>SkBlendMode</a>, and <a href='undocumented#SkDrawLooper'>SkDrawLooper</a>. If <a href='#SkCanvas_drawBitmap_bitmap'>bitmap</a> is <a href='SkImageInfo_Reference#kAlpha_8_SkColorType'>kAlpha_8_SkColorType</a>, apply <a href='undocumented#SkShader'>SkShader</a>.
+If <a href='#SkCanvas_drawBitmap_paint'>paint</a> contains <a href='undocumented#SkMaskFilter'>SkMaskFilter</a>, generate mask from <a href='#SkCanvas_drawBitmap_bitmap'>bitmap</a> bounds.
-If generated mask extends beyond <a href='#SkCanvas_drawBitmap_bitmap'>bitmap</a> <a href='#SkCanvas_drawBitmap_bitmap'>bounds</a>, <a href='#SkCanvas_drawBitmap_bitmap'>replicate</a> <a href='#SkCanvas_drawBitmap_bitmap'>bitmap</a> <a href='#SkCanvas_drawBitmap_bitmap'>edge</a> <a href='#SkCanvas_drawBitmap_bitmap'>colors</a>,
-just as <a href='undocumented#SkShader'>SkShader</a> <a href='undocumented#SkShader'>made</a> <a href='undocumented#SkShader'>from</a> <a href='undocumented#SkShader'>SkShader</a>::<a href='#SkShader_MakeBitmapShader'>MakeBitmapShader</a> <a href='#SkShader_MakeBitmapShader'>with</a>
-<a href='undocumented#SkShader'>SkShader</a>::<a href='#SkShader_kClamp_TileMode'>kClamp_TileMode</a> <a href='#SkShader_kClamp_TileMode'>set</a> <a href='#SkShader_kClamp_TileMode'>replicates</a> <a href='#SkShader_kClamp_TileMode'>the</a> <a href='#SkCanvas_drawBitmap_bitmap'>bitmap</a> <a href='#SkCanvas_drawBitmap_bitmap'>edge</a> <a href='SkColor_Reference#Color'>color</a> <a href='SkColor_Reference#Color'>when</a> <a href='SkColor_Reference#Color'>it</a> <a href='SkColor_Reference#Color'>samples</a>
+If generated mask extends beyond <a href='#SkCanvas_drawBitmap_bitmap'>bitmap</a> bounds, replicate <a href='#SkCanvas_drawBitmap_bitmap'>bitmap</a> edge colors,
+just as <a href='undocumented#SkShader'>SkShader</a> made from <a href='undocumented#SkShader'>SkShader</a>::<a href='#SkShader_MakeBitmapShader'>MakeBitmapShader</a> with
+<a href='undocumented#SkShader'>SkShader</a>::<a href='#SkShader_kClamp_TileMode'>kClamp_TileMode</a> set replicates the <a href='#SkCanvas_drawBitmap_bitmap'>bitmap</a> edge <a href='SkColor_Reference#Color'>color</a> when it samples
outside of its bounds.
### Parameters
<table> <tr> <td><a name='SkCanvas_drawBitmap_bitmap'><code><strong>bitmap</strong></code></a></td>
- <td><a href='SkBitmap_Reference#SkBitmap'>SkBitmap</a> <a href='SkBitmap_Reference#SkBitmap'>containing</a> <a href='SkBitmap_Reference#SkBitmap'>pixels</a>, <a href='SkBitmap_Reference#SkBitmap'>dimensions</a>, <a href='SkBitmap_Reference#SkBitmap'>and</a> <a href='SkBitmap_Reference#SkBitmap'>format</a></td>
+ <td><a href='SkBitmap_Reference#SkBitmap'>SkBitmap</a> containing pixels, dimensions, and format</td>
</tr>
<tr> <td><a name='SkCanvas_drawBitmap_left'><code><strong>left</strong></code></a></td>
- <td><a href='#SkCanvas_drawBitmap_left'>left side</a> <a href='#SkCanvas_drawBitmap_left'>of</a> <a href='#SkCanvas_drawBitmap_bitmap'>bitmap</a></td>
+ <td><a href='#SkCanvas_drawBitmap_left'>left side</a> of <a href='#SkCanvas_drawBitmap_bitmap'>bitmap</a></td>
</tr>
<tr> <td><a name='SkCanvas_drawBitmap_top'><code><strong>top</strong></code></a></td>
- <td><a href='#SkCanvas_drawBitmap_top'>top</a> <a href='#SkCanvas_drawBitmap_top'>side</a> <a href='#SkCanvas_drawBitmap_top'>of</a> <a href='#SkCanvas_drawBitmap_bitmap'>bitmap</a></td>
+ <td><a href='#SkCanvas_drawBitmap_top'>top</a> side of <a href='#SkCanvas_drawBitmap_bitmap'>bitmap</a></td>
</tr>
<tr> <td><a name='SkCanvas_drawBitmap_paint'><code><strong>paint</strong></code></a></td>
- <td><a href='SkPaint_Reference#SkPaint'>SkPaint</a> <a href='SkPaint_Reference#SkPaint'>containing</a> <a href='SkBlendMode_Reference#SkBlendMode'>SkBlendMode</a>, <a href='undocumented#SkColorFilter'>SkColorFilter</a>, <a href='undocumented#SkImageFilter'>SkImageFilter</a>,</td>
+ <td><a href='SkPaint_Reference#SkPaint'>SkPaint</a> containing <a href='SkBlendMode_Reference#SkBlendMode'>SkBlendMode</a>, <a href='undocumented#SkColorFilter'>SkColorFilter</a>, <a href='undocumented#SkImageFilter'>SkImageFilter</a>,</td>
</tr>
</table>
@@ -4632,39 +4632,39 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-void <a href='#SkCanvas_drawBitmapRect'>drawBitmapRect</a>(<a href='#SkCanvas_drawBitmapRect'>const</a> <a href='SkBitmap_Reference#SkBitmap'>SkBitmap</a>& <a href='SkBitmap_Reference#Bitmap'>bitmap</a>, <a href='SkBitmap_Reference#Bitmap'>const</a> <a href='SkRect_Reference#SkRect'>SkRect</a>& <a href='SkRect_Reference#SkRect'>src</a>, <a href='SkRect_Reference#SkRect'>const</a> <a href='SkRect_Reference#SkRect'>SkRect</a>& <a href='SkRect_Reference#SkRect'>dst</a>,
- <a href='SkRect_Reference#SkRect'>const</a> <a href='SkPaint_Reference#SkPaint'>SkPaint</a>* <a href='SkPaint_Reference#Paint'>paint</a>, <a href='#SkCanvas_SrcRectConstraint'>SrcRectConstraint</a> <a href='#SkCanvas_SrcRectConstraint'>constraint</a> = <a href='#SkCanvas_kStrict_SrcRectConstraint'>kStrict_SrcRectConstraint</a>)
+void <a href='#SkCanvas_drawBitmapRect'>drawBitmapRect</a>(const <a href='SkBitmap_Reference#SkBitmap'>SkBitmap</a>& <a href='SkBitmap_Reference#Bitmap'>bitmap</a>, const <a href='SkRect_Reference#SkRect'>SkRect</a>& src, const <a href='SkRect_Reference#SkRect'>SkRect</a>& dst,
+ const <a href='SkPaint_Reference#SkPaint'>SkPaint</a>* <a href='SkPaint_Reference#Paint'>paint</a>, <a href='#SkCanvas_SrcRectConstraint'>SrcRectConstraint</a> constraint = <a href='#SkCanvas_kStrict_SrcRectConstraint'>kStrict_SrcRectConstraint</a>)
</pre>
-Draws <a href='SkRect_Reference#SkRect'>SkRect</a> <a href='#SkCanvas_drawBitmapRect_src'>src</a> <a href='#SkCanvas_drawBitmapRect_src'>of</a> <a href='SkBitmap_Reference#SkBitmap'>SkBitmap</a> <a href='#SkCanvas_drawBitmapRect_bitmap'>bitmap</a>, <a href='#SkCanvas_drawBitmapRect_bitmap'>scaled</a> <a href='#SkCanvas_drawBitmapRect_bitmap'>and</a> <a href='#SkCanvas_drawBitmapRect_bitmap'>translated</a> <a href='#SkCanvas_drawBitmapRect_bitmap'>to</a> <a href='#SkCanvas_drawBitmapRect_bitmap'>fill</a> <a href='SkRect_Reference#SkRect'>SkRect</a> <a href='#SkCanvas_drawBitmapRect_dst'>dst</a>.
-Additionally transform draw using clip, <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a>, <a href='SkMatrix_Reference#SkMatrix'>and</a> <a href='SkMatrix_Reference#SkMatrix'>optional</a> <a href='SkPaint_Reference#SkPaint'>SkPaint</a> <a href='#SkCanvas_drawBitmapRect_paint'>paint</a>.
+Draws <a href='SkRect_Reference#SkRect'>SkRect</a> <a href='#SkCanvas_drawBitmapRect_src'>src</a> of <a href='SkBitmap_Reference#SkBitmap'>SkBitmap</a> <a href='#SkCanvas_drawBitmapRect_bitmap'>bitmap</a>, scaled and translated to fill <a href='SkRect_Reference#SkRect'>SkRect</a> <a href='#SkCanvas_drawBitmapRect_dst'>dst</a>.
+Additionally transform draw using clip, <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a>, and optional <a href='SkPaint_Reference#SkPaint'>SkPaint</a> <a href='#SkCanvas_drawBitmapRect_paint'>paint</a>.
-If <a href='SkPaint_Reference#SkPaint'>SkPaint</a> <a href='#SkCanvas_drawBitmapRect_paint'>paint</a> <a href='#SkCanvas_drawBitmapRect_paint'>is</a> <a href='#SkCanvas_drawBitmapRect_paint'>supplied</a>, <a href='#SkCanvas_drawBitmapRect_paint'>apply</a> <a href='undocumented#SkColorFilter'>SkColorFilter</a>, <a href='SkColor_Reference#Alpha'>alpha</a>, <a href='undocumented#SkImageFilter'>SkImageFilter</a>,
-<a href='SkBlendMode_Reference#SkBlendMode'>SkBlendMode</a>, <a href='SkBlendMode_Reference#SkBlendMode'>and</a> <a href='undocumented#SkDrawLooper'>SkDrawLooper</a>. <a href='undocumented#SkDrawLooper'>If</a> <a href='#SkCanvas_drawBitmapRect_bitmap'>bitmap</a> <a href='#SkCanvas_drawBitmapRect_bitmap'>is</a> <a href='SkImageInfo_Reference#kAlpha_8_SkColorType'>kAlpha_8_SkColorType</a>, <a href='SkImageInfo_Reference#kAlpha_8_SkColorType'>apply</a> <a href='undocumented#SkShader'>SkShader</a>.
-If <a href='#SkCanvas_drawBitmapRect_paint'>paint</a> <a href='#SkCanvas_drawBitmapRect_paint'>contains</a> <a href='undocumented#SkMaskFilter'>SkMaskFilter</a>, <a href='undocumented#SkMaskFilter'>generate</a> <a href='undocumented#SkMaskFilter'>mask</a> <a href='undocumented#SkMaskFilter'>from</a> <a href='#SkCanvas_drawBitmapRect_bitmap'>bitmap</a> <a href='#SkCanvas_drawBitmapRect_bitmap'>bounds</a>.
+If <a href='SkPaint_Reference#SkPaint'>SkPaint</a> <a href='#SkCanvas_drawBitmapRect_paint'>paint</a> is supplied, apply <a href='undocumented#SkColorFilter'>SkColorFilter</a>, <a href='SkColor_Reference#Alpha'>alpha</a>, <a href='undocumented#SkImageFilter'>SkImageFilter</a>,
+<a href='SkBlendMode_Reference#SkBlendMode'>SkBlendMode</a>, and <a href='undocumented#SkDrawLooper'>SkDrawLooper</a>. If <a href='#SkCanvas_drawBitmapRect_bitmap'>bitmap</a> is <a href='SkImageInfo_Reference#kAlpha_8_SkColorType'>kAlpha_8_SkColorType</a>, apply <a href='undocumented#SkShader'>SkShader</a>.
+If <a href='#SkCanvas_drawBitmapRect_paint'>paint</a> contains <a href='undocumented#SkMaskFilter'>SkMaskFilter</a>, generate mask from <a href='#SkCanvas_drawBitmapRect_bitmap'>bitmap</a> bounds.
-If generated mask extends beyond <a href='#SkCanvas_drawBitmapRect_bitmap'>bitmap</a> <a href='#SkCanvas_drawBitmapRect_bitmap'>bounds</a>, <a href='#SkCanvas_drawBitmapRect_bitmap'>replicate</a> <a href='#SkCanvas_drawBitmapRect_bitmap'>bitmap</a> <a href='#SkCanvas_drawBitmapRect_bitmap'>edge</a> <a href='#SkCanvas_drawBitmapRect_bitmap'>colors</a>,
-just as <a href='undocumented#SkShader'>SkShader</a> <a href='undocumented#SkShader'>made</a> <a href='undocumented#SkShader'>from</a> <a href='undocumented#SkShader'>SkShader</a>::<a href='#SkShader_MakeBitmapShader'>MakeBitmapShader</a> <a href='#SkShader_MakeBitmapShader'>with</a>
-<a href='undocumented#SkShader'>SkShader</a>::<a href='#SkShader_kClamp_TileMode'>kClamp_TileMode</a> <a href='#SkShader_kClamp_TileMode'>set</a> <a href='#SkShader_kClamp_TileMode'>replicates</a> <a href='#SkShader_kClamp_TileMode'>the</a> <a href='#SkCanvas_drawBitmapRect_bitmap'>bitmap</a> <a href='#SkCanvas_drawBitmapRect_bitmap'>edge</a> <a href='SkColor_Reference#Color'>color</a> <a href='SkColor_Reference#Color'>when</a> <a href='SkColor_Reference#Color'>it</a> <a href='SkColor_Reference#Color'>samples</a>
+If generated mask extends beyond <a href='#SkCanvas_drawBitmapRect_bitmap'>bitmap</a> bounds, replicate <a href='#SkCanvas_drawBitmapRect_bitmap'>bitmap</a> edge colors,
+just as <a href='undocumented#SkShader'>SkShader</a> made from <a href='undocumented#SkShader'>SkShader</a>::<a href='#SkShader_MakeBitmapShader'>MakeBitmapShader</a> with
+<a href='undocumented#SkShader'>SkShader</a>::<a href='#SkShader_kClamp_TileMode'>kClamp_TileMode</a> set replicates the <a href='#SkCanvas_drawBitmapRect_bitmap'>bitmap</a> edge <a href='SkColor_Reference#Color'>color</a> when it samples
outside of its bounds.
-<a href='#SkCanvas_drawBitmapRect_constraint'>constraint</a> <a href='#SkCanvas_drawBitmapRect_constraint'>set</a> <a href='#SkCanvas_drawBitmapRect_constraint'>to</a> <a href='#SkCanvas_kStrict_SrcRectConstraint'>kStrict_SrcRectConstraint</a> <a href='#SkCanvas_kStrict_SrcRectConstraint'>limits</a> <a href='SkPaint_Reference#SkPaint'>SkPaint</a> <a href='undocumented#SkFilterQuality'>SkFilterQuality</a> <a href='undocumented#SkFilterQuality'>to</a>
-sample within <a href='#SkCanvas_drawBitmapRect_src'>src</a>; <a href='#SkCanvas_drawBitmapRect_src'>set</a> <a href='#SkCanvas_drawBitmapRect_src'>to</a> <a href='#SkCanvas_kFast_SrcRectConstraint'>kFast_SrcRectConstraint</a> <a href='#SkCanvas_kFast_SrcRectConstraint'>allows</a> <a href='#SkCanvas_kFast_SrcRectConstraint'>sampling</a> <a href='#SkCanvas_kFast_SrcRectConstraint'>outside</a> <a href='#SkCanvas_kFast_SrcRectConstraint'>to</a>
+<a href='#SkCanvas_drawBitmapRect_constraint'>constraint</a> set to <a href='#SkCanvas_kStrict_SrcRectConstraint'>kStrict_SrcRectConstraint</a> limits <a href='SkPaint_Reference#SkPaint'>SkPaint</a> <a href='undocumented#SkFilterQuality'>SkFilterQuality</a> to
+sample within <a href='#SkCanvas_drawBitmapRect_src'>src</a>; set to <a href='#SkCanvas_kFast_SrcRectConstraint'>kFast_SrcRectConstraint</a> allows sampling outside to
improve performance.
### Parameters
<table> <tr> <td><a name='SkCanvas_drawBitmapRect_bitmap'><code><strong>bitmap</strong></code></a></td>
- <td><a href='SkBitmap_Reference#SkBitmap'>SkBitmap</a> <a href='SkBitmap_Reference#SkBitmap'>containing</a> <a href='SkBitmap_Reference#SkBitmap'>pixels</a>, <a href='SkBitmap_Reference#SkBitmap'>dimensions</a>, <a href='SkBitmap_Reference#SkBitmap'>and</a> <a href='SkBitmap_Reference#SkBitmap'>format</a></td>
+ <td><a href='SkBitmap_Reference#SkBitmap'>SkBitmap</a> containing pixels, dimensions, and format</td>
</tr>
<tr> <td><a name='SkCanvas_drawBitmapRect_src'><code><strong>src</strong></code></a></td>
- <td>source <a href='SkRect_Reference#SkRect'>SkRect</a> <a href='SkRect_Reference#SkRect'>of</a> <a href='SkImage_Reference#Image'>image</a> <a href='SkImage_Reference#Image'>to</a> <a href='SkImage_Reference#Image'>draw</a> <a href='SkImage_Reference#Image'>from</a></td>
+ <td>source <a href='SkRect_Reference#SkRect'>SkRect</a> of <a href='SkImage_Reference#Image'>image</a> to draw from</td>
</tr>
<tr> <td><a name='SkCanvas_drawBitmapRect_dst'><code><strong>dst</strong></code></a></td>
- <td>destination <a href='SkRect_Reference#SkRect'>SkRect</a> <a href='SkRect_Reference#SkRect'>of</a> <a href='SkImage_Reference#Image'>image</a> <a href='SkImage_Reference#Image'>to</a> <a href='SkImage_Reference#Image'>draw</a> <a href='SkImage_Reference#Image'>to</a></td>
+ <td>destination <a href='SkRect_Reference#SkRect'>SkRect</a> of <a href='SkImage_Reference#Image'>image</a> to draw to</td>
</tr>
<tr> <td><a name='SkCanvas_drawBitmapRect_paint'><code><strong>paint</strong></code></a></td>
- <td><a href='SkPaint_Reference#SkPaint'>SkPaint</a> <a href='SkPaint_Reference#SkPaint'>containing</a> <a href='SkBlendMode_Reference#SkBlendMode'>SkBlendMode</a>, <a href='undocumented#SkColorFilter'>SkColorFilter</a>, <a href='undocumented#SkImageFilter'>SkImageFilter</a>,</td>
+ <td><a href='SkPaint_Reference#SkPaint'>SkPaint</a> containing <a href='SkBlendMode_Reference#SkBlendMode'>SkBlendMode</a>, <a href='undocumented#SkColorFilter'>SkColorFilter</a>, <a href='undocumented#SkImageFilter'>SkImageFilter</a>,</td>
</tr>
</table>
@@ -4673,7 +4673,7 @@
### Parameters
<table> <tr> <td><a name='SkCanvas_drawBitmapRect_constraint'><code><strong>constraint</strong></code></a></td>
- <td>filter strictly within <a href='#SkCanvas_drawBitmapRect_src'>src</a> <a href='#SkCanvas_drawBitmapRect_src'>or</a> <a href='#SkCanvas_drawBitmapRect_src'>draw</a> <a href='#SkCanvas_drawBitmapRect_src'>faster</a></td>
+ <td>filter strictly within <a href='#SkCanvas_drawBitmapRect_src'>src</a> or draw faster</td>
</tr>
</table>
@@ -4690,40 +4690,40 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-void <a href='#SkCanvas_drawBitmapRect'>drawBitmapRect</a>(<a href='#SkCanvas_drawBitmapRect'>const</a> <a href='SkBitmap_Reference#SkBitmap'>SkBitmap</a>& <a href='SkBitmap_Reference#Bitmap'>bitmap</a>, <a href='SkBitmap_Reference#Bitmap'>const</a> <a href='SkIRect_Reference#SkIRect'>SkIRect</a>& <a href='SkIRect_Reference#SkIRect'>isrc</a>, <a href='SkIRect_Reference#SkIRect'>const</a> <a href='SkRect_Reference#SkRect'>SkRect</a>& <a href='SkRect_Reference#SkRect'>dst</a>,
- <a href='SkRect_Reference#SkRect'>const</a> <a href='SkPaint_Reference#SkPaint'>SkPaint</a>* <a href='SkPaint_Reference#Paint'>paint</a>, <a href='#SkCanvas_SrcRectConstraint'>SrcRectConstraint</a> <a href='#SkCanvas_SrcRectConstraint'>constraint</a> = <a href='#SkCanvas_kStrict_SrcRectConstraint'>kStrict_SrcRectConstraint</a>)
+void <a href='#SkCanvas_drawBitmapRect'>drawBitmapRect</a>(const <a href='SkBitmap_Reference#SkBitmap'>SkBitmap</a>& <a href='SkBitmap_Reference#Bitmap'>bitmap</a>, const <a href='SkIRect_Reference#SkIRect'>SkIRect</a>& isrc, const <a href='SkRect_Reference#SkRect'>SkRect</a>& dst,
+ const <a href='SkPaint_Reference#SkPaint'>SkPaint</a>* <a href='SkPaint_Reference#Paint'>paint</a>, <a href='#SkCanvas_SrcRectConstraint'>SrcRectConstraint</a> constraint = <a href='#SkCanvas_kStrict_SrcRectConstraint'>kStrict_SrcRectConstraint</a>)
</pre>
-Draws <a href='SkIRect_Reference#SkIRect'>SkIRect</a> <a href='#SkCanvas_drawBitmapRect_2_isrc'>isrc</a> <a href='#SkCanvas_drawBitmapRect_2_isrc'>of</a> <a href='SkBitmap_Reference#SkBitmap'>SkBitmap</a> <a href='#SkCanvas_drawBitmapRect_2_bitmap'>bitmap</a>, <a href='#SkCanvas_drawBitmapRect_2_bitmap'>scaled</a> <a href='#SkCanvas_drawBitmapRect_2_bitmap'>and</a> <a href='#SkCanvas_drawBitmapRect_2_bitmap'>translated</a> <a href='#SkCanvas_drawBitmapRect_2_bitmap'>to</a> <a href='#SkCanvas_drawBitmapRect_2_bitmap'>fill</a> <a href='SkRect_Reference#SkRect'>SkRect</a> <a href='#SkCanvas_drawBitmapRect_2_dst'>dst</a>.
-<a href='#SkCanvas_drawBitmapRect_2_isrc'>isrc</a> <a href='#SkCanvas_drawBitmapRect_2_isrc'>is</a> <a href='#SkCanvas_drawBitmapRect_2_isrc'>on</a> <a href='#SkCanvas_drawBitmapRect_2_isrc'>integer</a> <a href='undocumented#Pixel'>pixel</a> <a href='undocumented#Pixel'>boundaries</a>; <a href='#SkCanvas_drawBitmapRect_2_dst'>dst</a> <a href='#SkCanvas_drawBitmapRect_2_dst'>may</a> <a href='#SkCanvas_drawBitmapRect_2_dst'>include</a> <a href='#SkCanvas_drawBitmapRect_2_dst'>fractional</a> <a href='#SkCanvas_drawBitmapRect_2_dst'>boundaries</a>.
-Additionally transform draw using clip, <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a>, <a href='SkMatrix_Reference#SkMatrix'>and</a> <a href='SkMatrix_Reference#SkMatrix'>optional</a> <a href='SkPaint_Reference#SkPaint'>SkPaint</a> <a href='#SkCanvas_drawBitmapRect_2_paint'>paint</a>.
+Draws <a href='SkIRect_Reference#SkIRect'>SkIRect</a> <a href='#SkCanvas_drawBitmapRect_2_isrc'>isrc</a> of <a href='SkBitmap_Reference#SkBitmap'>SkBitmap</a> <a href='#SkCanvas_drawBitmapRect_2_bitmap'>bitmap</a>, scaled and translated to fill <a href='SkRect_Reference#SkRect'>SkRect</a> <a href='#SkCanvas_drawBitmapRect_2_dst'>dst</a>.
+<a href='#SkCanvas_drawBitmapRect_2_isrc'>isrc</a> is on integer <a href='undocumented#Pixel'>pixel</a> boundaries; <a href='#SkCanvas_drawBitmapRect_2_dst'>dst</a> may include fractional boundaries.
+Additionally transform draw using clip, <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a>, and optional <a href='SkPaint_Reference#SkPaint'>SkPaint</a> <a href='#SkCanvas_drawBitmapRect_2_paint'>paint</a>.
-If <a href='SkPaint_Reference#SkPaint'>SkPaint</a> <a href='#SkCanvas_drawBitmapRect_2_paint'>paint</a> <a href='#SkCanvas_drawBitmapRect_2_paint'>is</a> <a href='#SkCanvas_drawBitmapRect_2_paint'>supplied</a>, <a href='#SkCanvas_drawBitmapRect_2_paint'>apply</a> <a href='undocumented#SkColorFilter'>SkColorFilter</a>, <a href='SkColor_Reference#Alpha'>alpha</a>, <a href='undocumented#SkImageFilter'>SkImageFilter</a>,
-<a href='SkBlendMode_Reference#SkBlendMode'>SkBlendMode</a>, <a href='SkBlendMode_Reference#SkBlendMode'>and</a> <a href='undocumented#SkDrawLooper'>SkDrawLooper</a>. <a href='undocumented#SkDrawLooper'>If</a> <a href='#SkCanvas_drawBitmapRect_2_bitmap'>bitmap</a> <a href='#SkCanvas_drawBitmapRect_2_bitmap'>is</a> <a href='SkImageInfo_Reference#kAlpha_8_SkColorType'>kAlpha_8_SkColorType</a>, <a href='SkImageInfo_Reference#kAlpha_8_SkColorType'>apply</a> <a href='undocumented#SkShader'>SkShader</a>.
-If <a href='#SkCanvas_drawBitmapRect_2_paint'>paint</a> <a href='#SkCanvas_drawBitmapRect_2_paint'>contains</a> <a href='undocumented#SkMaskFilter'>SkMaskFilter</a>, <a href='undocumented#SkMaskFilter'>generate</a> <a href='undocumented#SkMaskFilter'>mask</a> <a href='undocumented#SkMaskFilter'>from</a> <a href='#SkCanvas_drawBitmapRect_2_bitmap'>bitmap</a> <a href='#SkCanvas_drawBitmapRect_2_bitmap'>bounds</a>.
+If <a href='SkPaint_Reference#SkPaint'>SkPaint</a> <a href='#SkCanvas_drawBitmapRect_2_paint'>paint</a> is supplied, apply <a href='undocumented#SkColorFilter'>SkColorFilter</a>, <a href='SkColor_Reference#Alpha'>alpha</a>, <a href='undocumented#SkImageFilter'>SkImageFilter</a>,
+<a href='SkBlendMode_Reference#SkBlendMode'>SkBlendMode</a>, and <a href='undocumented#SkDrawLooper'>SkDrawLooper</a>. If <a href='#SkCanvas_drawBitmapRect_2_bitmap'>bitmap</a> is <a href='SkImageInfo_Reference#kAlpha_8_SkColorType'>kAlpha_8_SkColorType</a>, apply <a href='undocumented#SkShader'>SkShader</a>.
+If <a href='#SkCanvas_drawBitmapRect_2_paint'>paint</a> contains <a href='undocumented#SkMaskFilter'>SkMaskFilter</a>, generate mask from <a href='#SkCanvas_drawBitmapRect_2_bitmap'>bitmap</a> bounds.
-If generated mask extends beyond <a href='#SkCanvas_drawBitmapRect_2_bitmap'>bitmap</a> <a href='#SkCanvas_drawBitmapRect_2_bitmap'>bounds</a>, <a href='#SkCanvas_drawBitmapRect_2_bitmap'>replicate</a> <a href='#SkCanvas_drawBitmapRect_2_bitmap'>bitmap</a> <a href='#SkCanvas_drawBitmapRect_2_bitmap'>edge</a> <a href='#SkCanvas_drawBitmapRect_2_bitmap'>colors</a>,
-just as <a href='undocumented#SkShader'>SkShader</a> <a href='undocumented#SkShader'>made</a> <a href='undocumented#SkShader'>from</a> <a href='undocumented#SkShader'>SkShader</a>::<a href='#SkShader_MakeBitmapShader'>MakeBitmapShader</a> <a href='#SkShader_MakeBitmapShader'>with</a>
-<a href='undocumented#SkShader'>SkShader</a>::<a href='#SkShader_kClamp_TileMode'>kClamp_TileMode</a> <a href='#SkShader_kClamp_TileMode'>set</a> <a href='#SkShader_kClamp_TileMode'>replicates</a> <a href='#SkShader_kClamp_TileMode'>the</a> <a href='#SkCanvas_drawBitmapRect_2_bitmap'>bitmap</a> <a href='#SkCanvas_drawBitmapRect_2_bitmap'>edge</a> <a href='SkColor_Reference#Color'>color</a> <a href='SkColor_Reference#Color'>when</a> <a href='SkColor_Reference#Color'>it</a> <a href='SkColor_Reference#Color'>samples</a>
+If generated mask extends beyond <a href='#SkCanvas_drawBitmapRect_2_bitmap'>bitmap</a> bounds, replicate <a href='#SkCanvas_drawBitmapRect_2_bitmap'>bitmap</a> edge colors,
+just as <a href='undocumented#SkShader'>SkShader</a> made from <a href='undocumented#SkShader'>SkShader</a>::<a href='#SkShader_MakeBitmapShader'>MakeBitmapShader</a> with
+<a href='undocumented#SkShader'>SkShader</a>::<a href='#SkShader_kClamp_TileMode'>kClamp_TileMode</a> set replicates the <a href='#SkCanvas_drawBitmapRect_2_bitmap'>bitmap</a> edge <a href='SkColor_Reference#Color'>color</a> when it samples
outside of its bounds.
-<a href='#SkCanvas_drawBitmapRect_2_constraint'>constraint</a> <a href='#SkCanvas_drawBitmapRect_2_constraint'>set</a> <a href='#SkCanvas_drawBitmapRect_2_constraint'>to</a> <a href='#SkCanvas_kStrict_SrcRectConstraint'>kStrict_SrcRectConstraint</a> <a href='#SkCanvas_kStrict_SrcRectConstraint'>limits</a> <a href='SkPaint_Reference#SkPaint'>SkPaint</a> <a href='undocumented#SkFilterQuality'>SkFilterQuality</a> <a href='undocumented#SkFilterQuality'>to</a>
-sample within <a href='#SkCanvas_drawBitmapRect_2_isrc'>isrc</a>; <a href='#SkCanvas_drawBitmapRect_2_isrc'>set</a> <a href='#SkCanvas_drawBitmapRect_2_isrc'>to</a> <a href='#SkCanvas_kFast_SrcRectConstraint'>kFast_SrcRectConstraint</a> <a href='#SkCanvas_kFast_SrcRectConstraint'>allows</a> <a href='#SkCanvas_kFast_SrcRectConstraint'>sampling</a> <a href='#SkCanvas_kFast_SrcRectConstraint'>outside</a> <a href='#SkCanvas_kFast_SrcRectConstraint'>to</a>
+<a href='#SkCanvas_drawBitmapRect_2_constraint'>constraint</a> set to <a href='#SkCanvas_kStrict_SrcRectConstraint'>kStrict_SrcRectConstraint</a> limits <a href='SkPaint_Reference#SkPaint'>SkPaint</a> <a href='undocumented#SkFilterQuality'>SkFilterQuality</a> to
+sample within <a href='#SkCanvas_drawBitmapRect_2_isrc'>isrc</a>; set to <a href='#SkCanvas_kFast_SrcRectConstraint'>kFast_SrcRectConstraint</a> allows sampling outside to
improve performance.
### Parameters
<table> <tr> <td><a name='SkCanvas_drawBitmapRect_2_bitmap'><code><strong>bitmap</strong></code></a></td>
- <td><a href='SkBitmap_Reference#SkBitmap'>SkBitmap</a> <a href='SkBitmap_Reference#SkBitmap'>containing</a> <a href='SkBitmap_Reference#SkBitmap'>pixels</a>, <a href='SkBitmap_Reference#SkBitmap'>dimensions</a>, <a href='SkBitmap_Reference#SkBitmap'>and</a> <a href='SkBitmap_Reference#SkBitmap'>format</a></td>
+ <td><a href='SkBitmap_Reference#SkBitmap'>SkBitmap</a> containing pixels, dimensions, and format</td>
</tr>
<tr> <td><a name='SkCanvas_drawBitmapRect_2_isrc'><code><strong>isrc</strong></code></a></td>
- <td>source <a href='SkIRect_Reference#SkIRect'>SkIRect</a> <a href='SkIRect_Reference#SkIRect'>of</a> <a href='SkImage_Reference#Image'>image</a> <a href='SkImage_Reference#Image'>to</a> <a href='SkImage_Reference#Image'>draw</a> <a href='SkImage_Reference#Image'>from</a></td>
+ <td>source <a href='SkIRect_Reference#SkIRect'>SkIRect</a> of <a href='SkImage_Reference#Image'>image</a> to draw from</td>
</tr>
<tr> <td><a name='SkCanvas_drawBitmapRect_2_dst'><code><strong>dst</strong></code></a></td>
- <td>destination <a href='SkRect_Reference#SkRect'>SkRect</a> <a href='SkRect_Reference#SkRect'>of</a> <a href='SkImage_Reference#Image'>image</a> <a href='SkImage_Reference#Image'>to</a> <a href='SkImage_Reference#Image'>draw</a> <a href='SkImage_Reference#Image'>to</a></td>
+ <td>destination <a href='SkRect_Reference#SkRect'>SkRect</a> of <a href='SkImage_Reference#Image'>image</a> to draw to</td>
</tr>
<tr> <td><a name='SkCanvas_drawBitmapRect_2_paint'><code><strong>paint</strong></code></a></td>
- <td><a href='SkPaint_Reference#SkPaint'>SkPaint</a> <a href='SkPaint_Reference#SkPaint'>containing</a> <a href='SkBlendMode_Reference#SkBlendMode'>SkBlendMode</a>, <a href='undocumented#SkColorFilter'>SkColorFilter</a>, <a href='undocumented#SkImageFilter'>SkImageFilter</a>,</td>
+ <td><a href='SkPaint_Reference#SkPaint'>SkPaint</a> containing <a href='SkBlendMode_Reference#SkBlendMode'>SkBlendMode</a>, <a href='undocumented#SkColorFilter'>SkColorFilter</a>, <a href='undocumented#SkImageFilter'>SkImageFilter</a>,</td>
</tr>
</table>
@@ -4732,7 +4732,7 @@
### Parameters
<table> <tr> <td><a name='SkCanvas_drawBitmapRect_2_constraint'><code><strong>constraint</strong></code></a></td>
- <td>sample strictly within <a href='#SkCanvas_drawBitmapRect_2_isrc'>isrc</a>, <a href='#SkCanvas_drawBitmapRect_2_isrc'>or</a> <a href='#SkCanvas_drawBitmapRect_2_isrc'>draw</a> <a href='#SkCanvas_drawBitmapRect_2_isrc'>faster</a></td>
+ <td>sample strictly within <a href='#SkCanvas_drawBitmapRect_2_isrc'>isrc</a>, or draw faster</td>
</tr>
</table>
@@ -4749,37 +4749,37 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-void <a href='#SkCanvas_drawBitmapRect'>drawBitmapRect</a>(<a href='#SkCanvas_drawBitmapRect'>const</a> <a href='SkBitmap_Reference#SkBitmap'>SkBitmap</a>& <a href='SkBitmap_Reference#Bitmap'>bitmap</a>, <a href='SkBitmap_Reference#Bitmap'>const</a> <a href='SkRect_Reference#SkRect'>SkRect</a>& <a href='SkRect_Reference#SkRect'>dst</a>, <a href='SkRect_Reference#SkRect'>const</a> <a href='SkPaint_Reference#SkPaint'>SkPaint</a>* <a href='SkPaint_Reference#Paint'>paint</a>,
- <a href='#SkCanvas_SrcRectConstraint'>SrcRectConstraint</a> <a href='#SkCanvas_SrcRectConstraint'>constraint</a> = <a href='#SkCanvas_kStrict_SrcRectConstraint'>kStrict_SrcRectConstraint</a>)
+void <a href='#SkCanvas_drawBitmapRect'>drawBitmapRect</a>(const <a href='SkBitmap_Reference#SkBitmap'>SkBitmap</a>& <a href='SkBitmap_Reference#Bitmap'>bitmap</a>, const <a href='SkRect_Reference#SkRect'>SkRect</a>& dst, const <a href='SkPaint_Reference#SkPaint'>SkPaint</a>* <a href='SkPaint_Reference#Paint'>paint</a>,
+ <a href='#SkCanvas_SrcRectConstraint'>SrcRectConstraint</a> constraint = <a href='#SkCanvas_kStrict_SrcRectConstraint'>kStrict_SrcRectConstraint</a>)
</pre>
-Draws <a href='SkBitmap_Reference#SkBitmap'>SkBitmap</a> <a href='#SkCanvas_drawBitmapRect_3_bitmap'>bitmap</a>, <a href='#SkCanvas_drawBitmapRect_3_bitmap'>scaled</a> <a href='#SkCanvas_drawBitmapRect_3_bitmap'>and</a> <a href='#SkCanvas_drawBitmapRect_3_bitmap'>translated</a> <a href='#SkCanvas_drawBitmapRect_3_bitmap'>to</a> <a href='#SkCanvas_drawBitmapRect_3_bitmap'>fill</a> <a href='SkRect_Reference#SkRect'>SkRect</a> <a href='#SkCanvas_drawBitmapRect_3_dst'>dst</a>.
-<a href='#SkCanvas_drawBitmapRect_3_bitmap'>bitmap</a> <a href='#SkCanvas_drawBitmapRect_3_bitmap'>bounds</a> <a href='#SkCanvas_drawBitmapRect_3_bitmap'>is</a> <a href='#SkCanvas_drawBitmapRect_3_bitmap'>on</a> <a href='#SkCanvas_drawBitmapRect_3_bitmap'>integer</a> <a href='undocumented#Pixel'>pixel</a> <a href='undocumented#Pixel'>boundaries</a>; <a href='#SkCanvas_drawBitmapRect_3_dst'>dst</a> <a href='#SkCanvas_drawBitmapRect_3_dst'>may</a> <a href='#SkCanvas_drawBitmapRect_3_dst'>include</a> <a href='#SkCanvas_drawBitmapRect_3_dst'>fractional</a> <a href='#SkCanvas_drawBitmapRect_3_dst'>boundaries</a>.
-Additionally transform draw using clip, <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a>, <a href='SkMatrix_Reference#SkMatrix'>and</a> <a href='SkMatrix_Reference#SkMatrix'>optional</a> <a href='SkPaint_Reference#SkPaint'>SkPaint</a> <a href='#SkCanvas_drawBitmapRect_3_paint'>paint</a>.
+Draws <a href='SkBitmap_Reference#SkBitmap'>SkBitmap</a> <a href='#SkCanvas_drawBitmapRect_3_bitmap'>bitmap</a>, scaled and translated to fill <a href='SkRect_Reference#SkRect'>SkRect</a> <a href='#SkCanvas_drawBitmapRect_3_dst'>dst</a>.
+<a href='#SkCanvas_drawBitmapRect_3_bitmap'>bitmap</a> bounds is on integer <a href='undocumented#Pixel'>pixel</a> boundaries; <a href='#SkCanvas_drawBitmapRect_3_dst'>dst</a> may include fractional boundaries.
+Additionally transform draw using clip, <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a>, and optional <a href='SkPaint_Reference#SkPaint'>SkPaint</a> <a href='#SkCanvas_drawBitmapRect_3_paint'>paint</a>.
-If <a href='SkPaint_Reference#SkPaint'>SkPaint</a> <a href='#SkCanvas_drawBitmapRect_3_paint'>paint</a> <a href='#SkCanvas_drawBitmapRect_3_paint'>is</a> <a href='#SkCanvas_drawBitmapRect_3_paint'>supplied</a>, <a href='#SkCanvas_drawBitmapRect_3_paint'>apply</a> <a href='undocumented#SkColorFilter'>SkColorFilter</a>, <a href='SkColor_Reference#Alpha'>alpha</a>, <a href='undocumented#SkImageFilter'>SkImageFilter</a>,
-<a href='SkBlendMode_Reference#SkBlendMode'>SkBlendMode</a>, <a href='SkBlendMode_Reference#SkBlendMode'>and</a> <a href='undocumented#SkDrawLooper'>SkDrawLooper</a>. <a href='undocumented#SkDrawLooper'>If</a> <a href='#SkCanvas_drawBitmapRect_3_bitmap'>bitmap</a> <a href='#SkCanvas_drawBitmapRect_3_bitmap'>is</a> <a href='SkImageInfo_Reference#kAlpha_8_SkColorType'>kAlpha_8_SkColorType</a>, <a href='SkImageInfo_Reference#kAlpha_8_SkColorType'>apply</a> <a href='undocumented#SkShader'>SkShader</a>.
-If <a href='#SkCanvas_drawBitmapRect_3_paint'>paint</a> <a href='#SkCanvas_drawBitmapRect_3_paint'>contains</a> <a href='undocumented#SkMaskFilter'>SkMaskFilter</a>, <a href='undocumented#SkMaskFilter'>generate</a> <a href='undocumented#SkMaskFilter'>mask</a> <a href='undocumented#SkMaskFilter'>from</a> <a href='#SkCanvas_drawBitmapRect_3_bitmap'>bitmap</a> <a href='#SkCanvas_drawBitmapRect_3_bitmap'>bounds</a>.
+If <a href='SkPaint_Reference#SkPaint'>SkPaint</a> <a href='#SkCanvas_drawBitmapRect_3_paint'>paint</a> is supplied, apply <a href='undocumented#SkColorFilter'>SkColorFilter</a>, <a href='SkColor_Reference#Alpha'>alpha</a>, <a href='undocumented#SkImageFilter'>SkImageFilter</a>,
+<a href='SkBlendMode_Reference#SkBlendMode'>SkBlendMode</a>, and <a href='undocumented#SkDrawLooper'>SkDrawLooper</a>. If <a href='#SkCanvas_drawBitmapRect_3_bitmap'>bitmap</a> is <a href='SkImageInfo_Reference#kAlpha_8_SkColorType'>kAlpha_8_SkColorType</a>, apply <a href='undocumented#SkShader'>SkShader</a>.
+If <a href='#SkCanvas_drawBitmapRect_3_paint'>paint</a> contains <a href='undocumented#SkMaskFilter'>SkMaskFilter</a>, generate mask from <a href='#SkCanvas_drawBitmapRect_3_bitmap'>bitmap</a> bounds.
-If generated mask extends beyond <a href='#SkCanvas_drawBitmapRect_3_bitmap'>bitmap</a> <a href='#SkCanvas_drawBitmapRect_3_bitmap'>bounds</a>, <a href='#SkCanvas_drawBitmapRect_3_bitmap'>replicate</a> <a href='#SkCanvas_drawBitmapRect_3_bitmap'>bitmap</a> <a href='#SkCanvas_drawBitmapRect_3_bitmap'>edge</a> <a href='#SkCanvas_drawBitmapRect_3_bitmap'>colors</a>,
-just as <a href='undocumented#SkShader'>SkShader</a> <a href='undocumented#SkShader'>made</a> <a href='undocumented#SkShader'>from</a> <a href='undocumented#SkShader'>SkShader</a>::<a href='#SkShader_MakeBitmapShader'>MakeBitmapShader</a> <a href='#SkShader_MakeBitmapShader'>with</a>
-<a href='undocumented#SkShader'>SkShader</a>::<a href='#SkShader_kClamp_TileMode'>kClamp_TileMode</a> <a href='#SkShader_kClamp_TileMode'>set</a> <a href='#SkShader_kClamp_TileMode'>replicates</a> <a href='#SkShader_kClamp_TileMode'>the</a> <a href='#SkCanvas_drawBitmapRect_3_bitmap'>bitmap</a> <a href='#SkCanvas_drawBitmapRect_3_bitmap'>edge</a> <a href='SkColor_Reference#Color'>color</a> <a href='SkColor_Reference#Color'>when</a> <a href='SkColor_Reference#Color'>it</a> <a href='SkColor_Reference#Color'>samples</a>
+If generated mask extends beyond <a href='#SkCanvas_drawBitmapRect_3_bitmap'>bitmap</a> bounds, replicate <a href='#SkCanvas_drawBitmapRect_3_bitmap'>bitmap</a> edge colors,
+just as <a href='undocumented#SkShader'>SkShader</a> made from <a href='undocumented#SkShader'>SkShader</a>::<a href='#SkShader_MakeBitmapShader'>MakeBitmapShader</a> with
+<a href='undocumented#SkShader'>SkShader</a>::<a href='#SkShader_kClamp_TileMode'>kClamp_TileMode</a> set replicates the <a href='#SkCanvas_drawBitmapRect_3_bitmap'>bitmap</a> edge <a href='SkColor_Reference#Color'>color</a> when it samples
outside of its bounds.
-<a href='#SkCanvas_drawBitmapRect_3_constraint'>constraint</a> <a href='#SkCanvas_drawBitmapRect_3_constraint'>set</a> <a href='#SkCanvas_drawBitmapRect_3_constraint'>to</a> <a href='#SkCanvas_kStrict_SrcRectConstraint'>kStrict_SrcRectConstraint</a> <a href='#SkCanvas_kStrict_SrcRectConstraint'>limits</a> <a href='SkPaint_Reference#SkPaint'>SkPaint</a> <a href='undocumented#SkFilterQuality'>SkFilterQuality</a> <a href='undocumented#SkFilterQuality'>to</a>
-sample within <a href='#SkCanvas_drawBitmapRect_3_bitmap'>bitmap</a>; <a href='#SkCanvas_drawBitmapRect_3_bitmap'>set</a> <a href='#SkCanvas_drawBitmapRect_3_bitmap'>to</a> <a href='#SkCanvas_kFast_SrcRectConstraint'>kFast_SrcRectConstraint</a> <a href='#SkCanvas_kFast_SrcRectConstraint'>allows</a> <a href='#SkCanvas_kFast_SrcRectConstraint'>sampling</a> <a href='#SkCanvas_kFast_SrcRectConstraint'>outside</a> <a href='#SkCanvas_kFast_SrcRectConstraint'>to</a>
+<a href='#SkCanvas_drawBitmapRect_3_constraint'>constraint</a> set to <a href='#SkCanvas_kStrict_SrcRectConstraint'>kStrict_SrcRectConstraint</a> limits <a href='SkPaint_Reference#SkPaint'>SkPaint</a> <a href='undocumented#SkFilterQuality'>SkFilterQuality</a> to
+sample within <a href='#SkCanvas_drawBitmapRect_3_bitmap'>bitmap</a>; set to <a href='#SkCanvas_kFast_SrcRectConstraint'>kFast_SrcRectConstraint</a> allows sampling outside to
improve performance.
### Parameters
<table> <tr> <td><a name='SkCanvas_drawBitmapRect_3_bitmap'><code><strong>bitmap</strong></code></a></td>
- <td><a href='SkBitmap_Reference#SkBitmap'>SkBitmap</a> <a href='SkBitmap_Reference#SkBitmap'>containing</a> <a href='SkBitmap_Reference#SkBitmap'>pixels</a>, <a href='SkBitmap_Reference#SkBitmap'>dimensions</a>, <a href='SkBitmap_Reference#SkBitmap'>and</a> <a href='SkBitmap_Reference#SkBitmap'>format</a></td>
+ <td><a href='SkBitmap_Reference#SkBitmap'>SkBitmap</a> containing pixels, dimensions, and format</td>
</tr>
<tr> <td><a name='SkCanvas_drawBitmapRect_3_dst'><code><strong>dst</strong></code></a></td>
- <td>destination <a href='SkRect_Reference#SkRect'>SkRect</a> <a href='SkRect_Reference#SkRect'>of</a> <a href='SkImage_Reference#Image'>image</a> <a href='SkImage_Reference#Image'>to</a> <a href='SkImage_Reference#Image'>draw</a> <a href='SkImage_Reference#Image'>to</a></td>
+ <td>destination <a href='SkRect_Reference#SkRect'>SkRect</a> of <a href='SkImage_Reference#Image'>image</a> to draw to</td>
</tr>
<tr> <td><a name='SkCanvas_drawBitmapRect_3_paint'><code><strong>paint</strong></code></a></td>
- <td><a href='SkPaint_Reference#SkPaint'>SkPaint</a> <a href='SkPaint_Reference#SkPaint'>containing</a> <a href='SkBlendMode_Reference#SkBlendMode'>SkBlendMode</a>, <a href='undocumented#SkColorFilter'>SkColorFilter</a>, <a href='undocumented#SkImageFilter'>SkImageFilter</a>,</td>
+ <td><a href='SkPaint_Reference#SkPaint'>SkPaint</a> containing <a href='SkBlendMode_Reference#SkBlendMode'>SkBlendMode</a>, <a href='undocumented#SkColorFilter'>SkColorFilter</a>, <a href='undocumented#SkImageFilter'>SkImageFilter</a>,</td>
</tr>
</table>
@@ -4788,7 +4788,7 @@
### Parameters
<table> <tr> <td><a name='SkCanvas_drawBitmapRect_3_constraint'><code><strong>constraint</strong></code></a></td>
- <td>filter strictly within <a href='#SkCanvas_drawBitmapRect_3_bitmap'>bitmap</a> <a href='#SkCanvas_drawBitmapRect_3_bitmap'>or</a> <a href='#SkCanvas_drawBitmapRect_3_bitmap'>draw</a> <a href='#SkCanvas_drawBitmapRect_3_bitmap'>faster</a></td>
+ <td>filter strictly within <a href='#SkCanvas_drawBitmapRect_3_bitmap'>bitmap</a> or draw faster</td>
</tr>
</table>
@@ -4805,54 +4805,54 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-void <a href='#SkCanvas_drawBitmapNine'>drawBitmapNine</a>(<a href='#SkCanvas_drawBitmapNine'>const</a> <a href='SkBitmap_Reference#SkBitmap'>SkBitmap</a>& <a href='SkBitmap_Reference#Bitmap'>bitmap</a>, <a href='SkBitmap_Reference#Bitmap'>const</a> <a href='SkIRect_Reference#SkIRect'>SkIRect</a>& <a href='SkIRect_Reference#SkIRect'>center</a>, <a href='SkIRect_Reference#SkIRect'>const</a> <a href='SkRect_Reference#SkRect'>SkRect</a>& <a href='SkRect_Reference#SkRect'>dst</a>,
- <a href='SkRect_Reference#SkRect'>const</a> <a href='SkPaint_Reference#SkPaint'>SkPaint</a>* <a href='SkPaint_Reference#Paint'>paint</a> = <a href='SkPaint_Reference#Paint'>nullptr</a>)
+void <a href='#SkCanvas_drawBitmapNine'>drawBitmapNine</a>(const <a href='SkBitmap_Reference#SkBitmap'>SkBitmap</a>& <a href='SkBitmap_Reference#Bitmap'>bitmap</a>, const <a href='SkIRect_Reference#SkIRect'>SkIRect</a>& center, const <a href='SkRect_Reference#SkRect'>SkRect</a>& dst,
+ const <a href='SkPaint_Reference#SkPaint'>SkPaint</a>* <a href='SkPaint_Reference#Paint'>paint</a> = nullptr)
</pre>
-Draws <a href='SkBitmap_Reference#Bitmap'>Bitmap</a> <a href='#SkCanvas_drawBitmapNine_bitmap'>bitmap</a> <a href='#SkCanvas_drawBitmapNine_bitmap'>stretched</a> <a href='#SkCanvas_drawBitmapNine_bitmap'>proportionally</a> <a href='#SkCanvas_drawBitmapNine_bitmap'>to</a> <a href='#SkCanvas_drawBitmapNine_bitmap'>fit</a> <a href='#SkCanvas_drawBitmapNine_bitmap'>into</a> <a href='SkRect_Reference#Rect'>Rect</a> <a href='#SkCanvas_drawBitmapNine_dst'>dst</a>.
-<a href='SkIRect_Reference#IRect'>IRect</a> <a href='#SkCanvas_drawBitmapNine_center'>center</a> <a href='#SkCanvas_drawBitmapNine_center'>divides</a> <a href='#SkCanvas_drawBitmapNine_center'>the</a> <a href='#SkCanvas_drawBitmapNine_bitmap'>bitmap</a> <a href='#SkCanvas_drawBitmapNine_bitmap'>into</a> <a href='#SkCanvas_drawBitmapNine_bitmap'>nine</a> <a href='#SkCanvas_drawBitmapNine_bitmap'>sections</a>: <a href='#SkCanvas_drawBitmapNine_bitmap'>four</a> <a href='#SkCanvas_drawBitmapNine_bitmap'>sides</a>, <a href='#SkCanvas_drawBitmapNine_bitmap'>four</a> <a href='#SkCanvas_drawBitmapNine_bitmap'>corners</a>,
-<a href='#SkCanvas_drawBitmapNine_bitmap'>and</a> <a href='#SkCanvas_drawBitmapNine_bitmap'>the</a> <a href='#SkCanvas_drawBitmapNine_center'>center</a>. <a href='#SkCanvas_drawBitmapNine_center'>Corners</a> <a href='#SkCanvas_drawBitmapNine_center'>are</a> <a href='#SkCanvas_drawBitmapNine_center'>not</a> <a href='#SkCanvas_drawBitmapNine_center'>scaled</a>, <a href='#SkCanvas_drawBitmapNine_center'>or</a> <a href='#SkCanvas_drawBitmapNine_center'>scaled</a> <a href='#SkCanvas_drawBitmapNine_center'>down</a> <a href='#SkCanvas_drawBitmapNine_center'>proportionately</a> <a href='#SkCanvas_drawBitmapNine_center'>if</a> <a href='#SkCanvas_drawBitmapNine_center'>their</a>
-<a href='#SkCanvas_drawBitmapNine_center'>sides</a> <a href='#SkCanvas_drawBitmapNine_center'>are</a> <a href='#SkCanvas_drawBitmapNine_center'>larger</a> <a href='#SkCanvas_drawBitmapNine_center'>than</a> <a href='#SkCanvas_drawBitmapNine_dst'>dst</a>; <a href='#SkCanvas_drawBitmapNine_center'>center</a> <a href='#SkCanvas_drawBitmapNine_center'>and</a> <a href='#SkCanvas_drawBitmapNine_center'>four</a> <a href='#SkCanvas_drawBitmapNine_center'>sides</a> <a href='#SkCanvas_drawBitmapNine_center'>are</a> <a href='#SkCanvas_drawBitmapNine_center'>scaled</a> <a href='#SkCanvas_drawBitmapNine_center'>to</a> <a href='#SkCanvas_drawBitmapNine_center'>fit</a> <a href='#SkCanvas_drawBitmapNine_center'>remaining</a>
-<a href='#SkCanvas_drawBitmapNine_center'>space</a>, <a href='#SkCanvas_drawBitmapNine_center'>if</a> <a href='#SkCanvas_drawBitmapNine_center'>any</a>.
+Draws <a href='SkBitmap_Reference#Bitmap'>Bitmap</a> <a href='#SkCanvas_drawBitmapNine_bitmap'>bitmap</a> stretched proportionally to fit into <a href='SkRect_Reference#Rect'>Rect</a> <a href='#SkCanvas_drawBitmapNine_dst'>dst</a>.
+<a href='SkIRect_Reference#IRect'>IRect</a> <a href='#SkCanvas_drawBitmapNine_center'>center</a> divides the <a href='#SkCanvas_drawBitmapNine_bitmap'>bitmap</a> into nine sections: four sides, four corners,
+and the <a href='#SkCanvas_drawBitmapNine_center'>center</a>. Corners are not scaled, or scaled down proportionately if their
+sides are larger than <a href='#SkCanvas_drawBitmapNine_dst'>dst</a>; <a href='#SkCanvas_drawBitmapNine_center'>center</a> and four sides are scaled to fit remaining
+space, if any.
-<a href='#SkCanvas_drawBitmapNine_center'>Additionally</a> <a href='#SkCanvas_drawBitmapNine_center'>transform</a> <a href='#SkCanvas_drawBitmapNine_center'>draw</a> <a href='#SkCanvas_drawBitmapNine_center'>using</a> <a href='#SkCanvas_drawBitmapNine_center'>Clip</a>, <a href='SkMatrix_Reference#Matrix'>Matrix</a>, <a href='SkMatrix_Reference#Matrix'>and</a> <a href='SkMatrix_Reference#Matrix'>optional</a> <a href='SkPaint_Reference#Paint'>Paint</a> <a href='#SkCanvas_drawBitmapNine_paint'>paint</a>.
-If <a href='SkPaint_Reference#Paint'>Paint</a> <a href='#SkCanvas_drawBitmapNine_paint'>paint</a> <a href='#SkCanvas_drawBitmapNine_paint'>is</a> <a href='#SkCanvas_drawBitmapNine_paint'>supplied</a>, <a href='#SkCanvas_drawBitmapNine_paint'>apply</a> <a href='#Color_Filter'>Color_Filter</a>, <a href='#Color_Alpha'>Color_Alpha</a>, <a href='#Image_Filter'>Image_Filter</a>,
-<a href='#Blend_Mode'>Blend_Mode</a>, <a href='#Blend_Mode'>and</a> <a href='#Draw_Looper'>Draw_Looper</a>. <a href='#Draw_Looper'>If</a> bitmap is <a href='SkImageInfo_Reference#kAlpha_8_SkColorType'>kAlpha_8_SkColorType</a>, <a href='SkImageInfo_Reference#kAlpha_8_SkColorType'>apply</a> <a href='undocumented#Shader'>Shader</a>.
-<a href='undocumented#Shader'>If</a> <a href='#SkCanvas_drawBitmapNine_paint'>paint</a> <a href='#SkCanvas_drawBitmapNine_paint'>contains</a> <a href='#Mask_Filter'>Mask_Filter</a>, <a href='#Mask_Filter'>generate</a> <a href='#Mask_Filter'>mask</a> <a href='#Mask_Filter'>from</a> bitmap bounds. If <a href='#SkCanvas_drawBitmapNine_paint'>paint</a>
-<a href='#Filter_Quality'>Filter_Quality</a> <a href='#Filter_Quality'>set</a> <a href='#Filter_Quality'>to</a> <a href='undocumented#kNone_SkFilterQuality'>kNone_SkFilterQuality</a>, <a href='undocumented#kNone_SkFilterQuality'>disable</a> <a href='undocumented#Pixel'>pixel</a> <a href='undocumented#Pixel'>filtering</a>. <a href='undocumented#Pixel'>For</a> <a href='undocumented#Pixel'>all</a>
-<a href='undocumented#Pixel'>other</a> <a href='undocumented#Pixel'>values</a> <a href='undocumented#Pixel'>of</a> <a href='#SkCanvas_drawBitmapNine_paint'>paint</a> <a href='#Filter_Quality'>Filter_Quality</a>, <a href='#Filter_Quality'>use</a> <a href='undocumented#kLow_SkFilterQuality'>kLow_SkFilterQuality</a> <a href='undocumented#kLow_SkFilterQuality'>to</a> <a href='undocumented#kLow_SkFilterQuality'>filter</a> <a href='undocumented#kLow_SkFilterQuality'>pixels</a>.
-<a href='undocumented#kLow_SkFilterQuality'>Any</a> <a href='undocumented#SkMaskFilter'>SkMaskFilter</a> <a href='undocumented#SkMaskFilter'>on</a> <a href='#SkCanvas_drawBitmapNine_paint'>paint</a> <a href='#SkCanvas_drawBitmapNine_paint'>is</a> <a href='#SkCanvas_drawBitmapNine_paint'>ignored</a> <a href='#SkCanvas_drawBitmapNine_paint'>as</a> <a href='#SkCanvas_drawBitmapNine_paint'>is</a> <a href='#SkCanvas_drawBitmapNine_paint'>paint</a> <a href='#Paint_Anti_Alias'>Anti_Aliasing</a> <a href='#Paint_Anti_Alias'>state</a>.
-If generated mask extends beyond <a href='#SkCanvas_drawBitmapNine_bitmap'>bitmap</a> <a href='#SkCanvas_drawBitmapNine_bitmap'>bounds</a>, <a href='#SkCanvas_drawBitmapNine_bitmap'>replicate</a> <a href='#SkCanvas_drawBitmapNine_bitmap'>bitmap</a> <a href='#SkCanvas_drawBitmapNine_bitmap'>edge</a> <a href='#SkCanvas_drawBitmapNine_bitmap'>colors</a>,
-<a href='#SkCanvas_drawBitmapNine_bitmap'>just</a> <a href='#SkCanvas_drawBitmapNine_bitmap'>as</a> <a href='undocumented#Shader'>Shader</a> <a href='undocumented#Shader'>made</a> <a href='undocumented#Shader'>from</a> <a href='undocumented#SkShader'>SkShader</a>::<a href='#SkShader_MakeBitmapShader'>MakeBitmapShader</a> <a href='#SkShader_MakeBitmapShader'>with</a>
-<a href='undocumented#SkShader'>SkShader</a>::<a href='#SkShader_kClamp_TileMode'>kClamp_TileMode</a> <a href='#SkShader_kClamp_TileMode'>set</a> <a href='#SkShader_kClamp_TileMode'>replicates</a> <a href='#SkShader_kClamp_TileMode'>the</a> <a href='#SkCanvas_drawBitmapNine_bitmap'>bitmap</a> <a href='#SkCanvas_drawBitmapNine_bitmap'>edge</a> <a href='SkColor_Reference#Color'>color</a> <a href='SkColor_Reference#Color'>when</a> <a href='SkColor_Reference#Color'>it</a> <a href='SkColor_Reference#Color'>samples</a>
-<a href='SkColor_Reference#Color'>outside</a> <a href='SkColor_Reference#Color'>of</a> <a href='SkColor_Reference#Color'>its</a> <a href='SkColor_Reference#Color'>bounds</a>.
+Additionally transform draw using Clip, <a href='SkMatrix_Reference#Matrix'>Matrix</a>, and optional <a href='SkPaint_Reference#Paint'>Paint</a> <a href='#SkCanvas_drawBitmapNine_paint'>paint</a>.
+If <a href='SkPaint_Reference#Paint'>Paint</a> <a href='#SkCanvas_drawBitmapNine_paint'>paint</a> is supplied, apply <a href='#Color_Filter'>Color_Filter</a>, <a href='#Color_Alpha'>Color_Alpha</a>, <a href='#Image_Filter'>Image_Filter</a>,
+<a href='#Blend_Mode'>Blend_Mode</a>, and <a href='#Draw_Looper'>Draw_Looper</a>. If bitmap is <a href='SkImageInfo_Reference#kAlpha_8_SkColorType'>kAlpha_8_SkColorType</a>, apply <a href='undocumented#Shader'>Shader</a>.
+If <a href='#SkCanvas_drawBitmapNine_paint'>paint</a> contains <a href='#Mask_Filter'>Mask_Filter</a>, generate mask from bitmap bounds. If <a href='#SkCanvas_drawBitmapNine_paint'>paint</a>
+<a href='#Filter_Quality'>Filter_Quality</a> set to <a href='undocumented#kNone_SkFilterQuality'>kNone_SkFilterQuality</a>, disable <a href='undocumented#Pixel'>pixel</a> filtering. For all
+other values of <a href='#SkCanvas_drawBitmapNine_paint'>paint</a> <a href='#Filter_Quality'>Filter_Quality</a>, use <a href='undocumented#kLow_SkFilterQuality'>kLow_SkFilterQuality</a> to filter pixels.
+Any <a href='undocumented#SkMaskFilter'>SkMaskFilter</a> on <a href='#SkCanvas_drawBitmapNine_paint'>paint</a> is ignored as is <a href='#SkCanvas_drawBitmapNine_paint'>paint</a> <a href='#Paint_Anti_Alias'>Anti_Aliasing</a> state.
+If generated mask extends beyond <a href='#SkCanvas_drawBitmapNine_bitmap'>bitmap</a> bounds, replicate <a href='#SkCanvas_drawBitmapNine_bitmap'>bitmap</a> edge colors,
+just as <a href='undocumented#Shader'>Shader</a> made from <a href='undocumented#SkShader'>SkShader</a>::<a href='#SkShader_MakeBitmapShader'>MakeBitmapShader</a> with
+<a href='undocumented#SkShader'>SkShader</a>::<a href='#SkShader_kClamp_TileMode'>kClamp_TileMode</a> set replicates the <a href='#SkCanvas_drawBitmapNine_bitmap'>bitmap</a> edge <a href='SkColor_Reference#Color'>color</a> when it samples
+outside of its bounds.
### Parameters
<table> <tr> <td><a name='SkCanvas_drawBitmapNine_bitmap'><code><strong>bitmap</strong></code></a></td>
- <td><a href='SkBitmap_Reference#Bitmap'>Bitmap</a> <a href='SkBitmap_Reference#Bitmap'>containing</a> <a href='SkBitmap_Reference#Bitmap'>pixels</a>, <a href='SkBitmap_Reference#Bitmap'>dimensions</a>, <a href='SkBitmap_Reference#Bitmap'>and</a> <a href='SkBitmap_Reference#Bitmap'>format</a></td>
+ <td><a href='SkBitmap_Reference#Bitmap'>Bitmap</a> containing pixels, dimensions, and format</td>
</tr>
<tr> <td><a name='SkCanvas_drawBitmapNine_center'><code><strong>center</strong></code></a></td>
- <td><a href='SkIRect_Reference#IRect'>IRect</a> <a href='SkIRect_Reference#IRect'>edge</a> <a href='SkIRect_Reference#IRect'>of</a> <a href='SkImage_Reference#Image'>image</a> <a href='SkImage_Reference#Image'>corners</a> <a href='SkImage_Reference#Image'>and</a> <a href='SkImage_Reference#Image'>sides</a></td>
+ <td><a href='SkIRect_Reference#IRect'>IRect</a> edge of <a href='SkImage_Reference#Image'>image</a> corners and sides</td>
</tr>
<tr> <td><a name='SkCanvas_drawBitmapNine_dst'><code><strong>dst</strong></code></a></td>
- <td>destination <a href='SkRect_Reference#Rect'>Rect</a> <a href='SkRect_Reference#Rect'>of</a> <a href='SkImage_Reference#Image'>image</a> <a href='SkImage_Reference#Image'>to</a> <a href='SkImage_Reference#Image'>draw</a> <a href='SkImage_Reference#Image'>to</a></td>
+ <td>destination <a href='SkRect_Reference#Rect'>Rect</a> of <a href='SkImage_Reference#Image'>image</a> to draw to</td>
</tr>
<tr> <td><a name='SkCanvas_drawBitmapNine_paint'><code><strong>paint</strong></code></a></td>
- <td><a href='SkPaint_Reference#Paint'>Paint</a> <a href='SkPaint_Reference#Paint'>containing</a> <a href='#Blend_Mode'>Blend_Mode</a>, <a href='#Color_Filter'>Color_Filter</a>, <a href='#Image_Filter'>Image_Filter</a>,
-<a href='#Image_Filter'>and</a> <a href='#Image_Filter'>so</a> <a href='#Image_Filter'>on</a>; <a href='#Image_Filter'>or</a> <a href='#Image_Filter'>nullptr</a>
+ <td><a href='SkPaint_Reference#Paint'>Paint</a> containing <a href='#Blend_Mode'>Blend_Mode</a>, <a href='#Color_Filter'>Color_Filter</a>, <a href='#Image_Filter'>Image_Filter</a>,
+and so on; or nullptr
</td>
</tr>
</table>
### Example
-<div><fiddle-embed name="e99e7be0d8f67dfacbecf85df585433d"><div>The two leftmost <a href='#SkCanvas_drawBitmapNine_bitmap'>bitmap</a> <a href='#SkCanvas_drawBitmapNine_bitmap'>draws</a> <a href='#SkCanvas_drawBitmapNine_bitmap'>has</a> <a href='#SkCanvas_drawBitmapNine_bitmap'>four</a> <a href='#SkCanvas_drawBitmapNine_bitmap'>corners</a> <a href='#SkCanvas_drawBitmapNine_bitmap'>and</a> <a href='#SkCanvas_drawBitmapNine_bitmap'>sides</a> <a href='#SkCanvas_drawBitmapNine_bitmap'>to</a> <a href='#SkCanvas_drawBitmapNine_bitmap'>the</a> <a href='#SkCanvas_drawBitmapNine_bitmap'>left</a> <a href='#SkCanvas_drawBitmapNine_bitmap'>and</a> <a href='#SkCanvas_drawBitmapNine_bitmap'>right</a> <a href='#SkCanvas_drawBitmapNine_bitmap'>of</a> <a href='#SkCanvas_drawBitmapNine_center'>center</a>.
-<a href='#SkCanvas_drawBitmapNine_center'>The</a> <a href='#SkCanvas_drawBitmapNine_center'>leftmost</a> <a href='SkBitmap_Reference#Bitmap_Draw'>bitmap draw</a> <a href='#SkCanvas_drawBitmapNine_bitmap'>scales</a> <a href='#SkCanvas_drawBitmapNine_bitmap'>the</a> <a href='#SkCanvas_drawBitmapNine_bitmap'>width</a> <a href='#SkCanvas_drawBitmapNine_bitmap'>of</a> <a href='#SkCanvas_drawBitmapNine_bitmap'>corners</a> <a href='#SkCanvas_drawBitmapNine_bitmap'>proportionately</a> <a href='#SkCanvas_drawBitmapNine_bitmap'>to</a> <a href='#SkCanvas_drawBitmapNine_bitmap'>fit</a>.
-<a href='#SkCanvas_drawBitmapNine_bitmap'>The</a> <a href='#SkCanvas_drawBitmapNine_bitmap'>third</a> <a href='#SkCanvas_drawBitmapNine_bitmap'>and</a> <a href='#SkCanvas_drawBitmapNine_bitmap'>fourth</a> <a href='#SkCanvas_drawBitmapNine_bitmap'>draw</a> <a href='#SkCanvas_drawBitmapNine_bitmap'>corners</a> <a href='#SkCanvas_drawBitmapNine_bitmap'>are</a> <a href='#SkCanvas_drawBitmapNine_bitmap'>not</a> <a href='#SkCanvas_drawBitmapNine_bitmap'>scaled</a>; <a href='#SkCanvas_drawBitmapNine_bitmap'>the</a> <a href='#SkCanvas_drawBitmapNine_bitmap'>sides</a> <a href='#SkCanvas_drawBitmapNine_bitmap'>and</a> <a href='#SkCanvas_drawBitmapNine_center'>center</a> <a href='#SkCanvas_drawBitmapNine_center'>are</a> <a href='#SkCanvas_drawBitmapNine_center'>scaled</a> <a href='#SkCanvas_drawBitmapNine_center'>to</a>
-<a href='#SkCanvas_drawBitmapNine_center'>fill</a> <a href='#SkCanvas_drawBitmapNine_center'>the</a> <a href='#SkCanvas_drawBitmapNine_center'>remaining</a> <a href='#SkCanvas_drawBitmapNine_center'>space</a>.
-<a href='#SkCanvas_drawBitmapNine_center'>The</a> <a href='#SkCanvas_drawBitmapNine_center'>rightmost</a> <a href='SkBitmap_Reference#Bitmap_Draw'>bitmap draw</a> <a href='#SkCanvas_drawBitmapNine_bitmap'>has</a> <a href='#SkCanvas_drawBitmapNine_bitmap'>four</a> <a href='#SkCanvas_drawBitmapNine_bitmap'>corners</a> <a href='#SkCanvas_drawBitmapNine_bitmap'>scaled</a> <a href='#SkCanvas_drawBitmapNine_bitmap'>vertically</a> <a href='#SkCanvas_drawBitmapNine_bitmap'>to</a> <a href='#SkCanvas_drawBitmapNine_bitmap'>fit</a>, <a href='#SkCanvas_drawBitmapNine_bitmap'>and</a> <a href='#SkCanvas_drawBitmapNine_bitmap'>uses</a> <a href='#SkCanvas_drawBitmapNine_bitmap'>sides</a> <a href='#SkCanvas_drawBitmapNine_bitmap'>above</a>
-<a href='#SkCanvas_drawBitmapNine_bitmap'>and</a> <a href='#SkCanvas_drawBitmapNine_bitmap'>below</a> <a href='#SkCanvas_drawBitmapNine_center'>center</a> <a href='#SkCanvas_drawBitmapNine_center'>to</a> <a href='#SkCanvas_drawBitmapNine_center'>fill</a> <a href='#SkCanvas_drawBitmapNine_center'>the</a> <a href='#SkCanvas_drawBitmapNine_center'>remaining</a> <a href='#SkCanvas_drawBitmapNine_center'>space</a>.
+<div><fiddle-embed name="e99e7be0d8f67dfacbecf85df585433d"><div>The two leftmost <a href='#SkCanvas_drawBitmapNine_bitmap'>bitmap</a> draws has four corners and sides to the left and right of <a href='#SkCanvas_drawBitmapNine_center'>center</a>.
+The leftmost <a href='SkBitmap_Reference#Bitmap_Draw'>bitmap draw</a> scales the width of corners proportionately to fit.
+The third and fourth draw corners are not scaled; the sides and <a href='#SkCanvas_drawBitmapNine_center'>center</a> are scaled to
+fill the remaining space.
+The rightmost <a href='SkBitmap_Reference#Bitmap_Draw'>bitmap draw</a> 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
@@ -4867,37 +4867,37 @@
<pre style="padding: 1em 1em 1em 1em;width: 62.5em; background-color: #f0f0f0">
struct <a href='#SkCanvas_Lattice'>Lattice</a> {
- <a href='#SkCanvas_Lattice'>enum</a> <a href='#SkCanvas_Lattice_RectType'>RectType</a> : <a href='#SkCanvas_Lattice_RectType'>uint8_t</a> {
+ enum <a href='#SkCanvas_Lattice_RectType'>RectType</a> : uint8_t {
<a href='#SkCanvas_Lattice_kDefault'>kDefault</a> = 0,
<a href='#SkCanvas_Lattice_kTransparent'>kTransparent</a>,
<a href='#SkCanvas_Lattice_kFixedColor'>kFixedColor</a>,
};
- <a href='#SkCanvas_Lattice_kFixedColor'>const</a> <a href='#SkCanvas_Lattice_kFixedColor'>int</a>* <a href='#SkCanvas_Lattice_fXDivs'>fXDivs</a>;
- <a href='#SkCanvas_Lattice_fXDivs'>const</a> <a href='#SkCanvas_Lattice_fXDivs'>int</a>* <a href='#SkCanvas_Lattice_fYDivs'>fYDivs</a>;
- <a href='#SkCanvas_Lattice_fYDivs'>const</a> <a href='#SkCanvas_Lattice_RectType'>RectType</a>* <a href='#SkCanvas_Lattice_fRectTypes'>fRectTypes</a>;
- <a href='#SkCanvas_Lattice_fRectTypes'>int</a> <a href='#SkCanvas_Lattice_fXCount'>fXCount</a>;
- <a href='#SkCanvas_Lattice_fXCount'>int</a> <a href='#SkCanvas_Lattice_fYCount'>fYCount</a>;
- <a href='#SkCanvas_Lattice_fYCount'>const</a> <a href='SkIRect_Reference#SkIRect'>SkIRect</a>* <a href='#SkCanvas_Lattice_fBounds'>fBounds</a>;
- <a href='#SkCanvas_Lattice_fBounds'>const</a> <a href='SkColor_Reference#SkColor'>SkColor</a>* <a href='#SkCanvas_Lattice_fColors'>fColors</a>;
+ const int* <a href='#SkCanvas_Lattice_fXDivs'>fXDivs</a>;
+ const int* <a href='#SkCanvas_Lattice_fYDivs'>fYDivs</a>;
+ const <a href='#SkCanvas_Lattice_RectType'>RectType</a>* <a href='#SkCanvas_Lattice_fRectTypes'>fRectTypes</a>;
+ int <a href='#SkCanvas_Lattice_fXCount'>fXCount</a>;
+ int <a href='#SkCanvas_Lattice_fYCount'>fYCount</a>;
+ const <a href='SkIRect_Reference#SkIRect'>SkIRect</a>* <a href='#SkCanvas_Lattice_fBounds'>fBounds</a>;
+ const <a href='SkColor_Reference#SkColor'>SkColor</a>* <a href='#SkCanvas_Lattice_fColors'>fColors</a>;
};
</pre>
-<a href='#SkCanvas_Lattice'>Lattice</a> <a href='#SkCanvas_Lattice'>divides</a> <a href='SkBitmap_Reference#Bitmap'>Bitmap</a> <a href='SkBitmap_Reference#Bitmap'>or</a> <a href='SkImage_Reference#Image'>Image</a> <a href='SkImage_Reference#Image'>into</a> <a href='SkImage_Reference#Image'>a</a> <a href='SkImage_Reference#Image'>rectangular</a> <a href='SkImage_Reference#Image'>grid</a>.
-<a href='SkImage_Reference#Image'>Grid</a> <a href='SkImage_Reference#Image'>entries</a> <a href='SkImage_Reference#Image'>on</a> <a href='SkImage_Reference#Image'>even</a> <a href='SkImage_Reference#Image'>columns</a> <a href='SkImage_Reference#Image'>and</a> <a href='SkImage_Reference#Image'>even</a> <a href='SkImage_Reference#Image'>rows</a> <a href='SkImage_Reference#Image'>are</a> <a href='SkImage_Reference#Image'>fixed</a>; <a href='SkImage_Reference#Image'>these</a> <a href='SkImage_Reference#Image'>entries</a> <a href='SkImage_Reference#Image'>are</a>
-<a href='SkImage_Reference#Image'>always</a> <a href='SkImage_Reference#Image'>drawn</a> <a href='SkImage_Reference#Image'>at</a> <a href='SkImage_Reference#Image'>their</a> <a href='SkImage_Reference#Image'>original</a> <a href='undocumented#Size'>size</a> <a href='undocumented#Size'>if</a> <a href='undocumented#Size'>the</a> <a href='undocumented#Size'>destination</a> <a href='undocumented#Size'>is</a> <a href='undocumented#Size'>large</a> <a href='undocumented#Size'>enough</a>.
-<a href='undocumented#Size'>If</a> <a href='undocumented#Size'>the</a> <a href='undocumented#Size'>destination</a> <a href='undocumented#Size'>side</a> <a href='undocumented#Size'>is</a> <a href='undocumented#Size'>too</a> <a href='undocumented#Size'>small</a> <a href='undocumented#Size'>to</a> <a href='undocumented#Size'>hold</a> <a href='undocumented#Size'>the</a> <a href='undocumented#Size'>fixed</a> <a href='undocumented#Size'>entries</a>, <a href='undocumented#Size'>all</a> <a href='undocumented#Size'>fixed</a>
-<a href='undocumented#Size'>entries</a> <a href='undocumented#Size'>are</a> <a href='undocumented#Size'>proportionately</a> <a href='undocumented#Size'>scaled</a> <a href='undocumented#Size'>down</a> <a href='undocumented#Size'>to</a> <a href='undocumented#Size'>fit</a>.
-<a href='undocumented#Size'>The</a> <a href='undocumented#Size'>grid</a> <a href='undocumented#Size'>entries</a> <a href='undocumented#Size'>not</a> <a href='undocumented#Size'>on</a> <a href='undocumented#Size'>even</a> <a href='undocumented#Size'>columns</a> <a href='undocumented#Size'>and</a> <a href='undocumented#Size'>rows</a> <a href='undocumented#Size'>are</a> <a href='undocumented#Size'>scaled</a> <a href='undocumented#Size'>to</a> <a href='undocumented#Size'>fit</a> <a href='undocumented#Size'>the</a>
-<a href='undocumented#Size'>remaining</a> <a href='undocumented#Size'>space</a>, <a href='undocumented#Size'>if</a> <a href='undocumented#Size'>any</a>.
+<a href='#SkCanvas_Lattice'>Lattice</a> divides <a href='SkBitmap_Reference#Bitmap'>Bitmap</a> or <a href='SkImage_Reference#Image'>Image</a> into a rectangular grid.
+Grid entries on even columns and even rows are fixed; these entries are
+always drawn at their original <a href='undocumented#Size'>size</a> if the destination is large enough.
+If the destination side is too small to hold the fixed entries, all fixed
+entries are proportionately scaled down to fit.
+The grid entries not on even columns and rows are scaled to fit the
+remaining space, if any.
<a name='SkCanvas_Lattice_RectType'></a>
---
<pre style="padding: 1em 1em 1em 1em;width: 62.5em; background-color: #f0f0f0">
- enum <a href='#SkCanvas_Lattice_RectType'>RectType</a> : <a href='#SkCanvas_Lattice_RectType'>uint8_t</a> {
+ enum <a href='#SkCanvas_Lattice_RectType'>RectType</a> : uint8_t {
<a href='#SkCanvas_Lattice_kDefault'>kDefault</a> = 0,
<a href='#SkCanvas_Lattice_kTransparent'>kTransparent</a>,
<a href='#SkCanvas_Lattice_kFixedColor'>kFixedColor</a>,
@@ -4942,22 +4942,22 @@
<td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>const int*</td>
<td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a name='SkCanvas_Lattice_fXDivs'><code>fXDivs</code></a></td>
<td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>
-Array of x-axis values that divide the <a href='SkBitmap_Reference#Bitmap'>bitmap</a> <a href='SkBitmap_Reference#Bitmap'>vertically</a>.
-<a href='SkBitmap_Reference#Bitmap'>Array</a> <a href='SkBitmap_Reference#Bitmap'>entries</a> <a href='SkBitmap_Reference#Bitmap'>must</a> <a href='SkBitmap_Reference#Bitmap'>be</a> <a href='SkBitmap_Reference#Bitmap'>unique</a>, <a href='SkBitmap_Reference#Bitmap'>increasing</a>, <a href='SkBitmap_Reference#Bitmap'>greater</a> <a href='SkBitmap_Reference#Bitmap'>than</a> <a href='SkBitmap_Reference#Bitmap'>or</a> <a href='SkBitmap_Reference#Bitmap'>equal</a> <a href='SkBitmap_Reference#Bitmap'>to</a>
-<a href='#SkCanvas_Lattice_fBounds'>fBounds</a> <a href='#SkCanvas_Lattice_fBounds'>left</a> <a href='#SkCanvas_Lattice_fBounds'>edge</a>, <a href='#SkCanvas_Lattice_fBounds'>and</a> <a href='#SkCanvas_Lattice_fBounds'>less</a> <a href='#SkCanvas_Lattice_fBounds'>than</a> <a href='#SkCanvas_Lattice_fBounds'>fBounds</a> <a href='#SkCanvas_Lattice_fBounds'>right</a> <a href='#SkCanvas_Lattice_fBounds'>edge</a>.
-<a href='#SkCanvas_Lattice_fBounds'>Set</a> <a href='#SkCanvas_Lattice_fBounds'>the</a> <a href='#SkCanvas_Lattice_fBounds'>first</a> <a href='#SkCanvas_Lattice_fBounds'>element</a> <a href='#SkCanvas_Lattice_fBounds'>to</a> <a href='#SkCanvas_Lattice_fBounds'>fBounds</a> <a href='#SkCanvas_Lattice_fBounds'>left</a> <a href='#SkCanvas_Lattice_fBounds'>to</a> <a href='#SkCanvas_Lattice_fBounds'>collapse</a> <a href='#SkCanvas_Lattice_fBounds'>the</a> <a href='#SkCanvas_Lattice_fBounds'>left</a> <a href='#SkCanvas_Lattice_fBounds'>column</a> <a href='#SkCanvas_Lattice_fBounds'>of</a>
-<a href='#SkCanvas_Lattice_fBounds'>fixed</a> <a href='#SkCanvas_Lattice_fBounds'>grid</a> <a href='#SkCanvas_Lattice_fBounds'>entries</a>.
+Array of x-axis values that divide the <a href='SkBitmap_Reference#Bitmap'>bitmap</a> vertically.
+Array entries must be unique, increasing, greater than or equal to
+<a href='#SkCanvas_Lattice_fBounds'>fBounds</a> left edge, and less than <a href='#SkCanvas_Lattice_fBounds'>fBounds</a> right edge.
+Set the first element to <a href='#SkCanvas_Lattice_fBounds'>fBounds</a> left to collapse the left column of
+fixed grid entries.
</td>
</tr>
<tr>
<td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>const int*</td>
<td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a name='SkCanvas_Lattice_fYDivs'><code>fYDivs</code></a></td>
<td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>
-Array of y-axis values that divide the <a href='SkBitmap_Reference#Bitmap'>bitmap</a> <a href='SkBitmap_Reference#Bitmap'>horizontally</a>.
-<a href='SkBitmap_Reference#Bitmap'>Array</a> <a href='SkBitmap_Reference#Bitmap'>entries</a> <a href='SkBitmap_Reference#Bitmap'>must</a> <a href='SkBitmap_Reference#Bitmap'>be</a> <a href='SkBitmap_Reference#Bitmap'>unique</a>, <a href='SkBitmap_Reference#Bitmap'>increasing</a>, <a href='SkBitmap_Reference#Bitmap'>greater</a> <a href='SkBitmap_Reference#Bitmap'>than</a> <a href='SkBitmap_Reference#Bitmap'>or</a> <a href='SkBitmap_Reference#Bitmap'>equal</a> <a href='SkBitmap_Reference#Bitmap'>to</a>
-<a href='#SkCanvas_Lattice_fBounds'>fBounds</a> <a href='#SkCanvas_Lattice_fBounds'>top</a> <a href='#SkCanvas_Lattice_fBounds'>edge</a>, <a href='#SkCanvas_Lattice_fBounds'>and</a> <a href='#SkCanvas_Lattice_fBounds'>less</a> <a href='#SkCanvas_Lattice_fBounds'>than</a> <a href='#SkCanvas_Lattice_fBounds'>fBounds</a> <a href='#SkCanvas_Lattice_fBounds'>bottom</a> <a href='#SkCanvas_Lattice_fBounds'>edge</a>.
-<a href='#SkCanvas_Lattice_fBounds'>Set</a> <a href='#SkCanvas_Lattice_fBounds'>the</a> <a href='#SkCanvas_Lattice_fBounds'>first</a> <a href='#SkCanvas_Lattice_fBounds'>element</a> <a href='#SkCanvas_Lattice_fBounds'>to</a> <a href='#SkCanvas_Lattice_fBounds'>fBounds</a> <a href='#SkCanvas_Lattice_fBounds'>top</a> <a href='#SkCanvas_Lattice_fBounds'>to</a> <a href='#SkCanvas_Lattice_fBounds'>collapse</a> <a href='#SkCanvas_Lattice_fBounds'>the</a> <a href='#SkCanvas_Lattice_fBounds'>top</a> <a href='#SkCanvas_Lattice_fBounds'>row</a> <a href='#SkCanvas_Lattice_fBounds'>of</a> <a href='#SkCanvas_Lattice_fBounds'>fixed</a>
-<a href='#SkCanvas_Lattice_fBounds'>grid</a> <a href='#SkCanvas_Lattice_fBounds'>entries</a>.
+Array of y-axis values that divide the <a href='SkBitmap_Reference#Bitmap'>bitmap</a> horizontally.
+Array entries must be unique, increasing, greater than or equal to
+<a href='#SkCanvas_Lattice_fBounds'>fBounds</a> top edge, and less than <a href='#SkCanvas_Lattice_fBounds'>fBounds</a> bottom edge.
+Set the first element to <a href='#SkCanvas_Lattice_fBounds'>fBounds</a> top to collapse the top row of fixed
+grid entries.
</td>
</tr>
<tr style='background-color: #f0f0f0; '>
@@ -4967,34 +4967,34 @@
Optional array of fill types, one per rectangular grid entry:
array length must be <code>(<a href='#SkCanvas_Lattice_fXCount'>fXCount</a> + 1) * (<a href='#SkCanvas_Lattice_fYCount'>fYCount</a> + 1)</code>.
-Each <a href='#SkCanvas_Lattice_RectType'>RectType</a> <a href='#SkCanvas_Lattice_RectType'>is</a> <a href='#SkCanvas_Lattice_RectType'>one</a> <a href='#SkCanvas_Lattice_RectType'>of</a>: <a href='#SkCanvas_Lattice_kDefault'>kDefault</a>, <a href='#SkCanvas_Lattice_kTransparent'>kTransparent</a>, <a href='#SkCanvas_Lattice_kFixedColor'>kFixedColor</a>.
+Each <a href='#SkCanvas_Lattice_RectType'>RectType</a> is one of: <a href='#SkCanvas_Lattice_kDefault'>kDefault</a>, <a href='#SkCanvas_Lattice_kTransparent'>kTransparent</a>, <a href='#SkCanvas_Lattice_kFixedColor'>kFixedColor</a>.
-<a href='#SkCanvas_Lattice_kFixedColor'>Array</a> <a href='#SkCanvas_Lattice_kFixedColor'>entries</a> <a href='#SkCanvas_Lattice_kFixedColor'>correspond</a> <a href='#SkCanvas_Lattice_kFixedColor'>to</a> <a href='#SkCanvas_Lattice_kFixedColor'>the</a> <a href='#SkCanvas_Lattice_kFixedColor'>rectangular</a> <a href='#SkCanvas_Lattice_kFixedColor'>grid</a> <a href='#SkCanvas_Lattice_kFixedColor'>entries</a>, <a href='#SkCanvas_Lattice_kFixedColor'>ascending</a>
-<a href='#SkCanvas_Lattice_kFixedColor'>left</a> <a href='#SkCanvas_Lattice_kFixedColor'>to</a> <a href='#SkCanvas_Lattice_kFixedColor'>right</a> <a href='#SkCanvas_Lattice_kFixedColor'>and</a> <a href='#SkCanvas_Lattice_kFixedColor'>then</a> <a href='#SkCanvas_Lattice_kFixedColor'>top</a> <a href='#SkCanvas_Lattice_kFixedColor'>to</a> <a href='#SkCanvas_Lattice_kFixedColor'>bottom</a>.
+Array entries correspond to the rectangular grid entries, ascending
+left to right and then top to bottom.
</td>
</tr>
<tr>
<td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>int</td>
<td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a name='SkCanvas_Lattice_fXCount'><code>fXCount</code></a></td>
<td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>
-Number of entries in <a href='#SkCanvas_Lattice_fXDivs'>fXDivs</a> <a href='#SkCanvas_Lattice_fXDivs'>array</a>; <a href='#SkCanvas_Lattice_fXDivs'>one</a> <a href='#SkCanvas_Lattice_fXDivs'>less</a> <a href='#SkCanvas_Lattice_fXDivs'>than</a> <a href='#SkCanvas_Lattice_fXDivs'>the</a> <a href='#SkCanvas_Lattice_fXDivs'>number</a> <a href='#SkCanvas_Lattice_fXDivs'>of</a>
-<a href='#SkCanvas_Lattice_fXDivs'>horizontal</a> <a href='#SkCanvas_Lattice_fXDivs'>divisions</a>.
+Number of entries in <a href='#SkCanvas_Lattice_fXDivs'>fXDivs</a> array; one less than the number of
+horizontal divisions.
</td>
</tr>
<tr style='background-color: #f0f0f0; '>
<td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>int</td>
<td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a name='SkCanvas_Lattice_fYCount'><code>fYCount</code></a></td>
<td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>
-Number of entries in <a href='#SkCanvas_Lattice_fYDivs'>fYDivs</a> <a href='#SkCanvas_Lattice_fYDivs'>array</a>; <a href='#SkCanvas_Lattice_fYDivs'>one</a> <a href='#SkCanvas_Lattice_fYDivs'>less</a> <a href='#SkCanvas_Lattice_fYDivs'>than</a> <a href='#SkCanvas_Lattice_fYDivs'>the</a> <a href='#SkCanvas_Lattice_fYDivs'>number</a> <a href='#SkCanvas_Lattice_fYDivs'>of</a> <a href='#SkCanvas_Lattice_fYDivs'>vertical</a>
-<a href='#SkCanvas_Lattice_fYDivs'>divisions</a>.
+Number of entries in <a href='#SkCanvas_Lattice_fYDivs'>fYDivs</a> array; one less than the number of vertical
+divisions.
</td>
</tr>
<tr>
<td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>const SkIRect*</td>
<td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a name='SkCanvas_Lattice_fBounds'><code>fBounds</code></a></td>
<td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>
-Optional subset <a href='SkIRect_Reference#IRect'>IRect</a> <a href='SkIRect_Reference#IRect'>source</a> <a href='SkIRect_Reference#IRect'>to</a> <a href='SkIRect_Reference#IRect'>draw</a> <a href='SkIRect_Reference#IRect'>from</a>.
-<a href='SkIRect_Reference#IRect'>If</a> <a href='SkIRect_Reference#IRect'>nullptr</a>, <a href='SkIRect_Reference#IRect'>source</a> <a href='SkIRect_Reference#IRect'>bounds</a> <a href='SkIRect_Reference#IRect'>is</a> <a href='SkIRect_Reference#IRect'>dimensions</a> <a href='SkIRect_Reference#IRect'>of</a> <a href='SkBitmap_Reference#Bitmap'>Bitmap</a> <a href='SkBitmap_Reference#Bitmap'>or</a> <a href='SkImage_Reference#Image'>Image</a>.
+Optional subset <a href='SkIRect_Reference#IRect'>IRect</a> source to draw from.
+If nullptr, source bounds is dimensions of <a href='SkBitmap_Reference#Bitmap'>Bitmap</a> or <a href='SkImage_Reference#Image'>Image</a>.
</td>
</tr>
<tr style='background-color: #f0f0f0; '>
@@ -5015,56 +5015,56 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-void <a href='#SkCanvas_drawBitmapLattice'>drawBitmapLattice</a>(<a href='#SkCanvas_drawBitmapLattice'>const</a> <a href='SkBitmap_Reference#SkBitmap'>SkBitmap</a>& <a href='SkBitmap_Reference#Bitmap'>bitmap</a>, <a href='SkBitmap_Reference#Bitmap'>const</a> <a href='#SkCanvas_Lattice'>Lattice</a>& <a href='#SkCanvas_Lattice'>lattice</a>, <a href='#SkCanvas_Lattice'>const</a> <a href='SkRect_Reference#SkRect'>SkRect</a>& <a href='SkRect_Reference#SkRect'>dst</a>,
- <a href='SkRect_Reference#SkRect'>const</a> <a href='SkPaint_Reference#SkPaint'>SkPaint</a>* <a href='SkPaint_Reference#Paint'>paint</a> = <a href='SkPaint_Reference#Paint'>nullptr</a>)
+void <a href='#SkCanvas_drawBitmapLattice'>drawBitmapLattice</a>(const <a href='SkBitmap_Reference#SkBitmap'>SkBitmap</a>& <a href='SkBitmap_Reference#Bitmap'>bitmap</a>, const <a href='#SkCanvas_Lattice'>Lattice</a>& lattice, const <a href='SkRect_Reference#SkRect'>SkRect</a>& dst,
+ const <a href='SkPaint_Reference#SkPaint'>SkPaint</a>* <a href='SkPaint_Reference#Paint'>paint</a> = nullptr)
</pre>
-Draws <a href='SkBitmap_Reference#Bitmap'>Bitmap</a> <a href='#SkCanvas_drawBitmapLattice_bitmap'>bitmap</a> <a href='#SkCanvas_drawBitmapLattice_bitmap'>stretched</a> <a href='#SkCanvas_drawBitmapLattice_bitmap'>proportionally</a> <a href='#SkCanvas_drawBitmapLattice_bitmap'>to</a> <a href='#SkCanvas_drawBitmapLattice_bitmap'>fit</a> <a href='#SkCanvas_drawBitmapLattice_bitmap'>into</a> <a href='SkRect_Reference#Rect'>Rect</a> <a href='#SkCanvas_drawBitmapLattice_dst'>dst</a>.
+Draws <a href='SkBitmap_Reference#Bitmap'>Bitmap</a> <a href='#SkCanvas_drawBitmapLattice_bitmap'>bitmap</a> stretched proportionally to fit into <a href='SkRect_Reference#Rect'>Rect</a> <a href='#SkCanvas_drawBitmapLattice_dst'>dst</a>.
-<a href='#SkCanvas_Lattice'>Lattice</a> <a href='#SkCanvas_drawBitmapLattice_lattice'>lattice</a> <a href='#SkCanvas_drawBitmapLattice_lattice'>divides</a> <a href='#SkCanvas_drawBitmapLattice_bitmap'>bitmap</a> <a href='#SkCanvas_drawBitmapLattice_bitmap'>into</a> <a href='#SkCanvas_drawBitmapLattice_bitmap'>a</a> <a href='#SkCanvas_drawBitmapLattice_bitmap'>rectangular</a> <a href='#SkCanvas_drawBitmapLattice_bitmap'>grid</a>.
-<a href='#SkCanvas_drawBitmapLattice_bitmap'>Each</a> <a href='#SkCanvas_drawBitmapLattice_bitmap'>intersection</a> <a href='#SkCanvas_drawBitmapLattice_bitmap'>of</a> <a href='#SkCanvas_drawBitmapLattice_bitmap'>an</a> <a href='#SkCanvas_drawBitmapLattice_bitmap'>even-numbered</a> <a href='#SkCanvas_drawBitmapLattice_bitmap'>row</a> <a href='#SkCanvas_drawBitmapLattice_bitmap'>and</a> <a href='#SkCanvas_drawBitmapLattice_bitmap'>column</a> <a href='#SkCanvas_drawBitmapLattice_bitmap'>is</a> <a href='#SkCanvas_drawBitmapLattice_bitmap'>fixed</a>; <a href='#SkCanvas_drawBitmapLattice_bitmap'>like</a> <a href='#SkCanvas_drawBitmapLattice_bitmap'>the</a> <a href='#SkCanvas_drawBitmapLattice_bitmap'>corners</a>
-<a href='#SkCanvas_drawBitmapLattice_bitmap'>of</a> <a href='#SkCanvas_drawBitmapNine'>drawBitmapNine</a>, <a href='#SkCanvas_drawBitmapNine'>fixed</a> <a href='#SkCanvas_drawBitmapLattice_lattice'>lattice</a> <a href='#SkCanvas_drawBitmapLattice_lattice'>elements</a> <a href='#SkCanvas_drawBitmapLattice_lattice'>never</a> <a href='#SkCanvas_drawBitmapLattice_lattice'>scale</a> <a href='#SkCanvas_drawBitmapLattice_lattice'>larger</a> <a href='#SkCanvas_drawBitmapLattice_lattice'>than</a> <a href='#SkCanvas_drawBitmapLattice_lattice'>their</a> <a href='#SkCanvas_drawBitmapLattice_lattice'>initial</a>
-<a href='undocumented#Size'>size</a> <a href='undocumented#Size'>and</a> <a href='undocumented#Size'>shrink</a> <a href='undocumented#Size'>proportionately</a> <a href='undocumented#Size'>when</a> <a href='undocumented#Size'>all</a> <a href='undocumented#Size'>fixed</a> <a href='undocumented#Size'>elements</a> <a href='undocumented#Size'>exceed</a> <a href='undocumented#Size'>the</a> <a href='#SkCanvas_drawBitmapLattice_bitmap'>bitmap</a>
-<a href='#SkCanvas_drawBitmapLattice_bitmap'>dimension</a>. <a href='#SkCanvas_drawBitmapLattice_bitmap'>All</a> <a href='#SkCanvas_drawBitmapLattice_bitmap'>other</a> <a href='#SkCanvas_drawBitmapLattice_bitmap'>grid</a> <a href='#SkCanvas_drawBitmapLattice_bitmap'>elements</a> <a href='#SkCanvas_drawBitmapLattice_bitmap'>scale</a> <a href='#SkCanvas_drawBitmapLattice_bitmap'>to</a> <a href='#SkCanvas_drawBitmapLattice_bitmap'>fill</a> <a href='#SkCanvas_drawBitmapLattice_bitmap'>the</a> <a href='#SkCanvas_drawBitmapLattice_bitmap'>available</a> <a href='#SkCanvas_drawBitmapLattice_bitmap'>space</a>, <a href='#SkCanvas_drawBitmapLattice_bitmap'>if</a> <a href='#SkCanvas_drawBitmapLattice_bitmap'>any</a>.
+<a href='#SkCanvas_Lattice'>Lattice</a> <a href='#SkCanvas_drawBitmapLattice_lattice'>lattice</a> divides <a href='#SkCanvas_drawBitmapLattice_bitmap'>bitmap</a> into a rectangular grid.
+Each intersection of an even-numbered row and column is fixed; like the corners
+of <a href='#SkCanvas_drawBitmapNine'>drawBitmapNine</a>, fixed <a href='#SkCanvas_drawBitmapLattice_lattice'>lattice</a> elements never scale larger than their initial
+<a href='undocumented#Size'>size</a> and shrink proportionately when all fixed elements exceed the <a href='#SkCanvas_drawBitmapLattice_bitmap'>bitmap</a>
+dimension. All other grid elements scale to fill the available space, if any.
-<a href='#SkCanvas_drawBitmapLattice_bitmap'>Additionally</a> <a href='#SkCanvas_drawBitmapLattice_bitmap'>transform</a> <a href='#SkCanvas_drawBitmapLattice_bitmap'>draw</a> <a href='#SkCanvas_drawBitmapLattice_bitmap'>using</a> <a href='#SkCanvas_drawBitmapLattice_bitmap'>Clip</a>, <a href='SkMatrix_Reference#Matrix'>Matrix</a>, <a href='SkMatrix_Reference#Matrix'>and</a> <a href='SkMatrix_Reference#Matrix'>optional</a> <a href='SkPaint_Reference#Paint'>Paint</a> <a href='#SkCanvas_drawBitmapLattice_paint'>paint</a>.
-If <a href='SkPaint_Reference#Paint'>Paint</a> <a href='#SkCanvas_drawBitmapLattice_paint'>paint</a> <a href='#SkCanvas_drawBitmapLattice_paint'>is</a> <a href='#SkCanvas_drawBitmapLattice_paint'>supplied</a>, <a href='#SkCanvas_drawBitmapLattice_paint'>apply</a> <a href='#Color_Filter'>Color_Filter</a>, <a href='#Color_Alpha'>Color_Alpha</a>, <a href='#Image_Filter'>Image_Filter</a>,
-<a href='#Blend_Mode'>Blend_Mode</a>, <a href='#Blend_Mode'>and</a> <a href='#Draw_Looper'>Draw_Looper</a>. <a href='#Draw_Looper'>If</a> bitmap is <a href='SkImageInfo_Reference#kAlpha_8_SkColorType'>kAlpha_8_SkColorType</a>, <a href='SkImageInfo_Reference#kAlpha_8_SkColorType'>apply</a> <a href='undocumented#Shader'>Shader</a>.
-<a href='undocumented#Shader'>If</a> <a href='#SkCanvas_drawBitmapLattice_paint'>paint</a> <a href='#SkCanvas_drawBitmapLattice_paint'>contains</a> <a href='#Mask_Filter'>Mask_Filter</a>, <a href='#Mask_Filter'>generate</a> <a href='#Mask_Filter'>mask</a> <a href='#Mask_Filter'>from</a> bitmap bounds. If <a href='#SkCanvas_drawBitmapLattice_paint'>paint</a>
-<a href='#Filter_Quality'>Filter_Quality</a> <a href='#Filter_Quality'>set</a> <a href='#Filter_Quality'>to</a> <a href='undocumented#kNone_SkFilterQuality'>kNone_SkFilterQuality</a>, <a href='undocumented#kNone_SkFilterQuality'>disable</a> <a href='undocumented#Pixel'>pixel</a> <a href='undocumented#Pixel'>filtering</a>. <a href='undocumented#Pixel'>For</a> <a href='undocumented#Pixel'>all</a>
-<a href='undocumented#Pixel'>other</a> <a href='undocumented#Pixel'>values</a> <a href='undocumented#Pixel'>of</a> <a href='#SkCanvas_drawBitmapLattice_paint'>paint</a> <a href='#Filter_Quality'>Filter_Quality</a>, <a href='#Filter_Quality'>use</a> <a href='undocumented#kLow_SkFilterQuality'>kLow_SkFilterQuality</a> <a href='undocumented#kLow_SkFilterQuality'>to</a> <a href='undocumented#kLow_SkFilterQuality'>filter</a> <a href='undocumented#kLow_SkFilterQuality'>pixels</a>.
-<a href='undocumented#kLow_SkFilterQuality'>Any</a> <a href='undocumented#SkMaskFilter'>SkMaskFilter</a> <a href='undocumented#SkMaskFilter'>on</a> <a href='#SkCanvas_drawBitmapLattice_paint'>paint</a> <a href='#SkCanvas_drawBitmapLattice_paint'>is</a> <a href='#SkCanvas_drawBitmapLattice_paint'>ignored</a> <a href='#SkCanvas_drawBitmapLattice_paint'>as</a> <a href='#SkCanvas_drawBitmapLattice_paint'>is</a> <a href='#SkCanvas_drawBitmapLattice_paint'>paint</a> <a href='#Paint_Anti_Alias'>Anti_Aliasing</a> <a href='#Paint_Anti_Alias'>state</a>.
-If generated mask extends beyond <a href='#SkCanvas_drawBitmapLattice_bitmap'>bitmap</a> <a href='#SkCanvas_drawBitmapLattice_bitmap'>bounds</a>, <a href='#SkCanvas_drawBitmapLattice_bitmap'>replicate</a> <a href='#SkCanvas_drawBitmapLattice_bitmap'>bitmap</a> <a href='#SkCanvas_drawBitmapLattice_bitmap'>edge</a> <a href='#SkCanvas_drawBitmapLattice_bitmap'>colors</a>,
-<a href='#SkCanvas_drawBitmapLattice_bitmap'>just</a> <a href='#SkCanvas_drawBitmapLattice_bitmap'>as</a> <a href='undocumented#Shader'>Shader</a> <a href='undocumented#Shader'>made</a> <a href='undocumented#Shader'>from</a> <a href='undocumented#SkShader'>SkShader</a>::<a href='#SkShader_MakeBitmapShader'>MakeBitmapShader</a> <a href='#SkShader_MakeBitmapShader'>with</a>
-<a href='undocumented#SkShader'>SkShader</a>::<a href='#SkShader_kClamp_TileMode'>kClamp_TileMode</a> <a href='#SkShader_kClamp_TileMode'>set</a> <a href='#SkShader_kClamp_TileMode'>replicates</a> <a href='#SkShader_kClamp_TileMode'>the</a> <a href='#SkCanvas_drawBitmapLattice_bitmap'>bitmap</a> <a href='#SkCanvas_drawBitmapLattice_bitmap'>edge</a> <a href='SkColor_Reference#Color'>color</a> <a href='SkColor_Reference#Color'>when</a> <a href='SkColor_Reference#Color'>it</a> <a href='SkColor_Reference#Color'>samples</a>
-<a href='SkColor_Reference#Color'>outside</a> <a href='SkColor_Reference#Color'>of</a> <a href='SkColor_Reference#Color'>its</a> <a href='SkColor_Reference#Color'>bounds</a>.
+Additionally transform draw using Clip, <a href='SkMatrix_Reference#Matrix'>Matrix</a>, and optional <a href='SkPaint_Reference#Paint'>Paint</a> <a href='#SkCanvas_drawBitmapLattice_paint'>paint</a>.
+If <a href='SkPaint_Reference#Paint'>Paint</a> <a href='#SkCanvas_drawBitmapLattice_paint'>paint</a> is supplied, apply <a href='#Color_Filter'>Color_Filter</a>, <a href='#Color_Alpha'>Color_Alpha</a>, <a href='#Image_Filter'>Image_Filter</a>,
+<a href='#Blend_Mode'>Blend_Mode</a>, and <a href='#Draw_Looper'>Draw_Looper</a>. If bitmap is <a href='SkImageInfo_Reference#kAlpha_8_SkColorType'>kAlpha_8_SkColorType</a>, apply <a href='undocumented#Shader'>Shader</a>.
+If <a href='#SkCanvas_drawBitmapLattice_paint'>paint</a> contains <a href='#Mask_Filter'>Mask_Filter</a>, generate mask from bitmap bounds. If <a href='#SkCanvas_drawBitmapLattice_paint'>paint</a>
+<a href='#Filter_Quality'>Filter_Quality</a> set to <a href='undocumented#kNone_SkFilterQuality'>kNone_SkFilterQuality</a>, disable <a href='undocumented#Pixel'>pixel</a> filtering. For all
+other values of <a href='#SkCanvas_drawBitmapLattice_paint'>paint</a> <a href='#Filter_Quality'>Filter_Quality</a>, use <a href='undocumented#kLow_SkFilterQuality'>kLow_SkFilterQuality</a> to filter pixels.
+Any <a href='undocumented#SkMaskFilter'>SkMaskFilter</a> on <a href='#SkCanvas_drawBitmapLattice_paint'>paint</a> is ignored as is <a href='#SkCanvas_drawBitmapLattice_paint'>paint</a> <a href='#Paint_Anti_Alias'>Anti_Aliasing</a> state.
+If generated mask extends beyond <a href='#SkCanvas_drawBitmapLattice_bitmap'>bitmap</a> bounds, replicate <a href='#SkCanvas_drawBitmapLattice_bitmap'>bitmap</a> edge colors,
+just as <a href='undocumented#Shader'>Shader</a> made from <a href='undocumented#SkShader'>SkShader</a>::<a href='#SkShader_MakeBitmapShader'>MakeBitmapShader</a> with
+<a href='undocumented#SkShader'>SkShader</a>::<a href='#SkShader_kClamp_TileMode'>kClamp_TileMode</a> set replicates the <a href='#SkCanvas_drawBitmapLattice_bitmap'>bitmap</a> edge <a href='SkColor_Reference#Color'>color</a> when it samples
+outside of its bounds.
### Parameters
<table> <tr> <td><a name='SkCanvas_drawBitmapLattice_bitmap'><code><strong>bitmap</strong></code></a></td>
- <td><a href='SkBitmap_Reference#Bitmap'>Bitmap</a> <a href='SkBitmap_Reference#Bitmap'>containing</a> <a href='SkBitmap_Reference#Bitmap'>pixels</a>, <a href='SkBitmap_Reference#Bitmap'>dimensions</a>, <a href='SkBitmap_Reference#Bitmap'>and</a> <a href='SkBitmap_Reference#Bitmap'>format</a></td>
+ <td><a href='SkBitmap_Reference#Bitmap'>Bitmap</a> containing pixels, dimensions, and format</td>
</tr>
<tr> <td><a name='SkCanvas_drawBitmapLattice_lattice'><code><strong>lattice</strong></code></a></td>
- <td>division of <a href='#SkCanvas_drawBitmapLattice_bitmap'>bitmap</a> <a href='#SkCanvas_drawBitmapLattice_bitmap'>into</a> <a href='#SkCanvas_drawBitmapLattice_bitmap'>fixed</a> <a href='#SkCanvas_drawBitmapLattice_bitmap'>and</a> <a href='#SkCanvas_drawBitmapLattice_bitmap'>variable</a> <a href='#SkCanvas_drawBitmapLattice_bitmap'>rectangles</a></td>
+ <td>division of <a href='#SkCanvas_drawBitmapLattice_bitmap'>bitmap</a> into fixed and variable rectangles</td>
</tr>
<tr> <td><a name='SkCanvas_drawBitmapLattice_dst'><code><strong>dst</strong></code></a></td>
- <td>destination <a href='SkRect_Reference#Rect'>Rect</a> <a href='SkRect_Reference#Rect'>of</a> <a href='SkImage_Reference#Image'>image</a> <a href='SkImage_Reference#Image'>to</a> <a href='SkImage_Reference#Image'>draw</a> <a href='SkImage_Reference#Image'>to</a></td>
+ <td>destination <a href='SkRect_Reference#Rect'>Rect</a> of <a href='SkImage_Reference#Image'>image</a> to draw to</td>
</tr>
<tr> <td><a name='SkCanvas_drawBitmapLattice_paint'><code><strong>paint</strong></code></a></td>
- <td><a href='SkPaint_Reference#Paint'>Paint</a> <a href='SkPaint_Reference#Paint'>containing</a> <a href='#Blend_Mode'>Blend_Mode</a>, <a href='#Color_Filter'>Color_Filter</a>, <a href='#Image_Filter'>Image_Filter</a>,
-<a href='#Image_Filter'>and</a> <a href='#Image_Filter'>so</a> <a href='#Image_Filter'>on</a>; <a href='#Image_Filter'>or</a> <a href='#Image_Filter'>nullptr</a>
+ <td><a href='SkPaint_Reference#Paint'>Paint</a> containing <a href='#Blend_Mode'>Blend_Mode</a>, <a href='#Color_Filter'>Color_Filter</a>, <a href='#Image_Filter'>Image_Filter</a>,
+and so on; or nullptr
</td>
</tr>
</table>
### Example
-<div><fiddle-embed name="c5bfa944e17ba4a4400dc799f032069c"><div>The two leftmost <a href='#SkCanvas_drawBitmapLattice_bitmap'>bitmap</a> <a href='#SkCanvas_drawBitmapLattice_bitmap'>draws</a> <a href='#SkCanvas_drawBitmapLattice_bitmap'>has</a> <a href='#SkCanvas_drawBitmapLattice_bitmap'>four</a> <a href='#SkCanvas_drawBitmapLattice_bitmap'>corners</a> <a href='#SkCanvas_drawBitmapLattice_bitmap'>and</a> <a href='#SkCanvas_drawBitmapLattice_bitmap'>sides</a> <a href='#SkCanvas_drawBitmapLattice_bitmap'>to</a> <a href='#SkCanvas_drawBitmapLattice_bitmap'>the</a> <a href='#SkCanvas_drawBitmapLattice_bitmap'>left</a> <a href='#SkCanvas_drawBitmapLattice_bitmap'>and</a> <a href='#SkCanvas_drawBitmapLattice_bitmap'>right</a> <a href='#SkCanvas_drawBitmapLattice_bitmap'>of</a> <a href='#SkCanvas_drawBitmapLattice_bitmap'>center</a>.
-<a href='#SkCanvas_drawBitmapLattice_bitmap'>The</a> <a href='#SkCanvas_drawBitmapLattice_bitmap'>leftmost</a> <a href='SkBitmap_Reference#Bitmap_Draw'>bitmap draw</a> <a href='#SkCanvas_drawBitmapLattice_bitmap'>scales</a> <a href='#SkCanvas_drawBitmapLattice_bitmap'>the</a> <a href='#SkCanvas_drawBitmapLattice_bitmap'>width</a> <a href='#SkCanvas_drawBitmapLattice_bitmap'>of</a> <a href='#SkCanvas_drawBitmapLattice_bitmap'>corners</a> <a href='#SkCanvas_drawBitmapLattice_bitmap'>proportionately</a> <a href='#SkCanvas_drawBitmapLattice_bitmap'>to</a> <a href='#SkCanvas_drawBitmapLattice_bitmap'>fit</a>.
-<a href='#SkCanvas_drawBitmapLattice_bitmap'>The</a> <a href='#SkCanvas_drawBitmapLattice_bitmap'>third</a> <a href='#SkCanvas_drawBitmapLattice_bitmap'>and</a> <a href='#SkCanvas_drawBitmapLattice_bitmap'>fourth</a> <a href='#SkCanvas_drawBitmapLattice_bitmap'>draw</a> <a href='#SkCanvas_drawBitmapLattice_bitmap'>corners</a> <a href='#SkCanvas_drawBitmapLattice_bitmap'>are</a> <a href='#SkCanvas_drawBitmapLattice_bitmap'>not</a> <a href='#SkCanvas_drawBitmapLattice_bitmap'>scaled</a>; <a href='#SkCanvas_drawBitmapLattice_bitmap'>the</a> <a href='#SkCanvas_drawBitmapLattice_bitmap'>sides</a> <a href='#SkCanvas_drawBitmapLattice_bitmap'>are</a> <a href='#SkCanvas_drawBitmapLattice_bitmap'>scaled</a> <a href='#SkCanvas_drawBitmapLattice_bitmap'>to</a>
-<a href='#SkCanvas_drawBitmapLattice_bitmap'>fill</a> <a href='#SkCanvas_drawBitmapLattice_bitmap'>the</a> <a href='#SkCanvas_drawBitmapLattice_bitmap'>remaining</a> <a href='#SkCanvas_drawBitmapLattice_bitmap'>space</a>; <a href='#SkCanvas_drawBitmapLattice_bitmap'>the</a> <a href='#SkCanvas_drawBitmapLattice_bitmap'>center</a> <a href='#SkCanvas_drawBitmapLattice_bitmap'>is</a> <a href='#SkCanvas_drawBitmapLattice_bitmap'>transparent</a>.
-<a href='#SkCanvas_drawBitmapLattice_bitmap'>The</a> <a href='#SkCanvas_drawBitmapLattice_bitmap'>rightmost</a> <a href='SkBitmap_Reference#Bitmap_Draw'>bitmap draw</a> <a href='#SkCanvas_drawBitmapLattice_bitmap'>has</a> <a href='#SkCanvas_drawBitmapLattice_bitmap'>four</a> <a href='#SkCanvas_drawBitmapLattice_bitmap'>corners</a> <a href='#SkCanvas_drawBitmapLattice_bitmap'>scaled</a> <a href='#SkCanvas_drawBitmapLattice_bitmap'>vertically</a> <a href='#SkCanvas_drawBitmapLattice_bitmap'>to</a> <a href='#SkCanvas_drawBitmapLattice_bitmap'>fit</a>, <a href='#SkCanvas_drawBitmapLattice_bitmap'>and</a> <a href='#SkCanvas_drawBitmapLattice_bitmap'>uses</a> <a href='#SkCanvas_drawBitmapLattice_bitmap'>sides</a> <a href='#SkCanvas_drawBitmapLattice_bitmap'>above</a>
-<a href='#SkCanvas_drawBitmapLattice_bitmap'>and</a> <a href='#SkCanvas_drawBitmapLattice_bitmap'>below</a> <a href='#SkCanvas_drawBitmapLattice_bitmap'>center</a> <a href='#SkCanvas_drawBitmapLattice_bitmap'>to</a> <a href='#SkCanvas_drawBitmapLattice_bitmap'>fill</a> <a href='#SkCanvas_drawBitmapLattice_bitmap'>the</a> <a href='#SkCanvas_drawBitmapLattice_bitmap'>remaining</a> <a href='#SkCanvas_drawBitmapLattice_bitmap'>space</a>.
+<div><fiddle-embed name="c5bfa944e17ba4a4400dc799f032069c"><div>The two leftmost <a href='#SkCanvas_drawBitmapLattice_bitmap'>bitmap</a> draws has four corners and sides to the left and right of center.
+The leftmost <a href='SkBitmap_Reference#Bitmap_Draw'>bitmap draw</a> scales the width of corners proportionately to fit.
+The third and fourth draw corners are not scaled; the sides are scaled to
+fill the remaining space; the center is transparent.
+The rightmost <a href='SkBitmap_Reference#Bitmap_Draw'>bitmap draw</a> 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
@@ -5076,54 +5076,54 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-void <a href='#SkCanvas_drawImageLattice'>drawImageLattice</a>(<a href='#SkCanvas_drawImageLattice'>const</a> <a href='SkImage_Reference#SkImage'>SkImage</a>* <a href='SkImage_Reference#Image'>image</a>, <a href='SkImage_Reference#Image'>const</a> <a href='#SkCanvas_Lattice'>Lattice</a>& <a href='#SkCanvas_Lattice'>lattice</a>, <a href='#SkCanvas_Lattice'>const</a> <a href='SkRect_Reference#SkRect'>SkRect</a>& <a href='SkRect_Reference#SkRect'>dst</a>,
- <a href='SkRect_Reference#SkRect'>const</a> <a href='SkPaint_Reference#SkPaint'>SkPaint</a>* <a href='SkPaint_Reference#Paint'>paint</a> = <a href='SkPaint_Reference#Paint'>nullptr</a>)
+void <a href='#SkCanvas_drawImageLattice'>drawImageLattice</a>(const <a href='SkImage_Reference#SkImage'>SkImage</a>* <a href='SkImage_Reference#Image'>image</a>, const <a href='#SkCanvas_Lattice'>Lattice</a>& lattice, const <a href='SkRect_Reference#SkRect'>SkRect</a>& dst,
+ const <a href='SkPaint_Reference#SkPaint'>SkPaint</a>* <a href='SkPaint_Reference#Paint'>paint</a> = nullptr)
</pre>
-Draws <a href='SkImage_Reference#Image'>Image</a> <a href='#SkCanvas_drawImageLattice_image'>image</a> <a href='#SkCanvas_drawImageLattice_image'>stretched</a> <a href='#SkCanvas_drawImageLattice_image'>proportionally</a> <a href='#SkCanvas_drawImageLattice_image'>to</a> <a href='#SkCanvas_drawImageLattice_image'>fit</a> <a href='#SkCanvas_drawImageLattice_image'>into</a> <a href='SkRect_Reference#Rect'>Rect</a> <a href='#SkCanvas_drawImageLattice_dst'>dst</a>.
+Draws <a href='SkImage_Reference#Image'>Image</a> <a href='#SkCanvas_drawImageLattice_image'>image</a> stretched proportionally to fit into <a href='SkRect_Reference#Rect'>Rect</a> <a href='#SkCanvas_drawImageLattice_dst'>dst</a>.
-<a href='#SkCanvas_Lattice'>Lattice</a> <a href='#SkCanvas_drawImageLattice_lattice'>lattice</a> <a href='#SkCanvas_drawImageLattice_lattice'>divides</a> <a href='#SkCanvas_drawImageLattice_image'>image</a> <a href='#SkCanvas_drawImageLattice_image'>into</a> <a href='#SkCanvas_drawImageLattice_image'>a</a> <a href='#SkCanvas_drawImageLattice_image'>rectangular</a> <a href='#SkCanvas_drawImageLattice_image'>grid</a>.
-<a href='#SkCanvas_drawImageLattice_image'>Each</a> <a href='#SkCanvas_drawImageLattice_image'>intersection</a> <a href='#SkCanvas_drawImageLattice_image'>of</a> <a href='#SkCanvas_drawImageLattice_image'>an</a> <a href='#SkCanvas_drawImageLattice_image'>even-numbered</a> <a href='#SkCanvas_drawImageLattice_image'>row</a> <a href='#SkCanvas_drawImageLattice_image'>and</a> <a href='#SkCanvas_drawImageLattice_image'>column</a> <a href='#SkCanvas_drawImageLattice_image'>is</a> <a href='#SkCanvas_drawImageLattice_image'>fixed</a>; <a href='#SkCanvas_drawImageLattice_image'>like</a> <a href='#SkCanvas_drawImageLattice_image'>the</a> <a href='#SkCanvas_drawImageLattice_image'>corners</a>
-<a href='#SkCanvas_drawImageLattice_image'>of</a> <a href='#SkCanvas_drawBitmapNine'>drawBitmapNine</a>, <a href='#SkCanvas_drawBitmapNine'>fixed</a> <a href='#SkCanvas_drawImageLattice_lattice'>lattice</a> <a href='#SkCanvas_drawImageLattice_lattice'>elements</a> <a href='#SkCanvas_drawImageLattice_lattice'>never</a> <a href='#SkCanvas_drawImageLattice_lattice'>scale</a> <a href='#SkCanvas_drawImageLattice_lattice'>larger</a> <a href='#SkCanvas_drawImageLattice_lattice'>than</a> <a href='#SkCanvas_drawImageLattice_lattice'>their</a> <a href='#SkCanvas_drawImageLattice_lattice'>initial</a>
-<a href='undocumented#Size'>size</a> <a href='undocumented#Size'>and</a> <a href='undocumented#Size'>shrink</a> <a href='undocumented#Size'>proportionately</a> <a href='undocumented#Size'>when</a> <a href='undocumented#Size'>all</a> <a href='undocumented#Size'>fixed</a> <a href='undocumented#Size'>elements</a> <a href='undocumented#Size'>exceed</a> <a href='undocumented#Size'>the</a> <a href='SkBitmap_Reference#Bitmap'>bitmap</a>
-<a href='SkBitmap_Reference#Bitmap'>dimension</a>. <a href='SkBitmap_Reference#Bitmap'>All</a> <a href='SkBitmap_Reference#Bitmap'>other</a> <a href='SkBitmap_Reference#Bitmap'>grid</a> <a href='SkBitmap_Reference#Bitmap'>elements</a> <a href='SkBitmap_Reference#Bitmap'>scale</a> <a href='SkBitmap_Reference#Bitmap'>to</a> <a href='SkBitmap_Reference#Bitmap'>fill</a> <a href='SkBitmap_Reference#Bitmap'>the</a> <a href='SkBitmap_Reference#Bitmap'>available</a> <a href='SkBitmap_Reference#Bitmap'>space</a>, <a href='SkBitmap_Reference#Bitmap'>if</a> <a href='SkBitmap_Reference#Bitmap'>any</a>.
+<a href='#SkCanvas_Lattice'>Lattice</a> <a href='#SkCanvas_drawImageLattice_lattice'>lattice</a> divides <a href='#SkCanvas_drawImageLattice_image'>image</a> into a rectangular grid.
+Each intersection of an even-numbered row and column is fixed; like the corners
+of <a href='#SkCanvas_drawBitmapNine'>drawBitmapNine</a>, fixed <a href='#SkCanvas_drawImageLattice_lattice'>lattice</a> elements never scale larger than their initial
+<a href='undocumented#Size'>size</a> and shrink proportionately when all fixed elements exceed the <a href='SkBitmap_Reference#Bitmap'>bitmap</a>
+dimension. All other grid elements scale to fill the available space, if any.
-<a href='SkBitmap_Reference#Bitmap'>Additionally</a> <a href='SkBitmap_Reference#Bitmap'>transform</a> <a href='SkBitmap_Reference#Bitmap'>draw</a> <a href='SkBitmap_Reference#Bitmap'>using</a> <a href='SkBitmap_Reference#Bitmap'>Clip</a>, <a href='SkMatrix_Reference#Matrix'>Matrix</a>, <a href='SkMatrix_Reference#Matrix'>and</a> <a href='SkMatrix_Reference#Matrix'>optional</a> <a href='SkPaint_Reference#Paint'>Paint</a> <a href='#SkCanvas_drawImageLattice_paint'>paint</a>.
-If <a href='SkPaint_Reference#Paint'>Paint</a> <a href='#SkCanvas_drawImageLattice_paint'>paint</a> <a href='#SkCanvas_drawImageLattice_paint'>is</a> <a href='#SkCanvas_drawImageLattice_paint'>supplied</a>, <a href='#SkCanvas_drawImageLattice_paint'>apply</a> <a href='#Color_Filter'>Color_Filter</a>, <a href='#Color_Alpha'>Color_Alpha</a>, <a href='#Image_Filter'>Image_Filter</a>,
-<a href='#Blend_Mode'>Blend_Mode</a>, <a href='#Blend_Mode'>and</a> <a href='#Draw_Looper'>Draw_Looper</a>. <a href='#Draw_Looper'>If</a> image is <a href='SkImageInfo_Reference#kAlpha_8_SkColorType'>kAlpha_8_SkColorType</a>, <a href='SkImageInfo_Reference#kAlpha_8_SkColorType'>apply</a> <a href='undocumented#Shader'>Shader</a>.
-<a href='undocumented#Shader'>If</a> <a href='#SkCanvas_drawImageLattice_paint'>paint</a> <a href='#SkCanvas_drawImageLattice_paint'>contains</a> <a href='#Mask_Filter'>Mask_Filter</a>, <a href='#Mask_Filter'>generate</a> <a href='#Mask_Filter'>mask</a> <a href='#Mask_Filter'>from</a> image bounds. If <a href='#SkCanvas_drawImageLattice_paint'>paint</a>
-<a href='#Filter_Quality'>Filter_Quality</a> <a href='#Filter_Quality'>set</a> <a href='#Filter_Quality'>to</a> <a href='undocumented#kNone_SkFilterQuality'>kNone_SkFilterQuality</a>, <a href='undocumented#kNone_SkFilterQuality'>disable</a> <a href='undocumented#Pixel'>pixel</a> <a href='undocumented#Pixel'>filtering</a>. <a href='undocumented#Pixel'>For</a> <a href='undocumented#Pixel'>all</a>
-<a href='undocumented#Pixel'>other</a> <a href='undocumented#Pixel'>values</a> <a href='undocumented#Pixel'>of</a> <a href='#SkCanvas_drawImageLattice_paint'>paint</a> <a href='#Filter_Quality'>Filter_Quality</a>, <a href='#Filter_Quality'>use</a> <a href='undocumented#kLow_SkFilterQuality'>kLow_SkFilterQuality</a> <a href='undocumented#kLow_SkFilterQuality'>to</a> <a href='undocumented#kLow_SkFilterQuality'>filter</a> <a href='undocumented#kLow_SkFilterQuality'>pixels</a>.
-<a href='undocumented#kLow_SkFilterQuality'>Any</a> <a href='undocumented#SkMaskFilter'>SkMaskFilter</a> <a href='undocumented#SkMaskFilter'>on</a> <a href='#SkCanvas_drawImageLattice_paint'>paint</a> <a href='#SkCanvas_drawImageLattice_paint'>is</a> <a href='#SkCanvas_drawImageLattice_paint'>ignored</a> <a href='#SkCanvas_drawImageLattice_paint'>as</a> <a href='#SkCanvas_drawImageLattice_paint'>is</a> <a href='#SkCanvas_drawImageLattice_paint'>paint</a> <a href='#Paint_Anti_Alias'>Anti_Aliasing</a> <a href='#Paint_Anti_Alias'>state</a>.
-If generated mask extends beyond <a href='SkBitmap_Reference#Bitmap'>bitmap</a> <a href='SkBitmap_Reference#Bitmap'>bounds</a>, <a href='SkBitmap_Reference#Bitmap'>replicate</a> <a href='SkBitmap_Reference#Bitmap'>bitmap</a> <a href='SkBitmap_Reference#Bitmap'>edge</a> <a href='SkBitmap_Reference#Bitmap'>colors</a>,
-<a href='SkBitmap_Reference#Bitmap'>just</a> <a href='SkBitmap_Reference#Bitmap'>as</a> <a href='undocumented#Shader'>Shader</a> <a href='undocumented#Shader'>made</a> <a href='undocumented#Shader'>from</a> <a href='undocumented#SkShader'>SkShader</a>::<a href='#SkShader_MakeBitmapShader'>MakeBitmapShader</a> <a href='#SkShader_MakeBitmapShader'>with</a>
-<a href='undocumented#SkShader'>SkShader</a>::<a href='#SkShader_kClamp_TileMode'>kClamp_TileMode</a> <a href='#SkShader_kClamp_TileMode'>set</a> <a href='#SkShader_kClamp_TileMode'>replicates</a> <a href='#SkShader_kClamp_TileMode'>the</a> <a href='SkBitmap_Reference#Bitmap'>bitmap</a> <a href='SkBitmap_Reference#Bitmap'>edge</a> <a href='SkColor_Reference#Color'>color</a> <a href='SkColor_Reference#Color'>when</a> <a href='SkColor_Reference#Color'>it</a> <a href='SkColor_Reference#Color'>samples</a>
-<a href='SkColor_Reference#Color'>outside</a> <a href='SkColor_Reference#Color'>of</a> <a href='SkColor_Reference#Color'>its</a> <a href='SkColor_Reference#Color'>bounds</a>.
+Additionally transform draw using Clip, <a href='SkMatrix_Reference#Matrix'>Matrix</a>, and optional <a href='SkPaint_Reference#Paint'>Paint</a> <a href='#SkCanvas_drawImageLattice_paint'>paint</a>.
+If <a href='SkPaint_Reference#Paint'>Paint</a> <a href='#SkCanvas_drawImageLattice_paint'>paint</a> is supplied, apply <a href='#Color_Filter'>Color_Filter</a>, <a href='#Color_Alpha'>Color_Alpha</a>, <a href='#Image_Filter'>Image_Filter</a>,
+<a href='#Blend_Mode'>Blend_Mode</a>, and <a href='#Draw_Looper'>Draw_Looper</a>. If image is <a href='SkImageInfo_Reference#kAlpha_8_SkColorType'>kAlpha_8_SkColorType</a>, apply <a href='undocumented#Shader'>Shader</a>.
+If <a href='#SkCanvas_drawImageLattice_paint'>paint</a> contains <a href='#Mask_Filter'>Mask_Filter</a>, generate mask from image bounds. If <a href='#SkCanvas_drawImageLattice_paint'>paint</a>
+<a href='#Filter_Quality'>Filter_Quality</a> set to <a href='undocumented#kNone_SkFilterQuality'>kNone_SkFilterQuality</a>, disable <a href='undocumented#Pixel'>pixel</a> filtering. For all
+other values of <a href='#SkCanvas_drawImageLattice_paint'>paint</a> <a href='#Filter_Quality'>Filter_Quality</a>, use <a href='undocumented#kLow_SkFilterQuality'>kLow_SkFilterQuality</a> to filter pixels.
+Any <a href='undocumented#SkMaskFilter'>SkMaskFilter</a> on <a href='#SkCanvas_drawImageLattice_paint'>paint</a> is ignored as is <a href='#SkCanvas_drawImageLattice_paint'>paint</a> <a href='#Paint_Anti_Alias'>Anti_Aliasing</a> state.
+If generated mask extends beyond <a href='SkBitmap_Reference#Bitmap'>bitmap</a> bounds, replicate <a href='SkBitmap_Reference#Bitmap'>bitmap</a> edge colors,
+just as <a href='undocumented#Shader'>Shader</a> made from <a href='undocumented#SkShader'>SkShader</a>::<a href='#SkShader_MakeBitmapShader'>MakeBitmapShader</a> with
+<a href='undocumented#SkShader'>SkShader</a>::<a href='#SkShader_kClamp_TileMode'>kClamp_TileMode</a> set replicates the <a href='SkBitmap_Reference#Bitmap'>bitmap</a> edge <a href='SkColor_Reference#Color'>color</a> when it samples
+outside of its bounds.
### Parameters
<table> <tr> <td><a name='SkCanvas_drawImageLattice_image'><code><strong>image</strong></code></a></td>
- <td><a href='SkImage_Reference#Image'>Image</a> <a href='SkImage_Reference#Image'>containing</a> <a href='SkImage_Reference#Image'>pixels</a>, <a href='SkImage_Reference#Image'>dimensions</a>, <a href='SkImage_Reference#Image'>and</a> <a href='SkImage_Reference#Image'>format</a></td>
+ <td><a href='SkImage_Reference#Image'>Image</a> containing pixels, dimensions, and format</td>
</tr>
<tr> <td><a name='SkCanvas_drawImageLattice_lattice'><code><strong>lattice</strong></code></a></td>
- <td>division of <a href='SkBitmap_Reference#Bitmap'>bitmap</a> <a href='SkBitmap_Reference#Bitmap'>into</a> <a href='SkBitmap_Reference#Bitmap'>fixed</a> <a href='SkBitmap_Reference#Bitmap'>and</a> <a href='SkBitmap_Reference#Bitmap'>variable</a> <a href='SkBitmap_Reference#Bitmap'>rectangles</a></td>
+ <td>division of <a href='SkBitmap_Reference#Bitmap'>bitmap</a> into fixed and variable rectangles</td>
</tr>
<tr> <td><a name='SkCanvas_drawImageLattice_dst'><code><strong>dst</strong></code></a></td>
- <td>destination <a href='SkRect_Reference#Rect'>Rect</a> <a href='SkRect_Reference#Rect'>of</a> <a href='#SkCanvas_drawImageLattice_image'>image</a> <a href='#SkCanvas_drawImageLattice_image'>to</a> <a href='#SkCanvas_drawImageLattice_image'>draw</a> <a href='#SkCanvas_drawImageLattice_image'>to</a></td>
+ <td>destination <a href='SkRect_Reference#Rect'>Rect</a> of <a href='#SkCanvas_drawImageLattice_image'>image</a> to draw to</td>
</tr>
<tr> <td><a name='SkCanvas_drawImageLattice_paint'><code><strong>paint</strong></code></a></td>
- <td><a href='SkPaint_Reference#Paint'>Paint</a> <a href='SkPaint_Reference#Paint'>containing</a> <a href='#Blend_Mode'>Blend_Mode</a>, <a href='#Color_Filter'>Color_Filter</a>, <a href='#Image_Filter'>Image_Filter</a>,
-<a href='#Image_Filter'>and</a> <a href='#Image_Filter'>so</a> <a href='#Image_Filter'>on</a>; <a href='#Image_Filter'>or</a> <a href='#Image_Filter'>nullptr</a>
+ <td><a href='SkPaint_Reference#Paint'>Paint</a> containing <a href='#Blend_Mode'>Blend_Mode</a>, <a href='#Color_Filter'>Color_Filter</a>, <a href='#Image_Filter'>Image_Filter</a>,
+and so on; or nullptr
</td>
</tr>
</table>
### Example
-<div><fiddle-embed name="4f153cf1d0dbe1a95acf5badeec14dae"><div>The leftmost <a href='#SkCanvas_drawImageLattice_image'>image</a> <a href='#SkCanvas_drawImageLattice_image'>is</a> <a href='#SkCanvas_drawImageLattice_image'>smaller</a> <a href='#SkCanvas_drawImageLattice_image'>than</a> <a href='#SkCanvas_drawImageLattice_image'>center</a>; <a href='#SkCanvas_drawImageLattice_image'>only</a> <a href='#SkCanvas_drawImageLattice_image'>corners</a> <a href='#SkCanvas_drawImageLattice_image'>are</a> <a href='#SkCanvas_drawImageLattice_image'>drawn</a>, <a href='#SkCanvas_drawImageLattice_image'>all</a> <a href='#SkCanvas_drawImageLattice_image'>scaled</a> <a href='#SkCanvas_drawImageLattice_image'>to</a> <a href='#SkCanvas_drawImageLattice_image'>fit</a>.
-<a href='#SkCanvas_drawImageLattice_image'>The</a> <a href='#SkCanvas_drawImageLattice_image'>second</a> <a href='#SkCanvas_drawImageLattice_image'>image</a> <a href='#SkCanvas_drawImageLattice_image'>equals</a> <a href='#SkCanvas_drawImageLattice_image'>the</a> <a href='undocumented#Size'>size</a> <a href='undocumented#Size'>of</a> <a href='undocumented#Size'>center</a>; <a href='undocumented#Size'>only</a> <a href='undocumented#Size'>corners</a> <a href='undocumented#Size'>are</a> <a href='undocumented#Size'>drawn</a> <a href='undocumented#Size'>without</a> <a href='undocumented#Size'>scaling</a>.
-<a href='undocumented#Size'>The</a> <a href='undocumented#Size'>remaining</a> <a href='undocumented#Size'>images</a> <a href='undocumented#Size'>are</a> <a href='undocumented#Size'>larger</a> <a href='undocumented#Size'>than</a> <a href='undocumented#Size'>center</a>. <a href='undocumented#Size'>All</a> <a href='undocumented#Size'>corners</a> <a href='undocumented#Size'>draw</a> <a href='undocumented#Size'>without</a> <a href='undocumented#Size'>scaling</a>. <a href='undocumented#Size'>The</a> <a href='undocumented#Size'>sides</a>
-<a href='undocumented#Size'>are</a> <a href='undocumented#Size'>scaled</a> <a href='undocumented#Size'>if</a> <a href='undocumented#Size'>needed</a> <a href='undocumented#Size'>to</a> <a href='undocumented#Size'>take</a> <a href='undocumented#Size'>up</a> <a href='undocumented#Size'>the</a> <a href='undocumented#Size'>remaining</a> <a href='undocumented#Size'>space</a>; <a href='undocumented#Size'>the</a> <a href='undocumented#Size'>center</a> <a href='undocumented#Size'>is</a> <a href='undocumented#Size'>transparent</a>.
+<div><fiddle-embed name="4f153cf1d0dbe1a95acf5badeec14dae"><div>The leftmost <a href='#SkCanvas_drawImageLattice_image'>image</a> is smaller than center; only corners are drawn, all scaled to fit.
+The second <a href='#SkCanvas_drawImageLattice_image'>image</a> equals the <a href='undocumented#Size'>size</a> of center; only corners are drawn without scaling.
+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
@@ -5135,13 +5135,13 @@
---
<pre style="padding: 1em 1em 1em 1em;width: 62.5em; background-color: #f0f0f0">
- enum <a href='#SkCanvas_QuadAAFlags'>QuadAAFlags</a> : <a href='#SkCanvas_QuadAAFlags'>unsigned</a> {
- <a href='#SkCanvas_kLeft_QuadAAFlag'>kLeft_QuadAAFlag</a> = 0<a href='#SkCanvas_kLeft_QuadAAFlag'>b0001</a>,
- <a href='#SkCanvas_kTop_QuadAAFlag'>kTop_QuadAAFlag</a> = 0<a href='#SkCanvas_kTop_QuadAAFlag'>b0010</a>,
- <a href='#SkCanvas_kRight_QuadAAFlag'>kRight_QuadAAFlag</a> = 0<a href='#SkCanvas_kRight_QuadAAFlag'>b0100</a>,
- <a href='#SkCanvas_kBottom_QuadAAFlag'>kBottom_QuadAAFlag</a> = 0<a href='#SkCanvas_kBottom_QuadAAFlag'>b1000</a>,
- <a href='#SkCanvas_kNone_QuadAAFlags'>kNone_QuadAAFlags</a> = 0<a href='#SkCanvas_kNone_QuadAAFlags'>b0000</a>,
- <a href='#SkCanvas_kAll_QuadAAFlags'>kAll_QuadAAFlags</a> = 0<a href='#SkCanvas_kAll_QuadAAFlags'>b1111</a>,
+ enum <a href='#SkCanvas_QuadAAFlags'>QuadAAFlags</a> : unsigned {
+ <a href='#SkCanvas_kLeft_QuadAAFlag'>kLeft_QuadAAFlag</a> = 0b0001,
+ <a href='#SkCanvas_kTop_QuadAAFlag'>kTop_QuadAAFlag</a> = 0b0010,
+ <a href='#SkCanvas_kRight_QuadAAFlag'>kRight_QuadAAFlag</a> = 0b0100,
+ <a href='#SkCanvas_kBottom_QuadAAFlag'>kBottom_QuadAAFlag</a> = 0b1000,
+ <a href='#SkCanvas_kNone_QuadAAFlags'>kNone_QuadAAFlags</a> = 0b0000,
+ <a href='#SkCanvas_kAll_QuadAAFlags'>kAll_QuadAAFlags</a> = 0b1111,
};
</pre>
@@ -5197,10 +5197,10 @@
<pre style="padding: 1em 1em 1em 1em;width: 62.5em; background-color: #f0f0f0">
struct <a href='#SkCanvas_ImageSetEntry'>ImageSetEntry</a> {
- <a href='undocumented#sk_sp'>sk_sp</a><<a href='undocumented#sk_sp'>const</a> <a href='SkImage_Reference#SkImage'>SkImage</a>> <a href='#SkCanvas_ImageSetEntry_fImage'>fImage</a>;
+ <a href='undocumented#sk_sp'>sk_sp</a><const <a href='SkImage_Reference#SkImage'>SkImage</a>> <a href='#SkCanvas_ImageSetEntry_fImage'>fImage</a>;
<a href='SkRect_Reference#SkRect'>SkRect</a> <a href='#SkCanvas_ImageSetEntry_fSrcRect'>fSrcRect</a>;
<a href='SkRect_Reference#SkRect'>SkRect</a> <a href='#SkCanvas_ImageSetEntry_fDstRect'>fDstRect</a>;
- <a href='#SkCanvas_ImageSetEntry_fDstRect'>unsigned</a> <a href='#SkCanvas_ImageSetEntry_fAAFlags'>fAAFlags</a>;
+ unsigned <a href='#SkCanvas_ImageSetEntry_fAAFlags'>fAAFlags</a>;
};
</pre>
@@ -5241,8 +5241,8 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-void <a href='#SkCanvas_experimental_DrawImageSetV0'>experimental_DrawImageSetV0</a>(<a href='#SkCanvas_experimental_DrawImageSetV0'>const</a> <a href='#SkCanvas_ImageSetEntry'>ImageSetEntry</a> <a href='#SkCanvas_ImageSetEntry'>imageSet</a>[], <a href='#SkCanvas_ImageSetEntry'>int</a> <a href='#SkCanvas_ImageSetEntry'>cnt</a>, <a href='#SkCanvas_ImageSetEntry'>float</a> <a href='SkColor_Reference#Alpha'>alpha</a>,
- <a href='undocumented#SkFilterQuality'>SkFilterQuality</a> <a href='undocumented#SkFilterQuality'>quality</a>, <a href='SkBlendMode_Reference#SkBlendMode'>SkBlendMode</a> <a href='SkBlendMode_Reference#SkBlendMode'>mode</a>) ;
+void <a href='#SkCanvas_experimental_DrawImageSetV0'>experimental_DrawImageSetV0</a>(const <a href='#SkCanvas_ImageSetEntry'>ImageSetEntry</a> imageSet[], int cnt, float <a href='SkColor_Reference#Alpha'>alpha</a>,
+ <a href='undocumented#SkFilterQuality'>SkFilterQuality</a> quality, <a href='SkBlendMode_Reference#SkBlendMode'>SkBlendMode</a> mode) ;
</pre>
Private: Do not use.
@@ -5275,44 +5275,44 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-void <a href='#SkCanvas_drawText'>drawText</a>(<a href='#SkCanvas_drawText'>const</a> <a href='#SkCanvas_drawText'>void</a>* <a href='undocumented#Text'>text</a>, <a href='undocumented#Text'>size_t</a> <a href='undocumented#Text'>byteLength</a>, <a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>x</a>, <a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>y</a>, <a href='undocumented#SkScalar'>const</a> <a href='SkPaint_Reference#SkPaint'>SkPaint</a>& <a href='SkPaint_Reference#Paint'>paint</a>)
+void <a href='#SkCanvas_drawText'>drawText</a>(const void* <a href='undocumented#Text'>text</a>, size_t byteLength, <a href='undocumented#SkScalar'>SkScalar</a> x, <a href='undocumented#SkScalar'>SkScalar</a> y, const <a href='SkPaint_Reference#SkPaint'>SkPaint</a>& <a href='SkPaint_Reference#Paint'>paint</a>)
</pre>
-Draws <a href='#SkCanvas_drawText_text'>text</a>, <a href='#SkCanvas_drawText_text'>with</a> <a href='#SkCanvas_drawText_text'>origin</a> <a href='#SkCanvas_drawText_text'>at</a> (<a href='#SkCanvas_drawText_x'>x</a>, <a href='#SkCanvas_drawText_y'>y</a>), <a href='#SkCanvas_drawText_y'>using</a> <a href='#SkCanvas_drawText_y'>clip</a>, <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a>, <a href='SkMatrix_Reference#SkMatrix'>and</a> <a href='SkPaint_Reference#SkPaint'>SkPaint</a> <a href='#SkCanvas_drawText_paint'>paint</a>.
+Draws <a href='#SkCanvas_drawText_text'>text</a>, with origin at (<a href='#SkCanvas_drawText_x'>x</a>, <a href='#SkCanvas_drawText_y'>y</a>), using clip, <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a>, and <a href='SkPaint_Reference#SkPaint'>SkPaint</a> <a href='#SkCanvas_drawText_paint'>paint</a>.
-<a href='#SkCanvas_drawText_text'>text</a> <a href='#SkCanvas_drawText_text'>meaning</a> <a href='#SkCanvas_drawText_text'>depends</a> <a href='#SkCanvas_drawText_text'>on</a> <a href='SkPaint_Reference#SkPaint'>SkPaint</a>::<a href='#SkPaint_TextEncoding'>TextEncoding</a>; <a href='#SkPaint_TextEncoding'>by</a> <a href='#SkPaint_TextEncoding'>default</a>, <a href='#SkCanvas_drawText_text'>text</a> <a href='#SkCanvas_drawText_text'>is</a> <a href='#SkCanvas_drawText_text'>encoded</a> <a href='#SkCanvas_drawText_text'>as</a>
+<a href='#SkCanvas_drawText_text'>text</a> meaning depends on <a href='SkPaint_Reference#SkPaint'>SkPaint</a>::<a href='#SkPaint_TextEncoding'>TextEncoding</a>; by default, <a href='#SkCanvas_drawText_text'>text</a> is encoded as
UTF-8.
-<a href='#SkCanvas_drawText_x'>x</a> <a href='#SkCanvas_drawText_x'>and</a> <a href='#SkCanvas_drawText_y'>y</a> <a href='#SkCanvas_drawText_y'>meaning</a> <a href='#SkCanvas_drawText_y'>depends</a> <a href='#SkCanvas_drawText_y'>on</a> <a href='SkPaint_Reference#SkPaint'>SkPaint</a>::<a href='SkPaint_Reference#SkPaint'>Align</a> <a href='SkPaint_Reference#SkPaint'>and</a> <a href='SkPaint_Reference#SkPaint'>SkPaint</a> <a href='SkPaint_Reference#SkPaint'>vertical</a> <a href='#SkCanvas_drawText_text'>text</a>; <a href='#SkCanvas_drawText_text'>by</a> <a href='#SkCanvas_drawText_text'>default</a>
-<a href='#SkCanvas_drawText_text'>text</a> <a href='#SkCanvas_drawText_text'>draws</a> <a href='#SkCanvas_drawText_text'>left</a> <a href='#SkCanvas_drawText_text'>to</a> <a href='#SkCanvas_drawText_text'>right</a>, <a href='#SkCanvas_drawText_text'>positioning</a> <a href='#SkCanvas_drawText_text'>the</a> <a href='#SkCanvas_drawText_text'>first</a> <a href='undocumented#Glyph'>glyph</a> <a href='undocumented#Left_Side_Bearing'>left side bearing</a> <a href='undocumented#Glyph'>at</a> <a href='#SkCanvas_drawText_x'>x</a>
-and its baseline at <a href='#SkCanvas_drawText_y'>y</a>. <a href='undocumented#Text'>Text</a> <a href='undocumented#Size'>size</a> <a href='undocumented#Size'>is</a> <a href='undocumented#Size'>affected</a> <a href='undocumented#Size'>by</a> <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> <a href='SkMatrix_Reference#SkMatrix'>and</a> <a href='SkPaint_Reference#SkPaint'>SkPaint</a> <a href='#SkCanvas_drawText_text'>text</a> <a href='undocumented#Size'>size</a>.
+<a href='#SkCanvas_drawText_x'>x</a> and <a href='#SkCanvas_drawText_y'>y</a> meaning depends on <a href='SkPaint_Reference#SkPaint'>SkPaint</a>::Align and <a href='SkPaint_Reference#SkPaint'>SkPaint</a> vertical <a href='#SkCanvas_drawText_text'>text</a>; by default
+<a href='#SkCanvas_drawText_text'>text</a> draws left to right, positioning the first <a href='undocumented#Glyph'>glyph</a> <a href='undocumented#Left_Side_Bearing'>left side bearing</a> at <a href='#SkCanvas_drawText_x'>x</a>
+and its baseline at <a href='#SkCanvas_drawText_y'>y</a>. <a href='undocumented#Text'>Text</a> <a href='undocumented#Size'>size</a> is affected by <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> and <a href='SkPaint_Reference#SkPaint'>SkPaint</a> <a href='#SkCanvas_drawText_text'>text</a> <a href='undocumented#Size'>size</a>.
All elements of <a href='#SkCanvas_drawText_paint'>paint</a>: <a href='undocumented#SkPathEffect'>SkPathEffect</a>, <a href='undocumented#SkMaskFilter'>SkMaskFilter</a>, <a href='undocumented#SkShader'>SkShader</a>,
-<a href='undocumented#SkColorFilter'>SkColorFilter</a>, <a href='undocumented#SkImageFilter'>SkImageFilter</a>, <a href='undocumented#SkImageFilter'>and</a> <a href='undocumented#SkDrawLooper'>SkDrawLooper</a>; <a href='undocumented#SkDrawLooper'>apply</a> <a href='undocumented#SkDrawLooper'>to</a> <a href='#SkCanvas_drawText_text'>text</a>. <a href='#SkCanvas_drawText_text'>By</a> <a href='#SkCanvas_drawText_text'>default</a>, <a href='#SkCanvas_drawText_text'>draws</a>
-filled 12 <a href='SkPoint_Reference#Point'>point</a> <a href='SkPoint_Reference#Point'>black</a> <a href='undocumented#Glyph'>glyphs</a>.
+<a href='undocumented#SkColorFilter'>SkColorFilter</a>, <a href='undocumented#SkImageFilter'>SkImageFilter</a>, and <a href='undocumented#SkDrawLooper'>SkDrawLooper</a>; apply to <a href='#SkCanvas_drawText_text'>text</a>. By default, draws
+filled 12 <a href='SkPoint_Reference#Point'>point</a> black <a href='undocumented#Glyph'>glyphs</a>.
### Parameters
<table> <tr> <td><a name='SkCanvas_drawText_text'><code><strong>text</strong></code></a></td>
- <td>character code <a href='SkPoint_Reference#Point'>points</a> <a href='SkPoint_Reference#Point'>or</a> <a href='undocumented#Glyph'>glyphs</a> <a href='undocumented#Glyph'>drawn</a></td>
+ <td>character code <a href='SkPoint_Reference#Point'>points</a> or <a href='undocumented#Glyph'>glyphs</a> drawn</td>
</tr>
<tr> <td><a name='SkCanvas_drawText_byteLength'><code><strong>byteLength</strong></code></a></td>
- <td>byte length of <a href='#SkCanvas_drawText_text'>text</a> <a href='#SkCanvas_drawText_text'>array</a></td>
+ <td>byte length of <a href='#SkCanvas_drawText_text'>text</a> array</td>
</tr>
<tr> <td><a name='SkCanvas_drawText_x'><code><strong>x</strong></code></a></td>
- <td>start of <a href='#SkCanvas_drawText_text'>text</a> <a href='#SkCanvas_drawText_text'>on</a> <a href='#SkCanvas_drawText_text'>x-axis</a></td>
+ <td>start of <a href='#SkCanvas_drawText_text'>text</a> on x-axis</td>
</tr>
<tr> <td><a name='SkCanvas_drawText_y'><code><strong>y</strong></code></a></td>
- <td>start of <a href='#SkCanvas_drawText_text'>text</a> <a href='#SkCanvas_drawText_text'>on</a> <a href='#SkCanvas_drawText_text'>y-axis</a></td>
+ <td>start of <a href='#SkCanvas_drawText_text'>text</a> on y-axis</td>
</tr>
<tr> <td><a name='SkCanvas_drawText_paint'><code><strong>paint</strong></code></a></td>
- <td><a href='#SkCanvas_drawText_text'>text</a> <a href='undocumented#Size'>size</a>, <a href='undocumented#Size'>blend</a>, <a href='SkColor_Reference#Color'>color</a>, <a href='SkColor_Reference#Color'>and</a> <a href='SkColor_Reference#Color'>so</a> <a href='SkColor_Reference#Color'>on</a>, <a href='SkColor_Reference#Color'>used</a> <a href='SkColor_Reference#Color'>to</a> <a href='SkColor_Reference#Color'>draw</a></td>
+ <td><a href='#SkCanvas_drawText_text'>text</a> <a href='undocumented#Size'>size</a>, blend, <a href='SkColor_Reference#Color'>color</a>, and so on, used to draw</td>
</tr>
</table>
### Example
-<div><fiddle-embed name="55f5e59350622c5e2834d1c85789f732"><div>The same <a href='#SkCanvas_drawText_text'>text</a> <a href='#SkCanvas_drawText_text'>is</a> <a href='#SkCanvas_drawText_text'>drawn</a> <a href='#SkCanvas_drawText_text'>varying</a> <a href='#Paint_Text_Size'>Paint_Text_Size</a> <a href='#Paint_Text_Size'>and</a> <a href='#Paint_Text_Size'>varying</a>
+<div><fiddle-embed name="55f5e59350622c5e2834d1c85789f732"><div>The same <a href='#SkCanvas_drawText_text'>text</a> is drawn varying <a href='#Paint_Text_Size'>Paint_Text_Size</a> and varying
<a href='SkMatrix_Reference#Matrix'>Matrix</a>.
</div></fiddle-embed></div>
@@ -5325,28 +5325,28 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-void <a href='#SkCanvas_drawString'>drawString</a>(<a href='#SkCanvas_drawString'>const</a> <a href='#SkCanvas_drawString'>char</a>* <a href='undocumented#String'>string</a>, <a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>x</a>, <a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>y</a>, <a href='undocumented#SkScalar'>const</a> <a href='SkPaint_Reference#SkPaint'>SkPaint</a>& <a href='SkPaint_Reference#Paint'>paint</a>)
+void <a href='#SkCanvas_drawString'>drawString</a>(const char* <a href='undocumented#String'>string</a>, <a href='undocumented#SkScalar'>SkScalar</a> x, <a href='undocumented#SkScalar'>SkScalar</a> y, const <a href='SkPaint_Reference#SkPaint'>SkPaint</a>& <a href='SkPaint_Reference#Paint'>paint</a>)
</pre>
-Draws null terminated <a href='#SkCanvas_drawString_string'>string</a>, <a href='#SkCanvas_drawString_string'>with</a> <a href='#SkCanvas_drawString_string'>origin</a> <a href='#SkCanvas_drawString_string'>at</a> (<a href='#SkCanvas_drawString_x'>x</a>, <a href='#SkCanvas_drawString_y'>y</a>), <a href='#SkCanvas_drawString_y'>using</a> <a href='#SkCanvas_drawString_y'>clip</a>, <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a>, <a href='SkMatrix_Reference#SkMatrix'>and</a>
+Draws null terminated <a href='#SkCanvas_drawString_string'>string</a>, with origin at (<a href='#SkCanvas_drawString_x'>x</a>, <a href='#SkCanvas_drawString_y'>y</a>), using clip, <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a>, and
<a href='SkPaint_Reference#SkPaint'>SkPaint</a> <a href='#SkCanvas_drawString_paint'>paint</a>.
-<a href='#SkCanvas_drawString_string'>string</a> <a href='#SkCanvas_drawString_string'>meaning</a> <a href='#SkCanvas_drawString_string'>depends</a> <a href='#SkCanvas_drawString_string'>on</a> <a href='SkPaint_Reference#SkPaint'>SkPaint</a>::<a href='#SkPaint_TextEncoding'>TextEncoding</a>; <a href='#SkPaint_TextEncoding'>by</a> <a href='#SkPaint_TextEncoding'>default</a>, <a href='#SkPaint_TextEncoding'>strings</a> <a href='#SkPaint_TextEncoding'>are</a> <a href='#SkPaint_TextEncoding'>encoded</a>
-as UTF-8. Other values of <a href='SkPaint_Reference#SkPaint'>SkPaint</a>::<a href='#SkPaint_TextEncoding'>TextEncoding</a> <a href='#SkPaint_TextEncoding'>are</a> <a href='#SkPaint_TextEncoding'>unlikely</a> <a href='#SkPaint_TextEncoding'>to</a> <a href='#SkPaint_TextEncoding'>produce</a> <a href='#SkPaint_TextEncoding'>the</a> <a href='#SkPaint_TextEncoding'>desired</a>
+<a href='#SkCanvas_drawString_string'>string</a> meaning depends on <a href='SkPaint_Reference#SkPaint'>SkPaint</a>::<a href='#SkPaint_TextEncoding'>TextEncoding</a>; by default, strings are encoded
+as UTF-8. Other values of <a href='SkPaint_Reference#SkPaint'>SkPaint</a>::<a href='#SkPaint_TextEncoding'>TextEncoding</a> are unlikely to produce the desired
results, since zero bytes may be embedded in the <a href='#SkCanvas_drawString_string'>string</a>.
-<a href='#SkCanvas_drawString_x'>x</a> <a href='#SkCanvas_drawString_x'>and</a> <a href='#SkCanvas_drawString_y'>y</a> <a href='#SkCanvas_drawString_y'>meaning</a> <a href='#SkCanvas_drawString_y'>depends</a> <a href='#SkCanvas_drawString_y'>on</a> <a href='SkPaint_Reference#SkPaint'>SkPaint</a>::<a href='SkPaint_Reference#SkPaint'>Align</a> <a href='SkPaint_Reference#SkPaint'>and</a> <a href='SkPaint_Reference#SkPaint'>SkPaint</a> <a href='SkPaint_Reference#SkPaint'>vertical</a> <a href='undocumented#Text'>text</a>; <a href='undocumented#Text'>by</a> <a href='undocumented#Text'>default</a>
-<a href='#SkCanvas_drawString_string'>string</a> <a href='#SkCanvas_drawString_string'>draws</a> <a href='#SkCanvas_drawString_string'>left</a> <a href='#SkCanvas_drawString_string'>to</a> <a href='#SkCanvas_drawString_string'>right</a>, <a href='#SkCanvas_drawString_string'>positioning</a> <a href='#SkCanvas_drawString_string'>the</a> <a href='#SkCanvas_drawString_string'>first</a> <a href='undocumented#Glyph'>glyph</a> <a href='undocumented#Left_Side_Bearing'>left side bearing</a> <a href='undocumented#Glyph'>at</a> <a href='#SkCanvas_drawString_x'>x</a>
-and its baseline at <a href='#SkCanvas_drawString_y'>y</a>. <a href='undocumented#Text'>Text</a> <a href='undocumented#Size'>size</a> <a href='undocumented#Size'>is</a> <a href='undocumented#Size'>affected</a> <a href='undocumented#Size'>by</a> <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> <a href='SkMatrix_Reference#SkMatrix'>and</a> <a href='SkPaint_Reference#SkPaint'>SkPaint</a> <a href='undocumented#Text'>text</a> <a href='undocumented#Size'>size</a>.
+<a href='#SkCanvas_drawString_x'>x</a> and <a href='#SkCanvas_drawString_y'>y</a> meaning depends on <a href='SkPaint_Reference#SkPaint'>SkPaint</a>::Align and <a href='SkPaint_Reference#SkPaint'>SkPaint</a> vertical <a href='undocumented#Text'>text</a>; by default
+<a href='#SkCanvas_drawString_string'>string</a> draws left to right, positioning the first <a href='undocumented#Glyph'>glyph</a> <a href='undocumented#Left_Side_Bearing'>left side bearing</a> at <a href='#SkCanvas_drawString_x'>x</a>
+and its baseline at <a href='#SkCanvas_drawString_y'>y</a>. <a href='undocumented#Text'>Text</a> <a href='undocumented#Size'>size</a> is affected by <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> and <a href='SkPaint_Reference#SkPaint'>SkPaint</a> <a href='undocumented#Text'>text</a> <a href='undocumented#Size'>size</a>.
All elements of <a href='#SkCanvas_drawString_paint'>paint</a>: <a href='undocumented#SkPathEffect'>SkPathEffect</a>, <a href='undocumented#SkMaskFilter'>SkMaskFilter</a>, <a href='undocumented#SkShader'>SkShader</a>,
-<a href='undocumented#SkColorFilter'>SkColorFilter</a>, <a href='undocumented#SkImageFilter'>SkImageFilter</a>, <a href='undocumented#SkImageFilter'>and</a> <a href='undocumented#SkDrawLooper'>SkDrawLooper</a>; <a href='undocumented#SkDrawLooper'>apply</a> <a href='undocumented#SkDrawLooper'>to</a> <a href='undocumented#Text'>text</a>. <a href='undocumented#Text'>By</a> <a href='undocumented#Text'>default</a>, <a href='undocumented#Text'>draws</a>
-filled 12 <a href='SkPoint_Reference#Point'>point</a> <a href='SkPoint_Reference#Point'>black</a> <a href='undocumented#Glyph'>glyphs</a>.
+<a href='undocumented#SkColorFilter'>SkColorFilter</a>, <a href='undocumented#SkImageFilter'>SkImageFilter</a>, and <a href='undocumented#SkDrawLooper'>SkDrawLooper</a>; apply to <a href='undocumented#Text'>text</a>. By default, draws
+filled 12 <a href='SkPoint_Reference#Point'>point</a> black <a href='undocumented#Glyph'>glyphs</a>.
### Parameters
<table> <tr> <td><a name='SkCanvas_drawString_string'><code><strong>string</strong></code></a></td>
- <td>character code <a href='SkPoint_Reference#Point'>points</a> <a href='SkPoint_Reference#Point'>or</a> <a href='undocumented#Glyph'>glyphs</a> <a href='undocumented#Glyph'>drawn</a>,</td>
+ <td>character code <a href='SkPoint_Reference#Point'>points</a> or <a href='undocumented#Glyph'>glyphs</a> drawn,</td>
</tr>
</table>
@@ -5355,13 +5355,13 @@
### Parameters
<table> <tr> <td><a name='SkCanvas_drawString_x'><code><strong>x</strong></code></a></td>
- <td>start of <a href='#SkCanvas_drawString_string'>string</a> <a href='#SkCanvas_drawString_string'>on</a> <a href='#SkCanvas_drawString_string'>x-axis</a></td>
+ <td>start of <a href='#SkCanvas_drawString_string'>string</a> on x-axis</td>
</tr>
<tr> <td><a name='SkCanvas_drawString_y'><code><strong>y</strong></code></a></td>
- <td>start of <a href='#SkCanvas_drawString_string'>string</a> <a href='#SkCanvas_drawString_string'>on</a> <a href='#SkCanvas_drawString_string'>y-axis</a></td>
+ <td>start of <a href='#SkCanvas_drawString_string'>string</a> on y-axis</td>
</tr>
<tr> <td><a name='SkCanvas_drawString_paint'><code><strong>paint</strong></code></a></td>
- <td><a href='undocumented#Text'>text</a> <a href='undocumented#Size'>size</a>, <a href='undocumented#Size'>blend</a>, <a href='SkColor_Reference#Color'>color</a>, <a href='SkColor_Reference#Color'>and</a> <a href='SkColor_Reference#Color'>so</a> <a href='SkColor_Reference#Color'>on</a>, <a href='SkColor_Reference#Color'>used</a> <a href='SkColor_Reference#Color'>to</a> <a href='SkColor_Reference#Color'>draw</a></td>
+ <td><a href='undocumented#Text'>text</a> <a href='undocumented#Size'>size</a>, blend, <a href='SkColor_Reference#Color'>color</a>, and so on, used to draw</td>
</tr>
</table>
@@ -5378,28 +5378,28 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-void <a href='#SkCanvas_drawString'>drawString</a>(<a href='#SkCanvas_drawString'>const</a> <a href='undocumented#SkString'>SkString</a>& <a href='undocumented#String'>string</a>, <a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>x</a>, <a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>y</a>, <a href='undocumented#SkScalar'>const</a> <a href='SkPaint_Reference#SkPaint'>SkPaint</a>& <a href='SkPaint_Reference#Paint'>paint</a>)
+void <a href='#SkCanvas_drawString'>drawString</a>(const <a href='undocumented#SkString'>SkString</a>& <a href='undocumented#String'>string</a>, <a href='undocumented#SkScalar'>SkScalar</a> x, <a href='undocumented#SkScalar'>SkScalar</a> y, const <a href='SkPaint_Reference#SkPaint'>SkPaint</a>& <a href='SkPaint_Reference#Paint'>paint</a>)
</pre>
-Draws null terminated <a href='#SkCanvas_drawString_2_string'>string</a>, <a href='#SkCanvas_drawString_2_string'>with</a> <a href='#SkCanvas_drawString_2_string'>origin</a> <a href='#SkCanvas_drawString_2_string'>at</a> (<a href='#SkCanvas_drawString_2_x'>x</a>, <a href='#SkCanvas_drawString_2_y'>y</a>), <a href='#SkCanvas_drawString_2_y'>using</a> <a href='#SkCanvas_drawString_2_y'>clip</a>, <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a>, <a href='SkMatrix_Reference#SkMatrix'>and</a>
+Draws null terminated <a href='#SkCanvas_drawString_2_string'>string</a>, with origin at (<a href='#SkCanvas_drawString_2_x'>x</a>, <a href='#SkCanvas_drawString_2_y'>y</a>), using clip, <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a>, and
<a href='SkPaint_Reference#SkPaint'>SkPaint</a> <a href='#SkCanvas_drawString_2_paint'>paint</a>.
-<a href='#SkCanvas_drawString_2_string'>string</a> <a href='#SkCanvas_drawString_2_string'>meaning</a> <a href='#SkCanvas_drawString_2_string'>depends</a> <a href='#SkCanvas_drawString_2_string'>on</a> <a href='SkPaint_Reference#SkPaint'>SkPaint</a>::<a href='#SkPaint_TextEncoding'>TextEncoding</a>; <a href='#SkPaint_TextEncoding'>by</a> <a href='#SkPaint_TextEncoding'>default</a>, <a href='#SkPaint_TextEncoding'>strings</a> <a href='#SkPaint_TextEncoding'>are</a> <a href='#SkPaint_TextEncoding'>encoded</a>
-as UTF-8. Other values of <a href='SkPaint_Reference#SkPaint'>SkPaint</a>::<a href='#SkPaint_TextEncoding'>TextEncoding</a> <a href='#SkPaint_TextEncoding'>are</a> <a href='#SkPaint_TextEncoding'>unlikely</a> <a href='#SkPaint_TextEncoding'>to</a> <a href='#SkPaint_TextEncoding'>produce</a> <a href='#SkPaint_TextEncoding'>the</a> <a href='#SkPaint_TextEncoding'>desired</a>
+<a href='#SkCanvas_drawString_2_string'>string</a> meaning depends on <a href='SkPaint_Reference#SkPaint'>SkPaint</a>::<a href='#SkPaint_TextEncoding'>TextEncoding</a>; by default, strings are encoded
+as UTF-8. Other values of <a href='SkPaint_Reference#SkPaint'>SkPaint</a>::<a href='#SkPaint_TextEncoding'>TextEncoding</a> are unlikely to produce the desired
results, since zero bytes may be embedded in the <a href='#SkCanvas_drawString_2_string'>string</a>.
-<a href='#SkCanvas_drawString_2_x'>x</a> <a href='#SkCanvas_drawString_2_x'>and</a> <a href='#SkCanvas_drawString_2_y'>y</a> <a href='#SkCanvas_drawString_2_y'>meaning</a> <a href='#SkCanvas_drawString_2_y'>depends</a> <a href='#SkCanvas_drawString_2_y'>on</a> <a href='SkPaint_Reference#SkPaint'>SkPaint</a>::<a href='SkPaint_Reference#SkPaint'>Align</a> <a href='SkPaint_Reference#SkPaint'>and</a> <a href='SkPaint_Reference#SkPaint'>SkPaint</a> <a href='SkPaint_Reference#SkPaint'>vertical</a> <a href='undocumented#Text'>text</a>; <a href='undocumented#Text'>by</a> <a href='undocumented#Text'>default</a>
-<a href='#SkCanvas_drawString_2_string'>string</a> <a href='#SkCanvas_drawString_2_string'>draws</a> <a href='#SkCanvas_drawString_2_string'>left</a> <a href='#SkCanvas_drawString_2_string'>to</a> <a href='#SkCanvas_drawString_2_string'>right</a>, <a href='#SkCanvas_drawString_2_string'>positioning</a> <a href='#SkCanvas_drawString_2_string'>the</a> <a href='#SkCanvas_drawString_2_string'>first</a> <a href='undocumented#Glyph'>glyph</a> <a href='undocumented#Left_Side_Bearing'>left side bearing</a> <a href='undocumented#Glyph'>at</a> <a href='#SkCanvas_drawString_2_x'>x</a>
-and its baseline at <a href='#SkCanvas_drawString_2_y'>y</a>. <a href='undocumented#Text'>Text</a> <a href='undocumented#Size'>size</a> <a href='undocumented#Size'>is</a> <a href='undocumented#Size'>affected</a> <a href='undocumented#Size'>by</a> <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> <a href='SkMatrix_Reference#SkMatrix'>and</a> <a href='SkPaint_Reference#SkPaint'>SkPaint</a> <a href='undocumented#Text'>text</a> <a href='undocumented#Size'>size</a>.
+<a href='#SkCanvas_drawString_2_x'>x</a> and <a href='#SkCanvas_drawString_2_y'>y</a> meaning depends on <a href='SkPaint_Reference#SkPaint'>SkPaint</a>::Align and <a href='SkPaint_Reference#SkPaint'>SkPaint</a> vertical <a href='undocumented#Text'>text</a>; by default
+<a href='#SkCanvas_drawString_2_string'>string</a> draws left to right, positioning the first <a href='undocumented#Glyph'>glyph</a> <a href='undocumented#Left_Side_Bearing'>left side bearing</a> at <a href='#SkCanvas_drawString_2_x'>x</a>
+and its baseline at <a href='#SkCanvas_drawString_2_y'>y</a>. <a href='undocumented#Text'>Text</a> <a href='undocumented#Size'>size</a> is affected by <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> and <a href='SkPaint_Reference#SkPaint'>SkPaint</a> <a href='undocumented#Text'>text</a> <a href='undocumented#Size'>size</a>.
All elements of <a href='#SkCanvas_drawString_2_paint'>paint</a>: <a href='undocumented#SkPathEffect'>SkPathEffect</a>, <a href='undocumented#SkMaskFilter'>SkMaskFilter</a>, <a href='undocumented#SkShader'>SkShader</a>,
-<a href='undocumented#SkColorFilter'>SkColorFilter</a>, <a href='undocumented#SkImageFilter'>SkImageFilter</a>, <a href='undocumented#SkImageFilter'>and</a> <a href='undocumented#SkDrawLooper'>SkDrawLooper</a>; <a href='undocumented#SkDrawLooper'>apply</a> <a href='undocumented#SkDrawLooper'>to</a> <a href='undocumented#Text'>text</a>. <a href='undocumented#Text'>By</a> <a href='undocumented#Text'>default</a>, <a href='undocumented#Text'>draws</a>
-filled 12 <a href='SkPoint_Reference#Point'>point</a> <a href='SkPoint_Reference#Point'>black</a> <a href='undocumented#Glyph'>glyphs</a>.
+<a href='undocumented#SkColorFilter'>SkColorFilter</a>, <a href='undocumented#SkImageFilter'>SkImageFilter</a>, and <a href='undocumented#SkDrawLooper'>SkDrawLooper</a>; apply to <a href='undocumented#Text'>text</a>. By default, draws
+filled 12 <a href='SkPoint_Reference#Point'>point</a> black <a href='undocumented#Glyph'>glyphs</a>.
### Parameters
<table> <tr> <td><a name='SkCanvas_drawString_2_string'><code><strong>string</strong></code></a></td>
- <td>character code <a href='SkPoint_Reference#Point'>points</a> <a href='SkPoint_Reference#Point'>or</a> <a href='undocumented#Glyph'>glyphs</a> <a href='undocumented#Glyph'>drawn</a>,</td>
+ <td>character code <a href='SkPoint_Reference#Point'>points</a> or <a href='undocumented#Glyph'>glyphs</a> drawn,</td>
</tr>
</table>
@@ -5408,13 +5408,13 @@
### Parameters
<table> <tr> <td><a name='SkCanvas_drawString_2_x'><code><strong>x</strong></code></a></td>
- <td>start of <a href='#SkCanvas_drawString_2_string'>string</a> <a href='#SkCanvas_drawString_2_string'>on</a> <a href='#SkCanvas_drawString_2_string'>x-axis</a></td>
+ <td>start of <a href='#SkCanvas_drawString_2_string'>string</a> on x-axis</td>
</tr>
<tr> <td><a name='SkCanvas_drawString_2_y'><code><strong>y</strong></code></a></td>
- <td>start of <a href='#SkCanvas_drawString_2_string'>string</a> <a href='#SkCanvas_drawString_2_string'>on</a> <a href='#SkCanvas_drawString_2_string'>y-axis</a></td>
+ <td>start of <a href='#SkCanvas_drawString_2_string'>string</a> on y-axis</td>
</tr>
<tr> <td><a name='SkCanvas_drawString_2_paint'><code><strong>paint</strong></code></a></td>
- <td><a href='undocumented#Text'>text</a> <a href='undocumented#Size'>size</a>, <a href='undocumented#Size'>blend</a>, <a href='SkColor_Reference#Color'>color</a>, <a href='SkColor_Reference#Color'>and</a> <a href='SkColor_Reference#Color'>so</a> <a href='SkColor_Reference#Color'>on</a>, <a href='SkColor_Reference#Color'>used</a> <a href='SkColor_Reference#Color'>to</a> <a href='SkColor_Reference#Color'>draw</a></td>
+ <td><a href='undocumented#Text'>text</a> <a href='undocumented#Size'>size</a>, blend, <a href='SkColor_Reference#Color'>color</a>, and so on, used to draw</td>
</tr>
</table>
@@ -5431,38 +5431,38 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-void <a href='#SkCanvas_drawPosText'>drawPosText</a>(<a href='#SkCanvas_drawPosText'>const</a> <a href='#SkCanvas_drawPosText'>void</a>* <a href='undocumented#Text'>text</a>, <a href='undocumented#Text'>size_t</a> <a href='undocumented#Text'>byteLength</a>, <a href='undocumented#Text'>const</a> <a href='SkPoint_Reference#SkPoint'>SkPoint</a> <a href='SkPoint_Reference#SkPoint'>pos</a>[], <a href='SkPoint_Reference#SkPoint'>const</a> <a href='SkPaint_Reference#SkPaint'>SkPaint</a>& <a href='SkPaint_Reference#Paint'>paint</a>)
+void <a href='#SkCanvas_drawPosText'>drawPosText</a>(const void* <a href='undocumented#Text'>text</a>, size_t byteLength, const <a href='SkPoint_Reference#SkPoint'>SkPoint</a> pos[], const <a href='SkPaint_Reference#SkPaint'>SkPaint</a>& <a href='SkPaint_Reference#Paint'>paint</a>)
</pre>
-Draws each <a href='undocumented#Glyph'>glyph</a> <a href='undocumented#Glyph'>in</a> <a href='#SkCanvas_drawPosText_text'>text</a> <a href='#SkCanvas_drawPosText_text'>with</a> <a href='#SkCanvas_drawPosText_text'>the</a> <a href='#SkCanvas_drawPosText_text'>origin</a> <a href='#SkCanvas_drawPosText_text'>in</a> <a href='#SkCanvas_drawPosText_pos'>pos</a> <a href='#SkCanvas_drawPosText_pos'>array</a>, <a href='#SkCanvas_drawPosText_pos'>using</a> <a href='#SkCanvas_drawPosText_pos'>clip</a>, <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a>, <a href='SkMatrix_Reference#SkMatrix'>and</a>
-<a href='SkPaint_Reference#SkPaint'>SkPaint</a> <a href='#SkCanvas_drawPosText_paint'>paint</a>. <a href='#SkCanvas_drawPosText_paint'>The</a> <a href='#SkCanvas_drawPosText_paint'>number</a> <a href='#SkCanvas_drawPosText_paint'>of</a> <a href='#SkCanvas_drawPosText_paint'>entries</a> <a href='#SkCanvas_drawPosText_paint'>in</a> <a href='#SkCanvas_drawPosText_pos'>pos</a> <a href='#SkCanvas_drawPosText_pos'>array</a> <a href='#SkCanvas_drawPosText_pos'>must</a> <a href='#SkCanvas_drawPosText_pos'>match</a> <a href='#SkCanvas_drawPosText_pos'>the</a> <a href='#SkCanvas_drawPosText_pos'>number</a> <a href='#SkCanvas_drawPosText_pos'>of</a> <a href='undocumented#Glyph'>glyphs</a>
-described by <a href='#SkCanvas_drawPosText_byteLength'>byteLength</a> <a href='#SkCanvas_drawPosText_byteLength'>of</a> <a href='#SkCanvas_drawPosText_text'>text</a>.
+Draws each <a href='undocumented#Glyph'>glyph</a> in <a href='#SkCanvas_drawPosText_text'>text</a> with the origin in <a href='#SkCanvas_drawPosText_pos'>pos</a> array, using clip, <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a>, and
+<a href='SkPaint_Reference#SkPaint'>SkPaint</a> <a href='#SkCanvas_drawPosText_paint'>paint</a>. The number of entries in <a href='#SkCanvas_drawPosText_pos'>pos</a> array must match the number of <a href='undocumented#Glyph'>glyphs</a>
+described by <a href='#SkCanvas_drawPosText_byteLength'>byteLength</a> of <a href='#SkCanvas_drawPosText_text'>text</a>.
-<a href='#SkCanvas_drawPosText_text'>text</a> <a href='#SkCanvas_drawPosText_text'>meaning</a> <a href='#SkCanvas_drawPosText_text'>depends</a> <a href='#SkCanvas_drawPosText_text'>on</a> <a href='SkPaint_Reference#SkPaint'>SkPaint</a>::<a href='#SkPaint_TextEncoding'>TextEncoding</a>; <a href='#SkPaint_TextEncoding'>by</a> <a href='#SkPaint_TextEncoding'>default</a>, <a href='#SkCanvas_drawPosText_text'>text</a> <a href='#SkCanvas_drawPosText_text'>is</a> <a href='#SkCanvas_drawPosText_text'>encoded</a> <a href='#SkCanvas_drawPosText_text'>as</a>
-UTF-8. <a href='#SkCanvas_drawPosText_pos'>pos</a> <a href='#SkCanvas_drawPosText_pos'>elements</a> <a href='#SkCanvas_drawPosText_pos'>meaning</a> <a href='#SkCanvas_drawPosText_pos'>depends</a> <a href='#SkCanvas_drawPosText_pos'>on</a> <a href='SkPaint_Reference#SkPaint'>SkPaint</a> <a href='SkPaint_Reference#SkPaint'>vertical</a> <a href='#SkCanvas_drawPosText_text'>text</a>; <a href='#SkCanvas_drawPosText_text'>by</a> <a href='#SkCanvas_drawPosText_text'>default</a>
-<a href='undocumented#Glyph'>glyph</a> <a href='undocumented#Left_Side_Bearing'>left side bearing</a> <a href='undocumented#Glyph'>and</a> <a href='undocumented#Glyph'>baseline</a> <a href='undocumented#Glyph'>are</a> <a href='undocumented#Glyph'>relative</a> <a href='undocumented#Glyph'>to</a> <a href='SkPoint_Reference#SkPoint'>SkPoint</a> <a href='SkPoint_Reference#SkPoint'>in</a> <a href='#SkCanvas_drawPosText_pos'>pos</a> <a href='#SkCanvas_drawPosText_pos'>array</a>.
-<a href='undocumented#Text'>Text</a> <a href='undocumented#Size'>size</a> <a href='undocumented#Size'>is</a> <a href='undocumented#Size'>affected</a> <a href='undocumented#Size'>by</a> <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> <a href='SkMatrix_Reference#SkMatrix'>and</a> <a href='SkPaint_Reference#SkPaint'>SkPaint</a> <a href='#SkCanvas_drawPosText_text'>text</a> <a href='undocumented#Size'>size</a>.
+<a href='#SkCanvas_drawPosText_text'>text</a> meaning depends on <a href='SkPaint_Reference#SkPaint'>SkPaint</a>::<a href='#SkPaint_TextEncoding'>TextEncoding</a>; by default, <a href='#SkCanvas_drawPosText_text'>text</a> is encoded as
+UTF-8. <a href='#SkCanvas_drawPosText_pos'>pos</a> elements meaning depends on <a href='SkPaint_Reference#SkPaint'>SkPaint</a> vertical <a href='#SkCanvas_drawPosText_text'>text</a>; by default
+<a href='undocumented#Glyph'>glyph</a> <a href='undocumented#Left_Side_Bearing'>left side bearing</a> and baseline are relative to <a href='SkPoint_Reference#SkPoint'>SkPoint</a> in <a href='#SkCanvas_drawPosText_pos'>pos</a> array.
+<a href='undocumented#Text'>Text</a> <a href='undocumented#Size'>size</a> is affected by <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> and <a href='SkPaint_Reference#SkPaint'>SkPaint</a> <a href='#SkCanvas_drawPosText_text'>text</a> <a href='undocumented#Size'>size</a>.
All elements of <a href='#SkCanvas_drawPosText_paint'>paint</a>: <a href='undocumented#SkPathEffect'>SkPathEffect</a>, <a href='undocumented#SkMaskFilter'>SkMaskFilter</a>, <a href='undocumented#SkShader'>SkShader</a>,
-<a href='undocumented#SkColorFilter'>SkColorFilter</a>, <a href='undocumented#SkImageFilter'>SkImageFilter</a>, <a href='undocumented#SkImageFilter'>and</a> <a href='undocumented#SkDrawLooper'>SkDrawLooper</a>; <a href='undocumented#SkDrawLooper'>apply</a> <a href='undocumented#SkDrawLooper'>to</a> <a href='#SkCanvas_drawPosText_text'>text</a>. <a href='#SkCanvas_drawPosText_text'>By</a> <a href='#SkCanvas_drawPosText_text'>default</a>, <a href='#SkCanvas_drawPosText_text'>draws</a>
-filled 12 <a href='SkPoint_Reference#Point'>point</a> <a href='SkPoint_Reference#Point'>black</a> <a href='undocumented#Glyph'>glyphs</a>.
+<a href='undocumented#SkColorFilter'>SkColorFilter</a>, <a href='undocumented#SkImageFilter'>SkImageFilter</a>, and <a href='undocumented#SkDrawLooper'>SkDrawLooper</a>; apply to <a href='#SkCanvas_drawPosText_text'>text</a>. By default, draws
+filled 12 <a href='SkPoint_Reference#Point'>point</a> black <a href='undocumented#Glyph'>glyphs</a>.
Layout engines such as Harfbuzz typically position each <a href='undocumented#Glyph'>glyph</a>
-rather than using the <a href='undocumented#Font_Advance'>font advance</a> <a href='undocumented#Font'>widths</a>.
+rather than using the <a href='undocumented#Font_Advance'>font advance</a> widths.
### Parameters
<table> <tr> <td><a name='SkCanvas_drawPosText_text'><code><strong>text</strong></code></a></td>
- <td>character code <a href='SkPoint_Reference#Point'>points</a> <a href='SkPoint_Reference#Point'>or</a> <a href='undocumented#Glyph'>glyphs</a> <a href='undocumented#Glyph'>drawn</a></td>
+ <td>character code <a href='SkPoint_Reference#Point'>points</a> or <a href='undocumented#Glyph'>glyphs</a> drawn</td>
</tr>
<tr> <td><a name='SkCanvas_drawPosText_byteLength'><code><strong>byteLength</strong></code></a></td>
- <td>byte length of <a href='#SkCanvas_drawPosText_text'>text</a> <a href='#SkCanvas_drawPosText_text'>array</a></td>
+ <td>byte length of <a href='#SkCanvas_drawPosText_text'>text</a> array</td>
</tr>
<tr> <td><a name='SkCanvas_drawPosText_pos'><code><strong>pos</strong></code></a></td>
- <td>array of <a href='undocumented#Glyph'>glyph</a> <a href='undocumented#Glyph'>origins</a></td>
+ <td>array of <a href='undocumented#Glyph'>glyph</a> origins</td>
</tr>
<tr> <td><a name='SkCanvas_drawPosText_paint'><code><strong>paint</strong></code></a></td>
- <td><a href='#SkCanvas_drawPosText_text'>text</a> <a href='undocumented#Size'>size</a>, <a href='undocumented#Size'>blend</a>, <a href='SkColor_Reference#Color'>color</a>, <a href='SkColor_Reference#Color'>and</a> <a href='SkColor_Reference#Color'>so</a> <a href='SkColor_Reference#Color'>on</a>, <a href='SkColor_Reference#Color'>used</a> <a href='SkColor_Reference#Color'>to</a> <a href='SkColor_Reference#Color'>draw</a></td>
+ <td><a href='#SkCanvas_drawPosText_text'>text</a> <a href='undocumented#Size'>size</a>, blend, <a href='SkColor_Reference#Color'>color</a>, and so on, used to draw</td>
</tr>
</table>
@@ -5479,35 +5479,35 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-void <a href='#SkCanvas_drawPosTextH'>drawPosTextH</a>(<a href='#SkCanvas_drawPosTextH'>const</a> <a href='#SkCanvas_drawPosTextH'>void</a>* <a href='undocumented#Text'>text</a>, <a href='undocumented#Text'>size_t</a> <a href='undocumented#Text'>byteLength</a>, <a href='undocumented#Text'>const</a> <a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>xpos</a>[], <a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>constY</a>,
- <a href='undocumented#SkScalar'>const</a> <a href='SkPaint_Reference#SkPaint'>SkPaint</a>& <a href='SkPaint_Reference#Paint'>paint</a>)
+void <a href='#SkCanvas_drawPosTextH'>drawPosTextH</a>(const void* <a href='undocumented#Text'>text</a>, size_t byteLength, const <a href='undocumented#SkScalar'>SkScalar</a> xpos[], <a href='undocumented#SkScalar'>SkScalar</a> constY,
+ const <a href='SkPaint_Reference#SkPaint'>SkPaint</a>& <a href='SkPaint_Reference#Paint'>paint</a>)
</pre>
-Draws each <a href='undocumented#Glyph'>glyph</a> <a href='undocumented#Glyph'>in</a> <a href='#SkCanvas_drawPosTextH_text'>text</a> <a href='#SkCanvas_drawPosTextH_text'>with</a> <a href='#SkCanvas_drawPosTextH_text'>its</a> <a href='#SkCanvas_drawPosTextH_text'>origin</a> <a href='#SkCanvas_drawPosTextH_text'>composed</a> <a href='#SkCanvas_drawPosTextH_text'>from</a> <a href='#SkCanvas_drawPosTextH_xpos'>xpos</a> <a href='#SkCanvas_drawPosTextH_xpos'>array</a> <a href='#SkCanvas_drawPosTextH_xpos'>and</a>
-<a href='#SkCanvas_drawPosTextH_constY'>constY</a>, <a href='#SkCanvas_drawPosTextH_constY'>using</a> <a href='#SkCanvas_drawPosTextH_constY'>clip</a>, <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a>, <a href='SkMatrix_Reference#SkMatrix'>and</a> <a href='SkPaint_Reference#SkPaint'>SkPaint</a> <a href='#SkCanvas_drawPosTextH_paint'>paint</a>. <a href='#SkCanvas_drawPosTextH_paint'>The</a> <a href='#SkCanvas_drawPosTextH_paint'>number</a> <a href='#SkCanvas_drawPosTextH_paint'>of</a> <a href='#SkCanvas_drawPosTextH_paint'>entries</a> <a href='#SkCanvas_drawPosTextH_paint'>in</a> <a href='#SkCanvas_drawPosTextH_xpos'>xpos</a> <a href='#SkCanvas_drawPosTextH_xpos'>array</a>
-must match the number of <a href='undocumented#Glyph'>glyphs</a> <a href='undocumented#Glyph'>described</a> <a href='undocumented#Glyph'>by</a> <a href='#SkCanvas_drawPosTextH_byteLength'>byteLength</a> <a href='#SkCanvas_drawPosTextH_byteLength'>of</a> <a href='#SkCanvas_drawPosTextH_text'>text</a>.
+Draws each <a href='undocumented#Glyph'>glyph</a> in <a href='#SkCanvas_drawPosTextH_text'>text</a> with its origin composed from <a href='#SkCanvas_drawPosTextH_xpos'>xpos</a> array and
+<a href='#SkCanvas_drawPosTextH_constY'>constY</a>, using clip, <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a>, and <a href='SkPaint_Reference#SkPaint'>SkPaint</a> <a href='#SkCanvas_drawPosTextH_paint'>paint</a>. The number of entries in <a href='#SkCanvas_drawPosTextH_xpos'>xpos</a> array
+must match the number of <a href='undocumented#Glyph'>glyphs</a> described by <a href='#SkCanvas_drawPosTextH_byteLength'>byteLength</a> of <a href='#SkCanvas_drawPosTextH_text'>text</a>.
-<a href='#SkCanvas_drawPosTextH_text'>text</a> <a href='#SkCanvas_drawPosTextH_text'>meaning</a> <a href='#SkCanvas_drawPosTextH_text'>depends</a> <a href='#SkCanvas_drawPosTextH_text'>on</a> <a href='SkPaint_Reference#SkPaint'>SkPaint</a>::<a href='#SkPaint_TextEncoding'>TextEncoding</a>; <a href='#SkPaint_TextEncoding'>by</a> <a href='#SkPaint_TextEncoding'>default</a>, <a href='#SkCanvas_drawPosTextH_text'>text</a> <a href='#SkCanvas_drawPosTextH_text'>is</a> <a href='#SkCanvas_drawPosTextH_text'>encoded</a> <a href='#SkCanvas_drawPosTextH_text'>as</a>
-UTF-8. <a href='#SkCanvas_drawPosTextH_xpos'>xpos</a> <a href='#SkCanvas_drawPosTextH_xpos'>elements</a> <a href='#SkCanvas_drawPosTextH_xpos'>meaning</a> <a href='#SkCanvas_drawPosTextH_xpos'>depends</a> <a href='#SkCanvas_drawPosTextH_xpos'>on</a> <a href='SkPaint_Reference#SkPaint'>SkPaint</a> <a href='SkPaint_Reference#SkPaint'>vertical</a> <a href='#SkCanvas_drawPosTextH_text'>text</a>;
-by default each <a href='undocumented#Glyph'>glyph</a> <a href='undocumented#Left_Side_Bearing'>left side bearing</a> <a href='undocumented#Glyph'>is</a> <a href='undocumented#Glyph'>positioned</a> <a href='undocumented#Glyph'>at</a> <a href='undocumented#Glyph'>an</a> <a href='#SkCanvas_drawPosTextH_xpos'>xpos</a> <a href='#SkCanvas_drawPosTextH_xpos'>element</a> <a href='#SkCanvas_drawPosTextH_xpos'>and</a>
-its baseline is positioned at <a href='#SkCanvas_drawPosTextH_constY'>constY</a>. <a href='undocumented#Text'>Text</a> <a href='undocumented#Size'>size</a> <a href='undocumented#Size'>is</a> <a href='undocumented#Size'>affected</a> <a href='undocumented#Size'>by</a> <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> <a href='SkMatrix_Reference#SkMatrix'>and</a>
+<a href='#SkCanvas_drawPosTextH_text'>text</a> meaning depends on <a href='SkPaint_Reference#SkPaint'>SkPaint</a>::<a href='#SkPaint_TextEncoding'>TextEncoding</a>; by default, <a href='#SkCanvas_drawPosTextH_text'>text</a> is encoded as
+UTF-8. <a href='#SkCanvas_drawPosTextH_xpos'>xpos</a> elements meaning depends on <a href='SkPaint_Reference#SkPaint'>SkPaint</a> vertical <a href='#SkCanvas_drawPosTextH_text'>text</a>;
+by default each <a href='undocumented#Glyph'>glyph</a> <a href='undocumented#Left_Side_Bearing'>left side bearing</a> is positioned at an <a href='#SkCanvas_drawPosTextH_xpos'>xpos</a> element and
+its baseline is positioned at <a href='#SkCanvas_drawPosTextH_constY'>constY</a>. <a href='undocumented#Text'>Text</a> <a href='undocumented#Size'>size</a> is affected by <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> and
<a href='SkPaint_Reference#SkPaint'>SkPaint</a> <a href='#SkCanvas_drawPosTextH_text'>text</a> <a href='undocumented#Size'>size</a>.
All elements of <a href='#SkCanvas_drawPosTextH_paint'>paint</a>: <a href='undocumented#SkPathEffect'>SkPathEffect</a>, <a href='undocumented#SkMaskFilter'>SkMaskFilter</a>, <a href='undocumented#SkShader'>SkShader</a>,
-<a href='undocumented#SkColorFilter'>SkColorFilter</a>, <a href='undocumented#SkImageFilter'>SkImageFilter</a>, <a href='undocumented#SkImageFilter'>and</a> <a href='undocumented#SkDrawLooper'>SkDrawLooper</a>; <a href='undocumented#SkDrawLooper'>apply</a> <a href='undocumented#SkDrawLooper'>to</a> <a href='#SkCanvas_drawPosTextH_text'>text</a>. <a href='#SkCanvas_drawPosTextH_text'>By</a> <a href='#SkCanvas_drawPosTextH_text'>default</a>, <a href='#SkCanvas_drawPosTextH_text'>draws</a>
-filled 12 <a href='SkPoint_Reference#Point'>point</a> <a href='SkPoint_Reference#Point'>black</a> <a href='undocumented#Glyph'>glyphs</a>.
+<a href='undocumented#SkColorFilter'>SkColorFilter</a>, <a href='undocumented#SkImageFilter'>SkImageFilter</a>, and <a href='undocumented#SkDrawLooper'>SkDrawLooper</a>; apply to <a href='#SkCanvas_drawPosTextH_text'>text</a>. By default, draws
+filled 12 <a href='SkPoint_Reference#Point'>point</a> black <a href='undocumented#Glyph'>glyphs</a>.
Layout engines such as Harfbuzz typically position each <a href='undocumented#Glyph'>glyph</a>
-rather than using the <a href='undocumented#Font_Advance'>font advance</a> <a href='undocumented#Font'>widths</a> <a href='undocumented#Font'>if</a> <a href='undocumented#Font'>all</a> <a href='undocumented#Glyph'>glyphs</a> <a href='undocumented#Glyph'>share</a> <a href='undocumented#Glyph'>the</a> <a href='undocumented#Glyph'>same</a>
+rather than using the <a href='undocumented#Font_Advance'>font advance</a> widths if all <a href='undocumented#Glyph'>glyphs</a> share the same
baseline.
### Parameters
<table> <tr> <td><a name='SkCanvas_drawPosTextH_text'><code><strong>text</strong></code></a></td>
- <td>character code <a href='SkPoint_Reference#Point'>points</a> <a href='SkPoint_Reference#Point'>or</a> <a href='undocumented#Glyph'>glyphs</a> <a href='undocumented#Glyph'>drawn</a></td>
+ <td>character code <a href='SkPoint_Reference#Point'>points</a> or <a href='undocumented#Glyph'>glyphs</a> drawn</td>
</tr>
<tr> <td><a name='SkCanvas_drawPosTextH_byteLength'><code><strong>byteLength</strong></code></a></td>
- <td>byte length of <a href='#SkCanvas_drawPosTextH_text'>text</a> <a href='#SkCanvas_drawPosTextH_text'>array</a></td>
+ <td>byte length of <a href='#SkCanvas_drawPosTextH_text'>text</a> array</td>
</tr>
<tr> <td><a name='SkCanvas_drawPosTextH_xpos'><code><strong>xpos</strong></code></a></td>
<td>array of x-axis positions, used to position each <a href='undocumented#Glyph'>glyph</a></td>
@@ -5516,7 +5516,7 @@
<td>shared y-axis value for all of x-axis positions</td>
</tr>
<tr> <td><a name='SkCanvas_drawPosTextH_paint'><code><strong>paint</strong></code></a></td>
- <td><a href='#SkCanvas_drawPosTextH_text'>text</a> <a href='undocumented#Size'>size</a>, <a href='undocumented#Size'>blend</a>, <a href='SkColor_Reference#Color'>color</a>, <a href='SkColor_Reference#Color'>and</a> <a href='SkColor_Reference#Color'>so</a> <a href='SkColor_Reference#Color'>on</a>, <a href='SkColor_Reference#Color'>used</a> <a href='SkColor_Reference#Color'>to</a> <a href='SkColor_Reference#Color'>draw</a></td>
+ <td><a href='#SkCanvas_drawPosTextH_text'>text</a> <a href='undocumented#Size'>size</a>, blend, <a href='SkColor_Reference#Color'>color</a>, and so on, used to draw</td>
</tr>
</table>
@@ -5533,39 +5533,39 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-void <a href='#SkCanvas_drawTextRSXform'>drawTextRSXform</a>(<a href='#SkCanvas_drawTextRSXform'>const</a> <a href='#SkCanvas_drawTextRSXform'>void</a>* <a href='undocumented#Text'>text</a>, <a href='undocumented#Text'>size_t</a> <a href='undocumented#Text'>byteLength</a>, <a href='undocumented#Text'>const</a> <a href='undocumented#SkRSXform'>SkRSXform</a> <a href='undocumented#SkRSXform'>xform</a>[],
- <a href='undocumented#SkRSXform'>const</a> <a href='SkRect_Reference#SkRect'>SkRect</a>* <a href='SkRect_Reference#SkRect'>cullRect</a>, <a href='SkRect_Reference#SkRect'>const</a> <a href='SkPaint_Reference#SkPaint'>SkPaint</a>& <a href='SkPaint_Reference#Paint'>paint</a>)
+void <a href='#SkCanvas_drawTextRSXform'>drawTextRSXform</a>(const void* <a href='undocumented#Text'>text</a>, size_t byteLength, const <a href='undocumented#SkRSXform'>SkRSXform</a> xform[],
+ const <a href='SkRect_Reference#SkRect'>SkRect</a>* cullRect, const <a href='SkPaint_Reference#SkPaint'>SkPaint</a>& <a href='SkPaint_Reference#Paint'>paint</a>)
</pre>
-Draws <a href='#SkCanvas_drawTextRSXform_text'>text</a>, <a href='#SkCanvas_drawTextRSXform_text'>transforming</a> <a href='#SkCanvas_drawTextRSXform_text'>each</a> <a href='undocumented#Glyph'>glyph</a> <a href='undocumented#Glyph'>by</a> <a href='undocumented#Glyph'>the</a> <a href='undocumented#Glyph'>corresponding</a> <a href='undocumented#SkRSXform'>SkRSXform</a>,
-using clip, <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a>, <a href='SkMatrix_Reference#SkMatrix'>and</a> <a href='SkPaint_Reference#SkPaint'>SkPaint</a> <a href='#SkCanvas_drawTextRSXform_paint'>paint</a>.
+Draws <a href='#SkCanvas_drawTextRSXform_text'>text</a>, transforming each <a href='undocumented#Glyph'>glyph</a> by the corresponding <a href='undocumented#SkRSXform'>SkRSXform</a>,
+using clip, <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a>, and <a href='SkPaint_Reference#SkPaint'>SkPaint</a> <a href='#SkCanvas_drawTextRSXform_paint'>paint</a>.
-<a href='undocumented#SkRSXform'>SkRSXform</a> <a href='#SkCanvas_drawTextRSXform_xform'>xform</a> <a href='#SkCanvas_drawTextRSXform_xform'>array</a> <a href='#SkCanvas_drawTextRSXform_xform'>specifies</a> <a href='#SkCanvas_drawTextRSXform_xform'>a</a> <a href='#SkCanvas_drawTextRSXform_xform'>separate</a> <a href='#SkCanvas_drawTextRSXform_xform'>square</a> <a href='#SkCanvas_drawTextRSXform_xform'>scale</a>, <a href='#SkCanvas_drawTextRSXform_xform'>rotation</a>, <a href='#SkCanvas_drawTextRSXform_xform'>and</a> <a href='#SkCanvas_drawTextRSXform_xform'>translation</a>
-for each <a href='undocumented#Glyph'>glyph</a>. <a href='#SkCanvas_drawTextRSXform_xform'>xform</a> <a href='#SkCanvas_drawTextRSXform_xform'>does</a> <a href='#SkCanvas_drawTextRSXform_xform'>not</a> <a href='#SkCanvas_drawTextRSXform_xform'>affect</a> <a href='#SkCanvas_drawTextRSXform_paint'>paint</a> <a href='undocumented#SkShader'>SkShader</a>.
+<a href='undocumented#SkRSXform'>SkRSXform</a> <a href='#SkCanvas_drawTextRSXform_xform'>xform</a> array specifies a separate square scale, rotation, and translation
+for each <a href='undocumented#Glyph'>glyph</a>. <a href='#SkCanvas_drawTextRSXform_xform'>xform</a> does not affect <a href='#SkCanvas_drawTextRSXform_paint'>paint</a> <a href='undocumented#SkShader'>SkShader</a>.
-Optional <a href='SkRect_Reference#SkRect'>SkRect</a> <a href='#SkCanvas_drawTextRSXform_cullRect'>cullRect</a> <a href='#SkCanvas_drawTextRSXform_cullRect'>is</a> <a href='#SkCanvas_drawTextRSXform_cullRect'>a</a> <a href='#SkCanvas_drawTextRSXform_cullRect'>conservative</a> <a href='#SkCanvas_drawTextRSXform_cullRect'>bounds</a> <a href='#SkCanvas_drawTextRSXform_cullRect'>of</a> <a href='#SkCanvas_drawTextRSXform_text'>text</a>, <a href='#SkCanvas_drawTextRSXform_text'>taking</a> <a href='#SkCanvas_drawTextRSXform_text'>into</a> <a href='#SkCanvas_drawTextRSXform_text'>account</a>
-<a href='undocumented#SkRSXform'>SkRSXform</a> <a href='undocumented#SkRSXform'>and</a> <a href='#SkCanvas_drawTextRSXform_paint'>paint</a>. <a href='#SkCanvas_drawTextRSXform_paint'>If</a> <a href='#SkCanvas_drawTextRSXform_cullRect'>cullRect</a> <a href='#SkCanvas_drawTextRSXform_cullRect'>is</a> <a href='#SkCanvas_drawTextRSXform_cullRect'>outside</a> <a href='#SkCanvas_drawTextRSXform_cullRect'>of</a> <a href='#SkCanvas_drawTextRSXform_cullRect'>clip</a>, <a href='SkCanvas_Reference#Canvas'>canvas</a> <a href='SkCanvas_Reference#Canvas'>can</a> <a href='SkCanvas_Reference#Canvas'>skip</a> <a href='SkCanvas_Reference#Canvas'>drawing</a>.
+Optional <a href='SkRect_Reference#SkRect'>SkRect</a> <a href='#SkCanvas_drawTextRSXform_cullRect'>cullRect</a> is a conservative bounds of <a href='#SkCanvas_drawTextRSXform_text'>text</a>, taking into account
+<a href='undocumented#SkRSXform'>SkRSXform</a> and <a href='#SkCanvas_drawTextRSXform_paint'>paint</a>. If <a href='#SkCanvas_drawTextRSXform_cullRect'>cullRect</a> is outside of clip, <a href='SkCanvas_Reference#Canvas'>canvas</a> can skip drawing.
All elements of <a href='#SkCanvas_drawTextRSXform_paint'>paint</a>: <a href='undocumented#SkPathEffect'>SkPathEffect</a>, <a href='undocumented#SkMaskFilter'>SkMaskFilter</a>, <a href='undocumented#SkShader'>SkShader</a>,
-<a href='undocumented#SkColorFilter'>SkColorFilter</a>, <a href='undocumented#SkImageFilter'>SkImageFilter</a>, <a href='undocumented#SkImageFilter'>and</a> <a href='undocumented#SkDrawLooper'>SkDrawLooper</a>; <a href='undocumented#SkDrawLooper'>apply</a> <a href='undocumented#SkDrawLooper'>to</a> <a href='#SkCanvas_drawTextRSXform_text'>text</a>. <a href='#SkCanvas_drawTextRSXform_text'>By</a> <a href='#SkCanvas_drawTextRSXform_text'>default</a>, <a href='#SkCanvas_drawTextRSXform_text'>draws</a>
-filled 12 <a href='SkPoint_Reference#Point'>point</a> <a href='SkPoint_Reference#Point'>black</a> <a href='undocumented#Glyph'>glyphs</a>.
+<a href='undocumented#SkColorFilter'>SkColorFilter</a>, <a href='undocumented#SkImageFilter'>SkImageFilter</a>, and <a href='undocumented#SkDrawLooper'>SkDrawLooper</a>; apply to <a href='#SkCanvas_drawTextRSXform_text'>text</a>. By default, draws
+filled 12 <a href='SkPoint_Reference#Point'>point</a> black <a href='undocumented#Glyph'>glyphs</a>.
### Parameters
<table> <tr> <td><a name='SkCanvas_drawTextRSXform_text'><code><strong>text</strong></code></a></td>
- <td>character code <a href='SkPoint_Reference#Point'>points</a> <a href='SkPoint_Reference#Point'>or</a> <a href='undocumented#Glyph'>glyphs</a> <a href='undocumented#Glyph'>drawn</a></td>
+ <td>character code <a href='SkPoint_Reference#Point'>points</a> or <a href='undocumented#Glyph'>glyphs</a> drawn</td>
</tr>
<tr> <td><a name='SkCanvas_drawTextRSXform_byteLength'><code><strong>byteLength</strong></code></a></td>
- <td>byte length of <a href='#SkCanvas_drawTextRSXform_text'>text</a> <a href='#SkCanvas_drawTextRSXform_text'>array</a></td>
+ <td>byte length of <a href='#SkCanvas_drawTextRSXform_text'>text</a> array</td>
</tr>
<tr> <td><a name='SkCanvas_drawTextRSXform_xform'><code><strong>xform</strong></code></a></td>
- <td><a href='undocumented#SkRSXform'>SkRSXform</a> <a href='undocumented#SkRSXform'>rotates</a>, <a href='undocumented#SkRSXform'>scales</a>, <a href='undocumented#SkRSXform'>and</a> <a href='undocumented#SkRSXform'>translates</a> <a href='undocumented#SkRSXform'>each</a> <a href='undocumented#Glyph'>glyph</a> <a href='undocumented#Glyph'>individually</a></td>
+ <td><a href='undocumented#SkRSXform'>SkRSXform</a> rotates, scales, and translates each <a href='undocumented#Glyph'>glyph</a> individually</td>
</tr>
<tr> <td><a name='SkCanvas_drawTextRSXform_cullRect'><code><strong>cullRect</strong></code></a></td>
- <td><a href='SkRect_Reference#SkRect'>SkRect</a> <a href='SkRect_Reference#SkRect'>bounds</a> <a href='SkRect_Reference#SkRect'>of</a> <a href='#SkCanvas_drawTextRSXform_text'>text</a> <a href='#SkCanvas_drawTextRSXform_text'>for</a> <a href='#SkCanvas_drawTextRSXform_text'>efficient</a> <a href='#SkCanvas_drawTextRSXform_text'>clipping</a>; <a href='#SkCanvas_drawTextRSXform_text'>or</a> <a href='#SkCanvas_drawTextRSXform_text'>nullptr</a></td>
+ <td><a href='SkRect_Reference#SkRect'>SkRect</a> bounds of <a href='#SkCanvas_drawTextRSXform_text'>text</a> for efficient clipping; or nullptr</td>
</tr>
<tr> <td><a name='SkCanvas_drawTextRSXform_paint'><code><strong>paint</strong></code></a></td>
- <td><a href='#SkCanvas_drawTextRSXform_text'>text</a> <a href='undocumented#Size'>size</a>, <a href='undocumented#Size'>blend</a>, <a href='SkColor_Reference#Color'>color</a>, <a href='SkColor_Reference#Color'>and</a> <a href='SkColor_Reference#Color'>so</a> <a href='SkColor_Reference#Color'>on</a>, <a href='SkColor_Reference#Color'>used</a> <a href='SkColor_Reference#Color'>to</a> <a href='SkColor_Reference#Color'>draw</a></td>
+ <td><a href='#SkCanvas_drawTextRSXform_text'>text</a> <a href='undocumented#Size'>size</a>, blend, <a href='SkColor_Reference#Color'>color</a>, and so on, used to draw</td>
</tr>
</table>
@@ -5582,29 +5582,29 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-void <a href='#SkCanvas_drawTextBlob'>drawTextBlob</a>(<a href='#SkCanvas_drawTextBlob'>const</a> <a href='SkTextBlob_Reference#SkTextBlob'>SkTextBlob</a>* <a href='SkTextBlob_Reference#SkTextBlob'>blob</a>, <a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>x</a>, <a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>y</a>, <a href='undocumented#SkScalar'>const</a> <a href='SkPaint_Reference#SkPaint'>SkPaint</a>& <a href='SkPaint_Reference#Paint'>paint</a>)
+void <a href='#SkCanvas_drawTextBlob'>drawTextBlob</a>(const <a href='SkTextBlob_Reference#SkTextBlob'>SkTextBlob</a>* blob, <a href='undocumented#SkScalar'>SkScalar</a> x, <a href='undocumented#SkScalar'>SkScalar</a> y, const <a href='SkPaint_Reference#SkPaint'>SkPaint</a>& <a href='SkPaint_Reference#Paint'>paint</a>)
</pre>
-Draws <a href='#Text_Blob'>Text_Blob</a> <a href='#SkCanvas_drawTextBlob_blob'>blob</a> <a href='#SkCanvas_drawTextBlob_blob'>at</a> (<a href='#SkCanvas_drawTextBlob_x'>x</a>, <a href='#SkCanvas_drawTextBlob_y'>y</a>), <a href='#SkCanvas_drawTextBlob_y'>using</a> <a href='#SkCanvas_drawTextBlob_y'>Clip</a>, <a href='SkMatrix_Reference#Matrix'>Matrix</a>, <a href='SkMatrix_Reference#Matrix'>and</a> <a href='SkPaint_Reference#Paint'>Paint</a> <a href='#SkCanvas_drawTextBlob_paint'>paint</a>.
+Draws <a href='#Text_Blob'>Text_Blob</a> <a href='#SkCanvas_drawTextBlob_blob'>blob</a> at (<a href='#SkCanvas_drawTextBlob_x'>x</a>, <a href='#SkCanvas_drawTextBlob_y'>y</a>), using Clip, <a href='SkMatrix_Reference#Matrix'>Matrix</a>, and <a href='SkPaint_Reference#Paint'>Paint</a> <a href='#SkCanvas_drawTextBlob_paint'>paint</a>.
-<a href='#SkCanvas_drawTextBlob_blob'>blob</a> <a href='#SkCanvas_drawTextBlob_blob'>contains</a> <a href='undocumented#Glyph'>Glyphs</a>, <a href='undocumented#Glyph'>their</a> <a href='undocumented#Glyph'>positions</a>, <a href='undocumented#Glyph'>and</a> <a href='#SkCanvas_drawTextBlob_paint'>paint</a> <a href='#SkCanvas_drawTextBlob_paint'>attributes</a> <a href='#SkCanvas_drawTextBlob_paint'>specific</a> <a href='#SkCanvas_drawTextBlob_paint'>to</a> <a href='undocumented#Text'>text</a>: <a href='undocumented#Typeface'>Typeface</a>, <a href='#Paint_Text_Size'>Paint_Text_Size</a>, <a href='#Paint_Text_Scale_X'>Paint_Text_Scale_X</a>,
+<a href='#SkCanvas_drawTextBlob_blob'>blob</a> contains <a href='undocumented#Glyph'>Glyphs</a>, their positions, and <a href='#SkCanvas_drawTextBlob_paint'>paint</a> attributes specific to <a href='undocumented#Text'>text</a>: <a href='undocumented#Typeface'>Typeface</a>, <a href='#Paint_Text_Size'>Paint_Text_Size</a>, <a href='#Paint_Text_Scale_X'>Paint_Text_Scale_X</a>,
<a href='#Paint_Text_Skew_X'>Paint_Text_Skew_X</a>, <a href='#Paint_Hinting'>Paint_Hinting</a>, <a href='#Paint_Anti_Alias'>Anti_Alias</a>, <a href='#Paint_Fake_Bold'>Paint_Fake_Bold</a>,
<a href='#Paint_Font_Embedded_Bitmaps'>Font_Embedded_Bitmaps</a>, <a href='#Paint_Full_Hinting_Spacing'>Full_Hinting_Spacing</a>, <a href='#Paint_LCD_Text'>LCD_Text</a>, <a href='#Paint_Linear_Text'>Linear_Text</a>,
-<a href='#Paint_Linear_Text'>and</a> <a href='#Paint_Subpixel_Text'>Subpixel_Text</a>
+and <a href='#Paint_Subpixel_Text'>Subpixel_Text</a>
.
-<a href='#Paint_Text_Encoding'>Paint_Text_Encoding</a> <a href='#Paint_Text_Encoding'>must</a> <a href='#Paint_Text_Encoding'>be</a> <a href='#Paint_Text_Encoding'>set</a> <a href='#Paint_Text_Encoding'>to</a> <a href='SkPaint_Reference#SkPaint'>SkPaint</a>::<a href='#SkPaint_kGlyphID_TextEncoding'>kGlyphID_TextEncoding</a>.
+<a href='#Paint_Text_Encoding'>Paint_Text_Encoding</a> must be set to <a href='SkPaint_Reference#SkPaint'>SkPaint</a>::<a href='#SkPaint_kGlyphID_TextEncoding'>kGlyphID_TextEncoding</a>.
-<a href='#SkPaint_kGlyphID_TextEncoding'>Elements</a> <a href='#SkPaint_kGlyphID_TextEncoding'>of</a> <a href='#SkCanvas_drawTextBlob_paint'>paint</a>: <a href='#Paint_Anti_Alias'>Anti_Alias</a>, <a href='#Blend_Mode'>Blend_Mode</a>, <a href='SkColor_Reference#Color'>Color</a> <a href='SkColor_Reference#Color'>including</a> <a href='#Color_Alpha'>Color_Alpha</a>,
-<a href='#Color_Filter'>Color_Filter</a>, <a href='#Paint_Dither'>Paint_Dither</a>, <a href='#Draw_Looper'>Draw_Looper</a>, <a href='#Mask_Filter'>Mask_Filter</a>, <a href='#Path_Effect'>Path_Effect</a>, <a href='undocumented#Shader'>Shader</a>, <a href='undocumented#Shader'>and</a>
-<a href='#Paint_Style'>Paint_Style</a>; <a href='#Paint_Style'>apply</a> <a href='#Paint_Style'>to</a> <a href='#SkCanvas_drawTextBlob_blob'>blob</a>. <a href='#SkCanvas_drawTextBlob_blob'>If</a> <a href='SkPaint_Reference#Paint'>Paint</a> <a href='SkPaint_Reference#Paint'>contains</a> <a href='SkPaint_Reference#SkPaint'>SkPaint</a>::<a href='#SkPaint_kStroke_Style'>kStroke_Style</a>:
-<a href='#Paint_Miter_Limit'>Paint_Miter_Limit</a>, <a href='#Paint_Stroke_Cap'>Paint_Stroke_Cap</a>, <a href='#Paint_Stroke_Join'>Paint_Stroke_Join</a>, <a href='#Paint_Stroke_Join'>and</a> <a href='#Paint_Stroke_Width'>Paint_Stroke_Width</a>;
-<a href='#Paint_Stroke_Width'>apply</a> <a href='#Paint_Stroke_Width'>to</a> <a href='SkPath_Reference#Path'>Path</a> <a href='SkPath_Reference#Path'>created</a> <a href='SkPath_Reference#Path'>from</a> <a href='#SkCanvas_drawTextBlob_blob'>blob</a>.
+Elements of <a href='#SkCanvas_drawTextBlob_paint'>paint</a>: <a href='#Paint_Anti_Alias'>Anti_Alias</a>, <a href='#Blend_Mode'>Blend_Mode</a>, <a href='SkColor_Reference#Color'>Color</a> including <a href='#Color_Alpha'>Color_Alpha</a>,
+<a href='#Color_Filter'>Color_Filter</a>, <a href='#Paint_Dither'>Paint_Dither</a>, <a href='#Draw_Looper'>Draw_Looper</a>, <a href='#Mask_Filter'>Mask_Filter</a>, <a href='#Path_Effect'>Path_Effect</a>, <a href='undocumented#Shader'>Shader</a>, and
+<a href='#Paint_Style'>Paint_Style</a>; apply to <a href='#SkCanvas_drawTextBlob_blob'>blob</a>. If <a href='SkPaint_Reference#Paint'>Paint</a> contains <a href='SkPaint_Reference#SkPaint'>SkPaint</a>::<a href='#SkPaint_kStroke_Style'>kStroke_Style</a>:
+<a href='#Paint_Miter_Limit'>Paint_Miter_Limit</a>, <a href='#Paint_Stroke_Cap'>Paint_Stroke_Cap</a>, <a href='#Paint_Stroke_Join'>Paint_Stroke_Join</a>, and <a href='#Paint_Stroke_Width'>Paint_Stroke_Width</a>;
+apply to <a href='SkPath_Reference#Path'>Path</a> created from <a href='#SkCanvas_drawTextBlob_blob'>blob</a>.
### Parameters
<table> <tr> <td><a name='SkCanvas_drawTextBlob_blob'><code><strong>blob</strong></code></a></td>
- <td><a href='undocumented#Glyph'>Glyphs</a>, <a href='undocumented#Glyph'>positions</a>, <a href='undocumented#Glyph'>and</a> <a href='undocumented#Glyph'>their</a> <a href='undocumented#Glyph'>paints</a>' <a href='undocumented#Text'>text</a> <a href='undocumented#Size'>size</a>, <a href='undocumented#Typeface'>typeface</a>, <a href='undocumented#Typeface'>and</a> <a href='undocumented#Typeface'>so</a> <a href='undocumented#Typeface'>on</a></td>
+ <td><a href='undocumented#Glyph'>Glyphs</a>, positions, and their paints' <a href='undocumented#Text'>text</a> <a href='undocumented#Size'>size</a>, <a href='undocumented#Typeface'>typeface</a>, and so on</td>
</tr>
<tr> <td><a name='SkCanvas_drawTextBlob_x'><code><strong>x</strong></code></a></td>
<td>horizontal offset applied to <a href='#SkCanvas_drawTextBlob_blob'>blob</a></td>
@@ -5613,7 +5613,7 @@
<td>vertical offset applied to <a href='#SkCanvas_drawTextBlob_blob'>blob</a></td>
</tr>
<tr> <td><a name='SkCanvas_drawTextBlob_paint'><code><strong>paint</strong></code></a></td>
- <td>blend, <a href='SkColor_Reference#Color'>color</a>, <a href='SkColor_Reference#Color'>stroking</a>, <a href='SkColor_Reference#Color'>and</a> <a href='SkColor_Reference#Color'>so</a> <a href='SkColor_Reference#Color'>on</a>, <a href='SkColor_Reference#Color'>used</a> <a href='SkColor_Reference#Color'>to</a> <a href='SkColor_Reference#Color'>draw</a></td>
+ <td>blend, <a href='SkColor_Reference#Color'>color</a>, stroking, and so on, used to draw</td>
</tr>
</table>
@@ -5630,26 +5630,26 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-void <a href='#SkCanvas_drawTextBlob'>drawTextBlob</a>(<a href='#SkCanvas_drawTextBlob'>const</a> <a href='undocumented#sk_sp'>sk_sp</a>&<a href='undocumented#sk_sp'>lt</a>;<a href='SkTextBlob_Reference#SkTextBlob'>SkTextBlob</a>&<a href='SkTextBlob_Reference#SkTextBlob'>gt</a>;& <a href='SkTextBlob_Reference#SkTextBlob'>blob</a>, <a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>x</a>, <a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>y</a>, <a href='undocumented#SkScalar'>const</a> <a href='SkPaint_Reference#SkPaint'>SkPaint</a>& <a href='SkPaint_Reference#Paint'>paint</a>)
+void <a href='#SkCanvas_drawTextBlob'>drawTextBlob</a>(const <a href='undocumented#sk_sp'>sk_sp</a><<a href='SkTextBlob_Reference#SkTextBlob'>SkTextBlob</a>>& blob, <a href='undocumented#SkScalar'>SkScalar</a> x, <a href='undocumented#SkScalar'>SkScalar</a> y, const <a href='SkPaint_Reference#SkPaint'>SkPaint</a>& <a href='SkPaint_Reference#Paint'>paint</a>)
</pre>
-Draws <a href='#Text_Blob'>Text_Blob</a> <a href='#SkCanvas_drawTextBlob_2_blob'>blob</a> <a href='#SkCanvas_drawTextBlob_2_blob'>at</a> (<a href='#SkCanvas_drawTextBlob_2_x'>x</a>, <a href='#SkCanvas_drawTextBlob_2_y'>y</a>), <a href='#SkCanvas_drawTextBlob_2_y'>using</a> <a href='#SkCanvas_drawTextBlob_2_y'>Clip</a>, <a href='SkMatrix_Reference#Matrix'>Matrix</a>, <a href='SkMatrix_Reference#Matrix'>and</a> <a href='SkPaint_Reference#Paint'>Paint</a> <a href='#SkCanvas_drawTextBlob_2_paint'>paint</a>.
+Draws <a href='#Text_Blob'>Text_Blob</a> <a href='#SkCanvas_drawTextBlob_2_blob'>blob</a> at (<a href='#SkCanvas_drawTextBlob_2_x'>x</a>, <a href='#SkCanvas_drawTextBlob_2_y'>y</a>), using Clip, <a href='SkMatrix_Reference#Matrix'>Matrix</a>, and <a href='SkPaint_Reference#Paint'>Paint</a> <a href='#SkCanvas_drawTextBlob_2_paint'>paint</a>.
-<a href='#SkCanvas_drawTextBlob_2_blob'>blob</a> <a href='#SkCanvas_drawTextBlob_2_blob'>contains</a> <a href='undocumented#Glyph'>Glyphs</a>, <a href='undocumented#Glyph'>their</a> <a href='undocumented#Glyph'>positions</a>, <a href='undocumented#Glyph'>and</a> <a href='#SkCanvas_drawTextBlob_2_paint'>paint</a> <a href='#SkCanvas_drawTextBlob_2_paint'>attributes</a> <a href='#SkCanvas_drawTextBlob_2_paint'>specific</a> <a href='#SkCanvas_drawTextBlob_2_paint'>to</a> <a href='undocumented#Text'>text</a>: <a href='undocumented#Typeface'>Typeface</a>, <a href='#Paint_Text_Size'>Paint_Text_Size</a>, <a href='#Paint_Text_Scale_X'>Paint_Text_Scale_X</a>,
+<a href='#SkCanvas_drawTextBlob_2_blob'>blob</a> contains <a href='undocumented#Glyph'>Glyphs</a>, their positions, and <a href='#SkCanvas_drawTextBlob_2_paint'>paint</a> attributes specific to <a href='undocumented#Text'>text</a>: <a href='undocumented#Typeface'>Typeface</a>, <a href='#Paint_Text_Size'>Paint_Text_Size</a>, <a href='#Paint_Text_Scale_X'>Paint_Text_Scale_X</a>,
<a href='#Paint_Text_Skew_X'>Paint_Text_Skew_X</a>, <a href='#Paint_Hinting'>Paint_Hinting</a>, <a href='#Paint_Anti_Alias'>Anti_Alias</a>, <a href='#Paint_Fake_Bold'>Paint_Fake_Bold</a>,
<a href='#Paint_Font_Embedded_Bitmaps'>Font_Embedded_Bitmaps</a>, <a href='#Paint_Full_Hinting_Spacing'>Full_Hinting_Spacing</a>, <a href='#Paint_LCD_Text'>LCD_Text</a>, <a href='#Paint_Linear_Text'>Linear_Text</a>,
-<a href='#Paint_Linear_Text'>and</a> <a href='#Paint_Subpixel_Text'>Subpixel_Text</a>
+and <a href='#Paint_Subpixel_Text'>Subpixel_Text</a>
.
-<a href='#Paint_Text_Encoding'>Paint_Text_Encoding</a> <a href='#Paint_Text_Encoding'>must</a> <a href='#Paint_Text_Encoding'>be</a> <a href='#Paint_Text_Encoding'>set</a> <a href='#Paint_Text_Encoding'>to</a> <a href='SkPaint_Reference#SkPaint'>SkPaint</a>::<a href='#SkPaint_kGlyphID_TextEncoding'>kGlyphID_TextEncoding</a>.
+<a href='#Paint_Text_Encoding'>Paint_Text_Encoding</a> must be set to <a href='SkPaint_Reference#SkPaint'>SkPaint</a>::<a href='#SkPaint_kGlyphID_TextEncoding'>kGlyphID_TextEncoding</a>.
-<a href='#SkPaint_kGlyphID_TextEncoding'>Elements</a> <a href='#SkPaint_kGlyphID_TextEncoding'>of</a> <a href='#SkCanvas_drawTextBlob_2_paint'>paint</a>: <a href='#Path_Effect'>Path_Effect</a>, <a href='#Mask_Filter'>Mask_Filter</a>, <a href='undocumented#Shader'>Shader</a>, <a href='#Color_Filter'>Color_Filter</a>,
-<a href='#Image_Filter'>Image_Filter</a>, <a href='#Image_Filter'>and</a> <a href='#Draw_Looper'>Draw_Looper</a>; <a href='#Draw_Looper'>apply</a> <a href='#Draw_Looper'>to</a> <a href='#SkCanvas_drawTextBlob_2_blob'>blob</a>.
+Elements of <a href='#SkCanvas_drawTextBlob_2_paint'>paint</a>: <a href='#Path_Effect'>Path_Effect</a>, <a href='#Mask_Filter'>Mask_Filter</a>, <a href='undocumented#Shader'>Shader</a>, <a href='#Color_Filter'>Color_Filter</a>,
+<a href='#Image_Filter'>Image_Filter</a>, and <a href='#Draw_Looper'>Draw_Looper</a>; apply to <a href='#SkCanvas_drawTextBlob_2_blob'>blob</a>.
### Parameters
<table> <tr> <td><a name='SkCanvas_drawTextBlob_2_blob'><code><strong>blob</strong></code></a></td>
- <td><a href='undocumented#Glyph'>Glyphs</a>, <a href='undocumented#Glyph'>positions</a>, <a href='undocumented#Glyph'>and</a> <a href='undocumented#Glyph'>their</a> <a href='undocumented#Glyph'>paints</a>' <a href='undocumented#Text'>text</a> <a href='undocumented#Size'>size</a>, <a href='undocumented#Typeface'>typeface</a>, <a href='undocumented#Typeface'>and</a> <a href='undocumented#Typeface'>so</a> <a href='undocumented#Typeface'>on</a></td>
+ <td><a href='undocumented#Glyph'>Glyphs</a>, positions, and their paints' <a href='undocumented#Text'>text</a> <a href='undocumented#Size'>size</a>, <a href='undocumented#Typeface'>typeface</a>, and so on</td>
</tr>
<tr> <td><a name='SkCanvas_drawTextBlob_2_x'><code><strong>x</strong></code></a></td>
<td>horizontal offset applied to <a href='#SkCanvas_drawTextBlob_2_blob'>blob</a></td>
@@ -5658,14 +5658,14 @@
<td>vertical offset applied to <a href='#SkCanvas_drawTextBlob_2_blob'>blob</a></td>
</tr>
<tr> <td><a name='SkCanvas_drawTextBlob_2_paint'><code><strong>paint</strong></code></a></td>
- <td>blend, <a href='SkColor_Reference#Color'>color</a>, <a href='SkColor_Reference#Color'>stroking</a>, <a href='SkColor_Reference#Color'>and</a> <a href='SkColor_Reference#Color'>so</a> <a href='SkColor_Reference#Color'>on</a>, <a href='SkColor_Reference#Color'>used</a> <a href='SkColor_Reference#Color'>to</a> <a href='SkColor_Reference#Color'>draw</a></td>
+ <td>blend, <a href='SkColor_Reference#Color'>color</a>, stroking, and so on, used to draw</td>
</tr>
</table>
### Example
-<div><fiddle-embed name="af4c69fbbd165c8b0eb0c9bd49ccbd8d"><div><a href='SkPaint_Reference#Paint'>Paint</a> <a href='SkPaint_Reference#Paint'>attributes</a> <a href='SkPaint_Reference#Paint'>unrelated</a> <a href='SkPaint_Reference#Paint'>to</a> <a href='undocumented#Text'>text</a>, <a href='undocumented#Text'>like</a> <a href='SkColor_Reference#Color'>color</a>, <a href='SkColor_Reference#Color'>have</a> <a href='SkColor_Reference#Color'>no</a> <a href='SkColor_Reference#Color'>effect</a> <a href='SkColor_Reference#Color'>on</a> <a href='#SkCanvas_drawTextBlob_2_paint'>paint</a> <a href='#SkCanvas_drawTextBlob_2_paint'>in</a> <a href='#SkCanvas_drawTextBlob_2_paint'>allocated</a> <a href='#Text_Blob'>Text_Blob</a>.
-<a href='SkPaint_Reference#Paint'>Paint</a> <a href='SkPaint_Reference#Paint'>attributes</a> <a href='SkPaint_Reference#Paint'>related</a> <a href='SkPaint_Reference#Paint'>to</a> <a href='undocumented#Text'>text</a>, <a href='undocumented#Text'>like</a> <a href='undocumented#Text'>text</a> <a href='undocumented#Size'>size</a>, <a href='undocumented#Size'>have</a> <a href='undocumented#Size'>no</a> <a href='undocumented#Size'>effect</a> <a href='undocumented#Size'>on</a> <a href='#SkCanvas_drawTextBlob_2_paint'>paint</a> <a href='#SkCanvas_drawTextBlob_2_paint'>passed</a> <a href='#SkCanvas_drawTextBlob_2_paint'>to</a> <a href='#SkCanvas_drawTextBlob'>drawTextBlob</a>.
+<div><fiddle-embed name="af4c69fbbd165c8b0eb0c9bd49ccbd8d"><div><a href='SkPaint_Reference#Paint'>Paint</a> attributes unrelated to <a href='undocumented#Text'>text</a>, like <a href='SkColor_Reference#Color'>color</a>, have no effect on <a href='#SkCanvas_drawTextBlob_2_paint'>paint</a> in allocated <a href='#Text_Blob'>Text_Blob</a>.
+<a href='SkPaint_Reference#Paint'>Paint</a> attributes related to <a href='undocumented#Text'>text</a>, like <a href='undocumented#Text'>text</a> <a href='undocumented#Size'>size</a>, 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
@@ -5677,14 +5677,14 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-void <a href='#SkCanvas_drawPicture'>drawPicture</a>(<a href='#SkCanvas_drawPicture'>const</a> <a href='SkPicture_Reference#SkPicture'>SkPicture</a>* <a href='SkPicture_Reference#Picture'>picture</a>)
+void <a href='#SkCanvas_drawPicture'>drawPicture</a>(const <a href='SkPicture_Reference#SkPicture'>SkPicture</a>* <a href='SkPicture_Reference#Picture'>picture</a>)
</pre>
-Draws <a href='SkPicture_Reference#SkPicture'>SkPicture</a> <a href='#SkCanvas_drawPicture_picture'>picture</a>, <a href='#SkCanvas_drawPicture_picture'>using</a> <a href='#SkCanvas_drawPicture_picture'>clip</a> <a href='#SkCanvas_drawPicture_picture'>and</a> <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a>.
-Clip and <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> <a href='SkMatrix_Reference#SkMatrix'>are</a> <a href='SkMatrix_Reference#SkMatrix'>unchanged</a> <a href='SkMatrix_Reference#SkMatrix'>by</a> <a href='#SkCanvas_drawPicture_picture'>picture</a> <a href='#SkCanvas_drawPicture_picture'>contents</a>, <a href='#SkCanvas_drawPicture_picture'>as</a> <a href='#SkCanvas_drawPicture_picture'>if</a>
-<a href='#SkCanvas_save'>save()</a> <a href='#SkCanvas_save'>was</a> <a href='#SkCanvas_save'>called</a> <a href='#SkCanvas_save'>before</a> <a href='#SkCanvas_save'>and</a> <a href='#SkCanvas_restore'>restore()</a> <a href='#SkCanvas_restore'>was</a> <a href='#SkCanvas_restore'>called</a> <a href='#SkCanvas_restore'>after</a> <a href='#SkCanvas_drawPicture'>drawPicture</a>().
+Draws <a href='SkPicture_Reference#SkPicture'>SkPicture</a> <a href='#SkCanvas_drawPicture_picture'>picture</a>, using clip and <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a>.
+Clip and <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> are unchanged by <a href='#SkCanvas_drawPicture_picture'>picture</a> contents, as if
+<a href='#SkCanvas_save'>save()</a> was called before and <a href='#SkCanvas_restore'>restore()</a> was called after <a href='#SkCanvas_drawPicture'>drawPicture</a>().
-<a href='SkPicture_Reference#SkPicture'>SkPicture</a> <a href='SkPicture_Reference#SkPicture'>records</a> <a href='SkPicture_Reference#SkPicture'>a</a> <a href='SkPicture_Reference#SkPicture'>series</a> <a href='SkPicture_Reference#SkPicture'>of</a> <a href='SkPicture_Reference#SkPicture'>draw</a> <a href='SkPicture_Reference#SkPicture'>commands</a> <a href='SkPicture_Reference#SkPicture'>for</a> <a href='SkPicture_Reference#SkPicture'>later</a> <a href='SkPicture_Reference#SkPicture'>playback</a>.
+<a href='SkPicture_Reference#SkPicture'>SkPicture</a> records a series of draw commands for later playback.
### Parameters
@@ -5706,14 +5706,14 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-void <a href='#SkCanvas_drawPicture'>drawPicture</a>(<a href='#SkCanvas_drawPicture'>const</a> <a href='undocumented#sk_sp'>sk_sp</a>&<a href='undocumented#sk_sp'>lt</a>;<a href='SkPicture_Reference#SkPicture'>SkPicture</a>&<a href='SkPicture_Reference#SkPicture'>gt</a>;& <a href='SkPicture_Reference#Picture'>picture</a>)
+void <a href='#SkCanvas_drawPicture'>drawPicture</a>(const <a href='undocumented#sk_sp'>sk_sp</a><<a href='SkPicture_Reference#SkPicture'>SkPicture</a>>& <a href='SkPicture_Reference#Picture'>picture</a>)
</pre>
-Draws <a href='SkPicture_Reference#SkPicture'>SkPicture</a> <a href='#SkCanvas_drawPicture_2_picture'>picture</a>, <a href='#SkCanvas_drawPicture_2_picture'>using</a> <a href='#SkCanvas_drawPicture_2_picture'>clip</a> <a href='#SkCanvas_drawPicture_2_picture'>and</a> <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a>.
-Clip and <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> <a href='SkMatrix_Reference#SkMatrix'>are</a> <a href='SkMatrix_Reference#SkMatrix'>unchanged</a> <a href='SkMatrix_Reference#SkMatrix'>by</a> <a href='#SkCanvas_drawPicture_2_picture'>picture</a> <a href='#SkCanvas_drawPicture_2_picture'>contents</a>, <a href='#SkCanvas_drawPicture_2_picture'>as</a> <a href='#SkCanvas_drawPicture_2_picture'>if</a>
-<a href='#SkCanvas_save'>save()</a> <a href='#SkCanvas_save'>was</a> <a href='#SkCanvas_save'>called</a> <a href='#SkCanvas_save'>before</a> <a href='#SkCanvas_save'>and</a> <a href='#SkCanvas_restore'>restore()</a> <a href='#SkCanvas_restore'>was</a> <a href='#SkCanvas_restore'>called</a> <a href='#SkCanvas_restore'>after</a> <a href='#SkCanvas_drawPicture'>drawPicture</a>().
+Draws <a href='SkPicture_Reference#SkPicture'>SkPicture</a> <a href='#SkCanvas_drawPicture_2_picture'>picture</a>, using clip and <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a>.
+Clip and <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> are unchanged by <a href='#SkCanvas_drawPicture_2_picture'>picture</a> contents, as if
+<a href='#SkCanvas_save'>save()</a> was called before and <a href='#SkCanvas_restore'>restore()</a> was called after <a href='#SkCanvas_drawPicture'>drawPicture</a>().
-<a href='SkPicture_Reference#SkPicture'>SkPicture</a> <a href='SkPicture_Reference#SkPicture'>records</a> <a href='SkPicture_Reference#SkPicture'>a</a> <a href='SkPicture_Reference#SkPicture'>series</a> <a href='SkPicture_Reference#SkPicture'>of</a> <a href='SkPicture_Reference#SkPicture'>draw</a> <a href='SkPicture_Reference#SkPicture'>commands</a> <a href='SkPicture_Reference#SkPicture'>for</a> <a href='SkPicture_Reference#SkPicture'>later</a> <a href='SkPicture_Reference#SkPicture'>playback</a>.
+<a href='SkPicture_Reference#SkPicture'>SkPicture</a> records a series of draw commands for later playback.
### Parameters
@@ -5735,15 +5735,15 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-void <a href='#SkCanvas_drawPicture'>drawPicture</a>(<a href='#SkCanvas_drawPicture'>const</a> <a href='SkPicture_Reference#SkPicture'>SkPicture</a>* <a href='SkPicture_Reference#Picture'>picture</a>, <a href='SkPicture_Reference#Picture'>const</a> <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a>* <a href='SkMatrix_Reference#Matrix'>matrix</a>, <a href='SkMatrix_Reference#Matrix'>const</a> <a href='SkPaint_Reference#SkPaint'>SkPaint</a>* <a href='SkPaint_Reference#Paint'>paint</a>)
+void <a href='#SkCanvas_drawPicture'>drawPicture</a>(const <a href='SkPicture_Reference#SkPicture'>SkPicture</a>* <a href='SkPicture_Reference#Picture'>picture</a>, const <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a>* <a href='SkMatrix_Reference#Matrix'>matrix</a>, const <a href='SkPaint_Reference#SkPaint'>SkPaint</a>* <a href='SkPaint_Reference#Paint'>paint</a>)
</pre>
-Draws <a href='SkPicture_Reference#SkPicture'>SkPicture</a> <a href='#SkCanvas_drawPicture_3_picture'>picture</a>, <a href='#SkCanvas_drawPicture_3_picture'>using</a> <a href='#SkCanvas_drawPicture_3_picture'>clip</a> <a href='#SkCanvas_drawPicture_3_picture'>and</a> <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a>; <a href='SkMatrix_Reference#SkMatrix'>transforming</a> <a href='#SkCanvas_drawPicture_3_picture'>picture</a> <a href='#SkCanvas_drawPicture_3_picture'>with</a>
-<a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> <a href='#SkCanvas_drawPicture_3_matrix'>matrix</a>, <a href='#SkCanvas_drawPicture_3_matrix'>if</a> <a href='#SkCanvas_drawPicture_3_matrix'>provided</a>; <a href='#SkCanvas_drawPicture_3_matrix'>and</a> <a href='#SkCanvas_drawPicture_3_matrix'>use</a> <a href='SkPaint_Reference#SkPaint'>SkPaint</a> <a href='#SkCanvas_drawPicture_3_paint'>paint alpha</a>, <a href='undocumented#SkColorFilter'>SkColorFilter</a>,
-<a href='undocumented#SkImageFilter'>SkImageFilter</a>, <a href='undocumented#SkImageFilter'>and</a> <a href='SkBlendMode_Reference#SkBlendMode'>SkBlendMode</a>, <a href='SkBlendMode_Reference#SkBlendMode'>if</a> <a href='SkBlendMode_Reference#SkBlendMode'>provided</a>.
+Draws <a href='SkPicture_Reference#SkPicture'>SkPicture</a> <a href='#SkCanvas_drawPicture_3_picture'>picture</a>, using clip and <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a>; transforming <a href='#SkCanvas_drawPicture_3_picture'>picture</a> with
+<a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> <a href='#SkCanvas_drawPicture_3_matrix'>matrix</a>, if provided; and use <a href='SkPaint_Reference#SkPaint'>SkPaint</a> <a href='#SkCanvas_drawPicture_3_paint'>paint alpha</a>, <a href='undocumented#SkColorFilter'>SkColorFilter</a>,
+<a href='undocumented#SkImageFilter'>SkImageFilter</a>, and <a href='SkBlendMode_Reference#SkBlendMode'>SkBlendMode</a>, if provided.
-<a href='#SkCanvas_drawPicture_3_matrix'>matrix</a> <a href='#SkCanvas_drawPicture_3_matrix'>transformation</a> <a href='#SkCanvas_drawPicture_3_matrix'>is</a> <a href='#SkCanvas_drawPicture_3_matrix'>equivalent</a> <a href='#SkCanvas_drawPicture_3_matrix'>to</a>: <a href='#SkCanvas_save'>save()</a>, <a href='#SkCanvas_concat'>concat()</a>, <a href='#SkCanvas_drawPicture'>drawPicture</a>(), <a href='#SkCanvas_restore'>restore()</a>.
-<a href='#SkCanvas_drawPicture_3_paint'>paint</a> <a href='#SkCanvas_drawPicture_3_paint'>use</a> <a href='#SkCanvas_drawPicture_3_paint'>is</a> <a href='#SkCanvas_drawPicture_3_paint'>equivalent</a> <a href='#SkCanvas_drawPicture_3_paint'>to</a>: <a href='#SkCanvas_saveLayer'>saveLayer</a>(), <a href='#SkCanvas_drawPicture'>drawPicture</a>(), <a href='#SkCanvas_restore'>restore()</a>.
+<a href='#SkCanvas_drawPicture_3_matrix'>matrix</a> transformation is equivalent to: <a href='#SkCanvas_save'>save()</a>, <a href='#SkCanvas_concat'>concat()</a>, <a href='#SkCanvas_drawPicture'>drawPicture</a>(), <a href='#SkCanvas_restore'>restore()</a>.
+<a href='#SkCanvas_drawPicture_3_paint'>paint</a> use is equivalent to: <a href='#SkCanvas_saveLayer'>saveLayer</a>(), <a href='#SkCanvas_drawPicture'>drawPicture</a>(), <a href='#SkCanvas_restore'>restore()</a>.
### Parameters
@@ -5751,10 +5751,10 @@
<td>recorded drawing commands to play</td>
</tr>
<tr> <td><a name='SkCanvas_drawPicture_3_matrix'><code><strong>matrix</strong></code></a></td>
- <td><a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> <a href='SkMatrix_Reference#SkMatrix'>to</a> <a href='SkMatrix_Reference#SkMatrix'>rotate</a>, <a href='SkMatrix_Reference#SkMatrix'>scale</a>, <a href='SkMatrix_Reference#SkMatrix'>translate</a>, <a href='SkMatrix_Reference#SkMatrix'>and</a> <a href='SkMatrix_Reference#SkMatrix'>so</a> <a href='SkMatrix_Reference#SkMatrix'>on</a>; <a href='SkMatrix_Reference#SkMatrix'>may</a> <a href='SkMatrix_Reference#SkMatrix'>be</a> <a href='SkMatrix_Reference#SkMatrix'>nullptr</a></td>
+ <td><a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> to rotate, scale, translate, and so on; may be nullptr</td>
</tr>
<tr> <td><a name='SkCanvas_drawPicture_3_paint'><code><strong>paint</strong></code></a></td>
- <td><a href='SkPaint_Reference#SkPaint'>SkPaint</a> <a href='SkPaint_Reference#SkPaint'>to</a> <a href='SkPaint_Reference#SkPaint'>apply</a> <a href='SkPaint_Reference#SkPaint'>transparency</a>, <a href='SkPaint_Reference#SkPaint'>filtering</a>, <a href='SkPaint_Reference#SkPaint'>and</a> <a href='SkPaint_Reference#SkPaint'>so</a> <a href='SkPaint_Reference#SkPaint'>on</a>; <a href='SkPaint_Reference#SkPaint'>may</a> <a href='SkPaint_Reference#SkPaint'>be</a> <a href='SkPaint_Reference#SkPaint'>nullptr</a></td>
+ <td><a href='SkPaint_Reference#SkPaint'>SkPaint</a> to apply transparency, filtering, and so on; may be nullptr</td>
</tr>
</table>
@@ -5771,15 +5771,15 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-void <a href='#SkCanvas_drawPicture'>drawPicture</a>(<a href='#SkCanvas_drawPicture'>const</a> <a href='undocumented#sk_sp'>sk_sp</a>&<a href='undocumented#sk_sp'>lt</a>;<a href='SkPicture_Reference#SkPicture'>SkPicture</a>&<a href='SkPicture_Reference#SkPicture'>gt</a>;& <a href='SkPicture_Reference#Picture'>picture</a>, <a href='SkPicture_Reference#Picture'>const</a> <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a>* <a href='SkMatrix_Reference#Matrix'>matrix</a>, <a href='SkMatrix_Reference#Matrix'>const</a> <a href='SkPaint_Reference#SkPaint'>SkPaint</a>* <a href='SkPaint_Reference#Paint'>paint</a>)
+void <a href='#SkCanvas_drawPicture'>drawPicture</a>(const <a href='undocumented#sk_sp'>sk_sp</a><<a href='SkPicture_Reference#SkPicture'>SkPicture</a>>& <a href='SkPicture_Reference#Picture'>picture</a>, const <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a>* <a href='SkMatrix_Reference#Matrix'>matrix</a>, const <a href='SkPaint_Reference#SkPaint'>SkPaint</a>* <a href='SkPaint_Reference#Paint'>paint</a>)
</pre>
-Draws <a href='SkPicture_Reference#SkPicture'>SkPicture</a> <a href='#SkCanvas_drawPicture_4_picture'>picture</a>, <a href='#SkCanvas_drawPicture_4_picture'>using</a> <a href='#SkCanvas_drawPicture_4_picture'>clip</a> <a href='#SkCanvas_drawPicture_4_picture'>and</a> <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a>; <a href='SkMatrix_Reference#SkMatrix'>transforming</a> <a href='#SkCanvas_drawPicture_4_picture'>picture</a> <a href='#SkCanvas_drawPicture_4_picture'>with</a>
-<a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> <a href='#SkCanvas_drawPicture_4_matrix'>matrix</a>, <a href='#SkCanvas_drawPicture_4_matrix'>if</a> <a href='#SkCanvas_drawPicture_4_matrix'>provided</a>; <a href='#SkCanvas_drawPicture_4_matrix'>and</a> <a href='#SkCanvas_drawPicture_4_matrix'>use</a> <a href='SkPaint_Reference#SkPaint'>SkPaint</a> <a href='#SkCanvas_drawPicture_4_paint'>paint alpha</a>, <a href='undocumented#SkColorFilter'>SkColorFilter</a>,
-<a href='undocumented#SkImageFilter'>SkImageFilter</a>, <a href='undocumented#SkImageFilter'>and</a> <a href='SkBlendMode_Reference#SkBlendMode'>SkBlendMode</a>, <a href='SkBlendMode_Reference#SkBlendMode'>if</a> <a href='SkBlendMode_Reference#SkBlendMode'>provided</a>.
+Draws <a href='SkPicture_Reference#SkPicture'>SkPicture</a> <a href='#SkCanvas_drawPicture_4_picture'>picture</a>, using clip and <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a>; transforming <a href='#SkCanvas_drawPicture_4_picture'>picture</a> with
+<a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> <a href='#SkCanvas_drawPicture_4_matrix'>matrix</a>, if provided; and use <a href='SkPaint_Reference#SkPaint'>SkPaint</a> <a href='#SkCanvas_drawPicture_4_paint'>paint alpha</a>, <a href='undocumented#SkColorFilter'>SkColorFilter</a>,
+<a href='undocumented#SkImageFilter'>SkImageFilter</a>, and <a href='SkBlendMode_Reference#SkBlendMode'>SkBlendMode</a>, if provided.
-<a href='#SkCanvas_drawPicture_4_matrix'>matrix</a> <a href='#SkCanvas_drawPicture_4_matrix'>transformation</a> <a href='#SkCanvas_drawPicture_4_matrix'>is</a> <a href='#SkCanvas_drawPicture_4_matrix'>equivalent</a> <a href='#SkCanvas_drawPicture_4_matrix'>to</a>: <a href='#SkCanvas_save'>save()</a>, <a href='#SkCanvas_concat'>concat()</a>, <a href='#SkCanvas_drawPicture'>drawPicture</a>(), <a href='#SkCanvas_restore'>restore()</a>.
-<a href='#SkCanvas_drawPicture_4_paint'>paint</a> <a href='#SkCanvas_drawPicture_4_paint'>use</a> <a href='#SkCanvas_drawPicture_4_paint'>is</a> <a href='#SkCanvas_drawPicture_4_paint'>equivalent</a> <a href='#SkCanvas_drawPicture_4_paint'>to</a>: <a href='#SkCanvas_saveLayer'>saveLayer</a>(), <a href='#SkCanvas_drawPicture'>drawPicture</a>(), <a href='#SkCanvas_restore'>restore()</a>.
+<a href='#SkCanvas_drawPicture_4_matrix'>matrix</a> transformation is equivalent to: <a href='#SkCanvas_save'>save()</a>, <a href='#SkCanvas_concat'>concat()</a>, <a href='#SkCanvas_drawPicture'>drawPicture</a>(), <a href='#SkCanvas_restore'>restore()</a>.
+<a href='#SkCanvas_drawPicture_4_paint'>paint</a> use is equivalent to: <a href='#SkCanvas_saveLayer'>saveLayer</a>(), <a href='#SkCanvas_drawPicture'>drawPicture</a>(), <a href='#SkCanvas_restore'>restore()</a>.
### Parameters
@@ -5787,10 +5787,10 @@
<td>recorded drawing commands to play</td>
</tr>
<tr> <td><a name='SkCanvas_drawPicture_4_matrix'><code><strong>matrix</strong></code></a></td>
- <td><a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> <a href='SkMatrix_Reference#SkMatrix'>to</a> <a href='SkMatrix_Reference#SkMatrix'>rotate</a>, <a href='SkMatrix_Reference#SkMatrix'>scale</a>, <a href='SkMatrix_Reference#SkMatrix'>translate</a>, <a href='SkMatrix_Reference#SkMatrix'>and</a> <a href='SkMatrix_Reference#SkMatrix'>so</a> <a href='SkMatrix_Reference#SkMatrix'>on</a>; <a href='SkMatrix_Reference#SkMatrix'>may</a> <a href='SkMatrix_Reference#SkMatrix'>be</a> <a href='SkMatrix_Reference#SkMatrix'>nullptr</a></td>
+ <td><a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> to rotate, scale, translate, and so on; may be nullptr</td>
</tr>
<tr> <td><a name='SkCanvas_drawPicture_4_paint'><code><strong>paint</strong></code></a></td>
- <td><a href='SkPaint_Reference#SkPaint'>SkPaint</a> <a href='SkPaint_Reference#SkPaint'>to</a> <a href='SkPaint_Reference#SkPaint'>apply</a> <a href='SkPaint_Reference#SkPaint'>transparency</a>, <a href='SkPaint_Reference#SkPaint'>filtering</a>, <a href='SkPaint_Reference#SkPaint'>and</a> <a href='SkPaint_Reference#SkPaint'>so</a> <a href='SkPaint_Reference#SkPaint'>on</a>; <a href='SkPaint_Reference#SkPaint'>may</a> <a href='SkPaint_Reference#SkPaint'>be</a> <a href='SkPaint_Reference#SkPaint'>nullptr</a></td>
+ <td><a href='SkPaint_Reference#SkPaint'>SkPaint</a> to apply transparency, filtering, and so on; may be nullptr</td>
</tr>
</table>
@@ -5807,12 +5807,12 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-void <a href='#SkCanvas_drawVertices'>drawVertices</a>(<a href='#SkCanvas_drawVertices'>const</a> <a href='undocumented#SkVertices'>SkVertices</a>* <a href='undocumented#Vertices'>vertices</a>, <a href='SkBlendMode_Reference#SkBlendMode'>SkBlendMode</a> <a href='SkBlendMode_Reference#SkBlendMode'>mode</a>, <a href='SkBlendMode_Reference#SkBlendMode'>const</a> <a href='SkPaint_Reference#SkPaint'>SkPaint</a>& <a href='SkPaint_Reference#Paint'>paint</a>)
+void <a href='#SkCanvas_drawVertices'>drawVertices</a>(const <a href='undocumented#SkVertices'>SkVertices</a>* <a href='undocumented#Vertices'>vertices</a>, <a href='SkBlendMode_Reference#SkBlendMode'>SkBlendMode</a> mode, const <a href='SkPaint_Reference#SkPaint'>SkPaint</a>& <a href='SkPaint_Reference#Paint'>paint</a>)
</pre>
-Draws <a href='undocumented#SkVertices'>SkVertices</a> <a href='#SkCanvas_drawVertices_vertices'>vertices</a>, <a href='#SkCanvas_drawVertices_vertices'>a</a> <a href='#SkCanvas_drawVertices_vertices'>triangle</a> <a href='#SkCanvas_drawVertices_vertices'>mesh</a>, <a href='#SkCanvas_drawVertices_vertices'>using</a> <a href='#SkCanvas_drawVertices_vertices'>clip</a> <a href='#SkCanvas_drawVertices_vertices'>and</a> <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a>.
-If <a href='undocumented#Vertices_Texs'>vertices texs</a> <a href='#SkCanvas_drawVertices_vertices'>and</a> <a href='undocumented#Vertices_Colors'>vertices colors</a> <a href='#SkCanvas_drawVertices_vertices'>are</a> <a href='#SkCanvas_drawVertices_vertices'>defined</a> <a href='#SkCanvas_drawVertices_vertices'>in</a> <a href='#SkCanvas_drawVertices_vertices'>vertices</a>, <a href='#SkCanvas_drawVertices_vertices'>and</a> <a href='SkPaint_Reference#SkPaint'>SkPaint</a> <a href='#SkCanvas_drawVertices_paint'>paint</a>
-contains <a href='undocumented#SkShader'>SkShader</a>, <a href='SkBlendMode_Reference#SkBlendMode'>SkBlendMode</a> <a href='#SkCanvas_drawVertices_mode'>mode</a> <a href='#SkCanvas_drawVertices_mode'>combines</a> <a href='undocumented#Vertices_Colors'>vertices colors</a> <a href='#SkCanvas_drawVertices_vertices'>with</a> <a href='undocumented#SkShader'>SkShader</a>.
+Draws <a href='undocumented#SkVertices'>SkVertices</a> <a href='#SkCanvas_drawVertices_vertices'>vertices</a>, a triangle mesh, using clip and <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a>.
+If <a href='undocumented#Vertices_Texs'>vertices texs</a> and <a href='undocumented#Vertices_Colors'>vertices colors</a> are defined in <a href='#SkCanvas_drawVertices_vertices'>vertices</a>, and <a href='SkPaint_Reference#SkPaint'>SkPaint</a> <a href='#SkCanvas_drawVertices_paint'>paint</a>
+contains <a href='undocumented#SkShader'>SkShader</a>, <a href='SkBlendMode_Reference#SkBlendMode'>SkBlendMode</a> <a href='#SkCanvas_drawVertices_mode'>mode</a> combines <a href='undocumented#Vertices_Colors'>vertices colors</a> with <a href='undocumented#SkShader'>SkShader</a>.
### Parameters
@@ -5820,10 +5820,10 @@
<td>triangle mesh to draw</td>
</tr>
<tr> <td><a name='SkCanvas_drawVertices_mode'><code><strong>mode</strong></code></a></td>
- <td>combines <a href='undocumented#Vertices_Colors'>vertices colors</a> <a href='#SkCanvas_drawVertices_vertices'>with</a> <a href='undocumented#SkShader'>SkShader</a>, <a href='undocumented#SkShader'>if</a> <a href='undocumented#SkShader'>both</a> <a href='undocumented#SkShader'>are</a> <a href='undocumented#SkShader'>present</a></td>
+ <td>combines <a href='undocumented#Vertices_Colors'>vertices colors</a> with <a href='undocumented#SkShader'>SkShader</a>, if both are present</td>
</tr>
<tr> <td><a name='SkCanvas_drawVertices_paint'><code><strong>paint</strong></code></a></td>
- <td>specifies the <a href='undocumented#SkShader'>SkShader</a>, <a href='undocumented#SkShader'>used</a> <a href='undocumented#SkShader'>as</a> <a href='undocumented#SkVertices'>SkVertices</a> <a href='undocumented#Texture'>texture</a>; <a href='undocumented#Texture'>may</a> <a href='undocumented#Texture'>be</a> <a href='undocumented#Texture'>nullptr</a></td>
+ <td>specifies the <a href='undocumented#SkShader'>SkShader</a>, used as <a href='undocumented#SkVertices'>SkVertices</a> <a href='undocumented#Texture'>texture</a>; may be nullptr</td>
</tr>
</table>
@@ -5840,12 +5840,12 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-void <a href='#SkCanvas_drawVertices'>drawVertices</a>(<a href='#SkCanvas_drawVertices'>const</a> <a href='undocumented#sk_sp'>sk_sp</a>&<a href='undocumented#sk_sp'>lt</a>;<a href='undocumented#SkVertices'>SkVertices</a>&<a href='undocumented#SkVertices'>gt</a>;& <a href='undocumented#Vertices'>vertices</a>, <a href='SkBlendMode_Reference#SkBlendMode'>SkBlendMode</a> <a href='SkBlendMode_Reference#SkBlendMode'>mode</a>, <a href='SkBlendMode_Reference#SkBlendMode'>const</a> <a href='SkPaint_Reference#SkPaint'>SkPaint</a>& <a href='SkPaint_Reference#Paint'>paint</a>)
+void <a href='#SkCanvas_drawVertices'>drawVertices</a>(const <a href='undocumented#sk_sp'>sk_sp</a><<a href='undocumented#SkVertices'>SkVertices</a>>& <a href='undocumented#Vertices'>vertices</a>, <a href='SkBlendMode_Reference#SkBlendMode'>SkBlendMode</a> mode, const <a href='SkPaint_Reference#SkPaint'>SkPaint</a>& <a href='SkPaint_Reference#Paint'>paint</a>)
</pre>
-Draws <a href='undocumented#SkVertices'>SkVertices</a> <a href='#SkCanvas_drawVertices_2_vertices'>vertices</a>, <a href='#SkCanvas_drawVertices_2_vertices'>a</a> <a href='#SkCanvas_drawVertices_2_vertices'>triangle</a> <a href='#SkCanvas_drawVertices_2_vertices'>mesh</a>, <a href='#SkCanvas_drawVertices_2_vertices'>using</a> <a href='#SkCanvas_drawVertices_2_vertices'>clip</a> <a href='#SkCanvas_drawVertices_2_vertices'>and</a> <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a>.
-If <a href='undocumented#Vertices_Texs'>vertices texs</a> <a href='#SkCanvas_drawVertices_2_vertices'>and</a> <a href='undocumented#Vertices_Colors'>vertices colors</a> <a href='#SkCanvas_drawVertices_2_vertices'>are</a> <a href='#SkCanvas_drawVertices_2_vertices'>defined</a> <a href='#SkCanvas_drawVertices_2_vertices'>in</a> <a href='#SkCanvas_drawVertices_2_vertices'>vertices</a>, <a href='#SkCanvas_drawVertices_2_vertices'>and</a> <a href='SkPaint_Reference#SkPaint'>SkPaint</a> <a href='#SkCanvas_drawVertices_2_paint'>paint</a>
-contains <a href='undocumented#SkShader'>SkShader</a>, <a href='SkBlendMode_Reference#SkBlendMode'>SkBlendMode</a> <a href='#SkCanvas_drawVertices_2_mode'>mode</a> <a href='#SkCanvas_drawVertices_2_mode'>combines</a> <a href='undocumented#Vertices_Colors'>vertices colors</a> <a href='#SkCanvas_drawVertices_2_vertices'>with</a> <a href='undocumented#SkShader'>SkShader</a>.
+Draws <a href='undocumented#SkVertices'>SkVertices</a> <a href='#SkCanvas_drawVertices_2_vertices'>vertices</a>, a triangle mesh, using clip and <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a>.
+If <a href='undocumented#Vertices_Texs'>vertices texs</a> and <a href='undocumented#Vertices_Colors'>vertices colors</a> are defined in <a href='#SkCanvas_drawVertices_2_vertices'>vertices</a>, and <a href='SkPaint_Reference#SkPaint'>SkPaint</a> <a href='#SkCanvas_drawVertices_2_paint'>paint</a>
+contains <a href='undocumented#SkShader'>SkShader</a>, <a href='SkBlendMode_Reference#SkBlendMode'>SkBlendMode</a> <a href='#SkCanvas_drawVertices_2_mode'>mode</a> combines <a href='undocumented#Vertices_Colors'>vertices colors</a> with <a href='undocumented#SkShader'>SkShader</a>.
### Parameters
@@ -5853,10 +5853,10 @@
<td>triangle mesh to draw</td>
</tr>
<tr> <td><a name='SkCanvas_drawVertices_2_mode'><code><strong>mode</strong></code></a></td>
- <td>combines <a href='undocumented#Vertices_Colors'>vertices colors</a> <a href='#SkCanvas_drawVertices_2_vertices'>with</a> <a href='undocumented#SkShader'>SkShader</a>, <a href='undocumented#SkShader'>if</a> <a href='undocumented#SkShader'>both</a> <a href='undocumented#SkShader'>are</a> <a href='undocumented#SkShader'>present</a></td>
+ <td>combines <a href='undocumented#Vertices_Colors'>vertices colors</a> with <a href='undocumented#SkShader'>SkShader</a>, if both are present</td>
</tr>
<tr> <td><a name='SkCanvas_drawVertices_2_paint'><code><strong>paint</strong></code></a></td>
- <td>specifies the <a href='undocumented#SkShader'>SkShader</a>, <a href='undocumented#SkShader'>used</a> <a href='undocumented#SkShader'>as</a> <a href='undocumented#SkVertices'>SkVertices</a> <a href='undocumented#Texture'>texture</a>, <a href='undocumented#Texture'>may</a> <a href='undocumented#Texture'>be</a> <a href='undocumented#Texture'>nullptr</a></td>
+ <td>specifies the <a href='undocumented#SkShader'>SkShader</a>, used as <a href='undocumented#SkVertices'>SkVertices</a> <a href='undocumented#Texture'>texture</a>, may be nullptr</td>
</tr>
</table>
@@ -5873,18 +5873,18 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-void <a href='#SkCanvas_drawVertices'>drawVertices</a>(<a href='#SkCanvas_drawVertices'>const</a> <a href='undocumented#SkVertices'>SkVertices</a>* <a href='undocumented#Vertices'>vertices</a>, <a href='undocumented#Vertices'>const</a> <a href='undocumented#SkVertices'>SkVertices</a>::<a href='#SkVertices_Bone'>Bone</a> <a href='#SkVertices_Bone'>bones</a>[], <a href='#SkVertices_Bone'>int</a> <a href='#SkVertices_Bone'>boneCount</a>,
- <a href='SkBlendMode_Reference#SkBlendMode'>SkBlendMode</a> <a href='SkBlendMode_Reference#SkBlendMode'>mode</a>, <a href='SkBlendMode_Reference#SkBlendMode'>const</a> <a href='SkPaint_Reference#SkPaint'>SkPaint</a>& <a href='SkPaint_Reference#Paint'>paint</a>)
+void <a href='#SkCanvas_drawVertices'>drawVertices</a>(const <a href='undocumented#SkVertices'>SkVertices</a>* <a href='undocumented#Vertices'>vertices</a>, const <a href='undocumented#SkVertices'>SkVertices</a>::<a href='#SkVertices_Bone'>Bone</a> bones[], int boneCount,
+ <a href='SkBlendMode_Reference#SkBlendMode'>SkBlendMode</a> mode, const <a href='SkPaint_Reference#SkPaint'>SkPaint</a>& <a href='SkPaint_Reference#Paint'>paint</a>)
</pre>
-Draws <a href='undocumented#SkVertices'>SkVertices</a> <a href='#SkCanvas_drawVertices_3_vertices'>vertices</a>, <a href='#SkCanvas_drawVertices_3_vertices'>a</a> <a href='#SkCanvas_drawVertices_3_vertices'>triangle</a> <a href='#SkCanvas_drawVertices_3_vertices'>mesh</a>, <a href='#SkCanvas_drawVertices_3_vertices'>using</a> <a href='#SkCanvas_drawVertices_3_vertices'>clip</a> <a href='#SkCanvas_drawVertices_3_vertices'>and</a> <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a>. <a href='SkMatrix_Reference#SkMatrix'>Bone</a> <a href='undocumented#Data'>data</a> <a href='undocumented#Data'>is</a> <a href='undocumented#Data'>used</a> <a href='undocumented#Data'>to</a>
-deform <a href='#SkCanvas_drawVertices_3_vertices'>vertices</a> <a href='#SkCanvas_drawVertices_3_vertices'>with</a> <a href='#SkCanvas_drawVertices_3_vertices'>bone</a> <a href='SkPath_Reference#Conic_Weight'>weights</a>.
-If <a href='undocumented#Vertices_Texs'>vertices texs</a> <a href='#SkCanvas_drawVertices_3_vertices'>and</a> <a href='undocumented#Vertices_Colors'>vertices colors</a> <a href='#SkCanvas_drawVertices_3_vertices'>are</a> <a href='#SkCanvas_drawVertices_3_vertices'>defined</a> <a href='#SkCanvas_drawVertices_3_vertices'>in</a> <a href='#SkCanvas_drawVertices_3_vertices'>vertices</a>, <a href='#SkCanvas_drawVertices_3_vertices'>and</a> <a href='SkPaint_Reference#SkPaint'>SkPaint</a> <a href='#SkCanvas_drawVertices_3_paint'>paint</a>
-contains <a href='undocumented#SkShader'>SkShader</a>, <a href='SkBlendMode_Reference#SkBlendMode'>SkBlendMode</a> <a href='#SkCanvas_drawVertices_3_mode'>mode</a> <a href='#SkCanvas_drawVertices_3_mode'>combines</a> <a href='undocumented#Vertices_Colors'>vertices colors</a> <a href='#SkCanvas_drawVertices_3_vertices'>with</a> <a href='undocumented#SkShader'>SkShader</a>.
-The first element of <a href='#SkCanvas_drawVertices_3_bones'>bones</a> <a href='#SkCanvas_drawVertices_3_bones'>should</a> <a href='#SkCanvas_drawVertices_3_bones'>be</a> <a href='#SkCanvas_drawVertices_3_bones'>an</a> <a href='#SkCanvas_drawVertices_3_bones'>object</a> <a href='#SkCanvas_drawVertices_3_bones'>to</a> <a href='#SkCanvas_drawVertices_3_bones'>world</a> <a href='#SkCanvas_drawVertices_3_bones'>space</a> <a href='#SkCanvas_drawVertices_3_bones'>transformation</a> <a href='SkMatrix_Reference#Matrix'>matrix</a> <a href='SkMatrix_Reference#Matrix'>that</a>
+Draws <a href='undocumented#SkVertices'>SkVertices</a> <a href='#SkCanvas_drawVertices_3_vertices'>vertices</a>, a triangle mesh, using clip and <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a>. Bone <a href='undocumented#Data'>data</a> is used to
+deform <a href='#SkCanvas_drawVertices_3_vertices'>vertices</a> with bone <a href='SkPath_Reference#Conic_Weight'>weights</a>.
+If <a href='undocumented#Vertices_Texs'>vertices texs</a> and <a href='undocumented#Vertices_Colors'>vertices colors</a> are defined in <a href='#SkCanvas_drawVertices_3_vertices'>vertices</a>, and <a href='SkPaint_Reference#SkPaint'>SkPaint</a> <a href='#SkCanvas_drawVertices_3_paint'>paint</a>
+contains <a href='undocumented#SkShader'>SkShader</a>, <a href='SkBlendMode_Reference#SkBlendMode'>SkBlendMode</a> <a href='#SkCanvas_drawVertices_3_mode'>mode</a> combines <a href='undocumented#Vertices_Colors'>vertices colors</a> with <a href='undocumented#SkShader'>SkShader</a>.
+The first element of <a href='#SkCanvas_drawVertices_3_bones'>bones</a> should be an object to world space transformation <a href='SkMatrix_Reference#Matrix'>matrix</a> that
will be applied before performing mesh deformations. If no such transformation is needed,
it should be the identity <a href='SkMatrix_Reference#Matrix'>matrix</a>.
-<a href='#SkCanvas_drawVertices_3_boneCount'>boneCount</a> <a href='#SkCanvas_drawVertices_3_boneCount'>must</a> <a href='#SkCanvas_drawVertices_3_boneCount'>be</a> <a href='#SkCanvas_drawVertices_3_boneCount'>at</a> <a href='#SkCanvas_drawVertices_3_boneCount'>most</a> 80, <a href='#SkCanvas_drawVertices_3_boneCount'>and</a> <a href='#SkCanvas_drawVertices_3_boneCount'>thus</a> <a href='#SkCanvas_drawVertices_3_boneCount'>the</a> <a href='undocumented#Size'>size</a> <a href='undocumented#Size'>of</a> <a href='#SkCanvas_drawVertices_3_bones'>bones</a> <a href='#SkCanvas_drawVertices_3_bones'>should</a> <a href='#SkCanvas_drawVertices_3_bones'>be</a> <a href='#SkCanvas_drawVertices_3_bones'>at</a> <a href='#SkCanvas_drawVertices_3_bones'>most</a> 80.
+<a href='#SkCanvas_drawVertices_3_boneCount'>boneCount</a> must be at most 80, and thus the <a href='undocumented#Size'>size</a> of <a href='#SkCanvas_drawVertices_3_bones'>bones</a> should be at most 80.
### Parameters
@@ -5898,10 +5898,10 @@
<td>number of bone <a href='SkMatrix_Reference#Matrix'>matrices</a></td>
</tr>
<tr> <td><a name='SkCanvas_drawVertices_3_mode'><code><strong>mode</strong></code></a></td>
- <td>combines <a href='undocumented#Vertices_Colors'>vertices colors</a> <a href='#SkCanvas_drawVertices_3_vertices'>with</a> <a href='undocumented#SkShader'>SkShader</a>, <a href='undocumented#SkShader'>if</a> <a href='undocumented#SkShader'>both</a> <a href='undocumented#SkShader'>are</a> <a href='undocumented#SkShader'>present</a></td>
+ <td>combines <a href='undocumented#Vertices_Colors'>vertices colors</a> with <a href='undocumented#SkShader'>SkShader</a>, if both are present</td>
</tr>
<tr> <td><a name='SkCanvas_drawVertices_3_paint'><code><strong>paint</strong></code></a></td>
- <td>specifies the <a href='undocumented#SkShader'>SkShader</a>, <a href='undocumented#SkShader'>used</a> <a href='undocumented#SkShader'>as</a> <a href='undocumented#SkVertices'>SkVertices</a> <a href='undocumented#Texture'>texture</a>, <a href='undocumented#Texture'>may</a> <a href='undocumented#Texture'>be</a> <a href='undocumented#Texture'>nullptr</a></td>
+ <td>specifies the <a href='undocumented#SkShader'>SkShader</a>, used as <a href='undocumented#SkVertices'>SkVertices</a> <a href='undocumented#Texture'>texture</a>, may be nullptr</td>
</tr>
</table>
@@ -5914,18 +5914,18 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-void <a href='#SkCanvas_drawVertices'>drawVertices</a>(<a href='#SkCanvas_drawVertices'>const</a> <a href='undocumented#sk_sp'>sk_sp</a>&<a href='undocumented#sk_sp'>lt</a>;<a href='undocumented#SkVertices'>SkVertices</a>&<a href='undocumented#SkVertices'>gt</a>;& <a href='undocumented#Vertices'>vertices</a>, <a href='undocumented#Vertices'>const</a> <a href='undocumented#SkVertices'>SkVertices</a>::<a href='#SkVertices_Bone'>Bone</a> <a href='#SkVertices_Bone'>bones</a>[], <a href='#SkVertices_Bone'>int</a> <a href='#SkVertices_Bone'>boneCount</a>,
- <a href='SkBlendMode_Reference#SkBlendMode'>SkBlendMode</a> <a href='SkBlendMode_Reference#SkBlendMode'>mode</a>, <a href='SkBlendMode_Reference#SkBlendMode'>const</a> <a href='SkPaint_Reference#SkPaint'>SkPaint</a>& <a href='SkPaint_Reference#Paint'>paint</a>)
+void <a href='#SkCanvas_drawVertices'>drawVertices</a>(const <a href='undocumented#sk_sp'>sk_sp</a><<a href='undocumented#SkVertices'>SkVertices</a>>& <a href='undocumented#Vertices'>vertices</a>, const <a href='undocumented#SkVertices'>SkVertices</a>::<a href='#SkVertices_Bone'>Bone</a> bones[], int boneCount,
+ <a href='SkBlendMode_Reference#SkBlendMode'>SkBlendMode</a> mode, const <a href='SkPaint_Reference#SkPaint'>SkPaint</a>& <a href='SkPaint_Reference#Paint'>paint</a>)
</pre>
-Draws <a href='undocumented#SkVertices'>SkVertices</a> <a href='#SkCanvas_drawVertices_4_vertices'>vertices</a>, <a href='#SkCanvas_drawVertices_4_vertices'>a</a> <a href='#SkCanvas_drawVertices_4_vertices'>triangle</a> <a href='#SkCanvas_drawVertices_4_vertices'>mesh</a>, <a href='#SkCanvas_drawVertices_4_vertices'>using</a> <a href='#SkCanvas_drawVertices_4_vertices'>clip</a> <a href='#SkCanvas_drawVertices_4_vertices'>and</a> <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a>. <a href='SkMatrix_Reference#SkMatrix'>Bone</a> <a href='undocumented#Data'>data</a> <a href='undocumented#Data'>is</a> <a href='undocumented#Data'>used</a> <a href='undocumented#Data'>to</a>
-deform <a href='#SkCanvas_drawVertices_4_vertices'>vertices</a> <a href='#SkCanvas_drawVertices_4_vertices'>with</a> <a href='#SkCanvas_drawVertices_4_vertices'>bone</a> <a href='SkPath_Reference#Conic_Weight'>weights</a>.
-If <a href='undocumented#Vertices_Texs'>vertices texs</a> <a href='#SkCanvas_drawVertices_4_vertices'>and</a> <a href='undocumented#Vertices_Colors'>vertices colors</a> <a href='#SkCanvas_drawVertices_4_vertices'>are</a> <a href='#SkCanvas_drawVertices_4_vertices'>defined</a> <a href='#SkCanvas_drawVertices_4_vertices'>in</a> <a href='#SkCanvas_drawVertices_4_vertices'>vertices</a>, <a href='#SkCanvas_drawVertices_4_vertices'>and</a> <a href='SkPaint_Reference#SkPaint'>SkPaint</a> <a href='#SkCanvas_drawVertices_4_paint'>paint</a>
-contains <a href='undocumented#SkShader'>SkShader</a>, <a href='SkBlendMode_Reference#SkBlendMode'>SkBlendMode</a> <a href='#SkCanvas_drawVertices_4_mode'>mode</a> <a href='#SkCanvas_drawVertices_4_mode'>combines</a> <a href='undocumented#Vertices_Colors'>vertices colors</a> <a href='#SkCanvas_drawVertices_4_vertices'>with</a> <a href='undocumented#SkShader'>SkShader</a>.
-The first element of <a href='#SkCanvas_drawVertices_4_bones'>bones</a> <a href='#SkCanvas_drawVertices_4_bones'>should</a> <a href='#SkCanvas_drawVertices_4_bones'>be</a> <a href='#SkCanvas_drawVertices_4_bones'>an</a> <a href='#SkCanvas_drawVertices_4_bones'>object</a> <a href='#SkCanvas_drawVertices_4_bones'>to</a> <a href='#SkCanvas_drawVertices_4_bones'>world</a> <a href='#SkCanvas_drawVertices_4_bones'>space</a> <a href='#SkCanvas_drawVertices_4_bones'>transformation</a> <a href='SkMatrix_Reference#Matrix'>matrix</a> <a href='SkMatrix_Reference#Matrix'>that</a>
+Draws <a href='undocumented#SkVertices'>SkVertices</a> <a href='#SkCanvas_drawVertices_4_vertices'>vertices</a>, a triangle mesh, using clip and <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a>. Bone <a href='undocumented#Data'>data</a> is used to
+deform <a href='#SkCanvas_drawVertices_4_vertices'>vertices</a> with bone <a href='SkPath_Reference#Conic_Weight'>weights</a>.
+If <a href='undocumented#Vertices_Texs'>vertices texs</a> and <a href='undocumented#Vertices_Colors'>vertices colors</a> are defined in <a href='#SkCanvas_drawVertices_4_vertices'>vertices</a>, and <a href='SkPaint_Reference#SkPaint'>SkPaint</a> <a href='#SkCanvas_drawVertices_4_paint'>paint</a>
+contains <a href='undocumented#SkShader'>SkShader</a>, <a href='SkBlendMode_Reference#SkBlendMode'>SkBlendMode</a> <a href='#SkCanvas_drawVertices_4_mode'>mode</a> combines <a href='undocumented#Vertices_Colors'>vertices colors</a> with <a href='undocumented#SkShader'>SkShader</a>.
+The first element of <a href='#SkCanvas_drawVertices_4_bones'>bones</a> should be an object to world space transformation <a href='SkMatrix_Reference#Matrix'>matrix</a> that
will be applied before performing mesh deformations. If no such transformation is needed,
it should be the identity <a href='SkMatrix_Reference#Matrix'>matrix</a>.
-<a href='#SkCanvas_drawVertices_4_boneCount'>boneCount</a> <a href='#SkCanvas_drawVertices_4_boneCount'>must</a> <a href='#SkCanvas_drawVertices_4_boneCount'>be</a> <a href='#SkCanvas_drawVertices_4_boneCount'>at</a> <a href='#SkCanvas_drawVertices_4_boneCount'>most</a> 80, <a href='#SkCanvas_drawVertices_4_boneCount'>and</a> <a href='#SkCanvas_drawVertices_4_boneCount'>thus</a> <a href='#SkCanvas_drawVertices_4_boneCount'>the</a> <a href='undocumented#Size'>size</a> <a href='undocumented#Size'>of</a> <a href='#SkCanvas_drawVertices_4_bones'>bones</a> <a href='#SkCanvas_drawVertices_4_bones'>should</a> <a href='#SkCanvas_drawVertices_4_bones'>be</a> <a href='#SkCanvas_drawVertices_4_bones'>at</a> <a href='#SkCanvas_drawVertices_4_bones'>most</a> 80.
+<a href='#SkCanvas_drawVertices_4_boneCount'>boneCount</a> must be at most 80, and thus the <a href='undocumented#Size'>size</a> of <a href='#SkCanvas_drawVertices_4_bones'>bones</a> should be at most 80.
### Parameters
@@ -5939,10 +5939,10 @@
<td>number of bone <a href='SkMatrix_Reference#Matrix'>matrices</a></td>
</tr>
<tr> <td><a name='SkCanvas_drawVertices_4_mode'><code><strong>mode</strong></code></a></td>
- <td>combines <a href='undocumented#Vertices_Colors'>vertices colors</a> <a href='#SkCanvas_drawVertices_4_vertices'>with</a> <a href='undocumented#SkShader'>SkShader</a>, <a href='undocumented#SkShader'>if</a> <a href='undocumented#SkShader'>both</a> <a href='undocumented#SkShader'>are</a> <a href='undocumented#SkShader'>present</a></td>
+ <td>combines <a href='undocumented#Vertices_Colors'>vertices colors</a> with <a href='undocumented#SkShader'>SkShader</a>, if both are present</td>
</tr>
<tr> <td><a name='SkCanvas_drawVertices_4_paint'><code><strong>paint</strong></code></a></td>
- <td>specifies the <a href='undocumented#SkShader'>SkShader</a>, <a href='undocumented#SkShader'>used</a> <a href='undocumented#SkShader'>as</a> <a href='undocumented#SkVertices'>SkVertices</a> <a href='undocumented#Texture'>texture</a>, <a href='undocumented#Texture'>may</a> <a href='undocumented#Texture'>be</a> <a href='undocumented#Texture'>nullptr</a></td>
+ <td>specifies the <a href='undocumented#SkShader'>SkShader</a>, used as <a href='undocumented#SkVertices'>SkVertices</a> <a href='undocumented#Texture'>texture</a>, may be nullptr</td>
</tr>
</table>
@@ -5955,38 +5955,38 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-void <a href='#SkCanvas_drawPatch'>drawPatch</a>(<a href='#SkCanvas_drawPatch'>const</a> <a href='SkPoint_Reference#SkPoint'>SkPoint</a> <a href='SkPath_Reference#Cubic'>cubics</a>[12], <a href='SkPath_Reference#Cubic'>const</a> <a href='SkColor_Reference#SkColor'>SkColor</a> <a href='SkColor_Reference#SkColor'>colors</a>[4], <a href='SkColor_Reference#SkColor'>const</a> <a href='SkPoint_Reference#SkPoint'>SkPoint</a> <a href='SkPoint_Reference#SkPoint'>texCoords</a>[4],
- <a href='SkBlendMode_Reference#SkBlendMode'>SkBlendMode</a> <a href='SkBlendMode_Reference#SkBlendMode'>mode</a>, <a href='SkBlendMode_Reference#SkBlendMode'>const</a> <a href='SkPaint_Reference#SkPaint'>SkPaint</a>& <a href='SkPaint_Reference#Paint'>paint</a>)
+void <a href='#SkCanvas_drawPatch'>drawPatch</a>(const <a href='SkPoint_Reference#SkPoint'>SkPoint</a> <a href='SkPath_Reference#Cubic'>cubics</a>[12], const <a href='SkColor_Reference#SkColor'>SkColor</a> colors[4], const <a href='SkPoint_Reference#SkPoint'>SkPoint</a> texCoords[4],
+ <a href='SkBlendMode_Reference#SkBlendMode'>SkBlendMode</a> mode, const <a href='SkPaint_Reference#SkPaint'>SkPaint</a>& <a href='SkPaint_Reference#Paint'>paint</a>)
</pre>
-Draws a <a href='undocumented#Coons_Patch'>Coons patch</a>: the interpolation of four <a href='#SkCanvas_drawPatch_cubics'>cubics</a> <a href='#SkCanvas_drawPatch_cubics'>with</a> <a href='#SkCanvas_drawPatch_cubics'>shared</a> <a href='#SkCanvas_drawPatch_cubics'>corners</a>,
-associating a <a href='SkColor_Reference#Color'>color</a>, <a href='SkColor_Reference#Color'>and</a> <a href='SkColor_Reference#Color'>optionally</a> <a href='SkColor_Reference#Color'>a</a> <a href='undocumented#Texture'>texture</a> <a href='SkPoint_Reference#SkPoint'>SkPoint</a>, <a href='SkPoint_Reference#SkPoint'>with</a> <a href='SkPoint_Reference#SkPoint'>each</a> <a href='SkPoint_Reference#SkPoint'>corner</a>.
+Draws a <a href='undocumented#Coons_Patch'>Coons patch</a>: the interpolation of four <a href='#SkCanvas_drawPatch_cubics'>cubics</a> with shared corners,
+associating a <a href='SkColor_Reference#Color'>color</a>, and optionally a <a href='undocumented#Texture'>texture</a> <a href='SkPoint_Reference#SkPoint'>SkPoint</a>, with each corner.
<a href='undocumented#Coons_Patch'>Coons patch</a> uses clip and <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a>, <a href='#SkCanvas_drawPatch_paint'>paint</a> <a href='undocumented#SkShader'>SkShader</a>, <a href='undocumented#SkColorFilter'>SkColorFilter</a>,
-<a href='SkColor_Reference#Alpha'>alpha</a>, <a href='undocumented#SkImageFilter'>SkImageFilter</a>, <a href='undocumented#SkImageFilter'>and</a> <a href='SkBlendMode_Reference#SkBlendMode'>SkBlendMode</a>. <a href='SkBlendMode_Reference#SkBlendMode'>If</a> <a href='undocumented#SkShader'>SkShader</a> <a href='undocumented#SkShader'>is</a> <a href='undocumented#SkShader'>provided</a> <a href='undocumented#SkShader'>it</a> <a href='undocumented#SkShader'>is</a> <a href='undocumented#SkShader'>treated</a>
-as <a href='undocumented#Coons_Patch'>Coons patch</a> <a href='undocumented#Texture'>texture</a>; <a href='SkBlendMode_Reference#SkBlendMode'>SkBlendMode</a> <a href='#SkCanvas_drawPatch_mode'>mode</a> <a href='#SkCanvas_drawPatch_mode'>combines</a> <a href='SkColor_Reference#Color'>color</a> <a href='#SkCanvas_drawPatch_colors'>colors</a> <a href='#SkCanvas_drawPatch_colors'>and</a> <a href='undocumented#SkShader'>SkShader</a> <a href='undocumented#SkShader'>if</a>
+<a href='SkColor_Reference#Alpha'>alpha</a>, <a href='undocumented#SkImageFilter'>SkImageFilter</a>, and <a href='SkBlendMode_Reference#SkBlendMode'>SkBlendMode</a>. If <a href='undocumented#SkShader'>SkShader</a> is provided it is treated
+as <a href='undocumented#Coons_Patch'>Coons patch</a> <a href='undocumented#Texture'>texture</a>; <a href='SkBlendMode_Reference#SkBlendMode'>SkBlendMode</a> <a href='#SkCanvas_drawPatch_mode'>mode</a> combines <a href='SkColor_Reference#Color'>color</a> <a href='#SkCanvas_drawPatch_colors'>colors</a> and <a href='undocumented#SkShader'>SkShader</a> if
both are provided.
-<a href='SkPath_Reference#Point_Array'>SkPoint array</a> <a href='#SkCanvas_drawPatch_cubics'>cubics</a> <a href='#SkCanvas_drawPatch_cubics'>specifies</a> <a href='#SkCanvas_drawPatch_cubics'>four</a> <a href='SkPath_Reference#SkPath'>SkPath</a> <a href='SkPath_Reference#Cubic'>cubic</a> <a href='SkPath_Reference#Cubic'>starting</a> <a href='SkPath_Reference#Cubic'>at</a> <a href='SkPath_Reference#Cubic'>the</a> <a href='SkPath_Reference#Cubic'>top-left</a> <a href='SkPath_Reference#Cubic'>corner</a>,
-in clockwise order, sharing every fourth <a href='SkPoint_Reference#Point'>point</a>. <a href='SkPoint_Reference#Point'>The</a> <a href='SkPoint_Reference#Point'>last</a> <a href='SkPath_Reference#SkPath'>SkPath</a> <a href='SkPath_Reference#Cubic'>cubic</a> <a href='SkPath_Reference#Cubic'>ends</a> <a href='SkPath_Reference#Cubic'>at</a> <a href='SkPath_Reference#Cubic'>the</a>
+<a href='SkPath_Reference#Point_Array'>SkPoint array</a> <a href='#SkCanvas_drawPatch_cubics'>cubics</a> specifies four <a href='SkPath_Reference#SkPath'>SkPath</a> <a href='SkPath_Reference#Cubic'>cubic</a> starting at the top-left corner,
+in clockwise order, sharing every fourth <a href='SkPoint_Reference#Point'>point</a>. The last <a href='SkPath_Reference#SkPath'>SkPath</a> <a href='SkPath_Reference#Cubic'>cubic</a> ends at the
first <a href='SkPoint_Reference#Point'>point</a>.
-<a href='SkColor_Reference#Color'>Color</a> <a href='SkColor_Reference#Color'>array</a> <a href='SkColor_Reference#Color'>color</a> <a href='SkColor_Reference#Color'>associates</a> <a href='#SkCanvas_drawPatch_colors'>colors</a> <a href='#SkCanvas_drawPatch_colors'>with</a> <a href='#SkCanvas_drawPatch_colors'>corners</a> <a href='#SkCanvas_drawPatch_colors'>in</a> <a href='#SkCanvas_drawPatch_colors'>top-left</a>, <a href='#SkCanvas_drawPatch_colors'>top-right</a>,
+<a href='SkColor_Reference#Color'>Color</a> array <a href='SkColor_Reference#Color'>color</a> associates <a href='#SkCanvas_drawPatch_colors'>colors</a> with corners in top-left, top-right,
bottom-right, bottom-left order.
-If <a href='#SkCanvas_drawPatch_paint'>paint</a> <a href='#SkCanvas_drawPatch_paint'>contains</a> <a href='undocumented#SkShader'>SkShader</a>, <a href='SkPath_Reference#Point_Array'>SkPoint array</a> <a href='#SkCanvas_drawPatch_texCoords'>texCoords</a> <a href='#SkCanvas_drawPatch_texCoords'>maps</a> <a href='undocumented#SkShader'>SkShader</a> <a href='undocumented#SkShader'>as</a> <a href='undocumented#Texture'>texture</a> <a href='undocumented#Texture'>to</a>
+If <a href='#SkCanvas_drawPatch_paint'>paint</a> contains <a href='undocumented#SkShader'>SkShader</a>, <a href='SkPath_Reference#Point_Array'>SkPoint array</a> <a href='#SkCanvas_drawPatch_texCoords'>texCoords</a> maps <a href='undocumented#SkShader'>SkShader</a> as <a href='undocumented#Texture'>texture</a> to
corners in top-left, top-right, bottom-right, bottom-left order.
### Parameters
<table> <tr> <td><a name='SkCanvas_drawPatch_cubics'><code><strong>cubics</strong></code></a></td>
- <td><a href='SkPath_Reference#SkPath'>SkPath</a> <a href='SkPath_Reference#Cubic'>cubic</a> <a href='SkPath_Reference#Cubic'>array</a>, <a href='SkPath_Reference#Cubic'>sharing</a> <a href='SkPath_Reference#Cubic'>common</a> <a href='SkPoint_Reference#Point'>points</a></td>
+ <td><a href='SkPath_Reference#SkPath'>SkPath</a> <a href='SkPath_Reference#Cubic'>cubic</a> array, sharing common <a href='SkPoint_Reference#Point'>points</a></td>
</tr>
<tr> <td><a name='SkCanvas_drawPatch_colors'><code><strong>colors</strong></code></a></td>
- <td><a href='SkColor_Reference#Color'>color</a> <a href='SkColor_Reference#Color'>array</a>, <a href='SkColor_Reference#Color'>one</a> <a href='SkColor_Reference#Color'>for</a> <a href='SkColor_Reference#Color'>each</a> <a href='SkColor_Reference#Color'>corner</a></td>
+ <td><a href='SkColor_Reference#Color'>color</a> array, one for each corner</td>
</tr>
<tr> <td><a name='SkCanvas_drawPatch_texCoords'><code><strong>texCoords</strong></code></a></td>
- <td><a href='SkPath_Reference#Point_Array'>SkPoint array</a> <a href='SkPoint_Reference#SkPoint'>of</a> <a href='undocumented#Texture'>texture</a> <a href='undocumented#Texture'>coordinates</a>, <a href='undocumented#Texture'>mapping</a> <a href='undocumented#SkShader'>SkShader</a> <a href='undocumented#SkShader'>to</a> <a href='undocumented#SkShader'>corners</a>;</td>
+ <td><a href='SkPath_Reference#Point_Array'>SkPoint array</a> of <a href='undocumented#Texture'>texture</a> coordinates, mapping <a href='undocumented#SkShader'>SkShader</a> to corners;</td>
</tr>
</table>
@@ -5995,10 +5995,10 @@
### Parameters
<table> <tr> <td><a name='SkCanvas_drawPatch_mode'><code><strong>mode</strong></code></a></td>
- <td><a href='SkBlendMode_Reference#SkBlendMode'>SkBlendMode</a> <a href='SkBlendMode_Reference#SkBlendMode'>for</a> <a href='#SkCanvas_drawPatch_colors'>colors</a>, <a href='#SkCanvas_drawPatch_colors'>and</a> <a href='#SkCanvas_drawPatch_colors'>for</a> <a href='undocumented#SkShader'>SkShader</a> <a href='undocumented#SkShader'>if</a> <a href='#SkCanvas_drawPatch_paint'>paint</a> <a href='#SkCanvas_drawPatch_paint'>has</a> <a href='#SkCanvas_drawPatch_paint'>one</a></td>
+ <td><a href='SkBlendMode_Reference#SkBlendMode'>SkBlendMode</a> for <a href='#SkCanvas_drawPatch_colors'>colors</a>, and for <a href='undocumented#SkShader'>SkShader</a> if <a href='#SkCanvas_drawPatch_paint'>paint</a> has one</td>
</tr>
<tr> <td><a name='SkCanvas_drawPatch_paint'><code><strong>paint</strong></code></a></td>
- <td><a href='undocumented#SkShader'>SkShader</a>, <a href='undocumented#SkColorFilter'>SkColorFilter</a>, <a href='SkBlendMode_Reference#SkBlendMode'>SkBlendMode</a>, <a href='SkBlendMode_Reference#SkBlendMode'>used</a> <a href='SkBlendMode_Reference#SkBlendMode'>to</a> <a href='SkBlendMode_Reference#SkBlendMode'>draw</a></td>
+ <td><a href='undocumented#SkShader'>SkShader</a>, <a href='undocumented#SkColorFilter'>SkColorFilter</a>, <a href='SkBlendMode_Reference#SkBlendMode'>SkBlendMode</a>, used to draw</td>
</tr>
</table>
@@ -6015,38 +6015,38 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-void <a href='#SkCanvas_drawPatch'>drawPatch</a>(<a href='#SkCanvas_drawPatch'>const</a> <a href='SkPoint_Reference#SkPoint'>SkPoint</a> <a href='SkPath_Reference#Cubic'>cubics</a>[12], <a href='SkPath_Reference#Cubic'>const</a> <a href='SkColor_Reference#SkColor'>SkColor</a> <a href='SkColor_Reference#SkColor'>colors</a>[4], <a href='SkColor_Reference#SkColor'>const</a> <a href='SkPoint_Reference#SkPoint'>SkPoint</a> <a href='SkPoint_Reference#SkPoint'>texCoords</a>[4],
- <a href='SkPoint_Reference#SkPoint'>const</a> <a href='SkPaint_Reference#SkPaint'>SkPaint</a>& <a href='SkPaint_Reference#Paint'>paint</a>)
+void <a href='#SkCanvas_drawPatch'>drawPatch</a>(const <a href='SkPoint_Reference#SkPoint'>SkPoint</a> <a href='SkPath_Reference#Cubic'>cubics</a>[12], const <a href='SkColor_Reference#SkColor'>SkColor</a> colors[4], const <a href='SkPoint_Reference#SkPoint'>SkPoint</a> texCoords[4],
+ const <a href='SkPaint_Reference#SkPaint'>SkPaint</a>& <a href='SkPaint_Reference#Paint'>paint</a>)
</pre>
-Draws <a href='SkPath_Reference#SkPath'>SkPath</a> <a href='SkPath_Reference#Cubic'>cubic</a> <a href='undocumented#Coons_Patch'>Coons patch</a>: <a href='SkPath_Reference#Cubic'>the</a> <a href='SkPath_Reference#Cubic'>interpolation</a> <a href='SkPath_Reference#Cubic'>of</a> <a href='SkPath_Reference#Cubic'>four</a> <a href='#SkCanvas_drawPatch_2_cubics'>cubics</a> <a href='#SkCanvas_drawPatch_2_cubics'>with</a> <a href='#SkCanvas_drawPatch_2_cubics'>shared</a> <a href='#SkCanvas_drawPatch_2_cubics'>corners</a>,
-associating a <a href='SkColor_Reference#Color'>color</a>, <a href='SkColor_Reference#Color'>and</a> <a href='SkColor_Reference#Color'>optionally</a> <a href='SkColor_Reference#Color'>a</a> <a href='undocumented#Texture'>texture</a> <a href='SkPoint_Reference#SkPoint'>SkPoint</a>, <a href='SkPoint_Reference#SkPoint'>with</a> <a href='SkPoint_Reference#SkPoint'>each</a> <a href='SkPoint_Reference#SkPoint'>corner</a>.
+Draws <a href='SkPath_Reference#SkPath'>SkPath</a> <a href='SkPath_Reference#Cubic'>cubic</a> <a href='undocumented#Coons_Patch'>Coons patch</a>: the interpolation of four <a href='#SkCanvas_drawPatch_2_cubics'>cubics</a> with shared corners,
+associating a <a href='SkColor_Reference#Color'>color</a>, and optionally a <a href='undocumented#Texture'>texture</a> <a href='SkPoint_Reference#SkPoint'>SkPoint</a>, with each corner.
<a href='undocumented#Coons_Patch'>Coons patch</a> uses clip and <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a>, <a href='#SkCanvas_drawPatch_2_paint'>paint</a> <a href='undocumented#SkShader'>SkShader</a>, <a href='undocumented#SkColorFilter'>SkColorFilter</a>,
-<a href='SkColor_Reference#Alpha'>alpha</a>, <a href='undocumented#SkImageFilter'>SkImageFilter</a>, <a href='undocumented#SkImageFilter'>and</a> <a href='SkBlendMode_Reference#SkBlendMode'>SkBlendMode</a>. <a href='SkBlendMode_Reference#SkBlendMode'>If</a> <a href='undocumented#SkShader'>SkShader</a> <a href='undocumented#SkShader'>is</a> <a href='undocumented#SkShader'>provided</a> <a href='undocumented#SkShader'>it</a> <a href='undocumented#SkShader'>is</a> <a href='undocumented#SkShader'>treated</a>
-as <a href='undocumented#Coons_Patch'>Coons patch</a> <a href='undocumented#Texture'>texture</a>; <a href='SkBlendMode_Reference#SkBlendMode'>SkBlendMode</a> <a href='SkBlendMode_Reference#SkBlendMode'>mode</a> <a href='SkBlendMode_Reference#SkBlendMode'>combines</a> <a href='SkColor_Reference#Color'>color</a> <a href='#SkCanvas_drawPatch_2_colors'>colors</a> <a href='#SkCanvas_drawPatch_2_colors'>and</a> <a href='undocumented#SkShader'>SkShader</a> <a href='undocumented#SkShader'>if</a>
+<a href='SkColor_Reference#Alpha'>alpha</a>, <a href='undocumented#SkImageFilter'>SkImageFilter</a>, and <a href='SkBlendMode_Reference#SkBlendMode'>SkBlendMode</a>. If <a href='undocumented#SkShader'>SkShader</a> is provided it is treated
+as <a href='undocumented#Coons_Patch'>Coons patch</a> <a href='undocumented#Texture'>texture</a>; <a href='SkBlendMode_Reference#SkBlendMode'>SkBlendMode</a> mode combines <a href='SkColor_Reference#Color'>color</a> <a href='#SkCanvas_drawPatch_2_colors'>colors</a> and <a href='undocumented#SkShader'>SkShader</a> if
both are provided.
-<a href='SkPath_Reference#Point_Array'>SkPoint array</a> <a href='#SkCanvas_drawPatch_2_cubics'>cubics</a> <a href='#SkCanvas_drawPatch_2_cubics'>specifies</a> <a href='#SkCanvas_drawPatch_2_cubics'>four</a> <a href='SkPath_Reference#SkPath'>SkPath</a> <a href='SkPath_Reference#Cubic'>cubic</a> <a href='SkPath_Reference#Cubic'>starting</a> <a href='SkPath_Reference#Cubic'>at</a> <a href='SkPath_Reference#Cubic'>the</a> <a href='SkPath_Reference#Cubic'>top-left</a> <a href='SkPath_Reference#Cubic'>corner</a>,
-in clockwise order, sharing every fourth <a href='SkPoint_Reference#Point'>point</a>. <a href='SkPoint_Reference#Point'>The</a> <a href='SkPoint_Reference#Point'>last</a> <a href='SkPath_Reference#SkPath'>SkPath</a> <a href='SkPath_Reference#Cubic'>cubic</a> <a href='SkPath_Reference#Cubic'>ends</a> <a href='SkPath_Reference#Cubic'>at</a> <a href='SkPath_Reference#Cubic'>the</a>
+<a href='SkPath_Reference#Point_Array'>SkPoint array</a> <a href='#SkCanvas_drawPatch_2_cubics'>cubics</a> specifies four <a href='SkPath_Reference#SkPath'>SkPath</a> <a href='SkPath_Reference#Cubic'>cubic</a> starting at the top-left corner,
+in clockwise order, sharing every fourth <a href='SkPoint_Reference#Point'>point</a>. The last <a href='SkPath_Reference#SkPath'>SkPath</a> <a href='SkPath_Reference#Cubic'>cubic</a> ends at the
first <a href='SkPoint_Reference#Point'>point</a>.
-<a href='SkColor_Reference#Color'>Color</a> <a href='SkColor_Reference#Color'>array</a> <a href='SkColor_Reference#Color'>color</a> <a href='SkColor_Reference#Color'>associates</a> <a href='#SkCanvas_drawPatch_2_colors'>colors</a> <a href='#SkCanvas_drawPatch_2_colors'>with</a> <a href='#SkCanvas_drawPatch_2_colors'>corners</a> <a href='#SkCanvas_drawPatch_2_colors'>in</a> <a href='#SkCanvas_drawPatch_2_colors'>top-left</a>, <a href='#SkCanvas_drawPatch_2_colors'>top-right</a>,
+<a href='SkColor_Reference#Color'>Color</a> array <a href='SkColor_Reference#Color'>color</a> associates <a href='#SkCanvas_drawPatch_2_colors'>colors</a> with corners in top-left, top-right,
bottom-right, bottom-left order.
-If <a href='#SkCanvas_drawPatch_2_paint'>paint</a> <a href='#SkCanvas_drawPatch_2_paint'>contains</a> <a href='undocumented#SkShader'>SkShader</a>, <a href='SkPath_Reference#Point_Array'>SkPoint array</a> <a href='#SkCanvas_drawPatch_2_texCoords'>texCoords</a> <a href='#SkCanvas_drawPatch_2_texCoords'>maps</a> <a href='undocumented#SkShader'>SkShader</a> <a href='undocumented#SkShader'>as</a> <a href='undocumented#Texture'>texture</a> <a href='undocumented#Texture'>to</a>
+If <a href='#SkCanvas_drawPatch_2_paint'>paint</a> contains <a href='undocumented#SkShader'>SkShader</a>, <a href='SkPath_Reference#Point_Array'>SkPoint array</a> <a href='#SkCanvas_drawPatch_2_texCoords'>texCoords</a> maps <a href='undocumented#SkShader'>SkShader</a> as <a href='undocumented#Texture'>texture</a> to
corners in top-left, top-right, bottom-right, bottom-left order.
### Parameters
<table> <tr> <td><a name='SkCanvas_drawPatch_2_cubics'><code><strong>cubics</strong></code></a></td>
- <td><a href='SkPath_Reference#SkPath'>SkPath</a> <a href='SkPath_Reference#Cubic'>cubic</a> <a href='SkPath_Reference#Cubic'>array</a>, <a href='SkPath_Reference#Cubic'>sharing</a> <a href='SkPath_Reference#Cubic'>common</a> <a href='SkPoint_Reference#Point'>points</a></td>
+ <td><a href='SkPath_Reference#SkPath'>SkPath</a> <a href='SkPath_Reference#Cubic'>cubic</a> array, sharing common <a href='SkPoint_Reference#Point'>points</a></td>
</tr>
<tr> <td><a name='SkCanvas_drawPatch_2_colors'><code><strong>colors</strong></code></a></td>
- <td><a href='SkColor_Reference#Color'>color</a> <a href='SkColor_Reference#Color'>array</a>, <a href='SkColor_Reference#Color'>one</a> <a href='SkColor_Reference#Color'>for</a> <a href='SkColor_Reference#Color'>each</a> <a href='SkColor_Reference#Color'>corner</a></td>
+ <td><a href='SkColor_Reference#Color'>color</a> array, one for each corner</td>
</tr>
<tr> <td><a name='SkCanvas_drawPatch_2_texCoords'><code><strong>texCoords</strong></code></a></td>
- <td><a href='SkPath_Reference#Point_Array'>SkPoint array</a> <a href='SkPoint_Reference#SkPoint'>of</a> <a href='undocumented#Texture'>texture</a> <a href='undocumented#Texture'>coordinates</a>, <a href='undocumented#Texture'>mapping</a> <a href='undocumented#SkShader'>SkShader</a> <a href='undocumented#SkShader'>to</a> <a href='undocumented#SkShader'>corners</a>;</td>
+ <td><a href='SkPath_Reference#Point_Array'>SkPoint array</a> of <a href='undocumented#Texture'>texture</a> coordinates, mapping <a href='undocumented#SkShader'>SkShader</a> to corners;</td>
</tr>
</table>
@@ -6055,7 +6055,7 @@
### Parameters
<table> <tr> <td><a name='SkCanvas_drawPatch_2_paint'><code><strong>paint</strong></code></a></td>
- <td><a href='undocumented#SkShader'>SkShader</a>, <a href='undocumented#SkColorFilter'>SkColorFilter</a>, <a href='SkBlendMode_Reference#SkBlendMode'>SkBlendMode</a>, <a href='SkBlendMode_Reference#SkBlendMode'>used</a> <a href='SkBlendMode_Reference#SkBlendMode'>to</a> <a href='SkBlendMode_Reference#SkBlendMode'>draw</a></td>
+ <td><a href='undocumented#SkShader'>SkShader</a>, <a href='undocumented#SkColorFilter'>SkColorFilter</a>, <a href='SkBlendMode_Reference#SkBlendMode'>SkBlendMode</a>, used to draw</td>
</tr>
</table>
@@ -6076,47 +6076,47 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-void <a href='#SkCanvas_drawAtlas'>drawAtlas</a>(<a href='#SkCanvas_drawAtlas'>const</a> <a href='SkImage_Reference#SkImage'>SkImage</a>* <a href='SkImage_Reference#SkImage'>atlas</a>, <a href='SkImage_Reference#SkImage'>const</a> <a href='undocumented#SkRSXform'>SkRSXform</a> <a href='undocumented#SkRSXform'>xform</a>[], <a href='undocumented#SkRSXform'>const</a> <a href='SkRect_Reference#SkRect'>SkRect</a> <a href='SkRect_Reference#SkRect'>tex</a>[],
- <a href='SkRect_Reference#SkRect'>const</a> <a href='SkColor_Reference#SkColor'>SkColor</a> <a href='SkColor_Reference#SkColor'>colors</a>[], <a href='SkColor_Reference#SkColor'>int</a> <a href='SkColor_Reference#SkColor'>count</a>, <a href='SkBlendMode_Reference#SkBlendMode'>SkBlendMode</a> <a href='SkBlendMode_Reference#SkBlendMode'>mode</a>, <a href='SkBlendMode_Reference#SkBlendMode'>const</a> <a href='SkRect_Reference#SkRect'>SkRect</a>* <a href='SkRect_Reference#SkRect'>cullRect</a>,
- <a href='SkRect_Reference#SkRect'>const</a> <a href='SkPaint_Reference#SkPaint'>SkPaint</a>* <a href='SkPaint_Reference#Paint'>paint</a>)
+void <a href='#SkCanvas_drawAtlas'>drawAtlas</a>(const <a href='SkImage_Reference#SkImage'>SkImage</a>* atlas, const <a href='undocumented#SkRSXform'>SkRSXform</a> xform[], const <a href='SkRect_Reference#SkRect'>SkRect</a> tex[],
+ const <a href='SkColor_Reference#SkColor'>SkColor</a> colors[], int count, <a href='SkBlendMode_Reference#SkBlendMode'>SkBlendMode</a> mode, const <a href='SkRect_Reference#SkRect'>SkRect</a>* cullRect,
+ const <a href='SkPaint_Reference#SkPaint'>SkPaint</a>* <a href='SkPaint_Reference#Paint'>paint</a>)
</pre>
-Draws a set of <a href='undocumented#Sprite'>sprites</a> <a href='undocumented#Sprite'>from</a> <a href='#SkCanvas_drawAtlas_atlas'>atlas</a>, <a href='#SkCanvas_drawAtlas_atlas'>using</a> <a href='#SkCanvas_drawAtlas_atlas'>clip</a>, <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a>, <a href='SkMatrix_Reference#SkMatrix'>and</a> <a href='SkMatrix_Reference#SkMatrix'>optional</a> <a href='SkPaint_Reference#SkPaint'>SkPaint</a> <a href='#SkCanvas_drawAtlas_paint'>paint</a>.
-<a href='#SkCanvas_drawAtlas_paint'>paint</a> <a href='#SkCanvas_drawAtlas_paint'>uses</a> <a href='SkPaint_Reference#Anti_Alias'>anti-alias</a>, <a href='SkColor_Reference#Alpha'>alpha</a>, <a href='undocumented#SkColorFilter'>SkColorFilter</a>, <a href='undocumented#SkImageFilter'>SkImageFilter</a>, <a href='undocumented#SkImageFilter'>and</a> <a href='SkBlendMode_Reference#SkBlendMode'>SkBlendMode</a>
-to draw, if present. For each entry in the array, <a href='SkRect_Reference#SkRect'>SkRect</a> <a href='#SkCanvas_drawAtlas_tex'>tex</a> <a href='#SkCanvas_drawAtlas_tex'>locates</a> <a href='undocumented#Sprite'>sprite</a> <a href='undocumented#Sprite'>in</a>
-<a href='#SkCanvas_drawAtlas_atlas'>atlas</a>, <a href='#SkCanvas_drawAtlas_atlas'>and</a> <a href='undocumented#SkRSXform'>SkRSXform</a> <a href='#SkCanvas_drawAtlas_xform'>xform</a> <a href='#SkCanvas_drawAtlas_xform'>transforms</a> <a href='#SkCanvas_drawAtlas_xform'>it</a> <a href='#SkCanvas_drawAtlas_xform'>into</a> <a href='#SkCanvas_drawAtlas_xform'>destination</a> <a href='#SkCanvas_drawAtlas_xform'>space</a>.
+Draws a set of <a href='undocumented#Sprite'>sprites</a> from <a href='#SkCanvas_drawAtlas_atlas'>atlas</a>, using clip, <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a>, and optional <a href='SkPaint_Reference#SkPaint'>SkPaint</a> <a href='#SkCanvas_drawAtlas_paint'>paint</a>.
+<a href='#SkCanvas_drawAtlas_paint'>paint</a> uses <a href='SkPaint_Reference#Anti_Alias'>anti-alias</a>, <a href='SkColor_Reference#Alpha'>alpha</a>, <a href='undocumented#SkColorFilter'>SkColorFilter</a>, <a href='undocumented#SkImageFilter'>SkImageFilter</a>, and <a href='SkBlendMode_Reference#SkBlendMode'>SkBlendMode</a>
+to draw, if present. For each entry in the array, <a href='SkRect_Reference#SkRect'>SkRect</a> <a href='#SkCanvas_drawAtlas_tex'>tex</a> locates <a href='undocumented#Sprite'>sprite</a> in
+<a href='#SkCanvas_drawAtlas_atlas'>atlas</a>, and <a href='undocumented#SkRSXform'>SkRSXform</a> <a href='#SkCanvas_drawAtlas_xform'>xform</a> transforms it into destination space.
-<a href='#SkCanvas_drawAtlas_xform'>xform</a>, <a href='undocumented#Text'>text</a>, <a href='undocumented#Text'>and</a> <a href='#SkCanvas_drawAtlas_colors'>colors</a> <a href='#SkCanvas_drawAtlas_colors'>if</a> <a href='#SkCanvas_drawAtlas_colors'>present</a>, <a href='#SkCanvas_drawAtlas_colors'>must</a> <a href='#SkCanvas_drawAtlas_colors'>contain</a> <a href='#SkCanvas_drawAtlas_count'>count</a> <a href='#SkCanvas_drawAtlas_count'>entries</a>.
-Optional <a href='#SkCanvas_drawAtlas_colors'>colors</a> <a href='#SkCanvas_drawAtlas_colors'>are</a> <a href='#SkCanvas_drawAtlas_colors'>applied</a> <a href='#SkCanvas_drawAtlas_colors'>for</a> <a href='#SkCanvas_drawAtlas_colors'>each</a> <a href='undocumented#Sprite'>sprite</a> <a href='undocumented#Sprite'>using</a> <a href='SkBlendMode_Reference#SkBlendMode'>SkBlendMode</a> <a href='#SkCanvas_drawAtlas_mode'>mode</a>, <a href='#SkCanvas_drawAtlas_mode'>treating</a>
-<a href='undocumented#Sprite'>sprite</a> <a href='undocumented#Sprite'>as</a> <a href='undocumented#Sprite'>source</a> <a href='undocumented#Sprite'>and</a> <a href='#SkCanvas_drawAtlas_colors'>colors</a> <a href='#SkCanvas_drawAtlas_colors'>as</a> <a href='#SkCanvas_drawAtlas_colors'>destination</a>.
-Optional <a href='#SkCanvas_drawAtlas_cullRect'>cullRect</a> <a href='#SkCanvas_drawAtlas_cullRect'>is</a> <a href='#SkCanvas_drawAtlas_cullRect'>a</a> <a href='#SkCanvas_drawAtlas_cullRect'>conservative</a> <a href='#SkCanvas_drawAtlas_cullRect'>bounds</a> <a href='#SkCanvas_drawAtlas_cullRect'>of</a> <a href='#SkCanvas_drawAtlas_cullRect'>all</a> <a href='#SkCanvas_drawAtlas_cullRect'>transformed</a> <a href='undocumented#Sprite'>sprites</a>.
-If <a href='#SkCanvas_drawAtlas_cullRect'>cullRect</a> <a href='#SkCanvas_drawAtlas_cullRect'>is</a> <a href='#SkCanvas_drawAtlas_cullRect'>outside</a> <a href='#SkCanvas_drawAtlas_cullRect'>of</a> <a href='#SkCanvas_drawAtlas_cullRect'>clip</a>, <a href='SkCanvas_Reference#Canvas'>canvas</a> <a href='SkCanvas_Reference#Canvas'>can</a> <a href='SkCanvas_Reference#Canvas'>skip</a> <a href='SkCanvas_Reference#Canvas'>drawing</a>.
+<a href='#SkCanvas_drawAtlas_xform'>xform</a>, <a href='undocumented#Text'>text</a>, and <a href='#SkCanvas_drawAtlas_colors'>colors</a> if present, must contain <a href='#SkCanvas_drawAtlas_count'>count</a> entries.
+Optional <a href='#SkCanvas_drawAtlas_colors'>colors</a> are applied for each <a href='undocumented#Sprite'>sprite</a> using <a href='SkBlendMode_Reference#SkBlendMode'>SkBlendMode</a> <a href='#SkCanvas_drawAtlas_mode'>mode</a>, treating
+<a href='undocumented#Sprite'>sprite</a> as source and <a href='#SkCanvas_drawAtlas_colors'>colors</a> as destination.
+Optional <a href='#SkCanvas_drawAtlas_cullRect'>cullRect</a> is a conservative bounds of all transformed <a href='undocumented#Sprite'>sprites</a>.
+If <a href='#SkCanvas_drawAtlas_cullRect'>cullRect</a> is outside of clip, <a href='SkCanvas_Reference#Canvas'>canvas</a> can skip drawing.
### Parameters
<table> <tr> <td><a name='SkCanvas_drawAtlas_atlas'><code><strong>atlas</strong></code></a></td>
- <td><a href='SkImage_Reference#SkImage'>SkImage</a> <a href='SkImage_Reference#SkImage'>containing</a> <a href='undocumented#Sprite'>sprites</a></td>
+ <td><a href='SkImage_Reference#SkImage'>SkImage</a> containing <a href='undocumented#Sprite'>sprites</a></td>
</tr>
<tr> <td><a name='SkCanvas_drawAtlas_xform'><code><strong>xform</strong></code></a></td>
- <td><a href='undocumented#SkRSXform'>SkRSXform</a> <a href='undocumented#SkRSXform'>mappings</a> <a href='undocumented#SkRSXform'>for</a> <a href='undocumented#Sprite'>sprites</a> <a href='undocumented#Sprite'>in</a> <a href='#SkCanvas_drawAtlas_atlas'>atlas</a></td>
+ <td><a href='undocumented#SkRSXform'>SkRSXform</a> mappings for <a href='undocumented#Sprite'>sprites</a> in <a href='#SkCanvas_drawAtlas_atlas'>atlas</a></td>
</tr>
<tr> <td><a name='SkCanvas_drawAtlas_tex'><code><strong>tex</strong></code></a></td>
- <td><a href='SkRect_Reference#SkRect'>SkRect</a> <a href='SkRect_Reference#SkRect'>locations</a> <a href='SkRect_Reference#SkRect'>of</a> <a href='undocumented#Sprite'>sprites</a> <a href='undocumented#Sprite'>in</a> <a href='#SkCanvas_drawAtlas_atlas'>atlas</a></td>
+ <td><a href='SkRect_Reference#SkRect'>SkRect</a> locations of <a href='undocumented#Sprite'>sprites</a> in <a href='#SkCanvas_drawAtlas_atlas'>atlas</a></td>
</tr>
<tr> <td><a name='SkCanvas_drawAtlas_colors'><code><strong>colors</strong></code></a></td>
- <td>one per <a href='undocumented#Sprite'>sprite</a>, <a href='undocumented#Sprite'>blended</a> <a href='undocumented#Sprite'>with</a> <a href='undocumented#Sprite'>sprite</a> <a href='undocumented#Sprite'>using</a> <a href='SkBlendMode_Reference#SkBlendMode'>SkBlendMode</a>; <a href='SkBlendMode_Reference#SkBlendMode'>may</a> <a href='SkBlendMode_Reference#SkBlendMode'>be</a> <a href='SkBlendMode_Reference#SkBlendMode'>nullptr</a></td>
+ <td>one per <a href='undocumented#Sprite'>sprite</a>, blended with <a href='undocumented#Sprite'>sprite</a> using <a href='SkBlendMode_Reference#SkBlendMode'>SkBlendMode</a>; may be nullptr</td>
</tr>
<tr> <td><a name='SkCanvas_drawAtlas_count'><code><strong>count</strong></code></a></td>
- <td>number of <a href='undocumented#Sprite'>sprites</a> <a href='undocumented#Sprite'>to</a> <a href='undocumented#Sprite'>draw</a></td>
+ <td>number of <a href='undocumented#Sprite'>sprites</a> to draw</td>
</tr>
<tr> <td><a name='SkCanvas_drawAtlas_mode'><code><strong>mode</strong></code></a></td>
- <td><a href='SkBlendMode_Reference#SkBlendMode'>SkBlendMode</a> <a href='SkBlendMode_Reference#SkBlendMode'>combining</a> <a href='#SkCanvas_drawAtlas_colors'>colors</a> <a href='#SkCanvas_drawAtlas_colors'>and</a> <a href='undocumented#Sprite'>sprites</a></td>
+ <td><a href='SkBlendMode_Reference#SkBlendMode'>SkBlendMode</a> combining <a href='#SkCanvas_drawAtlas_colors'>colors</a> and <a href='undocumented#Sprite'>sprites</a></td>
</tr>
<tr> <td><a name='SkCanvas_drawAtlas_cullRect'><code><strong>cullRect</strong></code></a></td>
- <td>bounds of transformed <a href='undocumented#Sprite'>sprites</a> <a href='undocumented#Sprite'>for</a> <a href='undocumented#Sprite'>efficient</a> <a href='undocumented#Sprite'>clipping</a>; <a href='undocumented#Sprite'>may</a> <a href='undocumented#Sprite'>be</a> <a href='undocumented#Sprite'>nullptr</a></td>
+ <td>bounds of transformed <a href='undocumented#Sprite'>sprites</a> for efficient clipping; may be nullptr</td>
</tr>
<tr> <td><a name='SkCanvas_drawAtlas_paint'><code><strong>paint</strong></code></a></td>
- <td><a href='undocumented#SkColorFilter'>SkColorFilter</a>, <a href='undocumented#SkImageFilter'>SkImageFilter</a>, <a href='SkBlendMode_Reference#SkBlendMode'>SkBlendMode</a>, <a href='SkBlendMode_Reference#SkBlendMode'>and</a> <a href='SkBlendMode_Reference#SkBlendMode'>so</a> <a href='SkBlendMode_Reference#SkBlendMode'>on</a>; <a href='SkBlendMode_Reference#SkBlendMode'>may</a> <a href='SkBlendMode_Reference#SkBlendMode'>be</a> <a href='SkBlendMode_Reference#SkBlendMode'>nullptr</a></td>
+ <td><a href='undocumented#SkColorFilter'>SkColorFilter</a>, <a href='undocumented#SkImageFilter'>SkImageFilter</a>, <a href='SkBlendMode_Reference#SkBlendMode'>SkBlendMode</a>, and so on; may be nullptr</td>
</tr>
</table>
@@ -6133,46 +6133,46 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-void <a href='#SkCanvas_drawAtlas'>drawAtlas</a>(<a href='#SkCanvas_drawAtlas'>const</a> <a href='undocumented#sk_sp'>sk_sp</a>&<a href='undocumented#sk_sp'>lt</a>;<a href='SkImage_Reference#SkImage'>SkImage</a>&<a href='SkImage_Reference#SkImage'>gt</a>;& <a href='SkImage_Reference#SkImage'>atlas</a>, <a href='SkImage_Reference#SkImage'>const</a> <a href='undocumented#SkRSXform'>SkRSXform</a> <a href='undocumented#SkRSXform'>xform</a>[], <a href='undocumented#SkRSXform'>const</a> <a href='SkRect_Reference#SkRect'>SkRect</a> <a href='SkRect_Reference#SkRect'>tex</a>[],
- <a href='SkRect_Reference#SkRect'>const</a> <a href='SkColor_Reference#SkColor'>SkColor</a> <a href='SkColor_Reference#SkColor'>colors</a>[], <a href='SkColor_Reference#SkColor'>int</a> <a href='SkColor_Reference#SkColor'>count</a>, <a href='SkBlendMode_Reference#SkBlendMode'>SkBlendMode</a> <a href='SkBlendMode_Reference#SkBlendMode'>mode</a>, <a href='SkBlendMode_Reference#SkBlendMode'>const</a> <a href='SkRect_Reference#SkRect'>SkRect</a>* <a href='SkRect_Reference#SkRect'>cullRect</a>,
- <a href='SkRect_Reference#SkRect'>const</a> <a href='SkPaint_Reference#SkPaint'>SkPaint</a>* <a href='SkPaint_Reference#Paint'>paint</a>)
+void <a href='#SkCanvas_drawAtlas'>drawAtlas</a>(const <a href='undocumented#sk_sp'>sk_sp</a><<a href='SkImage_Reference#SkImage'>SkImage</a>>& atlas, const <a href='undocumented#SkRSXform'>SkRSXform</a> xform[], const <a href='SkRect_Reference#SkRect'>SkRect</a> tex[],
+ const <a href='SkColor_Reference#SkColor'>SkColor</a> colors[], int count, <a href='SkBlendMode_Reference#SkBlendMode'>SkBlendMode</a> mode, const <a href='SkRect_Reference#SkRect'>SkRect</a>* cullRect,
+ const <a href='SkPaint_Reference#SkPaint'>SkPaint</a>* <a href='SkPaint_Reference#Paint'>paint</a>)
</pre>
-Draws a set of <a href='undocumented#Sprite'>sprites</a> <a href='undocumented#Sprite'>from</a> <a href='#SkCanvas_drawAtlas_2_atlas'>atlas</a>, <a href='#SkCanvas_drawAtlas_2_atlas'>using</a> <a href='#SkCanvas_drawAtlas_2_atlas'>clip</a>, <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a>, <a href='SkMatrix_Reference#SkMatrix'>and</a> <a href='SkMatrix_Reference#SkMatrix'>optional</a> <a href='SkPaint_Reference#SkPaint'>SkPaint</a> <a href='#SkCanvas_drawAtlas_2_paint'>paint</a>.
-<a href='#SkCanvas_drawAtlas_2_paint'>paint</a> <a href='#SkCanvas_drawAtlas_2_paint'>uses</a> <a href='SkPaint_Reference#Anti_Alias'>anti-alias</a>, <a href='SkColor_Reference#Alpha'>alpha</a>, <a href='undocumented#SkColorFilter'>SkColorFilter</a>, <a href='undocumented#SkImageFilter'>SkImageFilter</a>, <a href='undocumented#SkImageFilter'>and</a> <a href='SkBlendMode_Reference#SkBlendMode'>SkBlendMode</a>
-to draw, if present. For each entry in the array, <a href='SkRect_Reference#SkRect'>SkRect</a> <a href='#SkCanvas_drawAtlas_2_tex'>tex</a> <a href='#SkCanvas_drawAtlas_2_tex'>locates</a> <a href='undocumented#Sprite'>sprite</a> <a href='undocumented#Sprite'>in</a>
-<a href='#SkCanvas_drawAtlas_2_atlas'>atlas</a>, <a href='#SkCanvas_drawAtlas_2_atlas'>and</a> <a href='undocumented#SkRSXform'>SkRSXform</a> <a href='#SkCanvas_drawAtlas_2_xform'>xform</a> <a href='#SkCanvas_drawAtlas_2_xform'>transforms</a> <a href='#SkCanvas_drawAtlas_2_xform'>it</a> <a href='#SkCanvas_drawAtlas_2_xform'>into</a> <a href='#SkCanvas_drawAtlas_2_xform'>destination</a> <a href='#SkCanvas_drawAtlas_2_xform'>space</a>.
+Draws a set of <a href='undocumented#Sprite'>sprites</a> from <a href='#SkCanvas_drawAtlas_2_atlas'>atlas</a>, using clip, <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a>, and optional <a href='SkPaint_Reference#SkPaint'>SkPaint</a> <a href='#SkCanvas_drawAtlas_2_paint'>paint</a>.
+<a href='#SkCanvas_drawAtlas_2_paint'>paint</a> uses <a href='SkPaint_Reference#Anti_Alias'>anti-alias</a>, <a href='SkColor_Reference#Alpha'>alpha</a>, <a href='undocumented#SkColorFilter'>SkColorFilter</a>, <a href='undocumented#SkImageFilter'>SkImageFilter</a>, and <a href='SkBlendMode_Reference#SkBlendMode'>SkBlendMode</a>
+to draw, if present. For each entry in the array, <a href='SkRect_Reference#SkRect'>SkRect</a> <a href='#SkCanvas_drawAtlas_2_tex'>tex</a> locates <a href='undocumented#Sprite'>sprite</a> in
+<a href='#SkCanvas_drawAtlas_2_atlas'>atlas</a>, and <a href='undocumented#SkRSXform'>SkRSXform</a> <a href='#SkCanvas_drawAtlas_2_xform'>xform</a> transforms it into destination space.
-<a href='#SkCanvas_drawAtlas_2_xform'>xform</a>, <a href='undocumented#Text'>text</a>, <a href='undocumented#Text'>and</a> <a href='#SkCanvas_drawAtlas_2_colors'>colors</a> <a href='#SkCanvas_drawAtlas_2_colors'>if</a> <a href='#SkCanvas_drawAtlas_2_colors'>present</a>, <a href='#SkCanvas_drawAtlas_2_colors'>must</a> <a href='#SkCanvas_drawAtlas_2_colors'>contain</a> <a href='#SkCanvas_drawAtlas_2_count'>count</a> <a href='#SkCanvas_drawAtlas_2_count'>entries</a>.
-Optional <a href='#SkCanvas_drawAtlas_2_colors'>colors</a> <a href='#SkCanvas_drawAtlas_2_colors'>is</a> <a href='#SkCanvas_drawAtlas_2_colors'>applied</a> <a href='#SkCanvas_drawAtlas_2_colors'>for</a> <a href='#SkCanvas_drawAtlas_2_colors'>each</a> <a href='undocumented#Sprite'>sprite</a> <a href='undocumented#Sprite'>using</a> <a href='SkBlendMode_Reference#SkBlendMode'>SkBlendMode</a>.
-Optional <a href='#SkCanvas_drawAtlas_2_cullRect'>cullRect</a> <a href='#SkCanvas_drawAtlas_2_cullRect'>is</a> <a href='#SkCanvas_drawAtlas_2_cullRect'>a</a> <a href='#SkCanvas_drawAtlas_2_cullRect'>conservative</a> <a href='#SkCanvas_drawAtlas_2_cullRect'>bounds</a> <a href='#SkCanvas_drawAtlas_2_cullRect'>of</a> <a href='#SkCanvas_drawAtlas_2_cullRect'>all</a> <a href='#SkCanvas_drawAtlas_2_cullRect'>transformed</a> <a href='undocumented#Sprite'>sprites</a>.
-If <a href='#SkCanvas_drawAtlas_2_cullRect'>cullRect</a> <a href='#SkCanvas_drawAtlas_2_cullRect'>is</a> <a href='#SkCanvas_drawAtlas_2_cullRect'>outside</a> <a href='#SkCanvas_drawAtlas_2_cullRect'>of</a> <a href='#SkCanvas_drawAtlas_2_cullRect'>clip</a>, <a href='SkCanvas_Reference#Canvas'>canvas</a> <a href='SkCanvas_Reference#Canvas'>can</a> <a href='SkCanvas_Reference#Canvas'>skip</a> <a href='SkCanvas_Reference#Canvas'>drawing</a>.
+<a href='#SkCanvas_drawAtlas_2_xform'>xform</a>, <a href='undocumented#Text'>text</a>, and <a href='#SkCanvas_drawAtlas_2_colors'>colors</a> if present, must contain <a href='#SkCanvas_drawAtlas_2_count'>count</a> entries.
+Optional <a href='#SkCanvas_drawAtlas_2_colors'>colors</a> is applied for each <a href='undocumented#Sprite'>sprite</a> using <a href='SkBlendMode_Reference#SkBlendMode'>SkBlendMode</a>.
+Optional <a href='#SkCanvas_drawAtlas_2_cullRect'>cullRect</a> is a conservative bounds of all transformed <a href='undocumented#Sprite'>sprites</a>.
+If <a href='#SkCanvas_drawAtlas_2_cullRect'>cullRect</a> is outside of clip, <a href='SkCanvas_Reference#Canvas'>canvas</a> can skip drawing.
### Parameters
<table> <tr> <td><a name='SkCanvas_drawAtlas_2_atlas'><code><strong>atlas</strong></code></a></td>
- <td><a href='SkImage_Reference#SkImage'>SkImage</a> <a href='SkImage_Reference#SkImage'>containing</a> <a href='undocumented#Sprite'>sprites</a></td>
+ <td><a href='SkImage_Reference#SkImage'>SkImage</a> containing <a href='undocumented#Sprite'>sprites</a></td>
</tr>
<tr> <td><a name='SkCanvas_drawAtlas_2_xform'><code><strong>xform</strong></code></a></td>
- <td><a href='undocumented#SkRSXform'>SkRSXform</a> <a href='undocumented#SkRSXform'>mappings</a> <a href='undocumented#SkRSXform'>for</a> <a href='undocumented#Sprite'>sprites</a> <a href='undocumented#Sprite'>in</a> <a href='#SkCanvas_drawAtlas_2_atlas'>atlas</a></td>
+ <td><a href='undocumented#SkRSXform'>SkRSXform</a> mappings for <a href='undocumented#Sprite'>sprites</a> in <a href='#SkCanvas_drawAtlas_2_atlas'>atlas</a></td>
</tr>
<tr> <td><a name='SkCanvas_drawAtlas_2_tex'><code><strong>tex</strong></code></a></td>
- <td><a href='SkRect_Reference#SkRect'>SkRect</a> <a href='SkRect_Reference#SkRect'>locations</a> <a href='SkRect_Reference#SkRect'>of</a> <a href='undocumented#Sprite'>sprites</a> <a href='undocumented#Sprite'>in</a> <a href='#SkCanvas_drawAtlas_2_atlas'>atlas</a></td>
+ <td><a href='SkRect_Reference#SkRect'>SkRect</a> locations of <a href='undocumented#Sprite'>sprites</a> in <a href='#SkCanvas_drawAtlas_2_atlas'>atlas</a></td>
</tr>
<tr> <td><a name='SkCanvas_drawAtlas_2_colors'><code><strong>colors</strong></code></a></td>
- <td>one per <a href='undocumented#Sprite'>sprite</a>, <a href='undocumented#Sprite'>blended</a> <a href='undocumented#Sprite'>with</a> <a href='undocumented#Sprite'>sprite</a> <a href='undocumented#Sprite'>using</a> <a href='SkBlendMode_Reference#SkBlendMode'>SkBlendMode</a>; <a href='SkBlendMode_Reference#SkBlendMode'>may</a> <a href='SkBlendMode_Reference#SkBlendMode'>be</a> <a href='SkBlendMode_Reference#SkBlendMode'>nullptr</a></td>
+ <td>one per <a href='undocumented#Sprite'>sprite</a>, blended with <a href='undocumented#Sprite'>sprite</a> using <a href='SkBlendMode_Reference#SkBlendMode'>SkBlendMode</a>; may be nullptr</td>
</tr>
<tr> <td><a name='SkCanvas_drawAtlas_2_count'><code><strong>count</strong></code></a></td>
- <td>number of <a href='undocumented#Sprite'>sprites</a> <a href='undocumented#Sprite'>to</a> <a href='undocumented#Sprite'>draw</a></td>
+ <td>number of <a href='undocumented#Sprite'>sprites</a> to draw</td>
</tr>
<tr> <td><a name='SkCanvas_drawAtlas_2_mode'><code><strong>mode</strong></code></a></td>
- <td><a href='SkBlendMode_Reference#SkBlendMode'>SkBlendMode</a> <a href='SkBlendMode_Reference#SkBlendMode'>combining</a> <a href='#SkCanvas_drawAtlas_2_colors'>colors</a> <a href='#SkCanvas_drawAtlas_2_colors'>and</a> <a href='undocumented#Sprite'>sprites</a></td>
+ <td><a href='SkBlendMode_Reference#SkBlendMode'>SkBlendMode</a> combining <a href='#SkCanvas_drawAtlas_2_colors'>colors</a> and <a href='undocumented#Sprite'>sprites</a></td>
</tr>
<tr> <td><a name='SkCanvas_drawAtlas_2_cullRect'><code><strong>cullRect</strong></code></a></td>
- <td>bounds of transformed <a href='undocumented#Sprite'>sprites</a> <a href='undocumented#Sprite'>for</a> <a href='undocumented#Sprite'>efficient</a> <a href='undocumented#Sprite'>clipping</a>; <a href='undocumented#Sprite'>may</a> <a href='undocumented#Sprite'>be</a> <a href='undocumented#Sprite'>nullptr</a></td>
+ <td>bounds of transformed <a href='undocumented#Sprite'>sprites</a> for efficient clipping; may be nullptr</td>
</tr>
<tr> <td><a name='SkCanvas_drawAtlas_2_paint'><code><strong>paint</strong></code></a></td>
- <td><a href='undocumented#SkColorFilter'>SkColorFilter</a>, <a href='undocumented#SkImageFilter'>SkImageFilter</a>, <a href='SkBlendMode_Reference#SkBlendMode'>SkBlendMode</a>, <a href='SkBlendMode_Reference#SkBlendMode'>and</a> <a href='SkBlendMode_Reference#SkBlendMode'>so</a> <a href='SkBlendMode_Reference#SkBlendMode'>on</a>; <a href='SkBlendMode_Reference#SkBlendMode'>may</a> <a href='SkBlendMode_Reference#SkBlendMode'>be</a> <a href='SkBlendMode_Reference#SkBlendMode'>nullptr</a></td>
+ <td><a href='undocumented#SkColorFilter'>SkColorFilter</a>, <a href='undocumented#SkImageFilter'>SkImageFilter</a>, <a href='SkBlendMode_Reference#SkBlendMode'>SkBlendMode</a>, and so on; may be nullptr</td>
</tr>
</table>
@@ -6189,38 +6189,38 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-void <a href='#SkCanvas_drawAtlas'>drawAtlas</a>(<a href='#SkCanvas_drawAtlas'>const</a> <a href='SkImage_Reference#SkImage'>SkImage</a>* <a href='SkImage_Reference#SkImage'>atlas</a>, <a href='SkImage_Reference#SkImage'>const</a> <a href='undocumented#SkRSXform'>SkRSXform</a> <a href='undocumented#SkRSXform'>xform</a>[], <a href='undocumented#SkRSXform'>const</a> <a href='SkRect_Reference#SkRect'>SkRect</a> <a href='SkRect_Reference#SkRect'>tex</a>[], <a href='SkRect_Reference#SkRect'>int</a> <a href='SkRect_Reference#SkRect'>count</a>,
- <a href='SkRect_Reference#SkRect'>const</a> <a href='SkRect_Reference#SkRect'>SkRect</a>* <a href='SkRect_Reference#SkRect'>cullRect</a>, <a href='SkRect_Reference#SkRect'>const</a> <a href='SkPaint_Reference#SkPaint'>SkPaint</a>* <a href='SkPaint_Reference#Paint'>paint</a>)
+void <a href='#SkCanvas_drawAtlas'>drawAtlas</a>(const <a href='SkImage_Reference#SkImage'>SkImage</a>* atlas, const <a href='undocumented#SkRSXform'>SkRSXform</a> xform[], const <a href='SkRect_Reference#SkRect'>SkRect</a> tex[], int count,
+ const <a href='SkRect_Reference#SkRect'>SkRect</a>* cullRect, const <a href='SkPaint_Reference#SkPaint'>SkPaint</a>* <a href='SkPaint_Reference#Paint'>paint</a>)
</pre>
-Draws a set of <a href='undocumented#Sprite'>sprites</a> <a href='undocumented#Sprite'>from</a> <a href='#SkCanvas_drawAtlas_3_atlas'>atlas</a>, <a href='#SkCanvas_drawAtlas_3_atlas'>using</a> <a href='#SkCanvas_drawAtlas_3_atlas'>clip</a>, <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a>, <a href='SkMatrix_Reference#SkMatrix'>and</a> <a href='SkMatrix_Reference#SkMatrix'>optional</a> <a href='SkPaint_Reference#SkPaint'>SkPaint</a> <a href='#SkCanvas_drawAtlas_3_paint'>paint</a>.
-<a href='#SkCanvas_drawAtlas_3_paint'>paint</a> <a href='#SkCanvas_drawAtlas_3_paint'>uses</a> <a href='SkPaint_Reference#Anti_Alias'>anti-alias</a>, <a href='SkColor_Reference#Alpha'>alpha</a>, <a href='undocumented#SkColorFilter'>SkColorFilter</a>, <a href='undocumented#SkImageFilter'>SkImageFilter</a>, <a href='undocumented#SkImageFilter'>and</a> <a href='SkBlendMode_Reference#SkBlendMode'>SkBlendMode</a>
-to draw, if present. For each entry in the array, <a href='SkRect_Reference#SkRect'>SkRect</a> <a href='#SkCanvas_drawAtlas_3_tex'>tex</a> <a href='#SkCanvas_drawAtlas_3_tex'>locates</a> <a href='undocumented#Sprite'>sprite</a> <a href='undocumented#Sprite'>in</a>
-<a href='#SkCanvas_drawAtlas_3_atlas'>atlas</a>, <a href='#SkCanvas_drawAtlas_3_atlas'>and</a> <a href='undocumented#SkRSXform'>SkRSXform</a> <a href='#SkCanvas_drawAtlas_3_xform'>xform</a> <a href='#SkCanvas_drawAtlas_3_xform'>transforms</a> <a href='#SkCanvas_drawAtlas_3_xform'>it</a> <a href='#SkCanvas_drawAtlas_3_xform'>into</a> <a href='#SkCanvas_drawAtlas_3_xform'>destination</a> <a href='#SkCanvas_drawAtlas_3_xform'>space</a>.
+Draws a set of <a href='undocumented#Sprite'>sprites</a> from <a href='#SkCanvas_drawAtlas_3_atlas'>atlas</a>, using clip, <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a>, and optional <a href='SkPaint_Reference#SkPaint'>SkPaint</a> <a href='#SkCanvas_drawAtlas_3_paint'>paint</a>.
+<a href='#SkCanvas_drawAtlas_3_paint'>paint</a> uses <a href='SkPaint_Reference#Anti_Alias'>anti-alias</a>, <a href='SkColor_Reference#Alpha'>alpha</a>, <a href='undocumented#SkColorFilter'>SkColorFilter</a>, <a href='undocumented#SkImageFilter'>SkImageFilter</a>, and <a href='SkBlendMode_Reference#SkBlendMode'>SkBlendMode</a>
+to draw, if present. For each entry in the array, <a href='SkRect_Reference#SkRect'>SkRect</a> <a href='#SkCanvas_drawAtlas_3_tex'>tex</a> locates <a href='undocumented#Sprite'>sprite</a> in
+<a href='#SkCanvas_drawAtlas_3_atlas'>atlas</a>, and <a href='undocumented#SkRSXform'>SkRSXform</a> <a href='#SkCanvas_drawAtlas_3_xform'>xform</a> transforms it into destination space.
-<a href='#SkCanvas_drawAtlas_3_xform'>xform</a> <a href='#SkCanvas_drawAtlas_3_xform'>and</a> <a href='undocumented#Text'>text</a> <a href='undocumented#Text'>must</a> <a href='undocumented#Text'>contain</a> <a href='#SkCanvas_drawAtlas_3_count'>count</a> <a href='#SkCanvas_drawAtlas_3_count'>entries</a>.
-Optional <a href='#SkCanvas_drawAtlas_3_cullRect'>cullRect</a> <a href='#SkCanvas_drawAtlas_3_cullRect'>is</a> <a href='#SkCanvas_drawAtlas_3_cullRect'>a</a> <a href='#SkCanvas_drawAtlas_3_cullRect'>conservative</a> <a href='#SkCanvas_drawAtlas_3_cullRect'>bounds</a> <a href='#SkCanvas_drawAtlas_3_cullRect'>of</a> <a href='#SkCanvas_drawAtlas_3_cullRect'>all</a> <a href='#SkCanvas_drawAtlas_3_cullRect'>transformed</a> <a href='undocumented#Sprite'>sprites</a>.
-If <a href='#SkCanvas_drawAtlas_3_cullRect'>cullRect</a> <a href='#SkCanvas_drawAtlas_3_cullRect'>is</a> <a href='#SkCanvas_drawAtlas_3_cullRect'>outside</a> <a href='#SkCanvas_drawAtlas_3_cullRect'>of</a> <a href='#SkCanvas_drawAtlas_3_cullRect'>clip</a>, <a href='SkCanvas_Reference#Canvas'>canvas</a> <a href='SkCanvas_Reference#Canvas'>can</a> <a href='SkCanvas_Reference#Canvas'>skip</a> <a href='SkCanvas_Reference#Canvas'>drawing</a>.
+<a href='#SkCanvas_drawAtlas_3_xform'>xform</a> and <a href='undocumented#Text'>text</a> must contain <a href='#SkCanvas_drawAtlas_3_count'>count</a> entries.
+Optional <a href='#SkCanvas_drawAtlas_3_cullRect'>cullRect</a> is a conservative bounds of all transformed <a href='undocumented#Sprite'>sprites</a>.
+If <a href='#SkCanvas_drawAtlas_3_cullRect'>cullRect</a> is outside of clip, <a href='SkCanvas_Reference#Canvas'>canvas</a> can skip drawing.
### Parameters
<table> <tr> <td><a name='SkCanvas_drawAtlas_3_atlas'><code><strong>atlas</strong></code></a></td>
- <td><a href='SkImage_Reference#SkImage'>SkImage</a> <a href='SkImage_Reference#SkImage'>containing</a> <a href='undocumented#Sprite'>sprites</a></td>
+ <td><a href='SkImage_Reference#SkImage'>SkImage</a> containing <a href='undocumented#Sprite'>sprites</a></td>
</tr>
<tr> <td><a name='SkCanvas_drawAtlas_3_xform'><code><strong>xform</strong></code></a></td>
- <td><a href='undocumented#SkRSXform'>SkRSXform</a> <a href='undocumented#SkRSXform'>mappings</a> <a href='undocumented#SkRSXform'>for</a> <a href='undocumented#Sprite'>sprites</a> <a href='undocumented#Sprite'>in</a> <a href='#SkCanvas_drawAtlas_3_atlas'>atlas</a></td>
+ <td><a href='undocumented#SkRSXform'>SkRSXform</a> mappings for <a href='undocumented#Sprite'>sprites</a> in <a href='#SkCanvas_drawAtlas_3_atlas'>atlas</a></td>
</tr>
<tr> <td><a name='SkCanvas_drawAtlas_3_tex'><code><strong>tex</strong></code></a></td>
- <td><a href='SkRect_Reference#SkRect'>SkRect</a> <a href='SkRect_Reference#SkRect'>locations</a> <a href='SkRect_Reference#SkRect'>of</a> <a href='undocumented#Sprite'>sprites</a> <a href='undocumented#Sprite'>in</a> <a href='#SkCanvas_drawAtlas_3_atlas'>atlas</a></td>
+ <td><a href='SkRect_Reference#SkRect'>SkRect</a> locations of <a href='undocumented#Sprite'>sprites</a> in <a href='#SkCanvas_drawAtlas_3_atlas'>atlas</a></td>
</tr>
<tr> <td><a name='SkCanvas_drawAtlas_3_count'><code><strong>count</strong></code></a></td>
- <td>number of <a href='undocumented#Sprite'>sprites</a> <a href='undocumented#Sprite'>to</a> <a href='undocumented#Sprite'>draw</a></td>
+ <td>number of <a href='undocumented#Sprite'>sprites</a> to draw</td>
</tr>
<tr> <td><a name='SkCanvas_drawAtlas_3_cullRect'><code><strong>cullRect</strong></code></a></td>
- <td>bounds of transformed <a href='undocumented#Sprite'>sprites</a> <a href='undocumented#Sprite'>for</a> <a href='undocumented#Sprite'>efficient</a> <a href='undocumented#Sprite'>clipping</a>; <a href='undocumented#Sprite'>may</a> <a href='undocumented#Sprite'>be</a> <a href='undocumented#Sprite'>nullptr</a></td>
+ <td>bounds of transformed <a href='undocumented#Sprite'>sprites</a> for efficient clipping; may be nullptr</td>
</tr>
<tr> <td><a name='SkCanvas_drawAtlas_3_paint'><code><strong>paint</strong></code></a></td>
- <td><a href='undocumented#SkColorFilter'>SkColorFilter</a>, <a href='undocumented#SkImageFilter'>SkImageFilter</a>, <a href='SkBlendMode_Reference#SkBlendMode'>SkBlendMode</a>, <a href='SkBlendMode_Reference#SkBlendMode'>and</a> <a href='SkBlendMode_Reference#SkBlendMode'>so</a> <a href='SkBlendMode_Reference#SkBlendMode'>on</a>; <a href='SkBlendMode_Reference#SkBlendMode'>may</a> <a href='SkBlendMode_Reference#SkBlendMode'>be</a> <a href='SkBlendMode_Reference#SkBlendMode'>nullptr</a></td>
+ <td><a href='undocumented#SkColorFilter'>SkColorFilter</a>, <a href='undocumented#SkImageFilter'>SkImageFilter</a>, <a href='SkBlendMode_Reference#SkBlendMode'>SkBlendMode</a>, and so on; may be nullptr</td>
</tr>
</table>
@@ -6237,38 +6237,38 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-void <a href='#SkCanvas_drawAtlas'>drawAtlas</a>(<a href='#SkCanvas_drawAtlas'>const</a> <a href='undocumented#sk_sp'>sk_sp</a>&<a href='undocumented#sk_sp'>lt</a>;<a href='SkImage_Reference#SkImage'>SkImage</a>&<a href='SkImage_Reference#SkImage'>gt</a>;& <a href='SkImage_Reference#SkImage'>atlas</a>, <a href='SkImage_Reference#SkImage'>const</a> <a href='undocumented#SkRSXform'>SkRSXform</a> <a href='undocumented#SkRSXform'>xform</a>[], <a href='undocumented#SkRSXform'>const</a> <a href='SkRect_Reference#SkRect'>SkRect</a> <a href='SkRect_Reference#SkRect'>tex</a>[], <a href='SkRect_Reference#SkRect'>int</a> <a href='SkRect_Reference#SkRect'>count</a>,
- <a href='SkRect_Reference#SkRect'>const</a> <a href='SkRect_Reference#SkRect'>SkRect</a>* <a href='SkRect_Reference#SkRect'>cullRect</a>, <a href='SkRect_Reference#SkRect'>const</a> <a href='SkPaint_Reference#SkPaint'>SkPaint</a>* <a href='SkPaint_Reference#Paint'>paint</a>)
+void <a href='#SkCanvas_drawAtlas'>drawAtlas</a>(const <a href='undocumented#sk_sp'>sk_sp</a><<a href='SkImage_Reference#SkImage'>SkImage</a>>& atlas, const <a href='undocumented#SkRSXform'>SkRSXform</a> xform[], const <a href='SkRect_Reference#SkRect'>SkRect</a> tex[], int count,
+ const <a href='SkRect_Reference#SkRect'>SkRect</a>* cullRect, const <a href='SkPaint_Reference#SkPaint'>SkPaint</a>* <a href='SkPaint_Reference#Paint'>paint</a>)
</pre>
-Draws a set of <a href='undocumented#Sprite'>sprites</a> <a href='undocumented#Sprite'>from</a> <a href='#SkCanvas_drawAtlas_4_atlas'>atlas</a>, <a href='#SkCanvas_drawAtlas_4_atlas'>using</a> <a href='#SkCanvas_drawAtlas_4_atlas'>clip</a>, <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a>, <a href='SkMatrix_Reference#SkMatrix'>and</a> <a href='SkMatrix_Reference#SkMatrix'>optional</a> <a href='SkPaint_Reference#SkPaint'>SkPaint</a> <a href='#SkCanvas_drawAtlas_4_paint'>paint</a>.
-<a href='#SkCanvas_drawAtlas_4_paint'>paint</a> <a href='#SkCanvas_drawAtlas_4_paint'>uses</a> <a href='SkPaint_Reference#Anti_Alias'>anti-alias</a>, <a href='SkColor_Reference#Alpha'>alpha</a>, <a href='undocumented#SkColorFilter'>SkColorFilter</a>, <a href='undocumented#SkImageFilter'>SkImageFilter</a>, <a href='undocumented#SkImageFilter'>and</a> <a href='SkBlendMode_Reference#SkBlendMode'>SkBlendMode</a>
-to draw, if present. For each entry in the array, <a href='SkRect_Reference#SkRect'>SkRect</a> <a href='#SkCanvas_drawAtlas_4_tex'>tex</a> <a href='#SkCanvas_drawAtlas_4_tex'>locates</a> <a href='undocumented#Sprite'>sprite</a> <a href='undocumented#Sprite'>in</a>
-<a href='#SkCanvas_drawAtlas_4_atlas'>atlas</a>, <a href='#SkCanvas_drawAtlas_4_atlas'>and</a> <a href='undocumented#SkRSXform'>SkRSXform</a> <a href='#SkCanvas_drawAtlas_4_xform'>xform</a> <a href='#SkCanvas_drawAtlas_4_xform'>transforms</a> <a href='#SkCanvas_drawAtlas_4_xform'>it</a> <a href='#SkCanvas_drawAtlas_4_xform'>into</a> <a href='#SkCanvas_drawAtlas_4_xform'>destination</a> <a href='#SkCanvas_drawAtlas_4_xform'>space</a>.
+Draws a set of <a href='undocumented#Sprite'>sprites</a> from <a href='#SkCanvas_drawAtlas_4_atlas'>atlas</a>, using clip, <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a>, and optional <a href='SkPaint_Reference#SkPaint'>SkPaint</a> <a href='#SkCanvas_drawAtlas_4_paint'>paint</a>.
+<a href='#SkCanvas_drawAtlas_4_paint'>paint</a> uses <a href='SkPaint_Reference#Anti_Alias'>anti-alias</a>, <a href='SkColor_Reference#Alpha'>alpha</a>, <a href='undocumented#SkColorFilter'>SkColorFilter</a>, <a href='undocumented#SkImageFilter'>SkImageFilter</a>, and <a href='SkBlendMode_Reference#SkBlendMode'>SkBlendMode</a>
+to draw, if present. For each entry in the array, <a href='SkRect_Reference#SkRect'>SkRect</a> <a href='#SkCanvas_drawAtlas_4_tex'>tex</a> locates <a href='undocumented#Sprite'>sprite</a> in
+<a href='#SkCanvas_drawAtlas_4_atlas'>atlas</a>, and <a href='undocumented#SkRSXform'>SkRSXform</a> <a href='#SkCanvas_drawAtlas_4_xform'>xform</a> transforms it into destination space.
-<a href='#SkCanvas_drawAtlas_4_xform'>xform</a> <a href='#SkCanvas_drawAtlas_4_xform'>and</a> <a href='undocumented#Text'>text</a> <a href='undocumented#Text'>must</a> <a href='undocumented#Text'>contain</a> <a href='#SkCanvas_drawAtlas_4_count'>count</a> <a href='#SkCanvas_drawAtlas_4_count'>entries</a>.
-Optional <a href='#SkCanvas_drawAtlas_4_cullRect'>cullRect</a> <a href='#SkCanvas_drawAtlas_4_cullRect'>is</a> <a href='#SkCanvas_drawAtlas_4_cullRect'>a</a> <a href='#SkCanvas_drawAtlas_4_cullRect'>conservative</a> <a href='#SkCanvas_drawAtlas_4_cullRect'>bounds</a> <a href='#SkCanvas_drawAtlas_4_cullRect'>of</a> <a href='#SkCanvas_drawAtlas_4_cullRect'>all</a> <a href='#SkCanvas_drawAtlas_4_cullRect'>transformed</a> <a href='undocumented#Sprite'>sprites</a>.
-If <a href='#SkCanvas_drawAtlas_4_cullRect'>cullRect</a> <a href='#SkCanvas_drawAtlas_4_cullRect'>is</a> <a href='#SkCanvas_drawAtlas_4_cullRect'>outside</a> <a href='#SkCanvas_drawAtlas_4_cullRect'>of</a> <a href='#SkCanvas_drawAtlas_4_cullRect'>clip</a>, <a href='SkCanvas_Reference#Canvas'>canvas</a> <a href='SkCanvas_Reference#Canvas'>can</a> <a href='SkCanvas_Reference#Canvas'>skip</a> <a href='SkCanvas_Reference#Canvas'>drawing</a>.
+<a href='#SkCanvas_drawAtlas_4_xform'>xform</a> and <a href='undocumented#Text'>text</a> must contain <a href='#SkCanvas_drawAtlas_4_count'>count</a> entries.
+Optional <a href='#SkCanvas_drawAtlas_4_cullRect'>cullRect</a> is a conservative bounds of all transformed <a href='undocumented#Sprite'>sprites</a>.
+If <a href='#SkCanvas_drawAtlas_4_cullRect'>cullRect</a> is outside of clip, <a href='SkCanvas_Reference#Canvas'>canvas</a> can skip drawing.
### Parameters
<table> <tr> <td><a name='SkCanvas_drawAtlas_4_atlas'><code><strong>atlas</strong></code></a></td>
- <td><a href='SkImage_Reference#SkImage'>SkImage</a> <a href='SkImage_Reference#SkImage'>containing</a> <a href='undocumented#Sprite'>sprites</a></td>
+ <td><a href='SkImage_Reference#SkImage'>SkImage</a> containing <a href='undocumented#Sprite'>sprites</a></td>
</tr>
<tr> <td><a name='SkCanvas_drawAtlas_4_xform'><code><strong>xform</strong></code></a></td>
- <td><a href='undocumented#SkRSXform'>SkRSXform</a> <a href='undocumented#SkRSXform'>mappings</a> <a href='undocumented#SkRSXform'>for</a> <a href='undocumented#Sprite'>sprites</a> <a href='undocumented#Sprite'>in</a> <a href='#SkCanvas_drawAtlas_4_atlas'>atlas</a></td>
+ <td><a href='undocumented#SkRSXform'>SkRSXform</a> mappings for <a href='undocumented#Sprite'>sprites</a> in <a href='#SkCanvas_drawAtlas_4_atlas'>atlas</a></td>
</tr>
<tr> <td><a name='SkCanvas_drawAtlas_4_tex'><code><strong>tex</strong></code></a></td>
- <td><a href='SkRect_Reference#SkRect'>SkRect</a> <a href='SkRect_Reference#SkRect'>locations</a> <a href='SkRect_Reference#SkRect'>of</a> <a href='undocumented#Sprite'>sprites</a> <a href='undocumented#Sprite'>in</a> <a href='#SkCanvas_drawAtlas_4_atlas'>atlas</a></td>
+ <td><a href='SkRect_Reference#SkRect'>SkRect</a> locations of <a href='undocumented#Sprite'>sprites</a> in <a href='#SkCanvas_drawAtlas_4_atlas'>atlas</a></td>
</tr>
<tr> <td><a name='SkCanvas_drawAtlas_4_count'><code><strong>count</strong></code></a></td>
- <td>number of <a href='undocumented#Sprite'>sprites</a> <a href='undocumented#Sprite'>to</a> <a href='undocumented#Sprite'>draw</a></td>
+ <td>number of <a href='undocumented#Sprite'>sprites</a> to draw</td>
</tr>
<tr> <td><a name='SkCanvas_drawAtlas_4_cullRect'><code><strong>cullRect</strong></code></a></td>
- <td>bounds of transformed <a href='undocumented#Sprite'>sprites</a> <a href='undocumented#Sprite'>for</a> <a href='undocumented#Sprite'>efficient</a> <a href='undocumented#Sprite'>clipping</a>; <a href='undocumented#Sprite'>may</a> <a href='undocumented#Sprite'>be</a> <a href='undocumented#Sprite'>nullptr</a></td>
+ <td>bounds of transformed <a href='undocumented#Sprite'>sprites</a> for efficient clipping; may be nullptr</td>
</tr>
<tr> <td><a name='SkCanvas_drawAtlas_4_paint'><code><strong>paint</strong></code></a></td>
- <td><a href='undocumented#SkColorFilter'>SkColorFilter</a>, <a href='undocumented#SkImageFilter'>SkImageFilter</a>, <a href='SkBlendMode_Reference#SkBlendMode'>SkBlendMode</a>, <a href='SkBlendMode_Reference#SkBlendMode'>and</a> <a href='SkBlendMode_Reference#SkBlendMode'>so</a> <a href='SkBlendMode_Reference#SkBlendMode'>on</a>; <a href='SkBlendMode_Reference#SkBlendMode'>may</a> <a href='SkBlendMode_Reference#SkBlendMode'>be</a> <a href='SkBlendMode_Reference#SkBlendMode'>nullptr</a></td>
+ <td><a href='undocumented#SkColorFilter'>SkColorFilter</a>, <a href='undocumented#SkImageFilter'>SkImageFilter</a>, <a href='SkBlendMode_Reference#SkBlendMode'>SkBlendMode</a>, and so on; may be nullptr</td>
</tr>
</table>
@@ -6285,16 +6285,16 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-void <a href='#SkCanvas_drawDrawable'>drawDrawable</a>(<a href='undocumented#SkDrawable'>SkDrawable</a>* <a href='undocumented#Drawable'>drawable</a>, <a href='undocumented#Drawable'>const</a> <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a>* <a href='SkMatrix_Reference#Matrix'>matrix</a> = <a href='SkMatrix_Reference#Matrix'>nullptr</a>)
+void <a href='#SkCanvas_drawDrawable'>drawDrawable</a>(<a href='undocumented#SkDrawable'>SkDrawable</a>* <a href='undocumented#Drawable'>drawable</a>, const <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a>* <a href='SkMatrix_Reference#Matrix'>matrix</a> = nullptr)
</pre>
-Draws <a href='undocumented#SkDrawable'>SkDrawable</a> <a href='#SkCanvas_drawDrawable_drawable'>drawable</a> <a href='#SkCanvas_drawDrawable_drawable'>using</a> <a href='#SkCanvas_drawDrawable_drawable'>clip</a> <a href='#SkCanvas_drawDrawable_drawable'>and</a> <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a>, <a href='SkMatrix_Reference#SkMatrix'>concatenated</a> <a href='SkMatrix_Reference#SkMatrix'>with</a>
+Draws <a href='undocumented#SkDrawable'>SkDrawable</a> <a href='#SkCanvas_drawDrawable_drawable'>drawable</a> using clip and <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a>, concatenated with
optional <a href='#SkCanvas_drawDrawable_matrix'>matrix</a>.
-If <a href='SkCanvas_Reference#SkCanvas'>SkCanvas</a> <a href='SkCanvas_Reference#SkCanvas'>has</a> <a href='SkCanvas_Reference#SkCanvas'>an</a> <a href='SkCanvas_Reference#SkCanvas'>asynchronous</a> <a href='SkCanvas_Reference#SkCanvas'>implementation</a>, <a href='SkCanvas_Reference#SkCanvas'>as</a> <a href='SkCanvas_Reference#SkCanvas'>is</a> <a href='SkCanvas_Reference#SkCanvas'>the</a> <a href='SkCanvas_Reference#SkCanvas'>case</a>
-when it is recording into <a href='SkPicture_Reference#SkPicture'>SkPicture</a>, <a href='SkPicture_Reference#SkPicture'>then</a> <a href='#SkCanvas_drawDrawable_drawable'>drawable</a> <a href='#SkCanvas_drawDrawable_drawable'>will</a> <a href='#SkCanvas_drawDrawable_drawable'>be</a> <a href='#SkCanvas_drawDrawable_drawable'>referenced</a>,
-so that <a href='undocumented#SkDrawable'>SkDrawable</a>::<a href='#SkDrawable_draw'>draw()</a> <a href='#SkDrawable_draw'>can</a> <a href='#SkDrawable_draw'>be</a> <a href='#SkDrawable_draw'>called</a> <a href='#SkDrawable_draw'>when</a> <a href='#SkDrawable_draw'>the</a> <a href='#SkDrawable_draw'>operation</a> <a href='#SkDrawable_draw'>is</a> <a href='#SkDrawable_draw'>finalized</a>. <a href='#SkDrawable_draw'>To</a> <a href='#SkDrawable_draw'>force</a>
-immediate drawing, call <a href='undocumented#SkDrawable'>SkDrawable</a>::<a href='#SkDrawable_draw'>draw()</a> <a href='#SkDrawable_draw'>instead</a>.
+If <a href='SkCanvas_Reference#SkCanvas'>SkCanvas</a> has an asynchronous implementation, as is the case
+when it is recording into <a href='SkPicture_Reference#SkPicture'>SkPicture</a>, then <a href='#SkCanvas_drawDrawable_drawable'>drawable</a> will be referenced,
+so that <a href='undocumented#SkDrawable'>SkDrawable</a>::<a href='#SkDrawable_draw'>draw()</a> can be called when the operation is finalized. To force
+immediate drawing, call <a href='undocumented#SkDrawable'>SkDrawable</a>::<a href='#SkDrawable_draw'>draw()</a> instead.
### Parameters
@@ -6319,15 +6319,15 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-void <a href='#SkCanvas_drawDrawable'>drawDrawable</a>(<a href='undocumented#SkDrawable'>SkDrawable</a>* <a href='undocumented#Drawable'>drawable</a>, <a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>x</a>, <a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>y</a>)
+void <a href='#SkCanvas_drawDrawable'>drawDrawable</a>(<a href='undocumented#SkDrawable'>SkDrawable</a>* <a href='undocumented#Drawable'>drawable</a>, <a href='undocumented#SkScalar'>SkScalar</a> x, <a href='undocumented#SkScalar'>SkScalar</a> y)
</pre>
-Draws <a href='undocumented#SkDrawable'>SkDrawable</a> <a href='#SkCanvas_drawDrawable_2_drawable'>drawable</a> <a href='#SkCanvas_drawDrawable_2_drawable'>using</a> <a href='#SkCanvas_drawDrawable_2_drawable'>clip</a> <a href='#SkCanvas_drawDrawable_2_drawable'>and</a> <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a>, <a href='SkMatrix_Reference#SkMatrix'>offset</a> <a href='SkMatrix_Reference#SkMatrix'>by</a> (<a href='#SkCanvas_drawDrawable_2_x'>x</a>, <a href='#SkCanvas_drawDrawable_2_y'>y</a>).
+Draws <a href='undocumented#SkDrawable'>SkDrawable</a> <a href='#SkCanvas_drawDrawable_2_drawable'>drawable</a> using clip and <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a>, offset by (<a href='#SkCanvas_drawDrawable_2_x'>x</a>, <a href='#SkCanvas_drawDrawable_2_y'>y</a>).
-If <a href='SkCanvas_Reference#SkCanvas'>SkCanvas</a> <a href='SkCanvas_Reference#SkCanvas'>has</a> <a href='SkCanvas_Reference#SkCanvas'>an</a> <a href='SkCanvas_Reference#SkCanvas'>asynchronous</a> <a href='SkCanvas_Reference#SkCanvas'>implementation</a>, <a href='SkCanvas_Reference#SkCanvas'>as</a> <a href='SkCanvas_Reference#SkCanvas'>is</a> <a href='SkCanvas_Reference#SkCanvas'>the</a> <a href='SkCanvas_Reference#SkCanvas'>case</a>
-when it is recording into <a href='SkPicture_Reference#SkPicture'>SkPicture</a>, <a href='SkPicture_Reference#SkPicture'>then</a> <a href='#SkCanvas_drawDrawable_2_drawable'>drawable</a> <a href='#SkCanvas_drawDrawable_2_drawable'>will</a> <a href='#SkCanvas_drawDrawable_2_drawable'>be</a> <a href='#SkCanvas_drawDrawable_2_drawable'>referenced</a>,
-so that <a href='undocumented#SkDrawable'>SkDrawable</a>::<a href='#SkDrawable_draw'>draw()</a> <a href='#SkDrawable_draw'>can</a> <a href='#SkDrawable_draw'>be</a> <a href='#SkDrawable_draw'>called</a> <a href='#SkDrawable_draw'>when</a> <a href='#SkDrawable_draw'>the</a> <a href='#SkDrawable_draw'>operation</a> <a href='#SkDrawable_draw'>is</a> <a href='#SkDrawable_draw'>finalized</a>. <a href='#SkDrawable_draw'>To</a> <a href='#SkDrawable_draw'>force</a>
-immediate drawing, call <a href='undocumented#SkDrawable'>SkDrawable</a>::<a href='#SkDrawable_draw'>draw()</a> <a href='#SkDrawable_draw'>instead</a>.
+If <a href='SkCanvas_Reference#SkCanvas'>SkCanvas</a> has an asynchronous implementation, as is the case
+when it is recording into <a href='SkPicture_Reference#SkPicture'>SkPicture</a>, then <a href='#SkCanvas_drawDrawable_2_drawable'>drawable</a> will be referenced,
+so that <a href='undocumented#SkDrawable'>SkDrawable</a>::<a href='#SkDrawable_draw'>draw()</a> can be called when the operation is finalized. To force
+immediate drawing, call <a href='undocumented#SkDrawable'>SkDrawable</a>::<a href='#SkDrawable_draw'>draw()</a> instead.
### Parameters
@@ -6335,10 +6335,10 @@
<td>custom struct encapsulating drawing commands</td>
</tr>
<tr> <td><a name='SkCanvas_drawDrawable_2_x'><code><strong>x</strong></code></a></td>
- <td>offset into <a href='SkCanvas_Reference#SkCanvas'>SkCanvas</a> <a href='SkCanvas_Reference#SkCanvas'>writable</a> <a href='SkCanvas_Reference#SkCanvas'>pixels</a> <a href='SkCanvas_Reference#SkCanvas'>on</a> <a href='SkCanvas_Reference#SkCanvas'>x-axis</a></td>
+ <td>offset into <a href='SkCanvas_Reference#SkCanvas'>SkCanvas</a> writable pixels on x-axis</td>
</tr>
<tr> <td><a name='SkCanvas_drawDrawable_2_y'><code><strong>y</strong></code></a></td>
- <td>offset into <a href='SkCanvas_Reference#SkCanvas'>SkCanvas</a> <a href='SkCanvas_Reference#SkCanvas'>writable</a> <a href='SkCanvas_Reference#SkCanvas'>pixels</a> <a href='SkCanvas_Reference#SkCanvas'>on</a> <a href='SkCanvas_Reference#SkCanvas'>y-axis</a></td>
+ <td>offset into <a href='SkCanvas_Reference#SkCanvas'>SkCanvas</a> writable pixels on y-axis</td>
</tr>
</table>
@@ -6355,25 +6355,25 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-void <a href='#SkCanvas_drawAnnotation'>drawAnnotation</a>(<a href='#SkCanvas_drawAnnotation'>const</a> <a href='SkRect_Reference#SkRect'>SkRect</a>& <a href='SkRect_Reference#Rect'>rect</a>, <a href='SkRect_Reference#Rect'>const</a> <a href='SkRect_Reference#Rect'>char</a> <a href='SkRect_Reference#Rect'>key</a>[], <a href='undocumented#SkData'>SkData</a>* <a href='undocumented#SkData'>value</a>)
+void <a href='#SkCanvas_drawAnnotation'>drawAnnotation</a>(const <a href='SkRect_Reference#SkRect'>SkRect</a>& <a href='SkRect_Reference#Rect'>rect</a>, const char key[], <a href='undocumented#SkData'>SkData</a>* value)
</pre>
-Associates <a href='SkRect_Reference#SkRect'>SkRect</a> <a href='SkRect_Reference#SkRect'>on</a> <a href='SkCanvas_Reference#SkCanvas'>SkCanvas</a> <a href='SkCanvas_Reference#SkCanvas'>with</a> <a href='SkCanvas_Reference#SkCanvas'>an</a> <a href='SkCanvas_Reference#SkCanvas'>annotation</a>; <a href='SkCanvas_Reference#SkCanvas'>a</a> <a href='SkCanvas_Reference#SkCanvas'>key-value</a> <a href='SkCanvas_Reference#SkCanvas'>pair</a>, <a href='SkCanvas_Reference#SkCanvas'>where</a> <a href='SkCanvas_Reference#SkCanvas'>the</a> <a href='#SkCanvas_drawAnnotation_key'>key</a> <a href='#SkCanvas_drawAnnotation_key'>is</a>
-a null-terminated UTF-8 <a href='undocumented#String'>string</a>, <a href='undocumented#String'>and</a> <a href='undocumented#String'>optional</a> <a href='#SkCanvas_drawAnnotation_value'>value</a> <a href='#SkCanvas_drawAnnotation_value'>is</a> <a href='#SkCanvas_drawAnnotation_value'>stored</a> <a href='#SkCanvas_drawAnnotation_value'>as</a> <a href='undocumented#SkData'>SkData</a>.
+Associates <a href='SkRect_Reference#SkRect'>SkRect</a> on <a href='SkCanvas_Reference#SkCanvas'>SkCanvas</a> with an annotation; a key-value pair, where the <a href='#SkCanvas_drawAnnotation_key'>key</a> is
+a null-terminated UTF-8 <a href='undocumented#String'>string</a>, and optional <a href='#SkCanvas_drawAnnotation_value'>value</a> is stored as <a href='undocumented#SkData'>SkData</a>.
-Only some <a href='SkCanvas_Reference#Canvas'>canvas</a> <a href='SkCanvas_Reference#Canvas'>implementations</a>, <a href='SkCanvas_Reference#Canvas'>such</a> <a href='SkCanvas_Reference#Canvas'>as</a> <a href='SkCanvas_Reference#Canvas'>recording</a> <a href='SkCanvas_Reference#Canvas'>to</a> <a href='SkPicture_Reference#SkPicture'>SkPicture</a>, <a href='SkPicture_Reference#SkPicture'>or</a> <a href='SkPicture_Reference#SkPicture'>drawing</a> <a href='SkPicture_Reference#SkPicture'>to</a>
-<a href='undocumented#Document_PDF'>document PDF</a>, <a href='undocumented#Document'>use</a> <a href='undocumented#Document'>annotations</a>.
+Only some <a href='SkCanvas_Reference#Canvas'>canvas</a> implementations, such as recording to <a href='SkPicture_Reference#SkPicture'>SkPicture</a>, or drawing to
+<a href='undocumented#Document_PDF'>document PDF</a>, use annotations.
### Parameters
<table> <tr> <td><a name='SkCanvas_drawAnnotation_rect'><code><strong>rect</strong></code></a></td>
- <td><a href='SkRect_Reference#SkRect'>SkRect</a> <a href='SkRect_Reference#SkRect'>extent</a> <a href='SkRect_Reference#SkRect'>of</a> <a href='SkCanvas_Reference#Canvas'>canvas</a> <a href='SkCanvas_Reference#Canvas'>to</a> <a href='SkCanvas_Reference#Canvas'>annotate</a></td>
+ <td><a href='SkRect_Reference#SkRect'>SkRect</a> extent of <a href='SkCanvas_Reference#Canvas'>canvas</a> to annotate</td>
</tr>
<tr> <td><a name='SkCanvas_drawAnnotation_key'><code><strong>key</strong></code></a></td>
- <td><a href='undocumented#String'>string</a> <a href='undocumented#String'>used</a> <a href='undocumented#String'>for</a> <a href='undocumented#String'>lookup</a></td>
+ <td><a href='undocumented#String'>string</a> used for lookup</td>
</tr>
<tr> <td><a name='SkCanvas_drawAnnotation_value'><code><strong>value</strong></code></a></td>
- <td><a href='undocumented#Data'>data</a> <a href='undocumented#Data'>holding</a> <a href='#SkCanvas_drawAnnotation_value'>value</a> <a href='#SkCanvas_drawAnnotation_value'>stored</a> <a href='#SkCanvas_drawAnnotation_value'>in</a> <a href='#SkCanvas_drawAnnotation_value'>annotation</a></td>
+ <td><a href='undocumented#Data'>data</a> holding <a href='#SkCanvas_drawAnnotation_value'>value</a> stored in annotation</td>
</tr>
</table>
@@ -6390,25 +6390,25 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-void <a href='#SkCanvas_drawAnnotation'>drawAnnotation</a>(<a href='#SkCanvas_drawAnnotation'>const</a> <a href='SkRect_Reference#SkRect'>SkRect</a>& <a href='SkRect_Reference#Rect'>rect</a>, <a href='SkRect_Reference#Rect'>const</a> <a href='SkRect_Reference#Rect'>char</a> <a href='SkRect_Reference#Rect'>key</a>[], <a href='SkRect_Reference#Rect'>const</a> <a href='undocumented#sk_sp'>sk_sp</a>&<a href='undocumented#sk_sp'>lt</a>;<a href='undocumented#SkData'>SkData</a>&<a href='undocumented#SkData'>gt</a>;& <a href='undocumented#SkData'>value</a>)
+void <a href='#SkCanvas_drawAnnotation'>drawAnnotation</a>(const <a href='SkRect_Reference#SkRect'>SkRect</a>& <a href='SkRect_Reference#Rect'>rect</a>, const char key[], const <a href='undocumented#sk_sp'>sk_sp</a><<a href='undocumented#SkData'>SkData</a>>& value)
</pre>
-Associates <a href='SkRect_Reference#SkRect'>SkRect</a> <a href='SkRect_Reference#SkRect'>on</a> <a href='SkCanvas_Reference#SkCanvas'>SkCanvas</a> <a href='SkCanvas_Reference#SkCanvas'>when</a> <a href='SkCanvas_Reference#SkCanvas'>an</a> <a href='SkCanvas_Reference#SkCanvas'>annotation</a>; <a href='SkCanvas_Reference#SkCanvas'>a</a> <a href='SkCanvas_Reference#SkCanvas'>key-value</a> <a href='SkCanvas_Reference#SkCanvas'>pair</a>, <a href='SkCanvas_Reference#SkCanvas'>where</a> <a href='SkCanvas_Reference#SkCanvas'>the</a> <a href='#SkCanvas_drawAnnotation_2_key'>key</a> <a href='#SkCanvas_drawAnnotation_2_key'>is</a>
-a null-terminated UTF-8 <a href='undocumented#String'>string</a>, <a href='undocumented#String'>and</a> <a href='undocumented#String'>optional</a> <a href='#SkCanvas_drawAnnotation_2_value'>value</a> <a href='#SkCanvas_drawAnnotation_2_value'>is</a> <a href='#SkCanvas_drawAnnotation_2_value'>stored</a> <a href='#SkCanvas_drawAnnotation_2_value'>as</a> <a href='undocumented#SkData'>SkData</a>.
+Associates <a href='SkRect_Reference#SkRect'>SkRect</a> on <a href='SkCanvas_Reference#SkCanvas'>SkCanvas</a> when an annotation; a key-value pair, where the <a href='#SkCanvas_drawAnnotation_2_key'>key</a> is
+a null-terminated UTF-8 <a href='undocumented#String'>string</a>, and optional <a href='#SkCanvas_drawAnnotation_2_value'>value</a> is stored as <a href='undocumented#SkData'>SkData</a>.
-Only some <a href='SkCanvas_Reference#Canvas'>canvas</a> <a href='SkCanvas_Reference#Canvas'>implementations</a>, <a href='SkCanvas_Reference#Canvas'>such</a> <a href='SkCanvas_Reference#Canvas'>as</a> <a href='SkCanvas_Reference#Canvas'>recording</a> <a href='SkCanvas_Reference#Canvas'>to</a> <a href='SkPicture_Reference#SkPicture'>SkPicture</a>, <a href='SkPicture_Reference#SkPicture'>or</a> <a href='SkPicture_Reference#SkPicture'>drawing</a> <a href='SkPicture_Reference#SkPicture'>to</a>
-<a href='undocumented#Document_PDF'>document PDF</a>, <a href='undocumented#Document'>use</a> <a href='undocumented#Document'>annotations</a>.
+Only some <a href='SkCanvas_Reference#Canvas'>canvas</a> implementations, such as recording to <a href='SkPicture_Reference#SkPicture'>SkPicture</a>, or drawing to
+<a href='undocumented#Document_PDF'>document PDF</a>, use annotations.
### Parameters
<table> <tr> <td><a name='SkCanvas_drawAnnotation_2_rect'><code><strong>rect</strong></code></a></td>
- <td><a href='SkRect_Reference#SkRect'>SkRect</a> <a href='SkRect_Reference#SkRect'>extent</a> <a href='SkRect_Reference#SkRect'>of</a> <a href='SkCanvas_Reference#Canvas'>canvas</a> <a href='SkCanvas_Reference#Canvas'>to</a> <a href='SkCanvas_Reference#Canvas'>annotate</a></td>
+ <td><a href='SkRect_Reference#SkRect'>SkRect</a> extent of <a href='SkCanvas_Reference#Canvas'>canvas</a> to annotate</td>
</tr>
<tr> <td><a name='SkCanvas_drawAnnotation_2_key'><code><strong>key</strong></code></a></td>
- <td><a href='undocumented#String'>string</a> <a href='undocumented#String'>used</a> <a href='undocumented#String'>for</a> <a href='undocumented#String'>lookup</a></td>
+ <td><a href='undocumented#String'>string</a> used for lookup</td>
</tr>
<tr> <td><a name='SkCanvas_drawAnnotation_2_value'><code><strong>value</strong></code></a></td>
- <td><a href='undocumented#Data'>data</a> <a href='undocumented#Data'>holding</a> <a href='#SkCanvas_drawAnnotation_2_value'>value</a> <a href='#SkCanvas_drawAnnotation_2_value'>stored</a> <a href='#SkCanvas_drawAnnotation_2_value'>in</a> <a href='#SkCanvas_drawAnnotation_2_value'>annotation</a></td>
+ <td><a href='undocumented#Data'>data</a> holding <a href='#SkCanvas_drawAnnotation_2_value'>value</a> stored in annotation</td>
</tr>
</table>
@@ -6425,7 +6425,7 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-virtual bool <a href='#SkCanvas_isClipEmpty'>isClipEmpty</a>() <a href='#SkCanvas_isClipEmpty'>const</a>
+virtual bool <a href='#SkCanvas_isClipEmpty'>isClipEmpty</a>() const
</pre>
Returns true if clip is empty; that is, nothing will draw.
@@ -6460,15 +6460,15 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-virtual bool <a href='#SkCanvas_isClipRect'>isClipRect</a>() <a href='#SkCanvas_isClipRect'>const</a>
+virtual bool <a href='#SkCanvas_isClipRect'>isClipRect</a>() const
</pre>
-Returns true if clip is <a href='SkRect_Reference#SkRect'>SkRect</a> <a href='SkRect_Reference#SkRect'>and</a> <a href='SkRect_Reference#SkRect'>not</a> <a href='SkRect_Reference#SkRect'>empty</a>.
+Returns true if clip is <a href='SkRect_Reference#SkRect'>SkRect</a> and not empty.
Returns false if the clip is empty, or if it is not <a href='SkRect_Reference#SkRect'>SkRect</a>.
### Return Value
-true if clip is <a href='SkRect_Reference#SkRect'>SkRect</a> <a href='SkRect_Reference#SkRect'>and</a> <a href='SkRect_Reference#SkRect'>not</a> <a href='SkRect_Reference#SkRect'>empty</a>
+true if clip is <a href='SkRect_Reference#SkRect'>SkRect</a> and not empty
### Example
diff --git a/site/user/api/SkColor4f_Reference.md b/site/user/api/SkColor4f_Reference.md
index a3d12aa..bef38e7 100644
--- a/site/user/api/SkColor4f_Reference.md
+++ b/site/user/api/SkColor4f_Reference.md
@@ -12,44 +12,44 @@
<pre style="padding: 1em 1em 1em 1em;width: 62.5em; background-color: #f0f0f0">
struct <a href='SkColor4f_Reference#SkRGBA4f'>SkRGBA4f</a> {
- <a href='SkColor4f_Reference#SkRGBA4f'>float</a> <a href='#SkRGBA4f_fR'>fR</a>;
- <a href='#SkRGBA4f_fR'>float</a> <a href='#SkRGBA4f_fG'>fG</a>;
- <a href='#SkRGBA4f_fG'>float</a> <a href='#SkRGBA4f_fB'>fB</a>;
- <a href='#SkRGBA4f_fB'>float</a> <a href='#SkRGBA4f_fA'>fA</a>;
+ float <a href='#SkRGBA4f_fR'>fR</a>;
+ float <a href='#SkRGBA4f_fG'>fG</a>;
+ float <a href='#SkRGBA4f_fB'>fB</a>;
+ float <a href='#SkRGBA4f_fA'>fA</a>;
- <a href='#SkRGBA4f_fA'>bool</a> <a href='#SkRGBA4f_fA'>operator</a>==(<a href='#SkRGBA4f_fA'>const</a> <a href='SkColor4f_Reference#SkRGBA4f'>SkRGBA4f</a>& <a href='SkColor4f_Reference#SkRGBA4f'>other</a>) <a href='SkColor4f_Reference#SkRGBA4f'>const</a>;
- <a href='SkColor4f_Reference#SkRGBA4f'>bool</a> <a href='SkColor4f_Reference#SkRGBA4f'>operator</a>!=(<a href='SkColor4f_Reference#SkRGBA4f'>const</a> <a href='SkColor4f_Reference#SkRGBA4f'>SkRGBA4f</a>& <a href='SkColor4f_Reference#SkRGBA4f'>other</a>) <a href='SkColor4f_Reference#SkRGBA4f'>const</a>;
- <a href='SkColor4f_Reference#SkRGBA4f'>SkRGBA4f</a> <a href='SkColor4f_Reference#SkRGBA4f'>operator</a>*(<a href='SkColor4f_Reference#SkRGBA4f'>float</a> <a href='SkColor4f_Reference#SkRGBA4f'>scale</a>) <a href='SkColor4f_Reference#SkRGBA4f'>const</a>;
- <a href='SkColor4f_Reference#SkRGBA4f'>SkRGBA4f</a> <a href='SkColor4f_Reference#SkRGBA4f'>operator</a>*(<a href='SkColor4f_Reference#SkRGBA4f'>const</a> <a href='SkColor4f_Reference#SkRGBA4f'>SkRGBA4f</a>& <a href='SkColor4f_Reference#SkRGBA4f'>scale</a>) <a href='SkColor4f_Reference#SkRGBA4f'>const</a>;
- <a href='SkColor4f_Reference#SkRGBA4f'>const</a> <a href='SkColor4f_Reference#SkRGBA4f'>float</a>* <a href='#SkRGBA4f_vec'>vec()</a> <a href='#SkRGBA4f_vec'>const</a>;
- <a href='#SkRGBA4f_vec'>float</a>* <a href='#SkRGBA4f_vec'>vec()</a>;
- <a href='#SkRGBA4f_vec'>float</a> <a href='#SkRGBA4f_vec'>operator</a>[](<a href='#SkRGBA4f_vec'>int</a> <a href='#SkRGBA4f_vec'>index</a>) <a href='#SkRGBA4f_vec'>const</a>;
- <a href='#SkRGBA4f_vec'>float</a>& <a href='#SkRGBA4f_vec'>operator</a>[](<a href='#SkRGBA4f_vec'>int</a> <a href='#SkRGBA4f_vec'>index</a>);
- <a href='#SkRGBA4f_vec'>bool</a> <a href='#SkRGBA4f_isOpaque'>isOpaque</a>() <a href='#SkRGBA4f_isOpaque'>const</a>;
- <a href='#SkRGBA4f_isOpaque'>static</a> <a href='SkColor4f_Reference#SkRGBA4f'>SkRGBA4f</a> <a href='#SkRGBA4f_FromColor'>FromColor</a>(<a href='SkColor_Reference#SkColor'>SkColor</a>);
- <a href='SkColor_Reference#SkColor'>SkColor</a> <a href='#SkRGBA4f_toSkColor'>toSkColor</a>() <a href='#SkRGBA4f_toSkColor'>const</a>;
- <a href='#SkRGBA4f_toSkColor'>static</a> <a href='SkColor4f_Reference#SkRGBA4f'>SkRGBA4f</a> <a href='#SkRGBA4f_FromPMColor'>FromPMColor</a>(<a href='SkColor_Reference#SkPMColor'>SkPMColor</a>);
- <a href='SkColor4f_Reference#SkRGBA4f'>SkRGBA4f</a><<a href='SkImageInfo_Reference#kPremul_SkAlphaType'>kPremul_SkAlphaType</a>> <a href='#SkRGBA4f_premul'>premul()</a> <a href='#SkRGBA4f_premul'>const</a>;
- <a href='SkColor4f_Reference#SkRGBA4f'>SkRGBA4f</a><<a href='SkImageInfo_Reference#kUnpremul_SkAlphaType'>kUnpremul_SkAlphaType</a>> <a href='#SkRGBA4f_unpremul'>unpremul()</a> <a href='#SkRGBA4f_unpremul'>const</a>;
- <a href='#SkRGBA4f_unpremul'>uint32_t</a> <a href='#SkRGBA4f_toBytes_RGBA'>toBytes_RGBA</a>() <a href='#SkRGBA4f_toBytes_RGBA'>const</a>;
- <a href='#SkRGBA4f_toBytes_RGBA'>static</a> <a href='SkColor4f_Reference#SkRGBA4f'>SkRGBA4f</a> <a href='#SkRGBA4f_FromBytes_RGBA'>FromBytes_RGBA</a>(<a href='#SkRGBA4f_FromBytes_RGBA'>uint32_t</a> <a href='SkColor_Reference#Color'>color</a>);
- <a href='SkColor4f_Reference#SkRGBA4f'>SkRGBA4f</a> <a href='#SkRGBA4f_makeOpaque'>makeOpaque</a>() <a href='#SkRGBA4f_makeOpaque'>const</a>;
+ bool operator==(const <a href='SkColor4f_Reference#SkRGBA4f'>SkRGBA4f</a>& other) const;
+ bool operator!=(const <a href='SkColor4f_Reference#SkRGBA4f'>SkRGBA4f</a>& other) const;
+ <a href='SkColor4f_Reference#SkRGBA4f'>SkRGBA4f</a> operator*(float scale) const;
+ <a href='SkColor4f_Reference#SkRGBA4f'>SkRGBA4f</a> operator*(const <a href='SkColor4f_Reference#SkRGBA4f'>SkRGBA4f</a>& scale) const;
+ const float* <a href='#SkRGBA4f_vec'>vec()</a> const;
+ float* <a href='#SkRGBA4f_vec'>vec()</a>;
+ float operator[](int index) const;
+ float& operator[](int index);
+ bool <a href='#SkRGBA4f_isOpaque'>isOpaque</a>() const;
+ static <a href='SkColor4f_Reference#SkRGBA4f'>SkRGBA4f</a> <a href='#SkRGBA4f_FromColor'>FromColor</a>(<a href='SkColor_Reference#SkColor'>SkColor</a>);
+ <a href='SkColor_Reference#SkColor'>SkColor</a> <a href='#SkRGBA4f_toSkColor'>toSkColor</a>() const;
+ static <a href='SkColor4f_Reference#SkRGBA4f'>SkRGBA4f</a> <a href='#SkRGBA4f_FromPMColor'>FromPMColor</a>(<a href='SkColor_Reference#SkPMColor'>SkPMColor</a>);
+ <a href='SkColor4f_Reference#SkRGBA4f'>SkRGBA4f</a><<a href='SkImageInfo_Reference#kPremul_SkAlphaType'>kPremul_SkAlphaType</a>> <a href='#SkRGBA4f_premul'>premul()</a> const;
+ <a href='SkColor4f_Reference#SkRGBA4f'>SkRGBA4f</a><<a href='SkImageInfo_Reference#kUnpremul_SkAlphaType'>kUnpremul_SkAlphaType</a>> <a href='#SkRGBA4f_unpremul'>unpremul()</a> const;
+ uint32_t <a href='#SkRGBA4f_toBytes_RGBA'>toBytes_RGBA</a>() const;
+ static <a href='SkColor4f_Reference#SkRGBA4f'>SkRGBA4f</a> <a href='#SkRGBA4f_FromBytes_RGBA'>FromBytes_RGBA</a>(uint32_t <a href='SkColor_Reference#Color'>color</a>);
+ <a href='SkColor4f_Reference#SkRGBA4f'>SkRGBA4f</a> <a href='#SkRGBA4f_makeOpaque'>makeOpaque</a>() const;
};
</pre>
-Each component is stored as a 32-bit single precision floating <a href='SkPoint_Reference#Point'>point</a> <a href='SkPoint_Reference#Point'>float</a> <a href='SkPoint_Reference#Point'>value</a>.
-<a href='SkPoint_Reference#Point'>All</a> <a href='SkPoint_Reference#Point'>values</a> <a href='SkPoint_Reference#Point'>are</a> <a href='SkPoint_Reference#Point'>allowed</a>, <a href='SkPoint_Reference#Point'>but</a> <a href='SkPoint_Reference#Point'>only</a> <a href='SkPoint_Reference#Point'>the</a> <a href='SkPoint_Reference#Point'>range</a> <a href='SkPoint_Reference#Point'>from</a> <a href='SkPoint_Reference#Point'>zero</a> <a href='SkPoint_Reference#Point'>to</a> <a href='SkPoint_Reference#Point'>one</a> <a href='SkPoint_Reference#Point'>is</a> <a href='SkPoint_Reference#Point'>meaningful</a>.
+Each component is stored as a 32-bit single precision floating <a href='SkPoint_Reference#Point'>point</a> float value.
+All values are allowed, but only the range from zero to one is meaningful.
-<a href='SkPoint_Reference#Point'>Components</a> <a href='SkPoint_Reference#Point'>are</a> <a href='SkPoint_Reference#Point'>independent</a> <a href='SkPoint_Reference#Point'>of</a> <a href='SkPoint_Reference#Point'>the</a> <a href='SkPoint_Reference#Point'>others</a> <a href='SkPoint_Reference#Point'>if</a> <a href='SkPoint_Reference#Point'>defined</a> <a href='SkPoint_Reference#Point'>with</a> <a href='SkImageInfo_Reference#kUnpremul_SkAlphaType'>kUnpremul_SkAlphaType</a>;
-<a href='#SkRGBA4f_fA'>fA</a> <a href='SkColor_Reference#Alpha'>Alpha</a> <a href='SkColor_Reference#Alpha'>is</a> <a href='SkColor_Reference#Alpha'>may</a> <a href='SkColor_Reference#Alpha'>be</a> <a href='SkColor_Reference#Alpha'>greater</a> <a href='SkColor_Reference#Alpha'>or</a> <a href='SkColor_Reference#Alpha'>smaller</a> <a href='SkColor_Reference#Alpha'>than</a> <a href='#SkRGBA4f_fG'>fG</a> <a href='#SkRGBA4f_fG'>green</a>, <a href='#SkRGBA4f_fB'>fB</a> <a href='#SkRGBA4f_fB'>blue</a>, <a href='#SkRGBA4f_fB'>or</a> <a href='#SkRGBA4f_fR'>fR</a> <a href='#SkRGBA4f_fR'>red</a>.
-<a href='SkColor4f_Reference#SkColor4f'>SkColor4f</a> <a href='SkColor4f_Reference#SkColor4f'>is</a> <a href='SkColor4f_Reference#SkColor4f'>shorthand</a> <a href='SkColor4f_Reference#SkColor4f'>for</a> <a href='undocumented#Unpremultiply'>Unpremultiplied</a> <a href='SkColor4f_Reference#SkRGBA4f'>SkRGBA4f</a>.
+Components are independent of the others if defined with <a href='SkImageInfo_Reference#kUnpremul_SkAlphaType'>kUnpremul_SkAlphaType</a>;
+<a href='#SkRGBA4f_fA'>fA</a> <a href='SkColor_Reference#Alpha'>Alpha</a> is may be greater or smaller than <a href='#SkRGBA4f_fG'>fG</a> green, <a href='#SkRGBA4f_fB'>fB</a> blue, or <a href='#SkRGBA4f_fR'>fR</a> red.
+<a href='SkColor4f_Reference#SkColor4f'>SkColor4f</a> is shorthand for <a href='undocumented#Unpremultiply'>Unpremultiplied</a> <a href='SkColor4f_Reference#SkRGBA4f'>SkRGBA4f</a>.
-<a href='SkColor4f_Reference#SkRGBA4f'>Components</a> <a href='SkColor4f_Reference#SkRGBA4f'>are</a> <a href='SkColor4f_Reference#SkRGBA4f'>connected</a> <a href='SkColor4f_Reference#SkRGBA4f'>if</a> <a href='SkColor4f_Reference#SkRGBA4f'>defined</a> <a href='SkColor4f_Reference#SkRGBA4f'>with</a> <a href='SkImageInfo_Reference#kPremul_SkAlphaType'>kPremul_SkAlphaType</a>;
-<a href='#SkRGBA4f_fA'>fA</a> <a href='SkColor_Reference#Alpha'>Alpha</a> <a href='SkColor_Reference#Alpha'>is</a> <a href='SkColor_Reference#Alpha'>equal</a> <a href='SkColor_Reference#Alpha'>to</a> <a href='SkColor_Reference#Alpha'>or</a> <a href='SkColor_Reference#Alpha'>larger</a> <a href='SkColor_Reference#Alpha'>than</a> <a href='#SkRGBA4f_fG'>fG</a> <a href='#SkRGBA4f_fG'>green</a>, <a href='#SkRGBA4f_fB'>fB</a> <a href='#SkRGBA4f_fB'>blue</a>, <a href='#SkRGBA4f_fB'>and</a> <a href='#SkRGBA4f_fR'>fR</a> <a href='#SkRGBA4f_fR'>red</a>. <a href='#SkRGBA4f_fR'>The</a> <a href='#SkRGBA4f_fR'>values</a>
-<a href='#SkRGBA4f_fR'>stored</a> <a href='#SkRGBA4f_fR'>in</a> <a href='#SkRGBA4f_fG'>fG</a>, <a href='#SkRGBA4f_fB'>fB</a>, <a href='#SkRGBA4f_fB'>and</a> <a href='#SkRGBA4f_fR'>fR</a> <a href='#SkRGBA4f_fR'>combine</a> <a href='#SkRGBA4f_fR'>the</a> <a href='SkColor_Reference#Color'>color</a> <a href='SkColor_Reference#Color'>component</a> <a href='SkColor_Reference#Color'>with</a> <a href='SkColor_Reference#Color'>the</a> <a href='SkColor_Reference#Alpha'>Alpha</a> <a href='SkColor_Reference#Alpha'>component</a>.
+Components are connected if defined with <a href='SkImageInfo_Reference#kPremul_SkAlphaType'>kPremul_SkAlphaType</a>;
+<a href='#SkRGBA4f_fA'>fA</a> <a href='SkColor_Reference#Alpha'>Alpha</a> is equal to or larger than <a href='#SkRGBA4f_fG'>fG</a> green, <a href='#SkRGBA4f_fB'>fB</a> blue, and <a href='#SkRGBA4f_fR'>fR</a> red. The values
+stored in <a href='#SkRGBA4f_fG'>fG</a>, <a href='#SkRGBA4f_fB'>fB</a>, and <a href='#SkRGBA4f_fR'>fR</a> combine the <a href='SkColor_Reference#Color'>color</a> component with the <a href='SkColor_Reference#Alpha'>Alpha</a> component.
-<a href='SkColor_Reference#Alpha'>Values</a> <a href='SkColor_Reference#Alpha'>smaller</a> <a href='SkColor_Reference#Alpha'>than</a> <a href='SkColor_Reference#Alpha'>zero</a> <a href='SkColor_Reference#Alpha'>or</a> <a href='SkColor_Reference#Alpha'>larger</a> <a href='SkColor_Reference#Alpha'>than</a> <a href='SkColor_Reference#Alpha'>one</a> <a href='SkColor_Reference#Alpha'>are</a> <a href='SkColor_Reference#Alpha'>allowed</a>. <a href='SkColor_Reference#Alpha'>Values</a> <a href='SkColor_Reference#Alpha'>out</a> <a href='SkColor_Reference#Alpha'>of</a> <a href='SkColor_Reference#Alpha'>range</a>
-<a href='SkColor_Reference#Alpha'>may</a> <a href='SkColor_Reference#Alpha'>be</a> <a href='SkColor_Reference#Alpha'>used</a> <a href='SkColor_Reference#Alpha'>with</a> <a href='#Blend_Mode'>Blend_Mode</a> <a href='#Blend_Mode'>so</a> <a href='#Blend_Mode'>that</a> <a href='#Blend_Mode'>the</a> <a href='#Blend_Mode'>final</a> <a href='#Blend_Mode'>component</a> <a href='#Blend_Mode'>is</a> <a href='#Blend_Mode'>in</a> <a href='#Blend_Mode'>range</a>.<table style='border-collapse: collapse; width: 62.5em'>
+Values smaller than zero or larger than one are allowed. Values out of range
+may be used with <a href='#Blend_Mode'>Blend_Mode</a> so that the final component is in range.<table style='border-collapse: collapse; width: 62.5em'>
<tr><th style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>Type</th>
<th style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>Member</th>
@@ -79,7 +79,7 @@
<td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>float</td>
<td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a name='SkRGBA4f_fA'><code>fA</code></a></td>
<td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>
-Single precision float for <a href='SkColor_Reference#Alpha'>Alpha</a> <a href='SkColor_Reference#Alpha'>ranges</a> <a href='SkColor_Reference#Alpha'>from</a> <a href='SkColor_Reference#Alpha'>no</a> <a href='SkColor_Reference#Alpha'>Alpha</a> (0.0) <a href='SkColor_Reference#Alpha'>to</a> <a href='SkColor_Reference#Alpha'>full</a> <a href='SkColor_Reference#Alpha'>Alpha</a> (1.0).
+Single precision float for <a href='SkColor_Reference#Alpha'>Alpha</a> ranges from no <a href='SkColor_Reference#Alpha'>Alpha</a> (0.0) to full <a href='SkColor_Reference#Alpha'>Alpha</a> (1.0).
</td>
</tr>
</table>
@@ -89,21 +89,21 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-bool operator==(const <a href='SkColor4f_Reference#SkRGBA4f'>SkRGBA4f</a>& <a href='SkColor4f_Reference#SkRGBA4f'>other</a>) <a href='SkColor4f_Reference#SkRGBA4f'>const</a>
+bool operator==(const <a href='SkColor4f_Reference#SkRGBA4f'>SkRGBA4f</a>& other) const
</pre>
-Compares <a href='SkColor4f_Reference#SkRGBA4f'>SkRGBA4f</a> <a href='SkColor4f_Reference#SkRGBA4f'>with</a> <a href='#SkRGBA4f_equal1_operator_other'>other</a>, <a href='#SkRGBA4f_equal1_operator_other'>and</a> <a href='#SkRGBA4f_equal1_operator_other'>returns</a> <a href='#SkRGBA4f_equal1_operator_other'>true</a> <a href='#SkRGBA4f_equal1_operator_other'>if</a> <a href='#SkRGBA4f_equal1_operator_other'>all</a> <a href='#SkRGBA4f_equal1_operator_other'>components</a> <a href='#SkRGBA4f_equal1_operator_other'>are</a> <a href='#SkRGBA4f_equal1_operator_other'>equivalent</a>.
+Compares <a href='SkColor4f_Reference#SkRGBA4f'>SkRGBA4f</a> with <a href='#SkRGBA4f_equal1_operator_other'>other</a>, and returns true if all components are equivalent.
### Parameters
<table> <tr> <td><a name='SkRGBA4f_equal1_operator_other'><code><strong>other</strong></code></a></td>
- <td><a href='SkColor4f_Reference#SkRGBA4f'>SkRGBA4f</a> <a href='SkColor4f_Reference#SkRGBA4f'>to</a> <a href='SkColor4f_Reference#SkRGBA4f'>compare</a></td>
+ <td><a href='SkColor4f_Reference#SkRGBA4f'>SkRGBA4f</a> to compare</td>
</tr>
</table>
### Return Value
-true if <a href='SkColor4f_Reference#SkRGBA4f'>SkRGBA4f</a> <a href='SkColor4f_Reference#SkRGBA4f'>equals</a> <a href='#SkRGBA4f_equal1_operator_other'>other</a>
+true if <a href='SkColor4f_Reference#SkRGBA4f'>SkRGBA4f</a> equals <a href='#SkRGBA4f_equal1_operator_other'>other</a>
### Example
@@ -126,22 +126,22 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-bool operator!=(const <a href='SkColor4f_Reference#SkRGBA4f'>SkRGBA4f</a>& <a href='SkColor4f_Reference#SkRGBA4f'>other</a>) <a href='SkColor4f_Reference#SkRGBA4f'>const</a>
+bool operator!=(const <a href='SkColor4f_Reference#SkRGBA4f'>SkRGBA4f</a>& other) const
</pre>
-Compares <a href='SkColor4f_Reference#SkRGBA4f'>SkRGBA4f</a> <a href='SkColor4f_Reference#SkRGBA4f'>with</a> <a href='#SkRGBA4f_notequal1_operator_other'>other</a>, <a href='#SkRGBA4f_notequal1_operator_other'>and</a> <a href='#SkRGBA4f_notequal1_operator_other'>returns</a> <a href='#SkRGBA4f_notequal1_operator_other'>true</a> <a href='#SkRGBA4f_notequal1_operator_other'>if</a> <a href='#SkRGBA4f_notequal1_operator_other'>all</a> <a href='#SkRGBA4f_notequal1_operator_other'>components</a> <a href='#SkRGBA4f_notequal1_operator_other'>are</a> <a href='#SkRGBA4f_notequal1_operator_other'>not</a>
-<a href='#SkRGBA4f_notequal1_operator_other'>equivalent</a>.
+Compares <a href='SkColor4f_Reference#SkRGBA4f'>SkRGBA4f</a> with <a href='#SkRGBA4f_notequal1_operator_other'>other</a>, and returns true if all components are not
+equivalent.
### Parameters
<table> <tr> <td><a name='SkRGBA4f_notequal1_operator_other'><code><strong>other</strong></code></a></td>
- <td><a href='SkColor4f_Reference#SkRGBA4f'>SkRGBA4f</a> <a href='SkColor4f_Reference#SkRGBA4f'>to</a> <a href='SkColor4f_Reference#SkRGBA4f'>compare</a></td>
+ <td><a href='SkColor4f_Reference#SkRGBA4f'>SkRGBA4f</a> to compare</td>
</tr>
</table>
### Return Value
-true if <a href='SkColor4f_Reference#SkRGBA4f'>SkRGBA4f</a> <a href='SkColor4f_Reference#SkRGBA4f'>is</a> <a href='SkColor4f_Reference#SkRGBA4f'>not</a> <a href='SkColor4f_Reference#SkRGBA4f'>equal</a> <a href='SkColor4f_Reference#SkRGBA4f'>to</a> <a href='#SkRGBA4f_notequal1_operator_other'>other</a>
+true if <a href='SkColor4f_Reference#SkRGBA4f'>SkRGBA4f</a> is not equal to <a href='#SkRGBA4f_notequal1_operator_other'>other</a>
### Example
@@ -164,10 +164,10 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-<a href='SkColor4f_Reference#SkRGBA4f'>SkRGBA4f</a> <a href='SkColor4f_Reference#SkRGBA4f'>operator</a>*(<a href='SkColor4f_Reference#SkRGBA4f'>float</a> <a href='SkColor4f_Reference#SkRGBA4f'>scale</a>) <a href='SkColor4f_Reference#SkRGBA4f'>const</a>
+<a href='SkColor4f_Reference#SkRGBA4f'>SkRGBA4f</a> operator*(float scale) const
</pre>
-Multiplies each component by <a href='#SkRGBA4f_multiply_operator_scale'>scale</a>. <a href='#SkRGBA4f_multiply_operator_scale'>Does</a> <a href='#SkRGBA4f_multiply_operator_scale'>not</a> <a href='#SkRGBA4f_multiply_operator_scale'>pin</a> <a href='#SkRGBA4f_multiply_operator_scale'>the</a> <a href='#SkRGBA4f_multiply_operator_scale'>result</a>.
+Multiplies each component by <a href='#SkRGBA4f_multiply_operator_scale'>scale</a>. Does not pin the result.
### Parameters
@@ -189,15 +189,15 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-<a href='SkColor4f_Reference#SkRGBA4f'>SkRGBA4f</a> <a href='SkColor4f_Reference#SkRGBA4f'>operator</a>*(<a href='SkColor4f_Reference#SkRGBA4f'>const</a> <a href='SkColor4f_Reference#SkRGBA4f'>SkRGBA4f</a>& <a href='SkColor4f_Reference#SkRGBA4f'>scale</a>) <a href='SkColor4f_Reference#SkRGBA4f'>const</a>
+<a href='SkColor4f_Reference#SkRGBA4f'>SkRGBA4f</a> operator*(const <a href='SkColor4f_Reference#SkRGBA4f'>SkRGBA4f</a>& scale) const
</pre>
-Multiplies each component by <a href='#SkRGBA4f_multiply1_operator_scale'>scale</a> <a href='#SkRGBA4f_multiply1_operator_scale'>component</a>. <a href='#SkRGBA4f_multiply1_operator_scale'>Does</a> <a href='#SkRGBA4f_multiply1_operator_scale'>not</a> <a href='#SkRGBA4f_multiply1_operator_scale'>pin</a> <a href='#SkRGBA4f_multiply1_operator_scale'>the</a> <a href='#SkRGBA4f_multiply1_operator_scale'>result</a>.
+Multiplies each component by <a href='#SkRGBA4f_multiply1_operator_scale'>scale</a> component. Does not pin the result.
### Parameters
<table> <tr> <td><a name='SkRGBA4f_multiply1_operator_scale'><code><strong>scale</strong></code></a></td>
- <td><a href='SkColor4f_Reference#SkRGBA4f'>SkRGBA4f</a> <a href='SkColor4f_Reference#SkRGBA4f'>component</a> <a href='SkColor4f_Reference#SkRGBA4f'>multipliers</a></td>
+ <td><a href='SkColor4f_Reference#SkRGBA4f'>SkRGBA4f</a> component multipliers</td>
</tr>
</table>
@@ -216,10 +216,10 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-const float* <a href='#SkRGBA4f_vec'>vec()</a> <a href='#SkRGBA4f_vec'>const</a>
+const float* <a href='#SkRGBA4f_vec'>vec()</a> const
</pre>
-Returns <a href='SkColor4f_Reference#SkRGBA4f'>SkRGBA4f</a> <a href='SkColor4f_Reference#SkRGBA4f'>components</a> <a href='SkColor4f_Reference#SkRGBA4f'>as</a> <a href='SkColor4f_Reference#SkRGBA4f'>a</a> <a href='SkColor4f_Reference#SkRGBA4f'>read-only</a> <a href='SkColor4f_Reference#SkRGBA4f'>array</a>.
+Returns <a href='SkColor4f_Reference#SkRGBA4f'>SkRGBA4f</a> components as a read-only array.
### Return Value
@@ -250,7 +250,7 @@
float* <a href='#SkRGBA4f_vec'>vec()</a>
</pre>
-Returns <a href='SkColor4f_Reference#SkRGBA4f'>SkRGBA4f</a> <a href='SkColor4f_Reference#SkRGBA4f'>components</a> <a href='SkColor4f_Reference#SkRGBA4f'>as</a> <a href='SkColor4f_Reference#SkRGBA4f'>a</a> <a href='SkColor4f_Reference#SkRGBA4f'>writable</a> <a href='SkColor4f_Reference#SkRGBA4f'>array</a>.
+Returns <a href='SkColor4f_Reference#SkRGBA4f'>SkRGBA4f</a> components as a writable array.
### Return Value
@@ -281,8 +281,8 @@
float operator[](int index) const
</pre>
-Returns <a href='SkColor4f_Reference#SkRGBA4f'>SkRGBA4f</a> <a href='SkColor4f_Reference#SkRGBA4f'>component</a> <a href='SkColor4f_Reference#SkRGBA4f'>by</a> <a href='SkColor4f_Reference#SkRGBA4f'>index</a>, <a href='SkColor4f_Reference#SkRGBA4f'>zero</a> <a href='SkColor4f_Reference#SkRGBA4f'>through</a> <a href='SkColor4f_Reference#SkRGBA4f'>three</a>. <a href='SkColor4f_Reference#SkRGBA4f'>index</a> <a href='SkColor4f_Reference#SkRGBA4f'>out</a> <a href='SkColor4f_Reference#SkRGBA4f'>of</a> <a href='SkColor4f_Reference#SkRGBA4f'>range</a>
-<a href='SkColor4f_Reference#SkRGBA4f'>triggers</a> <a href='SkColor4f_Reference#SkRGBA4f'>an</a> <a href='SkColor4f_Reference#SkRGBA4f'>assert</a> <a href='SkColor4f_Reference#SkRGBA4f'>in</a> <a href='SkColor4f_Reference#SkRGBA4f'>debug</a> <a href='SkColor4f_Reference#SkRGBA4f'>builds</a>.
+Returns <a href='SkColor4f_Reference#SkRGBA4f'>SkRGBA4f</a> component by index, zero through three. index out of range
+triggers an assert in debug builds.
### Parameters
@@ -332,16 +332,16 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-bool <a href='#SkRGBA4f_isOpaque'>isOpaque</a>() <a href='#SkRGBA4f_isOpaque'>const</a>
+bool <a href='#SkRGBA4f_isOpaque'>isOpaque</a>() const
</pre>
-Returns true if <a href='SkColor_Reference#Alpha'>Alpha</a> <a href='SkColor_Reference#Alpha'>component</a> <a href='SkColor_Reference#Alpha'>is</a> <a href='SkColor_Reference#Alpha'>one</a>. <a href='SkColor_Reference#Color'>Color</a> <a href='SkColor_Reference#Color'>has</a> <a href='SkColor_Reference#Color'>no</a> <a href='SkColor_Reference#Color'>transparency</a> <a href='SkColor_Reference#Color'>regardless</a> <a href='SkColor_Reference#Color'>of</a>
-<a href='SkColor_Reference#Color'>whether</a> <a href='SkColor_Reference#Color'>color</a> <a href='SkColor_Reference#Color'>is</a> <a href='undocumented#Premultiply'>Premultiplied</a> <a href='undocumented#Premultiply'>or</a> <a href='undocumented#Unpremultiply'>Unpremultiplied</a>. <a href='undocumented#Unpremultiply'>Triggers</a> <a href='undocumented#Unpremultiply'>a</a> <a href='undocumented#Debugging'>debugging</a> <a href='undocumented#Debugging'>assert</a>
-<a href='undocumented#Debugging'>if</a> <a href='SkColor_Reference#Alpha'>Alpha</a> <a href='SkColor_Reference#Alpha'>not</a> <a href='SkColor_Reference#Alpha'>valid</a>.
+Returns true if <a href='SkColor_Reference#Alpha'>Alpha</a> component is one. <a href='SkColor_Reference#Color'>Color</a> has no transparency regardless of
+whether <a href='SkColor_Reference#Color'>color</a> is <a href='undocumented#Premultiply'>Premultiplied</a> or <a href='undocumented#Unpremultiply'>Unpremultiplied</a>. Triggers a <a href='undocumented#Debugging'>debugging</a> assert
+if <a href='SkColor_Reference#Alpha'>Alpha</a> not valid.
### Return Value
-true if <a href='SkColor_Reference#Alpha'>Alpha</a> <a href='SkColor_Reference#Alpha'>is</a> <a href='SkColor_Reference#Alpha'>one</a>
+true if <a href='SkColor_Reference#Alpha'>Alpha</a> is one
### See Also
@@ -360,13 +360,13 @@
### Parameters
<table> <tr> <td><a name='SkRGBA4f_FromColor_SkColor'><code><strong>SkColor</strong></code></a></td>
- <td><a href='SkColor_Reference#Color'>Color</a> <a href='SkColor_Reference#Color'>with</a> <a href='SkColor_Reference#Alpha'>Alpha</a>, <a href='SkColor_Reference#Alpha'>red</a>, <a href='SkColor_Reference#Alpha'>blue</a>, <a href='SkColor_Reference#Alpha'>and</a> <a href='SkColor_Reference#Alpha'>green</a> <a href='SkColor_Reference#Alpha'>components</a></td>
+ <td><a href='SkColor_Reference#Color'>Color</a> with <a href='SkColor_Reference#Alpha'>Alpha</a>, red, blue, and green components</td>
</tr>
</table>
### Return Value
-<a href='SkColor4f_Reference#SkRGBA4f'>SkRGBA4f</a> <a href='SkColor4f_Reference#SkRGBA4f'>equivalent</a>
+<a href='SkColor4f_Reference#SkRGBA4f'>SkRGBA4f</a> equivalent
### Example
@@ -390,7 +390,7 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-<a href='SkColor_Reference#SkColor'>SkColor</a> <a href='#SkRGBA4f_toSkColor'>toSkColor</a>() <a href='#SkRGBA4f_toSkColor'>const</a>
+<a href='SkColor_Reference#SkColor'>SkColor</a> <a href='#SkRGBA4f_toSkColor'>toSkColor</a>() const
</pre>
Converts to closest <a href='SkColor_Reference#SkColor'>SkColor</a>.
@@ -424,8 +424,8 @@
static <a href='SkColor4f_Reference#SkRGBA4f'>SkRGBA4f</a> <a href='#SkRGBA4f_FromPMColor'>FromPMColor</a>(<a href='SkColor_Reference#SkPMColor'>SkPMColor</a>)
</pre>
-Converts from <a href='undocumented#Premultiply'>Premultiplied</a> <a href='undocumented#Premultiply'>integer</a> <a href='undocumented#Premultiply'>components</a> <a href='undocumented#Premultiply'>to</a> <a href='undocumented#Unpremultiply'>Unpremultiplied</a> <a href='undocumented#Unpremultiply'>float</a>
-<a href='undocumented#Unpremultiply'>components</a>.
+Converts from <a href='undocumented#Premultiply'>Premultiplied</a> integer components to <a href='undocumented#Unpremultiply'>Unpremultiplied</a> float
+components.
### Parameters
@@ -447,10 +447,10 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-<a href='SkColor4f_Reference#SkRGBA4f'>SkRGBA4f</a>&<a href='SkColor4f_Reference#SkRGBA4f'>lt</a>;<a href='SkImageInfo_Reference#kPremul_SkAlphaType'>kPremul_SkAlphaType</a>&<a href='SkImageInfo_Reference#kPremul_SkAlphaType'>gt</a>; <a href='#SkRGBA4f_premul'>premul()</a> <a href='#SkRGBA4f_premul'>const</a>
+<a href='SkColor4f_Reference#SkRGBA4f'>SkRGBA4f</a><<a href='SkImageInfo_Reference#kPremul_SkAlphaType'>kPremul_SkAlphaType</a>> <a href='#SkRGBA4f_premul'>premul()</a> const
</pre>
-Returns <a href='SkColor4f_Reference#SkColor4f'>SkColor4f</a> <a href='SkColor4f_Reference#SkColor4f'>with</a> <a href='SkColor4f_Reference#SkColor4f'>all</a> <a href='SkColor4f_Reference#SkColor4f'>components</a> <a href='undocumented#Premultiply'>premultiplied</a> <a href='undocumented#Premultiply'>by</a> <a href='SkColor_Reference#Alpha'>Alpha</a>.
+Returns <a href='SkColor4f_Reference#SkColor4f'>SkColor4f</a> with all components <a href='undocumented#Premultiply'>premultiplied</a> by <a href='SkColor_Reference#Alpha'>Alpha</a>.
### Return Value
@@ -465,10 +465,10 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-<a href='SkColor4f_Reference#SkRGBA4f'>SkRGBA4f</a>&<a href='SkColor4f_Reference#SkRGBA4f'>lt</a>;<a href='SkImageInfo_Reference#kUnpremul_SkAlphaType'>kUnpremul_SkAlphaType</a>&<a href='SkImageInfo_Reference#kUnpremul_SkAlphaType'>gt</a>; <a href='#SkRGBA4f_unpremul'>unpremul()</a> <a href='#SkRGBA4f_unpremul'>const</a>
+<a href='SkColor4f_Reference#SkRGBA4f'>SkRGBA4f</a><<a href='SkImageInfo_Reference#kUnpremul_SkAlphaType'>kUnpremul_SkAlphaType</a>> <a href='#SkRGBA4f_unpremul'>unpremul()</a> const
</pre>
-Returns <a href='SkColor4f_Reference#SkRGBA4f'>SkRGBA4f</a> <a href='SkColor4f_Reference#SkRGBA4f'>with</a> <a href='SkColor4f_Reference#SkRGBA4f'>all</a> <a href='SkColor4f_Reference#SkRGBA4f'>components</a> <a href='SkColor4f_Reference#SkRGBA4f'>independent</a> <a href='SkColor4f_Reference#SkRGBA4f'>of</a> <a href='SkColor_Reference#Alpha'>Alpha</a>.
+Returns <a href='SkColor4f_Reference#SkRGBA4f'>SkRGBA4f</a> with all components independent of <a href='SkColor_Reference#Alpha'>Alpha</a>.
### Return Value
@@ -483,7 +483,7 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-uint32_t <a href='#SkRGBA4f_toBytes_RGBA'>toBytes_RGBA</a>() <a href='#SkRGBA4f_toBytes_RGBA'>const</a>
+uint32_t <a href='#SkRGBA4f_toBytes_RGBA'>toBytes_RGBA</a>() const
</pre>
Produces bytes in RGBA order. Component values are not affected by <a href='SkColor_Reference#Color'>color</a> <a href='SkColor_Reference#Alpha'>Alpha</a>.
@@ -497,16 +497,16 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-static <a href='SkColor4f_Reference#SkRGBA4f'>SkRGBA4f</a> <a href='#SkRGBA4f_FromBytes_RGBA'>FromBytes_RGBA</a>(<a href='#SkRGBA4f_FromBytes_RGBA'>uint32_t</a> <a href='SkColor_Reference#Color'>color</a>)
+static <a href='SkColor4f_Reference#SkRGBA4f'>SkRGBA4f</a> <a href='#SkRGBA4f_FromBytes_RGBA'>FromBytes_RGBA</a>(uint32_t <a href='SkColor_Reference#Color'>color</a>)
</pre>
-Returns from <a href='SkColor_Reference#Color'>color</a> <a href='SkImageInfo_Reference#kRGBA_8888_SkColorType'>kRGBA_8888_SkColorType</a> <a href='SkImageInfo_Reference#kRGBA_8888_SkColorType'>order</a>. <a href='SkImageInfo_Reference#kRGBA_8888_SkColorType'>Component</a> <a href='SkImageInfo_Reference#kRGBA_8888_SkColorType'>values</a> <a href='SkImageInfo_Reference#kRGBA_8888_SkColorType'>are</a>
-<a href='SkImageInfo_Reference#kRGBA_8888_SkColorType'>not</a> <a href='SkImageInfo_Reference#kRGBA_8888_SkColorType'>affected</a> <a href='SkImageInfo_Reference#kRGBA_8888_SkColorType'>by</a> <a href='SkColor_Reference#Color'>color</a> <a href='SkColor_Reference#Alpha'>Alpha</a>.
+Returns from <a href='SkColor_Reference#Color'>color</a> <a href='SkImageInfo_Reference#kRGBA_8888_SkColorType'>kRGBA_8888_SkColorType</a> order. Component values are
+not affected by <a href='SkColor_Reference#Color'>color</a> <a href='SkColor_Reference#Alpha'>Alpha</a>.
### Parameters
<table> <tr> <td><a name='SkRGBA4f_FromBytes_RGBA_color'><code><strong>color</strong></code></a></td>
- <td><a href='undocumented#Premultiply'>Premultiplied</a> <a href='undocumented#Premultiply'>or</a> <a href='undocumented#Unpremultiply'>Unpremultiplied</a></td>
+ <td><a href='undocumented#Premultiply'>Premultiplied</a> or <a href='undocumented#Unpremultiply'>Unpremultiplied</a></td>
</tr>
</table>
@@ -519,10 +519,10 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-<a href='SkColor4f_Reference#SkRGBA4f'>SkRGBA4f</a> <a href='#SkRGBA4f_makeOpaque'>makeOpaque</a>() <a href='#SkRGBA4f_makeOpaque'>const</a>
+<a href='SkColor4f_Reference#SkRGBA4f'>SkRGBA4f</a> <a href='#SkRGBA4f_makeOpaque'>makeOpaque</a>() const
</pre>
-Returns <a href='SkColor_Reference#Color'>color</a> <a href='SkColor_Reference#Color'>with</a> <a href='SkColor_Reference#Alpha'>Alpha</a> <a href='SkColor_Reference#Alpha'>set</a> <a href='SkColor_Reference#Alpha'>to</a> <a href='SkColor_Reference#Alpha'>one</a>.
+Returns <a href='SkColor_Reference#Color'>color</a> with <a href='SkColor_Reference#Alpha'>Alpha</a> set to one.
### Return Value
diff --git a/site/user/api/SkColor_Reference.md b/site/user/api/SkColor_Reference.md
index 0640f57..0868f15 100644
--- a/site/user/api/SkColor_Reference.md
+++ b/site/user/api/SkColor_Reference.md
@@ -4,65 +4,65 @@
<pre style="padding: 1em 1em 1em 1em;width: 62.5em; background-color: #f0f0f0">
typedef uint8_t <a href='SkColor_Reference#SkAlpha'>SkAlpha</a>;
-<a href='SkColor_Reference#SkAlpha'>typedef</a> <a href='SkColor_Reference#SkAlpha'>uint32_t</a> <a href='SkColor_Reference#SkColor'>SkColor</a>;
+typedef uint32_t <a href='SkColor_Reference#SkColor'>SkColor</a>;
-<a href='SkColor_Reference#SkColor'>static</a> <a href='SkColor_Reference#SkColor'>constexpr</a> <a href='SkColor_Reference#SkColor'>SkColor</a> <a href='SkColor_Reference#SkColorSetARGB'>SkColorSetARGB</a>(<a href='undocumented#U8CPU'>U8CPU</a> <a href='undocumented#U8CPU'>a</a>, <a href='undocumented#U8CPU'>U8CPU</a> <a href='undocumented#U8CPU'>r</a>, <a href='undocumented#U8CPU'>U8CPU</a> <a href='undocumented#U8CPU'>g</a>, <a href='undocumented#U8CPU'>U8CPU</a> <a href='undocumented#U8CPU'>b</a>);
-#<a href='undocumented#U8CPU'>define</a> <a href='SkColor_Reference#SkColorSetRGB'>SkColorSetRGB</a>(<a href='SkColor_Reference#SkColorSetRGB'>r</a>, <a href='SkColor_Reference#SkColorSetRGB'>g</a>, <a href='SkColor_Reference#SkColorSetRGB'>b</a>) <a href='SkColor_Reference#SkColorSetARGB'>SkColorSetARGB</a>(0<a href='SkColor_Reference#SkColorSetARGB'>xFF</a>, <a href='SkColor_Reference#SkColorSetARGB'>r</a>, <a href='SkColor_Reference#SkColorSetARGB'>g</a>, <a href='SkColor_Reference#SkColorSetARGB'>b</a>)
-#<a href='SkColor_Reference#SkColorSetARGB'>define</a> <a href='SkColor_Reference#SkColorGetA'>SkColorGetA</a>(<a href='SkColor_Reference#Color'>color</a>) (((<a href='SkColor_Reference#Color'>color</a>) >> 24) & 0<a href='SkColor_Reference#Color'>xFF</a>)
-#<a href='SkColor_Reference#Color'>define</a> <a href='SkColor_Reference#SkColorGetR'>SkColorGetR</a>(<a href='SkColor_Reference#Color'>color</a>) (((<a href='SkColor_Reference#Color'>color</a>) >> 16) & 0<a href='SkColor_Reference#Color'>xFF</a>)
-#<a href='SkColor_Reference#Color'>define</a> <a href='SkColor_Reference#SkColorGetG'>SkColorGetG</a>(<a href='SkColor_Reference#Color'>color</a>) (((<a href='SkColor_Reference#Color'>color</a>) >> 8) & 0<a href='SkColor_Reference#Color'>xFF</a>)
-#<a href='SkColor_Reference#Color'>define</a> <a href='SkColor_Reference#SkColorGetB'>SkColorGetB</a>(<a href='SkColor_Reference#Color'>color</a>) (((<a href='SkColor_Reference#Color'>color</a>) >> 0) & 0<a href='SkColor_Reference#Color'>xFF</a>)
+static constexpr <a href='SkColor_Reference#SkColor'>SkColor</a> <a href='SkColor_Reference#SkColorSetARGB'>SkColorSetARGB</a>(<a href='undocumented#U8CPU'>U8CPU</a> a, <a href='undocumented#U8CPU'>U8CPU</a> r, <a href='undocumented#U8CPU'>U8CPU</a> g, <a href='undocumented#U8CPU'>U8CPU</a> b);
+#define <a href='SkColor_Reference#SkColorSetRGB'>SkColorSetRGB</a>(r, g, b) <a href='SkColor_Reference#SkColorSetARGB'>SkColorSetARGB</a>(0xFF, r, g, b)
+#define <a href='SkColor_Reference#SkColorGetA'>SkColorGetA</a>(<a href='SkColor_Reference#Color'>color</a>) (((<a href='SkColor_Reference#Color'>color</a>) >> 24) & 0xFF)
+#define <a href='SkColor_Reference#SkColorGetR'>SkColorGetR</a>(<a href='SkColor_Reference#Color'>color</a>) (((<a href='SkColor_Reference#Color'>color</a>) >> 16) & 0xFF)
+#define <a href='SkColor_Reference#SkColorGetG'>SkColorGetG</a>(<a href='SkColor_Reference#Color'>color</a>) (((<a href='SkColor_Reference#Color'>color</a>) >> 8) & 0xFF)
+#define <a href='SkColor_Reference#SkColorGetB'>SkColorGetB</a>(<a href='SkColor_Reference#Color'>color</a>) (((<a href='SkColor_Reference#Color'>color</a>) >> 0) & 0xFF)
-<a href='SkColor_Reference#Color'>static</a> <a href='SkColor_Reference#Color'>constexpr</a> <a href='SkColor_Reference#SkColor'>SkColor</a> <a href='SkColor_Reference#SkColorSetA'>SkColorSetA</a>(<a href='SkColor_Reference#SkColor'>SkColor</a> <a href='SkColor_Reference#SkColor'>c</a>, <a href='undocumented#U8CPU'>U8CPU</a> <a href='undocumented#U8CPU'>a</a>);
-<a href='undocumented#U8CPU'>constexpr</a> <a href='SkColor_Reference#SkAlpha'>SkAlpha</a> <a href='SkColor_Reference#SK_AlphaTRANSPARENT'>SK_AlphaTRANSPARENT</a> = 0<a href='SkColor_Reference#SK_AlphaTRANSPARENT'>x00</a>;
-<a href='SkColor_Reference#SK_AlphaTRANSPARENT'>constexpr</a> <a href='SkColor_Reference#SkAlpha'>SkAlpha</a> <a href='SkColor_Reference#SK_AlphaOPAQUE'>SK_AlphaOPAQUE</a> = 0<a href='SkColor_Reference#SK_AlphaOPAQUE'>xFF</a>;
-<a href='SkColor_Reference#SK_AlphaOPAQUE'>constexpr</a> <a href='SkColor_Reference#SkColor'>SkColor</a> <a href='SkColor_Reference#SK_ColorTRANSPARENT'>SK_ColorTRANSPARENT</a> = <a href='SkColor_Reference#SkColorSetARGB'>SkColorSetARGB</a>(0<a href='SkColor_Reference#SkColorSetARGB'>x00</a>, 0<a href='SkColor_Reference#SkColorSetARGB'>x00</a>, 0<a href='SkColor_Reference#SkColorSetARGB'>x00</a>, 0<a href='SkColor_Reference#SkColorSetARGB'>x00</a>);
-<a href='SkColor_Reference#SkColorSetARGB'>constexpr</a> <a href='SkColor_Reference#SkColor'>SkColor</a> <a href='SkColor_Reference#SK_ColorBLACK'>SK_ColorBLACK</a> = <a href='SkColor_Reference#SkColorSetARGB'>SkColorSetARGB</a>(0<a href='SkColor_Reference#SkColorSetARGB'>xFF</a>, 0<a href='SkColor_Reference#SkColorSetARGB'>x00</a>, 0<a href='SkColor_Reference#SkColorSetARGB'>x00</a>, 0<a href='SkColor_Reference#SkColorSetARGB'>x00</a>);
-<a href='SkColor_Reference#SkColorSetARGB'>constexpr</a> <a href='SkColor_Reference#SkColor'>SkColor</a> <a href='SkColor_Reference#SK_ColorDKGRAY'>SK_ColorDKGRAY</a> = <a href='SkColor_Reference#SkColorSetARGB'>SkColorSetARGB</a>(0<a href='SkColor_Reference#SkColorSetARGB'>xFF</a>, 0<a href='SkColor_Reference#SkColorSetARGB'>x44</a>, 0<a href='SkColor_Reference#SkColorSetARGB'>x44</a>, 0<a href='SkColor_Reference#SkColorSetARGB'>x44</a>);
-<a href='SkColor_Reference#SkColorSetARGB'>constexpr</a> <a href='SkColor_Reference#SkColor'>SkColor</a> <a href='SkColor_Reference#SK_ColorGRAY'>SK_ColorGRAY</a> = <a href='SkColor_Reference#SkColorSetARGB'>SkColorSetARGB</a>(0<a href='SkColor_Reference#SkColorSetARGB'>xFF</a>, 0<a href='SkColor_Reference#SkColorSetARGB'>x88</a>, 0<a href='SkColor_Reference#SkColorSetARGB'>x88</a>, 0<a href='SkColor_Reference#SkColorSetARGB'>x88</a>);
-<a href='SkColor_Reference#SkColorSetARGB'>constexpr</a> <a href='SkColor_Reference#SkColor'>SkColor</a> <a href='SkColor_Reference#SK_ColorLTGRAY'>SK_ColorLTGRAY</a> = <a href='SkColor_Reference#SkColorSetARGB'>SkColorSetARGB</a>(0<a href='SkColor_Reference#SkColorSetARGB'>xFF</a>, 0<a href='SkColor_Reference#SkColorSetARGB'>xCC</a>, 0<a href='SkColor_Reference#SkColorSetARGB'>xCC</a>, 0<a href='SkColor_Reference#SkColorSetARGB'>xCC</a>);
-<a href='SkColor_Reference#SkColorSetARGB'>constexpr</a> <a href='SkColor_Reference#SkColor'>SkColor</a> <a href='SkColor_Reference#SK_ColorWHITE'>SK_ColorWHITE</a> = <a href='SkColor_Reference#SkColorSetARGB'>SkColorSetARGB</a>(0<a href='SkColor_Reference#SkColorSetARGB'>xFF</a>, 0<a href='SkColor_Reference#SkColorSetARGB'>xFF</a>, 0<a href='SkColor_Reference#SkColorSetARGB'>xFF</a>, 0<a href='SkColor_Reference#SkColorSetARGB'>xFF</a>);
-<a href='SkColor_Reference#SkColorSetARGB'>constexpr</a> <a href='SkColor_Reference#SkColor'>SkColor</a> <a href='SkColor_Reference#SK_ColorRED'>SK_ColorRED</a> = <a href='SkColor_Reference#SkColorSetARGB'>SkColorSetARGB</a>(0<a href='SkColor_Reference#SkColorSetARGB'>xFF</a>, 0<a href='SkColor_Reference#SkColorSetARGB'>xFF</a>, 0<a href='SkColor_Reference#SkColorSetARGB'>x00</a>, 0<a href='SkColor_Reference#SkColorSetARGB'>x00</a>);
-<a href='SkColor_Reference#SkColorSetARGB'>constexpr</a> <a href='SkColor_Reference#SkColor'>SkColor</a> <a href='SkColor_Reference#SK_ColorGREEN'>SK_ColorGREEN</a> = <a href='SkColor_Reference#SkColorSetARGB'>SkColorSetARGB</a>(0<a href='SkColor_Reference#SkColorSetARGB'>xFF</a>, 0<a href='SkColor_Reference#SkColorSetARGB'>x00</a>, 0<a href='SkColor_Reference#SkColorSetARGB'>xFF</a>, 0<a href='SkColor_Reference#SkColorSetARGB'>x00</a>);
-<a href='SkColor_Reference#SkColorSetARGB'>constexpr</a> <a href='SkColor_Reference#SkColor'>SkColor</a> <a href='SkColor_Reference#SK_ColorBLUE'>SK_ColorBLUE</a> = <a href='SkColor_Reference#SkColorSetARGB'>SkColorSetARGB</a>(0<a href='SkColor_Reference#SkColorSetARGB'>xFF</a>, 0<a href='SkColor_Reference#SkColorSetARGB'>x00</a>, 0<a href='SkColor_Reference#SkColorSetARGB'>x00</a>, 0<a href='SkColor_Reference#SkColorSetARGB'>xFF</a>);
-<a href='SkColor_Reference#SkColorSetARGB'>constexpr</a> <a href='SkColor_Reference#SkColor'>SkColor</a> <a href='SkColor_Reference#SK_ColorYELLOW'>SK_ColorYELLOW</a> = <a href='SkColor_Reference#SkColorSetARGB'>SkColorSetARGB</a>(0<a href='SkColor_Reference#SkColorSetARGB'>xFF</a>, 0<a href='SkColor_Reference#SkColorSetARGB'>xFF</a>, 0<a href='SkColor_Reference#SkColorSetARGB'>xFF</a>, 0<a href='SkColor_Reference#SkColorSetARGB'>x00</a>);
-<a href='SkColor_Reference#SkColorSetARGB'>constexpr</a> <a href='SkColor_Reference#SkColor'>SkColor</a> <a href='SkColor_Reference#SK_ColorCYAN'>SK_ColorCYAN</a> = <a href='SkColor_Reference#SkColorSetARGB'>SkColorSetARGB</a>(0<a href='SkColor_Reference#SkColorSetARGB'>xFF</a>, 0<a href='SkColor_Reference#SkColorSetARGB'>x00</a>, 0<a href='SkColor_Reference#SkColorSetARGB'>xFF</a>, 0<a href='SkColor_Reference#SkColorSetARGB'>xFF</a>);
-<a href='SkColor_Reference#SkColorSetARGB'>constexpr</a> <a href='SkColor_Reference#SkColor'>SkColor</a> <a href='SkColor_Reference#SK_ColorMAGENTA'>SK_ColorMAGENTA</a> = <a href='SkColor_Reference#SkColorSetARGB'>SkColorSetARGB</a>(0<a href='SkColor_Reference#SkColorSetARGB'>xFF</a>, 0<a href='SkColor_Reference#SkColorSetARGB'>xFF</a>, 0<a href='SkColor_Reference#SkColorSetARGB'>x00</a>, 0<a href='SkColor_Reference#SkColorSetARGB'>xFF</a>);
+static constexpr <a href='SkColor_Reference#SkColor'>SkColor</a> <a href='SkColor_Reference#SkColorSetA'>SkColorSetA</a>(<a href='SkColor_Reference#SkColor'>SkColor</a> c, <a href='undocumented#U8CPU'>U8CPU</a> a);
+constexpr <a href='SkColor_Reference#SkAlpha'>SkAlpha</a> <a href='SkColor_Reference#SK_AlphaTRANSPARENT'>SK_AlphaTRANSPARENT</a> = 0x00;
+constexpr <a href='SkColor_Reference#SkAlpha'>SkAlpha</a> <a href='SkColor_Reference#SK_AlphaOPAQUE'>SK_AlphaOPAQUE</a> = 0xFF;
+constexpr <a href='SkColor_Reference#SkColor'>SkColor</a> <a href='SkColor_Reference#SK_ColorTRANSPARENT'>SK_ColorTRANSPARENT</a> = <a href='SkColor_Reference#SkColorSetARGB'>SkColorSetARGB</a>(0x00, 0x00, 0x00, 0x00);
+constexpr <a href='SkColor_Reference#SkColor'>SkColor</a> <a href='SkColor_Reference#SK_ColorBLACK'>SK_ColorBLACK</a> = <a href='SkColor_Reference#SkColorSetARGB'>SkColorSetARGB</a>(0xFF, 0x00, 0x00, 0x00);
+constexpr <a href='SkColor_Reference#SkColor'>SkColor</a> <a href='SkColor_Reference#SK_ColorDKGRAY'>SK_ColorDKGRAY</a> = <a href='SkColor_Reference#SkColorSetARGB'>SkColorSetARGB</a>(0xFF, 0x44, 0x44, 0x44);
+constexpr <a href='SkColor_Reference#SkColor'>SkColor</a> <a href='SkColor_Reference#SK_ColorGRAY'>SK_ColorGRAY</a> = <a href='SkColor_Reference#SkColorSetARGB'>SkColorSetARGB</a>(0xFF, 0x88, 0x88, 0x88);
+constexpr <a href='SkColor_Reference#SkColor'>SkColor</a> <a href='SkColor_Reference#SK_ColorLTGRAY'>SK_ColorLTGRAY</a> = <a href='SkColor_Reference#SkColorSetARGB'>SkColorSetARGB</a>(0xFF, 0xCC, 0xCC, 0xCC);
+constexpr <a href='SkColor_Reference#SkColor'>SkColor</a> <a href='SkColor_Reference#SK_ColorWHITE'>SK_ColorWHITE</a> = <a href='SkColor_Reference#SkColorSetARGB'>SkColorSetARGB</a>(0xFF, 0xFF, 0xFF, 0xFF);
+constexpr <a href='SkColor_Reference#SkColor'>SkColor</a> <a href='SkColor_Reference#SK_ColorRED'>SK_ColorRED</a> = <a href='SkColor_Reference#SkColorSetARGB'>SkColorSetARGB</a>(0xFF, 0xFF, 0x00, 0x00);
+constexpr <a href='SkColor_Reference#SkColor'>SkColor</a> <a href='SkColor_Reference#SK_ColorGREEN'>SK_ColorGREEN</a> = <a href='SkColor_Reference#SkColorSetARGB'>SkColorSetARGB</a>(0xFF, 0x00, 0xFF, 0x00);
+constexpr <a href='SkColor_Reference#SkColor'>SkColor</a> <a href='SkColor_Reference#SK_ColorBLUE'>SK_ColorBLUE</a> = <a href='SkColor_Reference#SkColorSetARGB'>SkColorSetARGB</a>(0xFF, 0x00, 0x00, 0xFF);
+constexpr <a href='SkColor_Reference#SkColor'>SkColor</a> <a href='SkColor_Reference#SK_ColorYELLOW'>SK_ColorYELLOW</a> = <a href='SkColor_Reference#SkColorSetARGB'>SkColorSetARGB</a>(0xFF, 0xFF, 0xFF, 0x00);
+constexpr <a href='SkColor_Reference#SkColor'>SkColor</a> <a href='SkColor_Reference#SK_ColorCYAN'>SK_ColorCYAN</a> = <a href='SkColor_Reference#SkColorSetARGB'>SkColorSetARGB</a>(0xFF, 0x00, 0xFF, 0xFF);
+constexpr <a href='SkColor_Reference#SkColor'>SkColor</a> <a href='SkColor_Reference#SK_ColorMAGENTA'>SK_ColorMAGENTA</a> = <a href='SkColor_Reference#SkColorSetARGB'>SkColorSetARGB</a>(0xFF, 0xFF, 0x00, 0xFF);
-<a href='SkColor_Reference#SkColorSetARGB'>void</a> <a href='SkColor_Reference#SkRGBToHSV'>SkRGBToHSV</a>(<a href='undocumented#U8CPU'>U8CPU</a> <a href='undocumented#U8CPU'>red</a>, <a href='undocumented#U8CPU'>U8CPU</a> <a href='undocumented#U8CPU'>green</a>, <a href='undocumented#U8CPU'>U8CPU</a> <a href='undocumented#U8CPU'>blue</a>, <a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>hsv</a>[3]);
+void <a href='SkColor_Reference#SkRGBToHSV'>SkRGBToHSV</a>(<a href='undocumented#U8CPU'>U8CPU</a> red, <a href='undocumented#U8CPU'>U8CPU</a> green, <a href='undocumented#U8CPU'>U8CPU</a> blue, <a href='undocumented#SkScalar'>SkScalar</a> hsv[3]);
-<a href='undocumented#SkScalar'>static</a> <a href='undocumented#SkScalar'>void</a> <a href='SkColor_Reference#SkColorToHSV'>SkColorToHSV</a>(<a href='SkColor_Reference#SkColor'>SkColor</a> <a href='SkColor_Reference#Color'>color</a>, <a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>hsv</a>[3]);
+static void <a href='SkColor_Reference#SkColorToHSV'>SkColorToHSV</a>(<a href='SkColor_Reference#SkColor'>SkColor</a> <a href='SkColor_Reference#Color'>color</a>, <a href='undocumented#SkScalar'>SkScalar</a> hsv[3]);
-<a href='SkColor_Reference#SkColor'>SkColor</a> <a href='SkColor_Reference#SkHSVToColor'>SkHSVToColor</a>(<a href='undocumented#U8CPU'>U8CPU</a> <a href='SkColor_Reference#Alpha'>alpha</a>, <a href='SkColor_Reference#Alpha'>const</a> <a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>hsv</a>[3]);
+<a href='SkColor_Reference#SkColor'>SkColor</a> <a href='SkColor_Reference#SkHSVToColor'>SkHSVToColor</a>(<a href='undocumented#U8CPU'>U8CPU</a> <a href='SkColor_Reference#Alpha'>alpha</a>, const <a href='undocumented#SkScalar'>SkScalar</a> hsv[3]);
-<a href='undocumented#SkScalar'>static</a> <a href='SkColor_Reference#SkColor'>SkColor</a> <a href='SkColor_Reference#SkHSVToColor'>SkHSVToColor</a>(<a href='SkColor_Reference#SkHSVToColor'>const</a> <a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>hsv</a>[3]);
-<a href='undocumented#SkScalar'>typedef</a> <a href='undocumented#SkScalar'>uint32_t</a> <a href='SkColor_Reference#SkPMColor'>SkPMColor</a>;
+static <a href='SkColor_Reference#SkColor'>SkColor</a> <a href='SkColor_Reference#SkHSVToColor'>SkHSVToColor</a>(const <a href='undocumented#SkScalar'>SkScalar</a> hsv[3]);
+typedef uint32_t <a href='SkColor_Reference#SkPMColor'>SkPMColor</a>;
-<a href='SkColor_Reference#SkPMColor'>SkPMColor</a> <a href='SkColor_Reference#SkPreMultiplyARGB'>SkPreMultiplyARGB</a>(<a href='undocumented#U8CPU'>U8CPU</a> <a href='undocumented#U8CPU'>a</a>, <a href='undocumented#U8CPU'>U8CPU</a> <a href='undocumented#U8CPU'>r</a>, <a href='undocumented#U8CPU'>U8CPU</a> <a href='undocumented#U8CPU'>g</a>, <a href='undocumented#U8CPU'>U8CPU</a> <a href='undocumented#U8CPU'>b</a>);
+<a href='SkColor_Reference#SkPMColor'>SkPMColor</a> <a href='SkColor_Reference#SkPreMultiplyARGB'>SkPreMultiplyARGB</a>(<a href='undocumented#U8CPU'>U8CPU</a> a, <a href='undocumented#U8CPU'>U8CPU</a> r, <a href='undocumented#U8CPU'>U8CPU</a> g, <a href='undocumented#U8CPU'>U8CPU</a> b);
-<a href='SkColor_Reference#SkPMColor'>SkPMColor</a> <a href='SkColor_Reference#SkPreMultiplyColor'>SkPreMultiplyColor</a>(<a href='SkColor_Reference#SkColor'>SkColor</a> <a href='SkColor_Reference#SkColor'>c</a>);
-<a href='SkColor_Reference#SkColor'>template</a> <<a href='SkImageInfo_Reference#SkAlphaType'>SkAlphaType</a> <a href='SkImageInfo_Reference#SkAlphaType'>kAT</a>>
-<a href='SkImageInfo_Reference#SkAlphaType'>struct</a> <a href='SkColor4f_Reference#SkRGBA4f'>SkRGBA4f</a> {
- // <<a href='SkColor4f_Reference#SkRGBA4f'>i</a>><a href='SkColor4f_Reference#SkRGBA4f'>SkRGBA4f</a> <a href='SkColor4f_Reference#SkRGBA4f'>interface</a></<a href='SkColor4f_Reference#SkRGBA4f'>i</a>>
+<a href='SkColor_Reference#SkPMColor'>SkPMColor</a> <a href='SkColor_Reference#SkPreMultiplyColor'>SkPreMultiplyColor</a>(<a href='SkColor_Reference#SkColor'>SkColor</a> c);
+template <<a href='SkImageInfo_Reference#SkAlphaType'>SkAlphaType</a> kAT>
+struct <a href='SkColor4f_Reference#SkRGBA4f'>SkRGBA4f</a> {
+ // <i><a href='SkColor4f_Reference#SkRGBA4f'>SkRGBA4f</a> interface</i>
};
-<a href='SkColor4f_Reference#SkRGBA4f'>template</a> <> <a href='SkColor4f_Reference#SkColor4f'>SkColor4f</a> <a href='SkColor4f_Reference#SkColor4f'>SkColor4f</a>::<a href='SkColor4f_Reference#SkColor4f'>FromColor</a>(<a href='SkColor_Reference#SkColor'>SkColor</a>);
-<a href='SkColor_Reference#SkColor'>template</a> <> <a href='SkColor_Reference#SkColor'>SkColor</a> <a href='SkColor4f_Reference#SkColor4f'>SkColor4f</a>::<a href='SkColor4f_Reference#SkColor4f'>toSkColor</a>() <a href='SkColor4f_Reference#SkColor4f'>const</a>;
+template <> <a href='SkColor4f_Reference#SkColor4f'>SkColor4f</a> <a href='SkColor4f_Reference#SkColor4f'>SkColor4f</a>::FromColor(<a href='SkColor_Reference#SkColor'>SkColor</a>);
+template <> <a href='SkColor_Reference#SkColor'>SkColor</a> <a href='SkColor4f_Reference#SkColor4f'>SkColor4f</a>::toSkColor() const;
</pre>
-<a href='SkColor_Reference#Color'>Color</a> <a href='SkColor_Reference#Color'>constants</a> <a href='SkColor_Reference#Color'>can</a> <a href='SkColor_Reference#Color'>be</a> <a href='SkColor_Reference#Color'>helpful</a> <a href='SkColor_Reference#Color'>to</a> <a href='SkColor_Reference#Color'>write</a> <a href='SkColor_Reference#Color'>code</a>, <a href='SkColor_Reference#Color'>documenting</a> <a href='SkColor_Reference#Color'>the</a> <a href='SkColor_Reference#Color'>meaning</a> <a href='SkColor_Reference#Color'>of</a> <a href='SkColor_Reference#Color'>values</a>
-<a href='SkColor_Reference#Color'>the</a> <a href='SkColor_Reference#Color'>represent</a> <a href='SkColor_Reference#Color'>transparency</a> <a href='SkColor_Reference#Color'>and</a> <a href='SkColor_Reference#Color'>color</a> <a href='SkColor_Reference#Color'>values</a>. <a href='SkColor_Reference#Color'>The</a> <a href='SkColor_Reference#Color'>use</a> <a href='SkColor_Reference#Color'>of</a> <a href='SkColor_Reference#Color'>Color</a> <a href='SkColor_Reference#Color'>constants</a> <a href='SkColor_Reference#Color'>is</a> <a href='SkColor_Reference#Color'>not</a>
-<a href='SkColor_Reference#Color'>required</a>.
+<a href='SkColor_Reference#Color'>Color</a> constants can be helpful to write code, documenting the meaning of values
+the represent transparency and <a href='SkColor_Reference#Color'>color</a> values. The use of <a href='SkColor_Reference#Color'>Color</a> constants is not
+required.
<a name='Functions'></a>
<a name='Alpha'></a>
-<a href='SkColor_Reference#Alpha'>Alpha</a> <a href='SkColor_Reference#Alpha'>represents</a> <a href='SkColor_Reference#Alpha'>the</a> <a href='SkColor_Reference#Alpha'>transparency</a> <a href='SkColor_Reference#Alpha'>of</a> <a href='SkColor_Reference#Color'>Color</a>. <a href='SkColor_Reference#Color'>Color</a> <a href='SkColor_Reference#Color'>with</a> <a href='SkColor_Reference#Alpha'>Alpha</a> <a href='SkColor_Reference#Alpha'>of</a> <a href='SkColor_Reference#Alpha'>zero</a> <a href='SkColor_Reference#Alpha'>is</a> <a href='SkColor_Reference#Alpha'>fully</a>
-<a href='SkColor_Reference#Alpha'>transparent</a>. <a href='SkColor_Reference#Color'>Color</a> <a href='SkColor_Reference#Color'>with</a> <a href='SkColor_Reference#Alpha'>Alpha</a> <a href='SkColor_Reference#Alpha'>of</a> 255 <a href='SkColor_Reference#Alpha'>is</a> <a href='SkColor_Reference#Alpha'>fully</a> <a href='SkColor_Reference#Alpha'>opaque</a>. <a href='SkColor_Reference#Alpha'>Some</a>, <a href='SkColor_Reference#Alpha'>but</a> <a href='SkColor_Reference#Alpha'>not</a> <a href='SkColor_Reference#Alpha'>all</a> <a href='undocumented#Pixel'>pixel</a>
-<a href='undocumented#Pixel'>formats</a> <a href='undocumented#Pixel'>contain</a> <a href='SkColor_Reference#Alpha'>Alpha</a>. <a href='SkColor_Reference#Alpha'>Pixels</a> <a href='SkColor_Reference#Alpha'>with</a> <a href='SkColor_Reference#Alpha'>Alpha</a> <a href='SkColor_Reference#Alpha'>may</a> <a href='SkColor_Reference#Alpha'>store</a> <a href='SkColor_Reference#Alpha'>it</a> <a href='SkColor_Reference#Alpha'>as</a> <a href='SkColor_Reference#Alpha'>unsigned</a> <a href='SkColor_Reference#Alpha'>integers</a> <a href='SkColor_Reference#Alpha'>or</a>
-<a href='SkColor_Reference#Alpha'>floating</a> <a href='SkPoint_Reference#Point'>point</a> <a href='SkPoint_Reference#Point'>values</a>. <a href='SkPoint_Reference#Point'>Unsigned</a> <a href='SkPoint_Reference#Point'>integer</a> <a href='SkColor_Reference#Alpha'>Alpha</a> <a href='SkColor_Reference#Alpha'>ranges</a> <a href='SkColor_Reference#Alpha'>from</a> <a href='SkColor_Reference#Alpha'>zero</a>, <a href='SkColor_Reference#Alpha'>fully</a>
-<a href='SkColor_Reference#Alpha'>transparent</a>, <a href='SkColor_Reference#Alpha'>to</a> <a href='SkColor_Reference#Alpha'>all</a> <a href='SkColor_Reference#Alpha'>bits</a> <a href='SkColor_Reference#Alpha'>set</a>, <a href='SkColor_Reference#Alpha'>fully</a> <a href='SkColor_Reference#Alpha'>opaque</a>. <a href='SkColor_Reference#Alpha'>Floating</a> <a href='SkPoint_Reference#Point'>point</a> <a href='SkColor_Reference#Alpha'>Alpha</a> <a href='SkColor_Reference#Alpha'>ranges</a> <a href='SkColor_Reference#Alpha'>from</a>
-<a href='SkColor_Reference#Alpha'>zero</a>, <a href='SkColor_Reference#Alpha'>fully</a> <a href='SkColor_Reference#Alpha'>transparent</a>, <a href='SkColor_Reference#Alpha'>to</a> <a href='SkColor_Reference#Alpha'>one</a>, <a href='SkColor_Reference#Alpha'>fully</a> <a href='SkColor_Reference#Alpha'>opaque</a>.
+<a href='SkColor_Reference#Alpha'>Alpha</a> represents the transparency of <a href='SkColor_Reference#Color'>Color</a>. <a href='SkColor_Reference#Color'>Color</a> with <a href='SkColor_Reference#Alpha'>Alpha</a> of zero is fully
+transparent. <a href='SkColor_Reference#Color'>Color</a> with <a href='SkColor_Reference#Alpha'>Alpha</a> of 255 is fully opaque. Some, but not all <a href='undocumented#Pixel'>pixel</a>
+formats contain <a href='SkColor_Reference#Alpha'>Alpha</a>. Pixels with <a href='SkColor_Reference#Alpha'>Alpha</a> may store it as unsigned integers or
+floating <a href='SkPoint_Reference#Point'>point</a> values. Unsigned integer <a href='SkColor_Reference#Alpha'>Alpha</a> ranges from zero, fully
+transparent, to all bits set, fully opaque. Floating <a href='SkPoint_Reference#Point'>point</a> <a href='SkColor_Reference#Alpha'>Alpha</a> ranges from
+zero, fully transparent, to one, fully opaque.
<a name='SkAlpha'></a>
@@ -72,7 +72,7 @@
typedef uint8_t <a href='SkColor_Reference#SkAlpha'>SkAlpha</a>;
</pre>
-8-bit type for an <a href='SkColor_Reference#Alpha'>alpha</a> <a href='SkColor_Reference#Alpha'>value</a>. 255 <a href='SkColor_Reference#Alpha'>is</a> 100% <a href='SkColor_Reference#Alpha'>opaque</a>, <a href='SkColor_Reference#Alpha'>zero</a> <a href='SkColor_Reference#Alpha'>is</a> 100% <a href='SkColor_Reference#Alpha'>transparent</a>.
+8-bit type for an <a href='SkColor_Reference#Alpha'>alpha</a> value. 255 is 100% opaque, zero is 100% transparent.
<a name='SkColor'></a>
@@ -82,14 +82,14 @@
typedef uint32_t <a href='SkColor_Reference#SkColor'>SkColor</a>;
</pre>
-32-bit ARGB <a href='SkColor_Reference#Color'>Color</a> <a href='SkColor_Reference#Color'>value</a>, <a href='undocumented#Unpremultiply'>Unpremultiplied</a>. <a href='SkColor_Reference#Color'>Color</a> <a href='SkColor_Reference#Color'>components</a> <a href='SkColor_Reference#Color'>are</a> <a href='SkColor_Reference#Color'>always</a> <a href='SkColor_Reference#Color'>in</a>
-<a href='SkColor_Reference#Color'>a</a> <a href='SkColor_Reference#Color'>known</a> <a href='SkColor_Reference#Color'>order</a>. <a href='SkColor_Reference#Color'>This</a> <a href='SkColor_Reference#Color'>is</a> <a href='SkColor_Reference#Color'>different</a> <a href='SkColor_Reference#Color'>from</a> <a href='SkColor_Reference#SkPMColor'>SkPMColor</a>, <a href='SkColor_Reference#SkPMColor'>which</a> <a href='SkColor_Reference#SkPMColor'>has</a> <a href='SkColor_Reference#SkPMColor'>its</a> <a href='SkColor_Reference#SkPMColor'>bytes</a> <a href='SkColor_Reference#SkPMColor'>in</a> <a href='SkColor_Reference#SkPMColor'>a</a> <a href='SkColor_Reference#SkPMColor'>configuration</a>
-<a href='SkColor_Reference#SkPMColor'>dependent</a> <a href='SkColor_Reference#SkPMColor'>order</a>, <a href='SkColor_Reference#SkPMColor'>to</a> <a href='SkColor_Reference#SkPMColor'>match</a> <a href='SkColor_Reference#SkPMColor'>the</a> <a href='SkColor_Reference#SkPMColor'>format</a> <a href='SkColor_Reference#SkPMColor'>of</a> <a href='SkImageInfo_Reference#kBGRA_8888_SkColorType'>kBGRA_8888_SkColorType</a> <a href='SkBitmap_Reference#Bitmap'>bitmaps</a>. <a href='SkColor_Reference#SkColor'>SkColor</a>
-<a href='SkColor_Reference#SkColor'>is</a> <a href='SkColor_Reference#SkColor'>the</a> <a href='SkColor_Reference#SkColor'>type</a> <a href='SkColor_Reference#SkColor'>used</a> <a href='SkColor_Reference#SkColor'>to</a> <a href='SkColor_Reference#SkColor'>specify</a> <a href='SkColor_Reference#SkColor'>colors</a> <a href='SkColor_Reference#SkColor'>in</a> <a href='SkPaint_Reference#SkPaint'>SkPaint</a> <a href='SkPaint_Reference#SkPaint'>and</a> <a href='SkPaint_Reference#SkPaint'>in</a> <a href='SkPaint_Reference#SkPaint'>gradients</a>.
+32-bit ARGB <a href='SkColor_Reference#Color'>Color</a> value, <a href='undocumented#Unpremultiply'>Unpremultiplied</a>. <a href='SkColor_Reference#Color'>Color</a> components are always in
+a known order. This is different from <a href='SkColor_Reference#SkPMColor'>SkPMColor</a>, which has its bytes in a configuration
+dependent order, to match the format of <a href='SkImageInfo_Reference#kBGRA_8888_SkColorType'>kBGRA_8888_SkColorType</a> <a href='SkBitmap_Reference#Bitmap'>bitmaps</a>. <a href='SkColor_Reference#SkColor'>SkColor</a>
+is the type used to specify colors in <a href='SkPaint_Reference#SkPaint'>SkPaint</a> and in gradients.
-<a href='SkColor_Reference#Color'>Color</a> <a href='SkColor_Reference#Color'>that</a> <a href='SkColor_Reference#Color'>is</a> <a href='undocumented#Premultiply'>Premultiplied</a> <a href='undocumented#Premultiply'>has</a> <a href='undocumented#Premultiply'>the</a> <a href='undocumented#Premultiply'>same</a> <a href='undocumented#Premultiply'>component</a> <a href='undocumented#Premultiply'>values</a> <a href='undocumented#Premultiply'>as</a> <a href='SkColor_Reference#Color'>Color</a>
-<a href='SkColor_Reference#Color'>that</a> <a href='SkColor_Reference#Color'>is</a> <a href='undocumented#Unpremultiply'>Unpremultiplied</a> <a href='undocumented#Unpremultiply'>if</a> <a href='SkColor_Reference#Alpha'>Alpha</a> <a href='SkColor_Reference#Alpha'>is</a> 255, <a href='SkColor_Reference#Alpha'>fully</a> <a href='SkColor_Reference#Alpha'>opaque</a>, <a href='SkColor_Reference#Alpha'>although</a> <a href='SkColor_Reference#Alpha'>may</a> <a href='SkColor_Reference#Alpha'>have</a> <a href='SkColor_Reference#Alpha'>the</a>
-<a href='SkColor_Reference#Alpha'>component</a> <a href='SkColor_Reference#Alpha'>values</a> <a href='SkColor_Reference#Alpha'>in</a> <a href='SkColor_Reference#Alpha'>a</a> <a href='SkColor_Reference#Alpha'>different</a> <a href='SkColor_Reference#Alpha'>order</a>.
+<a href='SkColor_Reference#Color'>Color</a> that is <a href='undocumented#Premultiply'>Premultiplied</a> has the same component values as <a href='SkColor_Reference#Color'>Color</a>
+that is <a href='undocumented#Unpremultiply'>Unpremultiplied</a> if <a href='SkColor_Reference#Alpha'>Alpha</a> is 255, fully opaque, although may have the
+component values in a different order.
### See Also
@@ -100,17 +100,17 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-static constexpr inline <a href='SkColor_Reference#SkColor'>SkColor</a> <a href='SkColor_Reference#SkColorSetARGB'>SkColorSetARGB</a>(<a href='undocumented#U8CPU'>U8CPU</a> <a href='undocumented#U8CPU'>a</a>, <a href='undocumented#U8CPU'>U8CPU</a> <a href='undocumented#U8CPU'>r</a>, <a href='undocumented#U8CPU'>U8CPU</a> <a href='undocumented#U8CPU'>g</a>, <a href='undocumented#U8CPU'>U8CPU</a> <a href='undocumented#U8CPU'>b</a>)
+static constexpr inline <a href='SkColor_Reference#SkColor'>SkColor</a> <a href='SkColor_Reference#SkColorSetARGB'>SkColorSetARGB</a>(<a href='undocumented#U8CPU'>U8CPU</a> a, <a href='undocumented#U8CPU'>U8CPU</a> r, <a href='undocumented#U8CPU'>U8CPU</a> g, <a href='undocumented#U8CPU'>U8CPU</a> b)
</pre>
-Returns <a href='SkColor_Reference#Color'>Color</a> <a href='SkColor_Reference#Color'>value</a> <a href='SkColor_Reference#Color'>from</a> 8-<a href='SkColor_Reference#Color'>bit</a> <a href='SkColor_Reference#Color'>component</a> <a href='SkColor_Reference#Color'>values</a>. <a href='SkColor_Reference#Color'>Asserts</a> <a href='SkColor_Reference#Color'>if</a> <a href='SkColor_Reference#Color'>SK_DEBUG</a> <a href='SkColor_Reference#Color'>is</a> <a href='SkColor_Reference#Color'>defined</a>
-<a href='SkColor_Reference#Color'>if</a> <a href='#SkColorSetARGB_a'>a</a>, <a href='#SkColorSetARGB_r'>r</a>, <a href='#SkColorSetARGB_g'>g</a>, <a href='#SkColorSetARGB_g'>or</a> <a href='#SkColorSetARGB_b'>b</a> <a href='#SkColorSetARGB_b'>exceed</a> 255. <a href='#SkColorSetARGB_b'>Since</a> <a href='SkColor_Reference#Color'>Color</a> <a href='SkColor_Reference#Color'>is</a> <a href='undocumented#Unpremultiply'>Unpremultiplied</a>, <a href='#SkColorSetARGB_a'>a</a> <a href='#SkColorSetARGB_a'>may</a> <a href='#SkColorSetARGB_a'>be</a> <a href='#SkColorSetARGB_a'>smaller</a>
-<a href='#SkColorSetARGB_a'>than</a> <a href='#SkColorSetARGB_a'>the</a> <a href='#SkColorSetARGB_a'>largest</a> <a href='#SkColorSetARGB_a'>of</a> <a href='#SkColorSetARGB_r'>r</a>, <a href='#SkColorSetARGB_g'>g</a>, <a href='#SkColorSetARGB_g'>and</a> <a href='#SkColorSetARGB_b'>b</a>.
+Returns <a href='SkColor_Reference#Color'>Color</a> value from 8-bit component values. Asserts if SK_DEBUG is defined
+if <a href='#SkColorSetARGB_a'>a</a>, <a href='#SkColorSetARGB_r'>r</a>, <a href='#SkColorSetARGB_g'>g</a>, or <a href='#SkColorSetARGB_b'>b</a> exceed 255. Since <a href='SkColor_Reference#Color'>Color</a> is <a href='undocumented#Unpremultiply'>Unpremultiplied</a>, <a href='#SkColorSetARGB_a'>a</a> may be smaller
+than the largest of <a href='#SkColorSetARGB_r'>r</a>, <a href='#SkColorSetARGB_g'>g</a>, and <a href='#SkColorSetARGB_b'>b</a>.
### Parameters
<table> <tr> <td><a name='SkColorSetARGB_a'><code><strong>a</strong></code></a></td>
- <td>amount of <a href='SkColor_Reference#Alpha'>Alpha</a>, <a href='SkColor_Reference#Alpha'>from</a> <a href='SkColor_Reference#Alpha'>fully</a> <a href='SkColor_Reference#Alpha'>transparent</a> (0) <a href='SkColor_Reference#Alpha'>to</a> <a href='SkColor_Reference#Alpha'>fully</a> <a href='SkColor_Reference#Alpha'>opaque</a> (255)</td>
+ <td>amount of <a href='SkColor_Reference#Alpha'>Alpha</a>, from fully transparent (0) to fully opaque (255)</td>
</tr>
<tr> <td><a name='SkColorSetARGB_r'><code><strong>r</strong></code></a></td>
<td>amount of red, from no red (0) to full red (255)</td>
@@ -125,7 +125,7 @@
### Return Value
-<a href='SkColor_Reference#Color'>color</a> <a href='SkColor_Reference#Color'>and</a> <a href='SkColor_Reference#Alpha'>alpha</a>, <a href='undocumented#Unpremultiply'>Unpremultiplied</a>
+<a href='SkColor_Reference#Color'>color</a> and <a href='SkColor_Reference#Alpha'>alpha</a>, <a href='undocumented#Unpremultiply'>Unpremultiplied</a>
### Example
@@ -140,11 +140,11 @@
---
<pre style="padding: 1em 1em 1em 1em;width: 62.5em; background-color: #f0f0f0">
-#define <a href='SkColor_Reference#SkColorSetRGB'>SkColorSetRGB</a>(<a href='SkColor_Reference#SkColorSetRGB'>r</a>, <a href='SkColor_Reference#SkColorSetRGB'>g</a>, <a href='SkColor_Reference#SkColorSetRGB'>b</a>) <a href='SkColor_Reference#SkColorSetARGB'>SkColorSetARGB</a>(0<a href='SkColor_Reference#SkColorSetARGB'>xFF</a>, <a href='SkColor_Reference#SkColorSetARGB'>r</a>, <a href='SkColor_Reference#SkColorSetARGB'>g</a>, <a href='SkColor_Reference#SkColorSetARGB'>b</a>);
+#define <a href='SkColor_Reference#SkColorSetRGB'>SkColorSetRGB</a>(r, g, b) <a href='SkColor_Reference#SkColorSetARGB'>SkColorSetARGB</a>(0xFF, r, g, b);
</pre>
-Returns <a href='SkColor_Reference#Color'>Color</a> <a href='SkColor_Reference#Color'>value</a> <a href='SkColor_Reference#Color'>from</a> 8-<a href='SkColor_Reference#Color'>bit</a> <a href='SkColor_Reference#Color'>component</a> <a href='SkColor_Reference#Color'>values</a>, <a href='SkColor_Reference#Color'>with</a> <a href='SkColor_Reference#Alpha'>Alpha</a> <a href='SkColor_Reference#Alpha'>set</a>
-<a href='SkColor_Reference#Alpha'>fully</a> <a href='SkColor_Reference#Alpha'>opaque</a> <a href='SkColor_Reference#Alpha'>to</a> 255.
+Returns <a href='SkColor_Reference#Color'>Color</a> value from 8-bit component values, with <a href='SkColor_Reference#Alpha'>Alpha</a> set
+fully opaque to 255.
### Parameters
@@ -161,7 +161,7 @@
### Return Value
-<a href='SkColor_Reference#Color'>color</a> <a href='SkColor_Reference#Color'>with</a> <a href='SkColor_Reference#Color'>opaque</a> <a href='SkColor_Reference#Alpha'>alpha</a>
+<a href='SkColor_Reference#Color'>color</a> with opaque <a href='SkColor_Reference#Alpha'>alpha</a>
### Example
@@ -176,15 +176,15 @@
---
<pre style="padding: 1em 1em 1em 1em;width: 62.5em; background-color: #f0f0f0">
-#define <a href='SkColor_Reference#SkColorGetA'>SkColorGetA</a>(<a href='SkColor_Reference#Color'>color</a>) (((<a href='SkColor_Reference#Color'>color</a>) >> 24) & 0<a href='SkColor_Reference#Color'>xFF</a>);
+#define <a href='SkColor_Reference#SkColorGetA'>SkColorGetA</a>(<a href='SkColor_Reference#Color'>color</a>) (((<a href='SkColor_Reference#Color'>color</a>) >> 24) & 0xFF);
</pre>
-Returns <a href='SkColor_Reference#Alpha'>Alpha</a> <a href='SkColor_Reference#Alpha'>byte</a> <a href='SkColor_Reference#Alpha'>from</a> <a href='SkColor_Reference#Color'>Color</a> <a href='SkColor_Reference#Color'>value</a>.
+Returns <a href='SkColor_Reference#Alpha'>Alpha</a> byte from <a href='SkColor_Reference#Color'>Color</a> value.
### Parameters
<table> <tr> <td><a name='SkColorGetA_color'><code><strong>color</strong></code></a></td>
- <td><a href='SkColor_Reference#SkColor'>SkColor</a>, <a href='SkColor_Reference#SkColor'>a</a> 32-<a href='SkColor_Reference#SkColor'>bit</a> <a href='SkColor_Reference#SkColor'>unsigned</a> <a href='SkColor_Reference#SkColor'>int</a>, <a href='SkColor_Reference#SkColor'>in</a> 0<a href='SkColor_Reference#SkColor'>xAARRGGBB</a> <a href='SkColor_Reference#SkColor'>format</a></td>
+ <td><a href='SkColor_Reference#SkColor'>SkColor</a>, a 32-bit unsigned int, in 0xAARRGGBB format</td>
</tr>
</table>
@@ -201,15 +201,15 @@
---
<pre style="padding: 1em 1em 1em 1em;width: 62.5em; background-color: #f0f0f0">
-#define <a href='SkColor_Reference#SkColorGetR'>SkColorGetR</a>(<a href='SkColor_Reference#Color'>color</a>) (((<a href='SkColor_Reference#Color'>color</a>) >> 16) & 0<a href='SkColor_Reference#Color'>xFF</a>);
+#define <a href='SkColor_Reference#SkColorGetR'>SkColorGetR</a>(<a href='SkColor_Reference#Color'>color</a>) (((<a href='SkColor_Reference#Color'>color</a>) >> 16) & 0xFF);
</pre>
-Returns red component of <a href='SkColor_Reference#Color'>Color</a>, <a href='SkColor_Reference#Color'>from</a> <a href='SkColor_Reference#Color'>zero</a> <a href='SkColor_Reference#Color'>to</a> 255.
+Returns red component of <a href='SkColor_Reference#Color'>Color</a>, from zero to 255.
### Parameters
<table> <tr> <td><a name='SkColorGetR_color'><code><strong>color</strong></code></a></td>
- <td><a href='SkColor_Reference#SkColor'>SkColor</a>, <a href='SkColor_Reference#SkColor'>a</a> 32-<a href='SkColor_Reference#SkColor'>bit</a> <a href='SkColor_Reference#SkColor'>unsigned</a> <a href='SkColor_Reference#SkColor'>int</a>, <a href='SkColor_Reference#SkColor'>in</a> 0<a href='SkColor_Reference#SkColor'>xAARRGGBB</a> <a href='SkColor_Reference#SkColor'>format</a></td>
+ <td><a href='SkColor_Reference#SkColor'>SkColor</a>, a 32-bit unsigned int, in 0xAARRGGBB format</td>
</tr>
</table>
@@ -230,15 +230,15 @@
---
<pre style="padding: 1em 1em 1em 1em;width: 62.5em; background-color: #f0f0f0">
-#define <a href='SkColor_Reference#SkColorGetG'>SkColorGetG</a>(<a href='SkColor_Reference#Color'>color</a>) (((<a href='SkColor_Reference#Color'>color</a>) >> 8) & 0<a href='SkColor_Reference#Color'>xFF</a>);
+#define <a href='SkColor_Reference#SkColorGetG'>SkColorGetG</a>(<a href='SkColor_Reference#Color'>color</a>) (((<a href='SkColor_Reference#Color'>color</a>) >> 8) & 0xFF);
</pre>
-Returns green component of <a href='SkColor_Reference#Color'>Color</a>, <a href='SkColor_Reference#Color'>from</a> <a href='SkColor_Reference#Color'>zero</a> <a href='SkColor_Reference#Color'>to</a> 255.
+Returns green component of <a href='SkColor_Reference#Color'>Color</a>, from zero to 255.
### Parameters
<table> <tr> <td><a name='SkColorGetG_color'><code><strong>color</strong></code></a></td>
- <td><a href='SkColor_Reference#SkColor'>SkColor</a>, <a href='SkColor_Reference#SkColor'>a</a> 32-<a href='SkColor_Reference#SkColor'>bit</a> <a href='SkColor_Reference#SkColor'>unsigned</a> <a href='SkColor_Reference#SkColor'>int</a>, <a href='SkColor_Reference#SkColor'>in</a> 0<a href='SkColor_Reference#SkColor'>xAARRGGBB</a> <a href='SkColor_Reference#SkColor'>format</a></td>
+ <td><a href='SkColor_Reference#SkColor'>SkColor</a>, a 32-bit unsigned int, in 0xAARRGGBB format</td>
</tr>
</table>
@@ -259,15 +259,15 @@
---
<pre style="padding: 1em 1em 1em 1em;width: 62.5em; background-color: #f0f0f0">
-#define <a href='SkColor_Reference#SkColorGetB'>SkColorGetB</a>(<a href='SkColor_Reference#Color'>color</a>) (((<a href='SkColor_Reference#Color'>color</a>) >> 0) & 0<a href='SkColor_Reference#Color'>xFF</a>);
+#define <a href='SkColor_Reference#SkColorGetB'>SkColorGetB</a>(<a href='SkColor_Reference#Color'>color</a>) (((<a href='SkColor_Reference#Color'>color</a>) >> 0) & 0xFF);
</pre>
-Returns blue component of <a href='SkColor_Reference#Color'>Color</a>, <a href='SkColor_Reference#Color'>from</a> <a href='SkColor_Reference#Color'>zero</a> <a href='SkColor_Reference#Color'>to</a> 255.
+Returns blue component of <a href='SkColor_Reference#Color'>Color</a>, from zero to 255.
### Parameters
<table> <tr> <td><a name='SkColorGetB_color'><code><strong>color</strong></code></a></td>
- <td><a href='SkColor_Reference#SkColor'>SkColor</a>, <a href='SkColor_Reference#SkColor'>a</a> 32-<a href='SkColor_Reference#SkColor'>bit</a> <a href='SkColor_Reference#SkColor'>unsigned</a> <a href='SkColor_Reference#SkColor'>int</a>, <a href='SkColor_Reference#SkColor'>in</a> 0<a href='SkColor_Reference#SkColor'>xAARRGGBB</a> <a href='SkColor_Reference#SkColor'>format</a></td>
+ <td><a href='SkColor_Reference#SkColor'>SkColor</a>, a 32-bit unsigned int, in 0xAARRGGBB format</td>
</tr>
</table>
@@ -288,11 +288,11 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-static constexpr inline <a href='SkColor_Reference#SkColor'>SkColor</a> <a href='SkColor_Reference#SkColorSetA'>SkColorSetA</a>(<a href='SkColor_Reference#SkColor'>SkColor</a> <a href='SkColor_Reference#SkColor'>c</a>, <a href='undocumented#U8CPU'>U8CPU</a> <a href='undocumented#U8CPU'>a</a>)
+static constexpr inline <a href='SkColor_Reference#SkColor'>SkColor</a> <a href='SkColor_Reference#SkColorSetA'>SkColorSetA</a>(<a href='SkColor_Reference#SkColor'>SkColor</a> c, <a href='undocumented#U8CPU'>U8CPU</a> a)
</pre>
-Returns <a href='undocumented#Unpremultiply'>Unpremultiplied</a> <a href='SkColor_Reference#Color'>Color</a> <a href='SkColor_Reference#Color'>with</a> <a href='SkColor_Reference#Color'>red</a>, <a href='SkColor_Reference#Color'>blue</a>, <a href='SkColor_Reference#Color'>and</a> <a href='SkColor_Reference#Color'>green</a> <a href='SkColor_Reference#Color'>set</a> <a href='SkColor_Reference#Color'>from</a> <a href='#SkColorSetA_c'>c</a>; <a href='#SkColorSetA_c'>and</a> <a href='SkColor_Reference#Alpha'>alpha</a> <a href='SkColor_Reference#Alpha'>set</a>
-<a href='SkColor_Reference#Alpha'>from</a> <a href='#SkColorSetA_a'>a</a>. <a href='SkColor_Reference#Alpha'>Alpha</a> <a href='SkColor_Reference#Alpha'>component</a> <a href='SkColor_Reference#Alpha'>of</a> <a href='#SkColorSetA_c'>c</a> <a href='#SkColorSetA_c'>is</a> <a href='#SkColorSetA_c'>ignored</a> <a href='#SkColorSetA_c'>and</a> <a href='#SkColorSetA_c'>is</a> <a href='#SkColorSetA_c'>replaced</a> <a href='#SkColorSetA_c'>by</a> <a href='#SkColorSetA_a'>a</a> <a href='#SkColorSetA_a'>in</a> <a href='#SkColorSetA_a'>result</a>.
+Returns <a href='undocumented#Unpremultiply'>Unpremultiplied</a> <a href='SkColor_Reference#Color'>Color</a> with red, blue, and green set from <a href='#SkColorSetA_c'>c</a>; and <a href='SkColor_Reference#Alpha'>alpha</a> set
+from <a href='#SkColorSetA_a'>a</a>. <a href='SkColor_Reference#Alpha'>Alpha</a> component of <a href='#SkColorSetA_c'>c</a> is ignored and is replaced by <a href='#SkColorSetA_a'>a</a> in result.
### Parameters
@@ -300,13 +300,13 @@
<td>packed RGB, eight bits per component</td>
</tr>
<tr> <td><a name='SkColorSetA_a'><code><strong>a</strong></code></a></td>
- <td><a href='SkColor_Reference#Alpha'>Alpha</a>: <a href='SkColor_Reference#Alpha'>transparent</a> <a href='SkColor_Reference#Alpha'>at</a> <a href='SkColor_Reference#Alpha'>zero</a>, <a href='SkColor_Reference#Alpha'>fully</a> <a href='SkColor_Reference#Alpha'>opaque</a> <a href='SkColor_Reference#Alpha'>at</a> 255</td>
+ <td><a href='SkColor_Reference#Alpha'>Alpha</a>: transparent at zero, fully opaque at 255</td>
</tr>
</table>
### Return Value
-<a href='SkColor_Reference#Color'>Color</a> <a href='SkColor_Reference#Color'>with</a> <a href='SkColor_Reference#Color'>transparency</a>
+<a href='SkColor_Reference#Color'>Color</a> with transparency
### Example
@@ -321,12 +321,12 @@
---
<pre style="padding: 1em 1em 1em 1em;width: 62.5em; background-color: #f0f0f0">
-constexpr <a href='SkColor_Reference#SkAlpha'>SkAlpha</a> <a href='SkColor_Reference#SK_AlphaTRANSPARENT'>SK_AlphaTRANSPARENT</a> = 0<a href='SkColor_Reference#SK_AlphaTRANSPARENT'>x00</a>;
-<a href='SkColor_Reference#SK_AlphaTRANSPARENT'>constexpr</a> <a href='SkColor_Reference#SkAlpha'>SkAlpha</a> <a href='SkColor_Reference#SK_AlphaOPAQUE'>SK_AlphaOPAQUE</a> = 0<a href='SkColor_Reference#SK_AlphaOPAQUE'>xFF</a>;
+constexpr <a href='SkColor_Reference#SkAlpha'>SkAlpha</a> <a href='SkColor_Reference#SK_AlphaTRANSPARENT'>SK_AlphaTRANSPARENT</a> = 0x00;
+constexpr <a href='SkColor_Reference#SkAlpha'>SkAlpha</a> <a href='SkColor_Reference#SK_AlphaOPAQUE'>SK_AlphaOPAQUE</a> = 0xFF;
</pre>
-<a href='SkColor_Reference#Alpha'>Alpha</a> <a href='SkColor_Reference#Alpha'>constants</a> <a href='SkColor_Reference#Alpha'>are</a> <a href='SkColor_Reference#Alpha'>conveniences</a> <a href='SkColor_Reference#Alpha'>to</a> <a href='SkColor_Reference#Alpha'>represent</a> <a href='SkColor_Reference#Alpha'>fully</a> <a href='SkColor_Reference#Alpha'>transparent</a> <a href='SkColor_Reference#Alpha'>and</a> <a href='SkColor_Reference#Alpha'>fully</a>
-<a href='SkColor_Reference#Alpha'>opaque</a> <a href='SkColor_Reference#Alpha'>colors</a> <a href='SkColor_Reference#Alpha'>and</a> <a href='SkColor_Reference#Alpha'>masks</a>. <a href='SkColor_Reference#Alpha'>Their</a> <a href='SkColor_Reference#Alpha'>use</a> <a href='SkColor_Reference#Alpha'>is</a> <a href='SkColor_Reference#Alpha'>not</a> <a href='SkColor_Reference#Alpha'>required</a>.
+<a href='SkColor_Reference#Alpha'>Alpha</a> constants are conveniences to represent fully transparent and fully
+opaque colors and masks. Their use is not required.
### Constants
@@ -338,28 +338,28 @@
<td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a name='SK_AlphaTRANSPARENT'><code>SK_AlphaTRANSPARENT</code></a></td>
<td style='text-align: center; border: 2px solid #dddddd; padding: 8px; '>0x00</td>
<td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>
-Represents fully transparent <a href='SkColor_Reference#SkAlpha'>SkAlpha</a> <a href='SkColor_Reference#SkAlpha'>value</a>. <a href='SkColor_Reference#SkAlpha'>SkAlpha</a> <a href='SkColor_Reference#SkAlpha'>ranges</a> <a href='SkColor_Reference#SkAlpha'>from</a> <a href='SkColor_Reference#SkAlpha'>zero</a>,
-<a href='SkColor_Reference#SkAlpha'>fully</a> <a href='SkColor_Reference#SkAlpha'>transparent</a>; <a href='SkColor_Reference#SkAlpha'>to</a> 255, <a href='SkColor_Reference#SkAlpha'>fully</a> <a href='SkColor_Reference#SkAlpha'>opaque</a>.
+Represents fully transparent <a href='SkColor_Reference#SkAlpha'>SkAlpha</a> value. <a href='SkColor_Reference#SkAlpha'>SkAlpha</a> ranges from zero,
+fully transparent; to 255, fully opaque.
</td>
</tr>
<tr>
<td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a name='SK_AlphaOPAQUE'><code>SK_AlphaOPAQUE</code></a></td>
<td style='text-align: center; border: 2px solid #dddddd; padding: 8px; '>0xFF</td>
<td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>
-Represents fully opaque <a href='SkColor_Reference#SkAlpha'>SkAlpha</a> <a href='SkColor_Reference#SkAlpha'>value</a>. <a href='SkColor_Reference#SkAlpha'>SkAlpha</a> <a href='SkColor_Reference#SkAlpha'>ranges</a> <a href='SkColor_Reference#SkAlpha'>from</a> <a href='SkColor_Reference#SkAlpha'>zero</a>,
-<a href='SkColor_Reference#SkAlpha'>fully</a> <a href='SkColor_Reference#SkAlpha'>transparent</a>; <a href='SkColor_Reference#SkAlpha'>to</a> 255, <a href='SkColor_Reference#SkAlpha'>fully</a> <a href='SkColor_Reference#SkAlpha'>opaque</a>.
+Represents fully opaque <a href='SkColor_Reference#SkAlpha'>SkAlpha</a> value. <a href='SkColor_Reference#SkAlpha'>SkAlpha</a> ranges from zero,
+fully transparent; to 255, fully opaque.
</td>
</tr>
</table>
### Example
-<div><fiddle-embed name="bc9c7ea424d10bbcd1e5a88770d4794e"><div><a href='SkColor_Reference#Color'>Color</a> <a href='SkColor_Reference#Color'>the</a> <a href='SkColor_Reference#Color'>parts</a> <a href='SkColor_Reference#Color'>of</a> <a href='SkColor_Reference#Color'>the</a> <a href='SkBitmap_Reference#Bitmap'>bitmap</a> <a href='SkBitmap_Reference#Bitmap'>red</a> <a href='SkBitmap_Reference#Bitmap'>if</a> <a href='SkBitmap_Reference#Bitmap'>they</a> <a href='SkBitmap_Reference#Bitmap'>mostly</a> <a href='SkBitmap_Reference#Bitmap'>contain</a> <a href='SkBitmap_Reference#Bitmap'>transparent</a> <a href='SkBitmap_Reference#Bitmap'>pixels</a>.
+<div><fiddle-embed name="bc9c7ea424d10bbcd1e5a88770d4794e"><div><a href='SkColor_Reference#Color'>Color</a> the parts of the <a href='SkBitmap_Reference#Bitmap'>bitmap</a> red if they mostly contain transparent pixels.
</div></fiddle-embed></div>
### Example
-<div><fiddle-embed name="0424f67ebc2858e8fd04ae3367b115ff"><div><a href='SkColor_Reference#Color'>Color</a> <a href='SkColor_Reference#Color'>the</a> <a href='SkColor_Reference#Color'>parts</a> <a href='SkColor_Reference#Color'>of</a> <a href='SkColor_Reference#Color'>the</a> <a href='SkBitmap_Reference#Bitmap'>bitmap</a> <a href='SkBitmap_Reference#Bitmap'>green</a> <a href='SkBitmap_Reference#Bitmap'>if</a> <a href='SkBitmap_Reference#Bitmap'>they</a> <a href='SkBitmap_Reference#Bitmap'>contain</a> <a href='SkBitmap_Reference#Bitmap'>fully</a> <a href='SkBitmap_Reference#Bitmap'>opaque</a> <a href='SkBitmap_Reference#Bitmap'>pixels</a>.
+<div><fiddle-embed name="0424f67ebc2858e8fd04ae3367b115ff"><div><a href='SkColor_Reference#Color'>Color</a> the parts of the <a href='SkBitmap_Reference#Bitmap'>bitmap</a> green if they contain fully opaque pixels.
</div></fiddle-embed></div>
### See Also
@@ -372,22 +372,22 @@
<pre style="padding: 1em 1em 1em 1em;width: 62.5em; background-color: #f0f0f0">
constexpr <a href='SkColor_Reference#SkColor'>SkColor</a> <a href='SkColor_Reference#SK_ColorTRANSPARENT'>SK_ColorTRANSPARENT</a>;
-<a href='SkColor_Reference#SK_ColorTRANSPARENT'>constexpr</a> <a href='SkColor_Reference#SkColor'>SkColor</a> <a href='SkColor_Reference#SK_ColorBLACK'>SK_ColorBLACK</a>;
-<a href='SkColor_Reference#SK_ColorBLACK'>constexpr</a> <a href='SkColor_Reference#SkColor'>SkColor</a> <a href='SkColor_Reference#SK_ColorDKGRAY'>SK_ColorDKGRAY</a>;
-<a href='SkColor_Reference#SK_ColorDKGRAY'>constexpr</a> <a href='SkColor_Reference#SkColor'>SkColor</a> <a href='SkColor_Reference#SK_ColorGRAY'>SK_ColorGRAY</a>;
-<a href='SkColor_Reference#SK_ColorGRAY'>constexpr</a> <a href='SkColor_Reference#SkColor'>SkColor</a> <a href='SkColor_Reference#SK_ColorLTGRAY'>SK_ColorLTGRAY</a>;
-<a href='SkColor_Reference#SK_ColorLTGRAY'>constexpr</a> <a href='SkColor_Reference#SkColor'>SkColor</a> <a href='SkColor_Reference#SK_ColorWHITE'>SK_ColorWHITE</a>;
-<a href='SkColor_Reference#SK_ColorWHITE'>constexpr</a> <a href='SkColor_Reference#SkColor'>SkColor</a> <a href='SkColor_Reference#SK_ColorRED'>SK_ColorRED</a>;
-<a href='SkColor_Reference#SK_ColorRED'>constexpr</a> <a href='SkColor_Reference#SkColor'>SkColor</a> <a href='SkColor_Reference#SK_ColorGREEN'>SK_ColorGREEN</a>;
-<a href='SkColor_Reference#SK_ColorGREEN'>constexpr</a> <a href='SkColor_Reference#SkColor'>SkColor</a> <a href='SkColor_Reference#SK_ColorBLUE'>SK_ColorBLUE</a>;
-<a href='SkColor_Reference#SK_ColorBLUE'>constexpr</a> <a href='SkColor_Reference#SkColor'>SkColor</a> <a href='SkColor_Reference#SK_ColorYELLOW'>SK_ColorYELLOW</a>;
-<a href='SkColor_Reference#SK_ColorYELLOW'>constexpr</a> <a href='SkColor_Reference#SkColor'>SkColor</a> <a href='SkColor_Reference#SK_ColorCYAN'>SK_ColorCYAN</a>;
-<a href='SkColor_Reference#SK_ColorCYAN'>constexpr</a> <a href='SkColor_Reference#SkColor'>SkColor</a> <a href='SkColor_Reference#SK_ColorMAGENTA'>SK_ColorMAGENTA</a>;
+constexpr <a href='SkColor_Reference#SkColor'>SkColor</a> <a href='SkColor_Reference#SK_ColorBLACK'>SK_ColorBLACK</a>;
+constexpr <a href='SkColor_Reference#SkColor'>SkColor</a> <a href='SkColor_Reference#SK_ColorDKGRAY'>SK_ColorDKGRAY</a>;
+constexpr <a href='SkColor_Reference#SkColor'>SkColor</a> <a href='SkColor_Reference#SK_ColorGRAY'>SK_ColorGRAY</a>;
+constexpr <a href='SkColor_Reference#SkColor'>SkColor</a> <a href='SkColor_Reference#SK_ColorLTGRAY'>SK_ColorLTGRAY</a>;
+constexpr <a href='SkColor_Reference#SkColor'>SkColor</a> <a href='SkColor_Reference#SK_ColorWHITE'>SK_ColorWHITE</a>;
+constexpr <a href='SkColor_Reference#SkColor'>SkColor</a> <a href='SkColor_Reference#SK_ColorRED'>SK_ColorRED</a>;
+constexpr <a href='SkColor_Reference#SkColor'>SkColor</a> <a href='SkColor_Reference#SK_ColorGREEN'>SK_ColorGREEN</a>;
+constexpr <a href='SkColor_Reference#SkColor'>SkColor</a> <a href='SkColor_Reference#SK_ColorBLUE'>SK_ColorBLUE</a>;
+constexpr <a href='SkColor_Reference#SkColor'>SkColor</a> <a href='SkColor_Reference#SK_ColorYELLOW'>SK_ColorYELLOW</a>;
+constexpr <a href='SkColor_Reference#SkColor'>SkColor</a> <a href='SkColor_Reference#SK_ColorCYAN'>SK_ColorCYAN</a>;
+constexpr <a href='SkColor_Reference#SkColor'>SkColor</a> <a href='SkColor_Reference#SK_ColorMAGENTA'>SK_ColorMAGENTA</a>;
</pre>
-<a href='SkColor_Reference#Color'>Color</a> <a href='SkColor_Reference#Color'>names</a> <a href='SkColor_Reference#Color'>are</a> <a href='SkColor_Reference#Color'>provided</a> <a href='SkColor_Reference#Color'>as</a> <a href='SkColor_Reference#Color'>conveniences</a>, <a href='SkColor_Reference#Color'>but</a> <a href='SkColor_Reference#Color'>are</a> <a href='SkColor_Reference#Color'>not</a> <a href='SkColor_Reference#Color'>otherwise</a> <a href='SkColor_Reference#Color'>special</a>.
-<a href='SkColor_Reference#Color'>The</a> <a href='SkColor_Reference#Color'>values</a> <a href='SkColor_Reference#Color'>chosen</a> <a href='SkColor_Reference#Color'>for</a> <a href='SkColor_Reference#Color'>names</a> <a href='SkColor_Reference#Color'>may</a> <a href='SkColor_Reference#Color'>not</a> <a href='SkColor_Reference#Color'>be</a> <a href='SkColor_Reference#Color'>the</a> <a href='SkColor_Reference#Color'>same</a> <a href='SkColor_Reference#Color'>as</a> <a href='SkColor_Reference#Color'>values</a> <a href='SkColor_Reference#Color'>used</a> <a href='SkColor_Reference#Color'>by</a>
-<a href='undocumented#SVG'>SVG</a>, <a href='undocumented#SVG'>HTML</a>, <a href='undocumented#SVG'>CSS</a>, <a href='undocumented#SVG'>or</a> <a href='undocumented#SVG'>colors</a> <a href='undocumented#SVG'>named</a> <a href='undocumented#SVG'>by</a> <a href='undocumented#SVG'>a</a> <a href='undocumented#SVG'>platform</a>.
+<a href='SkColor_Reference#Color'>Color</a> names are provided as conveniences, but are not otherwise special.
+The values chosen for names may not be the same as values used by
+<a href='undocumented#SVG'>SVG</a>, HTML, CSS, or colors named by a platform.
### Constants
@@ -399,8 +399,8 @@
<td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a name='SK_ColorTRANSPARENT'><code>SK_ColorTRANSPARENT</code></a></td>
<td style='text-align: center; border: 2px solid #dddddd; padding: 8px; '>0x00000000</td>
<td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>
-Represents fully transparent <a href='SkColor_Reference#SkColor'>SkColor</a>. <a href='SkColor_Reference#SkColor'>May</a> <a href='SkColor_Reference#SkColor'>be</a> <a href='SkColor_Reference#SkColor'>used</a> <a href='SkColor_Reference#SkColor'>to</a> <a href='SkColor_Reference#SkColor'>initialize</a> <a href='SkColor_Reference#SkColor'>a</a> <a href='SkColor_Reference#SkColor'>destination</a>
-<a href='SkColor_Reference#SkColor'>containing</a> <a href='SkColor_Reference#SkColor'>a</a> <a href='SkColor_Reference#SkColor'>mask</a> <a href='SkColor_Reference#SkColor'>or</a> <a href='SkColor_Reference#SkColor'>a</a> <a href='SkColor_Reference#SkColor'>non-rectangular</a> <a href='SkImage_Reference#Image'>image</a>.
+Represents fully transparent <a href='SkColor_Reference#SkColor'>SkColor</a>. May be used to initialize a destination
+containing a mask or a non-rectangular <a href='SkImage_Reference#Image'>image</a>.
</td>
</tr>
<tr>
@@ -415,7 +415,7 @@
<td style='text-align: center; border: 2px solid #dddddd; padding: 8px; '>0xFF444444</td>
<td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>
Represents fully opaque dark gray.
-Note that <a href='#SVG_darkgray'>SVG_darkgray</a> <a href='#SVG_darkgray'>is</a> <a href='#SVG_darkgray'>equivalent</a> <a href='#SVG_darkgray'>to</a> 0<a href='#SVG_darkgray'>xFFA9A9A9</a>.
+Note that <a href='#SVG_darkgray'>SVG_darkgray</a> is equivalent to 0xFFA9A9A9.
</td>
</tr>
<tr>
@@ -423,15 +423,15 @@
<td style='text-align: center; border: 2px solid #dddddd; padding: 8px; '>0xFF888888</td>
<td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>
Represents fully opaque gray.
-Note that <a href='#HTML_Gray'>HTML_Gray</a> <a href='#HTML_Gray'>is</a> <a href='#HTML_Gray'>equivalent</a> <a href='#HTML_Gray'>to</a> 0<a href='#HTML_Gray'>xFF808080</a>.
+Note that <a href='#HTML_Gray'>HTML_Gray</a> is equivalent to 0xFF808080.
</td>
</tr>
<tr style='background-color: #f0f0f0; '>
<td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a name='SK_ColorLTGRAY'><code>SK_ColorLTGRAY</code></a></td>
<td style='text-align: center; border: 2px solid #dddddd; padding: 8px; '>0xFFCCCCCC</td>
<td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>
-Represents fully opaque light gray. <a href='#HTML_Silver'>HTML_Silver</a> <a href='#HTML_Silver'>is</a> <a href='#HTML_Silver'>equivalent</a> <a href='#HTML_Silver'>to</a> 0<a href='#HTML_Silver'>xFFC0C0C0</a>.
-<a href='#HTML_Silver'>Note</a> <a href='#HTML_Silver'>that</a> <a href='#SVG_lightgray'>SVG_lightgray</a> <a href='#SVG_lightgray'>is</a> <a href='#SVG_lightgray'>equivalent</a> <a href='#SVG_lightgray'>to</a> 0<a href='#SVG_lightgray'>xFFD3D3D3</a>.
+Represents fully opaque light gray. <a href='#HTML_Silver'>HTML_Silver</a> is equivalent to 0xFFC0C0C0.
+Note that <a href='#SVG_lightgray'>SVG_lightgray</a> is equivalent to 0xFFD3D3D3.
</td>
</tr>
<tr>
@@ -452,8 +452,8 @@
<td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a name='SK_ColorGREEN'><code>SK_ColorGREEN</code></a></td>
<td style='text-align: center; border: 2px solid #dddddd; padding: 8px; '>0xFF00FF00</td>
<td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>
-Represents fully opaque green. <a href='#HTML_Lime'>HTML_Lime</a> <a href='#HTML_Lime'>is</a> <a href='#HTML_Lime'>equivalent</a>.
-<a href='#HTML_Lime'>Note</a> <a href='#HTML_Lime'>that</a> <a href='#HTML_Green'>HTML_Green</a> <a href='#HTML_Green'>is</a> <a href='#HTML_Green'>equivalent</a> <a href='#HTML_Green'>to</a> 0<a href='#HTML_Green'>xFF008000</a>.
+Represents fully opaque green. <a href='#HTML_Lime'>HTML_Lime</a> is equivalent.
+Note that <a href='#HTML_Green'>HTML_Green</a> is equivalent to 0xFF008000.
</td>
</tr>
<tr style='background-color: #f0f0f0; '>
@@ -474,14 +474,14 @@
<td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a name='SK_ColorCYAN'><code>SK_ColorCYAN</code></a></td>
<td style='text-align: center; border: 2px solid #dddddd; padding: 8px; '>0xFF00FFFF</td>
<td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>
-Represents fully opaque cyan. <a href='#HTML_Aqua'>HTML_Aqua</a> <a href='#HTML_Aqua'>is</a> <a href='#HTML_Aqua'>equivalent</a>.
+Represents fully opaque cyan. <a href='#HTML_Aqua'>HTML_Aqua</a> is equivalent.
</td>
</tr>
<tr>
<td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a name='SK_ColorMAGENTA'><code>SK_ColorMAGENTA</code></a></td>
<td style='text-align: center; border: 2px solid #dddddd; padding: 8px; '>0xFFFF00FF</td>
<td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>
-Represents fully opaque magenta. <a href='#HTML_Fuchsia'>HTML_Fuchsia</a> <a href='#HTML_Fuchsia'>is</a> <a href='#HTML_Fuchsia'>equivalent</a>.
+Represents fully opaque magenta. <a href='#HTML_Fuchsia'>HTML_Fuchsia</a> is equivalent.
</td>
</tr>
</table>
@@ -492,17 +492,17 @@
### Example
-<div><fiddle-embed name="9ca1e2a5b9b4c92ecf4409d0813867d6"><div><a href='SkColor_Reference#SK_ColorTRANSPARENT'>SK_ColorTRANSPARENT</a> <a href='SkColor_Reference#SK_ColorTRANSPARENT'>sets</a> <a href='SkColor_Reference#Color'>Color</a> <a href='SkColor_Reference#Alpha'>Alpha</a> <a href='SkColor_Reference#Alpha'>and</a> <a href='SkColor_Reference#Alpha'>components</a> <a href='SkColor_Reference#Alpha'>to</a> <a href='SkColor_Reference#Alpha'>zero</a>.
+<div><fiddle-embed name="9ca1e2a5b9b4c92ecf4409d0813867d6"><div><a href='SkColor_Reference#SK_ColorTRANSPARENT'>SK_ColorTRANSPARENT</a> sets <a href='SkColor_Reference#Color'>Color</a> <a href='SkColor_Reference#Alpha'>Alpha</a> and components to zero.
</div></fiddle-embed></div>
### Example
-<div><fiddle-embed name="6971489f28291f08e429cc6ccc73b09b"><div><a href='SkColor_Reference#SK_ColorBLACK'>SK_ColorBLACK</a> <a href='SkColor_Reference#SK_ColorBLACK'>sets</a> <a href='SkColor_Reference#Color'>Color</a> <a href='SkColor_Reference#Alpha'>Alpha</a> <a href='SkColor_Reference#Alpha'>to</a> <a href='SkColor_Reference#Alpha'>one</a> <a href='SkColor_Reference#Alpha'>and</a> <a href='SkColor_Reference#Alpha'>components</a> <a href='SkColor_Reference#Alpha'>to</a> <a href='SkColor_Reference#Alpha'>zero</a>.
+<div><fiddle-embed name="6971489f28291f08e429cc6ccc73b09b"><div><a href='SkColor_Reference#SK_ColorBLACK'>SK_ColorBLACK</a> sets <a href='SkColor_Reference#Color'>Color</a> <a href='SkColor_Reference#Alpha'>Alpha</a> to one and components to zero.
</div></fiddle-embed></div>
### Example
-<div><fiddle-embed name="fce650f997e802d4e55edf62b8437a2d"><div><a href='SkColor_Reference#SK_ColorWHITE'>SK_ColorWHITE</a> <a href='SkColor_Reference#SK_ColorWHITE'>sets</a> <a href='SkColor_Reference#Color'>Color</a> <a href='SkColor_Reference#Alpha'>Alpha</a> <a href='SkColor_Reference#Alpha'>and</a> <a href='SkColor_Reference#Alpha'>components</a> <a href='SkColor_Reference#Alpha'>to</a> <a href='SkColor_Reference#Alpha'>one</a>.
+<div><fiddle-embed name="fce650f997e802d4e55edf62b8437a2d"><div><a href='SkColor_Reference#SK_ColorWHITE'>SK_ColorWHITE</a> sets <a href='SkColor_Reference#Color'>Color</a> <a href='SkColor_Reference#Alpha'>Alpha</a> and components to one.
</div></fiddle-embed></div>
### See Also
@@ -513,42 +513,42 @@
<a name='HSV_Hue'></a>
-Hue represents an angle, in degrees, on a <a href='SkColor_Reference#Color'>color</a> <a href='SkColor_Reference#Color'>wheel</a>. <a href='SkColor_Reference#Color'>Hue</a> <a href='SkColor_Reference#Color'>has</a> <a href='SkColor_Reference#Color'>a</a> <a href='SkColor_Reference#Color'>positive</a> <a href='SkColor_Reference#Color'>value</a>
-<a href='SkColor_Reference#Color'>modulo</a> 360, <a href='SkColor_Reference#Color'>where</a> <a href='SkColor_Reference#Color'>zero</a> <a href='SkColor_Reference#Color'>degrees</a> <a href='SkColor_Reference#Color'>is</a> <a href='SkColor_Reference#Color'>red</a>.
+Hue represents an angle, in degrees, on a <a href='SkColor_Reference#Color'>color</a> wheel. Hue has a positive value
+modulo 360, where zero degrees is red.
<a name='HSV_Saturation'></a>
-<a href='undocumented#Saturation'>Saturation</a> <a href='undocumented#Saturation'>represents</a> <a href='undocumented#Saturation'>the</a> <a href='undocumented#Saturation'>intensity</a> <a href='undocumented#Saturation'>of</a> <a href='undocumented#Saturation'>the</a> <a href='SkColor_Reference#Color'>color</a>. <a href='undocumented#Saturation'>Saturation</a> <a href='undocumented#Saturation'>varies</a> <a href='undocumented#Saturation'>from</a> <a href='undocumented#Saturation'>zero</a>,
-<a href='undocumented#Saturation'>with</a> <a href='undocumented#Saturation'>no</a> <a href='undocumented#Saturation'>Hue</a> <a href='undocumented#Saturation'>contribution</a>; <a href='undocumented#Saturation'>to</a> <a href='undocumented#Saturation'>one</a>, <a href='undocumented#Saturation'>with</a> <a href='undocumented#Saturation'>full</a> <a href='undocumented#Saturation'>Hue</a> <a href='undocumented#Saturation'>contribution</a>.
+<a href='undocumented#Saturation'>Saturation</a> represents the intensity of the <a href='SkColor_Reference#Color'>color</a>. <a href='undocumented#Saturation'>Saturation</a> varies from zero,
+with no Hue contribution; to one, with full Hue contribution.
<a name='HSV_Value'></a>
-Value represents the lightness of the <a href='SkColor_Reference#Color'>color</a>. <a href='SkColor_Reference#Color'>Value</a> <a href='SkColor_Reference#Color'>varies</a> <a href='SkColor_Reference#Color'>from</a> <a href='SkColor_Reference#Color'>zero</a>, <a href='SkColor_Reference#Color'>black</a>; <a href='SkColor_Reference#Color'>to</a>
-<a href='SkColor_Reference#Color'>one</a>, <a href='SkColor_Reference#Color'>full</a> <a href='SkColor_Reference#Color'>brightness</a>.
+Value represents the lightness of the <a href='SkColor_Reference#Color'>color</a>. Value varies from zero, black; to
+one, full brightness.
<a name='SkRGBToHSV'></a>
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-void <a href='SkColor_Reference#SkRGBToHSV'>SkRGBToHSV</a>(<a href='undocumented#U8CPU'>U8CPU</a> <a href='undocumented#U8CPU'>red</a>, <a href='undocumented#U8CPU'>U8CPU</a> <a href='undocumented#U8CPU'>green</a>, <a href='undocumented#U8CPU'>U8CPU</a> <a href='undocumented#U8CPU'>blue</a>, <a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>hsv</a>[3])
+void <a href='SkColor_Reference#SkRGBToHSV'>SkRGBToHSV</a>(<a href='undocumented#U8CPU'>U8CPU</a> red, <a href='undocumented#U8CPU'>U8CPU</a> green, <a href='undocumented#U8CPU'>U8CPU</a> blue, <a href='undocumented#SkScalar'>SkScalar</a> hsv[3])
</pre>
Converts RGB to its HSV components.
-<a href='#SkRGBToHSV_hsv'>hsv</a>[0] <a href='#SkRGBToHSV_hsv'>contains</a> <a href='#Color_HSV_Hue'>HSV_Hue</a>, <a href='#Color_HSV_Hue'>a</a> <a href='#Color_HSV_Hue'>value</a> <a href='#Color_HSV_Hue'>from</a> <a href='#Color_HSV_Hue'>zero</a> <a href='#Color_HSV_Hue'>to</a> <a href='#Color_HSV_Hue'>less</a> <a href='#Color_HSV_Hue'>than</a> 360.
-<a href='#SkRGBToHSV_hsv'>hsv</a>[1] <a href='#SkRGBToHSV_hsv'>contains</a> <a href='#Color_HSV_Saturation'>HSV_Saturation</a>, <a href='#Color_HSV_Saturation'>a</a> <a href='#Color_HSV_Saturation'>value</a> <a href='#Color_HSV_Saturation'>from</a> <a href='#Color_HSV_Saturation'>zero</a> <a href='#Color_HSV_Saturation'>to</a> <a href='#Color_HSV_Saturation'>one</a>.
-<a href='#SkRGBToHSV_hsv'>hsv</a>[2] <a href='#SkRGBToHSV_hsv'>contains</a> <a href='#Color_HSV_Value'>HSV_Value</a>, <a href='#Color_HSV_Value'>a</a> <a href='#Color_HSV_Value'>value</a> <a href='#Color_HSV_Value'>from</a> <a href='#Color_HSV_Value'>zero</a> <a href='#Color_HSV_Value'>to</a> <a href='#Color_HSV_Value'>one</a>.
+<a href='#SkRGBToHSV_hsv'>hsv</a>[0] contains <a href='#Color_HSV_Hue'>HSV_Hue</a>, a value from zero to less than 360.
+<a href='#SkRGBToHSV_hsv'>hsv</a>[1] contains <a href='#Color_HSV_Saturation'>HSV_Saturation</a>, a value from zero to one.
+<a href='#SkRGBToHSV_hsv'>hsv</a>[2] contains <a href='#Color_HSV_Value'>HSV_Value</a>, a value from zero to one.
### Parameters
<table> <tr> <td><a name='SkRGBToHSV_red'><code><strong>red</strong></code></a></td>
- <td><a href='#SkRGBToHSV_red'>red</a> <a href='#SkRGBToHSV_red'>component</a> <a href='#SkRGBToHSV_red'>value</a> <a href='#SkRGBToHSV_red'>from</a> <a href='#SkRGBToHSV_red'>zero</a> <a href='#SkRGBToHSV_red'>to</a> 255</td>
+ <td><a href='#SkRGBToHSV_red'>red</a> component value from zero to 255</td>
</tr>
<tr> <td><a name='SkRGBToHSV_green'><code><strong>green</strong></code></a></td>
- <td><a href='#SkRGBToHSV_green'>green</a> <a href='#SkRGBToHSV_green'>component</a> <a href='#SkRGBToHSV_green'>value</a> <a href='#SkRGBToHSV_green'>from</a> <a href='#SkRGBToHSV_green'>zero</a> <a href='#SkRGBToHSV_green'>to</a> 255</td>
+ <td><a href='#SkRGBToHSV_green'>green</a> component value from zero to 255</td>
</tr>
<tr> <td><a name='SkRGBToHSV_blue'><code><strong>blue</strong></code></a></td>
- <td><a href='#SkRGBToHSV_blue'>blue</a> <a href='#SkRGBToHSV_blue'>component</a> <a href='#SkRGBToHSV_blue'>value</a> <a href='#SkRGBToHSV_blue'>from</a> <a href='#SkRGBToHSV_blue'>zero</a> <a href='#SkRGBToHSV_blue'>to</a> 255</td>
+ <td><a href='#SkRGBToHSV_blue'>blue</a> component value from zero to 255</td>
</tr>
<tr> <td><a name='SkRGBToHSV_hsv'><code><strong>hsv</strong></code></a></td>
<td>three element array which holds the resulting HSV components
@@ -569,18 +569,18 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-void <a href='SkColor_Reference#SkColorToHSV'>SkColorToHSV</a>(<a href='SkColor_Reference#SkColor'>SkColor</a> <a href='SkColor_Reference#Color'>color</a>, <a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>hsv</a>[3])
+void <a href='SkColor_Reference#SkColorToHSV'>SkColorToHSV</a>(<a href='SkColor_Reference#SkColor'>SkColor</a> <a href='SkColor_Reference#Color'>color</a>, <a href='undocumented#SkScalar'>SkScalar</a> hsv[3])
</pre>
-Converts ARGB to its HSV components. <a href='SkColor_Reference#Alpha'>Alpha</a> <a href='SkColor_Reference#Alpha'>in</a> <a href='SkColor_Reference#Alpha'>ARGB</a> <a href='SkColor_Reference#Alpha'>is</a> <a href='SkColor_Reference#Alpha'>ignored</a>.
-<a href='#SkColorToHSV_hsv'>hsv</a>[0] <a href='#SkColorToHSV_hsv'>contains</a> <a href='#Color_HSV_Hue'>HSV_Hue</a>, <a href='#Color_HSV_Hue'>and</a> <a href='#Color_HSV_Hue'>is</a> <a href='#Color_HSV_Hue'>assigned</a> <a href='#Color_HSV_Hue'>a</a> <a href='#Color_HSV_Hue'>value</a> <a href='#Color_HSV_Hue'>from</a> <a href='#Color_HSV_Hue'>zero</a> <a href='#Color_HSV_Hue'>to</a> <a href='#Color_HSV_Hue'>less</a> <a href='#Color_HSV_Hue'>than</a> 360.
-<a href='#SkColorToHSV_hsv'>hsv</a>[1] <a href='#SkColorToHSV_hsv'>contains</a> <a href='#Color_HSV_Saturation'>HSV_Saturation</a>, <a href='#Color_HSV_Saturation'>a</a> <a href='#Color_HSV_Saturation'>value</a> <a href='#Color_HSV_Saturation'>from</a> <a href='#Color_HSV_Saturation'>zero</a> <a href='#Color_HSV_Saturation'>to</a> <a href='#Color_HSV_Saturation'>one</a>.
-<a href='#SkColorToHSV_hsv'>hsv</a>[2] <a href='#SkColorToHSV_hsv'>contains</a> <a href='#Color_HSV_Value'>HSV_Value</a>, <a href='#Color_HSV_Value'>a</a> <a href='#Color_HSV_Value'>value</a> <a href='#Color_HSV_Value'>from</a> <a href='#Color_HSV_Value'>zero</a> <a href='#Color_HSV_Value'>to</a> <a href='#Color_HSV_Value'>one</a>.
+Converts ARGB to its HSV components. <a href='SkColor_Reference#Alpha'>Alpha</a> in ARGB is ignored.
+<a href='#SkColorToHSV_hsv'>hsv</a>[0] contains <a href='#Color_HSV_Hue'>HSV_Hue</a>, and is assigned a value from zero to less than 360.
+<a href='#SkColorToHSV_hsv'>hsv</a>[1] contains <a href='#Color_HSV_Saturation'>HSV_Saturation</a>, a value from zero to one.
+<a href='#SkColorToHSV_hsv'>hsv</a>[2] contains <a href='#Color_HSV_Value'>HSV_Value</a>, a value from zero to one.
### Parameters
<table> <tr> <td><a name='SkColorToHSV_color'><code><strong>color</strong></code></a></td>
- <td>ARGB <a href='#SkColorToHSV_color'>color</a> <a href='#SkColorToHSV_color'>to</a> <a href='#SkColorToHSV_color'>convert</a>
+ <td>ARGB <a href='#SkColorToHSV_color'>color</a> to convert
</td>
</tr>
<tr> <td><a name='SkColorToHSV_hsv'><code><strong>hsv</strong></code></a></td>
@@ -602,20 +602,20 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-<a href='SkColor_Reference#SkColor'>SkColor</a> <a href='SkColor_Reference#SkHSVToColor'>SkHSVToColor</a>(<a href='undocumented#U8CPU'>U8CPU</a> <a href='SkColor_Reference#Alpha'>alpha</a>, <a href='SkColor_Reference#Alpha'>const</a> <a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>hsv</a>[3])
+<a href='SkColor_Reference#SkColor'>SkColor</a> <a href='SkColor_Reference#SkHSVToColor'>SkHSVToColor</a>(<a href='undocumented#U8CPU'>U8CPU</a> <a href='SkColor_Reference#Alpha'>alpha</a>, const <a href='undocumented#SkScalar'>SkScalar</a> hsv[3])
</pre>
-Converts HSV components to an ARGB <a href='SkColor_Reference#Color'>color</a>. <a href='SkColor_Reference#Alpha'>Alpha</a> <a href='SkColor_Reference#Alpha'>is</a> <a href='SkColor_Reference#Alpha'>passed</a> <a href='SkColor_Reference#Alpha'>through</a> <a href='SkColor_Reference#Alpha'>unchanged</a>.
-<a href='#SkHSVToColor_hsv'>hsv</a>[0] <a href='#SkHSVToColor_hsv'>represents</a> <a href='#Color_HSV_Hue'>HSV_Hue</a>, <a href='#Color_HSV_Hue'>an</a> <a href='#Color_HSV_Hue'>angle</a> <a href='#Color_HSV_Hue'>from</a> <a href='#Color_HSV_Hue'>zero</a> <a href='#Color_HSV_Hue'>to</a> <a href='#Color_HSV_Hue'>less</a> <a href='#Color_HSV_Hue'>than</a> 360.
-<a href='#SkHSVToColor_hsv'>hsv</a>[1] <a href='#SkHSVToColor_hsv'>represents</a> <a href='#Color_HSV_Saturation'>HSV_Saturation</a>, <a href='#Color_HSV_Saturation'>and</a> <a href='#Color_HSV_Saturation'>varies</a> <a href='#Color_HSV_Saturation'>from</a> <a href='#Color_HSV_Saturation'>zero</a> <a href='#Color_HSV_Saturation'>to</a> <a href='#Color_HSV_Saturation'>one</a>.
-<a href='#SkHSVToColor_hsv'>hsv</a>[2] <a href='#SkHSVToColor_hsv'>represents</a> <a href='#Color_HSV_Value'>HSV_Value</a>, <a href='#Color_HSV_Value'>and</a> <a href='#Color_HSV_Value'>varies</a> <a href='#Color_HSV_Value'>from</a> <a href='#Color_HSV_Value'>zero</a> <a href='#Color_HSV_Value'>to</a> <a href='#Color_HSV_Value'>one</a>.
+Converts HSV components to an ARGB <a href='SkColor_Reference#Color'>color</a>. <a href='SkColor_Reference#Alpha'>Alpha</a> is passed through unchanged.
+<a href='#SkHSVToColor_hsv'>hsv</a>[0] represents <a href='#Color_HSV_Hue'>HSV_Hue</a>, an angle from zero to less than 360.
+<a href='#SkHSVToColor_hsv'>hsv</a>[1] represents <a href='#Color_HSV_Saturation'>HSV_Saturation</a>, and varies from zero to one.
+<a href='#SkHSVToColor_hsv'>hsv</a>[2] represents <a href='#Color_HSV_Value'>HSV_Value</a>, and varies from zero to one.
-<a href='#Color_HSV_Value'>Out</a> <a href='#Color_HSV_Value'>of</a> <a href='#Color_HSV_Value'>range</a> <a href='#SkHSVToColor_hsv'>hsv</a> <a href='#SkHSVToColor_hsv'>values</a> <a href='#SkHSVToColor_hsv'>are</a> <a href='#SkHSVToColor_hsv'>pinned</a>.
+Out of range <a href='#SkHSVToColor_hsv'>hsv</a> values are pinned.
### Parameters
<table> <tr> <td><a name='SkHSVToColor_alpha'><code><strong>alpha</strong></code></a></td>
- <td><a href='SkColor_Reference#Alpha'>Alpha</a> <a href='SkColor_Reference#Alpha'>component</a> <a href='SkColor_Reference#Alpha'>of</a> <a href='SkColor_Reference#Alpha'>the</a> <a href='SkColor_Reference#Alpha'>returned</a> <a href='SkColor_Reference#Alpha'>ARGB</a> <a href='SkColor_Reference#Color'>color </a>
+ <td><a href='SkColor_Reference#Alpha'>Alpha</a> component of the returned ARGB <a href='SkColor_Reference#Color'>color </a>
</td>
</tr>
<tr> <td><a name='SkHSVToColor_hsv'><code><strong>hsv</strong></code></a></td>
@@ -641,15 +641,15 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-<a href='SkColor_Reference#SkColor'>SkColor</a> <a href='SkColor_Reference#SkHSVToColor'>SkHSVToColor</a>(<a href='SkColor_Reference#SkHSVToColor'>const</a> <a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>hsv</a>[3])
+<a href='SkColor_Reference#SkColor'>SkColor</a> <a href='SkColor_Reference#SkHSVToColor'>SkHSVToColor</a>(const <a href='undocumented#SkScalar'>SkScalar</a> hsv[3])
</pre>
-Converts HSV components to an ARGB <a href='SkColor_Reference#Color'>color</a>. <a href='SkColor_Reference#Alpha'>Alpha</a> <a href='SkColor_Reference#Alpha'>is</a> <a href='SkColor_Reference#Alpha'>set</a> <a href='SkColor_Reference#Alpha'>to</a> 255.
-<a href='#SkHSVToColor_2_hsv'>hsv</a>[0] <a href='#SkHSVToColor_2_hsv'>represents</a> <a href='#Color_HSV_Hue'>HSV_Hue</a>, <a href='#Color_HSV_Hue'>an</a> <a href='#Color_HSV_Hue'>angle</a> <a href='#Color_HSV_Hue'>from</a> <a href='#Color_HSV_Hue'>zero</a> <a href='#Color_HSV_Hue'>to</a> <a href='#Color_HSV_Hue'>less</a> <a href='#Color_HSV_Hue'>than</a> 360.
-<a href='#SkHSVToColor_2_hsv'>hsv</a>[1] <a href='#SkHSVToColor_2_hsv'>represents</a> <a href='#Color_HSV_Saturation'>HSV_Saturation</a>, <a href='#Color_HSV_Saturation'>and</a> <a href='#Color_HSV_Saturation'>varies</a> <a href='#Color_HSV_Saturation'>from</a> <a href='#Color_HSV_Saturation'>zero</a> <a href='#Color_HSV_Saturation'>to</a> <a href='#Color_HSV_Saturation'>one</a>.
-<a href='#SkHSVToColor_2_hsv'>hsv</a>[2] <a href='#SkHSVToColor_2_hsv'>represents</a> <a href='#Color_HSV_Value'>HSV_Value</a>, <a href='#Color_HSV_Value'>and</a> <a href='#Color_HSV_Value'>varies</a> <a href='#Color_HSV_Value'>from</a> <a href='#Color_HSV_Value'>zero</a> <a href='#Color_HSV_Value'>to</a> <a href='#Color_HSV_Value'>one</a>.
+Converts HSV components to an ARGB <a href='SkColor_Reference#Color'>color</a>. <a href='SkColor_Reference#Alpha'>Alpha</a> is set to 255.
+<a href='#SkHSVToColor_2_hsv'>hsv</a>[0] represents <a href='#Color_HSV_Hue'>HSV_Hue</a>, an angle from zero to less than 360.
+<a href='#SkHSVToColor_2_hsv'>hsv</a>[1] represents <a href='#Color_HSV_Saturation'>HSV_Saturation</a>, and varies from zero to one.
+<a href='#SkHSVToColor_2_hsv'>hsv</a>[2] represents <a href='#Color_HSV_Value'>HSV_Value</a>, and varies from zero to one.
-<a href='#Color_HSV_Value'>Out</a> <a href='#Color_HSV_Value'>of</a> <a href='#Color_HSV_Value'>range</a> <a href='#SkHSVToColor_2_hsv'>hsv</a> <a href='#SkHSVToColor_2_hsv'>values</a> <a href='#SkHSVToColor_2_hsv'>are</a> <a href='#SkHSVToColor_2_hsv'>pinned</a>.
+Out of range <a href='#SkHSVToColor_2_hsv'>hsv</a> values are pinned.
### Parameters
@@ -681,25 +681,25 @@
typedef uint32_t <a href='SkColor_Reference#SkPMColor'>SkPMColor</a>;
</pre>
-32-bit ARGB <a href='SkColor_Reference#Color'>color</a> <a href='SkColor_Reference#Color'>value</a>, <a href='undocumented#Premultiply'>Premultiplied</a>. <a href='undocumented#Premultiply'>The</a> <a href='undocumented#Premultiply'>byte</a> <a href='undocumented#Premultiply'>order</a> <a href='undocumented#Premultiply'>for</a> <a href='undocumented#Premultiply'>this</a> <a href='undocumented#Premultiply'>value</a> <a href='undocumented#Premultiply'>is</a>
-<a href='undocumented#Premultiply'>configuration</a> <a href='undocumented#Premultiply'>dependent</a>, <a href='undocumented#Premultiply'>matching</a> <a href='undocumented#Premultiply'>the</a> <a href='undocumented#Premultiply'>format</a> <a href='undocumented#Premultiply'>of</a> <a href='SkImageInfo_Reference#kBGRA_8888_SkColorType'>kBGRA_8888_SkColorType</a> <a href='SkBitmap_Reference#Bitmap'>bitmaps</a>.
-<a href='SkBitmap_Reference#Bitmap'>This</a> <a href='SkBitmap_Reference#Bitmap'>is</a> <a href='SkBitmap_Reference#Bitmap'>different</a> <a href='SkBitmap_Reference#Bitmap'>from</a> <a href='SkColor_Reference#SkColor'>SkColor</a>, <a href='SkColor_Reference#SkColor'>which</a> <a href='SkColor_Reference#SkColor'>is</a> <a href='undocumented#Unpremultiply'>Unpremultiplied</a>, <a href='undocumented#Unpremultiply'>and</a> <a href='undocumented#Unpremultiply'>is</a> <a href='undocumented#Unpremultiply'>always</a> <a href='undocumented#Unpremultiply'>in</a> <a href='undocumented#Unpremultiply'>the</a>
-<a href='undocumented#Unpremultiply'>same</a> <a href='undocumented#Unpremultiply'>byte</a> <a href='undocumented#Unpremultiply'>order</a>.
+32-bit ARGB <a href='SkColor_Reference#Color'>color</a> value, <a href='undocumented#Premultiply'>Premultiplied</a>. The byte order for this value is
+configuration dependent, matching the format of <a href='SkImageInfo_Reference#kBGRA_8888_SkColorType'>kBGRA_8888_SkColorType</a> <a href='SkBitmap_Reference#Bitmap'>bitmaps</a>.
+This is different from <a href='SkColor_Reference#SkColor'>SkColor</a>, which is <a href='undocumented#Unpremultiply'>Unpremultiplied</a>, and is always in the
+same byte order.
<a name='SkPreMultiplyARGB'></a>
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-<a href='SkColor_Reference#SkPMColor'>SkPMColor</a> <a href='SkColor_Reference#SkPreMultiplyARGB'>SkPreMultiplyARGB</a>(<a href='undocumented#U8CPU'>U8CPU</a> <a href='undocumented#U8CPU'>a</a>, <a href='undocumented#U8CPU'>U8CPU</a> <a href='undocumented#U8CPU'>r</a>, <a href='undocumented#U8CPU'>U8CPU</a> <a href='undocumented#U8CPU'>g</a>, <a href='undocumented#U8CPU'>U8CPU</a> <a href='undocumented#U8CPU'>b</a>)
+<a href='SkColor_Reference#SkPMColor'>SkPMColor</a> <a href='SkColor_Reference#SkPreMultiplyARGB'>SkPreMultiplyARGB</a>(<a href='undocumented#U8CPU'>U8CPU</a> a, <a href='undocumented#U8CPU'>U8CPU</a> r, <a href='undocumented#U8CPU'>U8CPU</a> g, <a href='undocumented#U8CPU'>U8CPU</a> b)
</pre>
-Returns <a href='#SkPreMultiplyARGB_a'>a</a> <a href='SkColor_Reference#SkPMColor'>SkPMColor</a> <a href='SkColor_Reference#SkPMColor'>value</a> <a href='SkColor_Reference#SkPMColor'>from</a> <a href='undocumented#Unpremultiply'>Unpremultiplied</a> 8-<a href='undocumented#Unpremultiply'>bit</a> <a href='undocumented#Unpremultiply'>component</a> <a href='undocumented#Unpremultiply'>values</a>.
+Returns <a href='#SkPreMultiplyARGB_a'>a</a> <a href='SkColor_Reference#SkPMColor'>SkPMColor</a> value from <a href='undocumented#Unpremultiply'>Unpremultiplied</a> 8-bit component values.
### Parameters
<table> <tr> <td><a name='SkPreMultiplyARGB_a'><code><strong>a</strong></code></a></td>
- <td>amount of <a href='SkColor_Reference#Alpha'>Alpha</a>, <a href='SkColor_Reference#Alpha'>from</a> <a href='SkColor_Reference#Alpha'>fully</a> <a href='SkColor_Reference#Alpha'>transparent</a> (0) <a href='SkColor_Reference#Alpha'>to</a> <a href='SkColor_Reference#Alpha'>fully</a> <a href='SkColor_Reference#Alpha'>opaque</a> (255)</td>
+ <td>amount of <a href='SkColor_Reference#Alpha'>Alpha</a>, from fully transparent (0) to fully opaque (255)</td>
</tr>
<tr> <td><a name='SkPreMultiplyARGB_r'><code><strong>r</strong></code></a></td>
<td>amount of red, from no red (0) to full red (255)</td>
@@ -729,16 +729,16 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-<a href='SkColor_Reference#SkPMColor'>SkPMColor</a> <a href='SkColor_Reference#SkPreMultiplyColor'>SkPreMultiplyColor</a>(<a href='SkColor_Reference#SkColor'>SkColor</a> <a href='SkColor_Reference#SkColor'>c</a>)
+<a href='SkColor_Reference#SkPMColor'>SkPMColor</a> <a href='SkColor_Reference#SkPreMultiplyColor'>SkPreMultiplyColor</a>(<a href='SkColor_Reference#SkColor'>SkColor</a> c)
</pre>
-Returns <a href='#Color_PM_Color'>PM_Color</a> <a href='#Color_PM_Color'>closest</a> <a href='#Color_PM_Color'>to</a> <a href='SkColor_Reference#Color'>Color</a> <a href='#SkPreMultiplyColor_c'>c</a>. <a href='#SkPreMultiplyColor_c'>Multiplies</a> <a href='#SkPreMultiplyColor_c'>c</a> <a href='#SkPreMultiplyColor_c'>RGB</a> <a href='#SkPreMultiplyColor_c'>components</a> <a href='#SkPreMultiplyColor_c'>by</a> <a href='#SkPreMultiplyColor_c'>the</a> <a href='#SkPreMultiplyColor_c'>c</a> <a href='SkColor_Reference#Alpha'>Alpha</a>,
-<a href='SkColor_Reference#Alpha'>and</a> <a href='SkColor_Reference#Alpha'>arranges</a> <a href='SkColor_Reference#Alpha'>the</a> <a href='SkColor_Reference#Alpha'>bytes</a> <a href='SkColor_Reference#Alpha'>to</a> <a href='SkColor_Reference#Alpha'>match</a> <a href='SkColor_Reference#Alpha'>the</a> <a href='SkColor_Reference#Alpha'>format</a> <a href='SkColor_Reference#Alpha'>of</a> <a href='SkImageInfo_Reference#kN32_SkColorType'>kN32_SkColorType</a>.
+Returns <a href='#Color_PM_Color'>PM_Color</a> closest to <a href='SkColor_Reference#Color'>Color</a> <a href='#SkPreMultiplyColor_c'>c</a>. Multiplies <a href='#SkPreMultiplyColor_c'>c</a> RGB components by the <a href='#SkPreMultiplyColor_c'>c</a> <a href='SkColor_Reference#Alpha'>Alpha</a>,
+and arranges the bytes to match the format of <a href='SkImageInfo_Reference#kN32_SkColorType'>kN32_SkColorType</a>.
### Parameters
<table> <tr> <td><a name='SkPreMultiplyColor_c'><code><strong>c</strong></code></a></td>
- <td><a href='undocumented#Unpremultiply'>Unpremultiplied</a> <a href='undocumented#Unpremultiply'>ARGB</a> <a href='SkColor_Reference#Color'>Color</a></td>
+ <td><a href='undocumented#Unpremultiply'>Unpremultiplied</a> ARGB <a href='SkColor_Reference#Color'>Color</a></td>
</tr>
</table>
diff --git a/site/user/api/SkIPoint_Reference.md b/site/user/api/SkIPoint_Reference.md
index c3bed2d..4259598 100644
--- a/site/user/api/SkIPoint_Reference.md
+++ b/site/user/api/SkIPoint_Reference.md
@@ -8,26 +8,26 @@
<pre style="padding: 1em 1em 1em 1em;width: 62.5em; background-color: #f0f0f0">
struct <a href='SkIPoint_Reference#SkIPoint'>SkIPoint</a> {
- <a href='SkIPoint_Reference#SkIPoint'>int32_t</a> <a href='#SkIPoint_fX'>fX</a>;
- <a href='#SkIPoint_fX'>int32_t</a> <a href='#SkIPoint_fY'>fY</a>;
+ int32_t <a href='#SkIPoint_fX'>fX</a>;
+ int32_t <a href='#SkIPoint_fY'>fY</a>;
- <a href='#SkIPoint_fY'>static</a> <a href='#SkIPoint_fY'>constexpr</a> <a href='SkIPoint_Reference#SkIPoint'>SkIPoint</a> <a href='#SkIPoint_Make'>Make</a>(<a href='#SkIPoint_Make'>int32_t</a> <a href='#SkIPoint_Make'>x</a>, <a href='#SkIPoint_Make'>int32_t</a> <a href='#SkIPoint_Make'>y</a>);
- <a href='#SkIPoint_Make'>int32_t</a> <a href='#SkIPoint_x'>x()</a> <a href='#SkIPoint_x'>const</a>;
- <a href='#SkIPoint_x'>int32_t</a> <a href='#SkIPoint_y'>y()</a> <a href='#SkIPoint_y'>const</a>;
- <a href='#SkIPoint_y'>bool</a> <a href='#SkIPoint_isZero'>isZero</a>() <a href='#SkIPoint_isZero'>const</a>;
- <a href='#SkIPoint_isZero'>void</a> <a href='#SkIPoint_isZero'>set</a>(<a href='#SkIPoint_isZero'>int32_t</a> <a href='#SkIPoint_isZero'>x</a>, <a href='#SkIPoint_isZero'>int32_t</a> <a href='#SkIPoint_isZero'>y</a>);
- <a href='SkIPoint_Reference#SkIPoint'>SkIPoint</a> <a href='SkIPoint_Reference#SkIPoint'>operator</a>-() <a href='SkIPoint_Reference#SkIPoint'>const</a>;
- <a href='SkIPoint_Reference#SkIPoint'>void</a> <a href='SkIPoint_Reference#SkIPoint'>operator</a>+=(<a href='SkIPoint_Reference#SkIPoint'>const</a> <a href='SkIPoint_Reference#SkIVector'>SkIVector</a>& <a href='SkIPoint_Reference#SkIVector'>v</a>);
- <a href='SkIPoint_Reference#SkIVector'>void</a> <a href='SkIPoint_Reference#SkIVector'>operator</a>-=(<a href='SkIPoint_Reference#SkIVector'>const</a> <a href='SkIPoint_Reference#SkIVector'>SkIVector</a>& <a href='SkIPoint_Reference#SkIVector'>v</a>);
- <a href='SkIPoint_Reference#SkIVector'>bool</a> <a href='SkIPoint_Reference#SkIVector'>equals</a>(<a href='SkIPoint_Reference#SkIVector'>int32_t</a> <a href='SkIPoint_Reference#SkIVector'>x</a>, <a href='SkIPoint_Reference#SkIVector'>int32_t</a> <a href='SkIPoint_Reference#SkIVector'>y</a>) <a href='SkIPoint_Reference#SkIVector'>const</a>;
- <a href='SkIPoint_Reference#SkIVector'>friend</a> <a href='SkIPoint_Reference#SkIVector'>bool</a> <a href='SkIPoint_Reference#SkIVector'>operator</a>==(<a href='SkIPoint_Reference#SkIVector'>const</a> <a href='SkIPoint_Reference#SkIPoint'>SkIPoint</a>& <a href='SkIPoint_Reference#SkIPoint'>a</a>, <a href='SkIPoint_Reference#SkIPoint'>const</a> <a href='SkIPoint_Reference#SkIPoint'>SkIPoint</a>& <a href='SkIPoint_Reference#SkIPoint'>b</a>);
- <a href='SkIPoint_Reference#SkIPoint'>friend</a> <a href='SkIPoint_Reference#SkIPoint'>bool</a> <a href='SkIPoint_Reference#SkIPoint'>operator</a>!=(<a href='SkIPoint_Reference#SkIPoint'>const</a> <a href='SkIPoint_Reference#SkIPoint'>SkIPoint</a>& <a href='SkIPoint_Reference#SkIPoint'>a</a>, <a href='SkIPoint_Reference#SkIPoint'>const</a> <a href='SkIPoint_Reference#SkIPoint'>SkIPoint</a>& <a href='SkIPoint_Reference#SkIPoint'>b</a>);
- <a href='SkIPoint_Reference#SkIPoint'>friend</a> <a href='SkIPoint_Reference#SkIVector'>SkIVector</a> <a href='SkIPoint_Reference#SkIVector'>operator</a>-(<a href='SkIPoint_Reference#SkIVector'>const</a> <a href='SkIPoint_Reference#SkIPoint'>SkIPoint</a>& <a href='SkIPoint_Reference#SkIPoint'>a</a>, <a href='SkIPoint_Reference#SkIPoint'>const</a> <a href='SkIPoint_Reference#SkIPoint'>SkIPoint</a>& <a href='SkIPoint_Reference#SkIPoint'>b</a>);
- <a href='SkIPoint_Reference#SkIPoint'>friend</a> <a href='SkIPoint_Reference#SkIPoint'>SkIPoint</a> <a href='SkIPoint_Reference#SkIPoint'>operator</a>+(<a href='SkIPoint_Reference#SkIPoint'>const</a> <a href='SkIPoint_Reference#SkIPoint'>SkIPoint</a>& <a href='SkIPoint_Reference#SkIPoint'>a</a>, <a href='SkIPoint_Reference#SkIPoint'>const</a> <a href='SkIPoint_Reference#SkIVector'>SkIVector</a>& <a href='SkIPoint_Reference#SkIVector'>b</a>);
+ static constexpr <a href='SkIPoint_Reference#SkIPoint'>SkIPoint</a> <a href='#SkIPoint_Make'>Make</a>(int32_t x, int32_t y);
+ int32_t <a href='#SkIPoint_x'>x()</a> const;
+ int32_t <a href='#SkIPoint_y'>y()</a> const;
+ bool <a href='#SkIPoint_isZero'>isZero</a>() const;
+ void set(int32_t x, int32_t y);
+ <a href='SkIPoint_Reference#SkIPoint'>SkIPoint</a> operator-() const;
+ void operator+=(const <a href='SkIPoint_Reference#SkIVector'>SkIVector</a>& v);
+ void operator-=(const <a href='SkIPoint_Reference#SkIVector'>SkIVector</a>& v);
+ bool equals(int32_t x, int32_t y) const;
+ friend bool operator==(const <a href='SkIPoint_Reference#SkIPoint'>SkIPoint</a>& a, const <a href='SkIPoint_Reference#SkIPoint'>SkIPoint</a>& b);
+ friend bool operator!=(const <a href='SkIPoint_Reference#SkIPoint'>SkIPoint</a>& a, const <a href='SkIPoint_Reference#SkIPoint'>SkIPoint</a>& b);
+ friend <a href='SkIPoint_Reference#SkIVector'>SkIVector</a> operator-(const <a href='SkIPoint_Reference#SkIPoint'>SkIPoint</a>& a, const <a href='SkIPoint_Reference#SkIPoint'>SkIPoint</a>& b);
+ friend <a href='SkIPoint_Reference#SkIPoint'>SkIPoint</a> operator+(const <a href='SkIPoint_Reference#SkIPoint'>SkIPoint</a>& a, const <a href='SkIPoint_Reference#SkIVector'>SkIVector</a>& b);
};
</pre>
-<a href='SkIPoint_Reference#SkIPoint'>SkIPoint</a> <a href='SkIPoint_Reference#SkIPoint'>holds</a> <a href='SkIPoint_Reference#SkIPoint'>two</a> 32-<a href='SkIPoint_Reference#SkIPoint'>bit</a> <a href='SkIPoint_Reference#SkIPoint'>integer</a> <a href='SkIPoint_Reference#SkIPoint'>coordinates</a>.<table style='border-collapse: collapse; width: 62.5em'>
+<a href='SkIPoint_Reference#SkIPoint'>SkIPoint</a> holds two 32-bit integer coordinates.<table style='border-collapse: collapse; width: 62.5em'>
<tr><th style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>Type</th>
<th style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>Member</th>
@@ -53,10 +53,10 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-static constexpr <a href='SkIPoint_Reference#SkIPoint'>SkIPoint</a> <a href='#SkIPoint_Make'>Make</a>(<a href='#SkIPoint_Make'>int32_t</a> <a href='#SkIPoint_Make'>x</a>, <a href='#SkIPoint_Make'>int32_t</a> <a href='#SkIPoint_Make'>y</a>)
+static constexpr <a href='SkIPoint_Reference#SkIPoint'>SkIPoint</a> <a href='#SkIPoint_Make'>Make</a>(int32_t x, int32_t y)
</pre>
-Sets <a href='#SkIPoint_fX'>fX</a> <a href='#SkIPoint_fX'>to</a> <a href='#SkIPoint_Make_x'>x</a>, <a href='#SkIPoint_fY'>fY</a> <a href='#SkIPoint_fY'>to</a> <a href='#SkIPoint_Make_y'>y</a>.
+Sets <a href='#SkIPoint_fX'>fX</a> to <a href='#SkIPoint_Make_x'>x</a>, <a href='#SkIPoint_fY'>fY</a> to <a href='#SkIPoint_Make_y'>y</a>.
### Parameters
@@ -95,7 +95,7 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-int32_t <a href='#SkIPoint_x'>x()</a> <a href='#SkIPoint_x'>const</a>
+int32_t <a href='#SkIPoint_x'>x()</a> const
</pre>
Returns x-axis value of <a href='SkIPoint_Reference#SkIPoint'>SkIPoint</a>.
@@ -125,7 +125,7 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-int32_t <a href='#SkIPoint_y'>y()</a> <a href='#SkIPoint_y'>const</a>
+int32_t <a href='#SkIPoint_y'>y()</a> const
</pre>
Returns y-axis value of <a href='SkIPoint_Reference#SkIPoint'>SkIPoint</a>.
@@ -155,14 +155,14 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-bool <a href='#SkIPoint_isZero'>isZero</a>() <a href='#SkIPoint_isZero'>const</a>
+bool <a href='#SkIPoint_isZero'>isZero</a>() const
</pre>
-Returns true if <a href='#SkIPoint_fX'>fX</a> <a href='#SkIPoint_fX'>and</a> <a href='#SkIPoint_fY'>fY</a> <a href='#SkIPoint_fY'>are</a> <a href='#SkIPoint_fY'>both</a> <a href='#SkIPoint_fY'>zero</a>.
+Returns true if <a href='#SkIPoint_fX'>fX</a> and <a href='#SkIPoint_fY'>fY</a> are both zero.
### Return Value
-true if <a href='#SkIPoint_fX'>fX</a> <a href='#SkIPoint_fX'>is</a> <a href='#SkIPoint_fX'>zero</a> <a href='#SkIPoint_fX'>and</a> <a href='#SkIPoint_fY'>fY</a> <a href='#SkIPoint_fY'>is</a> <a href='#SkIPoint_fY'>zero</a>
+true if <a href='#SkIPoint_fX'>fX</a> is zero and <a href='#SkIPoint_fY'>fY</a> is zero
### Example
@@ -190,7 +190,7 @@
void set(int32_t x, int32_t y)
</pre>
-Sets <a href='#SkIPoint_fX'>fX</a> <a href='#SkIPoint_fX'>to</a> <a href='#SkIPoint_set_x'>x</a> <a href='#SkIPoint_set_x'>and</a> <a href='#SkIPoint_fY'>fY</a> <a href='#SkIPoint_fY'>to</a> <a href='#SkIPoint_set_y'>y</a>.
+Sets <a href='#SkIPoint_fX'>fX</a> to <a href='#SkIPoint_set_x'>x</a> and <a href='#SkIPoint_fY'>fY</a> to <a href='#SkIPoint_set_y'>y</a>.
### Parameters
@@ -223,14 +223,14 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-<a href='SkIPoint_Reference#SkIPoint'>SkIPoint</a> <a href='SkIPoint_Reference#SkIPoint'>operator</a>-() <a href='SkIPoint_Reference#SkIPoint'>const</a>
+<a href='SkIPoint_Reference#SkIPoint'>SkIPoint</a> operator-() const
</pre>
-Returns <a href='SkIPoint_Reference#SkIPoint'>SkIPoint</a> <a href='SkIPoint_Reference#SkIPoint'>changing</a> <a href='SkIPoint_Reference#SkIPoint'>the</a> <a href='SkIPoint_Reference#SkIPoint'>signs</a> <a href='SkIPoint_Reference#SkIPoint'>of</a> <a href='#SkIPoint_fX'>fX</a> <a href='#SkIPoint_fX'>and</a> <a href='#SkIPoint_fY'>fY</a>.
+Returns <a href='SkIPoint_Reference#SkIPoint'>SkIPoint</a> changing the signs of <a href='#SkIPoint_fX'>fX</a> and <a href='#SkIPoint_fY'>fY</a>.
### Return Value
-<a href='SkIPoint_Reference#SkIPoint'>SkIPoint</a> <a href='SkIPoint_Reference#SkIPoint'>as</a> (-<a href='#SkIPoint_fX'>fX</a>, -<a href='#SkIPoint_fY'>fY</a>)
+<a href='SkIPoint_Reference#SkIPoint'>SkIPoint</a> as (-<a href='#SkIPoint_fX'>fX</a>, -<a href='#SkIPoint_fY'>fY</a>)
### Example
@@ -249,22 +249,22 @@
### See Also
-<a href='#SkIPoint_subtract_operator'>operator-(const SkIPoint& a, const SkIPoint& b)</a> operator-(const SkIPoint& a, const SkIPoint& b)<a href='#SkIPoint_subtractfrom_operator'>operator-=(const SkIVector& v)</a> <a href='SkPoint_Reference#SkPoint'>SkPoint</a>::<a href='SkPoint_Reference#SkPoint'>operator</a>-()_<a href='SkPoint_Reference#SkPoint'>const</a>
+<a href='#SkIPoint_subtract_operator'>operator-(const SkIPoint& a, const SkIPoint& b)</a> operator-(const SkIPoint& a, const SkIPoint& b)<a href='#SkIPoint_subtractfrom_operator'>operator-=(const SkIVector& v)</a> <a href='SkPoint_Reference#SkPoint'>SkPoint</a>::operator-()_const
<a name='SkIPoint_addto_operator'></a>
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-void operator+=(const <a href='SkIPoint_Reference#SkIVector'>SkIVector</a>& <a href='SkIPoint_Reference#SkIVector'>v</a>)
+void operator+=(const <a href='SkIPoint_Reference#SkIVector'>SkIVector</a>& v)
</pre>
-Offsets <a href='SkIPoint_Reference#IPoint'>IPoint</a> <a href='SkIPoint_Reference#IPoint'>by</a> <a href='#IPoint_IVector'>IVector</a> <a href='#SkIPoint_addto_operator_v'>v</a>. <a href='#SkIPoint_addto_operator_v'>Sets</a> <a href='SkIPoint_Reference#IPoint'>IPoint</a> <a href='SkIPoint_Reference#IPoint'>to</a> <code>(<a href='#SkIPoint_fX'>fX</a> + <a href='#SkIPoint_addto_operator_v'>v</a>.<a href='#SkIPoint_fX'>fX</a>, <a href='#SkIPoint_fY'>fY</a> + <a href='#SkIPoint_addto_operator_v'>v</a>.<a href='#SkIPoint_fY'>fY</a>)</code>.
+Offsets <a href='SkIPoint_Reference#IPoint'>IPoint</a> by <a href='#IPoint_IVector'>IVector</a> <a href='#SkIPoint_addto_operator_v'>v</a>. Sets <a href='SkIPoint_Reference#IPoint'>IPoint</a> to <code>(<a href='#SkIPoint_fX'>fX</a> + <a href='#SkIPoint_addto_operator_v'>v</a>.<a href='#SkIPoint_fX'>fX</a>, <a href='#SkIPoint_fY'>fY</a> + <a href='#SkIPoint_addto_operator_v'>v</a>.<a href='#SkIPoint_fY'>fY</a>)</code>.
### Parameters
<table> <tr> <td><a name='SkIPoint_addto_operator_v'><code><strong>v</strong></code></a></td>
- <td><a href='#IPoint_IVector'>IVector</a> <a href='#IPoint_IVector'>to</a> <a href='#IPoint_IVector'>add</a></td>
+ <td><a href='#IPoint_IVector'>IVector</a> to add</td>
</tr>
</table>
@@ -281,15 +281,15 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-void operator-=(const <a href='SkIPoint_Reference#SkIVector'>SkIVector</a>& <a href='SkIPoint_Reference#SkIVector'>v</a>)
+void operator-=(const <a href='SkIPoint_Reference#SkIVector'>SkIVector</a>& v)
</pre>
-Subtracts <a href='#IPoint_IVector'>IVector</a> <a href='#SkIPoint_subtractfrom_operator_v'>v</a> <a href='#SkIPoint_subtractfrom_operator_v'>from</a> <a href='SkIPoint_Reference#IPoint'>IPoint</a>. <a href='SkIPoint_Reference#IPoint'>Sets</a> <a href='SkIPoint_Reference#IPoint'>IPoint</a> <a href='SkIPoint_Reference#IPoint'>to</a>: <code>(<a href='#SkIPoint_fX'>fX</a> - <a href='#SkIPoint_subtractfrom_operator_v'>v</a>.<a href='#SkIPoint_fX'>fX</a>, <a href='#SkIPoint_fY'>fY</a> - <a href='#SkIPoint_subtractfrom_operator_v'>v</a>.<a href='#SkIPoint_fY'>fY</a>)</code>.
+Subtracts <a href='#IPoint_IVector'>IVector</a> <a href='#SkIPoint_subtractfrom_operator_v'>v</a> from <a href='SkIPoint_Reference#IPoint'>IPoint</a>. Sets <a href='SkIPoint_Reference#IPoint'>IPoint</a> to: <code>(<a href='#SkIPoint_fX'>fX</a> - <a href='#SkIPoint_subtractfrom_operator_v'>v</a>.<a href='#SkIPoint_fX'>fX</a>, <a href='#SkIPoint_fY'>fY</a> - <a href='#SkIPoint_subtractfrom_operator_v'>v</a>.<a href='#SkIPoint_fY'>fY</a>)</code>.
### Parameters
<table> <tr> <td><a name='SkIPoint_subtractfrom_operator_v'><code><strong>v</strong></code></a></td>
- <td><a href='#IPoint_IVector'>IVector</a> <a href='#IPoint_IVector'>to</a> <a href='#IPoint_IVector'>subtract</a></td>
+ <td><a href='#IPoint_IVector'>IVector</a> to subtract</td>
</tr>
</table>
@@ -309,7 +309,7 @@
bool equals(int32_t x, int32_t y) const
</pre>
-Returns true if <a href='SkIPoint_Reference#SkIPoint'>SkIPoint</a> <a href='SkIPoint_Reference#SkIPoint'>is</a> <a href='SkIPoint_Reference#SkIPoint'>equivalent</a> <a href='SkIPoint_Reference#SkIPoint'>to</a> <a href='SkIPoint_Reference#SkIPoint'>SkIPoint</a> <a href='SkIPoint_Reference#SkIPoint'>constructed</a> <a href='SkIPoint_Reference#SkIPoint'>from</a> (<a href='#SkIPoint_equals_x'>x</a>, <a href='#SkIPoint_equals_y'>y</a>).
+Returns true if <a href='SkIPoint_Reference#SkIPoint'>SkIPoint</a> is equivalent to <a href='SkIPoint_Reference#SkIPoint'>SkIPoint</a> constructed from (<a href='#SkIPoint_equals_x'>x</a>, <a href='#SkIPoint_equals_y'>y</a>).
### Parameters
@@ -323,7 +323,7 @@
### Return Value
-true if <a href='SkIPoint_Reference#SkIPoint'>SkIPoint</a> <a href='SkIPoint_Reference#SkIPoint'>equals</a> (<a href='#SkIPoint_equals_x'>x</a>, <a href='#SkIPoint_equals_y'>y</a>)
+true if <a href='SkIPoint_Reference#SkIPoint'>SkIPoint</a> equals (<a href='#SkIPoint_equals_x'>x</a>, <a href='#SkIPoint_equals_y'>y</a>)
### Example
@@ -349,24 +349,24 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-bool operator==(const <a href='SkIPoint_Reference#SkIPoint'>SkIPoint</a>& <a href='SkIPoint_Reference#SkIPoint'>a</a>, <a href='SkIPoint_Reference#SkIPoint'>const</a> <a href='SkIPoint_Reference#SkIPoint'>SkIPoint</a>& <a href='SkIPoint_Reference#SkIPoint'>b</a>)
+bool operator==(const <a href='SkIPoint_Reference#SkIPoint'>SkIPoint</a>& a, const <a href='SkIPoint_Reference#SkIPoint'>SkIPoint</a>& b)
</pre>
-Returns true if <a href='#SkIPoint_equal_operator_a'>a</a> <a href='#SkIPoint_equal_operator_a'>is</a> <a href='#SkIPoint_equal_operator_a'>equivalent</a> <a href='#SkIPoint_equal_operator_a'>to</a> <a href='#SkIPoint_equal_operator_b'>b</a>.
+Returns true if <a href='#SkIPoint_equal_operator_a'>a</a> is equivalent to <a href='#SkIPoint_equal_operator_b'>b</a>.
### Parameters
<table> <tr> <td><a name='SkIPoint_equal_operator_a'><code><strong>a</strong></code></a></td>
- <td><a href='SkIPoint_Reference#SkIPoint'>SkIPoint</a> <a href='SkIPoint_Reference#SkIPoint'>to</a> <a href='SkIPoint_Reference#SkIPoint'>compare</a></td>
+ <td><a href='SkIPoint_Reference#SkIPoint'>SkIPoint</a> to compare</td>
</tr>
<tr> <td><a name='SkIPoint_equal_operator_b'><code><strong>b</strong></code></a></td>
- <td><a href='SkIPoint_Reference#SkIPoint'>SkIPoint</a> <a href='SkIPoint_Reference#SkIPoint'>to</a> <a href='SkIPoint_Reference#SkIPoint'>compare</a></td>
+ <td><a href='SkIPoint_Reference#SkIPoint'>SkIPoint</a> to compare</td>
</tr>
</table>
### Return Value
-true if <a href='#SkIPoint_equal_operator_a'>a</a>.<a href='#SkIPoint_fX'>fX</a> == <a href='#SkIPoint_equal_operator_b'>b</a>.<a href='#SkIPoint_fX'>fX</a> <a href='#SkIPoint_fX'>and</a> <a href='#SkIPoint_equal_operator_a'>a</a>.<a href='#SkIPoint_fY'>fY</a> == <a href='#SkIPoint_equal_operator_b'>b</a>.<a href='#SkIPoint_fY'>fY</a>
+true if <a href='#SkIPoint_equal_operator_a'>a</a>.<a href='#SkIPoint_fX'>fX</a> == <a href='#SkIPoint_equal_operator_b'>b</a>.<a href='#SkIPoint_fX'>fX</a> and <a href='#SkIPoint_equal_operator_a'>a</a>.<a href='#SkIPoint_fY'>fY</a> == <a href='#SkIPoint_equal_operator_b'>b</a>.<a href='#SkIPoint_fY'>fY</a>
### Example
@@ -392,24 +392,24 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-bool operator!=(const <a href='SkIPoint_Reference#SkIPoint'>SkIPoint</a>& <a href='SkIPoint_Reference#SkIPoint'>a</a>, <a href='SkIPoint_Reference#SkIPoint'>const</a> <a href='SkIPoint_Reference#SkIPoint'>SkIPoint</a>& <a href='SkIPoint_Reference#SkIPoint'>b</a>)
+bool operator!=(const <a href='SkIPoint_Reference#SkIPoint'>SkIPoint</a>& a, const <a href='SkIPoint_Reference#SkIPoint'>SkIPoint</a>& b)
</pre>
-Returns true if <a href='#SkIPoint_notequal_operator_a'>a</a> <a href='#SkIPoint_notequal_operator_a'>is</a> <a href='#SkIPoint_notequal_operator_a'>not</a> <a href='#SkIPoint_notequal_operator_a'>equivalent</a> <a href='#SkIPoint_notequal_operator_a'>to</a> <a href='#SkIPoint_notequal_operator_b'>b</a>.
+Returns true if <a href='#SkIPoint_notequal_operator_a'>a</a> is not equivalent to <a href='#SkIPoint_notequal_operator_b'>b</a>.
### Parameters
<table> <tr> <td><a name='SkIPoint_notequal_operator_a'><code><strong>a</strong></code></a></td>
- <td><a href='SkIPoint_Reference#SkIPoint'>SkIPoint</a> <a href='SkIPoint_Reference#SkIPoint'>to</a> <a href='SkIPoint_Reference#SkIPoint'>compare</a></td>
+ <td><a href='SkIPoint_Reference#SkIPoint'>SkIPoint</a> to compare</td>
</tr>
<tr> <td><a name='SkIPoint_notequal_operator_b'><code><strong>b</strong></code></a></td>
- <td><a href='SkIPoint_Reference#SkIPoint'>SkIPoint</a> <a href='SkIPoint_Reference#SkIPoint'>to</a> <a href='SkIPoint_Reference#SkIPoint'>compare</a></td>
+ <td><a href='SkIPoint_Reference#SkIPoint'>SkIPoint</a> to compare</td>
</tr>
</table>
### Return Value
-true if <a href='#SkIPoint_notequal_operator_a'>a</a>.<a href='#SkIPoint_fX'>fX</a> != <a href='#SkIPoint_notequal_operator_b'>b</a>.<a href='#SkIPoint_fX'>fX</a> <a href='#SkIPoint_fX'>or</a> <a href='#SkIPoint_notequal_operator_a'>a</a>.<a href='#SkIPoint_fY'>fY</a> != <a href='#SkIPoint_notequal_operator_b'>b</a>.<a href='#SkIPoint_fY'>fY</a>
+true if <a href='#SkIPoint_notequal_operator_a'>a</a>.<a href='#SkIPoint_fX'>fX</a> != <a href='#SkIPoint_notequal_operator_b'>b</a>.<a href='#SkIPoint_fX'>fX</a> or <a href='#SkIPoint_notequal_operator_a'>a</a>.<a href='#SkIPoint_fY'>fY</a> != <a href='#SkIPoint_notequal_operator_b'>b</a>.<a href='#SkIPoint_fY'>fY</a>
### Example
@@ -435,26 +435,26 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-<a href='SkIPoint_Reference#SkIVector'>SkIVector</a> <a href='SkIPoint_Reference#SkIVector'>operator</a>-(<a href='SkIPoint_Reference#SkIVector'>const</a> <a href='SkIPoint_Reference#SkIPoint'>SkIPoint</a>& <a href='SkIPoint_Reference#SkIPoint'>a</a>, <a href='SkIPoint_Reference#SkIPoint'>const</a> <a href='SkIPoint_Reference#SkIPoint'>SkIPoint</a>& <a href='SkIPoint_Reference#SkIPoint'>b</a>)
+<a href='SkIPoint_Reference#SkIVector'>SkIVector</a> operator-(const <a href='SkIPoint_Reference#SkIPoint'>SkIPoint</a>& a, const <a href='SkIPoint_Reference#SkIPoint'>SkIPoint</a>& b)
</pre>
-Returns <a href='#IPoint_IVector'>IVector</a> <a href='#IPoint_IVector'>from</a> <a href='#SkIPoint_subtract_operator_b'>b</a> <a href='#SkIPoint_subtract_operator_b'>to</a> <a href='#SkIPoint_subtract_operator_a'>a</a>; <a href='#SkIPoint_subtract_operator_a'>computed</a> <a href='#SkIPoint_subtract_operator_a'>as </a> <code>(<a href='#SkIPoint_subtract_operator_a'>a</a>.<a href='#SkIPoint_fX'>fX</a> - <a href='#SkIPoint_subtract_operator_b'>b</a>.<a href='#SkIPoint_fX'>fX</a>, <a href='#SkIPoint_subtract_operator_a'>a</a>.<a href='#SkIPoint_fY'>fY</a> - <a href='#SkIPoint_subtract_operator_b'>b</a>.<a href='#SkIPoint_fY'>fY</a>)</code>.
+Returns <a href='#IPoint_IVector'>IVector</a> from <a href='#SkIPoint_subtract_operator_b'>b</a> to <a href='#SkIPoint_subtract_operator_a'>a</a>; computed as <code>(<a href='#SkIPoint_subtract_operator_a'>a</a>.<a href='#SkIPoint_fX'>fX</a> - <a href='#SkIPoint_subtract_operator_b'>b</a>.<a href='#SkIPoint_fX'>fX</a>, <a href='#SkIPoint_subtract_operator_a'>a</a>.<a href='#SkIPoint_fY'>fY</a> - <a href='#SkIPoint_subtract_operator_b'>b</a>.<a href='#SkIPoint_fY'>fY</a>)</code>.
-Can also be used to subtract <a href='#IPoint_IVector'>IVector</a> <a href='#IPoint_IVector'>from</a> <a href='#IPoint_IVector'>IVector</a>, <a href='#IPoint_IVector'>returning</a> <a href='#IPoint_IVector'>IVector</a>.
+Can also be used to subtract <a href='#IPoint_IVector'>IVector</a> from <a href='#IPoint_IVector'>IVector</a>, returning <a href='#IPoint_IVector'>IVector</a>.
### Parameters
<table> <tr> <td><a name='SkIPoint_subtract_operator_a'><code><strong>a</strong></code></a></td>
- <td><a href='SkIPoint_Reference#IPoint'>IPoint</a> <a href='SkIPoint_Reference#IPoint'>or</a> <a href='#IPoint_IVector'>IVector</a> <a href='#IPoint_IVector'>to</a> <a href='#IPoint_IVector'>subtract</a> <a href='#IPoint_IVector'>from</a></td>
+ <td><a href='SkIPoint_Reference#IPoint'>IPoint</a> or <a href='#IPoint_IVector'>IVector</a> to subtract from</td>
</tr>
<tr> <td><a name='SkIPoint_subtract_operator_b'><code><strong>b</strong></code></a></td>
- <td><a href='#IPoint_IVector'>IVector</a> <a href='#IPoint_IVector'>to</a> <a href='#IPoint_IVector'>subtract</a></td>
+ <td><a href='#IPoint_IVector'>IVector</a> to subtract</td>
</tr>
</table>
### Return Value
-<a href='#IPoint_IVector'>IVector</a> <a href='#IPoint_IVector'>from</a> <a href='#SkIPoint_subtract_operator_b'>b</a> <a href='#SkIPoint_subtract_operator_b'>to</a> <a href='#SkIPoint_subtract_operator_a'>a</a>
+<a href='#IPoint_IVector'>IVector</a> from <a href='#SkIPoint_subtract_operator_b'>b</a> to <a href='#SkIPoint_subtract_operator_a'>a</a>
### Example
@@ -469,28 +469,28 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-<a href='SkIPoint_Reference#SkIPoint'>SkIPoint</a> <a href='SkIPoint_Reference#SkIPoint'>operator</a>+(<a href='SkIPoint_Reference#SkIPoint'>const</a> <a href='SkIPoint_Reference#SkIPoint'>SkIPoint</a>& <a href='SkIPoint_Reference#SkIPoint'>a</a>, <a href='SkIPoint_Reference#SkIPoint'>const</a> <a href='SkIPoint_Reference#SkIVector'>SkIVector</a>& <a href='SkIPoint_Reference#SkIVector'>b</a>)
+<a href='SkIPoint_Reference#SkIPoint'>SkIPoint</a> operator+(const <a href='SkIPoint_Reference#SkIPoint'>SkIPoint</a>& a, const <a href='SkIPoint_Reference#SkIVector'>SkIVector</a>& b)
</pre>
-Returns <a href='SkIPoint_Reference#IPoint'>IPoint</a> <a href='SkIPoint_Reference#IPoint'>resulting</a> <a href='SkIPoint_Reference#IPoint'>from</a> <a href='SkIPoint_Reference#IPoint'>IPoint</a> <a href='#SkIPoint_add_operator_a'>a</a> <a href='#SkIPoint_add_operator_a'>offset</a> <a href='#SkIPoint_add_operator_a'>by</a> <a href='#IPoint_IVector'>IVector</a> <a href='#SkIPoint_add_operator_b'>b</a>, <a href='#SkIPoint_add_operator_b'>computed</a> <a href='#SkIPoint_add_operator_b'>as</a>:
+Returns <a href='SkIPoint_Reference#IPoint'>IPoint</a> resulting from <a href='SkIPoint_Reference#IPoint'>IPoint</a> <a href='#SkIPoint_add_operator_a'>a</a> offset by <a href='#IPoint_IVector'>IVector</a> <a href='#SkIPoint_add_operator_b'>b</a>, computed as:
<code>(<a href='#SkIPoint_add_operator_a'>a</a>.<a href='#SkIPoint_fX'>fX</a> + <a href='#SkIPoint_add_operator_b'>b</a>.<a href='#SkIPoint_fX'>fX</a>, <a href='#SkIPoint_add_operator_a'>a</a>.<a href='#SkIPoint_fY'>fY</a> + <a href='#SkIPoint_add_operator_b'>b</a>.<a href='#SkIPoint_fY'>fY</a>)</code>.
-Can also be used to offset <a href='SkIPoint_Reference#IPoint'>IPoint</a> <a href='#SkIPoint_add_operator_b'>b</a> <a href='#SkIPoint_add_operator_b'>by</a> <a href='#IPoint_IVector'>IVector</a> <a href='#SkIPoint_add_operator_a'>a</a>, <a href='#SkIPoint_add_operator_a'>returning</a> <a href='SkIPoint_Reference#IPoint'>IPoint</a>.
-<a href='SkIPoint_Reference#IPoint'>Can</a> <a href='SkIPoint_Reference#IPoint'>also</a> <a href='SkIPoint_Reference#IPoint'>be</a> <a href='SkIPoint_Reference#IPoint'>used</a> <a href='SkIPoint_Reference#IPoint'>to</a> <a href='SkIPoint_Reference#IPoint'>add</a> <a href='#IPoint_IVector'>IVector</a> <a href='#IPoint_IVector'>to</a> <a href='#IPoint_IVector'>IVector</a>, <a href='#IPoint_IVector'>returning</a> <a href='#IPoint_IVector'>IVector</a>.
+Can also be used to offset <a href='SkIPoint_Reference#IPoint'>IPoint</a> <a href='#SkIPoint_add_operator_b'>b</a> by <a href='#IPoint_IVector'>IVector</a> <a href='#SkIPoint_add_operator_a'>a</a>, returning <a href='SkIPoint_Reference#IPoint'>IPoint</a>.
+Can also be used to add <a href='#IPoint_IVector'>IVector</a> to <a href='#IPoint_IVector'>IVector</a>, returning <a href='#IPoint_IVector'>IVector</a>.
### Parameters
<table> <tr> <td><a name='SkIPoint_add_operator_a'><code><strong>a</strong></code></a></td>
- <td><a href='SkIPoint_Reference#IPoint'>IPoint</a> <a href='SkIPoint_Reference#IPoint'>or</a> <a href='#IPoint_IVector'>IVector</a> <a href='#IPoint_IVector'>to</a> <a href='#IPoint_IVector'>add</a> <a href='#IPoint_IVector'>to</a></td>
+ <td><a href='SkIPoint_Reference#IPoint'>IPoint</a> or <a href='#IPoint_IVector'>IVector</a> to add to</td>
</tr>
<tr> <td><a name='SkIPoint_add_operator_b'><code><strong>b</strong></code></a></td>
- <td><a href='SkIPoint_Reference#IPoint'>IPoint</a> <a href='SkIPoint_Reference#IPoint'>or</a> <a href='#IPoint_IVector'>IVector</a> <a href='#IPoint_IVector'>to</a> <a href='#IPoint_IVector'>add</a></td>
+ <td><a href='SkIPoint_Reference#IPoint'>IPoint</a> or <a href='#IPoint_IVector'>IVector</a> to add</td>
</tr>
</table>
### Return Value
-<a href='SkIPoint_Reference#IPoint'>IPoint</a> <a href='SkIPoint_Reference#IPoint'>equal</a> <a href='SkIPoint_Reference#IPoint'>to</a> <a href='#SkIPoint_add_operator_a'>a</a> <a href='#SkIPoint_add_operator_a'>offset</a> <a href='#SkIPoint_add_operator_a'>by</a> <a href='#SkIPoint_add_operator_b'>b</a>
+<a href='SkIPoint_Reference#IPoint'>IPoint</a> equal to <a href='#SkIPoint_add_operator_a'>a</a> offset by <a href='#SkIPoint_add_operator_b'>b</a>
### Example
@@ -510,5 +510,5 @@
typedef <a href='SkIPoint_Reference#SkIPoint'>SkIPoint</a> <a href='SkIPoint_Reference#SkIVector'>SkIVector</a>;
</pre>
-<a href='SkIPoint_Reference#SkIVector'>SkIVector</a> <a href='SkIPoint_Reference#SkIVector'>provides</a> <a href='SkIPoint_Reference#SkIVector'>an</a> <a href='SkIPoint_Reference#SkIVector'>alternative</a> <a href='SkIPoint_Reference#SkIVector'>name</a> <a href='SkIPoint_Reference#SkIVector'>for</a> <a href='SkIPoint_Reference#SkIPoint'>SkIPoint</a>. <a href='SkIPoint_Reference#SkIVector'>SkIVector</a> <a href='SkIPoint_Reference#SkIVector'>and</a> <a href='SkIPoint_Reference#SkIPoint'>SkIPoint</a>
-<a href='SkIPoint_Reference#SkIPoint'>can</a> <a href='SkIPoint_Reference#SkIPoint'>be</a> <a href='SkIPoint_Reference#SkIPoint'>used</a> <a href='SkIPoint_Reference#SkIPoint'>interchangeably</a> <a href='SkIPoint_Reference#SkIPoint'>for</a> <a href='SkIPoint_Reference#SkIPoint'>all</a> <a href='SkIPoint_Reference#SkIPoint'>purposes</a>.
\ No newline at end of file
+<a href='SkIPoint_Reference#SkIVector'>SkIVector</a> provides an alternative name for <a href='SkIPoint_Reference#SkIPoint'>SkIPoint</a>. <a href='SkIPoint_Reference#SkIVector'>SkIVector</a> and <a href='SkIPoint_Reference#SkIPoint'>SkIPoint</a>
+can be used interchangeably for all purposes.
\ No newline at end of file
diff --git a/site/user/api/SkIRect_Reference.md b/site/user/api/SkIRect_Reference.md
index 6ec0930..31e0a02 100644
--- a/site/user/api/SkIRect_Reference.md
+++ b/site/user/api/SkIRect_Reference.md
@@ -8,72 +8,72 @@
<pre style="padding: 1em 1em 1em 1em;width: 62.5em; background-color: #f0f0f0">
struct <a href='SkIRect_Reference#SkIRect'>SkIRect</a> {
- <a href='SkIRect_Reference#SkIRect'>int32_t</a> <a href='#SkIRect_fLeft'>fLeft</a>;
- <a href='#SkIRect_fLeft'>int32_t</a> <a href='#SkIRect_fTop'>fTop</a>;
- <a href='#SkIRect_fTop'>int32_t</a> <a href='#SkIRect_fRight'>fRight</a>;
- <a href='#SkIRect_fRight'>int32_t</a> <a href='#SkIRect_fBottom'>fBottom</a>;
+ int32_t <a href='#SkIRect_fLeft'>fLeft</a>;
+ int32_t <a href='#SkIRect_fTop'>fTop</a>;
+ int32_t <a href='#SkIRect_fRight'>fRight</a>;
+ int32_t <a href='#SkIRect_fBottom'>fBottom</a>;
- <a href='#SkIRect_fBottom'>static</a> <a href='#SkIRect_fBottom'>constexpr</a> <a href='SkIRect_Reference#SkIRect'>SkIRect</a> <a href='#SkIRect_MakeEmpty'>MakeEmpty</a>();
- <a href='#SkIRect_MakeEmpty'>static</a> <a href='#SkIRect_MakeEmpty'>constexpr</a> <a href='SkIRect_Reference#SkIRect'>SkIRect</a> <a href='#SkIRect_MakeWH'>MakeWH</a>(<a href='#SkIRect_MakeWH'>int32_t</a> <a href='#SkIRect_MakeWH'>w</a>, <a href='#SkIRect_MakeWH'>int32_t</a> <a href='#SkIRect_MakeWH'>h</a>);
- <a href='#SkIRect_MakeWH'>static</a> <a href='#SkIRect_MakeWH'>constexpr</a> <a href='SkIRect_Reference#SkIRect'>SkIRect</a> <a href='#SkIRect_MakeSize'>MakeSize</a>(<a href='#SkIRect_MakeSize'>const</a> <a href='undocumented#SkISize'>SkISize</a>& <a href='undocumented#Size'>size</a>);
- <a href='undocumented#Size'>static</a> <a href='undocumented#Size'>constexpr</a> <a href='SkIRect_Reference#SkIRect'>SkIRect</a> <a href='#SkIRect_MakeLTRB'>MakeLTRB</a>(<a href='#SkIRect_MakeLTRB'>int32_t</a> <a href='#SkIRect_MakeLTRB'>l</a>, <a href='#SkIRect_MakeLTRB'>int32_t</a> <a href='#SkIRect_MakeLTRB'>t</a>,
- <a href='#SkIRect_MakeLTRB'>int32_t</a> <a href='#SkIRect_MakeLTRB'>r</a>, <a href='#SkIRect_MakeLTRB'>int32_t</a> <a href='#SkIRect_MakeLTRB'>b</a>);
- <a href='#SkIRect_MakeLTRB'>static</a> <a href='#SkIRect_MakeLTRB'>constexpr</a> <a href='SkIRect_Reference#SkIRect'>SkIRect</a> <a href='#SkIRect_MakeXYWH'>MakeXYWH</a>(<a href='#SkIRect_MakeXYWH'>int32_t</a> <a href='#SkIRect_MakeXYWH'>x</a>, <a href='#SkIRect_MakeXYWH'>int32_t</a> <a href='#SkIRect_MakeXYWH'>y</a>,
- <a href='#SkIRect_MakeXYWH'>int32_t</a> <a href='#SkIRect_MakeXYWH'>w</a>, <a href='#SkIRect_MakeXYWH'>int32_t</a> <a href='#SkIRect_MakeXYWH'>h</a>);
- <a href='#SkIRect_MakeXYWH'>int32_t</a> <a href='#SkIRect_left'>left()</a> <a href='#SkIRect_left'>const</a>;
- <a href='#SkIRect_left'>int32_t</a> <a href='#SkIRect_top'>top()</a> <a href='#SkIRect_top'>const</a>;
- <a href='#SkIRect_top'>int32_t</a> <a href='#SkIRect_right'>right()</a> <a href='#SkIRect_right'>const</a>;
- <a href='#SkIRect_right'>int32_t</a> <a href='#SkIRect_bottom'>bottom()</a> <a href='#SkIRect_bottom'>const</a>;
- <a href='#SkIRect_bottom'>int32_t</a> <a href='#SkIRect_x'>x()</a> <a href='#SkIRect_x'>const</a>;
- <a href='#SkIRect_x'>int32_t</a> <a href='#SkIRect_y'>y()</a> <a href='#SkIRect_y'>const</a>;
- <a href='#SkIRect_y'>int32_t</a> <a href='#SkIRect_width'>width()</a> <a href='#SkIRect_width'>const</a>;
- <a href='#SkIRect_width'>int32_t</a> <a href='#SkIRect_height'>height()</a> <a href='#SkIRect_height'>const</a>;
- <a href='undocumented#SkISize'>SkISize</a> <a href='#SkIRect_size'>size()</a> <a href='#SkIRect_size'>const</a>;
- <a href='#SkIRect_size'>int64_t</a> <a href='#SkIRect_width64'>width64</a>() <a href='#SkIRect_width64'>const</a>;
- <a href='#SkIRect_width64'>int64_t</a> <a href='#SkIRect_height64'>height64</a>() <a href='#SkIRect_height64'>const</a>;
- <a href='#SkIRect_height64'>bool</a> <a href='#SkIRect_isEmpty64'>isEmpty64</a>() <a href='#SkIRect_isEmpty64'>const</a>;
- <a href='#SkIRect_isEmpty64'>bool</a> <a href='#SkIRect_isEmpty'>isEmpty</a>() <a href='#SkIRect_isEmpty'>const</a>;
- <a href='#SkIRect_isEmpty'>friend</a> <a href='#SkIRect_isEmpty'>bool</a> <a href='#SkIRect_isEmpty'>operator</a>==(<a href='#SkIRect_isEmpty'>const</a> <a href='SkIRect_Reference#SkIRect'>SkIRect</a>& <a href='SkIRect_Reference#SkIRect'>a</a>, <a href='SkIRect_Reference#SkIRect'>const</a> <a href='SkIRect_Reference#SkIRect'>SkIRect</a>& <a href='SkIRect_Reference#SkIRect'>b</a>);
- <a href='SkIRect_Reference#SkIRect'>friend</a> <a href='SkIRect_Reference#SkIRect'>bool</a> <a href='SkIRect_Reference#SkIRect'>operator</a>!=(<a href='SkIRect_Reference#SkIRect'>const</a> <a href='SkIRect_Reference#SkIRect'>SkIRect</a>& <a href='SkIRect_Reference#SkIRect'>a</a>, <a href='SkIRect_Reference#SkIRect'>const</a> <a href='SkIRect_Reference#SkIRect'>SkIRect</a>& <a href='SkIRect_Reference#SkIRect'>b</a>);
- <a href='SkIRect_Reference#SkIRect'>void</a> <a href='#SkIRect_setEmpty'>setEmpty</a>();
- <a href='#SkIRect_setEmpty'>void</a> <a href='#SkIRect_setEmpty'>set</a>(<a href='#SkIRect_setEmpty'>int32_t</a> <a href='#SkIRect_setEmpty'>left</a>, <a href='#SkIRect_setEmpty'>int32_t</a> <a href='#SkIRect_setEmpty'>top</a>, <a href='#SkIRect_setEmpty'>int32_t</a> <a href='#SkIRect_setEmpty'>right</a>, <a href='#SkIRect_setEmpty'>int32_t</a> <a href='#SkIRect_setEmpty'>bottom</a>);
- <a href='#SkIRect_setEmpty'>void</a> <a href='#SkIRect_setLTRB'>setLTRB</a>(<a href='#SkIRect_setLTRB'>int32_t</a> <a href='#SkIRect_setLTRB'>left</a>, <a href='#SkIRect_setLTRB'>int32_t</a> <a href='#SkIRect_setLTRB'>top</a>, <a href='#SkIRect_setLTRB'>int32_t</a> <a href='#SkIRect_setLTRB'>right</a>, <a href='#SkIRect_setLTRB'>int32_t</a> <a href='#SkIRect_setLTRB'>bottom</a>);
- <a href='#SkIRect_setLTRB'>void</a> <a href='#SkIRect_setXYWH'>setXYWH</a>(<a href='#SkIRect_setXYWH'>int32_t</a> <a href='#SkIRect_setXYWH'>x</a>, <a href='#SkIRect_setXYWH'>int32_t</a> <a href='#SkIRect_setXYWH'>y</a>, <a href='#SkIRect_setXYWH'>int32_t</a> <a href='#SkIRect_setXYWH'>width</a>, <a href='#SkIRect_setXYWH'>int32_t</a> <a href='#SkIRect_setXYWH'>height</a>);
- <a href='SkIRect_Reference#SkIRect'>SkIRect</a> <a href='#SkIRect_makeOffset'>makeOffset</a>(<a href='#SkIRect_makeOffset'>int32_t</a> <a href='#SkIRect_makeOffset'>dx</a>, <a href='#SkIRect_makeOffset'>int32_t</a> <a href='#SkIRect_makeOffset'>dy</a>) <a href='#SkIRect_makeOffset'>const</a>;
- <a href='SkIRect_Reference#SkIRect'>SkIRect</a> <a href='#SkIRect_makeInset'>makeInset</a>(<a href='#SkIRect_makeInset'>int32_t</a> <a href='#SkIRect_makeInset'>dx</a>, <a href='#SkIRect_makeInset'>int32_t</a> <a href='#SkIRect_makeInset'>dy</a>) <a href='#SkIRect_makeInset'>const</a>;
- <a href='SkIRect_Reference#SkIRect'>SkIRect</a> <a href='#SkIRect_makeOutset'>makeOutset</a>(<a href='#SkIRect_makeOutset'>int32_t</a> <a href='#SkIRect_makeOutset'>dx</a>, <a href='#SkIRect_makeOutset'>int32_t</a> <a href='#SkIRect_makeOutset'>dy</a>) <a href='#SkIRect_makeOutset'>const</a>;
- <a href='#SkIRect_makeOutset'>void</a> <a href='#SkIRect_makeOutset'>offset</a>(<a href='#SkIRect_makeOutset'>int32_t</a> <a href='#SkIRect_makeOutset'>dx</a>, <a href='#SkIRect_makeOutset'>int32_t</a> <a href='#SkIRect_makeOutset'>dy</a>);
- <a href='#SkIRect_makeOutset'>void</a> <a href='#SkIRect_makeOutset'>offset</a>(<a href='#SkIRect_makeOutset'>const</a> <a href='SkIPoint_Reference#SkIPoint'>SkIPoint</a>& <a href='SkIPoint_Reference#SkIPoint'>delta</a>);
- <a href='SkIPoint_Reference#SkIPoint'>void</a> <a href='#SkIRect_offsetTo'>offsetTo</a>(<a href='#SkIRect_offsetTo'>int32_t</a> <a href='#SkIRect_offsetTo'>newX</a>, <a href='#SkIRect_offsetTo'>int32_t</a> <a href='#SkIRect_offsetTo'>newY</a>);
- <a href='#SkIRect_offsetTo'>void</a> <a href='#SkIRect_offsetTo'>inset</a>(<a href='#SkIRect_offsetTo'>int32_t</a> <a href='#SkIRect_offsetTo'>dx</a>, <a href='#SkIRect_offsetTo'>int32_t</a> <a href='#SkIRect_offsetTo'>dy</a>);
- <a href='#SkIRect_offsetTo'>void</a> <a href='#SkIRect_offsetTo'>outset</a>(<a href='#SkIRect_offsetTo'>int32_t</a> <a href='#SkIRect_offsetTo'>dx</a>, <a href='#SkIRect_offsetTo'>int32_t</a> <a href='#SkIRect_offsetTo'>dy</a>);
- <a href='#SkIRect_offsetTo'>void</a> <a href='#SkIRect_adjust'>adjust</a>(<a href='#SkIRect_adjust'>int32_t</a> <a href='#SkIRect_adjust'>dL</a>, <a href='#SkIRect_adjust'>int32_t</a> <a href='#SkIRect_adjust'>dT</a>, <a href='#SkIRect_adjust'>int32_t</a> <a href='#SkIRect_adjust'>dR</a>, <a href='#SkIRect_adjust'>int32_t</a> <a href='#SkIRect_adjust'>dB</a>);
- <a href='#SkIRect_adjust'>bool</a> <a href='#SkIRect_adjust'>contains</a>(<a href='#SkIRect_adjust'>int32_t</a> <a href='#SkIRect_adjust'>x</a>, <a href='#SkIRect_adjust'>int32_t</a> <a href='#SkIRect_adjust'>y</a>) <a href='#SkIRect_adjust'>const</a>;
- <a href='#SkIRect_adjust'>bool</a> <a href='#SkIRect_adjust'>contains</a>(<a href='#SkIRect_adjust'>int32_t</a> <a href='#SkIRect_adjust'>left</a>, <a href='#SkIRect_adjust'>int32_t</a> <a href='#SkIRect_adjust'>top</a>, <a href='#SkIRect_adjust'>int32_t</a> <a href='#SkIRect_adjust'>right</a>, <a href='#SkIRect_adjust'>int32_t</a> <a href='#SkIRect_adjust'>bottom</a>) <a href='#SkIRect_adjust'>const</a>;
- <a href='#SkIRect_adjust'>bool</a> <a href='#SkIRect_adjust'>contains</a>(<a href='#SkIRect_adjust'>const</a> <a href='SkIRect_Reference#SkIRect'>SkIRect</a>& <a href='SkIRect_Reference#SkIRect'>r</a>) <a href='SkIRect_Reference#SkIRect'>const</a>;
- <a href='SkIRect_Reference#SkIRect'>bool</a> <a href='SkIRect_Reference#SkIRect'>contains</a>(<a href='SkIRect_Reference#SkIRect'>const</a> <a href='SkRect_Reference#SkRect'>SkRect</a>& <a href='SkRect_Reference#SkRect'>r</a>) <a href='SkRect_Reference#SkRect'>const</a>;
- <a href='SkRect_Reference#SkRect'>bool</a> <a href='#SkIRect_containsNoEmptyCheck'>containsNoEmptyCheck</a>(<a href='#SkIRect_containsNoEmptyCheck'>int32_t</a> <a href='#SkIRect_containsNoEmptyCheck'>left</a>, <a href='#SkIRect_containsNoEmptyCheck'>int32_t</a> <a href='#SkIRect_containsNoEmptyCheck'>top</a>,
- <a href='#SkIRect_containsNoEmptyCheck'>int32_t</a> <a href='#SkIRect_containsNoEmptyCheck'>right</a>, <a href='#SkIRect_containsNoEmptyCheck'>int32_t</a> <a href='#SkIRect_containsNoEmptyCheck'>bottom</a>) <a href='#SkIRect_containsNoEmptyCheck'>const</a>;
- <a href='#SkIRect_containsNoEmptyCheck'>bool</a> <a href='#SkIRect_containsNoEmptyCheck'>containsNoEmptyCheck</a>(<a href='#SkIRect_containsNoEmptyCheck'>const</a> <a href='SkIRect_Reference#SkIRect'>SkIRect</a>& <a href='SkIRect_Reference#SkIRect'>r</a>) <a href='SkIRect_Reference#SkIRect'>const</a>;
- <a href='SkIRect_Reference#SkIRect'>bool</a> <a href='SkIRect_Reference#SkIRect'>intersect</a>(<a href='SkIRect_Reference#SkIRect'>const</a> <a href='SkIRect_Reference#SkIRect'>SkIRect</a>& <a href='SkIRect_Reference#SkIRect'>r</a>);
- <a href='SkIRect_Reference#SkIRect'>bool</a> <a href='#SkIRect_intersectNoEmptyCheck'>intersectNoEmptyCheck</a>(<a href='#SkIRect_intersectNoEmptyCheck'>const</a> <a href='SkIRect_Reference#SkIRect'>SkIRect</a>& <a href='SkIRect_Reference#SkIRect'>a</a>, <a href='SkIRect_Reference#SkIRect'>const</a> <a href='SkIRect_Reference#SkIRect'>SkIRect</a>& <a href='SkIRect_Reference#SkIRect'>b</a>);
- <a href='SkIRect_Reference#SkIRect'>bool</a> <a href='SkIRect_Reference#SkIRect'>intersect</a>(<a href='SkIRect_Reference#SkIRect'>const</a> <a href='SkIRect_Reference#SkIRect'>SkIRect</a>& <a href='SkIRect_Reference#SkIRect'>a</a>, <a href='SkIRect_Reference#SkIRect'>const</a> <a href='SkIRect_Reference#SkIRect'>SkIRect</a>& <a href='SkIRect_Reference#SkIRect'>b</a>);
- <a href='SkIRect_Reference#SkIRect'>bool</a> <a href='SkIRect_Reference#SkIRect'>intersect</a>(<a href='SkIRect_Reference#SkIRect'>int32_t</a> <a href='SkIRect_Reference#SkIRect'>left</a>, <a href='SkIRect_Reference#SkIRect'>int32_t</a> <a href='SkIRect_Reference#SkIRect'>top</a>, <a href='SkIRect_Reference#SkIRect'>int32_t</a> <a href='SkIRect_Reference#SkIRect'>right</a>, <a href='SkIRect_Reference#SkIRect'>int32_t</a> <a href='SkIRect_Reference#SkIRect'>bottom</a>);
- <a href='SkIRect_Reference#SkIRect'>static</a> <a href='SkIRect_Reference#SkIRect'>bool</a> <a href='#SkIRect_Intersects'>Intersects</a>(<a href='#SkIRect_Intersects'>const</a> <a href='SkIRect_Reference#SkIRect'>SkIRect</a>& <a href='SkIRect_Reference#SkIRect'>a</a>, <a href='SkIRect_Reference#SkIRect'>const</a> <a href='SkIRect_Reference#SkIRect'>SkIRect</a>& <a href='SkIRect_Reference#SkIRect'>b</a>);
- <a href='SkIRect_Reference#SkIRect'>static</a> <a href='SkIRect_Reference#SkIRect'>bool</a> <a href='#SkIRect_IntersectsNoEmptyCheck'>IntersectsNoEmptyCheck</a>(<a href='#SkIRect_IntersectsNoEmptyCheck'>const</a> <a href='SkIRect_Reference#SkIRect'>SkIRect</a>& <a href='SkIRect_Reference#SkIRect'>a</a>, <a href='SkIRect_Reference#SkIRect'>const</a> <a href='SkIRect_Reference#SkIRect'>SkIRect</a>& <a href='SkIRect_Reference#SkIRect'>b</a>);
- <a href='SkIRect_Reference#SkIRect'>void</a> <a href='SkIRect_Reference#SkIRect'>join</a>(<a href='SkIRect_Reference#SkIRect'>int32_t</a> <a href='SkIRect_Reference#SkIRect'>left</a>, <a href='SkIRect_Reference#SkIRect'>int32_t</a> <a href='SkIRect_Reference#SkIRect'>top</a>, <a href='SkIRect_Reference#SkIRect'>int32_t</a> <a href='SkIRect_Reference#SkIRect'>right</a>, <a href='SkIRect_Reference#SkIRect'>int32_t</a> <a href='SkIRect_Reference#SkIRect'>bottom</a>);
- <a href='SkIRect_Reference#SkIRect'>void</a> <a href='SkIRect_Reference#SkIRect'>join</a>(<a href='SkIRect_Reference#SkIRect'>const</a> <a href='SkIRect_Reference#SkIRect'>SkIRect</a>& <a href='SkIRect_Reference#SkIRect'>r</a>);
- <a href='SkIRect_Reference#SkIRect'>void</a> <a href='#SkIRect_sort'>sort()</a>;
- <a href='SkIRect_Reference#SkIRect'>SkIRect</a> <a href='#SkIRect_makeSorted'>makeSorted</a>() <a href='#SkIRect_makeSorted'>const</a>;
- <a href='#SkIRect_makeSorted'>static</a> <a href='#SkIRect_makeSorted'>const</a> <a href='SkIRect_Reference#SkIRect'>SkIRect</a>& <a href='#SkIRect_EmptyIRect'>EmptyIRect</a>();
+ static constexpr <a href='SkIRect_Reference#SkIRect'>SkIRect</a> <a href='#SkIRect_MakeEmpty'>MakeEmpty</a>();
+ static constexpr <a href='SkIRect_Reference#SkIRect'>SkIRect</a> <a href='#SkIRect_MakeWH'>MakeWH</a>(int32_t w, int32_t h);
+ static constexpr <a href='SkIRect_Reference#SkIRect'>SkIRect</a> <a href='#SkIRect_MakeSize'>MakeSize</a>(const <a href='undocumented#SkISize'>SkISize</a>& <a href='undocumented#Size'>size</a>);
+ static constexpr <a href='SkIRect_Reference#SkIRect'>SkIRect</a> <a href='#SkIRect_MakeLTRB'>MakeLTRB</a>(int32_t l, int32_t t,
+ int32_t r, int32_t b);
+ static constexpr <a href='SkIRect_Reference#SkIRect'>SkIRect</a> <a href='#SkIRect_MakeXYWH'>MakeXYWH</a>(int32_t x, int32_t y,
+ int32_t w, int32_t h);
+ int32_t <a href='#SkIRect_left'>left()</a> const;
+ int32_t <a href='#SkIRect_top'>top()</a> const;
+ int32_t <a href='#SkIRect_right'>right()</a> const;
+ int32_t <a href='#SkIRect_bottom'>bottom()</a> const;
+ int32_t <a href='#SkIRect_x'>x()</a> const;
+ int32_t <a href='#SkIRect_y'>y()</a> const;
+ int32_t <a href='#SkIRect_width'>width()</a> const;
+ int32_t <a href='#SkIRect_height'>height()</a> const;
+ <a href='undocumented#SkISize'>SkISize</a> <a href='#SkIRect_size'>size()</a> const;
+ int64_t <a href='#SkIRect_width64'>width64</a>() const;
+ int64_t <a href='#SkIRect_height64'>height64</a>() const;
+ bool <a href='#SkIRect_isEmpty64'>isEmpty64</a>() const;
+ bool <a href='#SkIRect_isEmpty'>isEmpty</a>() const;
+ friend bool operator==(const <a href='SkIRect_Reference#SkIRect'>SkIRect</a>& a, const <a href='SkIRect_Reference#SkIRect'>SkIRect</a>& b);
+ friend bool operator!=(const <a href='SkIRect_Reference#SkIRect'>SkIRect</a>& a, const <a href='SkIRect_Reference#SkIRect'>SkIRect</a>& b);
+ void <a href='#SkIRect_setEmpty'>setEmpty</a>();
+ void set(int32_t left, int32_t top, int32_t right, int32_t bottom);
+ void <a href='#SkIRect_setLTRB'>setLTRB</a>(int32_t left, int32_t top, int32_t right, int32_t bottom);
+ void <a href='#SkIRect_setXYWH'>setXYWH</a>(int32_t x, int32_t y, int32_t width, int32_t height);
+ <a href='SkIRect_Reference#SkIRect'>SkIRect</a> <a href='#SkIRect_makeOffset'>makeOffset</a>(int32_t dx, int32_t dy) const;
+ <a href='SkIRect_Reference#SkIRect'>SkIRect</a> <a href='#SkIRect_makeInset'>makeInset</a>(int32_t dx, int32_t dy) const;
+ <a href='SkIRect_Reference#SkIRect'>SkIRect</a> <a href='#SkIRect_makeOutset'>makeOutset</a>(int32_t dx, int32_t dy) const;
+ void offset(int32_t dx, int32_t dy);
+ void offset(const <a href='SkIPoint_Reference#SkIPoint'>SkIPoint</a>& delta);
+ void <a href='#SkIRect_offsetTo'>offsetTo</a>(int32_t newX, int32_t newY);
+ void inset(int32_t dx, int32_t dy);
+ void outset(int32_t dx, int32_t dy);
+ void <a href='#SkIRect_adjust'>adjust</a>(int32_t dL, int32_t dT, int32_t dR, int32_t dB);
+ bool contains(int32_t x, int32_t y) const;
+ bool contains(int32_t left, int32_t top, int32_t right, int32_t bottom) const;
+ bool contains(const <a href='SkIRect_Reference#SkIRect'>SkIRect</a>& r) const;
+ bool contains(const <a href='SkRect_Reference#SkRect'>SkRect</a>& r) const;
+ bool <a href='#SkIRect_containsNoEmptyCheck'>containsNoEmptyCheck</a>(int32_t left, int32_t top,
+ int32_t right, int32_t bottom) const;
+ bool <a href='#SkIRect_containsNoEmptyCheck'>containsNoEmptyCheck</a>(const <a href='SkIRect_Reference#SkIRect'>SkIRect</a>& r) const;
+ bool intersect(const <a href='SkIRect_Reference#SkIRect'>SkIRect</a>& r);
+ bool <a href='#SkIRect_intersectNoEmptyCheck'>intersectNoEmptyCheck</a>(const <a href='SkIRect_Reference#SkIRect'>SkIRect</a>& a, const <a href='SkIRect_Reference#SkIRect'>SkIRect</a>& b);
+ bool intersect(const <a href='SkIRect_Reference#SkIRect'>SkIRect</a>& a, const <a href='SkIRect_Reference#SkIRect'>SkIRect</a>& b);
+ bool intersect(int32_t left, int32_t top, int32_t right, int32_t bottom);
+ static bool <a href='#SkIRect_Intersects'>Intersects</a>(const <a href='SkIRect_Reference#SkIRect'>SkIRect</a>& a, const <a href='SkIRect_Reference#SkIRect'>SkIRect</a>& b);
+ static bool <a href='#SkIRect_IntersectsNoEmptyCheck'>IntersectsNoEmptyCheck</a>(const <a href='SkIRect_Reference#SkIRect'>SkIRect</a>& a, const <a href='SkIRect_Reference#SkIRect'>SkIRect</a>& b);
+ void join(int32_t left, int32_t top, int32_t right, int32_t bottom);
+ void join(const <a href='SkIRect_Reference#SkIRect'>SkIRect</a>& r);
+ void <a href='#SkIRect_sort'>sort()</a>;
+ <a href='SkIRect_Reference#SkIRect'>SkIRect</a> <a href='#SkIRect_makeSorted'>makeSorted</a>() const;
+ static const <a href='SkIRect_Reference#SkIRect'>SkIRect</a>& <a href='#SkIRect_EmptyIRect'>EmptyIRect</a>();
};
</pre>
-<a href='SkIRect_Reference#SkIRect'>SkIRect</a> <a href='SkIRect_Reference#SkIRect'>holds</a> <a href='SkIRect_Reference#SkIRect'>four</a> 32-<a href='SkIRect_Reference#SkIRect'>bit</a> <a href='SkIRect_Reference#SkIRect'>integer</a> <a href='SkIRect_Reference#SkIRect'>coordinates</a> <a href='SkIRect_Reference#SkIRect'>describing</a> <a href='SkIRect_Reference#SkIRect'>the</a> <a href='SkIRect_Reference#SkIRect'>upper</a> <a href='SkIRect_Reference#SkIRect'>and</a>
-<a href='SkIRect_Reference#SkIRect'>lower</a> <a href='SkIRect_Reference#SkIRect'>bounds</a> <a href='SkIRect_Reference#SkIRect'>of</a> <a href='SkIRect_Reference#SkIRect'>a</a> <a href='SkIRect_Reference#SkIRect'>rectangle</a>. <a href='SkIRect_Reference#SkIRect'>SkIRect</a> <a href='SkIRect_Reference#SkIRect'>may</a> <a href='SkIRect_Reference#SkIRect'>be</a> <a href='SkIRect_Reference#SkIRect'>created</a> <a href='SkIRect_Reference#SkIRect'>from</a> <a href='SkIRect_Reference#SkIRect'>outer</a> <a href='SkIRect_Reference#SkIRect'>bounds</a> <a href='SkIRect_Reference#SkIRect'>or</a>
-<a href='SkIRect_Reference#SkIRect'>from</a> <a href='SkIRect_Reference#SkIRect'>position</a>, <a href='SkIRect_Reference#SkIRect'>width</a>, <a href='SkIRect_Reference#SkIRect'>and</a> <a href='SkIRect_Reference#SkIRect'>height</a>. <a href='SkIRect_Reference#SkIRect'>SkIRect</a> <a href='SkIRect_Reference#SkIRect'>describes</a> <a href='SkIRect_Reference#SkIRect'>an</a> <a href='SkIRect_Reference#SkIRect'>area</a>; <a href='SkIRect_Reference#SkIRect'>if</a> <a href='SkIRect_Reference#SkIRect'>its</a> <a href='SkIRect_Reference#SkIRect'>right</a>
-<a href='SkIRect_Reference#SkIRect'>is</a> <a href='SkIRect_Reference#SkIRect'>less</a> <a href='SkIRect_Reference#SkIRect'>than</a> <a href='SkIRect_Reference#SkIRect'>or</a> <a href='SkIRect_Reference#SkIRect'>equal</a> <a href='SkIRect_Reference#SkIRect'>to</a> <a href='SkIRect_Reference#SkIRect'>its</a> <a href='SkIRect_Reference#SkIRect'>left</a>, <a href='SkIRect_Reference#SkIRect'>or</a> <a href='SkIRect_Reference#SkIRect'>if</a> <a href='SkIRect_Reference#SkIRect'>its</a> <a href='SkIRect_Reference#SkIRect'>bottom</a> <a href='SkIRect_Reference#SkIRect'>is</a> <a href='SkIRect_Reference#SkIRect'>less</a> <a href='SkIRect_Reference#SkIRect'>than</a> <a href='SkIRect_Reference#SkIRect'>or</a> <a href='SkIRect_Reference#SkIRect'>equal</a> <a href='SkIRect_Reference#SkIRect'>to</a>
-<a href='SkIRect_Reference#SkIRect'>its</a> <a href='SkIRect_Reference#SkIRect'>top</a>, <a href='SkIRect_Reference#SkIRect'>it</a> <a href='SkIRect_Reference#SkIRect'>is</a> <a href='SkIRect_Reference#SkIRect'>considered</a> <a href='SkIRect_Reference#SkIRect'>empty</a>.<table style='border-collapse: collapse; width: 62.5em'>
+<a href='SkIRect_Reference#SkIRect'>SkIRect</a> holds four 32-bit integer coordinates describing the upper and
+lower bounds of a rectangle. <a href='SkIRect_Reference#SkIRect'>SkIRect</a> may be created from outer bounds or
+from position, width, and height. <a href='SkIRect_Reference#SkIRect'>SkIRect</a> describes an area; if its right
+is less than or equal to its left, or if its bottom is less than or equal to
+its top, it is considered empty.<table style='border-collapse: collapse; width: 62.5em'>
<tr><th style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>Type</th>
<th style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>Member</th>
@@ -83,7 +83,7 @@
<td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a name='SkIRect_fLeft'><code>fLeft</code></a></td>
<td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>
May contain any value. The smaller of the horizontal values when sorted.
-When equal to or greater than <a href='#SkIRect_fRight'>fRight</a>, <a href='SkIRect_Reference#IRect'>IRect</a> <a href='SkIRect_Reference#IRect'>is</a> <a href='SkIRect_Reference#IRect'>empty</a>.
+When equal to or greater than <a href='#SkIRect_fRight'>fRight</a>, <a href='SkIRect_Reference#IRect'>IRect</a> is empty.
</td>
</tr>
<tr>
@@ -91,7 +91,7 @@
<td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a name='SkIRect_fTop'><code>fTop</code></a></td>
<td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>
May contain any value. The smaller of the horizontal values when sorted.
-When equal to or greater than <a href='#SkIRect_fBottom'>fBottom</a>, <a href='SkIRect_Reference#IRect'>IRect</a> <a href='SkIRect_Reference#IRect'>is</a> <a href='SkIRect_Reference#IRect'>empty</a>.
+When equal to or greater than <a href='#SkIRect_fBottom'>fBottom</a>, <a href='SkIRect_Reference#IRect'>IRect</a> is empty.
</td>
</tr>
<tr style='background-color: #f0f0f0; '>
@@ -99,7 +99,7 @@
<td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a name='SkIRect_fRight'><code>fRight</code></a></td>
<td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>
May contain any value. The larger of the vertical values when sorted.
-When equal to or less than <a href='#SkIRect_fLeft'>fLeft</a>, <a href='SkIRect_Reference#IRect'>IRect</a> <a href='SkIRect_Reference#IRect'>is</a> <a href='SkIRect_Reference#IRect'>empty</a>.
+When equal to or less than <a href='#SkIRect_fLeft'>fLeft</a>, <a href='SkIRect_Reference#IRect'>IRect</a> is empty.
</td>
</tr>
<tr>
@@ -107,7 +107,7 @@
<td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a name='SkIRect_fBottom'><code>fBottom</code></a></td>
<td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>
May contain any value. The larger of the vertical values when sorted.
-When equal to or less than <a href='#SkIRect_fTop'>fTop</a>, <a href='SkIRect_Reference#IRect'>IRect</a> <a href='SkIRect_Reference#IRect'>is</a> <a href='SkIRect_Reference#IRect'>empty</a>.
+When equal to or less than <a href='#SkIRect_fTop'>fTop</a>, <a href='SkIRect_Reference#IRect'>IRect</a> is empty.
</td>
</tr>
</table>
@@ -120,7 +120,7 @@
static constexpr <a href='SkIRect_Reference#SkIRect'>SkIRect</a> <a href='#SkIRect_MakeEmpty'>MakeEmpty</a>()
</pre>
-Returns constructed <a href='SkIRect_Reference#SkIRect'>SkIRect</a> <a href='SkIRect_Reference#SkIRect'>set</a> <a href='SkIRect_Reference#SkIRect'>to</a> (0, 0, 0, 0).
+Returns constructed <a href='SkIRect_Reference#SkIRect'>SkIRect</a> set to (0, 0, 0, 0).
Many other rectangles are empty; if left is equal to or greater than right,
or if top is equal to or greater than bottom. Setting all members to zero
is a convenience, but does not designate a special empty rectangle.
@@ -153,10 +153,10 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-static constexpr <a href='SkIRect_Reference#SkIRect'>SkIRect</a> <a href='#SkIRect_MakeWH'>MakeWH</a>(<a href='#SkIRect_MakeWH'>int32_t</a> <a href='#SkIRect_MakeWH'>w</a>, <a href='#SkIRect_MakeWH'>int32_t</a> <a href='#SkIRect_MakeWH'>h</a>)
+static constexpr <a href='SkIRect_Reference#SkIRect'>SkIRect</a> <a href='#SkIRect_MakeWH'>MakeWH</a>(int32_t w, int32_t h)
</pre>
-Returns constructed <a href='SkIRect_Reference#SkIRect'>SkIRect</a> <a href='SkIRect_Reference#SkIRect'>set</a> <a href='SkIRect_Reference#SkIRect'>to</a> (0, 0, <a href='#SkIRect_MakeWH_w'>w</a>, <a href='#SkIRect_MakeWH_h'>h</a>). <a href='#SkIRect_MakeWH_h'>Does</a> <a href='#SkIRect_MakeWH_h'>not</a> <a href='#SkIRect_MakeWH_h'>validate</a> <a href='#SkIRect_MakeWH_h'>input</a>; <a href='#SkIRect_MakeWH_w'>w</a> <a href='#SkIRect_MakeWH_w'>or</a> <a href='#SkIRect_MakeWH_h'>h</a>
+Returns constructed <a href='SkIRect_Reference#SkIRect'>SkIRect</a> set to (0, 0, <a href='#SkIRect_MakeWH_w'>w</a>, <a href='#SkIRect_MakeWH_h'>h</a>). Does not validate input; <a href='#SkIRect_MakeWH_w'>w</a> or <a href='#SkIRect_MakeWH_h'>h</a>
may be negative.
### Parameters
@@ -194,16 +194,16 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-static constexpr <a href='SkIRect_Reference#SkIRect'>SkIRect</a> <a href='#SkIRect_MakeSize'>MakeSize</a>(<a href='#SkIRect_MakeSize'>const</a> <a href='undocumented#SkISize'>SkISize</a>& <a href='undocumented#Size'>size</a>)
+static constexpr <a href='SkIRect_Reference#SkIRect'>SkIRect</a> <a href='#SkIRect_MakeSize'>MakeSize</a>(const <a href='undocumented#SkISize'>SkISize</a>& <a href='undocumented#Size'>size</a>)
</pre>
-Returns constructed <a href='SkIRect_Reference#SkIRect'>SkIRect</a> <a href='SkIRect_Reference#SkIRect'>set</a> <a href='SkIRect_Reference#SkIRect'>to</a> (0, 0, <a href='#SkIRect_MakeSize_size'>size</a>.<a href='#SkISize_width'>width()</a>, <a href='#SkIRect_MakeSize_size'>size</a>.<a href='#SkISize_height'>height()</a>).
-Does not validate input; <a href='#SkIRect_MakeSize_size'>size</a>.<a href='#SkISize_width'>width()</a> <a href='#SkISize_width'>or</a> <a href='#SkIRect_MakeSize_size'>size</a>.<a href='#SkISize_height'>height()</a> <a href='#SkISize_height'>may</a> <a href='#SkISize_height'>be</a> <a href='#SkISize_height'>negative</a>.
+Returns constructed <a href='SkIRect_Reference#SkIRect'>SkIRect</a> set to (0, 0, <a href='#SkIRect_MakeSize_size'>size</a>.<a href='#SkISize_width'>width()</a>, <a href='#SkIRect_MakeSize_size'>size</a>.<a href='#SkISize_height'>height()</a>).
+Does not validate input; <a href='#SkIRect_MakeSize_size'>size</a>.<a href='#SkISize_width'>width()</a> or <a href='#SkIRect_MakeSize_size'>size</a>.<a href='#SkISize_height'>height()</a> may be negative.
### Parameters
<table> <tr> <td><a name='SkIRect_MakeSize_size'><code><strong>size</strong></code></a></td>
- <td>values for <a href='SkIRect_Reference#SkIRect'>SkIRect</a> <a href='SkIRect_Reference#SkIRect'>width</a> <a href='SkIRect_Reference#SkIRect'>and</a> <a href='SkIRect_Reference#SkIRect'>height</a></td>
+ <td>values for <a href='SkIRect_Reference#SkIRect'>SkIRect</a> width and height</td>
</tr>
</table>
@@ -233,11 +233,11 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-static constexpr <a href='SkIRect_Reference#SkIRect'>SkIRect</a> <a href='#SkIRect_MakeLTRB'>MakeLTRB</a>(<a href='#SkIRect_MakeLTRB'>int32_t</a> <a href='#SkIRect_MakeLTRB'>l</a>, <a href='#SkIRect_MakeLTRB'>int32_t</a> <a href='#SkIRect_MakeLTRB'>t</a>, <a href='#SkIRect_MakeLTRB'>int32_t</a> <a href='#SkIRect_MakeLTRB'>r</a>, <a href='#SkIRect_MakeLTRB'>int32_t</a> <a href='#SkIRect_MakeLTRB'>b</a>)
+static constexpr <a href='SkIRect_Reference#SkIRect'>SkIRect</a> <a href='#SkIRect_MakeLTRB'>MakeLTRB</a>(int32_t l, int32_t t, int32_t r, int32_t b)
</pre>
-Returns constructed <a href='SkIRect_Reference#SkIRect'>SkIRect</a> <a href='SkIRect_Reference#SkIRect'>set</a> <a href='SkIRect_Reference#SkIRect'>to</a> (<a href='#SkIRect_MakeLTRB_l'>l</a>, <a href='#SkIRect_MakeLTRB_t'>t</a>, <a href='#SkIRect_MakeLTRB_r'>r</a>, <a href='#SkIRect_MakeLTRB_b'>b</a>). <a href='#SkIRect_MakeLTRB_b'>Does</a> <a href='#SkIRect_MakeLTRB_b'>not</a> <a href='#SkIRect_MakeLTRB_b'>sort</a> <a href='#SkIRect_MakeLTRB_b'>input</a>; <a href='SkIRect_Reference#SkIRect'>SkIRect</a> <a href='SkIRect_Reference#SkIRect'>may</a>
-result in <a href='#SkIRect_fLeft'>fLeft</a> <a href='#SkIRect_fLeft'>greater</a> <a href='#SkIRect_fLeft'>than</a> <a href='#SkIRect_fRight'>fRight</a>, <a href='#SkIRect_fRight'>or</a> <a href='#SkIRect_fTop'>fTop</a> <a href='#SkIRect_fTop'>greater</a> <a href='#SkIRect_fTop'>than</a> <a href='#SkIRect_fBottom'>fBottom</a>.
+Returns constructed <a href='SkIRect_Reference#SkIRect'>SkIRect</a> set to (<a href='#SkIRect_MakeLTRB_l'>l</a>, <a href='#SkIRect_MakeLTRB_t'>t</a>, <a href='#SkIRect_MakeLTRB_r'>r</a>, <a href='#SkIRect_MakeLTRB_b'>b</a>). Does not sort input; <a href='SkIRect_Reference#SkIRect'>SkIRect</a> may
+result in <a href='#SkIRect_fLeft'>fLeft</a> greater than <a href='#SkIRect_fRight'>fRight</a>, or <a href='#SkIRect_fTop'>fTop</a> greater than <a href='#SkIRect_fBottom'>fBottom</a>.
### Parameters
@@ -281,11 +281,11 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-static constexpr <a href='SkIRect_Reference#SkIRect'>SkIRect</a> <a href='#SkIRect_MakeXYWH'>MakeXYWH</a>(<a href='#SkIRect_MakeXYWH'>int32_t</a> <a href='#SkIRect_MakeXYWH'>x</a>, <a href='#SkIRect_MakeXYWH'>int32_t</a> <a href='#SkIRect_MakeXYWH'>y</a>, <a href='#SkIRect_MakeXYWH'>int32_t</a> <a href='#SkIRect_MakeXYWH'>w</a>, <a href='#SkIRect_MakeXYWH'>int32_t</a> <a href='#SkIRect_MakeXYWH'>h</a>)
+static constexpr <a href='SkIRect_Reference#SkIRect'>SkIRect</a> <a href='#SkIRect_MakeXYWH'>MakeXYWH</a>(int32_t x, int32_t y, int32_t w, int32_t h)
</pre>
-Returns constructed <a href='SkIRect_Reference#SkIRect'>SkIRect</a> <a href='SkIRect_Reference#SkIRect'>set</a> <a href='SkIRect_Reference#SkIRect'>to</a>: (<a href='#SkIRect_MakeXYWH_x'>x</a>, <a href='#SkIRect_MakeXYWH_y'>y</a>, <a href='#SkIRect_MakeXYWH_x'>x</a> + <a href='#SkIRect_MakeXYWH_w'>w</a>, <a href='#SkIRect_MakeXYWH_y'>y</a> + <a href='#SkIRect_MakeXYWH_h'>h</a>).
-Does not validate input; <a href='#SkIRect_MakeXYWH_w'>w</a> <a href='#SkIRect_MakeXYWH_w'>or</a> <a href='#SkIRect_MakeXYWH_h'>h</a> <a href='#SkIRect_MakeXYWH_h'>may</a> <a href='#SkIRect_MakeXYWH_h'>be</a> <a href='#SkIRect_MakeXYWH_h'>negative</a>.
+Returns constructed <a href='SkIRect_Reference#SkIRect'>SkIRect</a> set to: (<a href='#SkIRect_MakeXYWH_x'>x</a>, <a href='#SkIRect_MakeXYWH_y'>y</a>, <a href='#SkIRect_MakeXYWH_x'>x</a> + <a href='#SkIRect_MakeXYWH_w'>w</a>, <a href='#SkIRect_MakeXYWH_y'>y</a> + <a href='#SkIRect_MakeXYWH_h'>h</a>).
+Does not validate input; <a href='#SkIRect_MakeXYWH_w'>w</a> or <a href='#SkIRect_MakeXYWH_h'>h</a> may be negative.
### Parameters
@@ -296,16 +296,16 @@
<td>stored in <a href='#SkIRect_fTop'>fTop</a></td>
</tr>
<tr> <td><a name='SkIRect_MakeXYWH_w'><code><strong>w</strong></code></a></td>
- <td>added to <a href='#SkIRect_MakeXYWH_x'>x</a> <a href='#SkIRect_MakeXYWH_x'>and</a> <a href='#SkIRect_MakeXYWH_x'>stored</a> <a href='#SkIRect_MakeXYWH_x'>in</a> <a href='#SkIRect_fRight'>fRight</a></td>
+ <td>added to <a href='#SkIRect_MakeXYWH_x'>x</a> and stored in <a href='#SkIRect_fRight'>fRight</a></td>
</tr>
<tr> <td><a name='SkIRect_MakeXYWH_h'><code><strong>h</strong></code></a></td>
- <td>added to <a href='#SkIRect_MakeXYWH_y'>y</a> <a href='#SkIRect_MakeXYWH_y'>and</a> <a href='#SkIRect_MakeXYWH_y'>stored</a> <a href='#SkIRect_MakeXYWH_y'>in</a> <a href='#SkIRect_fBottom'>fBottom</a></td>
+ <td>added to <a href='#SkIRect_MakeXYWH_y'>y</a> and stored in <a href='#SkIRect_fBottom'>fBottom</a></td>
</tr>
</table>
### Return Value
-bounds at (<a href='#SkIRect_MakeXYWH_x'>x</a>, <a href='#SkIRect_MakeXYWH_y'>y</a>) <a href='#SkIRect_MakeXYWH_y'>with</a> <a href='#SkIRect_MakeXYWH_y'>width</a> <a href='#SkIRect_MakeXYWH_w'>w</a> <a href='#SkIRect_MakeXYWH_w'>and</a> <a href='#SkIRect_MakeXYWH_w'>height</a> <a href='#SkIRect_MakeXYWH_h'>h</a>
+bounds at (<a href='#SkIRect_MakeXYWH_x'>x</a>, <a href='#SkIRect_MakeXYWH_y'>y</a>) with width <a href='#SkIRect_MakeXYWH_w'>w</a> and height <a href='#SkIRect_MakeXYWH_h'>h</a>
### Example
@@ -331,11 +331,11 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-int32_t <a href='#SkIRect_left'>left()</a> <a href='#SkIRect_left'>const</a>
+int32_t <a href='#SkIRect_left'>left()</a> const
</pre>
-Returns left edge of <a href='SkIRect_Reference#SkIRect'>SkIRect</a>, <a href='SkIRect_Reference#SkIRect'>if</a> <a href='SkIRect_Reference#SkIRect'>sorted</a>.
-Call <a href='#SkIRect_sort'>sort()</a> <a href='#SkIRect_sort'>to</a> <a href='#SkIRect_sort'>reverse</a> <a href='#SkIRect_fLeft'>fLeft</a> <a href='#SkIRect_fLeft'>and</a> <a href='#SkIRect_fRight'>fRight</a> <a href='#SkIRect_fRight'>if</a> <a href='#SkIRect_fRight'>needed</a>.
+Returns left edge of <a href='SkIRect_Reference#SkIRect'>SkIRect</a>, if sorted.
+Call <a href='#SkIRect_sort'>sort()</a> to reverse <a href='#SkIRect_fLeft'>fLeft</a> and <a href='#SkIRect_fRight'>fRight</a> if needed.
### Return Value
@@ -363,11 +363,11 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-int32_t <a href='#SkIRect_top'>top()</a> <a href='#SkIRect_top'>const</a>
+int32_t <a href='#SkIRect_top'>top()</a> const
</pre>
-Returns top edge of <a href='SkIRect_Reference#SkIRect'>SkIRect</a>, <a href='SkIRect_Reference#SkIRect'>if</a> <a href='SkIRect_Reference#SkIRect'>sorted</a>. <a href='SkIRect_Reference#SkIRect'>Call</a> <a href='#SkIRect_isEmpty'>isEmpty</a>() <a href='#SkIRect_isEmpty'>to</a> <a href='#SkIRect_isEmpty'>see</a> <a href='#SkIRect_isEmpty'>if</a> <a href='SkIRect_Reference#SkIRect'>SkIRect</a> <a href='SkIRect_Reference#SkIRect'>may</a> <a href='SkIRect_Reference#SkIRect'>be</a> <a href='SkIRect_Reference#SkIRect'>invalid</a>,
-and <a href='#SkIRect_sort'>sort()</a> <a href='#SkIRect_sort'>to</a> <a href='#SkIRect_sort'>reverse</a> <a href='#SkIRect_fTop'>fTop</a> <a href='#SkIRect_fTop'>and</a> <a href='#SkIRect_fBottom'>fBottom</a> <a href='#SkIRect_fBottom'>if</a> <a href='#SkIRect_fBottom'>needed</a>.
+Returns top edge of <a href='SkIRect_Reference#SkIRect'>SkIRect</a>, if sorted. Call <a href='#SkIRect_isEmpty'>isEmpty</a>() to see if <a href='SkIRect_Reference#SkIRect'>SkIRect</a> may be invalid,
+and <a href='#SkIRect_sort'>sort()</a> to reverse <a href='#SkIRect_fTop'>fTop</a> and <a href='#SkIRect_fBottom'>fBottom</a> if needed.
### Return Value
@@ -395,11 +395,11 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-int32_t <a href='#SkIRect_right'>right()</a> <a href='#SkIRect_right'>const</a>
+int32_t <a href='#SkIRect_right'>right()</a> const
</pre>
-Returns right edge of <a href='SkIRect_Reference#SkIRect'>SkIRect</a>, <a href='SkIRect_Reference#SkIRect'>if</a> <a href='SkIRect_Reference#SkIRect'>sorted</a>.
-Call <a href='#SkIRect_sort'>sort()</a> <a href='#SkIRect_sort'>to</a> <a href='#SkIRect_sort'>reverse</a> <a href='#SkIRect_fLeft'>fLeft</a> <a href='#SkIRect_fLeft'>and</a> <a href='#SkIRect_fRight'>fRight</a> <a href='#SkIRect_fRight'>if</a> <a href='#SkIRect_fRight'>needed</a>.
+Returns right edge of <a href='SkIRect_Reference#SkIRect'>SkIRect</a>, if sorted.
+Call <a href='#SkIRect_sort'>sort()</a> to reverse <a href='#SkIRect_fLeft'>fLeft</a> and <a href='#SkIRect_fRight'>fRight</a> if needed.
### Return Value
@@ -427,11 +427,11 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-int32_t <a href='#SkIRect_bottom'>bottom()</a> <a href='#SkIRect_bottom'>const</a>
+int32_t <a href='#SkIRect_bottom'>bottom()</a> const
</pre>
-Returns bottom edge of <a href='SkIRect_Reference#SkIRect'>SkIRect</a>, <a href='SkIRect_Reference#SkIRect'>if</a> <a href='SkIRect_Reference#SkIRect'>sorted</a>. <a href='SkIRect_Reference#SkIRect'>Call</a> <a href='#SkIRect_isEmpty'>isEmpty</a>() <a href='#SkIRect_isEmpty'>to</a> <a href='#SkIRect_isEmpty'>see</a> <a href='#SkIRect_isEmpty'>if</a> <a href='SkIRect_Reference#SkIRect'>SkIRect</a> <a href='SkIRect_Reference#SkIRect'>may</a> <a href='SkIRect_Reference#SkIRect'>be</a> <a href='SkIRect_Reference#SkIRect'>invalid</a>,
-and <a href='#SkIRect_sort'>sort()</a> <a href='#SkIRect_sort'>to</a> <a href='#SkIRect_sort'>reverse</a> <a href='#SkIRect_fTop'>fTop</a> <a href='#SkIRect_fTop'>and</a> <a href='#SkIRect_fBottom'>fBottom</a> <a href='#SkIRect_fBottom'>if</a> <a href='#SkIRect_fBottom'>needed</a>.
+Returns bottom edge of <a href='SkIRect_Reference#SkIRect'>SkIRect</a>, if sorted. Call <a href='#SkIRect_isEmpty'>isEmpty</a>() to see if <a href='SkIRect_Reference#SkIRect'>SkIRect</a> may be invalid,
+and <a href='#SkIRect_sort'>sort()</a> to reverse <a href='#SkIRect_fTop'>fTop</a> and <a href='#SkIRect_fBottom'>fBottom</a> if needed.
### Return Value
@@ -459,11 +459,11 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-int32_t <a href='#SkIRect_x'>x()</a> <a href='#SkIRect_x'>const</a>
+int32_t <a href='#SkIRect_x'>x()</a> const
</pre>
-Returns left edge of <a href='SkIRect_Reference#SkIRect'>SkIRect</a>, <a href='SkIRect_Reference#SkIRect'>if</a> <a href='SkIRect_Reference#SkIRect'>sorted</a>. <a href='SkIRect_Reference#SkIRect'>Call</a> <a href='#SkIRect_isEmpty'>isEmpty</a>() <a href='#SkIRect_isEmpty'>to</a> <a href='#SkIRect_isEmpty'>see</a> <a href='#SkIRect_isEmpty'>if</a> <a href='SkIRect_Reference#SkIRect'>SkIRect</a> <a href='SkIRect_Reference#SkIRect'>may</a> <a href='SkIRect_Reference#SkIRect'>be</a> <a href='SkIRect_Reference#SkIRect'>invalid</a>,
-and <a href='#SkIRect_sort'>sort()</a> <a href='#SkIRect_sort'>to</a> <a href='#SkIRect_sort'>reverse</a> <a href='#SkIRect_fLeft'>fLeft</a> <a href='#SkIRect_fLeft'>and</a> <a href='#SkIRect_fRight'>fRight</a> <a href='#SkIRect_fRight'>if</a> <a href='#SkIRect_fRight'>needed</a>.
+Returns left edge of <a href='SkIRect_Reference#SkIRect'>SkIRect</a>, if sorted. Call <a href='#SkIRect_isEmpty'>isEmpty</a>() to see if <a href='SkIRect_Reference#SkIRect'>SkIRect</a> may be invalid,
+and <a href='#SkIRect_sort'>sort()</a> to reverse <a href='#SkIRect_fLeft'>fLeft</a> and <a href='#SkIRect_fRight'>fRight</a> if needed.
### Return Value
@@ -491,11 +491,11 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-int32_t <a href='#SkIRect_y'>y()</a> <a href='#SkIRect_y'>const</a>
+int32_t <a href='#SkIRect_y'>y()</a> const
</pre>
-Returns top edge of <a href='SkIRect_Reference#SkIRect'>SkIRect</a>, <a href='SkIRect_Reference#SkIRect'>if</a> <a href='SkIRect_Reference#SkIRect'>sorted</a>. <a href='SkIRect_Reference#SkIRect'>Call</a> <a href='#SkIRect_isEmpty'>isEmpty</a>() <a href='#SkIRect_isEmpty'>to</a> <a href='#SkIRect_isEmpty'>see</a> <a href='#SkIRect_isEmpty'>if</a> <a href='SkIRect_Reference#SkIRect'>SkIRect</a> <a href='SkIRect_Reference#SkIRect'>may</a> <a href='SkIRect_Reference#SkIRect'>be</a> <a href='SkIRect_Reference#SkIRect'>invalid</a>,
-and <a href='#SkIRect_sort'>sort()</a> <a href='#SkIRect_sort'>to</a> <a href='#SkIRect_sort'>reverse</a> <a href='#SkIRect_fTop'>fTop</a> <a href='#SkIRect_fTop'>and</a> <a href='#SkIRect_fBottom'>fBottom</a> <a href='#SkIRect_fBottom'>if</a> <a href='#SkIRect_fBottom'>needed</a>.
+Returns top edge of <a href='SkIRect_Reference#SkIRect'>SkIRect</a>, if sorted. Call <a href='#SkIRect_isEmpty'>isEmpty</a>() to see if <a href='SkIRect_Reference#SkIRect'>SkIRect</a> may be invalid,
+and <a href='#SkIRect_sort'>sort()</a> to reverse <a href='#SkIRect_fTop'>fTop</a> and <a href='#SkIRect_fBottom'>fBottom</a> if needed.
### Return Value
@@ -523,15 +523,15 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-int32_t <a href='#SkIRect_width'>width()</a> <a href='#SkIRect_width'>const</a>
+int32_t <a href='#SkIRect_width'>width()</a> const
</pre>
-Returns span on the x-axis. This does not check if <a href='SkIRect_Reference#SkIRect'>SkIRect</a> <a href='SkIRect_Reference#SkIRect'>is</a> <a href='SkIRect_Reference#SkIRect'>sorted</a>, <a href='SkIRect_Reference#SkIRect'>or</a> <a href='SkIRect_Reference#SkIRect'>if</a>
+Returns span on the x-axis. This does not check if <a href='SkIRect_Reference#SkIRect'>SkIRect</a> is sorted, or if
result fits in 32-bit signed integer; result may be negative.
### Return Value
-<a href='#SkIRect_fRight'>fRight</a> <a href='#SkIRect_fRight'>minus</a> <a href='#SkIRect_fLeft'>fLeft</a>
+<a href='#SkIRect_fRight'>fRight</a> minus <a href='#SkIRect_fLeft'>fLeft</a>
### Example
@@ -555,16 +555,16 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-int64_t <a href='#SkIRect_width64'>width64</a>() <a href='#SkIRect_width64'>const</a>
+int64_t <a href='#SkIRect_width64'>width64</a>() const
</pre>
-Returns span on the x-axis. This does not check if <a href='SkIRect_Reference#SkIRect'>SkIRect</a> <a href='SkIRect_Reference#SkIRect'>is</a> <a href='SkIRect_Reference#SkIRect'>sorted</a>, <a href='SkIRect_Reference#SkIRect'>so</a> <a href='SkIRect_Reference#SkIRect'>the</a>
-result may be negative. This is safer than calling <a href='#SkIRect_width'>width()</a> <a href='#SkIRect_width'>since</a> <a href='#SkIRect_width'>width()</a> <a href='#SkIRect_width'>might</a>
+Returns span on the x-axis. This does not check if <a href='SkIRect_Reference#SkIRect'>SkIRect</a> is sorted, so the
+result may be negative. This is safer than calling <a href='#SkIRect_width'>width()</a> since <a href='#SkIRect_width'>width()</a> might
overflow in its calculation.
### Return Value
-<a href='#SkIRect_fRight'>fRight</a> <a href='#SkIRect_fRight'>minus</a> <a href='#SkIRect_fLeft'>fLeft</a> <a href='#SkIRect_fLeft'>cast</a> <a href='#SkIRect_fLeft'>to</a> <a href='#SkIRect_fLeft'>int64_t</a>
+<a href='#SkIRect_fRight'>fRight</a> minus <a href='#SkIRect_fLeft'>fLeft</a> cast to int64_t
### Example
@@ -587,15 +587,15 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-int32_t <a href='#SkIRect_height'>height()</a> <a href='#SkIRect_height'>const</a>
+int32_t <a href='#SkIRect_height'>height()</a> const
</pre>
-Returns span on the y-axis. This does not check if <a href='SkIRect_Reference#SkIRect'>SkIRect</a> <a href='SkIRect_Reference#SkIRect'>is</a> <a href='SkIRect_Reference#SkIRect'>sorted</a>, <a href='SkIRect_Reference#SkIRect'>or</a> <a href='SkIRect_Reference#SkIRect'>if</a>
+Returns span on the y-axis. This does not check if <a href='SkIRect_Reference#SkIRect'>SkIRect</a> is sorted, or if
result fits in 32-bit signed integer; result may be negative.
### Return Value
-<a href='#SkIRect_fBottom'>fBottom</a> <a href='#SkIRect_fBottom'>minus</a> <a href='#SkIRect_fTop'>fTop</a>
+<a href='#SkIRect_fBottom'>fBottom</a> minus <a href='#SkIRect_fTop'>fTop</a>
### Example
@@ -619,16 +619,16 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-int64_t <a href='#SkIRect_height64'>height64</a>() <a href='#SkIRect_height64'>const</a>
+int64_t <a href='#SkIRect_height64'>height64</a>() const
</pre>
-Returns span on the y-axis. This does not check if <a href='SkIRect_Reference#SkIRect'>SkIRect</a> <a href='SkIRect_Reference#SkIRect'>is</a> <a href='SkIRect_Reference#SkIRect'>sorted</a>, <a href='SkIRect_Reference#SkIRect'>so</a> <a href='SkIRect_Reference#SkIRect'>the</a>
-result may be negative. This is safer than calling <a href='#SkIRect_height'>height()</a> <a href='#SkIRect_height'>since</a> <a href='#SkIRect_height'>height()</a> <a href='#SkIRect_height'>might</a>
+Returns span on the y-axis. This does not check if <a href='SkIRect_Reference#SkIRect'>SkIRect</a> is sorted, so the
+result may be negative. This is safer than calling <a href='#SkIRect_height'>height()</a> since <a href='#SkIRect_height'>height()</a> might
overflow in its calculation.
### Return Value
-<a href='#SkIRect_fBottom'>fBottom</a> <a href='#SkIRect_fBottom'>minus</a> <a href='#SkIRect_fTop'>fTop</a> <a href='#SkIRect_fTop'>cast</a> <a href='#SkIRect_fTop'>to</a> <a href='#SkIRect_fTop'>int64_t</a>
+<a href='#SkIRect_fBottom'>fBottom</a> minus <a href='#SkIRect_fTop'>fTop</a> cast to int64_t
### Example
@@ -651,15 +651,15 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-<a href='undocumented#SkISize'>SkISize</a> <a href='#SkIRect_size'>size()</a> <a href='#SkIRect_size'>const</a>
+<a href='undocumented#SkISize'>SkISize</a> <a href='#SkIRect_size'>size()</a> const
</pre>
-Returns spans on the x-axis and y-axis. This does not check if <a href='SkIRect_Reference#SkIRect'>SkIRect</a> <a href='SkIRect_Reference#SkIRect'>is</a> <a href='SkIRect_Reference#SkIRect'>sorted</a>,
+Returns spans on the x-axis and y-axis. This does not check if <a href='SkIRect_Reference#SkIRect'>SkIRect</a> is sorted,
or if result fits in 32-bit signed integer; result may be negative.
### Return Value
-<a href='undocumented#SkISize'>SkISize</a> (<a href='undocumented#SkISize'>width</a>, <a href='undocumented#SkISize'>height</a>)
+<a href='undocumented#SkISize'>SkISize</a> (width, height)
### Example
@@ -684,14 +684,14 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-bool <a href='#SkIRect_isEmpty'>isEmpty</a>() <a href='#SkIRect_isEmpty'>const</a>
+bool <a href='#SkIRect_isEmpty'>isEmpty</a>() const
</pre>
-Returns true if <a href='#SkIRect_width'>width()</a> <a href='#SkIRect_width'>or</a> <a href='#SkIRect_height'>height()</a> <a href='#SkIRect_height'>are</a> <a href='#SkIRect_height'>zero</a> <a href='#SkIRect_height'>or</a> <a href='#SkIRect_height'>negative</a>.
+Returns true if <a href='#SkIRect_width'>width()</a> or <a href='#SkIRect_height'>height()</a> are zero or negative.
### Return Value
-true if <a href='#SkIRect_width'>width()</a> <a href='#SkIRect_width'>or</a> <a href='#SkIRect_height'>height()</a> <a href='#SkIRect_height'>are</a> <a href='#SkIRect_height'>zero</a> <a href='#SkIRect_height'>or</a> <a href='#SkIRect_height'>negative</a>
+true if <a href='#SkIRect_width'>width()</a> or <a href='#SkIRect_height'>height()</a> are zero or negative
### Example
@@ -717,16 +717,16 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-bool <a href='#SkIRect_isEmpty64'>isEmpty64</a>() <a href='#SkIRect_isEmpty64'>const</a>
+bool <a href='#SkIRect_isEmpty64'>isEmpty64</a>() const
</pre>
-Returns true if <a href='#SkIRect_fLeft'>fLeft</a> <a href='#SkIRect_fLeft'>is</a> <a href='#SkIRect_fLeft'>equal</a> <a href='#SkIRect_fLeft'>to</a> <a href='#SkIRect_fLeft'>or</a> <a href='#SkIRect_fLeft'>greater</a> <a href='#SkIRect_fLeft'>than</a> <a href='#SkIRect_fRight'>fRight</a>, <a href='#SkIRect_fRight'>or</a> <a href='#SkIRect_fRight'>if</a> <a href='#SkIRect_fTop'>fTop</a> <a href='#SkIRect_fTop'>is</a> <a href='#SkIRect_fTop'>equal</a>
-to or greater than <a href='#SkIRect_fBottom'>fBottom</a>. <a href='#SkIRect_fBottom'>Call</a> <a href='#SkIRect_sort'>sort()</a> <a href='#SkIRect_sort'>to</a> <a href='#SkIRect_sort'>reverse</a> <a href='#SkIRect_sort'>rectangles</a> <a href='#SkIRect_sort'>with</a> <a href='#SkIRect_sort'>negative</a>
-<a href='#SkIRect_width64'>width64</a>() <a href='#SkIRect_width64'>or</a> <a href='#SkIRect_height64'>height64</a>().
+Returns true if <a href='#SkIRect_fLeft'>fLeft</a> is equal to or greater than <a href='#SkIRect_fRight'>fRight</a>, or if <a href='#SkIRect_fTop'>fTop</a> is equal
+to or greater than <a href='#SkIRect_fBottom'>fBottom</a>. Call <a href='#SkIRect_sort'>sort()</a> to reverse rectangles with negative
+<a href='#SkIRect_width64'>width64</a>() or <a href='#SkIRect_height64'>height64</a>().
### Return Value
-true if <a href='#SkIRect_width64'>width64</a>() <a href='#SkIRect_width64'>or</a> <a href='#SkIRect_height64'>height64</a>() <a href='#SkIRect_height64'>are</a> <a href='#SkIRect_height64'>zero</a> <a href='#SkIRect_height64'>or</a> <a href='#SkIRect_height64'>negative</a>
+true if <a href='#SkIRect_width64'>width64</a>() or <a href='#SkIRect_height64'>height64</a>() are zero or negative
### Example
@@ -754,19 +754,19 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-bool operator==(const <a href='SkIRect_Reference#SkIRect'>SkIRect</a>& <a href='SkIRect_Reference#SkIRect'>a</a>, <a href='SkIRect_Reference#SkIRect'>const</a> <a href='SkIRect_Reference#SkIRect'>SkIRect</a>& <a href='SkIRect_Reference#SkIRect'>b</a>)
+bool operator==(const <a href='SkIRect_Reference#SkIRect'>SkIRect</a>& a, const <a href='SkIRect_Reference#SkIRect'>SkIRect</a>& b)
</pre>
-Returns true if all members in <a href='#SkIRect_equal_operator_a'>a</a>: <a href='#SkIRect_fLeft'>fLeft</a>, <a href='#SkIRect_fTop'>fTop</a>, <a href='#SkIRect_fRight'>fRight</a>, <a href='#SkIRect_fRight'>and</a> <a href='#SkIRect_fBottom'>fBottom</a>; <a href='#SkIRect_fBottom'>are</a>
+Returns true if all members in <a href='#SkIRect_equal_operator_a'>a</a>: <a href='#SkIRect_fLeft'>fLeft</a>, <a href='#SkIRect_fTop'>fTop</a>, <a href='#SkIRect_fRight'>fRight</a>, and <a href='#SkIRect_fBottom'>fBottom</a>; are
identical to corresponding members in <a href='#SkIRect_equal_operator_b'>b</a>.
### Parameters
<table> <tr> <td><a name='SkIRect_equal_operator_a'><code><strong>a</strong></code></a></td>
- <td><a href='SkIRect_Reference#SkIRect'>SkIRect</a> <a href='SkIRect_Reference#SkIRect'>to</a> <a href='SkIRect_Reference#SkIRect'>compare</a></td>
+ <td><a href='SkIRect_Reference#SkIRect'>SkIRect</a> to compare</td>
</tr>
<tr> <td><a name='SkIRect_equal_operator_b'><code><strong>b</strong></code></a></td>
- <td><a href='SkIRect_Reference#SkIRect'>SkIRect</a> <a href='SkIRect_Reference#SkIRect'>to</a> <a href='SkIRect_Reference#SkIRect'>compare</a></td>
+ <td><a href='SkIRect_Reference#SkIRect'>SkIRect</a> to compare</td>
</tr>
</table>
@@ -795,19 +795,19 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-bool operator!=(const <a href='SkIRect_Reference#SkIRect'>SkIRect</a>& <a href='SkIRect_Reference#SkIRect'>a</a>, <a href='SkIRect_Reference#SkIRect'>const</a> <a href='SkIRect_Reference#SkIRect'>SkIRect</a>& <a href='SkIRect_Reference#SkIRect'>b</a>)
+bool operator!=(const <a href='SkIRect_Reference#SkIRect'>SkIRect</a>& a, const <a href='SkIRect_Reference#SkIRect'>SkIRect</a>& b)
</pre>
-Returns true if any member in <a href='#SkIRect_notequal_operator_a'>a</a>: <a href='#SkIRect_fLeft'>fLeft</a>, <a href='#SkIRect_fTop'>fTop</a>, <a href='#SkIRect_fRight'>fRight</a>, <a href='#SkIRect_fRight'>and</a> <a href='#SkIRect_fBottom'>fBottom</a>; <a href='#SkIRect_fBottom'>is</a> <a href='#SkIRect_fBottom'>not</a>
+Returns true if any member in <a href='#SkIRect_notequal_operator_a'>a</a>: <a href='#SkIRect_fLeft'>fLeft</a>, <a href='#SkIRect_fTop'>fTop</a>, <a href='#SkIRect_fRight'>fRight</a>, and <a href='#SkIRect_fBottom'>fBottom</a>; is not
identical to the corresponding member in <a href='#SkIRect_notequal_operator_b'>b</a>.
### Parameters
<table> <tr> <td><a name='SkIRect_notequal_operator_a'><code><strong>a</strong></code></a></td>
- <td><a href='SkIRect_Reference#SkIRect'>SkIRect</a> <a href='SkIRect_Reference#SkIRect'>to</a> <a href='SkIRect_Reference#SkIRect'>compare</a></td>
+ <td><a href='SkIRect_Reference#SkIRect'>SkIRect</a> to compare</td>
</tr>
<tr> <td><a name='SkIRect_notequal_operator_b'><code><strong>b</strong></code></a></td>
- <td><a href='SkIRect_Reference#SkIRect'>SkIRect</a> <a href='SkIRect_Reference#SkIRect'>to</a> <a href='SkIRect_Reference#SkIRect'>compare</a></td>
+ <td><a href='SkIRect_Reference#SkIRect'>SkIRect</a> to compare</td>
</tr>
</table>
@@ -841,7 +841,7 @@
void <a href='#SkIRect_setEmpty'>setEmpty</a>()
</pre>
-Sets <a href='SkIRect_Reference#SkIRect'>SkIRect</a> <a href='SkIRect_Reference#SkIRect'>to</a> (0, 0, 0, 0).
+Sets <a href='SkIRect_Reference#SkIRect'>SkIRect</a> to (0, 0, 0, 0).
Many other rectangles are empty; if left is equal to or greater than right,
or if top is equal to or greater than bottom. Setting all members to zero
@@ -872,9 +872,9 @@
void set(int32_t left, int32_t top, int32_t right, int32_t bottom)
</pre>
-Sets <a href='SkIRect_Reference#SkIRect'>SkIRect</a> <a href='SkIRect_Reference#SkIRect'>to</a> (<a href='#SkIRect_set_left'>left</a>, <a href='#SkIRect_set_top'>top</a>, <a href='#SkIRect_set_right'>right</a>, <a href='#SkIRect_set_bottom'>bottom</a>).
-<a href='#SkIRect_set_left'>left</a> <a href='#SkIRect_set_left'>and</a> <a href='#SkIRect_set_right'>right</a> <a href='#SkIRect_set_right'>are</a> <a href='#SkIRect_set_right'>not</a> <a href='#SkIRect_set_right'>sorted</a>; <a href='#SkIRect_set_left'>left</a> <a href='#SkIRect_set_left'>is</a> <a href='#SkIRect_set_left'>not</a> <a href='#SkIRect_set_left'>necessarily</a> <a href='#SkIRect_set_left'>less</a> <a href='#SkIRect_set_left'>than</a> <a href='#SkIRect_set_right'>right</a>.
-<a href='#SkIRect_set_top'>top</a> <a href='#SkIRect_set_top'>and</a> <a href='#SkIRect_set_bottom'>bottom</a> <a href='#SkIRect_set_bottom'>are</a> <a href='#SkIRect_set_bottom'>not</a> <a href='#SkIRect_set_bottom'>sorted</a>; <a href='#SkIRect_set_top'>top</a> <a href='#SkIRect_set_top'>is</a> <a href='#SkIRect_set_top'>not</a> <a href='#SkIRect_set_top'>necessarily</a> <a href='#SkIRect_set_top'>less</a> <a href='#SkIRect_set_top'>than</a> <a href='#SkIRect_set_bottom'>bottom</a>.
+Sets <a href='SkIRect_Reference#SkIRect'>SkIRect</a> to (<a href='#SkIRect_set_left'>left</a>, <a href='#SkIRect_set_top'>top</a>, <a href='#SkIRect_set_right'>right</a>, <a href='#SkIRect_set_bottom'>bottom</a>).
+<a href='#SkIRect_set_left'>left</a> and <a href='#SkIRect_set_right'>right</a> are not sorted; <a href='#SkIRect_set_left'>left</a> is not necessarily less than <a href='#SkIRect_set_right'>right</a>.
+<a href='#SkIRect_set_top'>top</a> and <a href='#SkIRect_set_bottom'>bottom</a> are not sorted; <a href='#SkIRect_set_top'>top</a> is not necessarily less than <a href='#SkIRect_set_bottom'>bottom</a>.
### Parameters
@@ -914,12 +914,12 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-void <a href='#SkIRect_setLTRB'>setLTRB</a>(<a href='#SkIRect_setLTRB'>int32_t</a> <a href='#SkIRect_setLTRB'>left</a>, <a href='#SkIRect_setLTRB'>int32_t</a> <a href='#SkIRect_setLTRB'>top</a>, <a href='#SkIRect_setLTRB'>int32_t</a> <a href='#SkIRect_setLTRB'>right</a>, <a href='#SkIRect_setLTRB'>int32_t</a> <a href='#SkIRect_setLTRB'>bottom</a>)
+void <a href='#SkIRect_setLTRB'>setLTRB</a>(int32_t left, int32_t top, int32_t right, int32_t bottom)
</pre>
-Sets <a href='SkIRect_Reference#SkIRect'>SkIRect</a> <a href='SkIRect_Reference#SkIRect'>to</a> (<a href='#SkIRect_setLTRB_left'>left</a>, <a href='#SkIRect_setLTRB_top'>top</a>, <a href='#SkIRect_setLTRB_right'>right</a>, <a href='#SkIRect_setLTRB_bottom'>bottom</a>).
-<a href='#SkIRect_setLTRB_left'>left</a> <a href='#SkIRect_setLTRB_left'>and</a> <a href='#SkIRect_setLTRB_right'>right</a> <a href='#SkIRect_setLTRB_right'>are</a> <a href='#SkIRect_setLTRB_right'>not</a> <a href='#SkIRect_setLTRB_right'>sorted</a>; <a href='#SkIRect_setLTRB_left'>left</a> <a href='#SkIRect_setLTRB_left'>is</a> <a href='#SkIRect_setLTRB_left'>not</a> <a href='#SkIRect_setLTRB_left'>necessarily</a> <a href='#SkIRect_setLTRB_left'>less</a> <a href='#SkIRect_setLTRB_left'>than</a> <a href='#SkIRect_setLTRB_right'>right</a>.
-<a href='#SkIRect_setLTRB_top'>top</a> <a href='#SkIRect_setLTRB_top'>and</a> <a href='#SkIRect_setLTRB_bottom'>bottom</a> <a href='#SkIRect_setLTRB_bottom'>are</a> <a href='#SkIRect_setLTRB_bottom'>not</a> <a href='#SkIRect_setLTRB_bottom'>sorted</a>; <a href='#SkIRect_setLTRB_top'>top</a> <a href='#SkIRect_setLTRB_top'>is</a> <a href='#SkIRect_setLTRB_top'>not</a> <a href='#SkIRect_setLTRB_top'>necessarily</a> <a href='#SkIRect_setLTRB_top'>less</a> <a href='#SkIRect_setLTRB_top'>than</a> <a href='#SkIRect_setLTRB_bottom'>bottom</a>.
+Sets <a href='SkIRect_Reference#SkIRect'>SkIRect</a> to (<a href='#SkIRect_setLTRB_left'>left</a>, <a href='#SkIRect_setLTRB_top'>top</a>, <a href='#SkIRect_setLTRB_right'>right</a>, <a href='#SkIRect_setLTRB_bottom'>bottom</a>).
+<a href='#SkIRect_setLTRB_left'>left</a> and <a href='#SkIRect_setLTRB_right'>right</a> are not sorted; <a href='#SkIRect_setLTRB_left'>left</a> is not necessarily less than <a href='#SkIRect_setLTRB_right'>right</a>.
+<a href='#SkIRect_setLTRB_top'>top</a> and <a href='#SkIRect_setLTRB_bottom'>bottom</a> are not sorted; <a href='#SkIRect_setLTRB_top'>top</a> is not necessarily less than <a href='#SkIRect_setLTRB_bottom'>bottom</a>.
### Parameters
@@ -959,11 +959,11 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-void <a href='#SkIRect_setXYWH'>setXYWH</a>(<a href='#SkIRect_setXYWH'>int32_t</a> <a href='#SkIRect_setXYWH'>x</a>, <a href='#SkIRect_setXYWH'>int32_t</a> <a href='#SkIRect_setXYWH'>y</a>, <a href='#SkIRect_setXYWH'>int32_t</a> <a href='#SkIRect_setXYWH'>width</a>, <a href='#SkIRect_setXYWH'>int32_t</a> <a href='#SkIRect_setXYWH'>height</a>)
+void <a href='#SkIRect_setXYWH'>setXYWH</a>(int32_t x, int32_t y, int32_t width, int32_t height)
</pre>
-Sets <a href='SkIRect_Reference#IRect'>IRect</a> <a href='SkIRect_Reference#IRect'>to</a>: <code>(<a href='#SkIRect_setXYWH_x'>x</a>, <a href='#SkIRect_setXYWH_y'>y</a>, <a href='#SkIRect_setXYWH_x'>x</a> + <a href='#SkIRect_setXYWH_width'>width</a>, <a href='#SkIRect_setXYWH_y'>y</a> + <a href='#SkIRect_setXYWH_height'>height</a>)</code>.
-Does not validate input; <a href='#SkIRect_setXYWH_width'>width</a> <a href='#SkIRect_setXYWH_width'>or</a> <a href='#SkIRect_setXYWH_height'>height</a> <a href='#SkIRect_setXYWH_height'>may</a> <a href='#SkIRect_setXYWH_height'>be</a> <a href='#SkIRect_setXYWH_height'>negative</a>.
+Sets <a href='SkIRect_Reference#IRect'>IRect</a> to: <code>(<a href='#SkIRect_setXYWH_x'>x</a>, <a href='#SkIRect_setXYWH_y'>y</a>, <a href='#SkIRect_setXYWH_x'>x</a> + <a href='#SkIRect_setXYWH_width'>width</a>, <a href='#SkIRect_setXYWH_y'>y</a> + <a href='#SkIRect_setXYWH_height'>height</a>)</code>.
+Does not validate input; <a href='#SkIRect_setXYWH_width'>width</a> or <a href='#SkIRect_setXYWH_height'>height</a> may be negative.
### Parameters
@@ -974,10 +974,10 @@
<td>stored in <a href='#SkIRect_fTop'>fTop</a></td>
</tr>
<tr> <td><a name='SkIRect_setXYWH_width'><code><strong>width</strong></code></a></td>
- <td>added to <a href='#SkIRect_setXYWH_x'>x</a> <a href='#SkIRect_setXYWH_x'>and</a> <a href='#SkIRect_setXYWH_x'>stored</a> <a href='#SkIRect_setXYWH_x'>in</a> <a href='#SkIRect_fRight'>fRight</a></td>
+ <td>added to <a href='#SkIRect_setXYWH_x'>x</a> and stored in <a href='#SkIRect_fRight'>fRight</a></td>
</tr>
<tr> <td><a name='SkIRect_setXYWH_height'><code><strong>height</strong></code></a></td>
- <td>added to <a href='#SkIRect_setXYWH_y'>y</a> <a href='#SkIRect_setXYWH_y'>and</a> <a href='#SkIRect_setXYWH_y'>stored</a> <a href='#SkIRect_setXYWH_y'>in</a> <a href='#SkIRect_fBottom'>fBottom</a></td>
+ <td>added to <a href='#SkIRect_setXYWH_y'>y</a> and stored in <a href='#SkIRect_fBottom'>fBottom</a></td>
</tr>
</table>
@@ -1005,29 +1005,29 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-<a href='SkIRect_Reference#SkIRect'>SkIRect</a> <a href='#SkIRect_makeOffset'>makeOffset</a>(<a href='#SkIRect_makeOffset'>int32_t</a> <a href='#SkIRect_makeOffset'>dx</a>, <a href='#SkIRect_makeOffset'>int32_t</a> <a href='#SkIRect_makeOffset'>dy</a>) <a href='#SkIRect_makeOffset'>const</a>
+<a href='SkIRect_Reference#SkIRect'>SkIRect</a> <a href='#SkIRect_makeOffset'>makeOffset</a>(int32_t dx, int32_t dy) const
</pre>
-Returns <a href='SkIRect_Reference#SkIRect'>SkIRect</a> <a href='SkIRect_Reference#SkIRect'>offset</a> <a href='SkIRect_Reference#SkIRect'>by</a> (<a href='#SkIRect_makeOffset_dx'>dx</a>, <a href='#SkIRect_makeOffset_dy'>dy</a>).
+Returns <a href='SkIRect_Reference#SkIRect'>SkIRect</a> offset by (<a href='#SkIRect_makeOffset_dx'>dx</a>, <a href='#SkIRect_makeOffset_dy'>dy</a>).
-If <a href='#SkIRect_makeOffset_dx'>dx</a> <a href='#SkIRect_makeOffset_dx'>is</a> <a href='#SkIRect_makeOffset_dx'>negative</a>, <a href='SkIRect_Reference#SkIRect'>SkIRect</a> <a href='SkIRect_Reference#SkIRect'>returned</a> <a href='SkIRect_Reference#SkIRect'>is</a> <a href='SkIRect_Reference#SkIRect'>moved</a> <a href='SkIRect_Reference#SkIRect'>to</a> <a href='SkIRect_Reference#SkIRect'>the</a> <a href='SkIRect_Reference#SkIRect'>left</a>.
-If <a href='#SkIRect_makeOffset_dx'>dx</a> <a href='#SkIRect_makeOffset_dx'>is</a> <a href='#SkIRect_makeOffset_dx'>positive</a>, <a href='SkIRect_Reference#SkIRect'>SkIRect</a> <a href='SkIRect_Reference#SkIRect'>returned</a> <a href='SkIRect_Reference#SkIRect'>is</a> <a href='SkIRect_Reference#SkIRect'>moved</a> <a href='SkIRect_Reference#SkIRect'>to</a> <a href='SkIRect_Reference#SkIRect'>the</a> <a href='SkIRect_Reference#SkIRect'>right</a>.
-If <a href='#SkIRect_makeOffset_dy'>dy</a> <a href='#SkIRect_makeOffset_dy'>is</a> <a href='#SkIRect_makeOffset_dy'>negative</a>, <a href='SkIRect_Reference#SkIRect'>SkIRect</a> <a href='SkIRect_Reference#SkIRect'>returned</a> <a href='SkIRect_Reference#SkIRect'>is</a> <a href='SkIRect_Reference#SkIRect'>moved</a> <a href='SkIRect_Reference#SkIRect'>upward</a>.
-If <a href='#SkIRect_makeOffset_dy'>dy</a> <a href='#SkIRect_makeOffset_dy'>is</a> <a href='#SkIRect_makeOffset_dy'>positive</a>, <a href='SkIRect_Reference#SkIRect'>SkIRect</a> <a href='SkIRect_Reference#SkIRect'>returned</a> <a href='SkIRect_Reference#SkIRect'>is</a> <a href='SkIRect_Reference#SkIRect'>moved</a> <a href='SkIRect_Reference#SkIRect'>downward</a>.
+If <a href='#SkIRect_makeOffset_dx'>dx</a> is negative, <a href='SkIRect_Reference#SkIRect'>SkIRect</a> returned is moved to the left.
+If <a href='#SkIRect_makeOffset_dx'>dx</a> is positive, <a href='SkIRect_Reference#SkIRect'>SkIRect</a> returned is moved to the right.
+If <a href='#SkIRect_makeOffset_dy'>dy</a> is negative, <a href='SkIRect_Reference#SkIRect'>SkIRect</a> returned is moved upward.
+If <a href='#SkIRect_makeOffset_dy'>dy</a> is positive, <a href='SkIRect_Reference#SkIRect'>SkIRect</a> returned is moved downward.
### Parameters
<table> <tr> <td><a name='SkIRect_makeOffset_dx'><code><strong>dx</strong></code></a></td>
- <td>offset added to <a href='#SkIRect_fLeft'>fLeft</a> <a href='#SkIRect_fLeft'>and</a> <a href='#SkIRect_fRight'>fRight</a></td>
+ <td>offset added to <a href='#SkIRect_fLeft'>fLeft</a> and <a href='#SkIRect_fRight'>fRight</a></td>
</tr>
<tr> <td><a name='SkIRect_makeOffset_dy'><code><strong>dy</strong></code></a></td>
- <td>offset added to <a href='#SkIRect_fTop'>fTop</a> <a href='#SkIRect_fTop'>and</a> <a href='#SkIRect_fBottom'>fBottom</a></td>
+ <td>offset added to <a href='#SkIRect_fTop'>fTop</a> and <a href='#SkIRect_fBottom'>fBottom</a></td>
</tr>
</table>
### Return Value
-<a href='SkIRect_Reference#SkIRect'>SkIRect</a> <a href='SkIRect_Reference#SkIRect'>offset</a> <a href='SkIRect_Reference#SkIRect'>by</a> <a href='#SkIRect_makeOffset_dx'>dx</a> <a href='#SkIRect_makeOffset_dx'>and</a> <a href='#SkIRect_makeOffset_dy'>dy</a>, <a href='#SkIRect_makeOffset_dy'>with</a> <a href='#SkIRect_makeOffset_dy'>original</a> <a href='#SkIRect_makeOffset_dy'>width</a> <a href='#SkIRect_makeOffset_dy'>and</a> <a href='#SkIRect_makeOffset_dy'>height</a>
+<a href='SkIRect_Reference#SkIRect'>SkIRect</a> offset by <a href='#SkIRect_makeOffset_dx'>dx</a> and <a href='#SkIRect_makeOffset_dy'>dy</a>, with original width and height
### Example
@@ -1051,29 +1051,29 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-<a href='SkIRect_Reference#SkIRect'>SkIRect</a> <a href='#SkIRect_makeInset'>makeInset</a>(<a href='#SkIRect_makeInset'>int32_t</a> <a href='#SkIRect_makeInset'>dx</a>, <a href='#SkIRect_makeInset'>int32_t</a> <a href='#SkIRect_makeInset'>dy</a>) <a href='#SkIRect_makeInset'>const</a>
+<a href='SkIRect_Reference#SkIRect'>SkIRect</a> <a href='#SkIRect_makeInset'>makeInset</a>(int32_t dx, int32_t dy) const
</pre>
-Returns <a href='SkIRect_Reference#SkIRect'>SkIRect</a>, <a href='SkIRect_Reference#SkIRect'>inset</a> <a href='SkIRect_Reference#SkIRect'>by</a> (<a href='#SkIRect_makeInset_dx'>dx</a>, <a href='#SkIRect_makeInset_dy'>dy</a>).
+Returns <a href='SkIRect_Reference#SkIRect'>SkIRect</a>, inset by (<a href='#SkIRect_makeInset_dx'>dx</a>, <a href='#SkIRect_makeInset_dy'>dy</a>).
-If <a href='#SkIRect_makeInset_dx'>dx</a> <a href='#SkIRect_makeInset_dx'>is</a> <a href='#SkIRect_makeInset_dx'>negative</a>, <a href='SkIRect_Reference#SkIRect'>SkIRect</a> <a href='SkIRect_Reference#SkIRect'>returned</a> <a href='SkIRect_Reference#SkIRect'>is</a> <a href='SkIRect_Reference#SkIRect'>wider</a>.
-If <a href='#SkIRect_makeInset_dx'>dx</a> <a href='#SkIRect_makeInset_dx'>is</a> <a href='#SkIRect_makeInset_dx'>positive</a>, <a href='SkIRect_Reference#SkIRect'>SkIRect</a> <a href='SkIRect_Reference#SkIRect'>returned</a> <a href='SkIRect_Reference#SkIRect'>is</a> <a href='SkIRect_Reference#SkIRect'>narrower</a>.
-If <a href='#SkIRect_makeInset_dy'>dy</a> <a href='#SkIRect_makeInset_dy'>is</a> <a href='#SkIRect_makeInset_dy'>negative</a>, <a href='SkIRect_Reference#SkIRect'>SkIRect</a> <a href='SkIRect_Reference#SkIRect'>returned</a> <a href='SkIRect_Reference#SkIRect'>is</a> <a href='SkIRect_Reference#SkIRect'>taller</a>.
-If <a href='#SkIRect_makeInset_dy'>dy</a> <a href='#SkIRect_makeInset_dy'>is</a> <a href='#SkIRect_makeInset_dy'>positive</a>, <a href='SkIRect_Reference#SkIRect'>SkIRect</a> <a href='SkIRect_Reference#SkIRect'>returned</a> <a href='SkIRect_Reference#SkIRect'>is</a> <a href='SkIRect_Reference#SkIRect'>shorter</a>.
+If <a href='#SkIRect_makeInset_dx'>dx</a> is negative, <a href='SkIRect_Reference#SkIRect'>SkIRect</a> returned is wider.
+If <a href='#SkIRect_makeInset_dx'>dx</a> is positive, <a href='SkIRect_Reference#SkIRect'>SkIRect</a> returned is narrower.
+If <a href='#SkIRect_makeInset_dy'>dy</a> is negative, <a href='SkIRect_Reference#SkIRect'>SkIRect</a> returned is taller.
+If <a href='#SkIRect_makeInset_dy'>dy</a> is positive, <a href='SkIRect_Reference#SkIRect'>SkIRect</a> returned is shorter.
### Parameters
<table> <tr> <td><a name='SkIRect_makeInset_dx'><code><strong>dx</strong></code></a></td>
- <td>offset added to <a href='#SkIRect_fLeft'>fLeft</a> <a href='#SkIRect_fLeft'>and</a> <a href='#SkIRect_fLeft'>subtracted</a> <a href='#SkIRect_fLeft'>from</a> <a href='#SkIRect_fRight'>fRight</a></td>
+ <td>offset added to <a href='#SkIRect_fLeft'>fLeft</a> and subtracted from <a href='#SkIRect_fRight'>fRight</a></td>
</tr>
<tr> <td><a name='SkIRect_makeInset_dy'><code><strong>dy</strong></code></a></td>
- <td>offset added to <a href='#SkIRect_fTop'>fTop</a> <a href='#SkIRect_fTop'>and</a> <a href='#SkIRect_fTop'>subtracted</a> <a href='#SkIRect_fTop'>from</a> <a href='#SkIRect_fBottom'>fBottom</a></td>
+ <td>offset added to <a href='#SkIRect_fTop'>fTop</a> and subtracted from <a href='#SkIRect_fBottom'>fBottom</a></td>
</tr>
</table>
### Return Value
-<a href='SkIRect_Reference#SkIRect'>SkIRect</a> <a href='SkIRect_Reference#SkIRect'>inset</a> <a href='SkIRect_Reference#SkIRect'>symmetrically</a> <a href='SkIRect_Reference#SkIRect'>left</a> <a href='SkIRect_Reference#SkIRect'>and</a> <a href='SkIRect_Reference#SkIRect'>right</a>, <a href='SkIRect_Reference#SkIRect'>top</a> <a href='SkIRect_Reference#SkIRect'>and</a> <a href='SkIRect_Reference#SkIRect'>bottom</a>
+<a href='SkIRect_Reference#SkIRect'>SkIRect</a> inset symmetrically left and right, top and bottom
### Example
@@ -1097,29 +1097,29 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-<a href='SkIRect_Reference#SkIRect'>SkIRect</a> <a href='#SkIRect_makeOutset'>makeOutset</a>(<a href='#SkIRect_makeOutset'>int32_t</a> <a href='#SkIRect_makeOutset'>dx</a>, <a href='#SkIRect_makeOutset'>int32_t</a> <a href='#SkIRect_makeOutset'>dy</a>) <a href='#SkIRect_makeOutset'>const</a>
+<a href='SkIRect_Reference#SkIRect'>SkIRect</a> <a href='#SkIRect_makeOutset'>makeOutset</a>(int32_t dx, int32_t dy) const
</pre>
-Returns <a href='SkIRect_Reference#SkIRect'>SkIRect</a>, <a href='SkIRect_Reference#SkIRect'>outset</a> <a href='SkIRect_Reference#SkIRect'>by</a> (<a href='#SkIRect_makeOutset_dx'>dx</a>, <a href='#SkIRect_makeOutset_dy'>dy</a>).
+Returns <a href='SkIRect_Reference#SkIRect'>SkIRect</a>, outset by (<a href='#SkIRect_makeOutset_dx'>dx</a>, <a href='#SkIRect_makeOutset_dy'>dy</a>).
-If <a href='#SkIRect_makeOutset_dx'>dx</a> <a href='#SkIRect_makeOutset_dx'>is</a> <a href='#SkIRect_makeOutset_dx'>negative</a>, <a href='SkIRect_Reference#SkIRect'>SkIRect</a> <a href='SkIRect_Reference#SkIRect'>returned</a> <a href='SkIRect_Reference#SkIRect'>is</a> <a href='SkIRect_Reference#SkIRect'>narrower</a>.
-If <a href='#SkIRect_makeOutset_dx'>dx</a> <a href='#SkIRect_makeOutset_dx'>is</a> <a href='#SkIRect_makeOutset_dx'>positive</a>, <a href='SkIRect_Reference#SkIRect'>SkIRect</a> <a href='SkIRect_Reference#SkIRect'>returned</a> <a href='SkIRect_Reference#SkIRect'>is</a> <a href='SkIRect_Reference#SkIRect'>wider</a>.
-If <a href='#SkIRect_makeOutset_dy'>dy</a> <a href='#SkIRect_makeOutset_dy'>is</a> <a href='#SkIRect_makeOutset_dy'>negative</a>, <a href='SkIRect_Reference#SkIRect'>SkIRect</a> <a href='SkIRect_Reference#SkIRect'>returned</a> <a href='SkIRect_Reference#SkIRect'>is</a> <a href='SkIRect_Reference#SkIRect'>shorter</a>.
-If <a href='#SkIRect_makeOutset_dy'>dy</a> <a href='#SkIRect_makeOutset_dy'>is</a> <a href='#SkIRect_makeOutset_dy'>positive</a>, <a href='SkIRect_Reference#SkIRect'>SkIRect</a> <a href='SkIRect_Reference#SkIRect'>returned</a> <a href='SkIRect_Reference#SkIRect'>is</a> <a href='SkIRect_Reference#SkIRect'>taller</a>.
+If <a href='#SkIRect_makeOutset_dx'>dx</a> is negative, <a href='SkIRect_Reference#SkIRect'>SkIRect</a> returned is narrower.
+If <a href='#SkIRect_makeOutset_dx'>dx</a> is positive, <a href='SkIRect_Reference#SkIRect'>SkIRect</a> returned is wider.
+If <a href='#SkIRect_makeOutset_dy'>dy</a> is negative, <a href='SkIRect_Reference#SkIRect'>SkIRect</a> returned is shorter.
+If <a href='#SkIRect_makeOutset_dy'>dy</a> is positive, <a href='SkIRect_Reference#SkIRect'>SkIRect</a> returned is taller.
### Parameters
<table> <tr> <td><a name='SkIRect_makeOutset_dx'><code><strong>dx</strong></code></a></td>
- <td>offset subtracted to <a href='#SkIRect_fLeft'>fLeft</a> <a href='#SkIRect_fLeft'>and</a> <a href='#SkIRect_fLeft'>added</a> <a href='#SkIRect_fLeft'>from</a> <a href='#SkIRect_fRight'>fRight</a></td>
+ <td>offset subtracted to <a href='#SkIRect_fLeft'>fLeft</a> and added from <a href='#SkIRect_fRight'>fRight</a></td>
</tr>
<tr> <td><a name='SkIRect_makeOutset_dy'><code><strong>dy</strong></code></a></td>
- <td>offset subtracted to <a href='#SkIRect_fTop'>fTop</a> <a href='#SkIRect_fTop'>and</a> <a href='#SkIRect_fTop'>added</a> <a href='#SkIRect_fTop'>from</a> <a href='#SkIRect_fBottom'>fBottom</a></td>
+ <td>offset subtracted to <a href='#SkIRect_fTop'>fTop</a> and added from <a href='#SkIRect_fBottom'>fBottom</a></td>
</tr>
</table>
### Return Value
-<a href='SkIRect_Reference#SkIRect'>SkIRect</a> <a href='SkIRect_Reference#SkIRect'>outset</a> <a href='SkIRect_Reference#SkIRect'>symmetrically</a> <a href='SkIRect_Reference#SkIRect'>left</a> <a href='SkIRect_Reference#SkIRect'>and</a> <a href='SkIRect_Reference#SkIRect'>right</a>, <a href='SkIRect_Reference#SkIRect'>top</a> <a href='SkIRect_Reference#SkIRect'>and</a> <a href='SkIRect_Reference#SkIRect'>bottom</a>
+<a href='SkIRect_Reference#SkIRect'>SkIRect</a> outset symmetrically left and right, top and bottom
### Example
@@ -1146,20 +1146,20 @@
void offset(int32_t dx, int32_t dy)
</pre>
-Offsets <a href='SkIRect_Reference#SkIRect'>SkIRect</a> <a href='SkIRect_Reference#SkIRect'>by</a> <a href='SkIRect_Reference#SkIRect'>adding</a> <a href='#SkIRect_offset_dx'>dx</a> <a href='#SkIRect_offset_dx'>to</a> <a href='#SkIRect_fLeft'>fLeft</a>, <a href='#SkIRect_fRight'>fRight</a>; <a href='#SkIRect_fRight'>and</a> <a href='#SkIRect_fRight'>by</a> <a href='#SkIRect_fRight'>adding</a> <a href='#SkIRect_offset_dy'>dy</a> <a href='#SkIRect_offset_dy'>to</a> <a href='#SkIRect_fTop'>fTop</a>, <a href='#SkIRect_fBottom'>fBottom</a>.
+Offsets <a href='SkIRect_Reference#SkIRect'>SkIRect</a> by adding <a href='#SkIRect_offset_dx'>dx</a> to <a href='#SkIRect_fLeft'>fLeft</a>, <a href='#SkIRect_fRight'>fRight</a>; and by adding <a href='#SkIRect_offset_dy'>dy</a> to <a href='#SkIRect_fTop'>fTop</a>, <a href='#SkIRect_fBottom'>fBottom</a>.
-If <a href='#SkIRect_offset_dx'>dx</a> <a href='#SkIRect_offset_dx'>is</a> <a href='#SkIRect_offset_dx'>negative</a>, <a href='#SkIRect_offset_dx'>moves</a> <a href='SkIRect_Reference#SkIRect'>SkIRect</a> <a href='SkIRect_Reference#SkIRect'>returned</a> <a href='SkIRect_Reference#SkIRect'>to</a> <a href='SkIRect_Reference#SkIRect'>the</a> <a href='SkIRect_Reference#SkIRect'>left</a>.
-If <a href='#SkIRect_offset_dx'>dx</a> <a href='#SkIRect_offset_dx'>is</a> <a href='#SkIRect_offset_dx'>positive</a>, <a href='#SkIRect_offset_dx'>moves</a> <a href='SkIRect_Reference#SkIRect'>SkIRect</a> <a href='SkIRect_Reference#SkIRect'>returned</a> <a href='SkIRect_Reference#SkIRect'>to</a> <a href='SkIRect_Reference#SkIRect'>the</a> <a href='SkIRect_Reference#SkIRect'>right</a>.
-If <a href='#SkIRect_offset_dy'>dy</a> <a href='#SkIRect_offset_dy'>is</a> <a href='#SkIRect_offset_dy'>negative</a>, <a href='#SkIRect_offset_dy'>moves</a> <a href='SkIRect_Reference#SkIRect'>SkIRect</a> <a href='SkIRect_Reference#SkIRect'>returned</a> <a href='SkIRect_Reference#SkIRect'>upward</a>.
-If <a href='#SkIRect_offset_dy'>dy</a> <a href='#SkIRect_offset_dy'>is</a> <a href='#SkIRect_offset_dy'>positive</a>, <a href='#SkIRect_offset_dy'>moves</a> <a href='SkIRect_Reference#SkIRect'>SkIRect</a> <a href='SkIRect_Reference#SkIRect'>returned</a> <a href='SkIRect_Reference#SkIRect'>downward</a>.
+If <a href='#SkIRect_offset_dx'>dx</a> is negative, moves <a href='SkIRect_Reference#SkIRect'>SkIRect</a> returned to the left.
+If <a href='#SkIRect_offset_dx'>dx</a> is positive, moves <a href='SkIRect_Reference#SkIRect'>SkIRect</a> returned to the right.
+If <a href='#SkIRect_offset_dy'>dy</a> is negative, moves <a href='SkIRect_Reference#SkIRect'>SkIRect</a> returned upward.
+If <a href='#SkIRect_offset_dy'>dy</a> is positive, moves <a href='SkIRect_Reference#SkIRect'>SkIRect</a> returned downward.
### Parameters
<table> <tr> <td><a name='SkIRect_offset_dx'><code><strong>dx</strong></code></a></td>
- <td>offset added to <a href='#SkIRect_fLeft'>fLeft</a> <a href='#SkIRect_fLeft'>and</a> <a href='#SkIRect_fRight'>fRight</a></td>
+ <td>offset added to <a href='#SkIRect_fLeft'>fLeft</a> and <a href='#SkIRect_fRight'>fRight</a></td>
</tr>
<tr> <td><a name='SkIRect_offset_dy'><code><strong>dy</strong></code></a></td>
- <td>offset added to <a href='#SkIRect_fTop'>fTop</a> <a href='#SkIRect_fTop'>and</a> <a href='#SkIRect_fBottom'>fBottom</a></td>
+ <td>offset added to <a href='#SkIRect_fTop'>fTop</a> and <a href='#SkIRect_fBottom'>fBottom</a></td>
</tr>
</table>
@@ -1184,16 +1184,16 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-void offset(const <a href='SkIPoint_Reference#SkIPoint'>SkIPoint</a>& <a href='SkIPoint_Reference#SkIPoint'>delta</a>)
+void offset(const <a href='SkIPoint_Reference#SkIPoint'>SkIPoint</a>& delta)
</pre>
-Offsets <a href='SkIRect_Reference#SkIRect'>SkIRect</a> <a href='SkIRect_Reference#SkIRect'>by</a> <a href='SkIRect_Reference#SkIRect'>adding</a> <a href='#SkIRect_offset_2_delta'>delta</a>.<a href='#SkIPoint_fX'>fX</a> <a href='#SkIPoint_fX'>to</a> <a href='#SkIRect_fLeft'>fLeft</a>, <a href='#SkIRect_fRight'>fRight</a>; <a href='#SkIRect_fRight'>and</a> <a href='#SkIRect_fRight'>by</a> <a href='#SkIRect_fRight'>adding</a> <a href='#SkIRect_offset_2_delta'>delta</a>.<a href='#SkIPoint_fY'>fY</a> <a href='#SkIPoint_fY'>to</a>
+Offsets <a href='SkIRect_Reference#SkIRect'>SkIRect</a> by adding <a href='#SkIRect_offset_2_delta'>delta</a>.<a href='#SkIPoint_fX'>fX</a> to <a href='#SkIRect_fLeft'>fLeft</a>, <a href='#SkIRect_fRight'>fRight</a>; and by adding <a href='#SkIRect_offset_2_delta'>delta</a>.<a href='#SkIPoint_fY'>fY</a> to
<a href='#SkIRect_fTop'>fTop</a>, <a href='#SkIRect_fBottom'>fBottom</a>.
-If <a href='#SkIRect_offset_2_delta'>delta</a>.<a href='#SkIPoint_fX'>fX</a> <a href='#SkIPoint_fX'>is</a> <a href='#SkIPoint_fX'>negative</a>, <a href='#SkIPoint_fX'>moves</a> <a href='SkIRect_Reference#SkIRect'>SkIRect</a> <a href='SkIRect_Reference#SkIRect'>returned</a> <a href='SkIRect_Reference#SkIRect'>to</a> <a href='SkIRect_Reference#SkIRect'>the</a> <a href='SkIRect_Reference#SkIRect'>left</a>.
-If <a href='#SkIRect_offset_2_delta'>delta</a>.<a href='#SkIPoint_fX'>fX</a> <a href='#SkIPoint_fX'>is</a> <a href='#SkIPoint_fX'>positive</a>, <a href='#SkIPoint_fX'>moves</a> <a href='SkIRect_Reference#SkIRect'>SkIRect</a> <a href='SkIRect_Reference#SkIRect'>returned</a> <a href='SkIRect_Reference#SkIRect'>to</a> <a href='SkIRect_Reference#SkIRect'>the</a> <a href='SkIRect_Reference#SkIRect'>right</a>.
-If <a href='#SkIRect_offset_2_delta'>delta</a>.<a href='#SkIPoint_fY'>fY</a> <a href='#SkIPoint_fY'>is</a> <a href='#SkIPoint_fY'>negative</a>, <a href='#SkIPoint_fY'>moves</a> <a href='SkIRect_Reference#SkIRect'>SkIRect</a> <a href='SkIRect_Reference#SkIRect'>returned</a> <a href='SkIRect_Reference#SkIRect'>upward</a>.
-If <a href='#SkIRect_offset_2_delta'>delta</a>.<a href='#SkIPoint_fY'>fY</a> <a href='#SkIPoint_fY'>is</a> <a href='#SkIPoint_fY'>positive</a>, <a href='#SkIPoint_fY'>moves</a> <a href='SkIRect_Reference#SkIRect'>SkIRect</a> <a href='SkIRect_Reference#SkIRect'>returned</a> <a href='SkIRect_Reference#SkIRect'>downward</a>.
+If <a href='#SkIRect_offset_2_delta'>delta</a>.<a href='#SkIPoint_fX'>fX</a> is negative, moves <a href='SkIRect_Reference#SkIRect'>SkIRect</a> returned to the left.
+If <a href='#SkIRect_offset_2_delta'>delta</a>.<a href='#SkIPoint_fX'>fX</a> is positive, moves <a href='SkIRect_Reference#SkIRect'>SkIRect</a> returned to the right.
+If <a href='#SkIRect_offset_2_delta'>delta</a>.<a href='#SkIPoint_fY'>fY</a> is negative, moves <a href='SkIRect_Reference#SkIRect'>SkIRect</a> returned upward.
+If <a href='#SkIRect_offset_2_delta'>delta</a>.<a href='#SkIPoint_fY'>fY</a> is positive, moves <a href='SkIRect_Reference#SkIRect'>SkIRect</a> returned downward.
### Parameters
@@ -1223,19 +1223,19 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-void <a href='#SkIRect_offsetTo'>offsetTo</a>(<a href='#SkIRect_offsetTo'>int32_t</a> <a href='#SkIRect_offsetTo'>newX</a>, <a href='#SkIRect_offsetTo'>int32_t</a> <a href='#SkIRect_offsetTo'>newY</a>)
+void <a href='#SkIRect_offsetTo'>offsetTo</a>(int32_t newX, int32_t newY)
</pre>
-Offsets <a href='SkIRect_Reference#SkIRect'>SkIRect</a> <a href='SkIRect_Reference#SkIRect'>so</a> <a href='SkIRect_Reference#SkIRect'>that</a> <a href='#SkIRect_fLeft'>fLeft</a> <a href='#SkIRect_fLeft'>equals</a> <a href='#SkIRect_offsetTo_newX'>newX</a>, <a href='#SkIRect_offsetTo_newX'>and</a> <a href='#SkIRect_fTop'>fTop</a> <a href='#SkIRect_fTop'>equals</a> <a href='#SkIRect_offsetTo_newY'>newY</a>. <a href='#SkIRect_offsetTo_newY'>width</a> <a href='#SkIRect_offsetTo_newY'>and</a> <a href='#SkIRect_offsetTo_newY'>height</a>
+Offsets <a href='SkIRect_Reference#SkIRect'>SkIRect</a> so that <a href='#SkIRect_fLeft'>fLeft</a> equals <a href='#SkIRect_offsetTo_newX'>newX</a>, and <a href='#SkIRect_fTop'>fTop</a> equals <a href='#SkIRect_offsetTo_newY'>newY</a>. width and height
are unchanged.
### Parameters
<table> <tr> <td><a name='SkIRect_offsetTo_newX'><code><strong>newX</strong></code></a></td>
- <td>stored in <a href='#SkIRect_fLeft'>fLeft</a>, <a href='#SkIRect_fLeft'>preserving</a> <a href='#SkIRect_width'>width()</a></td>
+ <td>stored in <a href='#SkIRect_fLeft'>fLeft</a>, preserving <a href='#SkIRect_width'>width()</a></td>
</tr>
<tr> <td><a name='SkIRect_offsetTo_newY'><code><strong>newY</strong></code></a></td>
- <td>stored in <a href='#SkIRect_fTop'>fTop</a>, <a href='#SkIRect_fTop'>preserving</a> <a href='#SkIRect_height'>height()</a></td>
+ <td>stored in <a href='#SkIRect_fTop'>fTop</a>, preserving <a href='#SkIRect_height'>height()</a></td>
</tr>
</table>
@@ -1263,20 +1263,20 @@
void inset(int32_t dx, int32_t dy)
</pre>
-Insets <a href='SkIRect_Reference#SkIRect'>SkIRect</a> <a href='SkIRect_Reference#SkIRect'>by</a> (<a href='#SkIRect_inset_dx'>dx</a>,<a href='#SkIRect_inset_dy'>dy</a>).
+Insets <a href='SkIRect_Reference#SkIRect'>SkIRect</a> by (<a href='#SkIRect_inset_dx'>dx</a>,<a href='#SkIRect_inset_dy'>dy</a>).
-If <a href='#SkIRect_inset_dx'>dx</a> <a href='#SkIRect_inset_dx'>is</a> <a href='#SkIRect_inset_dx'>positive</a>, <a href='#SkIRect_inset_dx'>makes</a> <a href='SkIRect_Reference#SkIRect'>SkIRect</a> <a href='SkIRect_Reference#SkIRect'>narrower</a>.
-If <a href='#SkIRect_inset_dx'>dx</a> <a href='#SkIRect_inset_dx'>is</a> <a href='#SkIRect_inset_dx'>negative</a>, <a href='#SkIRect_inset_dx'>makes</a> <a href='SkIRect_Reference#SkIRect'>SkIRect</a> <a href='SkIRect_Reference#SkIRect'>wider</a>.
-If <a href='#SkIRect_inset_dy'>dy</a> <a href='#SkIRect_inset_dy'>is</a> <a href='#SkIRect_inset_dy'>positive</a>, <a href='#SkIRect_inset_dy'>makes</a> <a href='SkIRect_Reference#SkIRect'>SkIRect</a> <a href='SkIRect_Reference#SkIRect'>shorter</a>.
-If <a href='#SkIRect_inset_dy'>dy</a> <a href='#SkIRect_inset_dy'>is</a> <a href='#SkIRect_inset_dy'>negative</a>, <a href='#SkIRect_inset_dy'>makes</a> <a href='SkIRect_Reference#SkIRect'>SkIRect</a> <a href='SkIRect_Reference#SkIRect'>taller</a>.
+If <a href='#SkIRect_inset_dx'>dx</a> is positive, makes <a href='SkIRect_Reference#SkIRect'>SkIRect</a> narrower.
+If <a href='#SkIRect_inset_dx'>dx</a> is negative, makes <a href='SkIRect_Reference#SkIRect'>SkIRect</a> wider.
+If <a href='#SkIRect_inset_dy'>dy</a> is positive, makes <a href='SkIRect_Reference#SkIRect'>SkIRect</a> shorter.
+If <a href='#SkIRect_inset_dy'>dy</a> is negative, makes <a href='SkIRect_Reference#SkIRect'>SkIRect</a> taller.
### Parameters
<table> <tr> <td><a name='SkIRect_inset_dx'><code><strong>dx</strong></code></a></td>
- <td>offset added to <a href='#SkIRect_fLeft'>fLeft</a> <a href='#SkIRect_fLeft'>and</a> <a href='#SkIRect_fLeft'>subtracted</a> <a href='#SkIRect_fLeft'>from</a> <a href='#SkIRect_fRight'>fRight</a></td>
+ <td>offset added to <a href='#SkIRect_fLeft'>fLeft</a> and subtracted from <a href='#SkIRect_fRight'>fRight</a></td>
</tr>
<tr> <td><a name='SkIRect_inset_dy'><code><strong>dy</strong></code></a></td>
- <td>offset added to <a href='#SkIRect_fTop'>fTop</a> <a href='#SkIRect_fTop'>and</a> <a href='#SkIRect_fTop'>subtracted</a> <a href='#SkIRect_fTop'>from</a> <a href='#SkIRect_fBottom'>fBottom</a></td>
+ <td>offset added to <a href='#SkIRect_fTop'>fTop</a> and subtracted from <a href='#SkIRect_fBottom'>fBottom</a></td>
</tr>
</table>
@@ -1304,20 +1304,20 @@
void outset(int32_t dx, int32_t dy)
</pre>
-Outsets <a href='SkIRect_Reference#SkIRect'>SkIRect</a> <a href='SkIRect_Reference#SkIRect'>by</a> (<a href='#SkIRect_outset_dx'>dx</a>, <a href='#SkIRect_outset_dy'>dy</a>).
+Outsets <a href='SkIRect_Reference#SkIRect'>SkIRect</a> by (<a href='#SkIRect_outset_dx'>dx</a>, <a href='#SkIRect_outset_dy'>dy</a>).
-If <a href='#SkIRect_outset_dx'>dx</a> <a href='#SkIRect_outset_dx'>is</a> <a href='#SkIRect_outset_dx'>positive</a>, <a href='#SkIRect_outset_dx'>makes</a> <a href='SkIRect_Reference#SkIRect'>SkIRect</a> <a href='SkIRect_Reference#SkIRect'>wider</a>.
-If <a href='#SkIRect_outset_dx'>dx</a> <a href='#SkIRect_outset_dx'>is</a> <a href='#SkIRect_outset_dx'>negative</a>, <a href='#SkIRect_outset_dx'>makes</a> <a href='SkIRect_Reference#SkIRect'>SkIRect</a> <a href='SkIRect_Reference#SkIRect'>narrower</a>.
-If <a href='#SkIRect_outset_dy'>dy</a> <a href='#SkIRect_outset_dy'>is</a> <a href='#SkIRect_outset_dy'>positive</a>, <a href='#SkIRect_outset_dy'>makes</a> <a href='SkIRect_Reference#SkIRect'>SkIRect</a> <a href='SkIRect_Reference#SkIRect'>taller</a>.
-If <a href='#SkIRect_outset_dy'>dy</a> <a href='#SkIRect_outset_dy'>is</a> <a href='#SkIRect_outset_dy'>negative</a>, <a href='#SkIRect_outset_dy'>makes</a> <a href='SkIRect_Reference#SkIRect'>SkIRect</a> <a href='SkIRect_Reference#SkIRect'>shorter</a>.
+If <a href='#SkIRect_outset_dx'>dx</a> is positive, makes <a href='SkIRect_Reference#SkIRect'>SkIRect</a> wider.
+If <a href='#SkIRect_outset_dx'>dx</a> is negative, makes <a href='SkIRect_Reference#SkIRect'>SkIRect</a> narrower.
+If <a href='#SkIRect_outset_dy'>dy</a> is positive, makes <a href='SkIRect_Reference#SkIRect'>SkIRect</a> taller.
+If <a href='#SkIRect_outset_dy'>dy</a> is negative, makes <a href='SkIRect_Reference#SkIRect'>SkIRect</a> shorter.
### Parameters
<table> <tr> <td><a name='SkIRect_outset_dx'><code><strong>dx</strong></code></a></td>
- <td>subtracted to <a href='#SkIRect_fLeft'>fLeft</a> <a href='#SkIRect_fLeft'>and</a> <a href='#SkIRect_fLeft'>added</a> <a href='#SkIRect_fLeft'>from</a> <a href='#SkIRect_fRight'>fRight</a></td>
+ <td>subtracted to <a href='#SkIRect_fLeft'>fLeft</a> and added from <a href='#SkIRect_fRight'>fRight</a></td>
</tr>
<tr> <td><a name='SkIRect_outset_dy'><code><strong>dy</strong></code></a></td>
- <td>subtracted to <a href='#SkIRect_fTop'>fTop</a> <a href='#SkIRect_fTop'>and</a> <a href='#SkIRect_fTop'>added</a> <a href='#SkIRect_fTop'>from</a> <a href='#SkIRect_fBottom'>fBottom</a></td>
+ <td>subtracted to <a href='#SkIRect_fTop'>fTop</a> and added from <a href='#SkIRect_fBottom'>fBottom</a></td>
</tr>
</table>
@@ -1339,32 +1339,32 @@
<a name='Intersection'></a>
-<a href='#IRect'>IRects</a> <a href='#IRect'>intersect</a> <a href='#IRect'>when</a> <a href='#IRect'>they</a> <a href='#IRect'>enclose</a> <a href='#IRect'>a</a> <a href='#IRect'>common</a> <a href='#IRect'>area</a>. <a href='#IRect'>To</a> <a href='#IRect'>intersect</a>, <a href='#IRect'>each</a> <a href='#IRect'>of</a> <a href='#IRect'>the</a> <a href='#IRect'>pair</a>
-<a href='#IRect'>must</a> <a href='#IRect'>describe</a> <a href='#IRect'>area</a>; <a href='#SkIRect_fLeft'>fLeft</a> <a href='#SkIRect_fLeft'>is</a> <a href='#SkIRect_fLeft'>less</a> <a href='#SkIRect_fLeft'>than</a> <a href='#SkIRect_fRight'>fRight</a>, <a href='#SkIRect_fRight'>and</a> <a href='#SkIRect_fTop'>fTop</a> <a href='#SkIRect_fTop'>is</a> <a href='#SkIRect_fTop'>less</a> <a href='#SkIRect_fTop'>than</a> <a href='#SkIRect_fBottom'>fBottom</a>;
-<a href='SkIRect_Reference#SkIRect'>SkIRect</a>::<a href='#SkIRect_isEmpty'>isEmpty</a>() <a href='#SkIRect_isEmpty'>returns</a> <a href='#SkIRect_isEmpty'>false</a>. <a href='#SkIRect_isEmpty'>The</a> <a href='#SkIRect_isEmpty'>intersection</a> <a href='#SkIRect_isEmpty'>of</a> <a href='SkIRect_Reference#IRect'>IRect</a> <a href='SkIRect_Reference#IRect'>pair</a> <a href='SkIRect_Reference#IRect'>can</a> <a href='SkIRect_Reference#IRect'>be</a> <a href='SkIRect_Reference#IRect'>described</a> <a href='SkIRect_Reference#IRect'>by</a>:
-<code>(<a href='undocumented#max()'>max</a>(<a href='undocumented#max()'>a</a>.<a href='#SkIRect_fLeft'>fLeft</a>, <a href='#SkIRect_fLeft'>b</a>.<a href='#SkIRect_fLeft'>fLeft</a>), <a href='undocumented#max()'>max</a>(<a href='undocumented#max()'>a</a>.<a href='#SkIRect_fTop'>fTop</a>, <a href='#SkIRect_fTop'>b</a>.<a href='#SkIRect_fTop'>fTop</a>),
-<a href='undocumented#min()'>min</a>(<a href='undocumented#min()'>a</a>.<a href='#SkIRect_fRight'>fRight</a>, <a href='#SkIRect_fRight'>b</a>.<a href='#SkIRect_fRight'>fRight</a>), <a href='undocumented#min()'>min</a>(<a href='undocumented#min()'>a</a>.<a href='#SkIRect_fBottom'>fBottom</a>, <a href='#SkIRect_fBottom'>b</a>.<a href='#SkIRect_fBottom'>fBottom</a>))</code>.
+<a href='#IRect'>IRects</a> intersect when they enclose a common area. To intersect, each of the pair
+must describe area; <a href='#SkIRect_fLeft'>fLeft</a> is less than <a href='#SkIRect_fRight'>fRight</a>, and <a href='#SkIRect_fTop'>fTop</a> is less than <a href='#SkIRect_fBottom'>fBottom</a>;
+<a href='SkIRect_Reference#SkIRect'>SkIRect</a>::<a href='#SkIRect_isEmpty'>isEmpty</a>() returns false. The intersection of <a href='SkIRect_Reference#IRect'>IRect</a> pair can be described by:
+<code>(<a href='undocumented#max()'>max</a>(a.<a href='#SkIRect_fLeft'>fLeft</a>, b.<a href='#SkIRect_fLeft'>fLeft</a>), <a href='undocumented#max()'>max</a>(a.<a href='#SkIRect_fTop'>fTop</a>, b.<a href='#SkIRect_fTop'>fTop</a>),
+<a href='undocumented#min()'>min</a>(a.<a href='#SkIRect_fRight'>fRight</a>, b.<a href='#SkIRect_fRight'>fRight</a>), <a href='undocumented#min()'>min</a>(a.<a href='#SkIRect_fBottom'>fBottom</a>, b.<a href='#SkIRect_fBottom'>fBottom</a>))</code>.
-The intersection is only meaningful if the resulting <a href='SkIRect_Reference#IRect'>IRect</a> <a href='SkIRect_Reference#IRect'>is</a> <a href='SkIRect_Reference#IRect'>not</a> <a href='SkIRect_Reference#IRect'>empty</a> <a href='SkIRect_Reference#IRect'>and</a>
-<a href='SkIRect_Reference#IRect'>describes</a> <a href='SkIRect_Reference#IRect'>an</a> <a href='SkIRect_Reference#IRect'>area</a>: <a href='#SkIRect_fLeft'>fLeft</a> <a href='#SkIRect_fLeft'>is</a> <a href='#SkIRect_fLeft'>less</a> <a href='#SkIRect_fLeft'>than</a> <a href='#SkIRect_fRight'>fRight</a>, <a href='#SkIRect_fRight'>and</a> <a href='#SkIRect_fTop'>fTop</a> <a href='#SkIRect_fTop'>is</a> <a href='#SkIRect_fTop'>less</a> <a href='#SkIRect_fTop'>than</a> <a href='#SkIRect_fBottom'>fBottom</a>.
+The intersection is only meaningful if the resulting <a href='SkIRect_Reference#IRect'>IRect</a> is not empty and
+describes an area: <a href='#SkIRect_fLeft'>fLeft</a> is less than <a href='#SkIRect_fRight'>fRight</a>, and <a href='#SkIRect_fTop'>fTop</a> is less than <a href='#SkIRect_fBottom'>fBottom</a>.
<a name='SkIRect_adjust'></a>
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-void <a href='#SkIRect_adjust'>adjust</a>(<a href='#SkIRect_adjust'>int32_t</a> <a href='#SkIRect_adjust'>dL</a>, <a href='#SkIRect_adjust'>int32_t</a> <a href='#SkIRect_adjust'>dT</a>, <a href='#SkIRect_adjust'>int32_t</a> <a href='#SkIRect_adjust'>dR</a>, <a href='#SkIRect_adjust'>int32_t</a> <a href='#SkIRect_adjust'>dB</a>)
+void <a href='#SkIRect_adjust'>adjust</a>(int32_t dL, int32_t dT, int32_t dR, int32_t dB)
</pre>
-Adjusts <a href='SkIRect_Reference#SkIRect'>SkIRect</a> <a href='SkIRect_Reference#SkIRect'>by</a> <a href='SkIRect_Reference#SkIRect'>adding</a> <a href='#SkIRect_adjust_dL'>dL</a> <a href='#SkIRect_adjust_dL'>to</a> <a href='#SkIRect_fLeft'>fLeft</a>, <a href='#SkIRect_adjust_dT'>dT</a> <a href='#SkIRect_adjust_dT'>to</a> <a href='#SkIRect_fTop'>fTop</a>, <a href='#SkIRect_adjust_dR'>dR</a> <a href='#SkIRect_adjust_dR'>to</a> <a href='#SkIRect_fRight'>fRight</a>, <a href='#SkIRect_fRight'>and</a> <a href='#SkIRect_adjust_dB'>dB</a> <a href='#SkIRect_adjust_dB'>to</a> <a href='#SkIRect_fBottom'>fBottom</a>.
+Adjusts <a href='SkIRect_Reference#SkIRect'>SkIRect</a> by adding <a href='#SkIRect_adjust_dL'>dL</a> to <a href='#SkIRect_fLeft'>fLeft</a>, <a href='#SkIRect_adjust_dT'>dT</a> to <a href='#SkIRect_fTop'>fTop</a>, <a href='#SkIRect_adjust_dR'>dR</a> to <a href='#SkIRect_fRight'>fRight</a>, and <a href='#SkIRect_adjust_dB'>dB</a> to <a href='#SkIRect_fBottom'>fBottom</a>.
-If <a href='#SkIRect_adjust_dL'>dL</a> <a href='#SkIRect_adjust_dL'>is</a> <a href='#SkIRect_adjust_dL'>positive</a>, <a href='#SkIRect_adjust_dL'>narrows</a> <a href='SkIRect_Reference#SkIRect'>SkIRect</a> <a href='SkIRect_Reference#SkIRect'>on</a> <a href='SkIRect_Reference#SkIRect'>the</a> <a href='SkIRect_Reference#SkIRect'>left</a>. <a href='SkIRect_Reference#SkIRect'>If</a> <a href='SkIRect_Reference#SkIRect'>negative</a>, <a href='SkIRect_Reference#SkIRect'>widens</a> <a href='SkIRect_Reference#SkIRect'>it</a> <a href='SkIRect_Reference#SkIRect'>on</a> <a href='SkIRect_Reference#SkIRect'>the</a> <a href='SkIRect_Reference#SkIRect'>left</a>.
-If <a href='#SkIRect_adjust_dT'>dT</a> <a href='#SkIRect_adjust_dT'>is</a> <a href='#SkIRect_adjust_dT'>positive</a>, <a href='#SkIRect_adjust_dT'>shrinks</a> <a href='SkIRect_Reference#SkIRect'>SkIRect</a> <a href='SkIRect_Reference#SkIRect'>on</a> <a href='SkIRect_Reference#SkIRect'>the</a> <a href='SkIRect_Reference#SkIRect'>top</a>. <a href='SkIRect_Reference#SkIRect'>If</a> <a href='SkIRect_Reference#SkIRect'>negative</a>, <a href='SkIRect_Reference#SkIRect'>lengthens</a> <a href='SkIRect_Reference#SkIRect'>it</a> <a href='SkIRect_Reference#SkIRect'>on</a> <a href='SkIRect_Reference#SkIRect'>the</a> <a href='SkIRect_Reference#SkIRect'>top</a>.
-If <a href='#SkIRect_adjust_dR'>dR</a> <a href='#SkIRect_adjust_dR'>is</a> <a href='#SkIRect_adjust_dR'>positive</a>, <a href='#SkIRect_adjust_dR'>narrows</a> <a href='SkIRect_Reference#SkIRect'>SkIRect</a> <a href='SkIRect_Reference#SkIRect'>on</a> <a href='SkIRect_Reference#SkIRect'>the</a> <a href='SkIRect_Reference#SkIRect'>right</a>. <a href='SkIRect_Reference#SkIRect'>If</a> <a href='SkIRect_Reference#SkIRect'>negative</a>, <a href='SkIRect_Reference#SkIRect'>widens</a> <a href='SkIRect_Reference#SkIRect'>it</a> <a href='SkIRect_Reference#SkIRect'>on</a> <a href='SkIRect_Reference#SkIRect'>the</a> <a href='SkIRect_Reference#SkIRect'>right</a>.
-If <a href='#SkIRect_adjust_dB'>dB</a> <a href='#SkIRect_adjust_dB'>is</a> <a href='#SkIRect_adjust_dB'>positive</a>, <a href='#SkIRect_adjust_dB'>shrinks</a> <a href='SkIRect_Reference#SkIRect'>SkIRect</a> <a href='SkIRect_Reference#SkIRect'>on</a> <a href='SkIRect_Reference#SkIRect'>the</a> <a href='SkIRect_Reference#SkIRect'>bottom</a>. <a href='SkIRect_Reference#SkIRect'>If</a> <a href='SkIRect_Reference#SkIRect'>negative</a>, <a href='SkIRect_Reference#SkIRect'>lengthens</a> <a href='SkIRect_Reference#SkIRect'>it</a> <a href='SkIRect_Reference#SkIRect'>on</a> <a href='SkIRect_Reference#SkIRect'>the</a> <a href='SkIRect_Reference#SkIRect'>bottom</a>.
+If <a href='#SkIRect_adjust_dL'>dL</a> is positive, narrows <a href='SkIRect_Reference#SkIRect'>SkIRect</a> on the left. If negative, widens it on the left.
+If <a href='#SkIRect_adjust_dT'>dT</a> is positive, shrinks <a href='SkIRect_Reference#SkIRect'>SkIRect</a> on the top. If negative, lengthens it on the top.
+If <a href='#SkIRect_adjust_dR'>dR</a> is positive, narrows <a href='SkIRect_Reference#SkIRect'>SkIRect</a> on the right. If negative, widens it on the right.
+If <a href='#SkIRect_adjust_dB'>dB</a> is positive, shrinks <a href='SkIRect_Reference#SkIRect'>SkIRect</a> on the bottom. If negative, lengthens it on the bottom.
-The resulting <a href='SkIRect_Reference#SkIRect'>SkIRect</a> <a href='SkIRect_Reference#SkIRect'>is</a> <a href='SkIRect_Reference#SkIRect'>not</a> <a href='SkIRect_Reference#SkIRect'>checked</a> <a href='SkIRect_Reference#SkIRect'>for</a> <a href='SkIRect_Reference#SkIRect'>validity</a>. <a href='SkIRect_Reference#SkIRect'>Thus</a>, <a href='SkIRect_Reference#SkIRect'>if</a> <a href='SkIRect_Reference#SkIRect'>the</a> <a href='SkIRect_Reference#SkIRect'>resulting</a> <a href='SkIRect_Reference#SkIRect'>SkIRect</a> <a href='SkIRect_Reference#SkIRect'>left</a> <a href='SkIRect_Reference#SkIRect'>is</a>
-greater than right, the <a href='SkIRect_Reference#SkIRect'>SkIRect</a> <a href='SkIRect_Reference#SkIRect'>will</a> <a href='SkIRect_Reference#SkIRect'>be</a> <a href='SkIRect_Reference#SkIRect'>considered</a> <a href='SkIRect_Reference#SkIRect'>empty</a>. <a href='SkIRect_Reference#SkIRect'>Call</a> <a href='#SkIRect_sort'>sort()</a> <a href='#SkIRect_sort'>after</a> <a href='#SkIRect_sort'>this</a> <a href='#SkIRect_sort'>call</a>
+The resulting <a href='SkIRect_Reference#SkIRect'>SkIRect</a> is not checked for validity. Thus, if the resulting <a href='SkIRect_Reference#SkIRect'>SkIRect</a> left is
+greater than right, the <a href='SkIRect_Reference#SkIRect'>SkIRect</a> will be considered empty. Call <a href='#SkIRect_sort'>sort()</a> after this call
if that is not the desired behavior.
### Parameters
@@ -1408,24 +1408,24 @@
</pre>
Returns true if: <code><a href='#SkIRect_fLeft'>fLeft</a> <= <a href='#SkIRect_contains_x'>x</a> < <a href='#SkIRect_fRight'>fRight</a> && <a href='#SkIRect_fTop'>fTop</a> <= <a href='#SkIRect_contains_y'>y</a> < <a href='#SkIRect_fBottom'>fBottom</a></code>.
-Returns false if <a href='SkIRect_Reference#IRect'>IRect</a> <a href='SkIRect_Reference#IRect'>is</a> <a href='SkIRect_Reference#IRect'>empty</a>.
+Returns false if <a href='SkIRect_Reference#IRect'>IRect</a> is empty.
-<a href='SkIRect_Reference#IRect'>Considers</a> <a href='SkIRect_Reference#IRect'>input</a> <a href='SkIRect_Reference#IRect'>to</a> <a href='SkIRect_Reference#IRect'>describe</a> <a href='SkIRect_Reference#IRect'>constructed</a> <a href='SkIRect_Reference#IRect'>IRect</a>: <code>(<a href='#SkIRect_contains_x'>x</a>, <a href='#SkIRect_contains_y'>y</a>, <a href='#SkIRect_contains_x'>x</a> + 1, <a href='#SkIRect_contains_y'>y</a> + 1)</code> and
-returns true if constructed area is completely enclosed by <a href='SkIRect_Reference#IRect'>IRect</a> <a href='SkIRect_Reference#IRect'>area</a>.
+Considers input to describe constructed <a href='SkIRect_Reference#IRect'>IRect</a>: <code>(<a href='#SkIRect_contains_x'>x</a>, <a href='#SkIRect_contains_y'>y</a>, <a href='#SkIRect_contains_x'>x</a> + 1, <a href='#SkIRect_contains_y'>y</a> + 1)</code> and
+returns true if constructed area is completely enclosed by <a href='SkIRect_Reference#IRect'>IRect</a> area.
### Parameters
<table> <tr> <td><a name='SkIRect_contains_x'><code><strong>x</strong></code></a></td>
- <td>test <a href='SkIPoint_Reference#IPoint'>IPoint</a> <a href='SkIPoint_Reference#IPoint'>x-coordinate</a></td>
+ <td>test <a href='SkIPoint_Reference#IPoint'>IPoint</a> x-coordinate</td>
</tr>
<tr> <td><a name='SkIRect_contains_y'><code><strong>y</strong></code></a></td>
- <td>test <a href='SkIPoint_Reference#IPoint'>IPoint</a> <a href='SkIPoint_Reference#IPoint'>y-coordinate</a></td>
+ <td>test <a href='SkIPoint_Reference#IPoint'>IPoint</a> y-coordinate</td>
</tr>
</table>
### Return Value
-true if (<a href='#SkIRect_contains_x'>x</a>, <a href='#SkIRect_contains_y'>y</a>) <a href='#SkIRect_contains_y'>is</a> <a href='#SkIRect_contains_y'>inside</a> <a href='SkIRect_Reference#IRect'>IRect</a>
+true if (<a href='#SkIRect_contains_x'>x</a>, <a href='#SkIRect_contains_y'>y</a>) is inside <a href='SkIRect_Reference#IRect'>IRect</a>
### Example
@@ -1453,11 +1453,11 @@
bool contains(int32_t left, int32_t top, int32_t right, int32_t bottom) const
</pre>
-Constructs <a href='SkIRect_Reference#SkIRect'>SkIRect</a> <a href='SkIRect_Reference#SkIRect'>to</a> <a href='SkIRect_Reference#SkIRect'>intersect</a> <a href='SkIRect_Reference#SkIRect'>from</a> (<a href='#SkIRect_contains_2_left'>left</a>, <a href='#SkIRect_contains_2_top'>top</a>, <a href='#SkIRect_contains_2_right'>right</a>, <a href='#SkIRect_contains_2_bottom'>bottom</a>). <a href='#SkIRect_contains_2_bottom'>Does</a> <a href='#SkIRect_contains_2_bottom'>not</a> <a href='#SkIRect_contains_2_bottom'>sort</a>
+Constructs <a href='SkIRect_Reference#SkIRect'>SkIRect</a> to intersect from (<a href='#SkIRect_contains_2_left'>left</a>, <a href='#SkIRect_contains_2_top'>top</a>, <a href='#SkIRect_contains_2_right'>right</a>, <a href='#SkIRect_contains_2_bottom'>bottom</a>). Does not sort
construction.
-Returns true if <a href='SkIRect_Reference#SkIRect'>SkIRect</a> <a href='SkIRect_Reference#SkIRect'>contains</a> <a href='SkIRect_Reference#SkIRect'>construction</a>.
-Returns false if <a href='SkIRect_Reference#SkIRect'>SkIRect</a> <a href='SkIRect_Reference#SkIRect'>is</a> <a href='SkIRect_Reference#SkIRect'>empty</a> <a href='SkIRect_Reference#SkIRect'>or</a> <a href='SkIRect_Reference#SkIRect'>construction</a> <a href='SkIRect_Reference#SkIRect'>is</a> <a href='SkIRect_Reference#SkIRect'>empty</a>.
+Returns true if <a href='SkIRect_Reference#SkIRect'>SkIRect</a> contains construction.
+Returns false if <a href='SkIRect_Reference#SkIRect'>SkIRect</a> is empty or construction is empty.
### Parameters
@@ -1477,7 +1477,7 @@
### Return Value
-true if all sides of <a href='SkIRect_Reference#SkIRect'>SkIRect</a> <a href='SkIRect_Reference#SkIRect'>are</a> <a href='SkIRect_Reference#SkIRect'>outside</a> <a href='SkIRect_Reference#SkIRect'>construction</a>
+true if all sides of <a href='SkIRect_Reference#SkIRect'>SkIRect</a> are outside construction
### Example
@@ -1502,24 +1502,24 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-bool contains(const <a href='SkIRect_Reference#SkIRect'>SkIRect</a>& <a href='SkIRect_Reference#SkIRect'>r</a>) <a href='SkIRect_Reference#SkIRect'>const</a>
+bool contains(const <a href='SkIRect_Reference#SkIRect'>SkIRect</a>& r) const
</pre>
-Returns true if <a href='SkIRect_Reference#SkIRect'>SkIRect</a> <a href='SkIRect_Reference#SkIRect'>contains</a> <a href='#SkIRect_contains_3_r'>r</a>.
-Returns false if <a href='SkIRect_Reference#SkIRect'>SkIRect</a> <a href='SkIRect_Reference#SkIRect'>is</a> <a href='SkIRect_Reference#SkIRect'>empty</a> <a href='SkIRect_Reference#SkIRect'>or</a> <a href='#SkIRect_contains_3_r'>r</a> <a href='#SkIRect_contains_3_r'>is</a> <a href='#SkIRect_contains_3_r'>empty</a>.
+Returns true if <a href='SkIRect_Reference#SkIRect'>SkIRect</a> contains <a href='#SkIRect_contains_3_r'>r</a>.
+Returns false if <a href='SkIRect_Reference#SkIRect'>SkIRect</a> is empty or <a href='#SkIRect_contains_3_r'>r</a> is empty.
-<a href='SkIRect_Reference#SkIRect'>SkIRect</a> <a href='SkIRect_Reference#SkIRect'>contains</a> <a href='#SkIRect_contains_3_r'>r</a> <a href='#SkIRect_contains_3_r'>when</a> <a href='SkIRect_Reference#SkIRect'>SkIRect</a> <a href='SkIRect_Reference#SkIRect'>area</a> <a href='SkIRect_Reference#SkIRect'>completely</a> <a href='SkIRect_Reference#SkIRect'>includes</a> <a href='#SkIRect_contains_3_r'>r</a> <a href='#SkIRect_contains_3_r'>area</a>.
+<a href='SkIRect_Reference#SkIRect'>SkIRect</a> contains <a href='#SkIRect_contains_3_r'>r</a> when <a href='SkIRect_Reference#SkIRect'>SkIRect</a> area completely includes <a href='#SkIRect_contains_3_r'>r</a> area.
### Parameters
<table> <tr> <td><a name='SkIRect_contains_3_r'><code><strong>r</strong></code></a></td>
- <td><a href='SkIRect_Reference#SkIRect'>SkIRect</a> <a href='SkIRect_Reference#SkIRect'>contained</a></td>
+ <td><a href='SkIRect_Reference#SkIRect'>SkIRect</a> contained</td>
</tr>
</table>
### Return Value
-true if all sides of <a href='SkIRect_Reference#SkIRect'>SkIRect</a> <a href='SkIRect_Reference#SkIRect'>are</a> <a href='SkIRect_Reference#SkIRect'>outside</a> <a href='#SkIRect_contains_3_r'>r</a>
+true if all sides of <a href='SkIRect_Reference#SkIRect'>SkIRect</a> are outside <a href='#SkIRect_contains_3_r'>r</a>
### Example
@@ -1544,24 +1544,24 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-bool contains(const <a href='SkRect_Reference#SkRect'>SkRect</a>& <a href='SkRect_Reference#SkRect'>r</a>) <a href='SkRect_Reference#SkRect'>const</a>
+bool contains(const <a href='SkRect_Reference#SkRect'>SkRect</a>& r) const
</pre>
-Returns true if <a href='SkIRect_Reference#SkIRect'>SkIRect</a> <a href='SkIRect_Reference#SkIRect'>contains</a> <a href='#SkIRect_contains_4_r'>r</a>.
-Returns false if <a href='SkIRect_Reference#SkIRect'>SkIRect</a> <a href='SkIRect_Reference#SkIRect'>is</a> <a href='SkIRect_Reference#SkIRect'>empty</a> <a href='SkIRect_Reference#SkIRect'>or</a> <a href='#SkIRect_contains_4_r'>r</a> <a href='#SkIRect_contains_4_r'>is</a> <a href='#SkIRect_contains_4_r'>empty</a>.
+Returns true if <a href='SkIRect_Reference#SkIRect'>SkIRect</a> contains <a href='#SkIRect_contains_4_r'>r</a>.
+Returns false if <a href='SkIRect_Reference#SkIRect'>SkIRect</a> is empty or <a href='#SkIRect_contains_4_r'>r</a> is empty.
-<a href='SkIRect_Reference#SkIRect'>SkIRect</a> <a href='SkIRect_Reference#SkIRect'>contains</a> <a href='#SkIRect_contains_4_r'>r</a> <a href='#SkIRect_contains_4_r'>when</a> <a href='SkIRect_Reference#SkIRect'>SkIRect</a> <a href='SkIRect_Reference#SkIRect'>area</a> <a href='SkIRect_Reference#SkIRect'>completely</a> <a href='SkIRect_Reference#SkIRect'>includes</a> <a href='#SkIRect_contains_4_r'>r</a> <a href='#SkIRect_contains_4_r'>area</a>.
+<a href='SkIRect_Reference#SkIRect'>SkIRect</a> contains <a href='#SkIRect_contains_4_r'>r</a> when <a href='SkIRect_Reference#SkIRect'>SkIRect</a> area completely includes <a href='#SkIRect_contains_4_r'>r</a> area.
### Parameters
<table> <tr> <td><a name='SkIRect_contains_4_r'><code><strong>r</strong></code></a></td>
- <td><a href='SkRect_Reference#SkRect'>SkRect</a> <a href='SkRect_Reference#SkRect'>contained</a></td>
+ <td><a href='SkRect_Reference#SkRect'>SkRect</a> contained</td>
</tr>
</table>
### Return Value
-true if all sides of <a href='SkIRect_Reference#SkIRect'>SkIRect</a> <a href='SkIRect_Reference#SkIRect'>are</a> <a href='SkIRect_Reference#SkIRect'>outside</a> <a href='#SkIRect_contains_4_r'>r</a>
+true if all sides of <a href='SkIRect_Reference#SkIRect'>SkIRect</a> are outside <a href='#SkIRect_contains_4_r'>r</a>
### Example
@@ -1586,16 +1586,16 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-bool <a href='#SkIRect_containsNoEmptyCheck'>containsNoEmptyCheck</a>(<a href='#SkIRect_containsNoEmptyCheck'>int32_t</a> <a href='#SkIRect_containsNoEmptyCheck'>left</a>, <a href='#SkIRect_containsNoEmptyCheck'>int32_t</a> <a href='#SkIRect_containsNoEmptyCheck'>top</a>, <a href='#SkIRect_containsNoEmptyCheck'>int32_t</a> <a href='#SkIRect_containsNoEmptyCheck'>right</a>, <a href='#SkIRect_containsNoEmptyCheck'>int32_t</a> <a href='#SkIRect_containsNoEmptyCheck'>bottom</a>) <a href='#SkIRect_containsNoEmptyCheck'>const</a>
+bool <a href='#SkIRect_containsNoEmptyCheck'>containsNoEmptyCheck</a>(int32_t left, int32_t top, int32_t right, int32_t bottom) const
</pre>
-Constructs <a href='SkIRect_Reference#SkIRect'>SkIRect</a> <a href='SkIRect_Reference#SkIRect'>from</a> (<a href='#SkIRect_containsNoEmptyCheck_left'>left</a>, <a href='#SkIRect_containsNoEmptyCheck_top'>top</a>, <a href='#SkIRect_containsNoEmptyCheck_right'>right</a>, <a href='#SkIRect_containsNoEmptyCheck_bottom'>bottom</a>). <a href='#SkIRect_containsNoEmptyCheck_bottom'>Does</a> <a href='#SkIRect_containsNoEmptyCheck_bottom'>not</a> <a href='#SkIRect_containsNoEmptyCheck_bottom'>sort</a>
+Constructs <a href='SkIRect_Reference#SkIRect'>SkIRect</a> from (<a href='#SkIRect_containsNoEmptyCheck_left'>left</a>, <a href='#SkIRect_containsNoEmptyCheck_top'>top</a>, <a href='#SkIRect_containsNoEmptyCheck_right'>right</a>, <a href='#SkIRect_containsNoEmptyCheck_bottom'>bottom</a>). Does not sort
construction.
-Returns true if <a href='SkIRect_Reference#SkIRect'>SkIRect</a> <a href='SkIRect_Reference#SkIRect'>contains</a> <a href='SkIRect_Reference#SkIRect'>construction</a>.
-Asserts if <a href='SkIRect_Reference#SkIRect'>SkIRect</a> <a href='SkIRect_Reference#SkIRect'>is</a> <a href='SkIRect_Reference#SkIRect'>empty</a> <a href='SkIRect_Reference#SkIRect'>or</a> <a href='SkIRect_Reference#SkIRect'>construction</a> <a href='SkIRect_Reference#SkIRect'>is</a> <a href='SkIRect_Reference#SkIRect'>empty</a>, <a href='SkIRect_Reference#SkIRect'>and</a> <a href='SkIRect_Reference#SkIRect'>if</a> <a href='SkIRect_Reference#SkIRect'>SK_DEBUG</a> <a href='SkIRect_Reference#SkIRect'>is</a> <a href='SkIRect_Reference#SkIRect'>defined</a>.
+Returns true if <a href='SkIRect_Reference#SkIRect'>SkIRect</a> contains construction.
+Asserts if <a href='SkIRect_Reference#SkIRect'>SkIRect</a> is empty or construction is empty, and if SK_DEBUG is defined.
-Return is undefined if <a href='SkIRect_Reference#SkIRect'>SkIRect</a> <a href='SkIRect_Reference#SkIRect'>is</a> <a href='SkIRect_Reference#SkIRect'>empty</a> <a href='SkIRect_Reference#SkIRect'>or</a> <a href='SkIRect_Reference#SkIRect'>construction</a> <a href='SkIRect_Reference#SkIRect'>is</a> <a href='SkIRect_Reference#SkIRect'>empty</a>.
+Return is undefined if <a href='SkIRect_Reference#SkIRect'>SkIRect</a> is empty or construction is empty.
### Parameters
@@ -1615,7 +1615,7 @@
### Return Value
-true if all sides of <a href='SkIRect_Reference#SkIRect'>SkIRect</a> <a href='SkIRect_Reference#SkIRect'>are</a> <a href='SkIRect_Reference#SkIRect'>outside</a> <a href='SkIRect_Reference#SkIRect'>construction</a>
+true if all sides of <a href='SkIRect_Reference#SkIRect'>SkIRect</a> are outside construction
### Example
@@ -1640,24 +1640,24 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-bool <a href='#SkIRect_containsNoEmptyCheck'>containsNoEmptyCheck</a>(<a href='#SkIRect_containsNoEmptyCheck'>const</a> <a href='SkIRect_Reference#SkIRect'>SkIRect</a>& <a href='SkIRect_Reference#SkIRect'>r</a>) <a href='SkIRect_Reference#SkIRect'>const</a>
+bool <a href='#SkIRect_containsNoEmptyCheck'>containsNoEmptyCheck</a>(const <a href='SkIRect_Reference#SkIRect'>SkIRect</a>& r) const
</pre>
-Returns true if <a href='SkIRect_Reference#SkIRect'>SkIRect</a> <a href='SkIRect_Reference#SkIRect'>contains</a> <a href='SkIRect_Reference#SkIRect'>construction</a>.
-Asserts if <a href='SkIRect_Reference#SkIRect'>SkIRect</a> <a href='SkIRect_Reference#SkIRect'>is</a> <a href='SkIRect_Reference#SkIRect'>empty</a> <a href='SkIRect_Reference#SkIRect'>or</a> <a href='SkIRect_Reference#SkIRect'>construction</a> <a href='SkIRect_Reference#SkIRect'>is</a> <a href='SkIRect_Reference#SkIRect'>empty</a>, <a href='SkIRect_Reference#SkIRect'>and</a> <a href='SkIRect_Reference#SkIRect'>if</a> <a href='SkIRect_Reference#SkIRect'>SK_DEBUG</a> <a href='SkIRect_Reference#SkIRect'>is</a> <a href='SkIRect_Reference#SkIRect'>defined</a>.
+Returns true if <a href='SkIRect_Reference#SkIRect'>SkIRect</a> contains construction.
+Asserts if <a href='SkIRect_Reference#SkIRect'>SkIRect</a> is empty or construction is empty, and if SK_DEBUG is defined.
-Return is undefined if <a href='SkIRect_Reference#SkIRect'>SkIRect</a> <a href='SkIRect_Reference#SkIRect'>is</a> <a href='SkIRect_Reference#SkIRect'>empty</a> <a href='SkIRect_Reference#SkIRect'>or</a> <a href='SkIRect_Reference#SkIRect'>construction</a> <a href='SkIRect_Reference#SkIRect'>is</a> <a href='SkIRect_Reference#SkIRect'>empty</a>.
+Return is undefined if <a href='SkIRect_Reference#SkIRect'>SkIRect</a> is empty or construction is empty.
### Parameters
<table> <tr> <td><a name='SkIRect_containsNoEmptyCheck_2_r'><code><strong>r</strong></code></a></td>
- <td><a href='SkIRect_Reference#SkIRect'>SkIRect</a> <a href='SkIRect_Reference#SkIRect'>contained</a></td>
+ <td><a href='SkIRect_Reference#SkIRect'>SkIRect</a> contained</td>
</tr>
</table>
### Return Value
-true if all sides of <a href='SkIRect_Reference#SkIRect'>SkIRect</a> <a href='SkIRect_Reference#SkIRect'>are</a> <a href='SkIRect_Reference#SkIRect'>outside</a> <a href='#SkIRect_containsNoEmptyCheck_2_r'>r</a>
+true if all sides of <a href='SkIRect_Reference#SkIRect'>SkIRect</a> are outside <a href='#SkIRect_containsNoEmptyCheck_2_r'>r</a>
### Example
@@ -1682,13 +1682,13 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-bool intersect(const <a href='SkIRect_Reference#SkIRect'>SkIRect</a>& <a href='SkIRect_Reference#SkIRect'>r</a>)
+bool intersect(const <a href='SkIRect_Reference#SkIRect'>SkIRect</a>& r)
</pre>
-Returns true if <a href='SkIRect_Reference#SkIRect'>SkIRect</a> <a href='SkIRect_Reference#SkIRect'>intersects</a> <a href='#SkIRect_intersect_r'>r</a>, <a href='#SkIRect_intersect_r'>and</a> <a href='#SkIRect_intersect_r'>sets</a> <a href='SkIRect_Reference#SkIRect'>SkIRect</a> <a href='SkIRect_Reference#SkIRect'>to</a> <a href='SkIRect_Reference#SkIRect'>intersection</a>.
-Returns false if <a href='SkIRect_Reference#SkIRect'>SkIRect</a> <a href='SkIRect_Reference#SkIRect'>does</a> <a href='SkIRect_Reference#SkIRect'>not</a> <a href='SkIRect_Reference#SkIRect'>intersect</a> <a href='#SkIRect_intersect_r'>r</a>, <a href='#SkIRect_intersect_r'>and</a> <a href='#SkIRect_intersect_r'>leaves</a> <a href='SkIRect_Reference#SkIRect'>SkIRect</a> <a href='SkIRect_Reference#SkIRect'>unchanged</a>.
+Returns true if <a href='SkIRect_Reference#SkIRect'>SkIRect</a> intersects <a href='#SkIRect_intersect_r'>r</a>, and sets <a href='SkIRect_Reference#SkIRect'>SkIRect</a> to intersection.
+Returns false if <a href='SkIRect_Reference#SkIRect'>SkIRect</a> does not intersect <a href='#SkIRect_intersect_r'>r</a>, and leaves <a href='SkIRect_Reference#SkIRect'>SkIRect</a> unchanged.
-Returns false if either <a href='#SkIRect_intersect_r'>r</a> <a href='#SkIRect_intersect_r'>or</a> <a href='SkIRect_Reference#SkIRect'>SkIRect</a> <a href='SkIRect_Reference#SkIRect'>is</a> <a href='SkIRect_Reference#SkIRect'>empty</a>, <a href='SkIRect_Reference#SkIRect'>leaving</a> <a href='SkIRect_Reference#SkIRect'>SkIRect</a> <a href='SkIRect_Reference#SkIRect'>unchanged</a>.
+Returns false if either <a href='#SkIRect_intersect_r'>r</a> or <a href='SkIRect_Reference#SkIRect'>SkIRect</a> is empty, leaving <a href='SkIRect_Reference#SkIRect'>SkIRect</a> unchanged.
### Parameters
@@ -1699,13 +1699,13 @@
### Return Value
-true if <a href='#SkIRect_intersect_r'>r</a> <a href='#SkIRect_intersect_r'>and</a> <a href='SkIRect_Reference#SkIRect'>SkIRect</a> <a href='SkIRect_Reference#SkIRect'>have</a> <a href='SkIRect_Reference#SkIRect'>area</a> <a href='SkIRect_Reference#SkIRect'>in</a> <a href='SkIRect_Reference#SkIRect'>common</a>
+true if <a href='#SkIRect_intersect_r'>r</a> and <a href='SkIRect_Reference#SkIRect'>SkIRect</a> have area in common
### Example
-<div><fiddle-embed name="ea233f5d5d1ae0e76fc6f2eb371c927a"><div>Two <a href='undocumented#SkDebugf'>SkDebugf</a> <a href='undocumented#SkDebugf'>calls</a> <a href='undocumented#SkDebugf'>are</a> <a href='undocumented#SkDebugf'>required</a>. <a href='undocumented#SkDebugf'>If</a> <a href='undocumented#SkDebugf'>the</a> <a href='undocumented#SkDebugf'>calls</a> <a href='undocumented#SkDebugf'>are</a> <a href='undocumented#SkDebugf'>combined</a>, <a href='undocumented#SkDebugf'>their</a> <a href='undocumented#SkDebugf'>arguments</a>
-<a href='undocumented#SkDebugf'>may</a> <a href='undocumented#SkDebugf'>not</a> <a href='undocumented#SkDebugf'>be</a> <a href='undocumented#SkDebugf'>evaluated</a> <a href='undocumented#SkDebugf'>in</a> <a href='undocumented#SkDebugf'>left</a> <a href='undocumented#SkDebugf'>to</a> <a href='undocumented#SkDebugf'>right</a> <a href='undocumented#SkDebugf'>order</a>: <a href='undocumented#SkDebugf'>the</a> <a href='undocumented#SkDebugf'>printed</a> <a href='undocumented#SkDebugf'>intersection</a> <a href='undocumented#SkDebugf'>may</a>
-<a href='undocumented#SkDebugf'>be</a> <a href='undocumented#SkDebugf'>before</a> <a href='undocumented#SkDebugf'>or</a> <a href='undocumented#SkDebugf'>after</a> <a href='undocumented#SkDebugf'>the</a> <a href='undocumented#SkDebugf'>call</a> <a href='undocumented#SkDebugf'>to</a> <a href='undocumented#SkDebugf'>intersect</a>.
+<div><fiddle-embed name="ea233f5d5d1ae0e76fc6f2eb371c927a"><div>Two <a href='undocumented#SkDebugf'>SkDebugf</a> calls are required. If the calls are combined, their arguments
+may not be evaluated in left to right order: the printed intersection may
+be before or after the call to intersect.
</div>
#### Example Output
@@ -1725,27 +1725,27 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-bool intersect(const <a href='SkIRect_Reference#SkIRect'>SkIRect</a>& <a href='SkIRect_Reference#SkIRect'>a</a>, <a href='SkIRect_Reference#SkIRect'>const</a> <a href='SkIRect_Reference#SkIRect'>SkIRect</a>& <a href='SkIRect_Reference#SkIRect'>b</a>)
+bool intersect(const <a href='SkIRect_Reference#SkIRect'>SkIRect</a>& a, const <a href='SkIRect_Reference#SkIRect'>SkIRect</a>& b)
</pre>
-Returns true if <a href='#SkIRect_intersect_2_a'>a</a> <a href='#SkIRect_intersect_2_a'>intersects</a> <a href='#SkIRect_intersect_2_b'>b</a>, <a href='#SkIRect_intersect_2_b'>and</a> <a href='#SkIRect_intersect_2_b'>sets</a> <a href='SkIRect_Reference#SkIRect'>SkIRect</a> <a href='SkIRect_Reference#SkIRect'>to</a> <a href='SkIRect_Reference#SkIRect'>intersection</a>.
-Returns false if <a href='#SkIRect_intersect_2_a'>a</a> <a href='#SkIRect_intersect_2_a'>does</a> <a href='#SkIRect_intersect_2_a'>not</a> <a href='#SkIRect_intersect_2_a'>intersect</a> <a href='#SkIRect_intersect_2_b'>b</a>, <a href='#SkIRect_intersect_2_b'>and</a> <a href='#SkIRect_intersect_2_b'>leaves</a> <a href='SkIRect_Reference#SkIRect'>SkIRect</a> <a href='SkIRect_Reference#SkIRect'>unchanged</a>.
+Returns true if <a href='#SkIRect_intersect_2_a'>a</a> intersects <a href='#SkIRect_intersect_2_b'>b</a>, and sets <a href='SkIRect_Reference#SkIRect'>SkIRect</a> to intersection.
+Returns false if <a href='#SkIRect_intersect_2_a'>a</a> does not intersect <a href='#SkIRect_intersect_2_b'>b</a>, and leaves <a href='SkIRect_Reference#SkIRect'>SkIRect</a> unchanged.
-Returns false if either <a href='#SkIRect_intersect_2_a'>a</a> <a href='#SkIRect_intersect_2_a'>or</a> <a href='#SkIRect_intersect_2_b'>b</a> <a href='#SkIRect_intersect_2_b'>is</a> <a href='#SkIRect_intersect_2_b'>empty</a>, <a href='#SkIRect_intersect_2_b'>leaving</a> <a href='SkIRect_Reference#SkIRect'>SkIRect</a> <a href='SkIRect_Reference#SkIRect'>unchanged</a>.
+Returns false if either <a href='#SkIRect_intersect_2_a'>a</a> or <a href='#SkIRect_intersect_2_b'>b</a> is empty, leaving <a href='SkIRect_Reference#SkIRect'>SkIRect</a> unchanged.
### Parameters
<table> <tr> <td><a name='SkIRect_intersect_2_a'><code><strong>a</strong></code></a></td>
- <td><a href='SkIRect_Reference#SkIRect'>SkIRect</a> <a href='SkIRect_Reference#SkIRect'>to</a> <a href='SkIRect_Reference#SkIRect'>intersect</a></td>
+ <td><a href='SkIRect_Reference#SkIRect'>SkIRect</a> to intersect</td>
</tr>
<tr> <td><a name='SkIRect_intersect_2_b'><code><strong>b</strong></code></a></td>
- <td><a href='SkIRect_Reference#SkIRect'>SkIRect</a> <a href='SkIRect_Reference#SkIRect'>to</a> <a href='SkIRect_Reference#SkIRect'>intersect</a></td>
+ <td><a href='SkIRect_Reference#SkIRect'>SkIRect</a> to intersect</td>
</tr>
</table>
### Return Value
-true if <a href='#SkIRect_intersect_2_a'>a</a> <a href='#SkIRect_intersect_2_a'>and</a> <a href='#SkIRect_intersect_2_b'>b</a> <a href='#SkIRect_intersect_2_b'>have</a> <a href='#SkIRect_intersect_2_b'>area</a> <a href='#SkIRect_intersect_2_b'>in</a> <a href='#SkIRect_intersect_2_b'>common</a>
+true if <a href='#SkIRect_intersect_2_a'>a</a> and <a href='#SkIRect_intersect_2_b'>b</a> have area in common
### Example
@@ -1768,27 +1768,27 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-bool <a href='#SkIRect_intersectNoEmptyCheck'>intersectNoEmptyCheck</a>(<a href='#SkIRect_intersectNoEmptyCheck'>const</a> <a href='SkIRect_Reference#SkIRect'>SkIRect</a>& <a href='SkIRect_Reference#SkIRect'>a</a>, <a href='SkIRect_Reference#SkIRect'>const</a> <a href='SkIRect_Reference#SkIRect'>SkIRect</a>& <a href='SkIRect_Reference#SkIRect'>b</a>)
+bool <a href='#SkIRect_intersectNoEmptyCheck'>intersectNoEmptyCheck</a>(const <a href='SkIRect_Reference#SkIRect'>SkIRect</a>& a, const <a href='SkIRect_Reference#SkIRect'>SkIRect</a>& b)
</pre>
-Returns true if <a href='#SkIRect_intersectNoEmptyCheck_a'>a</a> <a href='#SkIRect_intersectNoEmptyCheck_a'>intersects</a> <a href='#SkIRect_intersectNoEmptyCheck_b'>b</a>, <a href='#SkIRect_intersectNoEmptyCheck_b'>and</a> <a href='#SkIRect_intersectNoEmptyCheck_b'>sets</a> <a href='SkIRect_Reference#SkIRect'>SkIRect</a> <a href='SkIRect_Reference#SkIRect'>to</a> <a href='SkIRect_Reference#SkIRect'>intersection</a>.
-Returns false if <a href='#SkIRect_intersectNoEmptyCheck_a'>a</a> <a href='#SkIRect_intersectNoEmptyCheck_a'>does</a> <a href='#SkIRect_intersectNoEmptyCheck_a'>not</a> <a href='#SkIRect_intersectNoEmptyCheck_a'>intersect</a> <a href='#SkIRect_intersectNoEmptyCheck_b'>b</a>, <a href='#SkIRect_intersectNoEmptyCheck_b'>and</a> <a href='#SkIRect_intersectNoEmptyCheck_b'>leaves</a> <a href='SkIRect_Reference#SkIRect'>SkIRect</a> <a href='SkIRect_Reference#SkIRect'>unchanged</a>.
+Returns true if <a href='#SkIRect_intersectNoEmptyCheck_a'>a</a> intersects <a href='#SkIRect_intersectNoEmptyCheck_b'>b</a>, and sets <a href='SkIRect_Reference#SkIRect'>SkIRect</a> to intersection.
+Returns false if <a href='#SkIRect_intersectNoEmptyCheck_a'>a</a> does not intersect <a href='#SkIRect_intersectNoEmptyCheck_b'>b</a>, and leaves <a href='SkIRect_Reference#SkIRect'>SkIRect</a> unchanged.
-Asserts if either <a href='#SkIRect_intersectNoEmptyCheck_a'>a</a> <a href='#SkIRect_intersectNoEmptyCheck_a'>or</a> <a href='#SkIRect_intersectNoEmptyCheck_b'>b</a> <a href='#SkIRect_intersectNoEmptyCheck_b'>is</a> <a href='#SkIRect_intersectNoEmptyCheck_b'>empty</a>, <a href='#SkIRect_intersectNoEmptyCheck_b'>and</a> <a href='#SkIRect_intersectNoEmptyCheck_b'>if</a> <a href='#SkIRect_intersectNoEmptyCheck_b'>SK_DEBUG</a> <a href='#SkIRect_intersectNoEmptyCheck_b'>is</a> <a href='#SkIRect_intersectNoEmptyCheck_b'>defined</a>.
+Asserts if either <a href='#SkIRect_intersectNoEmptyCheck_a'>a</a> or <a href='#SkIRect_intersectNoEmptyCheck_b'>b</a> is empty, and if SK_DEBUG is defined.
### Parameters
<table> <tr> <td><a name='SkIRect_intersectNoEmptyCheck_a'><code><strong>a</strong></code></a></td>
- <td><a href='SkIRect_Reference#SkIRect'>SkIRect</a> <a href='SkIRect_Reference#SkIRect'>to</a> <a href='SkIRect_Reference#SkIRect'>intersect</a></td>
+ <td><a href='SkIRect_Reference#SkIRect'>SkIRect</a> to intersect</td>
</tr>
<tr> <td><a name='SkIRect_intersectNoEmptyCheck_b'><code><strong>b</strong></code></a></td>
- <td><a href='SkIRect_Reference#SkIRect'>SkIRect</a> <a href='SkIRect_Reference#SkIRect'>to</a> <a href='SkIRect_Reference#SkIRect'>intersect</a></td>
+ <td><a href='SkIRect_Reference#SkIRect'>SkIRect</a> to intersect</td>
</tr>
</table>
### Return Value
-true if <a href='#SkIRect_intersectNoEmptyCheck_a'>a</a> <a href='#SkIRect_intersectNoEmptyCheck_a'>and</a> <a href='#SkIRect_intersectNoEmptyCheck_b'>b</a> <a href='#SkIRect_intersectNoEmptyCheck_b'>have</a> <a href='#SkIRect_intersectNoEmptyCheck_b'>area</a> <a href='#SkIRect_intersectNoEmptyCheck_b'>in</a> <a href='#SkIRect_intersectNoEmptyCheck_b'>common</a>
+true if <a href='#SkIRect_intersectNoEmptyCheck_a'>a</a> and <a href='#SkIRect_intersectNoEmptyCheck_b'>b</a> have area in common
### Example
@@ -1814,13 +1814,13 @@
bool intersect(int32_t left, int32_t top, int32_t right, int32_t bottom)
</pre>
-Constructs <a href='SkIRect_Reference#SkIRect'>SkIRect</a> <a href='SkIRect_Reference#SkIRect'>to</a> <a href='SkIRect_Reference#SkIRect'>intersect</a> <a href='SkIRect_Reference#SkIRect'>from</a> (<a href='#SkIRect_intersect_3_left'>left</a>, <a href='#SkIRect_intersect_3_top'>top</a>, <a href='#SkIRect_intersect_3_right'>right</a>, <a href='#SkIRect_intersect_3_bottom'>bottom</a>). <a href='#SkIRect_intersect_3_bottom'>Does</a> <a href='#SkIRect_intersect_3_bottom'>not</a> <a href='#SkIRect_intersect_3_bottom'>sort</a>
+Constructs <a href='SkIRect_Reference#SkIRect'>SkIRect</a> to intersect from (<a href='#SkIRect_intersect_3_left'>left</a>, <a href='#SkIRect_intersect_3_top'>top</a>, <a href='#SkIRect_intersect_3_right'>right</a>, <a href='#SkIRect_intersect_3_bottom'>bottom</a>). Does not sort
construction.
-Returns true if <a href='SkIRect_Reference#SkIRect'>SkIRect</a> <a href='SkIRect_Reference#SkIRect'>intersects</a> <a href='SkIRect_Reference#SkIRect'>construction</a>, <a href='SkIRect_Reference#SkIRect'>and</a> <a href='SkIRect_Reference#SkIRect'>sets</a> <a href='SkIRect_Reference#SkIRect'>SkIRect</a> <a href='SkIRect_Reference#SkIRect'>to</a> <a href='SkIRect_Reference#SkIRect'>intersection</a>.
-Returns false if <a href='SkIRect_Reference#SkIRect'>SkIRect</a> <a href='SkIRect_Reference#SkIRect'>does</a> <a href='SkIRect_Reference#SkIRect'>not</a> <a href='SkIRect_Reference#SkIRect'>intersect</a> <a href='SkIRect_Reference#SkIRect'>construction</a>, <a href='SkIRect_Reference#SkIRect'>and</a> <a href='SkIRect_Reference#SkIRect'>leaves</a> <a href='SkIRect_Reference#SkIRect'>SkIRect</a> <a href='SkIRect_Reference#SkIRect'>unchanged</a>.
+Returns true if <a href='SkIRect_Reference#SkIRect'>SkIRect</a> intersects construction, and sets <a href='SkIRect_Reference#SkIRect'>SkIRect</a> to intersection.
+Returns false if <a href='SkIRect_Reference#SkIRect'>SkIRect</a> does not intersect construction, and leaves <a href='SkIRect_Reference#SkIRect'>SkIRect</a> unchanged.
-Returns false if either construction or <a href='SkIRect_Reference#SkIRect'>SkIRect</a> <a href='SkIRect_Reference#SkIRect'>is</a> <a href='SkIRect_Reference#SkIRect'>empty</a>, <a href='SkIRect_Reference#SkIRect'>leaving</a> <a href='SkIRect_Reference#SkIRect'>SkIRect</a> <a href='SkIRect_Reference#SkIRect'>unchanged</a>.
+Returns false if either construction or <a href='SkIRect_Reference#SkIRect'>SkIRect</a> is empty, leaving <a href='SkIRect_Reference#SkIRect'>SkIRect</a> unchanged.
### Parameters
@@ -1840,13 +1840,13 @@
### Return Value
-true if construction and <a href='SkIRect_Reference#SkIRect'>SkIRect</a> <a href='SkIRect_Reference#SkIRect'>have</a> <a href='SkIRect_Reference#SkIRect'>area</a> <a href='SkIRect_Reference#SkIRect'>in</a> <a href='SkIRect_Reference#SkIRect'>common</a>
+true if construction and <a href='SkIRect_Reference#SkIRect'>SkIRect</a> have area in common
### Example
-<div><fiddle-embed name="200422990eded2f754ab9893118f2645"><div>Two <a href='undocumented#SkDebugf'>SkDebugf</a> <a href='undocumented#SkDebugf'>calls</a> <a href='undocumented#SkDebugf'>are</a> <a href='undocumented#SkDebugf'>required</a>. <a href='undocumented#SkDebugf'>If</a> <a href='undocumented#SkDebugf'>the</a> <a href='undocumented#SkDebugf'>calls</a> <a href='undocumented#SkDebugf'>are</a> <a href='undocumented#SkDebugf'>combined</a>, <a href='undocumented#SkDebugf'>their</a> <a href='undocumented#SkDebugf'>arguments</a>
-<a href='undocumented#SkDebugf'>may</a> <a href='undocumented#SkDebugf'>not</a> <a href='undocumented#SkDebugf'>be</a> <a href='undocumented#SkDebugf'>evaluated</a> <a href='undocumented#SkDebugf'>in</a> <a href='#SkIRect_intersect_3_left'>left</a> <a href='#SkIRect_intersect_3_left'>to</a> <a href='#SkIRect_intersect_3_right'>right</a> <a href='#SkIRect_intersect_3_right'>order</a>: <a href='#SkIRect_intersect_3_right'>the</a> <a href='#SkIRect_intersect_3_right'>printed</a> <a href='#SkIRect_intersect_3_right'>intersection</a> <a href='#SkIRect_intersect_3_right'>may</a>
-<a href='#SkIRect_intersect_3_right'>be</a> <a href='#SkIRect_intersect_3_right'>before</a> <a href='#SkIRect_intersect_3_right'>or</a> <a href='#SkIRect_intersect_3_right'>after</a> <a href='#SkIRect_intersect_3_right'>the</a> <a href='#SkIRect_intersect_3_right'>call</a> <a href='#SkIRect_intersect_3_right'>to</a> <a href='#SkIRect_intersect_3_right'>intersect</a>.
+<div><fiddle-embed name="200422990eded2f754ab9893118f2645"><div>Two <a href='undocumented#SkDebugf'>SkDebugf</a> calls are required. If the calls are combined, their arguments
+may not be evaluated in <a href='#SkIRect_intersect_3_left'>left</a> to <a href='#SkIRect_intersect_3_right'>right</a> order: the printed intersection may
+be before or after the call to intersect.
</div>
#### Example Output
@@ -1866,25 +1866,25 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-static bool <a href='#SkIRect_Intersects'>Intersects</a>(<a href='#SkIRect_Intersects'>const</a> <a href='SkIRect_Reference#SkIRect'>SkIRect</a>& <a href='SkIRect_Reference#SkIRect'>a</a>, <a href='SkIRect_Reference#SkIRect'>const</a> <a href='SkIRect_Reference#SkIRect'>SkIRect</a>& <a href='SkIRect_Reference#SkIRect'>b</a>)
+static bool <a href='#SkIRect_Intersects'>Intersects</a>(const <a href='SkIRect_Reference#SkIRect'>SkIRect</a>& a, const <a href='SkIRect_Reference#SkIRect'>SkIRect</a>& b)
</pre>
-Returns true if <a href='#SkIRect_Intersects_a'>a</a> <a href='#SkIRect_Intersects_a'>intersects</a> <a href='#SkIRect_Intersects_b'>b</a>.
-Returns false if either <a href='#SkIRect_Intersects_a'>a</a> <a href='#SkIRect_Intersects_a'>or</a> <a href='#SkIRect_Intersects_b'>b</a> <a href='#SkIRect_Intersects_b'>is</a> <a href='#SkIRect_Intersects_b'>empty</a>, <a href='#SkIRect_Intersects_b'>or</a> <a href='#SkIRect_Intersects_b'>do</a> <a href='#SkIRect_Intersects_b'>not</a> <a href='#SkIRect_Intersects_b'>intersect</a>.
+Returns true if <a href='#SkIRect_Intersects_a'>a</a> intersects <a href='#SkIRect_Intersects_b'>b</a>.
+Returns false if either <a href='#SkIRect_Intersects_a'>a</a> or <a href='#SkIRect_Intersects_b'>b</a> is empty, or do not intersect.
### Parameters
<table> <tr> <td><a name='SkIRect_Intersects_a'><code><strong>a</strong></code></a></td>
- <td><a href='SkIRect_Reference#SkIRect'>SkIRect</a> <a href='SkIRect_Reference#SkIRect'>to</a> <a href='SkIRect_Reference#SkIRect'>intersect</a></td>
+ <td><a href='SkIRect_Reference#SkIRect'>SkIRect</a> to intersect</td>
</tr>
<tr> <td><a name='SkIRect_Intersects_b'><code><strong>b</strong></code></a></td>
- <td><a href='SkIRect_Reference#SkIRect'>SkIRect</a> <a href='SkIRect_Reference#SkIRect'>to</a> <a href='SkIRect_Reference#SkIRect'>intersect</a></td>
+ <td><a href='SkIRect_Reference#SkIRect'>SkIRect</a> to intersect</td>
</tr>
</table>
### Return Value
-true if <a href='#SkIRect_Intersects_a'>a</a> <a href='#SkIRect_Intersects_a'>and</a> <a href='#SkIRect_Intersects_b'>b</a> <a href='#SkIRect_Intersects_b'>have</a> <a href='#SkIRect_Intersects_b'>area</a> <a href='#SkIRect_Intersects_b'>in</a> <a href='#SkIRect_Intersects_b'>common</a>
+true if <a href='#SkIRect_Intersects_a'>a</a> and <a href='#SkIRect_Intersects_b'>b</a> have area in common
### Example
@@ -1907,25 +1907,25 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-static bool <a href='#SkIRect_IntersectsNoEmptyCheck'>IntersectsNoEmptyCheck</a>(<a href='#SkIRect_IntersectsNoEmptyCheck'>const</a> <a href='SkIRect_Reference#SkIRect'>SkIRect</a>& <a href='SkIRect_Reference#SkIRect'>a</a>, <a href='SkIRect_Reference#SkIRect'>const</a> <a href='SkIRect_Reference#SkIRect'>SkIRect</a>& <a href='SkIRect_Reference#SkIRect'>b</a>)
+static bool <a href='#SkIRect_IntersectsNoEmptyCheck'>IntersectsNoEmptyCheck</a>(const <a href='SkIRect_Reference#SkIRect'>SkIRect</a>& a, const <a href='SkIRect_Reference#SkIRect'>SkIRect</a>& b)
</pre>
-Returns true if <a href='#SkIRect_IntersectsNoEmptyCheck_a'>a</a> <a href='#SkIRect_IntersectsNoEmptyCheck_a'>intersects</a> <a href='#SkIRect_IntersectsNoEmptyCheck_b'>b</a>.
-Asserts if either <a href='#SkIRect_IntersectsNoEmptyCheck_a'>a</a> <a href='#SkIRect_IntersectsNoEmptyCheck_a'>or</a> <a href='#SkIRect_IntersectsNoEmptyCheck_b'>b</a> <a href='#SkIRect_IntersectsNoEmptyCheck_b'>is</a> <a href='#SkIRect_IntersectsNoEmptyCheck_b'>empty</a>, <a href='#SkIRect_IntersectsNoEmptyCheck_b'>and</a> <a href='#SkIRect_IntersectsNoEmptyCheck_b'>if</a> <a href='#SkIRect_IntersectsNoEmptyCheck_b'>SK_DEBUG</a> <a href='#SkIRect_IntersectsNoEmptyCheck_b'>is</a> <a href='#SkIRect_IntersectsNoEmptyCheck_b'>defined</a>.
+Returns true if <a href='#SkIRect_IntersectsNoEmptyCheck_a'>a</a> intersects <a href='#SkIRect_IntersectsNoEmptyCheck_b'>b</a>.
+Asserts if either <a href='#SkIRect_IntersectsNoEmptyCheck_a'>a</a> or <a href='#SkIRect_IntersectsNoEmptyCheck_b'>b</a> is empty, and if SK_DEBUG is defined.
### Parameters
<table> <tr> <td><a name='SkIRect_IntersectsNoEmptyCheck_a'><code><strong>a</strong></code></a></td>
- <td><a href='SkIRect_Reference#SkIRect'>SkIRect</a> <a href='SkIRect_Reference#SkIRect'>to</a> <a href='SkIRect_Reference#SkIRect'>intersect</a></td>
+ <td><a href='SkIRect_Reference#SkIRect'>SkIRect</a> to intersect</td>
</tr>
<tr> <td><a name='SkIRect_IntersectsNoEmptyCheck_b'><code><strong>b</strong></code></a></td>
- <td><a href='SkIRect_Reference#SkIRect'>SkIRect</a> <a href='SkIRect_Reference#SkIRect'>to</a> <a href='SkIRect_Reference#SkIRect'>intersect</a></td>
+ <td><a href='SkIRect_Reference#SkIRect'>SkIRect</a> to intersect</td>
</tr>
</table>
### Return Value
-true if <a href='#SkIRect_IntersectsNoEmptyCheck_a'>a</a> <a href='#SkIRect_IntersectsNoEmptyCheck_a'>and</a> <a href='#SkIRect_IntersectsNoEmptyCheck_b'>b</a> <a href='#SkIRect_IntersectsNoEmptyCheck_b'>have</a> <a href='#SkIRect_IntersectsNoEmptyCheck_b'>area</a> <a href='#SkIRect_IntersectsNoEmptyCheck_b'>in</a> <a href='#SkIRect_IntersectsNoEmptyCheck_b'>common</a>
+true if <a href='#SkIRect_IntersectsNoEmptyCheck_a'>a</a> and <a href='#SkIRect_IntersectsNoEmptyCheck_b'>b</a> have area in common
### Example
@@ -1953,13 +1953,13 @@
void join(int32_t left, int32_t top, int32_t right, int32_t bottom)
</pre>
-Constructs <a href='SkIRect_Reference#SkIRect'>SkIRect</a> <a href='SkIRect_Reference#SkIRect'>to</a> <a href='SkIRect_Reference#SkIRect'>intersect</a> <a href='SkIRect_Reference#SkIRect'>from</a> (<a href='#SkIRect_join_left'>left</a>, <a href='#SkIRect_join_top'>top</a>, <a href='#SkIRect_join_right'>right</a>, <a href='#SkIRect_join_bottom'>bottom</a>). <a href='#SkIRect_join_bottom'>Does</a> <a href='#SkIRect_join_bottom'>not</a> <a href='#SkIRect_join_bottom'>sort</a>
+Constructs <a href='SkIRect_Reference#SkIRect'>SkIRect</a> to intersect from (<a href='#SkIRect_join_left'>left</a>, <a href='#SkIRect_join_top'>top</a>, <a href='#SkIRect_join_right'>right</a>, <a href='#SkIRect_join_bottom'>bottom</a>). Does not sort
construction.
-Sets <a href='SkIRect_Reference#SkIRect'>SkIRect</a> <a href='SkIRect_Reference#SkIRect'>to</a> <a href='SkIRect_Reference#SkIRect'>the</a> <a href='SkIRect_Reference#SkIRect'>union</a> <a href='SkIRect_Reference#SkIRect'>of</a> <a href='SkIRect_Reference#SkIRect'>itself</a> <a href='SkIRect_Reference#SkIRect'>and</a> <a href='SkIRect_Reference#SkIRect'>the</a> <a href='SkIRect_Reference#SkIRect'>construction</a>.
+Sets <a href='SkIRect_Reference#SkIRect'>SkIRect</a> to the union of itself and the construction.
-Has no effect if construction is empty. Otherwise, if <a href='SkIRect_Reference#SkIRect'>SkIRect</a> <a href='SkIRect_Reference#SkIRect'>is</a> <a href='SkIRect_Reference#SkIRect'>empty</a>, <a href='SkIRect_Reference#SkIRect'>sets</a>
-<a href='SkIRect_Reference#SkIRect'>SkIRect</a> <a href='SkIRect_Reference#SkIRect'>to</a> <a href='SkIRect_Reference#SkIRect'>construction</a>.
+Has no effect if construction is empty. Otherwise, if <a href='SkIRect_Reference#SkIRect'>SkIRect</a> is empty, sets
+<a href='SkIRect_Reference#SkIRect'>SkIRect</a> to construction.
### Parameters
@@ -1998,12 +1998,12 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-void join(const <a href='SkIRect_Reference#SkIRect'>SkIRect</a>& <a href='SkIRect_Reference#SkIRect'>r</a>)
+void join(const <a href='SkIRect_Reference#SkIRect'>SkIRect</a>& r)
</pre>
-Sets <a href='SkIRect_Reference#SkIRect'>SkIRect</a> <a href='SkIRect_Reference#SkIRect'>to</a> <a href='SkIRect_Reference#SkIRect'>the</a> <a href='SkIRect_Reference#SkIRect'>union</a> <a href='SkIRect_Reference#SkIRect'>of</a> <a href='SkIRect_Reference#SkIRect'>itself</a> <a href='SkIRect_Reference#SkIRect'>and</a> <a href='#SkIRect_join_2_r'>r</a>.
+Sets <a href='SkIRect_Reference#SkIRect'>SkIRect</a> to the union of itself and <a href='#SkIRect_join_2_r'>r</a>.
-Has no effect if <a href='#SkIRect_join_2_r'>r</a> <a href='#SkIRect_join_2_r'>is</a> <a href='#SkIRect_join_2_r'>empty</a>. <a href='#SkIRect_join_2_r'>Otherwise</a>, <a href='#SkIRect_join_2_r'>if</a> <a href='SkIRect_Reference#SkIRect'>SkIRect</a> <a href='SkIRect_Reference#SkIRect'>is</a> <a href='SkIRect_Reference#SkIRect'>empty</a>, <a href='SkIRect_Reference#SkIRect'>sets</a> <a href='SkIRect_Reference#SkIRect'>SkIRect</a> <a href='SkIRect_Reference#SkIRect'>to</a> <a href='#SkIRect_join_2_r'>r</a>.
+Has no effect if <a href='#SkIRect_join_2_r'>r</a> is empty. Otherwise, if <a href='SkIRect_Reference#SkIRect'>SkIRect</a> is empty, sets <a href='SkIRect_Reference#SkIRect'>SkIRect</a> to <a href='#SkIRect_join_2_r'>r</a>.
### Parameters
@@ -2038,9 +2038,9 @@
void <a href='#SkIRect_sort'>sort()</a>
</pre>
-Swaps <a href='#SkIRect_fLeft'>fLeft</a> <a href='#SkIRect_fLeft'>and</a> <a href='#SkIRect_fRight'>fRight</a> <a href='#SkIRect_fRight'>if</a> <a href='#SkIRect_fLeft'>fLeft</a> <a href='#SkIRect_fLeft'>is</a> <a href='#SkIRect_fLeft'>greater</a> <a href='#SkIRect_fLeft'>than</a> <a href='#SkIRect_fRight'>fRight</a>; <a href='#SkIRect_fRight'>and</a> <a href='#SkIRect_fRight'>swaps</a>
-<a href='#SkIRect_fTop'>fTop</a> <a href='#SkIRect_fTop'>and</a> <a href='#SkIRect_fBottom'>fBottom</a> <a href='#SkIRect_fBottom'>if</a> <a href='#SkIRect_fTop'>fTop</a> <a href='#SkIRect_fTop'>is</a> <a href='#SkIRect_fTop'>greater</a> <a href='#SkIRect_fTop'>than</a> <a href='#SkIRect_fBottom'>fBottom</a>. <a href='#SkIRect_fBottom'>Result</a> <a href='#SkIRect_fBottom'>may</a> <a href='#SkIRect_fBottom'>be</a> <a href='#SkIRect_fBottom'>empty</a>,
-and <a href='#SkIRect_width'>width()</a> <a href='#SkIRect_width'>and</a> <a href='#SkIRect_height'>height()</a> <a href='#SkIRect_height'>will</a> <a href='#SkIRect_height'>be</a> <a href='#SkIRect_height'>zero</a> <a href='#SkIRect_height'>or</a> <a href='#SkIRect_height'>positive</a>.
+Swaps <a href='#SkIRect_fLeft'>fLeft</a> and <a href='#SkIRect_fRight'>fRight</a> if <a href='#SkIRect_fLeft'>fLeft</a> is greater than <a href='#SkIRect_fRight'>fRight</a>; and swaps
+<a href='#SkIRect_fTop'>fTop</a> and <a href='#SkIRect_fBottom'>fBottom</a> if <a href='#SkIRect_fTop'>fTop</a> is greater than <a href='#SkIRect_fBottom'>fBottom</a>. Result may be empty,
+and <a href='#SkIRect_width'>width()</a> and <a href='#SkIRect_height'>height()</a> will be zero or positive.
### Example
@@ -2064,12 +2064,12 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-<a href='SkIRect_Reference#SkIRect'>SkIRect</a> <a href='#SkIRect_makeSorted'>makeSorted</a>() <a href='#SkIRect_makeSorted'>const</a>
+<a href='SkIRect_Reference#SkIRect'>SkIRect</a> <a href='#SkIRect_makeSorted'>makeSorted</a>() const
</pre>
-Returns <a href='SkIRect_Reference#SkIRect'>SkIRect</a> <a href='SkIRect_Reference#SkIRect'>with</a> <a href='#SkIRect_fLeft'>fLeft</a> <a href='#SkIRect_fLeft'>and</a> <a href='#SkIRect_fRight'>fRight</a> <a href='#SkIRect_fRight'>swapped</a> <a href='#SkIRect_fRight'>if</a> <a href='#SkIRect_fLeft'>fLeft</a> <a href='#SkIRect_fLeft'>is</a> <a href='#SkIRect_fLeft'>greater</a> <a href='#SkIRect_fLeft'>than</a> <a href='#SkIRect_fRight'>fRight</a>; <a href='#SkIRect_fRight'>and</a>
-with <a href='#SkIRect_fTop'>fTop</a> <a href='#SkIRect_fTop'>and</a> <a href='#SkIRect_fBottom'>fBottom</a> <a href='#SkIRect_fBottom'>swapped</a> <a href='#SkIRect_fBottom'>if</a> <a href='#SkIRect_fTop'>fTop</a> <a href='#SkIRect_fTop'>is</a> <a href='#SkIRect_fTop'>greater</a> <a href='#SkIRect_fTop'>than</a> <a href='#SkIRect_fBottom'>fBottom</a>. <a href='#SkIRect_fBottom'>Result</a> <a href='#SkIRect_fBottom'>may</a> <a href='#SkIRect_fBottom'>be</a> <a href='#SkIRect_fBottom'>empty</a>;
-and <a href='#SkIRect_width'>width()</a> <a href='#SkIRect_width'>and</a> <a href='#SkIRect_height'>height()</a> <a href='#SkIRect_height'>will</a> <a href='#SkIRect_height'>be</a> <a href='#SkIRect_height'>zero</a> <a href='#SkIRect_height'>or</a> <a href='#SkIRect_height'>positive</a>.
+Returns <a href='SkIRect_Reference#SkIRect'>SkIRect</a> with <a href='#SkIRect_fLeft'>fLeft</a> and <a href='#SkIRect_fRight'>fRight</a> swapped if <a href='#SkIRect_fLeft'>fLeft</a> is greater than <a href='#SkIRect_fRight'>fRight</a>; and
+with <a href='#SkIRect_fTop'>fTop</a> and <a href='#SkIRect_fBottom'>fBottom</a> swapped if <a href='#SkIRect_fTop'>fTop</a> is greater than <a href='#SkIRect_fBottom'>fBottom</a>. Result may be empty;
+and <a href='#SkIRect_width'>width()</a> and <a href='#SkIRect_height'>height()</a> will be zero or positive.
### Return Value
@@ -2100,11 +2100,11 @@
static const <a href='SkIRect_Reference#SkIRect'>SkIRect</a>& <a href='#SkIRect_EmptyIRect'>EmptyIRect</a>()
</pre>
-Returns a reference to immutable empty <a href='SkIRect_Reference#SkIRect'>SkIRect</a>, <a href='SkIRect_Reference#SkIRect'>set</a> <a href='SkIRect_Reference#SkIRect'>to</a> (0, 0, 0, 0).
+Returns a reference to immutable empty <a href='SkIRect_Reference#SkIRect'>SkIRect</a>, set to (0, 0, 0, 0).
### Return Value
-global <a href='SkIRect_Reference#SkIRect'>SkIRect</a> <a href='SkIRect_Reference#SkIRect'>set</a> <a href='SkIRect_Reference#SkIRect'>to</a> <a href='SkIRect_Reference#SkIRect'>all</a> <a href='SkIRect_Reference#SkIRect'>zeroes</a>
+global <a href='SkIRect_Reference#SkIRect'>SkIRect</a> set to all zeroes
### Example
diff --git a/site/user/api/SkImageInfo_Reference.md b/site/user/api/SkImageInfo_Reference.md
index da5d9b0..696afee 100644
--- a/site/user/api/SkImageInfo_Reference.md
+++ b/site/user/api/SkImageInfo_Reference.md
@@ -11,9 +11,9 @@
<a href='SkImageInfo_Reference#kLastEnum_SkAlphaType'>kLastEnum_SkAlphaType</a> = <a href='SkImageInfo_Reference#kUnpremul_SkAlphaType'>kUnpremul_SkAlphaType</a>,
};
-<a href='SkImageInfo_Reference#kUnpremul_SkAlphaType'>static</a> <a href='SkImageInfo_Reference#kUnpremul_SkAlphaType'>bool</a> <a href='SkImageInfo_Reference#SkAlphaTypeIsOpaque'>SkAlphaTypeIsOpaque</a>(<a href='SkImageInfo_Reference#SkAlphaType'>SkAlphaType</a> <a href='SkImageInfo_Reference#SkAlphaType'>at</a>);
+static bool <a href='SkImageInfo_Reference#SkAlphaTypeIsOpaque'>SkAlphaTypeIsOpaque</a>(<a href='SkImageInfo_Reference#SkAlphaType'>SkAlphaType</a> at);
-<a href='SkImageInfo_Reference#SkAlphaType'>enum</a> <a href='SkImageInfo_Reference#SkColorType'>SkColorType</a> {
+enum <a href='SkImageInfo_Reference#SkColorType'>SkColorType</a> {
<a href='SkImageInfo_Reference#kUnknown_SkColorType'>kUnknown_SkColorType</a>,
<a href='SkImageInfo_Reference#kAlpha_8_SkColorType'>kAlpha_8_SkColorType</a>,
<a href='SkImageInfo_Reference#kRGB_565_SkColorType'>kRGB_565_SkColorType</a>,
@@ -31,34 +31,34 @@
<a href='SkImageInfo_Reference#kN32_SkColorType'>kN32_SkColorType</a> = <a href='SkImageInfo_Reference#kRGBA_8888_SkColorType'>kRGBA_8888_SkColorType</a>,
};
-<a href='SkImageInfo_Reference#kRGBA_8888_SkColorType'>int</a> <a href='SkImageInfo_Reference#SkColorTypeBytesPerPixel'>SkColorTypeBytesPerPixel</a>(<a href='SkImageInfo_Reference#SkColorType'>SkColorType</a> <a href='SkImageInfo_Reference#SkColorType'>ct</a>);
+int <a href='SkImageInfo_Reference#SkColorTypeBytesPerPixel'>SkColorTypeBytesPerPixel</a>(<a href='SkImageInfo_Reference#SkColorType'>SkColorType</a> ct);
-<a href='SkImageInfo_Reference#SkColorType'>bool</a> <a href='SkImageInfo_Reference#SkColorTypeIsAlwaysOpaque'>SkColorTypeIsAlwaysOpaque</a>(<a href='SkImageInfo_Reference#SkColorType'>SkColorType</a> <a href='SkImageInfo_Reference#SkColorType'>ct</a>);
+bool <a href='SkImageInfo_Reference#SkColorTypeIsAlwaysOpaque'>SkColorTypeIsAlwaysOpaque</a>(<a href='SkImageInfo_Reference#SkColorType'>SkColorType</a> ct);
-<a href='SkImageInfo_Reference#SkColorType'>bool</a> <a href='SkImageInfo_Reference#SkColorTypeValidateAlphaType'>SkColorTypeValidateAlphaType</a>(<a href='SkImageInfo_Reference#SkColorType'>SkColorType</a> <a href='#SkImage_colorType'>colorType</a>, <a href='SkImageInfo_Reference#SkAlphaType'>SkAlphaType</a> <a href='#SkImage_alphaType'>alphaType</a>,
- <a href='SkImageInfo_Reference#SkAlphaType'>SkAlphaType</a>* <a href='SkImageInfo_Reference#SkAlphaType'>canonical</a> = <a href='SkImageInfo_Reference#SkAlphaType'>nullptr</a>);
+bool <a href='SkImageInfo_Reference#SkColorTypeValidateAlphaType'>SkColorTypeValidateAlphaType</a>(<a href='SkImageInfo_Reference#SkColorType'>SkColorType</a> <a href='#SkImage_colorType'>colorType</a>, <a href='SkImageInfo_Reference#SkAlphaType'>SkAlphaType</a> <a href='#SkImage_alphaType'>alphaType</a>,
+ <a href='SkImageInfo_Reference#SkAlphaType'>SkAlphaType</a>* canonical = nullptr);
-<a href='SkImageInfo_Reference#SkAlphaType'>enum</a> <a href='SkImageInfo_Reference#SkYUVColorSpace'>SkYUVColorSpace</a> {
+enum <a href='SkImageInfo_Reference#SkYUVColorSpace'>SkYUVColorSpace</a> {
<a href='SkImageInfo_Reference#kJPEG_SkYUVColorSpace'>kJPEG_SkYUVColorSpace</a>,
<a href='SkImageInfo_Reference#kRec601_SkYUVColorSpace'>kRec601_SkYUVColorSpace</a>,
<a href='SkImageInfo_Reference#kRec709_SkYUVColorSpace'>kRec709_SkYUVColorSpace</a>,
<a href='SkImageInfo_Reference#kLastEnum_SkYUVColorSpace'>kLastEnum_SkYUVColorSpace</a> = <a href='SkImageInfo_Reference#kRec709_SkYUVColorSpace'>kRec709_SkYUVColorSpace</a>,
};
-<a href='SkImageInfo_Reference#kRec709_SkYUVColorSpace'>struct</a> <a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a> {
- // <<a href='SkImageInfo_Reference#SkImageInfo'>i</a>><a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a> <a href='SkImageInfo_Reference#SkImageInfo'>interface</a></<a href='SkImageInfo_Reference#SkImageInfo'>i</a>>
+struct <a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a> {
+ // <i><a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a> interface</i>
};
</pre>
-<a href='#Image_Info'>Image_Info</a> <a href='#Image_Info'>specifies</a> <a href='#Image_Info'>the</a> <a href='#Image_Info'>dimensions</a> <a href='#Image_Info'>and</a> <a href='#Image_Info'>encoding</a> <a href='#Image_Info'>of</a> <a href='#Image_Info'>the</a> <a href='#Image_Info'>pixels</a> <a href='#Image_Info'>in</a> <a href='#Image_Info'>a</a> <a href='SkBitmap_Reference#Bitmap'>Bitmap</a>.
-<a href='SkBitmap_Reference#Bitmap'>The</a> <a href='SkBitmap_Reference#Bitmap'>dimensions</a> <a href='SkBitmap_Reference#Bitmap'>are</a> <a href='SkBitmap_Reference#Bitmap'>integral</a> <a href='SkBitmap_Reference#Bitmap'>width</a> <a href='SkBitmap_Reference#Bitmap'>and</a> <a href='SkBitmap_Reference#Bitmap'>height</a>. <a href='SkBitmap_Reference#Bitmap'>The</a> <a href='SkBitmap_Reference#Bitmap'>encoding</a> <a href='SkBitmap_Reference#Bitmap'>is</a> <a href='SkBitmap_Reference#Bitmap'>how</a> <a href='undocumented#Pixel'>pixel</a>
-<a href='undocumented#Pixel'>bits</a> <a href='undocumented#Pixel'>describe</a> <a href='#Color_Alpha'>Color_Alpha</a>, <a href='#Color_Alpha'>transparency</a>; <a href='SkColor_Reference#Color'>Color</a> <a href='SkColor_Reference#Color'>components</a> <a href='SkColor_Reference#Color'>red</a>, <a href='SkColor_Reference#Color'>blue</a>,
-<a href='SkColor_Reference#Color'>and</a> <a href='SkColor_Reference#Color'>green</a>; <a href='SkColor_Reference#Color'>and</a> <a href='#Color_Space'>Color_Space</a>, <a href='#Color_Space'>the</a> <a href='#Color_Space'>range</a> <a href='#Color_Space'>and</a> <a href='#Color_Space'>linearity</a> <a href='#Color_Space'>of</a> <a href='#Color_Space'>colors</a>.
+<a href='#Image_Info'>Image_Info</a> specifies the dimensions and encoding of the pixels in a <a href='SkBitmap_Reference#Bitmap'>Bitmap</a>.
+The dimensions are integral width and height. The encoding is how <a href='undocumented#Pixel'>pixel</a>
+bits describe <a href='#Color_Alpha'>Color_Alpha</a>, transparency; <a href='SkColor_Reference#Color'>Color</a> components red, blue,
+and green; and <a href='#Color_Space'>Color_Space</a>, the range and linearity of colors.
-<a href='#Image_Info'>Image_Info</a> <a href='#Image_Info'>describes</a> <a href='#Image_Info'>an</a> <a href='#Image_Info'>uncompressed</a> <a href='#Image_Info'>raster</a> <a href='#Image_Info'>pixels</a>. <a href='#Image_Info'>In</a> <a href='#Image_Info'>contrast</a>, <a href='SkImage_Reference#Image'>Image</a>
-<a href='SkImage_Reference#Image'>additionally</a> <a href='SkImage_Reference#Image'>describes</a> <a href='SkImage_Reference#Image'>compressed</a> <a href='SkImage_Reference#Image'>pixels</a> <a href='SkImage_Reference#Image'>like</a> <a href='SkImage_Reference#Image'>PNG</a>, <a href='SkImage_Reference#Image'>and</a> <a href='SkSurface_Reference#Surface'>Surface</a> <a href='SkSurface_Reference#Surface'>describes</a>
-<a href='SkSurface_Reference#Surface'>destinations</a> <a href='SkSurface_Reference#Surface'>on</a> <a href='SkSurface_Reference#Surface'>the</a> <a href='SkSurface_Reference#Surface'>GPU</a>. <a href='SkImage_Reference#Image'>Image</a> <a href='SkImage_Reference#Image'>and</a> <a href='SkSurface_Reference#Surface'>Surface</a> <a href='SkSurface_Reference#Surface'>may</a> <a href='SkSurface_Reference#Surface'>be</a> <a href='SkSurface_Reference#Surface'>specified</a> <a href='SkSurface_Reference#Surface'>by</a> <a href='#Image_Info'>Image_Info</a>,
-<a href='#Image_Info'>but</a> <a href='SkImage_Reference#Image'>Image</a> <a href='SkImage_Reference#Image'>and</a> <a href='SkSurface_Reference#Surface'>Surface</a> <a href='SkSurface_Reference#Surface'>may</a> <a href='SkSurface_Reference#Surface'>not</a> <a href='SkSurface_Reference#Surface'>contain</a> <a href='#Image_Info'>Image_Info</a>.
+<a href='#Image_Info'>Image_Info</a> describes an uncompressed raster pixels. In contrast, <a href='SkImage_Reference#Image'>Image</a>
+additionally describes compressed pixels like PNG, and <a href='SkSurface_Reference#Surface'>Surface</a> describes
+destinations on the GPU. <a href='SkImage_Reference#Image'>Image</a> and <a href='SkSurface_Reference#Surface'>Surface</a> may be specified by <a href='#Image_Info'>Image_Info</a>,
+but <a href='SkImage_Reference#Image'>Image</a> and <a href='SkSurface_Reference#Surface'>Surface</a> may not contain <a href='#Image_Info'>Image_Info</a>.
<a name='Alpha_Type'></a>
@@ -76,18 +76,18 @@
};
</pre>
-Describes how to interpret the <a href='SkColor_Reference#Alpha'>alpha</a> <a href='SkColor_Reference#Alpha'>component</a> <a href='SkColor_Reference#Alpha'>of</a> <a href='SkColor_Reference#Alpha'>a</a> <a href='undocumented#Pixel'>pixel</a>. <a href='undocumented#Pixel'>A</a> <a href='undocumented#Pixel'>pixel</a> <a href='undocumented#Pixel'>may</a>
-<a href='undocumented#Pixel'>be</a> <a href='undocumented#Pixel'>opaque</a>, <a href='undocumented#Pixel'>or</a> <a href='#Color_Alpha'>Color_Alpha</a>, <a href='#Color_Alpha'>describing</a> <a href='#Color_Alpha'>multiple</a> <a href='#Color_Alpha'>levels</a> <a href='#Color_Alpha'>of</a> <a href='#Color_Alpha'>transparency</a>.
+Describes how to interpret the <a href='SkColor_Reference#Alpha'>alpha</a> component of a <a href='undocumented#Pixel'>pixel</a>. A <a href='undocumented#Pixel'>pixel</a> may
+be opaque, or <a href='#Color_Alpha'>Color_Alpha</a>, describing multiple levels of transparency.
-<a href='#Color_Alpha'>In</a> <a href='#Color_Alpha'>simple</a> <a href='#Color_Alpha'>blending</a>, <a href='#Color_Alpha'>Color_Alpha</a> <a href='SkPath_Reference#Conic_Weight'>weights</a> <a href='SkPath_Reference#Conic_Weight'>the</a> <a href='SkPath_Reference#Conic_Weight'>draw</a> <a href='SkColor_Reference#Color'>color</a> <a href='SkColor_Reference#Color'>and</a> <a href='SkColor_Reference#Color'>the</a> <a href='SkColor_Reference#Color'>destination</a>
-<a href='SkColor_Reference#Color'>color</a> <a href='SkColor_Reference#Color'>to</a> <a href='SkColor_Reference#Color'>create</a> <a href='SkColor_Reference#Color'>a</a> <a href='SkColor_Reference#Color'>new</a> <a href='SkColor_Reference#Color'>color</a>. <a href='SkColor_Reference#Color'>If</a> <a href='SkColor_Reference#Alpha'>alpha</a> <a href='SkColor_Reference#Alpha'>describes</a> <a href='SkColor_Reference#Alpha'>a</a> <a href='SkColor_Reference#Alpha'>weight</a> <a href='SkColor_Reference#Alpha'>from</a> <a href='SkColor_Reference#Alpha'>zero</a> <a href='SkColor_Reference#Alpha'>to</a> <a href='SkColor_Reference#Alpha'>one</a>,
-<a href='SkColor_Reference#Alpha'>new</a> <a href='SkColor_Reference#Color'>color</a> <a href='SkColor_Reference#Color'>is</a> <a href='SkColor_Reference#Color'>set</a> <a href='SkColor_Reference#Color'>to</a>: <code>draw <a href='SkColor_Reference#Color'>color</a> * <a href='SkColor_Reference#Alpha'>alpha</a> + <a href='SkColor_Reference#Alpha'>destination</a> <a href='SkColor_Reference#Color'>color</a> * (1 - <a href='SkColor_Reference#Alpha'>alpha</a>)</code>.
+In simple blending, <a href='#Color_Alpha'>Color_Alpha</a> <a href='SkPath_Reference#Conic_Weight'>weights</a> the draw <a href='SkColor_Reference#Color'>color</a> and the destination
+<a href='SkColor_Reference#Color'>color</a> to create a new <a href='SkColor_Reference#Color'>color</a>. If <a href='SkColor_Reference#Alpha'>alpha</a> describes a weight from zero to one,
+new <a href='SkColor_Reference#Color'>color</a> is set to: <code>draw <a href='SkColor_Reference#Color'>color</a> * <a href='SkColor_Reference#Alpha'>alpha</a> + destination <a href='SkColor_Reference#Color'>color</a> * (1 - <a href='SkColor_Reference#Alpha'>alpha</a>)</code>.
-In practice <a href='SkColor_Reference#Alpha'>alpha</a> <a href='SkColor_Reference#Alpha'>is</a> <a href='SkColor_Reference#Alpha'>encoded</a> <a href='SkColor_Reference#Alpha'>in</a> <a href='SkColor_Reference#Alpha'>two</a> <a href='SkColor_Reference#Alpha'>or</a> <a href='SkColor_Reference#Alpha'>more</a> <a href='SkColor_Reference#Alpha'>bits</a>, <a href='SkColor_Reference#Alpha'>where</a> 1.0 <a href='SkColor_Reference#Alpha'>equals</a> <a href='SkColor_Reference#Alpha'>all</a> <a href='SkColor_Reference#Alpha'>bits</a> <a href='SkColor_Reference#Alpha'>set</a>.
+In practice <a href='SkColor_Reference#Alpha'>alpha</a> is encoded in two or more bits, where 1.0 equals all bits set.
-<a href='SkColor_Reference#Alpha'>RGB</a> <a href='SkColor_Reference#Alpha'>may</a> <a href='SkColor_Reference#Alpha'>have</a> <a href='#Color_Alpha'>Color_Alpha</a> <a href='#Color_Alpha'>included</a> <a href='#Color_Alpha'>in</a> <a href='#Color_Alpha'>each</a> <a href='#Color_Alpha'>component</a> <a href='#Color_Alpha'>value</a>; <a href='#Color_Alpha'>the</a> <a href='#Color_Alpha'>stored</a>
-<a href='#Color_Alpha'>value</a> <a href='#Color_Alpha'>is</a> <a href='#Color_Alpha'>the</a> <a href='#Color_Alpha'>original</a> <a href='#Color_Alpha'>RGB</a> <a href='#Color_Alpha'>multiplied</a> <a href='#Color_Alpha'>by</a> <a href='#Color_Alpha'>Color_Alpha</a>. <a href='undocumented#Premultiply'>Premultiplied</a> <a href='SkColor_Reference#Color'>color</a>
-<a href='SkColor_Reference#Color'>components</a> <a href='SkColor_Reference#Color'>improve</a> <a href='SkColor_Reference#Color'>performance</a>.
+RGB may have <a href='#Color_Alpha'>Color_Alpha</a> included in each component value; the stored
+value is the original RGB multiplied by <a href='#Color_Alpha'>Color_Alpha</a>. <a href='undocumented#Premultiply'>Premultiplied</a> <a href='SkColor_Reference#Color'>color</a>
+components improve performance.
### Constants
@@ -101,7 +101,7 @@
<td style='text-align: center; border: 2px solid #dddddd; padding: 8px; '>0</td>
<td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '></td>
<td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>
-<a href='#Image_Info_Alpha_Type'>Alpha_Type</a> <a href='#Image_Info_Alpha_Type'>is</a> <a href='#Image_Info_Alpha_Type'>uninitialized</a>.
+<a href='#Image_Info_Alpha_Type'>Alpha_Type</a> is uninitialized.
</td>
</tr>
<tr>
@@ -109,8 +109,8 @@
<td style='text-align: center; border: 2px solid #dddddd; padding: 8px; '>1</td>
<td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a href='#Opaque'>Opaque</a> </td>
<td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>
-Pixels are opaque. The <a href='#Image_Info_Color_Type'>Color_Type</a> <a href='#Image_Info_Color_Type'>must</a> <a href='#Image_Info_Color_Type'>have</a> <a href='#Image_Info_Color_Type'>no</a> <a href='#Image_Info_Color_Type'>explicit</a> <a href='SkColor_Reference#Alpha'>alpha</a>
-<a href='SkColor_Reference#Alpha'>component</a>, <a href='SkColor_Reference#Alpha'>or</a> <a href='SkColor_Reference#Alpha'>all</a> <a href='SkColor_Reference#Alpha'>alpha</a> <a href='SkColor_Reference#Alpha'>components</a> <a href='SkColor_Reference#Alpha'>must</a> <a href='SkColor_Reference#Alpha'>be</a> <a href='SkColor_Reference#Alpha'>set</a> <a href='SkColor_Reference#Alpha'>to</a> <a href='SkColor_Reference#Alpha'>their</a> <a href='SkColor_Reference#Alpha'>maximum</a> <a href='SkColor_Reference#Alpha'>value</a>.
+Pixels are opaque. The <a href='#Image_Info_Color_Type'>Color_Type</a> must have no explicit <a href='SkColor_Reference#Alpha'>alpha</a>
+component, or all <a href='SkColor_Reference#Alpha'>alpha</a> components must be set to their maximum value.
</td>
</tr>
<tr style='background-color: #f0f0f0; '>
@@ -118,8 +118,8 @@
<td style='text-align: center; border: 2px solid #dddddd; padding: 8px; '>2</td>
<td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a href='#Premul'>Premul</a> </td>
<td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>
-Pixels have <a href='SkColor_Reference#Alpha'>Alpha</a> <a href='undocumented#Premultiply'>Premultiplied</a> <a href='undocumented#Premultiply'>into</a> <a href='SkColor_Reference#Color'>color</a> <a href='SkColor_Reference#Color'>components</a>.
-<a href='SkSurface_Reference#Surface'>Surface</a> <a href='SkSurface_Reference#Surface'>pixels</a> <a href='SkSurface_Reference#Surface'>must</a> <a href='SkSurface_Reference#Surface'>be</a> <a href='undocumented#Premultiply'>Premultiplied</a>.
+Pixels have <a href='SkColor_Reference#Alpha'>Alpha</a> <a href='undocumented#Premultiply'>Premultiplied</a> into <a href='SkColor_Reference#Color'>color</a> components.
+<a href='SkSurface_Reference#Surface'>Surface</a> pixels must be <a href='undocumented#Premultiply'>Premultiplied</a>.
</td>
</tr>
<tr>
@@ -127,10 +127,10 @@
<td style='text-align: center; border: 2px solid #dddddd; padding: 8px; '>3</td>
<td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a href='#Unpremul'>Unpremul</a> </td>
<td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>
-<a href='undocumented#Pixel'>Pixel</a> <a href='SkColor_Reference#Color'>color</a> <a href='SkColor_Reference#Color'>component</a> <a href='SkColor_Reference#Color'>values</a> <a href='SkColor_Reference#Color'>are</a> <a href='SkColor_Reference#Color'>independent</a> <a href='SkColor_Reference#Color'>of</a> <a href='SkColor_Reference#Alpha'>alpha</a> <a href='SkColor_Reference#Alpha'>value</a>.
-<a href='SkColor_Reference#Alpha'>Images</a> <a href='SkColor_Reference#Alpha'>generated</a> <a href='SkColor_Reference#Alpha'>from</a> <a href='SkColor_Reference#Alpha'>encoded</a> <a href='undocumented#Data'>data</a> <a href='undocumented#Data'>like</a> <a href='undocumented#Data'>PNG</a> <a href='undocumented#Data'>do</a> <a href='undocumented#Data'>not</a> <a href='undocumented#Premultiply'>Premultiply</a> <a href='undocumented#Pixel'>pixel</a> <a href='SkColor_Reference#Color'>color</a>
-<a href='SkColor_Reference#Color'>components</a>. <a href='SkImageInfo_Reference#kUnpremul_SkAlphaType'>kUnpremul_SkAlphaType</a> <a href='SkImageInfo_Reference#kUnpremul_SkAlphaType'>is</a> <a href='SkImageInfo_Reference#kUnpremul_SkAlphaType'>supported</a> <a href='SkImageInfo_Reference#kUnpremul_SkAlphaType'>for</a> <a href='SkImage_Reference#Image'>Image</a> <a href='SkImage_Reference#Image'>pixels</a>, <a href='SkImage_Reference#Image'>but</a> <a href='SkImage_Reference#Image'>not</a> <a href='SkImage_Reference#Image'>for</a>
-<a href='SkSurface_Reference#Surface'>Surface</a> <a href='SkSurface_Reference#Surface'>pixels</a>.
+<a href='undocumented#Pixel'>Pixel</a> <a href='SkColor_Reference#Color'>color</a> component values are independent of <a href='SkColor_Reference#Alpha'>alpha</a> value.
+Images generated from encoded <a href='undocumented#Data'>data</a> like PNG do not <a href='undocumented#Premultiply'>Premultiply</a> <a href='undocumented#Pixel'>pixel</a> <a href='SkColor_Reference#Color'>color</a>
+components. <a href='SkImageInfo_Reference#kUnpremul_SkAlphaType'>kUnpremul_SkAlphaType</a> is supported for <a href='SkImage_Reference#Image'>Image</a> pixels, but not for
+<a href='SkSurface_Reference#Surface'>Surface</a> pixels.
</td>
</tr>
<tr style='background-color: #f0f0f0; '>
@@ -151,61 +151,61 @@
---
-Use <a href='SkImageInfo_Reference#kOpaque_SkAlphaType'>kOpaque_SkAlphaType</a> <a href='SkImageInfo_Reference#kOpaque_SkAlphaType'>as</a> <a href='SkImageInfo_Reference#kOpaque_SkAlphaType'>a</a> <a href='SkImageInfo_Reference#kOpaque_SkAlphaType'>hint</a> <a href='SkImageInfo_Reference#kOpaque_SkAlphaType'>to</a> <a href='SkImageInfo_Reference#kOpaque_SkAlphaType'>optimize</a> <a href='SkImageInfo_Reference#kOpaque_SkAlphaType'>drawing</a> <a href='SkImageInfo_Reference#kOpaque_SkAlphaType'>when</a> <a href='SkColor_Reference#Alpha'>Alpha</a> <a href='SkColor_Reference#Alpha'>component</a>
-<a href='SkColor_Reference#Alpha'>of</a> <a href='SkColor_Reference#Alpha'>all</a> <a href='undocumented#Pixel'>pixel</a> <a href='undocumented#Pixel'>is</a> <a href='undocumented#Pixel'>set</a> <a href='undocumented#Pixel'>to</a> <a href='undocumented#Pixel'>its</a> <a href='undocumented#Pixel'>maximum</a> <a href='undocumented#Pixel'>value</a> <a href='undocumented#Pixel'>of</a> 1.0; <a href='undocumented#Pixel'>all</a> <a href='SkColor_Reference#Alpha'>alpha</a> <a href='SkColor_Reference#Alpha'>component</a> <a href='SkColor_Reference#Alpha'>bits</a> <a href='SkColor_Reference#Alpha'>are</a> <a href='SkColor_Reference#Alpha'>set</a>.
-<a href='SkColor_Reference#Alpha'>If</a> <a href='#Image_Info'>Image_Info</a> <a href='#Image_Info'>is</a> <a href='#Image_Info'>set</a> <a href='#Image_Info'>to</a> <a href='SkImageInfo_Reference#kOpaque_SkAlphaType'>kOpaque_SkAlphaType</a> <a href='SkImageInfo_Reference#kOpaque_SkAlphaType'>but</a> <a href='SkImageInfo_Reference#kOpaque_SkAlphaType'>all</a> <a href='SkColor_Reference#Alpha'>alpha</a> <a href='SkColor_Reference#Alpha'>values</a> <a href='SkColor_Reference#Alpha'>are</a> <a href='SkColor_Reference#Alpha'>not</a> 1.0,
-<a href='SkColor_Reference#Alpha'>results</a> <a href='SkColor_Reference#Alpha'>are</a> <a href='SkColor_Reference#Alpha'>undefined</a>.
+Use <a href='SkImageInfo_Reference#kOpaque_SkAlphaType'>kOpaque_SkAlphaType</a> as a hint to optimize drawing when <a href='SkColor_Reference#Alpha'>Alpha</a> component
+of all <a href='undocumented#Pixel'>pixel</a> is set to its maximum value of 1.0; all <a href='SkColor_Reference#Alpha'>alpha</a> component bits are set.
+If <a href='#Image_Info'>Image_Info</a> is set to <a href='SkImageInfo_Reference#kOpaque_SkAlphaType'>kOpaque_SkAlphaType</a> but all <a href='SkColor_Reference#Alpha'>alpha</a> values are not 1.0,
+results are undefined.
### Example
-<div><fiddle-embed name="79146a1a41d58d22582fdc567c6ffe4e"><div><a href='SkColor_Reference#SkPreMultiplyARGB'>SkPreMultiplyARGB</a> <a href='SkColor_Reference#SkPreMultiplyARGB'>parameter</a> <a href='SkColor_Reference#SkPreMultiplyARGB'>a</a> <a href='SkColor_Reference#SkPreMultiplyARGB'>is</a> <a href='SkColor_Reference#SkPreMultiplyARGB'>set</a> <a href='SkColor_Reference#SkPreMultiplyARGB'>to</a> 255, <a href='SkColor_Reference#SkPreMultiplyARGB'>its</a> <a href='SkColor_Reference#SkPreMultiplyARGB'>maximum</a> <a href='SkColor_Reference#SkPreMultiplyARGB'>value</a>, <a href='SkColor_Reference#SkPreMultiplyARGB'>and</a> <a href='SkColor_Reference#SkPreMultiplyARGB'>is</a> <a href='SkColor_Reference#SkPreMultiplyARGB'>interpreted</a>
-<a href='SkColor_Reference#SkPreMultiplyARGB'>as</a> <a href='#Color_Alpha'>Color_Alpha</a> <a href='#Color_Alpha'>of</a> 1.0. <a href='SkImageInfo_Reference#kOpaque_SkAlphaType'>kOpaque_SkAlphaType</a> <a href='SkImageInfo_Reference#kOpaque_SkAlphaType'>may</a> <a href='SkImageInfo_Reference#kOpaque_SkAlphaType'>be</a> <a href='SkImageInfo_Reference#kOpaque_SkAlphaType'>set</a> <a href='SkImageInfo_Reference#kOpaque_SkAlphaType'>to</a> <a href='SkImageInfo_Reference#kOpaque_SkAlphaType'>improve</a> <a href='SkImageInfo_Reference#kOpaque_SkAlphaType'>performance</a>.
-<a href='SkImageInfo_Reference#kOpaque_SkAlphaType'>If</a> <a href='SkColor_Reference#SkPreMultiplyARGB'>SkPreMultiplyARGB</a> <a href='SkColor_Reference#SkPreMultiplyARGB'>parameter</a> <a href='SkColor_Reference#SkPreMultiplyARGB'>a</a> <a href='SkColor_Reference#SkPreMultiplyARGB'>is</a> <a href='SkColor_Reference#SkPreMultiplyARGB'>set</a> <a href='SkColor_Reference#SkPreMultiplyARGB'>to</a> <a href='SkColor_Reference#SkPreMultiplyARGB'>a</a> <a href='SkColor_Reference#SkPreMultiplyARGB'>value</a> <a href='SkColor_Reference#SkPreMultiplyARGB'>smaller</a> <a href='SkColor_Reference#SkPreMultiplyARGB'>than</a> 255,
-<a href='SkImageInfo_Reference#kPremul_SkAlphaType'>kPremul_SkAlphaType</a> <a href='SkImageInfo_Reference#kPremul_SkAlphaType'>must</a> <a href='SkImageInfo_Reference#kPremul_SkAlphaType'>be</a> <a href='SkImageInfo_Reference#kPremul_SkAlphaType'>used</a> <a href='SkImageInfo_Reference#kPremul_SkAlphaType'>instead</a> <a href='SkImageInfo_Reference#kPremul_SkAlphaType'>to</a> <a href='SkImageInfo_Reference#kPremul_SkAlphaType'>avoid</a> <a href='SkImageInfo_Reference#kPremul_SkAlphaType'>undefined</a> <a href='SkImageInfo_Reference#kPremul_SkAlphaType'>results</a>.
-<a href='SkImageInfo_Reference#kPremul_SkAlphaType'>The</a> <a href='SkImageInfo_Reference#kPremul_SkAlphaType'>four</a> <a href='SkImageInfo_Reference#kPremul_SkAlphaType'>displayed</a> <a href='SkImageInfo_Reference#kPremul_SkAlphaType'>values</a> <a href='SkImageInfo_Reference#kPremul_SkAlphaType'>are</a> <a href='SkImageInfo_Reference#kPremul_SkAlphaType'>the</a> <a href='SkImageInfo_Reference#kPremul_SkAlphaType'>original</a> <a href='SkImageInfo_Reference#kPremul_SkAlphaType'>component</a> <a href='SkImageInfo_Reference#kPremul_SkAlphaType'>values</a>, <a href='SkImageInfo_Reference#kPremul_SkAlphaType'>though</a> <a href='SkImageInfo_Reference#kPremul_SkAlphaType'>not</a> <a href='SkImageInfo_Reference#kPremul_SkAlphaType'>necessarily</a>
-<a href='SkImageInfo_Reference#kPremul_SkAlphaType'>in</a> <a href='SkImageInfo_Reference#kPremul_SkAlphaType'>the</a> <a href='SkImageInfo_Reference#kPremul_SkAlphaType'>same</a> <a href='SkImageInfo_Reference#kPremul_SkAlphaType'>order</a>.
+<div><fiddle-embed name="79146a1a41d58d22582fdc567c6ffe4e"><div><a href='SkColor_Reference#SkPreMultiplyARGB'>SkPreMultiplyARGB</a> parameter a is set to 255, its maximum value, and is interpreted
+as <a href='#Color_Alpha'>Color_Alpha</a> of 1.0. <a href='SkImageInfo_Reference#kOpaque_SkAlphaType'>kOpaque_SkAlphaType</a> may be set to improve performance.
+If <a href='SkColor_Reference#SkPreMultiplyARGB'>SkPreMultiplyARGB</a> parameter a is set to a value smaller than 255,
+<a href='SkImageInfo_Reference#kPremul_SkAlphaType'>kPremul_SkAlphaType</a> must be used instead to avoid undefined results.
+The four displayed values are the original component values, though not necessarily
+in the same order.
</div></fiddle-embed></div>
<a name='Alpha_Type_Premul'></a>
---
-Use <a href='SkImageInfo_Reference#kPremul_SkAlphaType'>kPremul_SkAlphaType</a> <a href='SkImageInfo_Reference#kPremul_SkAlphaType'>when</a> <a href='SkImageInfo_Reference#kPremul_SkAlphaType'>stored</a> <a href='SkColor_Reference#Color'>color</a> <a href='SkColor_Reference#Color'>components</a> <a href='SkColor_Reference#Color'>are</a> <a href='SkColor_Reference#Color'>the</a> <a href='SkColor_Reference#Color'>original</a> <a href='SkColor_Reference#Color'>color</a>
-<a href='SkColor_Reference#Color'>multiplied</a> <a href='SkColor_Reference#Color'>by</a> <a href='SkColor_Reference#Color'>the</a> <a href='SkColor_Reference#Alpha'>alpha</a> <a href='SkColor_Reference#Alpha'>component</a>. <a href='SkColor_Reference#Alpha'>The</a> <a href='SkColor_Reference#Alpha'>alpha</a> <a href='SkColor_Reference#Alpha'>component</a> <a href='SkColor_Reference#Alpha'>range</a> <a href='SkColor_Reference#Alpha'>of</a> 0.0 <a href='SkColor_Reference#Alpha'>to</a> 1.0 <a href='SkColor_Reference#Alpha'>is</a>
-<a href='SkColor_Reference#Alpha'>achieved</a> <a href='SkColor_Reference#Alpha'>by</a> <a href='SkColor_Reference#Alpha'>dividing</a> <a href='SkColor_Reference#Alpha'>the</a> <a href='SkColor_Reference#Alpha'>integer</a> <a href='SkColor_Reference#Alpha'>bit</a> <a href='SkColor_Reference#Alpha'>value</a> <a href='SkColor_Reference#Alpha'>by</a> <a href='SkColor_Reference#Alpha'>the</a> <a href='SkColor_Reference#Alpha'>maximum</a> <a href='SkColor_Reference#Alpha'>bit</a> <a href='SkColor_Reference#Alpha'>value</a>.
+Use <a href='SkImageInfo_Reference#kPremul_SkAlphaType'>kPremul_SkAlphaType</a> when stored <a href='SkColor_Reference#Color'>color</a> components are the original <a href='SkColor_Reference#Color'>color</a>
+multiplied by the <a href='SkColor_Reference#Alpha'>alpha</a> component. The <a href='SkColor_Reference#Alpha'>alpha</a> component range of 0.0 to 1.0 is
+achieved by dividing the integer bit value by the maximum bit value.
<pre style="padding: 1em 1em 1em 1em;width: 62.5em; background-color: #f0f0f0">
-stored <a href='SkColor_Reference#Color'>color</a> = <a href='SkColor_Reference#Color'>original</a> <a href='SkColor_Reference#Color'>color</a> * <a href='SkColor_Reference#Alpha'>alpha</a> / <a href='SkColor_Reference#Alpha'>max</a> <a href='SkColor_Reference#Alpha'>alpha </a>
+stored <a href='SkColor_Reference#Color'>color</a> = original <a href='SkColor_Reference#Color'>color</a> * <a href='SkColor_Reference#Alpha'>alpha</a> / max <a href='SkColor_Reference#Alpha'>alpha </a>
</pre>
-The <a href='SkColor_Reference#Color'>color</a> <a href='SkColor_Reference#Color'>component</a> <a href='SkColor_Reference#Color'>must</a> <a href='SkColor_Reference#Color'>be</a> <a href='SkColor_Reference#Color'>equal</a> <a href='SkColor_Reference#Color'>to</a> <a href='SkColor_Reference#Color'>or</a> <a href='SkColor_Reference#Color'>smaller</a> <a href='SkColor_Reference#Color'>than</a> <a href='SkColor_Reference#Color'>the</a> <a href='SkColor_Reference#Alpha'>alpha</a> <a href='SkColor_Reference#Alpha'>component</a>,
-<a href='SkColor_Reference#Alpha'>or</a> <a href='SkColor_Reference#Alpha'>the</a> <a href='SkColor_Reference#Alpha'>results</a> <a href='SkColor_Reference#Alpha'>are</a> <a href='SkColor_Reference#Alpha'>undefined</a>.
+The <a href='SkColor_Reference#Color'>color</a> component must be equal to or smaller than the <a href='SkColor_Reference#Alpha'>alpha</a> component,
+or the results are undefined.
### Example
-<div><fiddle-embed name="ad696b39c915803d566e96896ec3a36c"><div><a href='SkColor_Reference#SkPreMultiplyARGB'>SkPreMultiplyARGB</a> <a href='SkColor_Reference#SkPreMultiplyARGB'>parameter</a> <a href='SkColor_Reference#SkPreMultiplyARGB'>a</a> <a href='SkColor_Reference#SkPreMultiplyARGB'>is</a> <a href='SkColor_Reference#SkPreMultiplyARGB'>set</a> <a href='SkColor_Reference#SkPreMultiplyARGB'>to</a> 150, <a href='SkColor_Reference#SkPreMultiplyARGB'>less</a> <a href='SkColor_Reference#SkPreMultiplyARGB'>than</a> <a href='SkColor_Reference#SkPreMultiplyARGB'>its</a> <a href='SkColor_Reference#SkPreMultiplyARGB'>maximum</a> <a href='SkColor_Reference#SkPreMultiplyARGB'>value</a>, <a href='SkColor_Reference#SkPreMultiplyARGB'>and</a> <a href='SkColor_Reference#SkPreMultiplyARGB'>is</a>
-<a href='SkColor_Reference#SkPreMultiplyARGB'>interpreted</a> <a href='SkColor_Reference#SkPreMultiplyARGB'>as</a> <a href='#Color_Alpha'>Color_Alpha</a> <a href='#Color_Alpha'>of</a> <a href='#Color_Alpha'>about</a> 0.6. <a href='SkImageInfo_Reference#kPremul_SkAlphaType'>kPremul_SkAlphaType</a> <a href='SkImageInfo_Reference#kPremul_SkAlphaType'>must</a> <a href='SkImageInfo_Reference#kPremul_SkAlphaType'>be</a> <a href='SkImageInfo_Reference#kPremul_SkAlphaType'>set</a>, <a href='SkImageInfo_Reference#kPremul_SkAlphaType'>since</a>
-<a href='SkColor_Reference#SkPreMultiplyARGB'>SkPreMultiplyARGB</a> <a href='SkColor_Reference#SkPreMultiplyARGB'>parameter</a> <a href='SkColor_Reference#SkPreMultiplyARGB'>a</a> <a href='SkColor_Reference#SkPreMultiplyARGB'>is</a> <a href='SkColor_Reference#SkPreMultiplyARGB'>set</a> <a href='SkColor_Reference#SkPreMultiplyARGB'>to</a> <a href='SkColor_Reference#SkPreMultiplyARGB'>a</a> <a href='SkColor_Reference#SkPreMultiplyARGB'>value</a> <a href='SkColor_Reference#SkPreMultiplyARGB'>smaller</a> <a href='SkColor_Reference#SkPreMultiplyARGB'>than</a> 255,
-<a href='SkColor_Reference#SkPreMultiplyARGB'>to</a> <a href='SkColor_Reference#SkPreMultiplyARGB'>avoid</a> <a href='SkColor_Reference#SkPreMultiplyARGB'>undefined</a> <a href='SkColor_Reference#SkPreMultiplyARGB'>results</a>.
-<a href='SkColor_Reference#SkPreMultiplyARGB'>The</a> <a href='SkColor_Reference#SkPreMultiplyARGB'>four</a> <a href='SkColor_Reference#SkPreMultiplyARGB'>displayed</a> <a href='SkColor_Reference#SkPreMultiplyARGB'>values</a> <a href='SkColor_Reference#SkPreMultiplyARGB'>reflect</a> <a href='SkColor_Reference#SkPreMultiplyARGB'>that</a> <a href='SkColor_Reference#SkPreMultiplyARGB'>the</a> <a href='SkColor_Reference#Alpha'>alpha</a> <a href='SkColor_Reference#Alpha'>component</a> <a href='SkColor_Reference#Alpha'>has</a> <a href='SkColor_Reference#Alpha'>been</a> <a href='SkColor_Reference#Alpha'>multiplied</a>
-<a href='SkColor_Reference#Alpha'>by</a> <a href='SkColor_Reference#Alpha'>the</a> <a href='SkColor_Reference#Alpha'>original</a> <a href='SkColor_Reference#Color'>color</a>.
+<div><fiddle-embed name="ad696b39c915803d566e96896ec3a36c"><div><a href='SkColor_Reference#SkPreMultiplyARGB'>SkPreMultiplyARGB</a> parameter a is set to 150, less than its maximum value, and is
+interpreted as <a href='#Color_Alpha'>Color_Alpha</a> of about 0.6. <a href='SkImageInfo_Reference#kPremul_SkAlphaType'>kPremul_SkAlphaType</a> must be set, since
+<a href='SkColor_Reference#SkPreMultiplyARGB'>SkPreMultiplyARGB</a> parameter a is set to a value smaller than 255,
+to avoid undefined results.
+The four displayed values reflect that the <a href='SkColor_Reference#Alpha'>alpha</a> component has been multiplied
+by the original <a href='SkColor_Reference#Color'>color</a>.
</div></fiddle-embed></div>
<a name='Alpha_Type_Unpremul'></a>
---
-Use <a href='SkImageInfo_Reference#kUnpremul_SkAlphaType'>kUnpremul_SkAlphaType</a> <a href='SkImageInfo_Reference#kUnpremul_SkAlphaType'>if</a> <a href='SkImageInfo_Reference#kUnpremul_SkAlphaType'>stored</a> <a href='SkColor_Reference#Color'>color</a> <a href='SkColor_Reference#Color'>components</a> <a href='SkColor_Reference#Color'>are</a> <a href='SkColor_Reference#Color'>not</a> <a href='SkColor_Reference#Color'>divided</a> <a href='SkColor_Reference#Color'>by</a> <a href='SkColor_Reference#Color'>the</a>
-<a href='SkColor_Reference#Alpha'>alpha</a> <a href='SkColor_Reference#Alpha'>component</a>. <a href='SkColor_Reference#Alpha'>Some</a> <a href='SkColor_Reference#Alpha'>drawing</a> <a href='SkColor_Reference#Alpha'>destinations</a> <a href='SkColor_Reference#Alpha'>may</a> <a href='SkColor_Reference#Alpha'>not</a> <a href='SkColor_Reference#Alpha'>support</a>
+Use <a href='SkImageInfo_Reference#kUnpremul_SkAlphaType'>kUnpremul_SkAlphaType</a> if stored <a href='SkColor_Reference#Color'>color</a> components are not divided by the
+<a href='SkColor_Reference#Alpha'>alpha</a> component. Some drawing destinations may not support
<a href='SkImageInfo_Reference#kUnpremul_SkAlphaType'>kUnpremul_SkAlphaType</a>.
### Example
-<div><fiddle-embed name="b8216a9e5ff5bc61a0e46eba7d36307b"><div><a href='SkColor_Reference#SkColorSetARGB'>SkColorSetARGB</a> <a href='SkColor_Reference#SkColorSetARGB'>parameter</a> <a href='SkColor_Reference#SkColorSetARGB'>a</a> <a href='SkColor_Reference#SkColorSetARGB'>is</a> <a href='SkColor_Reference#SkColorSetARGB'>set</a> <a href='SkColor_Reference#SkColorSetARGB'>to</a> 150, <a href='SkColor_Reference#SkColorSetARGB'>less</a> <a href='SkColor_Reference#SkColorSetARGB'>than</a> <a href='SkColor_Reference#SkColorSetARGB'>its</a> <a href='SkColor_Reference#SkColorSetARGB'>maximum</a> <a href='SkColor_Reference#SkColorSetARGB'>value</a>, <a href='SkColor_Reference#SkColorSetARGB'>and</a> <a href='SkColor_Reference#SkColorSetARGB'>is</a>
-<a href='SkColor_Reference#SkColorSetARGB'>interpreted</a> <a href='SkColor_Reference#SkColorSetARGB'>as</a> <a href='#Color_Alpha'>Color_Alpha</a> <a href='#Color_Alpha'>of</a> <a href='#Color_Alpha'>about</a> 0.6. <a href='SkColor_Reference#Color'>color</a> <a href='SkColor_Reference#Color'>is</a> <a href='SkColor_Reference#Color'>not</a> <a href='undocumented#Premultiply'>Premultiplied</a>;
-<a href='SkColor_Reference#Color'>color</a> <a href='SkColor_Reference#Color'>components</a> <a href='SkColor_Reference#Color'>may</a> <a href='SkColor_Reference#Color'>have</a> <a href='SkColor_Reference#Color'>values</a> <a href='SkColor_Reference#Color'>greater</a> <a href='SkColor_Reference#Color'>than</a> <a href='SkColor_Reference#Color'>color alpha</a>.
-<a href='SkColor_Reference#Color'>The</a> <a href='SkColor_Reference#Color'>four</a> <a href='SkColor_Reference#Color'>displayed</a> <a href='SkColor_Reference#Color'>values</a> <a href='SkColor_Reference#Color'>are</a> <a href='SkColor_Reference#Color'>the</a> <a href='SkColor_Reference#Color'>original</a> <a href='SkColor_Reference#Color'>component</a> <a href='SkColor_Reference#Color'>values</a>, <a href='SkColor_Reference#Color'>though</a> <a href='SkColor_Reference#Color'>not</a> <a href='SkColor_Reference#Color'>necessarily</a>
-<a href='SkColor_Reference#Color'>in</a> <a href='SkColor_Reference#Color'>the</a> <a href='SkColor_Reference#Color'>same</a> <a href='SkColor_Reference#Color'>order</a>.
+<div><fiddle-embed name="b8216a9e5ff5bc61a0e46eba7d36307b"><div><a href='SkColor_Reference#SkColorSetARGB'>SkColorSetARGB</a> parameter a is set to 150, less than its maximum value, and is
+interpreted as <a href='#Color_Alpha'>Color_Alpha</a> of about 0.6. <a href='SkColor_Reference#Color'>color</a> is not <a href='undocumented#Premultiply'>Premultiplied</a>;
+<a href='SkColor_Reference#Color'>color</a> components may have values greater than <a href='SkColor_Reference#Color'>color alpha</a>.
+The four displayed values are the original component values, though not necessarily
+in the same order.
</div></fiddle-embed></div>
<a name='SkAlphaTypeIsOpaque'></a>
@@ -213,13 +213,13 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-static inline bool <a href='SkImageInfo_Reference#SkAlphaTypeIsOpaque'>SkAlphaTypeIsOpaque</a>(<a href='SkImageInfo_Reference#SkAlphaType'>SkAlphaType</a> <a href='SkImageInfo_Reference#SkAlphaType'>at</a>)
+static inline bool <a href='SkImageInfo_Reference#SkAlphaTypeIsOpaque'>SkAlphaTypeIsOpaque</a>(<a href='SkImageInfo_Reference#SkAlphaType'>SkAlphaType</a> at)
</pre>
-Returns true if <a href='SkImageInfo_Reference#SkAlphaType'>SkAlphaType</a> <a href='SkImageInfo_Reference#SkAlphaType'>equals</a> <a href='SkImageInfo_Reference#kOpaque_SkAlphaType'>kOpaque_SkAlphaType</a>. <a href='SkImageInfo_Reference#kOpaque_SkAlphaType'>kOpaque_SkAlphaType</a> <a href='SkImageInfo_Reference#kOpaque_SkAlphaType'>is</a> <a href='SkImageInfo_Reference#kOpaque_SkAlphaType'>a</a>
-hint that the <a href='SkImageInfo_Reference#SkColorType'>SkColorType</a> <a href='SkImageInfo_Reference#SkColorType'>is</a> <a href='SkImageInfo_Reference#SkColorType'>opaque</a>, <a href='SkImageInfo_Reference#SkColorType'>or</a> <a href='SkImageInfo_Reference#SkColorType'>that</a> <a href='SkImageInfo_Reference#SkColorType'>all</a> <a href='SkColor_Reference#Alpha'>alpha</a> <a href='SkColor_Reference#Alpha'>values</a> <a href='SkColor_Reference#Alpha'>are</a> <a href='SkColor_Reference#Alpha'>set</a> <a href='SkColor_Reference#Alpha'>to</a>
-their 1.0 equivalent. If <a href='SkImageInfo_Reference#SkAlphaType'>SkAlphaType</a> <a href='SkImageInfo_Reference#SkAlphaType'>is</a> <a href='SkImageInfo_Reference#kOpaque_SkAlphaType'>kOpaque_SkAlphaType</a>, <a href='SkImageInfo_Reference#kOpaque_SkAlphaType'>and</a> <a href='SkImageInfo_Reference#SkColorType'>SkColorType</a> <a href='SkImageInfo_Reference#SkColorType'>is</a> <a href='SkImageInfo_Reference#SkColorType'>not</a>
-opaque, then the result of drawing any <a href='undocumented#Pixel'>pixel</a> <a href='undocumented#Pixel'>with</a> <a href='undocumented#Pixel'>a</a> <a href='SkColor_Reference#Alpha'>alpha</a> <a href='SkColor_Reference#Alpha'>value</a> <a href='SkColor_Reference#Alpha'>less</a> <a href='SkColor_Reference#Alpha'>than</a>
+Returns true if <a href='SkImageInfo_Reference#SkAlphaType'>SkAlphaType</a> equals <a href='SkImageInfo_Reference#kOpaque_SkAlphaType'>kOpaque_SkAlphaType</a>. <a href='SkImageInfo_Reference#kOpaque_SkAlphaType'>kOpaque_SkAlphaType</a> is a
+hint that the <a href='SkImageInfo_Reference#SkColorType'>SkColorType</a> is opaque, or that all <a href='SkColor_Reference#Alpha'>alpha</a> values are set to
+their 1.0 equivalent. If <a href='SkImageInfo_Reference#SkAlphaType'>SkAlphaType</a> is <a href='SkImageInfo_Reference#kOpaque_SkAlphaType'>kOpaque_SkAlphaType</a>, and <a href='SkImageInfo_Reference#SkColorType'>SkColorType</a> is not
+opaque, then the result of drawing any <a href='undocumented#Pixel'>pixel</a> with a <a href='SkColor_Reference#Alpha'>alpha</a> value less than
1.0 is undefined.
### Parameters
@@ -234,7 +234,7 @@
### Return Value
-true if <a href='#SkAlphaTypeIsOpaque_at'>at</a> <a href='#SkAlphaTypeIsOpaque_at'>equals</a> <a href='SkImageInfo_Reference#kOpaque_SkAlphaType'>kOpaque_SkAlphaType</a>
+true if <a href='#SkAlphaTypeIsOpaque_at'>at</a> equals <a href='SkImageInfo_Reference#kOpaque_SkAlphaType'>kOpaque_SkAlphaType</a>
<a name='Color_Type'></a>
@@ -262,12 +262,12 @@
};
</pre>
-Describes how <a href='undocumented#Pixel'>pixel</a> <a href='undocumented#Pixel'>bits</a> <a href='undocumented#Pixel'>encode</a> <a href='SkColor_Reference#Color'>color</a>. <a href='SkColor_Reference#Color'>A</a> <a href='undocumented#Pixel'>pixel</a> <a href='undocumented#Pixel'>may</a> <a href='undocumented#Pixel'>be</a> <a href='undocumented#Pixel'>an</a> <a href='SkColor_Reference#Alpha'>alpha</a> <a href='SkColor_Reference#Alpha'>mask</a>, <a href='SkColor_Reference#Alpha'>a</a>
-<a href='SkColor_Reference#Alpha'>grayscale</a>, <a href='SkColor_Reference#Alpha'>RGB</a>, <a href='SkColor_Reference#Alpha'>or</a> <a href='SkColor_Reference#Alpha'>ARGB</a>.
+Describes how <a href='undocumented#Pixel'>pixel</a> bits encode <a href='SkColor_Reference#Color'>color</a>. A <a href='undocumented#Pixel'>pixel</a> may be an <a href='SkColor_Reference#Alpha'>alpha</a> mask, a
+grayscale, RGB, or ARGB.
-<a href='SkImageInfo_Reference#kN32_SkColorType'>kN32_SkColorType</a> <a href='SkImageInfo_Reference#kN32_SkColorType'>selects</a> <a href='SkImageInfo_Reference#kN32_SkColorType'>the</a> <a href='SkImageInfo_Reference#kN32_SkColorType'>native</a> 32-<a href='SkImageInfo_Reference#kN32_SkColorType'>bit</a> <a href='SkImageInfo_Reference#kN32_SkColorType'>ARGB</a> <a href='SkImageInfo_Reference#kN32_SkColorType'>format</a>. <a href='SkImageInfo_Reference#kN32_SkColorType'>On</a> <a href='#Little_Endian'>Little_Endian</a>
-<a href='#Little_Endian'>processors</a>, <a href='#Little_Endian'>pixels</a> <a href='#Little_Endian'>containing</a> 8-<a href='#Little_Endian'>bit</a> <a href='#Little_Endian'>ARGB</a> <a href='#Little_Endian'>components</a> <a href='#Little_Endian'>pack</a> <a href='#Little_Endian'>into</a> 32-<a href='#Little_Endian'>bit</a>
-<a href='SkImageInfo_Reference#kBGRA_8888_SkColorType'>kBGRA_8888_SkColorType</a>. <a href='SkImageInfo_Reference#kBGRA_8888_SkColorType'>On</a> <a href='#Big_Endian'>Big_Endian</a> <a href='#Big_Endian'>processors</a>, <a href='#Big_Endian'>pixels</a> <a href='#Big_Endian'>pack</a> <a href='#Big_Endian'>into</a> 32-<a href='#Big_Endian'>bit</a>
+<a href='SkImageInfo_Reference#kN32_SkColorType'>kN32_SkColorType</a> selects the native 32-bit ARGB format. On <a href='#Little_Endian'>Little_Endian</a>
+processors, pixels containing 8-bit ARGB components pack into 32-bit
+<a href='SkImageInfo_Reference#kBGRA_8888_SkColorType'>kBGRA_8888_SkColorType</a>. On <a href='#Big_Endian'>Big_Endian</a> processors, pixels pack into 32-bit
<a href='SkImageInfo_Reference#kRGBA_8888_SkColorType'>kRGBA_8888_SkColorType</a>.
### Constants
@@ -282,8 +282,8 @@
<td style='text-align: center; border: 2px solid #dddddd; padding: 8px; '>0</td>
<td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '></td>
<td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>
-<a href='#Image_Info_Color_Type'>Color_Type</a> <a href='#Image_Info_Color_Type'>is</a> <a href='#Image_Info_Color_Type'>set</a> <a href='#Image_Info_Color_Type'>to</a> <a href='SkImageInfo_Reference#kUnknown_SkColorType'>kUnknown_SkColorType</a> <a href='SkImageInfo_Reference#kUnknown_SkColorType'>by</a> <a href='SkImageInfo_Reference#kUnknown_SkColorType'>default</a>. <a href='SkImageInfo_Reference#kUnknown_SkColorType'>If</a> <a href='SkImageInfo_Reference#kUnknown_SkColorType'>set</a>,
-<a href='SkImageInfo_Reference#kUnknown_SkColorType'>encoding</a> <a href='SkImageInfo_Reference#kUnknown_SkColorType'>format</a> <a href='SkImageInfo_Reference#kUnknown_SkColorType'>and</a> <a href='undocumented#Size'>size</a> <a href='undocumented#Size'>is</a> <a href='undocumented#Size'>unknown</a>.
+<a href='#Image_Info_Color_Type'>Color_Type</a> is set to <a href='SkImageInfo_Reference#kUnknown_SkColorType'>kUnknown_SkColorType</a> by default. If set,
+encoding format and <a href='undocumented#Size'>size</a> is unknown.
</td>
</tr>
<tr>
@@ -291,8 +291,8 @@
<td style='text-align: center; border: 2px solid #dddddd; padding: 8px; '>1</td>
<td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a href='#Alpha_8'>Alpha 8</a> </td>
<td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>
-Stores 8-bit byte <a href='undocumented#Pixel'>pixel</a> <a href='undocumented#Pixel'>encoding</a> <a href='undocumented#Pixel'>that</a> <a href='undocumented#Pixel'>represents</a> <a href='undocumented#Pixel'>transparency</a>. <a href='undocumented#Pixel'>Value</a> <a href='undocumented#Pixel'>of</a> <a href='undocumented#Pixel'>zero</a>
-<a href='undocumented#Pixel'>is</a> <a href='undocumented#Pixel'>completely</a> <a href='undocumented#Pixel'>transparent</a>; <a href='undocumented#Pixel'>a</a> <a href='undocumented#Pixel'>value</a> <a href='undocumented#Pixel'>of</a> 255 <a href='undocumented#Pixel'>is</a> <a href='undocumented#Pixel'>completely</a> <a href='undocumented#Pixel'>opaque</a>.
+Stores 8-bit byte <a href='undocumented#Pixel'>pixel</a> encoding that represents transparency. Value of zero
+is completely transparent; a value of 255 is completely opaque.
</td>
</tr>
<tr style='background-color: #f0f0f0; '>
@@ -300,8 +300,8 @@
<td style='text-align: center; border: 2px solid #dddddd; padding: 8px; '>2</td>
<td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a href='#RGB_565'>RGB 565</a> </td>
<td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>
-Stores 16-bit word <a href='undocumented#Pixel'>pixel</a> <a href='undocumented#Pixel'>encoding</a> <a href='undocumented#Pixel'>that</a> <a href='undocumented#Pixel'>contains</a> <a href='undocumented#Pixel'>five</a> <a href='undocumented#Pixel'>bits</a> <a href='undocumented#Pixel'>of</a> <a href='undocumented#Pixel'>blue</a>,
-<a href='undocumented#Pixel'>six</a> <a href='undocumented#Pixel'>bits</a> <a href='undocumented#Pixel'>of</a> <a href='undocumented#Pixel'>green</a>, <a href='undocumented#Pixel'>and</a> <a href='undocumented#Pixel'>five</a> <a href='undocumented#Pixel'>bits</a> <a href='undocumented#Pixel'>of</a> <a href='undocumented#Pixel'>red</a>.
+Stores 16-bit word <a href='undocumented#Pixel'>pixel</a> encoding that contains five bits of blue,
+six bits of green, and five bits of red.
</td>
</tr>
<tr>
@@ -309,8 +309,8 @@
<td style='text-align: center; border: 2px solid #dddddd; padding: 8px; '>3</td>
<td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a href='#ARGB_4444'>ARGB 4444</a> </td>
<td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>
-Stores 16-bit word <a href='undocumented#Pixel'>pixel</a> <a href='undocumented#Pixel'>encoding</a> <a href='undocumented#Pixel'>that</a> <a href='undocumented#Pixel'>contains</a> <a href='undocumented#Pixel'>four</a> <a href='undocumented#Pixel'>bits</a> <a href='undocumented#Pixel'>of</a> <a href='SkColor_Reference#Alpha'>alpha</a>,
-<a href='SkColor_Reference#Alpha'>four</a> <a href='SkColor_Reference#Alpha'>bits</a> <a href='SkColor_Reference#Alpha'>of</a> <a href='SkColor_Reference#Alpha'>blue</a>, <a href='SkColor_Reference#Alpha'>four</a> <a href='SkColor_Reference#Alpha'>bits</a> <a href='SkColor_Reference#Alpha'>of</a> <a href='SkColor_Reference#Alpha'>green</a>, <a href='SkColor_Reference#Alpha'>and</a> <a href='SkColor_Reference#Alpha'>four</a> <a href='SkColor_Reference#Alpha'>bits</a> <a href='SkColor_Reference#Alpha'>of</a> <a href='SkColor_Reference#Alpha'>red</a>.
+Stores 16-bit word <a href='undocumented#Pixel'>pixel</a> encoding that contains four bits of <a href='SkColor_Reference#Alpha'>alpha</a>,
+four bits of blue, four bits of green, and four bits of red.
</td>
</tr>
<tr style='background-color: #f0f0f0; '>
@@ -318,8 +318,8 @@
<td style='text-align: center; border: 2px solid #dddddd; padding: 8px; '>4</td>
<td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a href='#RGBA_8888'>RGBA 8888</a> </td>
<td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>
-Stores 32-bit word <a href='undocumented#Pixel'>pixel</a> <a href='undocumented#Pixel'>encoding</a> <a href='undocumented#Pixel'>that</a> <a href='undocumented#Pixel'>contains</a> <a href='undocumented#Pixel'>eight</a> <a href='undocumented#Pixel'>bits</a> <a href='undocumented#Pixel'>of</a> <a href='undocumented#Pixel'>red</a>,
-<a href='undocumented#Pixel'>eight</a> <a href='undocumented#Pixel'>bits</a> <a href='undocumented#Pixel'>of</a> <a href='undocumented#Pixel'>green</a>, <a href='undocumented#Pixel'>eight</a> <a href='undocumented#Pixel'>bits</a> <a href='undocumented#Pixel'>of</a> <a href='undocumented#Pixel'>blue</a>, <a href='undocumented#Pixel'>and</a> <a href='undocumented#Pixel'>eight</a> <a href='undocumented#Pixel'>bits</a> <a href='undocumented#Pixel'>of</a> <a href='SkColor_Reference#Alpha'>alpha</a>.
+Stores 32-bit word <a href='undocumented#Pixel'>pixel</a> encoding that contains eight bits of red,
+eight bits of green, eight bits of blue, and eight bits of <a href='SkColor_Reference#Alpha'>alpha</a>.
</td>
</tr>
<tr>
@@ -327,8 +327,8 @@
<td style='text-align: center; border: 2px solid #dddddd; padding: 8px; '>5</td>
<td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a href='#RGB_888'>RGB 888</a> </td>
<td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>
-Stores 32-bit word <a href='undocumented#Pixel'>pixel</a> <a href='undocumented#Pixel'>encoding</a> <a href='undocumented#Pixel'>that</a> <a href='undocumented#Pixel'>contains</a> <a href='undocumented#Pixel'>eight</a> <a href='undocumented#Pixel'>bits</a> <a href='undocumented#Pixel'>of</a> <a href='undocumented#Pixel'>red</a>,
-<a href='undocumented#Pixel'>eight</a> <a href='undocumented#Pixel'>bits</a> <a href='undocumented#Pixel'>of</a> <a href='undocumented#Pixel'>green</a>, <a href='undocumented#Pixel'>eight</a> <a href='undocumented#Pixel'>bits</a> <a href='undocumented#Pixel'>of</a> <a href='undocumented#Pixel'>blue</a>, <a href='undocumented#Pixel'>and</a> <a href='undocumented#Pixel'>eight</a> <a href='undocumented#Pixel'>unused</a> <a href='undocumented#Pixel'>bits</a>.
+Stores 32-bit word <a href='undocumented#Pixel'>pixel</a> encoding that contains eight bits of red,
+eight bits of green, eight bits of blue, and eight unused bits.
</td>
</tr>
<tr style='background-color: #f0f0f0; '>
@@ -336,8 +336,8 @@
<td style='text-align: center; border: 2px solid #dddddd; padding: 8px; '>6</td>
<td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a href='#BGRA_8888'>BGRA 8888</a> </td>
<td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>
-Stores 32-bit word <a href='undocumented#Pixel'>pixel</a> <a href='undocumented#Pixel'>encoding</a> <a href='undocumented#Pixel'>that</a> <a href='undocumented#Pixel'>contains</a> <a href='undocumented#Pixel'>eight</a> <a href='undocumented#Pixel'>bits</a> <a href='undocumented#Pixel'>of</a> <a href='undocumented#Pixel'>blue</a>,
-<a href='undocumented#Pixel'>eight</a> <a href='undocumented#Pixel'>bits</a> <a href='undocumented#Pixel'>of</a> <a href='undocumented#Pixel'>green</a>, <a href='undocumented#Pixel'>eight</a> <a href='undocumented#Pixel'>bits</a> <a href='undocumented#Pixel'>of</a> <a href='undocumented#Pixel'>red</a>, <a href='undocumented#Pixel'>and</a> <a href='undocumented#Pixel'>eight</a> <a href='undocumented#Pixel'>bits</a> <a href='undocumented#Pixel'>of</a> <a href='SkColor_Reference#Alpha'>alpha</a>.
+Stores 32-bit word <a href='undocumented#Pixel'>pixel</a> encoding that contains eight bits of blue,
+eight bits of green, eight bits of red, and eight bits of <a href='SkColor_Reference#Alpha'>alpha</a>.
</td>
</tr>
<tr>
@@ -345,8 +345,8 @@
<td style='text-align: center; border: 2px solid #dddddd; padding: 8px; '>7</td>
<td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a href='#RGBA_1010102'>RGBA 1010102</a> </td>
<td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>
-Stores 32-bit word <a href='undocumented#Pixel'>pixel</a> <a href='undocumented#Pixel'>encoding</a> <a href='undocumented#Pixel'>that</a> <a href='undocumented#Pixel'>contains</a> <a href='undocumented#Pixel'>ten</a> <a href='undocumented#Pixel'>bits</a> <a href='undocumented#Pixel'>of</a> <a href='undocumented#Pixel'>red</a>,
-<a href='undocumented#Pixel'>ten</a> <a href='undocumented#Pixel'>bits</a> <a href='undocumented#Pixel'>of</a> <a href='undocumented#Pixel'>green</a>, <a href='undocumented#Pixel'>ten</a> <a href='undocumented#Pixel'>bits</a> <a href='undocumented#Pixel'>of</a> <a href='undocumented#Pixel'>blue</a>, <a href='undocumented#Pixel'>and</a> <a href='undocumented#Pixel'>two</a> <a href='undocumented#Pixel'>bits</a> <a href='undocumented#Pixel'>of</a> <a href='SkColor_Reference#Alpha'>alpha</a>.
+Stores 32-bit word <a href='undocumented#Pixel'>pixel</a> encoding that contains ten bits of red,
+ten bits of green, ten bits of blue, and two bits of <a href='SkColor_Reference#Alpha'>alpha</a>.
</td>
</tr>
<tr style='background-color: #f0f0f0; '>
@@ -354,8 +354,8 @@
<td style='text-align: center; border: 2px solid #dddddd; padding: 8px; '>8</td>
<td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a href='#RGB_101010'>RGB 101010</a> </td>
<td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>
-Stores 32-bit word <a href='undocumented#Pixel'>pixel</a> <a href='undocumented#Pixel'>encoding</a> <a href='undocumented#Pixel'>that</a> <a href='undocumented#Pixel'>contains</a> <a href='undocumented#Pixel'>ten</a> <a href='undocumented#Pixel'>bits</a> <a href='undocumented#Pixel'>of</a> <a href='undocumented#Pixel'>red</a>,
-<a href='undocumented#Pixel'>ten</a> <a href='undocumented#Pixel'>bits</a> <a href='undocumented#Pixel'>of</a> <a href='undocumented#Pixel'>green</a>, <a href='undocumented#Pixel'>ten</a> <a href='undocumented#Pixel'>bits</a> <a href='undocumented#Pixel'>of</a> <a href='undocumented#Pixel'>blue</a>, <a href='undocumented#Pixel'>and</a> <a href='undocumented#Pixel'>two</a> <a href='undocumented#Pixel'>unused</a> <a href='undocumented#Pixel'>bits</a>.
+Stores 32-bit word <a href='undocumented#Pixel'>pixel</a> encoding that contains ten bits of red,
+ten bits of green, ten bits of blue, and two unused bits.
</td>
</tr>
<tr>
@@ -363,8 +363,8 @@
<td style='text-align: center; border: 2px solid #dddddd; padding: 8px; '>9</td>
<td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a href='#Gray_8'>Gray 8</a> </td>
<td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>
-Stores 8-bit byte <a href='undocumented#Pixel'>pixel</a> <a href='undocumented#Pixel'>encoding</a> <a href='undocumented#Pixel'>that</a> <a href='undocumented#Pixel'>equivalent</a> <a href='undocumented#Pixel'>to</a> <a href='undocumented#Pixel'>equal</a> <a href='undocumented#Pixel'>values</a> <a href='undocumented#Pixel'>for</a> <a href='undocumented#Pixel'>red</a>,
-<a href='undocumented#Pixel'>blue</a>, <a href='undocumented#Pixel'>and</a> <a href='undocumented#Pixel'>green</a>, <a href='undocumented#Pixel'>representing</a> <a href='undocumented#Pixel'>colors</a> <a href='undocumented#Pixel'>from</a> <a href='undocumented#Pixel'>black</a> <a href='undocumented#Pixel'>to</a> <a href='undocumented#Pixel'>white</a>.
+Stores 8-bit byte <a href='undocumented#Pixel'>pixel</a> encoding that equivalent to equal values for red,
+blue, and green, representing colors from black to white.
</td>
</tr>
<tr style='background-color: #f0f0f0; '>
@@ -372,9 +372,9 @@
<td style='text-align: center; border: 2px solid #dddddd; padding: 8px; '>10</td>
<td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a href='#RGBA_F16'>RGBA F16</a> </td>
<td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>
-Stores 64-bit word <a href='undocumented#Pixel'>pixel</a> <a href='undocumented#Pixel'>encoding</a> <a href='undocumented#Pixel'>that</a> <a href='undocumented#Pixel'>contains</a> 16 <a href='undocumented#Pixel'>bits</a> <a href='undocumented#Pixel'>of</a> <a href='undocumented#Pixel'>blue</a>,
-16 <a href='undocumented#Pixel'>bits</a> <a href='undocumented#Pixel'>of</a> <a href='undocumented#Pixel'>green</a>, 16 <a href='undocumented#Pixel'>bits</a> <a href='undocumented#Pixel'>of</a> <a href='undocumented#Pixel'>red</a>, <a href='undocumented#Pixel'>and</a> 16 <a href='undocumented#Pixel'>bits</a> <a href='undocumented#Pixel'>of</a> <a href='SkColor_Reference#Alpha'>alpha</a>. <a href='SkColor_Reference#Alpha'>Each</a> <a href='SkColor_Reference#Alpha'>component</a>
-<a href='SkColor_Reference#Alpha'>is</a> <a href='SkColor_Reference#Alpha'>encoded</a> <a href='SkColor_Reference#Alpha'>as</a> <a href='SkColor_Reference#Alpha'>a</a> <a href='SkColor_Reference#Alpha'>half</a> <a href='SkColor_Reference#Alpha'>float</a>.
+Stores 64-bit word <a href='undocumented#Pixel'>pixel</a> encoding that contains 16 bits of blue,
+16 bits of green, 16 bits of red, and 16 bits of <a href='SkColor_Reference#Alpha'>alpha</a>. Each component
+is encoded as a half float.
</td>
</tr>
<tr>
@@ -382,9 +382,9 @@
<td style='text-align: center; border: 2px solid #dddddd; padding: 8px; '>11</td>
<td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a href='#RGBA_F32'>RGBA F32</a> </td>
<td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>
-Stores 128-bit word <a href='undocumented#Pixel'>pixel</a> <a href='undocumented#Pixel'>encoding</a> <a href='undocumented#Pixel'>that</a> <a href='undocumented#Pixel'>contains</a> 32 <a href='undocumented#Pixel'>bits</a> <a href='undocumented#Pixel'>of</a> <a href='undocumented#Pixel'>blue</a>,
-32 <a href='undocumented#Pixel'>bits</a> <a href='undocumented#Pixel'>of</a> <a href='undocumented#Pixel'>green</a>, 32 <a href='undocumented#Pixel'>bits</a> <a href='undocumented#Pixel'>of</a> <a href='undocumented#Pixel'>red</a>, <a href='undocumented#Pixel'>and</a> 32 <a href='undocumented#Pixel'>bits</a> <a href='undocumented#Pixel'>of</a> <a href='SkColor_Reference#Alpha'>alpha</a>. <a href='SkColor_Reference#Alpha'>Each</a> <a href='SkColor_Reference#Alpha'>component</a>
-<a href='SkColor_Reference#Alpha'>is</a> <a href='SkColor_Reference#Alpha'>encoded</a> <a href='SkColor_Reference#Alpha'>as</a> <a href='SkColor_Reference#Alpha'>a</a> <a href='SkColor_Reference#Alpha'>single</a> <a href='SkColor_Reference#Alpha'>precision</a> <a href='SkColor_Reference#Alpha'>float</a>.
+Stores 128-bit word <a href='undocumented#Pixel'>pixel</a> encoding that contains 32 bits of blue,
+32 bits of green, 32 bits of red, and 32 bits of <a href='SkColor_Reference#Alpha'>alpha</a>. Each component
+is encoded as a single precision float.
</td>
</tr>
<tr style='background-color: #f0f0f0; '>
@@ -400,8 +400,8 @@
<td style='text-align: center; border: 2px solid #dddddd; padding: 8px; '>4 or 6</td>
<td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '></td>
<td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>
-Encodes ARGB as either <a href='SkImageInfo_Reference#kRGBA_8888_SkColorType'>kRGBA_8888_SkColorType</a> <a href='SkImageInfo_Reference#kRGBA_8888_SkColorType'>or</a>
-<a href='SkImageInfo_Reference#kBGRA_8888_SkColorType'>kBGRA_8888_SkColorType</a>, <a href='SkImageInfo_Reference#kBGRA_8888_SkColorType'>whichever</a> <a href='SkImageInfo_Reference#kBGRA_8888_SkColorType'>is</a> <a href='SkImageInfo_Reference#kBGRA_8888_SkColorType'>native</a> <a href='SkImageInfo_Reference#kBGRA_8888_SkColorType'>to</a> <a href='SkImageInfo_Reference#kBGRA_8888_SkColorType'>the</a> <a href='SkImageInfo_Reference#kBGRA_8888_SkColorType'>platform</a>.
+Encodes ARGB as either <a href='SkImageInfo_Reference#kRGBA_8888_SkColorType'>kRGBA_8888_SkColorType</a> or
+<a href='SkImageInfo_Reference#kBGRA_8888_SkColorType'>kBGRA_8888_SkColorType</a>, whichever is native to the platform.
</td>
</tr>
</table>
@@ -414,16 +414,16 @@
---
-<a href='SkColor_Reference#Alpha'>Alpha</a> <a href='SkColor_Reference#Alpha'>pixels</a> <a href='SkColor_Reference#Alpha'>encode</a> <a href='SkColor_Reference#Alpha'>transparency</a> <a href='SkColor_Reference#Alpha'>without</a> <a href='SkColor_Reference#Color'>color</a> <a href='SkColor_Reference#Color'>information</a>. <a href='SkColor_Reference#Color'>Value</a> <a href='SkColor_Reference#Color'>of</a> <a href='SkColor_Reference#Color'>zero</a> <a href='SkColor_Reference#Color'>is</a>
-<a href='SkColor_Reference#Color'>completely</a> <a href='SkColor_Reference#Color'>transparent</a>; <a href='SkColor_Reference#Color'>a</a> <a href='SkColor_Reference#Color'>value</a> <a href='SkColor_Reference#Color'>of</a> 255 <a href='SkColor_Reference#Color'>is</a> <a href='SkColor_Reference#Color'>completely</a> <a href='SkColor_Reference#Color'>opaque</a>. <a href='SkBitmap_Reference#Bitmap'>Bitmap</a>
-<a href='SkBitmap_Reference#Bitmap'>pixels</a> <a href='SkBitmap_Reference#Bitmap'>do</a> <a href='SkBitmap_Reference#Bitmap'>not</a> <a href='SkBitmap_Reference#Bitmap'>visibly</a> <a href='SkBitmap_Reference#Bitmap'>draw</a>, <a href='SkBitmap_Reference#Bitmap'>because</a> <a href='SkBitmap_Reference#Bitmap'>its</a> <a href='SkBitmap_Reference#Bitmap'>pixels</a> <a href='SkBitmap_Reference#Bitmap'>have</a> <a href='SkBitmap_Reference#Bitmap'>no</a> <a href='SkColor_Reference#Color'>color</a> <a href='SkColor_Reference#Color'>information</a>.
-<a href='SkColor_Reference#Color'>When</a> <a href='SkImageInfo_Reference#SkColorType'>SkColorType</a> <a href='SkImageInfo_Reference#SkColorType'>is</a> <a href='SkImageInfo_Reference#SkColorType'>set</a> <a href='SkImageInfo_Reference#SkColorType'>to</a> <a href='SkImageInfo_Reference#kAlpha_8_SkColorType'>kAlpha_8_SkColorType</a>, <a href='SkImageInfo_Reference#kAlpha_8_SkColorType'>the</a> <a href='SkImageInfo_Reference#kAlpha_8_SkColorType'>paired</a> <a href='SkImageInfo_Reference#SkAlphaType'>SkAlphaType</a> <a href='SkImageInfo_Reference#SkAlphaType'>is</a>
-<a href='SkImageInfo_Reference#SkAlphaType'>ignored</a>.
+<a href='SkColor_Reference#Alpha'>Alpha</a> pixels encode transparency without <a href='SkColor_Reference#Color'>color</a> information. Value of zero is
+completely transparent; a value of 255 is completely opaque. <a href='SkBitmap_Reference#Bitmap'>Bitmap</a>
+pixels do not visibly draw, because its pixels have no <a href='SkColor_Reference#Color'>color</a> information.
+When <a href='SkImageInfo_Reference#SkColorType'>SkColorType</a> is set to <a href='SkImageInfo_Reference#kAlpha_8_SkColorType'>kAlpha_8_SkColorType</a>, the paired <a href='SkImageInfo_Reference#SkAlphaType'>SkAlphaType</a> is
+ignored.
### Example
-<div><fiddle-embed name="21ae21e4ce53d2018e042dd457997300"><div><a href='SkColor_Reference#Alpha'>Alpha</a> <a href='SkColor_Reference#Alpha'>pixels</a> <a href='SkColor_Reference#Alpha'>can</a> <a href='SkColor_Reference#Alpha'>modify</a> <a href='SkColor_Reference#Alpha'>another</a> <a href='SkColor_Reference#Alpha'>draw</a>. <a href='SkColor_Reference#Alpha'>orangePaint</a> <a href='SkColor_Reference#Alpha'>fills</a> <a href='SkColor_Reference#Alpha'>the</a> <a href='SkColor_Reference#Alpha'>bounds</a> <a href='SkColor_Reference#Alpha'>of</a> <a href='SkBitmap_Reference#Bitmap'>bitmap</a>,
-<a href='SkBitmap_Reference#Bitmap'>with</a> <a href='SkBitmap_Reference#Bitmap'>its</a> <a href='SkBitmap_Reference#Bitmap'>transparency</a> <a href='SkBitmap_Reference#Bitmap'>set</a> <a href='SkBitmap_Reference#Bitmap'>to</a> <a href='SkBitmap_Reference#Bitmap'>alpha8</a> <a href='undocumented#Pixel'>pixel</a> <a href='undocumented#Pixel'>value</a>.
+<div><fiddle-embed name="21ae21e4ce53d2018e042dd457997300"><div><a href='SkColor_Reference#Alpha'>Alpha</a> pixels can modify another draw. orangePaint fills the bounds of <a href='SkBitmap_Reference#Bitmap'>bitmap</a>,
+with its transparency set to alpha8 <a href='undocumented#Pixel'>pixel</a> value.
</div></fiddle-embed></div>
### See Also
@@ -434,12 +434,12 @@
---
-<a href='SkImageInfo_Reference#kRGB_565_SkColorType'>kRGB_565_SkColorType</a> <a href='SkImageInfo_Reference#kRGB_565_SkColorType'>encodes</a> <a href='SkImageInfo_Reference#kRGB_565_SkColorType'>RGB</a> <a href='SkImageInfo_Reference#kRGB_565_SkColorType'>to</a> <a href='SkImageInfo_Reference#kRGB_565_SkColorType'>fit</a> <a href='SkImageInfo_Reference#kRGB_565_SkColorType'>in</a> <a href='SkImageInfo_Reference#kRGB_565_SkColorType'>a</a> 16-<a href='SkImageInfo_Reference#kRGB_565_SkColorType'>bit</a> <a href='SkImageInfo_Reference#kRGB_565_SkColorType'>word</a>. <a href='SkImageInfo_Reference#kRGB_565_SkColorType'>Red</a> <a href='SkImageInfo_Reference#kRGB_565_SkColorType'>and</a> <a href='SkImageInfo_Reference#kRGB_565_SkColorType'>blue</a>
-<a href='SkImageInfo_Reference#kRGB_565_SkColorType'>components</a> <a href='SkImageInfo_Reference#kRGB_565_SkColorType'>use</a> <a href='SkImageInfo_Reference#kRGB_565_SkColorType'>five</a> <a href='SkImageInfo_Reference#kRGB_565_SkColorType'>bits</a> <a href='SkImageInfo_Reference#kRGB_565_SkColorType'>describing</a> 32 <a href='SkImageInfo_Reference#kRGB_565_SkColorType'>levels</a>. <a href='SkImageInfo_Reference#kRGB_565_SkColorType'>Green</a> <a href='SkImageInfo_Reference#kRGB_565_SkColorType'>components</a>, <a href='SkImageInfo_Reference#kRGB_565_SkColorType'>more</a> <a href='SkImageInfo_Reference#kRGB_565_SkColorType'>sensitive</a>
-<a href='SkImageInfo_Reference#kRGB_565_SkColorType'>to</a> <a href='SkImageInfo_Reference#kRGB_565_SkColorType'>the</a> <a href='SkImageInfo_Reference#kRGB_565_SkColorType'>eye</a>, <a href='SkImageInfo_Reference#kRGB_565_SkColorType'>use</a> <a href='SkImageInfo_Reference#kRGB_565_SkColorType'>six</a> <a href='SkImageInfo_Reference#kRGB_565_SkColorType'>bits</a> <a href='SkImageInfo_Reference#kRGB_565_SkColorType'>describing</a> 64 <a href='SkImageInfo_Reference#kRGB_565_SkColorType'>levels</a>. <a href='SkImageInfo_Reference#kRGB_565_SkColorType'>kRGB_565_SkColorType</a> <a href='SkImageInfo_Reference#kRGB_565_SkColorType'>has</a> <a href='SkImageInfo_Reference#kRGB_565_SkColorType'>no</a>
-<a href='SkImageInfo_Reference#kRGB_565_SkColorType'>bits</a> <a href='SkImageInfo_Reference#kRGB_565_SkColorType'>for</a> <a href='SkColor_Reference#Alpha'>Alpha</a>.
-<a href='SkColor_Reference#Alpha'>Pixels</a> <a href='SkColor_Reference#Alpha'>are</a> <a href='SkColor_Reference#Alpha'>fully</a> <a href='SkColor_Reference#Alpha'>opaque</a> <a href='SkColor_Reference#Alpha'>as</a> <a href='SkColor_Reference#Alpha'>if</a> <a href='SkColor_Reference#Alpha'>its</a> <a href='#Color_Alpha'>Color_Alpha</a> <a href='#Color_Alpha'>was</a> <a href='#Color_Alpha'>set</a> <a href='#Color_Alpha'>to</a> <a href='#Color_Alpha'>one</a>, <a href='#Color_Alpha'>and</a> <a href='#Color_Alpha'>should</a>
-<a href='#Color_Alpha'>always</a> <a href='#Color_Alpha'>be</a> <a href='#Color_Alpha'>paired</a> <a href='#Color_Alpha'>with</a> <a href='SkImageInfo_Reference#kOpaque_SkAlphaType'>kOpaque_SkAlphaType</a>.
+<a href='SkImageInfo_Reference#kRGB_565_SkColorType'>kRGB_565_SkColorType</a> encodes RGB to fit in a 16-bit word. Red and blue
+components use five bits describing 32 levels. Green components, more sensitive
+to the eye, use six bits describing 64 levels. <a href='SkImageInfo_Reference#kRGB_565_SkColorType'>kRGB_565_SkColorType</a> has no
+bits for <a href='SkColor_Reference#Alpha'>Alpha</a>.
+Pixels are fully opaque as if its <a href='#Color_Alpha'>Color_Alpha</a> was set to one, and should
+always be paired with <a href='SkImageInfo_Reference#kOpaque_SkAlphaType'>kOpaque_SkAlphaType</a>.

@@ -455,24 +455,24 @@
---
-<a href='SkImageInfo_Reference#kARGB_4444_SkColorType'>kARGB_4444_SkColorType</a> <a href='SkImageInfo_Reference#kARGB_4444_SkColorType'>encodes</a> <a href='SkImageInfo_Reference#kARGB_4444_SkColorType'>ARGB</a> <a href='SkImageInfo_Reference#kARGB_4444_SkColorType'>to</a> <a href='SkImageInfo_Reference#kARGB_4444_SkColorType'>fit</a> <a href='SkImageInfo_Reference#kARGB_4444_SkColorType'>in</a> 16-<a href='SkImageInfo_Reference#kARGB_4444_SkColorType'>bit</a> <a href='SkImageInfo_Reference#kARGB_4444_SkColorType'>word</a>. <a href='SkImageInfo_Reference#kARGB_4444_SkColorType'>Each</a>
-<a href='SkImageInfo_Reference#kARGB_4444_SkColorType'>component</a>: <a href='SkColor_Reference#Alpha'>alpha</a>, <a href='SkColor_Reference#Alpha'>blue</a>, <a href='SkColor_Reference#Alpha'>green</a>, <a href='SkColor_Reference#Alpha'>and</a> <a href='SkColor_Reference#Alpha'>red</a>; <a href='SkColor_Reference#Alpha'>use</a> <a href='SkColor_Reference#Alpha'>four</a> <a href='SkColor_Reference#Alpha'>bits</a>, <a href='SkColor_Reference#Alpha'>describing</a> 16 <a href='SkColor_Reference#Alpha'>levels</a>.
-<a href='SkColor_Reference#Alpha'>Note</a> <a href='SkColor_Reference#Alpha'>that</a> <a href='SkImageInfo_Reference#kARGB_4444_SkColorType'>kARGB_4444_SkColorType</a> <a href='SkImageInfo_Reference#kARGB_4444_SkColorType'>is</a> <a href='SkImageInfo_Reference#kARGB_4444_SkColorType'>misnamed</a>; <a href='SkImageInfo_Reference#kARGB_4444_SkColorType'>the</a> <a href='SkImageInfo_Reference#kARGB_4444_SkColorType'>acronym</a> <a href='SkImageInfo_Reference#kARGB_4444_SkColorType'>does</a> <a href='SkImageInfo_Reference#kARGB_4444_SkColorType'>not</a>
-<a href='SkImageInfo_Reference#kARGB_4444_SkColorType'>describe</a> <a href='SkImageInfo_Reference#kARGB_4444_SkColorType'>the</a> <a href='SkImageInfo_Reference#kARGB_4444_SkColorType'>actual</a> <a href='SkImageInfo_Reference#kARGB_4444_SkColorType'>component</a> <a href='SkImageInfo_Reference#kARGB_4444_SkColorType'>order</a>.
+<a href='SkImageInfo_Reference#kARGB_4444_SkColorType'>kARGB_4444_SkColorType</a> encodes ARGB to fit in 16-bit word. Each
+component: <a href='SkColor_Reference#Alpha'>alpha</a>, blue, green, and red; use four bits, describing 16 levels.
+Note that <a href='SkImageInfo_Reference#kARGB_4444_SkColorType'>kARGB_4444_SkColorType</a> is misnamed; the acronym does not
+describe the actual component order.

-If paired with <a href='SkImageInfo_Reference#kPremul_SkAlphaType'>kPremul_SkAlphaType</a>: <a href='SkImageInfo_Reference#kPremul_SkAlphaType'>blue</a>, <a href='SkImageInfo_Reference#kPremul_SkAlphaType'>green</a>, <a href='SkImageInfo_Reference#kPremul_SkAlphaType'>and</a> <a href='SkImageInfo_Reference#kPremul_SkAlphaType'>red</a> <a href='SkImageInfo_Reference#kPremul_SkAlphaType'>components</a> <a href='SkImageInfo_Reference#kPremul_SkAlphaType'>are</a>
-<a href='undocumented#Premultiply'>Premultiplied</a> <a href='undocumented#Premultiply'>by</a> <a href='undocumented#Premultiply'>the</a> <a href='SkColor_Reference#Alpha'>alpha</a> <a href='SkColor_Reference#Alpha'>value</a>. <a href='SkColor_Reference#Alpha'>If</a> <a href='SkColor_Reference#Alpha'>blue</a>, <a href='SkColor_Reference#Alpha'>green</a>, <a href='SkColor_Reference#Alpha'>or</a> <a href='SkColor_Reference#Alpha'>red</a> <a href='SkColor_Reference#Alpha'>is</a> <a href='SkColor_Reference#Alpha'>greater</a> <a href='SkColor_Reference#Alpha'>than</a> <a href='SkColor_Reference#Alpha'>alpha</a>,
-<a href='SkColor_Reference#Alpha'>the</a> <a href='SkColor_Reference#Alpha'>drawn</a> <a href='SkColor_Reference#Alpha'>result</a> <a href='SkColor_Reference#Alpha'>is</a> <a href='SkColor_Reference#Alpha'>undefined</a>.
+If paired with <a href='SkImageInfo_Reference#kPremul_SkAlphaType'>kPremul_SkAlphaType</a>: blue, green, and red components are
+<a href='undocumented#Premultiply'>Premultiplied</a> by the <a href='SkColor_Reference#Alpha'>alpha</a> value. If blue, green, or red is greater than <a href='SkColor_Reference#Alpha'>alpha</a>,
+the drawn result is undefined.
-<a href='SkColor_Reference#Alpha'>If</a> <a href='SkColor_Reference#Alpha'>paired</a> <a href='SkColor_Reference#Alpha'>with</a> <a href='SkImageInfo_Reference#kUnpremul_SkAlphaType'>kUnpremul_SkAlphaType</a>: <a href='SkColor_Reference#Alpha'>alpha</a>, <a href='SkColor_Reference#Alpha'>blue</a>, <a href='SkColor_Reference#Alpha'>green</a>, <a href='SkColor_Reference#Alpha'>and</a> <a href='SkColor_Reference#Alpha'>red</a> <a href='SkColor_Reference#Alpha'>components</a>
-<a href='SkColor_Reference#Alpha'>may</a> <a href='SkColor_Reference#Alpha'>have</a> <a href='SkColor_Reference#Alpha'>any</a> <a href='SkColor_Reference#Alpha'>value</a>. <a href='SkColor_Reference#Alpha'>There</a> <a href='SkColor_Reference#Alpha'>may</a> <a href='SkColor_Reference#Alpha'>be</a> <a href='SkColor_Reference#Alpha'>a</a> <a href='SkColor_Reference#Alpha'>performance</a> <a href='SkColor_Reference#Alpha'>penalty</a> <a href='SkColor_Reference#Alpha'>with</a> <a href='undocumented#Unpremultiply'>Unpremultiplied</a>
-<a href='undocumented#Unpremultiply'>pixels</a>.
+If paired with <a href='SkImageInfo_Reference#kUnpremul_SkAlphaType'>kUnpremul_SkAlphaType</a>: <a href='SkColor_Reference#Alpha'>alpha</a>, blue, green, and red components
+may have any value. There may be a performance penalty with <a href='undocumented#Unpremultiply'>Unpremultiplied</a>
+pixels.
-<a href='undocumented#Unpremultiply'>If</a> <a href='undocumented#Unpremultiply'>paired</a> <a href='undocumented#Unpremultiply'>with</a> <a href='SkImageInfo_Reference#kOpaque_SkAlphaType'>kOpaque_SkAlphaType</a>: <a href='SkImageInfo_Reference#kOpaque_SkAlphaType'>all</a> <a href='SkColor_Reference#Alpha'>alpha</a> <a href='SkColor_Reference#Alpha'>component</a> <a href='SkColor_Reference#Alpha'>values</a> <a href='SkColor_Reference#Alpha'>are</a> <a href='SkColor_Reference#Alpha'>at</a> <a href='SkColor_Reference#Alpha'>the</a> <a href='SkColor_Reference#Alpha'>maximum</a>;
-<a href='SkColor_Reference#Alpha'>blue</a>, <a href='SkColor_Reference#Alpha'>green</a>, <a href='SkColor_Reference#Alpha'>and</a> <a href='SkColor_Reference#Alpha'>red</a> <a href='SkColor_Reference#Alpha'>components</a> <a href='SkColor_Reference#Alpha'>are</a> <a href='SkColor_Reference#Alpha'>fully</a> <a href='SkColor_Reference#Alpha'>opaque</a>. <a href='SkColor_Reference#Alpha'>If</a> <a href='SkColor_Reference#Alpha'>any</a> <a href='SkColor_Reference#Alpha'>alpha</a> <a href='SkColor_Reference#Alpha'>component</a> <a href='SkColor_Reference#Alpha'>is</a>
-<a href='SkColor_Reference#Alpha'>less</a> <a href='SkColor_Reference#Alpha'>than</a> 15, <a href='SkColor_Reference#Alpha'>the</a> <a href='SkColor_Reference#Alpha'>drawn</a> <a href='SkColor_Reference#Alpha'>result</a> <a href='SkColor_Reference#Alpha'>is</a> <a href='SkColor_Reference#Alpha'>undefined</a>.
+If paired with <a href='SkImageInfo_Reference#kOpaque_SkAlphaType'>kOpaque_SkAlphaType</a>: all <a href='SkColor_Reference#Alpha'>alpha</a> component values are at the maximum;
+blue, green, and red components are fully opaque. If any <a href='SkColor_Reference#Alpha'>alpha</a> component is
+less than 15, the drawn result is undefined.
### Example
@@ -486,26 +486,26 @@
---
-<a href='SkImageInfo_Reference#kRGBA_8888_SkColorType'>kRGBA_8888_SkColorType</a> <a href='SkImageInfo_Reference#kRGBA_8888_SkColorType'>encodes</a> <a href='SkImageInfo_Reference#kRGBA_8888_SkColorType'>ARGB</a> <a href='SkImageInfo_Reference#kRGBA_8888_SkColorType'>into</a> <a href='SkImageInfo_Reference#kRGBA_8888_SkColorType'>a</a> 32-<a href='SkImageInfo_Reference#kRGBA_8888_SkColorType'>bit</a> <a href='SkImageInfo_Reference#kRGBA_8888_SkColorType'>word</a>. <a href='SkImageInfo_Reference#kRGBA_8888_SkColorType'>Each</a> <a href='SkImageInfo_Reference#kRGBA_8888_SkColorType'>component</a>:
-<a href='SkImageInfo_Reference#kRGBA_8888_SkColorType'>red</a>, <a href='SkImageInfo_Reference#kRGBA_8888_SkColorType'>green</a>, <a href='SkImageInfo_Reference#kRGBA_8888_SkColorType'>blue</a>, <a href='SkColor_Reference#Alpha'>alpha</a>; <a href='SkColor_Reference#Alpha'>use</a> <a href='SkColor_Reference#Alpha'>eight</a> <a href='SkColor_Reference#Alpha'>bits</a>, <a href='SkColor_Reference#Alpha'>describing</a> 256 <a href='SkColor_Reference#Alpha'>levels</a>.
+<a href='SkImageInfo_Reference#kRGBA_8888_SkColorType'>kRGBA_8888_SkColorType</a> encodes ARGB into a 32-bit word. Each component:
+red, green, blue, <a href='SkColor_Reference#Alpha'>alpha</a>; use eight bits, describing 256 levels.

-If paired with <a href='SkImageInfo_Reference#kPremul_SkAlphaType'>kPremul_SkAlphaType</a>: <a href='SkImageInfo_Reference#kPremul_SkAlphaType'>red</a>, <a href='SkImageInfo_Reference#kPremul_SkAlphaType'>green</a>, <a href='SkImageInfo_Reference#kPremul_SkAlphaType'>and</a> <a href='SkImageInfo_Reference#kPremul_SkAlphaType'>blue</a> <a href='SkImageInfo_Reference#kPremul_SkAlphaType'>components</a> <a href='SkImageInfo_Reference#kPremul_SkAlphaType'>are</a>
-<a href='undocumented#Premultiply'>Premultiplied</a> <a href='undocumented#Premultiply'>by</a> <a href='undocumented#Premultiply'>the</a> <a href='SkColor_Reference#Alpha'>alpha</a> <a href='SkColor_Reference#Alpha'>value</a>. <a href='SkColor_Reference#Alpha'>If</a> <a href='SkColor_Reference#Alpha'>red</a>, <a href='SkColor_Reference#Alpha'>green</a>, <a href='SkColor_Reference#Alpha'>or</a> <a href='SkColor_Reference#Alpha'>blue</a> <a href='SkColor_Reference#Alpha'>is</a> <a href='SkColor_Reference#Alpha'>greater</a> <a href='SkColor_Reference#Alpha'>than</a> <a href='SkColor_Reference#Alpha'>alpha</a>,
-<a href='SkColor_Reference#Alpha'>the</a> <a href='SkColor_Reference#Alpha'>drawn</a> <a href='SkColor_Reference#Alpha'>result</a> <a href='SkColor_Reference#Alpha'>is</a> <a href='SkColor_Reference#Alpha'>undefined</a>.
+If paired with <a href='SkImageInfo_Reference#kPremul_SkAlphaType'>kPremul_SkAlphaType</a>: red, green, and blue components are
+<a href='undocumented#Premultiply'>Premultiplied</a> by the <a href='SkColor_Reference#Alpha'>alpha</a> value. If red, green, or blue is greater than <a href='SkColor_Reference#Alpha'>alpha</a>,
+the drawn result is undefined.
-<a href='SkColor_Reference#Alpha'>If</a> <a href='SkColor_Reference#Alpha'>paired</a> <a href='SkColor_Reference#Alpha'>with</a> <a href='SkImageInfo_Reference#kUnpremul_SkAlphaType'>kUnpremul_SkAlphaType</a>: <a href='SkColor_Reference#Alpha'>alpha</a>, <a href='SkColor_Reference#Alpha'>red</a>, <a href='SkColor_Reference#Alpha'>green</a>, <a href='SkColor_Reference#Alpha'>and</a> <a href='SkColor_Reference#Alpha'>blue</a> <a href='SkColor_Reference#Alpha'>components</a>
-<a href='SkColor_Reference#Alpha'>may</a> <a href='SkColor_Reference#Alpha'>have</a> <a href='SkColor_Reference#Alpha'>any</a> <a href='SkColor_Reference#Alpha'>value</a>. <a href='SkColor_Reference#Alpha'>There</a> <a href='SkColor_Reference#Alpha'>may</a> <a href='SkColor_Reference#Alpha'>be</a> <a href='SkColor_Reference#Alpha'>a</a> <a href='SkColor_Reference#Alpha'>performance</a> <a href='SkColor_Reference#Alpha'>penalty</a> <a href='SkColor_Reference#Alpha'>with</a> <a href='undocumented#Unpremultiply'>Unpremultiplied</a>
-<a href='undocumented#Unpremultiply'>pixels</a>.
+If paired with <a href='SkImageInfo_Reference#kUnpremul_SkAlphaType'>kUnpremul_SkAlphaType</a>: <a href='SkColor_Reference#Alpha'>alpha</a>, red, green, and blue components
+may have any value. There may be a performance penalty with <a href='undocumented#Unpremultiply'>Unpremultiplied</a>
+pixels.
-<a href='undocumented#Unpremultiply'>If</a> <a href='undocumented#Unpremultiply'>paired</a> <a href='undocumented#Unpremultiply'>with</a> <a href='SkImageInfo_Reference#kOpaque_SkAlphaType'>kOpaque_SkAlphaType</a>: <a href='SkImageInfo_Reference#kOpaque_SkAlphaType'>all</a> <a href='SkColor_Reference#Alpha'>alpha</a> <a href='SkColor_Reference#Alpha'>component</a> <a href='SkColor_Reference#Alpha'>values</a> <a href='SkColor_Reference#Alpha'>are</a> <a href='SkColor_Reference#Alpha'>at</a> <a href='SkColor_Reference#Alpha'>the</a> <a href='SkColor_Reference#Alpha'>maximum</a>;
-<a href='SkColor_Reference#Alpha'>red</a>, <a href='SkColor_Reference#Alpha'>green</a>, <a href='SkColor_Reference#Alpha'>and</a> <a href='SkColor_Reference#Alpha'>blue</a> <a href='SkColor_Reference#Alpha'>components</a> <a href='SkColor_Reference#Alpha'>are</a> <a href='SkColor_Reference#Alpha'>fully</a> <a href='SkColor_Reference#Alpha'>opaque</a>. <a href='SkColor_Reference#Alpha'>If</a> <a href='SkColor_Reference#Alpha'>any</a> <a href='SkColor_Reference#Alpha'>alpha</a> <a href='SkColor_Reference#Alpha'>component</a> <a href='SkColor_Reference#Alpha'>is</a>
-<a href='SkColor_Reference#Alpha'>less</a> <a href='SkColor_Reference#Alpha'>than</a> 255, <a href='SkColor_Reference#Alpha'>the</a> <a href='SkColor_Reference#Alpha'>drawn</a> <a href='SkColor_Reference#Alpha'>result</a> <a href='SkColor_Reference#Alpha'>is</a> <a href='SkColor_Reference#Alpha'>undefined</a>.
+If paired with <a href='SkImageInfo_Reference#kOpaque_SkAlphaType'>kOpaque_SkAlphaType</a>: all <a href='SkColor_Reference#Alpha'>alpha</a> component values are at the maximum;
+red, green, and blue components are fully opaque. If any <a href='SkColor_Reference#Alpha'>alpha</a> component is
+less than 255, the drawn result is undefined.
-<a href='SkColor_Reference#Alpha'>On</a> <a href='#Big_Endian'>Big_Endian</a> <a href='#Big_Endian'>platforms</a>, <a href='SkImageInfo_Reference#kRGBA_8888_SkColorType'>kRGBA_8888_SkColorType</a> <a href='SkImageInfo_Reference#kRGBA_8888_SkColorType'>is</a> <a href='SkImageInfo_Reference#kRGBA_8888_SkColorType'>the</a> <a href='SkImageInfo_Reference#kRGBA_8888_SkColorType'>native</a> <a href='#Image_Info_Color_Type'>Color_Type</a>, <a href='#Image_Info_Color_Type'>and</a>
-<a href='#Image_Info_Color_Type'>will</a> <a href='#Image_Info_Color_Type'>have</a> <a href='#Image_Info_Color_Type'>the</a> <a href='#Image_Info_Color_Type'>best</a> <a href='#Image_Info_Color_Type'>performance</a>. <a href='#Image_Info_Color_Type'>Use</a> <a href='SkImageInfo_Reference#kN32_SkColorType'>kN32_SkColorType</a> <a href='SkImageInfo_Reference#kN32_SkColorType'>to</a> <a href='SkImageInfo_Reference#kN32_SkColorType'>choose</a> <a href='SkImageInfo_Reference#kN32_SkColorType'>the</a> <a href='SkImageInfo_Reference#kN32_SkColorType'>best</a>
-<a href='#Image_Info_Color_Type'>Color_Type</a> <a href='#Image_Info_Color_Type'>for</a> <a href='#Image_Info_Color_Type'>the</a> <a href='#Image_Info_Color_Type'>platform</a> <a href='#Image_Info_Color_Type'>at</a> <a href='#Image_Info_Color_Type'>compile</a> <a href='#Image_Info_Color_Type'>time</a>.
+On <a href='#Big_Endian'>Big_Endian</a> platforms, <a href='SkImageInfo_Reference#kRGBA_8888_SkColorType'>kRGBA_8888_SkColorType</a> is the native <a href='#Image_Info_Color_Type'>Color_Type</a>, and
+will have the best performance. Use <a href='SkImageInfo_Reference#kN32_SkColorType'>kN32_SkColorType</a> to choose the best
+<a href='#Image_Info_Color_Type'>Color_Type</a> for the platform at compile time.
### Example
@@ -519,10 +519,10 @@
---
-<a href='SkImageInfo_Reference#kRGB_888x_SkColorType'>kRGB_888x_SkColorType</a> <a href='SkImageInfo_Reference#kRGB_888x_SkColorType'>encodes</a> <a href='SkImageInfo_Reference#kRGB_888x_SkColorType'>RGB</a> <a href='SkImageInfo_Reference#kRGB_888x_SkColorType'>into</a> <a href='SkImageInfo_Reference#kRGB_888x_SkColorType'>a</a> 32-<a href='SkImageInfo_Reference#kRGB_888x_SkColorType'>bit</a> <a href='SkImageInfo_Reference#kRGB_888x_SkColorType'>word</a>. <a href='SkImageInfo_Reference#kRGB_888x_SkColorType'>Each</a> <a href='SkImageInfo_Reference#kRGB_888x_SkColorType'>component</a>:
-<a href='SkImageInfo_Reference#kRGB_888x_SkColorType'>red</a>, <a href='SkImageInfo_Reference#kRGB_888x_SkColorType'>green</a>, <a href='SkImageInfo_Reference#kRGB_888x_SkColorType'>blue</a>; <a href='SkImageInfo_Reference#kRGB_888x_SkColorType'>use</a> <a href='SkImageInfo_Reference#kRGB_888x_SkColorType'>eight</a> <a href='SkImageInfo_Reference#kRGB_888x_SkColorType'>bits</a>, <a href='SkImageInfo_Reference#kRGB_888x_SkColorType'>describing</a> 256 <a href='SkImageInfo_Reference#kRGB_888x_SkColorType'>levels</a>. <a href='SkImageInfo_Reference#kRGB_888x_SkColorType'>Eight</a> <a href='SkImageInfo_Reference#kRGB_888x_SkColorType'>bits</a> <a href='SkImageInfo_Reference#kRGB_888x_SkColorType'>are</a>
-<a href='SkImageInfo_Reference#kRGB_888x_SkColorType'>unused</a>. <a href='SkImageInfo_Reference#kRGB_888x_SkColorType'>Pixels</a> <a href='SkImageInfo_Reference#kRGB_888x_SkColorType'>described</a> <a href='SkImageInfo_Reference#kRGB_888x_SkColorType'>by</a> <a href='SkImageInfo_Reference#kRGB_888x_SkColorType'>kRGB_888x_SkColorType</a> <a href='SkImageInfo_Reference#kRGB_888x_SkColorType'>are</a> <a href='SkImageInfo_Reference#kRGB_888x_SkColorType'>fully</a> <a href='SkImageInfo_Reference#kRGB_888x_SkColorType'>opaque</a> <a href='SkImageInfo_Reference#kRGB_888x_SkColorType'>as</a> <a href='SkImageInfo_Reference#kRGB_888x_SkColorType'>if</a>
-<a href='SkImageInfo_Reference#kRGB_888x_SkColorType'>their</a> <a href='#Color_Alpha'>Color_Alpha</a> <a href='#Color_Alpha'>was</a> <a href='#Color_Alpha'>set</a> <a href='#Color_Alpha'>to</a> <a href='#Color_Alpha'>one</a>, <a href='#Color_Alpha'>and</a> <a href='#Color_Alpha'>should</a> <a href='#Color_Alpha'>always</a> <a href='#Color_Alpha'>be</a> <a href='#Color_Alpha'>paired</a> <a href='#Color_Alpha'>with</a>
+<a href='SkImageInfo_Reference#kRGB_888x_SkColorType'>kRGB_888x_SkColorType</a> encodes RGB into a 32-bit word. Each component:
+red, green, blue; use eight bits, describing 256 levels. Eight bits are
+unused. Pixels described by <a href='SkImageInfo_Reference#kRGB_888x_SkColorType'>kRGB_888x_SkColorType</a> are fully opaque as if
+their <a href='#Color_Alpha'>Color_Alpha</a> was set to one, and should always be paired with
<a href='SkImageInfo_Reference#kOpaque_SkAlphaType'>kOpaque_SkAlphaType</a>.

@@ -539,26 +539,26 @@
---
-<a href='SkImageInfo_Reference#kBGRA_8888_SkColorType'>kBGRA_8888_SkColorType</a> <a href='SkImageInfo_Reference#kBGRA_8888_SkColorType'>encodes</a> <a href='SkImageInfo_Reference#kBGRA_8888_SkColorType'>ARGB</a> <a href='SkImageInfo_Reference#kBGRA_8888_SkColorType'>into</a> <a href='SkImageInfo_Reference#kBGRA_8888_SkColorType'>a</a> 32-<a href='SkImageInfo_Reference#kBGRA_8888_SkColorType'>bit</a> <a href='SkImageInfo_Reference#kBGRA_8888_SkColorType'>word</a>. <a href='SkImageInfo_Reference#kBGRA_8888_SkColorType'>Each</a> <a href='SkImageInfo_Reference#kBGRA_8888_SkColorType'>component</a>:
-<a href='SkImageInfo_Reference#kBGRA_8888_SkColorType'>blue</a>, <a href='SkImageInfo_Reference#kBGRA_8888_SkColorType'>green</a>, <a href='SkImageInfo_Reference#kBGRA_8888_SkColorType'>red</a>, <a href='SkImageInfo_Reference#kBGRA_8888_SkColorType'>and</a> <a href='SkColor_Reference#Alpha'>alpha</a>; <a href='SkColor_Reference#Alpha'>use</a> <a href='SkColor_Reference#Alpha'>eight</a> <a href='SkColor_Reference#Alpha'>bits</a>, <a href='SkColor_Reference#Alpha'>describing</a> 256 <a href='SkColor_Reference#Alpha'>levels</a>.
+<a href='SkImageInfo_Reference#kBGRA_8888_SkColorType'>kBGRA_8888_SkColorType</a> encodes ARGB into a 32-bit word. Each component:
+blue, green, red, and <a href='SkColor_Reference#Alpha'>alpha</a>; use eight bits, describing 256 levels.

-If paired with <a href='SkImageInfo_Reference#kPremul_SkAlphaType'>kPremul_SkAlphaType</a>: <a href='SkImageInfo_Reference#kPremul_SkAlphaType'>blue</a>, <a href='SkImageInfo_Reference#kPremul_SkAlphaType'>green</a>, <a href='SkImageInfo_Reference#kPremul_SkAlphaType'>and</a> <a href='SkImageInfo_Reference#kPremul_SkAlphaType'>red</a> <a href='SkImageInfo_Reference#kPremul_SkAlphaType'>components</a> <a href='SkImageInfo_Reference#kPremul_SkAlphaType'>are</a>
-<a href='undocumented#Premultiply'>Premultiplied</a> <a href='undocumented#Premultiply'>by</a> <a href='undocumented#Premultiply'>the</a> <a href='SkColor_Reference#Alpha'>alpha</a> <a href='SkColor_Reference#Alpha'>value</a>. <a href='SkColor_Reference#Alpha'>If</a> <a href='SkColor_Reference#Alpha'>blue</a>, <a href='SkColor_Reference#Alpha'>green</a>, <a href='SkColor_Reference#Alpha'>or</a> <a href='SkColor_Reference#Alpha'>red</a> <a href='SkColor_Reference#Alpha'>is</a> <a href='SkColor_Reference#Alpha'>greater</a> <a href='SkColor_Reference#Alpha'>than</a> <a href='SkColor_Reference#Alpha'>alpha</a>,
-<a href='SkColor_Reference#Alpha'>the</a> <a href='SkColor_Reference#Alpha'>drawn</a> <a href='SkColor_Reference#Alpha'>result</a> <a href='SkColor_Reference#Alpha'>is</a> <a href='SkColor_Reference#Alpha'>undefined</a>.
+If paired with <a href='SkImageInfo_Reference#kPremul_SkAlphaType'>kPremul_SkAlphaType</a>: blue, green, and red components are
+<a href='undocumented#Premultiply'>Premultiplied</a> by the <a href='SkColor_Reference#Alpha'>alpha</a> value. If blue, green, or red is greater than <a href='SkColor_Reference#Alpha'>alpha</a>,
+the drawn result is undefined.
-<a href='SkColor_Reference#Alpha'>If</a> <a href='SkColor_Reference#Alpha'>paired</a> <a href='SkColor_Reference#Alpha'>with</a> <a href='SkImageInfo_Reference#kUnpremul_SkAlphaType'>kUnpremul_SkAlphaType</a>: <a href='SkImageInfo_Reference#kUnpremul_SkAlphaType'>blue</a>, <a href='SkImageInfo_Reference#kUnpremul_SkAlphaType'>green</a>, <a href='SkImageInfo_Reference#kUnpremul_SkAlphaType'>red</a>, <a href='SkImageInfo_Reference#kUnpremul_SkAlphaType'>and</a> <a href='SkColor_Reference#Alpha'>alpha</a> <a href='SkColor_Reference#Alpha'>components</a>
-<a href='SkColor_Reference#Alpha'>may</a> <a href='SkColor_Reference#Alpha'>have</a> <a href='SkColor_Reference#Alpha'>any</a> <a href='SkColor_Reference#Alpha'>value</a>. <a href='SkColor_Reference#Alpha'>There</a> <a href='SkColor_Reference#Alpha'>may</a> <a href='SkColor_Reference#Alpha'>be</a> <a href='SkColor_Reference#Alpha'>a</a> <a href='SkColor_Reference#Alpha'>performance</a> <a href='SkColor_Reference#Alpha'>penalty</a> <a href='SkColor_Reference#Alpha'>with</a> <a href='undocumented#Unpremultiply'>Unpremultiplied</a>
-<a href='undocumented#Unpremultiply'>pixels</a>.
+If paired with <a href='SkImageInfo_Reference#kUnpremul_SkAlphaType'>kUnpremul_SkAlphaType</a>: blue, green, red, and <a href='SkColor_Reference#Alpha'>alpha</a> components
+may have any value. There may be a performance penalty with <a href='undocumented#Unpremultiply'>Unpremultiplied</a>
+pixels.
-<a href='undocumented#Unpremultiply'>If</a> <a href='undocumented#Unpremultiply'>paired</a> <a href='undocumented#Unpremultiply'>with</a> <a href='SkImageInfo_Reference#kOpaque_SkAlphaType'>kOpaque_SkAlphaType</a>: <a href='SkImageInfo_Reference#kOpaque_SkAlphaType'>all</a> <a href='SkColor_Reference#Alpha'>alpha</a> <a href='SkColor_Reference#Alpha'>component</a> <a href='SkColor_Reference#Alpha'>values</a> <a href='SkColor_Reference#Alpha'>are</a> <a href='SkColor_Reference#Alpha'>at</a> <a href='SkColor_Reference#Alpha'>the</a> <a href='SkColor_Reference#Alpha'>maximum</a>;
-<a href='SkColor_Reference#Alpha'>blue</a>, <a href='SkColor_Reference#Alpha'>green</a>, <a href='SkColor_Reference#Alpha'>and</a> <a href='SkColor_Reference#Alpha'>red</a> <a href='SkColor_Reference#Alpha'>components</a> <a href='SkColor_Reference#Alpha'>are</a> <a href='SkColor_Reference#Alpha'>fully</a> <a href='SkColor_Reference#Alpha'>opaque</a>. <a href='SkColor_Reference#Alpha'>If</a> <a href='SkColor_Reference#Alpha'>any</a> <a href='SkColor_Reference#Alpha'>alpha</a> <a href='SkColor_Reference#Alpha'>component</a> <a href='SkColor_Reference#Alpha'>is</a>
-<a href='SkColor_Reference#Alpha'>less</a> <a href='SkColor_Reference#Alpha'>than</a> 255, <a href='SkColor_Reference#Alpha'>the</a> <a href='SkColor_Reference#Alpha'>drawn</a> <a href='SkColor_Reference#Alpha'>result</a> <a href='SkColor_Reference#Alpha'>is</a> <a href='SkColor_Reference#Alpha'>undefined</a>.
+If paired with <a href='SkImageInfo_Reference#kOpaque_SkAlphaType'>kOpaque_SkAlphaType</a>: all <a href='SkColor_Reference#Alpha'>alpha</a> component values are at the maximum;
+blue, green, and red components are fully opaque. If any <a href='SkColor_Reference#Alpha'>alpha</a> component is
+less than 255, the drawn result is undefined.
-<a href='SkColor_Reference#Alpha'>On</a> <a href='#Little_Endian'>Little_Endian</a> <a href='#Little_Endian'>platforms</a>, <a href='SkImageInfo_Reference#kBGRA_8888_SkColorType'>kBGRA_8888_SkColorType</a> <a href='SkImageInfo_Reference#kBGRA_8888_SkColorType'>is</a> <a href='SkImageInfo_Reference#kBGRA_8888_SkColorType'>the</a> <a href='SkImageInfo_Reference#kBGRA_8888_SkColorType'>native</a> <a href='#Image_Info_Color_Type'>Color_Type</a>,
-<a href='#Image_Info_Color_Type'>and</a> <a href='#Image_Info_Color_Type'>will</a> <a href='#Image_Info_Color_Type'>have</a> <a href='#Image_Info_Color_Type'>the</a> <a href='#Image_Info_Color_Type'>best</a> <a href='#Image_Info_Color_Type'>performance</a>. <a href='#Image_Info_Color_Type'>Use</a> <a href='SkImageInfo_Reference#kN32_SkColorType'>kN32_SkColorType</a> <a href='SkImageInfo_Reference#kN32_SkColorType'>to</a> <a href='SkImageInfo_Reference#kN32_SkColorType'>choose</a> <a href='SkImageInfo_Reference#kN32_SkColorType'>the</a> <a href='SkImageInfo_Reference#kN32_SkColorType'>best</a>
-<a href='#Image_Info_Color_Type'>Color_Type</a> <a href='#Image_Info_Color_Type'>for</a> <a href='#Image_Info_Color_Type'>the</a> <a href='#Image_Info_Color_Type'>platform</a> <a href='#Image_Info_Color_Type'>at</a> <a href='#Image_Info_Color_Type'>compile</a> <a href='#Image_Info_Color_Type'>time</a>.
+On <a href='#Little_Endian'>Little_Endian</a> platforms, <a href='SkImageInfo_Reference#kBGRA_8888_SkColorType'>kBGRA_8888_SkColorType</a> is the native <a href='#Image_Info_Color_Type'>Color_Type</a>,
+and will have the best performance. Use <a href='SkImageInfo_Reference#kN32_SkColorType'>kN32_SkColorType</a> to choose the best
+<a href='#Image_Info_Color_Type'>Color_Type</a> for the platform at compile time.
### Example
@@ -572,28 +572,28 @@
---
-<a href='SkImageInfo_Reference#kRGBA_1010102_SkColorType'>kRGBA_1010102_SkColorType</a> <a href='SkImageInfo_Reference#kRGBA_1010102_SkColorType'>encodes</a> <a href='SkImageInfo_Reference#kRGBA_1010102_SkColorType'>ARGB</a> <a href='SkImageInfo_Reference#kRGBA_1010102_SkColorType'>into</a> <a href='SkImageInfo_Reference#kRGBA_1010102_SkColorType'>a</a> 32-<a href='SkImageInfo_Reference#kRGBA_1010102_SkColorType'>bit</a> <a href='SkImageInfo_Reference#kRGBA_1010102_SkColorType'>word</a>. <a href='SkImageInfo_Reference#kRGBA_1010102_SkColorType'>Each</a>
-<a href='SkColor_Reference#Color'>Color</a> <a href='SkColor_Reference#Color'>component</a>: <a href='SkColor_Reference#Color'>red</a>, <a href='SkColor_Reference#Color'>green</a>, <a href='SkColor_Reference#Color'>and</a> <a href='SkColor_Reference#Color'>blue</a>; <a href='SkColor_Reference#Color'>use</a> <a href='SkColor_Reference#Color'>ten</a> <a href='SkColor_Reference#Color'>bits</a>, <a href='SkColor_Reference#Color'>describing</a> 1024 <a href='SkColor_Reference#Color'>levels</a>.
-<a href='SkColor_Reference#Color'>Two</a> <a href='SkColor_Reference#Color'>bits</a> <a href='SkColor_Reference#Color'>contain</a> <a href='SkColor_Reference#Alpha'>alpha</a>, <a href='SkColor_Reference#Alpha'>describing</a> <a href='SkColor_Reference#Alpha'>four</a> <a href='SkColor_Reference#Alpha'>levels</a>. <a href='SkColor_Reference#Alpha'>Possible</a> <a href='SkColor_Reference#Alpha'>alpha</a>
-<a href='SkColor_Reference#Alpha'>values</a> <a href='SkColor_Reference#Alpha'>are</a> <a href='SkColor_Reference#Alpha'>zero</a>: <a href='SkColor_Reference#Alpha'>fully</a> <a href='SkColor_Reference#Alpha'>transparent</a>; <a href='SkColor_Reference#Alpha'>one</a>: 33% <a href='SkColor_Reference#Alpha'>opaque</a>; <a href='SkColor_Reference#Alpha'>two</a>: 67% <a href='SkColor_Reference#Alpha'>opaque</a>;
-<a href='SkColor_Reference#Alpha'>three</a>: <a href='SkColor_Reference#Alpha'>fully</a> <a href='SkColor_Reference#Alpha'>opaque</a>.
+<a href='SkImageInfo_Reference#kRGBA_1010102_SkColorType'>kRGBA_1010102_SkColorType</a> encodes ARGB into a 32-bit word. Each
+<a href='SkColor_Reference#Color'>Color</a> component: red, green, and blue; use ten bits, describing 1024 levels.
+Two bits contain <a href='SkColor_Reference#Alpha'>alpha</a>, describing four levels. Possible <a href='SkColor_Reference#Alpha'>alpha</a>
+values are zero: fully transparent; one: 33% opaque; two: 67% opaque;
+three: fully opaque.
-<a href='SkColor_Reference#Alpha'>At</a> <a href='SkColor_Reference#Alpha'>present</a>, <a href='SkColor_Reference#Color'>Color</a> <a href='SkColor_Reference#Color'>in</a> <a href='SkPaint_Reference#Paint'>Paint</a> <a href='SkPaint_Reference#Paint'>does</a> <a href='SkPaint_Reference#Paint'>not</a> <a href='SkPaint_Reference#Paint'>provide</a> <a href='SkPaint_Reference#Paint'>enough</a> <a href='SkPaint_Reference#Paint'>precision</a> <a href='SkPaint_Reference#Paint'>to</a>
-<a href='SkPaint_Reference#Paint'>draw</a> <a href='SkPaint_Reference#Paint'>all</a> <a href='SkPaint_Reference#Paint'>colors</a> <a href='SkPaint_Reference#Paint'>possible</a> <a href='SkPaint_Reference#Paint'>to</a> <a href='SkPaint_Reference#Paint'>a</a> <a href='SkImageInfo_Reference#kRGBA_1010102_SkColorType'>kRGBA_1010102_SkColorType</a> <a href='SkSurface_Reference#Surface'>Surface</a>.
+At present, <a href='SkColor_Reference#Color'>Color</a> in <a href='SkPaint_Reference#Paint'>Paint</a> does not provide enough precision to
+draw all colors possible to a <a href='SkImageInfo_Reference#kRGBA_1010102_SkColorType'>kRGBA_1010102_SkColorType</a> <a href='SkSurface_Reference#Surface'>Surface</a>.

-If paired with <a href='SkImageInfo_Reference#kPremul_SkAlphaType'>kPremul_SkAlphaType</a>: <a href='SkImageInfo_Reference#kPremul_SkAlphaType'>red</a>, <a href='SkImageInfo_Reference#kPremul_SkAlphaType'>green</a>, <a href='SkImageInfo_Reference#kPremul_SkAlphaType'>and</a> <a href='SkImageInfo_Reference#kPremul_SkAlphaType'>blue</a> <a href='SkImageInfo_Reference#kPremul_SkAlphaType'>components</a> <a href='SkImageInfo_Reference#kPremul_SkAlphaType'>are</a>
-<a href='undocumented#Premultiply'>Premultiplied</a> <a href='undocumented#Premultiply'>by</a> <a href='undocumented#Premultiply'>the</a> <a href='SkColor_Reference#Alpha'>alpha</a> <a href='SkColor_Reference#Alpha'>value</a>. <a href='SkColor_Reference#Alpha'>If</a> <a href='SkColor_Reference#Alpha'>red</a>, <a href='SkColor_Reference#Alpha'>green</a>, <a href='SkColor_Reference#Alpha'>or</a> <a href='SkColor_Reference#Alpha'>blue</a> <a href='SkColor_Reference#Alpha'>is</a> <a href='SkColor_Reference#Alpha'>greater</a> <a href='SkColor_Reference#Alpha'>than</a> <a href='SkColor_Reference#Alpha'>the</a>
-<a href='SkColor_Reference#Alpha'>alpha</a> <a href='SkColor_Reference#Alpha'>replicated</a> <a href='SkColor_Reference#Alpha'>to</a> <a href='SkColor_Reference#Alpha'>ten</a> <a href='SkColor_Reference#Alpha'>bits</a>, <a href='SkColor_Reference#Alpha'>the</a> <a href='SkColor_Reference#Alpha'>drawn</a> <a href='SkColor_Reference#Alpha'>result</a> <a href='SkColor_Reference#Alpha'>is</a> <a href='SkColor_Reference#Alpha'>undefined</a>.
+If paired with <a href='SkImageInfo_Reference#kPremul_SkAlphaType'>kPremul_SkAlphaType</a>: red, green, and blue components are
+<a href='undocumented#Premultiply'>Premultiplied</a> by the <a href='SkColor_Reference#Alpha'>alpha</a> value. If red, green, or blue is greater than the
+<a href='SkColor_Reference#Alpha'>alpha</a> replicated to ten bits, the drawn result is undefined.
-<a href='SkColor_Reference#Alpha'>If</a> <a href='SkColor_Reference#Alpha'>paired</a> <a href='SkColor_Reference#Alpha'>with</a> <a href='SkImageInfo_Reference#kUnpremul_SkAlphaType'>kUnpremul_SkAlphaType</a>: <a href='SkColor_Reference#Alpha'>alpha</a>, <a href='SkColor_Reference#Alpha'>red</a>, <a href='SkColor_Reference#Alpha'>green</a>, <a href='SkColor_Reference#Alpha'>and</a> <a href='SkColor_Reference#Alpha'>blue</a> <a href='SkColor_Reference#Alpha'>components</a>
-<a href='SkColor_Reference#Alpha'>may</a> <a href='SkColor_Reference#Alpha'>have</a> <a href='SkColor_Reference#Alpha'>any</a> <a href='SkColor_Reference#Alpha'>value</a>. <a href='SkColor_Reference#Alpha'>There</a> <a href='SkColor_Reference#Alpha'>may</a> <a href='SkColor_Reference#Alpha'>be</a> <a href='SkColor_Reference#Alpha'>a</a> <a href='SkColor_Reference#Alpha'>performance</a> <a href='SkColor_Reference#Alpha'>penalty</a> <a href='SkColor_Reference#Alpha'>with</a> <a href='undocumented#Unpremultiply'>Unpremultiplied</a>
-<a href='undocumented#Unpremultiply'>pixels</a>.
+If paired with <a href='SkImageInfo_Reference#kUnpremul_SkAlphaType'>kUnpremul_SkAlphaType</a>: <a href='SkColor_Reference#Alpha'>alpha</a>, red, green, and blue components
+may have any value. There may be a performance penalty with <a href='undocumented#Unpremultiply'>Unpremultiplied</a>
+pixels.
-<a href='undocumented#Unpremultiply'>If</a> <a href='undocumented#Unpremultiply'>paired</a> <a href='undocumented#Unpremultiply'>with</a> <a href='SkImageInfo_Reference#kOpaque_SkAlphaType'>kOpaque_SkAlphaType</a>: <a href='SkImageInfo_Reference#kOpaque_SkAlphaType'>all</a> <a href='SkColor_Reference#Alpha'>alpha</a> <a href='SkColor_Reference#Alpha'>component</a> <a href='SkColor_Reference#Alpha'>values</a> <a href='SkColor_Reference#Alpha'>are</a> <a href='SkColor_Reference#Alpha'>at</a> <a href='SkColor_Reference#Alpha'>the</a> <a href='SkColor_Reference#Alpha'>maximum</a>;
-<a href='SkColor_Reference#Alpha'>red</a>, <a href='SkColor_Reference#Alpha'>green</a>, <a href='SkColor_Reference#Alpha'>and</a> <a href='SkColor_Reference#Alpha'>blue</a> <a href='SkColor_Reference#Alpha'>components</a> <a href='SkColor_Reference#Alpha'>are</a> <a href='SkColor_Reference#Alpha'>fully</a> <a href='SkColor_Reference#Alpha'>opaque</a>. <a href='SkColor_Reference#Alpha'>If</a> <a href='SkColor_Reference#Alpha'>any</a> <a href='SkColor_Reference#Alpha'>alpha</a> <a href='SkColor_Reference#Alpha'>component</a> <a href='SkColor_Reference#Alpha'>is</a>
-<a href='SkColor_Reference#Alpha'>less</a> <a href='SkColor_Reference#Alpha'>than</a> <a href='SkColor_Reference#Alpha'>three</a>, <a href='SkColor_Reference#Alpha'>the</a> <a href='SkColor_Reference#Alpha'>drawn</a> <a href='SkColor_Reference#Alpha'>result</a> <a href='SkColor_Reference#Alpha'>is</a> <a href='SkColor_Reference#Alpha'>undefined</a>.
+If paired with <a href='SkImageInfo_Reference#kOpaque_SkAlphaType'>kOpaque_SkAlphaType</a>: all <a href='SkColor_Reference#Alpha'>alpha</a> component values are at the maximum;
+red, green, and blue components are fully opaque. If any <a href='SkColor_Reference#Alpha'>alpha</a> component is
+less than three, the drawn result is undefined.
### Example
@@ -607,14 +607,14 @@
---
-<a href='SkImageInfo_Reference#kRGB_101010x_SkColorType'>kRGB_101010x_SkColorType</a> <a href='SkImageInfo_Reference#kRGB_101010x_SkColorType'>encodes</a> <a href='SkImageInfo_Reference#kRGB_101010x_SkColorType'>RGB</a> <a href='SkImageInfo_Reference#kRGB_101010x_SkColorType'>into</a> <a href='SkImageInfo_Reference#kRGB_101010x_SkColorType'>a</a> 32-<a href='SkImageInfo_Reference#kRGB_101010x_SkColorType'>bit</a> <a href='SkImageInfo_Reference#kRGB_101010x_SkColorType'>word</a>. <a href='SkImageInfo_Reference#kRGB_101010x_SkColorType'>Each</a>
-<a href='SkColor_Reference#Color'>Color</a> <a href='SkColor_Reference#Color'>component</a>: <a href='SkColor_Reference#Color'>red</a>, <a href='SkColor_Reference#Color'>green</a>, <a href='SkColor_Reference#Color'>and</a> <a href='SkColor_Reference#Color'>blue</a>; <a href='SkColor_Reference#Color'>use</a> <a href='SkColor_Reference#Color'>ten</a> <a href='SkColor_Reference#Color'>bits</a>, <a href='SkColor_Reference#Color'>describing</a> 1024 <a href='SkColor_Reference#Color'>levels</a>.
-<a href='SkColor_Reference#Color'>Two</a> <a href='SkColor_Reference#Color'>bits</a> <a href='SkColor_Reference#Color'>are</a> <a href='SkColor_Reference#Color'>unused</a>. <a href='SkColor_Reference#Color'>Pixels</a> <a href='SkColor_Reference#Color'>described</a> <a href='SkColor_Reference#Color'>by</a> <a href='SkImageInfo_Reference#kRGB_101010x_SkColorType'>kRGB_101010x_SkColorType</a> <a href='SkImageInfo_Reference#kRGB_101010x_SkColorType'>are</a> <a href='SkImageInfo_Reference#kRGB_101010x_SkColorType'>fully</a>
-<a href='SkImageInfo_Reference#kRGB_101010x_SkColorType'>opaque</a> <a href='SkImageInfo_Reference#kRGB_101010x_SkColorType'>as</a> <a href='SkImageInfo_Reference#kRGB_101010x_SkColorType'>if</a> <a href='SkImageInfo_Reference#kRGB_101010x_SkColorType'>its</a> <a href='#Color_Alpha'>Color_Alpha</a> <a href='#Color_Alpha'>was</a> <a href='#Color_Alpha'>set</a> <a href='#Color_Alpha'>to</a> <a href='#Color_Alpha'>one</a>, <a href='#Color_Alpha'>and</a> <a href='#Color_Alpha'>should</a> <a href='#Color_Alpha'>always</a> <a href='#Color_Alpha'>be</a> <a href='#Color_Alpha'>paired</a>
-<a href='#Color_Alpha'>with</a> <a href='SkImageInfo_Reference#kOpaque_SkAlphaType'>kOpaque_SkAlphaType</a>.
+<a href='SkImageInfo_Reference#kRGB_101010x_SkColorType'>kRGB_101010x_SkColorType</a> encodes RGB into a 32-bit word. Each
+<a href='SkColor_Reference#Color'>Color</a> component: red, green, and blue; use ten bits, describing 1024 levels.
+Two bits are unused. Pixels described by <a href='SkImageInfo_Reference#kRGB_101010x_SkColorType'>kRGB_101010x_SkColorType</a> are fully
+opaque as if its <a href='#Color_Alpha'>Color_Alpha</a> was set to one, and should always be paired
+with <a href='SkImageInfo_Reference#kOpaque_SkAlphaType'>kOpaque_SkAlphaType</a>.
-<a href='SkImageInfo_Reference#kOpaque_SkAlphaType'>At</a> <a href='SkImageInfo_Reference#kOpaque_SkAlphaType'>present</a>, <a href='SkColor_Reference#Color'>Color</a> <a href='SkColor_Reference#Color'>in</a> <a href='SkPaint_Reference#Paint'>Paint</a> <a href='SkPaint_Reference#Paint'>does</a> <a href='SkPaint_Reference#Paint'>not</a> <a href='SkPaint_Reference#Paint'>provide</a> <a href='SkPaint_Reference#Paint'>enough</a> <a href='SkPaint_Reference#Paint'>precision</a> <a href='SkPaint_Reference#Paint'>to</a>
-<a href='SkPaint_Reference#Paint'>draw</a> <a href='SkPaint_Reference#Paint'>all</a> <a href='SkPaint_Reference#Paint'>colors</a> <a href='SkPaint_Reference#Paint'>possible</a> <a href='SkPaint_Reference#Paint'>to</a> <a href='SkPaint_Reference#Paint'>a</a> <a href='SkImageInfo_Reference#kRGB_101010x_SkColorType'>kRGB_101010x_SkColorType</a> <a href='SkSurface_Reference#Surface'>Surface</a>.
+At present, <a href='SkColor_Reference#Color'>Color</a> in <a href='SkPaint_Reference#Paint'>Paint</a> does not provide enough precision to
+draw all colors possible to a <a href='SkImageInfo_Reference#kRGB_101010x_SkColorType'>kRGB_101010x_SkColorType</a> <a href='SkSurface_Reference#Surface'>Surface</a>.

@@ -630,10 +630,10 @@
---
-<a href='SkImageInfo_Reference#kGray_8_SkColorType'>kGray_8_SkColorType</a> <a href='SkImageInfo_Reference#kGray_8_SkColorType'>encodes</a> <a href='SkImageInfo_Reference#kGray_8_SkColorType'>grayscale</a> <a href='SkImageInfo_Reference#kGray_8_SkColorType'>level</a> <a href='SkImageInfo_Reference#kGray_8_SkColorType'>in</a> <a href='SkImageInfo_Reference#kGray_8_SkColorType'>eight</a> <a href='SkImageInfo_Reference#kGray_8_SkColorType'>bits</a> <a href='SkImageInfo_Reference#kGray_8_SkColorType'>that</a> <a href='SkImageInfo_Reference#kGray_8_SkColorType'>is</a> <a href='SkImageInfo_Reference#kGray_8_SkColorType'>equivalent</a>
-<a href='SkImageInfo_Reference#kGray_8_SkColorType'>to</a> <a href='SkImageInfo_Reference#kGray_8_SkColorType'>equal</a> <a href='SkImageInfo_Reference#kGray_8_SkColorType'>values</a> <a href='SkImageInfo_Reference#kGray_8_SkColorType'>for</a> <a href='SkImageInfo_Reference#kGray_8_SkColorType'>red</a>, <a href='SkImageInfo_Reference#kGray_8_SkColorType'>blue</a>, <a href='SkImageInfo_Reference#kGray_8_SkColorType'>and</a> <a href='SkImageInfo_Reference#kGray_8_SkColorType'>green</a>, <a href='SkImageInfo_Reference#kGray_8_SkColorType'>representing</a> <a href='SkImageInfo_Reference#kGray_8_SkColorType'>colors</a> <a href='SkImageInfo_Reference#kGray_8_SkColorType'>from</a> <a href='SkImageInfo_Reference#kGray_8_SkColorType'>black</a> <a href='SkImageInfo_Reference#kGray_8_SkColorType'>to</a>
-<a href='SkImageInfo_Reference#kGray_8_SkColorType'>white</a>. <a href='SkImageInfo_Reference#kGray_8_SkColorType'>Pixels</a> <a href='SkImageInfo_Reference#kGray_8_SkColorType'>described</a> <a href='SkImageInfo_Reference#kGray_8_SkColorType'>by</a> <a href='SkImageInfo_Reference#kGray_8_SkColorType'>kGray_8_SkColorType</a> <a href='SkImageInfo_Reference#kGray_8_SkColorType'>are</a> <a href='SkImageInfo_Reference#kGray_8_SkColorType'>fully</a>
-<a href='SkImageInfo_Reference#kGray_8_SkColorType'>opaque</a> <a href='SkImageInfo_Reference#kGray_8_SkColorType'>as</a> <a href='SkImageInfo_Reference#kGray_8_SkColorType'>if</a> <a href='SkImageInfo_Reference#kGray_8_SkColorType'>its</a> <a href='#Color_Alpha'>Color_Alpha</a> <a href='#Color_Alpha'>was</a> <a href='#Color_Alpha'>set</a> <a href='#Color_Alpha'>to</a> <a href='#Color_Alpha'>one</a>, <a href='#Color_Alpha'>and</a> <a href='#Color_Alpha'>should</a> <a href='#Color_Alpha'>always</a> <a href='#Color_Alpha'>be</a> <a href='#Color_Alpha'>paired</a> <a href='#Color_Alpha'>with</a>
+<a href='SkImageInfo_Reference#kGray_8_SkColorType'>kGray_8_SkColorType</a> encodes grayscale level in eight bits that is equivalent
+to equal values for red, blue, and green, representing colors from black to
+white. Pixels described by <a href='SkImageInfo_Reference#kGray_8_SkColorType'>kGray_8_SkColorType</a> are fully
+opaque as if its <a href='#Color_Alpha'>Color_Alpha</a> was set to one, and should always be paired with
<a href='SkImageInfo_Reference#kOpaque_SkAlphaType'>kOpaque_SkAlphaType</a>.
### Example
@@ -648,30 +648,30 @@
---
-<a href='SkImageInfo_Reference#kRGBA_F16_SkColorType'>kRGBA_F16_SkColorType</a> <a href='SkImageInfo_Reference#kRGBA_F16_SkColorType'>encodes</a> <a href='SkImageInfo_Reference#kRGBA_F16_SkColorType'>ARGB</a> <a href='SkImageInfo_Reference#kRGBA_F16_SkColorType'>into</a> <a href='SkImageInfo_Reference#kRGBA_F16_SkColorType'>a</a> 64-<a href='SkImageInfo_Reference#kRGBA_F16_SkColorType'>bit</a> <a href='SkImageInfo_Reference#kRGBA_F16_SkColorType'>word</a>. <a href='SkImageInfo_Reference#kRGBA_F16_SkColorType'>Each</a> <a href='SkImageInfo_Reference#kRGBA_F16_SkColorType'>component</a>:
-<a href='SkImageInfo_Reference#kRGBA_F16_SkColorType'>blue</a>, <a href='SkImageInfo_Reference#kRGBA_F16_SkColorType'>green</a>, <a href='SkImageInfo_Reference#kRGBA_F16_SkColorType'>red</a>, <a href='SkImageInfo_Reference#kRGBA_F16_SkColorType'>and</a> <a href='SkColor_Reference#Alpha'>alpha</a>; <a href='SkColor_Reference#Alpha'>use</a> 16 <a href='SkColor_Reference#Alpha'>bits</a>, <a href='SkColor_Reference#Alpha'>describing</a> <a href='SkColor_Reference#Alpha'>a</a> <a href='SkColor_Reference#Alpha'>floating</a> <a href='SkPoint_Reference#Point'>point</a> <a href='SkPoint_Reference#Point'>value</a>,
-<a href='SkPoint_Reference#Point'>from</a> -65500 <a href='SkPoint_Reference#Point'>to</a> 65000 <a href='SkPoint_Reference#Point'>with</a> 3.31 <a href='SkPoint_Reference#Point'>decimal</a> <a href='SkPoint_Reference#Point'>digits</a> <a href='SkPoint_Reference#Point'>of</a> <a href='SkPoint_Reference#Point'>precision</a>.
+<a href='SkImageInfo_Reference#kRGBA_F16_SkColorType'>kRGBA_F16_SkColorType</a> encodes ARGB into a 64-bit word. Each component:
+blue, green, red, and <a href='SkColor_Reference#Alpha'>alpha</a>; use 16 bits, describing a floating <a href='SkPoint_Reference#Point'>point</a> value,
+from -65500 to 65000 with 3.31 decimal digits of precision.
-<a href='SkPoint_Reference#Point'>At</a> <a href='SkPoint_Reference#Point'>present</a>, <a href='SkColor_Reference#Color'>Color</a> <a href='SkColor_Reference#Color'>in</a> <a href='SkPaint_Reference#Paint'>Paint</a> <a href='SkPaint_Reference#Paint'>does</a> <a href='SkPaint_Reference#Paint'>not</a> <a href='SkPaint_Reference#Paint'>provide</a> <a href='SkPaint_Reference#Paint'>enough</a> <a href='SkPaint_Reference#Paint'>precision</a> <a href='SkPaint_Reference#Paint'>or</a> <a href='SkPaint_Reference#Paint'>range</a> <a href='SkPaint_Reference#Paint'>to</a>
-<a href='SkPaint_Reference#Paint'>draw</a> <a href='SkPaint_Reference#Paint'>all</a> <a href='SkPaint_Reference#Paint'>colors</a> <a href='SkPaint_Reference#Paint'>possible</a> <a href='SkPaint_Reference#Paint'>to</a> <a href='SkPaint_Reference#Paint'>a</a> <a href='SkImageInfo_Reference#kRGBA_F16_SkColorType'>kRGBA_F16_SkColorType</a> <a href='SkSurface_Reference#Surface'>Surface</a>.
+At present, <a href='SkColor_Reference#Color'>Color</a> in <a href='SkPaint_Reference#Paint'>Paint</a> does not provide enough precision or range to
+draw all colors possible to a <a href='SkImageInfo_Reference#kRGBA_F16_SkColorType'>kRGBA_F16_SkColorType</a> <a href='SkSurface_Reference#Surface'>Surface</a>.
-<a href='SkSurface_Reference#Surface'>Each</a> <a href='SkSurface_Reference#Surface'>component</a> <a href='SkSurface_Reference#Surface'>encodes</a> <a href='SkSurface_Reference#Surface'>a</a> <a href='SkSurface_Reference#Surface'>floating</a> <a href='SkPoint_Reference#Point'>point</a> <a href='SkPoint_Reference#Point'>value</a> <a href='SkPoint_Reference#Point'>using</a>
+Each component encodes a floating <a href='SkPoint_Reference#Point'>point</a> value using
<a href='https://www.khronos.org/opengl/wiki/Small_Float_Formats'>Half floats</a></a>. Meaningful colors are represented by the range 0.0 to 1.0, although smaller
and larger values may be useful when used in combination with <a href='#Transfer_Mode'>Transfer_Mode</a>.

-If paired with <a href='SkImageInfo_Reference#kPremul_SkAlphaType'>kPremul_SkAlphaType</a>: <a href='SkImageInfo_Reference#kPremul_SkAlphaType'>blue</a>, <a href='SkImageInfo_Reference#kPremul_SkAlphaType'>green</a>, <a href='SkImageInfo_Reference#kPremul_SkAlphaType'>and</a> <a href='SkImageInfo_Reference#kPremul_SkAlphaType'>red</a> <a href='SkImageInfo_Reference#kPremul_SkAlphaType'>components</a> <a href='SkImageInfo_Reference#kPremul_SkAlphaType'>are</a>
-<a href='undocumented#Premultiply'>Premultiplied</a> <a href='undocumented#Premultiply'>by</a> <a href='undocumented#Premultiply'>the</a> <a href='SkColor_Reference#Alpha'>alpha</a> <a href='SkColor_Reference#Alpha'>value</a>. <a href='SkColor_Reference#Alpha'>If</a> <a href='SkColor_Reference#Alpha'>blue</a>, <a href='SkColor_Reference#Alpha'>green</a>, <a href='SkColor_Reference#Alpha'>or</a> <a href='SkColor_Reference#Alpha'>red</a> <a href='SkColor_Reference#Alpha'>is</a> <a href='SkColor_Reference#Alpha'>greater</a> <a href='SkColor_Reference#Alpha'>than</a> <a href='SkColor_Reference#Alpha'>alpha</a>,
-<a href='SkColor_Reference#Alpha'>the</a> <a href='SkColor_Reference#Alpha'>drawn</a> <a href='SkColor_Reference#Alpha'>result</a> <a href='SkColor_Reference#Alpha'>is</a> <a href='SkColor_Reference#Alpha'>undefined</a>.
+If paired with <a href='SkImageInfo_Reference#kPremul_SkAlphaType'>kPremul_SkAlphaType</a>: blue, green, and red components are
+<a href='undocumented#Premultiply'>Premultiplied</a> by the <a href='SkColor_Reference#Alpha'>alpha</a> value. If blue, green, or red is greater than <a href='SkColor_Reference#Alpha'>alpha</a>,
+the drawn result is undefined.
-<a href='SkColor_Reference#Alpha'>If</a> <a href='SkColor_Reference#Alpha'>paired</a> <a href='SkColor_Reference#Alpha'>with</a> <a href='SkImageInfo_Reference#kUnpremul_SkAlphaType'>kUnpremul_SkAlphaType</a>: <a href='SkImageInfo_Reference#kUnpremul_SkAlphaType'>blue</a>, <a href='SkImageInfo_Reference#kUnpremul_SkAlphaType'>green</a>, <a href='SkImageInfo_Reference#kUnpremul_SkAlphaType'>red</a>, <a href='SkImageInfo_Reference#kUnpremul_SkAlphaType'>and</a> <a href='SkColor_Reference#Alpha'>alpha</a> <a href='SkColor_Reference#Alpha'>components</a>
-<a href='SkColor_Reference#Alpha'>may</a> <a href='SkColor_Reference#Alpha'>have</a> <a href='SkColor_Reference#Alpha'>any</a> <a href='SkColor_Reference#Alpha'>value</a>. <a href='SkColor_Reference#Alpha'>There</a> <a href='SkColor_Reference#Alpha'>may</a> <a href='SkColor_Reference#Alpha'>be</a> <a href='SkColor_Reference#Alpha'>a</a> <a href='SkColor_Reference#Alpha'>performance</a> <a href='SkColor_Reference#Alpha'>penalty</a> <a href='SkColor_Reference#Alpha'>with</a> <a href='undocumented#Unpremultiply'>Unpremultiplied</a>
-<a href='undocumented#Unpremultiply'>pixels</a>.
+If paired with <a href='SkImageInfo_Reference#kUnpremul_SkAlphaType'>kUnpremul_SkAlphaType</a>: blue, green, red, and <a href='SkColor_Reference#Alpha'>alpha</a> components
+may have any value. There may be a performance penalty with <a href='undocumented#Unpremultiply'>Unpremultiplied</a>
+pixels.
-<a href='undocumented#Unpremultiply'>If</a> <a href='undocumented#Unpremultiply'>paired</a> <a href='undocumented#Unpremultiply'>with</a> <a href='SkImageInfo_Reference#kOpaque_SkAlphaType'>kOpaque_SkAlphaType</a>: <a href='SkImageInfo_Reference#kOpaque_SkAlphaType'>all</a> <a href='SkColor_Reference#Alpha'>alpha</a> <a href='SkColor_Reference#Alpha'>component</a> <a href='SkColor_Reference#Alpha'>values</a> <a href='SkColor_Reference#Alpha'>are</a> <a href='SkColor_Reference#Alpha'>at</a> <a href='SkColor_Reference#Alpha'>the</a> <a href='SkColor_Reference#Alpha'>maximum</a>;
-<a href='SkColor_Reference#Alpha'>blue</a>, <a href='SkColor_Reference#Alpha'>green</a>, <a href='SkColor_Reference#Alpha'>and</a> <a href='SkColor_Reference#Alpha'>red</a> <a href='SkColor_Reference#Alpha'>components</a> <a href='SkColor_Reference#Alpha'>are</a> <a href='SkColor_Reference#Alpha'>fully</a> <a href='SkColor_Reference#Alpha'>opaque</a>. <a href='SkColor_Reference#Alpha'>If</a> <a href='SkColor_Reference#Alpha'>any</a> <a href='SkColor_Reference#Alpha'>alpha</a> <a href='SkColor_Reference#Alpha'>component</a> <a href='SkColor_Reference#Alpha'>is</a>
-<a href='SkColor_Reference#Alpha'>less</a> <a href='SkColor_Reference#Alpha'>than</a> <a href='SkColor_Reference#Alpha'>one</a>, <a href='SkColor_Reference#Alpha'>the</a> <a href='SkColor_Reference#Alpha'>drawn</a> <a href='SkColor_Reference#Alpha'>result</a> <a href='SkColor_Reference#Alpha'>is</a> <a href='SkColor_Reference#Alpha'>undefined</a>.
+If paired with <a href='SkImageInfo_Reference#kOpaque_SkAlphaType'>kOpaque_SkAlphaType</a>: all <a href='SkColor_Reference#Alpha'>alpha</a> component values are at the maximum;
+blue, green, and red components are fully opaque. If any <a href='SkColor_Reference#Alpha'>alpha</a> component is
+less than one, the drawn result is undefined.
### Example
@@ -685,30 +685,30 @@
---
-<a href='SkImageInfo_Reference#kRGBA_F32_SkColorType'>kRGBA_F32_SkColorType</a> <a href='SkImageInfo_Reference#kRGBA_F32_SkColorType'>encodes</a> <a href='SkImageInfo_Reference#kRGBA_F32_SkColorType'>ARGB</a> <a href='SkImageInfo_Reference#kRGBA_F32_SkColorType'>into</a> <a href='SkImageInfo_Reference#kRGBA_F32_SkColorType'>a</a> 128-<a href='SkImageInfo_Reference#kRGBA_F32_SkColorType'>bit</a> <a href='SkImageInfo_Reference#kRGBA_F32_SkColorType'>word</a>. <a href='SkImageInfo_Reference#kRGBA_F32_SkColorType'>Each</a> <a href='SkImageInfo_Reference#kRGBA_F32_SkColorType'>component</a>:
-<a href='SkImageInfo_Reference#kRGBA_F32_SkColorType'>blue</a>, <a href='SkImageInfo_Reference#kRGBA_F32_SkColorType'>green</a>, <a href='SkImageInfo_Reference#kRGBA_F32_SkColorType'>red</a>, <a href='SkImageInfo_Reference#kRGBA_F32_SkColorType'>and</a> <a href='SkColor_Reference#Alpha'>alpha</a>; <a href='SkColor_Reference#Alpha'>use</a> 32 <a href='SkColor_Reference#Alpha'>bits</a>, <a href='SkColor_Reference#Alpha'>describing</a> <a href='SkColor_Reference#Alpha'>a</a> <a href='SkColor_Reference#Alpha'>floating</a> <a href='SkPoint_Reference#Point'>point</a> <a href='SkPoint_Reference#Point'>value</a>,
-<a href='SkPoint_Reference#Point'>from</a> -3.402823<a href='SkPoint_Reference#Point'>e</a>+38 <a href='SkPoint_Reference#Point'>to</a> 3.402823<a href='SkPoint_Reference#Point'>e</a>+38 <a href='SkPoint_Reference#Point'>with</a> 7.225 <a href='SkPoint_Reference#Point'>decimal</a> <a href='SkPoint_Reference#Point'>digits</a> <a href='SkPoint_Reference#Point'>of</a> <a href='SkPoint_Reference#Point'>precision</a>.
+<a href='SkImageInfo_Reference#kRGBA_F32_SkColorType'>kRGBA_F32_SkColorType</a> encodes ARGB into a 128-bit word. Each component:
+blue, green, red, and <a href='SkColor_Reference#Alpha'>alpha</a>; use 32 bits, describing a floating <a href='SkPoint_Reference#Point'>point</a> value,
+from -3.402823e+38 to 3.402823e+38 with 7.225 decimal digits of precision.
-<a href='SkPoint_Reference#Point'>At</a> <a href='SkPoint_Reference#Point'>present</a>, <a href='SkColor_Reference#Color'>Color</a> <a href='SkColor_Reference#Color'>in</a> <a href='SkPaint_Reference#Paint'>Paint</a> <a href='SkPaint_Reference#Paint'>does</a> <a href='SkPaint_Reference#Paint'>not</a> <a href='SkPaint_Reference#Paint'>provide</a> <a href='SkPaint_Reference#Paint'>enough</a> <a href='SkPaint_Reference#Paint'>precision</a> <a href='SkPaint_Reference#Paint'>or</a> <a href='SkPaint_Reference#Paint'>range</a> <a href='SkPaint_Reference#Paint'>to</a>
-<a href='SkPaint_Reference#Paint'>draw</a> <a href='SkPaint_Reference#Paint'>all</a> <a href='SkPaint_Reference#Paint'>colors</a> <a href='SkPaint_Reference#Paint'>possible</a> <a href='SkPaint_Reference#Paint'>to</a> <a href='SkPaint_Reference#Paint'>a</a> <a href='SkImageInfo_Reference#kRGBA_F32_SkColorType'>kRGBA_F32_SkColorType</a> <a href='SkSurface_Reference#Surface'>Surface</a>.
+At present, <a href='SkColor_Reference#Color'>Color</a> in <a href='SkPaint_Reference#Paint'>Paint</a> does not provide enough precision or range to
+draw all colors possible to a <a href='SkImageInfo_Reference#kRGBA_F32_SkColorType'>kRGBA_F32_SkColorType</a> <a href='SkSurface_Reference#Surface'>Surface</a>.
-<a href='SkSurface_Reference#Surface'>Each</a> <a href='SkSurface_Reference#Surface'>component</a> <a href='SkSurface_Reference#Surface'>encodes</a> <a href='SkSurface_Reference#Surface'>a</a> <a href='SkSurface_Reference#Surface'>floating</a> <a href='SkPoint_Reference#Point'>point</a> <a href='SkPoint_Reference#Point'>value</a> <a href='SkPoint_Reference#Point'>using</a>
+Each component encodes a floating <a href='SkPoint_Reference#Point'>point</a> value using
<a href='https://en.wikipedia.org/wiki/Single-precision_floating-point_format'>single-precision floats</a></a>. Meaningful colors are represented by the range 0.0 to 1.0, although smaller
and larger values may be useful when used in combination with <a href='#Transfer_Mode'>Transfer_Mode</a>.

-If paired with <a href='SkImageInfo_Reference#kPremul_SkAlphaType'>kPremul_SkAlphaType</a>: <a href='SkImageInfo_Reference#kPremul_SkAlphaType'>blue</a>, <a href='SkImageInfo_Reference#kPremul_SkAlphaType'>green</a>, <a href='SkImageInfo_Reference#kPremul_SkAlphaType'>and</a> <a href='SkImageInfo_Reference#kPremul_SkAlphaType'>red</a> <a href='SkImageInfo_Reference#kPremul_SkAlphaType'>components</a> <a href='SkImageInfo_Reference#kPremul_SkAlphaType'>are</a>
-<a href='undocumented#Premultiply'>Premultiplied</a> <a href='undocumented#Premultiply'>by</a> <a href='undocumented#Premultiply'>the</a> <a href='SkColor_Reference#Alpha'>alpha</a> <a href='SkColor_Reference#Alpha'>value</a>. <a href='SkColor_Reference#Alpha'>If</a> <a href='SkColor_Reference#Alpha'>blue</a>, <a href='SkColor_Reference#Alpha'>green</a>, <a href='SkColor_Reference#Alpha'>or</a> <a href='SkColor_Reference#Alpha'>red</a> <a href='SkColor_Reference#Alpha'>is</a> <a href='SkColor_Reference#Alpha'>greater</a> <a href='SkColor_Reference#Alpha'>than</a> <a href='SkColor_Reference#Alpha'>alpha</a>,
-<a href='SkColor_Reference#Alpha'>the</a> <a href='SkColor_Reference#Alpha'>drawn</a> <a href='SkColor_Reference#Alpha'>result</a> <a href='SkColor_Reference#Alpha'>is</a> <a href='SkColor_Reference#Alpha'>undefined</a>.
+If paired with <a href='SkImageInfo_Reference#kPremul_SkAlphaType'>kPremul_SkAlphaType</a>: blue, green, and red components are
+<a href='undocumented#Premultiply'>Premultiplied</a> by the <a href='SkColor_Reference#Alpha'>alpha</a> value. If blue, green, or red is greater than <a href='SkColor_Reference#Alpha'>alpha</a>,
+the drawn result is undefined.
-<a href='SkColor_Reference#Alpha'>If</a> <a href='SkColor_Reference#Alpha'>paired</a> <a href='SkColor_Reference#Alpha'>with</a> <a href='SkImageInfo_Reference#kUnpremul_SkAlphaType'>kUnpremul_SkAlphaType</a>: <a href='SkImageInfo_Reference#kUnpremul_SkAlphaType'>blue</a>, <a href='SkImageInfo_Reference#kUnpremul_SkAlphaType'>green</a>, <a href='SkImageInfo_Reference#kUnpremul_SkAlphaType'>red</a>, <a href='SkImageInfo_Reference#kUnpremul_SkAlphaType'>and</a> <a href='SkColor_Reference#Alpha'>alpha</a> <a href='SkColor_Reference#Alpha'>components</a>
-<a href='SkColor_Reference#Alpha'>may</a> <a href='SkColor_Reference#Alpha'>have</a> <a href='SkColor_Reference#Alpha'>any</a> <a href='SkColor_Reference#Alpha'>value</a>. <a href='SkColor_Reference#Alpha'>There</a> <a href='SkColor_Reference#Alpha'>may</a> <a href='SkColor_Reference#Alpha'>be</a> <a href='SkColor_Reference#Alpha'>a</a> <a href='SkColor_Reference#Alpha'>performance</a> <a href='SkColor_Reference#Alpha'>penalty</a> <a href='SkColor_Reference#Alpha'>with</a> <a href='undocumented#Unpremultiply'>Unpremultiplied</a>
-<a href='undocumented#Unpremultiply'>pixels</a>.
+If paired with <a href='SkImageInfo_Reference#kUnpremul_SkAlphaType'>kUnpremul_SkAlphaType</a>: blue, green, red, and <a href='SkColor_Reference#Alpha'>alpha</a> components
+may have any value. There may be a performance penalty with <a href='undocumented#Unpremultiply'>Unpremultiplied</a>
+pixels.
-<a href='undocumented#Unpremultiply'>If</a> <a href='undocumented#Unpremultiply'>paired</a> <a href='undocumented#Unpremultiply'>with</a> <a href='SkImageInfo_Reference#kOpaque_SkAlphaType'>kOpaque_SkAlphaType</a>: <a href='SkImageInfo_Reference#kOpaque_SkAlphaType'>all</a> <a href='SkColor_Reference#Alpha'>alpha</a> <a href='SkColor_Reference#Alpha'>component</a> <a href='SkColor_Reference#Alpha'>values</a> <a href='SkColor_Reference#Alpha'>are</a> <a href='SkColor_Reference#Alpha'>at</a> <a href='SkColor_Reference#Alpha'>the</a> <a href='SkColor_Reference#Alpha'>maximum</a>;
-<a href='SkColor_Reference#Alpha'>blue</a>, <a href='SkColor_Reference#Alpha'>green</a>, <a href='SkColor_Reference#Alpha'>and</a> <a href='SkColor_Reference#Alpha'>red</a> <a href='SkColor_Reference#Alpha'>components</a> <a href='SkColor_Reference#Alpha'>are</a> <a href='SkColor_Reference#Alpha'>fully</a> <a href='SkColor_Reference#Alpha'>opaque</a>. <a href='SkColor_Reference#Alpha'>If</a> <a href='SkColor_Reference#Alpha'>any</a> <a href='SkColor_Reference#Alpha'>alpha</a> <a href='SkColor_Reference#Alpha'>component</a> <a href='SkColor_Reference#Alpha'>is</a>
-<a href='SkColor_Reference#Alpha'>less</a> <a href='SkColor_Reference#Alpha'>than</a> <a href='SkColor_Reference#Alpha'>one</a>, <a href='SkColor_Reference#Alpha'>the</a> <a href='SkColor_Reference#Alpha'>drawn</a> <a href='SkColor_Reference#Alpha'>result</a> <a href='SkColor_Reference#Alpha'>is</a> <a href='SkColor_Reference#Alpha'>undefined</a>.
+If paired with <a href='SkImageInfo_Reference#kOpaque_SkAlphaType'>kOpaque_SkAlphaType</a>: all <a href='SkColor_Reference#Alpha'>alpha</a> component values are at the maximum;
+blue, green, and red components are fully opaque. If any <a href='SkColor_Reference#Alpha'>alpha</a> component is
+less than one, the drawn result is undefined.
### See Also
@@ -719,11 +719,11 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-int <a href='SkImageInfo_Reference#SkColorTypeBytesPerPixel'>SkColorTypeBytesPerPixel</a>(<a href='SkImageInfo_Reference#SkColorType'>SkColorType</a> <a href='SkImageInfo_Reference#SkColorType'>ct</a>)
+int <a href='SkImageInfo_Reference#SkColorTypeBytesPerPixel'>SkColorTypeBytesPerPixel</a>(<a href='SkImageInfo_Reference#SkColorType'>SkColorType</a> ct)
</pre>
-Returns the number of bytes required to store a <a href='undocumented#Pixel'>pixel</a>, <a href='undocumented#Pixel'>including</a> <a href='undocumented#Pixel'>unused</a> <a href='undocumented#Pixel'>padding</a>.
-Returns zero if <a href='#SkColorTypeBytesPerPixel_ct'>ct</a> <a href='#SkColorTypeBytesPerPixel_ct'>is</a> <a href='SkImageInfo_Reference#kUnknown_SkColorType'>kUnknown_SkColorType</a> <a href='SkImageInfo_Reference#kUnknown_SkColorType'>or</a> <a href='SkImageInfo_Reference#kUnknown_SkColorType'>invalid</a>.
+Returns the number of bytes required to store a <a href='undocumented#Pixel'>pixel</a>, including unused padding.
+Returns zero if <a href='#SkColorTypeBytesPerPixel_ct'>ct</a> is <a href='SkImageInfo_Reference#kUnknown_SkColorType'>kUnknown_SkColorType</a> or invalid.
### Parameters
@@ -758,11 +758,11 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-bool <a href='SkImageInfo_Reference#SkColorTypeIsAlwaysOpaque'>SkColorTypeIsAlwaysOpaque</a>(<a href='SkImageInfo_Reference#SkColorType'>SkColorType</a> <a href='SkImageInfo_Reference#SkColorType'>ct</a>)
+bool <a href='SkImageInfo_Reference#SkColorTypeIsAlwaysOpaque'>SkColorTypeIsAlwaysOpaque</a>(<a href='SkImageInfo_Reference#SkColorType'>SkColorType</a> ct)
</pre>
-Returns true if <a href='SkImageInfo_Reference#SkColorType'>SkColorType</a> <a href='SkImageInfo_Reference#SkColorType'>always</a> <a href='SkImageInfo_Reference#SkColorType'>decodes</a> <a href='SkColor_Reference#Alpha'>alpha</a> <a href='SkColor_Reference#Alpha'>to</a> 1.0, <a href='SkColor_Reference#Alpha'>making</a> <a href='SkColor_Reference#Alpha'>the</a> <a href='undocumented#Pixel'>pixel</a>
-fully opaque. If true, <a href='SkImageInfo_Reference#SkColorType'>SkColorType</a> <a href='SkImageInfo_Reference#SkColorType'>does</a> <a href='SkImageInfo_Reference#SkColorType'>not</a> <a href='SkImageInfo_Reference#SkColorType'>reserve</a> <a href='SkImageInfo_Reference#SkColorType'>bits</a> <a href='SkImageInfo_Reference#SkColorType'>to</a> <a href='SkImageInfo_Reference#SkColorType'>encode</a> <a href='SkColor_Reference#Alpha'>alpha</a>.
+Returns true if <a href='SkImageInfo_Reference#SkColorType'>SkColorType</a> always decodes <a href='SkColor_Reference#Alpha'>alpha</a> to 1.0, making the <a href='undocumented#Pixel'>pixel</a>
+fully opaque. If true, <a href='SkImageInfo_Reference#SkColorType'>SkColorType</a> does not reserve bits to encode <a href='SkColor_Reference#Alpha'>alpha</a>.
### Parameters
@@ -778,7 +778,7 @@
### Return Value
-true if <a href='SkColor_Reference#Alpha'>alpha</a> <a href='SkColor_Reference#Alpha'>is</a> <a href='SkColor_Reference#Alpha'>always</a> <a href='SkColor_Reference#Alpha'>set</a> <a href='SkColor_Reference#Alpha'>to</a> 1.0
+true if <a href='SkColor_Reference#Alpha'>alpha</a> is always set to 1.0
### Example
@@ -797,26 +797,26 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-bool <a href='SkImageInfo_Reference#SkColorTypeValidateAlphaType'>SkColorTypeValidateAlphaType</a>(<a href='SkImageInfo_Reference#SkColorType'>SkColorType</a> <a href='SkImageInfo_Reference#SkColorType'>colorType</a>, <a href='SkImageInfo_Reference#SkAlphaType'>SkAlphaType</a> <a href='SkImageInfo_Reference#SkAlphaType'>alphaType</a>,
- <a href='SkImageInfo_Reference#SkAlphaType'>SkAlphaType</a>* <a href='SkImageInfo_Reference#SkAlphaType'>canonical</a> = <a href='SkImageInfo_Reference#SkAlphaType'>nullptr</a>)
+bool <a href='SkImageInfo_Reference#SkColorTypeValidateAlphaType'>SkColorTypeValidateAlphaType</a>(<a href='SkImageInfo_Reference#SkColorType'>SkColorType</a> colorType, <a href='SkImageInfo_Reference#SkAlphaType'>SkAlphaType</a> alphaType,
+ <a href='SkImageInfo_Reference#SkAlphaType'>SkAlphaType</a>* canonical = nullptr)
</pre>
-Returns true if <a href='#SkColorTypeValidateAlphaType_canonical'>canonical</a> <a href='#SkColorTypeValidateAlphaType_canonical'>can</a> <a href='#SkColorTypeValidateAlphaType_canonical'>be</a> <a href='#SkColorTypeValidateAlphaType_canonical'>set</a> <a href='#SkColorTypeValidateAlphaType_canonical'>to</a> <a href='#SkColorTypeValidateAlphaType_canonical'>a</a> <a href='#SkColorTypeValidateAlphaType_canonical'>valid</a> <a href='SkImageInfo_Reference#SkAlphaType'>SkAlphaType</a> <a href='SkImageInfo_Reference#SkAlphaType'>for</a> <a href='#SkColorTypeValidateAlphaType_colorType'>colorType</a>. <a href='#SkColorTypeValidateAlphaType_colorType'>If</a>
-there is more than one valid <a href='#SkColorTypeValidateAlphaType_canonical'>canonical</a> <a href='SkImageInfo_Reference#SkAlphaType'>SkAlphaType</a>, <a href='SkImageInfo_Reference#SkAlphaType'>set</a> <a href='SkImageInfo_Reference#SkAlphaType'>to</a> <a href='#SkColorTypeValidateAlphaType_alphaType'>alphaType</a>, <a href='#SkColorTypeValidateAlphaType_alphaType'>if</a> <a href='#SkColorTypeValidateAlphaType_alphaType'>valid</a>.
-If true is returned and <a href='#SkColorTypeValidateAlphaType_canonical'>canonical</a> <a href='#SkColorTypeValidateAlphaType_canonical'>is</a> <a href='#SkColorTypeValidateAlphaType_canonical'>not</a> <a href='#SkColorTypeValidateAlphaType_canonical'>nullptr</a>, <a href='#SkColorTypeValidateAlphaType_canonical'>store</a> <a href='#SkColorTypeValidateAlphaType_canonical'>valid</a> <a href='SkImageInfo_Reference#SkAlphaType'>SkAlphaType</a>.
+Returns true if <a href='#SkColorTypeValidateAlphaType_canonical'>canonical</a> can be set to a valid <a href='SkImageInfo_Reference#SkAlphaType'>SkAlphaType</a> for <a href='#SkColorTypeValidateAlphaType_colorType'>colorType</a>. If
+there is more than one valid <a href='#SkColorTypeValidateAlphaType_canonical'>canonical</a> <a href='SkImageInfo_Reference#SkAlphaType'>SkAlphaType</a>, set to <a href='#SkColorTypeValidateAlphaType_alphaType'>alphaType</a>, if valid.
+If true is returned and <a href='#SkColorTypeValidateAlphaType_canonical'>canonical</a> is not nullptr, store valid <a href='SkImageInfo_Reference#SkAlphaType'>SkAlphaType</a>.
-Returns false only if <a href='#SkColorTypeValidateAlphaType_alphaType'>alphaType</a> <a href='#SkColorTypeValidateAlphaType_alphaType'>is</a> <a href='SkImageInfo_Reference#kUnknown_SkAlphaType'>kUnknown_SkAlphaType</a>, <a href='SkImageInfo_Reference#Color_Type'>color type</a> <a href='SkColor_Reference#Color'>is</a> <a href='SkColor_Reference#Color'>not</a>
-<a href='SkImageInfo_Reference#kUnknown_SkColorType'>kUnknown_SkColorType</a>, <a href='SkImageInfo_Reference#kUnknown_SkColorType'>and</a> <a href='SkImageInfo_Reference#SkColorType'>SkColorType</a> <a href='SkImageInfo_Reference#SkColorType'>is</a> <a href='SkImageInfo_Reference#SkColorType'>not</a> <a href='SkImageInfo_Reference#SkColorType'>always</a> <a href='SkImageInfo_Reference#SkColorType'>opaque</a>. <a href='SkImageInfo_Reference#SkColorType'>If</a> <a href='SkImageInfo_Reference#SkColorType'>false</a> <a href='SkImageInfo_Reference#SkColorType'>is</a> <a href='SkImageInfo_Reference#SkColorType'>returned</a>,
-<a href='#SkColorTypeValidateAlphaType_canonical'>canonical</a> <a href='#SkColorTypeValidateAlphaType_canonical'>is</a> <a href='#SkColorTypeValidateAlphaType_canonical'>ignored</a>.
+Returns false only if <a href='#SkColorTypeValidateAlphaType_alphaType'>alphaType</a> is <a href='SkImageInfo_Reference#kUnknown_SkAlphaType'>kUnknown_SkAlphaType</a>, <a href='SkImageInfo_Reference#Color_Type'>color type</a> is not
+<a href='SkImageInfo_Reference#kUnknown_SkColorType'>kUnknown_SkColorType</a>, and <a href='SkImageInfo_Reference#SkColorType'>SkColorType</a> is not always opaque. If false is returned,
+<a href='#SkColorTypeValidateAlphaType_canonical'>canonical</a> is ignored.
-For <a href='SkImageInfo_Reference#kUnknown_SkColorType'>kUnknown_SkColorType</a>: <a href='SkImageInfo_Reference#kUnknown_SkColorType'>set</a> <a href='#SkColorTypeValidateAlphaType_canonical'>canonical</a> <a href='#SkColorTypeValidateAlphaType_canonical'>to</a> <a href='SkImageInfo_Reference#kUnknown_SkAlphaType'>kUnknown_SkAlphaType</a> <a href='SkImageInfo_Reference#kUnknown_SkAlphaType'>and</a> <a href='SkImageInfo_Reference#kUnknown_SkAlphaType'>return</a> <a href='SkImageInfo_Reference#kUnknown_SkAlphaType'>true</a>.
-For <a href='SkImageInfo_Reference#kAlpha_8_SkColorType'>kAlpha_8_SkColorType</a>: <a href='SkImageInfo_Reference#kAlpha_8_SkColorType'>set</a> <a href='#SkColorTypeValidateAlphaType_canonical'>canonical</a> <a href='#SkColorTypeValidateAlphaType_canonical'>to</a> <a href='SkImageInfo_Reference#kPremul_SkAlphaType'>kPremul_SkAlphaType</a> <a href='SkImageInfo_Reference#kPremul_SkAlphaType'>or</a>
-<a href='SkImageInfo_Reference#kOpaque_SkAlphaType'>kOpaque_SkAlphaType</a> <a href='SkImageInfo_Reference#kOpaque_SkAlphaType'>and</a> <a href='SkImageInfo_Reference#kOpaque_SkAlphaType'>return</a> <a href='SkImageInfo_Reference#kOpaque_SkAlphaType'>true</a> <a href='SkImageInfo_Reference#kOpaque_SkAlphaType'>if</a> <a href='#SkColorTypeValidateAlphaType_alphaType'>alphaType</a> <a href='#SkColorTypeValidateAlphaType_alphaType'>is</a> <a href='#SkColorTypeValidateAlphaType_alphaType'>not</a> <a href='SkImageInfo_Reference#kUnknown_SkAlphaType'>kUnknown_SkAlphaType</a>.
-For <a href='SkImageInfo_Reference#kRGB_565_SkColorType'>kRGB_565_SkColorType</a>, <a href='SkImageInfo_Reference#kRGB_888x_SkColorType'>kRGB_888x_SkColorType</a>, <a href='SkImageInfo_Reference#kRGB_101010x_SkColorType'>kRGB_101010x_SkColorType</a>, <a href='SkImageInfo_Reference#kRGB_101010x_SkColorType'>and</a>
-<a href='SkImageInfo_Reference#kGray_8_SkColorType'>kGray_8_SkColorType</a>: <a href='SkImageInfo_Reference#kGray_8_SkColorType'>set</a> <a href='#SkColorTypeValidateAlphaType_canonical'>canonical</a> <a href='#SkColorTypeValidateAlphaType_canonical'>to</a> <a href='SkImageInfo_Reference#kOpaque_SkAlphaType'>kOpaque_SkAlphaType</a> <a href='SkImageInfo_Reference#kOpaque_SkAlphaType'>and</a> <a href='SkImageInfo_Reference#kOpaque_SkAlphaType'>return</a> <a href='SkImageInfo_Reference#kOpaque_SkAlphaType'>true</a>.
+For <a href='SkImageInfo_Reference#kUnknown_SkColorType'>kUnknown_SkColorType</a>: set <a href='#SkColorTypeValidateAlphaType_canonical'>canonical</a> to <a href='SkImageInfo_Reference#kUnknown_SkAlphaType'>kUnknown_SkAlphaType</a> and return true.
+For <a href='SkImageInfo_Reference#kAlpha_8_SkColorType'>kAlpha_8_SkColorType</a>: set <a href='#SkColorTypeValidateAlphaType_canonical'>canonical</a> to <a href='SkImageInfo_Reference#kPremul_SkAlphaType'>kPremul_SkAlphaType</a> or
+<a href='SkImageInfo_Reference#kOpaque_SkAlphaType'>kOpaque_SkAlphaType</a> and return true if <a href='#SkColorTypeValidateAlphaType_alphaType'>alphaType</a> is not <a href='SkImageInfo_Reference#kUnknown_SkAlphaType'>kUnknown_SkAlphaType</a>.
+For <a href='SkImageInfo_Reference#kRGB_565_SkColorType'>kRGB_565_SkColorType</a>, <a href='SkImageInfo_Reference#kRGB_888x_SkColorType'>kRGB_888x_SkColorType</a>, <a href='SkImageInfo_Reference#kRGB_101010x_SkColorType'>kRGB_101010x_SkColorType</a>, and
+<a href='SkImageInfo_Reference#kGray_8_SkColorType'>kGray_8_SkColorType</a>: set <a href='#SkColorTypeValidateAlphaType_canonical'>canonical</a> to <a href='SkImageInfo_Reference#kOpaque_SkAlphaType'>kOpaque_SkAlphaType</a> and return true.
For <a href='SkImageInfo_Reference#kARGB_4444_SkColorType'>kARGB_4444_SkColorType</a>, <a href='SkImageInfo_Reference#kRGBA_8888_SkColorType'>kRGBA_8888_SkColorType</a>, <a href='SkImageInfo_Reference#kBGRA_8888_SkColorType'>kBGRA_8888_SkColorType</a>,
-<a href='SkImageInfo_Reference#kRGBA_1010102_SkColorType'>kRGBA_1010102_SkColorType</a>, <a href='SkImageInfo_Reference#kRGBA_1010102_SkColorType'>and</a> <a href='SkImageInfo_Reference#kRGBA_F16_SkColorType'>kRGBA_F16_SkColorType</a>: <a href='SkImageInfo_Reference#kRGBA_F16_SkColorType'>set</a> <a href='#SkColorTypeValidateAlphaType_canonical'>canonical</a> <a href='#SkColorTypeValidateAlphaType_canonical'>to</a> <a href='#SkColorTypeValidateAlphaType_alphaType'>alphaType</a>
-and return true if <a href='#SkColorTypeValidateAlphaType_alphaType'>alphaType</a> <a href='#SkColorTypeValidateAlphaType_alphaType'>is</a> <a href='#SkColorTypeValidateAlphaType_alphaType'>not</a> <a href='SkImageInfo_Reference#kUnknown_SkAlphaType'>kUnknown_SkAlphaType</a>.
+<a href='SkImageInfo_Reference#kRGBA_1010102_SkColorType'>kRGBA_1010102_SkColorType</a>, and <a href='SkImageInfo_Reference#kRGBA_F16_SkColorType'>kRGBA_F16_SkColorType</a>: set <a href='#SkColorTypeValidateAlphaType_canonical'>canonical</a> to <a href='#SkColorTypeValidateAlphaType_alphaType'>alphaType</a>
+and return true if <a href='#SkColorTypeValidateAlphaType_alphaType'>alphaType</a> is not <a href='SkImageInfo_Reference#kUnknown_SkAlphaType'>kUnknown_SkAlphaType</a>.
### Parameters
@@ -849,7 +849,7 @@
### Return Value
-true if valid <a href='SkImageInfo_Reference#SkAlphaType'>SkAlphaType</a> <a href='SkImageInfo_Reference#SkAlphaType'>can</a> <a href='SkImageInfo_Reference#SkAlphaType'>be</a> <a href='SkImageInfo_Reference#SkAlphaType'>associated</a> <a href='SkImageInfo_Reference#SkAlphaType'>with</a> <a href='#SkColorTypeValidateAlphaType_colorType'>colorType</a>
+true if valid <a href='SkImageInfo_Reference#SkAlphaType'>SkAlphaType</a> can be associated with <a href='#SkColorTypeValidateAlphaType_colorType'>colorType</a>
### Example
@@ -880,14 +880,14 @@
};
</pre>
-Describes <a href='SkColor_Reference#Color'>color</a> <a href='SkColor_Reference#Color'>range</a> <a href='SkColor_Reference#Color'>of</a> <a href='SkColor_Reference#Color'>YUV</a> <a href='SkColor_Reference#Color'>pixels</a>. <a href='SkColor_Reference#Color'>The</a> <a href='SkColor_Reference#Color'>color</a> <a href='SkColor_Reference#Color'>mapping</a> <a href='SkColor_Reference#Color'>from</a> <a href='SkColor_Reference#Color'>YUV</a> <a href='SkColor_Reference#Color'>to</a> <a href='SkColor_Reference#Color'>RGB</a> <a href='SkColor_Reference#Color'>varies</a>
-<a href='SkColor_Reference#Color'>depending</a> <a href='SkColor_Reference#Color'>on</a> <a href='SkColor_Reference#Color'>the</a> <a href='SkColor_Reference#Color'>source</a>. <a href='SkColor_Reference#Color'>YUV</a> <a href='SkColor_Reference#Color'>pixels</a> <a href='SkColor_Reference#Color'>may</a> <a href='SkColor_Reference#Color'>be</a> <a href='SkColor_Reference#Color'>generated</a> <a href='SkColor_Reference#Color'>by</a> <a href='SkColor_Reference#Color'>JPEG</a> <a href='SkColor_Reference#Color'>images</a>, <a href='SkColor_Reference#Color'>standard</a>
-<a href='SkColor_Reference#Color'>video</a> <a href='SkColor_Reference#Color'>streams</a>, <a href='SkColor_Reference#Color'>or</a> <a href='SkColor_Reference#Color'>high</a> <a href='SkColor_Reference#Color'>definition</a> <a href='SkColor_Reference#Color'>video</a> <a href='SkColor_Reference#Color'>streams</a>. <a href='SkColor_Reference#Color'>Each</a> <a href='SkColor_Reference#Color'>has</a> <a href='SkColor_Reference#Color'>its</a> <a href='SkColor_Reference#Color'>own</a> <a href='SkColor_Reference#Color'>mapping</a> <a href='SkColor_Reference#Color'>from</a>
-<a href='SkColor_Reference#Color'>YUV</a> <a href='SkColor_Reference#Color'>and</a> <a href='SkColor_Reference#Color'>RGB</a>.
+Describes <a href='SkColor_Reference#Color'>color</a> range of YUV pixels. The <a href='SkColor_Reference#Color'>color</a> mapping from YUV to RGB varies
+depending on the source. YUV pixels may be generated by JPEG images, standard
+video streams, or high definition video streams. Each has its own mapping from
+YUV and RGB.
-<a href='SkColor_Reference#Color'>JPEG</a> <a href='SkColor_Reference#Color'>YUV</a> <a href='SkColor_Reference#Color'>values</a> <a href='SkColor_Reference#Color'>encode</a> <a href='SkColor_Reference#Color'>the</a> <a href='SkColor_Reference#Color'>full</a> <a href='SkColor_Reference#Color'>range</a> <a href='SkColor_Reference#Color'>of</a> 0 <a href='SkColor_Reference#Color'>to</a> 255 <a href='SkColor_Reference#Color'>for</a> <a href='SkColor_Reference#Color'>all</a> <a href='SkColor_Reference#Color'>three</a> <a href='SkColor_Reference#Color'>components</a>.
-<a href='SkColor_Reference#Color'>Video</a> <a href='SkColor_Reference#Color'>YUV</a> <a href='SkColor_Reference#Color'>values</a> <a href='SkColor_Reference#Color'>range</a> <a href='SkColor_Reference#Color'>from</a> 16 <a href='SkColor_Reference#Color'>to</a> 235 <a href='SkColor_Reference#Color'>for</a> <a href='SkColor_Reference#Color'>all</a> <a href='SkColor_Reference#Color'>three</a> <a href='SkColor_Reference#Color'>components</a>. <a href='SkColor_Reference#Color'>Details</a> <a href='SkColor_Reference#Color'>of</a>
-<a href='SkColor_Reference#Color'>encoding</a> <a href='SkColor_Reference#Color'>and</a> <a href='SkColor_Reference#Color'>conversion</a> <a href='SkColor_Reference#Color'>to</a> <a href='SkColor_Reference#Color'>RGB</a> <a href='SkColor_Reference#Color'>are</a> <a href='SkColor_Reference#Color'>described</a> <a href='SkColor_Reference#Color'>in</a>
+JPEG YUV values encode the full range of 0 to 255 for all three components.
+Video YUV values range from 16 to 235 for all three components. Details of
+encoding and conversion to RGB are described in
<a href='https://en.wikipedia.org/wiki/YCbCr'>YCbCr color space</a></a> .
### Constants
@@ -939,57 +939,57 @@
<pre style="padding: 1em 1em 1em 1em;width: 62.5em; background-color: #f0f0f0">
struct <a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a> {
-<a href='SkImageInfo_Reference#SkImageInfo'>public</a>:
+public:
<a href='#SkImageInfo_empty_constructor'>SkImageInfo()</a>;
- <a href='SkImageInfo_Reference#SkImageInfo'>static</a> <a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a> <a href='#SkImageInfo_Make'>Make</a>(<a href='#SkImageInfo_Make'>int</a> <a href='#SkImageInfo_Make'>width</a>, <a href='#SkImageInfo_Make'>int</a> <a href='#SkImageInfo_Make'>height</a>, <a href='SkImageInfo_Reference#SkColorType'>SkColorType</a> <a href='SkImageInfo_Reference#SkColorType'>ct</a>, <a href='SkImageInfo_Reference#SkAlphaType'>SkAlphaType</a> <a href='SkImageInfo_Reference#SkAlphaType'>at</a>,
- <a href='undocumented#sk_sp'>sk_sp</a><<a href='undocumented#SkColorSpace'>SkColorSpace</a>> <a href='undocumented#SkColorSpace'>cs</a> = <a href='undocumented#SkColorSpace'>nullptr</a>);
- <a href='undocumented#SkColorSpace'>static</a> <a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a> <a href='#SkImageInfo_MakeN32'>MakeN32</a>(<a href='#SkImageInfo_MakeN32'>int</a> <a href='#SkImageInfo_MakeN32'>width</a>, <a href='#SkImageInfo_MakeN32'>int</a> <a href='#SkImageInfo_MakeN32'>height</a>, <a href='SkImageInfo_Reference#SkAlphaType'>SkAlphaType</a> <a href='SkImageInfo_Reference#SkAlphaType'>at</a>,
- <a href='undocumented#sk_sp'>sk_sp</a><<a href='undocumented#SkColorSpace'>SkColorSpace</a>> <a href='undocumented#SkColorSpace'>cs</a> = <a href='undocumented#SkColorSpace'>nullptr</a>);
- <a href='undocumented#SkColorSpace'>static</a> <a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a> <a href='#SkImageInfo_MakeS32'>MakeS32</a>(<a href='#SkImageInfo_MakeS32'>int</a> <a href='#SkImageInfo_MakeS32'>width</a>, <a href='#SkImageInfo_MakeS32'>int</a> <a href='#SkImageInfo_MakeS32'>height</a>, <a href='SkImageInfo_Reference#SkAlphaType'>SkAlphaType</a> <a href='SkImageInfo_Reference#SkAlphaType'>at</a>);
- <a href='SkImageInfo_Reference#SkAlphaType'>static</a> <a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a> <a href='#SkImageInfo_MakeN32Premul'>MakeN32Premul</a>(<a href='#SkImageInfo_MakeN32Premul'>int</a> <a href='#SkImageInfo_MakeN32Premul'>width</a>, <a href='#SkImageInfo_MakeN32Premul'>int</a> <a href='#SkImageInfo_MakeN32Premul'>height</a>, <a href='undocumented#sk_sp'>sk_sp</a><<a href='undocumented#SkColorSpace'>SkColorSpace</a>> <a href='undocumented#SkColorSpace'>cs</a> = <a href='undocumented#SkColorSpace'>nullptr</a>);
- <a href='undocumented#SkColorSpace'>static</a> <a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a> <a href='#SkImageInfo_MakeN32Premul'>MakeN32Premul</a>(<a href='#SkImageInfo_MakeN32Premul'>const</a> <a href='undocumented#SkISize'>SkISize</a>& <a href='undocumented#Size'>size</a>);
- <a href='undocumented#Size'>static</a> <a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a> <a href='#SkImageInfo_MakeA8'>MakeA8</a>(<a href='#SkImageInfo_MakeA8'>int</a> <a href='#SkImageInfo_MakeA8'>width</a>, <a href='#SkImageInfo_MakeA8'>int</a> <a href='#SkImageInfo_MakeA8'>height</a>);
- <a href='#SkImageInfo_MakeA8'>static</a> <a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a> <a href='#SkImageInfo_MakeUnknown'>MakeUnknown</a>(<a href='#SkImageInfo_MakeUnknown'>int</a> <a href='#SkImageInfo_MakeUnknown'>width</a>, <a href='#SkImageInfo_MakeUnknown'>int</a> <a href='#SkImageInfo_MakeUnknown'>height</a>);
- <a href='#SkImageInfo_MakeUnknown'>static</a> <a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a> <a href='#SkImageInfo_MakeUnknown'>MakeUnknown</a>();
- <a href='#SkImageInfo_MakeUnknown'>int</a> <a href='#SkImageInfo_width'>width()</a> <a href='#SkImageInfo_width'>const</a>;
- <a href='#SkImageInfo_width'>int</a> <a href='#SkImageInfo_height'>height()</a> <a href='#SkImageInfo_height'>const</a>;
- <a href='SkImageInfo_Reference#SkColorType'>SkColorType</a> <a href='#SkImageInfo_colorType'>colorType</a>() <a href='#SkImageInfo_colorType'>const</a>;
- <a href='SkImageInfo_Reference#SkAlphaType'>SkAlphaType</a> <a href='#SkImageInfo_alphaType'>alphaType</a>() <a href='#SkImageInfo_alphaType'>const</a>;
- <a href='undocumented#SkColorSpace'>SkColorSpace</a>* <a href='#SkImageInfo_colorSpace'>colorSpace</a>() <a href='#SkImageInfo_colorSpace'>const</a>;
- <a href='undocumented#sk_sp'>sk_sp</a><<a href='undocumented#SkColorSpace'>SkColorSpace</a>> <a href='#SkImageInfo_refColorSpace'>refColorSpace</a>() <a href='#SkImageInfo_refColorSpace'>const</a>;
- <a href='#SkImageInfo_refColorSpace'>bool</a> <a href='#SkImageInfo_isEmpty'>isEmpty</a>() <a href='#SkImageInfo_isEmpty'>const</a>;
- <a href='#SkImageInfo_isEmpty'>bool</a> <a href='#SkImageInfo_isOpaque'>isOpaque</a>() <a href='#SkImageInfo_isOpaque'>const</a>;
- <a href='undocumented#SkISize'>SkISize</a> <a href='#SkImageInfo_dimensions'>dimensions()</a> <a href='#SkImageInfo_dimensions'>const</a>;
- <a href='SkIRect_Reference#SkIRect'>SkIRect</a> <a href='#SkImageInfo_bounds'>bounds()</a> <a href='#SkImageInfo_bounds'>const</a>;
- <a href='#SkImageInfo_bounds'>bool</a> <a href='#SkImageInfo_gammaCloseToSRGB'>gammaCloseToSRGB</a>() <a href='#SkImageInfo_gammaCloseToSRGB'>const</a>;
- <a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a> <a href='#SkImageInfo_makeWH'>makeWH</a>(<a href='#SkImageInfo_makeWH'>int</a> <a href='#SkImageInfo_makeWH'>newWidth</a>, <a href='#SkImageInfo_makeWH'>int</a> <a href='#SkImageInfo_makeWH'>newHeight</a>) <a href='#SkImageInfo_makeWH'>const</a>;
- <a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a> <a href='#SkImageInfo_makeAlphaType'>makeAlphaType</a>(<a href='SkImageInfo_Reference#SkAlphaType'>SkAlphaType</a> <a href='SkImageInfo_Reference#SkAlphaType'>newAlphaType</a>) <a href='SkImageInfo_Reference#SkAlphaType'>const</a>;
- <a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a> <a href='#SkImageInfo_makeColorType'>makeColorType</a>(<a href='SkImageInfo_Reference#SkColorType'>SkColorType</a> <a href='SkImageInfo_Reference#SkColorType'>newColorType</a>) <a href='SkImageInfo_Reference#SkColorType'>const</a>;
- <a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a> <a href='#SkImageInfo_makeColorSpace'>makeColorSpace</a>(<a href='undocumented#sk_sp'>sk_sp</a><<a href='undocumented#SkColorSpace'>SkColorSpace</a>> <a href='undocumented#SkColorSpace'>cs</a>) <a href='undocumented#SkColorSpace'>const</a>;
- <a href='undocumented#SkColorSpace'>int</a> <a href='#SkImageInfo_bytesPerPixel'>bytesPerPixel</a>() <a href='#SkImageInfo_bytesPerPixel'>const</a>;
- <a href='#SkImageInfo_bytesPerPixel'>int</a> <a href='#SkImageInfo_shiftPerPixel'>shiftPerPixel</a>() <a href='#SkImageInfo_shiftPerPixel'>const</a>;
- <a href='#SkImageInfo_shiftPerPixel'>uint64_t</a> <a href='#SkImageInfo_minRowBytes64'>minRowBytes64</a>() <a href='#SkImageInfo_minRowBytes64'>const</a>;
- <a href='#SkImageInfo_minRowBytes64'>size_t</a> <a href='#SkImageInfo_minRowBytes'>minRowBytes</a>() <a href='#SkImageInfo_minRowBytes'>const</a>;
- <a href='#SkImageInfo_minRowBytes'>size_t</a> <a href='#SkImageInfo_computeOffset'>computeOffset</a>(<a href='#SkImageInfo_computeOffset'>int</a> <a href='#SkImageInfo_computeOffset'>x</a>, <a href='#SkImageInfo_computeOffset'>int</a> <a href='#SkImageInfo_computeOffset'>y</a>, <a href='#SkImageInfo_computeOffset'>size_t</a> <a href='#SkImageInfo_computeOffset'>rowBytes</a>) <a href='#SkImageInfo_computeOffset'>const</a>;
- <a href='#SkImageInfo_computeOffset'>bool</a> <a href='#SkImageInfo_computeOffset'>operator</a>==(<a href='#SkImageInfo_computeOffset'>const</a> <a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a>& <a href='SkImageInfo_Reference#SkImageInfo'>other</a>) <a href='SkImageInfo_Reference#SkImageInfo'>const</a>;
- <a href='SkImageInfo_Reference#SkImageInfo'>bool</a> <a href='SkImageInfo_Reference#SkImageInfo'>operator</a>!=(<a href='SkImageInfo_Reference#SkImageInfo'>const</a> <a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a>& <a href='SkImageInfo_Reference#SkImageInfo'>other</a>) <a href='SkImageInfo_Reference#SkImageInfo'>const</a>;
- <a href='SkImageInfo_Reference#SkImageInfo'>size_t</a> <a href='#SkImageInfo_computeByteSize'>computeByteSize</a>(<a href='#SkImageInfo_computeByteSize'>size_t</a> <a href='#SkImageInfo_computeByteSize'>rowBytes</a>) <a href='#SkImageInfo_computeByteSize'>const</a>;
- <a href='#SkImageInfo_computeByteSize'>size_t</a> <a href='#SkImageInfo_computeMinByteSize'>computeMinByteSize</a>() <a href='#SkImageInfo_computeMinByteSize'>const</a>;
- <a href='#SkImageInfo_computeMinByteSize'>static</a> <a href='#SkImageInfo_computeMinByteSize'>bool</a> <a href='#SkImageInfo_ByteSizeOverflowed'>ByteSizeOverflowed</a>(<a href='#SkImageInfo_ByteSizeOverflowed'>size_t</a> <a href='#SkImageInfo_ByteSizeOverflowed'>byteSize</a>);
- <a href='#SkImageInfo_ByteSizeOverflowed'>bool</a> <a href='#SkImageInfo_validRowBytes'>validRowBytes</a>(<a href='#SkImageInfo_validRowBytes'>size_t</a> <a href='#SkImageInfo_validRowBytes'>rowBytes</a>) <a href='#SkImageInfo_validRowBytes'>const</a>;
- <a href='#SkImageInfo_validRowBytes'>void</a> <a href='#SkImageInfo_reset'>reset()</a>;
- <a href='#SkImageInfo_reset'>void</a> <a href='#SkImageInfo_validate'>validate()</a> <a href='#SkImageInfo_validate'>const</a>;
+ static <a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a> <a href='#SkImageInfo_Make'>Make</a>(int width, int height, <a href='SkImageInfo_Reference#SkColorType'>SkColorType</a> ct, <a href='SkImageInfo_Reference#SkAlphaType'>SkAlphaType</a> at,
+ <a href='undocumented#sk_sp'>sk_sp</a><<a href='undocumented#SkColorSpace'>SkColorSpace</a>> cs = nullptr);
+ static <a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a> <a href='#SkImageInfo_MakeN32'>MakeN32</a>(int width, int height, <a href='SkImageInfo_Reference#SkAlphaType'>SkAlphaType</a> at,
+ <a href='undocumented#sk_sp'>sk_sp</a><<a href='undocumented#SkColorSpace'>SkColorSpace</a>> cs = nullptr);
+ static <a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a> <a href='#SkImageInfo_MakeS32'>MakeS32</a>(int width, int height, <a href='SkImageInfo_Reference#SkAlphaType'>SkAlphaType</a> at);
+ static <a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a> <a href='#SkImageInfo_MakeN32Premul'>MakeN32Premul</a>(int width, int height, <a href='undocumented#sk_sp'>sk_sp</a><<a href='undocumented#SkColorSpace'>SkColorSpace</a>> cs = nullptr);
+ static <a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a> <a href='#SkImageInfo_MakeN32Premul'>MakeN32Premul</a>(const <a href='undocumented#SkISize'>SkISize</a>& <a href='undocumented#Size'>size</a>);
+ static <a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a> <a href='#SkImageInfo_MakeA8'>MakeA8</a>(int width, int height);
+ static <a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a> <a href='#SkImageInfo_MakeUnknown'>MakeUnknown</a>(int width, int height);
+ static <a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a> <a href='#SkImageInfo_MakeUnknown'>MakeUnknown</a>();
+ int <a href='#SkImageInfo_width'>width()</a> const;
+ int <a href='#SkImageInfo_height'>height()</a> const;
+ <a href='SkImageInfo_Reference#SkColorType'>SkColorType</a> <a href='#SkImageInfo_colorType'>colorType</a>() const;
+ <a href='SkImageInfo_Reference#SkAlphaType'>SkAlphaType</a> <a href='#SkImageInfo_alphaType'>alphaType</a>() const;
+ <a href='undocumented#SkColorSpace'>SkColorSpace</a>* <a href='#SkImageInfo_colorSpace'>colorSpace</a>() const;
+ <a href='undocumented#sk_sp'>sk_sp</a><<a href='undocumented#SkColorSpace'>SkColorSpace</a>> <a href='#SkImageInfo_refColorSpace'>refColorSpace</a>() const;
+ bool <a href='#SkImageInfo_isEmpty'>isEmpty</a>() const;
+ bool <a href='#SkImageInfo_isOpaque'>isOpaque</a>() const;
+ <a href='undocumented#SkISize'>SkISize</a> <a href='#SkImageInfo_dimensions'>dimensions()</a> const;
+ <a href='SkIRect_Reference#SkIRect'>SkIRect</a> <a href='#SkImageInfo_bounds'>bounds()</a> const;
+ bool <a href='#SkImageInfo_gammaCloseToSRGB'>gammaCloseToSRGB</a>() const;
+ <a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a> <a href='#SkImageInfo_makeWH'>makeWH</a>(int newWidth, int newHeight) const;
+ <a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a> <a href='#SkImageInfo_makeAlphaType'>makeAlphaType</a>(<a href='SkImageInfo_Reference#SkAlphaType'>SkAlphaType</a> newAlphaType) const;
+ <a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a> <a href='#SkImageInfo_makeColorType'>makeColorType</a>(<a href='SkImageInfo_Reference#SkColorType'>SkColorType</a> newColorType) const;
+ <a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a> <a href='#SkImageInfo_makeColorSpace'>makeColorSpace</a>(<a href='undocumented#sk_sp'>sk_sp</a><<a href='undocumented#SkColorSpace'>SkColorSpace</a>> cs) const;
+ int <a href='#SkImageInfo_bytesPerPixel'>bytesPerPixel</a>() const;
+ int <a href='#SkImageInfo_shiftPerPixel'>shiftPerPixel</a>() const;
+ uint64_t <a href='#SkImageInfo_minRowBytes64'>minRowBytes64</a>() const;
+ size_t <a href='#SkImageInfo_minRowBytes'>minRowBytes</a>() const;
+ size_t <a href='#SkImageInfo_computeOffset'>computeOffset</a>(int x, int y, size_t rowBytes) const;
+ bool operator==(const <a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a>& other) const;
+ bool operator!=(const <a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a>& other) const;
+ size_t <a href='#SkImageInfo_computeByteSize'>computeByteSize</a>(size_t rowBytes) const;
+ size_t <a href='#SkImageInfo_computeMinByteSize'>computeMinByteSize</a>() const;
+ static bool <a href='#SkImageInfo_ByteSizeOverflowed'>ByteSizeOverflowed</a>(size_t byteSize);
+ bool <a href='#SkImageInfo_validRowBytes'>validRowBytes</a>(size_t rowBytes) const;
+ void <a href='#SkImageInfo_reset'>reset()</a>;
+ void <a href='#SkImageInfo_validate'>validate()</a> const;
};
</pre>
-Describes <a href='undocumented#Pixel'>pixel</a> <a href='undocumented#Pixel'>dimensions</a> <a href='undocumented#Pixel'>and</a> <a href='undocumented#Pixel'>encoding</a>. <a href='SkBitmap_Reference#Bitmap'>Bitmap</a>, <a href='SkImage_Reference#Image'>Image</a>, <a href='SkPixmap_Reference#Pixmap'>Pixmap</a>, <a href='SkPixmap_Reference#Pixmap'>and</a> <a href='SkSurface_Reference#Surface'>Surface</a>
-<a href='SkSurface_Reference#Surface'>can</a> <a href='SkSurface_Reference#Surface'>be</a> <a href='SkSurface_Reference#Surface'>created</a> <a href='SkSurface_Reference#Surface'>from</a> <a href='#Image_Info'>Image_Info</a>. <a href='#Image_Info'>Image_Info</a> <a href='#Image_Info'>can</a> <a href='#Image_Info'>be</a> <a href='#Image_Info'>retrieved</a> <a href='#Image_Info'>from</a> <a href='SkBitmap_Reference#Bitmap'>Bitmap</a> <a href='SkBitmap_Reference#Bitmap'>and</a>
-<a href='SkPixmap_Reference#Pixmap'>Pixmap</a>, <a href='SkPixmap_Reference#Pixmap'>but</a> <a href='SkPixmap_Reference#Pixmap'>not</a> <a href='SkPixmap_Reference#Pixmap'>from</a> <a href='SkImage_Reference#Image'>Image</a> <a href='SkImage_Reference#Image'>and</a> <a href='SkSurface_Reference#Surface'>Surface</a>. <a href='SkSurface_Reference#Surface'>For</a> <a href='SkSurface_Reference#Surface'>example</a>, <a href='SkImage_Reference#Image'>Image</a> <a href='SkImage_Reference#Image'>and</a> <a href='SkSurface_Reference#Surface'>Surface</a>
-<a href='SkSurface_Reference#Surface'>implementations</a> <a href='SkSurface_Reference#Surface'>may</a> <a href='SkSurface_Reference#Surface'>defer</a> <a href='undocumented#Pixel'>pixel</a> <a href='undocumented#Pixel'>depth</a>, <a href='undocumented#Pixel'>so</a> <a href='undocumented#Pixel'>may</a> <a href='undocumented#Pixel'>not</a> <a href='undocumented#Pixel'>completely</a> <a href='undocumented#Pixel'>specify</a> <a href='#Image_Info'>Image_Info</a>.
+Describes <a href='undocumented#Pixel'>pixel</a> dimensions and encoding. <a href='SkBitmap_Reference#Bitmap'>Bitmap</a>, <a href='SkImage_Reference#Image'>Image</a>, <a href='SkPixmap_Reference#Pixmap'>Pixmap</a>, and <a href='SkSurface_Reference#Surface'>Surface</a>
+can be created from <a href='#Image_Info'>Image_Info</a>. <a href='#Image_Info'>Image_Info</a> can be retrieved from <a href='SkBitmap_Reference#Bitmap'>Bitmap</a> and
+<a href='SkPixmap_Reference#Pixmap'>Pixmap</a>, but not from <a href='SkImage_Reference#Image'>Image</a> and <a href='SkSurface_Reference#Surface'>Surface</a>. For example, <a href='SkImage_Reference#Image'>Image</a> and <a href='SkSurface_Reference#Surface'>Surface</a>
+implementations may defer <a href='undocumented#Pixel'>pixel</a> depth, so may not completely specify <a href='#Image_Info'>Image_Info</a>.
-<a href='#Image_Info'>Image_Info</a> <a href='#Image_Info'>contains</a> <a href='#Image_Info'>dimensions</a>, <a href='#Image_Info'>the</a> <a href='undocumented#Pixel'>pixel</a> <a href='undocumented#Pixel'>integral</a> <a href='undocumented#Pixel'>width</a> <a href='undocumented#Pixel'>and</a> <a href='undocumented#Pixel'>height</a>. <a href='undocumented#Pixel'>It</a> <a href='undocumented#Pixel'>encodes</a>
-<a href='undocumented#Pixel'>how</a> <a href='undocumented#Pixel'>pixel</a> <a href='undocumented#Pixel'>bits</a> <a href='undocumented#Pixel'>describe</a> <a href='#Color_Alpha'>Color_Alpha</a>, <a href='#Color_Alpha'>transparency</a>; <a href='SkColor_Reference#Color'>Color</a> <a href='SkColor_Reference#Color'>components</a> <a href='SkColor_Reference#Color'>red</a>, <a href='SkColor_Reference#Color'>blue</a>,
-<a href='SkColor_Reference#Color'>and</a> <a href='SkColor_Reference#Color'>green</a>; <a href='SkColor_Reference#Color'>and</a> <a href='#Color_Space'>Color_Space</a>, <a href='#Color_Space'>the</a> <a href='#Color_Space'>range</a> <a href='#Color_Space'>and</a> <a href='#Color_Space'>linearity</a> <a href='#Color_Space'>of</a> <a href='#Color_Space'>colors</a>.
+<a href='#Image_Info'>Image_Info</a> contains dimensions, the <a href='undocumented#Pixel'>pixel</a> integral width and height. It encodes
+how <a href='undocumented#Pixel'>pixel</a> bits describe <a href='#Color_Alpha'>Color_Alpha</a>, transparency; <a href='SkColor_Reference#Color'>Color</a> components red, blue,
+and green; and <a href='#Color_Space'>Color_Space</a>, the range and linearity of colors.
<a name='SkImageInfo_empty_constructor'></a>
@@ -999,7 +999,7 @@
<a href='#SkImageInfo_empty_constructor'>SkImageInfo()</a>
</pre>
-Creates an empty <a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a> <a href='SkImageInfo_Reference#SkImageInfo'>with</a> <a href='SkImageInfo_Reference#kUnknown_SkColorType'>kUnknown_SkColorType</a>, <a href='SkImageInfo_Reference#kUnknown_SkAlphaType'>kUnknown_SkAlphaType</a>,
+Creates an empty <a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a> with <a href='SkImageInfo_Reference#kUnknown_SkColorType'>kUnknown_SkColorType</a>, <a href='SkImageInfo_Reference#kUnknown_SkAlphaType'>kUnknown_SkAlphaType</a>,
a width and height of zero, and no <a href='undocumented#SkColorSpace'>SkColorSpace</a>.
### Return Value
@@ -1008,8 +1008,8 @@
### Example
-<div><fiddle-embed name="f206f698e7a8db3d84334c26b1a702dc"><div>An empty <a href='#Image_Info'>Image_Info</a> <a href='#Image_Info'>may</a> <a href='#Image_Info'>be</a> <a href='#Image_Info'>passed</a> <a href='#Image_Info'>to</a> <a href='SkCanvas_Reference#SkCanvas'>SkCanvas</a>::<a href='#SkCanvas_accessTopLayerPixels'>accessTopLayerPixels</a> <a href='#SkCanvas_accessTopLayerPixels'>as</a> <a href='#SkCanvas_accessTopLayerPixels'>storage</a>
-<a href='#SkCanvas_accessTopLayerPixels'>for</a> <a href='#SkCanvas_accessTopLayerPixels'>the</a> <a href='SkCanvas_Reference#Canvas'>Canvas</a> <a href='SkCanvas_Reference#Canvas'>actual</a> <a href='#Image_Info'>Image_Info</a>.
+<div><fiddle-embed name="f206f698e7a8db3d84334c26b1a702dc"><div>An empty <a href='#Image_Info'>Image_Info</a> may be passed to <a href='SkCanvas_Reference#SkCanvas'>SkCanvas</a>::<a href='#SkCanvas_accessTopLayerPixels'>accessTopLayerPixels</a> as storage
+for the <a href='SkCanvas_Reference#Canvas'>Canvas</a> actual <a href='#Image_Info'>Image_Info</a>.
</div></fiddle-embed></div>
### See Also
@@ -1021,14 +1021,14 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-static <a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a> <a href='#SkImageInfo_Make'>Make</a>(<a href='#SkImageInfo_Make'>int</a> <a href='#SkImageInfo_Make'>width</a>, <a href='#SkImageInfo_Make'>int</a> <a href='#SkImageInfo_Make'>height</a>, <a href='SkImageInfo_Reference#SkColorType'>SkColorType</a> <a href='SkImageInfo_Reference#SkColorType'>ct</a>, <a href='SkImageInfo_Reference#SkAlphaType'>SkAlphaType</a> <a href='SkImageInfo_Reference#SkAlphaType'>at</a>,
- <a href='undocumented#sk_sp'>sk_sp</a>&<a href='undocumented#sk_sp'>lt</a>;<a href='undocumented#SkColorSpace'>SkColorSpace</a>&<a href='undocumented#SkColorSpace'>gt</a>; <a href='undocumented#SkColorSpace'>cs</a> = <a href='undocumented#SkColorSpace'>nullptr</a>)
+static <a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a> <a href='#SkImageInfo_Make'>Make</a>(int width, int height, <a href='SkImageInfo_Reference#SkColorType'>SkColorType</a> ct, <a href='SkImageInfo_Reference#SkAlphaType'>SkAlphaType</a> at,
+ <a href='undocumented#sk_sp'>sk_sp</a><<a href='undocumented#SkColorSpace'>SkColorSpace</a>> cs = nullptr)
</pre>
-Creates <a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a> <a href='SkImageInfo_Reference#SkImageInfo'>from</a> <a href='SkImageInfo_Reference#SkImageInfo'>integral</a> <a href='SkImageInfo_Reference#SkImageInfo'>dimensions</a> <a href='#SkImageInfo_Make_width'>width</a> <a href='#SkImageInfo_Make_width'>and</a> <a href='#SkImageInfo_Make_height'>height</a>, <a href='SkImageInfo_Reference#SkColorType'>SkColorType</a> <a href='#SkImageInfo_Make_ct'>ct</a>,
-<a href='SkImageInfo_Reference#SkAlphaType'>SkAlphaType</a> <a href='#SkImageInfo_Make_at'>at</a>, <a href='#SkImageInfo_Make_at'>and</a> <a href='#SkImageInfo_Make_at'>optionally</a> <a href='undocumented#SkColorSpace'>SkColorSpace</a> <a href='#SkImageInfo_Make_cs'>cs</a>.
+Creates <a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a> from integral dimensions <a href='#SkImageInfo_Make_width'>width</a> and <a href='#SkImageInfo_Make_height'>height</a>, <a href='SkImageInfo_Reference#SkColorType'>SkColorType</a> <a href='#SkImageInfo_Make_ct'>ct</a>,
+<a href='SkImageInfo_Reference#SkAlphaType'>SkAlphaType</a> <a href='#SkImageInfo_Make_at'>at</a>, and optionally <a href='undocumented#SkColorSpace'>SkColorSpace</a> <a href='#SkImageInfo_Make_cs'>cs</a>.
-If <a href='undocumented#SkColorSpace'>SkColorSpace</a> <a href='#SkImageInfo_Make_cs'>cs</a> <a href='#SkImageInfo_Make_cs'>is</a> <a href='#SkImageInfo_Make_cs'>nullptr</a> <a href='#SkImageInfo_Make_cs'>and</a> <a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a> <a href='SkImageInfo_Reference#SkImageInfo'>is</a> <a href='SkImageInfo_Reference#SkImageInfo'>part</a> <a href='SkImageInfo_Reference#SkImageInfo'>of</a> <a href='SkImageInfo_Reference#SkImageInfo'>drawing</a> <a href='SkImageInfo_Reference#SkImageInfo'>source</a>: <a href='undocumented#SkColorSpace'>SkColorSpace</a>
+If <a href='undocumented#SkColorSpace'>SkColorSpace</a> <a href='#SkImageInfo_Make_cs'>cs</a> is nullptr and <a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a> is part of drawing source: <a href='undocumented#SkColorSpace'>SkColorSpace</a>
defaults to sRGB, mapping into <a href='SkSurface_Reference#SkSurface'>SkSurface</a> <a href='undocumented#SkColorSpace'>SkColorSpace</a>.
Parameters are not validated to see if their values are legal, or that the
@@ -1037,10 +1037,10 @@
### Parameters
<table> <tr> <td><a name='SkImageInfo_Make_width'><code><strong>width</strong></code></a></td>
- <td><a href='undocumented#Pixel'>pixel</a> <a href='undocumented#Pixel'>column</a> <a href='undocumented#Pixel'>count</a>; <a href='undocumented#Pixel'>must</a> <a href='undocumented#Pixel'>be</a> <a href='undocumented#Pixel'>zero</a> <a href='undocumented#Pixel'>or</a> <a href='undocumented#Pixel'>greater</a></td>
+ <td><a href='undocumented#Pixel'>pixel</a> column count; must be zero or greater</td>
</tr>
<tr> <td><a name='SkImageInfo_Make_height'><code><strong>height</strong></code></a></td>
- <td><a href='undocumented#Pixel'>pixel</a> <a href='undocumented#Pixel'>row</a> <a href='undocumented#Pixel'>count</a>; <a href='undocumented#Pixel'>must</a> <a href='undocumented#Pixel'>be</a> <a href='undocumented#Pixel'>zero</a> <a href='undocumented#Pixel'>or</a> <a href='undocumented#Pixel'>greater</a></td>
+ <td><a href='undocumented#Pixel'>pixel</a> row count; must be zero or greater</td>
</tr>
<tr> <td><a name='SkImageInfo_Make_ct'><code><strong>ct</strong></code></a></td>
<td>one of:</td>
@@ -1086,14 +1086,14 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-static <a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a> <a href='#SkImageInfo_MakeN32'>MakeN32</a>(<a href='#SkImageInfo_MakeN32'>int</a> <a href='#SkImageInfo_MakeN32'>width</a>, <a href='#SkImageInfo_MakeN32'>int</a> <a href='#SkImageInfo_MakeN32'>height</a>, <a href='SkImageInfo_Reference#SkAlphaType'>SkAlphaType</a> <a href='SkImageInfo_Reference#SkAlphaType'>at</a>, <a href='undocumented#sk_sp'>sk_sp</a>&<a href='undocumented#sk_sp'>lt</a>;<a href='undocumented#SkColorSpace'>SkColorSpace</a>&<a href='undocumented#SkColorSpace'>gt</a>; <a href='undocumented#SkColorSpace'>cs</a> = <a href='undocumented#SkColorSpace'>nullptr</a>)
+static <a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a> <a href='#SkImageInfo_MakeN32'>MakeN32</a>(int width, int height, <a href='SkImageInfo_Reference#SkAlphaType'>SkAlphaType</a> at, <a href='undocumented#sk_sp'>sk_sp</a><<a href='undocumented#SkColorSpace'>SkColorSpace</a>> cs = nullptr)
</pre>
-Creates <a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a> <a href='SkImageInfo_Reference#SkImageInfo'>from</a> <a href='SkImageInfo_Reference#SkImageInfo'>integral</a> <a href='SkImageInfo_Reference#SkImageInfo'>dimensions</a> <a href='#SkImageInfo_MakeN32_width'>width</a> <a href='#SkImageInfo_MakeN32_width'>and</a> <a href='#SkImageInfo_MakeN32_height'>height</a>, <a href='SkImageInfo_Reference#kN32_SkColorType'>kN32_SkColorType</a>,
-<a href='SkImageInfo_Reference#SkAlphaType'>SkAlphaType</a> <a href='#SkImageInfo_MakeN32_at'>at</a>, <a href='#SkImageInfo_MakeN32_at'>and</a> <a href='#SkImageInfo_MakeN32_at'>optionally</a> <a href='undocumented#SkColorSpace'>SkColorSpace</a> <a href='#SkImageInfo_MakeN32_cs'>cs</a>. <a href='SkImageInfo_Reference#kN32_SkColorType'>kN32_SkColorType</a> <a href='SkImageInfo_Reference#kN32_SkColorType'>will</a> <a href='SkImageInfo_Reference#kN32_SkColorType'>equal</a> <a href='SkImageInfo_Reference#kN32_SkColorType'>either</a>
-<a href='SkImageInfo_Reference#kBGRA_8888_SkColorType'>kBGRA_8888_SkColorType</a> <a href='SkImageInfo_Reference#kBGRA_8888_SkColorType'>or</a> <a href='SkImageInfo_Reference#kRGBA_8888_SkColorType'>kRGBA_8888_SkColorType</a>, <a href='SkImageInfo_Reference#kRGBA_8888_SkColorType'>whichever</a> <a href='SkImageInfo_Reference#kRGBA_8888_SkColorType'>is</a> <a href='SkImageInfo_Reference#kRGBA_8888_SkColorType'>optimal</a>.
+Creates <a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a> from integral dimensions <a href='#SkImageInfo_MakeN32_width'>width</a> and <a href='#SkImageInfo_MakeN32_height'>height</a>, <a href='SkImageInfo_Reference#kN32_SkColorType'>kN32_SkColorType</a>,
+<a href='SkImageInfo_Reference#SkAlphaType'>SkAlphaType</a> <a href='#SkImageInfo_MakeN32_at'>at</a>, and optionally <a href='undocumented#SkColorSpace'>SkColorSpace</a> <a href='#SkImageInfo_MakeN32_cs'>cs</a>. <a href='SkImageInfo_Reference#kN32_SkColorType'>kN32_SkColorType</a> will equal either
+<a href='SkImageInfo_Reference#kBGRA_8888_SkColorType'>kBGRA_8888_SkColorType</a> or <a href='SkImageInfo_Reference#kRGBA_8888_SkColorType'>kRGBA_8888_SkColorType</a>, whichever is optimal.
-If <a href='undocumented#SkColorSpace'>SkColorSpace</a> <a href='#SkImageInfo_MakeN32_cs'>cs</a> <a href='#SkImageInfo_MakeN32_cs'>is</a> <a href='#SkImageInfo_MakeN32_cs'>nullptr</a> <a href='#SkImageInfo_MakeN32_cs'>and</a> <a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a> <a href='SkImageInfo_Reference#SkImageInfo'>is</a> <a href='SkImageInfo_Reference#SkImageInfo'>part</a> <a href='SkImageInfo_Reference#SkImageInfo'>of</a> <a href='SkImageInfo_Reference#SkImageInfo'>drawing</a> <a href='SkImageInfo_Reference#SkImageInfo'>source</a>: <a href='undocumented#SkColorSpace'>SkColorSpace</a>
+If <a href='undocumented#SkColorSpace'>SkColorSpace</a> <a href='#SkImageInfo_MakeN32_cs'>cs</a> is nullptr and <a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a> is part of drawing source: <a href='undocumented#SkColorSpace'>SkColorSpace</a>
defaults to sRGB, mapping into <a href='SkSurface_Reference#SkSurface'>SkSurface</a> <a href='undocumented#SkColorSpace'>SkColorSpace</a>.
Parameters are not validated to see if their values are legal, or that the
@@ -1102,10 +1102,10 @@
### Parameters
<table> <tr> <td><a name='SkImageInfo_MakeN32_width'><code><strong>width</strong></code></a></td>
- <td><a href='undocumented#Pixel'>pixel</a> <a href='undocumented#Pixel'>column</a> <a href='undocumented#Pixel'>count</a>; <a href='undocumented#Pixel'>must</a> <a href='undocumented#Pixel'>be</a> <a href='undocumented#Pixel'>zero</a> <a href='undocumented#Pixel'>or</a> <a href='undocumented#Pixel'>greater</a></td>
+ <td><a href='undocumented#Pixel'>pixel</a> column count; must be zero or greater</td>
</tr>
<tr> <td><a name='SkImageInfo_MakeN32_height'><code><strong>height</strong></code></a></td>
- <td><a href='undocumented#Pixel'>pixel</a> <a href='undocumented#Pixel'>row</a> <a href='undocumented#Pixel'>count</a>; <a href='undocumented#Pixel'>must</a> <a href='undocumented#Pixel'>be</a> <a href='undocumented#Pixel'>zero</a> <a href='undocumented#Pixel'>or</a> <a href='undocumented#Pixel'>greater</a></td>
+ <td><a href='undocumented#Pixel'>pixel</a> row count; must be zero or greater</td>
</tr>
<tr> <td><a name='SkImageInfo_MakeN32_at'><code><strong>at</strong></code></a></td>
<td>one of:</td>
@@ -1139,11 +1139,11 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-static <a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a> <a href='#SkImageInfo_MakeS32'>MakeS32</a>(<a href='#SkImageInfo_MakeS32'>int</a> <a href='#SkImageInfo_MakeS32'>width</a>, <a href='#SkImageInfo_MakeS32'>int</a> <a href='#SkImageInfo_MakeS32'>height</a>, <a href='SkImageInfo_Reference#SkAlphaType'>SkAlphaType</a> <a href='SkImageInfo_Reference#SkAlphaType'>at</a>)
+static <a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a> <a href='#SkImageInfo_MakeS32'>MakeS32</a>(int width, int height, <a href='SkImageInfo_Reference#SkAlphaType'>SkAlphaType</a> at)
</pre>
-Creates <a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a> <a href='SkImageInfo_Reference#SkImageInfo'>from</a> <a href='SkImageInfo_Reference#SkImageInfo'>integral</a> <a href='SkImageInfo_Reference#SkImageInfo'>dimensions</a> <a href='#SkImageInfo_MakeS32_width'>width</a> <a href='#SkImageInfo_MakeS32_width'>and</a> <a href='#SkImageInfo_MakeS32_height'>height</a>, <a href='SkImageInfo_Reference#kN32_SkColorType'>kN32_SkColorType</a>,
-<a href='SkImageInfo_Reference#SkAlphaType'>SkAlphaType</a> <a href='#SkImageInfo_MakeS32_at'>at</a>, <a href='#SkImageInfo_MakeS32_at'>with</a> <a href='#SkImageInfo_MakeS32_at'>sRGB</a> <a href='undocumented#SkColorSpace'>SkColorSpace</a>.
+Creates <a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a> from integral dimensions <a href='#SkImageInfo_MakeS32_width'>width</a> and <a href='#SkImageInfo_MakeS32_height'>height</a>, <a href='SkImageInfo_Reference#kN32_SkColorType'>kN32_SkColorType</a>,
+<a href='SkImageInfo_Reference#SkAlphaType'>SkAlphaType</a> <a href='#SkImageInfo_MakeS32_at'>at</a>, with sRGB <a href='undocumented#SkColorSpace'>SkColorSpace</a>.
Parameters are not validated to see if their values are legal, or that the
combination is supported.
@@ -1151,10 +1151,10 @@
### Parameters
<table> <tr> <td><a name='SkImageInfo_MakeS32_width'><code><strong>width</strong></code></a></td>
- <td><a href='undocumented#Pixel'>pixel</a> <a href='undocumented#Pixel'>column</a> <a href='undocumented#Pixel'>count</a>; <a href='undocumented#Pixel'>must</a> <a href='undocumented#Pixel'>be</a> <a href='undocumented#Pixel'>zero</a> <a href='undocumented#Pixel'>or</a> <a href='undocumented#Pixel'>greater</a></td>
+ <td><a href='undocumented#Pixel'>pixel</a> column count; must be zero or greater</td>
</tr>
<tr> <td><a name='SkImageInfo_MakeS32_height'><code><strong>height</strong></code></a></td>
- <td><a href='undocumented#Pixel'>pixel</a> <a href='undocumented#Pixel'>row</a> <a href='undocumented#Pixel'>count</a>; <a href='undocumented#Pixel'>must</a> <a href='undocumented#Pixel'>be</a> <a href='undocumented#Pixel'>zero</a> <a href='undocumented#Pixel'>or</a> <a href='undocumented#Pixel'>greater</a></td>
+ <td><a href='undocumented#Pixel'>pixel</a> row count; must be zero or greater</td>
</tr>
<tr> <td><a name='SkImageInfo_MakeS32_at'><code><strong>at</strong></code></a></td>
<td>one of:</td>
@@ -1170,11 +1170,11 @@
### Example
-<div><fiddle-embed name="de418ccb42471d1589508ef3955f8c53"><div>Top gradient is drawn to offScreen without <a href='#Color_Space'>Color_Space</a>. <a href='#Color_Space'>It</a> <a href='#Color_Space'>is</a> <a href='#Color_Space'>darker</a> <a href='#Color_Space'>than</a> <a href='#Color_Space'>middle</a>
-<a href='#Color_Space'>gradient</a>, <a href='#Color_Space'>drawn</a> <a href='#Color_Space'>to</a> <a href='#Color_Space'>offScreen</a> <a href='#Color_Space'>with</a> <a href='#Color_Space'>sRGB</a> <a href='#Color_Space'>Color_Space</a>. <a href='#Color_Space'>Bottom</a> <a href='#Color_Space'>gradient</a> <a href='#Color_Space'>shares</a> <a href='#Color_Space'>bits</a>
-<a href='#Color_Space'>with</a> <a href='#Color_Space'>middle</a>, <a href='#Color_Space'>but</a> <a href='#Color_Space'>does</a> <a href='#Color_Space'>not</a> <a href='#Color_Space'>specify</a> <a href='#Color_Space'>the</a> <a href='#Color_Space'>Color_Space</a> <a href='#Color_Space'>in</a> <a href='#Color_Space'>noColorSpaceBitmap</a>. <a href='#Color_Space'>A</a> <a href='#Color_Space'>source</a>
-<a href='#Color_Space'>without</a> <a href='#Color_Space'>Color_Space</a> <a href='#Color_Space'>is</a> <a href='#Color_Space'>treated</a> <a href='#Color_Space'>as</a> <a href='#Color_Space'>sRGB</a>; <a href='#Color_Space'>the</a> <a href='#Color_Space'>bottom</a> <a href='#Color_Space'>gradient</a> <a href='#Color_Space'>is</a> <a href='#Color_Space'>identical</a> <a href='#Color_Space'>to</a> <a href='#Color_Space'>the</a>
-<a href='#Color_Space'>middle</a> <a href='#Color_Space'>gradient</a>.
+<div><fiddle-embed name="de418ccb42471d1589508ef3955f8c53"><div>Top gradient is drawn to offScreen without <a href='#Color_Space'>Color_Space</a>. It is darker than middle
+gradient, drawn to offScreen with sRGB <a href='#Color_Space'>Color_Space</a>. Bottom gradient shares bits
+with middle, but does not specify the <a href='#Color_Space'>Color_Space</a> in noColorSpaceBitmap. A source
+without <a href='#Color_Space'>Color_Space</a> is treated as sRGB; the bottom gradient is identical to the
+middle gradient.
</div></fiddle-embed></div>
### See Also
@@ -1186,13 +1186,13 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-static <a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a> <a href='#SkImageInfo_MakeN32Premul'>MakeN32Premul</a>(<a href='#SkImageInfo_MakeN32Premul'>int</a> <a href='#SkImageInfo_MakeN32Premul'>width</a>, <a href='#SkImageInfo_MakeN32Premul'>int</a> <a href='#SkImageInfo_MakeN32Premul'>height</a>, <a href='undocumented#sk_sp'>sk_sp</a>&<a href='undocumented#sk_sp'>lt</a>;<a href='undocumented#SkColorSpace'>SkColorSpace</a>&<a href='undocumented#SkColorSpace'>gt</a>; <a href='undocumented#SkColorSpace'>cs</a> = <a href='undocumented#SkColorSpace'>nullptr</a>)
+static <a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a> <a href='#SkImageInfo_MakeN32Premul'>MakeN32Premul</a>(int width, int height, <a href='undocumented#sk_sp'>sk_sp</a><<a href='undocumented#SkColorSpace'>SkColorSpace</a>> cs = nullptr)
</pre>
-Creates <a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a> <a href='SkImageInfo_Reference#SkImageInfo'>from</a> <a href='SkImageInfo_Reference#SkImageInfo'>integral</a> <a href='SkImageInfo_Reference#SkImageInfo'>dimensions</a> <a href='#SkImageInfo_MakeN32Premul_width'>width</a> <a href='#SkImageInfo_MakeN32Premul_width'>and</a> <a href='#SkImageInfo_MakeN32Premul_height'>height</a>, <a href='SkImageInfo_Reference#kN32_SkColorType'>kN32_SkColorType</a>,
-<a href='SkImageInfo_Reference#kPremul_SkAlphaType'>kPremul_SkAlphaType</a>, <a href='SkImageInfo_Reference#kPremul_SkAlphaType'>with</a> <a href='SkImageInfo_Reference#kPremul_SkAlphaType'>optional</a> <a href='undocumented#SkColorSpace'>SkColorSpace</a>.
+Creates <a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a> from integral dimensions <a href='#SkImageInfo_MakeN32Premul_width'>width</a> and <a href='#SkImageInfo_MakeN32Premul_height'>height</a>, <a href='SkImageInfo_Reference#kN32_SkColorType'>kN32_SkColorType</a>,
+<a href='SkImageInfo_Reference#kPremul_SkAlphaType'>kPremul_SkAlphaType</a>, with optional <a href='undocumented#SkColorSpace'>SkColorSpace</a>.
-If <a href='undocumented#SkColorSpace'>SkColorSpace</a> <a href='#SkImageInfo_MakeN32Premul_cs'>cs</a> <a href='#SkImageInfo_MakeN32Premul_cs'>is</a> <a href='#SkImageInfo_MakeN32Premul_cs'>nullptr</a> <a href='#SkImageInfo_MakeN32Premul_cs'>and</a> <a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a> <a href='SkImageInfo_Reference#SkImageInfo'>is</a> <a href='SkImageInfo_Reference#SkImageInfo'>part</a> <a href='SkImageInfo_Reference#SkImageInfo'>of</a> <a href='SkImageInfo_Reference#SkImageInfo'>drawing</a> <a href='SkImageInfo_Reference#SkImageInfo'>source</a>: <a href='undocumented#SkColorSpace'>SkColorSpace</a>
+If <a href='undocumented#SkColorSpace'>SkColorSpace</a> <a href='#SkImageInfo_MakeN32Premul_cs'>cs</a> is nullptr and <a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a> is part of drawing source: <a href='undocumented#SkColorSpace'>SkColorSpace</a>
defaults to sRGB, mapping into <a href='SkSurface_Reference#SkSurface'>SkSurface</a> <a href='undocumented#SkColorSpace'>SkColorSpace</a>.
Parameters are not validated to see if their values are legal, or that the
@@ -1201,10 +1201,10 @@
### Parameters
<table> <tr> <td><a name='SkImageInfo_MakeN32Premul_width'><code><strong>width</strong></code></a></td>
- <td><a href='undocumented#Pixel'>pixel</a> <a href='undocumented#Pixel'>column</a> <a href='undocumented#Pixel'>count</a>; <a href='undocumented#Pixel'>must</a> <a href='undocumented#Pixel'>be</a> <a href='undocumented#Pixel'>zero</a> <a href='undocumented#Pixel'>or</a> <a href='undocumented#Pixel'>greater</a></td>
+ <td><a href='undocumented#Pixel'>pixel</a> column count; must be zero or greater</td>
</tr>
<tr> <td><a name='SkImageInfo_MakeN32Premul_height'><code><strong>height</strong></code></a></td>
- <td><a href='undocumented#Pixel'>pixel</a> <a href='undocumented#Pixel'>row</a> <a href='undocumented#Pixel'>count</a>; <a href='undocumented#Pixel'>must</a> <a href='undocumented#Pixel'>be</a> <a href='undocumented#Pixel'>zero</a> <a href='undocumented#Pixel'>or</a> <a href='undocumented#Pixel'>greater</a></td>
+ <td><a href='undocumented#Pixel'>pixel</a> row count; must be zero or greater</td>
</tr>
<tr> <td><a name='SkImageInfo_MakeN32Premul_cs'><code><strong>cs</strong></code></a></td>
<td>range of colors; may be nullptr</td>
@@ -1228,13 +1228,13 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-static <a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a> <a href='#SkImageInfo_MakeN32Premul'>MakeN32Premul</a>(<a href='#SkImageInfo_MakeN32Premul'>const</a> <a href='undocumented#SkISize'>SkISize</a>& <a href='undocumented#Size'>size</a>)
+static <a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a> <a href='#SkImageInfo_MakeN32Premul'>MakeN32Premul</a>(const <a href='undocumented#SkISize'>SkISize</a>& <a href='undocumented#Size'>size</a>)
</pre>
-Creates <a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a> <a href='SkImageInfo_Reference#SkImageInfo'>from</a> <a href='SkImageInfo_Reference#SkImageInfo'>integral</a> <a href='SkImageInfo_Reference#SkImageInfo'>dimensions</a> <a href='SkImageInfo_Reference#SkImageInfo'>width</a> <a href='SkImageInfo_Reference#SkImageInfo'>and</a> <a href='SkImageInfo_Reference#SkImageInfo'>height</a>, <a href='SkImageInfo_Reference#kN32_SkColorType'>kN32_SkColorType</a>,
-<a href='SkImageInfo_Reference#kPremul_SkAlphaType'>kPremul_SkAlphaType</a>, <a href='SkImageInfo_Reference#kPremul_SkAlphaType'>with</a> <a href='undocumented#SkColorSpace'>SkColorSpace</a> <a href='undocumented#SkColorSpace'>set</a> <a href='undocumented#SkColorSpace'>to</a> <a href='undocumented#SkColorSpace'>nullptr</a>.
+Creates <a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a> from integral dimensions width and height, <a href='SkImageInfo_Reference#kN32_SkColorType'>kN32_SkColorType</a>,
+<a href='SkImageInfo_Reference#kPremul_SkAlphaType'>kPremul_SkAlphaType</a>, with <a href='undocumented#SkColorSpace'>SkColorSpace</a> set to nullptr.
-If <a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a> <a href='SkImageInfo_Reference#SkImageInfo'>is</a> <a href='SkImageInfo_Reference#SkImageInfo'>part</a> <a href='SkImageInfo_Reference#SkImageInfo'>of</a> <a href='SkImageInfo_Reference#SkImageInfo'>drawing</a> <a href='SkImageInfo_Reference#SkImageInfo'>source</a>: <a href='undocumented#SkColorSpace'>SkColorSpace</a> <a href='undocumented#SkColorSpace'>defaults</a> <a href='undocumented#SkColorSpace'>to</a> <a href='undocumented#SkColorSpace'>sRGB</a>, <a href='undocumented#SkColorSpace'>mapping</a>
+If <a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a> is part of drawing source: <a href='undocumented#SkColorSpace'>SkColorSpace</a> defaults to sRGB, mapping
into <a href='SkSurface_Reference#SkSurface'>SkSurface</a> <a href='undocumented#SkColorSpace'>SkColorSpace</a>.
Parameters are not validated to see if their values are legal, or that the
@@ -1264,19 +1264,19 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-static <a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a> <a href='#SkImageInfo_MakeA8'>MakeA8</a>(<a href='#SkImageInfo_MakeA8'>int</a> <a href='#SkImageInfo_MakeA8'>width</a>, <a href='#SkImageInfo_MakeA8'>int</a> <a href='#SkImageInfo_MakeA8'>height</a>)
+static <a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a> <a href='#SkImageInfo_MakeA8'>MakeA8</a>(int width, int height)
</pre>
-Creates <a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a> <a href='SkImageInfo_Reference#SkImageInfo'>from</a> <a href='SkImageInfo_Reference#SkImageInfo'>integral</a> <a href='SkImageInfo_Reference#SkImageInfo'>dimensions</a> <a href='#SkImageInfo_MakeA8_width'>width</a> <a href='#SkImageInfo_MakeA8_width'>and</a> <a href='#SkImageInfo_MakeA8_height'>height</a>, <a href='SkImageInfo_Reference#kAlpha_8_SkColorType'>kAlpha_8_SkColorType</a>,
-<a href='SkImageInfo_Reference#kPremul_SkAlphaType'>kPremul_SkAlphaType</a>, <a href='SkImageInfo_Reference#kPremul_SkAlphaType'>with</a> <a href='undocumented#SkColorSpace'>SkColorSpace</a> <a href='undocumented#SkColorSpace'>set</a> <a href='undocumented#SkColorSpace'>to</a> <a href='undocumented#SkColorSpace'>nullptr</a>.
+Creates <a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a> from integral dimensions <a href='#SkImageInfo_MakeA8_width'>width</a> and <a href='#SkImageInfo_MakeA8_height'>height</a>, <a href='SkImageInfo_Reference#kAlpha_8_SkColorType'>kAlpha_8_SkColorType</a>,
+<a href='SkImageInfo_Reference#kPremul_SkAlphaType'>kPremul_SkAlphaType</a>, with <a href='undocumented#SkColorSpace'>SkColorSpace</a> set to nullptr.
### Parameters
<table> <tr> <td><a name='SkImageInfo_MakeA8_width'><code><strong>width</strong></code></a></td>
- <td><a href='undocumented#Pixel'>pixel</a> <a href='undocumented#Pixel'>column</a> <a href='undocumented#Pixel'>count</a>; <a href='undocumented#Pixel'>must</a> <a href='undocumented#Pixel'>be</a> <a href='undocumented#Pixel'>zero</a> <a href='undocumented#Pixel'>or</a> <a href='undocumented#Pixel'>greater</a></td>
+ <td><a href='undocumented#Pixel'>pixel</a> column count; must be zero or greater</td>
</tr>
<tr> <td><a name='SkImageInfo_MakeA8_height'><code><strong>height</strong></code></a></td>
- <td><a href='undocumented#Pixel'>pixel</a> <a href='undocumented#Pixel'>row</a> <a href='undocumented#Pixel'>count</a>; <a href='undocumented#Pixel'>must</a> <a href='undocumented#Pixel'>be</a> <a href='undocumented#Pixel'>zero</a> <a href='undocumented#Pixel'>or</a> <a href='undocumented#Pixel'>greater</a></td>
+ <td><a href='undocumented#Pixel'>pixel</a> row count; must be zero or greater</td>
</tr>
</table>
@@ -1297,22 +1297,22 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-static <a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a> <a href='#SkImageInfo_MakeUnknown'>MakeUnknown</a>(<a href='#SkImageInfo_MakeUnknown'>int</a> <a href='#SkImageInfo_MakeUnknown'>width</a>, <a href='#SkImageInfo_MakeUnknown'>int</a> <a href='#SkImageInfo_MakeUnknown'>height</a>)
+static <a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a> <a href='#SkImageInfo_MakeUnknown'>MakeUnknown</a>(int width, int height)
</pre>
-Creates <a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a> <a href='SkImageInfo_Reference#SkImageInfo'>from</a> <a href='SkImageInfo_Reference#SkImageInfo'>integral</a> <a href='SkImageInfo_Reference#SkImageInfo'>dimensions</a> <a href='#SkImageInfo_MakeUnknown_width'>width</a> <a href='#SkImageInfo_MakeUnknown_width'>and</a> <a href='#SkImageInfo_MakeUnknown_height'>height</a>, <a href='SkImageInfo_Reference#kUnknown_SkColorType'>kUnknown_SkColorType</a>,
-<a href='SkImageInfo_Reference#kUnknown_SkAlphaType'>kUnknown_SkAlphaType</a>, <a href='SkImageInfo_Reference#kUnknown_SkAlphaType'>with</a> <a href='undocumented#SkColorSpace'>SkColorSpace</a> <a href='undocumented#SkColorSpace'>set</a> <a href='undocumented#SkColorSpace'>to</a> <a href='undocumented#SkColorSpace'>nullptr</a>.
+Creates <a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a> from integral dimensions <a href='#SkImageInfo_MakeUnknown_width'>width</a> and <a href='#SkImageInfo_MakeUnknown_height'>height</a>, <a href='SkImageInfo_Reference#kUnknown_SkColorType'>kUnknown_SkColorType</a>,
+<a href='SkImageInfo_Reference#kUnknown_SkAlphaType'>kUnknown_SkAlphaType</a>, with <a href='undocumented#SkColorSpace'>SkColorSpace</a> set to nullptr.
-Returned <a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a> <a href='SkImageInfo_Reference#SkImageInfo'>as</a> <a href='SkImageInfo_Reference#SkImageInfo'>part</a> <a href='SkImageInfo_Reference#SkImageInfo'>of</a> <a href='SkImageInfo_Reference#SkImageInfo'>source</a> <a href='SkImageInfo_Reference#SkImageInfo'>does</a> <a href='SkImageInfo_Reference#SkImageInfo'>not</a> <a href='SkImageInfo_Reference#SkImageInfo'>draw</a>, <a href='SkImageInfo_Reference#SkImageInfo'>and</a> <a href='SkImageInfo_Reference#SkImageInfo'>as</a> <a href='SkImageInfo_Reference#SkImageInfo'>part</a> <a href='SkImageInfo_Reference#SkImageInfo'>of</a> <a href='SkImageInfo_Reference#SkImageInfo'>destination</a>
+Returned <a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a> as part of source does not draw, and as part of destination
can not be drawn to.
### Parameters
<table> <tr> <td><a name='SkImageInfo_MakeUnknown_width'><code><strong>width</strong></code></a></td>
- <td><a href='undocumented#Pixel'>pixel</a> <a href='undocumented#Pixel'>column</a> <a href='undocumented#Pixel'>count</a>; <a href='undocumented#Pixel'>must</a> <a href='undocumented#Pixel'>be</a> <a href='undocumented#Pixel'>zero</a> <a href='undocumented#Pixel'>or</a> <a href='undocumented#Pixel'>greater</a></td>
+ <td><a href='undocumented#Pixel'>pixel</a> column count; must be zero or greater</td>
</tr>
<tr> <td><a name='SkImageInfo_MakeUnknown_height'><code><strong>height</strong></code></a></td>
- <td><a href='undocumented#Pixel'>pixel</a> <a href='undocumented#Pixel'>row</a> <a href='undocumented#Pixel'>count</a>; <a href='undocumented#Pixel'>must</a> <a href='undocumented#Pixel'>be</a> <a href='undocumented#Pixel'>zero</a> <a href='undocumented#Pixel'>or</a> <a href='undocumented#Pixel'>greater</a></td>
+ <td><a href='undocumented#Pixel'>pixel</a> row count; must be zero or greater</td>
</tr>
</table>
@@ -1336,10 +1336,10 @@
static <a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a> <a href='#SkImageInfo_MakeUnknown'>MakeUnknown</a>()
</pre>
-Creates <a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a> <a href='SkImageInfo_Reference#SkImageInfo'>from</a> <a href='SkImageInfo_Reference#SkImageInfo'>integral</a> <a href='SkImageInfo_Reference#SkImageInfo'>dimensions</a> <a href='SkImageInfo_Reference#SkImageInfo'>width</a> <a href='SkImageInfo_Reference#SkImageInfo'>and</a> <a href='SkImageInfo_Reference#SkImageInfo'>height</a> <a href='SkImageInfo_Reference#SkImageInfo'>set</a> <a href='SkImageInfo_Reference#SkImageInfo'>to</a> <a href='SkImageInfo_Reference#SkImageInfo'>zero</a>,
-<a href='SkImageInfo_Reference#kUnknown_SkColorType'>kUnknown_SkColorType</a>, <a href='SkImageInfo_Reference#kUnknown_SkAlphaType'>kUnknown_SkAlphaType</a>, <a href='SkImageInfo_Reference#kUnknown_SkAlphaType'>with</a> <a href='undocumented#SkColorSpace'>SkColorSpace</a> <a href='undocumented#SkColorSpace'>set</a> <a href='undocumented#SkColorSpace'>to</a> <a href='undocumented#SkColorSpace'>nullptr</a>.
+Creates <a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a> from integral dimensions width and height set to zero,
+<a href='SkImageInfo_Reference#kUnknown_SkColorType'>kUnknown_SkColorType</a>, <a href='SkImageInfo_Reference#kUnknown_SkAlphaType'>kUnknown_SkAlphaType</a>, with <a href='undocumented#SkColorSpace'>SkColorSpace</a> set to nullptr.
-Returned <a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a> <a href='SkImageInfo_Reference#SkImageInfo'>as</a> <a href='SkImageInfo_Reference#SkImageInfo'>part</a> <a href='SkImageInfo_Reference#SkImageInfo'>of</a> <a href='SkImageInfo_Reference#SkImageInfo'>source</a> <a href='SkImageInfo_Reference#SkImageInfo'>does</a> <a href='SkImageInfo_Reference#SkImageInfo'>not</a> <a href='SkImageInfo_Reference#SkImageInfo'>draw</a>, <a href='SkImageInfo_Reference#SkImageInfo'>and</a> <a href='SkImageInfo_Reference#SkImageInfo'>as</a> <a href='SkImageInfo_Reference#SkImageInfo'>part</a> <a href='SkImageInfo_Reference#SkImageInfo'>of</a> <a href='SkImageInfo_Reference#SkImageInfo'>destination</a>
+Returned <a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a> as part of source does not draw, and as part of destination
can not be drawn to.
### Return Value
@@ -1361,14 +1361,14 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-int <a href='#SkImageInfo_width'>width()</a> <a href='#SkImageInfo_width'>const</a>
+int <a href='#SkImageInfo_width'>width()</a> const
</pre>
-Returns <a href='undocumented#Pixel'>pixel</a> <a href='undocumented#Pixel'>count</a> <a href='undocumented#Pixel'>in</a> <a href='undocumented#Pixel'>each</a> <a href='undocumented#Pixel'>row</a>.
+Returns <a href='undocumented#Pixel'>pixel</a> count in each row.
### Return Value
-<a href='undocumented#Pixel'>pixel</a> <a href='undocumented#Pixel'>width</a>
+<a href='undocumented#Pixel'>pixel</a> width
### Example
@@ -1383,14 +1383,14 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-int <a href='#SkImageInfo_height'>height()</a> <a href='#SkImageInfo_height'>const</a>
+int <a href='#SkImageInfo_height'>height()</a> const
</pre>
-Returns <a href='undocumented#Pixel'>pixel</a> <a href='undocumented#Pixel'>row</a> <a href='undocumented#Pixel'>count</a>.
+Returns <a href='undocumented#Pixel'>pixel</a> row count.
### Return Value
-<a href='undocumented#Pixel'>pixel</a> <a href='undocumented#Pixel'>height</a>
+<a href='undocumented#Pixel'>pixel</a> height
### Example
@@ -1405,10 +1405,10 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-<a href='SkImageInfo_Reference#SkColorType'>SkColorType</a> <a href='#SkImageInfo_colorType'>colorType</a>() <a href='#SkImageInfo_colorType'>const</a>
+<a href='SkImageInfo_Reference#SkColorType'>SkColorType</a> <a href='#SkImageInfo_colorType'>colorType</a>() const
</pre>
-Returns <a href='#Image_Info_Color_Type'>Color_Type</a>, <a href='#Image_Info_Color_Type'>one</a> <a href='#Image_Info_Color_Type'>of</a>: <a href='SkImageInfo_Reference#kUnknown_SkColorType'>kUnknown_SkColorType</a>, <a href='SkImageInfo_Reference#kAlpha_8_SkColorType'>kAlpha_8_SkColorType</a>, <a href='SkImageInfo_Reference#kRGB_565_SkColorType'>kRGB_565_SkColorType</a>,
+Returns <a href='#Image_Info_Color_Type'>Color_Type</a>, one of: <a href='SkImageInfo_Reference#kUnknown_SkColorType'>kUnknown_SkColorType</a>, <a href='SkImageInfo_Reference#kAlpha_8_SkColorType'>kAlpha_8_SkColorType</a>, <a href='SkImageInfo_Reference#kRGB_565_SkColorType'>kRGB_565_SkColorType</a>,
<a href='SkImageInfo_Reference#kARGB_4444_SkColorType'>kARGB_4444_SkColorType</a>, <a href='SkImageInfo_Reference#kRGBA_8888_SkColorType'>kRGBA_8888_SkColorType</a>, <a href='SkImageInfo_Reference#kRGB_888x_SkColorType'>kRGB_888x_SkColorType</a>,
<a href='SkImageInfo_Reference#kBGRA_8888_SkColorType'>kBGRA_8888_SkColorType</a>, <a href='SkImageInfo_Reference#kRGBA_1010102_SkColorType'>kRGBA_1010102_SkColorType</a>, <a href='SkImageInfo_Reference#kRGB_101010x_SkColorType'>kRGB_101010x_SkColorType</a>,
<a href='SkImageInfo_Reference#kGray_8_SkColorType'>kGray_8_SkColorType</a>, <a href='SkImageInfo_Reference#kRGBA_F16_SkColorType'>kRGBA_F16_SkColorType</a>
@@ -1439,10 +1439,10 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-<a href='SkImageInfo_Reference#SkAlphaType'>SkAlphaType</a> <a href='#SkImageInfo_alphaType'>alphaType</a>() <a href='#SkImageInfo_alphaType'>const</a>
+<a href='SkImageInfo_Reference#SkAlphaType'>SkAlphaType</a> <a href='#SkImageInfo_alphaType'>alphaType</a>() const
</pre>
-Returns <a href='#Image_Info_Alpha_Type'>Alpha_Type</a>, <a href='#Image_Info_Alpha_Type'>one</a> <a href='#Image_Info_Alpha_Type'>of</a>: <a href='SkImageInfo_Reference#kUnknown_SkAlphaType'>kUnknown_SkAlphaType</a>, <a href='SkImageInfo_Reference#kOpaque_SkAlphaType'>kOpaque_SkAlphaType</a>, <a href='SkImageInfo_Reference#kPremul_SkAlphaType'>kPremul_SkAlphaType</a>,
+Returns <a href='#Image_Info_Alpha_Type'>Alpha_Type</a>, one of: <a href='SkImageInfo_Reference#kUnknown_SkAlphaType'>kUnknown_SkAlphaType</a>, <a href='SkImageInfo_Reference#kOpaque_SkAlphaType'>kOpaque_SkAlphaType</a>, <a href='SkImageInfo_Reference#kPremul_SkAlphaType'>kPremul_SkAlphaType</a>,
<a href='SkImageInfo_Reference#kUnpremul_SkAlphaType'>kUnpremul_SkAlphaType</a>
.
@@ -1471,20 +1471,20 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-<a href='undocumented#SkColorSpace'>SkColorSpace</a>* <a href='#SkImageInfo_colorSpace'>colorSpace</a>() <a href='#SkImageInfo_colorSpace'>const</a>
+<a href='undocumented#SkColorSpace'>SkColorSpace</a>* <a href='#SkImageInfo_colorSpace'>colorSpace</a>() const
</pre>
-Returns <a href='undocumented#SkColorSpace'>SkColorSpace</a>, <a href='undocumented#SkColorSpace'>the</a> <a href='undocumented#SkColorSpace'>range</a> <a href='undocumented#SkColorSpace'>of</a> <a href='undocumented#SkColorSpace'>colors</a>. <a href='undocumented#SkColorSpace'>The</a> <a href='undocumented#SkColorSpace'>reference</a> <a href='undocumented#SkColorSpace'>count</a> <a href='undocumented#SkColorSpace'>of</a>
-<a href='undocumented#SkColorSpace'>SkColorSpace</a> <a href='undocumented#SkColorSpace'>is</a> <a href='undocumented#SkColorSpace'>unchanged</a>. <a href='undocumented#SkColorSpace'>The</a> <a href='undocumented#SkColorSpace'>returned</a> <a href='undocumented#SkColorSpace'>SkColorSpace</a> <a href='undocumented#SkColorSpace'>is</a> <a href='undocumented#SkColorSpace'>immutable</a>.
+Returns <a href='undocumented#SkColorSpace'>SkColorSpace</a>, the range of colors. The reference count of
+<a href='undocumented#SkColorSpace'>SkColorSpace</a> is unchanged. The returned <a href='undocumented#SkColorSpace'>SkColorSpace</a> is immutable.
### Return Value
-<a href='undocumented#SkColorSpace'>SkColorSpace</a>, <a href='undocumented#SkColorSpace'>or</a> <a href='undocumented#SkColorSpace'>nullptr</a>
+<a href='undocumented#SkColorSpace'>SkColorSpace</a>, or nullptr
### Example
-<div><fiddle-embed name="5602b816d7cf75e3851274ef36a4c10f"><div><a href='undocumented#SkColorSpace'>SkColorSpace</a>::<a href='#SkColorSpace_MakeSRGBLinear'>MakeSRGBLinear</a> <a href='#SkColorSpace_MakeSRGBLinear'>creates</a> <a href='#Color_Space'>Color_Space</a> <a href='#Color_Space'>with</a> <a href='#Color_Space'>linear</a> <a href='#Color_Space'>gamma</a>
-<a href='#Color_Space'>and</a> <a href='#Color_Space'>an</a> <a href='#Color_Space'>sRGB</a> <a href='#Color_Space'>gamut</a>. <a href='#Color_Space'>This</a> <a href='#Color_Space'>Color_Space</a> <a href='#Color_Space'>gamma</a> <a href='#Color_Space'>is</a> <a href='#Color_Space'>not</a> <a href='#Color_Space'>close</a> <a href='#Color_Space'>to</a> <a href='#Color_Space'>sRGB</a> <a href='#Color_Space'>gamma</a>.
+<div><fiddle-embed name="5602b816d7cf75e3851274ef36a4c10f"><div><a href='undocumented#SkColorSpace'>SkColorSpace</a>::<a href='#SkColorSpace_MakeSRGBLinear'>MakeSRGBLinear</a> creates <a href='#Color_Space'>Color_Space</a> with linear gamma
+and an sRGB gamut. This <a href='#Color_Space'>Color_Space</a> gamma is not close to sRGB gamma.
</div>
#### Example Output
@@ -1504,18 +1504,18 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-<a href='undocumented#sk_sp'>sk_sp</a>&<a href='undocumented#sk_sp'>lt</a>;<a href='undocumented#SkColorSpace'>SkColorSpace</a>&<a href='undocumented#SkColorSpace'>gt</a>; <a href='#SkImageInfo_refColorSpace'>refColorSpace</a>() <a href='#SkImageInfo_refColorSpace'>const</a>
+<a href='undocumented#sk_sp'>sk_sp</a><<a href='undocumented#SkColorSpace'>SkColorSpace</a>> <a href='#SkImageInfo_refColorSpace'>refColorSpace</a>() const
</pre>
-Returns smart pointer to <a href='undocumented#SkColorSpace'>SkColorSpace</a>, <a href='undocumented#SkColorSpace'>the</a> <a href='undocumented#SkColorSpace'>range</a> <a href='undocumented#SkColorSpace'>of</a> <a href='undocumented#SkColorSpace'>colors</a>. <a href='undocumented#SkColorSpace'>The</a> <a href='undocumented#SkColorSpace'>smart</a> <a href='undocumented#SkColorSpace'>pointer</a>
-tracks the number of objects sharing this <a href='undocumented#SkColorSpace'>SkColorSpace</a> <a href='undocumented#SkColorSpace'>reference</a> <a href='undocumented#SkColorSpace'>so</a> <a href='undocumented#SkColorSpace'>the</a> <a href='undocumented#SkColorSpace'>memory</a>
+Returns smart pointer to <a href='undocumented#SkColorSpace'>SkColorSpace</a>, the range of colors. The smart pointer
+tracks the number of objects sharing this <a href='undocumented#SkColorSpace'>SkColorSpace</a> reference so the memory
is released when the owners destruct.
-The returned <a href='undocumented#SkColorSpace'>SkColorSpace</a> <a href='undocumented#SkColorSpace'>is</a> <a href='undocumented#SkColorSpace'>immutable</a>.
+The returned <a href='undocumented#SkColorSpace'>SkColorSpace</a> is immutable.
### Return Value
-<a href='undocumented#SkColorSpace'>SkColorSpace</a> <a href='undocumented#SkColorSpace'>wrapped</a> <a href='undocumented#SkColorSpace'>in</a> <a href='undocumented#SkColorSpace'>a</a> <a href='undocumented#SkColorSpace'>smart</a> <a href='undocumented#SkColorSpace'>pointer</a>
+<a href='undocumented#SkColorSpace'>SkColorSpace</a> wrapped in a smart pointer
### Example
@@ -1530,10 +1530,10 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-bool <a href='#SkImageInfo_isEmpty'>isEmpty</a>() <a href='#SkImageInfo_isEmpty'>const</a>
+bool <a href='#SkImageInfo_isEmpty'>isEmpty</a>() const
</pre>
-Returns if <a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a> <a href='SkImageInfo_Reference#SkImageInfo'>describes</a> <a href='SkImageInfo_Reference#SkImageInfo'>an</a> <a href='SkImageInfo_Reference#SkImageInfo'>empty</a> <a href='SkImageInfo_Reference#SkImageInfo'>area</a> <a href='SkImageInfo_Reference#SkImageInfo'>of</a> <a href='SkImageInfo_Reference#SkImageInfo'>pixels</a> <a href='SkImageInfo_Reference#SkImageInfo'>by</a> <a href='SkImageInfo_Reference#SkImageInfo'>checking</a> <a href='SkImageInfo_Reference#SkImageInfo'>if</a> <a href='SkImageInfo_Reference#SkImageInfo'>either</a>
+Returns if <a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a> describes an empty area of pixels by checking if either
width or height is zero or smaller.
### Return Value
@@ -1564,19 +1564,19 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-bool <a href='#SkImageInfo_isOpaque'>isOpaque</a>() <a href='#SkImageInfo_isOpaque'>const</a>
+bool <a href='#SkImageInfo_isOpaque'>isOpaque</a>() const
</pre>
-Returns true if <a href='SkImageInfo_Reference#SkAlphaType'>SkAlphaType</a> <a href='SkImageInfo_Reference#SkAlphaType'>is</a> <a href='SkImageInfo_Reference#SkAlphaType'>set</a> <a href='SkImageInfo_Reference#SkAlphaType'>to</a> <a href='SkImageInfo_Reference#SkAlphaType'>hint</a> <a href='SkImageInfo_Reference#SkAlphaType'>that</a> <a href='SkImageInfo_Reference#SkAlphaType'>all</a> <a href='SkImageInfo_Reference#SkAlphaType'>pixels</a> <a href='SkImageInfo_Reference#SkAlphaType'>are</a> <a href='SkImageInfo_Reference#SkAlphaType'>opaque</a>; <a href='SkImageInfo_Reference#SkAlphaType'>their</a>
-<a href='SkColor_Reference#Alpha'>alpha</a> <a href='SkColor_Reference#Alpha'>value</a> <a href='SkColor_Reference#Alpha'>is</a> <a href='SkColor_Reference#Alpha'>implicitly</a> <a href='SkColor_Reference#Alpha'>or</a> <a href='SkColor_Reference#Alpha'>explicitly</a> 1.0. <a href='SkColor_Reference#Alpha'>If</a> <a href='SkColor_Reference#Alpha'>true</a>, <a href='SkColor_Reference#Alpha'>and</a> <a href='SkColor_Reference#Alpha'>all</a> <a href='SkColor_Reference#Alpha'>pixels</a> <a href='SkColor_Reference#Alpha'>are</a>
+Returns true if <a href='SkImageInfo_Reference#SkAlphaType'>SkAlphaType</a> is set to hint that all pixels are opaque; their
+<a href='SkColor_Reference#Alpha'>alpha</a> value is implicitly or explicitly 1.0. If true, and all pixels are
not opaque, Skia may draw incorrectly.
-Does not check if <a href='SkImageInfo_Reference#SkColorType'>SkColorType</a> <a href='SkImageInfo_Reference#SkColorType'>allows</a> <a href='SkColor_Reference#Alpha'>alpha</a>, <a href='SkColor_Reference#Alpha'>or</a> <a href='SkColor_Reference#Alpha'>if</a> <a href='SkColor_Reference#Alpha'>any</a> <a href='undocumented#Pixel'>pixel</a> <a href='undocumented#Pixel'>value</a> <a href='undocumented#Pixel'>has</a>
+Does not check if <a href='SkImageInfo_Reference#SkColorType'>SkColorType</a> allows <a href='SkColor_Reference#Alpha'>alpha</a>, or if any <a href='undocumented#Pixel'>pixel</a> value has
transparency.
### Return Value
-true if <a href='SkImageInfo_Reference#SkAlphaType'>SkAlphaType</a> <a href='SkImageInfo_Reference#SkAlphaType'>is</a> <a href='SkImageInfo_Reference#kOpaque_SkAlphaType'>kOpaque_SkAlphaType</a>
+true if <a href='SkImageInfo_Reference#SkAlphaType'>SkAlphaType</a> is <a href='SkImageInfo_Reference#kOpaque_SkAlphaType'>kOpaque_SkAlphaType</a>
### Example
@@ -1602,14 +1602,14 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-<a href='undocumented#SkISize'>SkISize</a> <a href='#SkImageInfo_dimensions'>dimensions()</a> <a href='#SkImageInfo_dimensions'>const</a>
+<a href='undocumented#SkISize'>SkISize</a> <a href='#SkImageInfo_dimensions'>dimensions()</a> const
</pre>
Returns <a href='undocumented#SkISize'>SkISize</a> { <a href='#SkImageInfo_width'>width()</a>, <a href='#SkImageInfo_height'>height()</a> }.
### Return Value
-integral <a href='undocumented#Size'>size</a> <a href='undocumented#Size'>of</a> <a href='#SkImageInfo_width'>width()</a> <a href='#SkImageInfo_width'>and</a> <a href='#SkImageInfo_height'>height()</a>
+integral <a href='undocumented#Size'>size</a> of <a href='#SkImageInfo_width'>width()</a> and <a href='#SkImageInfo_height'>height()</a>
### Example
@@ -1632,14 +1632,14 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-<a href='SkIRect_Reference#SkIRect'>SkIRect</a> <a href='#SkImageInfo_bounds'>bounds()</a> <a href='#SkImageInfo_bounds'>const</a>
+<a href='SkIRect_Reference#SkIRect'>SkIRect</a> <a href='#SkImageInfo_bounds'>bounds()</a> const
</pre>
Returns <a href='SkIRect_Reference#SkIRect'>SkIRect</a> { 0, 0, <a href='#SkImageInfo_width'>width()</a>, <a href='#SkImageInfo_height'>height()</a> }.
### Return Value
-integral rectangle from origin to <a href='#SkImageInfo_width'>width()</a> <a href='#SkImageInfo_width'>and</a> <a href='#SkImageInfo_height'>height()</a>
+integral rectangle from origin to <a href='#SkImageInfo_width'>width()</a> and <a href='#SkImageInfo_height'>height()</a>
### Example
@@ -1654,17 +1654,17 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-bool <a href='#SkImageInfo_gammaCloseToSRGB'>gammaCloseToSRGB</a>() <a href='#SkImageInfo_gammaCloseToSRGB'>const</a>
+bool <a href='#SkImageInfo_gammaCloseToSRGB'>gammaCloseToSRGB</a>() const
</pre>
-Returns true if associated <a href='#Color_Space'>Color_Space</a> <a href='#Color_Space'>is</a> <a href='#Color_Space'>not</a> <a href='#Color_Space'>nullptr</a>, <a href='#Color_Space'>and</a> <a href='#Color_Space'>Color_Space</a> <a href='#Color_Space'>gamma</a>
-<a href='#Color_Space'>is</a> <a href='#Color_Space'>approximately</a> <a href='#Color_Space'>the</a> <a href='#Color_Space'>same</a> <a href='#Color_Space'>as</a> <a href='#Color_Space'>sRGB</a>.
-<a href='#Color_Space'>This</a> <a href='#Color_Space'>includes</a> <a href='#Color_Space'>the</a>
-<a href='https://en.wikipedia.org/wiki/SRGB#The_sRGB_transfer_function_(%22gamma%22)'>sRGB transfer function</a></a> as well as a gamma <a href='undocumented#Curve'>curve</a> <a href='undocumented#Curve'>described</a> <a href='undocumented#Curve'>by</a> <a href='undocumented#Curve'>a</a> 2.2 <a href='undocumented#Curve'>exponent</a>.
+Returns true if associated <a href='#Color_Space'>Color_Space</a> is not nullptr, and <a href='#Color_Space'>Color_Space</a> gamma
+is approximately the same as sRGB.
+This includes the
+<a href='https://en.wikipedia.org/wiki/SRGB#The_sRGB_transfer_function_(%22gamma%22)'>sRGB transfer function</a></a> as well as a gamma <a href='undocumented#Curve'>curve</a> described by a 2.2 exponent.
### Return Value
-true if <a href='#Color_Space'>Color_Space</a> <a href='#Color_Space'>gamma</a> <a href='#Color_Space'>is</a> <a href='#Color_Space'>approximately</a> <a href='#Color_Space'>the</a> <a href='#Color_Space'>same</a> <a href='#Color_Space'>as</a> <a href='#Color_Space'>sRGB</a>
+true if <a href='#Color_Space'>Color_Space</a> gamma is approximately the same as sRGB
### Example
@@ -1679,19 +1679,19 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-<a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a> <a href='#SkImageInfo_makeWH'>makeWH</a>(<a href='#SkImageInfo_makeWH'>int</a> <a href='#SkImageInfo_makeWH'>newWidth</a>, <a href='#SkImageInfo_makeWH'>int</a> <a href='#SkImageInfo_makeWH'>newHeight</a>) <a href='#SkImageInfo_makeWH'>const</a>
+<a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a> <a href='#SkImageInfo_makeWH'>makeWH</a>(int newWidth, int newHeight) const
</pre>
-Creates <a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a> <a href='SkImageInfo_Reference#SkImageInfo'>with</a> <a href='SkImageInfo_Reference#SkImageInfo'>the</a> <a href='SkImageInfo_Reference#SkImageInfo'>same</a> <a href='SkImageInfo_Reference#SkColorType'>SkColorType</a>, <a href='undocumented#SkColorSpace'>SkColorSpace</a>, <a href='undocumented#SkColorSpace'>and</a> <a href='SkImageInfo_Reference#SkAlphaType'>SkAlphaType</a>,
+Creates <a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a> with the same <a href='SkImageInfo_Reference#SkColorType'>SkColorType</a>, <a href='undocumented#SkColorSpace'>SkColorSpace</a>, and <a href='SkImageInfo_Reference#SkAlphaType'>SkAlphaType</a>,
with dimensions set to width and height.
### Parameters
<table> <tr> <td><a name='SkImageInfo_makeWH_newWidth'><code><strong>newWidth</strong></code></a></td>
- <td><a href='undocumented#Pixel'>pixel</a> <a href='undocumented#Pixel'>column</a> <a href='undocumented#Pixel'>count</a>; <a href='undocumented#Pixel'>must</a> <a href='undocumented#Pixel'>be</a> <a href='undocumented#Pixel'>zero</a> <a href='undocumented#Pixel'>or</a> <a href='undocumented#Pixel'>greater</a></td>
+ <td><a href='undocumented#Pixel'>pixel</a> column count; must be zero or greater</td>
</tr>
<tr> <td><a name='SkImageInfo_makeWH_newHeight'><code><strong>newHeight</strong></code></a></td>
- <td><a href='undocumented#Pixel'>pixel</a> <a href='undocumented#Pixel'>row</a> <a href='undocumented#Pixel'>count</a>; <a href='undocumented#Pixel'>must</a> <a href='undocumented#Pixel'>be</a> <a href='undocumented#Pixel'>zero</a> <a href='undocumented#Pixel'>or</a> <a href='undocumented#Pixel'>greater</a></td>
+ <td><a href='undocumented#Pixel'>pixel</a> row count; must be zero or greater</td>
</tr>
</table>
@@ -1712,14 +1712,14 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-<a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a> <a href='#SkImageInfo_makeAlphaType'>makeAlphaType</a>(<a href='SkImageInfo_Reference#SkAlphaType'>SkAlphaType</a> <a href='SkImageInfo_Reference#SkAlphaType'>newAlphaType</a>) <a href='SkImageInfo_Reference#SkAlphaType'>const</a>
+<a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a> <a href='#SkImageInfo_makeAlphaType'>makeAlphaType</a>(<a href='SkImageInfo_Reference#SkAlphaType'>SkAlphaType</a> newAlphaType) const
</pre>
-Creates <a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a> <a href='SkImageInfo_Reference#SkImageInfo'>with</a> <a href='SkImageInfo_Reference#SkImageInfo'>same</a> <a href='SkImageInfo_Reference#SkColorType'>SkColorType</a>, <a href='undocumented#SkColorSpace'>SkColorSpace</a>, <a href='undocumented#SkColorSpace'>width</a>, <a href='undocumented#SkColorSpace'>and</a> <a href='undocumented#SkColorSpace'>height</a>,
-with <a href='SkImageInfo_Reference#SkAlphaType'>SkAlphaType</a> <a href='SkImageInfo_Reference#SkAlphaType'>set</a> <a href='SkImageInfo_Reference#SkAlphaType'>to</a> <a href='#SkImageInfo_makeAlphaType_newAlphaType'>newAlphaType</a>.
+Creates <a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a> with same <a href='SkImageInfo_Reference#SkColorType'>SkColorType</a>, <a href='undocumented#SkColorSpace'>SkColorSpace</a>, width, and height,
+with <a href='SkImageInfo_Reference#SkAlphaType'>SkAlphaType</a> set to <a href='#SkImageInfo_makeAlphaType_newAlphaType'>newAlphaType</a>.
-Created <a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a> <a href='SkImageInfo_Reference#SkImageInfo'>contains</a> <a href='#SkImageInfo_makeAlphaType_newAlphaType'>newAlphaType</a> <a href='#SkImageInfo_makeAlphaType_newAlphaType'>even</a> <a href='#SkImageInfo_makeAlphaType_newAlphaType'>if</a> <a href='#SkImageInfo_makeAlphaType_newAlphaType'>it</a> <a href='#SkImageInfo_makeAlphaType_newAlphaType'>is</a> <a href='#SkImageInfo_makeAlphaType_newAlphaType'>incompatible</a> <a href='#SkImageInfo_makeAlphaType_newAlphaType'>with</a>
-<a href='SkImageInfo_Reference#SkColorType'>SkColorType</a>, <a href='SkImageInfo_Reference#SkColorType'>in</a> <a href='SkImageInfo_Reference#SkColorType'>which</a> <a href='SkImageInfo_Reference#SkColorType'>case</a> <a href='SkImageInfo_Reference#SkAlphaType'>SkAlphaType</a> <a href='SkImageInfo_Reference#SkAlphaType'>in</a> <a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a> <a href='SkImageInfo_Reference#SkImageInfo'>is</a> <a href='SkImageInfo_Reference#SkImageInfo'>ignored</a>.
+Created <a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a> contains <a href='#SkImageInfo_makeAlphaType_newAlphaType'>newAlphaType</a> even if it is incompatible with
+<a href='SkImageInfo_Reference#SkColorType'>SkColorType</a>, in which case <a href='SkImageInfo_Reference#SkAlphaType'>SkAlphaType</a> in <a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a> is ignored.
### Parameters
@@ -1748,11 +1748,11 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-<a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a> <a href='#SkImageInfo_makeColorType'>makeColorType</a>(<a href='SkImageInfo_Reference#SkColorType'>SkColorType</a> <a href='SkImageInfo_Reference#SkColorType'>newColorType</a>) <a href='SkImageInfo_Reference#SkColorType'>const</a>
+<a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a> <a href='#SkImageInfo_makeColorType'>makeColorType</a>(<a href='SkImageInfo_Reference#SkColorType'>SkColorType</a> newColorType) const
</pre>
-Creates <a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a> <a href='SkImageInfo_Reference#SkImageInfo'>with</a> <a href='SkImageInfo_Reference#SkImageInfo'>same</a> <a href='SkImageInfo_Reference#SkAlphaType'>SkAlphaType</a>, <a href='undocumented#SkColorSpace'>SkColorSpace</a>, <a href='undocumented#SkColorSpace'>width</a>, <a href='undocumented#SkColorSpace'>and</a> <a href='undocumented#SkColorSpace'>height</a>,
-with <a href='SkImageInfo_Reference#SkColorType'>SkColorType</a> <a href='SkImageInfo_Reference#SkColorType'>set</a> <a href='SkImageInfo_Reference#SkColorType'>to</a> <a href='#SkImageInfo_makeColorType_newColorType'>newColorType</a>.
+Creates <a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a> with same <a href='SkImageInfo_Reference#SkAlphaType'>SkAlphaType</a>, <a href='undocumented#SkColorSpace'>SkColorSpace</a>, width, and height,
+with <a href='SkImageInfo_Reference#SkColorType'>SkColorType</a> set to <a href='#SkImageInfo_makeColorType_newColorType'>newColorType</a>.
### Parameters
@@ -1783,11 +1783,11 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-<a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a> <a href='#SkImageInfo_makeColorSpace'>makeColorSpace</a>(<a href='undocumented#sk_sp'>sk_sp</a>&<a href='undocumented#sk_sp'>lt</a>;<a href='undocumented#SkColorSpace'>SkColorSpace</a>&<a href='undocumented#SkColorSpace'>gt</a>; <a href='undocumented#SkColorSpace'>cs</a>) <a href='undocumented#SkColorSpace'>const</a>
+<a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a> <a href='#SkImageInfo_makeColorSpace'>makeColorSpace</a>(<a href='undocumented#sk_sp'>sk_sp</a><<a href='undocumented#SkColorSpace'>SkColorSpace</a>> cs) const
</pre>
-Creates <a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a> <a href='SkImageInfo_Reference#SkImageInfo'>with</a> <a href='SkImageInfo_Reference#SkImageInfo'>same</a> <a href='SkImageInfo_Reference#SkAlphaType'>SkAlphaType</a>, <a href='SkImageInfo_Reference#SkColorType'>SkColorType</a>, <a href='SkImageInfo_Reference#SkColorType'>width</a>, <a href='SkImageInfo_Reference#SkColorType'>and</a> <a href='SkImageInfo_Reference#SkColorType'>height</a>,
-with <a href='undocumented#SkColorSpace'>SkColorSpace</a> <a href='undocumented#SkColorSpace'>set</a> <a href='undocumented#SkColorSpace'>to</a> <a href='#SkImageInfo_makeColorSpace_cs'>cs</a>.
+Creates <a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a> with same <a href='SkImageInfo_Reference#SkAlphaType'>SkAlphaType</a>, <a href='SkImageInfo_Reference#SkColorType'>SkColorType</a>, width, and height,
+with <a href='undocumented#SkColorSpace'>SkColorSpace</a> set to <a href='#SkImageInfo_makeColorSpace_cs'>cs</a>.
### Parameters
@@ -1813,11 +1813,11 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-int <a href='#SkImageInfo_bytesPerPixel'>bytesPerPixel</a>() <a href='#SkImageInfo_bytesPerPixel'>const</a>
+int <a href='#SkImageInfo_bytesPerPixel'>bytesPerPixel</a>() const
</pre>
-Returns number of bytes per <a href='undocumented#Pixel'>pixel</a> <a href='undocumented#Pixel'>required</a> <a href='undocumented#Pixel'>by</a> <a href='SkImageInfo_Reference#SkColorType'>SkColorType</a>.
-Returns zero if <a href='#SkImageInfo_colorType'>colorType</a>( <a href='#SkImageInfo_colorType'>is</a> <a href='SkImageInfo_Reference#kUnknown_SkColorType'>kUnknown_SkColorType</a>.
+Returns number of bytes per <a href='undocumented#Pixel'>pixel</a> required by <a href='SkImageInfo_Reference#SkColorType'>SkColorType</a>.
+Returns zero if <a href='#SkImageInfo_colorType'>colorType</a>( is <a href='SkImageInfo_Reference#kUnknown_SkColorType'>kUnknown_SkColorType</a>.
### Return Value
@@ -1857,7 +1857,7 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-int <a href='#SkImageInfo_shiftPerPixel'>shiftPerPixel</a>() <a href='#SkImageInfo_shiftPerPixel'>const</a>
+int <a href='#SkImageInfo_shiftPerPixel'>shiftPerPixel</a>() const
</pre>
Returns bit shift converting row bytes to row pixels.
@@ -1901,16 +1901,16 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-uint64_t <a href='#SkImageInfo_minRowBytes64'>minRowBytes64</a>() <a href='#SkImageInfo_minRowBytes64'>const</a>
+uint64_t <a href='#SkImageInfo_minRowBytes64'>minRowBytes64</a>() const
</pre>
-Returns minimum bytes per row, computed from <a href='undocumented#Pixel'>pixel</a> <a href='#SkImageInfo_width'>width()</a> <a href='#SkImageInfo_width'>and</a> <a href='SkImageInfo_Reference#SkColorType'>SkColorType</a>, <a href='SkImageInfo_Reference#SkColorType'>which</a>
-specifies <a href='#SkImageInfo_bytesPerPixel'>bytesPerPixel</a>(). <a href='SkBitmap_Reference#SkBitmap'>SkBitmap</a> <a href='SkBitmap_Reference#SkBitmap'>maximum</a> <a href='SkBitmap_Reference#SkBitmap'>value</a> <a href='SkBitmap_Reference#SkBitmap'>for</a> <a href='SkBitmap_Reference#SkBitmap'>row</a> <a href='SkBitmap_Reference#SkBitmap'>bytes</a> <a href='SkBitmap_Reference#SkBitmap'>must</a> <a href='SkBitmap_Reference#SkBitmap'>fit</a>
+Returns minimum bytes per row, computed from <a href='undocumented#Pixel'>pixel</a> <a href='#SkImageInfo_width'>width()</a> and <a href='SkImageInfo_Reference#SkColorType'>SkColorType</a>, which
+specifies <a href='#SkImageInfo_bytesPerPixel'>bytesPerPixel</a>(). <a href='SkBitmap_Reference#SkBitmap'>SkBitmap</a> maximum value for row bytes must fit
in 31 bits.
### Return Value
-<a href='#SkImageInfo_width'>width()</a> <a href='#SkImageInfo_width'>times</a> <a href='#SkImageInfo_bytesPerPixel'>bytesPerPixel</a>() <a href='#SkImageInfo_bytesPerPixel'>as</a> <a href='#SkImageInfo_bytesPerPixel'>unsigned</a> 64-<a href='#SkImageInfo_bytesPerPixel'>bit</a> <a href='#SkImageInfo_bytesPerPixel'>integer</a>
+<a href='#SkImageInfo_width'>width()</a> times <a href='#SkImageInfo_bytesPerPixel'>bytesPerPixel</a>() as unsigned 64-bit integer
### Example
@@ -1940,16 +1940,16 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-size_t <a href='#SkImageInfo_minRowBytes'>minRowBytes</a>() <a href='#SkImageInfo_minRowBytes'>const</a>
+size_t <a href='#SkImageInfo_minRowBytes'>minRowBytes</a>() const
</pre>
-Returns minimum bytes per row, computed from <a href='undocumented#Pixel'>pixel</a> <a href='#SkImageInfo_width'>width()</a> <a href='#SkImageInfo_width'>and</a> <a href='SkImageInfo_Reference#SkColorType'>SkColorType</a>, <a href='SkImageInfo_Reference#SkColorType'>which</a>
-specifies <a href='#SkImageInfo_bytesPerPixel'>bytesPerPixel</a>(). <a href='SkBitmap_Reference#SkBitmap'>SkBitmap</a> <a href='SkBitmap_Reference#SkBitmap'>maximum</a> <a href='SkBitmap_Reference#SkBitmap'>value</a> <a href='SkBitmap_Reference#SkBitmap'>for</a> <a href='SkBitmap_Reference#SkBitmap'>row</a> <a href='SkBitmap_Reference#SkBitmap'>bytes</a> <a href='SkBitmap_Reference#SkBitmap'>must</a> <a href='SkBitmap_Reference#SkBitmap'>fit</a>
+Returns minimum bytes per row, computed from <a href='undocumented#Pixel'>pixel</a> <a href='#SkImageInfo_width'>width()</a> and <a href='SkImageInfo_Reference#SkColorType'>SkColorType</a>, which
+specifies <a href='#SkImageInfo_bytesPerPixel'>bytesPerPixel</a>(). <a href='SkBitmap_Reference#SkBitmap'>SkBitmap</a> maximum value for row bytes must fit
in 31 bits.
### Return Value
-<a href='#SkImageInfo_width'>width()</a> <a href='#SkImageInfo_width'>times</a> <a href='#SkImageInfo_bytesPerPixel'>bytesPerPixel</a>() <a href='#SkImageInfo_bytesPerPixel'>as</a> <a href='#SkImageInfo_bytesPerPixel'>signed</a> 32-<a href='#SkImageInfo_bytesPerPixel'>bit</a> <a href='#SkImageInfo_bytesPerPixel'>integer</a>
+<a href='#SkImageInfo_width'>width()</a> times <a href='#SkImageInfo_bytesPerPixel'>bytesPerPixel</a>() as signed 32-bit integer
### Example
@@ -1979,13 +1979,13 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-size_t <a href='#SkImageInfo_computeOffset'>computeOffset</a>(<a href='#SkImageInfo_computeOffset'>int</a> <a href='#SkImageInfo_computeOffset'>x</a>, <a href='#SkImageInfo_computeOffset'>int</a> <a href='#SkImageInfo_computeOffset'>y</a>, <a href='#SkImageInfo_computeOffset'>size_t</a> <a href='#SkImageInfo_computeOffset'>rowBytes</a>) <a href='#SkImageInfo_computeOffset'>const</a>
+size_t <a href='#SkImageInfo_computeOffset'>computeOffset</a>(int x, int y, size_t rowBytes) const
</pre>
-Returns byte offset of <a href='undocumented#Pixel'>pixel</a> <a href='undocumented#Pixel'>from</a> <a href='undocumented#Pixel'>pixel</a> <a href='undocumented#Pixel'>base</a> <a href='undocumented#Pixel'>address</a>.
+Returns byte offset of <a href='undocumented#Pixel'>pixel</a> from <a href='undocumented#Pixel'>pixel</a> base address.
-Asserts in debug build if <a href='#SkImageInfo_computeOffset_x'>x</a> <a href='#SkImageInfo_computeOffset_x'>or</a> <a href='#SkImageInfo_computeOffset_y'>y</a> <a href='#SkImageInfo_computeOffset_y'>is</a> <a href='#SkImageInfo_computeOffset_y'>outside</a> <a href='#SkImageInfo_computeOffset_y'>of</a> <a href='#SkImageInfo_computeOffset_y'>bounds</a>. <a href='#SkImageInfo_computeOffset_y'>Does</a> <a href='#SkImageInfo_computeOffset_y'>not</a> <a href='#SkImageInfo_computeOffset_y'>assert</a> <a href='#SkImageInfo_computeOffset_y'>if</a>
-<a href='#SkImageInfo_computeOffset_rowBytes'>rowBytes</a> <a href='#SkImageInfo_computeOffset_rowBytes'>is</a> <a href='#SkImageInfo_computeOffset_rowBytes'>smaller</a> <a href='#SkImageInfo_computeOffset_rowBytes'>than</a> <a href='#SkImageInfo_minRowBytes'>minRowBytes</a>(), <a href='#SkImageInfo_minRowBytes'>even</a> <a href='#SkImageInfo_minRowBytes'>though</a> <a href='#SkImageInfo_minRowBytes'>result</a> <a href='#SkImageInfo_minRowBytes'>may</a> <a href='#SkImageInfo_minRowBytes'>be</a> <a href='#SkImageInfo_minRowBytes'>incorrect</a>.
+Asserts in debug build if <a href='#SkImageInfo_computeOffset_x'>x</a> or <a href='#SkImageInfo_computeOffset_y'>y</a> is outside of bounds. Does not assert if
+<a href='#SkImageInfo_computeOffset_rowBytes'>rowBytes</a> is smaller than <a href='#SkImageInfo_minRowBytes'>minRowBytes</a>(), even though result may be incorrect.
### Parameters
@@ -1996,13 +1996,13 @@
<td>row index, zero or greater, and less than <a href='#SkImageInfo_height'>height()</a></td>
</tr>
<tr> <td><a name='SkImageInfo_computeOffset_rowBytes'><code><strong>rowBytes</strong></code></a></td>
- <td><a href='undocumented#Size'>size</a> <a href='undocumented#Size'>of</a> <a href='undocumented#Pixel'>pixel</a> <a href='undocumented#Pixel'>row</a> <a href='undocumented#Pixel'>or</a> <a href='undocumented#Pixel'>larger</a></td>
+ <td><a href='undocumented#Size'>size</a> of <a href='undocumented#Pixel'>pixel</a> row or larger</td>
</tr>
</table>
### Return Value
-offset within <a href='undocumented#Pixel'>pixel</a> <a href='undocumented#Pixel'>array</a>
+offset within <a href='undocumented#Pixel'>pixel</a> array
### Example
@@ -2017,22 +2017,22 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-bool operator==(const <a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a>& <a href='SkImageInfo_Reference#SkImageInfo'>other</a>) <a href='SkImageInfo_Reference#SkImageInfo'>const</a>
+bool operator==(const <a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a>& other) const
</pre>
-Compares <a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a> <a href='SkImageInfo_Reference#SkImageInfo'>with</a> <a href='#SkImageInfo_equal1_operator_other'>other</a>, <a href='#SkImageInfo_equal1_operator_other'>and</a> <a href='#SkImageInfo_equal1_operator_other'>returns</a> <a href='#SkImageInfo_equal1_operator_other'>true</a> <a href='#SkImageInfo_equal1_operator_other'>if</a> <a href='#SkImageInfo_equal1_operator_other'>width</a>, <a href='#SkImageInfo_equal1_operator_other'>height</a>, <a href='SkImageInfo_Reference#SkColorType'>SkColorType</a>,
-<a href='SkImageInfo_Reference#SkAlphaType'>SkAlphaType</a>, <a href='SkImageInfo_Reference#SkAlphaType'>and</a> <a href='undocumented#SkColorSpace'>SkColorSpace</a> <a href='undocumented#SkColorSpace'>are</a> <a href='undocumented#SkColorSpace'>equivalent</a>.
+Compares <a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a> with <a href='#SkImageInfo_equal1_operator_other'>other</a>, and returns true if width, height, <a href='SkImageInfo_Reference#SkColorType'>SkColorType</a>,
+<a href='SkImageInfo_Reference#SkAlphaType'>SkAlphaType</a>, and <a href='undocumented#SkColorSpace'>SkColorSpace</a> are equivalent.
### Parameters
<table> <tr> <td><a name='SkImageInfo_equal1_operator_other'><code><strong>other</strong></code></a></td>
- <td><a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a> <a href='SkImageInfo_Reference#SkImageInfo'>to</a> <a href='SkImageInfo_Reference#SkImageInfo'>compare</a></td>
+ <td><a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a> to compare</td>
</tr>
</table>
### Return Value
-true if <a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a> <a href='SkImageInfo_Reference#SkImageInfo'>equals</a> <a href='#SkImageInfo_equal1_operator_other'>other</a>
+true if <a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a> equals <a href='#SkImageInfo_equal1_operator_other'>other</a>
### Example
@@ -2058,22 +2058,22 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-bool operator!=(const <a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a>& <a href='SkImageInfo_Reference#SkImageInfo'>other</a>) <a href='SkImageInfo_Reference#SkImageInfo'>const</a>
+bool operator!=(const <a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a>& other) const
</pre>
-Compares <a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a> <a href='SkImageInfo_Reference#SkImageInfo'>with</a> <a href='#SkImageInfo_notequal1_operator_other'>other</a>, <a href='#SkImageInfo_notequal1_operator_other'>and</a> <a href='#SkImageInfo_notequal1_operator_other'>returns</a> <a href='#SkImageInfo_notequal1_operator_other'>true</a> <a href='#SkImageInfo_notequal1_operator_other'>if</a> <a href='#SkImageInfo_notequal1_operator_other'>width</a>, <a href='#SkImageInfo_notequal1_operator_other'>height</a>, <a href='SkImageInfo_Reference#SkColorType'>SkColorType</a>,
-<a href='SkImageInfo_Reference#SkAlphaType'>SkAlphaType</a>, <a href='SkImageInfo_Reference#SkAlphaType'>and</a> <a href='undocumented#SkColorSpace'>SkColorSpace</a> <a href='undocumented#SkColorSpace'>are</a> <a href='undocumented#SkColorSpace'>not</a> <a href='undocumented#SkColorSpace'>equivalent</a>.
+Compares <a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a> with <a href='#SkImageInfo_notequal1_operator_other'>other</a>, and returns true if width, height, <a href='SkImageInfo_Reference#SkColorType'>SkColorType</a>,
+<a href='SkImageInfo_Reference#SkAlphaType'>SkAlphaType</a>, and <a href='undocumented#SkColorSpace'>SkColorSpace</a> are not equivalent.
### Parameters
<table> <tr> <td><a name='SkImageInfo_notequal1_operator_other'><code><strong>other</strong></code></a></td>
- <td><a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a> <a href='SkImageInfo_Reference#SkImageInfo'>to</a> <a href='SkImageInfo_Reference#SkImageInfo'>compare</a></td>
+ <td><a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a> to compare</td>
</tr>
</table>
### Return Value
-true if <a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a> <a href='SkImageInfo_Reference#SkImageInfo'>is</a> <a href='SkImageInfo_Reference#SkImageInfo'>not</a> <a href='SkImageInfo_Reference#SkImageInfo'>equal</a> <a href='SkImageInfo_Reference#SkImageInfo'>to</a> <a href='#SkImageInfo_notequal1_operator_other'>other</a>
+true if <a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a> is not equal to <a href='#SkImageInfo_notequal1_operator_other'>other</a>
### Example
@@ -2099,11 +2099,11 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-size_t <a href='#SkImageInfo_computeByteSize'>computeByteSize</a>(<a href='#SkImageInfo_computeByteSize'>size_t</a> <a href='#SkImageInfo_computeByteSize'>rowBytes</a>) <a href='#SkImageInfo_computeByteSize'>const</a>
+size_t <a href='#SkImageInfo_computeByteSize'>computeByteSize</a>(size_t rowBytes) const
</pre>
-Returns storage required by <a href='undocumented#Pixel'>pixel</a> <a href='undocumented#Pixel'>array</a>, <a href='undocumented#Pixel'>given</a> <a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a> <a href='SkImageInfo_Reference#SkImageInfo'>dimensions</a>, <a href='SkImageInfo_Reference#SkColorType'>SkColorType</a>,
-and <a href='#SkImageInfo_computeByteSize_rowBytes'>rowBytes</a>. <a href='#SkImageInfo_computeByteSize_rowBytes'>rowBytes</a> <a href='#SkImageInfo_computeByteSize_rowBytes'>is</a> <a href='#SkImageInfo_computeByteSize_rowBytes'>assumed</a> <a href='#SkImageInfo_computeByteSize_rowBytes'>to</a> <a href='#SkImageInfo_computeByteSize_rowBytes'>be</a> <a href='#SkImageInfo_computeByteSize_rowBytes'>at</a> <a href='#SkImageInfo_computeByteSize_rowBytes'>least</a> <a href='#SkImageInfo_computeByteSize_rowBytes'>as</a> <a href='#SkImageInfo_computeByteSize_rowBytes'>large</a> <a href='#SkImageInfo_computeByteSize_rowBytes'>as</a> <a href='#SkImageInfo_minRowBytes'>minRowBytes</a>().
+Returns storage required by <a href='undocumented#Pixel'>pixel</a> array, given <a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a> dimensions, <a href='SkImageInfo_Reference#SkColorType'>SkColorType</a>,
+and <a href='#SkImageInfo_computeByteSize_rowBytes'>rowBytes</a>. <a href='#SkImageInfo_computeByteSize_rowBytes'>rowBytes</a> is assumed to be at least as large as <a href='#SkImageInfo_minRowBytes'>minRowBytes</a>().
Returns zero if height is zero.
Returns SIZE_MAX if answer exceeds the range of size_t.
@@ -2111,13 +2111,13 @@
### Parameters
<table> <tr> <td><a name='SkImageInfo_computeByteSize_rowBytes'><code><strong>rowBytes</strong></code></a></td>
- <td><a href='undocumented#Size'>size</a> <a href='undocumented#Size'>of</a> <a href='undocumented#Pixel'>pixel</a> <a href='undocumented#Pixel'>row</a> <a href='undocumented#Pixel'>or</a> <a href='undocumented#Pixel'>larger</a></td>
+ <td><a href='undocumented#Size'>size</a> of <a href='undocumented#Pixel'>pixel</a> row or larger</td>
</tr>
</table>
### Return Value
-memory required by <a href='undocumented#Pixel'>pixel</a> <a href='undocumented#Pixel'>buffer</a>
+memory required by <a href='undocumented#Pixel'>pixel</a> buffer
### Example
@@ -2132,18 +2132,18 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-size_t <a href='#SkImageInfo_computeMinByteSize'>computeMinByteSize</a>() <a href='#SkImageInfo_computeMinByteSize'>const</a>
+size_t <a href='#SkImageInfo_computeMinByteSize'>computeMinByteSize</a>() const
</pre>
-Returns storage required by <a href='undocumented#Pixel'>pixel</a> <a href='undocumented#Pixel'>array</a>, <a href='undocumented#Pixel'>given</a> <a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a> <a href='SkImageInfo_Reference#SkImageInfo'>dimensions</a>, <a href='SkImageInfo_Reference#SkImageInfo'>and</a>
-<a href='SkImageInfo_Reference#SkColorType'>SkColorType</a>. <a href='SkImageInfo_Reference#SkColorType'>Uses</a> <a href='#SkImageInfo_minRowBytes'>minRowBytes</a>() <a href='#SkImageInfo_minRowBytes'>to</a> <a href='#SkImageInfo_minRowBytes'>compute</a> <a href='#SkImageInfo_minRowBytes'>bytes</a> <a href='#SkImageInfo_minRowBytes'>for</a> <a href='undocumented#Pixel'>pixel</a> <a href='undocumented#Pixel'>row</a>.
+Returns storage required by <a href='undocumented#Pixel'>pixel</a> array, given <a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a> dimensions, and
+<a href='SkImageInfo_Reference#SkColorType'>SkColorType</a>. Uses <a href='#SkImageInfo_minRowBytes'>minRowBytes</a>() to compute bytes for <a href='undocumented#Pixel'>pixel</a> row.
Returns zero if height is zero.
Returns SIZE_MAX if answer exceeds the range of size_t.
### Return Value
-least memory required by <a href='undocumented#Pixel'>pixel</a> <a href='undocumented#Pixel'>buffer</a>
+least memory required by <a href='undocumented#Pixel'>pixel</a> buffer
### Example
@@ -2158,22 +2158,22 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-static bool <a href='#SkImageInfo_ByteSizeOverflowed'>ByteSizeOverflowed</a>(<a href='#SkImageInfo_ByteSizeOverflowed'>size_t</a> <a href='#SkImageInfo_ByteSizeOverflowed'>byteSize</a>)
+static bool <a href='#SkImageInfo_ByteSizeOverflowed'>ByteSizeOverflowed</a>(size_t byteSize)
</pre>
-Returns true if <a href='#SkImageInfo_ByteSizeOverflowed_byteSize'>byteSize</a> <a href='#SkImageInfo_ByteSizeOverflowed_byteSize'>equals</a> <a href='#SkImageInfo_ByteSizeOverflowed_byteSize'>SIZE_MAX</a>. <a href='#SkImageInfo_computeByteSize'>computeByteSize</a>() <a href='#SkImageInfo_computeByteSize'>and</a>
-<a href='#SkImageInfo_computeMinByteSize'>computeMinByteSize</a>() <a href='#SkImageInfo_computeMinByteSize'>return</a> <a href='#SkImageInfo_computeMinByteSize'>SIZE_MAX</a> <a href='#SkImageInfo_computeMinByteSize'>if</a> <a href='#SkImageInfo_computeMinByteSize'>size_t</a> <a href='#SkImageInfo_computeMinByteSize'>can</a> <a href='#SkImageInfo_computeMinByteSize'>not</a> <a href='#SkImageInfo_computeMinByteSize'>hold</a> <a href='#SkImageInfo_computeMinByteSize'>buffer</a> <a href='undocumented#Size'>size</a>.
+Returns true if <a href='#SkImageInfo_ByteSizeOverflowed_byteSize'>byteSize</a> equals SIZE_MAX. <a href='#SkImageInfo_computeByteSize'>computeByteSize</a>() and
+<a href='#SkImageInfo_computeMinByteSize'>computeMinByteSize</a>() return SIZE_MAX if size_t can not hold buffer <a href='undocumented#Size'>size</a>.
### Parameters
<table> <tr> <td><a name='SkImageInfo_ByteSizeOverflowed_byteSize'><code><strong>byteSize</strong></code></a></td>
- <td>result of <a href='#SkImageInfo_computeByteSize'>computeByteSize</a>() <a href='#SkImageInfo_computeByteSize'>or</a> <a href='#SkImageInfo_computeMinByteSize'>computeMinByteSize</a>()</td>
+ <td>result of <a href='#SkImageInfo_computeByteSize'>computeByteSize</a>() or <a href='#SkImageInfo_computeMinByteSize'>computeMinByteSize</a>()</td>
</tr>
</table>
### Return Value
-true if <a href='#SkImageInfo_computeByteSize'>computeByteSize</a>() <a href='#SkImageInfo_computeByteSize'>or</a> <a href='#SkImageInfo_computeMinByteSize'>computeMinByteSize</a>() <a href='#SkImageInfo_computeMinByteSize'>result</a> <a href='#SkImageInfo_computeMinByteSize'>exceeds</a> <a href='#SkImageInfo_computeMinByteSize'>size_t</a>
+true if <a href='#SkImageInfo_computeByteSize'>computeByteSize</a>() or <a href='#SkImageInfo_computeMinByteSize'>computeMinByteSize</a>() result exceeds size_t
### Example
@@ -2200,21 +2200,21 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-bool <a href='#SkImageInfo_validRowBytes'>validRowBytes</a>(<a href='#SkImageInfo_validRowBytes'>size_t</a> <a href='#SkImageInfo_validRowBytes'>rowBytes</a>) <a href='#SkImageInfo_validRowBytes'>const</a>
+bool <a href='#SkImageInfo_validRowBytes'>validRowBytes</a>(size_t rowBytes) const
</pre>
-Returns true if <a href='#SkImageInfo_validRowBytes_rowBytes'>rowBytes</a> <a href='#SkImageInfo_validRowBytes_rowBytes'>is</a> <a href='#SkImageInfo_validRowBytes_rowBytes'>smaller</a> <a href='#SkImageInfo_validRowBytes_rowBytes'>than</a> <a href='#SkImageInfo_validRowBytes_rowBytes'>width</a> <a href='#SkImageInfo_validRowBytes_rowBytes'>times</a> <a href='undocumented#Pixel'>pixel</a> <a href='undocumented#Size'>size</a>.
+Returns true if <a href='#SkImageInfo_validRowBytes_rowBytes'>rowBytes</a> is smaller than width times <a href='undocumented#Pixel'>pixel</a> <a href='undocumented#Size'>size</a>.
### Parameters
<table> <tr> <td><a name='SkImageInfo_validRowBytes_rowBytes'><code><strong>rowBytes</strong></code></a></td>
- <td><a href='undocumented#Size'>size</a> <a href='undocumented#Size'>of</a> <a href='undocumented#Pixel'>pixel</a> <a href='undocumented#Pixel'>row</a> <a href='undocumented#Pixel'>or</a> <a href='undocumented#Pixel'>larger</a></td>
+ <td><a href='undocumented#Size'>size</a> of <a href='undocumented#Pixel'>pixel</a> row or larger</td>
</tr>
</table>
### Return Value
-true if <a href='#SkImageInfo_validRowBytes_rowBytes'>rowBytes</a> <a href='#SkImageInfo_validRowBytes_rowBytes'>is</a> <a href='#SkImageInfo_validRowBytes_rowBytes'>large</a> <a href='#SkImageInfo_validRowBytes_rowBytes'>enough</a> <a href='#SkImageInfo_validRowBytes_rowBytes'>to</a> <a href='#SkImageInfo_validRowBytes_rowBytes'>contain</a> <a href='undocumented#Pixel'>pixel</a> <a href='undocumented#Pixel'>row</a>
+true if <a href='#SkImageInfo_validRowBytes_rowBytes'>rowBytes</a> is large enough to contain <a href='undocumented#Pixel'>pixel</a> row
### Example
@@ -2242,7 +2242,7 @@
void <a href='#SkImageInfo_reset'>reset()</a>
</pre>
-Creates an empty <a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a> <a href='SkImageInfo_Reference#SkImageInfo'>with</a> <a href='SkImageInfo_Reference#kUnknown_SkColorType'>kUnknown_SkColorType</a>, <a href='SkImageInfo_Reference#kUnknown_SkAlphaType'>kUnknown_SkAlphaType</a>,
+Creates an empty <a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a> with <a href='SkImageInfo_Reference#kUnknown_SkColorType'>kUnknown_SkColorType</a>, <a href='SkImageInfo_Reference#kUnknown_SkAlphaType'>kUnknown_SkAlphaType</a>,
a width and height of zero, and no <a href='undocumented#SkColorSpace'>SkColorSpace</a>.
### Example
@@ -2270,7 +2270,7 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-void <a href='#SkImageInfo_validate'>validate()</a> <a href='#SkImageInfo_validate'>const</a>
+void <a href='#SkImageInfo_validate'>validate()</a> const
</pre>
### See Also
diff --git a/site/user/api/SkImage_Reference.md b/site/user/api/SkImage_Reference.md
index dec71d9..e47886c 100644
--- a/site/user/api/SkImage_Reference.md
+++ b/site/user/api/SkImage_Reference.md
@@ -7,240 +7,240 @@
---
<pre style="padding: 1em 1em 1em 1em;width: 62.5em; background-color: #f0f0f0">
-class <a href='SkImage_Reference#SkImage'>SkImage</a> : <a href='SkImage_Reference#SkImage'>public</a> <a href='undocumented#SkRefCnt'>SkRefCnt</a> {
-<a href='undocumented#SkRefCnt'>public</a>:
- <a href='undocumented#SkRefCnt'>typedef</a> <a href='undocumented#SkRefCnt'>void</a>* <a href='#SkImage_ReleaseContext'>ReleaseContext</a>;
+class <a href='SkImage_Reference#SkImage'>SkImage</a> : public <a href='undocumented#SkRefCnt'>SkRefCnt</a> {
+public:
+ typedef void* <a href='#SkImage_ReleaseContext'>ReleaseContext</a>;
- <a href='#SkImage_ReleaseContext'>static</a> <a href='undocumented#sk_sp'>sk_sp</a><<a href='SkImage_Reference#SkImage'>SkImage</a>> <a href='#SkImage_MakeRasterCopy'>MakeRasterCopy</a>(<a href='#SkImage_MakeRasterCopy'>const</a> <a href='SkPixmap_Reference#SkPixmap'>SkPixmap</a>& <a href='SkPixmap_Reference#Pixmap'>pixmap</a>);
- <a href='SkPixmap_Reference#Pixmap'>static</a> <a href='undocumented#sk_sp'>sk_sp</a><<a href='SkImage_Reference#SkImage'>SkImage</a>> <a href='#SkImage_MakeRasterData'>MakeRasterData</a>(<a href='#SkImage_MakeRasterData'>const</a> <a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a>& <a href='SkImageInfo_Reference#SkImageInfo'>info</a>, <a href='undocumented#sk_sp'>sk_sp</a><<a href='undocumented#SkData'>SkData</a>> <a href='undocumented#SkData'>pixels</a>,
- <a href='undocumented#SkData'>size_t</a> <a href='undocumented#SkData'>rowBytes</a>);
+ static <a href='undocumented#sk_sp'>sk_sp</a><<a href='SkImage_Reference#SkImage'>SkImage</a>> <a href='#SkImage_MakeRasterCopy'>MakeRasterCopy</a>(const <a href='SkPixmap_Reference#SkPixmap'>SkPixmap</a>& <a href='SkPixmap_Reference#Pixmap'>pixmap</a>);
+ static <a href='undocumented#sk_sp'>sk_sp</a><<a href='SkImage_Reference#SkImage'>SkImage</a>> <a href='#SkImage_MakeRasterData'>MakeRasterData</a>(const <a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a>& info, <a href='undocumented#sk_sp'>sk_sp</a><<a href='undocumented#SkData'>SkData</a>> pixels,
+ size_t rowBytes);
- <a href='undocumented#SkData'>typedef</a> <a href='undocumented#SkData'>void</a> (*<a href='#SkImage_RasterReleaseProc'>RasterReleaseProc</a>)(<a href='#SkImage_RasterReleaseProc'>const</a> <a href='#SkImage_RasterReleaseProc'>void</a>* <a href='#SkImage_RasterReleaseProc'>pixels</a>, <a href='#SkImage_ReleaseContext'>ReleaseContext</a>);
+ typedef void (*<a href='#SkImage_RasterReleaseProc'>RasterReleaseProc</a>)(const void* pixels, <a href='#SkImage_ReleaseContext'>ReleaseContext</a>);
- <a href='#SkImage_ReleaseContext'>static</a> <a href='undocumented#sk_sp'>sk_sp</a><<a href='SkImage_Reference#SkImage'>SkImage</a>> <a href='#SkImage_MakeFromRaster'>MakeFromRaster</a>(<a href='#SkImage_MakeFromRaster'>const</a> <a href='SkPixmap_Reference#SkPixmap'>SkPixmap</a>& <a href='SkPixmap_Reference#Pixmap'>pixmap</a>,
- <a href='#SkImage_RasterReleaseProc'>RasterReleaseProc</a> <a href='#SkImage_RasterReleaseProc'>rasterReleaseProc</a>,
- <a href='#SkImage_ReleaseContext'>ReleaseContext</a> <a href='#SkImage_ReleaseContext'>releaseContext</a>);
- <a href='#SkImage_ReleaseContext'>static</a> <a href='undocumented#sk_sp'>sk_sp</a><<a href='SkImage_Reference#SkImage'>SkImage</a>> <a href='#SkImage_MakeFromBitmap'>MakeFromBitmap</a>(<a href='#SkImage_MakeFromBitmap'>const</a> <a href='SkBitmap_Reference#SkBitmap'>SkBitmap</a>& <a href='SkBitmap_Reference#Bitmap'>bitmap</a>);
- <a href='SkBitmap_Reference#Bitmap'>static</a> <a href='undocumented#sk_sp'>sk_sp</a><<a href='SkImage_Reference#SkImage'>SkImage</a>> <a href='#SkImage_MakeFromGenerator'>MakeFromGenerator</a>(<a href='#SkImage_MakeFromGenerator'>std</a>::<a href='#SkImage_MakeFromGenerator'>unique_ptr</a><<a href='undocumented#SkImageGenerator'>SkImageGenerator</a>> <a href='undocumented#SkImageGenerator'>imageGenerator</a>,
- <a href='undocumented#SkImageGenerator'>const</a> <a href='SkIRect_Reference#SkIRect'>SkIRect</a>* <a href='SkIRect_Reference#SkIRect'>subset</a> = <a href='SkIRect_Reference#SkIRect'>nullptr</a>);
- <a href='SkIRect_Reference#SkIRect'>static</a> <a href='undocumented#sk_sp'>sk_sp</a><<a href='SkImage_Reference#SkImage'>SkImage</a>> <a href='#SkImage_MakeFromEncoded'>MakeFromEncoded</a>(<a href='undocumented#sk_sp'>sk_sp</a><<a href='undocumented#SkData'>SkData</a>> <a href='undocumented#SkData'>encoded</a>, <a href='undocumented#SkData'>const</a> <a href='SkIRect_Reference#SkIRect'>SkIRect</a>* <a href='SkIRect_Reference#SkIRect'>subset</a> = <a href='SkIRect_Reference#SkIRect'>nullptr</a>);
+ static <a href='undocumented#sk_sp'>sk_sp</a><<a href='SkImage_Reference#SkImage'>SkImage</a>> <a href='#SkImage_MakeFromRaster'>MakeFromRaster</a>(const <a href='SkPixmap_Reference#SkPixmap'>SkPixmap</a>& <a href='SkPixmap_Reference#Pixmap'>pixmap</a>,
+ <a href='#SkImage_RasterReleaseProc'>RasterReleaseProc</a> rasterReleaseProc,
+ <a href='#SkImage_ReleaseContext'>ReleaseContext</a> releaseContext);
+ static <a href='undocumented#sk_sp'>sk_sp</a><<a href='SkImage_Reference#SkImage'>SkImage</a>> <a href='#SkImage_MakeFromBitmap'>MakeFromBitmap</a>(const <a href='SkBitmap_Reference#SkBitmap'>SkBitmap</a>& <a href='SkBitmap_Reference#Bitmap'>bitmap</a>);
+ static <a href='undocumented#sk_sp'>sk_sp</a><<a href='SkImage_Reference#SkImage'>SkImage</a>> <a href='#SkImage_MakeFromGenerator'>MakeFromGenerator</a>(std::unique_ptr<<a href='undocumented#SkImageGenerator'>SkImageGenerator</a>> imageGenerator,
+ const <a href='SkIRect_Reference#SkIRect'>SkIRect</a>* subset = nullptr);
+ static <a href='undocumented#sk_sp'>sk_sp</a><<a href='SkImage_Reference#SkImage'>SkImage</a>> <a href='#SkImage_MakeFromEncoded'>MakeFromEncoded</a>(<a href='undocumented#sk_sp'>sk_sp</a><<a href='undocumented#SkData'>SkData</a>> encoded, const <a href='SkIRect_Reference#SkIRect'>SkIRect</a>* subset = nullptr);
- <a href='SkIRect_Reference#SkIRect'>typedef</a> <a href='SkIRect_Reference#SkIRect'>void</a> (*<a href='#SkImage_TextureReleaseProc'>TextureReleaseProc</a>)(<a href='#SkImage_ReleaseContext'>ReleaseContext</a> <a href='#SkImage_ReleaseContext'>releaseContext</a>);
+ typedef void (*<a href='#SkImage_TextureReleaseProc'>TextureReleaseProc</a>)(<a href='#SkImage_ReleaseContext'>ReleaseContext</a> releaseContext);
- <a href='#SkImage_ReleaseContext'>static</a> <a href='undocumented#sk_sp'>sk_sp</a><<a href='SkImage_Reference#SkImage'>SkImage</a>> <a href='#SkImage_MakeFromTexture'>MakeFromTexture</a>(<a href='undocumented#GrContext'>GrContext</a>* <a href='undocumented#GrContext'>context</a>,
- <a href='undocumented#GrContext'>const</a> <a href='undocumented#GrBackendTexture'>GrBackendTexture</a>& <a href='undocumented#GrBackendTexture'>backendTexture</a>,
- <a href='undocumented#GrSurfaceOrigin'>GrSurfaceOrigin</a> <a href='undocumented#GrSurfaceOrigin'>origin</a>,
+ static <a href='undocumented#sk_sp'>sk_sp</a><<a href='SkImage_Reference#SkImage'>SkImage</a>> <a href='#SkImage_MakeFromTexture'>MakeFromTexture</a>(<a href='undocumented#GrContext'>GrContext</a>* context,
+ const <a href='undocumented#GrBackendTexture'>GrBackendTexture</a>& backendTexture,
+ <a href='undocumented#GrSurfaceOrigin'>GrSurfaceOrigin</a> origin,
<a href='SkImageInfo_Reference#SkColorType'>SkColorType</a> <a href='#SkImage_colorType'>colorType</a>,
<a href='SkImageInfo_Reference#SkAlphaType'>SkAlphaType</a> <a href='#SkImage_alphaType'>alphaType</a>,
<a href='undocumented#sk_sp'>sk_sp</a><<a href='undocumented#SkColorSpace'>SkColorSpace</a>> <a href='#SkImage_colorSpace'>colorSpace</a>);
- <a href='#SkImage_colorSpace'>static</a> <a href='undocumented#sk_sp'>sk_sp</a><<a href='SkImage_Reference#SkImage'>SkImage</a>> <a href='#SkImage_MakeFromTexture'>MakeFromTexture</a>(<a href='undocumented#GrContext'>GrContext</a>* <a href='undocumented#GrContext'>context</a>,
- <a href='undocumented#GrContext'>const</a> <a href='undocumented#GrBackendTexture'>GrBackendTexture</a>& <a href='undocumented#GrBackendTexture'>backendTexture</a>,
- <a href='undocumented#GrSurfaceOrigin'>GrSurfaceOrigin</a> <a href='undocumented#GrSurfaceOrigin'>origin</a>,
+ static <a href='undocumented#sk_sp'>sk_sp</a><<a href='SkImage_Reference#SkImage'>SkImage</a>> <a href='#SkImage_MakeFromTexture'>MakeFromTexture</a>(<a href='undocumented#GrContext'>GrContext</a>* context,
+ const <a href='undocumented#GrBackendTexture'>GrBackendTexture</a>& backendTexture,
+ <a href='undocumented#GrSurfaceOrigin'>GrSurfaceOrigin</a> origin,
<a href='SkImageInfo_Reference#SkColorType'>SkColorType</a> <a href='#SkImage_colorType'>colorType</a>,
<a href='SkImageInfo_Reference#SkAlphaType'>SkAlphaType</a> <a href='#SkImage_alphaType'>alphaType</a>,
<a href='undocumented#sk_sp'>sk_sp</a><<a href='undocumented#SkColorSpace'>SkColorSpace</a>> <a href='#SkImage_colorSpace'>colorSpace</a>,
- <a href='#SkImage_TextureReleaseProc'>TextureReleaseProc</a> <a href='#SkImage_TextureReleaseProc'>textureReleaseProc</a>,
- <a href='#SkImage_ReleaseContext'>ReleaseContext</a> <a href='#SkImage_ReleaseContext'>releaseContext</a>);
- <a href='#SkImage_ReleaseContext'>static</a> <a href='undocumented#sk_sp'>sk_sp</a><<a href='SkImage_Reference#SkImage'>SkImage</a>> <a href='#SkImage_MakeCrossContextFromEncoded'>MakeCrossContextFromEncoded</a>(<a href='undocumented#GrContext'>GrContext</a>* <a href='undocumented#GrContext'>context</a>, <a href='undocumented#sk_sp'>sk_sp</a><<a href='undocumented#SkData'>SkData</a>> <a href='undocumented#Data'>data</a>,
- <a href='undocumented#Data'>bool</a> <a href='undocumented#Data'>buildMips</a>, <a href='undocumented#SkColorSpace'>SkColorSpace</a>* <a href='undocumented#SkColorSpace'>dstColorSpace</a>,
- <a href='undocumented#SkColorSpace'>bool</a> <a href='undocumented#SkColorSpace'>limitToMaxTextureSize</a> = <a href='undocumented#SkColorSpace'>false</a>);
- <a href='undocumented#SkColorSpace'>static</a> <a href='undocumented#sk_sp'>sk_sp</a><<a href='SkImage_Reference#SkImage'>SkImage</a>> <a href='#SkImage_MakeCrossContextFromPixmap'>MakeCrossContextFromPixmap</a>(<a href='undocumented#GrContext'>GrContext</a>* <a href='undocumented#GrContext'>context</a>, <a href='undocumented#GrContext'>const</a> <a href='SkPixmap_Reference#SkPixmap'>SkPixmap</a>& <a href='SkPixmap_Reference#Pixmap'>pixmap</a>,
- <a href='SkPixmap_Reference#Pixmap'>bool</a> <a href='SkPixmap_Reference#Pixmap'>buildMips</a>, <a href='undocumented#SkColorSpace'>SkColorSpace</a>* <a href='undocumented#SkColorSpace'>dstColorSpace</a>,
- <a href='undocumented#SkColorSpace'>bool</a> <a href='undocumented#SkColorSpace'>limitToMaxTextureSize</a> = <a href='undocumented#SkColorSpace'>false</a>);
- <a href='undocumented#SkColorSpace'>static</a> <a href='undocumented#sk_sp'>sk_sp</a><<a href='SkImage_Reference#SkImage'>SkImage</a>> <a href='#SkImage_MakeFromAdoptedTexture'>MakeFromAdoptedTexture</a>(<a href='undocumented#GrContext'>GrContext</a>* <a href='undocumented#GrContext'>context</a>,
- <a href='undocumented#GrContext'>const</a> <a href='undocumented#GrBackendTexture'>GrBackendTexture</a>& <a href='undocumented#GrBackendTexture'>backendTexture</a>,
- <a href='undocumented#GrSurfaceOrigin'>GrSurfaceOrigin</a> <a href='undocumented#GrSurfaceOrigin'>surfaceOrigin</a>,
+ <a href='#SkImage_TextureReleaseProc'>TextureReleaseProc</a> textureReleaseProc,
+ <a href='#SkImage_ReleaseContext'>ReleaseContext</a> releaseContext);
+ static <a href='undocumented#sk_sp'>sk_sp</a><<a href='SkImage_Reference#SkImage'>SkImage</a>> <a href='#SkImage_MakeCrossContextFromEncoded'>MakeCrossContextFromEncoded</a>(<a href='undocumented#GrContext'>GrContext</a>* context, <a href='undocumented#sk_sp'>sk_sp</a><<a href='undocumented#SkData'>SkData</a>> <a href='undocumented#Data'>data</a>,
+ bool buildMips, <a href='undocumented#SkColorSpace'>SkColorSpace</a>* dstColorSpace,
+ bool limitToMaxTextureSize = false);
+ static <a href='undocumented#sk_sp'>sk_sp</a><<a href='SkImage_Reference#SkImage'>SkImage</a>> <a href='#SkImage_MakeCrossContextFromPixmap'>MakeCrossContextFromPixmap</a>(<a href='undocumented#GrContext'>GrContext</a>* context, const <a href='SkPixmap_Reference#SkPixmap'>SkPixmap</a>& <a href='SkPixmap_Reference#Pixmap'>pixmap</a>,
+ bool buildMips, <a href='undocumented#SkColorSpace'>SkColorSpace</a>* dstColorSpace,
+ bool limitToMaxTextureSize = false);
+ static <a href='undocumented#sk_sp'>sk_sp</a><<a href='SkImage_Reference#SkImage'>SkImage</a>> <a href='#SkImage_MakeFromAdoptedTexture'>MakeFromAdoptedTexture</a>(<a href='undocumented#GrContext'>GrContext</a>* context,
+ const <a href='undocumented#GrBackendTexture'>GrBackendTexture</a>& backendTexture,
+ <a href='undocumented#GrSurfaceOrigin'>GrSurfaceOrigin</a> surfaceOrigin,
<a href='SkImageInfo_Reference#SkColorType'>SkColorType</a> <a href='#SkImage_colorType'>colorType</a>,
<a href='SkImageInfo_Reference#SkAlphaType'>SkAlphaType</a> <a href='#SkImage_alphaType'>alphaType</a> = <a href='SkImageInfo_Reference#kPremul_SkAlphaType'>kPremul_SkAlphaType</a>,
- <a href='undocumented#sk_sp'>sk_sp</a><<a href='undocumented#SkColorSpace'>SkColorSpace</a>> <a href='#SkImage_colorSpace'>colorSpace</a> = <a href='#SkImage_colorSpace'>nullptr</a>);
- <a href='#SkImage_colorSpace'>static</a> <a href='undocumented#sk_sp'>sk_sp</a><<a href='SkImage_Reference#SkImage'>SkImage</a>> <a href='#SkImage_MakeFromYUVATexturesCopy'>MakeFromYUVATexturesCopy</a>(<a href='undocumented#GrContext'>GrContext</a>* <a href='undocumented#GrContext'>context</a>,
- <a href='SkImageInfo_Reference#SkYUVColorSpace'>SkYUVColorSpace</a> <a href='SkImageInfo_Reference#SkYUVColorSpace'>yuvColorSpace</a>,
- <a href='SkImageInfo_Reference#SkYUVColorSpace'>const</a> <a href='undocumented#GrBackendTexture'>GrBackendTexture</a> <a href='undocumented#GrBackendTexture'>yuvaTextures</a>[],
- <a href='undocumented#GrBackendTexture'>const</a> <a href='undocumented#SkYUVAIndex'>SkYUVAIndex</a> <a href='undocumented#SkYUVAIndex'>yuvaIndices</a>[4],
- <a href='undocumented#SkISize'>SkISize</a> <a href='undocumented#SkISize'>imageSize</a>,
- <a href='undocumented#GrSurfaceOrigin'>GrSurfaceOrigin</a> <a href='undocumented#GrSurfaceOrigin'>imageOrigin</a>,
- <a href='undocumented#sk_sp'>sk_sp</a><<a href='undocumented#SkColorSpace'>SkColorSpace</a>> <a href='undocumented#SkColorSpace'>imageColorSpace</a> = <a href='undocumented#SkColorSpace'>nullptr</a>);
- <a href='undocumented#SkColorSpace'>static</a> <a href='undocumented#sk_sp'>sk_sp</a><<a href='SkImage_Reference#SkImage'>SkImage</a>> <a href='#SkImage_MakeFromYUVATextures'>MakeFromYUVATextures</a>(<a href='undocumented#GrContext'>GrContext</a>* <a href='undocumented#GrContext'>context</a>,
- <a href='SkImageInfo_Reference#SkYUVColorSpace'>SkYUVColorSpace</a> <a href='SkImageInfo_Reference#SkYUVColorSpace'>yuvColorSpace</a>,
- <a href='SkImageInfo_Reference#SkYUVColorSpace'>const</a> <a href='undocumented#GrBackendTexture'>GrBackendTexture</a> <a href='undocumented#GrBackendTexture'>yuvaTextures</a>[],
- <a href='undocumented#GrBackendTexture'>const</a> <a href='undocumented#SkYUVAIndex'>SkYUVAIndex</a> <a href='undocumented#SkYUVAIndex'>yuvaIndices</a>[4],
- <a href='undocumented#SkISize'>SkISize</a> <a href='undocumented#SkISize'>imageSize</a>,
- <a href='undocumented#GrSurfaceOrigin'>GrSurfaceOrigin</a> <a href='undocumented#GrSurfaceOrigin'>imageOrigin</a>,
- <a href='undocumented#sk_sp'>sk_sp</a><<a href='undocumented#SkColorSpace'>SkColorSpace</a>> <a href='undocumented#SkColorSpace'>imageColorSpace</a> = <a href='undocumented#SkColorSpace'>nullptr</a>);
- <a href='undocumented#SkColorSpace'>static</a> <a href='undocumented#sk_sp'>sk_sp</a><<a href='SkImage_Reference#SkImage'>SkImage</a>> <a href='#SkImage_MakeFromYUVATexturesCopyWithExternalBackend'>MakeFromYUVATexturesCopyWithExternalBackend</a>(
- <a href='undocumented#GrContext'>GrContext</a>* <a href='undocumented#GrContext'>context</a>,
- <a href='SkImageInfo_Reference#SkYUVColorSpace'>SkYUVColorSpace</a> <a href='SkImageInfo_Reference#SkYUVColorSpace'>yuvColorSpace</a>,
- <a href='SkImageInfo_Reference#SkYUVColorSpace'>const</a> <a href='undocumented#GrBackendTexture'>GrBackendTexture</a> <a href='undocumented#GrBackendTexture'>yuvaTextures</a>[],
- <a href='undocumented#GrBackendTexture'>const</a> <a href='undocumented#SkYUVAIndex'>SkYUVAIndex</a> <a href='undocumented#SkYUVAIndex'>yuvaIndices</a>[4],
- <a href='undocumented#SkISize'>SkISize</a> <a href='undocumented#SkISize'>imageSize</a>,
- <a href='undocumented#GrSurfaceOrigin'>GrSurfaceOrigin</a> <a href='undocumented#GrSurfaceOrigin'>imageOrigin</a>,
- <a href='undocumented#GrSurfaceOrigin'>const</a> <a href='undocumented#GrBackendTexture'>GrBackendTexture</a>& <a href='undocumented#GrBackendTexture'>backendTexture</a>,
- <a href='undocumented#sk_sp'>sk_sp</a><<a href='undocumented#SkColorSpace'>SkColorSpace</a>> <a href='undocumented#SkColorSpace'>imageColorSpace</a> = <a href='undocumented#SkColorSpace'>nullptr</a>);
- <a href='undocumented#SkColorSpace'>static</a> <a href='undocumented#sk_sp'>sk_sp</a><<a href='SkImage_Reference#SkImage'>SkImage</a>> <a href='#SkImage_MakeFromYUVTexturesCopy'>MakeFromYUVTexturesCopy</a>(<a href='undocumented#GrContext'>GrContext</a>* <a href='undocumented#GrContext'>context</a>, <a href='SkImageInfo_Reference#SkYUVColorSpace'>SkYUVColorSpace</a> <a href='SkImageInfo_Reference#SkYUVColorSpace'>yuvColorSpace</a>,
- <a href='SkImageInfo_Reference#SkYUVColorSpace'>const</a> <a href='undocumented#GrBackendTexture'>GrBackendTexture</a> <a href='undocumented#GrBackendTexture'>yuvTextures</a>[3],
- <a href='undocumented#GrSurfaceOrigin'>GrSurfaceOrigin</a> <a href='undocumented#GrSurfaceOrigin'>imageOrigin</a>,
- <a href='undocumented#sk_sp'>sk_sp</a><<a href='undocumented#SkColorSpace'>SkColorSpace</a>> <a href='undocumented#SkColorSpace'>imageColorSpace</a> = <a href='undocumented#SkColorSpace'>nullptr</a>);
- <a href='undocumented#SkColorSpace'>static</a> <a href='undocumented#sk_sp'>sk_sp</a><<a href='SkImage_Reference#SkImage'>SkImage</a>> <a href='#SkImage_MakeFromYUVTexturesCopyWithExternalBackend'>MakeFromYUVTexturesCopyWithExternalBackend</a>(
- <a href='undocumented#GrContext'>GrContext</a>* <a href='undocumented#GrContext'>context</a>, <a href='SkImageInfo_Reference#SkYUVColorSpace'>SkYUVColorSpace</a> <a href='SkImageInfo_Reference#SkYUVColorSpace'>yuvColorSpace</a>,
- <a href='SkImageInfo_Reference#SkYUVColorSpace'>const</a> <a href='undocumented#GrBackendTexture'>GrBackendTexture</a> <a href='undocumented#GrBackendTexture'>yuvTextures</a>[3], <a href='undocumented#GrSurfaceOrigin'>GrSurfaceOrigin</a> <a href='undocumented#GrSurfaceOrigin'>imageOrigin</a>,
- <a href='undocumented#GrSurfaceOrigin'>const</a> <a href='undocumented#GrBackendTexture'>GrBackendTexture</a>& <a href='undocumented#GrBackendTexture'>backendTexture</a>, <a href='undocumented#sk_sp'>sk_sp</a><<a href='undocumented#SkColorSpace'>SkColorSpace</a>> <a href='undocumented#SkColorSpace'>imageColorSpace</a> = <a href='undocumented#SkColorSpace'>nullptr</a>);
- <a href='undocumented#SkColorSpace'>static</a> <a href='undocumented#sk_sp'>sk_sp</a><<a href='SkImage_Reference#SkImage'>SkImage</a>> <a href='#SkImage_MakeFromNV12TexturesCopy'>MakeFromNV12TexturesCopy</a>(<a href='undocumented#GrContext'>GrContext</a>* <a href='undocumented#GrContext'>context</a>,
- <a href='SkImageInfo_Reference#SkYUVColorSpace'>SkYUVColorSpace</a> <a href='SkImageInfo_Reference#SkYUVColorSpace'>yuvColorSpace</a>,
- <a href='SkImageInfo_Reference#SkYUVColorSpace'>const</a> <a href='undocumented#GrBackendTexture'>GrBackendTexture</a> <a href='undocumented#GrBackendTexture'>nv12Textures</a>[2],
- <a href='undocumented#GrSurfaceOrigin'>GrSurfaceOrigin</a> <a href='undocumented#GrSurfaceOrigin'>imageOrigin</a>,
- <a href='undocumented#sk_sp'>sk_sp</a><<a href='undocumented#SkColorSpace'>SkColorSpace</a>> <a href='undocumented#SkColorSpace'>imageColorSpace</a> = <a href='undocumented#SkColorSpace'>nullptr</a>);
- <a href='undocumented#SkColorSpace'>static</a> <a href='undocumented#sk_sp'>sk_sp</a><<a href='SkImage_Reference#SkImage'>SkImage</a>> <a href='#SkImage_MakeFromNV12TexturesCopyWithExternalBackend'>MakeFromNV12TexturesCopyWithExternalBackend</a>(
- <a href='undocumented#GrContext'>GrContext</a>* <a href='undocumented#GrContext'>context</a>,
- <a href='SkImageInfo_Reference#SkYUVColorSpace'>SkYUVColorSpace</a> <a href='SkImageInfo_Reference#SkYUVColorSpace'>yuvColorSpace</a>,
- <a href='SkImageInfo_Reference#SkYUVColorSpace'>const</a> <a href='undocumented#GrBackendTexture'>GrBackendTexture</a> <a href='undocumented#GrBackendTexture'>nv12Textures</a>[2],
- <a href='undocumented#GrSurfaceOrigin'>GrSurfaceOrigin</a> <a href='undocumented#GrSurfaceOrigin'>imageOrigin</a>,
- <a href='undocumented#GrSurfaceOrigin'>const</a> <a href='undocumented#GrBackendTexture'>GrBackendTexture</a>& <a href='undocumented#GrBackendTexture'>backendTexture</a>,
- <a href='undocumented#sk_sp'>sk_sp</a><<a href='undocumented#SkColorSpace'>SkColorSpace</a>> <a href='undocumented#SkColorSpace'>imageColorSpace</a> = <a href='undocumented#SkColorSpace'>nullptr</a>);
+ <a href='undocumented#sk_sp'>sk_sp</a><<a href='undocumented#SkColorSpace'>SkColorSpace</a>> <a href='#SkImage_colorSpace'>colorSpace</a> = nullptr);
+ static <a href='undocumented#sk_sp'>sk_sp</a><<a href='SkImage_Reference#SkImage'>SkImage</a>> <a href='#SkImage_MakeFromYUVATexturesCopy'>MakeFromYUVATexturesCopy</a>(<a href='undocumented#GrContext'>GrContext</a>* context,
+ <a href='SkImageInfo_Reference#SkYUVColorSpace'>SkYUVColorSpace</a> yuvColorSpace,
+ const <a href='undocumented#GrBackendTexture'>GrBackendTexture</a> yuvaTextures[],
+ const <a href='undocumented#SkYUVAIndex'>SkYUVAIndex</a> yuvaIndices[4],
+ <a href='undocumented#SkISize'>SkISize</a> imageSize,
+ <a href='undocumented#GrSurfaceOrigin'>GrSurfaceOrigin</a> imageOrigin,
+ <a href='undocumented#sk_sp'>sk_sp</a><<a href='undocumented#SkColorSpace'>SkColorSpace</a>> imageColorSpace = nullptr);
+ static <a href='undocumented#sk_sp'>sk_sp</a><<a href='SkImage_Reference#SkImage'>SkImage</a>> <a href='#SkImage_MakeFromYUVATextures'>MakeFromYUVATextures</a>(<a href='undocumented#GrContext'>GrContext</a>* context,
+ <a href='SkImageInfo_Reference#SkYUVColorSpace'>SkYUVColorSpace</a> yuvColorSpace,
+ const <a href='undocumented#GrBackendTexture'>GrBackendTexture</a> yuvaTextures[],
+ const <a href='undocumented#SkYUVAIndex'>SkYUVAIndex</a> yuvaIndices[4],
+ <a href='undocumented#SkISize'>SkISize</a> imageSize,
+ <a href='undocumented#GrSurfaceOrigin'>GrSurfaceOrigin</a> imageOrigin,
+ <a href='undocumented#sk_sp'>sk_sp</a><<a href='undocumented#SkColorSpace'>SkColorSpace</a>> imageColorSpace = nullptr);
+ static <a href='undocumented#sk_sp'>sk_sp</a><<a href='SkImage_Reference#SkImage'>SkImage</a>> <a href='#SkImage_MakeFromYUVATexturesCopyWithExternalBackend'>MakeFromYUVATexturesCopyWithExternalBackend</a>(
+ <a href='undocumented#GrContext'>GrContext</a>* context,
+ <a href='SkImageInfo_Reference#SkYUVColorSpace'>SkYUVColorSpace</a> yuvColorSpace,
+ const <a href='undocumented#GrBackendTexture'>GrBackendTexture</a> yuvaTextures[],
+ const <a href='undocumented#SkYUVAIndex'>SkYUVAIndex</a> yuvaIndices[4],
+ <a href='undocumented#SkISize'>SkISize</a> imageSize,
+ <a href='undocumented#GrSurfaceOrigin'>GrSurfaceOrigin</a> imageOrigin,
+ const <a href='undocumented#GrBackendTexture'>GrBackendTexture</a>& backendTexture,
+ <a href='undocumented#sk_sp'>sk_sp</a><<a href='undocumented#SkColorSpace'>SkColorSpace</a>> imageColorSpace = nullptr);
+ static <a href='undocumented#sk_sp'>sk_sp</a><<a href='SkImage_Reference#SkImage'>SkImage</a>> <a href='#SkImage_MakeFromYUVTexturesCopy'>MakeFromYUVTexturesCopy</a>(<a href='undocumented#GrContext'>GrContext</a>* context, <a href='SkImageInfo_Reference#SkYUVColorSpace'>SkYUVColorSpace</a> yuvColorSpace,
+ const <a href='undocumented#GrBackendTexture'>GrBackendTexture</a> yuvTextures[3],
+ <a href='undocumented#GrSurfaceOrigin'>GrSurfaceOrigin</a> imageOrigin,
+ <a href='undocumented#sk_sp'>sk_sp</a><<a href='undocumented#SkColorSpace'>SkColorSpace</a>> imageColorSpace = nullptr);
+ static <a href='undocumented#sk_sp'>sk_sp</a><<a href='SkImage_Reference#SkImage'>SkImage</a>> <a href='#SkImage_MakeFromYUVTexturesCopyWithExternalBackend'>MakeFromYUVTexturesCopyWithExternalBackend</a>(
+ <a href='undocumented#GrContext'>GrContext</a>* context, <a href='SkImageInfo_Reference#SkYUVColorSpace'>SkYUVColorSpace</a> yuvColorSpace,
+ const <a href='undocumented#GrBackendTexture'>GrBackendTexture</a> yuvTextures[3], <a href='undocumented#GrSurfaceOrigin'>GrSurfaceOrigin</a> imageOrigin,
+ const <a href='undocumented#GrBackendTexture'>GrBackendTexture</a>& backendTexture, <a href='undocumented#sk_sp'>sk_sp</a><<a href='undocumented#SkColorSpace'>SkColorSpace</a>> imageColorSpace = nullptr);
+ static <a href='undocumented#sk_sp'>sk_sp</a><<a href='SkImage_Reference#SkImage'>SkImage</a>> <a href='#SkImage_MakeFromNV12TexturesCopy'>MakeFromNV12TexturesCopy</a>(<a href='undocumented#GrContext'>GrContext</a>* context,
+ <a href='SkImageInfo_Reference#SkYUVColorSpace'>SkYUVColorSpace</a> yuvColorSpace,
+ const <a href='undocumented#GrBackendTexture'>GrBackendTexture</a> nv12Textures[2],
+ <a href='undocumented#GrSurfaceOrigin'>GrSurfaceOrigin</a> imageOrigin,
+ <a href='undocumented#sk_sp'>sk_sp</a><<a href='undocumented#SkColorSpace'>SkColorSpace</a>> imageColorSpace = nullptr);
+ static <a href='undocumented#sk_sp'>sk_sp</a><<a href='SkImage_Reference#SkImage'>SkImage</a>> <a href='#SkImage_MakeFromNV12TexturesCopyWithExternalBackend'>MakeFromNV12TexturesCopyWithExternalBackend</a>(
+ <a href='undocumented#GrContext'>GrContext</a>* context,
+ <a href='SkImageInfo_Reference#SkYUVColorSpace'>SkYUVColorSpace</a> yuvColorSpace,
+ const <a href='undocumented#GrBackendTexture'>GrBackendTexture</a> nv12Textures[2],
+ <a href='undocumented#GrSurfaceOrigin'>GrSurfaceOrigin</a> imageOrigin,
+ const <a href='undocumented#GrBackendTexture'>GrBackendTexture</a>& backendTexture,
+ <a href='undocumented#sk_sp'>sk_sp</a><<a href='undocumented#SkColorSpace'>SkColorSpace</a>> imageColorSpace = nullptr);
- <a href='undocumented#SkColorSpace'>enum</a> <a href='undocumented#SkColorSpace'>class</a> <a href='#SkImage_BitDepth'>BitDepth</a> {
- <a href='#SkImage_BitDepth'>kU8</a>,
- <a href='#SkImage_BitDepth'>kF16</a>,
+ enum class <a href='#SkImage_BitDepth'>BitDepth</a> {
+ kU8,
+ kF16,
};
- <a href='#SkImage_BitDepth'>static</a> <a href='undocumented#sk_sp'>sk_sp</a><<a href='SkImage_Reference#SkImage'>SkImage</a>> <a href='#SkImage_MakeFromPicture'>MakeFromPicture</a>(<a href='undocumented#sk_sp'>sk_sp</a><<a href='SkPicture_Reference#SkPicture'>SkPicture</a>> <a href='SkPicture_Reference#Picture'>picture</a>, <a href='SkPicture_Reference#Picture'>const</a> <a href='undocumented#SkISize'>SkISize</a>& <a href='undocumented#SkISize'>dimensions</a>,
- <a href='undocumented#SkISize'>const</a> <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a>* <a href='SkMatrix_Reference#Matrix'>matrix</a>, <a href='SkMatrix_Reference#Matrix'>const</a> <a href='SkPaint_Reference#SkPaint'>SkPaint</a>* <a href='SkPaint_Reference#Paint'>paint</a>,
- <a href='#SkImage_BitDepth'>BitDepth</a> <a href='#SkImage_BitDepth'>bitDepth</a>,
+ static <a href='undocumented#sk_sp'>sk_sp</a><<a href='SkImage_Reference#SkImage'>SkImage</a>> <a href='#SkImage_MakeFromPicture'>MakeFromPicture</a>(<a href='undocumented#sk_sp'>sk_sp</a><<a href='SkPicture_Reference#SkPicture'>SkPicture</a>> <a href='SkPicture_Reference#Picture'>picture</a>, const <a href='undocumented#SkISize'>SkISize</a>& dimensions,
+ const <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a>* <a href='SkMatrix_Reference#Matrix'>matrix</a>, const <a href='SkPaint_Reference#SkPaint'>SkPaint</a>* <a href='SkPaint_Reference#Paint'>paint</a>,
+ <a href='#SkImage_BitDepth'>BitDepth</a> bitDepth,
<a href='undocumented#sk_sp'>sk_sp</a><<a href='undocumented#SkColorSpace'>SkColorSpace</a>> <a href='#SkImage_colorSpace'>colorSpace</a>);
- <a href='#SkImage_colorSpace'>static</a> <a href='undocumented#sk_sp'>sk_sp</a><<a href='SkImage_Reference#SkImage'>SkImage</a>> <a href='#SkImage_MakeFromAHardwareBuffer'>MakeFromAHardwareBuffer</a>(
- <a href='#SkImage_MakeFromAHardwareBuffer'>AHardwareBuffer</a>* <a href='#SkImage_MakeFromAHardwareBuffer'>hardwareBuffer</a>,
+ static <a href='undocumented#sk_sp'>sk_sp</a><<a href='SkImage_Reference#SkImage'>SkImage</a>> <a href='#SkImage_MakeFromAHardwareBuffer'>MakeFromAHardwareBuffer</a>(
+ AHardwareBuffer* hardwareBuffer,
<a href='SkImageInfo_Reference#SkAlphaType'>SkAlphaType</a> <a href='#SkImage_alphaType'>alphaType</a> = <a href='SkImageInfo_Reference#kPremul_SkAlphaType'>kPremul_SkAlphaType</a>,
- <a href='undocumented#sk_sp'>sk_sp</a><<a href='undocumented#SkColorSpace'>SkColorSpace</a>> <a href='#SkImage_colorSpace'>colorSpace</a> = <a href='#SkImage_colorSpace'>nullptr</a>,
- <a href='undocumented#GrSurfaceOrigin'>GrSurfaceOrigin</a> <a href='undocumented#GrSurfaceOrigin'>surfaceOrigin</a> = <a href='undocumented#kTopLeft_GrSurfaceOrigin'>kTopLeft_GrSurfaceOrigin</a>);
- <a href='undocumented#kTopLeft_GrSurfaceOrigin'>int</a> <a href='#SkImage_width'>width()</a> <a href='#SkImage_width'>const</a>;
- <a href='#SkImage_width'>int</a> <a href='#SkImage_height'>height()</a> <a href='#SkImage_height'>const</a>;
- <a href='undocumented#SkISize'>SkISize</a> <a href='#SkImage_dimensions'>dimensions()</a> <a href='#SkImage_dimensions'>const</a>;
- <a href='SkIRect_Reference#SkIRect'>SkIRect</a> <a href='#SkImage_bounds'>bounds()</a> <a href='#SkImage_bounds'>const</a>;
- <a href='#SkImage_bounds'>uint32_t</a> <a href='#SkImage_uniqueID'>uniqueID</a>() <a href='#SkImage_uniqueID'>const</a>;
- <a href='SkImageInfo_Reference#SkAlphaType'>SkAlphaType</a> <a href='#SkImage_alphaType'>alphaType</a>() <a href='#SkImage_alphaType'>const</a>;
- <a href='SkImageInfo_Reference#SkColorType'>SkColorType</a> <a href='#SkImage_colorType'>colorType</a>() <a href='#SkImage_colorType'>const</a>;
- <a href='undocumented#SkColorSpace'>SkColorSpace</a>* <a href='#SkImage_colorSpace'>colorSpace</a>() <a href='#SkImage_colorSpace'>const</a>;
- <a href='undocumented#sk_sp'>sk_sp</a><<a href='undocumented#SkColorSpace'>SkColorSpace</a>> <a href='#SkImage_refColorSpace'>refColorSpace</a>() <a href='#SkImage_refColorSpace'>const</a>;
- <a href='#SkImage_refColorSpace'>bool</a> <a href='#SkImage_isAlphaOnly'>isAlphaOnly</a>() <a href='#SkImage_isAlphaOnly'>const</a>;
- <a href='#SkImage_isAlphaOnly'>bool</a> <a href='#SkImage_isOpaque'>isOpaque</a>() <a href='#SkImage_isOpaque'>const</a>;
- <a href='undocumented#sk_sp'>sk_sp</a><<a href='undocumented#SkShader'>SkShader</a>> <a href='#SkImage_makeShader'>makeShader</a>(<a href='undocumented#SkShader'>SkShader</a>::<a href='#SkShader_TileMode'>TileMode</a> <a href='#SkShader_TileMode'>tileMode1</a>, <a href='undocumented#SkShader'>SkShader</a>::<a href='#SkShader_TileMode'>TileMode</a> <a href='#SkShader_TileMode'>tileMode2</a>,
- <a href='#SkShader_TileMode'>const</a> <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a>* <a href='SkMatrix_Reference#SkMatrix'>localMatrix</a> = <a href='SkMatrix_Reference#SkMatrix'>nullptr</a>) <a href='SkMatrix_Reference#SkMatrix'>const</a>;
- <a href='undocumented#sk_sp'>sk_sp</a><<a href='undocumented#SkShader'>SkShader</a>> <a href='#SkImage_makeShader'>makeShader</a>(<a href='#SkImage_makeShader'>const</a> <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a>* <a href='SkMatrix_Reference#SkMatrix'>localMatrix</a> = <a href='SkMatrix_Reference#SkMatrix'>nullptr</a>) <a href='SkMatrix_Reference#SkMatrix'>const</a>;
- <a href='SkMatrix_Reference#SkMatrix'>bool</a> <a href='#SkImage_peekPixels'>peekPixels</a>(<a href='SkPixmap_Reference#SkPixmap'>SkPixmap</a>* <a href='SkPixmap_Reference#Pixmap'>pixmap</a>) <a href='SkPixmap_Reference#Pixmap'>const</a>;
- <a href='SkPixmap_Reference#Pixmap'>GrTexture</a>* <a href='#SkImage_getTexture'>getTexture</a>() <a href='#SkImage_getTexture'>const</a>;
- <a href='#SkImage_getTexture'>bool</a> <a href='#SkImage_isTextureBacked'>isTextureBacked</a>() <a href='#SkImage_isTextureBacked'>const</a>;
- <a href='#SkImage_isTextureBacked'>bool</a> <a href='#SkImage_isValid'>isValid</a>(<a href='undocumented#GrContext'>GrContext</a>* <a href='undocumented#GrContext'>context</a>) <a href='undocumented#GrContext'>const</a>;
- <a href='undocumented#GrBackendTexture'>GrBackendTexture</a> <a href='#SkImage_getBackendTexture'>getBackendTexture</a>(<a href='#SkImage_getBackendTexture'>bool</a> <a href='#SkImage_getBackendTexture'>flushPendingGrContextIO</a>,
- <a href='undocumented#GrSurfaceOrigin'>GrSurfaceOrigin</a>* <a href='undocumented#GrSurfaceOrigin'>origin</a> = <a href='undocumented#GrSurfaceOrigin'>nullptr</a>) <a href='undocumented#GrSurfaceOrigin'>const</a>;
+ <a href='undocumented#sk_sp'>sk_sp</a><<a href='undocumented#SkColorSpace'>SkColorSpace</a>> <a href='#SkImage_colorSpace'>colorSpace</a> = nullptr,
+ <a href='undocumented#GrSurfaceOrigin'>GrSurfaceOrigin</a> surfaceOrigin = <a href='undocumented#kTopLeft_GrSurfaceOrigin'>kTopLeft_GrSurfaceOrigin</a>);
+ int <a href='#SkImage_width'>width()</a> const;
+ int <a href='#SkImage_height'>height()</a> const;
+ <a href='undocumented#SkISize'>SkISize</a> <a href='#SkImage_dimensions'>dimensions()</a> const;
+ <a href='SkIRect_Reference#SkIRect'>SkIRect</a> <a href='#SkImage_bounds'>bounds()</a> const;
+ uint32_t <a href='#SkImage_uniqueID'>uniqueID</a>() const;
+ <a href='SkImageInfo_Reference#SkAlphaType'>SkAlphaType</a> <a href='#SkImage_alphaType'>alphaType</a>() const;
+ <a href='SkImageInfo_Reference#SkColorType'>SkColorType</a> <a href='#SkImage_colorType'>colorType</a>() const;
+ <a href='undocumented#SkColorSpace'>SkColorSpace</a>* <a href='#SkImage_colorSpace'>colorSpace</a>() const;
+ <a href='undocumented#sk_sp'>sk_sp</a><<a href='undocumented#SkColorSpace'>SkColorSpace</a>> <a href='#SkImage_refColorSpace'>refColorSpace</a>() const;
+ bool <a href='#SkImage_isAlphaOnly'>isAlphaOnly</a>() const;
+ bool <a href='#SkImage_isOpaque'>isOpaque</a>() const;
+ <a href='undocumented#sk_sp'>sk_sp</a><<a href='undocumented#SkShader'>SkShader</a>> <a href='#SkImage_makeShader'>makeShader</a>(<a href='undocumented#SkShader'>SkShader</a>::<a href='#SkShader_TileMode'>TileMode</a> tileMode1, <a href='undocumented#SkShader'>SkShader</a>::<a href='#SkShader_TileMode'>TileMode</a> tileMode2,
+ const <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a>* localMatrix = nullptr) const;
+ <a href='undocumented#sk_sp'>sk_sp</a><<a href='undocumented#SkShader'>SkShader</a>> <a href='#SkImage_makeShader'>makeShader</a>(const <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a>* localMatrix = nullptr) const;
+ bool <a href='#SkImage_peekPixels'>peekPixels</a>(<a href='SkPixmap_Reference#SkPixmap'>SkPixmap</a>* <a href='SkPixmap_Reference#Pixmap'>pixmap</a>) const;
+ GrTexture* <a href='#SkImage_getTexture'>getTexture</a>() const;
+ bool <a href='#SkImage_isTextureBacked'>isTextureBacked</a>() const;
+ bool <a href='#SkImage_isValid'>isValid</a>(<a href='undocumented#GrContext'>GrContext</a>* context) const;
+ <a href='undocumented#GrBackendTexture'>GrBackendTexture</a> <a href='#SkImage_getBackendTexture'>getBackendTexture</a>(bool flushPendingGrContextIO,
+ <a href='undocumented#GrSurfaceOrigin'>GrSurfaceOrigin</a>* origin = nullptr) const;
- <a href='undocumented#GrSurfaceOrigin'>enum</a> <a href='#SkImage_CachingHint'>CachingHint</a> {
+ enum <a href='#SkImage_CachingHint'>CachingHint</a> {
<a href='#SkImage_kAllow_CachingHint'>kAllow_CachingHint</a>,
<a href='#SkImage_kDisallow_CachingHint'>kDisallow_CachingHint</a>,
};
- <a href='#SkImage_kDisallow_CachingHint'>bool</a> <a href='#SkImage_readPixels'>readPixels</a>(<a href='#SkImage_readPixels'>const</a> <a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a>& <a href='SkImageInfo_Reference#SkImageInfo'>dstInfo</a>, <a href='SkImageInfo_Reference#SkImageInfo'>void</a>* <a href='SkImageInfo_Reference#SkImageInfo'>dstPixels</a>, <a href='SkImageInfo_Reference#SkImageInfo'>size_t</a> <a href='SkImageInfo_Reference#SkImageInfo'>dstRowBytes</a>,
- <a href='SkImageInfo_Reference#SkImageInfo'>int</a> <a href='SkImageInfo_Reference#SkImageInfo'>srcX</a>, <a href='SkImageInfo_Reference#SkImageInfo'>int</a> <a href='SkImageInfo_Reference#SkImageInfo'>srcY</a>, <a href='#SkImage_CachingHint'>CachingHint</a> <a href='#SkImage_CachingHint'>cachingHint</a> = <a href='#SkImage_kAllow_CachingHint'>kAllow_CachingHint</a>) <a href='#SkImage_kAllow_CachingHint'>const</a>;
- <a href='#SkImage_kAllow_CachingHint'>bool</a> <a href='#SkImage_readPixels'>readPixels</a>(<a href='#SkImage_readPixels'>const</a> <a href='SkPixmap_Reference#SkPixmap'>SkPixmap</a>& <a href='SkPixmap_Reference#SkPixmap'>dst</a>, <a href='SkPixmap_Reference#SkPixmap'>int</a> <a href='SkPixmap_Reference#SkPixmap'>srcX</a>, <a href='SkPixmap_Reference#SkPixmap'>int</a> <a href='SkPixmap_Reference#SkPixmap'>srcY</a>,
- <a href='#SkImage_CachingHint'>CachingHint</a> <a href='#SkImage_CachingHint'>cachingHint</a> = <a href='#SkImage_kAllow_CachingHint'>kAllow_CachingHint</a>) <a href='#SkImage_kAllow_CachingHint'>const</a>;
- <a href='#SkImage_kAllow_CachingHint'>bool</a> <a href='#SkImage_scalePixels'>scalePixels</a>(<a href='#SkImage_scalePixels'>const</a> <a href='SkPixmap_Reference#SkPixmap'>SkPixmap</a>& <a href='SkPixmap_Reference#SkPixmap'>dst</a>, <a href='undocumented#SkFilterQuality'>SkFilterQuality</a> <a href='undocumented#SkFilterQuality'>filterQuality</a>,
- <a href='#SkImage_CachingHint'>CachingHint</a> <a href='#SkImage_CachingHint'>cachingHint</a> = <a href='#SkImage_kAllow_CachingHint'>kAllow_CachingHint</a>) <a href='#SkImage_kAllow_CachingHint'>const</a>;
- <a href='undocumented#sk_sp'>sk_sp</a><<a href='undocumented#SkData'>SkData</a>> <a href='#SkImage_encodeToData'>encodeToData</a>(<a href='undocumented#SkEncodedImageFormat'>SkEncodedImageFormat</a> <a href='undocumented#SkEncodedImageFormat'>encodedImageFormat</a>, <a href='undocumented#SkEncodedImageFormat'>int</a> <a href='undocumented#SkEncodedImageFormat'>quality</a>) <a href='undocumented#SkEncodedImageFormat'>const</a>;
- <a href='undocumented#sk_sp'>sk_sp</a><<a href='undocumented#SkData'>SkData</a>> <a href='#SkImage_encodeToData'>encodeToData</a>() <a href='#SkImage_encodeToData'>const</a>;
- <a href='undocumented#sk_sp'>sk_sp</a><<a href='undocumented#SkData'>SkData</a>> <a href='#SkImage_refEncodedData'>refEncodedData</a>() <a href='#SkImage_refEncodedData'>const</a>;
- <a href='undocumented#sk_sp'>sk_sp</a><<a href='SkImage_Reference#SkImage'>SkImage</a>> <a href='#SkImage_makeSubset'>makeSubset</a>(<a href='#SkImage_makeSubset'>const</a> <a href='SkIRect_Reference#SkIRect'>SkIRect</a>& <a href='SkIRect_Reference#SkIRect'>subset</a>) <a href='SkIRect_Reference#SkIRect'>const</a>;
- <a href='undocumented#sk_sp'>sk_sp</a><<a href='SkImage_Reference#SkImage'>SkImage</a>> <a href='#SkImage_makeTextureImage'>makeTextureImage</a>(<a href='undocumented#GrContext'>GrContext</a>* <a href='undocumented#GrContext'>context</a>, <a href='undocumented#SkColorSpace'>SkColorSpace</a>* <a href='undocumented#SkColorSpace'>dstColorSpace</a>,
- <a href='undocumented#GrMipMapped'>GrMipMapped</a> <a href='undocumented#GrMipMapped'>mipMapped</a> = <a href='undocumented#GrMipMapped'>GrMipMapped</a>::<a href='#GrMipMapped_kNo'>kNo</a>) <a href='#GrMipMapped_kNo'>const</a>;
- <a href='undocumented#sk_sp'>sk_sp</a><<a href='SkImage_Reference#SkImage'>SkImage</a>> <a href='#SkImage_makeNonTextureImage'>makeNonTextureImage</a>() <a href='#SkImage_makeNonTextureImage'>const</a>;
- <a href='undocumented#sk_sp'>sk_sp</a><<a href='SkImage_Reference#SkImage'>SkImage</a>> <a href='#SkImage_makeRasterImage'>makeRasterImage</a>() <a href='#SkImage_makeRasterImage'>const</a>;
- <a href='undocumented#sk_sp'>sk_sp</a><<a href='SkImage_Reference#SkImage'>SkImage</a>> <a href='#SkImage_makeWithFilter'>makeWithFilter</a>(<a href='#SkImage_makeWithFilter'>const</a> <a href='undocumented#SkImageFilter'>SkImageFilter</a>* <a href='undocumented#SkImageFilter'>filter</a>, <a href='undocumented#SkImageFilter'>const</a> <a href='SkIRect_Reference#SkIRect'>SkIRect</a>& <a href='SkIRect_Reference#SkIRect'>subset</a>,
- <a href='SkIRect_Reference#SkIRect'>const</a> <a href='SkIRect_Reference#SkIRect'>SkIRect</a>& <a href='SkIRect_Reference#SkIRect'>clipBounds</a>, <a href='SkIRect_Reference#SkIRect'>SkIRect</a>* <a href='SkIRect_Reference#SkIRect'>outSubset</a>,
- <a href='SkIPoint_Reference#SkIPoint'>SkIPoint</a>* <a href='SkIPoint_Reference#SkIPoint'>offset</a>) <a href='SkIPoint_Reference#SkIPoint'>const</a>;
+ bool <a href='#SkImage_readPixels'>readPixels</a>(const <a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a>& dstInfo, void* dstPixels, size_t dstRowBytes,
+ int srcX, int srcY, <a href='#SkImage_CachingHint'>CachingHint</a> cachingHint = <a href='#SkImage_kAllow_CachingHint'>kAllow_CachingHint</a>) const;
+ bool <a href='#SkImage_readPixels'>readPixels</a>(const <a href='SkPixmap_Reference#SkPixmap'>SkPixmap</a>& dst, int srcX, int srcY,
+ <a href='#SkImage_CachingHint'>CachingHint</a> cachingHint = <a href='#SkImage_kAllow_CachingHint'>kAllow_CachingHint</a>) const;
+ bool <a href='#SkImage_scalePixels'>scalePixels</a>(const <a href='SkPixmap_Reference#SkPixmap'>SkPixmap</a>& dst, <a href='undocumented#SkFilterQuality'>SkFilterQuality</a> filterQuality,
+ <a href='#SkImage_CachingHint'>CachingHint</a> cachingHint = <a href='#SkImage_kAllow_CachingHint'>kAllow_CachingHint</a>) const;
+ <a href='undocumented#sk_sp'>sk_sp</a><<a href='undocumented#SkData'>SkData</a>> <a href='#SkImage_encodeToData'>encodeToData</a>(<a href='undocumented#SkEncodedImageFormat'>SkEncodedImageFormat</a> encodedImageFormat, int quality) const;
+ <a href='undocumented#sk_sp'>sk_sp</a><<a href='undocumented#SkData'>SkData</a>> <a href='#SkImage_encodeToData'>encodeToData</a>() const;
+ <a href='undocumented#sk_sp'>sk_sp</a><<a href='undocumented#SkData'>SkData</a>> <a href='#SkImage_refEncodedData'>refEncodedData</a>() const;
+ <a href='undocumented#sk_sp'>sk_sp</a><<a href='SkImage_Reference#SkImage'>SkImage</a>> <a href='#SkImage_makeSubset'>makeSubset</a>(const <a href='SkIRect_Reference#SkIRect'>SkIRect</a>& subset) const;
+ <a href='undocumented#sk_sp'>sk_sp</a><<a href='SkImage_Reference#SkImage'>SkImage</a>> <a href='#SkImage_makeTextureImage'>makeTextureImage</a>(<a href='undocumented#GrContext'>GrContext</a>* context, <a href='undocumented#SkColorSpace'>SkColorSpace</a>* dstColorSpace,
+ <a href='undocumented#GrMipMapped'>GrMipMapped</a> mipMapped = <a href='undocumented#GrMipMapped'>GrMipMapped</a>::<a href='#GrMipMapped_kNo'>kNo</a>) const;
+ <a href='undocumented#sk_sp'>sk_sp</a><<a href='SkImage_Reference#SkImage'>SkImage</a>> <a href='#SkImage_makeNonTextureImage'>makeNonTextureImage</a>() const;
+ <a href='undocumented#sk_sp'>sk_sp</a><<a href='SkImage_Reference#SkImage'>SkImage</a>> <a href='#SkImage_makeRasterImage'>makeRasterImage</a>() const;
+ <a href='undocumented#sk_sp'>sk_sp</a><<a href='SkImage_Reference#SkImage'>SkImage</a>> <a href='#SkImage_makeWithFilter'>makeWithFilter</a>(const <a href='undocumented#SkImageFilter'>SkImageFilter</a>* filter, const <a href='SkIRect_Reference#SkIRect'>SkIRect</a>& subset,
+ const <a href='SkIRect_Reference#SkIRect'>SkIRect</a>& clipBounds, <a href='SkIRect_Reference#SkIRect'>SkIRect</a>* outSubset,
+ <a href='SkIPoint_Reference#SkIPoint'>SkIPoint</a>* offset) const;
- <a href='SkIPoint_Reference#SkIPoint'>typedef</a> <a href='SkIPoint_Reference#SkIPoint'>std</a>::<a href='SkIPoint_Reference#SkIPoint'>function</a><<a href='SkIPoint_Reference#SkIPoint'>void</a>(<a href='undocumented#GrBackendTexture'>GrBackendTexture</a>)> <a href='#SkImage_BackendTextureReleaseProc'>BackendTextureReleaseProc</a>;
+ typedef std::function<void(<a href='undocumented#GrBackendTexture'>GrBackendTexture</a>)> <a href='#SkImage_BackendTextureReleaseProc'>BackendTextureReleaseProc</a>;
- <a href='#SkImage_BackendTextureReleaseProc'>static</a> <a href='#SkImage_BackendTextureReleaseProc'>bool</a> <a href='#SkImage_MakeBackendTextureFromSkImage'>MakeBackendTextureFromSkImage</a>(<a href='undocumented#GrContext'>GrContext</a>* <a href='undocumented#GrContext'>context</a>,
+ static bool <a href='#SkImage_MakeBackendTextureFromSkImage'>MakeBackendTextureFromSkImage</a>(<a href='undocumented#GrContext'>GrContext</a>* context,
<a href='undocumented#sk_sp'>sk_sp</a><<a href='SkImage_Reference#SkImage'>SkImage</a>> <a href='SkImage_Reference#Image'>image</a>,
- <a href='undocumented#GrBackendTexture'>GrBackendTexture</a>* <a href='undocumented#GrBackendTexture'>backendTexture</a>,
- <a href='#SkImage_BackendTextureReleaseProc'>BackendTextureReleaseProc</a>* <a href='#SkImage_BackendTextureReleaseProc'>backendTextureReleaseProc</a>);
+ <a href='undocumented#GrBackendTexture'>GrBackendTexture</a>* backendTexture,
+ <a href='#SkImage_BackendTextureReleaseProc'>BackendTextureReleaseProc</a>* backendTextureReleaseProc);
- <a href='#SkImage_BackendTextureReleaseProc'>enum</a> <a href='#SkImage_LegacyBitmapMode'>LegacyBitmapMode</a> {
+ enum <a href='#SkImage_LegacyBitmapMode'>LegacyBitmapMode</a> {
<a href='#SkImage_kRO_LegacyBitmapMode'>kRO_LegacyBitmapMode</a>,
};
- <a href='#SkImage_kRO_LegacyBitmapMode'>bool</a> <a href='#SkImage_asLegacyBitmap'>asLegacyBitmap</a>(<a href='SkBitmap_Reference#SkBitmap'>SkBitmap</a>* <a href='SkBitmap_Reference#Bitmap'>bitmap</a>,
- <a href='#SkImage_LegacyBitmapMode'>LegacyBitmapMode</a> <a href='#SkImage_LegacyBitmapMode'>legacyBitmapMode</a> = <a href='#SkImage_kRO_LegacyBitmapMode'>kRO_LegacyBitmapMode</a>) <a href='#SkImage_kRO_LegacyBitmapMode'>const</a>;
- <a href='#SkImage_kRO_LegacyBitmapMode'>bool</a> <a href='#SkImage_isLazyGenerated'>isLazyGenerated</a>() <a href='#SkImage_isLazyGenerated'>const</a>;
- <a href='undocumented#sk_sp'>sk_sp</a><<a href='SkImage_Reference#SkImage'>SkImage</a>> <a href='#SkImage_makeColorSpace'>makeColorSpace</a>(<a href='undocumented#sk_sp'>sk_sp</a><<a href='undocumented#SkColorSpace'>SkColorSpace</a>> <a href='undocumented#SkColorSpace'>target</a>) <a href='undocumented#SkColorSpace'>const</a>;
+ bool <a href='#SkImage_asLegacyBitmap'>asLegacyBitmap</a>(<a href='SkBitmap_Reference#SkBitmap'>SkBitmap</a>* <a href='SkBitmap_Reference#Bitmap'>bitmap</a>,
+ <a href='#SkImage_LegacyBitmapMode'>LegacyBitmapMode</a> legacyBitmapMode = <a href='#SkImage_kRO_LegacyBitmapMode'>kRO_LegacyBitmapMode</a>) const;
+ bool <a href='#SkImage_isLazyGenerated'>isLazyGenerated</a>() const;
+ <a href='undocumented#sk_sp'>sk_sp</a><<a href='SkImage_Reference#SkImage'>SkImage</a>> <a href='#SkImage_makeColorSpace'>makeColorSpace</a>(<a href='undocumented#sk_sp'>sk_sp</a><<a href='undocumented#SkColorSpace'>SkColorSpace</a>> target) const;
};
</pre>
-<a href='SkImage_Reference#Image'>Image</a> <a href='SkImage_Reference#Image'>describes</a> <a href='SkImage_Reference#Image'>a</a> <a href='SkImage_Reference#Image'>two</a> <a href='SkImage_Reference#Image'>dimensional</a> <a href='SkImage_Reference#Image'>array</a> <a href='SkImage_Reference#Image'>of</a> <a href='SkImage_Reference#Image'>pixels</a> <a href='SkImage_Reference#Image'>to</a> <a href='SkImage_Reference#Image'>draw</a>. <a href='SkImage_Reference#Image'>The</a> <a href='SkImage_Reference#Image'>pixels</a> <a href='SkImage_Reference#Image'>may</a> <a href='SkImage_Reference#Image'>be</a>
-<a href='SkImage_Reference#Image'>decoded</a> <a href='SkImage_Reference#Image'>in</a> <a href='SkImage_Reference#Image'>a</a> <a href='#Raster_Bitmap'>Raster_Bitmap</a>, <a href='#Raster_Bitmap'>encoded</a> <a href='#Raster_Bitmap'>in</a> <a href='#Raster_Bitmap'>a</a> <a href='SkPicture_Reference#Picture'>Picture</a> <a href='SkPicture_Reference#Picture'>or</a> <a href='SkPicture_Reference#Picture'>compressed</a> <a href='undocumented#Data'>data</a> <a href='SkStream_Reference#Stream'>stream</a>,
-<a href='SkStream_Reference#Stream'>or</a> <a href='SkStream_Reference#Stream'>located</a> <a href='SkStream_Reference#Stream'>in</a> <a href='SkStream_Reference#Stream'>GPU</a> <a href='SkStream_Reference#Stream'>memory</a> <a href='SkStream_Reference#Stream'>as</a> <a href='SkStream_Reference#Stream'>a</a> <a href='#GPU_Texture'>GPU_Texture</a>.
+<a href='SkImage_Reference#Image'>Image</a> describes a two dimensional array of pixels to draw. The pixels may be
+decoded in a <a href='#Raster_Bitmap'>Raster_Bitmap</a>, encoded in a <a href='SkPicture_Reference#Picture'>Picture</a> or compressed <a href='undocumented#Data'>data</a> <a href='SkStream_Reference#Stream'>stream</a>,
+or located in GPU memory as a <a href='#GPU_Texture'>GPU_Texture</a>.
-<a href='SkImage_Reference#Image'>Image</a> <a href='SkImage_Reference#Image'>cannot</a> <a href='SkImage_Reference#Image'>be</a> <a href='SkImage_Reference#Image'>modified</a> <a href='SkImage_Reference#Image'>after</a> <a href='SkImage_Reference#Image'>it</a> <a href='SkImage_Reference#Image'>is</a> <a href='SkImage_Reference#Image'>created</a>. <a href='SkImage_Reference#Image'>Image</a> <a href='SkImage_Reference#Image'>may</a> <a href='SkImage_Reference#Image'>allocate</a> <a href='SkImage_Reference#Image'>additional</a>
-<a href='SkImage_Reference#Image'>storage</a> <a href='SkImage_Reference#Image'>as</a> <a href='SkImage_Reference#Image'>needed</a>; <a href='SkImage_Reference#Image'>for</a> <a href='SkImage_Reference#Image'>instance</a>, <a href='SkImage_Reference#Image'>an</a> <a href='SkImage_Reference#Image'>encoded</a> <a href='SkImage_Reference#Image'>Image</a> <a href='SkImage_Reference#Image'>may</a> <a href='SkImage_Reference#Image'>decode</a> <a href='SkImage_Reference#Image'>when</a> <a href='SkImage_Reference#Image'>drawn</a>.
+<a href='SkImage_Reference#Image'>Image</a> cannot be modified after it is created. <a href='SkImage_Reference#Image'>Image</a> may allocate additional
+storage as needed; for instance, an encoded <a href='SkImage_Reference#Image'>Image</a> may decode when drawn.
-<a href='SkImage_Reference#Image'>Image</a> <a href='SkImage_Reference#Image'>width</a> <a href='SkImage_Reference#Image'>and</a> <a href='SkImage_Reference#Image'>height</a> <a href='SkImage_Reference#Image'>are</a> <a href='SkImage_Reference#Image'>greater</a> <a href='SkImage_Reference#Image'>than</a> <a href='SkImage_Reference#Image'>zero</a>. <a href='SkImage_Reference#Image'>Creating</a> <a href='SkImage_Reference#Image'>an</a> <a href='SkImage_Reference#Image'>Image</a> <a href='SkImage_Reference#Image'>with</a> <a href='SkImage_Reference#Image'>zero</a> <a href='SkImage_Reference#Image'>width</a>
-<a href='SkImage_Reference#Image'>or</a> <a href='SkImage_Reference#Image'>height</a> <a href='SkImage_Reference#Image'>returns</a> <a href='SkImage_Reference#Image'>Image</a> <a href='SkImage_Reference#Image'>equal</a> <a href='SkImage_Reference#Image'>to</a> <a href='SkImage_Reference#Image'>nullptr</a>.
+<a href='SkImage_Reference#Image'>Image</a> width and height are greater than zero. Creating an <a href='SkImage_Reference#Image'>Image</a> with zero width
+or height returns <a href='SkImage_Reference#Image'>Image</a> equal to nullptr.
-<a href='SkImage_Reference#Image'>Image</a> <a href='SkImage_Reference#Image'>may</a> <a href='SkImage_Reference#Image'>be</a> <a href='SkImage_Reference#Image'>created</a> <a href='SkImage_Reference#Image'>from</a> <a href='SkBitmap_Reference#Bitmap'>Bitmap</a>, <a href='SkPixmap_Reference#Pixmap'>Pixmap</a>, <a href='SkSurface_Reference#Surface'>Surface</a>, <a href='SkPicture_Reference#Picture'>Picture</a>, <a href='SkPicture_Reference#Picture'>encoded</a> <a href='SkPicture_Reference#Picture'>streams</a>,
-<a href='#GPU_Texture'>GPU_Texture</a>, <a href='#Image_Info_YUV_ColorSpace'>YUV_ColorSpace</a> <a href='undocumented#Data'>data</a>, <a href='undocumented#Data'>or</a> <a href='undocumented#Data'>hardware</a> <a href='undocumented#Data'>buffer</a>. <a href='undocumented#Data'>Encoded</a> <a href='undocumented#Data'>streams</a> <a href='undocumented#Data'>supported</a>
-<a href='undocumented#Data'>include</a> <a href='undocumented#Data'>BMP</a>, <a href='undocumented#Data'>GIF</a>, <a href='undocumented#Data'>HEIF</a>, <a href='undocumented#Data'>ICO</a>, <a href='undocumented#Data'>JPEG</a>, <a href='undocumented#Data'>PNG</a>, <a href='undocumented#Data'>WBMP</a>, <a href='undocumented#Data'>WebP</a>. <a href='undocumented#Data'>Supported</a> <a href='undocumented#Data'>encoding</a> <a href='undocumented#Data'>details</a>
-<a href='undocumented#Data'>vary</a> <a href='undocumented#Data'>with</a> <a href='undocumented#Data'>platform</a>.
+<a href='SkImage_Reference#Image'>Image</a> may be created from <a href='SkBitmap_Reference#Bitmap'>Bitmap</a>, <a href='SkPixmap_Reference#Pixmap'>Pixmap</a>, <a href='SkSurface_Reference#Surface'>Surface</a>, <a href='SkPicture_Reference#Picture'>Picture</a>, encoded streams,
+<a href='#GPU_Texture'>GPU_Texture</a>, <a href='#Image_Info_YUV_ColorSpace'>YUV_ColorSpace</a> <a href='undocumented#Data'>data</a>, or hardware buffer. Encoded streams supported
+include BMP, GIF, HEIF, ICO, JPEG, PNG, WBMP, WebP. Supported encoding details
+vary with platform.
<a name='Raster_Image'></a>
-<a href='#Image_Raster_Image'>Raster_Image</a> <a href='#Image_Raster_Image'>pixels</a> <a href='#Image_Raster_Image'>are</a> <a href='#Image_Raster_Image'>decoded</a> <a href='#Image_Raster_Image'>in</a> <a href='#Image_Raster_Image'>a</a> <a href='#Raster_Bitmap'>Raster_Bitmap</a>. <a href='#Raster_Bitmap'>These</a> <a href='#Raster_Bitmap'>pixels</a> <a href='#Raster_Bitmap'>may</a> <a href='#Raster_Bitmap'>be</a> <a href='#Raster_Bitmap'>read</a>
-<a href='#Raster_Bitmap'>directly</a> <a href='#Raster_Bitmap'>and</a> <a href='#Raster_Bitmap'>in</a> <a href='#Raster_Bitmap'>most</a> <a href='#Raster_Bitmap'>cases</a> <a href='#Raster_Bitmap'>written</a> <a href='#Raster_Bitmap'>to</a>, <a href='#Raster_Bitmap'>although</a> <a href='#Raster_Bitmap'>edited</a> <a href='#Raster_Bitmap'>pixels</a> <a href='#Raster_Bitmap'>may</a> <a href='#Raster_Bitmap'>not</a> <a href='#Raster_Bitmap'>be</a> <a href='#Raster_Bitmap'>drawn</a>
-<a href='#Raster_Bitmap'>if</a> <a href='SkImage_Reference#Image'>Image</a> <a href='SkImage_Reference#Image'>has</a> <a href='SkImage_Reference#Image'>been</a> <a href='SkImage_Reference#Image'>copied</a> <a href='SkImage_Reference#Image'>internally</a>.
+<a href='#Image_Raster_Image'>Raster_Image</a> pixels are decoded in a <a href='#Raster_Bitmap'>Raster_Bitmap</a>. These pixels may be read
+directly and in most cases written to, although edited pixels may not be drawn
+if <a href='SkImage_Reference#Image'>Image</a> has been copied internally.
<a name='Texture_Image'></a>
-<a href='#Image_Texture_Image'>Texture_Image</a> <a href='#Image_Texture_Image'>are</a> <a href='#Image_Texture_Image'>located</a> <a href='#Image_Texture_Image'>on</a> <a href='#Image_Texture_Image'>GPU</a> <a href='#Image_Texture_Image'>and</a> <a href='#Image_Texture_Image'>pixels</a> <a href='#Image_Texture_Image'>are</a> <a href='#Image_Texture_Image'>not</a> <a href='#Image_Texture_Image'>accessible</a>. <a href='#Image_Texture_Image'>Texture_Image</a>
-<a href='#Image_Texture_Image'>are</a> <a href='#Image_Texture_Image'>allocated</a> <a href='#Image_Texture_Image'>optimally</a> <a href='#Image_Texture_Image'>for</a> <a href='#Image_Texture_Image'>best</a> <a href='#Image_Texture_Image'>performance</a>. <a href='#Image_Raster_Image'>Raster_Image</a> <a href='#Image_Raster_Image'>may</a>
-<a href='#Image_Raster_Image'>be</a> <a href='#Image_Raster_Image'>drawn</a> <a href='#Image_Raster_Image'>to</a> <a href='#GPU_Surface'>GPU_Surface</a>, <a href='#GPU_Surface'>but</a> <a href='#GPU_Surface'>pixels</a> <a href='#GPU_Surface'>are</a> <a href='#GPU_Surface'>uploaded</a> <a href='#GPU_Surface'>from</a> <a href='#GPU_Surface'>CPU</a> <a href='#GPU_Surface'>to</a> <a href='#GPU_Surface'>GPU</a> <a href='#GPU_Surface'>downgrading</a>
-<a href='#GPU_Surface'>performance</a>.
+<a href='#Image_Texture_Image'>Texture_Image</a> are located on GPU and pixels are not accessible. <a href='#Image_Texture_Image'>Texture_Image</a>
+are allocated optimally for best performance. <a href='#Image_Raster_Image'>Raster_Image</a> may
+be drawn to <a href='#GPU_Surface'>GPU_Surface</a>, but pixels are uploaded from CPU to GPU downgrading
+performance.
<a name='Lazy_Image'></a>
-<a href='#Image_Lazy_Image'>Lazy_Image</a> <a href='#Image_Lazy_Image'>defer</a> <a href='#Image_Lazy_Image'>allocating</a> <a href='#Image_Lazy_Image'>buffer</a> <a href='#Image_Lazy_Image'>for</a> <a href='SkImage_Reference#Image'>Image</a> <a href='SkImage_Reference#Image'>pixels</a> <a href='SkImage_Reference#Image'>and</a> <a href='SkImage_Reference#Image'>decoding</a> <a href='SkStream_Reference#Stream'>stream</a> <a href='SkStream_Reference#Stream'>until</a>
-<a href='SkImage_Reference#Image'>Image</a> <a href='SkImage_Reference#Image'>is</a> <a href='SkImage_Reference#Image'>drawn</a>. <a href='#Image_Lazy_Image'>Lazy_Image</a> <a href='#Image_Lazy_Image'>caches</a> <a href='#Image_Lazy_Image'>result</a> <a href='#Image_Lazy_Image'>if</a> <a href='#Image_Lazy_Image'>possible</a> <a href='#Image_Lazy_Image'>to</a> <a href='#Image_Lazy_Image'>speed</a> <a href='#Image_Lazy_Image'>up</a> <a href='#Image_Lazy_Image'>repeated</a>
-<a href='#Image_Lazy_Image'>drawing</a>.
+<a href='#Image_Lazy_Image'>Lazy_Image</a> defer allocating buffer for <a href='SkImage_Reference#Image'>Image</a> pixels and decoding <a href='SkStream_Reference#Stream'>stream</a> until
+<a href='SkImage_Reference#Image'>Image</a> is drawn. <a href='#Image_Lazy_Image'>Lazy_Image</a> caches result if possible to speed up repeated
+drawing.
<a name='SkImage_MakeRasterCopy'></a>
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-static <a href='undocumented#sk_sp'>sk_sp</a>&<a href='undocumented#sk_sp'>lt</a>;<a href='SkImage_Reference#SkImage'>SkImage</a>&<a href='SkImage_Reference#SkImage'>gt</a>; <a href='#SkImage_MakeRasterCopy'>MakeRasterCopy</a>(<a href='#SkImage_MakeRasterCopy'>const</a> <a href='SkPixmap_Reference#SkPixmap'>SkPixmap</a>& <a href='SkPixmap_Reference#Pixmap'>pixmap</a>)
+static <a href='undocumented#sk_sp'>sk_sp</a><<a href='SkImage_Reference#SkImage'>SkImage</a>> <a href='#SkImage_MakeRasterCopy'>MakeRasterCopy</a>(const <a href='SkPixmap_Reference#SkPixmap'>SkPixmap</a>& <a href='SkPixmap_Reference#Pixmap'>pixmap</a>)
</pre>
-Creates <a href='SkImage_Reference#SkImage'>SkImage</a> <a href='SkImage_Reference#SkImage'>from</a> <a href='SkPixmap_Reference#SkPixmap'>SkPixmap</a> <a href='SkPixmap_Reference#SkPixmap'>and</a> <a href='SkPixmap_Reference#SkPixmap'>copy</a> <a href='SkPixmap_Reference#SkPixmap'>of</a> <a href='SkPixmap_Reference#SkPixmap'>pixels</a>. <a href='SkPixmap_Reference#SkPixmap'>Since</a> <a href='SkPixmap_Reference#SkPixmap'>pixels</a> <a href='SkPixmap_Reference#SkPixmap'>are</a> <a href='SkPixmap_Reference#SkPixmap'>copied</a>, <a href='SkPixmap_Reference#SkPixmap'>SkPixmap</a>
+Creates <a href='SkImage_Reference#SkImage'>SkImage</a> from <a href='SkPixmap_Reference#SkPixmap'>SkPixmap</a> and copy of pixels. Since pixels are copied, <a href='SkPixmap_Reference#SkPixmap'>SkPixmap</a>
pixels may be modified or deleted without affecting <a href='SkImage_Reference#SkImage'>SkImage</a>.
-<a href='SkImage_Reference#SkImage'>SkImage</a> <a href='SkImage_Reference#SkImage'>is</a> <a href='SkImage_Reference#SkImage'>returned</a> <a href='SkImage_Reference#SkImage'>if</a> <a href='SkPixmap_Reference#SkPixmap'>SkPixmap</a> <a href='SkPixmap_Reference#SkPixmap'>is</a> <a href='SkPixmap_Reference#SkPixmap'>valid</a>. <a href='SkPixmap_Reference#SkPixmap'>Valid</a> <a href='SkPixmap_Reference#SkPixmap'>SkPixmap</a> <a href='SkPixmap_Reference#SkPixmap'>parameters</a> <a href='SkPixmap_Reference#SkPixmap'>include</a>:
+<a href='SkImage_Reference#SkImage'>SkImage</a> is returned if <a href='SkPixmap_Reference#SkPixmap'>SkPixmap</a> is valid. Valid <a href='SkPixmap_Reference#SkPixmap'>SkPixmap</a> parameters include:
dimensions are greater than zero;
each dimension fits in 29 bits;
-<a href='SkImageInfo_Reference#SkColorType'>SkColorType</a> <a href='SkImageInfo_Reference#SkColorType'>and</a> <a href='SkImageInfo_Reference#SkAlphaType'>SkAlphaType</a> <a href='SkImageInfo_Reference#SkAlphaType'>are</a> <a href='SkImageInfo_Reference#SkAlphaType'>valid</a>, <a href='SkImageInfo_Reference#SkAlphaType'>and</a> <a href='SkImageInfo_Reference#SkColorType'>SkColorType</a> <a href='SkImageInfo_Reference#SkColorType'>is</a> <a href='SkImageInfo_Reference#SkColorType'>not</a> <a href='SkImageInfo_Reference#kUnknown_SkColorType'>kUnknown_SkColorType</a>;
+<a href='SkImageInfo_Reference#SkColorType'>SkColorType</a> and <a href='SkImageInfo_Reference#SkAlphaType'>SkAlphaType</a> are valid, and <a href='SkImageInfo_Reference#SkColorType'>SkColorType</a> is not <a href='SkImageInfo_Reference#kUnknown_SkColorType'>kUnknown_SkColorType</a>;
row bytes are large enough to hold one row of pixels;
-<a href='undocumented#Pixel'>pixel</a> <a href='undocumented#Pixel'>address</a> <a href='undocumented#Pixel'>is</a> <a href='undocumented#Pixel'>not</a> <a href='undocumented#Pixel'>nullptr</a>.
+<a href='undocumented#Pixel'>pixel</a> address is not nullptr.
### Parameters
<table> <tr> <td><a name='SkImage_MakeRasterCopy_pixmap'><code><strong>pixmap</strong></code></a></td>
- <td><a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a>, <a href='undocumented#Pixel'>pixel</a> <a href='undocumented#Pixel'>address</a>, <a href='undocumented#Pixel'>and</a> <a href='undocumented#Pixel'>row</a> <a href='undocumented#Pixel'>bytes</a></td>
+ <td><a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a>, <a href='undocumented#Pixel'>pixel</a> address, and row bytes</td>
</tr>
</table>
### Return Value
-copy of <a href='SkPixmap_Reference#SkPixmap'>SkPixmap</a> <a href='SkPixmap_Reference#SkPixmap'>pixels</a>, <a href='SkPixmap_Reference#SkPixmap'>or</a> <a href='SkPixmap_Reference#SkPixmap'>nullptr</a>
+copy of <a href='SkPixmap_Reference#SkPixmap'>SkPixmap</a> pixels, or nullptr
### Example
-<div><fiddle-embed name="513afec5795a9504ebf6af5373d16b6b"><div>Draw a five by five <a href='SkBitmap_Reference#Bitmap'>bitmap</a>, <a href='SkBitmap_Reference#Bitmap'>and</a> <a href='SkBitmap_Reference#Bitmap'>draw</a> <a href='SkBitmap_Reference#Bitmap'>a</a> <a href='SkBitmap_Reference#Bitmap'>copy</a> <a href='SkBitmap_Reference#Bitmap'>in</a> <a href='SkBitmap_Reference#Bitmap'>an</a> <a href='SkImage_Reference#Image'>Image</a>. <a href='SkImage_Reference#Image'>Editing</a> <a href='SkImage_Reference#Image'>the</a> <a href='#SkImage_MakeRasterCopy_pixmap'>pixmap</a>
-<a href='#SkImage_MakeRasterCopy_pixmap'>alters</a> <a href='#SkImage_MakeRasterCopy_pixmap'>the</a> <a href='SkBitmap_Reference#Bitmap_Draw'>bitmap draw</a>, <a href='SkBitmap_Reference#Bitmap'>but</a> <a href='SkBitmap_Reference#Bitmap'>does</a> <a href='SkBitmap_Reference#Bitmap'>not</a> <a href='SkBitmap_Reference#Bitmap'>alter</a> <a href='SkBitmap_Reference#Bitmap'>the</a> <a href='SkImage_Reference#Image'>Image</a> <a href='SkImage_Reference#Image'>draw</a> <a href='SkImage_Reference#Image'>since</a> <a href='SkImage_Reference#Image'>the</a> <a href='SkImage_Reference#Image'>Image</a>
-<a href='SkImage_Reference#Image'>contains</a> <a href='SkImage_Reference#Image'>a</a> <a href='SkImage_Reference#Image'>copy</a> <a href='SkImage_Reference#Image'>of</a> <a href='SkImage_Reference#Image'>the</a> <a href='SkImage_Reference#Image'>pixels</a>.
+<div><fiddle-embed name="513afec5795a9504ebf6af5373d16b6b"><div>Draw a five by five <a href='SkBitmap_Reference#Bitmap'>bitmap</a>, and draw a copy in an <a href='SkImage_Reference#Image'>Image</a>. Editing the <a href='#SkImage_MakeRasterCopy_pixmap'>pixmap</a>
+alters the <a href='SkBitmap_Reference#Bitmap_Draw'>bitmap draw</a>, but does not alter the <a href='SkImage_Reference#Image'>Image</a> draw since the <a href='SkImage_Reference#Image'>Image</a>
+contains a copy of the pixels.
</div></fiddle-embed></div>
### See Also
@@ -252,17 +252,17 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-static <a href='undocumented#sk_sp'>sk_sp</a>&<a href='undocumented#sk_sp'>lt</a>;<a href='SkImage_Reference#SkImage'>SkImage</a>&<a href='SkImage_Reference#SkImage'>gt</a>; <a href='#SkImage_MakeRasterData'>MakeRasterData</a>(<a href='#SkImage_MakeRasterData'>const</a> <a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a>& <a href='SkImageInfo_Reference#SkImageInfo'>info</a>, <a href='undocumented#sk_sp'>sk_sp</a>&<a href='undocumented#sk_sp'>lt</a>;<a href='undocumented#SkData'>SkData</a>&<a href='undocumented#SkData'>gt</a>; <a href='undocumented#SkData'>pixels</a>, <a href='undocumented#SkData'>size_t</a> <a href='undocumented#SkData'>rowBytes</a>)
+static <a href='undocumented#sk_sp'>sk_sp</a><<a href='SkImage_Reference#SkImage'>SkImage</a>> <a href='#SkImage_MakeRasterData'>MakeRasterData</a>(const <a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a>& info, <a href='undocumented#sk_sp'>sk_sp</a><<a href='undocumented#SkData'>SkData</a>> pixels, size_t rowBytes)
</pre>
-Creates <a href='SkImage_Reference#SkImage'>SkImage</a> <a href='SkImage_Reference#SkImage'>from</a> <a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a>, <a href='SkImageInfo_Reference#SkImageInfo'>sharing</a> <a href='#SkImage_MakeRasterData_pixels'>pixels</a>.
+Creates <a href='SkImage_Reference#SkImage'>SkImage</a> from <a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a>, sharing <a href='#SkImage_MakeRasterData_pixels'>pixels</a>.
-<a href='SkImage_Reference#SkImage'>SkImage</a> <a href='SkImage_Reference#SkImage'>is</a> <a href='SkImage_Reference#SkImage'>returned</a> <a href='SkImage_Reference#SkImage'>if</a> <a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a> <a href='SkImageInfo_Reference#SkImageInfo'>is</a> <a href='SkImageInfo_Reference#SkImageInfo'>valid</a>. <a href='SkImageInfo_Reference#SkImageInfo'>Valid</a> <a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a> <a href='SkImageInfo_Reference#SkImageInfo'>parameters</a> <a href='SkImageInfo_Reference#SkImageInfo'>include</a>:
+<a href='SkImage_Reference#SkImage'>SkImage</a> is returned if <a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a> is valid. Valid <a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a> parameters include:
dimensions are greater than zero;
each dimension fits in 29 bits;
-<a href='SkImageInfo_Reference#SkColorType'>SkColorType</a> <a href='SkImageInfo_Reference#SkColorType'>and</a> <a href='SkImageInfo_Reference#SkAlphaType'>SkAlphaType</a> <a href='SkImageInfo_Reference#SkAlphaType'>are</a> <a href='SkImageInfo_Reference#SkAlphaType'>valid</a>, <a href='SkImageInfo_Reference#SkAlphaType'>and</a> <a href='SkImageInfo_Reference#SkColorType'>SkColorType</a> <a href='SkImageInfo_Reference#SkColorType'>is</a> <a href='SkImageInfo_Reference#SkColorType'>not</a> <a href='SkImageInfo_Reference#kUnknown_SkColorType'>kUnknown_SkColorType</a>;
-<a href='#SkImage_MakeRasterData_rowBytes'>rowBytes</a> <a href='#SkImage_MakeRasterData_rowBytes'>are</a> <a href='#SkImage_MakeRasterData_rowBytes'>large</a> <a href='#SkImage_MakeRasterData_rowBytes'>enough</a> <a href='#SkImage_MakeRasterData_rowBytes'>to</a> <a href='#SkImage_MakeRasterData_rowBytes'>hold</a> <a href='#SkImage_MakeRasterData_rowBytes'>one</a> <a href='#SkImage_MakeRasterData_rowBytes'>row</a> <a href='#SkImage_MakeRasterData_rowBytes'>of</a> <a href='#SkImage_MakeRasterData_pixels'>pixels</a>;
-<a href='#SkImage_MakeRasterData_pixels'>pixels</a> <a href='#SkImage_MakeRasterData_pixels'>is</a> <a href='#SkImage_MakeRasterData_pixels'>not</a> <a href='#SkImage_MakeRasterData_pixels'>nullptr</a>, <a href='#SkImage_MakeRasterData_pixels'>and</a> <a href='#SkImage_MakeRasterData_pixels'>contains</a> <a href='#SkImage_MakeRasterData_pixels'>enough</a> <a href='undocumented#Data'>data</a> <a href='undocumented#Data'>for</a> <a href='SkImage_Reference#SkImage'>SkImage</a>.
+<a href='SkImageInfo_Reference#SkColorType'>SkColorType</a> and <a href='SkImageInfo_Reference#SkAlphaType'>SkAlphaType</a> are valid, and <a href='SkImageInfo_Reference#SkColorType'>SkColorType</a> is not <a href='SkImageInfo_Reference#kUnknown_SkColorType'>kUnknown_SkColorType</a>;
+<a href='#SkImage_MakeRasterData_rowBytes'>rowBytes</a> are large enough to hold one row of <a href='#SkImage_MakeRasterData_pixels'>pixels</a>;
+<a href='#SkImage_MakeRasterData_pixels'>pixels</a> is not nullptr, and contains enough <a href='undocumented#Data'>data</a> for <a href='SkImage_Reference#SkImage'>SkImage</a>.
### Parameters
@@ -273,13 +273,13 @@
<td>address or <a href='undocumented#Pixel_Storage'>pixel storage</a></td>
</tr>
<tr> <td><a name='SkImage_MakeRasterData_rowBytes'><code><strong>rowBytes</strong></code></a></td>
- <td><a href='undocumented#Size'>size</a> <a href='undocumented#Size'>of</a> <a href='undocumented#Pixel'>pixel</a> <a href='undocumented#Pixel'>row</a> <a href='undocumented#Pixel'>or</a> <a href='undocumented#Pixel'>larger</a></td>
+ <td><a href='undocumented#Size'>size</a> of <a href='undocumented#Pixel'>pixel</a> row or larger</td>
</tr>
</table>
### Return Value
-<a href='SkImage_Reference#SkImage'>SkImage</a> <a href='SkImage_Reference#SkImage'>sharing</a> <a href='#SkImage_MakeRasterData_pixels'>pixels</a>, <a href='#SkImage_MakeRasterData_pixels'>or</a> <a href='#SkImage_MakeRasterData_pixels'>nullptr</a>
+<a href='SkImage_Reference#SkImage'>SkImage</a> sharing <a href='#SkImage_MakeRasterData_pixels'>pixels</a>, or nullptr
### Example
@@ -297,7 +297,7 @@
typedef void* <a href='#SkImage_ReleaseContext'>ReleaseContext</a>;
</pre>
-Caller <a href='undocumented#Data'>data</a> <a href='undocumented#Data'>passed</a> <a href='undocumented#Data'>to</a> <a href='#SkImage_RasterReleaseProc'>RasterReleaseProc</a>; <a href='#SkImage_RasterReleaseProc'>may</a> <a href='#SkImage_RasterReleaseProc'>be</a> <a href='#SkImage_RasterReleaseProc'>nullptr</a>.
+Caller <a href='undocumented#Data'>data</a> passed to <a href='#SkImage_RasterReleaseProc'>RasterReleaseProc</a>; may be nullptr.
### See Also
@@ -308,11 +308,11 @@
---
<pre style="padding: 1em 1em 1em 1em;width: 62.5em; background-color: #f0f0f0">
- typedef void (*<a href='#SkImage_RasterReleaseProc'>RasterReleaseProc</a>)(<a href='#SkImage_RasterReleaseProc'>const</a> <a href='#SkImage_RasterReleaseProc'>void</a>* <a href='#SkImage_RasterReleaseProc'>pixels</a>, <a href='#SkImage_ReleaseContext'>ReleaseContext</a>);
+ typedef void (*<a href='#SkImage_RasterReleaseProc'>RasterReleaseProc</a>)(const void* pixels, <a href='#SkImage_ReleaseContext'>ReleaseContext</a>);
</pre>
-Function called when <a href='SkImage_Reference#Image'>Image</a> <a href='SkImage_Reference#Image'>no</a> <a href='SkImage_Reference#Image'>longer</a> <a href='SkImage_Reference#Image'>shares</a> <a href='SkImage_Reference#Image'>pixels</a>. <a href='#SkImage_ReleaseContext'>ReleaseContext</a> <a href='#SkImage_ReleaseContext'>is</a>
-<a href='#SkImage_ReleaseContext'>provided</a> <a href='#SkImage_ReleaseContext'>by</a> <a href='#SkImage_ReleaseContext'>caller</a> <a href='#SkImage_ReleaseContext'>when</a> <a href='SkImage_Reference#Image'>Image</a> <a href='SkImage_Reference#Image'>is</a> <a href='SkImage_Reference#Image'>created</a>, <a href='SkImage_Reference#Image'>and</a> <a href='SkImage_Reference#Image'>may</a> <a href='SkImage_Reference#Image'>be</a> <a href='SkImage_Reference#Image'>nullptr</a>.
+Function called when <a href='SkImage_Reference#Image'>Image</a> no longer shares pixels. <a href='#SkImage_ReleaseContext'>ReleaseContext</a> is
+provided by caller when <a href='SkImage_Reference#Image'>Image</a> is created, and may be nullptr.
### See Also
@@ -323,41 +323,41 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-static <a href='undocumented#sk_sp'>sk_sp</a>&<a href='undocumented#sk_sp'>lt</a>;<a href='SkImage_Reference#SkImage'>SkImage</a>&<a href='SkImage_Reference#SkImage'>gt</a>; <a href='#SkImage_MakeFromRaster'>MakeFromRaster</a>(<a href='#SkImage_MakeFromRaster'>const</a> <a href='SkPixmap_Reference#SkPixmap'>SkPixmap</a>& <a href='SkPixmap_Reference#Pixmap'>pixmap</a>, <a href='#SkImage_RasterReleaseProc'>RasterReleaseProc</a> <a href='#SkImage_RasterReleaseProc'>rasterReleaseProc</a>,
- <a href='#SkImage_ReleaseContext'>ReleaseContext</a> <a href='#SkImage_ReleaseContext'>releaseContext</a>)
+static <a href='undocumented#sk_sp'>sk_sp</a><<a href='SkImage_Reference#SkImage'>SkImage</a>> <a href='#SkImage_MakeFromRaster'>MakeFromRaster</a>(const <a href='SkPixmap_Reference#SkPixmap'>SkPixmap</a>& <a href='SkPixmap_Reference#Pixmap'>pixmap</a>, <a href='#SkImage_RasterReleaseProc'>RasterReleaseProc</a> rasterReleaseProc,
+ <a href='#SkImage_ReleaseContext'>ReleaseContext</a> releaseContext)
</pre>
-Creates <a href='SkImage_Reference#SkImage'>SkImage</a> <a href='SkImage_Reference#SkImage'>from</a> <a href='#SkImage_MakeFromRaster_pixmap'>pixmap</a>, <a href='#SkImage_MakeFromRaster_pixmap'>sharing</a> <a href='SkPixmap_Reference#SkPixmap'>SkPixmap</a> <a href='SkPixmap_Reference#SkPixmap'>pixels</a>. <a href='SkPixmap_Reference#SkPixmap'>Pixels</a> <a href='SkPixmap_Reference#SkPixmap'>must</a> <a href='SkPixmap_Reference#SkPixmap'>remain</a> <a href='SkPixmap_Reference#SkPixmap'>valid</a> <a href='SkPixmap_Reference#SkPixmap'>and</a>
-unchanged until <a href='#SkImage_MakeFromRaster_rasterReleaseProc'>rasterReleaseProc</a> <a href='#SkImage_MakeFromRaster_rasterReleaseProc'>is</a> <a href='#SkImage_MakeFromRaster_rasterReleaseProc'>called</a>. <a href='#SkImage_MakeFromRaster_rasterReleaseProc'>rasterReleaseProc</a> <a href='#SkImage_MakeFromRaster_rasterReleaseProc'>is</a> <a href='#SkImage_MakeFromRaster_rasterReleaseProc'>passed</a>
-<a href='#SkImage_MakeFromRaster_releaseContext'>releaseContext</a> <a href='#SkImage_MakeFromRaster_releaseContext'>when</a> <a href='SkImage_Reference#SkImage'>SkImage</a> <a href='SkImage_Reference#SkImage'>is</a> <a href='SkImage_Reference#SkImage'>deleted</a> <a href='SkImage_Reference#SkImage'>or</a> <a href='SkImage_Reference#SkImage'>no</a> <a href='SkImage_Reference#SkImage'>longer</a> <a href='SkImage_Reference#SkImage'>refers</a> <a href='SkImage_Reference#SkImage'>to</a> <a href='SkPixmap_Reference#Pixmap_Pixels'>pixmap pixels</a>.
+Creates <a href='SkImage_Reference#SkImage'>SkImage</a> from <a href='#SkImage_MakeFromRaster_pixmap'>pixmap</a>, sharing <a href='SkPixmap_Reference#SkPixmap'>SkPixmap</a> pixels. Pixels must remain valid and
+unchanged until <a href='#SkImage_MakeFromRaster_rasterReleaseProc'>rasterReleaseProc</a> is called. <a href='#SkImage_MakeFromRaster_rasterReleaseProc'>rasterReleaseProc</a> is passed
+<a href='#SkImage_MakeFromRaster_releaseContext'>releaseContext</a> when <a href='SkImage_Reference#SkImage'>SkImage</a> is deleted or no longer refers to <a href='SkPixmap_Reference#Pixmap_Pixels'>pixmap pixels</a>.
-Pass nullptr for <a href='#SkImage_MakeFromRaster_rasterReleaseProc'>rasterReleaseProc</a> <a href='#SkImage_MakeFromRaster_rasterReleaseProc'>to</a> <a href='#SkImage_MakeFromRaster_rasterReleaseProc'>share</a> <a href='SkPixmap_Reference#SkPixmap'>SkPixmap</a> <a href='SkPixmap_Reference#SkPixmap'>without</a> <a href='SkPixmap_Reference#SkPixmap'>requiring</a> <a href='SkPixmap_Reference#SkPixmap'>a</a> <a href='SkPixmap_Reference#SkPixmap'>callback</a>
-when <a href='SkImage_Reference#SkImage'>SkImage</a> <a href='SkImage_Reference#SkImage'>is</a> <a href='SkImage_Reference#SkImage'>released</a>. <a href='SkImage_Reference#SkImage'>Pass</a> <a href='SkImage_Reference#SkImage'>nullptr</a> <a href='SkImage_Reference#SkImage'>for</a> <a href='#SkImage_MakeFromRaster_releaseContext'>releaseContext</a> <a href='#SkImage_MakeFromRaster_releaseContext'>if</a> <a href='#SkImage_MakeFromRaster_rasterReleaseProc'>rasterReleaseProc</a>
+Pass nullptr for <a href='#SkImage_MakeFromRaster_rasterReleaseProc'>rasterReleaseProc</a> to share <a href='SkPixmap_Reference#SkPixmap'>SkPixmap</a> without requiring a callback
+when <a href='SkImage_Reference#SkImage'>SkImage</a> is released. Pass nullptr for <a href='#SkImage_MakeFromRaster_releaseContext'>releaseContext</a> if <a href='#SkImage_MakeFromRaster_rasterReleaseProc'>rasterReleaseProc</a>
does not require state.
-<a href='SkImage_Reference#SkImage'>SkImage</a> <a href='SkImage_Reference#SkImage'>is</a> <a href='SkImage_Reference#SkImage'>returned</a> <a href='SkImage_Reference#SkImage'>if</a> <a href='#SkImage_MakeFromRaster_pixmap'>pixmap</a> <a href='#SkImage_MakeFromRaster_pixmap'>is</a> <a href='#SkImage_MakeFromRaster_pixmap'>valid</a>. <a href='#SkImage_MakeFromRaster_pixmap'>Valid</a> <a href='SkPixmap_Reference#SkPixmap'>SkPixmap</a> <a href='SkPixmap_Reference#SkPixmap'>parameters</a> <a href='SkPixmap_Reference#SkPixmap'>include</a>:
+<a href='SkImage_Reference#SkImage'>SkImage</a> is returned if <a href='#SkImage_MakeFromRaster_pixmap'>pixmap</a> is valid. Valid <a href='SkPixmap_Reference#SkPixmap'>SkPixmap</a> parameters include:
dimensions are greater than zero;
each dimension fits in 29 bits;
-<a href='SkImageInfo_Reference#SkColorType'>SkColorType</a> <a href='SkImageInfo_Reference#SkColorType'>and</a> <a href='SkImageInfo_Reference#SkAlphaType'>SkAlphaType</a> <a href='SkImageInfo_Reference#SkAlphaType'>are</a> <a href='SkImageInfo_Reference#SkAlphaType'>valid</a>, <a href='SkImageInfo_Reference#SkAlphaType'>and</a> <a href='SkImageInfo_Reference#SkColorType'>SkColorType</a> <a href='SkImageInfo_Reference#SkColorType'>is</a> <a href='SkImageInfo_Reference#SkColorType'>not</a> <a href='SkImageInfo_Reference#kUnknown_SkColorType'>kUnknown_SkColorType</a>;
+<a href='SkImageInfo_Reference#SkColorType'>SkColorType</a> and <a href='SkImageInfo_Reference#SkAlphaType'>SkAlphaType</a> are valid, and <a href='SkImageInfo_Reference#SkColorType'>SkColorType</a> is not <a href='SkImageInfo_Reference#kUnknown_SkColorType'>kUnknown_SkColorType</a>;
row bytes are large enough to hold one row of pixels;
-<a href='undocumented#Pixel'>pixel</a> <a href='undocumented#Pixel'>address</a> <a href='undocumented#Pixel'>is</a> <a href='undocumented#Pixel'>not</a> <a href='undocumented#Pixel'>nullptr</a>.
+<a href='undocumented#Pixel'>pixel</a> address is not nullptr.
### Parameters
<table> <tr> <td><a name='SkImage_MakeFromRaster_pixmap'><code><strong>pixmap</strong></code></a></td>
- <td><a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a>, <a href='undocumented#Pixel'>pixel</a> <a href='undocumented#Pixel'>address</a>, <a href='undocumented#Pixel'>and</a> <a href='undocumented#Pixel'>row</a> <a href='undocumented#Pixel'>bytes</a></td>
+ <td><a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a>, <a href='undocumented#Pixel'>pixel</a> address, and row bytes</td>
</tr>
<tr> <td><a name='SkImage_MakeFromRaster_rasterReleaseProc'><code><strong>rasterReleaseProc</strong></code></a></td>
<td>function called when pixels can be released; or nullptr</td>
</tr>
<tr> <td><a name='SkImage_MakeFromRaster_releaseContext'><code><strong>releaseContext</strong></code></a></td>
- <td>state passed to <a href='#SkImage_MakeFromRaster_rasterReleaseProc'>rasterReleaseProc</a>; <a href='#SkImage_MakeFromRaster_rasterReleaseProc'>or</a> <a href='#SkImage_MakeFromRaster_rasterReleaseProc'>nullptr</a></td>
+ <td>state passed to <a href='#SkImage_MakeFromRaster_rasterReleaseProc'>rasterReleaseProc</a>; or nullptr</td>
</tr>
</table>
### Return Value
-<a href='SkImage_Reference#SkImage'>SkImage</a> <a href='SkImage_Reference#SkImage'>sharing</a> <a href='#SkImage_MakeFromRaster_pixmap'>pixmap</a>
+<a href='SkImage_Reference#SkImage'>SkImage</a> sharing <a href='#SkImage_MakeFromRaster_pixmap'>pixmap</a>
### Example
@@ -381,37 +381,37 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-static <a href='undocumented#sk_sp'>sk_sp</a>&<a href='undocumented#sk_sp'>lt</a>;<a href='SkImage_Reference#SkImage'>SkImage</a>&<a href='SkImage_Reference#SkImage'>gt</a>; <a href='#SkImage_MakeFromBitmap'>MakeFromBitmap</a>(<a href='#SkImage_MakeFromBitmap'>const</a> <a href='SkBitmap_Reference#SkBitmap'>SkBitmap</a>& <a href='SkBitmap_Reference#Bitmap'>bitmap</a>)
+static <a href='undocumented#sk_sp'>sk_sp</a><<a href='SkImage_Reference#SkImage'>SkImage</a>> <a href='#SkImage_MakeFromBitmap'>MakeFromBitmap</a>(const <a href='SkBitmap_Reference#SkBitmap'>SkBitmap</a>& <a href='SkBitmap_Reference#Bitmap'>bitmap</a>)
</pre>
-Creates <a href='SkImage_Reference#SkImage'>SkImage</a> <a href='SkImage_Reference#SkImage'>from</a> <a href='#SkImage_MakeFromBitmap_bitmap'>bitmap</a>, <a href='#SkImage_MakeFromBitmap_bitmap'>sharing</a> <a href='#SkImage_MakeFromBitmap_bitmap'>or</a> <a href='#SkImage_MakeFromBitmap_bitmap'>copying</a> <a href='SkBitmap_Reference#Bitmap_Pixels'>bitmap pixels</a>. <a href='#SkImage_MakeFromBitmap_bitmap'>If</a> <a href='#SkImage_MakeFromBitmap_bitmap'>the</a> <a href='#SkImage_MakeFromBitmap_bitmap'>bitmap</a>
-is marked immutable, and its <a href='undocumented#Pixel'>pixel</a> <a href='undocumented#Pixel'>memory</a> <a href='undocumented#Pixel'>is</a> <a href='undocumented#Pixel'>shareable</a>, <a href='undocumented#Pixel'>it</a> <a href='undocumented#Pixel'>may</a> <a href='undocumented#Pixel'>be</a> <a href='undocumented#Pixel'>shared</a>
+Creates <a href='SkImage_Reference#SkImage'>SkImage</a> from <a href='#SkImage_MakeFromBitmap_bitmap'>bitmap</a>, sharing or copying <a href='SkBitmap_Reference#Bitmap_Pixels'>bitmap pixels</a>. If the <a href='#SkImage_MakeFromBitmap_bitmap'>bitmap</a>
+is marked immutable, and its <a href='undocumented#Pixel'>pixel</a> memory is shareable, it may be shared
instead of copied.
-<a href='SkImage_Reference#SkImage'>SkImage</a> <a href='SkImage_Reference#SkImage'>is</a> <a href='SkImage_Reference#SkImage'>returned</a> <a href='SkImage_Reference#SkImage'>if</a> <a href='#SkImage_MakeFromBitmap_bitmap'>bitmap</a> <a href='#SkImage_MakeFromBitmap_bitmap'>is</a> <a href='#SkImage_MakeFromBitmap_bitmap'>valid</a>. <a href='#SkImage_MakeFromBitmap_bitmap'>Valid</a> <a href='SkBitmap_Reference#SkBitmap'>SkBitmap</a> <a href='SkBitmap_Reference#SkBitmap'>parameters</a> <a href='SkBitmap_Reference#SkBitmap'>include</a>:
+<a href='SkImage_Reference#SkImage'>SkImage</a> is returned if <a href='#SkImage_MakeFromBitmap_bitmap'>bitmap</a> is valid. Valid <a href='SkBitmap_Reference#SkBitmap'>SkBitmap</a> parameters include:
dimensions are greater than zero;
each dimension fits in 29 bits;
-<a href='SkImageInfo_Reference#SkColorType'>SkColorType</a> <a href='SkImageInfo_Reference#SkColorType'>and</a> <a href='SkImageInfo_Reference#SkAlphaType'>SkAlphaType</a> <a href='SkImageInfo_Reference#SkAlphaType'>are</a> <a href='SkImageInfo_Reference#SkAlphaType'>valid</a>, <a href='SkImageInfo_Reference#SkAlphaType'>and</a> <a href='SkImageInfo_Reference#SkColorType'>SkColorType</a> <a href='SkImageInfo_Reference#SkColorType'>is</a> <a href='SkImageInfo_Reference#SkColorType'>not</a> <a href='SkImageInfo_Reference#kUnknown_SkColorType'>kUnknown_SkColorType</a>;
+<a href='SkImageInfo_Reference#SkColorType'>SkColorType</a> and <a href='SkImageInfo_Reference#SkAlphaType'>SkAlphaType</a> are valid, and <a href='SkImageInfo_Reference#SkColorType'>SkColorType</a> is not <a href='SkImageInfo_Reference#kUnknown_SkColorType'>kUnknown_SkColorType</a>;
row bytes are large enough to hold one row of pixels;
-<a href='undocumented#Pixel'>pixel</a> <a href='undocumented#Pixel'>address</a> <a href='undocumented#Pixel'>is</a> <a href='undocumented#Pixel'>not</a> <a href='undocumented#Pixel'>nullptr</a>.
+<a href='undocumented#Pixel'>pixel</a> address is not nullptr.
### Parameters
<table> <tr> <td><a name='SkImage_MakeFromBitmap_bitmap'><code><strong>bitmap</strong></code></a></td>
- <td><a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a>, <a href='SkImageInfo_Reference#SkImageInfo'>row</a> <a href='SkImageInfo_Reference#SkImageInfo'>bytes</a>, <a href='SkImageInfo_Reference#SkImageInfo'>and</a> <a href='SkImageInfo_Reference#SkImageInfo'>pixels</a></td>
+ <td><a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a>, row bytes, and pixels</td>
</tr>
</table>
### Return Value
-created <a href='SkImage_Reference#SkImage'>SkImage</a>, <a href='SkImage_Reference#SkImage'>or</a> <a href='SkImage_Reference#SkImage'>nullptr</a>
+created <a href='SkImage_Reference#SkImage'>SkImage</a>, or nullptr
### Example
-<div><fiddle-embed name="cf2cf53321e4e6a77c2841bfbc0ef707"><div>The first <a href='SkBitmap_Reference#Bitmap'>Bitmap</a> <a href='SkBitmap_Reference#Bitmap'>is</a> <a href='SkBitmap_Reference#Bitmap'>shared</a>; <a href='SkBitmap_Reference#Bitmap'>writing</a> <a href='SkBitmap_Reference#Bitmap'>to</a> <a href='SkBitmap_Reference#Bitmap'>the</a> <a href='undocumented#Pixel'>pixel</a> <a href='undocumented#Pixel'>memory</a> <a href='undocumented#Pixel'>changes</a> <a href='undocumented#Pixel'>the</a> <a href='undocumented#Pixel'>first</a>
+<div><fiddle-embed name="cf2cf53321e4e6a77c2841bfbc0ef707"><div>The first <a href='SkBitmap_Reference#Bitmap'>Bitmap</a> is shared; writing to the <a href='undocumented#Pixel'>pixel</a> memory changes the first
<a href='SkImage_Reference#Image'>Image</a>.
-<a href='SkImage_Reference#Image'>The</a> <a href='SkImage_Reference#Image'>second</a> <a href='SkBitmap_Reference#Bitmap'>Bitmap</a> <a href='SkBitmap_Reference#Bitmap'>is</a> <a href='SkBitmap_Reference#Bitmap'>marked</a> <a href='SkBitmap_Reference#Bitmap'>immutable</a>, <a href='SkBitmap_Reference#Bitmap'>and</a> <a href='SkBitmap_Reference#Bitmap'>is</a> <a href='SkBitmap_Reference#Bitmap'>copied</a>; <a href='SkBitmap_Reference#Bitmap'>writing</a> <a href='SkBitmap_Reference#Bitmap'>to</a> <a href='SkBitmap_Reference#Bitmap'>the</a> <a href='undocumented#Pixel'>pixel</a>
-<a href='undocumented#Pixel'>memory</a> <a href='undocumented#Pixel'>does</a> <a href='undocumented#Pixel'>not</a> <a href='undocumented#Pixel'>alter</a> <a href='undocumented#Pixel'>the</a> <a href='undocumented#Pixel'>second</a> <a href='SkImage_Reference#Image'>Image</a>.
+The second <a href='SkBitmap_Reference#Bitmap'>Bitmap</a> is marked immutable, and is copied; writing to the <a href='undocumented#Pixel'>pixel</a>
+memory does not alter the second <a href='SkImage_Reference#Image'>Image</a>.
</div></fiddle-embed></div>
### See Also
@@ -423,20 +423,20 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-static <a href='undocumented#sk_sp'>sk_sp</a>&<a href='undocumented#sk_sp'>lt</a>;<a href='SkImage_Reference#SkImage'>SkImage</a>&<a href='SkImage_Reference#SkImage'>gt</a>; <a href='#SkImage_MakeFromGenerator'>MakeFromGenerator</a>(<a href='#SkImage_MakeFromGenerator'>std</a>::<a href='#SkImage_MakeFromGenerator'>unique_ptr</a>&<a href='#SkImage_MakeFromGenerator'>lt</a>;<a href='undocumented#SkImageGenerator'>SkImageGenerator</a>&<a href='undocumented#SkImageGenerator'>gt</a>; <a href='undocumented#SkImageGenerator'>imageGenerator</a>,
- <a href='undocumented#SkImageGenerator'>const</a> <a href='SkIRect_Reference#SkIRect'>SkIRect</a>* <a href='SkIRect_Reference#SkIRect'>subset</a> = <a href='SkIRect_Reference#SkIRect'>nullptr</a>)
+static <a href='undocumented#sk_sp'>sk_sp</a><<a href='SkImage_Reference#SkImage'>SkImage</a>> <a href='#SkImage_MakeFromGenerator'>MakeFromGenerator</a>(std::unique_ptr<<a href='undocumented#SkImageGenerator'>SkImageGenerator</a>> imageGenerator,
+ const <a href='SkIRect_Reference#SkIRect'>SkIRect</a>* subset = nullptr)
</pre>
-Creates <a href='SkImage_Reference#SkImage'>SkImage</a> <a href='SkImage_Reference#SkImage'>from</a> <a href='undocumented#Data'>data</a> <a href='undocumented#Data'>returned</a> <a href='undocumented#Data'>by</a> <a href='#SkImage_MakeFromGenerator_imageGenerator'>imageGenerator</a>. <a href='#SkImage_MakeFromGenerator_imageGenerator'>Generated</a> <a href='undocumented#Data'>data</a> <a href='undocumented#Data'>is</a> <a href='undocumented#Data'>owned</a> <a href='undocumented#Data'>by</a> <a href='SkImage_Reference#SkImage'>SkImage</a> <a href='SkImage_Reference#SkImage'>and</a>
+Creates <a href='SkImage_Reference#SkImage'>SkImage</a> from <a href='undocumented#Data'>data</a> returned by <a href='#SkImage_MakeFromGenerator_imageGenerator'>imageGenerator</a>. Generated <a href='undocumented#Data'>data</a> is owned by <a href='SkImage_Reference#SkImage'>SkImage</a> and
may not be shared or accessed.
-<a href='#SkImage_MakeFromGenerator_subset'>subset</a> <a href='#SkImage_MakeFromGenerator_subset'>allows</a> <a href='#SkImage_MakeFromGenerator_subset'>selecting</a> <a href='#SkImage_MakeFromGenerator_subset'>a</a> <a href='#SkImage_MakeFromGenerator_subset'>portion</a> <a href='#SkImage_MakeFromGenerator_subset'>of</a> <a href='#SkImage_MakeFromGenerator_subset'>the</a> <a href='#SkImage_MakeFromGenerator_subset'>full</a> <a href='SkImage_Reference#Image'>image</a>. <a href='SkImage_Reference#Image'>Pass</a> <a href='SkImage_Reference#Image'>nullptr</a> <a href='SkImage_Reference#Image'>to</a> <a href='SkImage_Reference#Image'>select</a> <a href='SkImage_Reference#Image'>the</a> <a href='SkImage_Reference#Image'>entire</a>
-<a href='SkImage_Reference#Image'>image</a>; <a href='SkImage_Reference#Image'>otherwise</a>, <a href='#SkImage_MakeFromGenerator_subset'>subset</a> <a href='#SkImage_MakeFromGenerator_subset'>must</a> <a href='#SkImage_MakeFromGenerator_subset'>be</a> <a href='#SkImage_MakeFromGenerator_subset'>contained</a> <a href='#SkImage_MakeFromGenerator_subset'>by</a> <a href='SkImage_Reference#Image'>image</a> <a href='SkImage_Reference#Image'>bounds</a>.
+<a href='#SkImage_MakeFromGenerator_subset'>subset</a> allows selecting a portion of the full <a href='SkImage_Reference#Image'>image</a>. Pass nullptr to select the entire
+<a href='SkImage_Reference#Image'>image</a>; otherwise, <a href='#SkImage_MakeFromGenerator_subset'>subset</a> must be contained by <a href='SkImage_Reference#Image'>image</a> bounds.
-<a href='SkImage_Reference#SkImage'>SkImage</a> <a href='SkImage_Reference#SkImage'>is</a> <a href='SkImage_Reference#SkImage'>returned</a> <a href='SkImage_Reference#SkImage'>if</a> <a href='SkImage_Reference#SkImage'>generator</a> <a href='undocumented#Data'>data</a> <a href='undocumented#Data'>is</a> <a href='undocumented#Data'>valid</a>. <a href='undocumented#Data'>Valid</a> <a href='undocumented#Data'>data</a> <a href='undocumented#Data'>parameters</a> <a href='undocumented#Data'>vary</a> <a href='undocumented#Data'>by</a> <a href='undocumented#Data'>type</a> <a href='undocumented#Data'>of</a> <a href='undocumented#Data'>data</a>
+<a href='SkImage_Reference#SkImage'>SkImage</a> is returned if generator <a href='undocumented#Data'>data</a> is valid. Valid <a href='undocumented#Data'>data</a> parameters vary by type of <a href='undocumented#Data'>data</a>
and platform.
-<a href='#SkImage_MakeFromGenerator_imageGenerator'>imageGenerator</a> <a href='#SkImage_MakeFromGenerator_imageGenerator'>may</a> <a href='#SkImage_MakeFromGenerator_imageGenerator'>wrap</a> <a href='SkPicture_Reference#SkPicture'>SkPicture</a> <a href='undocumented#Data'>data</a>, <a href='undocumented#Data'>codec</a> <a href='undocumented#Data'>data</a>, <a href='undocumented#Data'>or</a> <a href='undocumented#Data'>custom</a> <a href='undocumented#Data'>data</a>.
+<a href='#SkImage_MakeFromGenerator_imageGenerator'>imageGenerator</a> may wrap <a href='SkPicture_Reference#SkPicture'>SkPicture</a> <a href='undocumented#Data'>data</a>, codec <a href='undocumented#Data'>data</a>, or custom <a href='undocumented#Data'>data</a>.
### Parameters
@@ -444,17 +444,17 @@
<td>stock or custom routines to retrieve <a href='SkImage_Reference#SkImage'>SkImage</a></td>
</tr>
<tr> <td><a name='SkImage_MakeFromGenerator_subset'><code><strong>subset</strong></code></a></td>
- <td>bounds of returned <a href='SkImage_Reference#SkImage'>SkImage</a>; <a href='SkImage_Reference#SkImage'>may</a> <a href='SkImage_Reference#SkImage'>be</a> <a href='SkImage_Reference#SkImage'>nullptr</a></td>
+ <td>bounds of returned <a href='SkImage_Reference#SkImage'>SkImage</a>; may be nullptr</td>
</tr>
</table>
### Return Value
-created <a href='SkImage_Reference#SkImage'>SkImage</a>, <a href='SkImage_Reference#SkImage'>or</a> <a href='SkImage_Reference#SkImage'>nullptr</a>
+created <a href='SkImage_Reference#SkImage'>SkImage</a>, or nullptr
### Example
-<div><fiddle-embed name="c2fec0746f88ca34d7dce59dd9bdef9e"><div>The generator returning <a href='SkPicture_Reference#Picture'>Picture</a> <a href='SkPicture_Reference#Picture'>cannot</a> <a href='SkPicture_Reference#Picture'>be</a> <a href='SkPicture_Reference#Picture'>shared</a>; <a href='SkPicture_Reference#Picture'>std</a>::<a href='SkPicture_Reference#Picture'>move</a> <a href='SkPicture_Reference#Picture'>transfers</a> <a href='SkPicture_Reference#Picture'>ownership</a> <a href='SkPicture_Reference#Picture'>to</a> <a href='SkPicture_Reference#Picture'>generated</a> <a href='SkImage_Reference#Image'>Image</a>.
+<div><fiddle-embed name="c2fec0746f88ca34d7dce59dd9bdef9e"><div>The generator returning <a href='SkPicture_Reference#Picture'>Picture</a> cannot be shared; std::move transfers ownership to generated <a href='SkImage_Reference#Image'>Image</a>.
</div></fiddle-embed></div>
### See Also
@@ -466,29 +466,29 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-static <a href='undocumented#sk_sp'>sk_sp</a>&<a href='undocumented#sk_sp'>lt</a>;<a href='SkImage_Reference#SkImage'>SkImage</a>&<a href='SkImage_Reference#SkImage'>gt</a>; <a href='#SkImage_MakeFromEncoded'>MakeFromEncoded</a>(<a href='undocumented#sk_sp'>sk_sp</a>&<a href='undocumented#sk_sp'>lt</a>;<a href='undocumented#SkData'>SkData</a>&<a href='undocumented#SkData'>gt</a>; <a href='undocumented#SkData'>encoded</a>, <a href='undocumented#SkData'>const</a> <a href='SkIRect_Reference#SkIRect'>SkIRect</a>* <a href='SkIRect_Reference#SkIRect'>subset</a> = <a href='SkIRect_Reference#SkIRect'>nullptr</a>)
+static <a href='undocumented#sk_sp'>sk_sp</a><<a href='SkImage_Reference#SkImage'>SkImage</a>> <a href='#SkImage_MakeFromEncoded'>MakeFromEncoded</a>(<a href='undocumented#sk_sp'>sk_sp</a><<a href='undocumented#SkData'>SkData</a>> encoded, const <a href='SkIRect_Reference#SkIRect'>SkIRect</a>* subset = nullptr)
</pre>
-Creates <a href='SkImage_Reference#SkImage'>SkImage</a> <a href='SkImage_Reference#SkImage'>from</a> <a href='#SkImage_MakeFromEncoded_encoded'>encoded</a> <a href='undocumented#Data'>data</a>.
-<a href='#SkImage_MakeFromEncoded_subset'>subset</a> <a href='#SkImage_MakeFromEncoded_subset'>allows</a> <a href='#SkImage_MakeFromEncoded_subset'>selecting</a> <a href='#SkImage_MakeFromEncoded_subset'>a</a> <a href='#SkImage_MakeFromEncoded_subset'>portion</a> <a href='#SkImage_MakeFromEncoded_subset'>of</a> <a href='#SkImage_MakeFromEncoded_subset'>the</a> <a href='#SkImage_MakeFromEncoded_subset'>full</a> <a href='SkImage_Reference#Image'>image</a>. <a href='SkImage_Reference#Image'>Pass</a> <a href='SkImage_Reference#Image'>nullptr</a> <a href='SkImage_Reference#Image'>to</a> <a href='SkImage_Reference#Image'>select</a> <a href='SkImage_Reference#Image'>the</a> <a href='SkImage_Reference#Image'>entire</a>
-<a href='SkImage_Reference#Image'>image</a>; <a href='SkImage_Reference#Image'>otherwise</a>, <a href='#SkImage_MakeFromEncoded_subset'>subset</a> <a href='#SkImage_MakeFromEncoded_subset'>must</a> <a href='#SkImage_MakeFromEncoded_subset'>be</a> <a href='#SkImage_MakeFromEncoded_subset'>contained</a> <a href='#SkImage_MakeFromEncoded_subset'>by</a> <a href='SkImage_Reference#Image'>image</a> <a href='SkImage_Reference#Image'>bounds</a>.
+Creates <a href='SkImage_Reference#SkImage'>SkImage</a> from <a href='#SkImage_MakeFromEncoded_encoded'>encoded</a> <a href='undocumented#Data'>data</a>.
+<a href='#SkImage_MakeFromEncoded_subset'>subset</a> allows selecting a portion of the full <a href='SkImage_Reference#Image'>image</a>. Pass nullptr to select the entire
+<a href='SkImage_Reference#Image'>image</a>; otherwise, <a href='#SkImage_MakeFromEncoded_subset'>subset</a> must be contained by <a href='SkImage_Reference#Image'>image</a> bounds.
-<a href='SkImage_Reference#SkImage'>SkImage</a> <a href='SkImage_Reference#SkImage'>is</a> <a href='SkImage_Reference#SkImage'>returned</a> <a href='SkImage_Reference#SkImage'>if</a> <a href='SkImage_Reference#SkImage'>format</a> <a href='SkImage_Reference#SkImage'>of</a> <a href='SkImage_Reference#SkImage'>the</a> <a href='#SkImage_MakeFromEncoded_encoded'>encoded</a> <a href='undocumented#Data'>data</a> <a href='undocumented#Data'>is</a> <a href='undocumented#Data'>recognized</a> <a href='undocumented#Data'>and</a> <a href='undocumented#Data'>supported</a>.
+<a href='SkImage_Reference#SkImage'>SkImage</a> is returned if format of the <a href='#SkImage_MakeFromEncoded_encoded'>encoded</a> <a href='undocumented#Data'>data</a> is recognized and supported.
Recognized formats vary by platform.
### Parameters
<table> <tr> <td><a name='SkImage_MakeFromEncoded_encoded'><code><strong>encoded</strong></code></a></td>
- <td><a href='undocumented#Data'>data</a> <a href='undocumented#Data'>of</a> <a href='SkImage_Reference#SkImage'>SkImage</a> <a href='SkImage_Reference#SkImage'>to</a> <a href='SkImage_Reference#SkImage'>decode</a></td>
+ <td><a href='undocumented#Data'>data</a> of <a href='SkImage_Reference#SkImage'>SkImage</a> to decode</td>
</tr>
<tr> <td><a name='SkImage_MakeFromEncoded_subset'><code><strong>subset</strong></code></a></td>
- <td>bounds of returned <a href='SkImage_Reference#SkImage'>SkImage</a>; <a href='SkImage_Reference#SkImage'>may</a> <a href='SkImage_Reference#SkImage'>be</a> <a href='SkImage_Reference#SkImage'>nullptr</a></td>
+ <td>bounds of returned <a href='SkImage_Reference#SkImage'>SkImage</a>; may be nullptr</td>
</tr>
</table>
### Return Value
-created <a href='SkImage_Reference#SkImage'>SkImage</a>, <a href='SkImage_Reference#SkImage'>or</a> <a href='SkImage_Reference#SkImage'>nullptr</a>
+created <a href='SkImage_Reference#SkImage'>SkImage</a>, or nullptr
### Example
@@ -503,10 +503,10 @@
---
<pre style="padding: 1em 1em 1em 1em;width: 62.5em; background-color: #f0f0f0">
- typedef void (*<a href='#SkImage_TextureReleaseProc'>TextureReleaseProc</a>)(<a href='#SkImage_ReleaseContext'>ReleaseContext</a> <a href='#SkImage_ReleaseContext'>releaseContext</a>);
+ typedef void (*<a href='#SkImage_TextureReleaseProc'>TextureReleaseProc</a>)(<a href='#SkImage_ReleaseContext'>ReleaseContext</a> releaseContext);
</pre>
-User function called when supplied <a href='undocumented#Texture'>texture</a> <a href='undocumented#Texture'>may</a> <a href='undocumented#Texture'>be</a> <a href='undocumented#Texture'>deleted</a>.
+User function called when supplied <a href='undocumented#Texture'>texture</a> may be deleted.
### See Also
@@ -517,15 +517,15 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-static <a href='undocumented#sk_sp'>sk_sp</a>&<a href='undocumented#sk_sp'>lt</a>;<a href='SkImage_Reference#SkImage'>SkImage</a>&<a href='SkImage_Reference#SkImage'>gt</a>; <a href='#SkImage_MakeFromTexture'>MakeFromTexture</a>(<a href='undocumented#GrContext'>GrContext</a>* <a href='undocumented#GrContext'>context</a>, <a href='undocumented#GrContext'>const</a> <a href='undocumented#GrBackendTexture'>GrBackendTexture</a>& <a href='undocumented#GrBackendTexture'>backendTexture</a>,
- <a href='undocumented#GrSurfaceOrigin'>GrSurfaceOrigin</a> <a href='undocumented#GrSurfaceOrigin'>origin</a>, <a href='SkImageInfo_Reference#SkColorType'>SkColorType</a> <a href='#SkImage_colorType'>colorType</a>,
- <a href='SkImageInfo_Reference#SkAlphaType'>SkAlphaType</a> <a href='#SkImage_alphaType'>alphaType</a>, <a href='undocumented#sk_sp'>sk_sp</a>&<a href='undocumented#sk_sp'>lt</a>;<a href='undocumented#SkColorSpace'>SkColorSpace</a>&<a href='undocumented#SkColorSpace'>gt</a>; <a href='#SkImage_colorSpace'>colorSpace</a>)
+static <a href='undocumented#sk_sp'>sk_sp</a><<a href='SkImage_Reference#SkImage'>SkImage</a>> <a href='#SkImage_MakeFromTexture'>MakeFromTexture</a>(<a href='undocumented#GrContext'>GrContext</a>* context, const <a href='undocumented#GrBackendTexture'>GrBackendTexture</a>& backendTexture,
+ <a href='undocumented#GrSurfaceOrigin'>GrSurfaceOrigin</a> origin, <a href='SkImageInfo_Reference#SkColorType'>SkColorType</a> <a href='#SkImage_colorType'>colorType</a>,
+ <a href='SkImageInfo_Reference#SkAlphaType'>SkAlphaType</a> <a href='#SkImage_alphaType'>alphaType</a>, <a href='undocumented#sk_sp'>sk_sp</a><<a href='undocumented#SkColorSpace'>SkColorSpace</a>> <a href='#SkImage_colorSpace'>colorSpace</a>)
</pre>
-Creates <a href='SkImage_Reference#SkImage'>SkImage</a> <a href='SkImage_Reference#SkImage'>from</a> <a href='undocumented#GPU_Texture'>GPU texture</a> <a href='SkImage_Reference#SkImage'>associated</a> <a href='SkImage_Reference#SkImage'>with</a> <a href='#SkImage_MakeFromTexture_context'>context</a>. <a href='#SkImage_MakeFromTexture_context'>Caller</a> <a href='#SkImage_MakeFromTexture_context'>is</a> <a href='#SkImage_MakeFromTexture_context'>responsible</a> <a href='#SkImage_MakeFromTexture_context'>for</a>
+Creates <a href='SkImage_Reference#SkImage'>SkImage</a> from <a href='undocumented#GPU_Texture'>GPU texture</a> associated with <a href='#SkImage_MakeFromTexture_context'>context</a>. Caller is responsible for
managing the lifetime of <a href='undocumented#GPU_Texture'>GPU texture</a>.
-<a href='SkImage_Reference#SkImage'>SkImage</a> <a href='SkImage_Reference#SkImage'>is</a> <a href='SkImage_Reference#SkImage'>returned</a> <a href='SkImage_Reference#SkImage'>if</a> <a href='SkImage_Reference#SkImage'>format</a> <a href='SkImage_Reference#SkImage'>of</a> <a href='#SkImage_MakeFromTexture_backendTexture'>backendTexture</a> <a href='#SkImage_MakeFromTexture_backendTexture'>is</a> <a href='#SkImage_MakeFromTexture_backendTexture'>recognized</a> <a href='#SkImage_MakeFromTexture_backendTexture'>and</a> <a href='#SkImage_MakeFromTexture_backendTexture'>supported</a>.
+<a href='SkImage_Reference#SkImage'>SkImage</a> is returned if format of <a href='#SkImage_MakeFromTexture_backendTexture'>backendTexture</a> is recognized and supported.
Recognized formats vary by GPU back-end.
### Parameters
@@ -534,7 +534,7 @@
<td><a href='undocumented#GPU_Context'>GPU context</a></td>
</tr>
<tr> <td><a name='SkImage_MakeFromTexture_backendTexture'><code><strong>backendTexture</strong></code></a></td>
- <td><a href='undocumented#Texture'>texture</a> <a href='undocumented#Texture'>residing</a> <a href='undocumented#Texture'>on</a> <a href='undocumented#Texture'>GPU</a></td>
+ <td><a href='undocumented#Texture'>texture</a> residing on GPU</td>
</tr>
<tr> <td><a name='SkImage_MakeFromTexture_origin'><code><strong>origin</strong></code></a></td>
<td>one of: <a href='undocumented#kBottomLeft_GrSurfaceOrigin'>kBottomLeft_GrSurfaceOrigin</a>, <a href='undocumented#kTopLeft_GrSurfaceOrigin'>kTopLeft_GrSurfaceOrigin</a></td>
@@ -569,11 +569,11 @@
### Return Value
-created <a href='SkImage_Reference#SkImage'>SkImage</a>, <a href='SkImage_Reference#SkImage'>or</a> <a href='SkImage_Reference#SkImage'>nullptr</a>
+created <a href='SkImage_Reference#SkImage'>SkImage</a>, or nullptr
### Example
-<div><fiddle-embed name="94e9296c53bad074bf2a48ff885dac13" gpu="true"><div>A back-end <a href='undocumented#Texture'>texture</a> <a href='undocumented#Texture'>has</a> <a href='undocumented#Texture'>been</a> <a href='undocumented#Texture'>created</a> <a href='undocumented#Texture'>and</a> <a href='undocumented#Texture'>uploaded</a> <a href='undocumented#Texture'>to</a> <a href='undocumented#Texture'>the</a> <a href='undocumented#Texture'>GPU</a> <a href='undocumented#Texture'>outside</a> <a href='undocumented#Texture'>of</a> <a href='undocumented#Texture'>this</a> <a href='undocumented#Texture'>example</a>.
+<div><fiddle-embed name="94e9296c53bad074bf2a48ff885dac13" gpu="true"><div>A back-end <a href='undocumented#Texture'>texture</a> has been created and uploaded to the GPU outside of this example.
</div></fiddle-embed></div>
### See Also
@@ -585,18 +585,18 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-static <a href='undocumented#sk_sp'>sk_sp</a>&<a href='undocumented#sk_sp'>lt</a>;<a href='SkImage_Reference#SkImage'>SkImage</a>&<a href='SkImage_Reference#SkImage'>gt</a>; <a href='#SkImage_MakeFromTexture'>MakeFromTexture</a>(<a href='undocumented#GrContext'>GrContext</a>* <a href='undocumented#GrContext'>context</a>, <a href='undocumented#GrContext'>const</a> <a href='undocumented#GrBackendTexture'>GrBackendTexture</a>& <a href='undocumented#GrBackendTexture'>backendTexture</a>,
- <a href='undocumented#GrSurfaceOrigin'>GrSurfaceOrigin</a> <a href='undocumented#GrSurfaceOrigin'>origin</a>, <a href='SkImageInfo_Reference#SkColorType'>SkColorType</a> <a href='#SkImage_colorType'>colorType</a>,
- <a href='SkImageInfo_Reference#SkAlphaType'>SkAlphaType</a> <a href='#SkImage_alphaType'>alphaType</a>, <a href='undocumented#sk_sp'>sk_sp</a>&<a href='undocumented#sk_sp'>lt</a>;<a href='undocumented#SkColorSpace'>SkColorSpace</a>&<a href='undocumented#SkColorSpace'>gt</a>; <a href='#SkImage_colorSpace'>colorSpace</a>,
- <a href='#SkImage_TextureReleaseProc'>TextureReleaseProc</a> <a href='#SkImage_TextureReleaseProc'>textureReleaseProc</a>,
- <a href='#SkImage_ReleaseContext'>ReleaseContext</a> <a href='#SkImage_ReleaseContext'>releaseContext</a>)
+static <a href='undocumented#sk_sp'>sk_sp</a><<a href='SkImage_Reference#SkImage'>SkImage</a>> <a href='#SkImage_MakeFromTexture'>MakeFromTexture</a>(<a href='undocumented#GrContext'>GrContext</a>* context, const <a href='undocumented#GrBackendTexture'>GrBackendTexture</a>& backendTexture,
+ <a href='undocumented#GrSurfaceOrigin'>GrSurfaceOrigin</a> origin, <a href='SkImageInfo_Reference#SkColorType'>SkColorType</a> <a href='#SkImage_colorType'>colorType</a>,
+ <a href='SkImageInfo_Reference#SkAlphaType'>SkAlphaType</a> <a href='#SkImage_alphaType'>alphaType</a>, <a href='undocumented#sk_sp'>sk_sp</a><<a href='undocumented#SkColorSpace'>SkColorSpace</a>> <a href='#SkImage_colorSpace'>colorSpace</a>,
+ <a href='#SkImage_TextureReleaseProc'>TextureReleaseProc</a> textureReleaseProc,
+ <a href='#SkImage_ReleaseContext'>ReleaseContext</a> releaseContext)
</pre>
-Creates <a href='SkImage_Reference#SkImage'>SkImage</a> <a href='SkImage_Reference#SkImage'>from</a> <a href='undocumented#GPU_Texture'>GPU texture</a> <a href='SkImage_Reference#SkImage'>associated</a> <a href='SkImage_Reference#SkImage'>with</a> <a href='#SkImage_MakeFromTexture_2_context'>context</a>. <a href='undocumented#GPU_Texture'>GPU texture</a> <a href='#SkImage_MakeFromTexture_2_context'>must</a> <a href='#SkImage_MakeFromTexture_2_context'>stay</a>
-valid and unchanged until <a href='#SkImage_MakeFromTexture_2_textureReleaseProc'>textureReleaseProc</a> <a href='#SkImage_MakeFromTexture_2_textureReleaseProc'>is</a> <a href='#SkImage_MakeFromTexture_2_textureReleaseProc'>called</a>. <a href='#SkImage_MakeFromTexture_2_textureReleaseProc'>textureReleaseProc</a> <a href='#SkImage_MakeFromTexture_2_textureReleaseProc'>is</a>
-passed <a href='#SkImage_MakeFromTexture_2_releaseContext'>releaseContext</a> <a href='#SkImage_MakeFromTexture_2_releaseContext'>when</a> <a href='SkImage_Reference#SkImage'>SkImage</a> <a href='SkImage_Reference#SkImage'>is</a> <a href='SkImage_Reference#SkImage'>deleted</a> <a href='SkImage_Reference#SkImage'>or</a> <a href='SkImage_Reference#SkImage'>no</a> <a href='SkImage_Reference#SkImage'>longer</a> <a href='SkImage_Reference#SkImage'>refers</a> <a href='SkImage_Reference#SkImage'>to</a> <a href='undocumented#Texture'>texture</a>.
+Creates <a href='SkImage_Reference#SkImage'>SkImage</a> from <a href='undocumented#GPU_Texture'>GPU texture</a> associated with <a href='#SkImage_MakeFromTexture_2_context'>context</a>. <a href='undocumented#GPU_Texture'>GPU texture</a> must stay
+valid and unchanged until <a href='#SkImage_MakeFromTexture_2_textureReleaseProc'>textureReleaseProc</a> is called. <a href='#SkImage_MakeFromTexture_2_textureReleaseProc'>textureReleaseProc</a> is
+passed <a href='#SkImage_MakeFromTexture_2_releaseContext'>releaseContext</a> when <a href='SkImage_Reference#SkImage'>SkImage</a> is deleted or no longer refers to <a href='undocumented#Texture'>texture</a>.
-<a href='SkImage_Reference#SkImage'>SkImage</a> <a href='SkImage_Reference#SkImage'>is</a> <a href='SkImage_Reference#SkImage'>returned</a> <a href='SkImage_Reference#SkImage'>if</a> <a href='SkImage_Reference#SkImage'>format</a> <a href='SkImage_Reference#SkImage'>of</a> <a href='#SkImage_MakeFromTexture_2_backendTexture'>backendTexture</a> <a href='#SkImage_MakeFromTexture_2_backendTexture'>is</a> <a href='#SkImage_MakeFromTexture_2_backendTexture'>recognized</a> <a href='#SkImage_MakeFromTexture_2_backendTexture'>and</a> <a href='#SkImage_MakeFromTexture_2_backendTexture'>supported</a>.
+<a href='SkImage_Reference#SkImage'>SkImage</a> is returned if format of <a href='#SkImage_MakeFromTexture_2_backendTexture'>backendTexture</a> is recognized and supported.
Recognized formats vary by GPU back-end.
### Parameters
@@ -605,7 +605,7 @@
<td><a href='undocumented#GPU_Context'>GPU context</a></td>
</tr>
<tr> <td><a name='SkImage_MakeFromTexture_2_backendTexture'><code><strong>backendTexture</strong></code></a></td>
- <td><a href='undocumented#Texture'>texture</a> <a href='undocumented#Texture'>residing</a> <a href='undocumented#Texture'>on</a> <a href='undocumented#Texture'>GPU</a></td>
+ <td><a href='undocumented#Texture'>texture</a> residing on GPU</td>
</tr>
<tr> <td><a name='SkImage_MakeFromTexture_2_origin'><code><strong>origin</strong></code></a></td>
<td>one of: <a href='undocumented#kBottomLeft_GrSurfaceOrigin'>kBottomLeft_GrSurfaceOrigin</a>, <a href='undocumented#kTopLeft_GrSurfaceOrigin'>kTopLeft_GrSurfaceOrigin</a></td>
@@ -638,7 +638,7 @@
<td>range of colors; may be nullptr</td>
</tr>
<tr> <td><a name='SkImage_MakeFromTexture_2_textureReleaseProc'><code><strong>textureReleaseProc</strong></code></a></td>
- <td>function called when <a href='undocumented#Texture'>texture</a> <a href='undocumented#Texture'>can</a> <a href='undocumented#Texture'>be</a> <a href='undocumented#Texture'>released</a></td>
+ <td>function called when <a href='undocumented#Texture'>texture</a> can be released</td>
</tr>
<tr> <td><a name='SkImage_MakeFromTexture_2_releaseContext'><code><strong>releaseContext</strong></code></a></td>
<td>state passed to <a href='#SkImage_MakeFromTexture_2_textureReleaseProc'>textureReleaseProc</a></td>
@@ -647,7 +647,7 @@
### Return Value
-created <a href='SkImage_Reference#SkImage'>SkImage</a>, <a href='SkImage_Reference#SkImage'>or</a> <a href='SkImage_Reference#SkImage'>nullptr</a>
+created <a href='SkImage_Reference#SkImage'>SkImage</a>, or nullptr
### Example
@@ -662,27 +662,27 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-static <a href='undocumented#sk_sp'>sk_sp</a>&<a href='undocumented#sk_sp'>lt</a>;<a href='SkImage_Reference#SkImage'>SkImage</a>&<a href='SkImage_Reference#SkImage'>gt</a>; <a href='#SkImage_MakeCrossContextFromEncoded'>MakeCrossContextFromEncoded</a>(<a href='undocumented#GrContext'>GrContext</a>* <a href='undocumented#GrContext'>context</a>, <a href='undocumented#sk_sp'>sk_sp</a>&<a href='undocumented#sk_sp'>lt</a>;<a href='undocumented#SkData'>SkData</a>&<a href='undocumented#SkData'>gt</a>; <a href='undocumented#Data'>data</a>,
- <a href='undocumented#Data'>bool</a> <a href='undocumented#Data'>buildMips</a>, <a href='undocumented#SkColorSpace'>SkColorSpace</a>* <a href='undocumented#SkColorSpace'>dstColorSpace</a>,
- <a href='undocumented#SkColorSpace'>bool</a> <a href='undocumented#SkColorSpace'>limitToMaxTextureSize</a> = <a href='undocumented#SkColorSpace'>false</a>)
+static <a href='undocumented#sk_sp'>sk_sp</a><<a href='SkImage_Reference#SkImage'>SkImage</a>> <a href='#SkImage_MakeCrossContextFromEncoded'>MakeCrossContextFromEncoded</a>(<a href='undocumented#GrContext'>GrContext</a>* context, <a href='undocumented#sk_sp'>sk_sp</a><<a href='undocumented#SkData'>SkData</a>> <a href='undocumented#Data'>data</a>,
+ bool buildMips, <a href='undocumented#SkColorSpace'>SkColorSpace</a>* dstColorSpace,
+ bool limitToMaxTextureSize = false)
</pre>
-Creates <a href='SkImage_Reference#SkImage'>SkImage</a> <a href='SkImage_Reference#SkImage'>from</a> <a href='SkImage_Reference#SkImage'>encoded</a> <a href='#SkImage_MakeCrossContextFromEncoded_data'>data</a>. <a href='SkImage_Reference#SkImage'>SkImage</a> <a href='SkImage_Reference#SkImage'>is</a> <a href='SkImage_Reference#SkImage'>uploaded</a> <a href='SkImage_Reference#SkImage'>to</a> <a href='SkImage_Reference#SkImage'>GPU</a> <a href='SkImage_Reference#SkImage'>back-end</a> <a href='SkImage_Reference#SkImage'>using</a> <a href='#SkImage_MakeCrossContextFromEncoded_context'>context</a>.
+Creates <a href='SkImage_Reference#SkImage'>SkImage</a> from encoded <a href='#SkImage_MakeCrossContextFromEncoded_data'>data</a>. <a href='SkImage_Reference#SkImage'>SkImage</a> is uploaded to GPU back-end using <a href='#SkImage_MakeCrossContextFromEncoded_context'>context</a>.
-Created <a href='SkImage_Reference#SkImage'>SkImage</a> <a href='SkImage_Reference#SkImage'>is</a> <a href='SkImage_Reference#SkImage'>available</a> <a href='SkImage_Reference#SkImage'>to</a> <a href='SkImage_Reference#SkImage'>other</a> <a href='SkImage_Reference#SkImage'>GPU</a> <a href='SkImage_Reference#SkImage'>contexts</a>, <a href='SkImage_Reference#SkImage'>and</a> <a href='SkImage_Reference#SkImage'>is</a> <a href='SkImage_Reference#SkImage'>available</a> <a href='SkImage_Reference#SkImage'>across</a> <a href='SkImage_Reference#SkImage'>thread</a>
+Created <a href='SkImage_Reference#SkImage'>SkImage</a> is available to other GPU contexts, and is available across thread
boundaries. All contexts must be in the same <a href='undocumented#GPU_Share_Group'>GPU share group</a>, or otherwise
share resources.
-When <a href='SkImage_Reference#SkImage'>SkImage</a> <a href='SkImage_Reference#SkImage'>is</a> <a href='SkImage_Reference#SkImage'>no</a> <a href='SkImage_Reference#SkImage'>longer</a> <a href='SkImage_Reference#SkImage'>referenced</a>, <a href='#SkImage_MakeCrossContextFromEncoded_context'>context</a> <a href='#SkImage_MakeCrossContextFromEncoded_context'>releases</a> <a href='undocumented#Texture'>texture</a> <a href='undocumented#Texture'>memory</a>
+When <a href='SkImage_Reference#SkImage'>SkImage</a> is no longer referenced, <a href='#SkImage_MakeCrossContextFromEncoded_context'>context</a> releases <a href='undocumented#Texture'>texture</a> memory
asynchronously.
-<a href='undocumented#GrBackendTexture'>GrBackendTexture</a> <a href='undocumented#GrBackendTexture'>decoded</a> <a href='undocumented#GrBackendTexture'>from</a> <a href='#SkImage_MakeCrossContextFromEncoded_data'>data</a> <a href='#SkImage_MakeCrossContextFromEncoded_data'>is</a> <a href='#SkImage_MakeCrossContextFromEncoded_data'>uploaded</a> <a href='#SkImage_MakeCrossContextFromEncoded_data'>to</a> <a href='#SkImage_MakeCrossContextFromEncoded_data'>match</a> <a href='SkSurface_Reference#SkSurface'>SkSurface</a> <a href='SkSurface_Reference#SkSurface'>created</a> <a href='SkSurface_Reference#SkSurface'>with</a>
-<a href='#SkImage_MakeCrossContextFromEncoded_dstColorSpace'>dstColorSpace</a>. <a href='undocumented#SkColorSpace'>SkColorSpace</a> <a href='undocumented#SkColorSpace'>of</a> <a href='SkImage_Reference#SkImage'>SkImage</a> <a href='SkImage_Reference#SkImage'>is</a> <a href='SkImage_Reference#SkImage'>determined</a> <a href='SkImage_Reference#SkImage'>by</a> <a href='SkImage_Reference#SkImage'>encoded</a> <a href='#SkImage_MakeCrossContextFromEncoded_data'>data</a>.
+<a href='undocumented#GrBackendTexture'>GrBackendTexture</a> decoded from <a href='#SkImage_MakeCrossContextFromEncoded_data'>data</a> is uploaded to match <a href='SkSurface_Reference#SkSurface'>SkSurface</a> created with
+<a href='#SkImage_MakeCrossContextFromEncoded_dstColorSpace'>dstColorSpace</a>. <a href='undocumented#SkColorSpace'>SkColorSpace</a> of <a href='SkImage_Reference#SkImage'>SkImage</a> is determined by encoded <a href='#SkImage_MakeCrossContextFromEncoded_data'>data</a>.
-<a href='SkImage_Reference#SkImage'>SkImage</a> <a href='SkImage_Reference#SkImage'>is</a> <a href='SkImage_Reference#SkImage'>returned</a> <a href='SkImage_Reference#SkImage'>if</a> <a href='SkImage_Reference#SkImage'>format</a> <a href='SkImage_Reference#SkImage'>of</a> <a href='#SkImage_MakeCrossContextFromEncoded_data'>data</a> <a href='#SkImage_MakeCrossContextFromEncoded_data'>is</a> <a href='#SkImage_MakeCrossContextFromEncoded_data'>recognized</a> <a href='#SkImage_MakeCrossContextFromEncoded_data'>and</a> <a href='#SkImage_MakeCrossContextFromEncoded_data'>supported</a>, <a href='#SkImage_MakeCrossContextFromEncoded_data'>and</a> <a href='#SkImage_MakeCrossContextFromEncoded_data'>if</a> <a href='#SkImage_MakeCrossContextFromEncoded_context'>context</a>
+<a href='SkImage_Reference#SkImage'>SkImage</a> is returned if format of <a href='#SkImage_MakeCrossContextFromEncoded_data'>data</a> is recognized and supported, and if <a href='#SkImage_MakeCrossContextFromEncoded_context'>context</a>
supports moving resources. Recognized formats vary by platform and GPU back-end.
-<a href='SkImage_Reference#SkImage'>SkImage</a> <a href='SkImage_Reference#SkImage'>is</a> <a href='SkImage_Reference#SkImage'>returned</a> <a href='SkImage_Reference#SkImage'>using</a> <a href='#SkImage_MakeFromEncoded'>MakeFromEncoded</a>() <a href='#SkImage_MakeFromEncoded'>if</a> <a href='#SkImage_MakeCrossContextFromEncoded_context'>context</a> <a href='#SkImage_MakeCrossContextFromEncoded_context'>is</a> <a href='#SkImage_MakeCrossContextFromEncoded_context'>nullptr</a> <a href='#SkImage_MakeCrossContextFromEncoded_context'>or</a> <a href='#SkImage_MakeCrossContextFromEncoded_context'>does</a> <a href='#SkImage_MakeCrossContextFromEncoded_context'>not</a> <a href='#SkImage_MakeCrossContextFromEncoded_context'>support</a>
+<a href='SkImage_Reference#SkImage'>SkImage</a> is returned using <a href='#SkImage_MakeFromEncoded'>MakeFromEncoded</a>() if <a href='#SkImage_MakeCrossContextFromEncoded_context'>context</a> is nullptr or does not support
moving resources between contexts.
### Parameters
@@ -691,22 +691,22 @@
<td><a href='undocumented#GPU_Context'>GPU context</a></td>
</tr>
<tr> <td><a name='SkImage_MakeCrossContextFromEncoded_data'><code><strong>data</strong></code></a></td>
- <td><a href='SkImage_Reference#SkImage'>SkImage</a> <a href='SkImage_Reference#SkImage'>to</a> <a href='SkImage_Reference#SkImage'>decode</a></td>
+ <td><a href='SkImage_Reference#SkImage'>SkImage</a> to decode</td>
</tr>
<tr> <td><a name='SkImage_MakeCrossContextFromEncoded_buildMips'><code><strong>buildMips</strong></code></a></td>
- <td>create <a href='SkImage_Reference#SkImage'>SkImage</a> <a href='SkImage_Reference#SkImage'>as</a> <a href='undocumented#Mip_Map'>mip map</a> <a href='SkImage_Reference#SkImage'>if</a> <a href='SkImage_Reference#SkImage'>true</a></td>
+ <td>create <a href='SkImage_Reference#SkImage'>SkImage</a> as <a href='undocumented#Mip_Map'>mip map</a> if true</td>
</tr>
<tr> <td><a name='SkImage_MakeCrossContextFromEncoded_dstColorSpace'><code><strong>dstColorSpace</strong></code></a></td>
- <td>range of colors of matching <a href='SkSurface_Reference#SkSurface'>SkSurface</a> <a href='SkSurface_Reference#SkSurface'>on</a> <a href='SkSurface_Reference#SkSurface'>GPU</a></td>
+ <td>range of colors of matching <a href='SkSurface_Reference#SkSurface'>SkSurface</a> on GPU</td>
</tr>
<tr> <td><a name='SkImage_MakeCrossContextFromEncoded_limitToMaxTextureSize'><code><strong>limitToMaxTextureSize</strong></code></a></td>
- <td>downscale <a href='SkImage_Reference#Image'>image</a> <a href='SkImage_Reference#Image'>to</a> <a href='SkImage_Reference#Image'>GPU</a> <a href='SkImage_Reference#Image'>maximum</a> <a href='undocumented#Texture'>texture</a> <a href='undocumented#Size'>size</a>, <a href='undocumented#Size'>if</a> <a href='undocumented#Size'>necessary</a></td>
+ <td>downscale <a href='SkImage_Reference#Image'>image</a> to GPU maximum <a href='undocumented#Texture'>texture</a> <a href='undocumented#Size'>size</a>, if necessary</td>
</tr>
</table>
### Return Value
-created <a href='SkImage_Reference#SkImage'>SkImage</a>, <a href='SkImage_Reference#SkImage'>or</a> <a href='SkImage_Reference#SkImage'>nullptr</a>
+created <a href='SkImage_Reference#SkImage'>SkImage</a>, or nullptr
### Example
@@ -721,26 +721,26 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-static <a href='undocumented#sk_sp'>sk_sp</a>&<a href='undocumented#sk_sp'>lt</a>;<a href='SkImage_Reference#SkImage'>SkImage</a>&<a href='SkImage_Reference#SkImage'>gt</a>; <a href='#SkImage_MakeCrossContextFromPixmap'>MakeCrossContextFromPixmap</a>(<a href='undocumented#GrContext'>GrContext</a>* <a href='undocumented#GrContext'>context</a>, <a href='undocumented#GrContext'>const</a> <a href='SkPixmap_Reference#SkPixmap'>SkPixmap</a>& <a href='SkPixmap_Reference#Pixmap'>pixmap</a>,
- <a href='SkPixmap_Reference#Pixmap'>bool</a> <a href='SkPixmap_Reference#Pixmap'>buildMips</a>, <a href='undocumented#SkColorSpace'>SkColorSpace</a>* <a href='undocumented#SkColorSpace'>dstColorSpace</a>,
- <a href='undocumented#SkColorSpace'>bool</a> <a href='undocumented#SkColorSpace'>limitToMaxTextureSize</a> = <a href='undocumented#SkColorSpace'>false</a>)
+static <a href='undocumented#sk_sp'>sk_sp</a><<a href='SkImage_Reference#SkImage'>SkImage</a>> <a href='#SkImage_MakeCrossContextFromPixmap'>MakeCrossContextFromPixmap</a>(<a href='undocumented#GrContext'>GrContext</a>* context, const <a href='SkPixmap_Reference#SkPixmap'>SkPixmap</a>& <a href='SkPixmap_Reference#Pixmap'>pixmap</a>,
+ bool buildMips, <a href='undocumented#SkColorSpace'>SkColorSpace</a>* dstColorSpace,
+ bool limitToMaxTextureSize = false)
</pre>
-Creates <a href='SkImage_Reference#SkImage'>SkImage</a> <a href='SkImage_Reference#SkImage'>from</a> <a href='#SkImage_MakeCrossContextFromPixmap_pixmap'>pixmap</a>. <a href='SkImage_Reference#SkImage'>SkImage</a> <a href='SkImage_Reference#SkImage'>is</a> <a href='SkImage_Reference#SkImage'>uploaded</a> <a href='SkImage_Reference#SkImage'>to</a> <a href='SkImage_Reference#SkImage'>GPU</a> <a href='SkImage_Reference#SkImage'>back-end</a> <a href='SkImage_Reference#SkImage'>using</a> <a href='#SkImage_MakeCrossContextFromPixmap_context'>context</a>.
+Creates <a href='SkImage_Reference#SkImage'>SkImage</a> from <a href='#SkImage_MakeCrossContextFromPixmap_pixmap'>pixmap</a>. <a href='SkImage_Reference#SkImage'>SkImage</a> is uploaded to GPU back-end using <a href='#SkImage_MakeCrossContextFromPixmap_context'>context</a>.
-Created <a href='SkImage_Reference#SkImage'>SkImage</a> <a href='SkImage_Reference#SkImage'>is</a> <a href='SkImage_Reference#SkImage'>available</a> <a href='SkImage_Reference#SkImage'>to</a> <a href='SkImage_Reference#SkImage'>other</a> <a href='SkImage_Reference#SkImage'>GPU</a> <a href='SkImage_Reference#SkImage'>contexts</a>, <a href='SkImage_Reference#SkImage'>and</a> <a href='SkImage_Reference#SkImage'>is</a> <a href='SkImage_Reference#SkImage'>available</a> <a href='SkImage_Reference#SkImage'>across</a> <a href='SkImage_Reference#SkImage'>thread</a>
+Created <a href='SkImage_Reference#SkImage'>SkImage</a> is available to other GPU contexts, and is available across thread
boundaries. All contexts must be in the same <a href='undocumented#GPU_Share_Group'>GPU share group</a>, or otherwise
share resources.
-When <a href='SkImage_Reference#SkImage'>SkImage</a> <a href='SkImage_Reference#SkImage'>is</a> <a href='SkImage_Reference#SkImage'>no</a> <a href='SkImage_Reference#SkImage'>longer</a> <a href='SkImage_Reference#SkImage'>referenced</a>, <a href='#SkImage_MakeCrossContextFromPixmap_context'>context</a> <a href='#SkImage_MakeCrossContextFromPixmap_context'>releases</a> <a href='undocumented#Texture'>texture</a> <a href='undocumented#Texture'>memory</a>
+When <a href='SkImage_Reference#SkImage'>SkImage</a> is no longer referenced, <a href='#SkImage_MakeCrossContextFromPixmap_context'>context</a> releases <a href='undocumented#Texture'>texture</a> memory
asynchronously.
-<a href='undocumented#GrBackendTexture'>GrBackendTexture</a> <a href='undocumented#GrBackendTexture'>created</a> <a href='undocumented#GrBackendTexture'>from</a> <a href='#SkImage_MakeCrossContextFromPixmap_pixmap'>pixmap</a> <a href='#SkImage_MakeCrossContextFromPixmap_pixmap'>is</a> <a href='#SkImage_MakeCrossContextFromPixmap_pixmap'>uploaded</a> <a href='#SkImage_MakeCrossContextFromPixmap_pixmap'>to</a> <a href='#SkImage_MakeCrossContextFromPixmap_pixmap'>match</a> <a href='SkSurface_Reference#SkSurface'>SkSurface</a> <a href='SkSurface_Reference#SkSurface'>created</a> <a href='SkSurface_Reference#SkSurface'>with</a>
-<a href='#SkImage_MakeCrossContextFromPixmap_dstColorSpace'>dstColorSpace</a>. <a href='undocumented#SkColorSpace'>SkColorSpace</a> <a href='undocumented#SkColorSpace'>of</a> <a href='SkImage_Reference#SkImage'>SkImage</a> <a href='SkImage_Reference#SkImage'>is</a> <a href='SkImage_Reference#SkImage'>determined</a> <a href='SkImage_Reference#SkImage'>by</a> <a href='#SkImage_MakeCrossContextFromPixmap_pixmap'>pixmap</a>.<a href='#SkPixmap_colorSpace'>colorSpace</a>().
+<a href='undocumented#GrBackendTexture'>GrBackendTexture</a> created from <a href='#SkImage_MakeCrossContextFromPixmap_pixmap'>pixmap</a> is uploaded to match <a href='SkSurface_Reference#SkSurface'>SkSurface</a> created with
+<a href='#SkImage_MakeCrossContextFromPixmap_dstColorSpace'>dstColorSpace</a>. <a href='undocumented#SkColorSpace'>SkColorSpace</a> of <a href='SkImage_Reference#SkImage'>SkImage</a> is determined by <a href='#SkImage_MakeCrossContextFromPixmap_pixmap'>pixmap</a>.<a href='#SkPixmap_colorSpace'>colorSpace</a>().
-<a href='SkImage_Reference#SkImage'>SkImage</a> <a href='SkImage_Reference#SkImage'>is</a> <a href='SkImage_Reference#SkImage'>returned</a> <a href='SkImage_Reference#SkImage'>referring</a> <a href='SkImage_Reference#SkImage'>to</a> <a href='SkImage_Reference#SkImage'>GPU</a> <a href='SkImage_Reference#SkImage'>back-end</a> <a href='SkImage_Reference#SkImage'>if</a> <a href='#SkImage_MakeCrossContextFromPixmap_context'>context</a> <a href='#SkImage_MakeCrossContextFromPixmap_context'>is</a> <a href='#SkImage_MakeCrossContextFromPixmap_context'>not</a> <a href='#SkImage_MakeCrossContextFromPixmap_context'>nullptr</a>,
-format of <a href='undocumented#Data'>data</a> <a href='undocumented#Data'>is</a> <a href='undocumented#Data'>recognized</a> <a href='undocumented#Data'>and</a> <a href='undocumented#Data'>supported</a>, <a href='undocumented#Data'>and</a> <a href='undocumented#Data'>if</a> <a href='#SkImage_MakeCrossContextFromPixmap_context'>context</a> <a href='#SkImage_MakeCrossContextFromPixmap_context'>supports</a> <a href='#SkImage_MakeCrossContextFromPixmap_context'>moving</a>
-resources between contexts. Otherwise, <a href='#SkImage_MakeCrossContextFromPixmap_pixmap'>pixmap</a> <a href='undocumented#Pixel'>pixel</a> <a href='undocumented#Data'>data</a> <a href='undocumented#Data'>is</a> <a href='undocumented#Data'>copied</a> <a href='undocumented#Data'>and</a> <a href='SkImage_Reference#SkImage'>SkImage</a>
+<a href='SkImage_Reference#SkImage'>SkImage</a> is returned referring to GPU back-end if <a href='#SkImage_MakeCrossContextFromPixmap_context'>context</a> is not nullptr,
+format of <a href='undocumented#Data'>data</a> is recognized and supported, and if <a href='#SkImage_MakeCrossContextFromPixmap_context'>context</a> supports moving
+resources between contexts. Otherwise, <a href='#SkImage_MakeCrossContextFromPixmap_pixmap'>pixmap</a> <a href='undocumented#Pixel'>pixel</a> <a href='undocumented#Data'>data</a> is copied and <a href='SkImage_Reference#SkImage'>SkImage</a>
as returned in raster format if possible; nullptr may be returned.
Recognized GPU formats vary by platform and GPU back-end.
@@ -750,22 +750,22 @@
<td><a href='undocumented#GPU_Context'>GPU context</a></td>
</tr>
<tr> <td><a name='SkImage_MakeCrossContextFromPixmap_pixmap'><code><strong>pixmap</strong></code></a></td>
- <td><a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a>, <a href='undocumented#Pixel'>pixel</a> <a href='undocumented#Pixel'>address</a>, <a href='undocumented#Pixel'>and</a> <a href='undocumented#Pixel'>row</a> <a href='undocumented#Pixel'>bytes</a></td>
+ <td><a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a>, <a href='undocumented#Pixel'>pixel</a> address, and row bytes</td>
</tr>
<tr> <td><a name='SkImage_MakeCrossContextFromPixmap_buildMips'><code><strong>buildMips</strong></code></a></td>
- <td>create <a href='SkImage_Reference#SkImage'>SkImage</a> <a href='SkImage_Reference#SkImage'>as</a> <a href='undocumented#Mip_Map'>mip map</a> <a href='SkImage_Reference#SkImage'>if</a> <a href='SkImage_Reference#SkImage'>true</a></td>
+ <td>create <a href='SkImage_Reference#SkImage'>SkImage</a> as <a href='undocumented#Mip_Map'>mip map</a> if true</td>
</tr>
<tr> <td><a name='SkImage_MakeCrossContextFromPixmap_dstColorSpace'><code><strong>dstColorSpace</strong></code></a></td>
- <td>range of colors of matching <a href='SkSurface_Reference#SkSurface'>SkSurface</a> <a href='SkSurface_Reference#SkSurface'>on</a> <a href='SkSurface_Reference#SkSurface'>GPU</a></td>
+ <td>range of colors of matching <a href='SkSurface_Reference#SkSurface'>SkSurface</a> on GPU</td>
</tr>
<tr> <td><a name='SkImage_MakeCrossContextFromPixmap_limitToMaxTextureSize'><code><strong>limitToMaxTextureSize</strong></code></a></td>
- <td>downscale <a href='SkImage_Reference#Image'>image</a> <a href='SkImage_Reference#Image'>to</a> <a href='SkImage_Reference#Image'>GPU</a> <a href='SkImage_Reference#Image'>maximum</a> <a href='undocumented#Texture'>texture</a> <a href='undocumented#Size'>size</a>, <a href='undocumented#Size'>if</a> <a href='undocumented#Size'>necessary</a></td>
+ <td>downscale <a href='SkImage_Reference#Image'>image</a> to GPU maximum <a href='undocumented#Texture'>texture</a> <a href='undocumented#Size'>size</a>, if necessary</td>
</tr>
</table>
### Return Value
-created <a href='SkImage_Reference#SkImage'>SkImage</a>, <a href='SkImage_Reference#SkImage'>or</a> <a href='SkImage_Reference#SkImage'>nullptr</a>
+created <a href='SkImage_Reference#SkImage'>SkImage</a>, or nullptr
### Example
@@ -780,17 +780,17 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-static <a href='undocumented#sk_sp'>sk_sp</a>&<a href='undocumented#sk_sp'>lt</a>;<a href='SkImage_Reference#SkImage'>SkImage</a>&<a href='SkImage_Reference#SkImage'>gt</a>; <a href='#SkImage_MakeFromAdoptedTexture'>MakeFromAdoptedTexture</a>(<a href='undocumented#GrContext'>GrContext</a>* <a href='undocumented#GrContext'>context</a>,
- <a href='undocumented#GrContext'>const</a> <a href='undocumented#GrBackendTexture'>GrBackendTexture</a>& <a href='undocumented#GrBackendTexture'>backendTexture</a>,
- <a href='undocumented#GrSurfaceOrigin'>GrSurfaceOrigin</a> <a href='undocumented#GrSurfaceOrigin'>surfaceOrigin</a>, <a href='SkImageInfo_Reference#SkColorType'>SkColorType</a> <a href='#SkImage_colorType'>colorType</a>,
+static <a href='undocumented#sk_sp'>sk_sp</a><<a href='SkImage_Reference#SkImage'>SkImage</a>> <a href='#SkImage_MakeFromAdoptedTexture'>MakeFromAdoptedTexture</a>(<a href='undocumented#GrContext'>GrContext</a>* context,
+ const <a href='undocumented#GrBackendTexture'>GrBackendTexture</a>& backendTexture,
+ <a href='undocumented#GrSurfaceOrigin'>GrSurfaceOrigin</a> surfaceOrigin, <a href='SkImageInfo_Reference#SkColorType'>SkColorType</a> <a href='#SkImage_colorType'>colorType</a>,
<a href='SkImageInfo_Reference#SkAlphaType'>SkAlphaType</a> <a href='#SkImage_alphaType'>alphaType</a> = <a href='SkImageInfo_Reference#kPremul_SkAlphaType'>kPremul_SkAlphaType</a>,
- <a href='undocumented#sk_sp'>sk_sp</a>&<a href='undocumented#sk_sp'>lt</a>;<a href='undocumented#SkColorSpace'>SkColorSpace</a>&<a href='undocumented#SkColorSpace'>gt</a>; <a href='#SkImage_colorSpace'>colorSpace</a> = <a href='#SkImage_colorSpace'>nullptr</a>)
+ <a href='undocumented#sk_sp'>sk_sp</a><<a href='undocumented#SkColorSpace'>SkColorSpace</a>> <a href='#SkImage_colorSpace'>colorSpace</a> = nullptr)
</pre>
-Creates <a href='SkImage_Reference#SkImage'>SkImage</a> <a href='SkImage_Reference#SkImage'>from</a> <a href='#SkImage_MakeFromAdoptedTexture_backendTexture'>backendTexture</a> <a href='#SkImage_MakeFromAdoptedTexture_backendTexture'>associated</a> <a href='#SkImage_MakeFromAdoptedTexture_backendTexture'>with</a> <a href='#SkImage_MakeFromAdoptedTexture_context'>context</a>. <a href='#SkImage_MakeFromAdoptedTexture_backendTexture'>backendTexture</a> <a href='#SkImage_MakeFromAdoptedTexture_backendTexture'>and</a>
-returned <a href='SkImage_Reference#SkImage'>SkImage</a> <a href='SkImage_Reference#SkImage'>are</a> <a href='SkImage_Reference#SkImage'>managed</a> <a href='SkImage_Reference#SkImage'>internally</a>, <a href='SkImage_Reference#SkImage'>and</a> <a href='SkImage_Reference#SkImage'>are</a> <a href='SkImage_Reference#SkImage'>released</a> <a href='SkImage_Reference#SkImage'>when</a> <a href='SkImage_Reference#SkImage'>no</a> <a href='SkImage_Reference#SkImage'>longer</a> <a href='SkImage_Reference#SkImage'>needed</a>.
+Creates <a href='SkImage_Reference#SkImage'>SkImage</a> from <a href='#SkImage_MakeFromAdoptedTexture_backendTexture'>backendTexture</a> associated with <a href='#SkImage_MakeFromAdoptedTexture_context'>context</a>. <a href='#SkImage_MakeFromAdoptedTexture_backendTexture'>backendTexture</a> and
+returned <a href='SkImage_Reference#SkImage'>SkImage</a> are managed internally, and are released when no longer needed.
-<a href='SkImage_Reference#SkImage'>SkImage</a> <a href='SkImage_Reference#SkImage'>is</a> <a href='SkImage_Reference#SkImage'>returned</a> <a href='SkImage_Reference#SkImage'>if</a> <a href='SkImage_Reference#SkImage'>format</a> <a href='SkImage_Reference#SkImage'>of</a> <a href='#SkImage_MakeFromAdoptedTexture_backendTexture'>backendTexture</a> <a href='#SkImage_MakeFromAdoptedTexture_backendTexture'>is</a> <a href='#SkImage_MakeFromAdoptedTexture_backendTexture'>recognized</a> <a href='#SkImage_MakeFromAdoptedTexture_backendTexture'>and</a> <a href='#SkImage_MakeFromAdoptedTexture_backendTexture'>supported</a>.
+<a href='SkImage_Reference#SkImage'>SkImage</a> is returned if format of <a href='#SkImage_MakeFromAdoptedTexture_backendTexture'>backendTexture</a> is recognized and supported.
Recognized formats vary by GPU back-end.
### Parameters
@@ -799,7 +799,7 @@
<td><a href='undocumented#GPU_Context'>GPU context</a></td>
</tr>
<tr> <td><a name='SkImage_MakeFromAdoptedTexture_backendTexture'><code><strong>backendTexture</strong></code></a></td>
- <td><a href='undocumented#Texture'>texture</a> <a href='undocumented#Texture'>residing</a> <a href='undocumented#Texture'>on</a> <a href='undocumented#Texture'>GPU</a></td>
+ <td><a href='undocumented#Texture'>texture</a> residing on GPU</td>
</tr>
<tr> <td><a name='SkImage_MakeFromAdoptedTexture_surfaceOrigin'><code><strong>surfaceOrigin</strong></code></a></td>
<td>one of: <a href='undocumented#kBottomLeft_GrSurfaceOrigin'>kBottomLeft_GrSurfaceOrigin</a>, <a href='undocumented#kTopLeft_GrSurfaceOrigin'>kTopLeft_GrSurfaceOrigin</a></td>
@@ -835,7 +835,7 @@
### Return Value
-created <a href='SkImage_Reference#SkImage'>SkImage</a>, <a href='SkImage_Reference#SkImage'>or</a> <a href='SkImage_Reference#SkImage'>nullptr</a>
+created <a href='SkImage_Reference#SkImage'>SkImage</a>, or nullptr
### Example
@@ -850,14 +850,14 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-static <a href='undocumented#sk_sp'>sk_sp</a>&<a href='undocumented#sk_sp'>lt</a>;<a href='SkImage_Reference#SkImage'>SkImage</a>&<a href='SkImage_Reference#SkImage'>gt</a>; <a href='#SkImage_MakeFromYUVATexturesCopy'>MakeFromYUVATexturesCopy</a>(<a href='undocumented#GrContext'>GrContext</a>* <a href='undocumented#GrContext'>context</a>, <a href='SkImageInfo_Reference#SkYUVColorSpace'>SkYUVColorSpace</a> <a href='SkImageInfo_Reference#SkYUVColorSpace'>yuvColorSpace</a>,
- <a href='SkImageInfo_Reference#SkYUVColorSpace'>const</a> <a href='undocumented#GrBackendTexture'>GrBackendTexture</a> <a href='undocumented#GrBackendTexture'>yuvaTextures</a>[],
- <a href='undocumented#GrBackendTexture'>const</a> <a href='undocumented#SkYUVAIndex'>SkYUVAIndex</a> <a href='undocumented#SkYUVAIndex'>yuvaIndices</a>[4], <a href='undocumented#SkISize'>SkISize</a> <a href='undocumented#SkISize'>imageSize</a>,
- <a href='undocumented#GrSurfaceOrigin'>GrSurfaceOrigin</a> <a href='undocumented#GrSurfaceOrigin'>imageOrigin</a>,
- <a href='undocumented#sk_sp'>sk_sp</a>&<a href='undocumented#sk_sp'>lt</a>;<a href='undocumented#SkColorSpace'>SkColorSpace</a>&<a href='undocumented#SkColorSpace'>gt</a>; <a href='undocumented#SkColorSpace'>imageColorSpace</a> = <a href='undocumented#SkColorSpace'>nullptr</a>)
+static <a href='undocumented#sk_sp'>sk_sp</a><<a href='SkImage_Reference#SkImage'>SkImage</a>> <a href='#SkImage_MakeFromYUVATexturesCopy'>MakeFromYUVATexturesCopy</a>(<a href='undocumented#GrContext'>GrContext</a>* context, <a href='SkImageInfo_Reference#SkYUVColorSpace'>SkYUVColorSpace</a> yuvColorSpace,
+ const <a href='undocumented#GrBackendTexture'>GrBackendTexture</a> yuvaTextures[],
+ const <a href='undocumented#SkYUVAIndex'>SkYUVAIndex</a> yuvaIndices[4], <a href='undocumented#SkISize'>SkISize</a> imageSize,
+ <a href='undocumented#GrSurfaceOrigin'>GrSurfaceOrigin</a> imageOrigin,
+ <a href='undocumented#sk_sp'>sk_sp</a><<a href='undocumented#SkColorSpace'>SkColorSpace</a>> imageColorSpace = nullptr)
</pre>
-Creates an <a href='SkImage_Reference#SkImage'>SkImage</a> <a href='SkImage_Reference#SkImage'>by</a> <a href='SkImage_Reference#SkImage'>flattening</a> <a href='SkImage_Reference#SkImage'>the</a> <a href='SkImage_Reference#SkImage'>specified</a> <a href='SkImage_Reference#SkImage'>YUVA</a> <a href='SkImage_Reference#SkImage'>planes</a> <a href='SkImage_Reference#SkImage'>into</a> <a href='SkImage_Reference#SkImage'>a</a> <a href='SkImage_Reference#SkImage'>single</a>, <a href='SkImage_Reference#SkImage'>interleaved</a> <a href='SkImage_Reference#SkImage'>RGBA</a>
+Creates an <a href='SkImage_Reference#SkImage'>SkImage</a> by flattening the specified YUVA planes into a single, interleaved RGBA
<a href='SkImage_Reference#Image'>image</a>.
### Parameters
@@ -885,19 +885,19 @@
### Parameters
<table> <tr> <td><a name='SkImage_MakeFromYUVATexturesCopy_yuvaIndices'><code><strong>yuvaIndices</strong></code></a></td>
- <td>array indicating which <a href='undocumented#Texture'>texture</a> <a href='undocumented#Texture'>in</a> <a href='#SkImage_MakeFromYUVATexturesCopy_yuvaTextures'>yuvaTextures</a>, <a href='#SkImage_MakeFromYUVATexturesCopy_yuvaTextures'>and</a> <a href='#SkImage_MakeFromYUVATexturesCopy_yuvaTextures'>channel</a></td>
+ <td>array indicating which <a href='undocumented#Texture'>texture</a> in <a href='#SkImage_MakeFromYUVATexturesCopy_yuvaTextures'>yuvaTextures</a>, and channel</td>
</tr>
</table>
-in that <a href='undocumented#Texture'>texture</a>, <a href='undocumented#Texture'>maps</a> <a href='undocumented#Texture'>to</a> <a href='undocumented#Texture'>each</a> <a href='undocumented#Texture'>component</a> <a href='undocumented#Texture'>of</a> <a href='undocumented#Texture'>YUVA</a>.
+in that <a href='undocumented#Texture'>texture</a>, maps to each component of YUVA.
### Parameters
<table> <tr> <td><a name='SkImage_MakeFromYUVATexturesCopy_imageSize'><code><strong>imageSize</strong></code></a></td>
- <td><a href='undocumented#Size'>size</a> <a href='undocumented#Size'>of</a> <a href='undocumented#Size'>the</a> <a href='undocumented#Size'>resulting</a> <a href='SkImage_Reference#Image'>image</a></td>
+ <td><a href='undocumented#Size'>size</a> of the resulting <a href='SkImage_Reference#Image'>image</a></td>
</tr>
<tr> <td><a name='SkImage_MakeFromYUVATexturesCopy_imageOrigin'><code><strong>imageOrigin</strong></code></a></td>
- <td>origin of the resulting <a href='SkImage_Reference#Image'>image</a>. <a href='SkImage_Reference#Image'>One</a> <a href='SkImage_Reference#Image'>of</a>: <a href='undocumented#kBottomLeft_GrSurfaceOrigin'>kBottomLeft_GrSurfaceOrigin</a>,</td>
+ <td>origin of the resulting <a href='SkImage_Reference#Image'>image</a>. One of: <a href='undocumented#kBottomLeft_GrSurfaceOrigin'>kBottomLeft_GrSurfaceOrigin</a>,</td>
</tr>
</table>
@@ -906,13 +906,13 @@
### Parameters
<table> <tr> <td><a name='SkImage_MakeFromYUVATexturesCopy_imageColorSpace'><code><strong>imageColorSpace</strong></code></a></td>
- <td>range of colors of the resulting <a href='SkImage_Reference#Image'>image</a>; <a href='SkImage_Reference#Image'>may</a> <a href='SkImage_Reference#Image'>be</a> <a href='SkImage_Reference#Image'>nullptr</a></td>
+ <td>range of colors of the resulting <a href='SkImage_Reference#Image'>image</a>; may be nullptr</td>
</tr>
</table>
### Return Value
-created <a href='SkImage_Reference#SkImage'>SkImage</a>, <a href='SkImage_Reference#SkImage'>or</a> <a href='SkImage_Reference#SkImage'>nullptr</a>
+created <a href='SkImage_Reference#SkImage'>SkImage</a>, or nullptr
### See Also
@@ -923,14 +923,14 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-static <a href='undocumented#sk_sp'>sk_sp</a>&<a href='undocumented#sk_sp'>lt</a>;<a href='SkImage_Reference#SkImage'>SkImage</a>&<a href='SkImage_Reference#SkImage'>gt</a>; <a href='#SkImage_MakeFromYUVATextures'>MakeFromYUVATextures</a>(<a href='undocumented#GrContext'>GrContext</a>* <a href='undocumented#GrContext'>context</a>, <a href='SkImageInfo_Reference#SkYUVColorSpace'>SkYUVColorSpace</a> <a href='SkImageInfo_Reference#SkYUVColorSpace'>yuvColorSpace</a>,
- <a href='SkImageInfo_Reference#SkYUVColorSpace'>const</a> <a href='undocumented#GrBackendTexture'>GrBackendTexture</a> <a href='undocumented#GrBackendTexture'>yuvaTextures</a>[],
- <a href='undocumented#GrBackendTexture'>const</a> <a href='undocumented#SkYUVAIndex'>SkYUVAIndex</a> <a href='undocumented#SkYUVAIndex'>yuvaIndices</a>[4], <a href='undocumented#SkISize'>SkISize</a> <a href='undocumented#SkISize'>imageSize</a>,
- <a href='undocumented#GrSurfaceOrigin'>GrSurfaceOrigin</a> <a href='undocumented#GrSurfaceOrigin'>imageOrigin</a>,
- <a href='undocumented#sk_sp'>sk_sp</a>&<a href='undocumented#sk_sp'>lt</a>;<a href='undocumented#SkColorSpace'>SkColorSpace</a>&<a href='undocumented#SkColorSpace'>gt</a>; <a href='undocumented#SkColorSpace'>imageColorSpace</a> = <a href='undocumented#SkColorSpace'>nullptr</a>) ;
+static <a href='undocumented#sk_sp'>sk_sp</a><<a href='SkImage_Reference#SkImage'>SkImage</a>> <a href='#SkImage_MakeFromYUVATextures'>MakeFromYUVATextures</a>(<a href='undocumented#GrContext'>GrContext</a>* context, <a href='SkImageInfo_Reference#SkYUVColorSpace'>SkYUVColorSpace</a> yuvColorSpace,
+ const <a href='undocumented#GrBackendTexture'>GrBackendTexture</a> yuvaTextures[],
+ const <a href='undocumented#SkYUVAIndex'>SkYUVAIndex</a> yuvaIndices[4], <a href='undocumented#SkISize'>SkISize</a> imageSize,
+ <a href='undocumented#GrSurfaceOrigin'>GrSurfaceOrigin</a> imageOrigin,
+ <a href='undocumented#sk_sp'>sk_sp</a><<a href='undocumented#SkColorSpace'>SkColorSpace</a>> imageColorSpace = nullptr) ;
</pre>
-Creates an <a href='SkImage_Reference#SkImage'>SkImage</a> <a href='SkImage_Reference#SkImage'>by</a> <a href='SkImage_Reference#SkImage'>storing</a> <a href='SkImage_Reference#SkImage'>the</a> <a href='SkImage_Reference#SkImage'>specified</a> <a href='SkImage_Reference#SkImage'>YUVA</a> <a href='SkImage_Reference#SkImage'>planes</a> <a href='SkImage_Reference#SkImage'>into</a> <a href='SkImage_Reference#SkImage'>an</a> <a href='SkImage_Reference#Image'>image</a>, <a href='SkImage_Reference#Image'>to</a> <a href='SkImage_Reference#Image'>be</a> <a href='SkImage_Reference#Image'>rendered</a>
+Creates an <a href='SkImage_Reference#SkImage'>SkImage</a> by storing the specified YUVA planes into an <a href='SkImage_Reference#Image'>image</a>, to be rendered
via multitexturing.
### Parameters
@@ -958,19 +958,19 @@
### Parameters
<table> <tr> <td><a name='SkImage_MakeFromYUVATextures_yuvaIndices'><code><strong>yuvaIndices</strong></code></a></td>
- <td>array indicating which <a href='undocumented#Texture'>texture</a> <a href='undocumented#Texture'>in</a> <a href='#SkImage_MakeFromYUVATextures_yuvaTextures'>yuvaTextures</a>, <a href='#SkImage_MakeFromYUVATextures_yuvaTextures'>and</a> <a href='#SkImage_MakeFromYUVATextures_yuvaTextures'>channel</a></td>
+ <td>array indicating which <a href='undocumented#Texture'>texture</a> in <a href='#SkImage_MakeFromYUVATextures_yuvaTextures'>yuvaTextures</a>, and channel</td>
</tr>
</table>
-in that <a href='undocumented#Texture'>texture</a>, <a href='undocumented#Texture'>maps</a> <a href='undocumented#Texture'>to</a> <a href='undocumented#Texture'>each</a> <a href='undocumented#Texture'>component</a> <a href='undocumented#Texture'>of</a> <a href='undocumented#Texture'>YUVA</a>.
+in that <a href='undocumented#Texture'>texture</a>, maps to each component of YUVA.
### Parameters
<table> <tr> <td><a name='SkImage_MakeFromYUVATextures_imageSize'><code><strong>imageSize</strong></code></a></td>
- <td><a href='undocumented#Size'>size</a> <a href='undocumented#Size'>of</a> <a href='undocumented#Size'>the</a> <a href='undocumented#Size'>resulting</a> <a href='SkImage_Reference#Image'>image</a></td>
+ <td><a href='undocumented#Size'>size</a> of the resulting <a href='SkImage_Reference#Image'>image</a></td>
</tr>
<tr> <td><a name='SkImage_MakeFromYUVATextures_imageOrigin'><code><strong>imageOrigin</strong></code></a></td>
- <td>origin of the resulting <a href='SkImage_Reference#Image'>image</a>. <a href='SkImage_Reference#Image'>One</a> <a href='SkImage_Reference#Image'>of</a>: <a href='undocumented#kBottomLeft_GrSurfaceOrigin'>kBottomLeft_GrSurfaceOrigin</a>,</td>
+ <td>origin of the resulting <a href='SkImage_Reference#Image'>image</a>. One of: <a href='undocumented#kBottomLeft_GrSurfaceOrigin'>kBottomLeft_GrSurfaceOrigin</a>,</td>
</tr>
</table>
@@ -979,13 +979,13 @@
### Parameters
<table> <tr> <td><a name='SkImage_MakeFromYUVATextures_imageColorSpace'><code><strong>imageColorSpace</strong></code></a></td>
- <td>range of colors of the resulting <a href='SkImage_Reference#Image'>image</a>; <a href='SkImage_Reference#Image'>may</a> <a href='SkImage_Reference#Image'>be</a> <a href='SkImage_Reference#Image'>nullptr</a></td>
+ <td>range of colors of the resulting <a href='SkImage_Reference#Image'>image</a>; may be nullptr</td>
</tr>
</table>
### Return Value
-created <a href='SkImage_Reference#SkImage'>SkImage</a>, <a href='SkImage_Reference#SkImage'>or</a> <a href='SkImage_Reference#SkImage'>nullptr</a>
+created <a href='SkImage_Reference#SkImage'>SkImage</a>, or nullptr
### See Also
@@ -996,16 +996,16 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-static <a href='undocumented#sk_sp'>sk_sp</a>&<a href='undocumented#sk_sp'>lt</a>;<a href='SkImage_Reference#SkImage'>SkImage</a>&<a href='SkImage_Reference#SkImage'>gt</a>; <a href='#SkImage_MakeFromYUVATexturesCopyWithExternalBackend'>MakeFromYUVATexturesCopyWithExternalBackend</a>(
- <a href='undocumented#GrContext'>GrContext</a>* <a href='undocumented#GrContext'>context</a>,
- <a href='SkImageInfo_Reference#SkYUVColorSpace'>SkYUVColorSpace</a> <a href='SkImageInfo_Reference#SkYUVColorSpace'>yuvColorSpace</a>, <a href='SkImageInfo_Reference#SkYUVColorSpace'>const</a> <a href='undocumented#GrBackendTexture'>GrBackendTexture</a> <a href='undocumented#GrBackendTexture'>yuvaTextures</a>[],
- <a href='undocumented#GrBackendTexture'>const</a> <a href='undocumented#SkYUVAIndex'>SkYUVAIndex</a> <a href='undocumented#SkYUVAIndex'>yuvaIndices</a>[4], <a href='undocumented#SkISize'>SkISize</a> <a href='undocumented#SkISize'>imageSize</a>,
- <a href='undocumented#GrSurfaceOrigin'>GrSurfaceOrigin</a> <a href='undocumented#GrSurfaceOrigin'>imageOrigin</a>, <a href='undocumented#GrSurfaceOrigin'>const</a> <a href='undocumented#GrBackendTexture'>GrBackendTexture</a>& <a href='undocumented#GrBackendTexture'>backendTexture</a>,
- <a href='undocumented#sk_sp'>sk_sp</a>&<a href='undocumented#sk_sp'>lt</a>;<a href='undocumented#SkColorSpace'>SkColorSpace</a>&<a href='undocumented#SkColorSpace'>gt</a>; <a href='undocumented#SkColorSpace'>imageColorSpace</a> = <a href='undocumented#SkColorSpace'>nullptr</a>)
+static <a href='undocumented#sk_sp'>sk_sp</a><<a href='SkImage_Reference#SkImage'>SkImage</a>> <a href='#SkImage_MakeFromYUVATexturesCopyWithExternalBackend'>MakeFromYUVATexturesCopyWithExternalBackend</a>(
+ <a href='undocumented#GrContext'>GrContext</a>* context,
+ <a href='SkImageInfo_Reference#SkYUVColorSpace'>SkYUVColorSpace</a> yuvColorSpace, const <a href='undocumented#GrBackendTexture'>GrBackendTexture</a> yuvaTextures[],
+ const <a href='undocumented#SkYUVAIndex'>SkYUVAIndex</a> yuvaIndices[4], <a href='undocumented#SkISize'>SkISize</a> imageSize,
+ <a href='undocumented#GrSurfaceOrigin'>GrSurfaceOrigin</a> imageOrigin, const <a href='undocumented#GrBackendTexture'>GrBackendTexture</a>& backendTexture,
+ <a href='undocumented#sk_sp'>sk_sp</a><<a href='undocumented#SkColorSpace'>SkColorSpace</a>> imageColorSpace = nullptr)
</pre>
-Creates an <a href='SkImage_Reference#SkImage'>SkImage</a> <a href='SkImage_Reference#SkImage'>by</a> <a href='SkImage_Reference#SkImage'>flattening</a> <a href='SkImage_Reference#SkImage'>the</a> <a href='SkImage_Reference#SkImage'>specified</a> <a href='SkImage_Reference#SkImage'>YUVA</a> <a href='SkImage_Reference#SkImage'>planes</a> <a href='SkImage_Reference#SkImage'>into</a> <a href='SkImage_Reference#SkImage'>a</a> <a href='SkImage_Reference#SkImage'>single</a>, <a href='SkImage_Reference#SkImage'>interleaved</a> <a href='SkImage_Reference#SkImage'>RGBA</a>
-<a href='SkImage_Reference#Image'>image</a>. '<a href='#SkImage_MakeFromYUVATexturesCopyWithExternalBackend_backendTexture'>backendTexture</a>' <a href='#SkImage_MakeFromYUVATexturesCopyWithExternalBackend_backendTexture'>is</a> <a href='#SkImage_MakeFromYUVATexturesCopyWithExternalBackend_backendTexture'>used</a> <a href='#SkImage_MakeFromYUVATexturesCopyWithExternalBackend_backendTexture'>to</a> <a href='#SkImage_MakeFromYUVATexturesCopyWithExternalBackend_backendTexture'>store</a> <a href='#SkImage_MakeFromYUVATexturesCopyWithExternalBackend_backendTexture'>the</a> <a href='#SkImage_MakeFromYUVATexturesCopyWithExternalBackend_backendTexture'>result</a> <a href='#SkImage_MakeFromYUVATexturesCopyWithExternalBackend_backendTexture'>of</a> <a href='#SkImage_MakeFromYUVATexturesCopyWithExternalBackend_backendTexture'>the</a> <a href='#SkImage_MakeFromYUVATexturesCopyWithExternalBackend_backendTexture'>flattening</a>.
+Creates an <a href='SkImage_Reference#SkImage'>SkImage</a> by flattening the specified YUVA planes into a single, interleaved RGBA
+<a href='SkImage_Reference#Image'>image</a>. '<a href='#SkImage_MakeFromYUVATexturesCopyWithExternalBackend_backendTexture'>backendTexture</a>' is used to store the result of the flattening.
### Parameters
@@ -1032,19 +1032,19 @@
### Parameters
<table> <tr> <td><a name='SkImage_MakeFromYUVATexturesCopyWithExternalBackend_yuvaIndices'><code><strong>yuvaIndices</strong></code></a></td>
- <td>array indicating which <a href='undocumented#Texture'>texture</a> <a href='undocumented#Texture'>in</a> <a href='#SkImage_MakeFromYUVATexturesCopyWithExternalBackend_yuvaTextures'>yuvaTextures</a>, <a href='#SkImage_MakeFromYUVATexturesCopyWithExternalBackend_yuvaTextures'>and</a> <a href='#SkImage_MakeFromYUVATexturesCopyWithExternalBackend_yuvaTextures'>channel</a></td>
+ <td>array indicating which <a href='undocumented#Texture'>texture</a> in <a href='#SkImage_MakeFromYUVATexturesCopyWithExternalBackend_yuvaTextures'>yuvaTextures</a>, and channel</td>
</tr>
</table>
-in that <a href='undocumented#Texture'>texture</a>, <a href='undocumented#Texture'>maps</a> <a href='undocumented#Texture'>to</a> <a href='undocumented#Texture'>each</a> <a href='undocumented#Texture'>component</a> <a href='undocumented#Texture'>of</a> <a href='undocumented#Texture'>YUVA</a>.
+in that <a href='undocumented#Texture'>texture</a>, maps to each component of YUVA.
### Parameters
<table> <tr> <td><a name='SkImage_MakeFromYUVATexturesCopyWithExternalBackend_imageSize'><code><strong>imageSize</strong></code></a></td>
- <td><a href='undocumented#Size'>size</a> <a href='undocumented#Size'>of</a> <a href='undocumented#Size'>the</a> <a href='undocumented#Size'>resulting</a> <a href='SkImage_Reference#Image'>image</a></td>
+ <td><a href='undocumented#Size'>size</a> of the resulting <a href='SkImage_Reference#Image'>image</a></td>
</tr>
<tr> <td><a name='SkImage_MakeFromYUVATexturesCopyWithExternalBackend_imageOrigin'><code><strong>imageOrigin</strong></code></a></td>
- <td>origin of the resulting <a href='SkImage_Reference#Image'>image</a>. <a href='SkImage_Reference#Image'>One</a> <a href='SkImage_Reference#Image'>of</a>: <a href='undocumented#kBottomLeft_GrSurfaceOrigin'>kBottomLeft_GrSurfaceOrigin</a>,</td>
+ <td>origin of the resulting <a href='SkImage_Reference#Image'>image</a>. One of: <a href='undocumented#kBottomLeft_GrSurfaceOrigin'>kBottomLeft_GrSurfaceOrigin</a>,</td>
</tr>
</table>
@@ -1056,13 +1056,13 @@
<td>the resource that stores the final pixels</td>
</tr>
<tr> <td><a name='SkImage_MakeFromYUVATexturesCopyWithExternalBackend_imageColorSpace'><code><strong>imageColorSpace</strong></code></a></td>
- <td>range of colors of the resulting <a href='SkImage_Reference#Image'>image</a>; <a href='SkImage_Reference#Image'>may</a> <a href='SkImage_Reference#Image'>be</a> <a href='SkImage_Reference#Image'>nullptr</a></td>
+ <td>range of colors of the resulting <a href='SkImage_Reference#Image'>image</a>; may be nullptr</td>
</tr>
</table>
### Return Value
-created <a href='SkImage_Reference#SkImage'>SkImage</a>, <a href='SkImage_Reference#SkImage'>or</a> <a href='SkImage_Reference#SkImage'>nullptr</a>
+created <a href='SkImage_Reference#SkImage'>SkImage</a>, or nullptr
### See Also
@@ -1073,15 +1073,15 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-static <a href='undocumented#sk_sp'>sk_sp</a>&<a href='undocumented#sk_sp'>lt</a>;<a href='SkImage_Reference#SkImage'>SkImage</a>&<a href='SkImage_Reference#SkImage'>gt</a>; <a href='#SkImage_MakeFromYUVTexturesCopy'>MakeFromYUVTexturesCopy</a>(<a href='undocumented#GrContext'>GrContext</a>* <a href='undocumented#GrContext'>context</a>, <a href='SkImageInfo_Reference#SkYUVColorSpace'>SkYUVColorSpace</a> <a href='SkImageInfo_Reference#SkYUVColorSpace'>yuvColorSpace</a>,
- <a href='SkImageInfo_Reference#SkYUVColorSpace'>const</a> <a href='undocumented#GrBackendTexture'>GrBackendTexture</a> <a href='undocumented#GrBackendTexture'>yuvTextures</a>[3],
- <a href='undocumented#GrSurfaceOrigin'>GrSurfaceOrigin</a> <a href='undocumented#GrSurfaceOrigin'>imageOrigin</a>,
- <a href='undocumented#sk_sp'>sk_sp</a>&<a href='undocumented#sk_sp'>lt</a>;<a href='undocumented#SkColorSpace'>SkColorSpace</a>&<a href='undocumented#SkColorSpace'>gt</a>; <a href='undocumented#SkColorSpace'>imageColorSpace</a> = <a href='undocumented#SkColorSpace'>nullptr</a>)
+static <a href='undocumented#sk_sp'>sk_sp</a><<a href='SkImage_Reference#SkImage'>SkImage</a>> <a href='#SkImage_MakeFromYUVTexturesCopy'>MakeFromYUVTexturesCopy</a>(<a href='undocumented#GrContext'>GrContext</a>* context, <a href='SkImageInfo_Reference#SkYUVColorSpace'>SkYUVColorSpace</a> yuvColorSpace,
+ const <a href='undocumented#GrBackendTexture'>GrBackendTexture</a> yuvTextures[3],
+ <a href='undocumented#GrSurfaceOrigin'>GrSurfaceOrigin</a> imageOrigin,
+ <a href='undocumented#sk_sp'>sk_sp</a><<a href='undocumented#SkColorSpace'>SkColorSpace</a>> imageColorSpace = nullptr)
</pre>
-Creates <a href='SkImage_Reference#SkImage'>SkImage</a> <a href='SkImage_Reference#SkImage'>from</a> <a href='SkImage_Reference#SkImage'>copy</a> <a href='SkImage_Reference#SkImage'>of</a> <a href='#SkImage_MakeFromYUVTexturesCopy_yuvTextures'>yuvTextures</a>, <a href='#SkImage_MakeFromYUVTexturesCopy_yuvTextures'>an</a> <a href='#SkImage_MakeFromYUVTexturesCopy_yuvTextures'>array</a> <a href='#SkImage_MakeFromYUVTexturesCopy_yuvTextures'>of</a> <a href='#SkImage_MakeFromYUVTexturesCopy_yuvTextures'>textures</a> <a href='#SkImage_MakeFromYUVTexturesCopy_yuvTextures'>on</a> <a href='#SkImage_MakeFromYUVTexturesCopy_yuvTextures'>GPU</a>.
-<a href='#SkImage_MakeFromYUVTexturesCopy_yuvTextures'>yuvTextures</a> <a href='#SkImage_MakeFromYUVTexturesCopy_yuvTextures'>contain</a> <a href='#SkImage_MakeFromYUVTexturesCopy_yuvTextures'>pixels</a> <a href='#SkImage_MakeFromYUVTexturesCopy_yuvTextures'>for</a> <a href='undocumented#YUV_Planes'>YUV planes</a> <a href='#SkImage_MakeFromYUVTexturesCopy_yuvTextures'>of</a> <a href='SkImage_Reference#SkImage'>SkImage</a>. <a href='SkImage_Reference#SkImage'>Returned</a> <a href='SkImage_Reference#SkImage'>SkImage</a> <a href='SkImage_Reference#SkImage'>has</a> <a href='SkImage_Reference#SkImage'>the</a> <a href='SkImage_Reference#SkImage'>dimensions</a>
-<a href='#SkImage_MakeFromYUVTexturesCopy_yuvTextures'>yuvTextures</a>[0]. <a href='#SkImage_MakeFromYUVTexturesCopy_yuvColorSpace'>yuvColorSpace</a> <a href='#SkImage_MakeFromYUVTexturesCopy_yuvColorSpace'>describes</a> <a href='#SkImage_MakeFromYUVTexturesCopy_yuvColorSpace'>how</a> <a href='#SkImage_MakeFromYUVTexturesCopy_yuvColorSpace'>YUV</a> <a href='#SkImage_MakeFromYUVTexturesCopy_yuvColorSpace'>colors</a> <a href='#SkImage_MakeFromYUVTexturesCopy_yuvColorSpace'>convert</a> <a href='#SkImage_MakeFromYUVTexturesCopy_yuvColorSpace'>to</a> <a href='#SkImage_MakeFromYUVTexturesCopy_yuvColorSpace'>RGB</a> <a href='#SkImage_MakeFromYUVTexturesCopy_yuvColorSpace'>colors</a>.
+Creates <a href='SkImage_Reference#SkImage'>SkImage</a> from copy of <a href='#SkImage_MakeFromYUVTexturesCopy_yuvTextures'>yuvTextures</a>, an array of textures on GPU.
+<a href='#SkImage_MakeFromYUVTexturesCopy_yuvTextures'>yuvTextures</a> contain pixels for <a href='undocumented#YUV_Planes'>YUV planes</a> of <a href='SkImage_Reference#SkImage'>SkImage</a>. Returned <a href='SkImage_Reference#SkImage'>SkImage</a> has the dimensions
+<a href='#SkImage_MakeFromYUVTexturesCopy_yuvTextures'>yuvTextures</a>[0]. <a href='#SkImage_MakeFromYUVTexturesCopy_yuvColorSpace'>yuvColorSpace</a> describes how YUV colors convert to RGB colors.
### Parameters
@@ -1110,7 +1110,7 @@
### Return Value
-created <a href='SkImage_Reference#SkImage'>SkImage</a>, <a href='SkImage_Reference#SkImage'>or</a> <a href='SkImage_Reference#SkImage'>nullptr</a>
+created <a href='SkImage_Reference#SkImage'>SkImage</a>, or nullptr
### See Also
@@ -1121,16 +1121,16 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-static <a href='undocumented#sk_sp'>sk_sp</a>&<a href='undocumented#sk_sp'>lt</a>;<a href='SkImage_Reference#SkImage'>SkImage</a>&<a href='SkImage_Reference#SkImage'>gt</a>; <a href='#SkImage_MakeFromYUVTexturesCopyWithExternalBackend'>MakeFromYUVTexturesCopyWithExternalBackend</a>(
- <a href='undocumented#GrContext'>GrContext</a>* <a href='undocumented#GrContext'>context</a>,
- <a href='SkImageInfo_Reference#SkYUVColorSpace'>SkYUVColorSpace</a> <a href='SkImageInfo_Reference#SkYUVColorSpace'>yuvColorSpace</a>, <a href='SkImageInfo_Reference#SkYUVColorSpace'>const</a> <a href='undocumented#GrBackendTexture'>GrBackendTexture</a> <a href='undocumented#GrBackendTexture'>yuvTextures</a>[3],
- <a href='undocumented#GrSurfaceOrigin'>GrSurfaceOrigin</a> <a href='undocumented#GrSurfaceOrigin'>imageOrigin</a>, <a href='undocumented#GrSurfaceOrigin'>const</a> <a href='undocumented#GrBackendTexture'>GrBackendTexture</a>& <a href='undocumented#GrBackendTexture'>backendTexture</a>,
- <a href='undocumented#sk_sp'>sk_sp</a>&<a href='undocumented#sk_sp'>lt</a>;<a href='undocumented#SkColorSpace'>SkColorSpace</a>&<a href='undocumented#SkColorSpace'>gt</a>; <a href='undocumented#SkColorSpace'>imageColorSpace</a> = <a href='undocumented#SkColorSpace'>nullptr</a>) ;
+static <a href='undocumented#sk_sp'>sk_sp</a><<a href='SkImage_Reference#SkImage'>SkImage</a>> <a href='#SkImage_MakeFromYUVTexturesCopyWithExternalBackend'>MakeFromYUVTexturesCopyWithExternalBackend</a>(
+ <a href='undocumented#GrContext'>GrContext</a>* context,
+ <a href='SkImageInfo_Reference#SkYUVColorSpace'>SkYUVColorSpace</a> yuvColorSpace, const <a href='undocumented#GrBackendTexture'>GrBackendTexture</a> yuvTextures[3],
+ <a href='undocumented#GrSurfaceOrigin'>GrSurfaceOrigin</a> imageOrigin, const <a href='undocumented#GrBackendTexture'>GrBackendTexture</a>& backendTexture,
+ <a href='undocumented#sk_sp'>sk_sp</a><<a href='undocumented#SkColorSpace'>SkColorSpace</a>> imageColorSpace = nullptr) ;
</pre>
-Creates <a href='SkImage_Reference#SkImage'>SkImage</a> <a href='SkImage_Reference#SkImage'>from</a> <a href='SkImage_Reference#SkImage'>copy</a> <a href='SkImage_Reference#SkImage'>of</a> <a href='#SkImage_MakeFromYUVTexturesCopyWithExternalBackend_yuvTextures'>yuvTextures</a>, <a href='#SkImage_MakeFromYUVTexturesCopyWithExternalBackend_yuvTextures'>an</a> <a href='#SkImage_MakeFromYUVTexturesCopyWithExternalBackend_yuvTextures'>array</a> <a href='#SkImage_MakeFromYUVTexturesCopyWithExternalBackend_yuvTextures'>of</a> <a href='#SkImage_MakeFromYUVTexturesCopyWithExternalBackend_yuvTextures'>textures</a> <a href='#SkImage_MakeFromYUVTexturesCopyWithExternalBackend_yuvTextures'>on</a> <a href='#SkImage_MakeFromYUVTexturesCopyWithExternalBackend_yuvTextures'>GPU</a>.
-<a href='#SkImage_MakeFromYUVTexturesCopyWithExternalBackend_yuvTextures'>yuvTextures</a> <a href='#SkImage_MakeFromYUVTexturesCopyWithExternalBackend_yuvTextures'>contain</a> <a href='#SkImage_MakeFromYUVTexturesCopyWithExternalBackend_yuvTextures'>pixels</a> <a href='#SkImage_MakeFromYUVTexturesCopyWithExternalBackend_yuvTextures'>for</a> <a href='undocumented#YUV_Planes'>YUV planes</a> <a href='#SkImage_MakeFromYUVTexturesCopyWithExternalBackend_yuvTextures'>of</a> <a href='SkImage_Reference#SkImage'>SkImage</a>. <a href='SkImage_Reference#SkImage'>Returned</a> <a href='SkImage_Reference#SkImage'>SkImage</a> <a href='SkImage_Reference#SkImage'>has</a> <a href='SkImage_Reference#SkImage'>the</a> <a href='SkImage_Reference#SkImage'>dimensions</a>
-<a href='#SkImage_MakeFromYUVTexturesCopyWithExternalBackend_yuvTextures'>yuvTextures</a>[0] <a href='#SkImage_MakeFromYUVTexturesCopyWithExternalBackend_yuvTextures'>and</a> <a href='#SkImage_MakeFromYUVTexturesCopyWithExternalBackend_yuvTextures'>stores</a> <a href='#SkImage_MakeFromYUVTexturesCopyWithExternalBackend_yuvTextures'>pixels</a> <a href='#SkImage_MakeFromYUVTexturesCopyWithExternalBackend_yuvTextures'>in</a> <a href='#SkImage_MakeFromYUVTexturesCopyWithExternalBackend_backendTexture'>backendTexture</a>. <a href='#SkImage_MakeFromYUVTexturesCopyWithExternalBackend_yuvColorSpace'>yuvColorSpace</a> <a href='#SkImage_MakeFromYUVTexturesCopyWithExternalBackend_yuvColorSpace'>describes</a> <a href='#SkImage_MakeFromYUVTexturesCopyWithExternalBackend_yuvColorSpace'>how</a> <a href='#SkImage_MakeFromYUVTexturesCopyWithExternalBackend_yuvColorSpace'>YUV</a> <a href='#SkImage_MakeFromYUVTexturesCopyWithExternalBackend_yuvColorSpace'>colors</a>
+Creates <a href='SkImage_Reference#SkImage'>SkImage</a> from copy of <a href='#SkImage_MakeFromYUVTexturesCopyWithExternalBackend_yuvTextures'>yuvTextures</a>, an array of textures on GPU.
+<a href='#SkImage_MakeFromYUVTexturesCopyWithExternalBackend_yuvTextures'>yuvTextures</a> contain pixels for <a href='undocumented#YUV_Planes'>YUV planes</a> of <a href='SkImage_Reference#SkImage'>SkImage</a>. Returned <a href='SkImage_Reference#SkImage'>SkImage</a> has the dimensions
+<a href='#SkImage_MakeFromYUVTexturesCopyWithExternalBackend_yuvTextures'>yuvTextures</a>[0] and stores pixels in <a href='#SkImage_MakeFromYUVTexturesCopyWithExternalBackend_backendTexture'>backendTexture</a>. <a href='#SkImage_MakeFromYUVTexturesCopyWithExternalBackend_yuvColorSpace'>yuvColorSpace</a> describes how YUV colors
convert to RGB colors.
### Parameters
@@ -1163,7 +1163,7 @@
### Return Value
-created <a href='SkImage_Reference#SkImage'>SkImage</a>, <a href='SkImage_Reference#SkImage'>or</a> <a href='SkImage_Reference#SkImage'>nullptr</a>
+created <a href='SkImage_Reference#SkImage'>SkImage</a>, or nullptr
### See Also
@@ -1174,18 +1174,18 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-static <a href='undocumented#sk_sp'>sk_sp</a>&<a href='undocumented#sk_sp'>lt</a>;<a href='SkImage_Reference#SkImage'>SkImage</a>&<a href='SkImage_Reference#SkImage'>gt</a>; <a href='#SkImage_MakeFromNV12TexturesCopy'>MakeFromNV12TexturesCopy</a>(<a href='undocumented#GrContext'>GrContext</a>* <a href='undocumented#GrContext'>context</a>, <a href='SkImageInfo_Reference#SkYUVColorSpace'>SkYUVColorSpace</a> <a href='SkImageInfo_Reference#SkYUVColorSpace'>yuvColorSpace</a>,
- <a href='SkImageInfo_Reference#SkYUVColorSpace'>const</a> <a href='undocumented#GrBackendTexture'>GrBackendTexture</a> <a href='undocumented#GrBackendTexture'>nv12Textures</a>[2],
- <a href='undocumented#GrSurfaceOrigin'>GrSurfaceOrigin</a> <a href='undocumented#GrSurfaceOrigin'>imageOrigin</a>,
- <a href='undocumented#sk_sp'>sk_sp</a>&<a href='undocumented#sk_sp'>lt</a>;<a href='undocumented#SkColorSpace'>SkColorSpace</a>&<a href='undocumented#SkColorSpace'>gt</a>; <a href='undocumented#SkColorSpace'>imageColorSpace</a> = <a href='undocumented#SkColorSpace'>nullptr</a>)
+static <a href='undocumented#sk_sp'>sk_sp</a><<a href='SkImage_Reference#SkImage'>SkImage</a>> <a href='#SkImage_MakeFromNV12TexturesCopy'>MakeFromNV12TexturesCopy</a>(<a href='undocumented#GrContext'>GrContext</a>* context, <a href='SkImageInfo_Reference#SkYUVColorSpace'>SkYUVColorSpace</a> yuvColorSpace,
+ const <a href='undocumented#GrBackendTexture'>GrBackendTexture</a> nv12Textures[2],
+ <a href='undocumented#GrSurfaceOrigin'>GrSurfaceOrigin</a> imageOrigin,
+ <a href='undocumented#sk_sp'>sk_sp</a><<a href='undocumented#SkColorSpace'>SkColorSpace</a>> imageColorSpace = nullptr)
</pre>
-Creates <a href='SkImage_Reference#SkImage'>SkImage</a> <a href='SkImage_Reference#SkImage'>from</a> <a href='SkImage_Reference#SkImage'>copy</a> <a href='SkImage_Reference#SkImage'>of</a> <a href='#SkImage_MakeFromNV12TexturesCopy_nv12Textures'>nv12Textures</a>, <a href='#SkImage_MakeFromNV12TexturesCopy_nv12Textures'>an</a> <a href='#SkImage_MakeFromNV12TexturesCopy_nv12Textures'>array</a> <a href='#SkImage_MakeFromNV12TexturesCopy_nv12Textures'>of</a> <a href='#SkImage_MakeFromNV12TexturesCopy_nv12Textures'>textures</a> <a href='#SkImage_MakeFromNV12TexturesCopy_nv12Textures'>on</a> <a href='#SkImage_MakeFromNV12TexturesCopy_nv12Textures'>GPU</a>.
-<a href='#SkImage_MakeFromNV12TexturesCopy_nv12Textures'>nv12Textures</a>[0] <a href='#SkImage_MakeFromNV12TexturesCopy_nv12Textures'>contains</a> <a href='#SkImage_MakeFromNV12TexturesCopy_nv12Textures'>pixels</a> <a href='#SkImage_MakeFromNV12TexturesCopy_nv12Textures'>for</a> <a href='undocumented#YUV_Component_Y'>YUV component y</a> <a href='#SkImage_MakeFromNV12TexturesCopy_nv12Textures'>plane</a>.
-<a href='#SkImage_MakeFromNV12TexturesCopy_nv12Textures'>nv12Textures</a>[1] <a href='#SkImage_MakeFromNV12TexturesCopy_nv12Textures'>contains</a> <a href='#SkImage_MakeFromNV12TexturesCopy_nv12Textures'>pixels</a> <a href='#SkImage_MakeFromNV12TexturesCopy_nv12Textures'>for</a> <a href='undocumented#YUV_Component_U'>YUV component u</a> <a href='#SkImage_MakeFromNV12TexturesCopy_nv12Textures'>plane</a>,
+Creates <a href='SkImage_Reference#SkImage'>SkImage</a> from copy of <a href='#SkImage_MakeFromNV12TexturesCopy_nv12Textures'>nv12Textures</a>, an array of textures on GPU.
+<a href='#SkImage_MakeFromNV12TexturesCopy_nv12Textures'>nv12Textures</a>[0] contains pixels for <a href='undocumented#YUV_Component_Y'>YUV component y</a> plane.
+<a href='#SkImage_MakeFromNV12TexturesCopy_nv12Textures'>nv12Textures</a>[1] contains pixels for <a href='undocumented#YUV_Component_U'>YUV component u</a> plane,
followed by pixels for <a href='undocumented#YUV_Component_V'>YUV component v</a> plane.
-Returned <a href='SkImage_Reference#SkImage'>SkImage</a> <a href='SkImage_Reference#SkImage'>has</a> <a href='SkImage_Reference#SkImage'>the</a> <a href='SkImage_Reference#SkImage'>dimensions</a> <a href='#SkImage_MakeFromNV12TexturesCopy_nv12Textures'>nv12Textures</a>[2].
-<a href='#SkImage_MakeFromNV12TexturesCopy_yuvColorSpace'>yuvColorSpace</a> <a href='#SkImage_MakeFromNV12TexturesCopy_yuvColorSpace'>describes</a> <a href='#SkImage_MakeFromNV12TexturesCopy_yuvColorSpace'>how</a> <a href='#SkImage_MakeFromNV12TexturesCopy_yuvColorSpace'>YUV</a> <a href='#SkImage_MakeFromNV12TexturesCopy_yuvColorSpace'>colors</a> <a href='#SkImage_MakeFromNV12TexturesCopy_yuvColorSpace'>convert</a> <a href='#SkImage_MakeFromNV12TexturesCopy_yuvColorSpace'>to</a> <a href='#SkImage_MakeFromNV12TexturesCopy_yuvColorSpace'>RGB</a> <a href='#SkImage_MakeFromNV12TexturesCopy_yuvColorSpace'>colors</a>.
+Returned <a href='SkImage_Reference#SkImage'>SkImage</a> has the dimensions <a href='#SkImage_MakeFromNV12TexturesCopy_nv12Textures'>nv12Textures</a>[2].
+<a href='#SkImage_MakeFromNV12TexturesCopy_yuvColorSpace'>yuvColorSpace</a> describes how YUV colors convert to RGB colors.
### Parameters
@@ -1214,7 +1214,7 @@
### Return Value
-created <a href='SkImage_Reference#SkImage'>SkImage</a>, <a href='SkImage_Reference#SkImage'>or</a> <a href='SkImage_Reference#SkImage'>nullptr</a>
+created <a href='SkImage_Reference#SkImage'>SkImage</a>, or nullptr
### See Also
@@ -1225,19 +1225,19 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-static <a href='undocumented#sk_sp'>sk_sp</a>&<a href='undocumented#sk_sp'>lt</a>;<a href='SkImage_Reference#SkImage'>SkImage</a>&<a href='SkImage_Reference#SkImage'>gt</a>; <a href='#SkImage_MakeFromNV12TexturesCopyWithExternalBackend'>MakeFromNV12TexturesCopyWithExternalBackend</a>(
- <a href='undocumented#GrContext'>GrContext</a>* <a href='undocumented#GrContext'>context</a>,
- <a href='SkImageInfo_Reference#SkYUVColorSpace'>SkYUVColorSpace</a> <a href='SkImageInfo_Reference#SkYUVColorSpace'>yuvColorSpace</a>, <a href='SkImageInfo_Reference#SkYUVColorSpace'>const</a> <a href='undocumented#GrBackendTexture'>GrBackendTexture</a> <a href='undocumented#GrBackendTexture'>nv12Textures</a>[2],
- <a href='undocumented#GrSurfaceOrigin'>GrSurfaceOrigin</a> <a href='undocumented#GrSurfaceOrigin'>imageOrigin</a>, <a href='undocumented#GrSurfaceOrigin'>const</a> <a href='undocumented#GrBackendTexture'>GrBackendTexture</a>& <a href='undocumented#GrBackendTexture'>backendTexture</a>,
- <a href='undocumented#sk_sp'>sk_sp</a>&<a href='undocumented#sk_sp'>lt</a>;<a href='undocumented#SkColorSpace'>SkColorSpace</a>&<a href='undocumented#SkColorSpace'>gt</a>; <a href='undocumented#SkColorSpace'>imageColorSpace</a> = <a href='undocumented#SkColorSpace'>nullptr</a>) ;
+static <a href='undocumented#sk_sp'>sk_sp</a><<a href='SkImage_Reference#SkImage'>SkImage</a>> <a href='#SkImage_MakeFromNV12TexturesCopyWithExternalBackend'>MakeFromNV12TexturesCopyWithExternalBackend</a>(
+ <a href='undocumented#GrContext'>GrContext</a>* context,
+ <a href='SkImageInfo_Reference#SkYUVColorSpace'>SkYUVColorSpace</a> yuvColorSpace, const <a href='undocumented#GrBackendTexture'>GrBackendTexture</a> nv12Textures[2],
+ <a href='undocumented#GrSurfaceOrigin'>GrSurfaceOrigin</a> imageOrigin, const <a href='undocumented#GrBackendTexture'>GrBackendTexture</a>& backendTexture,
+ <a href='undocumented#sk_sp'>sk_sp</a><<a href='undocumented#SkColorSpace'>SkColorSpace</a>> imageColorSpace = nullptr) ;
</pre>
-Creates <a href='SkImage_Reference#SkImage'>SkImage</a> <a href='SkImage_Reference#SkImage'>from</a> <a href='SkImage_Reference#SkImage'>copy</a> <a href='SkImage_Reference#SkImage'>of</a> <a href='#SkImage_MakeFromNV12TexturesCopyWithExternalBackend_nv12Textures'>nv12Textures</a>, <a href='#SkImage_MakeFromNV12TexturesCopyWithExternalBackend_nv12Textures'>an</a> <a href='#SkImage_MakeFromNV12TexturesCopyWithExternalBackend_nv12Textures'>array</a> <a href='#SkImage_MakeFromNV12TexturesCopyWithExternalBackend_nv12Textures'>of</a> <a href='#SkImage_MakeFromNV12TexturesCopyWithExternalBackend_nv12Textures'>textures</a> <a href='#SkImage_MakeFromNV12TexturesCopyWithExternalBackend_nv12Textures'>on</a> <a href='#SkImage_MakeFromNV12TexturesCopyWithExternalBackend_nv12Textures'>GPU</a>.
-<a href='#SkImage_MakeFromNV12TexturesCopyWithExternalBackend_nv12Textures'>nv12Textures</a>[0] <a href='#SkImage_MakeFromNV12TexturesCopyWithExternalBackend_nv12Textures'>contains</a> <a href='#SkImage_MakeFromNV12TexturesCopyWithExternalBackend_nv12Textures'>pixels</a> <a href='#SkImage_MakeFromNV12TexturesCopyWithExternalBackend_nv12Textures'>for</a> <a href='undocumented#YUV_Component_Y'>YUV component y</a> <a href='#SkImage_MakeFromNV12TexturesCopyWithExternalBackend_nv12Textures'>plane</a>.
-<a href='#SkImage_MakeFromNV12TexturesCopyWithExternalBackend_nv12Textures'>nv12Textures</a>[1] <a href='#SkImage_MakeFromNV12TexturesCopyWithExternalBackend_nv12Textures'>contains</a> <a href='#SkImage_MakeFromNV12TexturesCopyWithExternalBackend_nv12Textures'>pixels</a> <a href='#SkImage_MakeFromNV12TexturesCopyWithExternalBackend_nv12Textures'>for</a> <a href='undocumented#YUV_Component_U'>YUV component u</a> <a href='#SkImage_MakeFromNV12TexturesCopyWithExternalBackend_nv12Textures'>plane</a>,
+Creates <a href='SkImage_Reference#SkImage'>SkImage</a> from copy of <a href='#SkImage_MakeFromNV12TexturesCopyWithExternalBackend_nv12Textures'>nv12Textures</a>, an array of textures on GPU.
+<a href='#SkImage_MakeFromNV12TexturesCopyWithExternalBackend_nv12Textures'>nv12Textures</a>[0] contains pixels for <a href='undocumented#YUV_Component_Y'>YUV component y</a> plane.
+<a href='#SkImage_MakeFromNV12TexturesCopyWithExternalBackend_nv12Textures'>nv12Textures</a>[1] contains pixels for <a href='undocumented#YUV_Component_U'>YUV component u</a> plane,
followed by pixels for <a href='undocumented#YUV_Component_V'>YUV component v</a> plane.
-Returned <a href='SkImage_Reference#SkImage'>SkImage</a> <a href='SkImage_Reference#SkImage'>has</a> <a href='SkImage_Reference#SkImage'>the</a> <a href='SkImage_Reference#SkImage'>dimensions</a> <a href='#SkImage_MakeFromNV12TexturesCopyWithExternalBackend_nv12Textures'>nv12Textures</a>[2] <a href='#SkImage_MakeFromNV12TexturesCopyWithExternalBackend_nv12Textures'>and</a> <a href='#SkImage_MakeFromNV12TexturesCopyWithExternalBackend_nv12Textures'>stores</a> <a href='#SkImage_MakeFromNV12TexturesCopyWithExternalBackend_nv12Textures'>pixels</a> <a href='#SkImage_MakeFromNV12TexturesCopyWithExternalBackend_nv12Textures'>in</a> <a href='#SkImage_MakeFromNV12TexturesCopyWithExternalBackend_backendTexture'>backendTexture</a>.
-<a href='#SkImage_MakeFromNV12TexturesCopyWithExternalBackend_yuvColorSpace'>yuvColorSpace</a> <a href='#SkImage_MakeFromNV12TexturesCopyWithExternalBackend_yuvColorSpace'>describes</a> <a href='#SkImage_MakeFromNV12TexturesCopyWithExternalBackend_yuvColorSpace'>how</a> <a href='#SkImage_MakeFromNV12TexturesCopyWithExternalBackend_yuvColorSpace'>YUV</a> <a href='#SkImage_MakeFromNV12TexturesCopyWithExternalBackend_yuvColorSpace'>colors</a> <a href='#SkImage_MakeFromNV12TexturesCopyWithExternalBackend_yuvColorSpace'>convert</a> <a href='#SkImage_MakeFromNV12TexturesCopyWithExternalBackend_yuvColorSpace'>to</a> <a href='#SkImage_MakeFromNV12TexturesCopyWithExternalBackend_yuvColorSpace'>RGB</a> <a href='#SkImage_MakeFromNV12TexturesCopyWithExternalBackend_yuvColorSpace'>colors</a>.
+Returned <a href='SkImage_Reference#SkImage'>SkImage</a> has the dimensions <a href='#SkImage_MakeFromNV12TexturesCopyWithExternalBackend_nv12Textures'>nv12Textures</a>[2] and stores pixels in <a href='#SkImage_MakeFromNV12TexturesCopyWithExternalBackend_backendTexture'>backendTexture</a>.
+<a href='#SkImage_MakeFromNV12TexturesCopyWithExternalBackend_yuvColorSpace'>yuvColorSpace</a> describes how YUV colors convert to RGB colors.
### Parameters
@@ -1269,7 +1269,7 @@
### Return Value
-created <a href='SkImage_Reference#SkImage'>SkImage</a>, <a href='SkImage_Reference#SkImage'>or</a> <a href='SkImage_Reference#SkImage'>nullptr</a>
+created <a href='SkImage_Reference#SkImage'>SkImage</a>, or nullptr
### See Also
@@ -1303,7 +1303,7 @@
<td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a name='SkImage_BitDepth_kF16'><code>SkImage::BitDepth::kF16</code></a></td>
<td style='text-align: center; border: 2px solid #dddddd; padding: 8px; '>1</td>
<td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>
-Use 16 bits per ARGB component using half-precision floating <a href='SkPoint_Reference#Point'>point</a> <a href='SkPoint_Reference#Point'>format</a>.
+Use 16 bits per ARGB component using half-precision floating <a href='SkPoint_Reference#Point'>point</a> format.
</td>
</tr>
</table>
@@ -1317,30 +1317,30 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-static <a href='undocumented#sk_sp'>sk_sp</a>&<a href='undocumented#sk_sp'>lt</a>;<a href='SkImage_Reference#SkImage'>SkImage</a>&<a href='SkImage_Reference#SkImage'>gt</a>; <a href='#SkImage_MakeFromPicture'>MakeFromPicture</a>(<a href='undocumented#sk_sp'>sk_sp</a>&<a href='undocumented#sk_sp'>lt</a>;<a href='SkPicture_Reference#SkPicture'>SkPicture</a>&<a href='SkPicture_Reference#SkPicture'>gt</a>; <a href='SkPicture_Reference#Picture'>picture</a>, <a href='SkPicture_Reference#Picture'>const</a> <a href='undocumented#SkISize'>SkISize</a>& <a href='undocumented#SkISize'>dimensions</a>,
- <a href='undocumented#SkISize'>const</a> <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a>* <a href='SkMatrix_Reference#Matrix'>matrix</a>, <a href='SkMatrix_Reference#Matrix'>const</a> <a href='SkPaint_Reference#SkPaint'>SkPaint</a>* <a href='SkPaint_Reference#Paint'>paint</a>,
- <a href='#SkImage_BitDepth'>BitDepth</a> <a href='#SkImage_BitDepth'>bitDepth</a>, <a href='undocumented#sk_sp'>sk_sp</a>&<a href='undocumented#sk_sp'>lt</a>;<a href='undocumented#SkColorSpace'>SkColorSpace</a>&<a href='undocumented#SkColorSpace'>gt</a>; <a href='#SkImage_colorSpace'>colorSpace</a>)
+static <a href='undocumented#sk_sp'>sk_sp</a><<a href='SkImage_Reference#SkImage'>SkImage</a>> <a href='#SkImage_MakeFromPicture'>MakeFromPicture</a>(<a href='undocumented#sk_sp'>sk_sp</a><<a href='SkPicture_Reference#SkPicture'>SkPicture</a>> <a href='SkPicture_Reference#Picture'>picture</a>, const <a href='undocumented#SkISize'>SkISize</a>& dimensions,
+ const <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a>* <a href='SkMatrix_Reference#Matrix'>matrix</a>, const <a href='SkPaint_Reference#SkPaint'>SkPaint</a>* <a href='SkPaint_Reference#Paint'>paint</a>,
+ <a href='#SkImage_BitDepth'>BitDepth</a> bitDepth, <a href='undocumented#sk_sp'>sk_sp</a><<a href='undocumented#SkColorSpace'>SkColorSpace</a>> <a href='#SkImage_colorSpace'>colorSpace</a>)
</pre>
-Creates <a href='SkImage_Reference#SkImage'>SkImage</a> <a href='SkImage_Reference#SkImage'>from</a> <a href='#SkImage_MakeFromPicture_picture'>picture</a>. <a href='#SkImage_MakeFromPicture_picture'>Returned</a> <a href='SkImage_Reference#SkImage'>SkImage</a> <a href='SkImage_Reference#SkImage'>width</a> <a href='SkImage_Reference#SkImage'>and</a> <a href='SkImage_Reference#SkImage'>height</a> <a href='SkImage_Reference#SkImage'>are</a> <a href='SkImage_Reference#SkImage'>set</a> <a href='SkImage_Reference#SkImage'>by</a> <a href='#SkImage_MakeFromPicture_dimensions'>dimensions</a>.
-<a href='SkImage_Reference#SkImage'>SkImage</a> <a href='SkImage_Reference#SkImage'>draws</a> <a href='#SkImage_MakeFromPicture_picture'>picture</a> <a href='#SkImage_MakeFromPicture_picture'>with</a> <a href='#SkImage_MakeFromPicture_matrix'>matrix</a> <a href='#SkImage_MakeFromPicture_matrix'>and</a> <a href='#SkImage_MakeFromPicture_paint'>paint</a>, <a href='#SkImage_MakeFromPicture_paint'>set</a> <a href='#SkImage_MakeFromPicture_paint'>to</a> <a href='#SkImage_MakeFromPicture_bitDepth'>bitDepth</a> <a href='#SkImage_MakeFromPicture_bitDepth'>and</a> <a href='#SkImage_MakeFromPicture_colorSpace'>colorSpace</a>.
+Creates <a href='SkImage_Reference#SkImage'>SkImage</a> from <a href='#SkImage_MakeFromPicture_picture'>picture</a>. Returned <a href='SkImage_Reference#SkImage'>SkImage</a> width and height are set by <a href='#SkImage_MakeFromPicture_dimensions'>dimensions</a>.
+<a href='SkImage_Reference#SkImage'>SkImage</a> draws <a href='#SkImage_MakeFromPicture_picture'>picture</a> with <a href='#SkImage_MakeFromPicture_matrix'>matrix</a> and <a href='#SkImage_MakeFromPicture_paint'>paint</a>, set to <a href='#SkImage_MakeFromPicture_bitDepth'>bitDepth</a> and <a href='#SkImage_MakeFromPicture_colorSpace'>colorSpace</a>.
-If <a href='#SkImage_MakeFromPicture_matrix'>matrix</a> <a href='#SkImage_MakeFromPicture_matrix'>is</a> <a href='#SkImage_MakeFromPicture_matrix'>nullptr</a>, <a href='#SkImage_MakeFromPicture_matrix'>draws</a> <a href='#SkImage_MakeFromPicture_matrix'>with</a> <a href='#SkImage_MakeFromPicture_matrix'>identity</a> <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a>. <a href='SkMatrix_Reference#SkMatrix'>If</a> <a href='#SkImage_MakeFromPicture_paint'>paint</a> <a href='#SkImage_MakeFromPicture_paint'>is</a> <a href='#SkImage_MakeFromPicture_paint'>nullptr</a>, <a href='#SkImage_MakeFromPicture_paint'>draws</a>
-with default <a href='SkPaint_Reference#SkPaint'>SkPaint</a>. <a href='#SkImage_MakeFromPicture_colorSpace'>colorSpace</a> <a href='#SkImage_MakeFromPicture_colorSpace'>may</a> <a href='#SkImage_MakeFromPicture_colorSpace'>be</a> <a href='#SkImage_MakeFromPicture_colorSpace'>nullptr</a>.
+If <a href='#SkImage_MakeFromPicture_matrix'>matrix</a> is nullptr, draws with identity <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a>. If <a href='#SkImage_MakeFromPicture_paint'>paint</a> is nullptr, draws
+with default <a href='SkPaint_Reference#SkPaint'>SkPaint</a>. <a href='#SkImage_MakeFromPicture_colorSpace'>colorSpace</a> may be nullptr.
### Parameters
<table> <tr> <td><a name='SkImage_MakeFromPicture_picture'><code><strong>picture</strong></code></a></td>
- <td><a href='SkStream_Reference#Stream'>stream</a> <a href='SkStream_Reference#Stream'>of</a> <a href='SkStream_Reference#Stream'>drawing</a> <a href='SkStream_Reference#Stream'>commands</a></td>
+ <td><a href='SkStream_Reference#Stream'>stream</a> of drawing commands</td>
</tr>
<tr> <td><a name='SkImage_MakeFromPicture_dimensions'><code><strong>dimensions</strong></code></a></td>
<td>width and height</td>
</tr>
<tr> <td><a name='SkImage_MakeFromPicture_matrix'><code><strong>matrix</strong></code></a></td>
- <td><a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> <a href='SkMatrix_Reference#SkMatrix'>to</a> <a href='SkMatrix_Reference#SkMatrix'>rotate</a>, <a href='SkMatrix_Reference#SkMatrix'>scale</a>, <a href='SkMatrix_Reference#SkMatrix'>translate</a>, <a href='SkMatrix_Reference#SkMatrix'>and</a> <a href='SkMatrix_Reference#SkMatrix'>so</a> <a href='SkMatrix_Reference#SkMatrix'>on</a>; <a href='SkMatrix_Reference#SkMatrix'>may</a> <a href='SkMatrix_Reference#SkMatrix'>be</a> <a href='SkMatrix_Reference#SkMatrix'>nullptr</a></td>
+ <td><a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> to rotate, scale, translate, and so on; may be nullptr</td>
</tr>
<tr> <td><a name='SkImage_MakeFromPicture_paint'><code><strong>paint</strong></code></a></td>
- <td><a href='SkPaint_Reference#SkPaint'>SkPaint</a> <a href='SkPaint_Reference#SkPaint'>to</a> <a href='SkPaint_Reference#SkPaint'>apply</a> <a href='SkPaint_Reference#SkPaint'>transparency</a>, <a href='SkPaint_Reference#SkPaint'>filtering</a>, <a href='SkPaint_Reference#SkPaint'>and</a> <a href='SkPaint_Reference#SkPaint'>so</a> <a href='SkPaint_Reference#SkPaint'>on</a>; <a href='SkPaint_Reference#SkPaint'>may</a> <a href='SkPaint_Reference#SkPaint'>be</a> <a href='SkPaint_Reference#SkPaint'>nullptr</a></td>
+ <td><a href='SkPaint_Reference#SkPaint'>SkPaint</a> to apply transparency, filtering, and so on; may be nullptr</td>
</tr>
<tr> <td><a name='SkImage_MakeFromPicture_bitDepth'><code><strong>bitDepth</strong></code></a></td>
<td>8-bit integer or 16-bit float: per component</td>
@@ -1352,7 +1352,7 @@
### Return Value
-created <a href='SkImage_Reference#SkImage'>SkImage</a>, <a href='SkImage_Reference#SkImage'>or</a> <a href='SkImage_Reference#SkImage'>nullptr</a>
+created <a href='SkImage_Reference#SkImage'>SkImage</a>, or nullptr
### Example
@@ -1367,16 +1367,16 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-static <a href='undocumented#sk_sp'>sk_sp</a>&<a href='undocumented#sk_sp'>lt</a>;<a href='SkImage_Reference#SkImage'>SkImage</a>&<a href='SkImage_Reference#SkImage'>gt</a>; <a href='#SkImage_MakeFromAHardwareBuffer'>MakeFromAHardwareBuffer</a>(
- <a href='#SkImage_MakeFromAHardwareBuffer'>AHardwareBuffer</a>* <a href='#SkImage_MakeFromAHardwareBuffer'>hardwareBuffer</a>,
+static <a href='undocumented#sk_sp'>sk_sp</a><<a href='SkImage_Reference#SkImage'>SkImage</a>> <a href='#SkImage_MakeFromAHardwareBuffer'>MakeFromAHardwareBuffer</a>(
+ AHardwareBuffer* hardwareBuffer,
<a href='SkImageInfo_Reference#SkAlphaType'>SkAlphaType</a> <a href='#SkImage_alphaType'>alphaType</a> = <a href='SkImageInfo_Reference#kPremul_SkAlphaType'>kPremul_SkAlphaType</a>,
- <a href='undocumented#sk_sp'>sk_sp</a>&<a href='undocumented#sk_sp'>lt</a>;<a href='undocumented#SkColorSpace'>SkColorSpace</a>&<a href='undocumented#SkColorSpace'>gt</a>; <a href='#SkImage_colorSpace'>colorSpace</a> = <a href='#SkImage_colorSpace'>nullptr</a>,
- <a href='undocumented#GrSurfaceOrigin'>GrSurfaceOrigin</a> <a href='undocumented#GrSurfaceOrigin'>surfaceOrigin</a> = <a href='undocumented#kTopLeft_GrSurfaceOrigin'>kTopLeft_GrSurfaceOrigin</a>)
+ <a href='undocumented#sk_sp'>sk_sp</a><<a href='undocumented#SkColorSpace'>SkColorSpace</a>> <a href='#SkImage_colorSpace'>colorSpace</a> = nullptr,
+ <a href='undocumented#GrSurfaceOrigin'>GrSurfaceOrigin</a> surfaceOrigin = <a href='undocumented#kTopLeft_GrSurfaceOrigin'>kTopLeft_GrSurfaceOrigin</a>)
</pre>
(See Skia bug 7447)
-Creates <a href='SkImage_Reference#SkImage'>SkImage</a> <a href='SkImage_Reference#SkImage'>from</a> <a href='SkImage_Reference#SkImage'>Android</a> <a href='SkImage_Reference#SkImage'>hardware</a> <a href='SkImage_Reference#SkImage'>buffer</a>.
-Returned <a href='SkImage_Reference#SkImage'>SkImage</a> <a href='SkImage_Reference#SkImage'>takes</a> <a href='SkImage_Reference#SkImage'>a</a> <a href='SkImage_Reference#SkImage'>reference</a> <a href='SkImage_Reference#SkImage'>on</a> <a href='SkImage_Reference#SkImage'>the</a> <a href='SkImage_Reference#SkImage'>buffer</a>.
+Creates <a href='SkImage_Reference#SkImage'>SkImage</a> from Android hardware buffer.
+Returned <a href='SkImage_Reference#SkImage'>SkImage</a> takes a reference on the buffer.
Only available on Android, when __ANDROID_API__ is defined to be 26 or greater.
@@ -1405,7 +1405,7 @@
### Return Value
-created <a href='SkImage_Reference#SkImage'>SkImage</a>, <a href='SkImage_Reference#SkImage'>or</a> <a href='SkImage_Reference#SkImage'>nullptr</a>
+created <a href='SkImage_Reference#SkImage'>SkImage</a>, or nullptr
### See Also
@@ -1418,14 +1418,14 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-int <a href='#SkImage_width'>width()</a> <a href='#SkImage_width'>const</a>
+int <a href='#SkImage_width'>width()</a> const
</pre>
-Returns <a href='undocumented#Pixel'>pixel</a> <a href='undocumented#Pixel'>count</a> <a href='undocumented#Pixel'>in</a> <a href='undocumented#Pixel'>each</a> <a href='undocumented#Pixel'>row</a>.
+Returns <a href='undocumented#Pixel'>pixel</a> count in each row.
### Return Value
-<a href='undocumented#Pixel'>pixel</a> <a href='undocumented#Pixel'>width</a> <a href='undocumented#Pixel'>in</a> <a href='SkImage_Reference#SkImage'>SkImage</a>
+<a href='undocumented#Pixel'>pixel</a> width in <a href='SkImage_Reference#SkImage'>SkImage</a>
### Example
@@ -1440,14 +1440,14 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-int <a href='#SkImage_height'>height()</a> <a href='#SkImage_height'>const</a>
+int <a href='#SkImage_height'>height()</a> const
</pre>
-Returns <a href='undocumented#Pixel'>pixel</a> <a href='undocumented#Pixel'>row</a> <a href='undocumented#Pixel'>count</a>.
+Returns <a href='undocumented#Pixel'>pixel</a> row count.
### Return Value
-<a href='undocumented#Pixel'>pixel</a> <a href='undocumented#Pixel'>height</a> <a href='undocumented#Pixel'>in</a> <a href='SkImage_Reference#SkImage'>SkImage</a>
+<a href='undocumented#Pixel'>pixel</a> height in <a href='SkImage_Reference#SkImage'>SkImage</a>
### Example
@@ -1462,14 +1462,14 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-<a href='undocumented#SkISize'>SkISize</a> <a href='#SkImage_dimensions'>dimensions()</a> <a href='#SkImage_dimensions'>const</a>
+<a href='undocumented#SkISize'>SkISize</a> <a href='#SkImage_dimensions'>dimensions()</a> const
</pre>
Returns <a href='undocumented#SkISize'>SkISize</a> { <a href='#SkImage_width'>width()</a>, <a href='#SkImage_height'>height()</a> }.
### Return Value
-integral <a href='undocumented#Size'>size</a> <a href='undocumented#Size'>of</a> <a href='#SkImage_width'>width()</a> <a href='#SkImage_width'>and</a> <a href='#SkImage_height'>height()</a>
+integral <a href='undocumented#Size'>size</a> of <a href='#SkImage_width'>width()</a> and <a href='#SkImage_height'>height()</a>
### Example
@@ -1492,14 +1492,14 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-<a href='SkIRect_Reference#SkIRect'>SkIRect</a> <a href='#SkImage_bounds'>bounds()</a> <a href='#SkImage_bounds'>const</a>
+<a href='SkIRect_Reference#SkIRect'>SkIRect</a> <a href='#SkImage_bounds'>bounds()</a> const
</pre>
Returns <a href='SkIRect_Reference#SkIRect'>SkIRect</a> { 0, 0, <a href='#SkImage_width'>width()</a>, <a href='#SkImage_height'>height()</a> }.
### Return Value
-integral rectangle from origin to <a href='#SkImage_width'>width()</a> <a href='#SkImage_width'>and</a> <a href='#SkImage_height'>height()</a>
+integral rectangle from origin to <a href='#SkImage_width'>width()</a> and <a href='#SkImage_height'>height()</a>
### Example
@@ -1514,11 +1514,11 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-uint32_t <a href='#SkImage_uniqueID'>uniqueID</a>() <a href='#SkImage_uniqueID'>const</a>
+uint32_t <a href='#SkImage_uniqueID'>uniqueID</a>() const
</pre>
-Returns value unique to <a href='SkImage_Reference#Image'>image</a>. <a href='SkImage_Reference#SkImage'>SkImage</a> <a href='SkImage_Reference#SkImage'>contents</a> <a href='SkImage_Reference#SkImage'>cannot</a> <a href='SkImage_Reference#SkImage'>change</a> <a href='SkImage_Reference#SkImage'>after</a> <a href='SkImage_Reference#SkImage'>SkImage</a> <a href='SkImage_Reference#SkImage'>is</a>
-created. Any operation to create a new <a href='SkImage_Reference#SkImage'>SkImage</a> <a href='SkImage_Reference#SkImage'>will</a> <a href='SkImage_Reference#SkImage'>receive</a> <a href='SkImage_Reference#SkImage'>generate</a> <a href='SkImage_Reference#SkImage'>a</a> <a href='SkImage_Reference#SkImage'>new</a>
+Returns value unique to <a href='SkImage_Reference#Image'>image</a>. <a href='SkImage_Reference#SkImage'>SkImage</a> contents cannot change after <a href='SkImage_Reference#SkImage'>SkImage</a> is
+created. Any operation to create a new <a href='SkImage_Reference#SkImage'>SkImage</a> will receive generate a new
unique number.
### Return Value
@@ -1538,19 +1538,19 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-<a href='SkImageInfo_Reference#SkAlphaType'>SkAlphaType</a> <a href='#SkImage_alphaType'>alphaType</a>() <a href='#SkImage_alphaType'>const</a>
+<a href='SkImageInfo_Reference#SkAlphaType'>SkAlphaType</a> <a href='#SkImage_alphaType'>alphaType</a>() const
</pre>
-Returns <a href='#Image_Info_Alpha_Type'>Alpha_Type</a>, <a href='#Image_Info_Alpha_Type'>one</a> <a href='#Image_Info_Alpha_Type'>of</a>: <a href='SkImageInfo_Reference#kUnknown_SkAlphaType'>kUnknown_SkAlphaType</a>, <a href='SkImageInfo_Reference#kOpaque_SkAlphaType'>kOpaque_SkAlphaType</a>, <a href='SkImageInfo_Reference#kPremul_SkAlphaType'>kPremul_SkAlphaType</a>,
+Returns <a href='#Image_Info_Alpha_Type'>Alpha_Type</a>, one of: <a href='SkImageInfo_Reference#kUnknown_SkAlphaType'>kUnknown_SkAlphaType</a>, <a href='SkImageInfo_Reference#kOpaque_SkAlphaType'>kOpaque_SkAlphaType</a>, <a href='SkImageInfo_Reference#kPremul_SkAlphaType'>kPremul_SkAlphaType</a>,
<a href='SkImageInfo_Reference#kUnpremul_SkAlphaType'>kUnpremul_SkAlphaType</a>
.
-<a href='#Image_Info_Alpha_Type'>Alpha_Type</a> <a href='#Image_Info_Alpha_Type'>returned</a> <a href='#Image_Info_Alpha_Type'>was</a> <a href='#Image_Info_Alpha_Type'>a</a> <a href='#Image_Info_Alpha_Type'>parameter</a> <a href='#Image_Info_Alpha_Type'>to</a> <a href='#Image_Info_Alpha_Type'>an</a> <a href='SkImage_Reference#Image'>Image</a> <a href='SkImage_Reference#Image'>constructor</a>,
-<a href='SkImage_Reference#Image'>or</a> <a href='SkImage_Reference#Image'>was</a> <a href='SkImage_Reference#Image'>parsed</a> <a href='SkImage_Reference#Image'>from</a> <a href='SkImage_Reference#Image'>encoded</a> <a href='undocumented#Data'>data</a>.
+<a href='#Image_Info_Alpha_Type'>Alpha_Type</a> returned was a parameter to an <a href='SkImage_Reference#Image'>Image</a> constructor,
+or was parsed from encoded <a href='undocumented#Data'>data</a>.
### Return Value
-<a href='#Image_Info_Alpha_Type'>Alpha_Type</a> <a href='#Image_Info_Alpha_Type'>in</a> <a href='SkImage_Reference#Image'>Image</a>
+<a href='#Image_Info_Alpha_Type'>Alpha_Type</a> in <a href='SkImage_Reference#Image'>Image</a>
### Example
@@ -1565,14 +1565,14 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-<a href='SkImageInfo_Reference#SkColorType'>SkColorType</a> <a href='#SkImage_colorType'>colorType</a>() <a href='#SkImage_colorType'>const</a>
+<a href='SkImageInfo_Reference#SkColorType'>SkColorType</a> <a href='#SkImage_colorType'>colorType</a>() const
</pre>
-Returns <a href='SkImageInfo_Reference#SkColorType'>SkColorType</a> <a href='SkImageInfo_Reference#SkColorType'>if</a> <a href='SkImageInfo_Reference#SkColorType'>known</a>; <a href='SkImageInfo_Reference#SkColorType'>otherwise</a>, <a href='SkImageInfo_Reference#SkColorType'>returns</a> <a href='SkImageInfo_Reference#kUnknown_SkColorType'>kUnknown_SkColorType</a>.
+Returns <a href='SkImageInfo_Reference#SkColorType'>SkColorType</a> if known; otherwise, returns <a href='SkImageInfo_Reference#kUnknown_SkColorType'>kUnknown_SkColorType</a>.
### Return Value
-<a href='SkImageInfo_Reference#SkColorType'>SkColorType</a> <a href='SkImageInfo_Reference#SkColorType'>of</a> <a href='SkImage_Reference#SkImage'>SkImage</a>
+<a href='SkImageInfo_Reference#SkColorType'>SkColorType</a> of <a href='SkImage_Reference#SkImage'>SkImage</a>
### Example
@@ -1587,20 +1587,20 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-<a href='undocumented#SkColorSpace'>SkColorSpace</a>* <a href='#SkImage_colorSpace'>colorSpace</a>() <a href='#SkImage_colorSpace'>const</a>
+<a href='undocumented#SkColorSpace'>SkColorSpace</a>* <a href='#SkImage_colorSpace'>colorSpace</a>() const
</pre>
-Returns <a href='undocumented#SkColorSpace'>SkColorSpace</a>, <a href='undocumented#SkColorSpace'>the</a> <a href='undocumented#SkColorSpace'>range</a> <a href='undocumented#SkColorSpace'>of</a> <a href='undocumented#SkColorSpace'>colors</a>, <a href='undocumented#SkColorSpace'>associated</a> <a href='undocumented#SkColorSpace'>with</a> <a href='SkImage_Reference#SkImage'>SkImage</a>. <a href='SkImage_Reference#SkImage'>The</a>
-reference count of <a href='undocumented#SkColorSpace'>SkColorSpace</a> <a href='undocumented#SkColorSpace'>is</a> <a href='undocumented#SkColorSpace'>unchanged</a>. <a href='undocumented#SkColorSpace'>The</a> <a href='undocumented#SkColorSpace'>returned</a> <a href='undocumented#SkColorSpace'>SkColorSpace</a> <a href='undocumented#SkColorSpace'>is</a>
+Returns <a href='undocumented#SkColorSpace'>SkColorSpace</a>, the range of colors, associated with <a href='SkImage_Reference#SkImage'>SkImage</a>. The
+reference count of <a href='undocumented#SkColorSpace'>SkColorSpace</a> is unchanged. The returned <a href='undocumented#SkColorSpace'>SkColorSpace</a> is
immutable.
-<a href='undocumented#SkColorSpace'>SkColorSpace</a> <a href='undocumented#SkColorSpace'>returned</a> <a href='undocumented#SkColorSpace'>was</a> <a href='undocumented#SkColorSpace'>passed</a> <a href='undocumented#SkColorSpace'>to</a> <a href='undocumented#SkColorSpace'>an</a> <a href='SkImage_Reference#SkImage'>SkImage</a> <a href='SkImage_Reference#SkImage'>constructor</a>,
-or was parsed from encoded <a href='undocumented#Data'>data</a>. <a href='undocumented#SkColorSpace'>SkColorSpace</a> <a href='undocumented#SkColorSpace'>returned</a> <a href='undocumented#SkColorSpace'>may</a> <a href='undocumented#SkColorSpace'>be</a> <a href='undocumented#SkColorSpace'>ignored</a> <a href='undocumented#SkColorSpace'>when</a> <a href='SkImage_Reference#SkImage'>SkImage</a>
-is drawn, depending on the capabilities of the <a href='SkSurface_Reference#SkSurface'>SkSurface</a> <a href='SkSurface_Reference#SkSurface'>receiving</a> <a href='SkSurface_Reference#SkSurface'>the</a> <a href='SkSurface_Reference#SkSurface'>drawing</a>.
+<a href='undocumented#SkColorSpace'>SkColorSpace</a> returned was passed to an <a href='SkImage_Reference#SkImage'>SkImage</a> constructor,
+or was parsed from encoded <a href='undocumented#Data'>data</a>. <a href='undocumented#SkColorSpace'>SkColorSpace</a> returned may be ignored when <a href='SkImage_Reference#SkImage'>SkImage</a>
+is drawn, depending on the capabilities of the <a href='SkSurface_Reference#SkSurface'>SkSurface</a> receiving the drawing.
### Return Value
-<a href='undocumented#SkColorSpace'>SkColorSpace</a> <a href='undocumented#SkColorSpace'>in</a> <a href='SkImage_Reference#SkImage'>SkImage</a>, <a href='SkImage_Reference#SkImage'>or</a> <a href='SkImage_Reference#SkImage'>nullptr</a>
+<a href='undocumented#SkColorSpace'>SkColorSpace</a> in <a href='SkImage_Reference#SkImage'>SkImage</a>, or nullptr
### Example
@@ -1615,22 +1615,22 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-<a href='undocumented#sk_sp'>sk_sp</a>&<a href='undocumented#sk_sp'>lt</a>;<a href='undocumented#SkColorSpace'>SkColorSpace</a>&<a href='undocumented#SkColorSpace'>gt</a>; <a href='#SkImage_refColorSpace'>refColorSpace</a>() <a href='#SkImage_refColorSpace'>const</a>
+<a href='undocumented#sk_sp'>sk_sp</a><<a href='undocumented#SkColorSpace'>SkColorSpace</a>> <a href='#SkImage_refColorSpace'>refColorSpace</a>() const
</pre>
-Returns a smart pointer to <a href='undocumented#SkColorSpace'>SkColorSpace</a>, <a href='undocumented#SkColorSpace'>the</a> <a href='undocumented#SkColorSpace'>range</a> <a href='undocumented#SkColorSpace'>of</a> <a href='undocumented#SkColorSpace'>colors</a>, <a href='undocumented#SkColorSpace'>associated</a> <a href='undocumented#SkColorSpace'>with</a>
-<a href='SkImage_Reference#SkImage'>SkImage</a>. <a href='SkImage_Reference#SkImage'>The</a> <a href='SkImage_Reference#SkImage'>smart</a> <a href='SkImage_Reference#SkImage'>pointer</a> <a href='SkImage_Reference#SkImage'>tracks</a> <a href='SkImage_Reference#SkImage'>the</a> <a href='SkImage_Reference#SkImage'>number</a> <a href='SkImage_Reference#SkImage'>of</a> <a href='SkImage_Reference#SkImage'>objects</a> <a href='SkImage_Reference#SkImage'>sharing</a> <a href='SkImage_Reference#SkImage'>this</a>
-<a href='undocumented#SkColorSpace'>SkColorSpace</a> <a href='undocumented#SkColorSpace'>reference</a> <a href='undocumented#SkColorSpace'>so</a> <a href='undocumented#SkColorSpace'>the</a> <a href='undocumented#SkColorSpace'>memory</a> <a href='undocumented#SkColorSpace'>is</a> <a href='undocumented#SkColorSpace'>released</a> <a href='undocumented#SkColorSpace'>when</a> <a href='undocumented#SkColorSpace'>the</a> <a href='undocumented#SkColorSpace'>owners</a> <a href='undocumented#SkColorSpace'>destruct</a>.
+Returns a smart pointer to <a href='undocumented#SkColorSpace'>SkColorSpace</a>, the range of colors, associated with
+<a href='SkImage_Reference#SkImage'>SkImage</a>. The smart pointer tracks the number of objects sharing this
+<a href='undocumented#SkColorSpace'>SkColorSpace</a> reference so the memory is released when the owners destruct.
-The returned <a href='undocumented#SkColorSpace'>SkColorSpace</a> <a href='undocumented#SkColorSpace'>is</a> <a href='undocumented#SkColorSpace'>immutable</a>.
+The returned <a href='undocumented#SkColorSpace'>SkColorSpace</a> is immutable.
-<a href='undocumented#SkColorSpace'>SkColorSpace</a> <a href='undocumented#SkColorSpace'>returned</a> <a href='undocumented#SkColorSpace'>was</a> <a href='undocumented#SkColorSpace'>passed</a> <a href='undocumented#SkColorSpace'>to</a> <a href='undocumented#SkColorSpace'>an</a> <a href='SkImage_Reference#SkImage'>SkImage</a> <a href='SkImage_Reference#SkImage'>constructor</a>,
-or was parsed from encoded <a href='undocumented#Data'>data</a>. <a href='undocumented#SkColorSpace'>SkColorSpace</a> <a href='undocumented#SkColorSpace'>returned</a> <a href='undocumented#SkColorSpace'>may</a> <a href='undocumented#SkColorSpace'>be</a> <a href='undocumented#SkColorSpace'>ignored</a> <a href='undocumented#SkColorSpace'>when</a> <a href='SkImage_Reference#SkImage'>SkImage</a>
-is drawn, depending on the capabilities of the <a href='SkSurface_Reference#SkSurface'>SkSurface</a> <a href='SkSurface_Reference#SkSurface'>receiving</a> <a href='SkSurface_Reference#SkSurface'>the</a> <a href='SkSurface_Reference#SkSurface'>drawing</a>.
+<a href='undocumented#SkColorSpace'>SkColorSpace</a> returned was passed to an <a href='SkImage_Reference#SkImage'>SkImage</a> constructor,
+or was parsed from encoded <a href='undocumented#Data'>data</a>. <a href='undocumented#SkColorSpace'>SkColorSpace</a> returned may be ignored when <a href='SkImage_Reference#SkImage'>SkImage</a>
+is drawn, depending on the capabilities of the <a href='SkSurface_Reference#SkSurface'>SkSurface</a> receiving the drawing.
### Return Value
-<a href='undocumented#SkColorSpace'>SkColorSpace</a> <a href='undocumented#SkColorSpace'>in</a> <a href='SkImage_Reference#SkImage'>SkImage</a>, <a href='SkImage_Reference#SkImage'>or</a> <a href='SkImage_Reference#SkImage'>nullptr</a>, <a href='SkImage_Reference#SkImage'>wrapped</a> <a href='SkImage_Reference#SkImage'>in</a> <a href='SkImage_Reference#SkImage'>a</a> <a href='SkImage_Reference#SkImage'>smart</a> <a href='SkImage_Reference#SkImage'>pointer</a>
+<a href='undocumented#SkColorSpace'>SkColorSpace</a> in <a href='SkImage_Reference#SkImage'>SkImage</a>, or nullptr, wrapped in a smart pointer
### Example
@@ -1645,10 +1645,10 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-bool <a href='#SkImage_isAlphaOnly'>isAlphaOnly</a>() <a href='#SkImage_isAlphaOnly'>const</a>
+bool <a href='#SkImage_isAlphaOnly'>isAlphaOnly</a>() const
</pre>
-Returns true if <a href='SkImage_Reference#SkImage'>SkImage</a> <a href='SkImage_Reference#SkImage'>pixels</a> <a href='SkImage_Reference#SkImage'>represent</a> <a href='SkImage_Reference#SkImage'>transparency</a> <a href='SkImage_Reference#SkImage'>only</a>. <a href='SkImage_Reference#SkImage'>If</a> <a href='SkImage_Reference#SkImage'>true</a>, <a href='SkImage_Reference#SkImage'>each</a> <a href='undocumented#Pixel'>pixel</a>
+Returns true if <a href='SkImage_Reference#SkImage'>SkImage</a> pixels represent transparency only. If true, each <a href='undocumented#Pixel'>pixel</a>
is packed in 8 bits as defined by <a href='SkImageInfo_Reference#kAlpha_8_SkColorType'>kAlpha_8_SkColorType</a>.
### Return Value
@@ -1676,14 +1676,14 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-bool <a href='#SkImage_isOpaque'>isOpaque</a>() <a href='#SkImage_isOpaque'>const</a>
+bool <a href='#SkImage_isOpaque'>isOpaque</a>() const
</pre>
-Returns true if pixels ignore their <a href='SkColor_Reference#Alpha'>alpha</a> <a href='SkColor_Reference#Alpha'>value</a> <a href='SkColor_Reference#Alpha'>and</a> <a href='SkColor_Reference#Alpha'>are</a> <a href='SkColor_Reference#Alpha'>treated</a> <a href='SkColor_Reference#Alpha'>as</a> <a href='SkColor_Reference#Alpha'>fully</a> <a href='SkColor_Reference#Alpha'>opaque</a>.
+Returns true if pixels ignore their <a href='SkColor_Reference#Alpha'>alpha</a> value and are treated as fully opaque.
### Return Value
-true if <a href='SkImageInfo_Reference#SkAlphaType'>SkAlphaType</a> <a href='SkImageInfo_Reference#SkAlphaType'>is</a> <a href='SkImageInfo_Reference#kOpaque_SkAlphaType'>kOpaque_SkAlphaType</a>
+true if <a href='SkImageInfo_Reference#SkAlphaType'>SkAlphaType</a> is <a href='SkImageInfo_Reference#kOpaque_SkAlphaType'>kOpaque_SkAlphaType</a>
### Example
@@ -1707,13 +1707,13 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-<a href='undocumented#sk_sp'>sk_sp</a>&<a href='undocumented#sk_sp'>lt</a>;<a href='undocumented#SkShader'>SkShader</a>&<a href='undocumented#SkShader'>gt</a>; <a href='#SkImage_makeShader'>makeShader</a>(<a href='undocumented#SkShader'>SkShader</a>::<a href='#SkShader_TileMode'>TileMode</a> <a href='#SkShader_TileMode'>tileMode1</a>, <a href='undocumented#SkShader'>SkShader</a>::<a href='#SkShader_TileMode'>TileMode</a> <a href='#SkShader_TileMode'>tileMode2</a>,
- <a href='#SkShader_TileMode'>const</a> <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a>* <a href='SkMatrix_Reference#SkMatrix'>localMatrix</a> = <a href='SkMatrix_Reference#SkMatrix'>nullptr</a>) <a href='SkMatrix_Reference#SkMatrix'>const</a>
+<a href='undocumented#sk_sp'>sk_sp</a><<a href='undocumented#SkShader'>SkShader</a>> <a href='#SkImage_makeShader'>makeShader</a>(<a href='undocumented#SkShader'>SkShader</a>::<a href='#SkShader_TileMode'>TileMode</a> tileMode1, <a href='undocumented#SkShader'>SkShader</a>::<a href='#SkShader_TileMode'>TileMode</a> tileMode2,
+ const <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a>* localMatrix = nullptr) const
</pre>
-Creates <a href='undocumented#SkShader'>SkShader</a> <a href='undocumented#SkShader'>from</a> <a href='SkImage_Reference#SkImage'>SkImage</a>. <a href='undocumented#SkShader'>SkShader</a> <a href='undocumented#SkShader'>dimensions</a> <a href='undocumented#SkShader'>are</a> <a href='undocumented#SkShader'>taken</a> <a href='undocumented#SkShader'>from</a> <a href='SkImage_Reference#SkImage'>SkImage</a>. <a href='undocumented#SkShader'>SkShader</a> <a href='undocumented#SkShader'>uses</a>
-<a href='undocumented#SkShader'>SkShader</a>::<a href='#SkShader_TileMode'>TileMode</a> <a href='#SkShader_TileMode'>rules</a> <a href='#SkShader_TileMode'>to</a> <a href='#SkShader_TileMode'>fill</a> <a href='#SkShader_TileMode'>drawn</a> <a href='#SkShader_TileMode'>area</a> <a href='#SkShader_TileMode'>outside</a> <a href='SkImage_Reference#SkImage'>SkImage</a>. <a href='#SkImage_makeShader_localMatrix'>localMatrix</a> <a href='#SkImage_makeShader_localMatrix'>permits</a>
-transforming <a href='SkImage_Reference#SkImage'>SkImage</a> <a href='SkImage_Reference#SkImage'>before</a> <a href='SkCanvas_Reference#SkCanvas'>SkCanvas</a> <a href='SkMatrix_Reference#Matrix'>matrix</a> <a href='SkMatrix_Reference#Matrix'>is</a> <a href='SkMatrix_Reference#Matrix'>applied</a>.
+Creates <a href='undocumented#SkShader'>SkShader</a> from <a href='SkImage_Reference#SkImage'>SkImage</a>. <a href='undocumented#SkShader'>SkShader</a> dimensions are taken from <a href='SkImage_Reference#SkImage'>SkImage</a>. <a href='undocumented#SkShader'>SkShader</a> uses
+<a href='undocumented#SkShader'>SkShader</a>::<a href='#SkShader_TileMode'>TileMode</a> rules to fill drawn area outside <a href='SkImage_Reference#SkImage'>SkImage</a>. <a href='#SkImage_makeShader_localMatrix'>localMatrix</a> permits
+transforming <a href='SkImage_Reference#SkImage'>SkImage</a> before <a href='SkCanvas_Reference#SkCanvas'>SkCanvas</a> <a href='SkMatrix_Reference#Matrix'>matrix</a> is applied.
### Parameters
@@ -1736,13 +1736,13 @@
### Parameters
<table> <tr> <td><a name='SkImage_makeShader_localMatrix'><code><strong>localMatrix</strong></code></a></td>
- <td><a href='SkImage_Reference#SkImage'>SkImage</a> <a href='SkImage_Reference#SkImage'>transformation</a>, <a href='SkImage_Reference#SkImage'>or</a> <a href='SkImage_Reference#SkImage'>nullptr</a></td>
+ <td><a href='SkImage_Reference#SkImage'>SkImage</a> transformation, or nullptr</td>
</tr>
</table>
### Return Value
-<a href='undocumented#SkShader'>SkShader</a> <a href='undocumented#SkShader'>containing</a> <a href='SkImage_Reference#SkImage'>SkImage</a>
+<a href='undocumented#SkShader'>SkShader</a> containing <a href='SkImage_Reference#SkImage'>SkImage</a>
### Example
@@ -1757,23 +1757,23 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-<a href='undocumented#sk_sp'>sk_sp</a>&<a href='undocumented#sk_sp'>lt</a>;<a href='undocumented#SkShader'>SkShader</a>&<a href='undocumented#SkShader'>gt</a>; <a href='#SkImage_makeShader'>makeShader</a>(<a href='#SkImage_makeShader'>const</a> <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a>* <a href='SkMatrix_Reference#SkMatrix'>localMatrix</a> = <a href='SkMatrix_Reference#SkMatrix'>nullptr</a>) <a href='SkMatrix_Reference#SkMatrix'>const</a>
+<a href='undocumented#sk_sp'>sk_sp</a><<a href='undocumented#SkShader'>SkShader</a>> <a href='#SkImage_makeShader'>makeShader</a>(const <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a>* localMatrix = nullptr) const
</pre>
-Creates <a href='undocumented#SkShader'>SkShader</a> <a href='undocumented#SkShader'>from</a> <a href='SkImage_Reference#SkImage'>SkImage</a>. <a href='undocumented#SkShader'>SkShader</a> <a href='undocumented#SkShader'>dimensions</a> <a href='undocumented#SkShader'>are</a> <a href='undocumented#SkShader'>taken</a> <a href='undocumented#SkShader'>from</a> <a href='SkImage_Reference#SkImage'>SkImage</a>. <a href='undocumented#SkShader'>SkShader</a> <a href='undocumented#SkShader'>uses</a>
-<a href='undocumented#SkShader'>SkShader</a>::<a href='#SkShader_kClamp_TileMode'>kClamp_TileMode</a> <a href='#SkShader_kClamp_TileMode'>to</a> <a href='#SkShader_kClamp_TileMode'>fill</a> <a href='#SkShader_kClamp_TileMode'>drawn</a> <a href='#SkShader_kClamp_TileMode'>area</a> <a href='#SkShader_kClamp_TileMode'>outside</a> <a href='SkImage_Reference#SkImage'>SkImage</a>. <a href='#SkImage_makeShader_2_localMatrix'>localMatrix</a> <a href='#SkImage_makeShader_2_localMatrix'>permits</a>
-transforming <a href='SkImage_Reference#SkImage'>SkImage</a> <a href='SkImage_Reference#SkImage'>before</a> <a href='SkCanvas_Reference#SkCanvas'>SkCanvas</a> <a href='SkMatrix_Reference#Matrix'>matrix</a> <a href='SkMatrix_Reference#Matrix'>is</a> <a href='SkMatrix_Reference#Matrix'>applied</a>.
+Creates <a href='undocumented#SkShader'>SkShader</a> from <a href='SkImage_Reference#SkImage'>SkImage</a>. <a href='undocumented#SkShader'>SkShader</a> dimensions are taken from <a href='SkImage_Reference#SkImage'>SkImage</a>. <a href='undocumented#SkShader'>SkShader</a> uses
+<a href='undocumented#SkShader'>SkShader</a>::<a href='#SkShader_kClamp_TileMode'>kClamp_TileMode</a> to fill drawn area outside <a href='SkImage_Reference#SkImage'>SkImage</a>. <a href='#SkImage_makeShader_2_localMatrix'>localMatrix</a> permits
+transforming <a href='SkImage_Reference#SkImage'>SkImage</a> before <a href='SkCanvas_Reference#SkCanvas'>SkCanvas</a> <a href='SkMatrix_Reference#Matrix'>matrix</a> is applied.
### Parameters
<table> <tr> <td><a name='SkImage_makeShader_2_localMatrix'><code><strong>localMatrix</strong></code></a></td>
- <td><a href='SkImage_Reference#SkImage'>SkImage</a> <a href='SkImage_Reference#SkImage'>transformation</a>, <a href='SkImage_Reference#SkImage'>or</a> <a href='SkImage_Reference#SkImage'>nullptr</a></td>
+ <td><a href='SkImage_Reference#SkImage'>SkImage</a> transformation, or nullptr</td>
</tr>
</table>
### Return Value
-<a href='undocumented#SkShader'>SkShader</a> <a href='undocumented#SkShader'>containing</a> <a href='SkImage_Reference#SkImage'>SkImage</a>
+<a href='undocumented#SkShader'>SkShader</a> containing <a href='SkImage_Reference#SkImage'>SkImage</a>
### Example
@@ -1790,23 +1790,23 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-bool <a href='#SkImage_peekPixels'>peekPixels</a>(<a href='SkPixmap_Reference#SkPixmap'>SkPixmap</a>* <a href='SkPixmap_Reference#Pixmap'>pixmap</a>) <a href='SkPixmap_Reference#Pixmap'>const</a>
+bool <a href='#SkImage_peekPixels'>peekPixels</a>(<a href='SkPixmap_Reference#SkPixmap'>SkPixmap</a>* <a href='SkPixmap_Reference#Pixmap'>pixmap</a>) const
</pre>
-Copies <a href='SkImage_Reference#SkImage'>SkImage</a> <a href='undocumented#Pixel'>pixel</a> <a href='undocumented#Pixel'>address</a>, <a href='undocumented#Pixel'>row</a> <a href='undocumented#Pixel'>bytes</a>, <a href='undocumented#Pixel'>and</a> <a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a> <a href='SkImageInfo_Reference#SkImageInfo'>to</a> <a href='#SkImage_peekPixels_pixmap'>pixmap</a>, <a href='#SkImage_peekPixels_pixmap'>if</a> <a href='#SkImage_peekPixels_pixmap'>address</a>
-is available, and returns true. If <a href='undocumented#Pixel'>pixel</a> <a href='undocumented#Pixel'>address</a> <a href='undocumented#Pixel'>is</a> <a href='undocumented#Pixel'>not</a> <a href='undocumented#Pixel'>available</a>, <a href='undocumented#Pixel'>return</a>
-false and leave <a href='#SkImage_peekPixels_pixmap'>pixmap</a> <a href='#SkImage_peekPixels_pixmap'>unchanged</a>.
+Copies <a href='SkImage_Reference#SkImage'>SkImage</a> <a href='undocumented#Pixel'>pixel</a> address, row bytes, and <a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a> to <a href='#SkImage_peekPixels_pixmap'>pixmap</a>, if address
+is available, and returns true. If <a href='undocumented#Pixel'>pixel</a> address is not available, return
+false and leave <a href='#SkImage_peekPixels_pixmap'>pixmap</a> unchanged.
### Parameters
<table> <tr> <td><a name='SkImage_peekPixels_pixmap'><code><strong>pixmap</strong></code></a></td>
- <td>storage for <a href='undocumented#Pixel'>pixel</a> <a href='undocumented#Pixel'>state</a> <a href='undocumented#Pixel'>if</a> <a href='undocumented#Pixel'>pixels</a> <a href='undocumented#Pixel'>are</a> <a href='undocumented#Pixel'>readable</a>; <a href='undocumented#Pixel'>otherwise</a>, <a href='undocumented#Pixel'>ignored</a></td>
+ <td>storage for <a href='undocumented#Pixel'>pixel</a> state if pixels are readable; otherwise, ignored</td>
</tr>
</table>
### Return Value
-true if <a href='SkImage_Reference#SkImage'>SkImage</a> <a href='SkImage_Reference#SkImage'>has</a> <a href='SkImage_Reference#SkImage'>direct</a> <a href='SkImage_Reference#SkImage'>access</a> <a href='SkImage_Reference#SkImage'>to</a> <a href='SkImage_Reference#SkImage'>pixels</a>
+true if <a href='SkImage_Reference#SkImage'>SkImage</a> has direct access to pixels
### Example
@@ -1839,7 +1839,7 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-GrTexture* <a href='#SkImage_getTexture'>getTexture</a>() <a href='#SkImage_getTexture'>const</a>
+GrTexture* <a href='#SkImage_getTexture'>getTexture</a>() const
</pre>
Deprecated.
@@ -1849,15 +1849,15 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-bool <a href='#SkImage_isTextureBacked'>isTextureBacked</a>() <a href='#SkImage_isTextureBacked'>const</a>
+bool <a href='#SkImage_isTextureBacked'>isTextureBacked</a>() const
</pre>
-Returns true the contents of <a href='SkImage_Reference#SkImage'>SkImage</a> <a href='SkImage_Reference#SkImage'>was</a> <a href='SkImage_Reference#SkImage'>created</a> <a href='SkImage_Reference#SkImage'>on</a> <a href='SkImage_Reference#SkImage'>or</a> <a href='SkImage_Reference#SkImage'>uploaded</a> <a href='SkImage_Reference#SkImage'>to</a> <a href='SkImage_Reference#SkImage'>GPU</a> <a href='SkImage_Reference#SkImage'>memory</a>,
+Returns true the contents of <a href='SkImage_Reference#SkImage'>SkImage</a> was created on or uploaded to GPU memory,
and is available as a GPU <a href='undocumented#Texture'>texture</a>.
### Return Value
-true if <a href='SkImage_Reference#SkImage'>SkImage</a> <a href='SkImage_Reference#SkImage'>is</a> <a href='SkImage_Reference#SkImage'>a</a> <a href='SkImage_Reference#SkImage'>GPU</a> <a href='undocumented#Texture'>texture</a>
+true if <a href='SkImage_Reference#SkImage'>SkImage</a> is a GPU <a href='undocumented#Texture'>texture</a>
### Example
@@ -1872,14 +1872,14 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-bool <a href='#SkImage_isValid'>isValid</a>(<a href='undocumented#GrContext'>GrContext</a>* <a href='undocumented#GrContext'>context</a>) <a href='undocumented#GrContext'>const</a>
+bool <a href='#SkImage_isValid'>isValid</a>(<a href='undocumented#GrContext'>GrContext</a>* context) const
</pre>
-Returns true if <a href='SkImage_Reference#SkImage'>SkImage</a> <a href='SkImage_Reference#SkImage'>can</a> <a href='SkImage_Reference#SkImage'>be</a> <a href='SkImage_Reference#SkImage'>drawn</a> <a href='SkImage_Reference#SkImage'>on</a> <a href='SkImage_Reference#SkImage'>either</a> <a href='undocumented#Raster_Surface'>raster surface</a> <a href='SkImage_Reference#SkImage'>or</a> <a href='undocumented#GPU_Surface'>GPU surface</a>.
-If <a href='#SkImage_isValid_context'>context</a> <a href='#SkImage_isValid_context'>is</a> <a href='#SkImage_isValid_context'>nullptr</a>, <a href='#SkImage_isValid_context'>tests</a> <a href='#SkImage_isValid_context'>if</a> <a href='SkImage_Reference#SkImage'>SkImage</a> <a href='SkImage_Reference#SkImage'>draws</a> <a href='SkImage_Reference#SkImage'>on</a> <a href='undocumented#Raster_Surface'>raster surface</a>;
-otherwise, tests if <a href='SkImage_Reference#SkImage'>SkImage</a> <a href='SkImage_Reference#SkImage'>draws</a> <a href='SkImage_Reference#SkImage'>on</a> <a href='undocumented#GPU_Surface'>GPU surface</a> <a href='SkImage_Reference#SkImage'>associated</a> <a href='SkImage_Reference#SkImage'>with</a> <a href='#SkImage_isValid_context'>context</a>.
+Returns true if <a href='SkImage_Reference#SkImage'>SkImage</a> can be drawn on either <a href='undocumented#Raster_Surface'>raster surface</a> or <a href='undocumented#GPU_Surface'>GPU surface</a>.
+If <a href='#SkImage_isValid_context'>context</a> is nullptr, tests if <a href='SkImage_Reference#SkImage'>SkImage</a> draws on <a href='undocumented#Raster_Surface'>raster surface</a>;
+otherwise, tests if <a href='SkImage_Reference#SkImage'>SkImage</a> draws on <a href='undocumented#GPU_Surface'>GPU surface</a> associated with <a href='#SkImage_isValid_context'>context</a>.
-<a href='SkImage_Reference#SkImage'>SkImage</a> <a href='SkImage_Reference#SkImage'>backed</a> <a href='SkImage_Reference#SkImage'>by</a> <a href='undocumented#GPU_Texture'>GPU texture</a> <a href='SkImage_Reference#SkImage'>may</a> <a href='SkImage_Reference#SkImage'>become</a> <a href='SkImage_Reference#SkImage'>invalid</a> <a href='SkImage_Reference#SkImage'>if</a> <a href='SkImage_Reference#SkImage'>associated</a> <a href='undocumented#GrContext'>GrContext</a> <a href='undocumented#GrContext'>is</a>
+<a href='SkImage_Reference#SkImage'>SkImage</a> backed by <a href='undocumented#GPU_Texture'>GPU texture</a> may become invalid if associated <a href='undocumented#GrContext'>GrContext</a> is
invalid. <a href='#Lazy_Image'>lazy image</a> may be invalid and may not draw to <a href='undocumented#Raster_Surface'>raster surface</a> or
<a href='undocumented#GPU_Surface'>GPU surface</a> or both.
@@ -1892,7 +1892,7 @@
### Return Value
-true if <a href='SkImage_Reference#SkImage'>SkImage</a> <a href='SkImage_Reference#SkImage'>can</a> <a href='SkImage_Reference#SkImage'>be</a> <a href='SkImage_Reference#SkImage'>drawn</a>
+true if <a href='SkImage_Reference#SkImage'>SkImage</a> can be drawn
### Example
@@ -1907,16 +1907,16 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-<a href='undocumented#GrBackendTexture'>GrBackendTexture</a> <a href='#SkImage_getBackendTexture'>getBackendTexture</a>(<a href='#SkImage_getBackendTexture'>bool</a> <a href='#SkImage_getBackendTexture'>flushPendingGrContextIO</a>, <a href='undocumented#GrSurfaceOrigin'>GrSurfaceOrigin</a>* <a href='undocumented#GrSurfaceOrigin'>origin</a> = <a href='undocumented#GrSurfaceOrigin'>nullptr</a>) <a href='undocumented#GrSurfaceOrigin'>const</a>
+<a href='undocumented#GrBackendTexture'>GrBackendTexture</a> <a href='#SkImage_getBackendTexture'>getBackendTexture</a>(bool flushPendingGrContextIO, <a href='undocumented#GrSurfaceOrigin'>GrSurfaceOrigin</a>* origin = nullptr) const
</pre>
-Retrieves the back-end <a href='undocumented#Texture'>texture</a>. <a href='undocumented#Texture'>If</a> <a href='SkImage_Reference#SkImage'>SkImage</a> <a href='SkImage_Reference#SkImage'>has</a> <a href='SkImage_Reference#SkImage'>no</a> <a href='SkImage_Reference#SkImage'>back-end</a> <a href='undocumented#Texture'>texture</a>, <a href='undocumented#Texture'>an</a> <a href='undocumented#Texture'>invalid</a>
-object is returned. Call <a href='undocumented#GrBackendTexture'>GrBackendTexture</a>::<a href='#GrBackendTexture_isValid'>isValid</a> <a href='#GrBackendTexture_isValid'>to</a> <a href='#GrBackendTexture_isValid'>determine</a> <a href='#GrBackendTexture_isValid'>if</a> <a href='#GrBackendTexture_isValid'>the</a> <a href='#GrBackendTexture_isValid'>result</a>
+Retrieves the back-end <a href='undocumented#Texture'>texture</a>. If <a href='SkImage_Reference#SkImage'>SkImage</a> has no back-end <a href='undocumented#Texture'>texture</a>, an invalid
+object is returned. Call <a href='undocumented#GrBackendTexture'>GrBackendTexture</a>::<a href='#GrBackendTexture_isValid'>isValid</a> to determine if the result
is valid.
-If <a href='#SkImage_getBackendTexture_flushPendingGrContextIO'>flushPendingGrContextIO</a> <a href='#SkImage_getBackendTexture_flushPendingGrContextIO'>is</a> <a href='#SkImage_getBackendTexture_flushPendingGrContextIO'>true</a>, <a href='#SkImage_getBackendTexture_flushPendingGrContextIO'>completes</a> <a href='#SkImage_getBackendTexture_flushPendingGrContextIO'>deferred</a> <a href='#SkImage_getBackendTexture_flushPendingGrContextIO'>I/O</a> <a href='#SkImage_getBackendTexture_flushPendingGrContextIO'>operations</a>.
+If <a href='#SkImage_getBackendTexture_flushPendingGrContextIO'>flushPendingGrContextIO</a> is true, completes deferred I/O operations.
-If <a href='#SkImage_getBackendTexture_origin'>origin</a> <a href='#SkImage_getBackendTexture_origin'>in</a> <a href='#SkImage_getBackendTexture_origin'>not</a> <a href='#SkImage_getBackendTexture_origin'>nullptr</a>, <a href='#SkImage_getBackendTexture_origin'>copies</a> <a href='#SkImage_getBackendTexture_origin'>location</a> <a href='#SkImage_getBackendTexture_origin'>of</a> <a href='#SkImage_getBackendTexture_origin'>content</a> <a href='#SkImage_getBackendTexture_origin'>drawn</a> <a href='#SkImage_getBackendTexture_origin'>into</a> <a href='SkImage_Reference#SkImage'>SkImage</a>.
+If <a href='#SkImage_getBackendTexture_origin'>origin</a> in not nullptr, copies location of content drawn into <a href='SkImage_Reference#SkImage'>SkImage</a>.
### Parameters
@@ -1928,11 +1928,11 @@
</tr>
</table>
-<a href='undocumented#kBottomLeft_GrSurfaceOrigin'>kBottomLeft_GrSurfaceOrigin</a>; <a href='undocumented#kBottomLeft_GrSurfaceOrigin'>or</a> <a href='undocumented#kBottomLeft_GrSurfaceOrigin'>nullptr</a>
+<a href='undocumented#kBottomLeft_GrSurfaceOrigin'>kBottomLeft_GrSurfaceOrigin</a>; or nullptr
### Return Value
-back-end API <a href='undocumented#Texture'>texture</a> <a href='undocumented#Texture'>handle</a>; <a href='undocumented#Texture'>invalid</a> <a href='undocumented#Texture'>on</a> <a href='undocumented#Texture'>failure</a>
+back-end API <a href='undocumented#Texture'>texture</a> handle; invalid on failure
### Example
@@ -1953,16 +1953,16 @@
};
</pre>
-<a href='#SkImage_CachingHint'>CachingHint</a> <a href='#SkImage_CachingHint'>selects</a> <a href='#SkImage_CachingHint'>whether</a> <a href='#SkImage_CachingHint'>Skia</a> <a href='#SkImage_CachingHint'>may</a> <a href='#SkImage_CachingHint'>internally</a> <a href='#SkImage_CachingHint'>cache</a> <a href='SkBitmap_Reference#Bitmap'>Bitmaps</a> <a href='SkBitmap_Reference#Bitmap'>generated</a> <a href='SkBitmap_Reference#Bitmap'>by</a>
-<a href='SkBitmap_Reference#Bitmap'>decoding</a> <a href='SkImage_Reference#Image'>Image</a>, <a href='SkImage_Reference#Image'>or</a> <a href='SkImage_Reference#Image'>by</a> <a href='SkImage_Reference#Image'>copying</a> <a href='SkImage_Reference#Image'>Image</a> <a href='SkImage_Reference#Image'>from</a> <a href='SkImage_Reference#Image'>GPU</a> <a href='SkImage_Reference#Image'>to</a> <a href='SkImage_Reference#Image'>CPU</a>. <a href='SkImage_Reference#Image'>The</a> <a href='SkImage_Reference#Image'>default</a> <a href='SkImage_Reference#Image'>behavior</a>
-<a href='SkImage_Reference#Image'>allows</a> <a href='SkImage_Reference#Image'>caching</a> <a href='SkBitmap_Reference#Bitmap'>Bitmaps</a>.
+<a href='#SkImage_CachingHint'>CachingHint</a> selects whether Skia may internally cache <a href='SkBitmap_Reference#Bitmap'>Bitmaps</a> generated by
+decoding <a href='SkImage_Reference#Image'>Image</a>, or by copying <a href='SkImage_Reference#Image'>Image</a> from GPU to CPU. The default behavior
+allows caching <a href='SkBitmap_Reference#Bitmap'>Bitmaps</a>.
-<a href='SkBitmap_Reference#Bitmap'>Choose</a> <a href='#SkImage_kDisallow_CachingHint'>kDisallow_CachingHint</a> <a href='#SkImage_kDisallow_CachingHint'>if</a> <a href='SkImage_Reference#Image'>Image</a> <a href='SkImage_Reference#Image'>pixels</a> <a href='SkImage_Reference#Image'>are</a> <a href='SkImage_Reference#Image'>to</a> <a href='SkImage_Reference#Image'>be</a> <a href='SkImage_Reference#Image'>used</a> <a href='SkImage_Reference#Image'>only</a> <a href='SkImage_Reference#Image'>once</a>, <a href='SkImage_Reference#Image'>or</a>
-<a href='SkImage_Reference#Image'>if</a> <a href='SkImage_Reference#Image'>Image</a> <a href='SkImage_Reference#Image'>pixels</a> <a href='SkImage_Reference#Image'>reside</a> <a href='SkImage_Reference#Image'>in</a> <a href='SkImage_Reference#Image'>a</a> <a href='SkImage_Reference#Image'>cache</a> <a href='SkImage_Reference#Image'>outside</a> <a href='SkImage_Reference#Image'>of</a> <a href='SkImage_Reference#Image'>Skia</a>, <a href='SkImage_Reference#Image'>or</a> <a href='SkImage_Reference#Image'>to</a> <a href='SkImage_Reference#Image'>reduce</a> <a href='SkImage_Reference#Image'>memory</a> <a href='SkImage_Reference#Image'>pressure</a>.
+Choose <a href='#SkImage_kDisallow_CachingHint'>kDisallow_CachingHint</a> if <a href='SkImage_Reference#Image'>Image</a> pixels are to be used only once, or
+if <a href='SkImage_Reference#Image'>Image</a> pixels reside in a cache outside of Skia, or to reduce memory pressure.
-<a href='SkImage_Reference#Image'>Choosing</a> <a href='#SkImage_kAllow_CachingHint'>kAllow_CachingHint</a> <a href='#SkImage_kAllow_CachingHint'>does</a> <a href='#SkImage_kAllow_CachingHint'>not</a> <a href='#SkImage_kAllow_CachingHint'>ensure</a> <a href='#SkImage_kAllow_CachingHint'>that</a> <a href='#SkImage_kAllow_CachingHint'>pixels</a> <a href='#SkImage_kAllow_CachingHint'>will</a> <a href='#SkImage_kAllow_CachingHint'>be</a> <a href='#SkImage_kAllow_CachingHint'>cached</a>.
-<a href='SkImage_Reference#Image'>Image</a> <a href='SkImage_Reference#Image'>pixels</a> <a href='SkImage_Reference#Image'>may</a> <a href='SkImage_Reference#Image'>not</a> <a href='SkImage_Reference#Image'>be</a> <a href='SkImage_Reference#Image'>cached</a> <a href='SkImage_Reference#Image'>if</a> <a href='SkImage_Reference#Image'>memory</a> <a href='SkImage_Reference#Image'>requirements</a> <a href='SkImage_Reference#Image'>are</a> <a href='SkImage_Reference#Image'>too</a> <a href='SkImage_Reference#Image'>large</a> <a href='SkImage_Reference#Image'>or</a>
-<a href='SkImage_Reference#Image'>pixels</a> <a href='SkImage_Reference#Image'>are</a> <a href='SkImage_Reference#Image'>not</a> <a href='SkImage_Reference#Image'>accessible</a>.
+Choosing <a href='#SkImage_kAllow_CachingHint'>kAllow_CachingHint</a> does not ensure that pixels will be cached.
+<a href='SkImage_Reference#Image'>Image</a> pixels may not be cached if memory requirements are too large or
+pixels are not accessible.
### Constants
@@ -1993,39 +1993,39 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-bool <a href='#SkImage_readPixels'>readPixels</a>(<a href='#SkImage_readPixels'>const</a> <a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a>& <a href='SkImageInfo_Reference#SkImageInfo'>dstInfo</a>, <a href='SkImageInfo_Reference#SkImageInfo'>void</a>* <a href='SkImageInfo_Reference#SkImageInfo'>dstPixels</a>, <a href='SkImageInfo_Reference#SkImageInfo'>size_t</a> <a href='SkImageInfo_Reference#SkImageInfo'>dstRowBytes</a>, <a href='SkImageInfo_Reference#SkImageInfo'>int</a> <a href='SkImageInfo_Reference#SkImageInfo'>srcX</a>, <a href='SkImageInfo_Reference#SkImageInfo'>int</a> <a href='SkImageInfo_Reference#SkImageInfo'>srcY</a>,
- <a href='#SkImage_CachingHint'>CachingHint</a> <a href='#SkImage_CachingHint'>cachingHint</a> = <a href='#SkImage_kAllow_CachingHint'>kAllow_CachingHint</a>) <a href='#SkImage_kAllow_CachingHint'>const</a>
+bool <a href='#SkImage_readPixels'>readPixels</a>(const <a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a>& dstInfo, void* dstPixels, size_t dstRowBytes, int srcX, int srcY,
+ <a href='#SkImage_CachingHint'>CachingHint</a> cachingHint = <a href='#SkImage_kAllow_CachingHint'>kAllow_CachingHint</a>) const
</pre>
-Copies <a href='SkRect_Reference#Rect'>Rect</a> <a href='SkRect_Reference#Rect'>of</a> <a href='SkRect_Reference#Rect'>pixels</a> <a href='SkRect_Reference#Rect'>from</a> <a href='SkImage_Reference#Image'>Image</a> <a href='SkImage_Reference#Image'>to</a> <a href='#SkImage_readPixels_dstPixels'>dstPixels</a>. <a href='#SkImage_readPixels_dstPixels'>Copy</a> <a href='#SkImage_readPixels_dstPixels'>starts</a> <a href='#SkImage_readPixels_dstPixels'>at</a> <a href='#SkImage_readPixels_dstPixels'>offset</a> (<a href='#SkImage_readPixels_srcX'>srcX</a>, <a href='#SkImage_readPixels_srcY'>srcY</a>),
-<a href='#SkImage_readPixels_srcY'>and</a> <a href='#SkImage_readPixels_srcY'>does</a> <a href='#SkImage_readPixels_srcY'>not</a> <a href='#SkImage_readPixels_srcY'>exceed</a> <a href='SkImage_Reference#Image'>Image</a> (<a href='#SkImage_width'>width()</a>, <a href='#SkImage_height'>height()</a>).
+Copies <a href='SkRect_Reference#Rect'>Rect</a> of pixels from <a href='SkImage_Reference#Image'>Image</a> to <a href='#SkImage_readPixels_dstPixels'>dstPixels</a>. Copy starts at offset (<a href='#SkImage_readPixels_srcX'>srcX</a>, <a href='#SkImage_readPixels_srcY'>srcY</a>),
+and does not exceed <a href='SkImage_Reference#Image'>Image</a> (<a href='#SkImage_width'>width()</a>, <a href='#SkImage_height'>height()</a>).
-<a href='#SkImage_readPixels_dstInfo'>dstInfo</a> <a href='#SkImage_readPixels_dstInfo'>specifies</a> <a href='#SkImage_readPixels_dstInfo'>width</a>, <a href='#SkImage_readPixels_dstInfo'>height</a>, <a href='#Image_Info_Color_Type'>Color_Type</a>, <a href='#Image_Info_Alpha_Type'>Alpha_Type</a>, <a href='#Image_Info_Alpha_Type'>and</a> <a href='#Color_Space'>Color_Space</a> <a href='#Color_Space'>of</a>
-<a href='#Color_Space'>destination</a>. <a href='#SkImage_readPixels_dstRowBytes'>dstRowBytes</a> <a href='#SkImage_readPixels_dstRowBytes'>specifics</a> <a href='#SkImage_readPixels_dstRowBytes'>the</a> <a href='#SkImage_readPixels_dstRowBytes'>gap</a> <a href='#SkImage_readPixels_dstRowBytes'>from</a> <a href='#SkImage_readPixels_dstRowBytes'>one</a> <a href='#SkImage_readPixels_dstRowBytes'>destination</a> <a href='#SkImage_readPixels_dstRowBytes'>row</a> <a href='#SkImage_readPixels_dstRowBytes'>to</a> <a href='#SkImage_readPixels_dstRowBytes'>the</a> <a href='#SkImage_readPixels_dstRowBytes'>next</a>.
-<a href='#SkImage_readPixels_dstRowBytes'>Returns</a> <a href='#SkImage_readPixels_dstRowBytes'>true</a> <a href='#SkImage_readPixels_dstRowBytes'>if</a> <a href='#SkImage_readPixels_dstRowBytes'>pixels</a> <a href='#SkImage_readPixels_dstRowBytes'>are</a> <a href='#SkImage_readPixels_dstRowBytes'>copied</a>. <a href='#SkImage_readPixels_dstRowBytes'>Returns</a> <a href='#SkImage_readPixels_dstRowBytes'>false</a> <a href='#SkImage_readPixels_dstRowBytes'>if</a>:
+<a href='#SkImage_readPixels_dstInfo'>dstInfo</a> specifies width, height, <a href='#Image_Info_Color_Type'>Color_Type</a>, <a href='#Image_Info_Alpha_Type'>Alpha_Type</a>, and <a href='#Color_Space'>Color_Space</a> of
+destination. <a href='#SkImage_readPixels_dstRowBytes'>dstRowBytes</a> specifics the gap from one destination row to the next.
+Returns true if pixels are copied. Returns false if:
<table> <tr>
- <td><a href='#SkImage_readPixels_dstInfo'>dstInfo</a> <a href='#SkImage_readPixels_dstInfo'>has</a> <a href='#SkImage_readPixels_dstInfo'>no</a> <a href='#SkImage_readPixels_dstInfo'>address</a></td>
+ <td><a href='#SkImage_readPixels_dstInfo'>dstInfo</a> has no address</td>
</tr> <tr>
- <td><a href='#SkImage_readPixels_dstRowBytes'>dstRowBytes</a> <a href='#SkImage_readPixels_dstRowBytes'>is</a> <a href='#SkImage_readPixels_dstRowBytes'>less</a> <a href='#SkImage_readPixels_dstRowBytes'>than</a> <a href='#SkImage_readPixels_dstInfo'>dstInfo</a>.<a href='#SkImageInfo_minRowBytes'>minRowBytes</a>()</td>
+ <td><a href='#SkImage_readPixels_dstRowBytes'>dstRowBytes</a> is less than <a href='#SkImage_readPixels_dstInfo'>dstInfo</a>.<a href='#SkImageInfo_minRowBytes'>minRowBytes</a>()</td>
</tr> <tr>
- <td><a href='#Pixel_Ref'>Pixel_Ref</a> <a href='#Pixel_Ref'>is</a> <a href='#Pixel_Ref'>nullptr</a></td>
+ <td><a href='#Pixel_Ref'>Pixel_Ref</a> is nullptr</td>
</tr>
</table>
-Pixels are copied only if <a href='undocumented#Pixel'>pixel</a> <a href='undocumented#Pixel'>conversion</a> <a href='undocumented#Pixel'>is</a> <a href='undocumented#Pixel'>possible</a>. <a href='undocumented#Pixel'>If</a> <a href='SkImage_Reference#Image'>Image</a> <a href='#Image_Info_Color_Type'>Color_Type</a> <a href='#Image_Info_Color_Type'>is</a>
-<a href='SkImageInfo_Reference#kGray_8_SkColorType'>kGray_8_SkColorType</a>, <a href='SkImageInfo_Reference#kGray_8_SkColorType'>or</a> <a href='SkImageInfo_Reference#kAlpha_8_SkColorType'>kAlpha_8_SkColorType</a>; <a href='#SkImage_readPixels_dstInfo'>dstInfo</a>.<a href='#SkImageInfo_colorType'>colorType</a>() <a href='#SkImageInfo_colorType'>must</a> <a href='#SkImageInfo_colorType'>match</a>.
-<a href='#SkImageInfo_colorType'>If</a> <a href='SkImage_Reference#Image'>Image</a> <a href='#Image_Info_Color_Type'>Color_Type</a> <a href='#Image_Info_Color_Type'>is</a> <a href='SkImageInfo_Reference#kGray_8_SkColorType'>kGray_8_SkColorType</a>, <a href='#SkImage_readPixels_dstInfo'>dstInfo</a>.<a href='#SkImageInfo_colorSpace'>colorSpace</a>() <a href='#SkImageInfo_colorSpace'>must</a> <a href='#SkImageInfo_colorSpace'>match</a>.
-<a href='#SkImageInfo_colorSpace'>If</a> <a href='SkImage_Reference#Image'>Image</a> <a href='#Image_Info_Alpha_Type'>Alpha_Type</a> <a href='#Image_Info_Alpha_Type'>is</a> <a href='SkImageInfo_Reference#kOpaque_SkAlphaType'>kOpaque_SkAlphaType</a>, <a href='#SkImage_readPixels_dstInfo'>dstInfo</a>.<a href='#SkImageInfo_alphaType'>alphaType</a>() <a href='#SkImageInfo_alphaType'>must</a>
-<a href='#SkImageInfo_alphaType'>match</a>. <a href='#SkImageInfo_alphaType'>If</a> <a href='SkImage_Reference#Image'>Image</a> <a href='#Color_Space'>Color_Space</a> <a href='#Color_Space'>is</a> <a href='#Color_Space'>nullptr</a>, <a href='#SkImage_readPixels_dstInfo'>dstInfo</a>.<a href='#SkImageInfo_colorSpace'>colorSpace</a>() <a href='#SkImageInfo_colorSpace'>must</a> <a href='#SkImageInfo_colorSpace'>match</a>. <a href='#SkImageInfo_colorSpace'>Returns</a>
-<a href='#SkImageInfo_colorSpace'>false</a> <a href='#SkImageInfo_colorSpace'>if</a> <a href='undocumented#Pixel'>pixel</a> <a href='undocumented#Pixel'>conversion</a> <a href='undocumented#Pixel'>is</a> <a href='undocumented#Pixel'>not</a> <a href='undocumented#Pixel'>possible</a>.
+Pixels are copied only if <a href='undocumented#Pixel'>pixel</a> conversion is possible. If <a href='SkImage_Reference#Image'>Image</a> <a href='#Image_Info_Color_Type'>Color_Type</a> is
+<a href='SkImageInfo_Reference#kGray_8_SkColorType'>kGray_8_SkColorType</a>, or <a href='SkImageInfo_Reference#kAlpha_8_SkColorType'>kAlpha_8_SkColorType</a>; <a href='#SkImage_readPixels_dstInfo'>dstInfo</a>.<a href='#SkImageInfo_colorType'>colorType</a>() must match.
+If <a href='SkImage_Reference#Image'>Image</a> <a href='#Image_Info_Color_Type'>Color_Type</a> is <a href='SkImageInfo_Reference#kGray_8_SkColorType'>kGray_8_SkColorType</a>, <a href='#SkImage_readPixels_dstInfo'>dstInfo</a>.<a href='#SkImageInfo_colorSpace'>colorSpace</a>() must match.
+If <a href='SkImage_Reference#Image'>Image</a> <a href='#Image_Info_Alpha_Type'>Alpha_Type</a> is <a href='SkImageInfo_Reference#kOpaque_SkAlphaType'>kOpaque_SkAlphaType</a>, <a href='#SkImage_readPixels_dstInfo'>dstInfo</a>.<a href='#SkImageInfo_alphaType'>alphaType</a>() must
+match. If <a href='SkImage_Reference#Image'>Image</a> <a href='#Color_Space'>Color_Space</a> is nullptr, <a href='#SkImage_readPixels_dstInfo'>dstInfo</a>.<a href='#SkImageInfo_colorSpace'>colorSpace</a>() must match. Returns
+false if <a href='undocumented#Pixel'>pixel</a> conversion is not possible.
-<a href='#SkImage_readPixels_srcX'>srcX</a> <a href='#SkImage_readPixels_srcX'>and</a> <a href='#SkImage_readPixels_srcY'>srcY</a> <a href='#SkImage_readPixels_srcY'>may</a> <a href='#SkImage_readPixels_srcY'>be</a> <a href='#SkImage_readPixels_srcY'>negative</a> <a href='#SkImage_readPixels_srcY'>to</a> <a href='#SkImage_readPixels_srcY'>copy</a> <a href='#SkImage_readPixels_srcY'>only</a> <a href='#SkImage_readPixels_srcY'>top</a> <a href='#SkImage_readPixels_srcY'>or</a> <a href='#SkImage_readPixels_srcY'>left</a> <a href='#SkImage_readPixels_srcY'>of</a> <a href='#SkImage_readPixels_srcY'>source</a>. <a href='#SkImage_readPixels_srcY'>Returns</a>
-<a href='#SkImage_readPixels_srcY'>false</a> <a href='#SkImage_readPixels_srcY'>if</a> <a href='#SkImage_width'>width()</a> <a href='#SkImage_width'>or</a> <a href='#SkImage_height'>height()</a> <a href='#SkImage_height'>is</a> <a href='#SkImage_height'>zero</a> <a href='#SkImage_height'>or</a> <a href='#SkImage_height'>negative</a>.
-<a href='#SkImage_height'>Returns</a> <a href='#SkImage_height'>false</a> <a href='#SkImage_height'>if</a> <code><a href='undocumented#abs()'>abs</a>(<a href='#SkImage_readPixels_srcX'>srcX</a>) >= <a href='SkImage_Reference#Image'>Image</a> <a href='#SkImage_width'>width()</a></code>, or if <code><a href='undocumented#abs()'>abs</a>(<a href='#SkImage_readPixels_srcY'>srcY</a>) >= <a href='SkImage_Reference#Image'>Image</a> <a href='#SkImage_height'>height()</a></code>.
+<a href='#SkImage_readPixels_srcX'>srcX</a> and <a href='#SkImage_readPixels_srcY'>srcY</a> may be negative to copy only top or left of source. Returns
+false if <a href='#SkImage_width'>width()</a> or <a href='#SkImage_height'>height()</a> is zero or negative.
+Returns false if <code><a href='undocumented#abs()'>abs</a>(<a href='#SkImage_readPixels_srcX'>srcX</a>) >= <a href='SkImage_Reference#Image'>Image</a> <a href='#SkImage_width'>width()</a></code>, or if <code><a href='undocumented#abs()'>abs</a>(<a href='#SkImage_readPixels_srcY'>srcY</a>) >= <a href='SkImage_Reference#Image'>Image</a> <a href='#SkImage_height'>height()</a></code>.
-If <a href='#SkImage_readPixels_cachingHint'>cachingHint</a> <a href='#SkImage_readPixels_cachingHint'>is</a> <a href='#SkImage_kAllow_CachingHint'>kAllow_CachingHint</a>, <a href='#SkImage_kAllow_CachingHint'>pixels</a> <a href='#SkImage_kAllow_CachingHint'>may</a> <a href='#SkImage_kAllow_CachingHint'>be</a> <a href='#SkImage_kAllow_CachingHint'>retained</a> <a href='#SkImage_kAllow_CachingHint'>locally</a>.
-<a href='#SkImage_kAllow_CachingHint'>If</a> <a href='#SkImage_readPixels_cachingHint'>cachingHint</a> <a href='#SkImage_readPixels_cachingHint'>is</a> <a href='#SkImage_kDisallow_CachingHint'>kDisallow_CachingHint</a>, <a href='#SkImage_kDisallow_CachingHint'>pixels</a> <a href='#SkImage_kDisallow_CachingHint'>are</a> <a href='#SkImage_kDisallow_CachingHint'>not</a> <a href='#SkImage_kDisallow_CachingHint'>added</a> <a href='#SkImage_kDisallow_CachingHint'>to</a> <a href='#SkImage_kDisallow_CachingHint'>the</a> <a href='#SkImage_kDisallow_CachingHint'>local</a> <a href='#SkImage_kDisallow_CachingHint'>cache</a>.
+If <a href='#SkImage_readPixels_cachingHint'>cachingHint</a> is <a href='#SkImage_kAllow_CachingHint'>kAllow_CachingHint</a>, pixels may be retained locally.
+If <a href='#SkImage_readPixels_cachingHint'>cachingHint</a> is <a href='#SkImage_kDisallow_CachingHint'>kDisallow_CachingHint</a>, pixels are not added to the local cache.
### Parameters
@@ -2066,43 +2066,43 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-bool <a href='#SkImage_readPixels'>readPixels</a>(<a href='#SkImage_readPixels'>const</a> <a href='SkPixmap_Reference#SkPixmap'>SkPixmap</a>& <a href='SkPixmap_Reference#SkPixmap'>dst</a>, <a href='SkPixmap_Reference#SkPixmap'>int</a> <a href='SkPixmap_Reference#SkPixmap'>srcX</a>, <a href='SkPixmap_Reference#SkPixmap'>int</a> <a href='SkPixmap_Reference#SkPixmap'>srcY</a>, <a href='#SkImage_CachingHint'>CachingHint</a> <a href='#SkImage_CachingHint'>cachingHint</a> = <a href='#SkImage_kAllow_CachingHint'>kAllow_CachingHint</a>) <a href='#SkImage_kAllow_CachingHint'>const</a>
+bool <a href='#SkImage_readPixels'>readPixels</a>(const <a href='SkPixmap_Reference#SkPixmap'>SkPixmap</a>& dst, int srcX, int srcY, <a href='#SkImage_CachingHint'>CachingHint</a> cachingHint = <a href='#SkImage_kAllow_CachingHint'>kAllow_CachingHint</a>) const
</pre>
-Copies a <a href='SkRect_Reference#Rect'>Rect</a> <a href='SkRect_Reference#Rect'>of</a> <a href='SkRect_Reference#Rect'>pixels</a> <a href='SkRect_Reference#Rect'>from</a> <a href='SkImage_Reference#Image'>Image</a> <a href='SkImage_Reference#Image'>to</a> <a href='#SkImage_readPixels_2_dst'>dst</a>. <a href='#SkImage_readPixels_2_dst'>Copy</a> <a href='#SkImage_readPixels_2_dst'>starts</a> <a href='#SkImage_readPixels_2_dst'>at</a> (<a href='#SkImage_readPixels_2_srcX'>srcX</a>, <a href='#SkImage_readPixels_2_srcY'>srcY</a>), <a href='#SkImage_readPixels_2_srcY'>and</a>
-<a href='#SkImage_readPixels_2_srcY'>does</a> <a href='#SkImage_readPixels_2_srcY'>not</a> <a href='#SkImage_readPixels_2_srcY'>exceed</a> <a href='SkImage_Reference#Image'>Image</a> (<a href='#SkImage_width'>width()</a>, <a href='#SkImage_height'>height()</a>).
+Copies a <a href='SkRect_Reference#Rect'>Rect</a> of pixels from <a href='SkImage_Reference#Image'>Image</a> to <a href='#SkImage_readPixels_2_dst'>dst</a>. Copy starts at (<a href='#SkImage_readPixels_2_srcX'>srcX</a>, <a href='#SkImage_readPixels_2_srcY'>srcY</a>), and
+does not exceed <a href='SkImage_Reference#Image'>Image</a> (<a href='#SkImage_width'>width()</a>, <a href='#SkImage_height'>height()</a>).
-<a href='#SkImage_readPixels_2_dst'>dst</a> <a href='#SkImage_readPixels_2_dst'>specifies</a> <a href='#SkImage_readPixels_2_dst'>width</a>, <a href='#SkImage_readPixels_2_dst'>height</a>, <a href='#Image_Info_Color_Type'>Color_Type</a>, <a href='#Image_Info_Alpha_Type'>Alpha_Type</a>, <a href='#Color_Space'>Color_Space</a>, <a href='undocumented#Pixel_Storage'>pixel storage</a>,
-<a href='undocumented#Pixel'>and</a> <a href='undocumented#Pixel'>row</a> <a href='undocumented#Pixel'>bytes</a> <a href='undocumented#Pixel'>of</a> <a href='undocumented#Pixel'>destination</a>. <a href='#SkImage_readPixels_2_dst'>dst</a>.<a href='#SkPixmap_rowBytes'>rowBytes</a>() <a href='#SkPixmap_rowBytes'>specifics</a> <a href='#SkPixmap_rowBytes'>the</a> <a href='#SkPixmap_rowBytes'>gap</a> <a href='#SkPixmap_rowBytes'>from</a> <a href='#SkPixmap_rowBytes'>one</a> <a href='#SkPixmap_rowBytes'>destination</a>
-<a href='#SkPixmap_rowBytes'>row</a> <a href='#SkPixmap_rowBytes'>to</a> <a href='#SkPixmap_rowBytes'>the</a> <a href='#SkPixmap_rowBytes'>next</a>. <a href='#SkPixmap_rowBytes'>Returns</a> <a href='#SkPixmap_rowBytes'>true</a> <a href='#SkPixmap_rowBytes'>if</a> <a href='#SkPixmap_rowBytes'>pixels</a> <a href='#SkPixmap_rowBytes'>are</a> <a href='#SkPixmap_rowBytes'>copied</a>. <a href='#SkPixmap_rowBytes'>Returns</a> <a href='#SkPixmap_rowBytes'>false</a> <a href='#SkPixmap_rowBytes'>if</a>:
+<a href='#SkImage_readPixels_2_dst'>dst</a> specifies width, height, <a href='#Image_Info_Color_Type'>Color_Type</a>, <a href='#Image_Info_Alpha_Type'>Alpha_Type</a>, <a href='#Color_Space'>Color_Space</a>, <a href='undocumented#Pixel_Storage'>pixel storage</a>,
+and row bytes of destination. <a href='#SkImage_readPixels_2_dst'>dst</a>.<a href='#SkPixmap_rowBytes'>rowBytes</a>() specifics the gap from one destination
+row to the next. Returns true if pixels are copied. Returns false if:
<table> <tr>
- <td><a href='#SkImage_readPixels_2_dst'>dst</a> <a href='undocumented#Pixel_Storage'>pixel storage</a> <a href='undocumented#Pixel'>equals</a> <a href='undocumented#Pixel'>nullptr</a></td>
+ <td><a href='#SkImage_readPixels_2_dst'>dst</a> <a href='undocumented#Pixel_Storage'>pixel storage</a> equals nullptr</td>
</tr> <tr>
- <td><a href='#SkImage_readPixels_2_dst'>dst</a>.<a href='#SkPixmap_rowBytes'>rowBytes</a>() <a href='#SkPixmap_rowBytes'>is</a> <a href='#SkPixmap_rowBytes'>less</a> <a href='#SkPixmap_rowBytes'>than</a> <a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a>::<a href='#SkImageInfo_minRowBytes'>minRowBytes</a></td>
+ <td><a href='#SkImage_readPixels_2_dst'>dst</a>.<a href='#SkPixmap_rowBytes'>rowBytes</a>() is less than <a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a>::<a href='#SkImageInfo_minRowBytes'>minRowBytes</a></td>
</tr> <tr>
- <td><a href='#Pixel_Ref'>Pixel_Ref</a> <a href='#Pixel_Ref'>is</a> <a href='#Pixel_Ref'>nullptr</a></td>
+ <td><a href='#Pixel_Ref'>Pixel_Ref</a> is nullptr</td>
</tr>
</table>
-Pixels are copied only if <a href='undocumented#Pixel'>pixel</a> <a href='undocumented#Pixel'>conversion</a> <a href='undocumented#Pixel'>is</a> <a href='undocumented#Pixel'>possible</a>. <a href='undocumented#Pixel'>If</a> <a href='SkImage_Reference#Image'>Image</a> <a href='#Image_Info_Color_Type'>Color_Type</a> <a href='#Image_Info_Color_Type'>is</a>
-<a href='SkImageInfo_Reference#kGray_8_SkColorType'>kGray_8_SkColorType</a>, <a href='SkImageInfo_Reference#kGray_8_SkColorType'>or</a> <a href='SkImageInfo_Reference#kAlpha_8_SkColorType'>kAlpha_8_SkColorType</a>; <a href='#SkImage_readPixels_2_dst'>dst</a>.<a href='#SkPixmap_colorType'>colorType</a>() <a href='#SkPixmap_colorType'>must</a> <a href='#SkPixmap_colorType'>match</a>.
-<a href='#SkPixmap_colorType'>If</a> <a href='SkImage_Reference#Image'>Image</a> <a href='#Image_Info_Color_Type'>Color_Type</a> <a href='#Image_Info_Color_Type'>is</a> <a href='SkImageInfo_Reference#kGray_8_SkColorType'>kGray_8_SkColorType</a>, <a href='#SkImage_readPixels_2_dst'>dst</a>.<a href='#SkPixmap_colorSpace'>colorSpace</a>() <a href='#SkPixmap_colorSpace'>must</a> <a href='#SkPixmap_colorSpace'>match</a>.
-<a href='#SkPixmap_colorSpace'>If</a> <a href='SkImage_Reference#Image'>Image</a> <a href='#Image_Info_Alpha_Type'>Alpha_Type</a> <a href='#Image_Info_Alpha_Type'>is</a> <a href='SkImageInfo_Reference#kOpaque_SkAlphaType'>kOpaque_SkAlphaType</a>, <a href='#SkImage_readPixels_2_dst'>dst</a>.<a href='#SkPixmap_alphaType'>alphaType</a>() <a href='#SkPixmap_alphaType'>must</a>
-<a href='#SkPixmap_alphaType'>match</a>. <a href='#SkPixmap_alphaType'>If</a> <a href='SkImage_Reference#Image'>Image</a> <a href='#Color_Space'>Color_Space</a> <a href='#Color_Space'>is</a> <a href='#Color_Space'>nullptr</a>, <a href='#SkImage_readPixels_2_dst'>dst</a>.<a href='#SkPixmap_colorSpace'>colorSpace</a>() <a href='#SkPixmap_colorSpace'>must</a> <a href='#SkPixmap_colorSpace'>match</a>. <a href='#SkPixmap_colorSpace'>Returns</a>
-<a href='#SkPixmap_colorSpace'>false</a> <a href='#SkPixmap_colorSpace'>if</a> <a href='undocumented#Pixel'>pixel</a> <a href='undocumented#Pixel'>conversion</a> <a href='undocumented#Pixel'>is</a> <a href='undocumented#Pixel'>not</a> <a href='undocumented#Pixel'>possible</a>.
+Pixels are copied only if <a href='undocumented#Pixel'>pixel</a> conversion is possible. If <a href='SkImage_Reference#Image'>Image</a> <a href='#Image_Info_Color_Type'>Color_Type</a> is
+<a href='SkImageInfo_Reference#kGray_8_SkColorType'>kGray_8_SkColorType</a>, or <a href='SkImageInfo_Reference#kAlpha_8_SkColorType'>kAlpha_8_SkColorType</a>; <a href='#SkImage_readPixels_2_dst'>dst</a>.<a href='#SkPixmap_colorType'>colorType</a>() must match.
+If <a href='SkImage_Reference#Image'>Image</a> <a href='#Image_Info_Color_Type'>Color_Type</a> is <a href='SkImageInfo_Reference#kGray_8_SkColorType'>kGray_8_SkColorType</a>, <a href='#SkImage_readPixels_2_dst'>dst</a>.<a href='#SkPixmap_colorSpace'>colorSpace</a>() must match.
+If <a href='SkImage_Reference#Image'>Image</a> <a href='#Image_Info_Alpha_Type'>Alpha_Type</a> is <a href='SkImageInfo_Reference#kOpaque_SkAlphaType'>kOpaque_SkAlphaType</a>, <a href='#SkImage_readPixels_2_dst'>dst</a>.<a href='#SkPixmap_alphaType'>alphaType</a>() must
+match. If <a href='SkImage_Reference#Image'>Image</a> <a href='#Color_Space'>Color_Space</a> is nullptr, <a href='#SkImage_readPixels_2_dst'>dst</a>.<a href='#SkPixmap_colorSpace'>colorSpace</a>() must match. Returns
+false if <a href='undocumented#Pixel'>pixel</a> conversion is not possible.
-<a href='#SkImage_readPixels_2_srcX'>srcX</a> <a href='#SkImage_readPixels_2_srcX'>and</a> <a href='#SkImage_readPixels_2_srcY'>srcY</a> <a href='#SkImage_readPixels_2_srcY'>may</a> <a href='#SkImage_readPixels_2_srcY'>be</a> <a href='#SkImage_readPixels_2_srcY'>negative</a> <a href='#SkImage_readPixels_2_srcY'>to</a> <a href='#SkImage_readPixels_2_srcY'>copy</a> <a href='#SkImage_readPixels_2_srcY'>only</a> <a href='#SkImage_readPixels_2_srcY'>top</a> <a href='#SkImage_readPixels_2_srcY'>or</a> <a href='#SkImage_readPixels_2_srcY'>left</a> <a href='#SkImage_readPixels_2_srcY'>of</a> <a href='#SkImage_readPixels_2_srcY'>source</a>. <a href='#SkImage_readPixels_2_srcY'>Returns</a>
-<a href='#SkImage_readPixels_2_srcY'>false</a> <a href='#SkImage_readPixels_2_srcY'>if</a> <a href='#SkImage_width'>width()</a> <a href='#SkImage_width'>or</a> <a href='#SkImage_height'>height()</a> <a href='#SkImage_height'>is</a> <a href='#SkImage_height'>zero</a> <a href='#SkImage_height'>or</a> <a href='#SkImage_height'>negative</a>.
-<a href='#SkImage_height'>Returns</a> <a href='#SkImage_height'>false</a> <a href='#SkImage_height'>if</a> <code><a href='undocumented#abs()'>abs</a>(<a href='#SkImage_readPixels_2_srcX'>srcX</a>) >= <a href='SkImage_Reference#Image'>Image</a> <a href='#SkImage_width'>width()</a></code>, or if <code><a href='undocumented#abs()'>abs</a>(<a href='#SkImage_readPixels_2_srcY'>srcY</a>) >= <a href='SkImage_Reference#Image'>Image</a> <a href='#SkImage_height'>height()</a></code>.
+<a href='#SkImage_readPixels_2_srcX'>srcX</a> and <a href='#SkImage_readPixels_2_srcY'>srcY</a> may be negative to copy only top or left of source. Returns
+false if <a href='#SkImage_width'>width()</a> or <a href='#SkImage_height'>height()</a> is zero or negative.
+Returns false if <code><a href='undocumented#abs()'>abs</a>(<a href='#SkImage_readPixels_2_srcX'>srcX</a>) >= <a href='SkImage_Reference#Image'>Image</a> <a href='#SkImage_width'>width()</a></code>, or if <code><a href='undocumented#abs()'>abs</a>(<a href='#SkImage_readPixels_2_srcY'>srcY</a>) >= <a href='SkImage_Reference#Image'>Image</a> <a href='#SkImage_height'>height()</a></code>.
-If <a href='#SkImage_readPixels_2_cachingHint'>cachingHint</a> <a href='#SkImage_readPixels_2_cachingHint'>is</a> <a href='#SkImage_kAllow_CachingHint'>kAllow_CachingHint</a>, <a href='#SkImage_kAllow_CachingHint'>pixels</a> <a href='#SkImage_kAllow_CachingHint'>may</a> <a href='#SkImage_kAllow_CachingHint'>be</a> <a href='#SkImage_kAllow_CachingHint'>retained</a> <a href='#SkImage_kAllow_CachingHint'>locally</a>.
-<a href='#SkImage_kAllow_CachingHint'>If</a> <a href='#SkImage_readPixels_2_cachingHint'>cachingHint</a> <a href='#SkImage_readPixels_2_cachingHint'>is</a> <a href='#SkImage_kDisallow_CachingHint'>kDisallow_CachingHint</a>, <a href='#SkImage_kDisallow_CachingHint'>pixels</a> <a href='#SkImage_kDisallow_CachingHint'>are</a> <a href='#SkImage_kDisallow_CachingHint'>not</a> <a href='#SkImage_kDisallow_CachingHint'>added</a> <a href='#SkImage_kDisallow_CachingHint'>to</a> <a href='#SkImage_kDisallow_CachingHint'>the</a> <a href='#SkImage_kDisallow_CachingHint'>local</a> <a href='#SkImage_kDisallow_CachingHint'>cache</a>.
+If <a href='#SkImage_readPixels_2_cachingHint'>cachingHint</a> is <a href='#SkImage_kAllow_CachingHint'>kAllow_CachingHint</a>, pixels may be retained locally.
+If <a href='#SkImage_readPixels_2_cachingHint'>cachingHint</a> is <a href='#SkImage_kDisallow_CachingHint'>kDisallow_CachingHint</a>, pixels are not added to the local cache.
### Parameters
<table> <tr> <td><a name='SkImage_readPixels_2_dst'><code><strong>dst</strong></code></a></td>
- <td>destination <a href='SkPixmap_Reference#Pixmap'>Pixmap</a>: <a href='#Image_Info'>Image_Info</a>, <a href='#Image_Info'>pixels</a>, <a href='#Image_Info'>row</a> <a href='#Image_Info'>bytes</a></td>
+ <td>destination <a href='SkPixmap_Reference#Pixmap'>Pixmap</a>: <a href='#Image_Info'>Image_Info</a>, pixels, row bytes</td>
</tr>
<tr> <td><a name='SkImage_readPixels_2_srcX'><code><strong>srcX</strong></code></a></td>
<td>column index whose absolute value is less than <a href='#SkImage_width'>width()</a></td>
@@ -2132,36 +2132,36 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-bool <a href='#SkImage_scalePixels'>scalePixels</a>(<a href='#SkImage_scalePixels'>const</a> <a href='SkPixmap_Reference#SkPixmap'>SkPixmap</a>& <a href='SkPixmap_Reference#SkPixmap'>dst</a>, <a href='undocumented#SkFilterQuality'>SkFilterQuality</a> <a href='undocumented#SkFilterQuality'>filterQuality</a>,
- <a href='#SkImage_CachingHint'>CachingHint</a> <a href='#SkImage_CachingHint'>cachingHint</a> = <a href='#SkImage_kAllow_CachingHint'>kAllow_CachingHint</a>) <a href='#SkImage_kAllow_CachingHint'>const</a>
+bool <a href='#SkImage_scalePixels'>scalePixels</a>(const <a href='SkPixmap_Reference#SkPixmap'>SkPixmap</a>& dst, <a href='undocumented#SkFilterQuality'>SkFilterQuality</a> filterQuality,
+ <a href='#SkImage_CachingHint'>CachingHint</a> cachingHint = <a href='#SkImage_kAllow_CachingHint'>kAllow_CachingHint</a>) const
</pre>
-Copies <a href='SkImage_Reference#SkImage'>SkImage</a> <a href='SkImage_Reference#SkImage'>to</a> <a href='#SkImage_scalePixels_dst'>dst</a>, <a href='#SkImage_scalePixels_dst'>scaling</a> <a href='#SkImage_scalePixels_dst'>pixels</a> <a href='#SkImage_scalePixels_dst'>to</a> <a href='#SkImage_scalePixels_dst'>fit</a> <a href='#SkImage_scalePixels_dst'>dst</a>.<a href='#SkPixmap_width'>width()</a> <a href='#SkPixmap_width'>and</a> <a href='#SkImage_scalePixels_dst'>dst</a>.<a href='#SkPixmap_height'>height()</a>, <a href='#SkPixmap_height'>and</a>
-converting pixels to match <a href='#SkImage_scalePixels_dst'>dst</a>.<a href='#SkPixmap_colorType'>colorType</a>() <a href='#SkPixmap_colorType'>and</a> <a href='#SkImage_scalePixels_dst'>dst</a>.<a href='#SkPixmap_alphaType'>alphaType</a>(). <a href='#SkPixmap_alphaType'>Returns</a> <a href='#SkPixmap_alphaType'>true</a> <a href='#SkPixmap_alphaType'>if</a>
-pixels are copied. Returns false if <a href='#SkImage_scalePixels_dst'>dst</a>.<a href='#SkPixmap_addr'>addr()</a> <a href='#SkPixmap_addr'>is</a> <a href='#SkPixmap_addr'>nullptr</a>, <a href='#SkPixmap_addr'>or</a> <a href='#SkImage_scalePixels_dst'>dst</a>.<a href='#SkPixmap_rowBytes'>rowBytes</a>() <a href='#SkPixmap_rowBytes'>is</a>
+Copies <a href='SkImage_Reference#SkImage'>SkImage</a> to <a href='#SkImage_scalePixels_dst'>dst</a>, scaling pixels to fit <a href='#SkImage_scalePixels_dst'>dst</a>.<a href='#SkPixmap_width'>width()</a> and <a href='#SkImage_scalePixels_dst'>dst</a>.<a href='#SkPixmap_height'>height()</a>, and
+converting pixels to match <a href='#SkImage_scalePixels_dst'>dst</a>.<a href='#SkPixmap_colorType'>colorType</a>() and <a href='#SkImage_scalePixels_dst'>dst</a>.<a href='#SkPixmap_alphaType'>alphaType</a>(). Returns true if
+pixels are copied. Returns false if <a href='#SkImage_scalePixels_dst'>dst</a>.<a href='#SkPixmap_addr'>addr()</a> is nullptr, or <a href='#SkImage_scalePixels_dst'>dst</a>.<a href='#SkPixmap_rowBytes'>rowBytes</a>() is
less than <a href='#SkImage_scalePixels_dst'>dst</a> <a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a>::<a href='#SkImageInfo_minRowBytes'>minRowBytes</a>.
-Pixels are copied only if <a href='undocumented#Pixel'>pixel</a> <a href='undocumented#Pixel'>conversion</a> <a href='undocumented#Pixel'>is</a> <a href='undocumented#Pixel'>possible</a>. <a href='undocumented#Pixel'>If</a> <a href='SkImage_Reference#SkImage'>SkImage</a> <a href='SkImageInfo_Reference#SkColorType'>SkColorType</a> <a href='SkImageInfo_Reference#SkColorType'>is</a>
-<a href='SkImageInfo_Reference#kGray_8_SkColorType'>kGray_8_SkColorType</a>, <a href='SkImageInfo_Reference#kGray_8_SkColorType'>or</a> <a href='SkImageInfo_Reference#kAlpha_8_SkColorType'>kAlpha_8_SkColorType</a>; <a href='#SkImage_scalePixels_dst'>dst</a>.<a href='#SkPixmap_colorType'>colorType</a>() <a href='#SkPixmap_colorType'>must</a> <a href='#SkPixmap_colorType'>match</a>.
-If <a href='SkImage_Reference#SkImage'>SkImage</a> <a href='SkImageInfo_Reference#SkColorType'>SkColorType</a> <a href='SkImageInfo_Reference#SkColorType'>is</a> <a href='SkImageInfo_Reference#kGray_8_SkColorType'>kGray_8_SkColorType</a>, <a href='#SkImage_scalePixels_dst'>dst</a>.<a href='#SkPixmap_colorSpace'>colorSpace</a>() <a href='#SkPixmap_colorSpace'>must</a> <a href='#SkPixmap_colorSpace'>match</a>.
-If <a href='SkImage_Reference#SkImage'>SkImage</a> <a href='SkImageInfo_Reference#SkAlphaType'>SkAlphaType</a> <a href='SkImageInfo_Reference#SkAlphaType'>is</a> <a href='SkImageInfo_Reference#kOpaque_SkAlphaType'>kOpaque_SkAlphaType</a>, <a href='#SkImage_scalePixels_dst'>dst</a>.<a href='#SkPixmap_alphaType'>alphaType</a>() <a href='#SkPixmap_alphaType'>must</a>
-match. If <a href='SkImage_Reference#SkImage'>SkImage</a> <a href='undocumented#SkColorSpace'>SkColorSpace</a> <a href='undocumented#SkColorSpace'>is</a> <a href='undocumented#SkColorSpace'>nullptr</a>, <a href='#SkImage_scalePixels_dst'>dst</a>.<a href='#SkPixmap_colorSpace'>colorSpace</a>() <a href='#SkPixmap_colorSpace'>must</a> <a href='#SkPixmap_colorSpace'>match</a>. <a href='#SkPixmap_colorSpace'>Returns</a>
-false if <a href='undocumented#Pixel'>pixel</a> <a href='undocumented#Pixel'>conversion</a> <a href='undocumented#Pixel'>is</a> <a href='undocumented#Pixel'>not</a> <a href='undocumented#Pixel'>possible</a>.
+Pixels are copied only if <a href='undocumented#Pixel'>pixel</a> conversion is possible. If <a href='SkImage_Reference#SkImage'>SkImage</a> <a href='SkImageInfo_Reference#SkColorType'>SkColorType</a> is
+<a href='SkImageInfo_Reference#kGray_8_SkColorType'>kGray_8_SkColorType</a>, or <a href='SkImageInfo_Reference#kAlpha_8_SkColorType'>kAlpha_8_SkColorType</a>; <a href='#SkImage_scalePixels_dst'>dst</a>.<a href='#SkPixmap_colorType'>colorType</a>() must match.
+If <a href='SkImage_Reference#SkImage'>SkImage</a> <a href='SkImageInfo_Reference#SkColorType'>SkColorType</a> is <a href='SkImageInfo_Reference#kGray_8_SkColorType'>kGray_8_SkColorType</a>, <a href='#SkImage_scalePixels_dst'>dst</a>.<a href='#SkPixmap_colorSpace'>colorSpace</a>() must match.
+If <a href='SkImage_Reference#SkImage'>SkImage</a> <a href='SkImageInfo_Reference#SkAlphaType'>SkAlphaType</a> is <a href='SkImageInfo_Reference#kOpaque_SkAlphaType'>kOpaque_SkAlphaType</a>, <a href='#SkImage_scalePixels_dst'>dst</a>.<a href='#SkPixmap_alphaType'>alphaType</a>() must
+match. If <a href='SkImage_Reference#SkImage'>SkImage</a> <a href='undocumented#SkColorSpace'>SkColorSpace</a> is nullptr, <a href='#SkImage_scalePixels_dst'>dst</a>.<a href='#SkPixmap_colorSpace'>colorSpace</a>() must match. Returns
+false if <a href='undocumented#Pixel'>pixel</a> conversion is not possible.
-Scales the <a href='SkImage_Reference#Image'>image</a>, <a href='SkImage_Reference#Image'>with</a> <a href='#SkImage_scalePixels_filterQuality'>filterQuality</a>, <a href='#SkImage_scalePixels_filterQuality'>to</a> <a href='#SkImage_scalePixels_filterQuality'>match</a> <a href='#SkImage_scalePixels_dst'>dst</a>.<a href='#SkPixmap_width'>width()</a> <a href='#SkPixmap_width'>and</a> <a href='#SkImage_scalePixels_dst'>dst</a>.<a href='#SkPixmap_height'>height()</a>.
-<a href='#SkImage_scalePixels_filterQuality'>filterQuality</a> <a href='undocumented#kNone_SkFilterQuality'>kNone_SkFilterQuality</a> <a href='undocumented#kNone_SkFilterQuality'>is</a> <a href='undocumented#kNone_SkFilterQuality'>fastest</a>, <a href='undocumented#kNone_SkFilterQuality'>typically</a> <a href='undocumented#kNone_SkFilterQuality'>implemented</a> <a href='undocumented#kNone_SkFilterQuality'>with</a>
-<a href='undocumented#Nearest_Neighbor'>nearest neighbor filter</a>. <a href='undocumented#kLow_SkFilterQuality'>kLow_SkFilterQuality</a> <a href='undocumented#kLow_SkFilterQuality'>is</a> <a href='undocumented#kLow_SkFilterQuality'>typically</a> <a href='undocumented#kLow_SkFilterQuality'>implemented</a> <a href='undocumented#kLow_SkFilterQuality'>with</a>
-<a href='undocumented#Bilerp'>bilerp filter</a>. <a href='undocumented#kMedium_SkFilterQuality'>kMedium_SkFilterQuality</a> <a href='undocumented#kMedium_SkFilterQuality'>is</a> <a href='undocumented#kMedium_SkFilterQuality'>typically</a> <a href='undocumented#kMedium_SkFilterQuality'>implemented</a> <a href='undocumented#kMedium_SkFilterQuality'>with</a>
-<a href='undocumented#Bilerp'>bilerp filter</a>, and <a href='undocumented#MipMap'>mip-map filter</a> when <a href='undocumented#Size'>size</a> <a href='undocumented#Size'>is</a> <a href='undocumented#Size'>reduced</a>.
-<a href='undocumented#kHigh_SkFilterQuality'>kHigh_SkFilterQuality</a> <a href='undocumented#kHigh_SkFilterQuality'>is</a> <a href='undocumented#kHigh_SkFilterQuality'>slowest</a>, <a href='undocumented#kHigh_SkFilterQuality'>typically</a> <a href='undocumented#kHigh_SkFilterQuality'>implemented</a> <a href='undocumented#kHigh_SkFilterQuality'>with</a> <a href='undocumented#BiCubic'>bicubic filter</a>.
+Scales the <a href='SkImage_Reference#Image'>image</a>, with <a href='#SkImage_scalePixels_filterQuality'>filterQuality</a>, to match <a href='#SkImage_scalePixels_dst'>dst</a>.<a href='#SkPixmap_width'>width()</a> and <a href='#SkImage_scalePixels_dst'>dst</a>.<a href='#SkPixmap_height'>height()</a>.
+<a href='#SkImage_scalePixels_filterQuality'>filterQuality</a> <a href='undocumented#kNone_SkFilterQuality'>kNone_SkFilterQuality</a> is fastest, typically implemented with
+<a href='undocumented#Nearest_Neighbor'>nearest neighbor filter</a>. <a href='undocumented#kLow_SkFilterQuality'>kLow_SkFilterQuality</a> is typically implemented with
+<a href='undocumented#Bilerp'>bilerp filter</a>. <a href='undocumented#kMedium_SkFilterQuality'>kMedium_SkFilterQuality</a> is typically implemented with
+<a href='undocumented#Bilerp'>bilerp filter</a>, and <a href='undocumented#MipMap'>mip-map filter</a> when <a href='undocumented#Size'>size</a> is reduced.
+<a href='undocumented#kHigh_SkFilterQuality'>kHigh_SkFilterQuality</a> is slowest, typically implemented with <a href='undocumented#BiCubic'>bicubic filter</a>.
-If <a href='#SkImage_scalePixels_cachingHint'>cachingHint</a> <a href='#SkImage_scalePixels_cachingHint'>is</a> <a href='#SkImage_kAllow_CachingHint'>kAllow_CachingHint</a>, <a href='#SkImage_kAllow_CachingHint'>pixels</a> <a href='#SkImage_kAllow_CachingHint'>may</a> <a href='#SkImage_kAllow_CachingHint'>be</a> <a href='#SkImage_kAllow_CachingHint'>retained</a> <a href='#SkImage_kAllow_CachingHint'>locally</a>.
-If <a href='#SkImage_scalePixels_cachingHint'>cachingHint</a> <a href='#SkImage_scalePixels_cachingHint'>is</a> <a href='#SkImage_kDisallow_CachingHint'>kDisallow_CachingHint</a>, <a href='#SkImage_kDisallow_CachingHint'>pixels</a> <a href='#SkImage_kDisallow_CachingHint'>are</a> <a href='#SkImage_kDisallow_CachingHint'>not</a> <a href='#SkImage_kDisallow_CachingHint'>added</a> <a href='#SkImage_kDisallow_CachingHint'>to</a> <a href='#SkImage_kDisallow_CachingHint'>the</a> <a href='#SkImage_kDisallow_CachingHint'>local</a> <a href='#SkImage_kDisallow_CachingHint'>cache</a>.
+If <a href='#SkImage_scalePixels_cachingHint'>cachingHint</a> is <a href='#SkImage_kAllow_CachingHint'>kAllow_CachingHint</a>, pixels may be retained locally.
+If <a href='#SkImage_scalePixels_cachingHint'>cachingHint</a> is <a href='#SkImage_kDisallow_CachingHint'>kDisallow_CachingHint</a>, pixels are not added to the local cache.
### Parameters
<table> <tr> <td><a name='SkImage_scalePixels_dst'><code><strong>dst</strong></code></a></td>
- <td>destination <a href='SkPixmap_Reference#SkPixmap'>SkPixmap</a>: <a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a>, <a href='SkImageInfo_Reference#SkImageInfo'>pixels</a>, <a href='SkImageInfo_Reference#SkImageInfo'>row</a> <a href='SkImageInfo_Reference#SkImageInfo'>bytes</a></td>
+ <td>destination <a href='SkPixmap_Reference#SkPixmap'>SkPixmap</a>: <a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a>, pixels, row bytes</td>
</tr>
<tr> <td><a name='SkImage_scalePixels_filterQuality'><code><strong>filterQuality</strong></code></a></td>
<td>one of: <a href='undocumented#kNone_SkFilterQuality'>kNone_SkFilterQuality</a>, <a href='undocumented#kLow_SkFilterQuality'>kLow_SkFilterQuality</a>,</td>
@@ -2194,23 +2194,23 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-<a href='undocumented#sk_sp'>sk_sp</a>&<a href='undocumented#sk_sp'>lt</a>;<a href='undocumented#SkData'>SkData</a>&<a href='undocumented#SkData'>gt</a>; <a href='#SkImage_encodeToData'>encodeToData</a>(<a href='undocumented#SkEncodedImageFormat'>SkEncodedImageFormat</a> <a href='undocumented#SkEncodedImageFormat'>encodedImageFormat</a>, <a href='undocumented#SkEncodedImageFormat'>int</a> <a href='undocumented#SkEncodedImageFormat'>quality</a>) <a href='undocumented#SkEncodedImageFormat'>const</a>
+<a href='undocumented#sk_sp'>sk_sp</a><<a href='undocumented#SkData'>SkData</a>> <a href='#SkImage_encodeToData'>encodeToData</a>(<a href='undocumented#SkEncodedImageFormat'>SkEncodedImageFormat</a> encodedImageFormat, int quality) const
</pre>
-Encodes <a href='SkImage_Reference#SkImage'>SkImage</a> <a href='SkImage_Reference#SkImage'>pixels</a>, <a href='SkImage_Reference#SkImage'>returning</a> <a href='SkImage_Reference#SkImage'>result</a> <a href='SkImage_Reference#SkImage'>as</a> <a href='undocumented#SkData'>SkData</a>.
+Encodes <a href='SkImage_Reference#SkImage'>SkImage</a> pixels, returning result as <a href='undocumented#SkData'>SkData</a>.
-Returns nullptr if encoding fails, or if <a href='#SkImage_encodeToData_encodedImageFormat'>encodedImageFormat</a> <a href='#SkImage_encodeToData_encodedImageFormat'>is</a> <a href='#SkImage_encodeToData_encodedImageFormat'>not</a> <a href='#SkImage_encodeToData_encodedImageFormat'>supported</a>.
+Returns nullptr if encoding fails, or if <a href='#SkImage_encodeToData_encodedImageFormat'>encodedImageFormat</a> is not supported.
-<a href='SkImage_Reference#SkImage'>SkImage</a> <a href='SkImage_Reference#SkImage'>encoding</a> <a href='SkImage_Reference#SkImage'>in</a> <a href='SkImage_Reference#SkImage'>a</a> <a href='SkImage_Reference#SkImage'>format</a> <a href='SkImage_Reference#SkImage'>requires</a> <a href='SkImage_Reference#SkImage'>both</a> <a href='SkImage_Reference#SkImage'>building</a> <a href='SkImage_Reference#SkImage'>with</a> <a href='SkImage_Reference#SkImage'>one</a> <a href='SkImage_Reference#SkImage'>or</a> <a href='SkImage_Reference#SkImage'>more</a> <a href='SkImage_Reference#SkImage'>of</a>:
+<a href='SkImage_Reference#SkImage'>SkImage</a> encoding in a format requires both building with one or more of:
SK_HAS_JPEG_LIBRARY, SK_HAS_PNG_LIBRARY, SK_HAS_WEBP_LIBRARY; and platform support
for the encoded format.
-If SK_BUILD_FOR_MAC or SK_BUILD_FOR_IOS is defined, <a href='#SkImage_encodeToData_encodedImageFormat'>encodedImageFormat</a> <a href='#SkImage_encodeToData_encodedImageFormat'>can</a>
+If SK_BUILD_FOR_MAC or SK_BUILD_FOR_IOS is defined, <a href='#SkImage_encodeToData_encodedImageFormat'>encodedImageFormat</a> can
additionally be one of: <a href='undocumented#SkEncodedImageFormat'>SkEncodedImageFormat</a>::<a href='#SkEncodedImageFormat_kICO'>kICO</a>, <a href='undocumented#SkEncodedImageFormat'>SkEncodedImageFormat</a>::<a href='#SkEncodedImageFormat_kBMP'>kBMP</a>,
<a href='undocumented#SkEncodedImageFormat'>SkEncodedImageFormat</a>::<a href='#SkEncodedImageFormat_kGIF'>kGIF</a>.
-<a href='#SkImage_encodeToData_quality'>quality</a> <a href='#SkImage_encodeToData_quality'>is</a> <a href='#SkImage_encodeToData_quality'>a</a> <a href='#SkImage_encodeToData_quality'>platform</a> <a href='#SkImage_encodeToData_quality'>and</a> <a href='#SkImage_encodeToData_quality'>format</a> <a href='#SkImage_encodeToData_quality'>specific</a> <a href='#SkImage_encodeToData_quality'>metric</a> <a href='#SkImage_encodeToData_quality'>trading</a> <a href='#SkImage_encodeToData_quality'>off</a> <a href='undocumented#Size'>size</a> <a href='undocumented#Size'>and</a> <a href='undocumented#Size'>encoding</a>
-error. When used, <a href='#SkImage_encodeToData_quality'>quality</a> <a href='#SkImage_encodeToData_quality'>equaling</a> 100 <a href='#SkImage_encodeToData_quality'>encodes</a> <a href='#SkImage_encodeToData_quality'>with</a> <a href='#SkImage_encodeToData_quality'>the</a> <a href='#SkImage_encodeToData_quality'>least</a> <a href='#SkImage_encodeToData_quality'>error</a>. <a href='#SkImage_encodeToData_quality'>quality</a> <a href='#SkImage_encodeToData_quality'>may</a>
+<a href='#SkImage_encodeToData_quality'>quality</a> is a platform and format specific metric trading off <a href='undocumented#Size'>size</a> and encoding
+error. When used, <a href='#SkImage_encodeToData_quality'>quality</a> equaling 100 encodes with the least error. <a href='#SkImage_encodeToData_quality'>quality</a> may
be ignored by the encoder.
### Parameters
@@ -2231,7 +2231,7 @@
### Return Value
-encoded <a href='SkImage_Reference#SkImage'>SkImage</a>, <a href='SkImage_Reference#SkImage'>or</a> <a href='SkImage_Reference#SkImage'>nullptr</a>
+encoded <a href='SkImage_Reference#SkImage'>SkImage</a>, or nullptr
### Example
@@ -2246,19 +2246,19 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-<a href='undocumented#sk_sp'>sk_sp</a>&<a href='undocumented#sk_sp'>lt</a>;<a href='undocumented#SkData'>SkData</a>&<a href='undocumented#SkData'>gt</a>; <a href='#SkImage_encodeToData'>encodeToData</a>() <a href='#SkImage_encodeToData'>const</a>
+<a href='undocumented#sk_sp'>sk_sp</a><<a href='undocumented#SkData'>SkData</a>> <a href='#SkImage_encodeToData'>encodeToData</a>() const
</pre>
-Encodes <a href='SkImage_Reference#SkImage'>SkImage</a> <a href='SkImage_Reference#SkImage'>pixels</a>, <a href='SkImage_Reference#SkImage'>returning</a> <a href='SkImage_Reference#SkImage'>result</a> <a href='SkImage_Reference#SkImage'>as</a> <a href='undocumented#SkData'>SkData</a>. <a href='undocumented#SkData'>Returns</a> <a href='undocumented#SkData'>existing</a> <a href='undocumented#SkData'>encoded</a> <a href='undocumented#Data'>data</a>
-if present; otherwise, <a href='SkImage_Reference#SkImage'>SkImage</a> <a href='SkImage_Reference#SkImage'>is</a> <a href='SkImage_Reference#SkImage'>encoded</a> <a href='SkImage_Reference#SkImage'>with</a> <a href='undocumented#SkEncodedImageFormat'>SkEncodedImageFormat</a>::<a href='#SkEncodedImageFormat_kPNG'>kPNG</a>. <a href='#SkEncodedImageFormat_kPNG'>Skia</a>
+Encodes <a href='SkImage_Reference#SkImage'>SkImage</a> pixels, returning result as <a href='undocumented#SkData'>SkData</a>. Returns existing encoded <a href='undocumented#Data'>data</a>
+if present; otherwise, <a href='SkImage_Reference#SkImage'>SkImage</a> is encoded with <a href='undocumented#SkEncodedImageFormat'>SkEncodedImageFormat</a>::<a href='#SkEncodedImageFormat_kPNG'>kPNG</a>. Skia
must be built with SK_HAS_PNG_LIBRARY to encode <a href='SkImage_Reference#SkImage'>SkImage</a>.
-Returns nullptr if existing encoded <a href='undocumented#Data'>data</a> <a href='undocumented#Data'>is</a> <a href='undocumented#Data'>missing</a> <a href='undocumented#Data'>or</a> <a href='undocumented#Data'>invalid</a>, <a href='undocumented#Data'>and</a>
+Returns nullptr if existing encoded <a href='undocumented#Data'>data</a> is missing or invalid, and
encoding fails.
### Return Value
-encoded <a href='SkImage_Reference#SkImage'>SkImage</a>, <a href='SkImage_Reference#SkImage'>or</a> <a href='SkImage_Reference#SkImage'>nullptr</a>
+encoded <a href='SkImage_Reference#SkImage'>SkImage</a>, or nullptr
### Example
@@ -2273,18 +2273,18 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-<a href='undocumented#sk_sp'>sk_sp</a>&<a href='undocumented#sk_sp'>lt</a>;<a href='undocumented#SkData'>SkData</a>&<a href='undocumented#SkData'>gt</a>; <a href='#SkImage_refEncodedData'>refEncodedData</a>() <a href='#SkImage_refEncodedData'>const</a>
+<a href='undocumented#sk_sp'>sk_sp</a><<a href='undocumented#SkData'>SkData</a>> <a href='#SkImage_refEncodedData'>refEncodedData</a>() const
</pre>
-Returns encoded <a href='SkImage_Reference#SkImage'>SkImage</a> <a href='SkImage_Reference#SkImage'>pixels</a> <a href='SkImage_Reference#SkImage'>as</a> <a href='undocumented#SkData'>SkData</a>, <a href='undocumented#SkData'>if</a> <a href='SkImage_Reference#SkImage'>SkImage</a> <a href='SkImage_Reference#SkImage'>was</a> <a href='SkImage_Reference#SkImage'>created</a> <a href='SkImage_Reference#SkImage'>from</a> <a href='SkImage_Reference#SkImage'>supported</a>
-encoded <a href='SkStream_Reference#Stream'>stream</a> <a href='SkStream_Reference#Stream'>format</a>. <a href='SkStream_Reference#Stream'>Platform</a> <a href='SkStream_Reference#Stream'>support</a> <a href='SkStream_Reference#Stream'>for</a> <a href='SkStream_Reference#Stream'>formats</a> <a href='SkStream_Reference#Stream'>vary</a> <a href='SkStream_Reference#Stream'>and</a> <a href='SkStream_Reference#Stream'>may</a> <a href='SkStream_Reference#Stream'>require</a> <a href='SkStream_Reference#Stream'>building</a>
+Returns encoded <a href='SkImage_Reference#SkImage'>SkImage</a> pixels as <a href='undocumented#SkData'>SkData</a>, if <a href='SkImage_Reference#SkImage'>SkImage</a> was created from supported
+encoded <a href='SkStream_Reference#Stream'>stream</a> format. Platform support for formats vary and may require building
with one or more of: SK_HAS_JPEG_LIBRARY, SK_HAS_PNG_LIBRARY, SK_HAS_WEBP_LIBRARY.
-Returns nullptr if <a href='SkImage_Reference#SkImage'>SkImage</a> <a href='SkImage_Reference#SkImage'>contents</a> <a href='SkImage_Reference#SkImage'>are</a> <a href='SkImage_Reference#SkImage'>not</a> <a href='SkImage_Reference#SkImage'>encoded</a>.
+Returns nullptr if <a href='SkImage_Reference#SkImage'>SkImage</a> contents are not encoded.
### Return Value
-encoded <a href='SkImage_Reference#SkImage'>SkImage</a>, <a href='SkImage_Reference#SkImage'>or</a> <a href='SkImage_Reference#SkImage'>nullptr</a>
+encoded <a href='SkImage_Reference#SkImage'>SkImage</a>, or nullptr
### Example
@@ -2301,14 +2301,14 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-<a href='undocumented#sk_sp'>sk_sp</a>&<a href='undocumented#sk_sp'>lt</a>;<a href='SkImage_Reference#SkImage'>SkImage</a>&<a href='SkImage_Reference#SkImage'>gt</a>; <a href='#SkImage_makeSubset'>makeSubset</a>(<a href='#SkImage_makeSubset'>const</a> <a href='SkIRect_Reference#SkIRect'>SkIRect</a>& <a href='SkIRect_Reference#SkIRect'>subset</a>) <a href='SkIRect_Reference#SkIRect'>const</a>
+<a href='undocumented#sk_sp'>sk_sp</a><<a href='SkImage_Reference#SkImage'>SkImage</a>> <a href='#SkImage_makeSubset'>makeSubset</a>(const <a href='SkIRect_Reference#SkIRect'>SkIRect</a>& subset) const
</pre>
-Returns <a href='#SkImage_makeSubset_subset'>subset</a> <a href='#SkImage_makeSubset_subset'>of</a> <a href='SkImage_Reference#SkImage'>SkImage</a>. <a href='#SkImage_makeSubset_subset'>subset</a> <a href='#SkImage_makeSubset_subset'>must</a> <a href='#SkImage_makeSubset_subset'>be</a> <a href='#SkImage_makeSubset_subset'>fully</a> <a href='#SkImage_makeSubset_subset'>contained</a> <a href='#SkImage_makeSubset_subset'>by</a> <a href='SkImage_Reference#SkImage'>SkImage</a> <a href='#SkImage_dimensions'>dimensions()</a>.
+Returns <a href='#SkImage_makeSubset_subset'>subset</a> of <a href='SkImage_Reference#SkImage'>SkImage</a>. <a href='#SkImage_makeSubset_subset'>subset</a> must be fully contained by <a href='SkImage_Reference#SkImage'>SkImage</a> <a href='#SkImage_dimensions'>dimensions()</a>.
The implementation may share pixels, or may copy them.
-Returns nullptr if <a href='#SkImage_makeSubset_subset'>subset</a> <a href='#SkImage_makeSubset_subset'>is</a> <a href='#SkImage_makeSubset_subset'>empty</a>, <a href='#SkImage_makeSubset_subset'>or</a> <a href='#SkImage_makeSubset_subset'>subset</a> <a href='#SkImage_makeSubset_subset'>is</a> <a href='#SkImage_makeSubset_subset'>not</a> <a href='#SkImage_makeSubset_subset'>contained</a> <a href='#SkImage_makeSubset_subset'>by</a> <a href='#SkImage_makeSubset_subset'>bounds</a>, <a href='#SkImage_makeSubset_subset'>or</a>
-pixels in <a href='SkImage_Reference#SkImage'>SkImage</a> <a href='SkImage_Reference#SkImage'>could</a> <a href='SkImage_Reference#SkImage'>not</a> <a href='SkImage_Reference#SkImage'>be</a> <a href='SkImage_Reference#SkImage'>read</a> <a href='SkImage_Reference#SkImage'>or</a> <a href='SkImage_Reference#SkImage'>copied</a>.
+Returns nullptr if <a href='#SkImage_makeSubset_subset'>subset</a> is empty, or <a href='#SkImage_makeSubset_subset'>subset</a> is not contained by bounds, or
+pixels in <a href='SkImage_Reference#SkImage'>SkImage</a> could not be read or copied.
### Parameters
@@ -2319,7 +2319,7 @@
### Return Value
-partial or full <a href='SkImage_Reference#SkImage'>SkImage</a>, <a href='SkImage_Reference#SkImage'>or</a> <a href='SkImage_Reference#SkImage'>nullptr</a>
+partial or full <a href='SkImage_Reference#SkImage'>SkImage</a>, or nullptr
### Example
@@ -2334,17 +2334,17 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-<a href='undocumented#sk_sp'>sk_sp</a>&<a href='undocumented#sk_sp'>lt</a>;<a href='SkImage_Reference#SkImage'>SkImage</a>&<a href='SkImage_Reference#SkImage'>gt</a>; <a href='#SkImage_makeTextureImage'>makeTextureImage</a>(<a href='undocumented#GrContext'>GrContext</a>* <a href='undocumented#GrContext'>context</a>, <a href='undocumented#SkColorSpace'>SkColorSpace</a>* <a href='undocumented#SkColorSpace'>dstColorSpace</a>,
- <a href='undocumented#GrMipMapped'>GrMipMapped</a> <a href='undocumented#GrMipMapped'>mipMapped</a> = <a href='undocumented#GrMipMapped'>GrMipMapped</a>::<a href='#GrMipMapped_kNo'>kNo</a>) <a href='#GrMipMapped_kNo'>const</a>
+<a href='undocumented#sk_sp'>sk_sp</a><<a href='SkImage_Reference#SkImage'>SkImage</a>> <a href='#SkImage_makeTextureImage'>makeTextureImage</a>(<a href='undocumented#GrContext'>GrContext</a>* context, <a href='undocumented#SkColorSpace'>SkColorSpace</a>* dstColorSpace,
+ <a href='undocumented#GrMipMapped'>GrMipMapped</a> mipMapped = <a href='undocumented#GrMipMapped'>GrMipMapped</a>::<a href='#GrMipMapped_kNo'>kNo</a>) const
</pre>
-Returns <a href='SkImage_Reference#SkImage'>SkImage</a> <a href='SkImage_Reference#SkImage'>backed</a> <a href='SkImage_Reference#SkImage'>by</a> <a href='undocumented#GPU_Texture'>GPU texture</a> <a href='SkImage_Reference#SkImage'>associated</a> <a href='SkImage_Reference#SkImage'>with</a> <a href='#SkImage_makeTextureImage_context'>context</a>. <a href='#SkImage_makeTextureImage_context'>Returned</a> <a href='SkImage_Reference#SkImage'>SkImage</a> <a href='SkImage_Reference#SkImage'>is</a>
-compatible with <a href='SkSurface_Reference#SkSurface'>SkSurface</a> <a href='SkSurface_Reference#SkSurface'>created</a> <a href='SkSurface_Reference#SkSurface'>with</a> <a href='#SkImage_makeTextureImage_dstColorSpace'>dstColorSpace</a>. <a href='#SkImage_makeTextureImage_dstColorSpace'>The</a> <a href='#SkImage_makeTextureImage_dstColorSpace'>returned</a> <a href='SkImage_Reference#SkImage'>SkImage</a> <a href='SkImage_Reference#SkImage'>respects</a>
-<a href='#SkImage_makeTextureImage_mipMapped'>mipMapped</a> <a href='#SkImage_makeTextureImage_mipMapped'>setting</a>; <a href='#SkImage_makeTextureImage_mipMapped'>if</a> <a href='#SkImage_makeTextureImage_mipMapped'>mipMapped</a> <a href='#SkImage_makeTextureImage_mipMapped'>equals</a> <a href='undocumented#GrMipMapped'>GrMipMapped</a>::<a href='#GrMipMapped_kYes'>kYes</a>, <a href='#GrMipMapped_kYes'>the</a> <a href='#GrMipMapped_kYes'>backing</a> <a href='undocumented#Texture'>texture</a>
-allocates <a href='undocumented#Mip_Map'>mip map</a> levels. Returns original <a href='SkImage_Reference#SkImage'>SkImage</a> <a href='SkImage_Reference#SkImage'>if</a> <a href='#SkImage_makeTextureImage_context'>context</a>
-and <a href='#SkImage_makeTextureImage_dstColorSpace'>dstColorSpace</a> <a href='#SkImage_makeTextureImage_dstColorSpace'>match</a> <a href='#SkImage_makeTextureImage_dstColorSpace'>and</a> <a href='#SkImage_makeTextureImage_mipMapped'>mipMapped</a> <a href='#SkImage_makeTextureImage_mipMapped'>is</a> <a href='#SkImage_makeTextureImage_mipMapped'>compatible</a> <a href='#SkImage_makeTextureImage_mipMapped'>with</a> <a href='#SkImage_makeTextureImage_mipMapped'>backing</a> <a href='undocumented#GPU_Texture'>GPU texture</a>.
+Returns <a href='SkImage_Reference#SkImage'>SkImage</a> backed by <a href='undocumented#GPU_Texture'>GPU texture</a> associated with <a href='#SkImage_makeTextureImage_context'>context</a>. Returned <a href='SkImage_Reference#SkImage'>SkImage</a> is
+compatible with <a href='SkSurface_Reference#SkSurface'>SkSurface</a> created with <a href='#SkImage_makeTextureImage_dstColorSpace'>dstColorSpace</a>. The returned <a href='SkImage_Reference#SkImage'>SkImage</a> respects
+<a href='#SkImage_makeTextureImage_mipMapped'>mipMapped</a> setting; if <a href='#SkImage_makeTextureImage_mipMapped'>mipMapped</a> equals <a href='undocumented#GrMipMapped'>GrMipMapped</a>::<a href='#GrMipMapped_kYes'>kYes</a>, the backing <a href='undocumented#Texture'>texture</a>
+allocates <a href='undocumented#Mip_Map'>mip map</a> levels. Returns original <a href='SkImage_Reference#SkImage'>SkImage</a> if <a href='#SkImage_makeTextureImage_context'>context</a>
+and <a href='#SkImage_makeTextureImage_dstColorSpace'>dstColorSpace</a> match and <a href='#SkImage_makeTextureImage_mipMapped'>mipMapped</a> is compatible with backing <a href='undocumented#GPU_Texture'>GPU texture</a>.
-Returns nullptr if <a href='#SkImage_makeTextureImage_context'>context</a> <a href='#SkImage_makeTextureImage_context'>is</a> <a href='#SkImage_makeTextureImage_context'>nullptr</a>, <a href='#SkImage_makeTextureImage_context'>or</a> <a href='#SkImage_makeTextureImage_context'>if</a> <a href='SkImage_Reference#SkImage'>SkImage</a> <a href='SkImage_Reference#SkImage'>was</a> <a href='SkImage_Reference#SkImage'>created</a> <a href='SkImage_Reference#SkImage'>with</a> <a href='SkImage_Reference#SkImage'>another</a>
+Returns nullptr if <a href='#SkImage_makeTextureImage_context'>context</a> is nullptr, or if <a href='SkImage_Reference#SkImage'>SkImage</a> was created with another
<a href='undocumented#GrContext'>GrContext</a>.
### Parameters
@@ -2353,16 +2353,16 @@
<td><a href='undocumented#GPU_Context'>GPU context</a></td>
</tr>
<tr> <td><a name='SkImage_makeTextureImage_dstColorSpace'><code><strong>dstColorSpace</strong></code></a></td>
- <td>range of colors of matching <a href='SkSurface_Reference#SkSurface'>SkSurface</a> <a href='SkSurface_Reference#SkSurface'>on</a> <a href='SkSurface_Reference#SkSurface'>GPU</a></td>
+ <td>range of colors of matching <a href='SkSurface_Reference#SkSurface'>SkSurface</a> on GPU</td>
</tr>
<tr> <td><a name='SkImage_makeTextureImage_mipMapped'><code><strong>mipMapped</strong></code></a></td>
- <td>whether created <a href='SkImage_Reference#SkImage'>SkImage</a> <a href='undocumented#Texture'>texture</a> <a href='undocumented#Texture'>must</a> <a href='undocumented#Texture'>allocate</a> <a href='undocumented#Mip_Map'>mip map</a> <a href='undocumented#Texture'>levels</a></td>
+ <td>whether created <a href='SkImage_Reference#SkImage'>SkImage</a> <a href='undocumented#Texture'>texture</a> must allocate <a href='undocumented#Mip_Map'>mip map</a> levels</td>
</tr>
</table>
### Return Value
-created <a href='SkImage_Reference#SkImage'>SkImage</a>, <a href='SkImage_Reference#SkImage'>or</a> <a href='SkImage_Reference#SkImage'>nullptr</a>
+created <a href='SkImage_Reference#SkImage'>SkImage</a>, or nullptr
### Example
@@ -2377,18 +2377,18 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-<a href='undocumented#sk_sp'>sk_sp</a>&<a href='undocumented#sk_sp'>lt</a>;<a href='SkImage_Reference#SkImage'>SkImage</a>&<a href='SkImage_Reference#SkImage'>gt</a>; <a href='#SkImage_makeNonTextureImage'>makeNonTextureImage</a>() <a href='#SkImage_makeNonTextureImage'>const</a>
+<a href='undocumented#sk_sp'>sk_sp</a><<a href='SkImage_Reference#SkImage'>SkImage</a>> <a href='#SkImage_makeNonTextureImage'>makeNonTextureImage</a>() const
</pre>
-Returns raster <a href='SkImage_Reference#Image'>image</a> <a href='SkImage_Reference#Image'>or</a> <a href='SkImage_Reference#Image'>lazy</a> <a href='SkImage_Reference#Image'>image</a>. <a href='SkImage_Reference#Image'>Copies</a> <a href='SkImage_Reference#SkImage'>SkImage</a> <a href='SkImage_Reference#SkImage'>backed</a> <a href='SkImage_Reference#SkImage'>by</a> <a href='SkImage_Reference#SkImage'>GPU</a> <a href='undocumented#Texture'>texture</a> <a href='undocumented#Texture'>into</a>
-CPU memory if needed. Returns original <a href='SkImage_Reference#SkImage'>SkImage</a> <a href='SkImage_Reference#SkImage'>if</a> <a href='SkImage_Reference#SkImage'>decoded</a> <a href='SkImage_Reference#SkImage'>in</a> <a href='SkImage_Reference#SkImage'>raster</a> <a href='SkBitmap_Reference#Bitmap'>bitmap</a>,
+Returns raster <a href='SkImage_Reference#Image'>image</a> or lazy <a href='SkImage_Reference#Image'>image</a>. Copies <a href='SkImage_Reference#SkImage'>SkImage</a> backed by GPU <a href='undocumented#Texture'>texture</a> into
+CPU memory if needed. Returns original <a href='SkImage_Reference#SkImage'>SkImage</a> if decoded in raster <a href='SkBitmap_Reference#Bitmap'>bitmap</a>,
or if encoded in a <a href='SkStream_Reference#Stream'>stream</a>.
-Returns nullptr if backed by GPU <a href='undocumented#Texture'>texture</a> <a href='undocumented#Texture'>and</a> <a href='undocumented#Texture'>copy</a> <a href='undocumented#Texture'>fails</a>.
+Returns nullptr if backed by GPU <a href='undocumented#Texture'>texture</a> and copy fails.
### Return Value
-raster <a href='SkImage_Reference#Image'>image</a>, <a href='SkImage_Reference#Image'>lazy</a> <a href='SkImage_Reference#Image'>image</a>, <a href='SkImage_Reference#Image'>or</a> <a href='SkImage_Reference#Image'>nullptr</a>
+raster <a href='SkImage_Reference#Image'>image</a>, lazy <a href='SkImage_Reference#Image'>image</a>, or nullptr
### Example
@@ -2403,18 +2403,18 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-<a href='undocumented#sk_sp'>sk_sp</a>&<a href='undocumented#sk_sp'>lt</a>;<a href='SkImage_Reference#SkImage'>SkImage</a>&<a href='SkImage_Reference#SkImage'>gt</a>; <a href='#SkImage_makeRasterImage'>makeRasterImage</a>() <a href='#SkImage_makeRasterImage'>const</a>
+<a href='undocumented#sk_sp'>sk_sp</a><<a href='SkImage_Reference#SkImage'>SkImage</a>> <a href='#SkImage_makeRasterImage'>makeRasterImage</a>() const
</pre>
-Returns raster <a href='SkImage_Reference#Image'>image</a>. <a href='SkImage_Reference#Image'>Copies</a> <a href='SkImage_Reference#SkImage'>SkImage</a> <a href='SkImage_Reference#SkImage'>backed</a> <a href='SkImage_Reference#SkImage'>by</a> <a href='SkImage_Reference#SkImage'>GPU</a> <a href='undocumented#Texture'>texture</a> <a href='undocumented#Texture'>into</a> <a href='undocumented#Texture'>CPU</a> <a href='undocumented#Texture'>memory</a>,
-or decodes <a href='SkImage_Reference#SkImage'>SkImage</a> <a href='SkImage_Reference#SkImage'>from</a> <a href='SkImage_Reference#SkImage'>lazy</a> <a href='SkImage_Reference#Image'>image</a>. <a href='SkImage_Reference#Image'>Returns</a> <a href='SkImage_Reference#Image'>original</a> <a href='SkImage_Reference#SkImage'>SkImage</a> <a href='SkImage_Reference#SkImage'>if</a> <a href='SkImage_Reference#SkImage'>decoded</a> <a href='SkImage_Reference#SkImage'>in</a>
+Returns raster <a href='SkImage_Reference#Image'>image</a>. Copies <a href='SkImage_Reference#SkImage'>SkImage</a> backed by GPU <a href='undocumented#Texture'>texture</a> into CPU memory,
+or decodes <a href='SkImage_Reference#SkImage'>SkImage</a> from lazy <a href='SkImage_Reference#Image'>image</a>. Returns original <a href='SkImage_Reference#SkImage'>SkImage</a> if decoded in
raster <a href='SkBitmap_Reference#Bitmap'>bitmap</a>.
-Returns nullptr if copy, decode, or <a href='undocumented#Pixel'>pixel</a> <a href='undocumented#Pixel'>read</a> <a href='undocumented#Pixel'>fails</a>.
+Returns nullptr if copy, decode, or <a href='undocumented#Pixel'>pixel</a> read fails.
### Return Value
-raster <a href='SkImage_Reference#Image'>image</a>, <a href='SkImage_Reference#Image'>or</a> <a href='SkImage_Reference#Image'>nullptr</a>
+raster <a href='SkImage_Reference#Image'>image</a>, or nullptr
### Example
@@ -2429,52 +2429,52 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-<a href='undocumented#sk_sp'>sk_sp</a>&<a href='undocumented#sk_sp'>lt</a>;<a href='SkImage_Reference#SkImage'>SkImage</a>&<a href='SkImage_Reference#SkImage'>gt</a>; <a href='#SkImage_makeWithFilter'>makeWithFilter</a>(<a href='#SkImage_makeWithFilter'>const</a> <a href='undocumented#SkImageFilter'>SkImageFilter</a>* <a href='undocumented#SkImageFilter'>filter</a>, <a href='undocumented#SkImageFilter'>const</a> <a href='SkIRect_Reference#SkIRect'>SkIRect</a>& <a href='SkIRect_Reference#SkIRect'>subset</a>,
- <a href='SkIRect_Reference#SkIRect'>const</a> <a href='SkIRect_Reference#SkIRect'>SkIRect</a>& <a href='SkIRect_Reference#SkIRect'>clipBounds</a>, <a href='SkIRect_Reference#SkIRect'>SkIRect</a>* <a href='SkIRect_Reference#SkIRect'>outSubset</a>, <a href='SkIPoint_Reference#SkIPoint'>SkIPoint</a>* <a href='SkIPoint_Reference#SkIPoint'>offset</a>) <a href='SkIPoint_Reference#SkIPoint'>const</a>
+<a href='undocumented#sk_sp'>sk_sp</a><<a href='SkImage_Reference#SkImage'>SkImage</a>> <a href='#SkImage_makeWithFilter'>makeWithFilter</a>(const <a href='undocumented#SkImageFilter'>SkImageFilter</a>* filter, const <a href='SkIRect_Reference#SkIRect'>SkIRect</a>& subset,
+ const <a href='SkIRect_Reference#SkIRect'>SkIRect</a>& clipBounds, <a href='SkIRect_Reference#SkIRect'>SkIRect</a>* outSubset, <a href='SkIPoint_Reference#SkIPoint'>SkIPoint</a>* offset) const
</pre>
-Creates filtered <a href='SkImage_Reference#SkImage'>SkImage</a>. <a href='#SkImage_makeWithFilter_filter'>filter</a> <a href='#SkImage_makeWithFilter_filter'>processes</a> <a href='#SkImage_makeWithFilter_filter'>original</a> <a href='SkImage_Reference#SkImage'>SkImage</a>, <a href='SkImage_Reference#SkImage'>potentially</a> <a href='SkImage_Reference#SkImage'>changing</a>
-<a href='SkColor_Reference#Color'>color</a>, <a href='SkColor_Reference#Color'>position</a>, <a href='SkColor_Reference#Color'>and</a> <a href='undocumented#Size'>size</a>. <a href='#SkImage_makeWithFilter_subset'>subset</a> <a href='#SkImage_makeWithFilter_subset'>is</a> <a href='#SkImage_makeWithFilter_subset'>the</a> <a href='#SkImage_makeWithFilter_subset'>bounds</a> <a href='#SkImage_makeWithFilter_subset'>of</a> <a href='#SkImage_makeWithFilter_subset'>original</a> <a href='SkImage_Reference#SkImage'>SkImage</a> <a href='SkImage_Reference#SkImage'>processed</a>
-by <a href='#SkImage_makeWithFilter_filter'>filter</a>. <a href='#SkImage_makeWithFilter_clipBounds'>clipBounds</a> <a href='#SkImage_makeWithFilter_clipBounds'>is</a> <a href='#SkImage_makeWithFilter_clipBounds'>the</a> <a href='#SkImage_makeWithFilter_clipBounds'>expected</a> <a href='#SkImage_makeWithFilter_clipBounds'>bounds</a> <a href='#SkImage_makeWithFilter_clipBounds'>of</a> <a href='#SkImage_makeWithFilter_clipBounds'>the</a> <a href='#SkImage_makeWithFilter_clipBounds'>filtered</a> <a href='SkImage_Reference#SkImage'>SkImage</a>. <a href='#SkImage_makeWithFilter_outSubset'>outSubset</a>
-is required storage for the actual bounds of the filtered <a href='SkImage_Reference#SkImage'>SkImage</a>. <a href='#SkImage_makeWithFilter_offset'>offset</a> <a href='#SkImage_makeWithFilter_offset'>is</a>
+Creates filtered <a href='SkImage_Reference#SkImage'>SkImage</a>. <a href='#SkImage_makeWithFilter_filter'>filter</a> processes original <a href='SkImage_Reference#SkImage'>SkImage</a>, potentially changing
+<a href='SkColor_Reference#Color'>color</a>, position, and <a href='undocumented#Size'>size</a>. <a href='#SkImage_makeWithFilter_subset'>subset</a> is the bounds of original <a href='SkImage_Reference#SkImage'>SkImage</a> processed
+by <a href='#SkImage_makeWithFilter_filter'>filter</a>. <a href='#SkImage_makeWithFilter_clipBounds'>clipBounds</a> is the expected bounds of the filtered <a href='SkImage_Reference#SkImage'>SkImage</a>. <a href='#SkImage_makeWithFilter_outSubset'>outSubset</a>
+is required storage for the actual bounds of the filtered <a href='SkImage_Reference#SkImage'>SkImage</a>. <a href='#SkImage_makeWithFilter_offset'>offset</a> is
required storage for translation of returned <a href='SkImage_Reference#SkImage'>SkImage</a>.
-Returns nullptr if <a href='SkImage_Reference#SkImage'>SkImage</a> <a href='SkImage_Reference#SkImage'>could</a> <a href='SkImage_Reference#SkImage'>not</a> <a href='SkImage_Reference#SkImage'>be</a> <a href='SkImage_Reference#SkImage'>created</a>. <a href='SkImage_Reference#SkImage'>If</a> <a href='SkImage_Reference#SkImage'>nullptr</a> <a href='SkImage_Reference#SkImage'>is</a> <a href='SkImage_Reference#SkImage'>returned</a>, <a href='#SkImage_makeWithFilter_outSubset'>outSubset</a>
-and <a href='#SkImage_makeWithFilter_offset'>offset</a> <a href='#SkImage_makeWithFilter_offset'>are</a> <a href='#SkImage_makeWithFilter_offset'>undefined</a>.
+Returns nullptr if <a href='SkImage_Reference#SkImage'>SkImage</a> could not be created. If nullptr is returned, <a href='#SkImage_makeWithFilter_outSubset'>outSubset</a>
+and <a href='#SkImage_makeWithFilter_offset'>offset</a> are undefined.
-Useful for animation of <a href='undocumented#SkImageFilter'>SkImageFilter</a> <a href='undocumented#SkImageFilter'>that</a> <a href='undocumented#SkImageFilter'>varies</a> <a href='undocumented#Size'>size</a> <a href='undocumented#Size'>from</a> <a href='undocumented#Size'>frame</a> <a href='undocumented#Size'>to</a> <a href='undocumented#Size'>frame</a>.
-Returned <a href='SkImage_Reference#SkImage'>SkImage</a> <a href='SkImage_Reference#SkImage'>is</a> <a href='SkImage_Reference#SkImage'>created</a> <a href='SkImage_Reference#SkImage'>larger</a> <a href='SkImage_Reference#SkImage'>than</a> <a href='SkImage_Reference#SkImage'>required</a> <a href='SkImage_Reference#SkImage'>by</a> <a href='#SkImage_makeWithFilter_filter'>filter</a> <a href='#SkImage_makeWithFilter_filter'>so</a> <a href='#SkImage_makeWithFilter_filter'>that</a> <a href='undocumented#GPU_Texture'>GPU texture</a>
-can be reused with different sized effects. <a href='#SkImage_makeWithFilter_outSubset'>outSubset</a> <a href='#SkImage_makeWithFilter_outSubset'>describes</a> <a href='#SkImage_makeWithFilter_outSubset'>the</a> <a href='#SkImage_makeWithFilter_outSubset'>valid</a> <a href='#SkImage_makeWithFilter_outSubset'>bounds</a>
-of <a href='undocumented#GPU_Texture'>GPU texture</a> returned. <a href='#SkImage_makeWithFilter_offset'>offset</a> <a href='#SkImage_makeWithFilter_offset'>translates</a> <a href='#SkImage_makeWithFilter_offset'>the</a> <a href='#SkImage_makeWithFilter_offset'>returned</a> <a href='SkImage_Reference#SkImage'>SkImage</a> <a href='SkImage_Reference#SkImage'>to</a> <a href='SkImage_Reference#SkImage'>keep</a> <a href='SkImage_Reference#SkImage'>subsequent</a>
+Useful for animation of <a href='undocumented#SkImageFilter'>SkImageFilter</a> that varies <a href='undocumented#Size'>size</a> from frame to frame.
+Returned <a href='SkImage_Reference#SkImage'>SkImage</a> is created larger than required by <a href='#SkImage_makeWithFilter_filter'>filter</a> so that <a href='undocumented#GPU_Texture'>GPU texture</a>
+can be reused with different sized effects. <a href='#SkImage_makeWithFilter_outSubset'>outSubset</a> describes the valid bounds
+of <a href='undocumented#GPU_Texture'>GPU texture</a> returned. <a href='#SkImage_makeWithFilter_offset'>offset</a> translates the returned <a href='SkImage_Reference#SkImage'>SkImage</a> to keep subsequent
animation frames aligned with respect to each other.
### Parameters
<table> <tr> <td><a name='SkImage_makeWithFilter_filter'><code><strong>filter</strong></code></a></td>
- <td>how <a href='SkImage_Reference#SkImage'>SkImage</a> <a href='SkImage_Reference#SkImage'>is</a> <a href='SkImage_Reference#SkImage'>sampled</a> <a href='SkImage_Reference#SkImage'>when</a> <a href='SkImage_Reference#SkImage'>transformed</a></td>
+ <td>how <a href='SkImage_Reference#SkImage'>SkImage</a> is sampled when transformed</td>
</tr>
<tr> <td><a name='SkImage_makeWithFilter_subset'><code><strong>subset</strong></code></a></td>
- <td>bounds of <a href='SkImage_Reference#SkImage'>SkImage</a> <a href='SkImage_Reference#SkImage'>processed</a> <a href='SkImage_Reference#SkImage'>by</a> <a href='#SkImage_makeWithFilter_filter'>filter</a></td>
+ <td>bounds of <a href='SkImage_Reference#SkImage'>SkImage</a> processed by <a href='#SkImage_makeWithFilter_filter'>filter</a></td>
</tr>
<tr> <td><a name='SkImage_makeWithFilter_clipBounds'><code><strong>clipBounds</strong></code></a></td>
<td>expected bounds of filtered <a href='SkImage_Reference#SkImage'>SkImage</a></td>
</tr>
<tr> <td><a name='SkImage_makeWithFilter_outSubset'><code><strong>outSubset</strong></code></a></td>
- <td>storage for returned <a href='SkImage_Reference#SkImage'>SkImage</a> <a href='SkImage_Reference#SkImage'>bounds</a></td>
+ <td>storage for returned <a href='SkImage_Reference#SkImage'>SkImage</a> bounds</td>
</tr>
<tr> <td><a name='SkImage_makeWithFilter_offset'><code><strong>offset</strong></code></a></td>
- <td>storage for returned <a href='SkImage_Reference#SkImage'>SkImage</a> <a href='SkImage_Reference#SkImage'>translation</a></td>
+ <td>storage for returned <a href='SkImage_Reference#SkImage'>SkImage</a> translation</td>
</tr>
</table>
### Return Value
-filtered <a href='SkImage_Reference#SkImage'>SkImage</a>, <a href='SkImage_Reference#SkImage'>or</a> <a href='SkImage_Reference#SkImage'>nullptr</a>
+filtered <a href='SkImage_Reference#SkImage'>SkImage</a>, or nullptr
### Example
-<div><fiddle-embed name="85a76163138a2720ac003691d6363938" gpu="true"><div>In each frame of the animation, filtered <a href='SkImage_Reference#Image'>Image</a> <a href='SkImage_Reference#Image'>is</a> <a href='SkImage_Reference#Image'>drawn</a> <a href='SkImage_Reference#Image'>in</a> <a href='SkImage_Reference#Image'>a</a> <a href='SkImage_Reference#Image'>different</a> <a href='SkImage_Reference#Image'>location</a>.
-<a href='SkImage_Reference#Image'>By</a> <a href='SkImage_Reference#Image'>translating</a> <a href='SkCanvas_Reference#Canvas'>canvas</a> <a href='SkCanvas_Reference#Canvas'>by</a> <a href='SkCanvas_Reference#Canvas'>returned</a> <a href='#SkImage_makeWithFilter_offset'>offset</a>, <a href='SkImage_Reference#Image'>Image</a> <a href='SkImage_Reference#Image'>appears</a> <a href='SkImage_Reference#Image'>stationary</a>.
+<div><fiddle-embed name="85a76163138a2720ac003691d6363938" gpu="true"><div>In each frame of the animation, filtered <a href='SkImage_Reference#Image'>Image</a> is drawn in a different location.
+By translating <a href='SkCanvas_Reference#Canvas'>canvas</a> by returned <a href='#SkImage_makeWithFilter_offset'>offset</a>, <a href='SkImage_Reference#Image'>Image</a> appears stationary.
</div></fiddle-embed></div>
### See Also
@@ -2491,33 +2491,33 @@
typedef std::function<void(<a href='undocumented#GrBackendTexture'>GrBackendTexture</a>)> <a href='#SkImage_BackendTextureReleaseProc'>BackendTextureReleaseProc</a>;
</pre>
-Defines a callback function, taking one parameter of type <a href='undocumented#GrBackendTexture'>GrBackendTexture</a> <a href='undocumented#GrBackendTexture'>with</a>
-<a href='undocumented#GrBackendTexture'>no</a> <a href='undocumented#GrBackendTexture'>return</a> <a href='undocumented#GrBackendTexture'>value</a>. <a href='undocumented#GrBackendTexture'>Function</a> <a href='undocumented#GrBackendTexture'>is</a> <a href='undocumented#GrBackendTexture'>called</a> <a href='undocumented#GrBackendTexture'>when</a> <a href='undocumented#GrBackendTexture'>back-end</a> <a href='undocumented#Texture'>texture</a> <a href='undocumented#Texture'>is</a> <a href='undocumented#Texture'>to</a> <a href='undocumented#Texture'>be</a> <a href='undocumented#Texture'>released</a>.
+Defines a callback function, taking one parameter of type <a href='undocumented#GrBackendTexture'>GrBackendTexture</a> with
+no return value. Function is called when back-end <a href='undocumented#Texture'>texture</a> is to be released.
<a name='SkImage_MakeBackendTextureFromSkImage'></a>
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-static bool <a href='#SkImage_MakeBackendTextureFromSkImage'>MakeBackendTextureFromSkImage</a>(<a href='undocumented#GrContext'>GrContext</a>* <a href='undocumented#GrContext'>context</a>, <a href='undocumented#sk_sp'>sk_sp</a>&<a href='undocumented#sk_sp'>lt</a>;<a href='SkImage_Reference#SkImage'>SkImage</a>&<a href='SkImage_Reference#SkImage'>gt</a>; <a href='SkImage_Reference#Image'>image</a>,
- <a href='undocumented#GrBackendTexture'>GrBackendTexture</a>* <a href='undocumented#GrBackendTexture'>backendTexture</a>,
- <a href='#SkImage_BackendTextureReleaseProc'>BackendTextureReleaseProc</a>* <a href='#SkImage_BackendTextureReleaseProc'>backendTextureReleaseProc</a>)
+static bool <a href='#SkImage_MakeBackendTextureFromSkImage'>MakeBackendTextureFromSkImage</a>(<a href='undocumented#GrContext'>GrContext</a>* context, <a href='undocumented#sk_sp'>sk_sp</a><<a href='SkImage_Reference#SkImage'>SkImage</a>> <a href='SkImage_Reference#Image'>image</a>,
+ <a href='undocumented#GrBackendTexture'>GrBackendTexture</a>* backendTexture,
+ <a href='#SkImage_BackendTextureReleaseProc'>BackendTextureReleaseProc</a>* backendTextureReleaseProc)
</pre>
-Creates a <a href='undocumented#GrBackendTexture'>GrBackendTexture</a> <a href='undocumented#GrBackendTexture'>from</a> <a href='undocumented#GrBackendTexture'>the</a> <a href='undocumented#GrBackendTexture'>provided</a> <a href='SkImage_Reference#SkImage'>SkImage</a>. <a href='SkImage_Reference#SkImage'>Returns</a> <a href='SkImage_Reference#SkImage'>true</a> <a href='SkImage_Reference#SkImage'>and</a>
-stores result in <a href='#SkImage_MakeBackendTextureFromSkImage_backendTexture'>backendTexture</a> <a href='#SkImage_MakeBackendTextureFromSkImage_backendTexture'>and</a> <a href='#SkImage_MakeBackendTextureFromSkImage_backendTextureReleaseProc'>backendTextureReleaseProc</a> <a href='#SkImage_MakeBackendTextureFromSkImage_backendTextureReleaseProc'>if</a>
-<a href='undocumented#Texture'>texture</a> <a href='undocumented#Texture'>is</a> <a href='undocumented#Texture'>created</a>; <a href='undocumented#Texture'>otherwise</a>, <a href='undocumented#Texture'>returns</a> <a href='undocumented#Texture'>false</a> <a href='undocumented#Texture'>and</a> <a href='undocumented#Texture'>leaves</a>
-<a href='#SkImage_MakeBackendTextureFromSkImage_backendTexture'>backendTexture</a> <a href='#SkImage_MakeBackendTextureFromSkImage_backendTexture'>and</a> <a href='#SkImage_MakeBackendTextureFromSkImage_backendTextureReleaseProc'>backendTextureReleaseProc</a> <a href='#SkImage_MakeBackendTextureFromSkImage_backendTextureReleaseProc'>unmodified</a>.
+Creates a <a href='undocumented#GrBackendTexture'>GrBackendTexture</a> from the provided <a href='SkImage_Reference#SkImage'>SkImage</a>. Returns true and
+stores result in <a href='#SkImage_MakeBackendTextureFromSkImage_backendTexture'>backendTexture</a> and <a href='#SkImage_MakeBackendTextureFromSkImage_backendTextureReleaseProc'>backendTextureReleaseProc</a> if
+<a href='undocumented#Texture'>texture</a> is created; otherwise, returns false and leaves
+<a href='#SkImage_MakeBackendTextureFromSkImage_backendTexture'>backendTexture</a> and <a href='#SkImage_MakeBackendTextureFromSkImage_backendTextureReleaseProc'>backendTextureReleaseProc</a> unmodified.
-Call <a href='#SkImage_MakeBackendTextureFromSkImage_backendTextureReleaseProc'>backendTextureReleaseProc</a> <a href='#SkImage_MakeBackendTextureFromSkImage_backendTextureReleaseProc'>after</a> <a href='#SkImage_MakeBackendTextureFromSkImage_backendTextureReleaseProc'>deleting</a> <a href='#SkImage_MakeBackendTextureFromSkImage_backendTexture'>backendTexture</a>.
-<a href='#SkImage_MakeBackendTextureFromSkImage_backendTextureReleaseProc'>backendTextureReleaseProc</a> <a href='#SkImage_MakeBackendTextureFromSkImage_backendTextureReleaseProc'>cleans</a> <a href='#SkImage_MakeBackendTextureFromSkImage_backendTextureReleaseProc'>up</a> <a href='#SkImage_MakeBackendTextureFromSkImage_backendTextureReleaseProc'>auxiliary</a> <a href='undocumented#Data'>data</a> <a href='undocumented#Data'>related</a> <a href='undocumented#Data'>to</a> <a href='undocumented#Data'>returned</a>
-<a href='#SkImage_MakeBackendTextureFromSkImage_backendTexture'>backendTexture</a>. <a href='#SkImage_MakeBackendTextureFromSkImage_backendTexture'>The</a> <a href='#SkImage_MakeBackendTextureFromSkImage_backendTexture'>caller</a> <a href='#SkImage_MakeBackendTextureFromSkImage_backendTexture'>must</a> <a href='#SkImage_MakeBackendTextureFromSkImage_backendTexture'>delete</a> <a href='#SkImage_MakeBackendTextureFromSkImage_backendTexture'>returned</a> <a href='#SkImage_MakeBackendTextureFromSkImage_backendTexture'>backendTexture</a> <a href='#SkImage_MakeBackendTextureFromSkImage_backendTexture'>after</a> <a href='#SkImage_MakeBackendTextureFromSkImage_backendTexture'>use</a>.
+Call <a href='#SkImage_MakeBackendTextureFromSkImage_backendTextureReleaseProc'>backendTextureReleaseProc</a> after deleting <a href='#SkImage_MakeBackendTextureFromSkImage_backendTexture'>backendTexture</a>.
+<a href='#SkImage_MakeBackendTextureFromSkImage_backendTextureReleaseProc'>backendTextureReleaseProc</a> cleans up auxiliary <a href='undocumented#Data'>data</a> related to returned
+<a href='#SkImage_MakeBackendTextureFromSkImage_backendTexture'>backendTexture</a>. The caller must delete returned <a href='#SkImage_MakeBackendTextureFromSkImage_backendTexture'>backendTexture</a> after use.
-If <a href='SkImage_Reference#SkImage'>SkImage</a> <a href='SkImage_Reference#SkImage'>is</a> <a href='SkImage_Reference#SkImage'>both</a> <a href='undocumented#Texture'>texture</a> <a href='undocumented#Texture'>backed</a> <a href='undocumented#Texture'>and</a> <a href='undocumented#Texture'>singly</a> <a href='undocumented#Texture'>referenced</a>, <a href='#SkImage_MakeBackendTextureFromSkImage_image'>image</a> <a href='#SkImage_MakeBackendTextureFromSkImage_image'>is</a> <a href='#SkImage_MakeBackendTextureFromSkImage_image'>returned</a> <a href='#SkImage_MakeBackendTextureFromSkImage_image'>in</a>
-<a href='#SkImage_MakeBackendTextureFromSkImage_backendTexture'>backendTexture</a> <a href='#SkImage_MakeBackendTextureFromSkImage_backendTexture'>without</a> <a href='#SkImage_MakeBackendTextureFromSkImage_backendTexture'>conversion</a> <a href='#SkImage_MakeBackendTextureFromSkImage_backendTexture'>or</a> <a href='#SkImage_MakeBackendTextureFromSkImage_backendTexture'>making</a> <a href='#SkImage_MakeBackendTextureFromSkImage_backendTexture'>a</a> <a href='#SkImage_MakeBackendTextureFromSkImage_backendTexture'>copy</a>. <a href='SkImage_Reference#SkImage'>SkImage</a> <a href='SkImage_Reference#SkImage'>is</a> <a href='SkImage_Reference#SkImage'>singly</a> <a href='SkImage_Reference#SkImage'>referenced</a>
+If <a href='SkImage_Reference#SkImage'>SkImage</a> is both <a href='undocumented#Texture'>texture</a> backed and singly referenced, <a href='#SkImage_MakeBackendTextureFromSkImage_image'>image</a> is returned in
+<a href='#SkImage_MakeBackendTextureFromSkImage_backendTexture'>backendTexture</a> without conversion or making a copy. <a href='SkImage_Reference#SkImage'>SkImage</a> is singly referenced
if its was transferred solely using std::move().
-If <a href='SkImage_Reference#SkImage'>SkImage</a> <a href='SkImage_Reference#SkImage'>is</a> <a href='SkImage_Reference#SkImage'>not</a> <a href='undocumented#Texture'>texture</a> <a href='undocumented#Texture'>backed</a>, <a href='undocumented#Texture'>returns</a> <a href='undocumented#Texture'>texture</a> <a href='undocumented#Texture'>with</a> <a href='SkImage_Reference#SkImage'>SkImage</a> <a href='SkImage_Reference#SkImage'>contents</a>.
+If <a href='SkImage_Reference#SkImage'>SkImage</a> is not <a href='undocumented#Texture'>texture</a> backed, returns <a href='undocumented#Texture'>texture</a> with <a href='SkImage_Reference#SkImage'>SkImage</a> contents.
### Parameters
@@ -2525,7 +2525,7 @@
<td><a href='undocumented#GPU_Context'>GPU context</a></td>
</tr>
<tr> <td><a name='SkImage_MakeBackendTextureFromSkImage_image'><code><strong>image</strong></code></a></td>
- <td><a href='SkImage_Reference#SkImage'>SkImage</a> <a href='SkImage_Reference#SkImage'>used</a> <a href='SkImage_Reference#SkImage'>for</a> <a href='undocumented#Texture'>texture</a></td>
+ <td><a href='SkImage_Reference#SkImage'>SkImage</a> used for <a href='undocumented#Texture'>texture</a></td>
</tr>
<tr> <td><a name='SkImage_MakeBackendTextureFromSkImage_backendTexture'><code><strong>backendTexture</strong></code></a></td>
<td>storage for back-end <a href='undocumented#Texture'>texture</a></td>
@@ -2537,7 +2537,7 @@
### Return Value
-true if back-end <a href='undocumented#Texture'>texture</a> <a href='undocumented#Texture'>was</a> <a href='undocumented#Texture'>created</a>
+true if back-end <a href='undocumented#Texture'>texture</a> was created
### Example
@@ -2578,13 +2578,13 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-bool <a href='#SkImage_asLegacyBitmap'>asLegacyBitmap</a>(<a href='SkBitmap_Reference#SkBitmap'>SkBitmap</a>* <a href='SkBitmap_Reference#Bitmap'>bitmap</a>, <a href='#SkImage_LegacyBitmapMode'>LegacyBitmapMode</a> <a href='#SkImage_LegacyBitmapMode'>legacyBitmapMode</a> = <a href='#SkImage_kRO_LegacyBitmapMode'>kRO_LegacyBitmapMode</a>) <a href='#SkImage_kRO_LegacyBitmapMode'>const</a>
+bool <a href='#SkImage_asLegacyBitmap'>asLegacyBitmap</a>(<a href='SkBitmap_Reference#SkBitmap'>SkBitmap</a>* <a href='SkBitmap_Reference#Bitmap'>bitmap</a>, <a href='#SkImage_LegacyBitmapMode'>LegacyBitmapMode</a> legacyBitmapMode = <a href='#SkImage_kRO_LegacyBitmapMode'>kRO_LegacyBitmapMode</a>) const
</pre>
-Creates raster <a href='SkBitmap_Reference#SkBitmap'>SkBitmap</a> <a href='SkBitmap_Reference#SkBitmap'>with</a> <a href='SkBitmap_Reference#SkBitmap'>same</a> <a href='SkBitmap_Reference#SkBitmap'>pixels</a> <a href='SkBitmap_Reference#SkBitmap'>as</a> <a href='SkImage_Reference#SkImage'>SkImage</a>. <a href='SkImage_Reference#SkImage'>If</a> <a href='#SkImage_asLegacyBitmap_legacyBitmapMode'>legacyBitmapMode</a> <a href='#SkImage_asLegacyBitmap_legacyBitmapMode'>is</a>
-<a href='#SkImage_kRO_LegacyBitmapMode'>kRO_LegacyBitmapMode</a>, <a href='#SkImage_kRO_LegacyBitmapMode'>returned</a> <a href='#SkImage_asLegacyBitmap_bitmap'>bitmap</a> <a href='#SkImage_asLegacyBitmap_bitmap'>is</a> <a href='#SkImage_asLegacyBitmap_bitmap'>read-only</a> <a href='#SkImage_asLegacyBitmap_bitmap'>and</a> <a href='#SkImage_asLegacyBitmap_bitmap'>immutable</a>.
-Returns true if <a href='SkBitmap_Reference#SkBitmap'>SkBitmap</a> <a href='SkBitmap_Reference#SkBitmap'>is</a> <a href='SkBitmap_Reference#SkBitmap'>stored</a> <a href='SkBitmap_Reference#SkBitmap'>in</a> <a href='#SkImage_asLegacyBitmap_bitmap'>bitmap</a>. <a href='#SkImage_asLegacyBitmap_bitmap'>Returns</a> <a href='#SkImage_asLegacyBitmap_bitmap'>false</a> <a href='#SkImage_asLegacyBitmap_bitmap'>and</a> <a href='#SkImage_asLegacyBitmap_bitmap'>resets</a> <a href='#SkImage_asLegacyBitmap_bitmap'>bitmap</a> <a href='#SkImage_asLegacyBitmap_bitmap'>if</a>
-<a href='SkBitmap_Reference#SkBitmap'>SkBitmap</a> <a href='SkBitmap_Reference#SkBitmap'>write</a> <a href='SkBitmap_Reference#SkBitmap'>did</a> <a href='SkBitmap_Reference#SkBitmap'>not</a> <a href='SkBitmap_Reference#SkBitmap'>succeed</a>.
+Creates raster <a href='SkBitmap_Reference#SkBitmap'>SkBitmap</a> with same pixels as <a href='SkImage_Reference#SkImage'>SkImage</a>. If <a href='#SkImage_asLegacyBitmap_legacyBitmapMode'>legacyBitmapMode</a> is
+<a href='#SkImage_kRO_LegacyBitmapMode'>kRO_LegacyBitmapMode</a>, returned <a href='#SkImage_asLegacyBitmap_bitmap'>bitmap</a> is read-only and immutable.
+Returns true if <a href='SkBitmap_Reference#SkBitmap'>SkBitmap</a> is stored in <a href='#SkImage_asLegacyBitmap_bitmap'>bitmap</a>. Returns false and resets <a href='#SkImage_asLegacyBitmap_bitmap'>bitmap</a> if
+<a href='SkBitmap_Reference#SkBitmap'>SkBitmap</a> write did not succeed.
### Parameters
@@ -2598,7 +2598,7 @@
### Return Value
-true if <a href='SkBitmap_Reference#SkBitmap'>SkBitmap</a> <a href='SkBitmap_Reference#SkBitmap'>was</a> <a href='SkBitmap_Reference#SkBitmap'>created</a>
+true if <a href='SkBitmap_Reference#SkBitmap'>SkBitmap</a> was created
### Example
@@ -2613,15 +2613,15 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-bool <a href='#SkImage_isLazyGenerated'>isLazyGenerated</a>() <a href='#SkImage_isLazyGenerated'>const</a>
+bool <a href='#SkImage_isLazyGenerated'>isLazyGenerated</a>() const
</pre>
-Returns true if <a href='SkImage_Reference#SkImage'>SkImage</a> <a href='SkImage_Reference#SkImage'>is</a> <a href='SkImage_Reference#SkImage'>backed</a> <a href='SkImage_Reference#SkImage'>by</a> <a href='SkImage_Reference#SkImage'>an</a> <a href='SkImage_Reference#SkImage'>image-generator</a> <a href='SkImage_Reference#SkImage'>or</a> <a href='SkImage_Reference#SkImage'>other</a> <a href='SkImage_Reference#SkImage'>service</a> <a href='SkImage_Reference#SkImage'>that</a> <a href='SkImage_Reference#SkImage'>creates</a>
-and caches its pixels or <a href='undocumented#Texture'>texture</a> <a href='undocumented#Texture'>on-demand</a>.
+Returns true if <a href='SkImage_Reference#SkImage'>SkImage</a> is backed by an image-generator or other service that creates
+and caches its pixels or <a href='undocumented#Texture'>texture</a> on-demand.
### Return Value
-true if <a href='SkImage_Reference#SkImage'>SkImage</a> <a href='SkImage_Reference#SkImage'>is</a> <a href='SkImage_Reference#SkImage'>created</a> <a href='SkImage_Reference#SkImage'>as</a> <a href='SkImage_Reference#SkImage'>needed</a>
+true if <a href='SkImage_Reference#SkImage'>SkImage</a> is created as needed
### Example
@@ -2640,26 +2640,26 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-<a href='undocumented#sk_sp'>sk_sp</a>&<a href='undocumented#sk_sp'>lt</a>;<a href='SkImage_Reference#SkImage'>SkImage</a>&<a href='SkImage_Reference#SkImage'>gt</a>; <a href='#SkImage_makeColorSpace'>makeColorSpace</a>(<a href='undocumented#sk_sp'>sk_sp</a>&<a href='undocumented#sk_sp'>lt</a>;<a href='undocumented#SkColorSpace'>SkColorSpace</a>&<a href='undocumented#SkColorSpace'>gt</a>; <a href='undocumented#SkColorSpace'>target</a>) <a href='undocumented#SkColorSpace'>const</a>
+<a href='undocumented#sk_sp'>sk_sp</a><<a href='SkImage_Reference#SkImage'>SkImage</a>> <a href='#SkImage_makeColorSpace'>makeColorSpace</a>(<a href='undocumented#sk_sp'>sk_sp</a><<a href='undocumented#SkColorSpace'>SkColorSpace</a>> target) const
</pre>
-Creates <a href='SkImage_Reference#SkImage'>SkImage</a> <a href='SkImage_Reference#SkImage'>in</a> <a href='#SkImage_makeColorSpace_target'>target</a> <a href='undocumented#SkColorSpace'>SkColorSpace</a>.
-Returns nullptr if <a href='SkImage_Reference#SkImage'>SkImage</a> <a href='SkImage_Reference#SkImage'>could</a> <a href='SkImage_Reference#SkImage'>not</a> <a href='SkImage_Reference#SkImage'>be</a> <a href='SkImage_Reference#SkImage'>created</a>.
+Creates <a href='SkImage_Reference#SkImage'>SkImage</a> in <a href='#SkImage_makeColorSpace_target'>target</a> <a href='undocumented#SkColorSpace'>SkColorSpace</a>.
+Returns nullptr if <a href='SkImage_Reference#SkImage'>SkImage</a> could not be created.
-Returns original <a href='SkImage_Reference#SkImage'>SkImage</a> <a href='SkImage_Reference#SkImage'>if</a> <a href='SkImage_Reference#SkImage'>it</a> <a href='SkImage_Reference#SkImage'>is</a> <a href='SkImage_Reference#SkImage'>in</a> <a href='#SkImage_makeColorSpace_target'>target</a> <a href='undocumented#SkColorSpace'>SkColorSpace</a>.
-Otherwise, converts pixels from <a href='SkImage_Reference#SkImage'>SkImage</a> <a href='undocumented#SkColorSpace'>SkColorSpace</a> <a href='undocumented#SkColorSpace'>to</a> <a href='#SkImage_makeColorSpace_target'>target</a> <a href='undocumented#SkColorSpace'>SkColorSpace</a>.
-If <a href='SkImage_Reference#SkImage'>SkImage</a> <a href='#SkImage_colorSpace'>colorSpace</a>() <a href='#SkImage_colorSpace'>returns</a> <a href='#SkImage_colorSpace'>nullptr</a>, <a href='SkImage_Reference#SkImage'>SkImage</a> <a href='undocumented#SkColorSpace'>SkColorSpace</a> <a href='undocumented#SkColorSpace'>is</a> <a href='undocumented#SkColorSpace'>assumed</a> <a href='undocumented#SkColorSpace'>to</a> <a href='undocumented#SkColorSpace'>be</a> <a href='undocumented#SkColorSpace'>sRGB</a>.
+Returns original <a href='SkImage_Reference#SkImage'>SkImage</a> if it is in <a href='#SkImage_makeColorSpace_target'>target</a> <a href='undocumented#SkColorSpace'>SkColorSpace</a>.
+Otherwise, converts pixels from <a href='SkImage_Reference#SkImage'>SkImage</a> <a href='undocumented#SkColorSpace'>SkColorSpace</a> to <a href='#SkImage_makeColorSpace_target'>target</a> <a href='undocumented#SkColorSpace'>SkColorSpace</a>.
+If <a href='SkImage_Reference#SkImage'>SkImage</a> <a href='#SkImage_colorSpace'>colorSpace</a>() returns nullptr, <a href='SkImage_Reference#SkImage'>SkImage</a> <a href='undocumented#SkColorSpace'>SkColorSpace</a> is assumed to be sRGB.
### Parameters
<table> <tr> <td><a name='SkImage_makeColorSpace_target'><code><strong>target</strong></code></a></td>
- <td><a href='undocumented#SkColorSpace'>SkColorSpace</a> <a href='undocumented#SkColorSpace'>describing</a> <a href='SkColor_Reference#Color'>color</a> <a href='SkColor_Reference#Color'>range</a> <a href='SkColor_Reference#Color'>of</a> <a href='SkColor_Reference#Color'>returned</a> <a href='SkImage_Reference#SkImage'>SkImage</a></td>
+ <td><a href='undocumented#SkColorSpace'>SkColorSpace</a> describing <a href='SkColor_Reference#Color'>color</a> range of returned <a href='SkImage_Reference#SkImage'>SkImage</a></td>
</tr>
</table>
### Return Value
-created <a href='SkImage_Reference#SkImage'>SkImage</a> <a href='SkImage_Reference#SkImage'>in</a> <a href='#SkImage_makeColorSpace_target'>target</a> <a href='undocumented#SkColorSpace'>SkColorSpace</a>
+created <a href='SkImage_Reference#SkImage'>SkImage</a> in <a href='#SkImage_makeColorSpace_target'>target</a> <a href='undocumented#SkColorSpace'>SkColorSpace</a>
### Example
diff --git a/site/user/api/SkMatrix_Reference.md b/site/user/api/SkMatrix_Reference.md
index ca0ebf3..689283d 100644
--- a/site/user/api/SkMatrix_Reference.md
+++ b/site/user/api/SkMatrix_Reference.md
@@ -8,175 +8,175 @@
<pre style="padding: 1em 1em 1em 1em;width: 62.5em; background-color: #f0f0f0">
class <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> {
-<a href='SkMatrix_Reference#SkMatrix'>public</a>:
- <a href='SkMatrix_Reference#SkMatrix'>static</a> <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> <a href='#SkMatrix_MakeScale'>MakeScale</a>(<a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>sx</a>, <a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>sy</a>);
- <a href='undocumented#SkScalar'>static</a> <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> <a href='#SkMatrix_MakeScale'>MakeScale</a>(<a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>scale</a>);
- <a href='undocumented#SkScalar'>static</a> <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> <a href='#SkMatrix_MakeTrans'>MakeTrans</a>(<a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>dx</a>, <a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>dy</a>);
- <a href='undocumented#SkScalar'>static</a> <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> <a href='#SkMatrix_MakeAll'>MakeAll</a>(<a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>scaleX</a>, <a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>skewX</a>, <a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>transX</a>,
- <a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>skewY</a>, <a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>scaleY</a>, <a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>transY</a>,
- <a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>pers0</a>, <a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>pers1</a>, <a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>pers2</a>);
+public:
+ static <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> <a href='#SkMatrix_MakeScale'>MakeScale</a>(<a href='undocumented#SkScalar'>SkScalar</a> sx, <a href='undocumented#SkScalar'>SkScalar</a> sy);
+ static <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> <a href='#SkMatrix_MakeScale'>MakeScale</a>(<a href='undocumented#SkScalar'>SkScalar</a> scale);
+ static <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> <a href='#SkMatrix_MakeTrans'>MakeTrans</a>(<a href='undocumented#SkScalar'>SkScalar</a> dx, <a href='undocumented#SkScalar'>SkScalar</a> dy);
+ static <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> <a href='#SkMatrix_MakeAll'>MakeAll</a>(<a href='undocumented#SkScalar'>SkScalar</a> scaleX, <a href='undocumented#SkScalar'>SkScalar</a> skewX, <a href='undocumented#SkScalar'>SkScalar</a> transX,
+ <a href='undocumented#SkScalar'>SkScalar</a> skewY, <a href='undocumented#SkScalar'>SkScalar</a> scaleY, <a href='undocumented#SkScalar'>SkScalar</a> transY,
+ <a href='undocumented#SkScalar'>SkScalar</a> pers0, <a href='undocumented#SkScalar'>SkScalar</a> pers1, <a href='undocumented#SkScalar'>SkScalar</a> pers2);
- <a href='undocumented#SkScalar'>enum</a> <a href='#SkMatrix_TypeMask'>TypeMask</a> {
+ enum <a href='#SkMatrix_TypeMask'>TypeMask</a> {
<a href='#SkMatrix_kIdentity_Mask'>kIdentity_Mask</a> = 0,
- <a href='#SkMatrix_kTranslate_Mask'>kTranslate_Mask</a> = 0<a href='#SkMatrix_kTranslate_Mask'>x01</a>,
- <a href='#SkMatrix_kScale_Mask'>kScale_Mask</a> = 0<a href='#SkMatrix_kScale_Mask'>x02</a>,
- <a href='#SkMatrix_kAffine_Mask'>kAffine_Mask</a> = 0<a href='#SkMatrix_kAffine_Mask'>x04</a>,
- <a href='#SkMatrix_kPerspective_Mask'>kPerspective_Mask</a> = 0<a href='#SkMatrix_kPerspective_Mask'>x08</a>,
+ <a href='#SkMatrix_kTranslate_Mask'>kTranslate_Mask</a> = 0x01,
+ <a href='#SkMatrix_kScale_Mask'>kScale_Mask</a> = 0x02,
+ <a href='#SkMatrix_kAffine_Mask'>kAffine_Mask</a> = 0x04,
+ <a href='#SkMatrix_kPerspective_Mask'>kPerspective_Mask</a> = 0x08,
};
- <a href='#SkMatrix_TypeMask'>TypeMask</a> <a href='#SkMatrix_getType'>getType</a>() <a href='#SkMatrix_getType'>const</a>;
- <a href='#SkMatrix_getType'>bool</a> <a href='#SkMatrix_isIdentity'>isIdentity</a>() <a href='#SkMatrix_isIdentity'>const</a>;
- <a href='#SkMatrix_isIdentity'>bool</a> <a href='#SkMatrix_isScaleTranslate'>isScaleTranslate</a>() <a href='#SkMatrix_isScaleTranslate'>const</a>;
- <a href='#SkMatrix_isScaleTranslate'>bool</a> <a href='#SkMatrix_isTranslate'>isTranslate</a>() <a href='#SkMatrix_isTranslate'>const</a>;
- <a href='#SkMatrix_isTranslate'>bool</a> <a href='#SkMatrix_rectStaysRect'>rectStaysRect</a>() <a href='#SkMatrix_rectStaysRect'>const</a>;
- <a href='#SkMatrix_rectStaysRect'>bool</a> <a href='#SkMatrix_preservesAxisAlignment'>preservesAxisAlignment</a>() <a href='#SkMatrix_preservesAxisAlignment'>const</a>;
- <a href='#SkMatrix_preservesAxisAlignment'>bool</a> <a href='#SkMatrix_hasPerspective'>hasPerspective</a>() <a href='#SkMatrix_hasPerspective'>const</a>;
- <a href='#SkMatrix_hasPerspective'>bool</a> <a href='#SkMatrix_isSimilarity'>isSimilarity</a>(<a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>tol</a> = <a href='undocumented#SK_ScalarNearlyZero'>SK_ScalarNearlyZero</a>) <a href='undocumented#SK_ScalarNearlyZero'>const</a>;
- <a href='undocumented#SK_ScalarNearlyZero'>bool</a> <a href='#SkMatrix_preservesRightAngles'>preservesRightAngles</a>(<a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>tol</a> = <a href='undocumented#SK_ScalarNearlyZero'>SK_ScalarNearlyZero</a>) <a href='undocumented#SK_ScalarNearlyZero'>const</a>;
+ <a href='#SkMatrix_TypeMask'>TypeMask</a> <a href='#SkMatrix_getType'>getType</a>() const;
+ bool <a href='#SkMatrix_isIdentity'>isIdentity</a>() const;
+ bool <a href='#SkMatrix_isScaleTranslate'>isScaleTranslate</a>() const;
+ bool <a href='#SkMatrix_isTranslate'>isTranslate</a>() const;
+ bool <a href='#SkMatrix_rectStaysRect'>rectStaysRect</a>() const;
+ bool <a href='#SkMatrix_preservesAxisAlignment'>preservesAxisAlignment</a>() const;
+ bool <a href='#SkMatrix_hasPerspective'>hasPerspective</a>() const;
+ bool <a href='#SkMatrix_isSimilarity'>isSimilarity</a>(<a href='undocumented#SkScalar'>SkScalar</a> tol = <a href='undocumented#SK_ScalarNearlyZero'>SK_ScalarNearlyZero</a>) const;
+ bool <a href='#SkMatrix_preservesRightAngles'>preservesRightAngles</a>(<a href='undocumented#SkScalar'>SkScalar</a> tol = <a href='undocumented#SK_ScalarNearlyZero'>SK_ScalarNearlyZero</a>) const;
- <a href='undocumented#SK_ScalarNearlyZero'>static</a> <a href='undocumented#SK_ScalarNearlyZero'>constexpr</a> <a href='undocumented#SK_ScalarNearlyZero'>int</a> <a href='#SkMatrix_kMScaleX'>kMScaleX</a> = 0;
- <a href='#SkMatrix_kMScaleX'>static</a> <a href='#SkMatrix_kMScaleX'>constexpr</a> <a href='#SkMatrix_kMScaleX'>int</a> <a href='#SkMatrix_kMSkewX'>kMSkewX</a> = 1;
- <a href='#SkMatrix_kMSkewX'>static</a> <a href='#SkMatrix_kMSkewX'>constexpr</a> <a href='#SkMatrix_kMSkewX'>int</a> <a href='#SkMatrix_kMTransX'>kMTransX</a> = 2;
- <a href='#SkMatrix_kMTransX'>static</a> <a href='#SkMatrix_kMTransX'>constexpr</a> <a href='#SkMatrix_kMTransX'>int</a> <a href='#SkMatrix_kMSkewY'>kMSkewY</a> = 3;
- <a href='#SkMatrix_kMSkewY'>static</a> <a href='#SkMatrix_kMSkewY'>constexpr</a> <a href='#SkMatrix_kMSkewY'>int</a> <a href='#SkMatrix_kMScaleY'>kMScaleY</a> = 4;
- <a href='#SkMatrix_kMScaleY'>static</a> <a href='#SkMatrix_kMScaleY'>constexpr</a> <a href='#SkMatrix_kMScaleY'>int</a> <a href='#SkMatrix_kMTransY'>kMTransY</a> = 5;
- <a href='#SkMatrix_kMTransY'>static</a> <a href='#SkMatrix_kMTransY'>constexpr</a> <a href='#SkMatrix_kMTransY'>int</a> <a href='#SkMatrix_kMPersp0'>kMPersp0</a> = 6;
- <a href='#SkMatrix_kMPersp0'>static</a> <a href='#SkMatrix_kMPersp0'>constexpr</a> <a href='#SkMatrix_kMPersp0'>int</a> <a href='#SkMatrix_kMPersp1'>kMPersp1</a> = 7;
- <a href='#SkMatrix_kMPersp1'>static</a> <a href='#SkMatrix_kMPersp1'>constexpr</a> <a href='#SkMatrix_kMPersp1'>int</a> <a href='#SkMatrix_kMPersp2'>kMPersp2</a> = 8;
- <a href='#SkMatrix_kMPersp2'>static</a> <a href='#SkMatrix_kMPersp2'>constexpr</a> <a href='#SkMatrix_kMPersp2'>int</a> <a href='#SkMatrix_kAScaleX'>kAScaleX</a> = 0;
- <a href='#SkMatrix_kAScaleX'>static</a> <a href='#SkMatrix_kAScaleX'>constexpr</a> <a href='#SkMatrix_kAScaleX'>int</a> <a href='#SkMatrix_kASkewY'>kASkewY</a> = 1;
- <a href='#SkMatrix_kASkewY'>static</a> <a href='#SkMatrix_kASkewY'>constexpr</a> <a href='#SkMatrix_kASkewY'>int</a> <a href='#SkMatrix_kASkewX'>kASkewX</a> = 2;
- <a href='#SkMatrix_kASkewX'>static</a> <a href='#SkMatrix_kASkewX'>constexpr</a> <a href='#SkMatrix_kASkewX'>int</a> <a href='#SkMatrix_kAScaleY'>kAScaleY</a> = 3;
- <a href='#SkMatrix_kAScaleY'>static</a> <a href='#SkMatrix_kAScaleY'>constexpr</a> <a href='#SkMatrix_kAScaleY'>int</a> <a href='#SkMatrix_kATransX'>kATransX</a> = 4;
- <a href='#SkMatrix_kATransX'>static</a> <a href='#SkMatrix_kATransX'>constexpr</a> <a href='#SkMatrix_kATransX'>int</a> <a href='#SkMatrix_kATransY'>kATransY</a> = 5;
+ static constexpr int <a href='#SkMatrix_kMScaleX'>kMScaleX</a> = 0;
+ static constexpr int <a href='#SkMatrix_kMSkewX'>kMSkewX</a> = 1;
+ static constexpr int <a href='#SkMatrix_kMTransX'>kMTransX</a> = 2;
+ static constexpr int <a href='#SkMatrix_kMSkewY'>kMSkewY</a> = 3;
+ static constexpr int <a href='#SkMatrix_kMScaleY'>kMScaleY</a> = 4;
+ static constexpr int <a href='#SkMatrix_kMTransY'>kMTransY</a> = 5;
+ static constexpr int <a href='#SkMatrix_kMPersp0'>kMPersp0</a> = 6;
+ static constexpr int <a href='#SkMatrix_kMPersp1'>kMPersp1</a> = 7;
+ static constexpr int <a href='#SkMatrix_kMPersp2'>kMPersp2</a> = 8;
+ static constexpr int <a href='#SkMatrix_kAScaleX'>kAScaleX</a> = 0;
+ static constexpr int <a href='#SkMatrix_kASkewY'>kASkewY</a> = 1;
+ static constexpr int <a href='#SkMatrix_kASkewX'>kASkewX</a> = 2;
+ static constexpr int <a href='#SkMatrix_kAScaleY'>kAScaleY</a> = 3;
+ static constexpr int <a href='#SkMatrix_kATransX'>kATransX</a> = 4;
+ static constexpr int <a href='#SkMatrix_kATransY'>kATransY</a> = 5;
- <a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>operator</a>[](<a href='undocumented#SkScalar'>int</a> <a href='undocumented#SkScalar'>index</a>) <a href='undocumented#SkScalar'>const</a>;
- <a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>get</a>(<a href='undocumented#SkScalar'>int</a> <a href='undocumented#SkScalar'>index</a>) <a href='undocumented#SkScalar'>const</a>;
- <a href='undocumented#SkScalar'>SkScalar</a> <a href='#SkMatrix_getScaleX'>getScaleX</a>() <a href='#SkMatrix_getScaleX'>const</a>;
- <a href='undocumented#SkScalar'>SkScalar</a> <a href='#SkMatrix_getScaleY'>getScaleY</a>() <a href='#SkMatrix_getScaleY'>const</a>;
- <a href='undocumented#SkScalar'>SkScalar</a> <a href='#SkMatrix_getSkewY'>getSkewY</a>() <a href='#SkMatrix_getSkewY'>const</a>;
- <a href='undocumented#SkScalar'>SkScalar</a> <a href='#SkMatrix_getSkewX'>getSkewX</a>() <a href='#SkMatrix_getSkewX'>const</a>;
- <a href='undocumented#SkScalar'>SkScalar</a> <a href='#SkMatrix_getTranslateX'>getTranslateX</a>() <a href='#SkMatrix_getTranslateX'>const</a>;
- <a href='undocumented#SkScalar'>SkScalar</a> <a href='#SkMatrix_getTranslateY'>getTranslateY</a>() <a href='#SkMatrix_getTranslateY'>const</a>;
- <a href='undocumented#SkScalar'>SkScalar</a> <a href='#SkMatrix_getPerspX'>getPerspX</a>() <a href='#SkMatrix_getPerspX'>const</a>;
- <a href='undocumented#SkScalar'>SkScalar</a> <a href='#SkMatrix_getPerspY'>getPerspY</a>() <a href='#SkMatrix_getPerspY'>const</a>;
- <a href='undocumented#SkScalar'>SkScalar</a>& <a href='undocumented#SkScalar'>operator</a>[](<a href='undocumented#SkScalar'>int</a> <a href='undocumented#SkScalar'>index</a>);
- <a href='undocumented#SkScalar'>void</a> <a href='undocumented#SkScalar'>set</a>(<a href='undocumented#SkScalar'>int</a> <a href='undocumented#SkScalar'>index</a>, <a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>value</a>);
- <a href='undocumented#SkScalar'>void</a> <a href='#SkMatrix_setScaleX'>setScaleX</a>(<a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>v</a>);
- <a href='undocumented#SkScalar'>void</a> <a href='#SkMatrix_setScaleY'>setScaleY</a>(<a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>v</a>);
- <a href='undocumented#SkScalar'>void</a> <a href='#SkMatrix_setSkewY'>setSkewY</a>(<a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>v</a>);
- <a href='undocumented#SkScalar'>void</a> <a href='#SkMatrix_setSkewX'>setSkewX</a>(<a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>v</a>);
- <a href='undocumented#SkScalar'>void</a> <a href='#SkMatrix_setTranslateX'>setTranslateX</a>(<a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>v</a>);
- <a href='undocumented#SkScalar'>void</a> <a href='#SkMatrix_setTranslateY'>setTranslateY</a>(<a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>v</a>);
- <a href='undocumented#SkScalar'>void</a> <a href='#SkMatrix_setPerspX'>setPerspX</a>(<a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>v</a>);
- <a href='undocumented#SkScalar'>void</a> <a href='#SkMatrix_setPerspY'>setPerspY</a>(<a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>v</a>);
- <a href='undocumented#SkScalar'>void</a> <a href='#SkMatrix_setAll'>setAll</a>(<a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>scaleX</a>, <a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>skewX</a>, <a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>transX</a>,
- <a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>skewY</a>, <a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>scaleY</a>, <a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>transY</a>,
- <a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>persp0</a>, <a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>persp1</a>, <a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>persp2</a>);
- <a href='undocumented#SkScalar'>void</a> <a href='#SkMatrix_get9'>get9</a>(<a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>buffer</a>[9]) <a href='undocumented#SkScalar'>const</a>;
- <a href='undocumented#SkScalar'>void</a> <a href='#SkMatrix_set9'>set9</a>(<a href='#SkMatrix_set9'>const</a> <a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>buffer</a>[9]);
- <a href='undocumented#SkScalar'>void</a> <a href='#SkMatrix_reset'>reset()</a>;
- <a href='#SkMatrix_reset'>void</a> <a href='#SkMatrix_setIdentity'>setIdentity</a>();
- <a href='#SkMatrix_setIdentity'>void</a> <a href='#SkMatrix_setTranslate'>setTranslate</a>(<a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>dx</a>, <a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>dy</a>);
- <a href='undocumented#SkScalar'>void</a> <a href='#SkMatrix_setTranslate'>setTranslate</a>(<a href='#SkMatrix_setTranslate'>const</a> <a href='SkPoint_Reference#SkVector'>SkVector</a>& <a href='SkPoint_Reference#SkVector'>v</a>);
- <a href='SkPoint_Reference#SkVector'>void</a> <a href='#SkMatrix_setScale'>setScale</a>(<a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>sx</a>, <a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>sy</a>, <a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>px</a>, <a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>py</a>);
- <a href='undocumented#SkScalar'>void</a> <a href='#SkMatrix_setScale'>setScale</a>(<a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>sx</a>, <a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>sy</a>);
- <a href='undocumented#SkScalar'>void</a> <a href='#SkMatrix_setRotate'>setRotate</a>(<a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>degrees</a>, <a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>px</a>, <a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>py</a>);
- <a href='undocumented#SkScalar'>void</a> <a href='#SkMatrix_setRotate'>setRotate</a>(<a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>degrees</a>);
- <a href='undocumented#SkScalar'>void</a> <a href='#SkMatrix_setSinCos'>setSinCos</a>(<a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>sinValue</a>, <a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>cosValue</a>,
- <a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>px</a>, <a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>py</a>);
- <a href='undocumented#SkScalar'>void</a> <a href='#SkMatrix_setSinCos'>setSinCos</a>(<a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>sinValue</a>, <a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>cosValue</a>);
- <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a>& <a href='#SkMatrix_setRSXform'>setRSXform</a>(<a href='#SkMatrix_setRSXform'>const</a> <a href='undocumented#SkRSXform'>SkRSXform</a>& <a href='undocumented#SkRSXform'>rsxForm</a>);
- <a href='undocumented#SkRSXform'>void</a> <a href='#SkMatrix_setSkew'>setSkew</a>(<a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>kx</a>, <a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>ky</a>, <a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>px</a>, <a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>py</a>);
- <a href='undocumented#SkScalar'>void</a> <a href='#SkMatrix_setSkew'>setSkew</a>(<a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>kx</a>, <a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>ky</a>);
- <a href='undocumented#SkScalar'>void</a> <a href='#SkMatrix_setConcat'>setConcat</a>(<a href='#SkMatrix_setConcat'>const</a> <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a>& <a href='SkMatrix_Reference#SkMatrix'>a</a>, <a href='SkMatrix_Reference#SkMatrix'>const</a> <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a>& <a href='SkMatrix_Reference#SkMatrix'>b</a>);
- <a href='SkMatrix_Reference#SkMatrix'>void</a> <a href='#SkMatrix_preTranslate'>preTranslate</a>(<a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>dx</a>, <a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>dy</a>);
- <a href='undocumented#SkScalar'>void</a> <a href='#SkMatrix_preScale'>preScale</a>(<a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>sx</a>, <a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>sy</a>, <a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>px</a>, <a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>py</a>);
- <a href='undocumented#SkScalar'>void</a> <a href='#SkMatrix_preScale'>preScale</a>(<a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>sx</a>, <a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>sy</a>);
- <a href='undocumented#SkScalar'>void</a> <a href='#SkMatrix_preRotate'>preRotate</a>(<a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>degrees</a>, <a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>px</a>, <a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>py</a>);
- <a href='undocumented#SkScalar'>void</a> <a href='#SkMatrix_preRotate'>preRotate</a>(<a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>degrees</a>);
- <a href='undocumented#SkScalar'>void</a> <a href='#SkMatrix_preSkew'>preSkew</a>(<a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>kx</a>, <a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>ky</a>, <a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>px</a>, <a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>py</a>);
- <a href='undocumented#SkScalar'>void</a> <a href='#SkMatrix_preSkew'>preSkew</a>(<a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>kx</a>, <a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>ky</a>);
- <a href='undocumented#SkScalar'>void</a> <a href='#SkMatrix_preConcat'>preConcat</a>(<a href='#SkMatrix_preConcat'>const</a> <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a>& <a href='SkMatrix_Reference#SkMatrix'>other</a>);
- <a href='SkMatrix_Reference#SkMatrix'>void</a> <a href='#SkMatrix_postTranslate'>postTranslate</a>(<a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>dx</a>, <a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>dy</a>);
- <a href='undocumented#SkScalar'>void</a> <a href='#SkMatrix_postScale'>postScale</a>(<a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>sx</a>, <a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>sy</a>, <a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>px</a>, <a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>py</a>);
- <a href='undocumented#SkScalar'>void</a> <a href='#SkMatrix_postScale'>postScale</a>(<a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>sx</a>, <a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>sy</a>);
- <a href='undocumented#SkScalar'>bool</a> <a href='#SkMatrix_postIDiv'>postIDiv</a>(<a href='#SkMatrix_postIDiv'>int</a> <a href='#SkMatrix_postIDiv'>divx</a>, <a href='#SkMatrix_postIDiv'>int</a> <a href='#SkMatrix_postIDiv'>divy</a>);
- <a href='#SkMatrix_postIDiv'>void</a> <a href='#SkMatrix_postRotate'>postRotate</a>(<a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>degrees</a>, <a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>px</a>, <a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>py</a>);
- <a href='undocumented#SkScalar'>void</a> <a href='#SkMatrix_postRotate'>postRotate</a>(<a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>degrees</a>);
- <a href='undocumented#SkScalar'>void</a> <a href='#SkMatrix_postSkew'>postSkew</a>(<a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>kx</a>, <a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>ky</a>, <a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>px</a>, <a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>py</a>);
- <a href='undocumented#SkScalar'>void</a> <a href='#SkMatrix_postSkew'>postSkew</a>(<a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>kx</a>, <a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>ky</a>);
- <a href='undocumented#SkScalar'>void</a> <a href='#SkMatrix_postConcat'>postConcat</a>(<a href='#SkMatrix_postConcat'>const</a> <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a>& <a href='SkMatrix_Reference#SkMatrix'>other</a>);
+ <a href='undocumented#SkScalar'>SkScalar</a> operator[](int index) const;
+ <a href='undocumented#SkScalar'>SkScalar</a> get(int index) const;
+ <a href='undocumented#SkScalar'>SkScalar</a> <a href='#SkMatrix_getScaleX'>getScaleX</a>() const;
+ <a href='undocumented#SkScalar'>SkScalar</a> <a href='#SkMatrix_getScaleY'>getScaleY</a>() const;
+ <a href='undocumented#SkScalar'>SkScalar</a> <a href='#SkMatrix_getSkewY'>getSkewY</a>() const;
+ <a href='undocumented#SkScalar'>SkScalar</a> <a href='#SkMatrix_getSkewX'>getSkewX</a>() const;
+ <a href='undocumented#SkScalar'>SkScalar</a> <a href='#SkMatrix_getTranslateX'>getTranslateX</a>() const;
+ <a href='undocumented#SkScalar'>SkScalar</a> <a href='#SkMatrix_getTranslateY'>getTranslateY</a>() const;
+ <a href='undocumented#SkScalar'>SkScalar</a> <a href='#SkMatrix_getPerspX'>getPerspX</a>() const;
+ <a href='undocumented#SkScalar'>SkScalar</a> <a href='#SkMatrix_getPerspY'>getPerspY</a>() const;
+ <a href='undocumented#SkScalar'>SkScalar</a>& operator[](int index);
+ void set(int index, <a href='undocumented#SkScalar'>SkScalar</a> value);
+ void <a href='#SkMatrix_setScaleX'>setScaleX</a>(<a href='undocumented#SkScalar'>SkScalar</a> v);
+ void <a href='#SkMatrix_setScaleY'>setScaleY</a>(<a href='undocumented#SkScalar'>SkScalar</a> v);
+ void <a href='#SkMatrix_setSkewY'>setSkewY</a>(<a href='undocumented#SkScalar'>SkScalar</a> v);
+ void <a href='#SkMatrix_setSkewX'>setSkewX</a>(<a href='undocumented#SkScalar'>SkScalar</a> v);
+ void <a href='#SkMatrix_setTranslateX'>setTranslateX</a>(<a href='undocumented#SkScalar'>SkScalar</a> v);
+ void <a href='#SkMatrix_setTranslateY'>setTranslateY</a>(<a href='undocumented#SkScalar'>SkScalar</a> v);
+ void <a href='#SkMatrix_setPerspX'>setPerspX</a>(<a href='undocumented#SkScalar'>SkScalar</a> v);
+ void <a href='#SkMatrix_setPerspY'>setPerspY</a>(<a href='undocumented#SkScalar'>SkScalar</a> v);
+ void <a href='#SkMatrix_setAll'>setAll</a>(<a href='undocumented#SkScalar'>SkScalar</a> scaleX, <a href='undocumented#SkScalar'>SkScalar</a> skewX, <a href='undocumented#SkScalar'>SkScalar</a> transX,
+ <a href='undocumented#SkScalar'>SkScalar</a> skewY, <a href='undocumented#SkScalar'>SkScalar</a> scaleY, <a href='undocumented#SkScalar'>SkScalar</a> transY,
+ <a href='undocumented#SkScalar'>SkScalar</a> persp0, <a href='undocumented#SkScalar'>SkScalar</a> persp1, <a href='undocumented#SkScalar'>SkScalar</a> persp2);
+ void <a href='#SkMatrix_get9'>get9</a>(<a href='undocumented#SkScalar'>SkScalar</a> buffer[9]) const;
+ void <a href='#SkMatrix_set9'>set9</a>(const <a href='undocumented#SkScalar'>SkScalar</a> buffer[9]);
+ void <a href='#SkMatrix_reset'>reset()</a>;
+ void <a href='#SkMatrix_setIdentity'>setIdentity</a>();
+ void <a href='#SkMatrix_setTranslate'>setTranslate</a>(<a href='undocumented#SkScalar'>SkScalar</a> dx, <a href='undocumented#SkScalar'>SkScalar</a> dy);
+ void <a href='#SkMatrix_setTranslate'>setTranslate</a>(const <a href='SkPoint_Reference#SkVector'>SkVector</a>& v);
+ void <a href='#SkMatrix_setScale'>setScale</a>(<a href='undocumented#SkScalar'>SkScalar</a> sx, <a href='undocumented#SkScalar'>SkScalar</a> sy, <a href='undocumented#SkScalar'>SkScalar</a> px, <a href='undocumented#SkScalar'>SkScalar</a> py);
+ void <a href='#SkMatrix_setScale'>setScale</a>(<a href='undocumented#SkScalar'>SkScalar</a> sx, <a href='undocumented#SkScalar'>SkScalar</a> sy);
+ void <a href='#SkMatrix_setRotate'>setRotate</a>(<a href='undocumented#SkScalar'>SkScalar</a> degrees, <a href='undocumented#SkScalar'>SkScalar</a> px, <a href='undocumented#SkScalar'>SkScalar</a> py);
+ void <a href='#SkMatrix_setRotate'>setRotate</a>(<a href='undocumented#SkScalar'>SkScalar</a> degrees);
+ void <a href='#SkMatrix_setSinCos'>setSinCos</a>(<a href='undocumented#SkScalar'>SkScalar</a> sinValue, <a href='undocumented#SkScalar'>SkScalar</a> cosValue,
+ <a href='undocumented#SkScalar'>SkScalar</a> px, <a href='undocumented#SkScalar'>SkScalar</a> py);
+ void <a href='#SkMatrix_setSinCos'>setSinCos</a>(<a href='undocumented#SkScalar'>SkScalar</a> sinValue, <a href='undocumented#SkScalar'>SkScalar</a> cosValue);
+ <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a>& <a href='#SkMatrix_setRSXform'>setRSXform</a>(const <a href='undocumented#SkRSXform'>SkRSXform</a>& rsxForm);
+ void <a href='#SkMatrix_setSkew'>setSkew</a>(<a href='undocumented#SkScalar'>SkScalar</a> kx, <a href='undocumented#SkScalar'>SkScalar</a> ky, <a href='undocumented#SkScalar'>SkScalar</a> px, <a href='undocumented#SkScalar'>SkScalar</a> py);
+ void <a href='#SkMatrix_setSkew'>setSkew</a>(<a href='undocumented#SkScalar'>SkScalar</a> kx, <a href='undocumented#SkScalar'>SkScalar</a> ky);
+ void <a href='#SkMatrix_setConcat'>setConcat</a>(const <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a>& a, const <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a>& b);
+ void <a href='#SkMatrix_preTranslate'>preTranslate</a>(<a href='undocumented#SkScalar'>SkScalar</a> dx, <a href='undocumented#SkScalar'>SkScalar</a> dy);
+ void <a href='#SkMatrix_preScale'>preScale</a>(<a href='undocumented#SkScalar'>SkScalar</a> sx, <a href='undocumented#SkScalar'>SkScalar</a> sy, <a href='undocumented#SkScalar'>SkScalar</a> px, <a href='undocumented#SkScalar'>SkScalar</a> py);
+ void <a href='#SkMatrix_preScale'>preScale</a>(<a href='undocumented#SkScalar'>SkScalar</a> sx, <a href='undocumented#SkScalar'>SkScalar</a> sy);
+ void <a href='#SkMatrix_preRotate'>preRotate</a>(<a href='undocumented#SkScalar'>SkScalar</a> degrees, <a href='undocumented#SkScalar'>SkScalar</a> px, <a href='undocumented#SkScalar'>SkScalar</a> py);
+ void <a href='#SkMatrix_preRotate'>preRotate</a>(<a href='undocumented#SkScalar'>SkScalar</a> degrees);
+ void <a href='#SkMatrix_preSkew'>preSkew</a>(<a href='undocumented#SkScalar'>SkScalar</a> kx, <a href='undocumented#SkScalar'>SkScalar</a> ky, <a href='undocumented#SkScalar'>SkScalar</a> px, <a href='undocumented#SkScalar'>SkScalar</a> py);
+ void <a href='#SkMatrix_preSkew'>preSkew</a>(<a href='undocumented#SkScalar'>SkScalar</a> kx, <a href='undocumented#SkScalar'>SkScalar</a> ky);
+ void <a href='#SkMatrix_preConcat'>preConcat</a>(const <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a>& other);
+ void <a href='#SkMatrix_postTranslate'>postTranslate</a>(<a href='undocumented#SkScalar'>SkScalar</a> dx, <a href='undocumented#SkScalar'>SkScalar</a> dy);
+ void <a href='#SkMatrix_postScale'>postScale</a>(<a href='undocumented#SkScalar'>SkScalar</a> sx, <a href='undocumented#SkScalar'>SkScalar</a> sy, <a href='undocumented#SkScalar'>SkScalar</a> px, <a href='undocumented#SkScalar'>SkScalar</a> py);
+ void <a href='#SkMatrix_postScale'>postScale</a>(<a href='undocumented#SkScalar'>SkScalar</a> sx, <a href='undocumented#SkScalar'>SkScalar</a> sy);
+ bool <a href='#SkMatrix_postIDiv'>postIDiv</a>(int divx, int divy);
+ void <a href='#SkMatrix_postRotate'>postRotate</a>(<a href='undocumented#SkScalar'>SkScalar</a> degrees, <a href='undocumented#SkScalar'>SkScalar</a> px, <a href='undocumented#SkScalar'>SkScalar</a> py);
+ void <a href='#SkMatrix_postRotate'>postRotate</a>(<a href='undocumented#SkScalar'>SkScalar</a> degrees);
+ void <a href='#SkMatrix_postSkew'>postSkew</a>(<a href='undocumented#SkScalar'>SkScalar</a> kx, <a href='undocumented#SkScalar'>SkScalar</a> ky, <a href='undocumented#SkScalar'>SkScalar</a> px, <a href='undocumented#SkScalar'>SkScalar</a> py);
+ void <a href='#SkMatrix_postSkew'>postSkew</a>(<a href='undocumented#SkScalar'>SkScalar</a> kx, <a href='undocumented#SkScalar'>SkScalar</a> ky);
+ void <a href='#SkMatrix_postConcat'>postConcat</a>(const <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a>& other);
- <a href='SkMatrix_Reference#SkMatrix'>enum</a> <a href='#SkMatrix_ScaleToFit'>ScaleToFit</a> {
+ enum <a href='#SkMatrix_ScaleToFit'>ScaleToFit</a> {
<a href='#SkMatrix_kFill_ScaleToFit'>kFill_ScaleToFit</a>,
<a href='#SkMatrix_kStart_ScaleToFit'>kStart_ScaleToFit</a>,
<a href='#SkMatrix_kCenter_ScaleToFit'>kCenter_ScaleToFit</a>,
<a href='#SkMatrix_kEnd_ScaleToFit'>kEnd_ScaleToFit</a>,
};
- <a href='#SkMatrix_kEnd_ScaleToFit'>bool</a> <a href='#SkMatrix_setRectToRect'>setRectToRect</a>(<a href='#SkMatrix_setRectToRect'>const</a> <a href='SkRect_Reference#SkRect'>SkRect</a>& <a href='SkRect_Reference#SkRect'>src</a>, <a href='SkRect_Reference#SkRect'>const</a> <a href='SkRect_Reference#SkRect'>SkRect</a>& <a href='SkRect_Reference#SkRect'>dst</a>, <a href='#SkMatrix_ScaleToFit'>ScaleToFit</a> <a href='#SkMatrix_ScaleToFit'>stf</a>);
- <a href='#SkMatrix_ScaleToFit'>static</a> <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> <a href='#SkMatrix_MakeRectToRect'>MakeRectToRect</a>(<a href='#SkMatrix_MakeRectToRect'>const</a> <a href='SkRect_Reference#SkRect'>SkRect</a>& <a href='SkRect_Reference#SkRect'>src</a>, <a href='SkRect_Reference#SkRect'>const</a> <a href='SkRect_Reference#SkRect'>SkRect</a>& <a href='SkRect_Reference#SkRect'>dst</a>, <a href='#SkMatrix_ScaleToFit'>ScaleToFit</a> <a href='#SkMatrix_ScaleToFit'>stf</a>);
- <a href='#SkMatrix_ScaleToFit'>bool</a> <a href='#SkMatrix_setPolyToPoly'>setPolyToPoly</a>(<a href='#SkMatrix_setPolyToPoly'>const</a> <a href='SkPoint_Reference#SkPoint'>SkPoint</a> <a href='SkPoint_Reference#SkPoint'>src</a>[], <a href='SkPoint_Reference#SkPoint'>const</a> <a href='SkPoint_Reference#SkPoint'>SkPoint</a> <a href='SkPoint_Reference#SkPoint'>dst</a>[], <a href='SkPoint_Reference#SkPoint'>int</a> <a href='SkPoint_Reference#SkPoint'>count</a>);
- <a href='SkPoint_Reference#SkPoint'>bool</a> <a href='#SkMatrix_invert'>invert</a>(<a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a>* <a href='SkMatrix_Reference#SkMatrix'>inverse</a>) <a href='SkMatrix_Reference#SkMatrix'>const</a>;
- <a href='SkMatrix_Reference#SkMatrix'>static</a> <a href='SkMatrix_Reference#SkMatrix'>void</a> <a href='#SkMatrix_SetAffineIdentity'>SetAffineIdentity</a>(<a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>affine</a>[6]);
- <a href='undocumented#SkScalar'>bool</a> <a href='#SkMatrix_asAffine'>asAffine</a>(<a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>affine</a>[6]) <a href='undocumented#SkScalar'>const</a>;
- <a href='undocumented#SkScalar'>void</a> <a href='#SkMatrix_setAffine'>setAffine</a>(<a href='#SkMatrix_setAffine'>const</a> <a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>affine</a>[6]);
- <a href='undocumented#SkScalar'>void</a> <a href='#SkMatrix_mapPoints'>mapPoints</a>(<a href='SkPoint_Reference#SkPoint'>SkPoint</a> <a href='SkPoint_Reference#SkPoint'>dst</a>[], <a href='SkPoint_Reference#SkPoint'>const</a> <a href='SkPoint_Reference#SkPoint'>SkPoint</a> <a href='SkPoint_Reference#SkPoint'>src</a>[], <a href='SkPoint_Reference#SkPoint'>int</a> <a href='SkPoint_Reference#SkPoint'>count</a>) <a href='SkPoint_Reference#SkPoint'>const</a>;
- <a href='SkPoint_Reference#SkPoint'>void</a> <a href='#SkMatrix_mapPoints'>mapPoints</a>(<a href='SkPoint_Reference#SkPoint'>SkPoint</a> <a href='SkPoint_Reference#SkPoint'>pts</a>[], <a href='SkPoint_Reference#SkPoint'>int</a> <a href='SkPoint_Reference#SkPoint'>count</a>) <a href='SkPoint_Reference#SkPoint'>const</a>;
- <a href='SkPoint_Reference#SkPoint'>void</a> <a href='#SkMatrix_mapHomogeneousPoints'>mapHomogeneousPoints</a>(<a href='undocumented#SkPoint3'>SkPoint3</a> <a href='undocumented#SkPoint3'>dst</a>[], <a href='undocumented#SkPoint3'>const</a> <a href='undocumented#SkPoint3'>SkPoint3</a> <a href='undocumented#SkPoint3'>src</a>[], <a href='undocumented#SkPoint3'>int</a> <a href='undocumented#SkPoint3'>count</a>) <a href='undocumented#SkPoint3'>const</a>;
- <a href='undocumented#SkPoint3'>void</a> <a href='#SkMatrix_mapXY'>mapXY</a>(<a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>x</a>, <a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>y</a>, <a href='SkPoint_Reference#SkPoint'>SkPoint</a>* <a href='SkPoint_Reference#SkPoint'>result</a>) <a href='SkPoint_Reference#SkPoint'>const</a>;
- <a href='SkPoint_Reference#SkPoint'>SkPoint</a> <a href='#SkMatrix_mapXY'>mapXY</a>(<a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>x</a>, <a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>y</a>) <a href='undocumented#SkScalar'>const</a>;
- <a href='undocumented#SkScalar'>void</a> <a href='#SkMatrix_mapVectors'>mapVectors</a>(<a href='SkPoint_Reference#SkVector'>SkVector</a> <a href='SkPoint_Reference#SkVector'>dst</a>[], <a href='SkPoint_Reference#SkVector'>const</a> <a href='SkPoint_Reference#SkVector'>SkVector</a> <a href='SkPoint_Reference#SkVector'>src</a>[], <a href='SkPoint_Reference#SkVector'>int</a> <a href='SkPoint_Reference#SkVector'>count</a>) <a href='SkPoint_Reference#SkVector'>const</a>;
- <a href='SkPoint_Reference#SkVector'>void</a> <a href='#SkMatrix_mapVectors'>mapVectors</a>(<a href='SkPoint_Reference#SkVector'>SkVector</a> <a href='SkPoint_Reference#SkVector'>vecs</a>[], <a href='SkPoint_Reference#SkVector'>int</a> <a href='SkPoint_Reference#SkVector'>count</a>) <a href='SkPoint_Reference#SkVector'>const</a>;
- <a href='SkPoint_Reference#SkVector'>void</a> <a href='#SkMatrix_mapVector'>mapVector</a>(<a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>dx</a>, <a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>dy</a>, <a href='SkPoint_Reference#SkVector'>SkVector</a>* <a href='SkPoint_Reference#SkVector'>result</a>) <a href='SkPoint_Reference#SkVector'>const</a>;
- <a href='SkPoint_Reference#SkVector'>SkVector</a> <a href='#SkMatrix_mapVector'>mapVector</a>(<a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>dx</a>, <a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>dy</a>) <a href='undocumented#SkScalar'>const</a>;
- <a href='undocumented#SkScalar'>bool</a> <a href='#SkMatrix_mapRect'>mapRect</a>(<a href='SkRect_Reference#SkRect'>SkRect</a>* <a href='SkRect_Reference#SkRect'>dst</a>, <a href='SkRect_Reference#SkRect'>const</a> <a href='SkRect_Reference#SkRect'>SkRect</a>& <a href='SkRect_Reference#SkRect'>src</a>) <a href='SkRect_Reference#SkRect'>const</a>;
- <a href='SkRect_Reference#SkRect'>bool</a> <a href='#SkMatrix_mapRect'>mapRect</a>(<a href='SkRect_Reference#SkRect'>SkRect</a>* <a href='SkRect_Reference#Rect'>rect</a>) <a href='SkRect_Reference#Rect'>const</a>;
- <a href='SkRect_Reference#SkRect'>SkRect</a> <a href='#SkMatrix_mapRect'>mapRect</a>(<a href='#SkMatrix_mapRect'>const</a> <a href='SkRect_Reference#SkRect'>SkRect</a>& <a href='SkRect_Reference#SkRect'>src</a>) <a href='SkRect_Reference#SkRect'>const</a>;
- <a href='SkRect_Reference#SkRect'>void</a> <a href='#SkMatrix_mapRectToQuad'>mapRectToQuad</a>(<a href='SkPoint_Reference#SkPoint'>SkPoint</a> <a href='SkPoint_Reference#SkPoint'>dst</a>[4], <a href='SkPoint_Reference#SkPoint'>const</a> <a href='SkRect_Reference#SkRect'>SkRect</a>& <a href='SkRect_Reference#Rect'>rect</a>) <a href='SkRect_Reference#Rect'>const</a>;
- <a href='SkRect_Reference#Rect'>void</a> <a href='#SkMatrix_mapRectScaleTranslate'>mapRectScaleTranslate</a>(<a href='SkRect_Reference#SkRect'>SkRect</a>* <a href='SkRect_Reference#SkRect'>dst</a>, <a href='SkRect_Reference#SkRect'>const</a> <a href='SkRect_Reference#SkRect'>SkRect</a>& <a href='SkRect_Reference#SkRect'>src</a>) <a href='SkRect_Reference#SkRect'>const</a>;
- <a href='undocumented#SkScalar'>SkScalar</a> <a href='#SkMatrix_mapRadius'>mapRadius</a>(<a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>radius</a>) <a href='undocumented#SkScalar'>const</a>;
- <a href='undocumented#SkScalar'>bool</a> <a href='#SkMatrix_isFixedStepInX'>isFixedStepInX</a>() <a href='#SkMatrix_isFixedStepInX'>const</a>;
- <a href='SkPoint_Reference#SkVector'>SkVector</a> <a href='#SkMatrix_fixedStepInX'>fixedStepInX</a>(<a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>y</a>) <a href='undocumented#SkScalar'>const</a>;
- <a href='undocumented#SkScalar'>bool</a> <a href='#SkMatrix_cheapEqualTo'>cheapEqualTo</a>(<a href='#SkMatrix_cheapEqualTo'>const</a> <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a>& <a href='SkMatrix_Reference#SkMatrix'>m</a>) <a href='SkMatrix_Reference#SkMatrix'>const</a>;
- <a href='SkMatrix_Reference#SkMatrix'>friend</a> <a href='SkMatrix_Reference#SkMatrix'>bool</a> <a href='SkMatrix_Reference#SkMatrix'>operator</a>==(<a href='SkMatrix_Reference#SkMatrix'>const</a> <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a>& <a href='SkMatrix_Reference#SkMatrix'>a</a>, <a href='SkMatrix_Reference#SkMatrix'>const</a> <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a>& <a href='SkMatrix_Reference#SkMatrix'>b</a>);
- <a href='SkMatrix_Reference#SkMatrix'>friend</a> <a href='SkMatrix_Reference#SkMatrix'>bool</a> <a href='SkMatrix_Reference#SkMatrix'>operator</a>!=(<a href='SkMatrix_Reference#SkMatrix'>const</a> <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a>& <a href='SkMatrix_Reference#SkMatrix'>a</a>, <a href='SkMatrix_Reference#SkMatrix'>const</a> <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a>& <a href='SkMatrix_Reference#SkMatrix'>b</a>);
- <a href='SkMatrix_Reference#SkMatrix'>void</a> <a href='#SkMatrix_dump'>dump()</a> <a href='#SkMatrix_dump'>const</a>;
- <a href='undocumented#SkScalar'>SkScalar</a> <a href='#SkMatrix_getMinScale'>getMinScale</a>() <a href='#SkMatrix_getMinScale'>const</a>;
- <a href='undocumented#SkScalar'>SkScalar</a> <a href='#SkMatrix_getMaxScale'>getMaxScale</a>() <a href='#SkMatrix_getMaxScale'>const</a>;
- <a href='#SkMatrix_getMaxScale'>bool</a> <a href='#SkMatrix_getMinMaxScales'>getMinMaxScales</a>(<a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>scaleFactors</a>[2]) <a href='undocumented#SkScalar'>const</a>;
- <a href='undocumented#SkScalar'>bool</a> <a href='#SkMatrix_decomposeScale'>decomposeScale</a>(<a href='undocumented#SkSize'>SkSize</a>* <a href='undocumented#SkSize'>scale</a>, <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a>* <a href='SkMatrix_Reference#SkMatrix'>remaining</a> = <a href='SkMatrix_Reference#SkMatrix'>nullptr</a>) <a href='SkMatrix_Reference#SkMatrix'>const</a>;
- <a href='SkMatrix_Reference#SkMatrix'>static</a> <a href='SkMatrix_Reference#SkMatrix'>const</a> <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a>& <a href='#SkMatrix_I'>I</a>();
- <a href='#SkMatrix_I'>static</a> <a href='#SkMatrix_I'>const</a> <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a>& <a href='#SkMatrix_InvalidMatrix'>InvalidMatrix</a>();
- <a href='#SkMatrix_InvalidMatrix'>static</a> <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> <a href='#SkMatrix_Concat'>Concat</a>(<a href='#SkMatrix_Concat'>const</a> <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a>& <a href='SkMatrix_Reference#SkMatrix'>a</a>, <a href='SkMatrix_Reference#SkMatrix'>const</a> <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a>& <a href='SkMatrix_Reference#SkMatrix'>b</a>);
- <a href='SkMatrix_Reference#SkMatrix'>void</a> <a href='#SkMatrix_dirtyMatrixTypeCache'>dirtyMatrixTypeCache</a>();
- <a href='#SkMatrix_dirtyMatrixTypeCache'>void</a> <a href='#SkMatrix_setScaleTranslate'>setScaleTranslate</a>(<a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>sx</a>, <a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>sy</a>, <a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>tx</a>, <a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>ty</a>);
- <a href='undocumented#SkScalar'>bool</a> <a href='#SkMatrix_isFinite'>isFinite</a>() <a href='#SkMatrix_isFinite'>const</a>;
+ bool <a href='#SkMatrix_setRectToRect'>setRectToRect</a>(const <a href='SkRect_Reference#SkRect'>SkRect</a>& src, const <a href='SkRect_Reference#SkRect'>SkRect</a>& dst, <a href='#SkMatrix_ScaleToFit'>ScaleToFit</a> stf);
+ static <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> <a href='#SkMatrix_MakeRectToRect'>MakeRectToRect</a>(const <a href='SkRect_Reference#SkRect'>SkRect</a>& src, const <a href='SkRect_Reference#SkRect'>SkRect</a>& dst, <a href='#SkMatrix_ScaleToFit'>ScaleToFit</a> stf);
+ bool <a href='#SkMatrix_setPolyToPoly'>setPolyToPoly</a>(const <a href='SkPoint_Reference#SkPoint'>SkPoint</a> src[], const <a href='SkPoint_Reference#SkPoint'>SkPoint</a> dst[], int count);
+ bool <a href='#SkMatrix_invert'>invert</a>(<a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a>* inverse) const;
+ static void <a href='#SkMatrix_SetAffineIdentity'>SetAffineIdentity</a>(<a href='undocumented#SkScalar'>SkScalar</a> affine[6]);
+ bool <a href='#SkMatrix_asAffine'>asAffine</a>(<a href='undocumented#SkScalar'>SkScalar</a> affine[6]) const;
+ void <a href='#SkMatrix_setAffine'>setAffine</a>(const <a href='undocumented#SkScalar'>SkScalar</a> affine[6]);
+ void <a href='#SkMatrix_mapPoints'>mapPoints</a>(<a href='SkPoint_Reference#SkPoint'>SkPoint</a> dst[], const <a href='SkPoint_Reference#SkPoint'>SkPoint</a> src[], int count) const;
+ void <a href='#SkMatrix_mapPoints'>mapPoints</a>(<a href='SkPoint_Reference#SkPoint'>SkPoint</a> pts[], int count) const;
+ void <a href='#SkMatrix_mapHomogeneousPoints'>mapHomogeneousPoints</a>(<a href='undocumented#SkPoint3'>SkPoint3</a> dst[], const <a href='undocumented#SkPoint3'>SkPoint3</a> src[], int count) const;
+ void <a href='#SkMatrix_mapXY'>mapXY</a>(<a href='undocumented#SkScalar'>SkScalar</a> x, <a href='undocumented#SkScalar'>SkScalar</a> y, <a href='SkPoint_Reference#SkPoint'>SkPoint</a>* result) const;
+ <a href='SkPoint_Reference#SkPoint'>SkPoint</a> <a href='#SkMatrix_mapXY'>mapXY</a>(<a href='undocumented#SkScalar'>SkScalar</a> x, <a href='undocumented#SkScalar'>SkScalar</a> y) const;
+ void <a href='#SkMatrix_mapVectors'>mapVectors</a>(<a href='SkPoint_Reference#SkVector'>SkVector</a> dst[], const <a href='SkPoint_Reference#SkVector'>SkVector</a> src[], int count) const;
+ void <a href='#SkMatrix_mapVectors'>mapVectors</a>(<a href='SkPoint_Reference#SkVector'>SkVector</a> vecs[], int count) const;
+ void <a href='#SkMatrix_mapVector'>mapVector</a>(<a href='undocumented#SkScalar'>SkScalar</a> dx, <a href='undocumented#SkScalar'>SkScalar</a> dy, <a href='SkPoint_Reference#SkVector'>SkVector</a>* result) const;
+ <a href='SkPoint_Reference#SkVector'>SkVector</a> <a href='#SkMatrix_mapVector'>mapVector</a>(<a href='undocumented#SkScalar'>SkScalar</a> dx, <a href='undocumented#SkScalar'>SkScalar</a> dy) const;
+ bool <a href='#SkMatrix_mapRect'>mapRect</a>(<a href='SkRect_Reference#SkRect'>SkRect</a>* dst, const <a href='SkRect_Reference#SkRect'>SkRect</a>& src) const;
+ bool <a href='#SkMatrix_mapRect'>mapRect</a>(<a href='SkRect_Reference#SkRect'>SkRect</a>* <a href='SkRect_Reference#Rect'>rect</a>) const;
+ <a href='SkRect_Reference#SkRect'>SkRect</a> <a href='#SkMatrix_mapRect'>mapRect</a>(const <a href='SkRect_Reference#SkRect'>SkRect</a>& src) const;
+ void <a href='#SkMatrix_mapRectToQuad'>mapRectToQuad</a>(<a href='SkPoint_Reference#SkPoint'>SkPoint</a> dst[4], const <a href='SkRect_Reference#SkRect'>SkRect</a>& <a href='SkRect_Reference#Rect'>rect</a>) const;
+ void <a href='#SkMatrix_mapRectScaleTranslate'>mapRectScaleTranslate</a>(<a href='SkRect_Reference#SkRect'>SkRect</a>* dst, const <a href='SkRect_Reference#SkRect'>SkRect</a>& src) const;
+ <a href='undocumented#SkScalar'>SkScalar</a> <a href='#SkMatrix_mapRadius'>mapRadius</a>(<a href='undocumented#SkScalar'>SkScalar</a> radius) const;
+ bool <a href='#SkMatrix_isFixedStepInX'>isFixedStepInX</a>() const;
+ <a href='SkPoint_Reference#SkVector'>SkVector</a> <a href='#SkMatrix_fixedStepInX'>fixedStepInX</a>(<a href='undocumented#SkScalar'>SkScalar</a> y) const;
+ bool <a href='#SkMatrix_cheapEqualTo'>cheapEqualTo</a>(const <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a>& m) const;
+ friend bool operator==(const <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a>& a, const <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a>& b);
+ friend bool operator!=(const <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a>& a, const <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a>& b);
+ void <a href='#SkMatrix_dump'>dump()</a> const;
+ <a href='undocumented#SkScalar'>SkScalar</a> <a href='#SkMatrix_getMinScale'>getMinScale</a>() const;
+ <a href='undocumented#SkScalar'>SkScalar</a> <a href='#SkMatrix_getMaxScale'>getMaxScale</a>() const;
+ bool <a href='#SkMatrix_getMinMaxScales'>getMinMaxScales</a>(<a href='undocumented#SkScalar'>SkScalar</a> scaleFactors[2]) const;
+ bool <a href='#SkMatrix_decomposeScale'>decomposeScale</a>(<a href='undocumented#SkSize'>SkSize</a>* scale, <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a>* remaining = nullptr) const;
+ static const <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a>& <a href='#SkMatrix_I'>I</a>();
+ static const <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a>& <a href='#SkMatrix_InvalidMatrix'>InvalidMatrix</a>();
+ static <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> <a href='#SkMatrix_Concat'>Concat</a>(const <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a>& a, const <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a>& b);
+ void <a href='#SkMatrix_dirtyMatrixTypeCache'>dirtyMatrixTypeCache</a>();
+ void <a href='#SkMatrix_setScaleTranslate'>setScaleTranslate</a>(<a href='undocumented#SkScalar'>SkScalar</a> sx, <a href='undocumented#SkScalar'>SkScalar</a> sy, <a href='undocumented#SkScalar'>SkScalar</a> tx, <a href='undocumented#SkScalar'>SkScalar</a> ty);
+ bool <a href='#SkMatrix_isFinite'>isFinite</a>() const;
};
</pre>
-<a href='SkMatrix_Reference#Matrix'>Matrix</a> <a href='SkMatrix_Reference#Matrix'>holds</a> <a href='SkMatrix_Reference#Matrix'>a</a> 3 <a href='SkMatrix_Reference#Matrix'>by</a> 3 <a href='SkMatrix_Reference#Matrix'>matrix</a> <a href='SkMatrix_Reference#Matrix'>for</a> <a href='SkMatrix_Reference#Matrix'>transforming</a> <a href='SkMatrix_Reference#Matrix'>coordinates</a>. <a href='SkMatrix_Reference#Matrix'>This</a> <a href='SkMatrix_Reference#Matrix'>allows</a> <a href='SkMatrix_Reference#Matrix'>mapping</a>
-<a href='SkPoint_Reference#Point'>Points</a> <a href='SkPoint_Reference#Point'>and</a> <a href='SkPoint_Reference#Vector'>Vectors</a> <a href='SkPoint_Reference#Vector'>with</a> <a href='SkPoint_Reference#Vector'>translation</a>, <a href='SkPoint_Reference#Vector'>scaling</a>, <a href='SkPoint_Reference#Vector'>skewing</a>, <a href='SkPoint_Reference#Vector'>rotation</a>, <a href='SkPoint_Reference#Vector'>and</a>
-<a href='SkPoint_Reference#Vector'>perspective</a>.
+<a href='SkMatrix_Reference#Matrix'>Matrix</a> holds a 3 by 3 <a href='SkMatrix_Reference#Matrix'>matrix</a> for transforming coordinates. This allows mapping
+<a href='SkPoint_Reference#Point'>Points</a> and <a href='SkPoint_Reference#Vector'>Vectors</a> with translation, scaling, skewing, rotation, and
+perspective.
-<a href='SkMatrix_Reference#Matrix'>Matrix</a> <a href='SkMatrix_Reference#Matrix'>elements</a> <a href='SkMatrix_Reference#Matrix'>are</a> <a href='SkMatrix_Reference#Matrix'>in</a> <a href='SkMatrix_Reference#Matrix'>row</a> <a href='SkMatrix_Reference#Matrix'>major</a> <a href='SkMatrix_Reference#Matrix'>order</a>. <a href='SkMatrix_Reference#Matrix'>Matrix</a> <a href='SkMatrix_Reference#Matrix'>does</a> <a href='SkMatrix_Reference#Matrix'>not</a> <a href='SkMatrix_Reference#Matrix'>have</a> <a href='SkMatrix_Reference#Matrix'>a</a> <a href='SkMatrix_Reference#Matrix'>constructor</a>,
-<a href='SkMatrix_Reference#Matrix'>so</a> <a href='SkMatrix_Reference#Matrix'>it</a> <a href='SkMatrix_Reference#Matrix'>must</a> <a href='SkMatrix_Reference#Matrix'>be</a> <a href='SkMatrix_Reference#Matrix'>explicitly</a> <a href='SkMatrix_Reference#Matrix'>initialized</a>. <a href='#SkMatrix_setIdentity'>setIdentity</a> <a href='#SkMatrix_setIdentity'>initializes</a> <a href='SkMatrix_Reference#Matrix'>Matrix</a>
-<a href='SkMatrix_Reference#Matrix'>so</a> <a href='SkMatrix_Reference#Matrix'>it</a> <a href='SkMatrix_Reference#Matrix'>has</a> <a href='SkMatrix_Reference#Matrix'>no</a> <a href='SkMatrix_Reference#Matrix'>effect</a>. <a href='#SkMatrix_setTranslate'>setTranslate</a>, <a href='#SkMatrix_setScale'>setScale</a>, <a href='#SkMatrix_setSkew'>setSkew</a>, <a href='#SkMatrix_setRotate'>setRotate</a>, <a href='#SkMatrix_set9'>set9</a> <a href='#SkMatrix_set9'>and</a> <a href='#SkMatrix_setAll'>setAll</a>
-<a href='#SkMatrix_setAll'>initializes</a> <a href='#SkMatrix_setAll'>all</a> <a href='SkMatrix_Reference#Matrix'>Matrix</a> <a href='SkMatrix_Reference#Matrix'>elements</a> <a href='SkMatrix_Reference#Matrix'>with</a> <a href='SkMatrix_Reference#Matrix'>the</a> <a href='SkMatrix_Reference#Matrix'>corresponding</a> <a href='SkMatrix_Reference#Matrix'>mapping</a>.
+<a href='SkMatrix_Reference#Matrix'>Matrix</a> elements are in row major order. <a href='SkMatrix_Reference#Matrix'>Matrix</a> does not have a constructor,
+so it must be explicitly initialized. <a href='#SkMatrix_setIdentity'>setIdentity</a> initializes <a href='SkMatrix_Reference#Matrix'>Matrix</a>
+so it has no effect. <a href='#SkMatrix_setTranslate'>setTranslate</a>, <a href='#SkMatrix_setScale'>setScale</a>, <a href='#SkMatrix_setSkew'>setSkew</a>, <a href='#SkMatrix_setRotate'>setRotate</a>, <a href='#SkMatrix_set9'>set9</a> and <a href='#SkMatrix_setAll'>setAll</a>
+initializes all <a href='SkMatrix_Reference#Matrix'>Matrix</a> elements with the corresponding mapping.
-<a href='SkMatrix_Reference#Matrix'>Matrix</a> <a href='SkMatrix_Reference#Matrix'>includes</a> <a href='SkMatrix_Reference#Matrix'>a</a> <a href='SkMatrix_Reference#Matrix'>hidden</a> <a href='SkMatrix_Reference#Matrix'>variable</a> <a href='SkMatrix_Reference#Matrix'>that</a> <a href='SkMatrix_Reference#Matrix'>classifies</a> <a href='SkMatrix_Reference#Matrix'>the</a> <a href='SkMatrix_Reference#Matrix'>type</a> <a href='SkMatrix_Reference#Matrix'>of</a> <a href='SkMatrix_Reference#Matrix'>matrix</a> <a href='SkMatrix_Reference#Matrix'>to</a>
-<a href='SkMatrix_Reference#Matrix'>improve</a> <a href='SkMatrix_Reference#Matrix'>performance</a>. <a href='SkMatrix_Reference#Matrix'>Matrix</a> <a href='SkMatrix_Reference#Matrix'>is</a> <a href='SkMatrix_Reference#Matrix'>not</a> <a href='SkMatrix_Reference#Matrix'>thread</a> <a href='SkMatrix_Reference#Matrix'>safe</a> <a href='SkMatrix_Reference#Matrix'>unless</a> <a href='#SkMatrix_getType'>getType</a> <a href='#SkMatrix_getType'>is</a> <a href='#SkMatrix_getType'>called</a> <a href='#SkMatrix_getType'>first</a>.
+<a href='SkMatrix_Reference#Matrix'>Matrix</a> includes a hidden variable that classifies the type of <a href='SkMatrix_Reference#Matrix'>matrix</a> to
+improve performance. <a href='SkMatrix_Reference#Matrix'>Matrix</a> is not thread safe unless <a href='#SkMatrix_getType'>getType</a> is called first.
<a name='SkMatrix_MakeScale'></a>
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-static <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> <a href='#SkMatrix_MakeScale'>MakeScale</a>(<a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>sx</a>, <a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>sy</a>)
+static <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> <a href='#SkMatrix_MakeScale'>MakeScale</a>(<a href='undocumented#SkScalar'>SkScalar</a> sx, <a href='undocumented#SkScalar'>SkScalar</a> sy)
</pre>
-Sets <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> <a href='SkMatrix_Reference#SkMatrix'>to</a> <a href='SkMatrix_Reference#SkMatrix'>scale</a> <a href='SkMatrix_Reference#SkMatrix'>by</a> (<a href='#SkMatrix_MakeScale_sx'>sx</a>, <a href='#SkMatrix_MakeScale_sy'>sy</a>). <a href='#SkMatrix_MakeScale_sy'>Returned</a> <a href='SkMatrix_Reference#Matrix'>matrix</a> <a href='SkMatrix_Reference#Matrix'>is</a>:
+Sets <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> to scale by (<a href='#SkMatrix_MakeScale_sx'>sx</a>, <a href='#SkMatrix_MakeScale_sy'>sy</a>). Returned <a href='SkMatrix_Reference#Matrix'>matrix</a> is:
| <a href='#SkMatrix_MakeScale_sx'>sx</a> 0 0 |
| 0 <a href='#SkMatrix_MakeScale_sy'>sy</a> 0 |
@@ -194,7 +194,7 @@
### Return Value
-<a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> <a href='SkMatrix_Reference#SkMatrix'>with</a> <a href='SkMatrix_Reference#SkMatrix'>scale</a>
+<a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> with scale
### Example
@@ -209,10 +209,10 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-static <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> <a href='#SkMatrix_MakeScale'>MakeScale</a>(<a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>scale</a>)
+static <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> <a href='#SkMatrix_MakeScale'>MakeScale</a>(<a href='undocumented#SkScalar'>SkScalar</a> scale)
</pre>
-Sets <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> <a href='SkMatrix_Reference#SkMatrix'>to</a> <a href='#SkMatrix_MakeScale_2_scale'>scale</a> <a href='#SkMatrix_MakeScale_2_scale'>by</a> (<a href='#SkMatrix_MakeScale_2_scale'>scale</a>, <a href='#SkMatrix_MakeScale_2_scale'>scale</a>). <a href='#SkMatrix_MakeScale_2_scale'>Returned</a> <a href='SkMatrix_Reference#Matrix'>matrix</a> <a href='SkMatrix_Reference#Matrix'>is</a>:
+Sets <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> to <a href='#SkMatrix_MakeScale_2_scale'>scale</a> by (<a href='#SkMatrix_MakeScale_2_scale'>scale</a>, <a href='#SkMatrix_MakeScale_2_scale'>scale</a>). Returned <a href='SkMatrix_Reference#Matrix'>matrix</a> is:
| <a href='#SkMatrix_MakeScale_2_scale'>scale</a> 0 0 |
| 0 <a href='#SkMatrix_MakeScale_2_scale'>scale</a> 0 |
@@ -221,13 +221,13 @@
### Parameters
<table> <tr> <td><a name='SkMatrix_MakeScale_2_scale'><code><strong>scale</strong></code></a></td>
- <td>horizontal and vertical <a href='#SkMatrix_MakeScale_2_scale'>scale</a> <a href='#SkMatrix_MakeScale_2_scale'>factor</a></td>
+ <td>horizontal and vertical <a href='#SkMatrix_MakeScale_2_scale'>scale</a> factor</td>
</tr>
</table>
### Return Value
-<a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> <a href='SkMatrix_Reference#SkMatrix'>with</a> <a href='#SkMatrix_MakeScale_2_scale'>scale</a>
+<a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> with <a href='#SkMatrix_MakeScale_2_scale'>scale</a>
### Example
@@ -242,10 +242,10 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-static <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> <a href='#SkMatrix_MakeTrans'>MakeTrans</a>(<a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>dx</a>, <a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>dy</a>)
+static <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> <a href='#SkMatrix_MakeTrans'>MakeTrans</a>(<a href='undocumented#SkScalar'>SkScalar</a> dx, <a href='undocumented#SkScalar'>SkScalar</a> dy)
</pre>
-Sets <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> <a href='SkMatrix_Reference#SkMatrix'>to</a> <a href='SkMatrix_Reference#SkMatrix'>translate</a> <a href='SkMatrix_Reference#SkMatrix'>by</a> (<a href='#SkMatrix_MakeTrans_dx'>dx</a>, <a href='#SkMatrix_MakeTrans_dy'>dy</a>). <a href='#SkMatrix_MakeTrans_dy'>Returned</a> <a href='SkMatrix_Reference#Matrix'>matrix</a> <a href='SkMatrix_Reference#Matrix'>is</a>:
+Sets <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> to translate by (<a href='#SkMatrix_MakeTrans_dx'>dx</a>, <a href='#SkMatrix_MakeTrans_dy'>dy</a>). Returned <a href='SkMatrix_Reference#Matrix'>matrix</a> is:
| 1 0 <a href='#SkMatrix_MakeTrans_dx'>dx</a> |
| 0 1 <a href='#SkMatrix_MakeTrans_dy'>dy</a> |
@@ -263,7 +263,7 @@
### Return Value
-<a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> <a href='SkMatrix_Reference#SkMatrix'>with</a> <a href='SkMatrix_Reference#SkMatrix'>translation</a>
+<a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> with translation
### Example
@@ -278,12 +278,12 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-static <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> <a href='#SkMatrix_MakeAll'>MakeAll</a>(<a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>scaleX</a>, <a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>skewX</a>, <a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>transX</a>, <a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>skewY</a>,
- <a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>scaleY</a>, <a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>transY</a>, <a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>pers0</a>, <a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>pers1</a>,
- <a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>pers2</a>)
+static <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> <a href='#SkMatrix_MakeAll'>MakeAll</a>(<a href='undocumented#SkScalar'>SkScalar</a> scaleX, <a href='undocumented#SkScalar'>SkScalar</a> skewX, <a href='undocumented#SkScalar'>SkScalar</a> transX, <a href='undocumented#SkScalar'>SkScalar</a> skewY,
+ <a href='undocumented#SkScalar'>SkScalar</a> scaleY, <a href='undocumented#SkScalar'>SkScalar</a> transY, <a href='undocumented#SkScalar'>SkScalar</a> pers0, <a href='undocumented#SkScalar'>SkScalar</a> pers1,
+ <a href='undocumented#SkScalar'>SkScalar</a> pers2)
</pre>
-Sets <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> <a href='SkMatrix_Reference#SkMatrix'>to</a>:
+Sets <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> to:
| <a href='#SkMatrix_MakeAll_scaleX'>scaleX</a> <a href='#SkMatrix_MakeAll_skewX'>skewX</a> <a href='#SkMatrix_MakeAll_transX'>transX</a> |
| <a href='#SkMatrix_MakeAll_skewY'>skewY</a> <a href='#SkMatrix_MakeAll_scaleY'>scaleY</a> <a href='#SkMatrix_MakeAll_transY'>transY</a> |
@@ -322,7 +322,7 @@
### Return Value
-<a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> <a href='SkMatrix_Reference#SkMatrix'>constructed</a> <a href='SkMatrix_Reference#SkMatrix'>from</a> <a href='SkMatrix_Reference#SkMatrix'>parameters</a>
+<a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> constructed from parameters
### Example
@@ -339,15 +339,15 @@
<pre style="padding: 1em 1em 1em 1em;width: 62.5em; background-color: #f0f0f0">
enum <a href='#SkMatrix_TypeMask'>TypeMask</a> {
<a href='#SkMatrix_kIdentity_Mask'>kIdentity_Mask</a> = 0,
- <a href='#SkMatrix_kTranslate_Mask'>kTranslate_Mask</a> = 0<a href='#SkMatrix_kTranslate_Mask'>x01</a>,
- <a href='#SkMatrix_kScale_Mask'>kScale_Mask</a> = 0<a href='#SkMatrix_kScale_Mask'>x02</a>,
- <a href='#SkMatrix_kAffine_Mask'>kAffine_Mask</a> = 0<a href='#SkMatrix_kAffine_Mask'>x04</a>,
- <a href='#SkMatrix_kPerspective_Mask'>kPerspective_Mask</a> = 0<a href='#SkMatrix_kPerspective_Mask'>x08</a>,
+ <a href='#SkMatrix_kTranslate_Mask'>kTranslate_Mask</a> = 0x01,
+ <a href='#SkMatrix_kScale_Mask'>kScale_Mask</a> = 0x02,
+ <a href='#SkMatrix_kAffine_Mask'>kAffine_Mask</a> = 0x04,
+ <a href='#SkMatrix_kPerspective_Mask'>kPerspective_Mask</a> = 0x08,
};
</pre>
Enumeration of bit fields for mask returned by <a href='#SkMatrix_getType'>getType</a>.
-<a href='#SkMatrix_getType'>Used</a> <a href='#SkMatrix_getType'>to</a> <a href='#SkMatrix_getType'>identify</a> <a href='#SkMatrix_getType'>the</a> <a href='#SkMatrix_getType'>complexity</a> <a href='#SkMatrix_getType'>of</a> <a href='SkMatrix_Reference#Matrix'>Matrix</a>, <a href='SkMatrix_Reference#Matrix'>to</a> <a href='SkMatrix_Reference#Matrix'>optimize</a> <a href='SkMatrix_Reference#Matrix'>performance</a>.
+Used to identify the complexity of <a href='SkMatrix_Reference#Matrix'>Matrix</a>, to optimize performance.
### Constants
@@ -359,35 +359,35 @@
<td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a name='SkMatrix_kIdentity_Mask'><code>SkMatrix::kIdentity_Mask</code></a></td>
<td style='text-align: center; border: 2px solid #dddddd; padding: 8px; '>0</td>
<td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>
-all bits clear if <a href='SkMatrix_Reference#Matrix'>Matrix</a> <a href='SkMatrix_Reference#Matrix'>is</a> <a href='SkMatrix_Reference#Matrix'>identity</a>
+all bits clear if <a href='SkMatrix_Reference#Matrix'>Matrix</a> is identity
</td>
</tr>
<tr>
<td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a name='SkMatrix_kTranslate_Mask'><code>SkMatrix::kTranslate_Mask</code></a></td>
<td style='text-align: center; border: 2px solid #dddddd; padding: 8px; '>1</td>
<td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>
-set if <a href='SkMatrix_Reference#Matrix'>Matrix</a> <a href='SkMatrix_Reference#Matrix'>has</a> <a href='SkMatrix_Reference#Matrix'>translation</a>
+set if <a href='SkMatrix_Reference#Matrix'>Matrix</a> has translation
</td>
</tr>
<tr style='background-color: #f0f0f0; '>
<td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a name='SkMatrix_kScale_Mask'><code>SkMatrix::kScale_Mask</code></a></td>
<td style='text-align: center; border: 2px solid #dddddd; padding: 8px; '>2</td>
<td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>
-set if <a href='SkMatrix_Reference#Matrix'>Matrix</a> <a href='SkMatrix_Reference#Matrix'>scales</a> <a href='SkMatrix_Reference#Matrix'>x-axis</a> <a href='SkMatrix_Reference#Matrix'>or</a> <a href='SkMatrix_Reference#Matrix'>y-axis</a>
+set if <a href='SkMatrix_Reference#Matrix'>Matrix</a> scales x-axis or y-axis
</td>
</tr>
<tr>
<td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a name='SkMatrix_kAffine_Mask'><code>SkMatrix::kAffine_Mask</code></a></td>
<td style='text-align: center; border: 2px solid #dddddd; padding: 8px; '>4</td>
<td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>
-set if <a href='SkMatrix_Reference#Matrix'>Matrix</a> <a href='SkMatrix_Reference#Matrix'>skews</a> <a href='SkMatrix_Reference#Matrix'>or</a> <a href='SkMatrix_Reference#Matrix'>rotates</a>
+set if <a href='SkMatrix_Reference#Matrix'>Matrix</a> skews or rotates
</td>
</tr>
<tr style='background-color: #f0f0f0; '>
<td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a name='SkMatrix_kPerspective_Mask'><code>SkMatrix::kPerspective_Mask</code></a></td>
<td style='text-align: center; border: 2px solid #dddddd; padding: 8px; '>8</td>
<td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>
-set if <a href='SkMatrix_Reference#Matrix'>Matrix</a> <a href='SkMatrix_Reference#Matrix'>has</a> <a href='SkMatrix_Reference#Matrix'>perspective</a>
+set if <a href='SkMatrix_Reference#Matrix'>Matrix</a> has perspective
</td>
</tr>
</table>
@@ -419,17 +419,17 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-<a href='#SkMatrix_TypeMask'>TypeMask</a> <a href='#SkMatrix_getType'>getType</a>() <a href='#SkMatrix_getType'>const</a>
+<a href='#SkMatrix_TypeMask'>TypeMask</a> <a href='#SkMatrix_getType'>getType</a>() const
</pre>
-Returns a bit field describing the transformations the <a href='SkMatrix_Reference#Matrix'>matrix</a> <a href='SkMatrix_Reference#Matrix'>may</a>
+Returns a bit field describing the transformations the <a href='SkMatrix_Reference#Matrix'>matrix</a> may
perform. The bit field is computed conservatively, so it may include
-false positives. For example, when <a href='#SkMatrix_kPerspective_Mask'>kPerspective_Mask</a> <a href='#SkMatrix_kPerspective_Mask'>is</a> <a href='#SkMatrix_kPerspective_Mask'>set</a>, <a href='#SkMatrix_kPerspective_Mask'>all</a>
+false positives. For example, when <a href='#SkMatrix_kPerspective_Mask'>kPerspective_Mask</a> is set, all
other bits are set.
### Return Value
-<a href='#SkMatrix_kIdentity_Mask'>kIdentity_Mask</a>, <a href='#SkMatrix_kIdentity_Mask'>or</a> <a href='#SkMatrix_kIdentity_Mask'>combinations</a> <a href='#SkMatrix_kIdentity_Mask'>of</a>: <a href='#SkMatrix_kTranslate_Mask'>kTranslate_Mask</a>, <a href='#SkMatrix_kScale_Mask'>kScale_Mask</a>,
+<a href='#SkMatrix_kIdentity_Mask'>kIdentity_Mask</a>, or combinations of: <a href='#SkMatrix_kTranslate_Mask'>kTranslate_Mask</a>, <a href='#SkMatrix_kScale_Mask'>kScale_Mask</a>,
<a href='#SkMatrix_kAffine_Mask'>kAffine_Mask</a>, <a href='#SkMatrix_kPerspective_Mask'>kPerspective_Mask</a>
@@ -455,10 +455,10 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-bool <a href='#SkMatrix_isIdentity'>isIdentity</a>() <a href='#SkMatrix_isIdentity'>const</a>
+bool <a href='#SkMatrix_isIdentity'>isIdentity</a>() const
</pre>
-Returns true if <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> <a href='SkMatrix_Reference#SkMatrix'>is</a> <a href='SkMatrix_Reference#SkMatrix'>identity</a>. <a href='SkMatrix_Reference#SkMatrix'>Identity</a> <a href='SkMatrix_Reference#Matrix'>matrix</a> <a href='SkMatrix_Reference#Matrix'>is</a>:
+Returns true if <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> is identity. Identity <a href='SkMatrix_Reference#Matrix'>matrix</a> is:
| 1 0 0 |
| 0 1 0 |
@@ -466,7 +466,7 @@
### Return Value
-true if <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> <a href='SkMatrix_Reference#SkMatrix'>has</a> <a href='SkMatrix_Reference#SkMatrix'>no</a> <a href='SkMatrix_Reference#SkMatrix'>effect</a>
+true if <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> has no effect
### Example
@@ -490,11 +490,11 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-bool <a href='#SkMatrix_isScaleTranslate'>isScaleTranslate</a>() <a href='#SkMatrix_isScaleTranslate'>const</a>
+bool <a href='#SkMatrix_isScaleTranslate'>isScaleTranslate</a>() const
</pre>
-Returns true if <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> <a href='SkMatrix_Reference#SkMatrix'>at</a> <a href='SkMatrix_Reference#SkMatrix'>most</a> <a href='SkMatrix_Reference#SkMatrix'>scales</a> <a href='SkMatrix_Reference#SkMatrix'>and</a> <a href='SkMatrix_Reference#SkMatrix'>translates</a>. <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> <a href='SkMatrix_Reference#SkMatrix'>may</a> <a href='SkMatrix_Reference#SkMatrix'>be</a> <a href='SkMatrix_Reference#SkMatrix'>identity</a>,
-contain only scale elements, only translate elements, or both. <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> <a href='SkMatrix_Reference#SkMatrix'>form</a> <a href='SkMatrix_Reference#SkMatrix'>is</a>:
+Returns true if <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> at most scales and translates. <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> may be identity,
+contain only scale elements, only translate elements, or both. <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> form is:
| scale-x 0 translate-x |
| 0 scale-y translate-y |
@@ -502,7 +502,7 @@
### Return Value
-true if <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> <a href='SkMatrix_Reference#SkMatrix'>is</a> <a href='SkMatrix_Reference#SkMatrix'>identity</a>; <a href='SkMatrix_Reference#SkMatrix'>or</a> <a href='SkMatrix_Reference#SkMatrix'>scales</a>, <a href='SkMatrix_Reference#SkMatrix'>translates</a>, <a href='SkMatrix_Reference#SkMatrix'>or</a> <a href='SkMatrix_Reference#SkMatrix'>both</a>
+true if <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> is identity; or scales, translates, or both
### Example
@@ -528,10 +528,10 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-bool <a href='#SkMatrix_isTranslate'>isTranslate</a>() <a href='#SkMatrix_isTranslate'>const</a>
+bool <a href='#SkMatrix_isTranslate'>isTranslate</a>() const
</pre>
-Returns true if <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> <a href='SkMatrix_Reference#SkMatrix'>is</a> <a href='SkMatrix_Reference#SkMatrix'>identity</a>, <a href='SkMatrix_Reference#SkMatrix'>or</a> <a href='SkMatrix_Reference#SkMatrix'>translates</a>. <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> <a href='SkMatrix_Reference#SkMatrix'>form</a> <a href='SkMatrix_Reference#SkMatrix'>is</a>:
+Returns true if <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> is identity, or translates. <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> form is:
| 1 0 translate-x |
| 0 1 translate-y |
@@ -539,7 +539,7 @@
### Return Value
-true if <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> <a href='SkMatrix_Reference#SkMatrix'>is</a> <a href='SkMatrix_Reference#SkMatrix'>identity</a>, <a href='SkMatrix_Reference#SkMatrix'>or</a> <a href='SkMatrix_Reference#SkMatrix'>translates</a>
+true if <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> is identity, or translates
### Example
@@ -565,12 +565,12 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-bool <a href='#SkMatrix_rectStaysRect'>rectStaysRect</a>() <a href='#SkMatrix_rectStaysRect'>const</a>
+bool <a href='#SkMatrix_rectStaysRect'>rectStaysRect</a>() const
</pre>
-Returns true <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> <a href='SkMatrix_Reference#SkMatrix'>maps</a> <a href='SkRect_Reference#SkRect'>SkRect</a> <a href='SkRect_Reference#SkRect'>to</a> <a href='SkRect_Reference#SkRect'>another</a> <a href='SkRect_Reference#SkRect'>SkRect</a>. <a href='SkRect_Reference#SkRect'>If</a> <a href='SkRect_Reference#SkRect'>true</a>, <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> <a href='SkMatrix_Reference#SkMatrix'>is</a> <a href='SkMatrix_Reference#SkMatrix'>identity</a>,
+Returns true <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> maps <a href='SkRect_Reference#SkRect'>SkRect</a> to another <a href='SkRect_Reference#SkRect'>SkRect</a>. If true, <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> is identity,
or scales, or rotates a multiple of 90 degrees, or mirrors on axes. In all
-cases, <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> <a href='SkMatrix_Reference#SkMatrix'>may</a> <a href='SkMatrix_Reference#SkMatrix'>also</a> <a href='SkMatrix_Reference#SkMatrix'>have</a> <a href='SkMatrix_Reference#SkMatrix'>translation</a>. <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> <a href='SkMatrix_Reference#SkMatrix'>form</a> <a href='SkMatrix_Reference#SkMatrix'>is</a> <a href='SkMatrix_Reference#SkMatrix'>either</a>:
+cases, <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> may also have translation. <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> form is either:
| scale-x 0 translate-x |
| 0 scale-y translate-y |
@@ -584,12 +584,12 @@
for non-zero values of scale-x, scale-y, rotate-x, and rotate-y.
-Also called <a href='#SkMatrix_preservesAxisAlignment'>preservesAxisAlignment</a>(); <a href='#SkMatrix_preservesAxisAlignment'>use</a> <a href='#SkMatrix_preservesAxisAlignment'>the</a> <a href='#SkMatrix_preservesAxisAlignment'>one</a> <a href='#SkMatrix_preservesAxisAlignment'>that</a> <a href='#SkMatrix_preservesAxisAlignment'>provides</a> <a href='#SkMatrix_preservesAxisAlignment'>better</a> <a href='#SkMatrix_preservesAxisAlignment'>inline</a>
+Also called <a href='#SkMatrix_preservesAxisAlignment'>preservesAxisAlignment</a>(); use the one that provides better inline
documentation.
### Return Value
-true if <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> <a href='SkMatrix_Reference#SkMatrix'>maps</a> <a href='SkMatrix_Reference#SkMatrix'>one</a> <a href='SkRect_Reference#SkRect'>SkRect</a> <a href='SkRect_Reference#SkRect'>into</a> <a href='SkRect_Reference#SkRect'>another</a>
+true if <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> maps one <a href='SkRect_Reference#SkRect'>SkRect</a> into another
### Example
@@ -615,12 +615,12 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-bool <a href='#SkMatrix_preservesAxisAlignment'>preservesAxisAlignment</a>() <a href='#SkMatrix_preservesAxisAlignment'>const</a>
+bool <a href='#SkMatrix_preservesAxisAlignment'>preservesAxisAlignment</a>() const
</pre>
-Returns true <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> <a href='SkMatrix_Reference#SkMatrix'>maps</a> <a href='SkRect_Reference#SkRect'>SkRect</a> <a href='SkRect_Reference#SkRect'>to</a> <a href='SkRect_Reference#SkRect'>another</a> <a href='SkRect_Reference#SkRect'>SkRect</a>. <a href='SkRect_Reference#SkRect'>If</a> <a href='SkRect_Reference#SkRect'>true</a>, <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> <a href='SkMatrix_Reference#SkMatrix'>is</a> <a href='SkMatrix_Reference#SkMatrix'>identity</a>,
+Returns true <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> maps <a href='SkRect_Reference#SkRect'>SkRect</a> to another <a href='SkRect_Reference#SkRect'>SkRect</a>. If true, <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> is identity,
or scales, or rotates a multiple of 90 degrees, or mirrors on axes. In all
-cases, <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> <a href='SkMatrix_Reference#SkMatrix'>may</a> <a href='SkMatrix_Reference#SkMatrix'>also</a> <a href='SkMatrix_Reference#SkMatrix'>have</a> <a href='SkMatrix_Reference#SkMatrix'>translation</a>. <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> <a href='SkMatrix_Reference#SkMatrix'>form</a> <a href='SkMatrix_Reference#SkMatrix'>is</a> <a href='SkMatrix_Reference#SkMatrix'>either</a>:
+cases, <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> may also have translation. <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> form is either:
| scale-x 0 translate-x |
| 0 scale-y translate-y |
@@ -634,12 +634,12 @@
for non-zero values of scale-x, scale-y, rotate-x, and rotate-y.
-Also called <a href='#SkMatrix_rectStaysRect'>rectStaysRect</a>(); <a href='#SkMatrix_rectStaysRect'>use</a> <a href='#SkMatrix_rectStaysRect'>the</a> <a href='#SkMatrix_rectStaysRect'>one</a> <a href='#SkMatrix_rectStaysRect'>that</a> <a href='#SkMatrix_rectStaysRect'>provides</a> <a href='#SkMatrix_rectStaysRect'>better</a> <a href='#SkMatrix_rectStaysRect'>inline</a>
+Also called <a href='#SkMatrix_rectStaysRect'>rectStaysRect</a>(); use the one that provides better inline
documentation.
### Return Value
-true if <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> <a href='SkMatrix_Reference#SkMatrix'>maps</a> <a href='SkMatrix_Reference#SkMatrix'>one</a> <a href='SkRect_Reference#SkRect'>SkRect</a> <a href='SkRect_Reference#SkRect'>into</a> <a href='SkRect_Reference#SkRect'>another</a>
+true if <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> maps one <a href='SkRect_Reference#SkRect'>SkRect</a> into another
### Example
@@ -665,10 +665,10 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-bool <a href='#SkMatrix_hasPerspective'>hasPerspective</a>() <a href='#SkMatrix_hasPerspective'>const</a>
+bool <a href='#SkMatrix_hasPerspective'>hasPerspective</a>() const
</pre>
-Returns true if the <a href='SkMatrix_Reference#Matrix'>matrix</a> <a href='SkMatrix_Reference#Matrix'>contains</a> <a href='SkMatrix_Reference#Matrix'>perspective</a> <a href='SkMatrix_Reference#Matrix'>elements</a>. <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> <a href='SkMatrix_Reference#SkMatrix'>form</a> <a href='SkMatrix_Reference#SkMatrix'>is</a>:
+Returns true if the <a href='SkMatrix_Reference#Matrix'>matrix</a> contains perspective elements. <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> form is:
| -- -- -- |
| -- -- -- |
@@ -679,7 +679,7 @@
### Return Value
-true if <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> <a href='SkMatrix_Reference#SkMatrix'>is</a> <a href='SkMatrix_Reference#SkMatrix'>in</a> <a href='SkMatrix_Reference#SkMatrix'>most</a> <a href='SkMatrix_Reference#SkMatrix'>general</a> <a href='SkMatrix_Reference#SkMatrix'>form</a>
+true if <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> is in most general form
### Example
@@ -694,16 +694,16 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-bool <a href='#SkMatrix_isSimilarity'>isSimilarity</a>(<a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>tol</a> = <a href='undocumented#SK_ScalarNearlyZero'>SK_ScalarNearlyZero</a>) <a href='undocumented#SK_ScalarNearlyZero'>const</a>
+bool <a href='#SkMatrix_isSimilarity'>isSimilarity</a>(<a href='undocumented#SkScalar'>SkScalar</a> tol = <a href='undocumented#SK_ScalarNearlyZero'>SK_ScalarNearlyZero</a>) const
</pre>
-Returns true if <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> <a href='SkMatrix_Reference#SkMatrix'>contains</a> <a href='SkMatrix_Reference#SkMatrix'>only</a> <a href='SkMatrix_Reference#SkMatrix'>translation</a>, <a href='SkMatrix_Reference#SkMatrix'>rotation</a>, <a href='SkMatrix_Reference#SkMatrix'>reflection</a>, <a href='SkMatrix_Reference#SkMatrix'>and</a>
+Returns true if <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> contains only translation, rotation, reflection, and
uniform scale.
-Returns false if <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> <a href='SkMatrix_Reference#SkMatrix'>contains</a> <a href='SkMatrix_Reference#SkMatrix'>different</a> <a href='SkMatrix_Reference#SkMatrix'>scales</a>, <a href='SkMatrix_Reference#SkMatrix'>skewing</a>, <a href='SkMatrix_Reference#SkMatrix'>perspective</a>, <a href='SkMatrix_Reference#SkMatrix'>or</a>
-degenerate forms that collapse to a <a href='undocumented#Line'>line</a> <a href='undocumented#Line'>or</a> <a href='SkPoint_Reference#Point'>point</a>.
+Returns false if <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> contains different scales, skewing, perspective, or
+degenerate forms that collapse to a <a href='undocumented#Line'>line</a> or <a href='SkPoint_Reference#Point'>point</a>.
-Describes that the <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> <a href='SkMatrix_Reference#SkMatrix'>makes</a> <a href='SkMatrix_Reference#SkMatrix'>rendering</a> <a href='SkMatrix_Reference#SkMatrix'>with</a> <a href='SkMatrix_Reference#SkMatrix'>and</a> <a href='SkMatrix_Reference#SkMatrix'>without</a> <a href='SkMatrix_Reference#SkMatrix'>the</a> <a href='SkMatrix_Reference#Matrix'>matrix</a> <a href='SkMatrix_Reference#Matrix'>are</a>
-visually alike; a transformed <a href='undocumented#Circle'>circle</a> <a href='undocumented#Circle'>remains</a> <a href='undocumented#Circle'>a</a> <a href='undocumented#Circle'>circle</a>. <a href='undocumented#Circle'>Mathematically</a>, <a href='undocumented#Circle'>this</a> <a href='undocumented#Circle'>is</a>
+Describes that the <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> makes rendering with and without the <a href='SkMatrix_Reference#Matrix'>matrix</a> are
+visually alike; a transformed <a href='undocumented#Circle'>circle</a> remains a <a href='undocumented#Circle'>circle</a>. Mathematically, this is
referred to as similarity of a <a href='undocumented#Euclidean_Space'>Euclidean space</a>, or a similarity transformation.
Preserves right angles, keeping the arms of the angle equal lengths.
@@ -717,12 +717,12 @@
### Return Value
-true if <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> <a href='SkMatrix_Reference#SkMatrix'>only</a> <a href='SkMatrix_Reference#SkMatrix'>rotates</a>, <a href='SkMatrix_Reference#SkMatrix'>uniformly</a> <a href='SkMatrix_Reference#SkMatrix'>scales</a>, <a href='SkMatrix_Reference#SkMatrix'>translates</a>
+true if <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> only rotates, uniformly scales, translates
### Example
-<div><fiddle-embed name="8b37f4ae7fec1756433c0f984175fb14"><div><a href='undocumented#String'>String</a> <a href='undocumented#String'>is</a> <a href='undocumented#String'>drawn</a> <a href='undocumented#String'>four</a> <a href='undocumented#String'>times</a> <a href='undocumented#String'>through</a> <a href='undocumented#String'>but</a> <a href='undocumented#String'>only</a> <a href='undocumented#String'>two</a> <a href='undocumented#String'>are</a> <a href='undocumented#String'>visible</a>. <a href='undocumented#String'>Drawing</a> <a href='undocumented#String'>the</a> <a href='undocumented#String'>pair</a>
-<a href='undocumented#String'>with</a> <a href='#SkMatrix_isSimilarity'>isSimilarity</a> <a href='#SkMatrix_isSimilarity'>false</a> <a href='#SkMatrix_isSimilarity'>reveals</a> <a href='#SkMatrix_isSimilarity'>the</a> <a href='#SkMatrix_isSimilarity'>pair</a> <a href='#SkMatrix_isSimilarity'>not</a> <a href='#SkMatrix_isSimilarity'>visible</a> <a href='#SkMatrix_isSimilarity'>through</a> <a href='#SkMatrix_isSimilarity'>the</a> <a href='SkMatrix_Reference#Matrix'>matrix</a>.
+<div><fiddle-embed name="8b37f4ae7fec1756433c0f984175fb14"><div><a href='undocumented#String'>String</a> is drawn four times through but only two are visible. Drawing the pair
+with <a href='#SkMatrix_isSimilarity'>isSimilarity</a> false reveals the pair not visible through the <a href='SkMatrix_Reference#Matrix'>matrix</a>.
</div></fiddle-embed></div>
### See Also
@@ -734,13 +734,13 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-bool <a href='#SkMatrix_preservesRightAngles'>preservesRightAngles</a>(<a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>tol</a> = <a href='undocumented#SK_ScalarNearlyZero'>SK_ScalarNearlyZero</a>) <a href='undocumented#SK_ScalarNearlyZero'>const</a>
+bool <a href='#SkMatrix_preservesRightAngles'>preservesRightAngles</a>(<a href='undocumented#SkScalar'>SkScalar</a> tol = <a href='undocumented#SK_ScalarNearlyZero'>SK_ScalarNearlyZero</a>) const
</pre>
-Returns true if <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> <a href='SkMatrix_Reference#SkMatrix'>contains</a> <a href='SkMatrix_Reference#SkMatrix'>only</a> <a href='SkMatrix_Reference#SkMatrix'>translation</a>, <a href='SkMatrix_Reference#SkMatrix'>rotation</a>, <a href='SkMatrix_Reference#SkMatrix'>reflection</a>, <a href='SkMatrix_Reference#SkMatrix'>and</a>
+Returns true if <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> contains only translation, rotation, reflection, and
scale. Scale may differ along rotated axes.
-Returns false if <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> <a href='SkMatrix_Reference#SkMatrix'>skewing</a>, <a href='SkMatrix_Reference#SkMatrix'>perspective</a>, <a href='SkMatrix_Reference#SkMatrix'>or</a> <a href='SkMatrix_Reference#SkMatrix'>degenerate</a> <a href='SkMatrix_Reference#SkMatrix'>forms</a> <a href='SkMatrix_Reference#SkMatrix'>that</a> <a href='SkMatrix_Reference#SkMatrix'>collapse</a>
-to a <a href='undocumented#Line'>line</a> <a href='undocumented#Line'>or</a> <a href='SkPoint_Reference#Point'>point</a>.
+Returns false if <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> skewing, perspective, or degenerate forms that collapse
+to a <a href='undocumented#Line'>line</a> or <a href='SkPoint_Reference#Point'>point</a>.
Preserves right angles, but not requiring that the arms of the angle
retain equal lengths.
@@ -754,7 +754,7 @@
### Return Value
-true if <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> <a href='SkMatrix_Reference#SkMatrix'>only</a> <a href='SkMatrix_Reference#SkMatrix'>rotates</a>, <a href='SkMatrix_Reference#SkMatrix'>scales</a>, <a href='SkMatrix_Reference#SkMatrix'>translates</a>
+true if <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> only rotates, scales, translates
### Example
@@ -773,18 +773,18 @@
<pre style="padding: 1em 1em 1em 1em;width: 62.5em; background-color: #f0f0f0">
static constexpr int <a href='#SkMatrix_kMScaleX'>kMScaleX</a> = 0;
- <a href='#SkMatrix_kMScaleX'>static</a> <a href='#SkMatrix_kMScaleX'>constexpr</a> <a href='#SkMatrix_kMScaleX'>int</a> <a href='#SkMatrix_kMSkewX'>kMSkewX</a> = 1;
- <a href='#SkMatrix_kMSkewX'>static</a> <a href='#SkMatrix_kMSkewX'>constexpr</a> <a href='#SkMatrix_kMSkewX'>int</a> <a href='#SkMatrix_kMTransX'>kMTransX</a> = 2;
- <a href='#SkMatrix_kMTransX'>static</a> <a href='#SkMatrix_kMTransX'>constexpr</a> <a href='#SkMatrix_kMTransX'>int</a> <a href='#SkMatrix_kMSkewY'>kMSkewY</a> = 3;
- <a href='#SkMatrix_kMSkewY'>static</a> <a href='#SkMatrix_kMSkewY'>constexpr</a> <a href='#SkMatrix_kMSkewY'>int</a> <a href='#SkMatrix_kMScaleY'>kMScaleY</a> = 4;
- <a href='#SkMatrix_kMScaleY'>static</a> <a href='#SkMatrix_kMScaleY'>constexpr</a> <a href='#SkMatrix_kMScaleY'>int</a> <a href='#SkMatrix_kMTransY'>kMTransY</a> = 5;
- <a href='#SkMatrix_kMTransY'>static</a> <a href='#SkMatrix_kMTransY'>constexpr</a> <a href='#SkMatrix_kMTransY'>int</a> <a href='#SkMatrix_kMPersp0'>kMPersp0</a> = 6;
- <a href='#SkMatrix_kMPersp0'>static</a> <a href='#SkMatrix_kMPersp0'>constexpr</a> <a href='#SkMatrix_kMPersp0'>int</a> <a href='#SkMatrix_kMPersp1'>kMPersp1</a> = 7;
- <a href='#SkMatrix_kMPersp1'>static</a> <a href='#SkMatrix_kMPersp1'>constexpr</a> <a href='#SkMatrix_kMPersp1'>int</a> <a href='#SkMatrix_kMPersp2'>kMPersp2</a> = 8;
+ static constexpr int <a href='#SkMatrix_kMSkewX'>kMSkewX</a> = 1;
+ static constexpr int <a href='#SkMatrix_kMTransX'>kMTransX</a> = 2;
+ static constexpr int <a href='#SkMatrix_kMSkewY'>kMSkewY</a> = 3;
+ static constexpr int <a href='#SkMatrix_kMScaleY'>kMScaleY</a> = 4;
+ static constexpr int <a href='#SkMatrix_kMTransY'>kMTransY</a> = 5;
+ static constexpr int <a href='#SkMatrix_kMPersp0'>kMPersp0</a> = 6;
+ static constexpr int <a href='#SkMatrix_kMPersp1'>kMPersp1</a> = 7;
+ static constexpr int <a href='#SkMatrix_kMPersp2'>kMPersp2</a> = 8;
</pre>
-<a href='SkMatrix_Reference#Matrix'>Matrix</a> <a href='SkMatrix_Reference#Matrix'>organizes</a> <a href='SkMatrix_Reference#Matrix'>its</a> <a href='SkMatrix_Reference#Matrix'>values</a> <a href='SkMatrix_Reference#Matrix'>in</a> <a href='SkMatrix_Reference#Matrix'>row</a> <a href='SkMatrix_Reference#Matrix'>order</a>. <a href='SkMatrix_Reference#Matrix'>These</a> <a href='SkMatrix_Reference#Matrix'>members</a> <a href='SkMatrix_Reference#Matrix'>correspond</a> <a href='SkMatrix_Reference#Matrix'>to</a>
-<a href='SkMatrix_Reference#Matrix'>each</a> <a href='SkMatrix_Reference#Matrix'>value</a> <a href='SkMatrix_Reference#Matrix'>in</a> <a href='SkMatrix_Reference#Matrix'>Matrix</a>.
+<a href='SkMatrix_Reference#Matrix'>Matrix</a> organizes its values in row order. These members correspond to
+each value in <a href='SkMatrix_Reference#Matrix'>Matrix</a>.
### Constants
@@ -863,8 +863,8 @@
<pre style="padding: 1em 1em 1em 1em;width: 62.5em; background-color: #f0f0f0">
</pre>
-Affine arrays are in column major order to match the <a href='SkMatrix_Reference#Matrix'>matrix</a> <a href='SkMatrix_Reference#Matrix'>used</a> <a href='SkMatrix_Reference#Matrix'>by</a>
-<a href='SkMatrix_Reference#Matrix'>PDF</a> <a href='SkMatrix_Reference#Matrix'>and</a> <a href='SkMatrix_Reference#Matrix'>XPS</a>.
+Affine arrays are in column major order to match the <a href='SkMatrix_Reference#Matrix'>matrix</a> used by
+PDF and XPS.
### Constants
@@ -919,7 +919,7 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-<a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>operator</a>[](<a href='undocumented#SkScalar'>int</a> <a href='undocumented#SkScalar'>index</a>) <a href='undocumented#SkScalar'>const</a>
+<a href='undocumented#SkScalar'>SkScalar</a> operator[](int index) const
</pre>
### Example
@@ -944,10 +944,10 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-<a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>get</a>(<a href='undocumented#SkScalar'>int</a> <a href='undocumented#SkScalar'>index</a>) <a href='undocumented#SkScalar'>const</a>
+<a href='undocumented#SkScalar'>SkScalar</a> get(int index) const
</pre>
-Returns one <a href='SkMatrix_Reference#Matrix'>matrix</a> <a href='SkMatrix_Reference#Matrix'>value</a>. <a href='SkMatrix_Reference#Matrix'>Asserts</a> <a href='SkMatrix_Reference#Matrix'>if</a> <a href='#SkMatrix_get_index'>index</a> <a href='#SkMatrix_get_index'>is</a> <a href='#SkMatrix_get_index'>out</a> <a href='#SkMatrix_get_index'>of</a> <a href='#SkMatrix_get_index'>range</a> <a href='#SkMatrix_get_index'>and</a> <a href='#SkMatrix_get_index'>SK_DEBUG</a> <a href='#SkMatrix_get_index'>is</a>
+Returns one <a href='SkMatrix_Reference#Matrix'>matrix</a> value. Asserts if <a href='#SkMatrix_get_index'>index</a> is out of range and SK_DEBUG is
defined.
### Parameters
@@ -985,11 +985,11 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-<a href='undocumented#SkScalar'>SkScalar</a> <a href='#SkMatrix_getScaleX'>getScaleX</a>() <a href='#SkMatrix_getScaleX'>const</a>
+<a href='undocumented#SkScalar'>SkScalar</a> <a href='#SkMatrix_getScaleX'>getScaleX</a>() const
</pre>
Returns scale factor multiplied by x-axis input, contributing to x-axis output.
-With <a href='#SkMatrix_mapPoints'>mapPoints</a>(), <a href='#SkMatrix_mapPoints'>scales</a> <a href='SkPoint_Reference#SkPoint'>SkPoint</a> <a href='SkPoint_Reference#SkPoint'>along</a> <a href='SkPoint_Reference#SkPoint'>the</a> <a href='SkPoint_Reference#SkPoint'>x-axis</a>.
+With <a href='#SkMatrix_mapPoints'>mapPoints</a>(), scales <a href='SkPoint_Reference#SkPoint'>SkPoint</a> along the x-axis.
### Return Value
@@ -1016,11 +1016,11 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-<a href='undocumented#SkScalar'>SkScalar</a> <a href='#SkMatrix_getScaleY'>getScaleY</a>() <a href='#SkMatrix_getScaleY'>const</a>
+<a href='undocumented#SkScalar'>SkScalar</a> <a href='#SkMatrix_getScaleY'>getScaleY</a>() const
</pre>
Returns scale factor multiplied by y-axis input, contributing to y-axis output.
-With <a href='#SkMatrix_mapPoints'>mapPoints</a>(), <a href='#SkMatrix_mapPoints'>scales</a> <a href='SkPoint_Reference#SkPoint'>SkPoint</a> <a href='SkPoint_Reference#SkPoint'>along</a> <a href='SkPoint_Reference#SkPoint'>the</a> <a href='SkPoint_Reference#SkPoint'>y-axis</a>.
+With <a href='#SkMatrix_mapPoints'>mapPoints</a>(), scales <a href='SkPoint_Reference#SkPoint'>SkPoint</a> along the y-axis.
### Return Value
@@ -1047,11 +1047,11 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-<a href='undocumented#SkScalar'>SkScalar</a> <a href='#SkMatrix_getSkewY'>getSkewY</a>() <a href='#SkMatrix_getSkewY'>const</a>
+<a href='undocumented#SkScalar'>SkScalar</a> <a href='#SkMatrix_getSkewY'>getSkewY</a>() const
</pre>
Returns scale factor multiplied by x-axis input, contributing to y-axis output.
-With <a href='#SkMatrix_mapPoints'>mapPoints</a>(), <a href='#SkMatrix_mapPoints'>skews</a> <a href='SkPoint_Reference#SkPoint'>SkPoint</a> <a href='SkPoint_Reference#SkPoint'>along</a> <a href='SkPoint_Reference#SkPoint'>the</a> <a href='SkPoint_Reference#SkPoint'>y-axis</a>.
+With <a href='#SkMatrix_mapPoints'>mapPoints</a>(), skews <a href='SkPoint_Reference#SkPoint'>SkPoint</a> along the y-axis.
Skewing both axes can rotate <a href='SkPoint_Reference#SkPoint'>SkPoint</a>.
### Return Value
@@ -1079,11 +1079,11 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-<a href='undocumented#SkScalar'>SkScalar</a> <a href='#SkMatrix_getSkewX'>getSkewX</a>() <a href='#SkMatrix_getSkewX'>const</a>
+<a href='undocumented#SkScalar'>SkScalar</a> <a href='#SkMatrix_getSkewX'>getSkewX</a>() const
</pre>
Returns scale factor multiplied by y-axis input, contributing to x-axis output.
-With <a href='#SkMatrix_mapPoints'>mapPoints</a>(), <a href='#SkMatrix_mapPoints'>skews</a> <a href='SkPoint_Reference#SkPoint'>SkPoint</a> <a href='SkPoint_Reference#SkPoint'>along</a> <a href='SkPoint_Reference#SkPoint'>the</a> <a href='SkPoint_Reference#SkPoint'>x-axis</a>.
+With <a href='#SkMatrix_mapPoints'>mapPoints</a>(), skews <a href='SkPoint_Reference#SkPoint'>SkPoint</a> along the x-axis.
Skewing both axes can rotate <a href='SkPoint_Reference#SkPoint'>SkPoint</a>.
### Return Value
@@ -1111,11 +1111,11 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-<a href='undocumented#SkScalar'>SkScalar</a> <a href='#SkMatrix_getTranslateX'>getTranslateX</a>() <a href='#SkMatrix_getTranslateX'>const</a>
+<a href='undocumented#SkScalar'>SkScalar</a> <a href='#SkMatrix_getTranslateX'>getTranslateX</a>() const
</pre>
Returns translation contributing to x-axis output.
-With <a href='#SkMatrix_mapPoints'>mapPoints</a>(), <a href='#SkMatrix_mapPoints'>moves</a> <a href='SkPoint_Reference#SkPoint'>SkPoint</a> <a href='SkPoint_Reference#SkPoint'>along</a> <a href='SkPoint_Reference#SkPoint'>the</a> <a href='SkPoint_Reference#SkPoint'>x-axis</a>.
+With <a href='#SkMatrix_mapPoints'>mapPoints</a>(), moves <a href='SkPoint_Reference#SkPoint'>SkPoint</a> along the x-axis.
### Return Value
@@ -1142,11 +1142,11 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-<a href='undocumented#SkScalar'>SkScalar</a> <a href='#SkMatrix_getTranslateY'>getTranslateY</a>() <a href='#SkMatrix_getTranslateY'>const</a>
+<a href='undocumented#SkScalar'>SkScalar</a> <a href='#SkMatrix_getTranslateY'>getTranslateY</a>() const
</pre>
Returns translation contributing to y-axis output.
-With <a href='#SkMatrix_mapPoints'>mapPoints</a>(), <a href='#SkMatrix_mapPoints'>moves</a> <a href='SkPoint_Reference#SkPoint'>SkPoint</a> <a href='SkPoint_Reference#SkPoint'>along</a> <a href='SkPoint_Reference#SkPoint'>the</a> <a href='SkPoint_Reference#SkPoint'>y-axis</a>.
+With <a href='#SkMatrix_mapPoints'>mapPoints</a>(), moves <a href='SkPoint_Reference#SkPoint'>SkPoint</a> along the y-axis.
### Return Value
@@ -1173,7 +1173,7 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-<a href='undocumented#SkScalar'>SkScalar</a> <a href='#SkMatrix_getPerspX'>getPerspX</a>() <a href='#SkMatrix_getPerspX'>const</a>
+<a href='undocumented#SkScalar'>SkScalar</a> <a href='#SkMatrix_getPerspX'>getPerspX</a>() const
</pre>
Returns factor scaling input x-axis relative to input y-axis.
@@ -1195,7 +1195,7 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-<a href='undocumented#SkScalar'>SkScalar</a> <a href='#SkMatrix_getPerspY'>getPerspY</a>() <a href='#SkMatrix_getPerspY'>const</a>
+<a href='undocumented#SkScalar'>SkScalar</a> <a href='#SkMatrix_getPerspY'>getPerspY</a>() const
</pre>
Returns factor scaling input y-axis relative to input x-axis.
@@ -1217,7 +1217,7 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-<a href='undocumented#SkScalar'>SkScalar</a>& <a href='undocumented#SkScalar'>operator</a>[](<a href='undocumented#SkScalar'>int</a> <a href='undocumented#SkScalar'>index</a>)
+<a href='undocumented#SkScalar'>SkScalar</a>& operator[](int index)
</pre>
### Example
@@ -1246,10 +1246,10 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-void set(int index, <a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>value</a>)
+void set(int index, <a href='undocumented#SkScalar'>SkScalar</a> value)
</pre>
-Sets <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> <a href='#SkMatrix_set_value'>value</a>. <a href='#SkMatrix_set_value'>Asserts</a> <a href='#SkMatrix_set_value'>if</a> <a href='#SkMatrix_set_index'>index</a> <a href='#SkMatrix_set_index'>is</a> <a href='#SkMatrix_set_index'>out</a> <a href='#SkMatrix_set_index'>of</a> <a href='#SkMatrix_set_index'>range</a> <a href='#SkMatrix_set_index'>and</a> <a href='#SkMatrix_set_index'>SK_DEBUG</a> <a href='#SkMatrix_set_index'>is</a>
+Sets <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> <a href='#SkMatrix_set_value'>value</a>. Asserts if <a href='#SkMatrix_set_index'>index</a> is out of range and SK_DEBUG is
defined. Safer than operator[]; internal cache is always maintained.
### Parameters
@@ -1264,7 +1264,7 @@
### Parameters
<table> <tr> <td><a name='SkMatrix_set_value'><code><strong>value</strong></code></a></td>
- <td><a href='undocumented#Scalar'>scalar</a> <a href='undocumented#Scalar'>to</a> <a href='undocumented#Scalar'>store</a> <a href='undocumented#Scalar'>in</a> <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a></td>
+ <td><a href='undocumented#Scalar'>scalar</a> to store in <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a></td>
</tr>
</table>
@@ -1291,7 +1291,7 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-void <a href='#SkMatrix_setScaleX'>setScaleX</a>(<a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>v</a>)
+void <a href='#SkMatrix_setScaleX'>setScaleX</a>(<a href='undocumented#SkScalar'>SkScalar</a> v)
</pre>
Sets horizontal scale factor.
@@ -1316,7 +1316,7 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-void <a href='#SkMatrix_setScaleY'>setScaleY</a>(<a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>v</a>)
+void <a href='#SkMatrix_setScaleY'>setScaleY</a>(<a href='undocumented#SkScalar'>SkScalar</a> v)
</pre>
Sets vertical scale factor.
@@ -1341,7 +1341,7 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-void <a href='#SkMatrix_setSkewY'>setSkewY</a>(<a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>v</a>)
+void <a href='#SkMatrix_setSkewY'>setSkewY</a>(<a href='undocumented#SkScalar'>SkScalar</a> v)
</pre>
Sets vertical skew factor.
@@ -1366,7 +1366,7 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-void <a href='#SkMatrix_setSkewX'>setSkewX</a>(<a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>v</a>)
+void <a href='#SkMatrix_setSkewX'>setSkewX</a>(<a href='undocumented#SkScalar'>SkScalar</a> v)
</pre>
Sets horizontal skew factor.
@@ -1391,7 +1391,7 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-void <a href='#SkMatrix_setTranslateX'>setTranslateX</a>(<a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>v</a>)
+void <a href='#SkMatrix_setTranslateX'>setTranslateX</a>(<a href='undocumented#SkScalar'>SkScalar</a> v)
</pre>
Sets horizontal translation.
@@ -1416,7 +1416,7 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-void <a href='#SkMatrix_setTranslateY'>setTranslateY</a>(<a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>v</a>)
+void <a href='#SkMatrix_setTranslateY'>setTranslateY</a>(<a href='undocumented#SkScalar'>SkScalar</a> v)
</pre>
Sets vertical translation.
@@ -1441,10 +1441,10 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-void <a href='#SkMatrix_setPerspX'>setPerspX</a>(<a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>v</a>)
+void <a href='#SkMatrix_setPerspX'>setPerspX</a>(<a href='undocumented#SkScalar'>SkScalar</a> v)
</pre>
-Sets input x-axis perspective factor, which causes <a href='#SkMatrix_mapXY'>mapXY</a>() <a href='#SkMatrix_mapXY'>to</a> <a href='#SkMatrix_mapXY'>vary</a> <a href='#SkMatrix_mapXY'>input</a> <a href='#SkMatrix_mapXY'>x-axis</a> <a href='#SkMatrix_mapXY'>values</a>
+Sets input x-axis perspective factor, which causes <a href='#SkMatrix_mapXY'>mapXY</a>() to vary input x-axis values
inversely proportional to input y-axis values.
### Parameters
@@ -1467,10 +1467,10 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-void <a href='#SkMatrix_setPerspY'>setPerspY</a>(<a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>v</a>)
+void <a href='#SkMatrix_setPerspY'>setPerspY</a>(<a href='undocumented#SkScalar'>SkScalar</a> v)
</pre>
-Sets input y-axis perspective factor, which causes <a href='#SkMatrix_mapXY'>mapXY</a>() <a href='#SkMatrix_mapXY'>to</a> <a href='#SkMatrix_mapXY'>vary</a> <a href='#SkMatrix_mapXY'>input</a> <a href='#SkMatrix_mapXY'>y-axis</a> <a href='#SkMatrix_mapXY'>values</a>
+Sets input y-axis perspective factor, which causes <a href='#SkMatrix_mapXY'>mapXY</a>() to vary input y-axis values
inversely proportional to input x-axis values.
### Parameters
@@ -1493,11 +1493,11 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-void <a href='#SkMatrix_setAll'>setAll</a>(<a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>scaleX</a>, <a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>skewX</a>, <a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>transX</a>, <a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>skewY</a>, <a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>scaleY</a>,
- <a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>transY</a>, <a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>persp0</a>, <a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>persp1</a>, <a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>persp2</a>)
+void <a href='#SkMatrix_setAll'>setAll</a>(<a href='undocumented#SkScalar'>SkScalar</a> scaleX, <a href='undocumented#SkScalar'>SkScalar</a> skewX, <a href='undocumented#SkScalar'>SkScalar</a> transX, <a href='undocumented#SkScalar'>SkScalar</a> skewY, <a href='undocumented#SkScalar'>SkScalar</a> scaleY,
+ <a href='undocumented#SkScalar'>SkScalar</a> transY, <a href='undocumented#SkScalar'>SkScalar</a> persp0, <a href='undocumented#SkScalar'>SkScalar</a> persp1, <a href='undocumented#SkScalar'>SkScalar</a> persp2)
</pre>
-Sets all values from parameters. Sets <a href='SkMatrix_Reference#Matrix'>matrix</a> <a href='SkMatrix_Reference#Matrix'>to</a>:
+Sets all values from parameters. Sets <a href='SkMatrix_Reference#Matrix'>matrix</a> to:
| <a href='#SkMatrix_setAll_scaleX'>scaleX</a> <a href='#SkMatrix_setAll_skewX'>skewX</a> <a href='#SkMatrix_setAll_transX'>transX</a> |
| <a href='#SkMatrix_setAll_skewY'>skewY</a> <a href='#SkMatrix_setAll_scaleY'>scaleY</a> <a href='#SkMatrix_setAll_transY'>transY</a> |
@@ -1547,17 +1547,17 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-void <a href='#SkMatrix_get9'>get9</a>(<a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>buffer</a>[9]) <a href='undocumented#SkScalar'>const</a>
+void <a href='#SkMatrix_get9'>get9</a>(<a href='undocumented#SkScalar'>SkScalar</a> buffer[9]) const
</pre>
-Copies nine <a href='undocumented#Scalar'>scalar</a> <a href='undocumented#Scalar'>values</a> <a href='undocumented#Scalar'>contained</a> <a href='undocumented#Scalar'>by</a> <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> <a href='SkMatrix_Reference#SkMatrix'>into</a> <a href='#SkMatrix_get9_buffer'>buffer</a>, <a href='#SkMatrix_get9_buffer'>in</a> <a href='#SkMatrix_get9_buffer'>member</a> <a href='#SkMatrix_get9_buffer'>value</a>
+Copies nine <a href='undocumented#Scalar'>scalar</a> values contained by <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> into <a href='#SkMatrix_get9_buffer'>buffer</a>, in member value
ascending order: <a href='#SkMatrix_kMScaleX'>kMScaleX</a>, <a href='#SkMatrix_kMSkewX'>kMSkewX</a>, <a href='#SkMatrix_kMTransX'>kMTransX</a>, <a href='#SkMatrix_kMSkewY'>kMSkewY</a>, <a href='#SkMatrix_kMScaleY'>kMScaleY</a>, <a href='#SkMatrix_kMTransY'>kMTransY</a>,
<a href='#SkMatrix_kMPersp0'>kMPersp0</a>, <a href='#SkMatrix_kMPersp1'>kMPersp1</a>, <a href='#SkMatrix_kMPersp2'>kMPersp2</a>.
### Parameters
<table> <tr> <td><a name='SkMatrix_get9_buffer'><code><strong>buffer</strong></code></a></td>
- <td>storage for nine <a href='undocumented#Scalar'>scalar</a> <a href='undocumented#Scalar'>values</a></td>
+ <td>storage for nine <a href='undocumented#Scalar'>scalar</a> values</td>
</tr>
</table>
@@ -1584,27 +1584,27 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-void <a href='#SkMatrix_set9'>set9</a>(<a href='#SkMatrix_set9'>const</a> <a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>buffer</a>[9])
+void <a href='#SkMatrix_set9'>set9</a>(const <a href='undocumented#SkScalar'>SkScalar</a> buffer[9])
</pre>
-Sets <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> <a href='SkMatrix_Reference#SkMatrix'>to</a> <a href='SkMatrix_Reference#SkMatrix'>nine</a> <a href='undocumented#Scalar'>scalar</a> <a href='undocumented#Scalar'>values</a> <a href='undocumented#Scalar'>in</a> <a href='#SkMatrix_set9_buffer'>buffer</a>, <a href='#SkMatrix_set9_buffer'>in</a> <a href='#SkMatrix_set9_buffer'>member</a> <a href='#SkMatrix_set9_buffer'>value</a> <a href='#SkMatrix_set9_buffer'>ascending</a> <a href='#SkMatrix_set9_buffer'>order</a>:
+Sets <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> to nine <a href='undocumented#Scalar'>scalar</a> values in <a href='#SkMatrix_set9_buffer'>buffer</a>, in member value ascending order:
<a href='#SkMatrix_kMScaleX'>kMScaleX</a>, <a href='#SkMatrix_kMSkewX'>kMSkewX</a>, <a href='#SkMatrix_kMTransX'>kMTransX</a>, <a href='#SkMatrix_kMSkewY'>kMSkewY</a>, <a href='#SkMatrix_kMScaleY'>kMScaleY</a>, <a href='#SkMatrix_kMTransY'>kMTransY</a>, <a href='#SkMatrix_kMPersp0'>kMPersp0</a>, <a href='#SkMatrix_kMPersp1'>kMPersp1</a>,
<a href='#SkMatrix_kMPersp2'>kMPersp2</a>.
-Sets <a href='SkMatrix_Reference#Matrix'>matrix</a> <a href='SkMatrix_Reference#Matrix'>to</a>:
+Sets <a href='SkMatrix_Reference#Matrix'>matrix</a> to:
| <a href='#SkMatrix_set9_buffer'>buffer</a>[0] <a href='#SkMatrix_set9_buffer'>buffer</a>[1] <a href='#SkMatrix_set9_buffer'>buffer</a>[2] |
| <a href='#SkMatrix_set9_buffer'>buffer</a>[3] <a href='#SkMatrix_set9_buffer'>buffer</a>[4] <a href='#SkMatrix_set9_buffer'>buffer</a>[5] |
| <a href='#SkMatrix_set9_buffer'>buffer</a>[6] <a href='#SkMatrix_set9_buffer'>buffer</a>[7] <a href='#SkMatrix_set9_buffer'>buffer</a>[8] |
-In the future, <a href='#SkMatrix_set9'>set9</a> <a href='#SkMatrix_set9'>followed</a> <a href='#SkMatrix_set9'>by</a> <a href='#SkMatrix_get9'>get9</a> <a href='#SkMatrix_get9'>may</a> <a href='#SkMatrix_get9'>not</a> <a href='#SkMatrix_get9'>return</a> <a href='#SkMatrix_get9'>the</a> <a href='#SkMatrix_get9'>same</a> <a href='#SkMatrix_get9'>values</a>. <a href='#SkMatrix_get9'>Since</a> <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a>
+In the future, <a href='#SkMatrix_set9'>set9</a> followed by <a href='#SkMatrix_get9'>get9</a> may not return the same values. Since <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a>
maps non-homogeneous coordinates, scaling all nine values produces an equivalent
transformation, possibly improving precision.
### Parameters
<table> <tr> <td><a name='SkMatrix_set9_buffer'><code><strong>buffer</strong></code></a></td>
- <td>nine <a href='undocumented#Scalar'>scalar</a> <a href='undocumented#Scalar'>values</a></td>
+ <td>nine <a href='undocumented#Scalar'>scalar</a> values</td>
</tr>
</table>
@@ -1624,13 +1624,13 @@
void <a href='#SkMatrix_reset'>reset()</a>
</pre>
-Sets <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> <a href='SkMatrix_Reference#SkMatrix'>to</a> <a href='SkMatrix_Reference#SkMatrix'>identity</a>; <a href='SkMatrix_Reference#SkMatrix'>which</a> <a href='SkMatrix_Reference#SkMatrix'>has</a> <a href='SkMatrix_Reference#SkMatrix'>no</a> <a href='SkMatrix_Reference#SkMatrix'>effect</a> <a href='SkMatrix_Reference#SkMatrix'>on</a> <a href='SkMatrix_Reference#SkMatrix'>mapped</a> <a href='SkPoint_Reference#SkPoint'>SkPoint</a>. <a href='SkPoint_Reference#SkPoint'>Sets</a> <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> <a href='SkMatrix_Reference#SkMatrix'>to</a>:
+Sets <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> to identity; which has no effect on mapped <a href='SkPoint_Reference#SkPoint'>SkPoint</a>. Sets <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> to:
| 1 0 0 |
| 0 1 0 |
| 0 0 1 |
-Also called <a href='#SkMatrix_setIdentity'>setIdentity</a>(); <a href='#SkMatrix_setIdentity'>use</a> <a href='#SkMatrix_setIdentity'>the</a> <a href='#SkMatrix_setIdentity'>one</a> <a href='#SkMatrix_setIdentity'>that</a> <a href='#SkMatrix_setIdentity'>provides</a> <a href='#SkMatrix_setIdentity'>better</a> <a href='#SkMatrix_setIdentity'>inline</a>
+Also called <a href='#SkMatrix_setIdentity'>setIdentity</a>(); use the one that provides better inline
documentation.
### Example
@@ -1657,13 +1657,13 @@
void <a href='#SkMatrix_setIdentity'>setIdentity</a>()
</pre>
-Sets <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> <a href='SkMatrix_Reference#SkMatrix'>to</a> <a href='SkMatrix_Reference#SkMatrix'>identity</a>; <a href='SkMatrix_Reference#SkMatrix'>which</a> <a href='SkMatrix_Reference#SkMatrix'>has</a> <a href='SkMatrix_Reference#SkMatrix'>no</a> <a href='SkMatrix_Reference#SkMatrix'>effect</a> <a href='SkMatrix_Reference#SkMatrix'>on</a> <a href='SkMatrix_Reference#SkMatrix'>mapped</a> <a href='SkPoint_Reference#SkPoint'>SkPoint</a>. <a href='SkPoint_Reference#SkPoint'>Sets</a> <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> <a href='SkMatrix_Reference#SkMatrix'>to</a>:
+Sets <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> to identity; which has no effect on mapped <a href='SkPoint_Reference#SkPoint'>SkPoint</a>. Sets <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> to:
| 1 0 0 |
| 0 1 0 |
| 0 0 1 |
-Also called <a href='#SkMatrix_reset'>reset()</a>; <a href='#SkMatrix_reset'>use</a> <a href='#SkMatrix_reset'>the</a> <a href='#SkMatrix_reset'>one</a> <a href='#SkMatrix_reset'>that</a> <a href='#SkMatrix_reset'>provides</a> <a href='#SkMatrix_reset'>better</a> <a href='#SkMatrix_reset'>inline</a>
+Also called <a href='#SkMatrix_reset'>reset()</a>; use the one that provides better inline
documentation.
### Example
@@ -1687,10 +1687,10 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-void <a href='#SkMatrix_setTranslate'>setTranslate</a>(<a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>dx</a>, <a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>dy</a>)
+void <a href='#SkMatrix_setTranslate'>setTranslate</a>(<a href='undocumented#SkScalar'>SkScalar</a> dx, <a href='undocumented#SkScalar'>SkScalar</a> dy)
</pre>
-Sets <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> <a href='SkMatrix_Reference#SkMatrix'>to</a> <a href='SkMatrix_Reference#SkMatrix'>translate</a> <a href='SkMatrix_Reference#SkMatrix'>by</a> (<a href='#SkMatrix_setTranslate_dx'>dx</a>, <a href='#SkMatrix_setTranslate_dy'>dy</a>).
+Sets <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> to translate by (<a href='#SkMatrix_setTranslate_dx'>dx</a>, <a href='#SkMatrix_setTranslate_dy'>dy</a>).
### Parameters
@@ -1715,15 +1715,15 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-void <a href='#SkMatrix_setTranslate'>setTranslate</a>(<a href='#SkMatrix_setTranslate'>const</a> <a href='SkPoint_Reference#SkVector'>SkVector</a>& <a href='SkPoint_Reference#SkVector'>v</a>)
+void <a href='#SkMatrix_setTranslate'>setTranslate</a>(const <a href='SkPoint_Reference#SkVector'>SkVector</a>& v)
</pre>
-Sets <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> <a href='SkMatrix_Reference#SkMatrix'>to</a> <a href='SkMatrix_Reference#SkMatrix'>translate</a> <a href='SkMatrix_Reference#SkMatrix'>by</a> (<a href='#SkMatrix_setTranslate_2_v'>v</a>.<a href='#SkPoint_fX'>fX</a>, <a href='#SkMatrix_setTranslate_2_v'>v</a>.<a href='#SkPoint_fY'>fY</a>).
+Sets <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> to translate by (<a href='#SkMatrix_setTranslate_2_v'>v</a>.<a href='#SkPoint_fX'>fX</a>, <a href='#SkMatrix_setTranslate_2_v'>v</a>.<a href='#SkPoint_fY'>fY</a>).
### Parameters
<table> <tr> <td><a name='SkMatrix_setTranslate_2_v'><code><strong>v</strong></code></a></td>
- <td><a href='SkPoint_Reference#Vector'>vector</a> <a href='SkPoint_Reference#Vector'>containing</a> <a href='SkPoint_Reference#Vector'>horizontal</a> <a href='SkPoint_Reference#Vector'>and</a> <a href='SkPoint_Reference#Vector'>vertical</a> <a href='SkPoint_Reference#Vector'>translation</a></td>
+ <td><a href='SkPoint_Reference#Vector'>vector</a> containing horizontal and vertical translation</td>
</tr>
</table>
@@ -1740,11 +1740,11 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-void <a href='#SkMatrix_setScale'>setScale</a>(<a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>sx</a>, <a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>sy</a>, <a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>px</a>, <a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>py</a>)
+void <a href='#SkMatrix_setScale'>setScale</a>(<a href='undocumented#SkScalar'>SkScalar</a> sx, <a href='undocumented#SkScalar'>SkScalar</a> sy, <a href='undocumented#SkScalar'>SkScalar</a> px, <a href='undocumented#SkScalar'>SkScalar</a> py)
</pre>
-Sets <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> <a href='SkMatrix_Reference#SkMatrix'>to</a> <a href='SkMatrix_Reference#SkMatrix'>scale</a> <a href='SkMatrix_Reference#SkMatrix'>by</a> <a href='#SkMatrix_setScale_sx'>sx</a> <a href='#SkMatrix_setScale_sx'>and</a> <a href='#SkMatrix_setScale_sy'>sy</a>, <a href='#SkMatrix_setScale_sy'>about</a> <a href='#SkMatrix_setScale_sy'>a</a> <a href='#SkMatrix_setScale_sy'>pivot</a> <a href='SkPoint_Reference#Point'>point</a> <a href='SkPoint_Reference#Point'>at</a> (<a href='#SkMatrix_setScale_px'>px</a>, <a href='#SkMatrix_setScale_py'>py</a>).
-The pivot <a href='SkPoint_Reference#Point'>point</a> <a href='SkPoint_Reference#Point'>is</a> <a href='SkPoint_Reference#Point'>unchanged</a> <a href='SkPoint_Reference#Point'>when</a> <a href='SkPoint_Reference#Point'>mapped</a> <a href='SkPoint_Reference#Point'>with</a> <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a>.
+Sets <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> to scale by <a href='#SkMatrix_setScale_sx'>sx</a> and <a href='#SkMatrix_setScale_sy'>sy</a>, about a pivot <a href='SkPoint_Reference#Point'>point</a> at (<a href='#SkMatrix_setScale_px'>px</a>, <a href='#SkMatrix_setScale_py'>py</a>).
+The pivot <a href='SkPoint_Reference#Point'>point</a> is unchanged when mapped with <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a>.
### Parameters
@@ -1775,10 +1775,10 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-void <a href='#SkMatrix_setScale'>setScale</a>(<a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>sx</a>, <a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>sy</a>)
+void <a href='#SkMatrix_setScale'>setScale</a>(<a href='undocumented#SkScalar'>SkScalar</a> sx, <a href='undocumented#SkScalar'>SkScalar</a> sy)
</pre>
-Sets <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> <a href='SkMatrix_Reference#SkMatrix'>to</a> <a href='SkMatrix_Reference#SkMatrix'>scale</a> <a href='SkMatrix_Reference#SkMatrix'>by</a> <a href='#SkMatrix_setScale_2_sx'>sx</a> <a href='#SkMatrix_setScale_2_sx'>and</a> <a href='#SkMatrix_setScale_2_sy'>sy</a> <a href='#SkMatrix_setScale_2_sy'>about</a> <a href='#SkMatrix_setScale_2_sy'>at</a> <a href='#SkMatrix_setScale_2_sy'>pivot</a> <a href='SkPoint_Reference#Point'>point</a> <a href='SkPoint_Reference#Point'>at</a> (0, 0).
+Sets <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> to scale by <a href='#SkMatrix_setScale_2_sx'>sx</a> and <a href='#SkMatrix_setScale_2_sy'>sy</a> about at pivot <a href='SkPoint_Reference#Point'>point</a> at (0, 0).
### Parameters
@@ -1803,13 +1803,13 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-void <a href='#SkMatrix_setRotate'>setRotate</a>(<a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>degrees</a>, <a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>px</a>, <a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>py</a>)
+void <a href='#SkMatrix_setRotate'>setRotate</a>(<a href='undocumented#SkScalar'>SkScalar</a> degrees, <a href='undocumented#SkScalar'>SkScalar</a> px, <a href='undocumented#SkScalar'>SkScalar</a> py)
</pre>
-Sets <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> <a href='SkMatrix_Reference#SkMatrix'>to</a> <a href='SkMatrix_Reference#SkMatrix'>rotate</a> <a href='SkMatrix_Reference#SkMatrix'>by</a> <a href='#SkMatrix_setRotate_degrees'>degrees</a> <a href='#SkMatrix_setRotate_degrees'>about</a> <a href='#SkMatrix_setRotate_degrees'>a</a> <a href='#SkMatrix_setRotate_degrees'>pivot</a> <a href='SkPoint_Reference#Point'>point</a> <a href='SkPoint_Reference#Point'>at</a> (<a href='#SkMatrix_setRotate_px'>px</a>, <a href='#SkMatrix_setRotate_py'>py</a>).
-The pivot <a href='SkPoint_Reference#Point'>point</a> <a href='SkPoint_Reference#Point'>is</a> <a href='SkPoint_Reference#Point'>unchanged</a> <a href='SkPoint_Reference#Point'>when</a> <a href='SkPoint_Reference#Point'>mapped</a> <a href='SkPoint_Reference#Point'>with</a> <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a>.
+Sets <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> to rotate by <a href='#SkMatrix_setRotate_degrees'>degrees</a> about a pivot <a href='SkPoint_Reference#Point'>point</a> at (<a href='#SkMatrix_setRotate_px'>px</a>, <a href='#SkMatrix_setRotate_py'>py</a>).
+The pivot <a href='SkPoint_Reference#Point'>point</a> is unchanged when mapped with <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a>.
-Positive <a href='#SkMatrix_setRotate_degrees'>degrees</a> <a href='#SkMatrix_setRotate_degrees'>rotates</a> <a href='#SkMatrix_setRotate_degrees'>clockwise</a>.
+Positive <a href='#SkMatrix_setRotate_degrees'>degrees</a> rotates clockwise.
### Parameters
@@ -1837,11 +1837,11 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-void <a href='#SkMatrix_setRotate'>setRotate</a>(<a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>degrees</a>)
+void <a href='#SkMatrix_setRotate'>setRotate</a>(<a href='undocumented#SkScalar'>SkScalar</a> degrees)
</pre>
-Sets <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> <a href='SkMatrix_Reference#SkMatrix'>to</a> <a href='SkMatrix_Reference#SkMatrix'>rotate</a> <a href='SkMatrix_Reference#SkMatrix'>by</a> <a href='#SkMatrix_setRotate_2_degrees'>degrees</a> <a href='#SkMatrix_setRotate_2_degrees'>about</a> <a href='#SkMatrix_setRotate_2_degrees'>a</a> <a href='#SkMatrix_setRotate_2_degrees'>pivot</a> <a href='SkPoint_Reference#Point'>point</a> <a href='SkPoint_Reference#Point'>at</a> (0, 0).
-Positive <a href='#SkMatrix_setRotate_2_degrees'>degrees</a> <a href='#SkMatrix_setRotate_2_degrees'>rotates</a> <a href='#SkMatrix_setRotate_2_degrees'>clockwise</a>.
+Sets <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> to rotate by <a href='#SkMatrix_setRotate_2_degrees'>degrees</a> about a pivot <a href='SkPoint_Reference#Point'>point</a> at (0, 0).
+Positive <a href='#SkMatrix_setRotate_2_degrees'>degrees</a> rotates clockwise.
### Parameters
@@ -1863,22 +1863,22 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-void <a href='#SkMatrix_setSinCos'>setSinCos</a>(<a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>sinValue</a>, <a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>cosValue</a>, <a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>px</a>, <a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>py</a>)
+void <a href='#SkMatrix_setSinCos'>setSinCos</a>(<a href='undocumented#SkScalar'>SkScalar</a> sinValue, <a href='undocumented#SkScalar'>SkScalar</a> cosValue, <a href='undocumented#SkScalar'>SkScalar</a> px, <a href='undocumented#SkScalar'>SkScalar</a> py)
</pre>
-Sets <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> <a href='SkMatrix_Reference#SkMatrix'>to</a> <a href='SkMatrix_Reference#SkMatrix'>rotate</a> <a href='SkMatrix_Reference#SkMatrix'>by</a> <a href='#SkMatrix_setSinCos_sinValue'>sinValue</a> <a href='#SkMatrix_setSinCos_sinValue'>and</a> <a href='#SkMatrix_setSinCos_cosValue'>cosValue</a>, <a href='#SkMatrix_setSinCos_cosValue'>about</a> <a href='#SkMatrix_setSinCos_cosValue'>a</a> <a href='#SkMatrix_setSinCos_cosValue'>pivot</a> <a href='SkPoint_Reference#Point'>point</a> <a href='SkPoint_Reference#Point'>at</a> (<a href='#SkMatrix_setSinCos_px'>px</a>, <a href='#SkMatrix_setSinCos_py'>py</a>).
-The pivot <a href='SkPoint_Reference#Point'>point</a> <a href='SkPoint_Reference#Point'>is</a> <a href='SkPoint_Reference#Point'>unchanged</a> <a href='SkPoint_Reference#Point'>when</a> <a href='SkPoint_Reference#Point'>mapped</a> <a href='SkPoint_Reference#Point'>with</a> <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a>.
+Sets <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> to rotate by <a href='#SkMatrix_setSinCos_sinValue'>sinValue</a> and <a href='#SkMatrix_setSinCos_cosValue'>cosValue</a>, about a pivot <a href='SkPoint_Reference#Point'>point</a> at (<a href='#SkMatrix_setSinCos_px'>px</a>, <a href='#SkMatrix_setSinCos_py'>py</a>).
+The pivot <a href='SkPoint_Reference#Point'>point</a> is unchanged when mapped with <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a>.
-<a href='SkPoint_Reference#Vector'>Vector</a> (<a href='#SkMatrix_setSinCos_sinValue'>sinValue</a>, <a href='#SkMatrix_setSinCos_cosValue'>cosValue</a>) <a href='#SkMatrix_setSinCos_cosValue'>describes</a> <a href='#SkMatrix_setSinCos_cosValue'>the</a> <a href='#SkMatrix_setSinCos_cosValue'>angle</a> <a href='#SkMatrix_setSinCos_cosValue'>of</a> <a href='#SkMatrix_setSinCos_cosValue'>rotation</a> <a href='#SkMatrix_setSinCos_cosValue'>relative</a> <a href='#SkMatrix_setSinCos_cosValue'>to</a> (0, 1).
-<a href='SkPoint_Reference#Vector'>Vector</a> <a href='SkPoint_Reference#Vector'>length</a> <a href='SkPoint_Reference#Vector'>specifies</a> <a href='SkPoint_Reference#Vector'>scale</a>.
+<a href='SkPoint_Reference#Vector'>Vector</a> (<a href='#SkMatrix_setSinCos_sinValue'>sinValue</a>, <a href='#SkMatrix_setSinCos_cosValue'>cosValue</a>) describes the angle of rotation relative to (0, 1).
+<a href='SkPoint_Reference#Vector'>Vector</a> length specifies scale.
### Parameters
<table> <tr> <td><a name='SkMatrix_setSinCos_sinValue'><code><strong>sinValue</strong></code></a></td>
- <td>rotation <a href='SkPoint_Reference#Vector'>vector</a> <a href='SkPoint_Reference#Vector'>x-axis</a> <a href='SkPoint_Reference#Vector'>component</a></td>
+ <td>rotation <a href='SkPoint_Reference#Vector'>vector</a> x-axis component</td>
</tr>
<tr> <td><a name='SkMatrix_setSinCos_cosValue'><code><strong>cosValue</strong></code></a></td>
- <td>rotation <a href='SkPoint_Reference#Vector'>vector</a> <a href='SkPoint_Reference#Vector'>y-axis</a> <a href='SkPoint_Reference#Vector'>component</a></td>
+ <td>rotation <a href='SkPoint_Reference#Vector'>vector</a> y-axis component</td>
</tr>
<tr> <td><a name='SkMatrix_setSinCos_px'><code><strong>px</strong></code></a></td>
<td>pivot on x-axis</td>
@@ -1901,27 +1901,27 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-void <a href='#SkMatrix_setSinCos'>setSinCos</a>(<a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>sinValue</a>, <a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>cosValue</a>)
+void <a href='#SkMatrix_setSinCos'>setSinCos</a>(<a href='undocumented#SkScalar'>SkScalar</a> sinValue, <a href='undocumented#SkScalar'>SkScalar</a> cosValue)
</pre>
-Sets <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> <a href='SkMatrix_Reference#SkMatrix'>to</a> <a href='SkMatrix_Reference#SkMatrix'>rotate</a> <a href='SkMatrix_Reference#SkMatrix'>by</a> <a href='#SkMatrix_setSinCos_2_sinValue'>sinValue</a> <a href='#SkMatrix_setSinCos_2_sinValue'>and</a> <a href='#SkMatrix_setSinCos_2_cosValue'>cosValue</a>, <a href='#SkMatrix_setSinCos_2_cosValue'>about</a> <a href='#SkMatrix_setSinCos_2_cosValue'>a</a> <a href='#SkMatrix_setSinCos_2_cosValue'>pivot</a> <a href='SkPoint_Reference#Point'>point</a> <a href='SkPoint_Reference#Point'>at</a> (0, 0).
+Sets <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> to rotate by <a href='#SkMatrix_setSinCos_2_sinValue'>sinValue</a> and <a href='#SkMatrix_setSinCos_2_cosValue'>cosValue</a>, about a pivot <a href='SkPoint_Reference#Point'>point</a> at (0, 0).
-<a href='SkPoint_Reference#Vector'>Vector</a> (<a href='#SkMatrix_setSinCos_2_sinValue'>sinValue</a>, <a href='#SkMatrix_setSinCos_2_cosValue'>cosValue</a>) <a href='#SkMatrix_setSinCos_2_cosValue'>describes</a> <a href='#SkMatrix_setSinCos_2_cosValue'>the</a> <a href='#SkMatrix_setSinCos_2_cosValue'>angle</a> <a href='#SkMatrix_setSinCos_2_cosValue'>of</a> <a href='#SkMatrix_setSinCos_2_cosValue'>rotation</a> <a href='#SkMatrix_setSinCos_2_cosValue'>relative</a> <a href='#SkMatrix_setSinCos_2_cosValue'>to</a> (0, 1).
-<a href='SkPoint_Reference#Vector'>Vector</a> <a href='SkPoint_Reference#Vector'>length</a> <a href='SkPoint_Reference#Vector'>specifies</a> <a href='SkPoint_Reference#Vector'>scale</a>.
+<a href='SkPoint_Reference#Vector'>Vector</a> (<a href='#SkMatrix_setSinCos_2_sinValue'>sinValue</a>, <a href='#SkMatrix_setSinCos_2_cosValue'>cosValue</a>) describes the angle of rotation relative to (0, 1).
+<a href='SkPoint_Reference#Vector'>Vector</a> length specifies scale.
### Parameters
<table> <tr> <td><a name='SkMatrix_setSinCos_2_sinValue'><code><strong>sinValue</strong></code></a></td>
- <td>rotation <a href='SkPoint_Reference#Vector'>vector</a> <a href='SkPoint_Reference#Vector'>x-axis</a> <a href='SkPoint_Reference#Vector'>component</a></td>
+ <td>rotation <a href='SkPoint_Reference#Vector'>vector</a> x-axis component</td>
</tr>
<tr> <td><a name='SkMatrix_setSinCos_2_cosValue'><code><strong>cosValue</strong></code></a></td>
- <td>rotation <a href='SkPoint_Reference#Vector'>vector</a> <a href='SkPoint_Reference#Vector'>y-axis</a> <a href='SkPoint_Reference#Vector'>component</a></td>
+ <td>rotation <a href='SkPoint_Reference#Vector'>vector</a> y-axis component</td>
</tr>
</table>
### Example
-<div><fiddle-embed name="e37a94a53c959951b059fcd624639ef6"><div><a href='SkCanvas_Reference#Canvas'>Canvas</a> <a href='SkCanvas_Reference#Canvas'>needs</a> <a href='SkCanvas_Reference#Canvas'>offset</a> <a href='SkCanvas_Reference#Canvas'>after</a> <a href='SkCanvas_Reference#Canvas'>applying</a> <a href='SkMatrix_Reference#Matrix'>Matrix</a> <a href='SkMatrix_Reference#Matrix'>to</a> <a href='SkMatrix_Reference#Matrix'>pivot</a> <a href='SkMatrix_Reference#Matrix'>about</a> <a href='SkRect_Reference#Rect'>Rect</a> <a href='SkRect_Reference#Rect'>center</a>.
+<div><fiddle-embed name="e37a94a53c959951b059fcd624639ef6"><div><a href='SkCanvas_Reference#Canvas'>Canvas</a> needs offset after applying <a href='SkMatrix_Reference#Matrix'>Matrix</a> to pivot about <a href='SkRect_Reference#Rect'>Rect</a> center.
</div></fiddle-embed></div>
### See Also
@@ -1933,14 +1933,14 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-<a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a>& <a href='#SkMatrix_setRSXform'>setRSXform</a>(<a href='#SkMatrix_setRSXform'>const</a> <a href='undocumented#SkRSXform'>SkRSXform</a>& <a href='undocumented#SkRSXform'>rsxForm</a>)
+<a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a>& <a href='#SkMatrix_setRSXform'>setRSXform</a>(const <a href='undocumented#SkRSXform'>SkRSXform</a>& rsxForm)
</pre>
-Sets <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> <a href='SkMatrix_Reference#SkMatrix'>to</a> <a href='SkMatrix_Reference#SkMatrix'>rotate</a>, <a href='SkMatrix_Reference#SkMatrix'>scale</a>, <a href='SkMatrix_Reference#SkMatrix'>and</a> <a href='SkMatrix_Reference#SkMatrix'>translate</a> <a href='SkMatrix_Reference#SkMatrix'>using</a> <a href='SkMatrix_Reference#SkMatrix'>a</a> <a href='SkMatrix_Reference#SkMatrix'>compressed</a> <a href='SkMatrix_Reference#Matrix'>matrix</a> <a href='SkMatrix_Reference#Matrix'>form</a>.
+Sets <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> to rotate, scale, and translate using a compressed <a href='SkMatrix_Reference#Matrix'>matrix</a> form.
-<a href='SkPoint_Reference#Vector'>Vector</a> (<a href='#SkMatrix_setRSXform_rsxForm'>rsxForm</a>.<a href='#SkRSXform_fSSin'>fSSin</a>, <a href='#SkMatrix_setRSXform_rsxForm'>rsxForm</a>.<a href='#SkRSXform_fSCos'>fSCos</a>) <a href='#SkRSXform_fSCos'>describes</a> <a href='#SkRSXform_fSCos'>the</a> <a href='#SkRSXform_fSCos'>angle</a> <a href='#SkRSXform_fSCos'>of</a> <a href='#SkRSXform_fSCos'>rotation</a> <a href='#SkRSXform_fSCos'>relative</a>
-to (0, 1). <a href='SkPoint_Reference#Vector'>Vector</a> <a href='SkPoint_Reference#Vector'>length</a> <a href='SkPoint_Reference#Vector'>specifies</a> <a href='SkPoint_Reference#Vector'>scale</a>. <a href='SkPoint_Reference#Vector'>Mapped</a> <a href='SkPoint_Reference#Point'>point</a> <a href='SkPoint_Reference#Point'>is</a> <a href='SkPoint_Reference#Point'>rotated</a> <a href='SkPoint_Reference#Point'>and</a> <a href='SkPoint_Reference#Point'>scaled</a>
-by <a href='SkPoint_Reference#Vector'>vector</a>, <a href='SkPoint_Reference#Vector'>then</a> <a href='SkPoint_Reference#Vector'>translated</a> <a href='SkPoint_Reference#Vector'>by</a> (<a href='#SkMatrix_setRSXform_rsxForm'>rsxForm</a>.<a href='#SkRSXform_fTx'>fTx</a>, <a href='#SkMatrix_setRSXform_rsxForm'>rsxForm</a>.<a href='#SkRSXform_fTy'>fTy</a>).
+<a href='SkPoint_Reference#Vector'>Vector</a> (<a href='#SkMatrix_setRSXform_rsxForm'>rsxForm</a>.<a href='#SkRSXform_fSSin'>fSSin</a>, <a href='#SkMatrix_setRSXform_rsxForm'>rsxForm</a>.<a href='#SkRSXform_fSCos'>fSCos</a>) describes the angle of rotation relative
+to (0, 1). <a href='SkPoint_Reference#Vector'>Vector</a> length specifies scale. Mapped <a href='SkPoint_Reference#Point'>point</a> is rotated and scaled
+by <a href='SkPoint_Reference#Vector'>vector</a>, then translated by (<a href='#SkMatrix_setRSXform_rsxForm'>rsxForm</a>.<a href='#SkRSXform_fTx'>fTx</a>, <a href='#SkMatrix_setRSXform_rsxForm'>rsxForm</a>.<a href='#SkRSXform_fTy'>fTy</a>).
### Parameters
@@ -1955,7 +1955,7 @@
### Example
-<div><fiddle-embed name="c3f5faddca466f78278b32b88fd5f5eb"><div><a href='SkCanvas_Reference#Canvas'>Canvas</a> <a href='SkCanvas_Reference#Canvas'>needs</a> <a href='SkCanvas_Reference#Canvas'>offset</a> <a href='SkCanvas_Reference#Canvas'>after</a> <a href='SkCanvas_Reference#Canvas'>applying</a> <a href='SkMatrix_Reference#Matrix'>Matrix</a> <a href='SkMatrix_Reference#Matrix'>to</a> <a href='SkMatrix_Reference#Matrix'>pivot</a> <a href='SkMatrix_Reference#Matrix'>about</a> <a href='SkRect_Reference#Rect'>Rect</a> <a href='SkRect_Reference#Rect'>center</a>.
+<div><fiddle-embed name="c3f5faddca466f78278b32b88fd5f5eb"><div><a href='SkCanvas_Reference#Canvas'>Canvas</a> needs offset after applying <a href='SkMatrix_Reference#Matrix'>Matrix</a> to pivot about <a href='SkRect_Reference#Rect'>Rect</a> center.
</div></fiddle-embed></div>
### See Also
@@ -1967,11 +1967,11 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-void <a href='#SkMatrix_setSkew'>setSkew</a>(<a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>kx</a>, <a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>ky</a>, <a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>px</a>, <a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>py</a>)
+void <a href='#SkMatrix_setSkew'>setSkew</a>(<a href='undocumented#SkScalar'>SkScalar</a> kx, <a href='undocumented#SkScalar'>SkScalar</a> ky, <a href='undocumented#SkScalar'>SkScalar</a> px, <a href='undocumented#SkScalar'>SkScalar</a> py)
</pre>
-Sets <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> <a href='SkMatrix_Reference#SkMatrix'>to</a> <a href='SkMatrix_Reference#SkMatrix'>skew</a> <a href='SkMatrix_Reference#SkMatrix'>by</a> <a href='#SkMatrix_setSkew_kx'>kx</a> <a href='#SkMatrix_setSkew_kx'>and</a> <a href='#SkMatrix_setSkew_ky'>ky</a>, <a href='#SkMatrix_setSkew_ky'>about</a> <a href='#SkMatrix_setSkew_ky'>a</a> <a href='#SkMatrix_setSkew_ky'>pivot</a> <a href='SkPoint_Reference#Point'>point</a> <a href='SkPoint_Reference#Point'>at</a> (<a href='#SkMatrix_setSkew_px'>px</a>, <a href='#SkMatrix_setSkew_py'>py</a>).
-The pivot <a href='SkPoint_Reference#Point'>point</a> <a href='SkPoint_Reference#Point'>is</a> <a href='SkPoint_Reference#Point'>unchanged</a> <a href='SkPoint_Reference#Point'>when</a> <a href='SkPoint_Reference#Point'>mapped</a> <a href='SkPoint_Reference#Point'>with</a> <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a>.
+Sets <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> to skew by <a href='#SkMatrix_setSkew_kx'>kx</a> and <a href='#SkMatrix_setSkew_ky'>ky</a>, about a pivot <a href='SkPoint_Reference#Point'>point</a> at (<a href='#SkMatrix_setSkew_px'>px</a>, <a href='#SkMatrix_setSkew_py'>py</a>).
+The pivot <a href='SkPoint_Reference#Point'>point</a> is unchanged when mapped with <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a>.
### Parameters
@@ -2002,10 +2002,10 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-void <a href='#SkMatrix_setSkew'>setSkew</a>(<a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>kx</a>, <a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>ky</a>)
+void <a href='#SkMatrix_setSkew'>setSkew</a>(<a href='undocumented#SkScalar'>SkScalar</a> kx, <a href='undocumented#SkScalar'>SkScalar</a> ky)
</pre>
-Sets <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> <a href='SkMatrix_Reference#SkMatrix'>to</a> <a href='SkMatrix_Reference#SkMatrix'>skew</a> <a href='SkMatrix_Reference#SkMatrix'>by</a> <a href='#SkMatrix_setSkew_2_kx'>kx</a> <a href='#SkMatrix_setSkew_2_kx'>and</a> <a href='#SkMatrix_setSkew_2_ky'>ky</a>, <a href='#SkMatrix_setSkew_2_ky'>about</a> <a href='#SkMatrix_setSkew_2_ky'>a</a> <a href='#SkMatrix_setSkew_2_ky'>pivot</a> <a href='SkPoint_Reference#Point'>point</a> <a href='SkPoint_Reference#Point'>at</a> (0, 0).
+Sets <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> to skew by <a href='#SkMatrix_setSkew_2_kx'>kx</a> and <a href='#SkMatrix_setSkew_2_ky'>ky</a>, about a pivot <a href='SkPoint_Reference#Point'>point</a> at (0, 0).
### Parameters
@@ -2030,37 +2030,37 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-void <a href='#SkMatrix_setConcat'>setConcat</a>(<a href='#SkMatrix_setConcat'>const</a> <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a>& <a href='SkMatrix_Reference#SkMatrix'>a</a>, <a href='SkMatrix_Reference#SkMatrix'>const</a> <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a>& <a href='SkMatrix_Reference#SkMatrix'>b</a>)
+void <a href='#SkMatrix_setConcat'>setConcat</a>(const <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a>& a, const <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a>& b)
</pre>
-Sets <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> <a href='SkMatrix_Reference#SkMatrix'>to</a> <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> <a href='#SkMatrix_setConcat_a'>a</a> <a href='#SkMatrix_setConcat_a'>multiplied</a> <a href='#SkMatrix_setConcat_a'>by</a> <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> <a href='#SkMatrix_setConcat_b'>b</a>. <a href='#SkMatrix_setConcat_b'>Either</a> <a href='#SkMatrix_setConcat_a'>a</a> <a href='#SkMatrix_setConcat_a'>or</a> <a href='#SkMatrix_setConcat_b'>b</a> <a href='#SkMatrix_setConcat_b'>may</a> <a href='#SkMatrix_setConcat_b'>be</a> <a href='#SkMatrix_setConcat_b'>this</a>.
+Sets <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> to <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> <a href='#SkMatrix_setConcat_a'>a</a> multiplied by <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> <a href='#SkMatrix_setConcat_b'>b</a>. Either <a href='#SkMatrix_setConcat_a'>a</a> or <a href='#SkMatrix_setConcat_b'>b</a> may be this.
Given:
| A B C | | J K L |
-<a href='#SkMatrix_setConcat_a'>a</a> = | <a href='#SkMatrix_setConcat_a'>D</a> <a href='#SkMatrix_setConcat_a'>E</a> <a href='#SkMatrix_setConcat_a'>F</a> |, <a href='#SkMatrix_setConcat_b'>b</a> = | <a href='#SkMatrix_setConcat_b'>M</a> <a href='#SkMatrix_setConcat_b'>N</a> <a href='#SkMatrix_setConcat_b'>O</a> |
-| G H <a href='#SkMatrix_I'>I</a> | | <a href='#SkMatrix_I'>P</a> <a href='#SkMatrix_I'>Q</a> <a href='#SkMatrix_I'>R</a> |
+<a href='#SkMatrix_setConcat_a'>a</a> = | D E F |, <a href='#SkMatrix_setConcat_b'>b</a> = | M N O |
+| G H <a href='#SkMatrix_I'>I</a> | | P Q R |
-sets <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> <a href='SkMatrix_Reference#SkMatrix'>to</a>:
+sets <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> to:
| A B C | | J K L | | AJ+BM+CP AK+BN+CQ AL+BO+CR |
-<a href='#SkMatrix_setConcat_a'>a</a> * <a href='#SkMatrix_setConcat_b'>b</a> = | <a href='#SkMatrix_setConcat_b'>D</a> <a href='#SkMatrix_setConcat_b'>E</a> <a href='#SkMatrix_setConcat_b'>F</a> | * | <a href='#SkMatrix_setConcat_b'>M</a> <a href='#SkMatrix_setConcat_b'>N</a> <a href='#SkMatrix_setConcat_b'>O</a> | = | <a href='#SkMatrix_setConcat_b'>DJ</a>+<a href='#SkMatrix_setConcat_b'>EM</a>+<a href='#SkMatrix_setConcat_b'>FP</a> <a href='#SkMatrix_setConcat_b'>DK</a>+<a href='#SkMatrix_setConcat_b'>EN</a>+<a href='#SkMatrix_setConcat_b'>FQ</a> <a href='#SkMatrix_setConcat_b'>DL</a>+<a href='#SkMatrix_setConcat_b'>EO</a>+<a href='#SkMatrix_setConcat_b'>FR</a> |
-| G H <a href='#SkMatrix_I'>I</a> | | <a href='#SkMatrix_I'>P</a> <a href='#SkMatrix_I'>Q</a> <a href='#SkMatrix_I'>R</a> | | <a href='#SkMatrix_I'>GJ</a>+<a href='#SkMatrix_I'>HM</a>+<a href='#SkMatrix_I'>IP</a> <a href='#SkMatrix_I'>GK</a>+<a href='#SkMatrix_I'>HN</a>+<a href='#SkMatrix_I'>IQ</a> <a href='#SkMatrix_I'>GL</a>+<a href='#SkMatrix_I'>HO</a>+<a href='#SkMatrix_I'>IR</a> |
+<a href='#SkMatrix_setConcat_a'>a</a> * <a href='#SkMatrix_setConcat_b'>b</a> = | D E F | * | M N O | = | DJ+EM+FP DK+EN+FQ DL+EO+FR |
+| G H <a href='#SkMatrix_I'>I</a> | | P Q R | | GJ+HM+IP GK+HN+IQ GL+HO+IR |
### Parameters
<table> <tr> <td><a name='SkMatrix_setConcat_a'><code><strong>a</strong></code></a></td>
- <td><a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> <a href='SkMatrix_Reference#SkMatrix'>on</a> <a href='SkMatrix_Reference#SkMatrix'>left side</a> <a href='SkMatrix_Reference#SkMatrix'>of</a> <a href='SkMatrix_Reference#SkMatrix'>multiply</a> <a href='SkMatrix_Reference#SkMatrix'>expression</a></td>
+ <td><a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> on left side of multiply expression</td>
</tr>
<tr> <td><a name='SkMatrix_setConcat_b'><code><strong>b</strong></code></a></td>
- <td><a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> <a href='SkMatrix_Reference#SkMatrix'>on</a> <a href='SkMatrix_Reference#SkMatrix'>right side</a> <a href='SkMatrix_Reference#SkMatrix'>of</a> <a href='SkMatrix_Reference#SkMatrix'>multiply</a> <a href='SkMatrix_Reference#SkMatrix'>expression</a></td>
+ <td><a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> on right side of multiply expression</td>
</tr>
</table>
### Example
-<div><fiddle-embed name="0381a10ac69bdefdf9d15b47cbb9fefe"><div><a href='#SkMatrix_setPolyToPoly'>setPolyToPoly</a> <a href='#SkMatrix_setPolyToPoly'>creates</a> <a href='#SkMatrix_setPolyToPoly'>perspective</a> <a href='SkMatrix_Reference#Matrix'>matrices</a>, <a href='SkMatrix_Reference#Matrix'>one</a> <a href='SkMatrix_Reference#Matrix'>the</a> <a href='SkMatrix_Reference#Matrix'>inverse</a> <a href='SkMatrix_Reference#Matrix'>of</a> <a href='SkMatrix_Reference#Matrix'>the</a> <a href='SkMatrix_Reference#Matrix'>other</a>.
-<a href='SkMatrix_Reference#Matrix'>Multiplying</a> <a href='SkMatrix_Reference#Matrix'>the</a> <a href='SkMatrix_Reference#Matrix'>matrix</a> <a href='SkMatrix_Reference#Matrix'>by</a> <a href='SkMatrix_Reference#Matrix'>its</a> <a href='SkMatrix_Reference#Matrix'>inverse</a> <a href='SkMatrix_Reference#Matrix'>turns</a> <a href='SkMatrix_Reference#Matrix'>into</a> <a href='SkMatrix_Reference#Matrix'>an</a> <a href='SkMatrix_Reference#Matrix'>identity</a> <a href='SkMatrix_Reference#Matrix'>matrix</a>.
+<div><fiddle-embed name="0381a10ac69bdefdf9d15b47cbb9fefe"><div><a href='#SkMatrix_setPolyToPoly'>setPolyToPoly</a> creates perspective <a href='SkMatrix_Reference#Matrix'>matrices</a>, one the inverse of the other.
+Multiplying the <a href='SkMatrix_Reference#Matrix'>matrix</a> by its inverse turns into an identity <a href='SkMatrix_Reference#Matrix'>matrix</a>.
</div></fiddle-embed></div>
### See Also
@@ -2072,23 +2072,23 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-void <a href='#SkMatrix_preTranslate'>preTranslate</a>(<a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>dx</a>, <a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>dy</a>)
+void <a href='#SkMatrix_preTranslate'>preTranslate</a>(<a href='undocumented#SkScalar'>SkScalar</a> dx, <a href='undocumented#SkScalar'>SkScalar</a> dy)
</pre>
-Sets <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> <a href='SkMatrix_Reference#SkMatrix'>to</a> <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> <a href='SkMatrix_Reference#SkMatrix'>multiplied</a> <a href='SkMatrix_Reference#SkMatrix'>by</a> <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> <a href='SkMatrix_Reference#SkMatrix'>constructed</a> <a href='SkMatrix_Reference#SkMatrix'>from</a> <a href='SkMatrix_Reference#SkMatrix'>translation</a> (<a href='#SkMatrix_preTranslate_dx'>dx</a>, <a href='#SkMatrix_preTranslate_dy'>dy</a>).
-This can be thought of as moving the <a href='SkPoint_Reference#Point'>point</a> <a href='SkPoint_Reference#Point'>to</a> <a href='SkPoint_Reference#Point'>be</a> <a href='SkPoint_Reference#Point'>mapped</a> <a href='SkPoint_Reference#Point'>before</a> <a href='SkPoint_Reference#Point'>applying</a> <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a>.
+Sets <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> to <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> multiplied by <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> constructed from translation (<a href='#SkMatrix_preTranslate_dx'>dx</a>, <a href='#SkMatrix_preTranslate_dy'>dy</a>).
+This can be thought of as moving the <a href='SkPoint_Reference#Point'>point</a> to be mapped before applying <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a>.
Given:
| A B C | | 1 0 <a href='#SkMatrix_preTranslate_dx'>dx</a> |
-<a href='SkMatrix_Reference#Matrix'>Matrix</a> = | <a href='SkMatrix_Reference#Matrix'>D</a> <a href='SkMatrix_Reference#Matrix'>E</a> <a href='SkMatrix_Reference#Matrix'>F</a> |, <a href='SkMatrix_Reference#Matrix'>T</a>(<a href='#SkMatrix_preTranslate_dx'>dx</a>, <a href='#SkMatrix_preTranslate_dy'>dy</a>) = | 0 1 <a href='#SkMatrix_preTranslate_dy'>dy</a> |
+<a href='SkMatrix_Reference#Matrix'>Matrix</a> = | D E F |, T(<a href='#SkMatrix_preTranslate_dx'>dx</a>, <a href='#SkMatrix_preTranslate_dy'>dy</a>) = | 0 1 <a href='#SkMatrix_preTranslate_dy'>dy</a> |
| G H <a href='#SkMatrix_I'>I</a> | | 0 0 1 |
-sets <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> <a href='SkMatrix_Reference#SkMatrix'>to</a>:
+sets <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> to:
-| A B C | | 1 0 <a href='#SkMatrix_preTranslate_dx'>dx</a> | | <a href='#SkMatrix_preTranslate_dx'>A</a> <a href='#SkMatrix_preTranslate_dx'>B</a> <a href='#SkMatrix_preTranslate_dx'>A</a>*<a href='#SkMatrix_preTranslate_dx'>dx</a>+<a href='#SkMatrix_preTranslate_dx'>B</a>*<a href='#SkMatrix_preTranslate_dy'>dy</a>+<a href='#SkMatrix_preTranslate_dy'>C</a> |
-<a href='SkMatrix_Reference#Matrix'>Matrix</a> * <a href='SkMatrix_Reference#Matrix'>T</a>(<a href='#SkMatrix_preTranslate_dx'>dx</a>, <a href='#SkMatrix_preTranslate_dy'>dy</a>) = | <a href='#SkMatrix_preTranslate_dy'>D</a> <a href='#SkMatrix_preTranslate_dy'>E</a> <a href='#SkMatrix_preTranslate_dy'>F</a> | | 0 1 <a href='#SkMatrix_preTranslate_dy'>dy</a> | = | <a href='#SkMatrix_preTranslate_dy'>D</a> <a href='#SkMatrix_preTranslate_dy'>E</a> <a href='#SkMatrix_preTranslate_dy'>D</a>*<a href='#SkMatrix_preTranslate_dx'>dx</a>+<a href='#SkMatrix_preTranslate_dx'>E</a>*<a href='#SkMatrix_preTranslate_dy'>dy</a>+<a href='#SkMatrix_preTranslate_dy'>F</a> |
-| G H <a href='#SkMatrix_I'>I</a> | | 0 0 1 | | <a href='#SkMatrix_I'>G</a> <a href='#SkMatrix_I'>H</a> <a href='#SkMatrix_I'>G</a>*<a href='#SkMatrix_preTranslate_dx'>dx</a>+<a href='#SkMatrix_preTranslate_dx'>H</a>*<a href='#SkMatrix_preTranslate_dy'>dy</a>+<a href='#SkMatrix_I'>I</a> |
+| A B C | | 1 0 <a href='#SkMatrix_preTranslate_dx'>dx</a> | | A B A*<a href='#SkMatrix_preTranslate_dx'>dx</a>+B*<a href='#SkMatrix_preTranslate_dy'>dy</a>+C |
+<a href='SkMatrix_Reference#Matrix'>Matrix</a> * T(<a href='#SkMatrix_preTranslate_dx'>dx</a>, <a href='#SkMatrix_preTranslate_dy'>dy</a>) = | D E F | | 0 1 <a href='#SkMatrix_preTranslate_dy'>dy</a> | = | D E D*<a href='#SkMatrix_preTranslate_dx'>dx</a>+E*<a href='#SkMatrix_preTranslate_dy'>dy</a>+F |
+| G H <a href='#SkMatrix_I'>I</a> | | 0 0 1 | | G H G*<a href='#SkMatrix_preTranslate_dx'>dx</a>+H*<a href='#SkMatrix_preTranslate_dy'>dy</a>+<a href='#SkMatrix_I'>I</a> |
### Parameters
@@ -2113,17 +2113,17 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-void <a href='#SkMatrix_preScale'>preScale</a>(<a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>sx</a>, <a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>sy</a>, <a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>px</a>, <a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>py</a>)
+void <a href='#SkMatrix_preScale'>preScale</a>(<a href='undocumented#SkScalar'>SkScalar</a> sx, <a href='undocumented#SkScalar'>SkScalar</a> sy, <a href='undocumented#SkScalar'>SkScalar</a> px, <a href='undocumented#SkScalar'>SkScalar</a> py)
</pre>
-Sets <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> <a href='SkMatrix_Reference#SkMatrix'>to</a> <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> <a href='SkMatrix_Reference#SkMatrix'>multiplied</a> <a href='SkMatrix_Reference#SkMatrix'>by</a> <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> <a href='SkMatrix_Reference#SkMatrix'>constructed</a> <a href='SkMatrix_Reference#SkMatrix'>from</a> <a href='SkMatrix_Reference#SkMatrix'>scaling</a> <a href='SkMatrix_Reference#SkMatrix'>by</a> (<a href='#SkMatrix_preScale_sx'>sx</a>, <a href='#SkMatrix_preScale_sy'>sy</a>)
+Sets <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> to <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> multiplied by <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> constructed from scaling by (<a href='#SkMatrix_preScale_sx'>sx</a>, <a href='#SkMatrix_preScale_sy'>sy</a>)
about pivot <a href='SkPoint_Reference#Point'>point</a> (<a href='#SkMatrix_preScale_px'>px</a>, <a href='#SkMatrix_preScale_py'>py</a>).
-This can be thought of as scaling about a pivot <a href='SkPoint_Reference#Point'>point</a> <a href='SkPoint_Reference#Point'>before</a> <a href='SkPoint_Reference#Point'>applying</a> <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a>.
+This can be thought of as scaling about a pivot <a href='SkPoint_Reference#Point'>point</a> before applying <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a>.
Given:
-| A B C | | <a href='#SkMatrix_preScale_sx'>sx</a> 0 <a href='#SkMatrix_preScale_sx'>dx</a> |
-<a href='SkMatrix_Reference#Matrix'>Matrix</a> = | <a href='SkMatrix_Reference#Matrix'>D</a> <a href='SkMatrix_Reference#Matrix'>E</a> <a href='SkMatrix_Reference#Matrix'>F</a> |, <a href='SkMatrix_Reference#Matrix'>S</a>(<a href='#SkMatrix_preScale_sx'>sx</a>, <a href='#SkMatrix_preScale_sy'>sy</a>, <a href='#SkMatrix_preScale_px'>px</a>, <a href='#SkMatrix_preScale_py'>py</a>) = | 0 <a href='#SkMatrix_preScale_sy'>sy</a> <a href='#SkMatrix_preScale_sy'>dy</a> |
+| A B C | | <a href='#SkMatrix_preScale_sx'>sx</a> 0 dx |
+<a href='SkMatrix_Reference#Matrix'>Matrix</a> = | D E F |, S(<a href='#SkMatrix_preScale_sx'>sx</a>, <a href='#SkMatrix_preScale_sy'>sy</a>, <a href='#SkMatrix_preScale_px'>px</a>, <a href='#SkMatrix_preScale_py'>py</a>) = | 0 <a href='#SkMatrix_preScale_sy'>sy</a> dy |
| G H <a href='#SkMatrix_I'>I</a> | | 0 0 1 |
where
@@ -2131,11 +2131,11 @@
dx = <a href='#SkMatrix_preScale_px'>px</a> - <a href='#SkMatrix_preScale_sx'>sx</a> * <a href='#SkMatrix_preScale_px'>px</a>
dy = <a href='#SkMatrix_preScale_py'>py</a> - <a href='#SkMatrix_preScale_sy'>sy</a> * <a href='#SkMatrix_preScale_py'>py</a>
-sets <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> <a href='SkMatrix_Reference#SkMatrix'>to</a>:
+sets <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> to:
-| A B C | | <a href='#SkMatrix_preScale_sx'>sx</a> 0 <a href='#SkMatrix_preScale_sx'>dx</a> | | <a href='#SkMatrix_preScale_sx'>A</a>*<a href='#SkMatrix_preScale_sx'>sx</a> <a href='#SkMatrix_preScale_sx'>B</a>*<a href='#SkMatrix_preScale_sy'>sy</a> <a href='#SkMatrix_preScale_sy'>A</a>*<a href='#SkMatrix_preScale_sy'>dx</a>+<a href='#SkMatrix_preScale_sy'>B</a>*<a href='#SkMatrix_preScale_sy'>dy</a>+<a href='#SkMatrix_preScale_sy'>C</a> |
-<a href='SkMatrix_Reference#Matrix'>Matrix</a> * <a href='SkMatrix_Reference#Matrix'>S</a>(<a href='#SkMatrix_preScale_sx'>sx</a>, <a href='#SkMatrix_preScale_sy'>sy</a>, <a href='#SkMatrix_preScale_px'>px</a>, <a href='#SkMatrix_preScale_py'>py</a>) = | <a href='#SkMatrix_preScale_py'>D</a> <a href='#SkMatrix_preScale_py'>E</a> <a href='#SkMatrix_preScale_py'>F</a> | | 0 <a href='#SkMatrix_preScale_sy'>sy</a> <a href='#SkMatrix_preScale_sy'>dy</a> | = | <a href='#SkMatrix_preScale_sy'>D</a>*<a href='#SkMatrix_preScale_sx'>sx</a> <a href='#SkMatrix_preScale_sx'>E</a>*<a href='#SkMatrix_preScale_sy'>sy</a> <a href='#SkMatrix_preScale_sy'>D</a>*<a href='#SkMatrix_preScale_sy'>dx</a>+<a href='#SkMatrix_preScale_sy'>E</a>*<a href='#SkMatrix_preScale_sy'>dy</a>+<a href='#SkMatrix_preScale_sy'>F</a> |
-| G H <a href='#SkMatrix_I'>I</a> | | 0 0 1 | | <a href='#SkMatrix_I'>G</a>*<a href='#SkMatrix_preScale_sx'>sx</a> <a href='#SkMatrix_preScale_sx'>H</a>*<a href='#SkMatrix_preScale_sy'>sy</a> <a href='#SkMatrix_preScale_sy'>G</a>*<a href='#SkMatrix_preScale_sy'>dx</a>+<a href='#SkMatrix_preScale_sy'>H</a>*<a href='#SkMatrix_preScale_sy'>dy</a>+<a href='#SkMatrix_I'>I</a> |
+| A B C | | <a href='#SkMatrix_preScale_sx'>sx</a> 0 dx | | A*<a href='#SkMatrix_preScale_sx'>sx</a> B*<a href='#SkMatrix_preScale_sy'>sy</a> A*dx+B*dy+C |
+<a href='SkMatrix_Reference#Matrix'>Matrix</a> * S(<a href='#SkMatrix_preScale_sx'>sx</a>, <a href='#SkMatrix_preScale_sy'>sy</a>, <a href='#SkMatrix_preScale_px'>px</a>, <a href='#SkMatrix_preScale_py'>py</a>) = | D E F | | 0 <a href='#SkMatrix_preScale_sy'>sy</a> dy | = | D*<a href='#SkMatrix_preScale_sx'>sx</a> E*<a href='#SkMatrix_preScale_sy'>sy</a> D*dx+E*dy+F |
+| G H <a href='#SkMatrix_I'>I</a> | | 0 0 1 | | G*<a href='#SkMatrix_preScale_sx'>sx</a> H*<a href='#SkMatrix_preScale_sy'>sy</a> G*dx+H*dy+<a href='#SkMatrix_I'>I</a> |
### Parameters
@@ -2166,24 +2166,24 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-void <a href='#SkMatrix_preScale'>preScale</a>(<a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>sx</a>, <a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>sy</a>)
+void <a href='#SkMatrix_preScale'>preScale</a>(<a href='undocumented#SkScalar'>SkScalar</a> sx, <a href='undocumented#SkScalar'>SkScalar</a> sy)
</pre>
-Sets <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> <a href='SkMatrix_Reference#SkMatrix'>to</a> <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> <a href='SkMatrix_Reference#SkMatrix'>multiplied</a> <a href='SkMatrix_Reference#SkMatrix'>by</a> <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> <a href='SkMatrix_Reference#SkMatrix'>constructed</a> <a href='SkMatrix_Reference#SkMatrix'>from</a> <a href='SkMatrix_Reference#SkMatrix'>scaling</a> <a href='SkMatrix_Reference#SkMatrix'>by</a> (<a href='#SkMatrix_preScale_2_sx'>sx</a>, <a href='#SkMatrix_preScale_2_sy'>sy</a>)
+Sets <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> to <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> multiplied by <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> constructed from scaling by (<a href='#SkMatrix_preScale_2_sx'>sx</a>, <a href='#SkMatrix_preScale_2_sy'>sy</a>)
about pivot <a href='SkPoint_Reference#Point'>point</a> (0, 0).
This can be thought of as scaling about the origin before applying <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a>.
Given:
| A B C | | <a href='#SkMatrix_preScale_2_sx'>sx</a> 0 0 |
-<a href='SkMatrix_Reference#Matrix'>Matrix</a> = | <a href='SkMatrix_Reference#Matrix'>D</a> <a href='SkMatrix_Reference#Matrix'>E</a> <a href='SkMatrix_Reference#Matrix'>F</a> |, <a href='SkMatrix_Reference#Matrix'>S</a>(<a href='#SkMatrix_preScale_2_sx'>sx</a>, <a href='#SkMatrix_preScale_2_sy'>sy</a>) = | 0 <a href='#SkMatrix_preScale_2_sy'>sy</a> 0 |
+<a href='SkMatrix_Reference#Matrix'>Matrix</a> = | D E F |, S(<a href='#SkMatrix_preScale_2_sx'>sx</a>, <a href='#SkMatrix_preScale_2_sy'>sy</a>) = | 0 <a href='#SkMatrix_preScale_2_sy'>sy</a> 0 |
| G H <a href='#SkMatrix_I'>I</a> | | 0 0 1 |
-sets <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> <a href='SkMatrix_Reference#SkMatrix'>to</a>:
+sets <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> to:
-| A B C | | <a href='#SkMatrix_preScale_2_sx'>sx</a> 0 0 | | <a href='#SkMatrix_preScale_2_sx'>A</a>*<a href='#SkMatrix_preScale_2_sx'>sx</a> <a href='#SkMatrix_preScale_2_sx'>B</a>*<a href='#SkMatrix_preScale_2_sy'>sy</a> <a href='#SkMatrix_preScale_2_sy'>C</a> |
-<a href='SkMatrix_Reference#Matrix'>Matrix</a> * <a href='SkMatrix_Reference#Matrix'>S</a>(<a href='#SkMatrix_preScale_2_sx'>sx</a>, <a href='#SkMatrix_preScale_2_sy'>sy</a>) = | <a href='#SkMatrix_preScale_2_sy'>D</a> <a href='#SkMatrix_preScale_2_sy'>E</a> <a href='#SkMatrix_preScale_2_sy'>F</a> | | 0 <a href='#SkMatrix_preScale_2_sy'>sy</a> 0 | = | <a href='#SkMatrix_preScale_2_sy'>D</a>*<a href='#SkMatrix_preScale_2_sx'>sx</a> <a href='#SkMatrix_preScale_2_sx'>E</a>*<a href='#SkMatrix_preScale_2_sy'>sy</a> <a href='#SkMatrix_preScale_2_sy'>F</a> |
-| G H <a href='#SkMatrix_I'>I</a> | | 0 0 1 | | <a href='#SkMatrix_I'>G</a>*<a href='#SkMatrix_preScale_2_sx'>sx</a> <a href='#SkMatrix_preScale_2_sx'>H</a>*<a href='#SkMatrix_preScale_2_sy'>sy</a> <a href='#SkMatrix_I'>I</a> |
+| A B C | | <a href='#SkMatrix_preScale_2_sx'>sx</a> 0 0 | | A*<a href='#SkMatrix_preScale_2_sx'>sx</a> B*<a href='#SkMatrix_preScale_2_sy'>sy</a> C |
+<a href='SkMatrix_Reference#Matrix'>Matrix</a> * S(<a href='#SkMatrix_preScale_2_sx'>sx</a>, <a href='#SkMatrix_preScale_2_sy'>sy</a>) = | D E F | | 0 <a href='#SkMatrix_preScale_2_sy'>sy</a> 0 | = | D*<a href='#SkMatrix_preScale_2_sx'>sx</a> E*<a href='#SkMatrix_preScale_2_sy'>sy</a> F |
+| G H <a href='#SkMatrix_I'>I</a> | | 0 0 1 | | G*<a href='#SkMatrix_preScale_2_sx'>sx</a> H*<a href='#SkMatrix_preScale_2_sy'>sy</a> <a href='#SkMatrix_I'>I</a> |
### Parameters
@@ -2208,33 +2208,33 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-void <a href='#SkMatrix_preRotate'>preRotate</a>(<a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>degrees</a>, <a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>px</a>, <a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>py</a>)
+void <a href='#SkMatrix_preRotate'>preRotate</a>(<a href='undocumented#SkScalar'>SkScalar</a> degrees, <a href='undocumented#SkScalar'>SkScalar</a> px, <a href='undocumented#SkScalar'>SkScalar</a> py)
</pre>
-Sets <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> <a href='SkMatrix_Reference#SkMatrix'>to</a> <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> <a href='SkMatrix_Reference#SkMatrix'>multiplied</a> <a href='SkMatrix_Reference#SkMatrix'>by</a> <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> <a href='SkMatrix_Reference#SkMatrix'>constructed</a> <a href='SkMatrix_Reference#SkMatrix'>from</a> <a href='SkMatrix_Reference#SkMatrix'>rotating</a> <a href='SkMatrix_Reference#SkMatrix'>by</a> <a href='#SkMatrix_preRotate_degrees'>degrees</a>
+Sets <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> to <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> multiplied by <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> constructed from rotating by <a href='#SkMatrix_preRotate_degrees'>degrees</a>
about pivot <a href='SkPoint_Reference#Point'>point</a> (<a href='#SkMatrix_preRotate_px'>px</a>, <a href='#SkMatrix_preRotate_py'>py</a>).
-This can be thought of as rotating about a pivot <a href='SkPoint_Reference#Point'>point</a> <a href='SkPoint_Reference#Point'>before</a> <a href='SkPoint_Reference#Point'>applying</a> <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a>.
+This can be thought of as rotating about a pivot <a href='SkPoint_Reference#Point'>point</a> before applying <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a>.
-Positive <a href='#SkMatrix_preRotate_degrees'>degrees</a> <a href='#SkMatrix_preRotate_degrees'>rotates</a> <a href='#SkMatrix_preRotate_degrees'>clockwise</a>.
+Positive <a href='#SkMatrix_preRotate_degrees'>degrees</a> rotates clockwise.
Given:
| A B C | | c -s dx |
-<a href='SkMatrix_Reference#Matrix'>Matrix</a> = | <a href='SkMatrix_Reference#Matrix'>D</a> <a href='SkMatrix_Reference#Matrix'>E</a> <a href='SkMatrix_Reference#Matrix'>F</a> |, <a href='SkMatrix_Reference#Matrix'>R</a>(<a href='#SkMatrix_preRotate_degrees'>degrees</a>, <a href='#SkMatrix_preRotate_px'>px</a>, <a href='#SkMatrix_preRotate_py'>py</a>) = | <a href='#SkMatrix_preRotate_py'>s</a> <a href='#SkMatrix_preRotate_py'>c</a> <a href='#SkMatrix_preRotate_py'>dy</a> |
+<a href='SkMatrix_Reference#Matrix'>Matrix</a> = | D E F |, R(<a href='#SkMatrix_preRotate_degrees'>degrees</a>, <a href='#SkMatrix_preRotate_px'>px</a>, <a href='#SkMatrix_preRotate_py'>py</a>) = | s c dy |
| G H <a href='#SkMatrix_I'>I</a> | | 0 0 1 |
where
c = cos(<a href='#SkMatrix_preRotate_degrees'>degrees</a>)
s = sin(<a href='#SkMatrix_preRotate_degrees'>degrees</a>)
-dx = s * <a href='#SkMatrix_preRotate_py'>py</a> + (1 - <a href='#SkMatrix_preRotate_py'>c</a>) * <a href='#SkMatrix_preRotate_px'>px</a>
-dy = -s * <a href='#SkMatrix_preRotate_px'>px</a> + (1 - <a href='#SkMatrix_preRotate_px'>c</a>) * <a href='#SkMatrix_preRotate_py'>py</a>
+dx = s * <a href='#SkMatrix_preRotate_py'>py</a> + (1 - c) * <a href='#SkMatrix_preRotate_px'>px</a>
+dy = -s * <a href='#SkMatrix_preRotate_px'>px</a> + (1 - c) * <a href='#SkMatrix_preRotate_py'>py</a>
-sets <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> <a href='SkMatrix_Reference#SkMatrix'>to</a>:
+sets <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> to:
| A B C | | c -s dx | | Ac+Bs -As+Bc A*dx+B*dy+C |
-<a href='SkMatrix_Reference#Matrix'>Matrix</a> * <a href='SkMatrix_Reference#Matrix'>R</a>(<a href='#SkMatrix_preRotate_degrees'>degrees</a>, <a href='#SkMatrix_preRotate_px'>px</a>, <a href='#SkMatrix_preRotate_py'>py</a>) = | <a href='#SkMatrix_preRotate_py'>D</a> <a href='#SkMatrix_preRotate_py'>E</a> <a href='#SkMatrix_preRotate_py'>F</a> | | <a href='#SkMatrix_preRotate_py'>s</a> <a href='#SkMatrix_preRotate_py'>c</a> <a href='#SkMatrix_preRotate_py'>dy</a> | = | <a href='#SkMatrix_preRotate_py'>Dc</a>+<a href='#SkMatrix_preRotate_py'>Es</a> -<a href='#SkMatrix_preRotate_py'>Ds</a>+<a href='#SkMatrix_preRotate_py'>Ec</a> <a href='#SkMatrix_preRotate_py'>D</a>*<a href='#SkMatrix_preRotate_py'>dx</a>+<a href='#SkMatrix_preRotate_py'>E</a>*<a href='#SkMatrix_preRotate_py'>dy</a>+<a href='#SkMatrix_preRotate_py'>F</a> |
-| G H <a href='#SkMatrix_I'>I</a> | | 0 0 1 | | <a href='#SkMatrix_I'>Gc</a>+<a href='#SkMatrix_I'>Hs</a> -<a href='#SkMatrix_I'>Gs</a>+<a href='#SkMatrix_I'>Hc</a> <a href='#SkMatrix_I'>G</a>*<a href='#SkMatrix_I'>dx</a>+<a href='#SkMatrix_I'>H</a>*<a href='#SkMatrix_I'>dy</a>+<a href='#SkMatrix_I'>I</a> |
+<a href='SkMatrix_Reference#Matrix'>Matrix</a> * R(<a href='#SkMatrix_preRotate_degrees'>degrees</a>, <a href='#SkMatrix_preRotate_px'>px</a>, <a href='#SkMatrix_preRotate_py'>py</a>) = | D E F | | s c dy | = | Dc+Es -Ds+Ec D*dx+E*dy+F |
+| G H <a href='#SkMatrix_I'>I</a> | | 0 0 1 | | Gc+Hs -Gs+Hc G*dx+H*dy+<a href='#SkMatrix_I'>I</a> |
### Parameters
@@ -2262,19 +2262,19 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-void <a href='#SkMatrix_preRotate'>preRotate</a>(<a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>degrees</a>)
+void <a href='#SkMatrix_preRotate'>preRotate</a>(<a href='undocumented#SkScalar'>SkScalar</a> degrees)
</pre>
-Sets <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> <a href='SkMatrix_Reference#SkMatrix'>to</a> <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> <a href='SkMatrix_Reference#SkMatrix'>multiplied</a> <a href='SkMatrix_Reference#SkMatrix'>by</a> <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> <a href='SkMatrix_Reference#SkMatrix'>constructed</a> <a href='SkMatrix_Reference#SkMatrix'>from</a> <a href='SkMatrix_Reference#SkMatrix'>rotating</a> <a href='SkMatrix_Reference#SkMatrix'>by</a> <a href='#SkMatrix_preRotate_2_degrees'>degrees</a>
+Sets <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> to <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> multiplied by <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> constructed from rotating by <a href='#SkMatrix_preRotate_2_degrees'>degrees</a>
about pivot <a href='SkPoint_Reference#Point'>point</a> (0, 0).
This can be thought of as rotating about the origin before applying <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a>.
-Positive <a href='#SkMatrix_preRotate_2_degrees'>degrees</a> <a href='#SkMatrix_preRotate_2_degrees'>rotates</a> <a href='#SkMatrix_preRotate_2_degrees'>clockwise</a>.
+Positive <a href='#SkMatrix_preRotate_2_degrees'>degrees</a> rotates clockwise.
Given:
| A B C | | c -s 0 |
-<a href='SkMatrix_Reference#Matrix'>Matrix</a> = | <a href='SkMatrix_Reference#Matrix'>D</a> <a href='SkMatrix_Reference#Matrix'>E</a> <a href='SkMatrix_Reference#Matrix'>F</a> |, <a href='SkMatrix_Reference#Matrix'>R</a>(<a href='#SkMatrix_preRotate_2_degrees'>degrees</a>, <a href='#SkMatrix_preRotate_2_degrees'>px</a>, <a href='#SkMatrix_preRotate_2_degrees'>py</a>) = | <a href='#SkMatrix_preRotate_2_degrees'>s</a> <a href='#SkMatrix_preRotate_2_degrees'>c</a> 0 |
+<a href='SkMatrix_Reference#Matrix'>Matrix</a> = | D E F |, R(<a href='#SkMatrix_preRotate_2_degrees'>degrees</a>, px, py) = | s c 0 |
| G H <a href='#SkMatrix_I'>I</a> | | 0 0 1 |
where
@@ -2282,11 +2282,11 @@
c = cos(<a href='#SkMatrix_preRotate_2_degrees'>degrees</a>)
s = sin(<a href='#SkMatrix_preRotate_2_degrees'>degrees</a>)
-sets <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> <a href='SkMatrix_Reference#SkMatrix'>to</a>:
+sets <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> to:
| A B C | | c -s 0 | | Ac+Bs -As+Bc C |
-<a href='SkMatrix_Reference#Matrix'>Matrix</a> * <a href='SkMatrix_Reference#Matrix'>R</a>(<a href='#SkMatrix_preRotate_2_degrees'>degrees</a>, <a href='#SkMatrix_preRotate_2_degrees'>px</a>, <a href='#SkMatrix_preRotate_2_degrees'>py</a>) = | <a href='#SkMatrix_preRotate_2_degrees'>D</a> <a href='#SkMatrix_preRotate_2_degrees'>E</a> <a href='#SkMatrix_preRotate_2_degrees'>F</a> | | <a href='#SkMatrix_preRotate_2_degrees'>s</a> <a href='#SkMatrix_preRotate_2_degrees'>c</a> 0 | = | <a href='#SkMatrix_preRotate_2_degrees'>Dc</a>+<a href='#SkMatrix_preRotate_2_degrees'>Es</a> -<a href='#SkMatrix_preRotate_2_degrees'>Ds</a>+<a href='#SkMatrix_preRotate_2_degrees'>Ec</a> <a href='#SkMatrix_preRotate_2_degrees'>F</a> |
-| G H <a href='#SkMatrix_I'>I</a> | | 0 0 1 | | <a href='#SkMatrix_I'>Gc</a>+<a href='#SkMatrix_I'>Hs</a> -<a href='#SkMatrix_I'>Gs</a>+<a href='#SkMatrix_I'>Hc</a> <a href='#SkMatrix_I'>I</a> |
+<a href='SkMatrix_Reference#Matrix'>Matrix</a> * R(<a href='#SkMatrix_preRotate_2_degrees'>degrees</a>, px, py) = | D E F | | s c 0 | = | Dc+Es -Ds+Ec F |
+| G H <a href='#SkMatrix_I'>I</a> | | 0 0 1 | | Gc+Hs -Gs+Hc <a href='#SkMatrix_I'>I</a> |
### Parameters
@@ -2308,17 +2308,17 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-void <a href='#SkMatrix_preSkew'>preSkew</a>(<a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>kx</a>, <a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>ky</a>, <a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>px</a>, <a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>py</a>)
+void <a href='#SkMatrix_preSkew'>preSkew</a>(<a href='undocumented#SkScalar'>SkScalar</a> kx, <a href='undocumented#SkScalar'>SkScalar</a> ky, <a href='undocumented#SkScalar'>SkScalar</a> px, <a href='undocumented#SkScalar'>SkScalar</a> py)
</pre>
-Sets <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> <a href='SkMatrix_Reference#SkMatrix'>to</a> <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> <a href='SkMatrix_Reference#SkMatrix'>multiplied</a> <a href='SkMatrix_Reference#SkMatrix'>by</a> <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> <a href='SkMatrix_Reference#SkMatrix'>constructed</a> <a href='SkMatrix_Reference#SkMatrix'>from</a> <a href='SkMatrix_Reference#SkMatrix'>skewing</a> <a href='SkMatrix_Reference#SkMatrix'>by</a> (<a href='#SkMatrix_preSkew_kx'>kx</a>, <a href='#SkMatrix_preSkew_ky'>ky</a>)
+Sets <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> to <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> multiplied by <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> constructed from skewing by (<a href='#SkMatrix_preSkew_kx'>kx</a>, <a href='#SkMatrix_preSkew_ky'>ky</a>)
about pivot <a href='SkPoint_Reference#Point'>point</a> (<a href='#SkMatrix_preSkew_px'>px</a>, <a href='#SkMatrix_preSkew_py'>py</a>).
-This can be thought of as skewing about a pivot <a href='SkPoint_Reference#Point'>point</a> <a href='SkPoint_Reference#Point'>before</a> <a href='SkPoint_Reference#Point'>applying</a> <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a>.
+This can be thought of as skewing about a pivot <a href='SkPoint_Reference#Point'>point</a> before applying <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a>.
Given:
-| A B C | | 1 <a href='#SkMatrix_preSkew_kx'>kx</a> <a href='#SkMatrix_preSkew_kx'>dx</a> |
-<a href='SkMatrix_Reference#Matrix'>Matrix</a> = | <a href='SkMatrix_Reference#Matrix'>D</a> <a href='SkMatrix_Reference#Matrix'>E</a> <a href='SkMatrix_Reference#Matrix'>F</a> |, <a href='SkMatrix_Reference#Matrix'>K</a>(<a href='#SkMatrix_preSkew_kx'>kx</a>, <a href='#SkMatrix_preSkew_ky'>ky</a>, <a href='#SkMatrix_preSkew_px'>px</a>, <a href='#SkMatrix_preSkew_py'>py</a>) = | <a href='#SkMatrix_preSkew_ky'>ky</a> 1 <a href='#SkMatrix_preSkew_ky'>dy</a> |
+| A B C | | 1 <a href='#SkMatrix_preSkew_kx'>kx</a> dx |
+<a href='SkMatrix_Reference#Matrix'>Matrix</a> = | D E F |, K(<a href='#SkMatrix_preSkew_kx'>kx</a>, <a href='#SkMatrix_preSkew_ky'>ky</a>, <a href='#SkMatrix_preSkew_px'>px</a>, <a href='#SkMatrix_preSkew_py'>py</a>) = | <a href='#SkMatrix_preSkew_ky'>ky</a> 1 dy |
| G H <a href='#SkMatrix_I'>I</a> | | 0 0 1 |
where
@@ -2326,11 +2326,11 @@
dx = -<a href='#SkMatrix_preSkew_kx'>kx</a> * <a href='#SkMatrix_preSkew_py'>py</a>
dy = -<a href='#SkMatrix_preSkew_ky'>ky</a> * <a href='#SkMatrix_preSkew_px'>px</a>
-sets <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> <a href='SkMatrix_Reference#SkMatrix'>to</a>:
+sets <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> to:
-| A B C | | 1 <a href='#SkMatrix_preSkew_kx'>kx</a> <a href='#SkMatrix_preSkew_kx'>dx</a> | | <a href='#SkMatrix_preSkew_kx'>A</a>+<a href='#SkMatrix_preSkew_kx'>B</a>*<a href='#SkMatrix_preSkew_ky'>ky</a> <a href='#SkMatrix_preSkew_ky'>A</a>*<a href='#SkMatrix_preSkew_kx'>kx</a>+<a href='#SkMatrix_preSkew_kx'>B</a> <a href='#SkMatrix_preSkew_kx'>A</a>*<a href='#SkMatrix_preSkew_kx'>dx</a>+<a href='#SkMatrix_preSkew_kx'>B</a>*<a href='#SkMatrix_preSkew_kx'>dy</a>+<a href='#SkMatrix_preSkew_kx'>C</a> |
-<a href='SkMatrix_Reference#Matrix'>Matrix</a> * <a href='SkMatrix_Reference#Matrix'>K</a>(<a href='#SkMatrix_preSkew_kx'>kx</a>, <a href='#SkMatrix_preSkew_ky'>ky</a>, <a href='#SkMatrix_preSkew_px'>px</a>, <a href='#SkMatrix_preSkew_py'>py</a>) = | <a href='#SkMatrix_preSkew_py'>D</a> <a href='#SkMatrix_preSkew_py'>E</a> <a href='#SkMatrix_preSkew_py'>F</a> | | <a href='#SkMatrix_preSkew_ky'>ky</a> 1 <a href='#SkMatrix_preSkew_ky'>dy</a> | = | <a href='#SkMatrix_preSkew_ky'>D</a>+<a href='#SkMatrix_preSkew_ky'>E</a>*<a href='#SkMatrix_preSkew_ky'>ky</a> <a href='#SkMatrix_preSkew_ky'>D</a>*<a href='#SkMatrix_preSkew_kx'>kx</a>+<a href='#SkMatrix_preSkew_kx'>E</a> <a href='#SkMatrix_preSkew_kx'>D</a>*<a href='#SkMatrix_preSkew_kx'>dx</a>+<a href='#SkMatrix_preSkew_kx'>E</a>*<a href='#SkMatrix_preSkew_kx'>dy</a>+<a href='#SkMatrix_preSkew_kx'>F</a> |
-| G H <a href='#SkMatrix_I'>I</a> | | 0 0 1 | | <a href='#SkMatrix_I'>G</a>+<a href='#SkMatrix_I'>H</a>*<a href='#SkMatrix_preSkew_ky'>ky</a> <a href='#SkMatrix_preSkew_ky'>G</a>*<a href='#SkMatrix_preSkew_kx'>kx</a>+<a href='#SkMatrix_preSkew_kx'>H</a> <a href='#SkMatrix_preSkew_kx'>G</a>*<a href='#SkMatrix_preSkew_kx'>dx</a>+<a href='#SkMatrix_preSkew_kx'>H</a>*<a href='#SkMatrix_preSkew_kx'>dy</a>+<a href='#SkMatrix_I'>I</a> |
+| A B C | | 1 <a href='#SkMatrix_preSkew_kx'>kx</a> dx | | A+B*<a href='#SkMatrix_preSkew_ky'>ky</a> A*<a href='#SkMatrix_preSkew_kx'>kx</a>+B A*dx+B*dy+C |
+<a href='SkMatrix_Reference#Matrix'>Matrix</a> * K(<a href='#SkMatrix_preSkew_kx'>kx</a>, <a href='#SkMatrix_preSkew_ky'>ky</a>, <a href='#SkMatrix_preSkew_px'>px</a>, <a href='#SkMatrix_preSkew_py'>py</a>) = | D E F | | <a href='#SkMatrix_preSkew_ky'>ky</a> 1 dy | = | D+E*<a href='#SkMatrix_preSkew_ky'>ky</a> D*<a href='#SkMatrix_preSkew_kx'>kx</a>+E D*dx+E*dy+F |
+| G H <a href='#SkMatrix_I'>I</a> | | 0 0 1 | | G+H*<a href='#SkMatrix_preSkew_ky'>ky</a> G*<a href='#SkMatrix_preSkew_kx'>kx</a>+H G*dx+H*dy+<a href='#SkMatrix_I'>I</a> |
### Parameters
@@ -2361,24 +2361,24 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-void <a href='#SkMatrix_preSkew'>preSkew</a>(<a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>kx</a>, <a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>ky</a>)
+void <a href='#SkMatrix_preSkew'>preSkew</a>(<a href='undocumented#SkScalar'>SkScalar</a> kx, <a href='undocumented#SkScalar'>SkScalar</a> ky)
</pre>
-Sets <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> <a href='SkMatrix_Reference#SkMatrix'>to</a> <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> <a href='SkMatrix_Reference#SkMatrix'>multiplied</a> <a href='SkMatrix_Reference#SkMatrix'>by</a> <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> <a href='SkMatrix_Reference#SkMatrix'>constructed</a> <a href='SkMatrix_Reference#SkMatrix'>from</a> <a href='SkMatrix_Reference#SkMatrix'>skewing</a> <a href='SkMatrix_Reference#SkMatrix'>by</a> (<a href='#SkMatrix_preSkew_2_kx'>kx</a>, <a href='#SkMatrix_preSkew_2_ky'>ky</a>)
+Sets <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> to <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> multiplied by <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> constructed from skewing by (<a href='#SkMatrix_preSkew_2_kx'>kx</a>, <a href='#SkMatrix_preSkew_2_ky'>ky</a>)
about pivot <a href='SkPoint_Reference#Point'>point</a> (0, 0).
This can be thought of as skewing about the origin before applying <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a>.
Given:
| A B C | | 1 <a href='#SkMatrix_preSkew_2_kx'>kx</a> 0 |
-<a href='SkMatrix_Reference#Matrix'>Matrix</a> = | <a href='SkMatrix_Reference#Matrix'>D</a> <a href='SkMatrix_Reference#Matrix'>E</a> <a href='SkMatrix_Reference#Matrix'>F</a> |, <a href='SkMatrix_Reference#Matrix'>K</a>(<a href='#SkMatrix_preSkew_2_kx'>kx</a>, <a href='#SkMatrix_preSkew_2_ky'>ky</a>) = | <a href='#SkMatrix_preSkew_2_ky'>ky</a> 1 0 |
+<a href='SkMatrix_Reference#Matrix'>Matrix</a> = | D E F |, K(<a href='#SkMatrix_preSkew_2_kx'>kx</a>, <a href='#SkMatrix_preSkew_2_ky'>ky</a>) = | <a href='#SkMatrix_preSkew_2_ky'>ky</a> 1 0 |
| G H <a href='#SkMatrix_I'>I</a> | | 0 0 1 |
-sets <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> <a href='SkMatrix_Reference#SkMatrix'>to</a>:
+sets <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> to:
-| A B C | | 1 <a href='#SkMatrix_preSkew_2_kx'>kx</a> 0 | | <a href='#SkMatrix_preSkew_2_kx'>A</a>+<a href='#SkMatrix_preSkew_2_kx'>B</a>*<a href='#SkMatrix_preSkew_2_ky'>ky</a> <a href='#SkMatrix_preSkew_2_ky'>A</a>*<a href='#SkMatrix_preSkew_2_kx'>kx</a>+<a href='#SkMatrix_preSkew_2_kx'>B</a> <a href='#SkMatrix_preSkew_2_kx'>C</a> |
-<a href='SkMatrix_Reference#Matrix'>Matrix</a> * <a href='SkMatrix_Reference#Matrix'>K</a>(<a href='#SkMatrix_preSkew_2_kx'>kx</a>, <a href='#SkMatrix_preSkew_2_ky'>ky</a>) = | <a href='#SkMatrix_preSkew_2_ky'>D</a> <a href='#SkMatrix_preSkew_2_ky'>E</a> <a href='#SkMatrix_preSkew_2_ky'>F</a> | | <a href='#SkMatrix_preSkew_2_ky'>ky</a> 1 0 | = | <a href='#SkMatrix_preSkew_2_ky'>D</a>+<a href='#SkMatrix_preSkew_2_ky'>E</a>*<a href='#SkMatrix_preSkew_2_ky'>ky</a> <a href='#SkMatrix_preSkew_2_ky'>D</a>*<a href='#SkMatrix_preSkew_2_kx'>kx</a>+<a href='#SkMatrix_preSkew_2_kx'>E</a> <a href='#SkMatrix_preSkew_2_kx'>F</a> |
-| G H <a href='#SkMatrix_I'>I</a> | | 0 0 1 | | <a href='#SkMatrix_I'>G</a>+<a href='#SkMatrix_I'>H</a>*<a href='#SkMatrix_preSkew_2_ky'>ky</a> <a href='#SkMatrix_preSkew_2_ky'>G</a>*<a href='#SkMatrix_preSkew_2_kx'>kx</a>+<a href='#SkMatrix_preSkew_2_kx'>H</a> <a href='#SkMatrix_I'>I</a> |
+| A B C | | 1 <a href='#SkMatrix_preSkew_2_kx'>kx</a> 0 | | A+B*<a href='#SkMatrix_preSkew_2_ky'>ky</a> A*<a href='#SkMatrix_preSkew_2_kx'>kx</a>+B C |
+<a href='SkMatrix_Reference#Matrix'>Matrix</a> * K(<a href='#SkMatrix_preSkew_2_kx'>kx</a>, <a href='#SkMatrix_preSkew_2_ky'>ky</a>) = | D E F | | <a href='#SkMatrix_preSkew_2_ky'>ky</a> 1 0 | = | D+E*<a href='#SkMatrix_preSkew_2_ky'>ky</a> D*<a href='#SkMatrix_preSkew_2_kx'>kx</a>+E F |
+| G H <a href='#SkMatrix_I'>I</a> | | 0 0 1 | | G+H*<a href='#SkMatrix_preSkew_2_ky'>ky</a> G*<a href='#SkMatrix_preSkew_2_kx'>kx</a>+H <a href='#SkMatrix_I'>I</a> |
### Parameters
@@ -2403,35 +2403,35 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-void <a href='#SkMatrix_preConcat'>preConcat</a>(<a href='#SkMatrix_preConcat'>const</a> <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a>& <a href='SkMatrix_Reference#SkMatrix'>other</a>)
+void <a href='#SkMatrix_preConcat'>preConcat</a>(const <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a>& other)
</pre>
-Sets <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> <a href='SkMatrix_Reference#SkMatrix'>to</a> <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> <a href='SkMatrix_Reference#SkMatrix'>multiplied</a> <a href='SkMatrix_Reference#SkMatrix'>by</a> <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> <a href='#SkMatrix_preConcat_other'>other</a>.
-This can be thought of mapping by <a href='#SkMatrix_preConcat_other'>other</a> <a href='#SkMatrix_preConcat_other'>before</a> <a href='#SkMatrix_preConcat_other'>applying</a> <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a>.
+Sets <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> to <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> multiplied by <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> <a href='#SkMatrix_preConcat_other'>other</a>.
+This can be thought of mapping by <a href='#SkMatrix_preConcat_other'>other</a> before applying <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a>.
Given:
| A B C | | J K L |
-<a href='SkMatrix_Reference#Matrix'>Matrix</a> = | <a href='SkMatrix_Reference#Matrix'>D</a> <a href='SkMatrix_Reference#Matrix'>E</a> <a href='SkMatrix_Reference#Matrix'>F</a> |, <a href='#SkMatrix_preConcat_other'>other</a> = | <a href='#SkMatrix_preConcat_other'>M</a> <a href='#SkMatrix_preConcat_other'>N</a> <a href='#SkMatrix_preConcat_other'>O</a> |
-| G H <a href='#SkMatrix_I'>I</a> | | <a href='#SkMatrix_I'>P</a> <a href='#SkMatrix_I'>Q</a> <a href='#SkMatrix_I'>R</a> |
+<a href='SkMatrix_Reference#Matrix'>Matrix</a> = | D E F |, <a href='#SkMatrix_preConcat_other'>other</a> = | M N O |
+| G H <a href='#SkMatrix_I'>I</a> | | P Q R |
-sets <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> <a href='SkMatrix_Reference#SkMatrix'>to</a>:
+sets <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> to:
| A B C | | J K L | | AJ+BM+CP AK+BN+CQ AL+BO+CR |
-<a href='SkMatrix_Reference#Matrix'>Matrix</a> * <a href='#SkMatrix_preConcat_other'>other</a> = | <a href='#SkMatrix_preConcat_other'>D</a> <a href='#SkMatrix_preConcat_other'>E</a> <a href='#SkMatrix_preConcat_other'>F</a> | * | <a href='#SkMatrix_preConcat_other'>M</a> <a href='#SkMatrix_preConcat_other'>N</a> <a href='#SkMatrix_preConcat_other'>O</a> | = | <a href='#SkMatrix_preConcat_other'>DJ</a>+<a href='#SkMatrix_preConcat_other'>EM</a>+<a href='#SkMatrix_preConcat_other'>FP</a> <a href='#SkMatrix_preConcat_other'>DK</a>+<a href='#SkMatrix_preConcat_other'>EN</a>+<a href='#SkMatrix_preConcat_other'>FQ</a> <a href='#SkMatrix_preConcat_other'>DL</a>+<a href='#SkMatrix_preConcat_other'>EO</a>+<a href='#SkMatrix_preConcat_other'>FR</a> |
-| G H <a href='#SkMatrix_I'>I</a> | | <a href='#SkMatrix_I'>P</a> <a href='#SkMatrix_I'>Q</a> <a href='#SkMatrix_I'>R</a> | | <a href='#SkMatrix_I'>GJ</a>+<a href='#SkMatrix_I'>HM</a>+<a href='#SkMatrix_I'>IP</a> <a href='#SkMatrix_I'>GK</a>+<a href='#SkMatrix_I'>HN</a>+<a href='#SkMatrix_I'>IQ</a> <a href='#SkMatrix_I'>GL</a>+<a href='#SkMatrix_I'>HO</a>+<a href='#SkMatrix_I'>IR</a> |
+<a href='SkMatrix_Reference#Matrix'>Matrix</a> * <a href='#SkMatrix_preConcat_other'>other</a> = | D E F | * | M N O | = | DJ+EM+FP DK+EN+FQ DL+EO+FR |
+| G H <a href='#SkMatrix_I'>I</a> | | P Q R | | GJ+HM+IP GK+HN+IQ GL+HO+IR |
### Parameters
<table> <tr> <td><a name='SkMatrix_preConcat_other'><code><strong>other</strong></code></a></td>
- <td><a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> <a href='SkMatrix_Reference#SkMatrix'>on</a> <a href='SkMatrix_Reference#SkMatrix'>right side</a> <a href='SkMatrix_Reference#SkMatrix'>of</a> <a href='SkMatrix_Reference#SkMatrix'>multiply</a> <a href='SkMatrix_Reference#SkMatrix'>expression</a></td>
+ <td><a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> on right side of multiply expression</td>
</tr>
</table>
### Example
-<div><fiddle-embed name="b07e62298e7b0ab5683db199faffceb2"><div><a href='#SkMatrix_setPolyToPoly'>setPolyToPoly</a> <a href='#SkMatrix_setPolyToPoly'>creates</a> <a href='#SkMatrix_setPolyToPoly'>perspective</a> <a href='SkMatrix_Reference#Matrix'>matrices</a>, <a href='SkMatrix_Reference#Matrix'>one</a> <a href='SkMatrix_Reference#Matrix'>the</a> <a href='SkMatrix_Reference#Matrix'>inverse</a> <a href='SkMatrix_Reference#Matrix'>of</a> <a href='SkMatrix_Reference#Matrix'>the</a> <a href='#SkMatrix_preConcat_other'>other</a>.
-<a href='#SkMatrix_preConcat_other'>Multiplying</a> <a href='#SkMatrix_preConcat_other'>the</a> <a href='SkMatrix_Reference#Matrix'>matrix</a> <a href='SkMatrix_Reference#Matrix'>by</a> <a href='SkMatrix_Reference#Matrix'>its</a> <a href='SkMatrix_Reference#Matrix'>inverse</a> <a href='SkMatrix_Reference#Matrix'>turns</a> <a href='SkMatrix_Reference#Matrix'>into</a> <a href='SkMatrix_Reference#Matrix'>an</a> <a href='SkMatrix_Reference#Matrix'>identity</a> <a href='SkMatrix_Reference#Matrix'>matrix</a>.
+<div><fiddle-embed name="b07e62298e7b0ab5683db199faffceb2"><div><a href='#SkMatrix_setPolyToPoly'>setPolyToPoly</a> creates perspective <a href='SkMatrix_Reference#Matrix'>matrices</a>, one the inverse of the <a href='#SkMatrix_preConcat_other'>other</a>.
+Multiplying the <a href='SkMatrix_Reference#Matrix'>matrix</a> by its inverse turns into an identity <a href='SkMatrix_Reference#Matrix'>matrix</a>.
</div></fiddle-embed></div>
### See Also
@@ -2443,22 +2443,22 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-void <a href='#SkMatrix_postTranslate'>postTranslate</a>(<a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>dx</a>, <a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>dy</a>)
+void <a href='#SkMatrix_postTranslate'>postTranslate</a>(<a href='undocumented#SkScalar'>SkScalar</a> dx, <a href='undocumented#SkScalar'>SkScalar</a> dy)
</pre>
-Sets <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> <a href='SkMatrix_Reference#SkMatrix'>to</a> <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> <a href='SkMatrix_Reference#SkMatrix'>constructed</a> <a href='SkMatrix_Reference#SkMatrix'>from</a> <a href='SkMatrix_Reference#SkMatrix'>translation</a> (<a href='#SkMatrix_postTranslate_dx'>dx</a>, <a href='#SkMatrix_postTranslate_dy'>dy</a>) <a href='#SkMatrix_postTranslate_dy'>multiplied</a> <a href='#SkMatrix_postTranslate_dy'>by</a> <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a>.
-This can be thought of as moving the <a href='SkPoint_Reference#Point'>point</a> <a href='SkPoint_Reference#Point'>to</a> <a href='SkPoint_Reference#Point'>be</a> <a href='SkPoint_Reference#Point'>mapped</a> <a href='SkPoint_Reference#Point'>after</a> <a href='SkPoint_Reference#Point'>applying</a> <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a>.
+Sets <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> to <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> constructed from translation (<a href='#SkMatrix_postTranslate_dx'>dx</a>, <a href='#SkMatrix_postTranslate_dy'>dy</a>) multiplied by <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a>.
+This can be thought of as moving the <a href='SkPoint_Reference#Point'>point</a> to be mapped after applying <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a>.
Given:
| J K L | | 1 0 <a href='#SkMatrix_postTranslate_dx'>dx</a> |
-<a href='SkMatrix_Reference#Matrix'>Matrix</a> = | <a href='SkMatrix_Reference#Matrix'>M</a> <a href='SkMatrix_Reference#Matrix'>N</a> <a href='SkMatrix_Reference#Matrix'>O</a> |, <a href='SkMatrix_Reference#Matrix'>T</a>(<a href='#SkMatrix_postTranslate_dx'>dx</a>, <a href='#SkMatrix_postTranslate_dy'>dy</a>) = | 0 1 <a href='#SkMatrix_postTranslate_dy'>dy</a> |
+<a href='SkMatrix_Reference#Matrix'>Matrix</a> = | M N O |, T(<a href='#SkMatrix_postTranslate_dx'>dx</a>, <a href='#SkMatrix_postTranslate_dy'>dy</a>) = | 0 1 <a href='#SkMatrix_postTranslate_dy'>dy</a> |
| P Q R | | 0 0 1 |
-sets <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> <a href='SkMatrix_Reference#SkMatrix'>to</a>:
+sets <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> to:
-| 1 0 <a href='#SkMatrix_postTranslate_dx'>dx</a> | | <a href='#SkMatrix_postTranslate_dx'>J</a> <a href='#SkMatrix_postTranslate_dx'>K</a> <a href='#SkMatrix_postTranslate_dx'>L</a> | | <a href='#SkMatrix_postTranslate_dx'>J</a>+<a href='#SkMatrix_postTranslate_dx'>dx</a>*<a href='#SkMatrix_postTranslate_dx'>P</a> <a href='#SkMatrix_postTranslate_dx'>K</a>+<a href='#SkMatrix_postTranslate_dx'>dx</a>*<a href='#SkMatrix_postTranslate_dx'>Q</a> <a href='#SkMatrix_postTranslate_dx'>L</a>+<a href='#SkMatrix_postTranslate_dx'>dx</a>*<a href='#SkMatrix_postTranslate_dx'>R</a> |
-T(<a href='#SkMatrix_postTranslate_dx'>dx</a>, <a href='#SkMatrix_postTranslate_dy'>dy</a>) * <a href='SkMatrix_Reference#Matrix'>Matrix</a> = | 0 1 <a href='#SkMatrix_postTranslate_dy'>dy</a> | | <a href='#SkMatrix_postTranslate_dy'>M</a> <a href='#SkMatrix_postTranslate_dy'>N</a> <a href='#SkMatrix_postTranslate_dy'>O</a> | = | <a href='#SkMatrix_postTranslate_dy'>M</a>+<a href='#SkMatrix_postTranslate_dy'>dy</a>*<a href='#SkMatrix_postTranslate_dy'>P</a> <a href='#SkMatrix_postTranslate_dy'>N</a>+<a href='#SkMatrix_postTranslate_dy'>dy</a>*<a href='#SkMatrix_postTranslate_dy'>Q</a> <a href='#SkMatrix_postTranslate_dy'>O</a>+<a href='#SkMatrix_postTranslate_dy'>dy</a>*<a href='#SkMatrix_postTranslate_dy'>R</a> |
+| 1 0 <a href='#SkMatrix_postTranslate_dx'>dx</a> | | J K L | | J+<a href='#SkMatrix_postTranslate_dx'>dx</a>*P K+<a href='#SkMatrix_postTranslate_dx'>dx</a>*Q L+<a href='#SkMatrix_postTranslate_dx'>dx</a>*R |
+T(<a href='#SkMatrix_postTranslate_dx'>dx</a>, <a href='#SkMatrix_postTranslate_dy'>dy</a>) * <a href='SkMatrix_Reference#Matrix'>Matrix</a> = | 0 1 <a href='#SkMatrix_postTranslate_dy'>dy</a> | | M N O | = | M+<a href='#SkMatrix_postTranslate_dy'>dy</a>*P N+<a href='#SkMatrix_postTranslate_dy'>dy</a>*Q O+<a href='#SkMatrix_postTranslate_dy'>dy</a>*R |
| 0 0 1 | | P Q R | | P Q R |
### Parameters
@@ -2473,7 +2473,7 @@
### Example
-<div><fiddle-embed name="f5144ef4bd7cea294fad2f756ed335af"><div>Compare with <a href='#SkMatrix_preTranslate'>preTranslate</a> <a href='#SkMatrix_preTranslate'>example</a>.
+<div><fiddle-embed name="f5144ef4bd7cea294fad2f756ed335af"><div>Compare with <a href='#SkMatrix_preTranslate'>preTranslate</a> example.
</div></fiddle-embed></div>
### See Also
@@ -2485,17 +2485,17 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-void <a href='#SkMatrix_postScale'>postScale</a>(<a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>sx</a>, <a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>sy</a>, <a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>px</a>, <a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>py</a>)
+void <a href='#SkMatrix_postScale'>postScale</a>(<a href='undocumented#SkScalar'>SkScalar</a> sx, <a href='undocumented#SkScalar'>SkScalar</a> sy, <a href='undocumented#SkScalar'>SkScalar</a> px, <a href='undocumented#SkScalar'>SkScalar</a> py)
</pre>
-Sets <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> <a href='SkMatrix_Reference#SkMatrix'>to</a> <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> <a href='SkMatrix_Reference#SkMatrix'>constructed</a> <a href='SkMatrix_Reference#SkMatrix'>from</a> <a href='SkMatrix_Reference#SkMatrix'>scaling</a> <a href='SkMatrix_Reference#SkMatrix'>by</a> (<a href='#SkMatrix_postScale_sx'>sx</a>, <a href='#SkMatrix_postScale_sy'>sy</a>) <a href='#SkMatrix_postScale_sy'>about</a> <a href='#SkMatrix_postScale_sy'>pivot</a> <a href='SkPoint_Reference#Point'>point</a>
-(<a href='#SkMatrix_postScale_px'>px</a>, <a href='#SkMatrix_postScale_py'>py</a>), <a href='#SkMatrix_postScale_py'>multiplied</a> <a href='#SkMatrix_postScale_py'>by</a> <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a>.
-This can be thought of as scaling about a pivot <a href='SkPoint_Reference#Point'>point</a> <a href='SkPoint_Reference#Point'>after</a> <a href='SkPoint_Reference#Point'>applying</a> <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a>.
+Sets <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> to <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> constructed from scaling by (<a href='#SkMatrix_postScale_sx'>sx</a>, <a href='#SkMatrix_postScale_sy'>sy</a>) about pivot <a href='SkPoint_Reference#Point'>point</a>
+(<a href='#SkMatrix_postScale_px'>px</a>, <a href='#SkMatrix_postScale_py'>py</a>), multiplied by <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a>.
+This can be thought of as scaling about a pivot <a href='SkPoint_Reference#Point'>point</a> after applying <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a>.
Given:
-| J K L | | <a href='#SkMatrix_postScale_sx'>sx</a> 0 <a href='#SkMatrix_postScale_sx'>dx</a> |
-<a href='SkMatrix_Reference#Matrix'>Matrix</a> = | <a href='SkMatrix_Reference#Matrix'>M</a> <a href='SkMatrix_Reference#Matrix'>N</a> <a href='SkMatrix_Reference#Matrix'>O</a> |, <a href='SkMatrix_Reference#Matrix'>S</a>(<a href='#SkMatrix_postScale_sx'>sx</a>, <a href='#SkMatrix_postScale_sy'>sy</a>, <a href='#SkMatrix_postScale_px'>px</a>, <a href='#SkMatrix_postScale_py'>py</a>) = | 0 <a href='#SkMatrix_postScale_sy'>sy</a> <a href='#SkMatrix_postScale_sy'>dy</a> |
+| J K L | | <a href='#SkMatrix_postScale_sx'>sx</a> 0 dx |
+<a href='SkMatrix_Reference#Matrix'>Matrix</a> = | M N O |, S(<a href='#SkMatrix_postScale_sx'>sx</a>, <a href='#SkMatrix_postScale_sy'>sy</a>, <a href='#SkMatrix_postScale_px'>px</a>, <a href='#SkMatrix_postScale_py'>py</a>) = | 0 <a href='#SkMatrix_postScale_sy'>sy</a> dy |
| P Q R | | 0 0 1 |
where
@@ -2503,10 +2503,10 @@
dx = <a href='#SkMatrix_postScale_px'>px</a> - <a href='#SkMatrix_postScale_sx'>sx</a> * <a href='#SkMatrix_postScale_px'>px</a>
dy = <a href='#SkMatrix_postScale_py'>py</a> - <a href='#SkMatrix_postScale_sy'>sy</a> * <a href='#SkMatrix_postScale_py'>py</a>
-sets <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> <a href='SkMatrix_Reference#SkMatrix'>to</a>:
+sets <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> to:
-| <a href='#SkMatrix_postScale_sx'>sx</a> 0 <a href='#SkMatrix_postScale_sx'>dx</a> | | <a href='#SkMatrix_postScale_sx'>J</a> <a href='#SkMatrix_postScale_sx'>K</a> <a href='#SkMatrix_postScale_sx'>L</a> | | <a href='#SkMatrix_postScale_sx'>sx</a>*<a href='#SkMatrix_postScale_sx'>J</a>+<a href='#SkMatrix_postScale_sx'>dx</a>*<a href='#SkMatrix_postScale_sx'>P</a> <a href='#SkMatrix_postScale_sx'>sx</a>*<a href='#SkMatrix_postScale_sx'>K</a>+<a href='#SkMatrix_postScale_sx'>dx</a>*<a href='#SkMatrix_postScale_sx'>Q</a> <a href='#SkMatrix_postScale_sx'>sx</a>*<a href='#SkMatrix_postScale_sx'>L</a>+<a href='#SkMatrix_postScale_sx'>dx</a>+<a href='#SkMatrix_postScale_sx'>R</a> |
-S(<a href='#SkMatrix_postScale_sx'>sx</a>, <a href='#SkMatrix_postScale_sy'>sy</a>, <a href='#SkMatrix_postScale_px'>px</a>, <a href='#SkMatrix_postScale_py'>py</a>) * <a href='SkMatrix_Reference#Matrix'>Matrix</a> = | 0 <a href='#SkMatrix_postScale_sy'>sy</a> <a href='#SkMatrix_postScale_sy'>dy</a> | | <a href='#SkMatrix_postScale_sy'>M</a> <a href='#SkMatrix_postScale_sy'>N</a> <a href='#SkMatrix_postScale_sy'>O</a> | = | <a href='#SkMatrix_postScale_sy'>sy</a>*<a href='#SkMatrix_postScale_sy'>M</a>+<a href='#SkMatrix_postScale_sy'>dy</a>*<a href='#SkMatrix_postScale_sy'>P</a> <a href='#SkMatrix_postScale_sy'>sy</a>*<a href='#SkMatrix_postScale_sy'>N</a>+<a href='#SkMatrix_postScale_sy'>dy</a>*<a href='#SkMatrix_postScale_sy'>Q</a> <a href='#SkMatrix_postScale_sy'>sy</a>*<a href='#SkMatrix_postScale_sy'>O</a>+<a href='#SkMatrix_postScale_sy'>dy</a>*<a href='#SkMatrix_postScale_sy'>R</a> |
+| <a href='#SkMatrix_postScale_sx'>sx</a> 0 dx | | J K L | | <a href='#SkMatrix_postScale_sx'>sx</a>*J+dx*P <a href='#SkMatrix_postScale_sx'>sx</a>*K+dx*Q <a href='#SkMatrix_postScale_sx'>sx</a>*L+dx+R |
+S(<a href='#SkMatrix_postScale_sx'>sx</a>, <a href='#SkMatrix_postScale_sy'>sy</a>, <a href='#SkMatrix_postScale_px'>px</a>, <a href='#SkMatrix_postScale_py'>py</a>) * <a href='SkMatrix_Reference#Matrix'>Matrix</a> = | 0 <a href='#SkMatrix_postScale_sy'>sy</a> dy | | M N O | = | <a href='#SkMatrix_postScale_sy'>sy</a>*M+dy*P <a href='#SkMatrix_postScale_sy'>sy</a>*N+dy*Q <a href='#SkMatrix_postScale_sy'>sy</a>*O+dy*R |
| 0 0 1 | | P Q R | | P Q R |
### Parameters
@@ -2538,23 +2538,23 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-void <a href='#SkMatrix_postScale'>postScale</a>(<a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>sx</a>, <a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>sy</a>)
+void <a href='#SkMatrix_postScale'>postScale</a>(<a href='undocumented#SkScalar'>SkScalar</a> sx, <a href='undocumented#SkScalar'>SkScalar</a> sy)
</pre>
-Sets <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> <a href='SkMatrix_Reference#SkMatrix'>to</a> <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> <a href='SkMatrix_Reference#SkMatrix'>constructed</a> <a href='SkMatrix_Reference#SkMatrix'>from</a> <a href='SkMatrix_Reference#SkMatrix'>scaling</a> <a href='SkMatrix_Reference#SkMatrix'>by</a> (<a href='#SkMatrix_postScale_2_sx'>sx</a>, <a href='#SkMatrix_postScale_2_sy'>sy</a>) <a href='#SkMatrix_postScale_2_sy'>about</a> <a href='#SkMatrix_postScale_2_sy'>pivot</a> <a href='SkPoint_Reference#Point'>point</a>
+Sets <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> to <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> constructed from scaling by (<a href='#SkMatrix_postScale_2_sx'>sx</a>, <a href='#SkMatrix_postScale_2_sy'>sy</a>) about pivot <a href='SkPoint_Reference#Point'>point</a>
(0, 0), multiplied by <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a>.
This can be thought of as scaling about the origin after applying <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a>.
Given:
| J K L | | <a href='#SkMatrix_postScale_2_sx'>sx</a> 0 0 |
-<a href='SkMatrix_Reference#Matrix'>Matrix</a> = | <a href='SkMatrix_Reference#Matrix'>M</a> <a href='SkMatrix_Reference#Matrix'>N</a> <a href='SkMatrix_Reference#Matrix'>O</a> |, <a href='SkMatrix_Reference#Matrix'>S</a>(<a href='#SkMatrix_postScale_2_sx'>sx</a>, <a href='#SkMatrix_postScale_2_sy'>sy</a>) = | 0 <a href='#SkMatrix_postScale_2_sy'>sy</a> 0 |
+<a href='SkMatrix_Reference#Matrix'>Matrix</a> = | M N O |, S(<a href='#SkMatrix_postScale_2_sx'>sx</a>, <a href='#SkMatrix_postScale_2_sy'>sy</a>) = | 0 <a href='#SkMatrix_postScale_2_sy'>sy</a> 0 |
| P Q R | | 0 0 1 |
-sets <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> <a href='SkMatrix_Reference#SkMatrix'>to</a>:
+sets <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> to:
-| <a href='#SkMatrix_postScale_2_sx'>sx</a> 0 0 | | <a href='#SkMatrix_postScale_2_sx'>J</a> <a href='#SkMatrix_postScale_2_sx'>K</a> <a href='#SkMatrix_postScale_2_sx'>L</a> | | <a href='#SkMatrix_postScale_2_sx'>sx</a>*<a href='#SkMatrix_postScale_2_sx'>J</a> <a href='#SkMatrix_postScale_2_sx'>sx</a>*<a href='#SkMatrix_postScale_2_sx'>K</a> <a href='#SkMatrix_postScale_2_sx'>sx</a>*<a href='#SkMatrix_postScale_2_sx'>L</a> |
-S(<a href='#SkMatrix_postScale_2_sx'>sx</a>, <a href='#SkMatrix_postScale_2_sy'>sy</a>) * <a href='SkMatrix_Reference#Matrix'>Matrix</a> = | 0 <a href='#SkMatrix_postScale_2_sy'>sy</a> 0 | | <a href='#SkMatrix_postScale_2_sy'>M</a> <a href='#SkMatrix_postScale_2_sy'>N</a> <a href='#SkMatrix_postScale_2_sy'>O</a> | = | <a href='#SkMatrix_postScale_2_sy'>sy</a>*<a href='#SkMatrix_postScale_2_sy'>M</a> <a href='#SkMatrix_postScale_2_sy'>sy</a>*<a href='#SkMatrix_postScale_2_sy'>N</a> <a href='#SkMatrix_postScale_2_sy'>sy</a>*<a href='#SkMatrix_postScale_2_sy'>O</a> |
+| <a href='#SkMatrix_postScale_2_sx'>sx</a> 0 0 | | J K L | | <a href='#SkMatrix_postScale_2_sx'>sx</a>*J <a href='#SkMatrix_postScale_2_sx'>sx</a>*K <a href='#SkMatrix_postScale_2_sx'>sx</a>*L |
+S(<a href='#SkMatrix_postScale_2_sx'>sx</a>, <a href='#SkMatrix_postScale_2_sy'>sy</a>) * <a href='SkMatrix_Reference#Matrix'>Matrix</a> = | 0 <a href='#SkMatrix_postScale_2_sy'>sy</a> 0 | | M N O | = | <a href='#SkMatrix_postScale_2_sy'>sy</a>*M <a href='#SkMatrix_postScale_2_sy'>sy</a>*N <a href='#SkMatrix_postScale_2_sy'>sy</a>*O |
| 0 0 1 | | P Q R | | P Q R |
### Parameters
@@ -2580,15 +2580,15 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-bool <a href='#SkMatrix_postIDiv'>postIDiv</a>(<a href='#SkMatrix_postIDiv'>int</a> <a href='#SkMatrix_postIDiv'>divx</a>, <a href='#SkMatrix_postIDiv'>int</a> <a href='#SkMatrix_postIDiv'>divy</a>)
+bool <a href='#SkMatrix_postIDiv'>postIDiv</a>(int divx, int divy)
</pre>
-Sets <a href='SkMatrix_Reference#Matrix'>Matrix</a> <a href='SkMatrix_Reference#Matrix'>to</a> <a href='SkMatrix_Reference#Matrix'>Matrix</a> <a href='SkMatrix_Reference#Matrix'>constructed</a> <a href='SkMatrix_Reference#Matrix'>from</a> <a href='SkMatrix_Reference#Matrix'>scaling</a> <a href='SkMatrix_Reference#Matrix'>by</a> (1/<a href='#SkMatrix_postIDiv_divx'>divx</a>, 1/<a href='#SkMatrix_postIDiv_divy'>divy</a>),
-<a href='#SkMatrix_postIDiv_divy'>multiplied</a> <a href='#SkMatrix_postIDiv_divy'>by</a> <a href='SkMatrix_Reference#Matrix'>Matrix</a>.
+Sets <a href='SkMatrix_Reference#Matrix'>Matrix</a> to <a href='SkMatrix_Reference#Matrix'>Matrix</a> constructed from scaling by (1/<a href='#SkMatrix_postIDiv_divx'>divx</a>, 1/<a href='#SkMatrix_postIDiv_divy'>divy</a>),
+multiplied by <a href='SkMatrix_Reference#Matrix'>Matrix</a>.
-<a href='SkMatrix_Reference#Matrix'>Returns</a> <a href='SkMatrix_Reference#Matrix'>false</a> <a href='SkMatrix_Reference#Matrix'>if</a> <a href='SkMatrix_Reference#Matrix'>either</a> <a href='#SkMatrix_postIDiv_divx'>divx</a> <a href='#SkMatrix_postIDiv_divx'>or</a> <a href='#SkMatrix_postIDiv_divy'>divy</a> <a href='#SkMatrix_postIDiv_divy'>is</a> <a href='#SkMatrix_postIDiv_divy'>zero</a>.
+Returns false if either <a href='#SkMatrix_postIDiv_divx'>divx</a> or <a href='#SkMatrix_postIDiv_divy'>divy</a> is zero.
-<a href='#SkMatrix_postIDiv_divy'>Given</a>:
+Given:
<pre style="padding: 1em 1em 1em 1em;width: 62.5em; background-color: #f0f0f0">
| J K L | | sx 0 0 |
@@ -2603,7 +2603,7 @@
sy = 1 / divy
</pre>
-sets <a href='SkMatrix_Reference#Matrix'>Matrix</a> <a href='SkMatrix_Reference#Matrix'>to</a>:
+sets <a href='SkMatrix_Reference#Matrix'>Matrix</a> to:
<pre style="padding: 1em 1em 1em 1em;width: 62.5em; background-color: #f0f0f0">
| sx 0 0 | | J K L | | sx*J sx*K sx*L |
@@ -2638,32 +2638,32 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-void <a href='#SkMatrix_postRotate'>postRotate</a>(<a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>degrees</a>, <a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>px</a>, <a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>py</a>)
+void <a href='#SkMatrix_postRotate'>postRotate</a>(<a href='undocumented#SkScalar'>SkScalar</a> degrees, <a href='undocumented#SkScalar'>SkScalar</a> px, <a href='undocumented#SkScalar'>SkScalar</a> py)
</pre>
-Sets <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> <a href='SkMatrix_Reference#SkMatrix'>to</a> <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> <a href='SkMatrix_Reference#SkMatrix'>constructed</a> <a href='SkMatrix_Reference#SkMatrix'>from</a> <a href='SkMatrix_Reference#SkMatrix'>rotating</a> <a href='SkMatrix_Reference#SkMatrix'>by</a> <a href='#SkMatrix_postRotate_degrees'>degrees</a> <a href='#SkMatrix_postRotate_degrees'>about</a> <a href='#SkMatrix_postRotate_degrees'>pivot</a> <a href='SkPoint_Reference#Point'>point</a>
-(<a href='#SkMatrix_postRotate_px'>px</a>, <a href='#SkMatrix_postRotate_py'>py</a>), <a href='#SkMatrix_postRotate_py'>multiplied</a> <a href='#SkMatrix_postRotate_py'>by</a> <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a>.
-This can be thought of as rotating about a pivot <a href='SkPoint_Reference#Point'>point</a> <a href='SkPoint_Reference#Point'>after</a> <a href='SkPoint_Reference#Point'>applying</a> <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a>.
+Sets <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> to <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> constructed from rotating by <a href='#SkMatrix_postRotate_degrees'>degrees</a> about pivot <a href='SkPoint_Reference#Point'>point</a>
+(<a href='#SkMatrix_postRotate_px'>px</a>, <a href='#SkMatrix_postRotate_py'>py</a>), multiplied by <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a>.
+This can be thought of as rotating about a pivot <a href='SkPoint_Reference#Point'>point</a> after applying <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a>.
-Positive <a href='#SkMatrix_postRotate_degrees'>degrees</a> <a href='#SkMatrix_postRotate_degrees'>rotates</a> <a href='#SkMatrix_postRotate_degrees'>clockwise</a>.
+Positive <a href='#SkMatrix_postRotate_degrees'>degrees</a> rotates clockwise.
Given:
| J K L | | c -s dx |
-<a href='SkMatrix_Reference#Matrix'>Matrix</a> = | <a href='SkMatrix_Reference#Matrix'>M</a> <a href='SkMatrix_Reference#Matrix'>N</a> <a href='SkMatrix_Reference#Matrix'>O</a> |, <a href='SkMatrix_Reference#Matrix'>R</a>(<a href='#SkMatrix_postRotate_degrees'>degrees</a>, <a href='#SkMatrix_postRotate_px'>px</a>, <a href='#SkMatrix_postRotate_py'>py</a>) = | <a href='#SkMatrix_postRotate_py'>s</a> <a href='#SkMatrix_postRotate_py'>c</a> <a href='#SkMatrix_postRotate_py'>dy</a> |
+<a href='SkMatrix_Reference#Matrix'>Matrix</a> = | M N O |, R(<a href='#SkMatrix_postRotate_degrees'>degrees</a>, <a href='#SkMatrix_postRotate_px'>px</a>, <a href='#SkMatrix_postRotate_py'>py</a>) = | s c dy |
| P Q R | | 0 0 1 |
where
c = cos(<a href='#SkMatrix_postRotate_degrees'>degrees</a>)
s = sin(<a href='#SkMatrix_postRotate_degrees'>degrees</a>)
-dx = s * <a href='#SkMatrix_postRotate_py'>py</a> + (1 - <a href='#SkMatrix_postRotate_py'>c</a>) * <a href='#SkMatrix_postRotate_px'>px</a>
-dy = -s * <a href='#SkMatrix_postRotate_px'>px</a> + (1 - <a href='#SkMatrix_postRotate_px'>c</a>) * <a href='#SkMatrix_postRotate_py'>py</a>
+dx = s * <a href='#SkMatrix_postRotate_py'>py</a> + (1 - c) * <a href='#SkMatrix_postRotate_px'>px</a>
+dy = -s * <a href='#SkMatrix_postRotate_px'>px</a> + (1 - c) * <a href='#SkMatrix_postRotate_py'>py</a>
-sets <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> <a href='SkMatrix_Reference#SkMatrix'>to</a>:
+sets <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> to:
|c -s dx| |J K L| |cJ-sM+dx*P cK-sN+dx*Q cL-sO+dx+R|
-R(<a href='#SkMatrix_postRotate_degrees'>degrees</a>, <a href='#SkMatrix_postRotate_px'>px</a>, <a href='#SkMatrix_postRotate_py'>py</a>) * <a href='SkMatrix_Reference#Matrix'>Matrix</a> = |<a href='SkMatrix_Reference#Matrix'>s</a> <a href='SkMatrix_Reference#Matrix'>c</a> <a href='SkMatrix_Reference#Matrix'>dy</a>| |<a href='SkMatrix_Reference#Matrix'>M</a> <a href='SkMatrix_Reference#Matrix'>N</a> <a href='SkMatrix_Reference#Matrix'>O</a>| = |<a href='SkMatrix_Reference#Matrix'>sJ</a>+<a href='SkMatrix_Reference#Matrix'>cM</a>+<a href='SkMatrix_Reference#Matrix'>dy</a>*<a href='SkMatrix_Reference#Matrix'>P</a> <a href='SkMatrix_Reference#Matrix'>sK</a>+<a href='SkMatrix_Reference#Matrix'>cN</a>+<a href='SkMatrix_Reference#Matrix'>dy</a>*<a href='SkMatrix_Reference#Matrix'>Q</a> <a href='SkMatrix_Reference#Matrix'>sL</a>+<a href='SkMatrix_Reference#Matrix'>cO</a>+<a href='SkMatrix_Reference#Matrix'>dy</a>*<a href='SkMatrix_Reference#Matrix'>R</a>|
+R(<a href='#SkMatrix_postRotate_degrees'>degrees</a>, <a href='#SkMatrix_postRotate_px'>px</a>, <a href='#SkMatrix_postRotate_py'>py</a>) * <a href='SkMatrix_Reference#Matrix'>Matrix</a> = |s c dy| |M N O| = |sJ+cM+dy*P sK+cN+dy*Q sL+cO+dy*R|
|0 0 1| |P Q R| | P Q R|
### Parameters
@@ -2692,19 +2692,19 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-void <a href='#SkMatrix_postRotate'>postRotate</a>(<a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>degrees</a>)
+void <a href='#SkMatrix_postRotate'>postRotate</a>(<a href='undocumented#SkScalar'>SkScalar</a> degrees)
</pre>
-Sets <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> <a href='SkMatrix_Reference#SkMatrix'>to</a> <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> <a href='SkMatrix_Reference#SkMatrix'>constructed</a> <a href='SkMatrix_Reference#SkMatrix'>from</a> <a href='SkMatrix_Reference#SkMatrix'>rotating</a> <a href='SkMatrix_Reference#SkMatrix'>by</a> <a href='#SkMatrix_postRotate_2_degrees'>degrees</a> <a href='#SkMatrix_postRotate_2_degrees'>about</a> <a href='#SkMatrix_postRotate_2_degrees'>pivot</a> <a href='SkPoint_Reference#Point'>point</a>
+Sets <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> to <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> constructed from rotating by <a href='#SkMatrix_postRotate_2_degrees'>degrees</a> about pivot <a href='SkPoint_Reference#Point'>point</a>
(0, 0), multiplied by <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a>.
This can be thought of as rotating about the origin after applying <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a>.
-Positive <a href='#SkMatrix_postRotate_2_degrees'>degrees</a> <a href='#SkMatrix_postRotate_2_degrees'>rotates</a> <a href='#SkMatrix_postRotate_2_degrees'>clockwise</a>.
+Positive <a href='#SkMatrix_postRotate_2_degrees'>degrees</a> rotates clockwise.
Given:
| J K L | | c -s 0 |
-<a href='SkMatrix_Reference#Matrix'>Matrix</a> = | <a href='SkMatrix_Reference#Matrix'>M</a> <a href='SkMatrix_Reference#Matrix'>N</a> <a href='SkMatrix_Reference#Matrix'>O</a> |, <a href='SkMatrix_Reference#Matrix'>R</a>(<a href='#SkMatrix_postRotate_2_degrees'>degrees</a>, <a href='#SkMatrix_postRotate_2_degrees'>px</a>, <a href='#SkMatrix_postRotate_2_degrees'>py</a>) = | <a href='#SkMatrix_postRotate_2_degrees'>s</a> <a href='#SkMatrix_postRotate_2_degrees'>c</a> 0 |
+<a href='SkMatrix_Reference#Matrix'>Matrix</a> = | M N O |, R(<a href='#SkMatrix_postRotate_2_degrees'>degrees</a>, px, py) = | s c 0 |
| P Q R | | 0 0 1 |
where
@@ -2712,10 +2712,10 @@
c = cos(<a href='#SkMatrix_postRotate_2_degrees'>degrees</a>)
s = sin(<a href='#SkMatrix_postRotate_2_degrees'>degrees</a>)
-sets <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> <a href='SkMatrix_Reference#SkMatrix'>to</a>:
+sets <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> to:
| c -s dx | | J K L | | cJ-sM cK-sN cL-sO |
-R(<a href='#SkMatrix_postRotate_2_degrees'>degrees</a>, <a href='#SkMatrix_postRotate_2_degrees'>px</a>, <a href='#SkMatrix_postRotate_2_degrees'>py</a>) * <a href='SkMatrix_Reference#Matrix'>Matrix</a> = | <a href='SkMatrix_Reference#Matrix'>s</a> <a href='SkMatrix_Reference#Matrix'>c</a> <a href='SkMatrix_Reference#Matrix'>dy</a> | | <a href='SkMatrix_Reference#Matrix'>M</a> <a href='SkMatrix_Reference#Matrix'>N</a> <a href='SkMatrix_Reference#Matrix'>O</a> | = | <a href='SkMatrix_Reference#Matrix'>sJ</a>+<a href='SkMatrix_Reference#Matrix'>cM</a> <a href='SkMatrix_Reference#Matrix'>sK</a>+<a href='SkMatrix_Reference#Matrix'>cN</a> <a href='SkMatrix_Reference#Matrix'>sL</a>+<a href='SkMatrix_Reference#Matrix'>cO</a> |
+R(<a href='#SkMatrix_postRotate_2_degrees'>degrees</a>, px, py) * <a href='SkMatrix_Reference#Matrix'>Matrix</a> = | s c dy | | M N O | = | sJ+cM sK+cN sL+cO |
| 0 0 1 | | P Q R | | P Q R |
### Parameters
@@ -2738,17 +2738,17 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-void <a href='#SkMatrix_postSkew'>postSkew</a>(<a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>kx</a>, <a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>ky</a>, <a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>px</a>, <a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>py</a>)
+void <a href='#SkMatrix_postSkew'>postSkew</a>(<a href='undocumented#SkScalar'>SkScalar</a> kx, <a href='undocumented#SkScalar'>SkScalar</a> ky, <a href='undocumented#SkScalar'>SkScalar</a> px, <a href='undocumented#SkScalar'>SkScalar</a> py)
</pre>
-Sets <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> <a href='SkMatrix_Reference#SkMatrix'>to</a> <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> <a href='SkMatrix_Reference#SkMatrix'>constructed</a> <a href='SkMatrix_Reference#SkMatrix'>from</a> <a href='SkMatrix_Reference#SkMatrix'>skewing</a> <a href='SkMatrix_Reference#SkMatrix'>by</a> (<a href='#SkMatrix_postSkew_kx'>kx</a>, <a href='#SkMatrix_postSkew_ky'>ky</a>) <a href='#SkMatrix_postSkew_ky'>about</a> <a href='#SkMatrix_postSkew_ky'>pivot</a> <a href='SkPoint_Reference#Point'>point</a>
-(<a href='#SkMatrix_postSkew_px'>px</a>, <a href='#SkMatrix_postSkew_py'>py</a>), <a href='#SkMatrix_postSkew_py'>multiplied</a> <a href='#SkMatrix_postSkew_py'>by</a> <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a>.
-This can be thought of as skewing about a pivot <a href='SkPoint_Reference#Point'>point</a> <a href='SkPoint_Reference#Point'>after</a> <a href='SkPoint_Reference#Point'>applying</a> <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a>.
+Sets <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> to <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> constructed from skewing by (<a href='#SkMatrix_postSkew_kx'>kx</a>, <a href='#SkMatrix_postSkew_ky'>ky</a>) about pivot <a href='SkPoint_Reference#Point'>point</a>
+(<a href='#SkMatrix_postSkew_px'>px</a>, <a href='#SkMatrix_postSkew_py'>py</a>), multiplied by <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a>.
+This can be thought of as skewing about a pivot <a href='SkPoint_Reference#Point'>point</a> after applying <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a>.
Given:
-| J K L | | 1 <a href='#SkMatrix_postSkew_kx'>kx</a> <a href='#SkMatrix_postSkew_kx'>dx</a> |
-<a href='SkMatrix_Reference#Matrix'>Matrix</a> = | <a href='SkMatrix_Reference#Matrix'>M</a> <a href='SkMatrix_Reference#Matrix'>N</a> <a href='SkMatrix_Reference#Matrix'>O</a> |, <a href='SkMatrix_Reference#Matrix'>K</a>(<a href='#SkMatrix_postSkew_kx'>kx</a>, <a href='#SkMatrix_postSkew_ky'>ky</a>, <a href='#SkMatrix_postSkew_px'>px</a>, <a href='#SkMatrix_postSkew_py'>py</a>) = | <a href='#SkMatrix_postSkew_ky'>ky</a> 1 <a href='#SkMatrix_postSkew_ky'>dy</a> |
+| J K L | | 1 <a href='#SkMatrix_postSkew_kx'>kx</a> dx |
+<a href='SkMatrix_Reference#Matrix'>Matrix</a> = | M N O |, K(<a href='#SkMatrix_postSkew_kx'>kx</a>, <a href='#SkMatrix_postSkew_ky'>ky</a>, <a href='#SkMatrix_postSkew_px'>px</a>, <a href='#SkMatrix_postSkew_py'>py</a>) = | <a href='#SkMatrix_postSkew_ky'>ky</a> 1 dy |
| P Q R | | 0 0 1 |
where
@@ -2756,10 +2756,10 @@
dx = -<a href='#SkMatrix_postSkew_kx'>kx</a> * <a href='#SkMatrix_postSkew_py'>py</a>
dy = -<a href='#SkMatrix_postSkew_ky'>ky</a> * <a href='#SkMatrix_postSkew_px'>px</a>
-sets <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> <a href='SkMatrix_Reference#SkMatrix'>to</a>:
+sets <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> to:
-| 1 <a href='#SkMatrix_postSkew_kx'>kx</a> <a href='#SkMatrix_postSkew_kx'>dx</a>| |<a href='#SkMatrix_postSkew_kx'>J</a> <a href='#SkMatrix_postSkew_kx'>K</a> <a href='#SkMatrix_postSkew_kx'>L</a>| |<a href='#SkMatrix_postSkew_kx'>J</a>+<a href='#SkMatrix_postSkew_kx'>kx</a>*<a href='#SkMatrix_postSkew_kx'>M</a>+<a href='#SkMatrix_postSkew_kx'>dx</a>*<a href='#SkMatrix_postSkew_kx'>P</a> <a href='#SkMatrix_postSkew_kx'>K</a>+<a href='#SkMatrix_postSkew_kx'>kx</a>*<a href='#SkMatrix_postSkew_kx'>N</a>+<a href='#SkMatrix_postSkew_kx'>dx</a>*<a href='#SkMatrix_postSkew_kx'>Q</a> <a href='#SkMatrix_postSkew_kx'>L</a>+<a href='#SkMatrix_postSkew_kx'>kx</a>*<a href='#SkMatrix_postSkew_kx'>O</a>+<a href='#SkMatrix_postSkew_kx'>dx</a>+<a href='#SkMatrix_postSkew_kx'>R</a>|
-K(<a href='#SkMatrix_postSkew_kx'>kx</a>, <a href='#SkMatrix_postSkew_ky'>ky</a>, <a href='#SkMatrix_postSkew_px'>px</a>, <a href='#SkMatrix_postSkew_py'>py</a>) * <a href='SkMatrix_Reference#Matrix'>Matrix</a> = |<a href='#SkMatrix_postSkew_ky'>ky</a> 1 <a href='#SkMatrix_postSkew_ky'>dy</a>| |<a href='#SkMatrix_postSkew_ky'>M</a> <a href='#SkMatrix_postSkew_ky'>N</a> <a href='#SkMatrix_postSkew_ky'>O</a>| = |<a href='#SkMatrix_postSkew_ky'>ky</a>*<a href='#SkMatrix_postSkew_ky'>J</a>+<a href='#SkMatrix_postSkew_ky'>M</a>+<a href='#SkMatrix_postSkew_ky'>dy</a>*<a href='#SkMatrix_postSkew_ky'>P</a> <a href='#SkMatrix_postSkew_ky'>ky</a>*<a href='#SkMatrix_postSkew_ky'>K</a>+<a href='#SkMatrix_postSkew_ky'>N</a>+<a href='#SkMatrix_postSkew_ky'>dy</a>*<a href='#SkMatrix_postSkew_ky'>Q</a> <a href='#SkMatrix_postSkew_ky'>ky</a>*<a href='#SkMatrix_postSkew_ky'>L</a>+<a href='#SkMatrix_postSkew_ky'>O</a>+<a href='#SkMatrix_postSkew_ky'>dy</a>*<a href='#SkMatrix_postSkew_ky'>R</a>|
+| 1 <a href='#SkMatrix_postSkew_kx'>kx</a> dx| |J K L| |J+<a href='#SkMatrix_postSkew_kx'>kx</a>*M+dx*P K+<a href='#SkMatrix_postSkew_kx'>kx</a>*N+dx*Q L+<a href='#SkMatrix_postSkew_kx'>kx</a>*O+dx+R|
+K(<a href='#SkMatrix_postSkew_kx'>kx</a>, <a href='#SkMatrix_postSkew_ky'>ky</a>, <a href='#SkMatrix_postSkew_px'>px</a>, <a href='#SkMatrix_postSkew_py'>py</a>) * <a href='SkMatrix_Reference#Matrix'>Matrix</a> = |<a href='#SkMatrix_postSkew_ky'>ky</a> 1 dy| |M N O| = |<a href='#SkMatrix_postSkew_ky'>ky</a>*J+M+dy*P <a href='#SkMatrix_postSkew_ky'>ky</a>*K+N+dy*Q <a href='#SkMatrix_postSkew_ky'>ky</a>*L+O+dy*R|
| 0 0 1| |P Q R| | P Q R|
### Parameters
@@ -2791,23 +2791,23 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-void <a href='#SkMatrix_postSkew'>postSkew</a>(<a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>kx</a>, <a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>ky</a>)
+void <a href='#SkMatrix_postSkew'>postSkew</a>(<a href='undocumented#SkScalar'>SkScalar</a> kx, <a href='undocumented#SkScalar'>SkScalar</a> ky)
</pre>
-Sets <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> <a href='SkMatrix_Reference#SkMatrix'>to</a> <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> <a href='SkMatrix_Reference#SkMatrix'>constructed</a> <a href='SkMatrix_Reference#SkMatrix'>from</a> <a href='SkMatrix_Reference#SkMatrix'>skewing</a> <a href='SkMatrix_Reference#SkMatrix'>by</a> (<a href='#SkMatrix_postSkew_2_kx'>kx</a>, <a href='#SkMatrix_postSkew_2_ky'>ky</a>) <a href='#SkMatrix_postSkew_2_ky'>about</a> <a href='#SkMatrix_postSkew_2_ky'>pivot</a> <a href='SkPoint_Reference#Point'>point</a>
+Sets <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> to <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> constructed from skewing by (<a href='#SkMatrix_postSkew_2_kx'>kx</a>, <a href='#SkMatrix_postSkew_2_ky'>ky</a>) about pivot <a href='SkPoint_Reference#Point'>point</a>
(0, 0), multiplied by <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a>.
This can be thought of as skewing about the origin after applying <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a>.
Given:
| J K L | | 1 <a href='#SkMatrix_postSkew_2_kx'>kx</a> 0 |
-<a href='SkMatrix_Reference#Matrix'>Matrix</a> = | <a href='SkMatrix_Reference#Matrix'>M</a> <a href='SkMatrix_Reference#Matrix'>N</a> <a href='SkMatrix_Reference#Matrix'>O</a> |, <a href='SkMatrix_Reference#Matrix'>K</a>(<a href='#SkMatrix_postSkew_2_kx'>kx</a>, <a href='#SkMatrix_postSkew_2_ky'>ky</a>) = | <a href='#SkMatrix_postSkew_2_ky'>ky</a> 1 0 |
+<a href='SkMatrix_Reference#Matrix'>Matrix</a> = | M N O |, K(<a href='#SkMatrix_postSkew_2_kx'>kx</a>, <a href='#SkMatrix_postSkew_2_ky'>ky</a>) = | <a href='#SkMatrix_postSkew_2_ky'>ky</a> 1 0 |
| P Q R | | 0 0 1 |
-sets <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> <a href='SkMatrix_Reference#SkMatrix'>to</a>:
+sets <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> to:
-| 1 <a href='#SkMatrix_postSkew_2_kx'>kx</a> 0 | | <a href='#SkMatrix_postSkew_2_kx'>J</a> <a href='#SkMatrix_postSkew_2_kx'>K</a> <a href='#SkMatrix_postSkew_2_kx'>L</a> | | <a href='#SkMatrix_postSkew_2_kx'>J</a>+<a href='#SkMatrix_postSkew_2_kx'>kx</a>*<a href='#SkMatrix_postSkew_2_kx'>M</a> <a href='#SkMatrix_postSkew_2_kx'>K</a>+<a href='#SkMatrix_postSkew_2_kx'>kx</a>*<a href='#SkMatrix_postSkew_2_kx'>N</a> <a href='#SkMatrix_postSkew_2_kx'>L</a>+<a href='#SkMatrix_postSkew_2_kx'>kx</a>*<a href='#SkMatrix_postSkew_2_kx'>O</a> |
-K(<a href='#SkMatrix_postSkew_2_kx'>kx</a>, <a href='#SkMatrix_postSkew_2_ky'>ky</a>) * <a href='SkMatrix_Reference#Matrix'>Matrix</a> = | <a href='#SkMatrix_postSkew_2_ky'>ky</a> 1 0 | | <a href='#SkMatrix_postSkew_2_ky'>M</a> <a href='#SkMatrix_postSkew_2_ky'>N</a> <a href='#SkMatrix_postSkew_2_ky'>O</a> | = | <a href='#SkMatrix_postSkew_2_ky'>ky</a>*<a href='#SkMatrix_postSkew_2_ky'>J</a>+<a href='#SkMatrix_postSkew_2_ky'>M</a> <a href='#SkMatrix_postSkew_2_ky'>ky</a>*<a href='#SkMatrix_postSkew_2_ky'>K</a>+<a href='#SkMatrix_postSkew_2_ky'>N</a> <a href='#SkMatrix_postSkew_2_ky'>ky</a>*<a href='#SkMatrix_postSkew_2_ky'>L</a>+<a href='#SkMatrix_postSkew_2_ky'>O</a> |
+| 1 <a href='#SkMatrix_postSkew_2_kx'>kx</a> 0 | | J K L | | J+<a href='#SkMatrix_postSkew_2_kx'>kx</a>*M K+<a href='#SkMatrix_postSkew_2_kx'>kx</a>*N L+<a href='#SkMatrix_postSkew_2_kx'>kx</a>*O |
+K(<a href='#SkMatrix_postSkew_2_kx'>kx</a>, <a href='#SkMatrix_postSkew_2_ky'>ky</a>) * <a href='SkMatrix_Reference#Matrix'>Matrix</a> = | <a href='#SkMatrix_postSkew_2_ky'>ky</a> 1 0 | | M N O | = | <a href='#SkMatrix_postSkew_2_ky'>ky</a>*J+M <a href='#SkMatrix_postSkew_2_ky'>ky</a>*K+N <a href='#SkMatrix_postSkew_2_ky'>ky</a>*L+O |
| 0 0 1 | | P Q R | | P Q R |
### Parameters
@@ -2833,28 +2833,28 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-void <a href='#SkMatrix_postConcat'>postConcat</a>(<a href='#SkMatrix_postConcat'>const</a> <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a>& <a href='SkMatrix_Reference#SkMatrix'>other</a>)
+void <a href='#SkMatrix_postConcat'>postConcat</a>(const <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a>& other)
</pre>
-Sets <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> <a href='SkMatrix_Reference#SkMatrix'>to</a> <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> <a href='#SkMatrix_postConcat_other'>other</a> <a href='#SkMatrix_postConcat_other'>multiplied</a> <a href='#SkMatrix_postConcat_other'>by</a> <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a>.
-This can be thought of mapping by <a href='#SkMatrix_postConcat_other'>other</a> <a href='#SkMatrix_postConcat_other'>after</a> <a href='#SkMatrix_postConcat_other'>applying</a> <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a>.
+Sets <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> to <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> <a href='#SkMatrix_postConcat_other'>other</a> multiplied by <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a>.
+This can be thought of mapping by <a href='#SkMatrix_postConcat_other'>other</a> after applying <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a>.
Given:
| J K L | | A B C |
-<a href='SkMatrix_Reference#Matrix'>Matrix</a> = | <a href='SkMatrix_Reference#Matrix'>M</a> <a href='SkMatrix_Reference#Matrix'>N</a> <a href='SkMatrix_Reference#Matrix'>O</a> |, <a href='#SkMatrix_postConcat_other'>other</a> = | <a href='#SkMatrix_postConcat_other'>D</a> <a href='#SkMatrix_postConcat_other'>E</a> <a href='#SkMatrix_postConcat_other'>F</a> |
+<a href='SkMatrix_Reference#Matrix'>Matrix</a> = | M N O |, <a href='#SkMatrix_postConcat_other'>other</a> = | D E F |
| P Q R | | G H <a href='#SkMatrix_I'>I</a> |
-sets <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> <a href='SkMatrix_Reference#SkMatrix'>to</a>:
+sets <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> to:
| A B C | | J K L | | AJ+BM+CP AK+BN+CQ AL+BO+CR |
-<a href='#SkMatrix_postConcat_other'>other</a> * <a href='SkMatrix_Reference#Matrix'>Matrix</a> = | <a href='SkMatrix_Reference#Matrix'>D</a> <a href='SkMatrix_Reference#Matrix'>E</a> <a href='SkMatrix_Reference#Matrix'>F</a> | * | <a href='SkMatrix_Reference#Matrix'>M</a> <a href='SkMatrix_Reference#Matrix'>N</a> <a href='SkMatrix_Reference#Matrix'>O</a> | = | <a href='SkMatrix_Reference#Matrix'>DJ</a>+<a href='SkMatrix_Reference#Matrix'>EM</a>+<a href='SkMatrix_Reference#Matrix'>FP</a> <a href='SkMatrix_Reference#Matrix'>DK</a>+<a href='SkMatrix_Reference#Matrix'>EN</a>+<a href='SkMatrix_Reference#Matrix'>FQ</a> <a href='SkMatrix_Reference#Matrix'>DL</a>+<a href='SkMatrix_Reference#Matrix'>EO</a>+<a href='SkMatrix_Reference#Matrix'>FR</a> |
-| G H <a href='#SkMatrix_I'>I</a> | | <a href='#SkMatrix_I'>P</a> <a href='#SkMatrix_I'>Q</a> <a href='#SkMatrix_I'>R</a> | | <a href='#SkMatrix_I'>GJ</a>+<a href='#SkMatrix_I'>HM</a>+<a href='#SkMatrix_I'>IP</a> <a href='#SkMatrix_I'>GK</a>+<a href='#SkMatrix_I'>HN</a>+<a href='#SkMatrix_I'>IQ</a> <a href='#SkMatrix_I'>GL</a>+<a href='#SkMatrix_I'>HO</a>+<a href='#SkMatrix_I'>IR</a> |
+<a href='#SkMatrix_postConcat_other'>other</a> * <a href='SkMatrix_Reference#Matrix'>Matrix</a> = | D E F | * | M N O | = | DJ+EM+FP DK+EN+FQ DL+EO+FR |
+| G H <a href='#SkMatrix_I'>I</a> | | P Q R | | GJ+HM+IP GK+HN+IQ GL+HO+IR |
### Parameters
<table> <tr> <td><a name='SkMatrix_postConcat_other'><code><strong>other</strong></code></a></td>
- <td><a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> <a href='SkMatrix_Reference#SkMatrix'>on</a> <a href='SkMatrix_Reference#SkMatrix'>left side</a> <a href='SkMatrix_Reference#SkMatrix'>of</a> <a href='SkMatrix_Reference#SkMatrix'>multiply</a> <a href='SkMatrix_Reference#SkMatrix'>expression</a></td>
+ <td><a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> on left side of multiply expression</td>
</tr>
</table>
@@ -2879,10 +2879,10 @@
};
</pre>
-<a href='#SkMatrix_ScaleToFit'>ScaleToFit</a> <a href='#SkMatrix_ScaleToFit'>describes</a> <a href='#SkMatrix_ScaleToFit'>how</a> <a href='SkMatrix_Reference#Matrix'>Matrix</a> <a href='SkMatrix_Reference#Matrix'>is</a> <a href='SkMatrix_Reference#Matrix'>constructed</a> <a href='SkMatrix_Reference#Matrix'>to</a> <a href='SkMatrix_Reference#Matrix'>map</a> <a href='SkMatrix_Reference#Matrix'>one</a> <a href='SkRect_Reference#Rect'>Rect</a> <a href='SkRect_Reference#Rect'>to</a> <a href='SkRect_Reference#Rect'>another</a>.
-<a href='#SkMatrix_ScaleToFit'>ScaleToFit</a> <a href='#SkMatrix_ScaleToFit'>may</a> <a href='#SkMatrix_ScaleToFit'>allow</a> <a href='SkMatrix_Reference#Matrix'>Matrix</a> <a href='SkMatrix_Reference#Matrix'>to</a> <a href='SkMatrix_Reference#Matrix'>have</a> <a href='SkMatrix_Reference#Matrix'>unequal</a> <a href='SkMatrix_Reference#Matrix'>horizontal</a> <a href='SkMatrix_Reference#Matrix'>and</a> <a href='SkMatrix_Reference#Matrix'>vertical</a> <a href='SkMatrix_Reference#Matrix'>scaling</a>,
-<a href='SkMatrix_Reference#Matrix'>or</a> <a href='SkMatrix_Reference#Matrix'>may</a> <a href='SkMatrix_Reference#Matrix'>restrict</a> <a href='SkMatrix_Reference#Matrix'>Matrix</a> <a href='SkMatrix_Reference#Matrix'>to</a> <a href='SkMatrix_Reference#Matrix'>square</a> <a href='SkMatrix_Reference#Matrix'>scaling</a>. <a href='SkMatrix_Reference#Matrix'>If</a> <a href='SkMatrix_Reference#Matrix'>restricted</a>, <a href='#SkMatrix_ScaleToFit'>ScaleToFit</a> <a href='#SkMatrix_ScaleToFit'>specifies</a>
-<a href='#SkMatrix_ScaleToFit'>how</a> <a href='SkMatrix_Reference#Matrix'>Matrix</a> <a href='SkMatrix_Reference#Matrix'>maps</a> <a href='SkMatrix_Reference#Matrix'>to</a> <a href='SkMatrix_Reference#Matrix'>the</a> <a href='SkMatrix_Reference#Matrix'>side</a> <a href='SkMatrix_Reference#Matrix'>or</a> <a href='SkMatrix_Reference#Matrix'>center</a> <a href='SkMatrix_Reference#Matrix'>of</a> <a href='SkMatrix_Reference#Matrix'>the</a> <a href='SkMatrix_Reference#Matrix'>destination</a> <a href='SkRect_Reference#Rect'>Rect</a>.
+<a href='#SkMatrix_ScaleToFit'>ScaleToFit</a> describes how <a href='SkMatrix_Reference#Matrix'>Matrix</a> is constructed to map one <a href='SkRect_Reference#Rect'>Rect</a> to another.
+<a href='#SkMatrix_ScaleToFit'>ScaleToFit</a> may allow <a href='SkMatrix_Reference#Matrix'>Matrix</a> to have unequal horizontal and vertical scaling,
+or may restrict <a href='SkMatrix_Reference#Matrix'>Matrix</a> to square scaling. If restricted, <a href='#SkMatrix_ScaleToFit'>ScaleToFit</a> specifies
+how <a href='SkMatrix_Reference#Matrix'>Matrix</a> maps to the side or center of the destination <a href='SkRect_Reference#Rect'>Rect</a>.
### Constants
@@ -2894,26 +2894,26 @@
<td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a name='SkMatrix_kFill_ScaleToFit'><code>SkMatrix::kFill_ScaleToFit</code></a></td>
<td style='text-align: center; border: 2px solid #dddddd; padding: 8px; '>0</td>
<td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>
-Computes <a href='SkMatrix_Reference#Matrix'>Matrix</a> <a href='SkMatrix_Reference#Matrix'>that</a> <a href='SkMatrix_Reference#Matrix'>scales</a> <a href='SkMatrix_Reference#Matrix'>about</a> <a href='SkMatrix_Reference#Matrix'>x-axis</a> <a href='SkMatrix_Reference#Matrix'>and</a> <a href='SkMatrix_Reference#Matrix'>y-axis</a> <a href='SkMatrix_Reference#Matrix'>independently</a>, <a href='SkMatrix_Reference#Matrix'>so</a> <a href='SkMatrix_Reference#Matrix'>that</a>
-<a href='SkMatrix_Reference#Matrix'>source</a> <a href='SkRect_Reference#Rect'>Rect</a> <a href='SkRect_Reference#Rect'>is</a> <a href='SkRect_Reference#Rect'>mapped</a> <a href='SkRect_Reference#Rect'>to</a> <a href='SkRect_Reference#Rect'>completely</a> <a href='SkRect_Reference#Rect'>fill</a> <a href='SkRect_Reference#Rect'>destination</a> <a href='SkRect_Reference#Rect'>Rect</a>. <a href='SkRect_Reference#Rect'>The</a> <a href='SkRect_Reference#Rect'>aspect</a> <a href='SkRect_Reference#Rect'>ratio</a>
-<a href='SkRect_Reference#Rect'>of</a> <a href='SkRect_Reference#Rect'>source</a> <a href='SkRect_Reference#Rect'>Rect</a> <a href='SkRect_Reference#Rect'>may</a> <a href='SkRect_Reference#Rect'>change</a>.
+Computes <a href='SkMatrix_Reference#Matrix'>Matrix</a> that scales about x-axis and y-axis independently, so that
+source <a href='SkRect_Reference#Rect'>Rect</a> is mapped to completely fill destination <a href='SkRect_Reference#Rect'>Rect</a>. The aspect ratio
+of source <a href='SkRect_Reference#Rect'>Rect</a> may change.
</td>
</tr>
<tr>
<td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a name='SkMatrix_kStart_ScaleToFit'><code>SkMatrix::kStart_ScaleToFit</code></a></td>
<td style='text-align: center; border: 2px solid #dddddd; padding: 8px; '>1</td>
<td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>
-Computes <a href='SkMatrix_Reference#Matrix'>Matrix</a> <a href='SkMatrix_Reference#Matrix'>that</a> <a href='SkMatrix_Reference#Matrix'>maintains</a> <a href='SkMatrix_Reference#Matrix'>source</a> <a href='SkRect_Reference#Rect'>Rect</a> <a href='SkRect_Reference#Rect'>aspect</a> <a href='SkRect_Reference#Rect'>ratio</a>, <a href='SkRect_Reference#Rect'>mapping</a> <a href='SkRect_Reference#Rect'>source</a> <a href='SkRect_Reference#Rect'>Rect</a>
-<a href='SkRect_Reference#Rect'>width</a> <a href='SkRect_Reference#Rect'>or</a> <a href='SkRect_Reference#Rect'>height</a> <a href='SkRect_Reference#Rect'>to</a> <a href='SkRect_Reference#Rect'>destination</a> <a href='SkRect_Reference#Rect'>Rect</a>. <a href='SkRect_Reference#Rect'>Aligns</a> <a href='SkRect_Reference#Rect'>mapping</a> <a href='SkRect_Reference#Rect'>to</a> <a href='SkRect_Reference#Rect'>left</a> <a href='SkRect_Reference#Rect'>and</a> <a href='SkRect_Reference#Rect'>top</a> <a href='SkRect_Reference#Rect'>edges</a>
-<a href='SkRect_Reference#Rect'>of</a> <a href='SkRect_Reference#Rect'>destination</a> <a href='SkRect_Reference#Rect'>Rect</a>.
+Computes <a href='SkMatrix_Reference#Matrix'>Matrix</a> that maintains source <a href='SkRect_Reference#Rect'>Rect</a> aspect ratio, mapping source <a href='SkRect_Reference#Rect'>Rect</a>
+width or height to destination <a href='SkRect_Reference#Rect'>Rect</a>. Aligns mapping to left and top edges
+of destination <a href='SkRect_Reference#Rect'>Rect</a>.
</td>
</tr>
<tr style='background-color: #f0f0f0; '>
<td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a name='SkMatrix_kCenter_ScaleToFit'><code>SkMatrix::kCenter_ScaleToFit</code></a></td>
<td style='text-align: center; border: 2px solid #dddddd; padding: 8px; '>2</td>
<td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>
-Computes <a href='SkMatrix_Reference#Matrix'>Matrix</a> <a href='SkMatrix_Reference#Matrix'>that</a> <a href='SkMatrix_Reference#Matrix'>maintains</a> <a href='SkMatrix_Reference#Matrix'>source</a> <a href='SkRect_Reference#Rect'>Rect</a> <a href='SkRect_Reference#Rect'>aspect</a> <a href='SkRect_Reference#Rect'>ratio</a>, <a href='SkRect_Reference#Rect'>mapping</a> <a href='SkRect_Reference#Rect'>source</a> <a href='SkRect_Reference#Rect'>Rect</a>
-<a href='SkRect_Reference#Rect'>width</a> <a href='SkRect_Reference#Rect'>or</a> <a href='SkRect_Reference#Rect'>height</a> <a href='SkRect_Reference#Rect'>to</a> <a href='SkRect_Reference#Rect'>destination</a> <a href='SkRect_Reference#Rect'>Rect</a>. <a href='SkRect_Reference#Rect'>Aligns</a> <a href='SkRect_Reference#Rect'>mapping</a> <a href='SkRect_Reference#Rect'>to</a> <a href='SkRect_Reference#Rect'>center</a> <a href='SkRect_Reference#Rect'>of</a> <a href='SkRect_Reference#Rect'>destination</a>
+Computes <a href='SkMatrix_Reference#Matrix'>Matrix</a> that maintains source <a href='SkRect_Reference#Rect'>Rect</a> aspect ratio, mapping source <a href='SkRect_Reference#Rect'>Rect</a>
+width or height to destination <a href='SkRect_Reference#Rect'>Rect</a>. Aligns mapping to center of destination
<a href='SkRect_Reference#Rect'>Rect</a>.
</td>
</tr>
@@ -2921,9 +2921,9 @@
<td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a name='SkMatrix_kEnd_ScaleToFit'><code>SkMatrix::kEnd_ScaleToFit</code></a></td>
<td style='text-align: center; border: 2px solid #dddddd; padding: 8px; '>3</td>
<td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>
-Computes <a href='SkMatrix_Reference#Matrix'>Matrix</a> <a href='SkMatrix_Reference#Matrix'>that</a> <a href='SkMatrix_Reference#Matrix'>maintains</a> <a href='SkMatrix_Reference#Matrix'>source</a> <a href='SkRect_Reference#Rect'>Rect</a> <a href='SkRect_Reference#Rect'>aspect</a> <a href='SkRect_Reference#Rect'>ratio</a>, <a href='SkRect_Reference#Rect'>mapping</a> <a href='SkRect_Reference#Rect'>source</a> <a href='SkRect_Reference#Rect'>Rect</a>
-<a href='SkRect_Reference#Rect'>width</a> <a href='SkRect_Reference#Rect'>or</a> <a href='SkRect_Reference#Rect'>height</a> <a href='SkRect_Reference#Rect'>to</a> <a href='SkRect_Reference#Rect'>destination</a> <a href='SkRect_Reference#Rect'>Rect</a>. <a href='SkRect_Reference#Rect'>Aligns</a> <a href='SkRect_Reference#Rect'>mapping</a> <a href='SkRect_Reference#Rect'>to</a> <a href='SkRect_Reference#Rect'>right</a> <a href='SkRect_Reference#Rect'>and</a> <a href='SkRect_Reference#Rect'>bottom</a>
-<a href='SkRect_Reference#Rect'>edges</a> <a href='SkRect_Reference#Rect'>of</a> <a href='SkRect_Reference#Rect'>destination</a> <a href='SkRect_Reference#Rect'>Rect</a>.
+Computes <a href='SkMatrix_Reference#Matrix'>Matrix</a> that maintains source <a href='SkRect_Reference#Rect'>Rect</a> aspect ratio, mapping source <a href='SkRect_Reference#Rect'>Rect</a>
+width or height to destination <a href='SkRect_Reference#Rect'>Rect</a>. Aligns mapping to right and bottom
+edges of destination <a href='SkRect_Reference#Rect'>Rect</a>.
</td>
</tr>
</table>
@@ -2941,13 +2941,13 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-bool <a href='#SkMatrix_setRectToRect'>setRectToRect</a>(<a href='#SkMatrix_setRectToRect'>const</a> <a href='SkRect_Reference#SkRect'>SkRect</a>& <a href='SkRect_Reference#SkRect'>src</a>, <a href='SkRect_Reference#SkRect'>const</a> <a href='SkRect_Reference#SkRect'>SkRect</a>& <a href='SkRect_Reference#SkRect'>dst</a>, <a href='#SkMatrix_ScaleToFit'>ScaleToFit</a> <a href='#SkMatrix_ScaleToFit'>stf</a>)
+bool <a href='#SkMatrix_setRectToRect'>setRectToRect</a>(const <a href='SkRect_Reference#SkRect'>SkRect</a>& src, const <a href='SkRect_Reference#SkRect'>SkRect</a>& dst, <a href='#SkMatrix_ScaleToFit'>ScaleToFit</a> stf)
</pre>
-Sets <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> <a href='SkMatrix_Reference#SkMatrix'>to</a> <a href='SkMatrix_Reference#SkMatrix'>scale</a> <a href='SkMatrix_Reference#SkMatrix'>and</a> <a href='SkMatrix_Reference#SkMatrix'>translate</a> <a href='#SkMatrix_setRectToRect_src'>src</a> <a href='SkRect_Reference#SkRect'>SkRect</a> <a href='SkRect_Reference#SkRect'>to</a> <a href='#SkMatrix_setRectToRect_dst'>dst</a> <a href='SkRect_Reference#SkRect'>SkRect</a>. <a href='#SkMatrix_setRectToRect_stf'>stf</a> <a href='#SkMatrix_setRectToRect_stf'>selects</a> <a href='#SkMatrix_setRectToRect_stf'>whether</a>
-mapping completely fills <a href='#SkMatrix_setRectToRect_dst'>dst</a> <a href='#SkMatrix_setRectToRect_dst'>or</a> <a href='#SkMatrix_setRectToRect_dst'>preserves</a> <a href='#SkMatrix_setRectToRect_dst'>the</a> <a href='#SkMatrix_setRectToRect_dst'>aspect</a> <a href='#SkMatrix_setRectToRect_dst'>ratio</a>, <a href='#SkMatrix_setRectToRect_dst'>and</a> <a href='#SkMatrix_setRectToRect_dst'>how</a> <a href='#SkMatrix_setRectToRect_dst'>to</a> <a href='#SkMatrix_setRectToRect_dst'>align</a>
-<a href='#SkMatrix_setRectToRect_src'>src</a> <a href='#SkMatrix_setRectToRect_src'>within</a> <a href='#SkMatrix_setRectToRect_dst'>dst</a>. <a href='#SkMatrix_setRectToRect_dst'>Returns</a> <a href='#SkMatrix_setRectToRect_dst'>false</a> <a href='#SkMatrix_setRectToRect_dst'>if</a> <a href='#SkMatrix_setRectToRect_src'>src</a> <a href='#SkMatrix_setRectToRect_src'>is</a> <a href='#SkMatrix_setRectToRect_src'>empty</a>, <a href='#SkMatrix_setRectToRect_src'>and</a> <a href='#SkMatrix_setRectToRect_src'>sets</a> <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> <a href='SkMatrix_Reference#SkMatrix'>to</a> <a href='SkMatrix_Reference#SkMatrix'>identity</a>.
-Returns true if <a href='#SkMatrix_setRectToRect_dst'>dst</a> <a href='#SkMatrix_setRectToRect_dst'>is</a> <a href='#SkMatrix_setRectToRect_dst'>empty</a>, <a href='#SkMatrix_setRectToRect_dst'>and</a> <a href='#SkMatrix_setRectToRect_dst'>sets</a> <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> <a href='SkMatrix_Reference#SkMatrix'>to</a>:
+Sets <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> to scale and translate <a href='#SkMatrix_setRectToRect_src'>src</a> <a href='SkRect_Reference#SkRect'>SkRect</a> to <a href='#SkMatrix_setRectToRect_dst'>dst</a> <a href='SkRect_Reference#SkRect'>SkRect</a>. <a href='#SkMatrix_setRectToRect_stf'>stf</a> selects whether
+mapping completely fills <a href='#SkMatrix_setRectToRect_dst'>dst</a> or preserves the aspect ratio, and how to align
+<a href='#SkMatrix_setRectToRect_src'>src</a> within <a href='#SkMatrix_setRectToRect_dst'>dst</a>. Returns false if <a href='#SkMatrix_setRectToRect_src'>src</a> is empty, and sets <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> to identity.
+Returns true if <a href='#SkMatrix_setRectToRect_dst'>dst</a> is empty, and sets <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> to:
| 0 0 0 |
| 0 0 0 |
@@ -2956,10 +2956,10 @@
### Parameters
<table> <tr> <td><a name='SkMatrix_setRectToRect_src'><code><strong>src</strong></code></a></td>
- <td><a href='SkRect_Reference#SkRect'>SkRect</a> <a href='SkRect_Reference#SkRect'>to</a> <a href='SkRect_Reference#SkRect'>map</a> <a href='SkRect_Reference#SkRect'>from</a></td>
+ <td><a href='SkRect_Reference#SkRect'>SkRect</a> to map from</td>
</tr>
<tr> <td><a name='SkMatrix_setRectToRect_dst'><code><strong>dst</strong></code></a></td>
- <td><a href='SkRect_Reference#SkRect'>SkRect</a> <a href='SkRect_Reference#SkRect'>to</a> <a href='SkRect_Reference#SkRect'>map</a> <a href='SkRect_Reference#SkRect'>to</a></td>
+ <td><a href='SkRect_Reference#SkRect'>SkRect</a> to map to</td>
</tr>
<tr> <td><a name='SkMatrix_setRectToRect_stf'><code><strong>stf</strong></code></a></td>
<td>one of: <a href='#SkMatrix_kFill_ScaleToFit'>kFill_ScaleToFit</a>, <a href='#SkMatrix_kStart_ScaleToFit'>kStart_ScaleToFit</a>,</td>
@@ -2970,7 +2970,7 @@
### Return Value
-true if <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> <a href='SkMatrix_Reference#SkMatrix'>can</a> <a href='SkMatrix_Reference#SkMatrix'>represent</a> <a href='SkRect_Reference#SkRect'>SkRect</a> <a href='SkRect_Reference#SkRect'>mapping</a>
+true if <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> can represent <a href='SkRect_Reference#SkRect'>SkRect</a> mapping
### Example
@@ -3000,13 +3000,13 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-static <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> <a href='#SkMatrix_MakeRectToRect'>MakeRectToRect</a>(<a href='#SkMatrix_MakeRectToRect'>const</a> <a href='SkRect_Reference#SkRect'>SkRect</a>& <a href='SkRect_Reference#SkRect'>src</a>, <a href='SkRect_Reference#SkRect'>const</a> <a href='SkRect_Reference#SkRect'>SkRect</a>& <a href='SkRect_Reference#SkRect'>dst</a>, <a href='#SkMatrix_ScaleToFit'>ScaleToFit</a> <a href='#SkMatrix_ScaleToFit'>stf</a>)
+static <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> <a href='#SkMatrix_MakeRectToRect'>MakeRectToRect</a>(const <a href='SkRect_Reference#SkRect'>SkRect</a>& src, const <a href='SkRect_Reference#SkRect'>SkRect</a>& dst, <a href='#SkMatrix_ScaleToFit'>ScaleToFit</a> stf)
</pre>
-Returns <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> <a href='SkMatrix_Reference#SkMatrix'>set</a> <a href='SkMatrix_Reference#SkMatrix'>to</a> <a href='SkMatrix_Reference#SkMatrix'>scale</a> <a href='SkMatrix_Reference#SkMatrix'>and</a> <a href='SkMatrix_Reference#SkMatrix'>translate</a> <a href='#SkMatrix_MakeRectToRect_src'>src</a> <a href='SkRect_Reference#SkRect'>SkRect</a> <a href='SkRect_Reference#SkRect'>to</a> <a href='#SkMatrix_MakeRectToRect_dst'>dst</a> <a href='SkRect_Reference#SkRect'>SkRect</a>. <a href='#SkMatrix_MakeRectToRect_stf'>stf</a> <a href='#SkMatrix_MakeRectToRect_stf'>selects</a>
-whether mapping completely fills <a href='#SkMatrix_MakeRectToRect_dst'>dst</a> <a href='#SkMatrix_MakeRectToRect_dst'>or</a> <a href='#SkMatrix_MakeRectToRect_dst'>preserves</a> <a href='#SkMatrix_MakeRectToRect_dst'>the</a> <a href='#SkMatrix_MakeRectToRect_dst'>aspect</a> <a href='#SkMatrix_MakeRectToRect_dst'>ratio</a>, <a href='#SkMatrix_MakeRectToRect_dst'>and</a> <a href='#SkMatrix_MakeRectToRect_dst'>how</a> <a href='#SkMatrix_MakeRectToRect_dst'>to</a>
-align <a href='#SkMatrix_MakeRectToRect_src'>src</a> <a href='#SkMatrix_MakeRectToRect_src'>within</a> <a href='#SkMatrix_MakeRectToRect_dst'>dst</a>. <a href='#SkMatrix_MakeRectToRect_dst'>Returns</a> <a href='#SkMatrix_MakeRectToRect_dst'>the</a> <a href='#SkMatrix_MakeRectToRect_dst'>identity</a> <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> <a href='SkMatrix_Reference#SkMatrix'>if</a> <a href='#SkMatrix_MakeRectToRect_src'>src</a> <a href='#SkMatrix_MakeRectToRect_src'>is</a> <a href='#SkMatrix_MakeRectToRect_src'>empty</a>. <a href='#SkMatrix_MakeRectToRect_src'>If</a> <a href='#SkMatrix_MakeRectToRect_dst'>dst</a> <a href='#SkMatrix_MakeRectToRect_dst'>is</a>
-empty, returns <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> <a href='SkMatrix_Reference#SkMatrix'>set</a> <a href='SkMatrix_Reference#SkMatrix'>to</a>:
+Returns <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> set to scale and translate <a href='#SkMatrix_MakeRectToRect_src'>src</a> <a href='SkRect_Reference#SkRect'>SkRect</a> to <a href='#SkMatrix_MakeRectToRect_dst'>dst</a> <a href='SkRect_Reference#SkRect'>SkRect</a>. <a href='#SkMatrix_MakeRectToRect_stf'>stf</a> selects
+whether mapping completely fills <a href='#SkMatrix_MakeRectToRect_dst'>dst</a> or preserves the aspect ratio, and how to
+align <a href='#SkMatrix_MakeRectToRect_src'>src</a> within <a href='#SkMatrix_MakeRectToRect_dst'>dst</a>. Returns the identity <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> if <a href='#SkMatrix_MakeRectToRect_src'>src</a> is empty. If <a href='#SkMatrix_MakeRectToRect_dst'>dst</a> is
+empty, returns <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> set to:
| 0 0 0 |
| 0 0 0 |
@@ -3015,10 +3015,10 @@
### Parameters
<table> <tr> <td><a name='SkMatrix_MakeRectToRect_src'><code><strong>src</strong></code></a></td>
- <td><a href='SkRect_Reference#SkRect'>SkRect</a> <a href='SkRect_Reference#SkRect'>to</a> <a href='SkRect_Reference#SkRect'>map</a> <a href='SkRect_Reference#SkRect'>from</a></td>
+ <td><a href='SkRect_Reference#SkRect'>SkRect</a> to map from</td>
</tr>
<tr> <td><a name='SkMatrix_MakeRectToRect_dst'><code><strong>dst</strong></code></a></td>
- <td><a href='SkRect_Reference#SkRect'>SkRect</a> <a href='SkRect_Reference#SkRect'>to</a> <a href='SkRect_Reference#SkRect'>map</a> <a href='SkRect_Reference#SkRect'>to</a></td>
+ <td><a href='SkRect_Reference#SkRect'>SkRect</a> to map to</td>
</tr>
<tr> <td><a name='SkMatrix_MakeRectToRect_stf'><code><strong>stf</strong></code></a></td>
<td>one of: <a href='#SkMatrix_kFill_ScaleToFit'>kFill_ScaleToFit</a>, <a href='#SkMatrix_kStart_ScaleToFit'>kStart_ScaleToFit</a>,</td>
@@ -3029,7 +3029,7 @@
### Return Value
-<a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> <a href='SkMatrix_Reference#SkMatrix'>mapping</a> <a href='#SkMatrix_MakeRectToRect_src'>src</a> <a href='#SkMatrix_MakeRectToRect_src'>to</a> <a href='#SkMatrix_MakeRectToRect_dst'>dst</a>
+<a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> mapping <a href='#SkMatrix_MakeRectToRect_src'>src</a> to <a href='#SkMatrix_MakeRectToRect_dst'>dst</a>
### Example
@@ -3059,33 +3059,33 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-bool <a href='#SkMatrix_setPolyToPoly'>setPolyToPoly</a>(<a href='#SkMatrix_setPolyToPoly'>const</a> <a href='SkPoint_Reference#SkPoint'>SkPoint</a> <a href='SkPoint_Reference#SkPoint'>src</a>[], <a href='SkPoint_Reference#SkPoint'>const</a> <a href='SkPoint_Reference#SkPoint'>SkPoint</a> <a href='SkPoint_Reference#SkPoint'>dst</a>[], <a href='SkPoint_Reference#SkPoint'>int</a> <a href='SkPoint_Reference#SkPoint'>count</a>)
+bool <a href='#SkMatrix_setPolyToPoly'>setPolyToPoly</a>(const <a href='SkPoint_Reference#SkPoint'>SkPoint</a> src[], const <a href='SkPoint_Reference#SkPoint'>SkPoint</a> dst[], int count)
</pre>
-Sets <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> <a href='SkMatrix_Reference#SkMatrix'>to</a> <a href='SkMatrix_Reference#SkMatrix'>map</a> <a href='#SkMatrix_setPolyToPoly_src'>src</a> <a href='#SkMatrix_setPolyToPoly_src'>to</a> <a href='#SkMatrix_setPolyToPoly_dst'>dst</a>. <a href='#SkMatrix_setPolyToPoly_count'>count</a> <a href='#SkMatrix_setPolyToPoly_count'>must</a> <a href='#SkMatrix_setPolyToPoly_count'>be</a> <a href='#SkMatrix_setPolyToPoly_count'>zero</a> <a href='#SkMatrix_setPolyToPoly_count'>or</a> <a href='#SkMatrix_setPolyToPoly_count'>greater</a>, <a href='#SkMatrix_setPolyToPoly_count'>and</a> <a href='#SkMatrix_setPolyToPoly_count'>four</a> <a href='#SkMatrix_setPolyToPoly_count'>or</a> <a href='#SkMatrix_setPolyToPoly_count'>less</a>.
+Sets <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> to map <a href='#SkMatrix_setPolyToPoly_src'>src</a> to <a href='#SkMatrix_setPolyToPoly_dst'>dst</a>. <a href='#SkMatrix_setPolyToPoly_count'>count</a> must be zero or greater, and four or less.
-If <a href='#SkMatrix_setPolyToPoly_count'>count</a> <a href='#SkMatrix_setPolyToPoly_count'>is</a> <a href='#SkMatrix_setPolyToPoly_count'>zero</a>, <a href='#SkMatrix_setPolyToPoly_count'>sets</a> <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> <a href='SkMatrix_Reference#SkMatrix'>to</a> <a href='SkMatrix_Reference#SkMatrix'>identity</a> <a href='SkMatrix_Reference#SkMatrix'>and</a> <a href='SkMatrix_Reference#SkMatrix'>returns</a> <a href='SkMatrix_Reference#SkMatrix'>true</a>.
-If <a href='#SkMatrix_setPolyToPoly_count'>count</a> <a href='#SkMatrix_setPolyToPoly_count'>is</a> <a href='#SkMatrix_setPolyToPoly_count'>one</a>, <a href='#SkMatrix_setPolyToPoly_count'>sets</a> <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> <a href='SkMatrix_Reference#SkMatrix'>to</a> <a href='SkMatrix_Reference#SkMatrix'>translate</a> <a href='SkMatrix_Reference#SkMatrix'>and</a> <a href='SkMatrix_Reference#SkMatrix'>returns</a> <a href='SkMatrix_Reference#SkMatrix'>true</a>.
-If <a href='#SkMatrix_setPolyToPoly_count'>count</a> <a href='#SkMatrix_setPolyToPoly_count'>is</a> <a href='#SkMatrix_setPolyToPoly_count'>two</a> <a href='#SkMatrix_setPolyToPoly_count'>or</a> <a href='#SkMatrix_setPolyToPoly_count'>more</a>, <a href='#SkMatrix_setPolyToPoly_count'>sets</a> <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> <a href='SkMatrix_Reference#SkMatrix'>to</a> <a href='SkMatrix_Reference#SkMatrix'>map</a> <a href='SkPoint_Reference#SkPoint'>SkPoint</a> <a href='SkPoint_Reference#SkPoint'>if</a> <a href='SkPoint_Reference#SkPoint'>possible</a>; <a href='SkPoint_Reference#SkPoint'>returns</a> <a href='SkPoint_Reference#SkPoint'>false</a>
-if <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> <a href='SkMatrix_Reference#SkMatrix'>cannot</a> <a href='SkMatrix_Reference#SkMatrix'>be</a> <a href='SkMatrix_Reference#SkMatrix'>constructed</a>. <a href='SkMatrix_Reference#SkMatrix'>If</a> <a href='#SkMatrix_setPolyToPoly_count'>count</a> <a href='#SkMatrix_setPolyToPoly_count'>is</a> <a href='#SkMatrix_setPolyToPoly_count'>four</a>, <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> <a href='SkMatrix_Reference#SkMatrix'>may</a> <a href='SkMatrix_Reference#SkMatrix'>include</a>
+If <a href='#SkMatrix_setPolyToPoly_count'>count</a> is zero, sets <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> to identity and returns true.
+If <a href='#SkMatrix_setPolyToPoly_count'>count</a> is one, sets <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> to translate and returns true.
+If <a href='#SkMatrix_setPolyToPoly_count'>count</a> is two or more, sets <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> to map <a href='SkPoint_Reference#SkPoint'>SkPoint</a> if possible; returns false
+if <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> cannot be constructed. If <a href='#SkMatrix_setPolyToPoly_count'>count</a> is four, <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> may include
perspective.
### Parameters
<table> <tr> <td><a name='SkMatrix_setPolyToPoly_src'><code><strong>src</strong></code></a></td>
- <td><a href='SkPoint_Reference#SkPoint'>SkPoint</a> <a href='SkPoint_Reference#SkPoint'>to</a> <a href='SkPoint_Reference#SkPoint'>map</a> <a href='SkPoint_Reference#SkPoint'>from</a></td>
+ <td><a href='SkPoint_Reference#SkPoint'>SkPoint</a> to map from</td>
</tr>
<tr> <td><a name='SkMatrix_setPolyToPoly_dst'><code><strong>dst</strong></code></a></td>
- <td><a href='SkPoint_Reference#SkPoint'>SkPoint</a> <a href='SkPoint_Reference#SkPoint'>to</a> <a href='SkPoint_Reference#SkPoint'>map</a> <a href='SkPoint_Reference#SkPoint'>to</a></td>
+ <td><a href='SkPoint_Reference#SkPoint'>SkPoint</a> to map to</td>
</tr>
<tr> <td><a name='SkMatrix_setPolyToPoly_count'><code><strong>count</strong></code></a></td>
- <td>number of <a href='SkPoint_Reference#SkPoint'>SkPoint</a> <a href='SkPoint_Reference#SkPoint'>in</a> <a href='#SkMatrix_setPolyToPoly_src'>src</a> <a href='#SkMatrix_setPolyToPoly_src'>and</a> <a href='#SkMatrix_setPolyToPoly_dst'>dst</a></td>
+ <td>number of <a href='SkPoint_Reference#SkPoint'>SkPoint</a> in <a href='#SkMatrix_setPolyToPoly_src'>src</a> and <a href='#SkMatrix_setPolyToPoly_dst'>dst</a></td>
</tr>
</table>
### Return Value
-true if <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> <a href='SkMatrix_Reference#SkMatrix'>was</a> <a href='SkMatrix_Reference#SkMatrix'>constructed</a> <a href='SkMatrix_Reference#SkMatrix'>successfully</a>
+true if <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> was constructed successfully
### Example
@@ -3100,24 +3100,24 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-bool <a href='#SkMatrix_invert'>invert</a>(<a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a>* <a href='SkMatrix_Reference#SkMatrix'>inverse</a>) <a href='SkMatrix_Reference#SkMatrix'>const</a>
+bool <a href='#SkMatrix_invert'>invert</a>(<a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a>* inverse) const
</pre>
-Sets <a href='#SkMatrix_invert_inverse'>inverse</a> <a href='#SkMatrix_invert_inverse'>to</a> <a href='#SkMatrix_invert_inverse'>reciprocal</a> <a href='SkMatrix_Reference#Matrix'>matrix</a>, <a href='SkMatrix_Reference#Matrix'>returning</a> <a href='SkMatrix_Reference#Matrix'>true</a> <a href='SkMatrix_Reference#Matrix'>if</a> <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> <a href='SkMatrix_Reference#SkMatrix'>can</a> <a href='SkMatrix_Reference#SkMatrix'>be</a> <a href='SkMatrix_Reference#SkMatrix'>inverted</a>.
-Geometrically, if <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> <a href='SkMatrix_Reference#SkMatrix'>maps</a> <a href='SkMatrix_Reference#SkMatrix'>from</a> <a href='SkMatrix_Reference#SkMatrix'>source</a> <a href='SkMatrix_Reference#SkMatrix'>to</a> <a href='SkMatrix_Reference#SkMatrix'>destination</a>, <a href='#SkMatrix_invert_inverse'>inverse</a> <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a>
-maps from destination to source. If <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> <a href='SkMatrix_Reference#SkMatrix'>can</a> <a href='SkMatrix_Reference#SkMatrix'>not</a> <a href='SkMatrix_Reference#SkMatrix'>be</a> <a href='SkMatrix_Reference#SkMatrix'>inverted</a>, <a href='#SkMatrix_invert_inverse'>inverse</a> <a href='#SkMatrix_invert_inverse'>is</a>
+Sets <a href='#SkMatrix_invert_inverse'>inverse</a> to reciprocal <a href='SkMatrix_Reference#Matrix'>matrix</a>, returning true if <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> can be inverted.
+Geometrically, if <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> maps from source to destination, <a href='#SkMatrix_invert_inverse'>inverse</a> <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a>
+maps from destination to source. If <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> can not be inverted, <a href='#SkMatrix_invert_inverse'>inverse</a> is
unchanged.
### Parameters
<table> <tr> <td><a name='SkMatrix_invert_inverse'><code><strong>inverse</strong></code></a></td>
- <td>storage for inverted <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a>; <a href='SkMatrix_Reference#SkMatrix'>may</a> <a href='SkMatrix_Reference#SkMatrix'>be</a> <a href='SkMatrix_Reference#SkMatrix'>nullptr</a></td>
+ <td>storage for inverted <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a>; may be nullptr</td>
</tr>
</table>
### Return Value
-true if <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> <a href='SkMatrix_Reference#SkMatrix'>can</a> <a href='SkMatrix_Reference#SkMatrix'>be</a> <a href='SkMatrix_Reference#SkMatrix'>inverted</a>
+true if <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> can be inverted
### Example
@@ -3132,16 +3132,16 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-static void <a href='#SkMatrix_SetAffineIdentity'>SetAffineIdentity</a>(<a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>affine</a>[6])
+static void <a href='#SkMatrix_SetAffineIdentity'>SetAffineIdentity</a>(<a href='undocumented#SkScalar'>SkScalar</a> affine[6])
</pre>
-Fills <a href='#SkMatrix_SetAffineIdentity_affine'>affine</a> <a href='#SkMatrix_SetAffineIdentity_affine'>with</a> <a href='#SkMatrix_SetAffineIdentity_affine'>identity</a> <a href='#SkMatrix_SetAffineIdentity_affine'>values</a> <a href='#SkMatrix_SetAffineIdentity_affine'>in</a> <a href='#SkMatrix_SetAffineIdentity_affine'>column</a> <a href='#SkMatrix_SetAffineIdentity_affine'>major</a> <a href='#SkMatrix_SetAffineIdentity_affine'>order</a>.
-Sets <a href='#SkMatrix_SetAffineIdentity_affine'>affine</a> <a href='#SkMatrix_SetAffineIdentity_affine'>to</a>:
+Fills <a href='#SkMatrix_SetAffineIdentity_affine'>affine</a> with identity values in column major order.
+Sets <a href='#SkMatrix_SetAffineIdentity_affine'>affine</a> to:
| 1 0 0 |
| 0 1 0 |
-Affine 3 by 2 <a href='SkMatrix_Reference#Matrix'>matrices</a> <a href='SkMatrix_Reference#Matrix'>in</a> <a href='SkMatrix_Reference#Matrix'>column</a> <a href='SkMatrix_Reference#Matrix'>major</a> <a href='SkMatrix_Reference#Matrix'>order</a> <a href='SkMatrix_Reference#Matrix'>are</a> <a href='SkMatrix_Reference#Matrix'>used</a> <a href='SkMatrix_Reference#Matrix'>by</a> <a href='SkMatrix_Reference#Matrix'>OpenGL</a> <a href='SkMatrix_Reference#Matrix'>and</a> <a href='SkMatrix_Reference#Matrix'>XPS</a>.
+Affine 3 by 2 <a href='SkMatrix_Reference#Matrix'>matrices</a> in column major order are used by OpenGL and XPS.
### Parameters
@@ -3171,26 +3171,26 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-bool <a href='#SkMatrix_asAffine'>asAffine</a>(<a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>affine</a>[6]) <a href='undocumented#SkScalar'>const</a>
+bool <a href='#SkMatrix_asAffine'>asAffine</a>(<a href='undocumented#SkScalar'>SkScalar</a> affine[6]) const
</pre>
-Fills <a href='#SkMatrix_asAffine_affine'>affine</a> <a href='#SkMatrix_asAffine_affine'>in</a> <a href='#SkMatrix_asAffine_affine'>column</a> <a href='#SkMatrix_asAffine_affine'>major</a> <a href='#SkMatrix_asAffine_affine'>order</a>. <a href='#SkMatrix_asAffine_affine'>Sets</a> <a href='#SkMatrix_asAffine_affine'>affine</a> <a href='#SkMatrix_asAffine_affine'>to</a>:
+Fills <a href='#SkMatrix_asAffine_affine'>affine</a> in column major order. Sets <a href='#SkMatrix_asAffine_affine'>affine</a> to:
| scale-x skew-x translate-x |
| skew-y scale-y translate-y |
-If <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> <a href='SkMatrix_Reference#SkMatrix'>contains</a> <a href='SkMatrix_Reference#SkMatrix'>perspective</a>, <a href='SkMatrix_Reference#SkMatrix'>returns</a> <a href='SkMatrix_Reference#SkMatrix'>false</a> <a href='SkMatrix_Reference#SkMatrix'>and</a> <a href='SkMatrix_Reference#SkMatrix'>leaves</a> <a href='#SkMatrix_asAffine_affine'>affine</a> <a href='#SkMatrix_asAffine_affine'>unchanged</a>.
+If <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> contains perspective, returns false and leaves <a href='#SkMatrix_asAffine_affine'>affine</a> unchanged.
### Parameters
<table> <tr> <td><a name='SkMatrix_asAffine_affine'><code><strong>affine</strong></code></a></td>
- <td>storage for 3 by 2 <a href='#SkMatrix_asAffine_affine'>affine</a> <a href='SkMatrix_Reference#Matrix'>matrix</a>; <a href='SkMatrix_Reference#Matrix'>may</a> <a href='SkMatrix_Reference#Matrix'>be</a> <a href='SkMatrix_Reference#Matrix'>nullptr</a></td>
+ <td>storage for 3 by 2 <a href='#SkMatrix_asAffine_affine'>affine</a> <a href='SkMatrix_Reference#Matrix'>matrix</a>; may be nullptr</td>
</tr>
</table>
### Return Value
-true if <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> <a href='SkMatrix_Reference#SkMatrix'>does</a> <a href='SkMatrix_Reference#SkMatrix'>not</a> <a href='SkMatrix_Reference#SkMatrix'>contain</a> <a href='SkMatrix_Reference#SkMatrix'>perspective</a>
+true if <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> does not contain perspective
### Example
@@ -3213,16 +3213,16 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-void <a href='#SkMatrix_setAffine'>setAffine</a>(<a href='#SkMatrix_setAffine'>const</a> <a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>affine</a>[6])
+void <a href='#SkMatrix_setAffine'>setAffine</a>(const <a href='undocumented#SkScalar'>SkScalar</a> affine[6])
</pre>
-Sets <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> <a href='SkMatrix_Reference#SkMatrix'>to</a> <a href='#SkMatrix_setAffine_affine'>affine</a> <a href='#SkMatrix_setAffine_affine'>values</a>, <a href='#SkMatrix_setAffine_affine'>passed</a> <a href='#SkMatrix_setAffine_affine'>in</a> <a href='#SkMatrix_setAffine_affine'>column</a> <a href='#SkMatrix_setAffine_affine'>major</a> <a href='#SkMatrix_setAffine_affine'>order</a>. <a href='#SkMatrix_setAffine_affine'>Given</a> <a href='#SkMatrix_setAffine_affine'>affine</a>,
+Sets <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> to <a href='#SkMatrix_setAffine_affine'>affine</a> values, passed in column major order. Given <a href='#SkMatrix_setAffine_affine'>affine</a>,
column, then row, as:
| scale-x skew-x translate-x |
| skew-y scale-y translate-y |
-<a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> <a href='SkMatrix_Reference#SkMatrix'>is</a> <a href='SkMatrix_Reference#SkMatrix'>set</a>, <a href='SkMatrix_Reference#SkMatrix'>row</a>, <a href='SkMatrix_Reference#SkMatrix'>then</a> <a href='SkMatrix_Reference#SkMatrix'>column</a>, <a href='SkMatrix_Reference#SkMatrix'>to</a>:
+<a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> is set, row, then column, to:
| scale-x skew-x translate-x |
| skew-y scale-y translate-y |
@@ -3259,30 +3259,30 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-void <a href='#SkMatrix_mapPoints'>mapPoints</a>(<a href='SkPoint_Reference#SkPoint'>SkPoint</a> <a href='SkPoint_Reference#SkPoint'>dst</a>[], <a href='SkPoint_Reference#SkPoint'>const</a> <a href='SkPoint_Reference#SkPoint'>SkPoint</a> <a href='SkPoint_Reference#SkPoint'>src</a>[], <a href='SkPoint_Reference#SkPoint'>int</a> <a href='SkPoint_Reference#SkPoint'>count</a>) <a href='SkPoint_Reference#SkPoint'>const</a>
+void <a href='#SkMatrix_mapPoints'>mapPoints</a>(<a href='SkPoint_Reference#SkPoint'>SkPoint</a> dst[], const <a href='SkPoint_Reference#SkPoint'>SkPoint</a> src[], int count) const
</pre>
-Maps <a href='#SkMatrix_mapPoints_src'>src</a> <a href='SkPath_Reference#Point_Array'>SkPoint array</a> <a href='SkPoint_Reference#SkPoint'>of</a> <a href='SkPoint_Reference#SkPoint'>length</a> <a href='#SkMatrix_mapPoints_count'>count</a> <a href='#SkMatrix_mapPoints_count'>to</a> <a href='#SkMatrix_mapPoints_dst'>dst</a> <a href='SkPath_Reference#Point_Array'>SkPoint array</a> <a href='SkPoint_Reference#SkPoint'>of</a> <a href='SkPoint_Reference#SkPoint'>equal</a> <a href='SkPoint_Reference#SkPoint'>or</a> <a href='SkPoint_Reference#SkPoint'>greater</a>
-length. <a href='SkPoint_Reference#SkPoint'>SkPoint</a> <a href='SkPoint_Reference#SkPoint'>are</a> <a href='SkPoint_Reference#SkPoint'>mapped</a> <a href='SkPoint_Reference#SkPoint'>by</a> <a href='SkPoint_Reference#SkPoint'>multiplying</a> <a href='SkPoint_Reference#SkPoint'>each</a> <a href='SkPoint_Reference#SkPoint'>SkPoint</a> <a href='SkPoint_Reference#SkPoint'>by</a> <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a>. <a href='SkMatrix_Reference#SkMatrix'>Given</a>:
+Maps <a href='#SkMatrix_mapPoints_src'>src</a> <a href='SkPath_Reference#Point_Array'>SkPoint array</a> of length <a href='#SkMatrix_mapPoints_count'>count</a> to <a href='#SkMatrix_mapPoints_dst'>dst</a> <a href='SkPath_Reference#Point_Array'>SkPoint array</a> of equal or greater
+length. <a href='SkPoint_Reference#SkPoint'>SkPoint</a> are mapped by multiplying each <a href='SkPoint_Reference#SkPoint'>SkPoint</a> by <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a>. Given:
| A B C | | x |
-<a href='SkMatrix_Reference#Matrix'>Matrix</a> = | <a href='SkMatrix_Reference#Matrix'>D</a> <a href='SkMatrix_Reference#Matrix'>E</a> <a href='SkMatrix_Reference#Matrix'>F</a> |, <a href='SkMatrix_Reference#Matrix'>pt</a> = | <a href='SkMatrix_Reference#Matrix'>y</a> |
+<a href='SkMatrix_Reference#Matrix'>Matrix</a> = | D E F |, pt = | y |
| G H <a href='#SkMatrix_I'>I</a> | | 1 |
where
-for (i = 0; i < <a href='#SkMatrix_mapPoints_count'>count</a>; ++<a href='#SkMatrix_mapPoints_count'>i</a>) {
-x = <a href='#SkMatrix_mapPoints_src'>src</a>[<a href='#SkMatrix_mapPoints_src'>i</a>].<a href='#SkMatrix_mapPoints_src'>fX</a>
-y = <a href='#SkMatrix_mapPoints_src'>src</a>[<a href='#SkMatrix_mapPoints_src'>i</a>].<a href='#SkMatrix_mapPoints_src'>fY</a>
+for (i = 0; i < <a href='#SkMatrix_mapPoints_count'>count</a>; ++i) {
+x = <a href='#SkMatrix_mapPoints_src'>src</a>[i].fX
+y = <a href='#SkMatrix_mapPoints_src'>src</a>[i].fY
}
-each <a href='#SkMatrix_mapPoints_dst'>dst</a> <a href='SkPoint_Reference#SkPoint'>SkPoint</a> <a href='SkPoint_Reference#SkPoint'>is</a> <a href='SkPoint_Reference#SkPoint'>computed</a> <a href='SkPoint_Reference#SkPoint'>as</a>:
+each <a href='#SkMatrix_mapPoints_dst'>dst</a> <a href='SkPoint_Reference#SkPoint'>SkPoint</a> is computed as:
|A B C| |x| Ax+By+C Dx+Ey+F
-<a href='SkMatrix_Reference#Matrix'>Matrix</a> * <a href='SkMatrix_Reference#Matrix'>pt</a> = |<a href='SkMatrix_Reference#Matrix'>D</a> <a href='SkMatrix_Reference#Matrix'>E</a> <a href='SkMatrix_Reference#Matrix'>F</a>| |<a href='SkMatrix_Reference#Matrix'>y</a>| = |<a href='SkMatrix_Reference#Matrix'>Ax</a>+<a href='SkMatrix_Reference#Matrix'>By</a>+<a href='SkMatrix_Reference#Matrix'>C</a> <a href='SkMatrix_Reference#Matrix'>Dx</a>+<a href='SkMatrix_Reference#Matrix'>Ey</a>+<a href='SkMatrix_Reference#Matrix'>F</a> <a href='SkMatrix_Reference#Matrix'>Gx</a>+<a href='SkMatrix_Reference#Matrix'>Hy</a>+<a href='#SkMatrix_I'>I</a>| = ------- , -------
-|G H <a href='#SkMatrix_I'>I</a>| |1| <a href='#SkMatrix_I'>Gx</a>+<a href='#SkMatrix_I'>Hy</a>+<a href='#SkMatrix_I'>I</a> <a href='#SkMatrix_I'>Gx</a>+<a href='#SkMatrix_I'>Hy</a>+<a href='#SkMatrix_I'>I</a>
+<a href='SkMatrix_Reference#Matrix'>Matrix</a> * pt = |D E F| |y| = |Ax+By+C Dx+Ey+F Gx+Hy+<a href='#SkMatrix_I'>I</a>| = ------- , -------
+|G H <a href='#SkMatrix_I'>I</a>| |1| Gx+Hy+<a href='#SkMatrix_I'>I</a> Gx+Hy+<a href='#SkMatrix_I'>I</a>
-<a href='#SkMatrix_mapPoints_src'>src</a> <a href='#SkMatrix_mapPoints_src'>and</a> <a href='#SkMatrix_mapPoints_dst'>dst</a> <a href='#SkMatrix_mapPoints_dst'>may</a> <a href='SkPoint_Reference#Point'>point</a> <a href='SkPoint_Reference#Point'>to</a> <a href='SkPoint_Reference#Point'>the</a> <a href='SkPoint_Reference#Point'>same</a> <a href='SkPoint_Reference#Point'>storage</a>.
+<a href='#SkMatrix_mapPoints_src'>src</a> and <a href='#SkMatrix_mapPoints_dst'>dst</a> may <a href='SkPoint_Reference#Point'>point</a> to the same storage.
### Parameters
@@ -3290,10 +3290,10 @@
<td>storage for mapped <a href='SkPoint_Reference#SkPoint'>SkPoint</a></td>
</tr>
<tr> <td><a name='SkMatrix_mapPoints_src'><code><strong>src</strong></code></a></td>
- <td><a href='SkPoint_Reference#SkPoint'>SkPoint</a> <a href='SkPoint_Reference#SkPoint'>to</a> <a href='SkPoint_Reference#SkPoint'>transform</a></td>
+ <td><a href='SkPoint_Reference#SkPoint'>SkPoint</a> to transform</td>
</tr>
<tr> <td><a name='SkMatrix_mapPoints_count'><code><strong>count</strong></code></a></td>
- <td>number of <a href='SkPoint_Reference#SkPoint'>SkPoint</a> <a href='SkPoint_Reference#SkPoint'>to</a> <a href='SkPoint_Reference#SkPoint'>transform</a></td>
+ <td>number of <a href='SkPoint_Reference#SkPoint'>SkPoint</a> to transform</td>
</tr>
</table>
@@ -3310,28 +3310,28 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-void <a href='#SkMatrix_mapPoints'>mapPoints</a>(<a href='SkPoint_Reference#SkPoint'>SkPoint</a> <a href='SkPoint_Reference#SkPoint'>pts</a>[], <a href='SkPoint_Reference#SkPoint'>int</a> <a href='SkPoint_Reference#SkPoint'>count</a>) <a href='SkPoint_Reference#SkPoint'>const</a>
+void <a href='#SkMatrix_mapPoints'>mapPoints</a>(<a href='SkPoint_Reference#SkPoint'>SkPoint</a> pts[], int count) const
</pre>
-Maps <a href='#SkMatrix_mapPoints_2_pts'>pts</a> <a href='SkPath_Reference#Point_Array'>SkPoint array</a> <a href='SkPoint_Reference#SkPoint'>of</a> <a href='SkPoint_Reference#SkPoint'>length</a> <a href='#SkMatrix_mapPoints_2_count'>count</a> <a href='#SkMatrix_mapPoints_2_count'>in</a> <a href='#SkMatrix_mapPoints_2_count'>place</a>. <a href='SkPoint_Reference#SkPoint'>SkPoint</a> <a href='SkPoint_Reference#SkPoint'>are</a> <a href='SkPoint_Reference#SkPoint'>mapped</a> <a href='SkPoint_Reference#SkPoint'>by</a> <a href='SkPoint_Reference#SkPoint'>multiplying</a>
-each <a href='SkPoint_Reference#SkPoint'>SkPoint</a> <a href='SkPoint_Reference#SkPoint'>by</a> <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a>. <a href='SkMatrix_Reference#SkMatrix'>Given</a>:
+Maps <a href='#SkMatrix_mapPoints_2_pts'>pts</a> <a href='SkPath_Reference#Point_Array'>SkPoint array</a> of length <a href='#SkMatrix_mapPoints_2_count'>count</a> in place. <a href='SkPoint_Reference#SkPoint'>SkPoint</a> are mapped by multiplying
+each <a href='SkPoint_Reference#SkPoint'>SkPoint</a> by <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a>. Given:
| A B C | | x |
-<a href='SkMatrix_Reference#Matrix'>Matrix</a> = | <a href='SkMatrix_Reference#Matrix'>D</a> <a href='SkMatrix_Reference#Matrix'>E</a> <a href='SkMatrix_Reference#Matrix'>F</a> |, <a href='SkMatrix_Reference#Matrix'>pt</a> = | <a href='SkMatrix_Reference#Matrix'>y</a> |
+<a href='SkMatrix_Reference#Matrix'>Matrix</a> = | D E F |, pt = | y |
| G H <a href='#SkMatrix_I'>I</a> | | 1 |
where
-for (i = 0; i < <a href='#SkMatrix_mapPoints_2_count'>count</a>; ++<a href='#SkMatrix_mapPoints_2_count'>i</a>) {
-x = <a href='#SkMatrix_mapPoints_2_pts'>pts</a>[<a href='#SkMatrix_mapPoints_2_pts'>i</a>].<a href='#SkMatrix_mapPoints_2_pts'>fX</a>
-y = <a href='#SkMatrix_mapPoints_2_pts'>pts</a>[<a href='#SkMatrix_mapPoints_2_pts'>i</a>].<a href='#SkMatrix_mapPoints_2_pts'>fY</a>
+for (i = 0; i < <a href='#SkMatrix_mapPoints_2_count'>count</a>; ++i) {
+x = <a href='#SkMatrix_mapPoints_2_pts'>pts</a>[i].fX
+y = <a href='#SkMatrix_mapPoints_2_pts'>pts</a>[i].fY
}
-each resulting <a href='#SkMatrix_mapPoints_2_pts'>pts</a> <a href='SkPoint_Reference#SkPoint'>SkPoint</a> <a href='SkPoint_Reference#SkPoint'>is</a> <a href='SkPoint_Reference#SkPoint'>computed</a> <a href='SkPoint_Reference#SkPoint'>as</a>:
+each resulting <a href='#SkMatrix_mapPoints_2_pts'>pts</a> <a href='SkPoint_Reference#SkPoint'>SkPoint</a> is computed as:
|A B C| |x| Ax+By+C Dx+Ey+F
-<a href='SkMatrix_Reference#Matrix'>Matrix</a> * <a href='SkMatrix_Reference#Matrix'>pt</a> = |<a href='SkMatrix_Reference#Matrix'>D</a> <a href='SkMatrix_Reference#Matrix'>E</a> <a href='SkMatrix_Reference#Matrix'>F</a>| |<a href='SkMatrix_Reference#Matrix'>y</a>| = |<a href='SkMatrix_Reference#Matrix'>Ax</a>+<a href='SkMatrix_Reference#Matrix'>By</a>+<a href='SkMatrix_Reference#Matrix'>C</a> <a href='SkMatrix_Reference#Matrix'>Dx</a>+<a href='SkMatrix_Reference#Matrix'>Ey</a>+<a href='SkMatrix_Reference#Matrix'>F</a> <a href='SkMatrix_Reference#Matrix'>Gx</a>+<a href='SkMatrix_Reference#Matrix'>Hy</a>+<a href='#SkMatrix_I'>I</a>| = ------- , -------
-|G H <a href='#SkMatrix_I'>I</a>| |1| <a href='#SkMatrix_I'>Gx</a>+<a href='#SkMatrix_I'>Hy</a>+<a href='#SkMatrix_I'>I</a> <a href='#SkMatrix_I'>Gx</a>+<a href='#SkMatrix_I'>Hy</a>+<a href='#SkMatrix_I'>I</a>
+<a href='SkMatrix_Reference#Matrix'>Matrix</a> * pt = |D E F| |y| = |Ax+By+C Dx+Ey+F Gx+Hy+<a href='#SkMatrix_I'>I</a>| = ------- , -------
+|G H <a href='#SkMatrix_I'>I</a>| |1| Gx+Hy+<a href='#SkMatrix_I'>I</a> Gx+Hy+<a href='#SkMatrix_I'>I</a>
### Parameters
@@ -3339,7 +3339,7 @@
<td>storage for mapped <a href='SkPoint_Reference#SkPoint'>SkPoint</a></td>
</tr>
<tr> <td><a name='SkMatrix_mapPoints_2_count'><code><strong>count</strong></code></a></td>
- <td>number of <a href='SkPoint_Reference#SkPoint'>SkPoint</a> <a href='SkPoint_Reference#SkPoint'>to</a> <a href='SkPoint_Reference#SkPoint'>transform</a></td>
+ <td>number of <a href='SkPoint_Reference#SkPoint'>SkPoint</a> to transform</td>
</tr>
</table>
@@ -3356,32 +3356,32 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-void <a href='#SkMatrix_mapHomogeneousPoints'>mapHomogeneousPoints</a>(<a href='undocumented#SkPoint3'>SkPoint3</a> <a href='undocumented#SkPoint3'>dst</a>[], <a href='undocumented#SkPoint3'>const</a> <a href='undocumented#SkPoint3'>SkPoint3</a> <a href='undocumented#SkPoint3'>src</a>[], <a href='undocumented#SkPoint3'>int</a> <a href='undocumented#SkPoint3'>count</a>) <a href='undocumented#SkPoint3'>const</a>
+void <a href='#SkMatrix_mapHomogeneousPoints'>mapHomogeneousPoints</a>(<a href='undocumented#SkPoint3'>SkPoint3</a> dst[], const <a href='undocumented#SkPoint3'>SkPoint3</a> src[], int count) const
</pre>
-Maps <a href='#SkMatrix_mapHomogeneousPoints_src'>src</a> <a href='undocumented#SkPoint3'>SkPoint3</a> <a href='undocumented#SkPoint3'>array</a> <a href='undocumented#SkPoint3'>of</a> <a href='undocumented#SkPoint3'>length</a> <a href='#SkMatrix_mapHomogeneousPoints_count'>count</a> <a href='#SkMatrix_mapHomogeneousPoints_count'>to</a> <a href='#SkMatrix_mapHomogeneousPoints_dst'>dst</a> <a href='undocumented#SkPoint3'>SkPoint3</a> <a href='undocumented#SkPoint3'>array</a>, <a href='undocumented#SkPoint3'>which</a> <a href='undocumented#SkPoint3'>must</a> <a href='undocumented#SkPoint3'>of</a> <a href='undocumented#SkPoint3'>length</a> <a href='#SkMatrix_mapHomogeneousPoints_count'>count</a> <a href='#SkMatrix_mapHomogeneousPoints_count'>or</a>
-greater. <a href='undocumented#SkPoint3'>SkPoint3</a> <a href='undocumented#SkPoint3'>array</a> <a href='undocumented#SkPoint3'>is</a> <a href='undocumented#SkPoint3'>mapped</a> <a href='undocumented#SkPoint3'>by</a> <a href='undocumented#SkPoint3'>multiplying</a> <a href='undocumented#SkPoint3'>each</a> <a href='undocumented#SkPoint3'>SkPoint3</a> <a href='undocumented#SkPoint3'>by</a> <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a>. <a href='SkMatrix_Reference#SkMatrix'>Given</a>:
+Maps <a href='#SkMatrix_mapHomogeneousPoints_src'>src</a> <a href='undocumented#SkPoint3'>SkPoint3</a> array of length <a href='#SkMatrix_mapHomogeneousPoints_count'>count</a> to <a href='#SkMatrix_mapHomogeneousPoints_dst'>dst</a> <a href='undocumented#SkPoint3'>SkPoint3</a> array, which must of length <a href='#SkMatrix_mapHomogeneousPoints_count'>count</a> or
+greater. <a href='undocumented#SkPoint3'>SkPoint3</a> array is mapped by multiplying each <a href='undocumented#SkPoint3'>SkPoint3</a> by <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a>. Given:
| A B C | | x |
-<a href='SkMatrix_Reference#Matrix'>Matrix</a> = | <a href='SkMatrix_Reference#Matrix'>D</a> <a href='SkMatrix_Reference#Matrix'>E</a> <a href='SkMatrix_Reference#Matrix'>F</a> |, <a href='#SkMatrix_mapHomogeneousPoints_src'>src</a> = | <a href='#SkMatrix_mapHomogeneousPoints_src'>y</a> |
-| G H <a href='#SkMatrix_I'>I</a> | | <a href='#SkMatrix_I'>z</a> |
+<a href='SkMatrix_Reference#Matrix'>Matrix</a> = | D E F |, <a href='#SkMatrix_mapHomogeneousPoints_src'>src</a> = | y |
+| G H <a href='#SkMatrix_I'>I</a> | | z |
-each resulting <a href='#SkMatrix_mapHomogeneousPoints_dst'>dst</a> <a href='SkPoint_Reference#SkPoint'>SkPoint</a> <a href='SkPoint_Reference#SkPoint'>is</a> <a href='SkPoint_Reference#SkPoint'>computed</a> <a href='SkPoint_Reference#SkPoint'>as</a>:
+each resulting <a href='#SkMatrix_mapHomogeneousPoints_dst'>dst</a> <a href='SkPoint_Reference#SkPoint'>SkPoint</a> is computed as:
|A B C| |x|
-<a href='SkMatrix_Reference#Matrix'>Matrix</a> * <a href='#SkMatrix_mapHomogeneousPoints_src'>src</a> = |<a href='#SkMatrix_mapHomogeneousPoints_src'>D</a> <a href='#SkMatrix_mapHomogeneousPoints_src'>E</a> <a href='#SkMatrix_mapHomogeneousPoints_src'>F</a>| |<a href='#SkMatrix_mapHomogeneousPoints_src'>y</a>| = |<a href='#SkMatrix_mapHomogeneousPoints_src'>Ax</a>+<a href='#SkMatrix_mapHomogeneousPoints_src'>By</a>+<a href='#SkMatrix_mapHomogeneousPoints_src'>Cz</a> <a href='#SkMatrix_mapHomogeneousPoints_src'>Dx</a>+<a href='#SkMatrix_mapHomogeneousPoints_src'>Ey</a>+<a href='#SkMatrix_mapHomogeneousPoints_src'>Fz</a> <a href='#SkMatrix_mapHomogeneousPoints_src'>Gx</a>+<a href='#SkMatrix_mapHomogeneousPoints_src'>Hy</a>+<a href='#SkMatrix_mapHomogeneousPoints_src'>Iz</a>|
-|G H <a href='#SkMatrix_I'>I</a>| |<a href='#SkMatrix_I'>z</a>|
+<a href='SkMatrix_Reference#Matrix'>Matrix</a> * <a href='#SkMatrix_mapHomogeneousPoints_src'>src</a> = |D E F| |y| = |Ax+By+Cz Dx+Ey+Fz Gx+Hy+Iz|
+|G H <a href='#SkMatrix_I'>I</a>| |z|
### Parameters
<table> <tr> <td><a name='SkMatrix_mapHomogeneousPoints_dst'><code><strong>dst</strong></code></a></td>
- <td>storage for mapped <a href='undocumented#SkPoint3'>SkPoint3</a> <a href='undocumented#SkPoint3'>array</a></td>
+ <td>storage for mapped <a href='undocumented#SkPoint3'>SkPoint3</a> array</td>
</tr>
<tr> <td><a name='SkMatrix_mapHomogeneousPoints_src'><code><strong>src</strong></code></a></td>
- <td><a href='undocumented#SkPoint3'>SkPoint3</a> <a href='undocumented#SkPoint3'>array</a> <a href='undocumented#SkPoint3'>to</a> <a href='undocumented#SkPoint3'>transform</a></td>
+ <td><a href='undocumented#SkPoint3'>SkPoint3</a> array to transform</td>
</tr>
<tr> <td><a name='SkMatrix_mapHomogeneousPoints_count'><code><strong>count</strong></code></a></td>
- <td>items in <a href='undocumented#SkPoint3'>SkPoint3</a> <a href='undocumented#SkPoint3'>array</a> <a href='undocumented#SkPoint3'>to</a> <a href='undocumented#SkPoint3'>transform</a></td>
+ <td>items in <a href='undocumented#SkPoint3'>SkPoint3</a> array to transform</td>
</tr>
</table>
@@ -3398,28 +3398,28 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-void <a href='#SkMatrix_mapXY'>mapXY</a>(<a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>x</a>, <a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>y</a>, <a href='SkPoint_Reference#SkPoint'>SkPoint</a>* <a href='SkPoint_Reference#SkPoint'>result</a>) <a href='SkPoint_Reference#SkPoint'>const</a>
+void <a href='#SkMatrix_mapXY'>mapXY</a>(<a href='undocumented#SkScalar'>SkScalar</a> x, <a href='undocumented#SkScalar'>SkScalar</a> y, <a href='SkPoint_Reference#SkPoint'>SkPoint</a>* result) const
</pre>
-Maps <a href='SkPoint_Reference#SkPoint'>SkPoint</a> (<a href='#SkMatrix_mapXY_x'>x</a>, <a href='#SkMatrix_mapXY_y'>y</a>) <a href='#SkMatrix_mapXY_y'>to</a> <a href='#SkMatrix_mapXY_result'>result</a>. <a href='SkPoint_Reference#SkPoint'>SkPoint</a> <a href='SkPoint_Reference#SkPoint'>is</a> <a href='SkPoint_Reference#SkPoint'>mapped</a> <a href='SkPoint_Reference#SkPoint'>by</a> <a href='SkPoint_Reference#SkPoint'>multiplying</a> <a href='SkPoint_Reference#SkPoint'>by</a> <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a>. <a href='SkMatrix_Reference#SkMatrix'>Given</a>:
+Maps <a href='SkPoint_Reference#SkPoint'>SkPoint</a> (<a href='#SkMatrix_mapXY_x'>x</a>, <a href='#SkMatrix_mapXY_y'>y</a>) to <a href='#SkMatrix_mapXY_result'>result</a>. <a href='SkPoint_Reference#SkPoint'>SkPoint</a> is mapped by multiplying by <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a>. Given:
| A B C | | <a href='#SkMatrix_mapXY_x'>x</a> |
-<a href='SkMatrix_Reference#Matrix'>Matrix</a> = | <a href='SkMatrix_Reference#Matrix'>D</a> <a href='SkMatrix_Reference#Matrix'>E</a> <a href='SkMatrix_Reference#Matrix'>F</a> |, <a href='SkMatrix_Reference#Matrix'>pt</a> = | <a href='#SkMatrix_mapXY_y'>y</a> |
+<a href='SkMatrix_Reference#Matrix'>Matrix</a> = | D E F |, pt = | <a href='#SkMatrix_mapXY_y'>y</a> |
| G H <a href='#SkMatrix_I'>I</a> | | 1 |
-<a href='#SkMatrix_mapXY_result'>result</a> <a href='#SkMatrix_mapXY_result'>is</a> <a href='#SkMatrix_mapXY_result'>computed</a> <a href='#SkMatrix_mapXY_result'>as</a>:
+<a href='#SkMatrix_mapXY_result'>result</a> is computed as:
-|A B C| |<a href='#SkMatrix_mapXY_x'>x</a>| <a href='#SkMatrix_mapXY_x'>Ax</a>+<a href='#SkMatrix_mapXY_x'>By</a>+<a href='#SkMatrix_mapXY_x'>C</a> <a href='#SkMatrix_mapXY_x'>Dx</a>+<a href='#SkMatrix_mapXY_x'>Ey</a>+<a href='#SkMatrix_mapXY_x'>F</a>
-<a href='SkMatrix_Reference#Matrix'>Matrix</a> * <a href='SkMatrix_Reference#Matrix'>pt</a> = |<a href='SkMatrix_Reference#Matrix'>D</a> <a href='SkMatrix_Reference#Matrix'>E</a> <a href='SkMatrix_Reference#Matrix'>F</a>| |<a href='#SkMatrix_mapXY_y'>y</a>| = |<a href='#SkMatrix_mapXY_y'>Ax</a>+<a href='#SkMatrix_mapXY_y'>By</a>+<a href='#SkMatrix_mapXY_y'>C</a> <a href='#SkMatrix_mapXY_y'>Dx</a>+<a href='#SkMatrix_mapXY_y'>Ey</a>+<a href='#SkMatrix_mapXY_y'>F</a> <a href='#SkMatrix_mapXY_y'>Gx</a>+<a href='#SkMatrix_mapXY_y'>Hy</a>+<a href='#SkMatrix_I'>I</a>| = ------- , -------
-|G H <a href='#SkMatrix_I'>I</a>| |1| <a href='#SkMatrix_I'>Gx</a>+<a href='#SkMatrix_I'>Hy</a>+<a href='#SkMatrix_I'>I</a> <a href='#SkMatrix_I'>Gx</a>+<a href='#SkMatrix_I'>Hy</a>+<a href='#SkMatrix_I'>I</a>
+|A B C| |<a href='#SkMatrix_mapXY_x'>x</a>| Ax+By+C Dx+Ey+F
+<a href='SkMatrix_Reference#Matrix'>Matrix</a> * pt = |D E F| |<a href='#SkMatrix_mapXY_y'>y</a>| = |Ax+By+C Dx+Ey+F Gx+Hy+<a href='#SkMatrix_I'>I</a>| = ------- , -------
+|G H <a href='#SkMatrix_I'>I</a>| |1| Gx+Hy+<a href='#SkMatrix_I'>I</a> Gx+Hy+<a href='#SkMatrix_I'>I</a>
### Parameters
<table> <tr> <td><a name='SkMatrix_mapXY_x'><code><strong>x</strong></code></a></td>
- <td>x-axis value of <a href='SkPoint_Reference#SkPoint'>SkPoint</a> <a href='SkPoint_Reference#SkPoint'>to</a> <a href='SkPoint_Reference#SkPoint'>map</a></td>
+ <td>x-axis value of <a href='SkPoint_Reference#SkPoint'>SkPoint</a> to map</td>
</tr>
<tr> <td><a name='SkMatrix_mapXY_y'><code><strong>y</strong></code></a></td>
- <td>y-axis value of <a href='SkPoint_Reference#SkPoint'>SkPoint</a> <a href='SkPoint_Reference#SkPoint'>to</a> <a href='SkPoint_Reference#SkPoint'>map</a></td>
+ <td>y-axis value of <a href='SkPoint_Reference#SkPoint'>SkPoint</a> to map</td>
</tr>
<tr> <td><a name='SkMatrix_mapXY_result'><code><strong>result</strong></code></a></td>
<td>storage for mapped <a href='SkPoint_Reference#SkPoint'>SkPoint</a></td>
@@ -3439,28 +3439,28 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-<a href='SkPoint_Reference#SkPoint'>SkPoint</a> <a href='#SkMatrix_mapXY'>mapXY</a>(<a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>x</a>, <a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>y</a>) <a href='undocumented#SkScalar'>const</a>
+<a href='SkPoint_Reference#SkPoint'>SkPoint</a> <a href='#SkMatrix_mapXY'>mapXY</a>(<a href='undocumented#SkScalar'>SkScalar</a> x, <a href='undocumented#SkScalar'>SkScalar</a> y) const
</pre>
-Returns <a href='SkPoint_Reference#SkPoint'>SkPoint</a> (<a href='#SkMatrix_mapXY_2_x'>x</a>, <a href='#SkMatrix_mapXY_2_y'>y</a>) <a href='#SkMatrix_mapXY_2_y'>multiplied</a> <a href='#SkMatrix_mapXY_2_y'>by</a> <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a>. <a href='SkMatrix_Reference#SkMatrix'>Given</a>:
+Returns <a href='SkPoint_Reference#SkPoint'>SkPoint</a> (<a href='#SkMatrix_mapXY_2_x'>x</a>, <a href='#SkMatrix_mapXY_2_y'>y</a>) multiplied by <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a>. Given:
| A B C | | <a href='#SkMatrix_mapXY_2_x'>x</a> |
-<a href='SkMatrix_Reference#Matrix'>Matrix</a> = | <a href='SkMatrix_Reference#Matrix'>D</a> <a href='SkMatrix_Reference#Matrix'>E</a> <a href='SkMatrix_Reference#Matrix'>F</a> |, <a href='SkMatrix_Reference#Matrix'>pt</a> = | <a href='#SkMatrix_mapXY_2_y'>y</a> |
+<a href='SkMatrix_Reference#Matrix'>Matrix</a> = | D E F |, pt = | <a href='#SkMatrix_mapXY_2_y'>y</a> |
| G H <a href='#SkMatrix_I'>I</a> | | 1 |
result is computed as:
-|A B C| |<a href='#SkMatrix_mapXY_2_x'>x</a>| <a href='#SkMatrix_mapXY_2_x'>Ax</a>+<a href='#SkMatrix_mapXY_2_x'>By</a>+<a href='#SkMatrix_mapXY_2_x'>C</a> <a href='#SkMatrix_mapXY_2_x'>Dx</a>+<a href='#SkMatrix_mapXY_2_x'>Ey</a>+<a href='#SkMatrix_mapXY_2_x'>F</a>
-<a href='SkMatrix_Reference#Matrix'>Matrix</a> * <a href='SkMatrix_Reference#Matrix'>pt</a> = |<a href='SkMatrix_Reference#Matrix'>D</a> <a href='SkMatrix_Reference#Matrix'>E</a> <a href='SkMatrix_Reference#Matrix'>F</a>| |<a href='#SkMatrix_mapXY_2_y'>y</a>| = |<a href='#SkMatrix_mapXY_2_y'>Ax</a>+<a href='#SkMatrix_mapXY_2_y'>By</a>+<a href='#SkMatrix_mapXY_2_y'>C</a> <a href='#SkMatrix_mapXY_2_y'>Dx</a>+<a href='#SkMatrix_mapXY_2_y'>Ey</a>+<a href='#SkMatrix_mapXY_2_y'>F</a> <a href='#SkMatrix_mapXY_2_y'>Gx</a>+<a href='#SkMatrix_mapXY_2_y'>Hy</a>+<a href='#SkMatrix_I'>I</a>| = ------- , -------
-|G H <a href='#SkMatrix_I'>I</a>| |1| <a href='#SkMatrix_I'>Gx</a>+<a href='#SkMatrix_I'>Hy</a>+<a href='#SkMatrix_I'>I</a> <a href='#SkMatrix_I'>Gx</a>+<a href='#SkMatrix_I'>Hy</a>+<a href='#SkMatrix_I'>I</a>
+|A B C| |<a href='#SkMatrix_mapXY_2_x'>x</a>| Ax+By+C Dx+Ey+F
+<a href='SkMatrix_Reference#Matrix'>Matrix</a> * pt = |D E F| |<a href='#SkMatrix_mapXY_2_y'>y</a>| = |Ax+By+C Dx+Ey+F Gx+Hy+<a href='#SkMatrix_I'>I</a>| = ------- , -------
+|G H <a href='#SkMatrix_I'>I</a>| |1| Gx+Hy+<a href='#SkMatrix_I'>I</a> Gx+Hy+<a href='#SkMatrix_I'>I</a>
### Parameters
<table> <tr> <td><a name='SkMatrix_mapXY_2_x'><code><strong>x</strong></code></a></td>
- <td>x-axis value of <a href='SkPoint_Reference#SkPoint'>SkPoint</a> <a href='SkPoint_Reference#SkPoint'>to</a> <a href='SkPoint_Reference#SkPoint'>map</a></td>
+ <td>x-axis value of <a href='SkPoint_Reference#SkPoint'>SkPoint</a> to map</td>
</tr>
<tr> <td><a name='SkMatrix_mapXY_2_y'><code><strong>y</strong></code></a></td>
- <td>y-axis value of <a href='SkPoint_Reference#SkPoint'>SkPoint</a> <a href='SkPoint_Reference#SkPoint'>to</a> <a href='SkPoint_Reference#SkPoint'>map</a></td>
+ <td>y-axis value of <a href='SkPoint_Reference#SkPoint'>SkPoint</a> to map</td>
</tr>
</table>
@@ -3481,31 +3481,31 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-void <a href='#SkMatrix_mapVectors'>mapVectors</a>(<a href='SkPoint_Reference#SkVector'>SkVector</a> <a href='SkPoint_Reference#SkVector'>dst</a>[], <a href='SkPoint_Reference#SkVector'>const</a> <a href='SkPoint_Reference#SkVector'>SkVector</a> <a href='SkPoint_Reference#SkVector'>src</a>[], <a href='SkPoint_Reference#SkVector'>int</a> <a href='SkPoint_Reference#SkVector'>count</a>) <a href='SkPoint_Reference#SkVector'>const</a>
+void <a href='#SkMatrix_mapVectors'>mapVectors</a>(<a href='SkPoint_Reference#SkVector'>SkVector</a> dst[], const <a href='SkPoint_Reference#SkVector'>SkVector</a> src[], int count) const
</pre>
-Maps <a href='#SkMatrix_mapVectors_src'>src</a> <a href='SkPoint_Reference#Vector'>vector</a> <a href='SkPoint_Reference#Vector'>array</a> <a href='SkPoint_Reference#Vector'>of</a> <a href='SkPoint_Reference#Vector'>length</a> <a href='#SkMatrix_mapVectors_count'>count</a> <a href='#SkMatrix_mapVectors_count'>to</a> <a href='SkPoint_Reference#Vector'>vector</a> <a href='SkPath_Reference#Point_Array'>SkPoint array</a> <a href='SkPoint_Reference#SkPoint'>of</a> <a href='SkPoint_Reference#SkPoint'>equal</a> <a href='SkPoint_Reference#SkPoint'>or</a> <a href='SkPoint_Reference#SkPoint'>greater</a>
-length. <a href='SkPoint_Reference#Vector'>Vectors</a> <a href='SkPoint_Reference#Vector'>are</a> <a href='SkPoint_Reference#Vector'>mapped</a> <a href='SkPoint_Reference#Vector'>by</a> <a href='SkPoint_Reference#Vector'>multiplying</a> <a href='SkPoint_Reference#Vector'>each</a> <a href='SkPoint_Reference#Vector'>vector</a> <a href='SkPoint_Reference#Vector'>by</a> <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a>, <a href='SkMatrix_Reference#SkMatrix'>treating</a>
-<a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> <a href='SkMatrix_Reference#SkMatrix'>translation</a> <a href='SkMatrix_Reference#SkMatrix'>as</a> <a href='SkMatrix_Reference#SkMatrix'>zero</a>. <a href='SkMatrix_Reference#SkMatrix'>Given</a>:
+Maps <a href='#SkMatrix_mapVectors_src'>src</a> <a href='SkPoint_Reference#Vector'>vector</a> array of length <a href='#SkMatrix_mapVectors_count'>count</a> to <a href='SkPoint_Reference#Vector'>vector</a> <a href='SkPath_Reference#Point_Array'>SkPoint array</a> of equal or greater
+length. <a href='SkPoint_Reference#Vector'>Vectors</a> are mapped by multiplying each <a href='SkPoint_Reference#Vector'>vector</a> by <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a>, treating
+<a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> translation as zero. Given:
| A B 0 | | x |
-<a href='SkMatrix_Reference#Matrix'>Matrix</a> = | <a href='SkMatrix_Reference#Matrix'>D</a> <a href='SkMatrix_Reference#Matrix'>E</a> 0 |, <a href='#SkMatrix_mapVectors_src'>src</a> = | <a href='#SkMatrix_mapVectors_src'>y</a> |
+<a href='SkMatrix_Reference#Matrix'>Matrix</a> = | D E 0 |, <a href='#SkMatrix_mapVectors_src'>src</a> = | y |
| G H <a href='#SkMatrix_I'>I</a> | | 1 |
where
-for (i = 0; i < <a href='#SkMatrix_mapVectors_count'>count</a>; ++<a href='#SkMatrix_mapVectors_count'>i</a>) {
-x = <a href='#SkMatrix_mapVectors_src'>src</a>[<a href='#SkMatrix_mapVectors_src'>i</a>].<a href='#SkMatrix_mapVectors_src'>fX</a>
-y = <a href='#SkMatrix_mapVectors_src'>src</a>[<a href='#SkMatrix_mapVectors_src'>i</a>].<a href='#SkMatrix_mapVectors_src'>fY</a>
+for (i = 0; i < <a href='#SkMatrix_mapVectors_count'>count</a>; ++i) {
+x = <a href='#SkMatrix_mapVectors_src'>src</a>[i].fX
+y = <a href='#SkMatrix_mapVectors_src'>src</a>[i].fY
}
-each <a href='#SkMatrix_mapVectors_dst'>dst</a> <a href='SkPoint_Reference#Vector'>vector</a> <a href='SkPoint_Reference#Vector'>is</a> <a href='SkPoint_Reference#Vector'>computed</a> <a href='SkPoint_Reference#Vector'>as</a>:
+each <a href='#SkMatrix_mapVectors_dst'>dst</a> <a href='SkPoint_Reference#Vector'>vector</a> is computed as:
|A B 0| |x| Ax+By Dx+Ey
-<a href='SkMatrix_Reference#Matrix'>Matrix</a> * <a href='#SkMatrix_mapVectors_src'>src</a> = |<a href='#SkMatrix_mapVectors_src'>D</a> <a href='#SkMatrix_mapVectors_src'>E</a> 0| |<a href='#SkMatrix_mapVectors_src'>y</a>| = |<a href='#SkMatrix_mapVectors_src'>Ax</a>+<a href='#SkMatrix_mapVectors_src'>By</a> <a href='#SkMatrix_mapVectors_src'>Dx</a>+<a href='#SkMatrix_mapVectors_src'>Ey</a> <a href='#SkMatrix_mapVectors_src'>Gx</a>+<a href='#SkMatrix_mapVectors_src'>Hy</a>+<a href='#SkMatrix_I'>I</a>| = ------- , -------
-|G H <a href='#SkMatrix_I'>I</a>| |1| <a href='#SkMatrix_I'>Gx</a>+<a href='#SkMatrix_I'>Hy</a>+<a href='#SkMatrix_I'>I</a> <a href='#SkMatrix_I'>Gx</a>+<a href='#SkMatrix_I'>Hy</a>+<a href='#SkMatrix_I'>I</a>
+<a href='SkMatrix_Reference#Matrix'>Matrix</a> * <a href='#SkMatrix_mapVectors_src'>src</a> = |D E 0| |y| = |Ax+By Dx+Ey Gx+Hy+<a href='#SkMatrix_I'>I</a>| = ------- , -------
+|G H <a href='#SkMatrix_I'>I</a>| |1| Gx+Hy+<a href='#SkMatrix_I'>I</a> Gx+Hy+<a href='#SkMatrix_I'>I</a>
-<a href='#SkMatrix_mapVectors_src'>src</a> <a href='#SkMatrix_mapVectors_src'>and</a> <a href='#SkMatrix_mapVectors_dst'>dst</a> <a href='#SkMatrix_mapVectors_dst'>may</a> <a href='SkPoint_Reference#Point'>point</a> <a href='SkPoint_Reference#Point'>to</a> <a href='SkPoint_Reference#Point'>the</a> <a href='SkPoint_Reference#Point'>same</a> <a href='SkPoint_Reference#Point'>storage</a>.
+<a href='#SkMatrix_mapVectors_src'>src</a> and <a href='#SkMatrix_mapVectors_dst'>dst</a> may <a href='SkPoint_Reference#Point'>point</a> to the same storage.
### Parameters
@@ -3513,10 +3513,10 @@
<td>storage for mapped <a href='SkPoint_Reference#Vector'>vectors</a></td>
</tr>
<tr> <td><a name='SkMatrix_mapVectors_src'><code><strong>src</strong></code></a></td>
- <td><a href='SkPoint_Reference#Vector'>vectors</a> <a href='SkPoint_Reference#Vector'>to</a> <a href='SkPoint_Reference#Vector'>transform</a></td>
+ <td><a href='SkPoint_Reference#Vector'>vectors</a> to transform</td>
</tr>
<tr> <td><a name='SkMatrix_mapVectors_count'><code><strong>count</strong></code></a></td>
- <td>number of <a href='SkPoint_Reference#Vector'>vectors</a> <a href='SkPoint_Reference#Vector'>to</a> <a href='SkPoint_Reference#Vector'>transform</a></td>
+ <td>number of <a href='SkPoint_Reference#Vector'>vectors</a> to transform</td>
</tr>
</table>
@@ -3533,36 +3533,36 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-void <a href='#SkMatrix_mapVectors'>mapVectors</a>(<a href='SkPoint_Reference#SkVector'>SkVector</a> <a href='SkPoint_Reference#SkVector'>vecs</a>[], <a href='SkPoint_Reference#SkVector'>int</a> <a href='SkPoint_Reference#SkVector'>count</a>) <a href='SkPoint_Reference#SkVector'>const</a>
+void <a href='#SkMatrix_mapVectors'>mapVectors</a>(<a href='SkPoint_Reference#SkVector'>SkVector</a> vecs[], int count) const
</pre>
-Maps <a href='#SkMatrix_mapVectors_2_vecs'>vecs</a> <a href='SkPoint_Reference#Vector'>vector</a> <a href='SkPoint_Reference#Vector'>array</a> <a href='SkPoint_Reference#Vector'>of</a> <a href='SkPoint_Reference#Vector'>length</a> <a href='#SkMatrix_mapVectors_2_count'>count</a> <a href='#SkMatrix_mapVectors_2_count'>in</a> <a href='#SkMatrix_mapVectors_2_count'>place</a>, <a href='#SkMatrix_mapVectors_2_count'>multiplying</a> <a href='#SkMatrix_mapVectors_2_count'>each</a> <a href='SkPoint_Reference#Vector'>vector</a> <a href='SkPoint_Reference#Vector'>by</a>
-<a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a>, <a href='SkMatrix_Reference#SkMatrix'>treating</a> <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> <a href='SkMatrix_Reference#SkMatrix'>translation</a> <a href='SkMatrix_Reference#SkMatrix'>as</a> <a href='SkMatrix_Reference#SkMatrix'>zero</a>. <a href='SkMatrix_Reference#SkMatrix'>Given</a>:
+Maps <a href='#SkMatrix_mapVectors_2_vecs'>vecs</a> <a href='SkPoint_Reference#Vector'>vector</a> array of length <a href='#SkMatrix_mapVectors_2_count'>count</a> in place, multiplying each <a href='SkPoint_Reference#Vector'>vector</a> by
+<a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a>, treating <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> translation as zero. Given:
| A B 0 | | x |
-<a href='SkMatrix_Reference#Matrix'>Matrix</a> = | <a href='SkMatrix_Reference#Matrix'>D</a> <a href='SkMatrix_Reference#Matrix'>E</a> 0 |, <a href='SkMatrix_Reference#Matrix'>vec</a> = | <a href='SkMatrix_Reference#Matrix'>y</a> |
+<a href='SkMatrix_Reference#Matrix'>Matrix</a> = | D E 0 |, vec = | y |
| G H <a href='#SkMatrix_I'>I</a> | | 1 |
where
-for (i = 0; i < <a href='#SkMatrix_mapVectors_2_count'>count</a>; ++<a href='#SkMatrix_mapVectors_2_count'>i</a>) {
-x = <a href='#SkMatrix_mapVectors_2_vecs'>vecs</a>[<a href='#SkMatrix_mapVectors_2_vecs'>i</a>].<a href='#SkMatrix_mapVectors_2_vecs'>fX</a>
-y = <a href='#SkMatrix_mapVectors_2_vecs'>vecs</a>[<a href='#SkMatrix_mapVectors_2_vecs'>i</a>].<a href='#SkMatrix_mapVectors_2_vecs'>fY</a>
+for (i = 0; i < <a href='#SkMatrix_mapVectors_2_count'>count</a>; ++i) {
+x = <a href='#SkMatrix_mapVectors_2_vecs'>vecs</a>[i].fX
+y = <a href='#SkMatrix_mapVectors_2_vecs'>vecs</a>[i].fY
}
-each result <a href='SkPoint_Reference#Vector'>vector</a> <a href='SkPoint_Reference#Vector'>is</a> <a href='SkPoint_Reference#Vector'>computed</a> <a href='SkPoint_Reference#Vector'>as</a>:
+each result <a href='SkPoint_Reference#Vector'>vector</a> is computed as:
|A B 0| |x| Ax+By Dx+Ey
-<a href='SkMatrix_Reference#Matrix'>Matrix</a> * <a href='SkMatrix_Reference#Matrix'>vec</a> = |<a href='SkMatrix_Reference#Matrix'>D</a> <a href='SkMatrix_Reference#Matrix'>E</a> 0| |<a href='SkMatrix_Reference#Matrix'>y</a>| = |<a href='SkMatrix_Reference#Matrix'>Ax</a>+<a href='SkMatrix_Reference#Matrix'>By</a> <a href='SkMatrix_Reference#Matrix'>Dx</a>+<a href='SkMatrix_Reference#Matrix'>Ey</a> <a href='SkMatrix_Reference#Matrix'>Gx</a>+<a href='SkMatrix_Reference#Matrix'>Hy</a>+<a href='#SkMatrix_I'>I</a>| = ------- , -------
-|G H <a href='#SkMatrix_I'>I</a>| |1| <a href='#SkMatrix_I'>Gx</a>+<a href='#SkMatrix_I'>Hy</a>+<a href='#SkMatrix_I'>I</a> <a href='#SkMatrix_I'>Gx</a>+<a href='#SkMatrix_I'>Hy</a>+<a href='#SkMatrix_I'>I</a>
+<a href='SkMatrix_Reference#Matrix'>Matrix</a> * vec = |D E 0| |y| = |Ax+By Dx+Ey Gx+Hy+<a href='#SkMatrix_I'>I</a>| = ------- , -------
+|G H <a href='#SkMatrix_I'>I</a>| |1| Gx+Hy+<a href='#SkMatrix_I'>I</a> Gx+Hy+<a href='#SkMatrix_I'>I</a>
### Parameters
<table> <tr> <td><a name='SkMatrix_mapVectors_2_vecs'><code><strong>vecs</strong></code></a></td>
- <td><a href='SkPoint_Reference#Vector'>vectors</a> <a href='SkPoint_Reference#Vector'>to</a> <a href='SkPoint_Reference#Vector'>transform</a>, <a href='SkPoint_Reference#Vector'>and</a> <a href='SkPoint_Reference#Vector'>storage</a> <a href='SkPoint_Reference#Vector'>for</a> <a href='SkPoint_Reference#Vector'>mapped</a> <a href='SkPoint_Reference#Vector'>vectors</a></td>
+ <td><a href='SkPoint_Reference#Vector'>vectors</a> to transform, and storage for mapped <a href='SkPoint_Reference#Vector'>vectors</a></td>
</tr>
<tr> <td><a name='SkMatrix_mapVectors_2_count'><code><strong>count</strong></code></a></td>
- <td>number of <a href='SkPoint_Reference#Vector'>vectors</a> <a href='SkPoint_Reference#Vector'>to</a> <a href='SkPoint_Reference#Vector'>transform</a></td>
+ <td>number of <a href='SkPoint_Reference#Vector'>vectors</a> to transform</td>
</tr>
</table>
@@ -3579,29 +3579,29 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-void <a href='#SkMatrix_mapVector'>mapVector</a>(<a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>dx</a>, <a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>dy</a>, <a href='SkPoint_Reference#SkVector'>SkVector</a>* <a href='SkPoint_Reference#SkVector'>result</a>) <a href='SkPoint_Reference#SkVector'>const</a>
+void <a href='#SkMatrix_mapVector'>mapVector</a>(<a href='undocumented#SkScalar'>SkScalar</a> dx, <a href='undocumented#SkScalar'>SkScalar</a> dy, <a href='SkPoint_Reference#SkVector'>SkVector</a>* result) const
</pre>
-Maps <a href='SkPoint_Reference#Vector'>vector</a> (<a href='#SkMatrix_mapVector_dx'>dx</a>, <a href='#SkMatrix_mapVector_dy'>dy</a>) <a href='#SkMatrix_mapVector_dy'>to</a> <a href='#SkMatrix_mapVector_result'>result</a>. <a href='SkPoint_Reference#Vector'>Vector</a> <a href='SkPoint_Reference#Vector'>is</a> <a href='SkPoint_Reference#Vector'>mapped</a> <a href='SkPoint_Reference#Vector'>by</a> <a href='SkPoint_Reference#Vector'>multiplying</a> <a href='SkPoint_Reference#Vector'>by</a> <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a>,
-treating <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> <a href='SkMatrix_Reference#SkMatrix'>translation</a> <a href='SkMatrix_Reference#SkMatrix'>as</a> <a href='SkMatrix_Reference#SkMatrix'>zero</a>. <a href='SkMatrix_Reference#SkMatrix'>Given</a>:
+Maps <a href='SkPoint_Reference#Vector'>vector</a> (<a href='#SkMatrix_mapVector_dx'>dx</a>, <a href='#SkMatrix_mapVector_dy'>dy</a>) to <a href='#SkMatrix_mapVector_result'>result</a>. <a href='SkPoint_Reference#Vector'>Vector</a> is mapped by multiplying by <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a>,
+treating <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> translation as zero. Given:
| A B 0 | | <a href='#SkMatrix_mapVector_dx'>dx</a> |
-<a href='SkMatrix_Reference#Matrix'>Matrix</a> = | <a href='SkMatrix_Reference#Matrix'>D</a> <a href='SkMatrix_Reference#Matrix'>E</a> 0 |, <a href='SkMatrix_Reference#Matrix'>vec</a> = | <a href='#SkMatrix_mapVector_dy'>dy</a> |
+<a href='SkMatrix_Reference#Matrix'>Matrix</a> = | D E 0 |, vec = | <a href='#SkMatrix_mapVector_dy'>dy</a> |
| G H <a href='#SkMatrix_I'>I</a> | | 1 |
-each <a href='#SkMatrix_mapVector_result'>result</a> <a href='SkPoint_Reference#Vector'>vector</a> <a href='SkPoint_Reference#Vector'>is</a> <a href='SkPoint_Reference#Vector'>computed</a> <a href='SkPoint_Reference#Vector'>as</a>:
+each <a href='#SkMatrix_mapVector_result'>result</a> <a href='SkPoint_Reference#Vector'>vector</a> is computed as:
-|A B 0| |<a href='#SkMatrix_mapVector_dx'>dx</a>| <a href='#SkMatrix_mapVector_dx'>A</a>*<a href='#SkMatrix_mapVector_dx'>dx</a>+<a href='#SkMatrix_mapVector_dx'>B</a>*<a href='#SkMatrix_mapVector_dy'>dy</a> <a href='#SkMatrix_mapVector_dy'>D</a>*<a href='#SkMatrix_mapVector_dx'>dx</a>+<a href='#SkMatrix_mapVector_dx'>E</a>*<a href='#SkMatrix_mapVector_dy'>dy</a>
-<a href='SkMatrix_Reference#Matrix'>Matrix</a> * <a href='SkMatrix_Reference#Matrix'>vec</a> = |<a href='SkMatrix_Reference#Matrix'>D</a> <a href='SkMatrix_Reference#Matrix'>E</a> 0| |<a href='#SkMatrix_mapVector_dy'>dy</a>| = |<a href='#SkMatrix_mapVector_dy'>A</a>*<a href='#SkMatrix_mapVector_dx'>dx</a>+<a href='#SkMatrix_mapVector_dx'>B</a>*<a href='#SkMatrix_mapVector_dy'>dy</a> <a href='#SkMatrix_mapVector_dy'>D</a>*<a href='#SkMatrix_mapVector_dx'>dx</a>+<a href='#SkMatrix_mapVector_dx'>E</a>*<a href='#SkMatrix_mapVector_dy'>dy</a> <a href='#SkMatrix_mapVector_dy'>G</a>*<a href='#SkMatrix_mapVector_dx'>dx</a>+<a href='#SkMatrix_mapVector_dx'>H</a>*<a href='#SkMatrix_mapVector_dy'>dy</a>+<a href='#SkMatrix_I'>I</a>| = ----------- , -----------
-|G H <a href='#SkMatrix_I'>I</a>| | 1| <a href='#SkMatrix_I'>G</a>*<a href='#SkMatrix_mapVector_dx'>dx</a>+<a href='#SkMatrix_mapVector_dx'>H</a>*<a href='#SkMatrix_mapVector_dy'>dy</a>+<a href='#SkMatrix_I'>I</a> <a href='#SkMatrix_I'>G</a>*<a href='#SkMatrix_mapVector_dx'>dx</a>+*<a href='#SkMatrix_mapVector_dx'>dHy</a>+<a href='#SkMatrix_I'>I</a>
+|A B 0| |<a href='#SkMatrix_mapVector_dx'>dx</a>| A*<a href='#SkMatrix_mapVector_dx'>dx</a>+B*<a href='#SkMatrix_mapVector_dy'>dy</a> D*<a href='#SkMatrix_mapVector_dx'>dx</a>+E*<a href='#SkMatrix_mapVector_dy'>dy</a>
+<a href='SkMatrix_Reference#Matrix'>Matrix</a> * vec = |D E 0| |<a href='#SkMatrix_mapVector_dy'>dy</a>| = |A*<a href='#SkMatrix_mapVector_dx'>dx</a>+B*<a href='#SkMatrix_mapVector_dy'>dy</a> D*<a href='#SkMatrix_mapVector_dx'>dx</a>+E*<a href='#SkMatrix_mapVector_dy'>dy</a> G*<a href='#SkMatrix_mapVector_dx'>dx</a>+H*<a href='#SkMatrix_mapVector_dy'>dy</a>+<a href='#SkMatrix_I'>I</a>| = ----------- , -----------
+|G H <a href='#SkMatrix_I'>I</a>| | 1| G*<a href='#SkMatrix_mapVector_dx'>dx</a>+H*<a href='#SkMatrix_mapVector_dy'>dy</a>+<a href='#SkMatrix_I'>I</a> G*<a href='#SkMatrix_mapVector_dx'>dx</a>+*dHy+<a href='#SkMatrix_I'>I</a>
### Parameters
<table> <tr> <td><a name='SkMatrix_mapVector_dx'><code><strong>dx</strong></code></a></td>
- <td>x-axis value of <a href='SkPoint_Reference#Vector'>vector</a> <a href='SkPoint_Reference#Vector'>to</a> <a href='SkPoint_Reference#Vector'>map</a></td>
+ <td>x-axis value of <a href='SkPoint_Reference#Vector'>vector</a> to map</td>
</tr>
<tr> <td><a name='SkMatrix_mapVector_dy'><code><strong>dy</strong></code></a></td>
- <td>y-axis value of <a href='SkPoint_Reference#Vector'>vector</a> <a href='SkPoint_Reference#Vector'>to</a> <a href='SkPoint_Reference#Vector'>map</a></td>
+ <td>y-axis value of <a href='SkPoint_Reference#Vector'>vector</a> to map</td>
</tr>
<tr> <td><a name='SkMatrix_mapVector_result'><code><strong>result</strong></code></a></td>
<td>storage for mapped <a href='SkPoint_Reference#Vector'>vector</a></td>
@@ -3621,29 +3621,29 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-<a href='SkPoint_Reference#SkVector'>SkVector</a> <a href='#SkMatrix_mapVector'>mapVector</a>(<a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>dx</a>, <a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>dy</a>) <a href='undocumented#SkScalar'>const</a>
+<a href='SkPoint_Reference#SkVector'>SkVector</a> <a href='#SkMatrix_mapVector'>mapVector</a>(<a href='undocumented#SkScalar'>SkScalar</a> dx, <a href='undocumented#SkScalar'>SkScalar</a> dy) const
</pre>
-Returns <a href='SkPoint_Reference#Vector'>vector</a> (<a href='#SkMatrix_mapVector_2_dx'>dx</a>, <a href='#SkMatrix_mapVector_2_dy'>dy</a>) <a href='#SkMatrix_mapVector_2_dy'>multiplied</a> <a href='#SkMatrix_mapVector_2_dy'>by</a> <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a>, <a href='SkMatrix_Reference#SkMatrix'>treating</a> <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> <a href='SkMatrix_Reference#SkMatrix'>translation</a> <a href='SkMatrix_Reference#SkMatrix'>as</a> <a href='SkMatrix_Reference#SkMatrix'>zero</a>.
+Returns <a href='SkPoint_Reference#Vector'>vector</a> (<a href='#SkMatrix_mapVector_2_dx'>dx</a>, <a href='#SkMatrix_mapVector_2_dy'>dy</a>) multiplied by <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a>, treating <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> translation as zero.
Given:
| A B 0 | | <a href='#SkMatrix_mapVector_2_dx'>dx</a> |
-<a href='SkMatrix_Reference#Matrix'>Matrix</a> = | <a href='SkMatrix_Reference#Matrix'>D</a> <a href='SkMatrix_Reference#Matrix'>E</a> 0 |, <a href='SkMatrix_Reference#Matrix'>vec</a> = | <a href='#SkMatrix_mapVector_2_dy'>dy</a> |
+<a href='SkMatrix_Reference#Matrix'>Matrix</a> = | D E 0 |, vec = | <a href='#SkMatrix_mapVector_2_dy'>dy</a> |
| G H <a href='#SkMatrix_I'>I</a> | | 1 |
-each result <a href='SkPoint_Reference#Vector'>vector</a> <a href='SkPoint_Reference#Vector'>is</a> <a href='SkPoint_Reference#Vector'>computed</a> <a href='SkPoint_Reference#Vector'>as</a>:
+each result <a href='SkPoint_Reference#Vector'>vector</a> is computed as:
-|A B 0| |<a href='#SkMatrix_mapVector_2_dx'>dx</a>| <a href='#SkMatrix_mapVector_2_dx'>A</a>*<a href='#SkMatrix_mapVector_2_dx'>dx</a>+<a href='#SkMatrix_mapVector_2_dx'>B</a>*<a href='#SkMatrix_mapVector_2_dy'>dy</a> <a href='#SkMatrix_mapVector_2_dy'>D</a>*<a href='#SkMatrix_mapVector_2_dx'>dx</a>+<a href='#SkMatrix_mapVector_2_dx'>E</a>*<a href='#SkMatrix_mapVector_2_dy'>dy</a>
-<a href='SkMatrix_Reference#Matrix'>Matrix</a> * <a href='SkMatrix_Reference#Matrix'>vec</a> = |<a href='SkMatrix_Reference#Matrix'>D</a> <a href='SkMatrix_Reference#Matrix'>E</a> 0| |<a href='#SkMatrix_mapVector_2_dy'>dy</a>| = |<a href='#SkMatrix_mapVector_2_dy'>A</a>*<a href='#SkMatrix_mapVector_2_dx'>dx</a>+<a href='#SkMatrix_mapVector_2_dx'>B</a>*<a href='#SkMatrix_mapVector_2_dy'>dy</a> <a href='#SkMatrix_mapVector_2_dy'>D</a>*<a href='#SkMatrix_mapVector_2_dx'>dx</a>+<a href='#SkMatrix_mapVector_2_dx'>E</a>*<a href='#SkMatrix_mapVector_2_dy'>dy</a> <a href='#SkMatrix_mapVector_2_dy'>G</a>*<a href='#SkMatrix_mapVector_2_dx'>dx</a>+<a href='#SkMatrix_mapVector_2_dx'>H</a>*<a href='#SkMatrix_mapVector_2_dy'>dy</a>+<a href='#SkMatrix_I'>I</a>| = ----------- , -----------
-|G H <a href='#SkMatrix_I'>I</a>| | 1| <a href='#SkMatrix_I'>G</a>*<a href='#SkMatrix_mapVector_2_dx'>dx</a>+<a href='#SkMatrix_mapVector_2_dx'>H</a>*<a href='#SkMatrix_mapVector_2_dy'>dy</a>+<a href='#SkMatrix_I'>I</a> <a href='#SkMatrix_I'>G</a>*<a href='#SkMatrix_mapVector_2_dx'>dx</a>+*<a href='#SkMatrix_mapVector_2_dx'>dHy</a>+<a href='#SkMatrix_I'>I</a>
+|A B 0| |<a href='#SkMatrix_mapVector_2_dx'>dx</a>| A*<a href='#SkMatrix_mapVector_2_dx'>dx</a>+B*<a href='#SkMatrix_mapVector_2_dy'>dy</a> D*<a href='#SkMatrix_mapVector_2_dx'>dx</a>+E*<a href='#SkMatrix_mapVector_2_dy'>dy</a>
+<a href='SkMatrix_Reference#Matrix'>Matrix</a> * vec = |D E 0| |<a href='#SkMatrix_mapVector_2_dy'>dy</a>| = |A*<a href='#SkMatrix_mapVector_2_dx'>dx</a>+B*<a href='#SkMatrix_mapVector_2_dy'>dy</a> D*<a href='#SkMatrix_mapVector_2_dx'>dx</a>+E*<a href='#SkMatrix_mapVector_2_dy'>dy</a> G*<a href='#SkMatrix_mapVector_2_dx'>dx</a>+H*<a href='#SkMatrix_mapVector_2_dy'>dy</a>+<a href='#SkMatrix_I'>I</a>| = ----------- , -----------
+|G H <a href='#SkMatrix_I'>I</a>| | 1| G*<a href='#SkMatrix_mapVector_2_dx'>dx</a>+H*<a href='#SkMatrix_mapVector_2_dy'>dy</a>+<a href='#SkMatrix_I'>I</a> G*<a href='#SkMatrix_mapVector_2_dx'>dx</a>+*dHy+<a href='#SkMatrix_I'>I</a>
### Parameters
<table> <tr> <td><a name='SkMatrix_mapVector_2_dx'><code><strong>dx</strong></code></a></td>
- <td>x-axis value of <a href='SkPoint_Reference#Vector'>vector</a> <a href='SkPoint_Reference#Vector'>to</a> <a href='SkPoint_Reference#Vector'>map</a></td>
+ <td>x-axis value of <a href='SkPoint_Reference#Vector'>vector</a> to map</td>
</tr>
<tr> <td><a name='SkMatrix_mapVector_2_dy'><code><strong>dy</strong></code></a></td>
- <td>y-axis value of <a href='SkPoint_Reference#Vector'>vector</a> <a href='SkPoint_Reference#Vector'>to</a> <a href='SkPoint_Reference#Vector'>map</a></td>
+ <td>y-axis value of <a href='SkPoint_Reference#Vector'>vector</a> to map</td>
</tr>
</table>
@@ -3664,11 +3664,11 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-bool <a href='#SkMatrix_mapRect'>mapRect</a>(<a href='SkRect_Reference#SkRect'>SkRect</a>* <a href='SkRect_Reference#SkRect'>dst</a>, <a href='SkRect_Reference#SkRect'>const</a> <a href='SkRect_Reference#SkRect'>SkRect</a>& <a href='SkRect_Reference#SkRect'>src</a>) <a href='SkRect_Reference#SkRect'>const</a>
+bool <a href='#SkMatrix_mapRect'>mapRect</a>(<a href='SkRect_Reference#SkRect'>SkRect</a>* dst, const <a href='SkRect_Reference#SkRect'>SkRect</a>& src) const
</pre>
-Sets <a href='#SkMatrix_mapRect_dst'>dst</a> <a href='#SkMatrix_mapRect_dst'>to</a> <a href='#SkMatrix_mapRect_dst'>bounds</a> <a href='#SkMatrix_mapRect_dst'>of</a> <a href='#SkMatrix_mapRect_src'>src</a> <a href='#SkMatrix_mapRect_src'>corners</a> <a href='#SkMatrix_mapRect_src'>mapped</a> <a href='#SkMatrix_mapRect_src'>by</a> <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a>.
-Returns true if mapped corners are <a href='#SkMatrix_mapRect_dst'>dst</a> <a href='#SkMatrix_mapRect_dst'>corners</a>.
+Sets <a href='#SkMatrix_mapRect_dst'>dst</a> to bounds of <a href='#SkMatrix_mapRect_src'>src</a> corners mapped by <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a>.
+Returns true if mapped corners are <a href='#SkMatrix_mapRect_dst'>dst</a> corners.
Returned value is the same as calling <a href='#SkMatrix_rectStaysRect'>rectStaysRect</a>().
@@ -3678,13 +3678,13 @@
<td>storage for bounds of mapped <a href='SkPoint_Reference#SkPoint'>SkPoint</a></td>
</tr>
<tr> <td><a name='SkMatrix_mapRect_src'><code><strong>src</strong></code></a></td>
- <td><a href='SkRect_Reference#SkRect'>SkRect</a> <a href='SkRect_Reference#SkRect'>to</a> <a href='SkRect_Reference#SkRect'>map</a></td>
+ <td><a href='SkRect_Reference#SkRect'>SkRect</a> to map</td>
</tr>
</table>
### Return Value
-true if <a href='#SkMatrix_mapRect_dst'>dst</a> <a href='#SkMatrix_mapRect_dst'>is</a> <a href='#SkMatrix_mapRect_dst'>equivalent</a> <a href='#SkMatrix_mapRect_dst'>to</a> <a href='#SkMatrix_mapRect_dst'>mapped</a> <a href='#SkMatrix_mapRect_src'>src</a>
+true if <a href='#SkMatrix_mapRect_dst'>dst</a> is equivalent to mapped <a href='#SkMatrix_mapRect_src'>src</a>
### Example
@@ -3699,11 +3699,11 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-bool <a href='#SkMatrix_mapRect'>mapRect</a>(<a href='SkRect_Reference#SkRect'>SkRect</a>* <a href='SkRect_Reference#Rect'>rect</a>) <a href='SkRect_Reference#Rect'>const</a>
+bool <a href='#SkMatrix_mapRect'>mapRect</a>(<a href='SkRect_Reference#SkRect'>SkRect</a>* <a href='SkRect_Reference#Rect'>rect</a>) const
</pre>
-Sets <a href='#SkMatrix_mapRect_2_rect'>rect</a> <a href='#SkMatrix_mapRect_2_rect'>to</a> <a href='#SkMatrix_mapRect_2_rect'>bounds</a> <a href='#SkMatrix_mapRect_2_rect'>of</a> <a href='#SkMatrix_mapRect_2_rect'>rect</a> <a href='#SkMatrix_mapRect_2_rect'>corners</a> <a href='#SkMatrix_mapRect_2_rect'>mapped</a> <a href='#SkMatrix_mapRect_2_rect'>by</a> <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a>.
-Returns true if mapped corners are computed <a href='#SkMatrix_mapRect_2_rect'>rect</a> <a href='#SkMatrix_mapRect_2_rect'>corners</a>.
+Sets <a href='#SkMatrix_mapRect_2_rect'>rect</a> to bounds of <a href='#SkMatrix_mapRect_2_rect'>rect</a> corners mapped by <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a>.
+Returns true if mapped corners are computed <a href='#SkMatrix_mapRect_2_rect'>rect</a> corners.
Returned value is the same as calling <a href='#SkMatrix_rectStaysRect'>rectStaysRect</a>().
@@ -3731,10 +3731,10 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-<a href='SkRect_Reference#SkRect'>SkRect</a> <a href='#SkMatrix_mapRect'>mapRect</a>(<a href='#SkMatrix_mapRect'>const</a> <a href='SkRect_Reference#SkRect'>SkRect</a>& <a href='SkRect_Reference#SkRect'>src</a>) <a href='SkRect_Reference#SkRect'>const</a>
+<a href='SkRect_Reference#SkRect'>SkRect</a> <a href='#SkMatrix_mapRect'>mapRect</a>(const <a href='SkRect_Reference#SkRect'>SkRect</a>& src) const
</pre>
-Returns bounds of <a href='#SkMatrix_mapRect_3_src'>src</a> <a href='#SkMatrix_mapRect_3_src'>corners</a> <a href='#SkMatrix_mapRect_3_src'>mapped</a> <a href='#SkMatrix_mapRect_3_src'>by</a> <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a>.
+Returns bounds of <a href='#SkMatrix_mapRect_3_src'>src</a> corners mapped by <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a>.
### Parameters
@@ -3760,30 +3760,30 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-void <a href='#SkMatrix_mapRectToQuad'>mapRectToQuad</a>(<a href='SkPoint_Reference#SkPoint'>SkPoint</a> <a href='SkPoint_Reference#SkPoint'>dst</a>[4], <a href='SkPoint_Reference#SkPoint'>const</a> <a href='SkRect_Reference#SkRect'>SkRect</a>& <a href='SkRect_Reference#Rect'>rect</a>) <a href='SkRect_Reference#Rect'>const</a>
+void <a href='#SkMatrix_mapRectToQuad'>mapRectToQuad</a>(<a href='SkPoint_Reference#SkPoint'>SkPoint</a> dst[4], const <a href='SkRect_Reference#SkRect'>SkRect</a>& <a href='SkRect_Reference#Rect'>rect</a>) const
</pre>
-Maps four corners of <a href='#SkMatrix_mapRectToQuad_rect'>rect</a> <a href='#SkMatrix_mapRectToQuad_rect'>to</a> <a href='#SkMatrix_mapRectToQuad_dst'>dst</a>. <a href='SkPoint_Reference#SkPoint'>SkPoint</a> <a href='SkPoint_Reference#SkPoint'>are</a> <a href='SkPoint_Reference#SkPoint'>mapped</a> <a href='SkPoint_Reference#SkPoint'>by</a> <a href='SkPoint_Reference#SkPoint'>multiplying</a> <a href='SkPoint_Reference#SkPoint'>each</a>
-<a href='#SkMatrix_mapRectToQuad_rect'>rect</a> <a href='#SkMatrix_mapRectToQuad_rect'>corner</a> <a href='#SkMatrix_mapRectToQuad_rect'>by</a> <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a>. <a href='#SkMatrix_mapRectToQuad_rect'>rect</a> <a href='#SkMatrix_mapRectToQuad_rect'>corner</a> <a href='#SkMatrix_mapRectToQuad_rect'>is</a> <a href='#SkMatrix_mapRectToQuad_rect'>processed</a> <a href='#SkMatrix_mapRectToQuad_rect'>in</a> <a href='#SkMatrix_mapRectToQuad_rect'>this</a> <a href='#SkMatrix_mapRectToQuad_rect'>order</a>:
+Maps four corners of <a href='#SkMatrix_mapRectToQuad_rect'>rect</a> to <a href='#SkMatrix_mapRectToQuad_dst'>dst</a>. <a href='SkPoint_Reference#SkPoint'>SkPoint</a> are mapped by multiplying each
+<a href='#SkMatrix_mapRectToQuad_rect'>rect</a> corner by <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a>. <a href='#SkMatrix_mapRectToQuad_rect'>rect</a> corner is processed in this order:
(<a href='#SkMatrix_mapRectToQuad_rect'>rect</a>.<a href='#SkRect_fLeft'>fLeft</a>, <a href='#SkMatrix_mapRectToQuad_rect'>rect</a>.<a href='#SkRect_fTop'>fTop</a>), (<a href='#SkMatrix_mapRectToQuad_rect'>rect</a>.<a href='#SkRect_fRight'>fRight</a>, <a href='#SkMatrix_mapRectToQuad_rect'>rect</a>.<a href='#SkRect_fTop'>fTop</a>), (<a href='#SkMatrix_mapRectToQuad_rect'>rect</a>.<a href='#SkRect_fRight'>fRight</a>, <a href='#SkMatrix_mapRectToQuad_rect'>rect</a>.<a href='#SkRect_fBottom'>fBottom</a>),
(<a href='#SkMatrix_mapRectToQuad_rect'>rect</a>.<a href='#SkRect_fLeft'>fLeft</a>, <a href='#SkMatrix_mapRectToQuad_rect'>rect</a>.<a href='#SkRect_fBottom'>fBottom</a>).
-<a href='#SkMatrix_mapRectToQuad_rect'>rect</a> <a href='#SkMatrix_mapRectToQuad_rect'>may</a> <a href='#SkMatrix_mapRectToQuad_rect'>be</a> <a href='#SkMatrix_mapRectToQuad_rect'>empty</a>: <a href='#SkMatrix_mapRectToQuad_rect'>rect</a>.<a href='#SkRect_fLeft'>fLeft</a> <a href='#SkRect_fLeft'>may</a> <a href='#SkRect_fLeft'>be</a> <a href='#SkRect_fLeft'>greater</a> <a href='#SkRect_fLeft'>than</a> <a href='#SkRect_fLeft'>or</a> <a href='#SkRect_fLeft'>equal</a> <a href='#SkRect_fLeft'>to</a> <a href='#SkMatrix_mapRectToQuad_rect'>rect</a>.<a href='#SkRect_fRight'>fRight</a>;
-<a href='#SkMatrix_mapRectToQuad_rect'>rect</a>.<a href='#SkRect_fTop'>fTop</a> <a href='#SkRect_fTop'>may</a> <a href='#SkRect_fTop'>be</a> <a href='#SkRect_fTop'>greater</a> <a href='#SkRect_fTop'>than</a> <a href='#SkRect_fTop'>or</a> <a href='#SkRect_fTop'>equal</a> <a href='#SkRect_fTop'>to</a> <a href='#SkMatrix_mapRectToQuad_rect'>rect</a>.<a href='#SkRect_fBottom'>fBottom</a>.
+<a href='#SkMatrix_mapRectToQuad_rect'>rect</a> may be empty: <a href='#SkMatrix_mapRectToQuad_rect'>rect</a>.<a href='#SkRect_fLeft'>fLeft</a> may be greater than or equal to <a href='#SkMatrix_mapRectToQuad_rect'>rect</a>.<a href='#SkRect_fRight'>fRight</a>;
+<a href='#SkMatrix_mapRectToQuad_rect'>rect</a>.<a href='#SkRect_fTop'>fTop</a> may be greater than or equal to <a href='#SkMatrix_mapRectToQuad_rect'>rect</a>.<a href='#SkRect_fBottom'>fBottom</a>.
Given:
| A B C | | x |
-<a href='SkMatrix_Reference#Matrix'>Matrix</a> = | <a href='SkMatrix_Reference#Matrix'>D</a> <a href='SkMatrix_Reference#Matrix'>E</a> <a href='SkMatrix_Reference#Matrix'>F</a> |, <a href='SkMatrix_Reference#Matrix'>pt</a> = | <a href='SkMatrix_Reference#Matrix'>y</a> |
+<a href='SkMatrix_Reference#Matrix'>Matrix</a> = | D E F |, pt = | y |
| G H <a href='#SkMatrix_I'>I</a> | | 1 |
where pt is initialized from each of (<a href='#SkMatrix_mapRectToQuad_rect'>rect</a>.<a href='#SkRect_fLeft'>fLeft</a>, <a href='#SkMatrix_mapRectToQuad_rect'>rect</a>.<a href='#SkRect_fTop'>fTop</a>),
(<a href='#SkMatrix_mapRectToQuad_rect'>rect</a>.<a href='#SkRect_fRight'>fRight</a>, <a href='#SkMatrix_mapRectToQuad_rect'>rect</a>.<a href='#SkRect_fTop'>fTop</a>), (<a href='#SkMatrix_mapRectToQuad_rect'>rect</a>.<a href='#SkRect_fRight'>fRight</a>, <a href='#SkMatrix_mapRectToQuad_rect'>rect</a>.<a href='#SkRect_fBottom'>fBottom</a>), (<a href='#SkMatrix_mapRectToQuad_rect'>rect</a>.<a href='#SkRect_fLeft'>fLeft</a>, <a href='#SkMatrix_mapRectToQuad_rect'>rect</a>.<a href='#SkRect_fBottom'>fBottom</a>),
-each <a href='#SkMatrix_mapRectToQuad_dst'>dst</a> <a href='SkPoint_Reference#SkPoint'>SkPoint</a> <a href='SkPoint_Reference#SkPoint'>is</a> <a href='SkPoint_Reference#SkPoint'>computed</a> <a href='SkPoint_Reference#SkPoint'>as</a>:
+each <a href='#SkMatrix_mapRectToQuad_dst'>dst</a> <a href='SkPoint_Reference#SkPoint'>SkPoint</a> is computed as:
|A B C| |x| Ax+By+C Dx+Ey+F
-<a href='SkMatrix_Reference#Matrix'>Matrix</a> * <a href='SkMatrix_Reference#Matrix'>pt</a> = |<a href='SkMatrix_Reference#Matrix'>D</a> <a href='SkMatrix_Reference#Matrix'>E</a> <a href='SkMatrix_Reference#Matrix'>F</a>| |<a href='SkMatrix_Reference#Matrix'>y</a>| = |<a href='SkMatrix_Reference#Matrix'>Ax</a>+<a href='SkMatrix_Reference#Matrix'>By</a>+<a href='SkMatrix_Reference#Matrix'>C</a> <a href='SkMatrix_Reference#Matrix'>Dx</a>+<a href='SkMatrix_Reference#Matrix'>Ey</a>+<a href='SkMatrix_Reference#Matrix'>F</a> <a href='SkMatrix_Reference#Matrix'>Gx</a>+<a href='SkMatrix_Reference#Matrix'>Hy</a>+<a href='#SkMatrix_I'>I</a>| = ------- , -------
-|G H <a href='#SkMatrix_I'>I</a>| |1| <a href='#SkMatrix_I'>Gx</a>+<a href='#SkMatrix_I'>Hy</a>+<a href='#SkMatrix_I'>I</a> <a href='#SkMatrix_I'>Gx</a>+<a href='#SkMatrix_I'>Hy</a>+<a href='#SkMatrix_I'>I</a>
+<a href='SkMatrix_Reference#Matrix'>Matrix</a> * pt = |D E F| |y| = |Ax+By+C Dx+Ey+F Gx+Hy+<a href='#SkMatrix_I'>I</a>| = ------- , -------
+|G H <a href='#SkMatrix_I'>I</a>| |1| Gx+Hy+<a href='#SkMatrix_I'>I</a> Gx+Hy+<a href='#SkMatrix_I'>I</a>
### Parameters
@@ -3791,7 +3791,7 @@
<td>storage for mapped corner <a href='SkPoint_Reference#SkPoint'>SkPoint</a></td>
</tr>
<tr> <td><a name='SkMatrix_mapRectToQuad_rect'><code><strong>rect</strong></code></a></td>
- <td><a href='SkRect_Reference#SkRect'>SkRect</a> <a href='SkRect_Reference#SkRect'>to</a> <a href='SkRect_Reference#SkRect'>map</a></td>
+ <td><a href='SkRect_Reference#SkRect'>SkRect</a> to map</td>
</tr>
</table>
@@ -3808,10 +3808,10 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-void <a href='#SkMatrix_mapRectScaleTranslate'>mapRectScaleTranslate</a>(<a href='SkRect_Reference#SkRect'>SkRect</a>* <a href='SkRect_Reference#SkRect'>dst</a>, <a href='SkRect_Reference#SkRect'>const</a> <a href='SkRect_Reference#SkRect'>SkRect</a>& <a href='SkRect_Reference#SkRect'>src</a>) <a href='SkRect_Reference#SkRect'>const</a>
+void <a href='#SkMatrix_mapRectScaleTranslate'>mapRectScaleTranslate</a>(<a href='SkRect_Reference#SkRect'>SkRect</a>* dst, const <a href='SkRect_Reference#SkRect'>SkRect</a>& src) const
</pre>
-Sets <a href='#SkMatrix_mapRectScaleTranslate_dst'>dst</a> <a href='#SkMatrix_mapRectScaleTranslate_dst'>to</a> <a href='#SkMatrix_mapRectScaleTranslate_dst'>bounds</a> <a href='#SkMatrix_mapRectScaleTranslate_dst'>of</a> <a href='#SkMatrix_mapRectScaleTranslate_src'>src</a> <a href='#SkMatrix_mapRectScaleTranslate_src'>corners</a> <a href='#SkMatrix_mapRectScaleTranslate_src'>mapped</a> <a href='#SkMatrix_mapRectScaleTranslate_src'>by</a> <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a>. <a href='SkMatrix_Reference#SkMatrix'>If</a> <a href='SkMatrix_Reference#Matrix'>matrix</a> <a href='SkMatrix_Reference#Matrix'>contains</a>
+Sets <a href='#SkMatrix_mapRectScaleTranslate_dst'>dst</a> to bounds of <a href='#SkMatrix_mapRectScaleTranslate_src'>src</a> corners mapped by <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a>. If <a href='SkMatrix_Reference#Matrix'>matrix</a> contains
elements other than scale or translate: asserts if SK_DEBUG is defined;
otherwise, results are undefined.
@@ -3821,7 +3821,7 @@
<td>storage for bounds of mapped <a href='SkPoint_Reference#SkPoint'>SkPoint</a></td>
</tr>
<tr> <td><a name='SkMatrix_mapRectScaleTranslate_src'><code><strong>src</strong></code></a></td>
- <td><a href='SkRect_Reference#SkRect'>SkRect</a> <a href='SkRect_Reference#SkRect'>to</a> <a href='SkRect_Reference#SkRect'>map</a></td>
+ <td><a href='SkRect_Reference#SkRect'>SkRect</a> to map</td>
</tr>
</table>
@@ -3838,18 +3838,18 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-<a href='undocumented#SkScalar'>SkScalar</a> <a href='#SkMatrix_mapRadius'>mapRadius</a>(<a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>radius</a>) <a href='undocumented#SkScalar'>const</a>
+<a href='undocumented#SkScalar'>SkScalar</a> <a href='#SkMatrix_mapRadius'>mapRadius</a>(<a href='undocumented#SkScalar'>SkScalar</a> radius) const
</pre>
-Returns geometric mean <a href='#SkMatrix_mapRadius_radius'>radius</a> <a href='#SkMatrix_mapRadius_radius'>of</a> <a href='#SkMatrix_mapRadius_radius'>ellipse</a> <a href='#SkMatrix_mapRadius_radius'>formed</a> <a href='#SkMatrix_mapRadius_radius'>by</a> <a href='#SkMatrix_mapRadius_radius'>constructing</a> <a href='undocumented#Circle'>circle</a> <a href='undocumented#Circle'>of</a>
-<a href='undocumented#Size'>size</a> <a href='#SkMatrix_mapRadius_radius'>radius</a>, <a href='#SkMatrix_mapRadius_radius'>and</a> <a href='#SkMatrix_mapRadius_radius'>mapping</a> <a href='#SkMatrix_mapRadius_radius'>constructed</a> <a href='undocumented#Circle'>circle</a> <a href='undocumented#Circle'>with</a> <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a>. <a href='SkMatrix_Reference#SkMatrix'>The</a> <a href='SkMatrix_Reference#SkMatrix'>result</a> <a href='SkMatrix_Reference#SkMatrix'>squared</a> <a href='SkMatrix_Reference#SkMatrix'>is</a>
+Returns geometric mean <a href='#SkMatrix_mapRadius_radius'>radius</a> of ellipse formed by constructing <a href='undocumented#Circle'>circle</a> of
+<a href='undocumented#Size'>size</a> <a href='#SkMatrix_mapRadius_radius'>radius</a>, and mapping constructed <a href='undocumented#Circle'>circle</a> with <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a>. The result squared is
equal to the major axis length times the minor axis length.
-Result is not meaningful if <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> <a href='SkMatrix_Reference#SkMatrix'>contains</a> <a href='SkMatrix_Reference#SkMatrix'>perspective</a> <a href='SkMatrix_Reference#SkMatrix'>elements</a>.
+Result is not meaningful if <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> contains perspective elements.
### Parameters
<table> <tr> <td><a name='SkMatrix_mapRadius_radius'><code><strong>radius</strong></code></a></td>
- <td><a href='undocumented#Circle'>circle</a> <a href='undocumented#Size'>size</a> <a href='undocumented#Size'>to</a> <a href='undocumented#Size'>map</a></td>
+ <td><a href='undocumented#Circle'>circle</a> <a href='undocumented#Size'>size</a> to map</td>
</tr>
</table>
@@ -3872,19 +3872,19 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-bool <a href='#SkMatrix_isFixedStepInX'>isFixedStepInX</a>() <a href='#SkMatrix_isFixedStepInX'>const</a>
+bool <a href='#SkMatrix_isFixedStepInX'>isFixedStepInX</a>() const
</pre>
Returns true if a unit step on x-axis at some y-axis value mapped through <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a>
-can be represented by a constant <a href='SkPoint_Reference#Vector'>vector</a>. <a href='SkPoint_Reference#Vector'>Returns</a> <a href='SkPoint_Reference#Vector'>true</a> <a href='SkPoint_Reference#Vector'>if</a> <a href='#SkMatrix_getType'>getType</a>() <a href='#SkMatrix_getType'>returns</a>
-<a href='#SkMatrix_kIdentity_Mask'>kIdentity_Mask</a>, <a href='#SkMatrix_kIdentity_Mask'>or</a> <a href='#SkMatrix_kIdentity_Mask'>combinations</a> <a href='#SkMatrix_kIdentity_Mask'>of</a>: <a href='#SkMatrix_kTranslate_Mask'>kTranslate_Mask</a>, <a href='#SkMatrix_kScale_Mask'>kScale_Mask</a>, <a href='#SkMatrix_kScale_Mask'>and</a> <a href='#SkMatrix_kAffine_Mask'>kAffine_Mask</a>.
+can be represented by a constant <a href='SkPoint_Reference#Vector'>vector</a>. Returns true if <a href='#SkMatrix_getType'>getType</a>() returns
+<a href='#SkMatrix_kIdentity_Mask'>kIdentity_Mask</a>, or combinations of: <a href='#SkMatrix_kTranslate_Mask'>kTranslate_Mask</a>, <a href='#SkMatrix_kScale_Mask'>kScale_Mask</a>, and <a href='#SkMatrix_kAffine_Mask'>kAffine_Mask</a>.
-May return true if <a href='#SkMatrix_getType'>getType</a>() <a href='#SkMatrix_getType'>returns</a> <a href='#SkMatrix_kPerspective_Mask'>kPerspective_Mask</a>, <a href='#SkMatrix_kPerspective_Mask'>but</a> <a href='#SkMatrix_kPerspective_Mask'>only</a> <a href='#SkMatrix_kPerspective_Mask'>when</a> <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a>
+May return true if <a href='#SkMatrix_getType'>getType</a>() returns <a href='#SkMatrix_kPerspective_Mask'>kPerspective_Mask</a>, but only when <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a>
does not include rotation or skewing along the y-axis.
### Return Value
-true if <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> <a href='SkMatrix_Reference#SkMatrix'>does</a> <a href='SkMatrix_Reference#SkMatrix'>not</a> <a href='SkMatrix_Reference#SkMatrix'>have</a> <a href='SkMatrix_Reference#SkMatrix'>complex</a> <a href='SkMatrix_Reference#SkMatrix'>perspective</a>
+true if <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> does not have complex perspective
### Example
@@ -3922,22 +3922,22 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-<a href='SkPoint_Reference#SkVector'>SkVector</a> <a href='#SkMatrix_fixedStepInX'>fixedStepInX</a>(<a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>y</a>) <a href='undocumented#SkScalar'>const</a>
+<a href='SkPoint_Reference#SkVector'>SkVector</a> <a href='#SkMatrix_fixedStepInX'>fixedStepInX</a>(<a href='undocumented#SkScalar'>SkScalar</a> y) const
</pre>
-Returns <a href='SkPoint_Reference#Vector'>vector</a> <a href='SkPoint_Reference#Vector'>representing</a> <a href='SkPoint_Reference#Vector'>a</a> <a href='SkPoint_Reference#Vector'>unit</a> <a href='SkPoint_Reference#Vector'>step</a> <a href='SkPoint_Reference#Vector'>on</a> <a href='SkPoint_Reference#Vector'>x-axis</a> <a href='SkPoint_Reference#Vector'>at</a> <a href='#SkMatrix_fixedStepInX_y'>y</a> <a href='#SkMatrix_fixedStepInX_y'>mapped</a> <a href='#SkMatrix_fixedStepInX_y'>through</a> <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a>.
-If <a href='#SkMatrix_isFixedStepInX'>isFixedStepInX</a>() <a href='#SkMatrix_isFixedStepInX'>is</a> <a href='#SkMatrix_isFixedStepInX'>false</a>, <a href='#SkMatrix_isFixedStepInX'>returned</a> <a href='#SkMatrix_isFixedStepInX'>value</a> <a href='#SkMatrix_isFixedStepInX'>is</a> <a href='#SkMatrix_isFixedStepInX'>undefined</a>.
+Returns <a href='SkPoint_Reference#Vector'>vector</a> representing a unit step on x-axis at <a href='#SkMatrix_fixedStepInX_y'>y</a> mapped through <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a>.
+If <a href='#SkMatrix_isFixedStepInX'>isFixedStepInX</a>() is false, returned value is undefined.
### Parameters
<table> <tr> <td><a name='SkMatrix_fixedStepInX_y'><code><strong>y</strong></code></a></td>
- <td>position of <a href='undocumented#Line'>line</a> <a href='undocumented#Line'>parallel</a> <a href='undocumented#Line'>to</a> <a href='undocumented#Line'>x-axis</a></td>
+ <td>position of <a href='undocumented#Line'>line</a> parallel to x-axis</td>
</tr>
</table>
### Return Value
-<a href='SkPoint_Reference#Vector'>vector</a> <a href='SkPoint_Reference#Vector'>advance</a> <a href='SkPoint_Reference#Vector'>of</a> <a href='SkPoint_Reference#Vector'>mapped</a> <a href='SkPoint_Reference#Vector'>unit</a> <a href='SkPoint_Reference#Vector'>step</a> <a href='SkPoint_Reference#Vector'>on</a> <a href='SkPoint_Reference#Vector'>x-axis</a>
+<a href='SkPoint_Reference#Vector'>vector</a> advance of mapped unit step on x-axis
### Example
@@ -3952,15 +3952,15 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-bool <a href='#SkMatrix_cheapEqualTo'>cheapEqualTo</a>(<a href='#SkMatrix_cheapEqualTo'>const</a> <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a>& <a href='SkMatrix_Reference#SkMatrix'>m</a>) <a href='SkMatrix_Reference#SkMatrix'>const</a>
+bool <a href='#SkMatrix_cheapEqualTo'>cheapEqualTo</a>(const <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a>& m) const
</pre>
-Returns true if <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> <a href='SkMatrix_Reference#SkMatrix'>equals</a> <a href='#SkMatrix_cheapEqualTo_m'>m</a>, <a href='#SkMatrix_cheapEqualTo_m'>using</a> <a href='#SkMatrix_cheapEqualTo_m'>an</a> <a href='#SkMatrix_cheapEqualTo_m'>efficient</a> <a href='#SkMatrix_cheapEqualTo_m'>comparison</a>.
+Returns true if <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> equals <a href='#SkMatrix_cheapEqualTo_m'>m</a>, using an efficient comparison.
Returns false when the sign of zero values is the different; when one
-<a href='SkMatrix_Reference#Matrix'>matrix</a> <a href='SkMatrix_Reference#Matrix'>has</a> <a href='SkMatrix_Reference#Matrix'>positive</a> <a href='SkMatrix_Reference#Matrix'>zero</a> <a href='SkMatrix_Reference#Matrix'>value</a> <a href='SkMatrix_Reference#Matrix'>and</a> <a href='SkMatrix_Reference#Matrix'>the</a> <a href='SkMatrix_Reference#Matrix'>other</a> <a href='SkMatrix_Reference#Matrix'>has</a> <a href='SkMatrix_Reference#Matrix'>negative</a> <a href='SkMatrix_Reference#Matrix'>zero</a> <a href='SkMatrix_Reference#Matrix'>value</a>.
+<a href='SkMatrix_Reference#Matrix'>matrix</a> has positive zero value and the other has negative zero value.
-Returns true even when both <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> <a href='SkMatrix_Reference#SkMatrix'>contain</a> <a href='SkMatrix_Reference#SkMatrix'>NaN</a>.
+Returns true even when both <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> contain NaN.
NaN never equals any value, including itself. To improve performance, NaN values
are treated as bit patterns that are equal if their bit patterns are equal.
@@ -3968,13 +3968,13 @@
### Parameters
<table> <tr> <td><a name='SkMatrix_cheapEqualTo_m'><code><strong>m</strong></code></a></td>
- <td><a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> <a href='SkMatrix_Reference#SkMatrix'>to</a> <a href='SkMatrix_Reference#SkMatrix'>compare</a></td>
+ <td><a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> to compare</td>
</tr>
</table>
### Return Value
-true if <a href='#SkMatrix_cheapEqualTo_m'>m</a> <a href='#SkMatrix_cheapEqualTo_m'>and</a> <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> <a href='SkMatrix_Reference#SkMatrix'>are</a> <a href='SkMatrix_Reference#SkMatrix'>represented</a> <a href='SkMatrix_Reference#SkMatrix'>by</a> <a href='SkMatrix_Reference#SkMatrix'>identical</a> <a href='SkMatrix_Reference#SkMatrix'>bit</a> <a href='SkMatrix_Reference#SkMatrix'>patterns</a>
+true if <a href='#SkMatrix_cheapEqualTo_m'>m</a> and <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> are represented by identical bit patterns
### Example
@@ -4000,26 +4000,26 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-bool operator==(const <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a>& <a href='SkMatrix_Reference#SkMatrix'>a</a>, <a href='SkMatrix_Reference#SkMatrix'>const</a> <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a>& <a href='SkMatrix_Reference#SkMatrix'>b</a>)
+bool operator==(const <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a>& a, const <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a>& b)
</pre>
-Compares <a href='#SkMatrix_equal_operator_a'>a</a> <a href='#SkMatrix_equal_operator_a'>and</a> <a href='#SkMatrix_equal_operator_b'>b</a>; <a href='#SkMatrix_equal_operator_b'>returns</a> <a href='#SkMatrix_equal_operator_b'>true</a> <a href='#SkMatrix_equal_operator_b'>if</a> <a href='#SkMatrix_equal_operator_a'>a</a> <a href='#SkMatrix_equal_operator_a'>and</a> <a href='#SkMatrix_equal_operator_b'>b</a> <a href='#SkMatrix_equal_operator_b'>are</a> <a href='#SkMatrix_equal_operator_b'>numerically</a> <a href='#SkMatrix_equal_operator_b'>equal</a>. <a href='#SkMatrix_equal_operator_b'>Returns</a> <a href='#SkMatrix_equal_operator_b'>true</a>
+Compares <a href='#SkMatrix_equal_operator_a'>a</a> and <a href='#SkMatrix_equal_operator_b'>b</a>; returns true if <a href='#SkMatrix_equal_operator_a'>a</a> and <a href='#SkMatrix_equal_operator_b'>b</a> are numerically equal. Returns true
even if sign of zero values are different. Returns false if either <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a>
-contains NaN, even if the other <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> <a href='SkMatrix_Reference#SkMatrix'>also</a> <a href='SkMatrix_Reference#SkMatrix'>contains</a> <a href='SkMatrix_Reference#SkMatrix'>NaN</a>.
+contains NaN, even if the other <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> also contains NaN.
### Parameters
<table> <tr> <td><a name='SkMatrix_equal_operator_a'><code><strong>a</strong></code></a></td>
- <td><a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> <a href='SkMatrix_Reference#SkMatrix'>to</a> <a href='SkMatrix_Reference#SkMatrix'>compare</a></td>
+ <td><a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> to compare</td>
</tr>
<tr> <td><a name='SkMatrix_equal_operator_b'><code><strong>b</strong></code></a></td>
- <td><a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> <a href='SkMatrix_Reference#SkMatrix'>to</a> <a href='SkMatrix_Reference#SkMatrix'>compare</a></td>
+ <td><a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> to compare</td>
</tr>
</table>
### Return Value
-true if <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> <a href='#SkMatrix_equal_operator_a'>a</a> <a href='#SkMatrix_equal_operator_a'>and</a> <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> <a href='#SkMatrix_equal_operator_b'>b</a> <a href='#SkMatrix_equal_operator_b'>are</a> <a href='#SkMatrix_equal_operator_b'>numerically</a> <a href='#SkMatrix_equal_operator_b'>equal</a>
+true if <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> <a href='#SkMatrix_equal_operator_a'>a</a> and <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> <a href='#SkMatrix_equal_operator_b'>b</a> are numerically equal
### Example
@@ -4042,26 +4042,26 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-bool operator!=(const <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a>& <a href='SkMatrix_Reference#SkMatrix'>a</a>, <a href='SkMatrix_Reference#SkMatrix'>const</a> <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a>& <a href='SkMatrix_Reference#SkMatrix'>b</a>)
+bool operator!=(const <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a>& a, const <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a>& b)
</pre>
-Compares <a href='#SkMatrix_notequal_operator_a'>a</a> <a href='#SkMatrix_notequal_operator_a'>and</a> <a href='#SkMatrix_notequal_operator_b'>b</a>; <a href='#SkMatrix_notequal_operator_b'>returns</a> <a href='#SkMatrix_notequal_operator_b'>true</a> <a href='#SkMatrix_notequal_operator_b'>if</a> <a href='#SkMatrix_notequal_operator_a'>a</a> <a href='#SkMatrix_notequal_operator_a'>and</a> <a href='#SkMatrix_notequal_operator_b'>b</a> <a href='#SkMatrix_notequal_operator_b'>are</a> <a href='#SkMatrix_notequal_operator_b'>not</a> <a href='#SkMatrix_notequal_operator_b'>numerically</a> <a href='#SkMatrix_notequal_operator_b'>equal</a>. <a href='#SkMatrix_notequal_operator_b'>Returns</a> <a href='#SkMatrix_notequal_operator_b'>false</a>
+Compares <a href='#SkMatrix_notequal_operator_a'>a</a> and <a href='#SkMatrix_notequal_operator_b'>b</a>; returns true if <a href='#SkMatrix_notequal_operator_a'>a</a> and <a href='#SkMatrix_notequal_operator_b'>b</a> are not numerically equal. Returns false
even if sign of zero values are different. Returns true if either <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a>
-contains NaN, even if the other <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> <a href='SkMatrix_Reference#SkMatrix'>also</a> <a href='SkMatrix_Reference#SkMatrix'>contains</a> <a href='SkMatrix_Reference#SkMatrix'>NaN</a>.
+contains NaN, even if the other <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> also contains NaN.
### Parameters
<table> <tr> <td><a name='SkMatrix_notequal_operator_a'><code><strong>a</strong></code></a></td>
- <td><a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> <a href='SkMatrix_Reference#SkMatrix'>to</a> <a href='SkMatrix_Reference#SkMatrix'>compare</a></td>
+ <td><a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> to compare</td>
</tr>
<tr> <td><a name='SkMatrix_notequal_operator_b'><code><strong>b</strong></code></a></td>
- <td><a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> <a href='SkMatrix_Reference#SkMatrix'>to</a> <a href='SkMatrix_Reference#SkMatrix'>compare</a></td>
+ <td><a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> to compare</td>
</tr>
</table>
### Return Value
-true if <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> <a href='#SkMatrix_notequal_operator_a'>a</a> <a href='#SkMatrix_notequal_operator_a'>and</a> <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> <a href='#SkMatrix_notequal_operator_b'>b</a> <a href='#SkMatrix_notequal_operator_b'>are</a> <a href='#SkMatrix_notequal_operator_b'>numerically</a> <a href='#SkMatrix_notequal_operator_b'>not</a> <a href='#SkMatrix_notequal_operator_b'>equal</a>
+true if <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> <a href='#SkMatrix_notequal_operator_a'>a</a> and <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> <a href='#SkMatrix_notequal_operator_b'>b</a> are numerically not equal
### Example
@@ -4078,12 +4078,12 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-void <a href='#SkMatrix_dump'>dump()</a> <a href='#SkMatrix_dump'>const</a>
+void <a href='#SkMatrix_dump'>dump()</a> const
</pre>
-Writes <a href='undocumented#Text'>text</a> <a href='undocumented#Text'>representation</a> <a href='undocumented#Text'>of</a> <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> <a href='SkMatrix_Reference#SkMatrix'>to</a> <a href='SkMatrix_Reference#SkMatrix'>standard</a> <a href='SkMatrix_Reference#SkMatrix'>output</a>. <a href='SkMatrix_Reference#SkMatrix'>Floating</a> <a href='SkPoint_Reference#Point'>point</a> <a href='SkPoint_Reference#Point'>values</a>
+Writes <a href='undocumented#Text'>text</a> representation of <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> to standard output. Floating <a href='SkPoint_Reference#Point'>point</a> values
are written with limited precision; it may not be possible to reconstruct
-original <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> <a href='SkMatrix_Reference#SkMatrix'>from</a> <a href='SkMatrix_Reference#SkMatrix'>output</a>.
+original <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> from output.
### Example
@@ -4108,12 +4108,12 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-<a href='undocumented#SkScalar'>SkScalar</a> <a href='#SkMatrix_getMinScale'>getMinScale</a>() <a href='#SkMatrix_getMinScale'>const</a>
+<a href='undocumented#SkScalar'>SkScalar</a> <a href='#SkMatrix_getMinScale'>getMinScale</a>() const
</pre>
-Returns the minimum scaling factor of <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> <a href='SkMatrix_Reference#SkMatrix'>by</a> <a href='SkMatrix_Reference#SkMatrix'>decomposing</a> <a href='SkMatrix_Reference#SkMatrix'>the</a> <a href='SkMatrix_Reference#SkMatrix'>scaling</a> <a href='SkMatrix_Reference#SkMatrix'>and</a>
+Returns the minimum scaling factor of <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> by decomposing the scaling and
skewing elements.
-Returns -1 if scale factor overflows or <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> <a href='SkMatrix_Reference#SkMatrix'>contains</a> <a href='SkMatrix_Reference#SkMatrix'>perspective</a>.
+Returns -1 if scale factor overflows or <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> contains perspective.
### Return Value
@@ -4140,12 +4140,12 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-<a href='undocumented#SkScalar'>SkScalar</a> <a href='#SkMatrix_getMaxScale'>getMaxScale</a>() <a href='#SkMatrix_getMaxScale'>const</a>
+<a href='undocumented#SkScalar'>SkScalar</a> <a href='#SkMatrix_getMaxScale'>getMaxScale</a>() const
</pre>
-Returns the maximum scaling factor of <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> <a href='SkMatrix_Reference#SkMatrix'>by</a> <a href='SkMatrix_Reference#SkMatrix'>decomposing</a> <a href='SkMatrix_Reference#SkMatrix'>the</a> <a href='SkMatrix_Reference#SkMatrix'>scaling</a> <a href='SkMatrix_Reference#SkMatrix'>and</a>
+Returns the maximum scaling factor of <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> by decomposing the scaling and
skewing elements.
-Returns -1 if scale factor overflows or <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> <a href='SkMatrix_Reference#SkMatrix'>contains</a> <a href='SkMatrix_Reference#SkMatrix'>perspective</a>.
+Returns -1 if scale factor overflows or <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> contains perspective.
### Return Value
@@ -4172,15 +4172,15 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-bool <a href='#SkMatrix_getMinMaxScales'>getMinMaxScales</a>(<a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>scaleFactors</a>[2]) <a href='undocumented#SkScalar'>const</a>
+bool <a href='#SkMatrix_getMinMaxScales'>getMinMaxScales</a>(<a href='undocumented#SkScalar'>SkScalar</a> scaleFactors[2]) const
</pre>
-Sets <a href='#SkMatrix_getMinMaxScales_scaleFactors'>scaleFactors</a>[0] <a href='#SkMatrix_getMinMaxScales_scaleFactors'>to</a> <a href='#SkMatrix_getMinMaxScales_scaleFactors'>the</a> <a href='#SkMatrix_getMinMaxScales_scaleFactors'>minimum</a> <a href='#SkMatrix_getMinMaxScales_scaleFactors'>scaling</a> <a href='#SkMatrix_getMinMaxScales_scaleFactors'>factor</a>, <a href='#SkMatrix_getMinMaxScales_scaleFactors'>and</a> <a href='#SkMatrix_getMinMaxScales_scaleFactors'>scaleFactors</a>[1] <a href='#SkMatrix_getMinMaxScales_scaleFactors'>to</a> <a href='#SkMatrix_getMinMaxScales_scaleFactors'>the</a>
+Sets <a href='#SkMatrix_getMinMaxScales_scaleFactors'>scaleFactors</a>[0] to the minimum scaling factor, and <a href='#SkMatrix_getMinMaxScales_scaleFactors'>scaleFactors</a>[1] to the
maximum scaling factor. Scaling factors are computed by decomposing
-the <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> <a href='SkMatrix_Reference#SkMatrix'>scaling</a> <a href='SkMatrix_Reference#SkMatrix'>and</a> <a href='SkMatrix_Reference#SkMatrix'>skewing</a> <a href='SkMatrix_Reference#SkMatrix'>elements</a>.
+the <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> scaling and skewing elements.
-Returns true if <a href='#SkMatrix_getMinMaxScales_scaleFactors'>scaleFactors</a> <a href='#SkMatrix_getMinMaxScales_scaleFactors'>are</a> <a href='#SkMatrix_getMinMaxScales_scaleFactors'>found</a>; <a href='#SkMatrix_getMinMaxScales_scaleFactors'>otherwise</a>, <a href='#SkMatrix_getMinMaxScales_scaleFactors'>returns</a> <a href='#SkMatrix_getMinMaxScales_scaleFactors'>false</a> <a href='#SkMatrix_getMinMaxScales_scaleFactors'>and</a> <a href='#SkMatrix_getMinMaxScales_scaleFactors'>sets</a>
-<a href='#SkMatrix_getMinMaxScales_scaleFactors'>scaleFactors</a> <a href='#SkMatrix_getMinMaxScales_scaleFactors'>to</a> <a href='#SkMatrix_getMinMaxScales_scaleFactors'>undefined</a> <a href='#SkMatrix_getMinMaxScales_scaleFactors'>values</a>.
+Returns true if <a href='#SkMatrix_getMinMaxScales_scaleFactors'>scaleFactors</a> are found; otherwise, returns false and sets
+<a href='#SkMatrix_getMinMaxScales_scaleFactors'>scaleFactors</a> to undefined values.
### Parameters
@@ -4214,21 +4214,21 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-bool <a href='#SkMatrix_decomposeScale'>decomposeScale</a>(<a href='undocumented#SkSize'>SkSize</a>* <a href='undocumented#SkSize'>scale</a>, <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a>* <a href='SkMatrix_Reference#SkMatrix'>remaining</a> = <a href='SkMatrix_Reference#SkMatrix'>nullptr</a>) <a href='SkMatrix_Reference#SkMatrix'>const</a>
+bool <a href='#SkMatrix_decomposeScale'>decomposeScale</a>(<a href='undocumented#SkSize'>SkSize</a>* scale, <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a>* remaining = nullptr) const
</pre>
-Decomposes <a href='SkMatrix_Reference#Matrix'>Matrix</a> <a href='SkMatrix_Reference#Matrix'>into</a> <a href='#SkMatrix_decomposeScale_scale'>scale</a> <a href='#SkMatrix_decomposeScale_scale'>components</a> <a href='#SkMatrix_decomposeScale_scale'>and</a> <a href='#SkMatrix_decomposeScale_scale'>whatever</a> <a href='#SkMatrix_decomposeScale_scale'>remains</a>. <a href='#SkMatrix_decomposeScale_scale'>Returns</a> <a href='#SkMatrix_decomposeScale_scale'>false</a> <a href='#SkMatrix_decomposeScale_scale'>if</a>
-<a href='SkMatrix_Reference#Matrix'>Matrix</a> <a href='SkMatrix_Reference#Matrix'>could</a> <a href='SkMatrix_Reference#Matrix'>not</a> <a href='SkMatrix_Reference#Matrix'>be</a> <a href='SkMatrix_Reference#Matrix'>decomposed</a>.
+Decomposes <a href='SkMatrix_Reference#Matrix'>Matrix</a> into <a href='#SkMatrix_decomposeScale_scale'>scale</a> components and whatever remains. Returns false if
+<a href='SkMatrix_Reference#Matrix'>Matrix</a> could not be decomposed.
-<a href='SkMatrix_Reference#Matrix'>Sets</a> <a href='#SkMatrix_decomposeScale_scale'>scale</a> <a href='#SkMatrix_decomposeScale_scale'>to</a> <a href='#SkMatrix_decomposeScale_scale'>portion</a> <a href='#SkMatrix_decomposeScale_scale'>of</a> <a href='SkMatrix_Reference#Matrix'>Matrix</a> <a href='SkMatrix_Reference#Matrix'>that</a> <a href='#SkMatrix_decomposeScale_scale'>scale</a> <a href='#SkMatrix_decomposeScale_scale'>axes</a>. <a href='#SkMatrix_decomposeScale_scale'>Sets</a> <a href='#SkMatrix_decomposeScale_remaining'>remaining</a> <a href='#SkMatrix_decomposeScale_remaining'>to</a> <a href='SkMatrix_Reference#Matrix'>Matrix</a>
-<a href='SkMatrix_Reference#Matrix'>with</a> <a href='SkMatrix_Reference#Matrix'>scaling</a> <a href='SkMatrix_Reference#Matrix'>factored</a> <a href='SkMatrix_Reference#Matrix'>out</a>. <a href='#SkMatrix_decomposeScale_remaining'>remaining</a> <a href='#SkMatrix_decomposeScale_remaining'>may</a> <a href='#SkMatrix_decomposeScale_remaining'>be</a> <a href='#SkMatrix_decomposeScale_remaining'>passed</a> <a href='#SkMatrix_decomposeScale_remaining'>as</a> <a href='#SkMatrix_decomposeScale_remaining'>nullptr</a>
-<a href='#SkMatrix_decomposeScale_remaining'>to</a> <a href='#SkMatrix_decomposeScale_remaining'>determine</a> <a href='#SkMatrix_decomposeScale_remaining'>if</a> <a href='SkMatrix_Reference#Matrix'>Matrix</a> <a href='SkMatrix_Reference#Matrix'>can</a> <a href='SkMatrix_Reference#Matrix'>be</a> <a href='SkMatrix_Reference#Matrix'>decomposed</a> <a href='SkMatrix_Reference#Matrix'>without</a> <a href='SkMatrix_Reference#Matrix'>computing</a> <a href='SkMatrix_Reference#Matrix'>remainder</a>.
+Sets <a href='#SkMatrix_decomposeScale_scale'>scale</a> to portion of <a href='SkMatrix_Reference#Matrix'>Matrix</a> that <a href='#SkMatrix_decomposeScale_scale'>scale</a> axes. Sets <a href='#SkMatrix_decomposeScale_remaining'>remaining</a> to <a href='SkMatrix_Reference#Matrix'>Matrix</a>
+with scaling factored out. <a href='#SkMatrix_decomposeScale_remaining'>remaining</a> may be passed as nullptr
+to determine if <a href='SkMatrix_Reference#Matrix'>Matrix</a> can be decomposed without computing remainder.
-<a href='SkMatrix_Reference#Matrix'>Returns</a> <a href='SkMatrix_Reference#Matrix'>true</a> <a href='SkMatrix_Reference#Matrix'>if</a> <a href='#SkMatrix_decomposeScale_scale'>scale</a> <a href='#SkMatrix_decomposeScale_scale'>components</a> <a href='#SkMatrix_decomposeScale_scale'>are</a> <a href='#SkMatrix_decomposeScale_scale'>found</a>. <a href='#SkMatrix_decomposeScale_scale'>scale</a> <a href='#SkMatrix_decomposeScale_scale'>and</a> <a href='#SkMatrix_decomposeScale_remaining'>remaining</a> <a href='#SkMatrix_decomposeScale_remaining'>are</a>
-<a href='#SkMatrix_decomposeScale_remaining'>unchanged</a> <a href='#SkMatrix_decomposeScale_remaining'>if</a> <a href='SkMatrix_Reference#Matrix'>Matrix</a> <a href='SkMatrix_Reference#Matrix'>contains</a> <a href='SkMatrix_Reference#Matrix'>perspective</a>; <a href='#SkMatrix_decomposeScale_scale'>scale</a> <a href='#SkMatrix_decomposeScale_scale'>factors</a> <a href='#SkMatrix_decomposeScale_scale'>are</a> <a href='#SkMatrix_decomposeScale_scale'>not</a> <a href='#SkMatrix_decomposeScale_scale'>finite</a>, <a href='#SkMatrix_decomposeScale_scale'>or</a>
-<a href='#SkMatrix_decomposeScale_scale'>are</a> <a href='#SkMatrix_decomposeScale_scale'>nearly</a> <a href='#SkMatrix_decomposeScale_scale'>zero</a>.
+Returns true if <a href='#SkMatrix_decomposeScale_scale'>scale</a> components are found. <a href='#SkMatrix_decomposeScale_scale'>scale</a> and <a href='#SkMatrix_decomposeScale_remaining'>remaining</a> are
+unchanged if <a href='SkMatrix_Reference#Matrix'>Matrix</a> contains perspective; <a href='#SkMatrix_decomposeScale_scale'>scale</a> factors are not finite, or
+are nearly zero.
-<a href='#SkMatrix_decomposeScale_scale'>On</a> <a href='#SkMatrix_decomposeScale_scale'>success</a>: <code><a href='SkMatrix_Reference#Matrix'>Matrix</a> = <a href='#SkMatrix_decomposeScale_scale'>scale</a> * <a href='#SkMatrix_decomposeScale_scale'>Remaining</a></code>.
+On success: <code><a href='SkMatrix_Reference#Matrix'>Matrix</a> = <a href='#SkMatrix_decomposeScale_scale'>scale</a> * Remaining</code>.
### Parameters
@@ -4236,13 +4236,13 @@
<td>axes scaling factors; may be nullptr</td>
</tr>
<tr> <td><a name='SkMatrix_decomposeScale_remaining'><code><strong>remaining</strong></code></a></td>
- <td><a href='SkMatrix_Reference#Matrix'>Matrix</a> <a href='SkMatrix_Reference#Matrix'>without</a> <a href='SkMatrix_Reference#Matrix'>scaling</a>; <a href='SkMatrix_Reference#Matrix'>may</a> <a href='SkMatrix_Reference#Matrix'>be</a> <a href='SkMatrix_Reference#Matrix'>nullptr</a></td>
+ <td><a href='SkMatrix_Reference#Matrix'>Matrix</a> without scaling; may be nullptr</td>
</tr>
</table>
### Return Value
-true if <a href='#SkMatrix_decomposeScale_scale'>scale</a> <a href='#SkMatrix_decomposeScale_scale'>can</a> <a href='#SkMatrix_decomposeScale_scale'>be</a> <a href='#SkMatrix_decomposeScale_scale'>computed</a>
+true if <a href='#SkMatrix_decomposeScale_scale'>scale</a> can be computed
### Example
@@ -4271,7 +4271,7 @@
static const <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a>& <a href='#SkMatrix_I'>I</a>()
</pre>
-Returns reference to const identity <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a>. <a href='SkMatrix_Reference#SkMatrix'>Returned</a> <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> <a href='SkMatrix_Reference#SkMatrix'>is</a> <a href='SkMatrix_Reference#SkMatrix'>set</a> <a href='SkMatrix_Reference#SkMatrix'>to</a>:
+Returns reference to const identity <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a>. Returned <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> is set to:
| 1 0 0 |
| 0 1 0 |
@@ -4306,7 +4306,7 @@
static const <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a>& <a href='#SkMatrix_InvalidMatrix'>InvalidMatrix</a>()
</pre>
-Returns reference to a const <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> <a href='SkMatrix_Reference#SkMatrix'>with</a> <a href='SkMatrix_Reference#SkMatrix'>invalid</a> <a href='SkMatrix_Reference#SkMatrix'>values</a>. <a href='SkMatrix_Reference#SkMatrix'>Returned</a> <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> <a href='SkMatrix_Reference#SkMatrix'>is</a> <a href='SkMatrix_Reference#SkMatrix'>set</a>
+Returns reference to a const <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> with invalid values. Returned <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> is set
to:
| <a href='undocumented#SK_ScalarMax'>SK_ScalarMax</a> <a href='undocumented#SK_ScalarMax'>SK_ScalarMax</a> <a href='undocumented#SK_ScalarMax'>SK_ScalarMax</a> |
@@ -4338,41 +4338,41 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-static <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> <a href='#SkMatrix_Concat'>Concat</a>(<a href='#SkMatrix_Concat'>const</a> <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a>& <a href='SkMatrix_Reference#SkMatrix'>a</a>, <a href='SkMatrix_Reference#SkMatrix'>const</a> <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a>& <a href='SkMatrix_Reference#SkMatrix'>b</a>)
+static <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> <a href='#SkMatrix_Concat'>Concat</a>(const <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a>& a, const <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a>& b)
</pre>
-Returns <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> <a href='#SkMatrix_Concat_a'>a</a> <a href='#SkMatrix_Concat_a'>multiplied</a> <a href='#SkMatrix_Concat_a'>by</a> <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> <a href='#SkMatrix_Concat_b'>b</a>.
+Returns <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> <a href='#SkMatrix_Concat_a'>a</a> multiplied by <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> <a href='#SkMatrix_Concat_b'>b</a>.
Given:
| A B C | | J K L |
-<a href='#SkMatrix_Concat_a'>a</a> = | <a href='#SkMatrix_Concat_a'>D</a> <a href='#SkMatrix_Concat_a'>E</a> <a href='#SkMatrix_Concat_a'>F</a> |, <a href='#SkMatrix_Concat_b'>b</a> = | <a href='#SkMatrix_Concat_b'>M</a> <a href='#SkMatrix_Concat_b'>N</a> <a href='#SkMatrix_Concat_b'>O</a> |
-| G H <a href='#SkMatrix_I'>I</a> | | <a href='#SkMatrix_I'>P</a> <a href='#SkMatrix_I'>Q</a> <a href='#SkMatrix_I'>R</a> |
+<a href='#SkMatrix_Concat_a'>a</a> = | D E F |, <a href='#SkMatrix_Concat_b'>b</a> = | M N O |
+| G H <a href='#SkMatrix_I'>I</a> | | P Q R |
-sets <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> <a href='SkMatrix_Reference#SkMatrix'>to</a>:
+sets <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> to:
| A B C | | J K L | | AJ+BM+CP AK+BN+CQ AL+BO+CR |
-<a href='#SkMatrix_Concat_a'>a</a> * <a href='#SkMatrix_Concat_b'>b</a> = | <a href='#SkMatrix_Concat_b'>D</a> <a href='#SkMatrix_Concat_b'>E</a> <a href='#SkMatrix_Concat_b'>F</a> | * | <a href='#SkMatrix_Concat_b'>M</a> <a href='#SkMatrix_Concat_b'>N</a> <a href='#SkMatrix_Concat_b'>O</a> | = | <a href='#SkMatrix_Concat_b'>DJ</a>+<a href='#SkMatrix_Concat_b'>EM</a>+<a href='#SkMatrix_Concat_b'>FP</a> <a href='#SkMatrix_Concat_b'>DK</a>+<a href='#SkMatrix_Concat_b'>EN</a>+<a href='#SkMatrix_Concat_b'>FQ</a> <a href='#SkMatrix_Concat_b'>DL</a>+<a href='#SkMatrix_Concat_b'>EO</a>+<a href='#SkMatrix_Concat_b'>FR</a> |
-| G H <a href='#SkMatrix_I'>I</a> | | <a href='#SkMatrix_I'>P</a> <a href='#SkMatrix_I'>Q</a> <a href='#SkMatrix_I'>R</a> | | <a href='#SkMatrix_I'>GJ</a>+<a href='#SkMatrix_I'>HM</a>+<a href='#SkMatrix_I'>IP</a> <a href='#SkMatrix_I'>GK</a>+<a href='#SkMatrix_I'>HN</a>+<a href='#SkMatrix_I'>IQ</a> <a href='#SkMatrix_I'>GL</a>+<a href='#SkMatrix_I'>HO</a>+<a href='#SkMatrix_I'>IR</a> |
+<a href='#SkMatrix_Concat_a'>a</a> * <a href='#SkMatrix_Concat_b'>b</a> = | D E F | * | M N O | = | DJ+EM+FP DK+EN+FQ DL+EO+FR |
+| G H <a href='#SkMatrix_I'>I</a> | | P Q R | | GJ+HM+IP GK+HN+IQ GL+HO+IR |
### Parameters
<table> <tr> <td><a name='SkMatrix_Concat_a'><code><strong>a</strong></code></a></td>
- <td><a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> <a href='SkMatrix_Reference#SkMatrix'>on</a> <a href='SkMatrix_Reference#SkMatrix'>left side</a> <a href='SkMatrix_Reference#SkMatrix'>of</a> <a href='SkMatrix_Reference#SkMatrix'>multiply</a> <a href='SkMatrix_Reference#SkMatrix'>expression</a></td>
+ <td><a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> on left side of multiply expression</td>
</tr>
<tr> <td><a name='SkMatrix_Concat_b'><code><strong>b</strong></code></a></td>
- <td><a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> <a href='SkMatrix_Reference#SkMatrix'>on</a> <a href='SkMatrix_Reference#SkMatrix'>right side</a> <a href='SkMatrix_Reference#SkMatrix'>of</a> <a href='SkMatrix_Reference#SkMatrix'>multiply</a> <a href='SkMatrix_Reference#SkMatrix'>expression</a></td>
+ <td><a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> on right side of multiply expression</td>
</tr>
</table>
### Return Value
-<a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> <a href='SkMatrix_Reference#SkMatrix'>computed</a> <a href='SkMatrix_Reference#SkMatrix'>from</a> <a href='#SkMatrix_Concat_a'>a</a> <a href='#SkMatrix_Concat_a'>times</a> <a href='#SkMatrix_Concat_b'>b</a>
+<a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> computed from <a href='#SkMatrix_Concat_a'>a</a> times <a href='#SkMatrix_Concat_b'>b</a>
### Example
-<div><fiddle-embed name="6b4562c7052da94f3d5b2412dca41946"><div><a href='#SkMatrix_setPolyToPoly'>setPolyToPoly</a> <a href='#SkMatrix_setPolyToPoly'>creates</a> <a href='#SkMatrix_setPolyToPoly'>perspective</a> <a href='SkMatrix_Reference#Matrix'>matrices</a>, <a href='SkMatrix_Reference#Matrix'>one</a> <a href='SkMatrix_Reference#Matrix'>the</a> <a href='SkMatrix_Reference#Matrix'>inverse</a> <a href='SkMatrix_Reference#Matrix'>of</a> <a href='SkMatrix_Reference#Matrix'>the</a> <a href='SkMatrix_Reference#Matrix'>other</a>.
-<a href='SkMatrix_Reference#Matrix'>Multiplying</a> <a href='SkMatrix_Reference#Matrix'>the</a> <a href='SkMatrix_Reference#Matrix'>matrix</a> <a href='SkMatrix_Reference#Matrix'>by</a> <a href='SkMatrix_Reference#Matrix'>its</a> <a href='SkMatrix_Reference#Matrix'>inverse</a> <a href='SkMatrix_Reference#Matrix'>turns</a> <a href='SkMatrix_Reference#Matrix'>into</a> <a href='SkMatrix_Reference#Matrix'>an</a> <a href='SkMatrix_Reference#Matrix'>identity</a> <a href='SkMatrix_Reference#Matrix'>matrix</a>.
+<div><fiddle-embed name="6b4562c7052da94f3d5b2412dca41946"><div><a href='#SkMatrix_setPolyToPoly'>setPolyToPoly</a> creates perspective <a href='SkMatrix_Reference#Matrix'>matrices</a>, one the inverse of the other.
+Multiplying the <a href='SkMatrix_Reference#Matrix'>matrix</a> by its inverse turns into an identity <a href='SkMatrix_Reference#Matrix'>matrix</a>.
</div></fiddle-embed></div>
### See Also
@@ -4388,7 +4388,7 @@
</pre>
Sets internal cache to unknown state. Use to force update after repeated
-modifications to <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> <a href='SkMatrix_Reference#SkMatrix'>element</a> <a href='SkMatrix_Reference#SkMatrix'>reference</a> <a href='SkMatrix_Reference#SkMatrix'>returned</a> <a href='SkMatrix_Reference#SkMatrix'>by</a> by<a href='#SkMatrix_array1_operator'>operator[](int index)</a>.
+modifications to <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> element reference returned by by<a href='#SkMatrix_array1_operator'>operator[](int index)</a>.
### Example
@@ -4414,10 +4414,10 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-void <a href='#SkMatrix_setScaleTranslate'>setScaleTranslate</a>(<a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>sx</a>, <a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>sy</a>, <a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>tx</a>, <a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>ty</a>)
+void <a href='#SkMatrix_setScaleTranslate'>setScaleTranslate</a>(<a href='undocumented#SkScalar'>SkScalar</a> sx, <a href='undocumented#SkScalar'>SkScalar</a> sy, <a href='undocumented#SkScalar'>SkScalar</a> tx, <a href='undocumented#SkScalar'>SkScalar</a> ty)
</pre>
-Initializes <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> <a href='SkMatrix_Reference#SkMatrix'>with</a> <a href='SkMatrix_Reference#SkMatrix'>scale</a> <a href='SkMatrix_Reference#SkMatrix'>and</a> <a href='SkMatrix_Reference#SkMatrix'>translate</a> <a href='SkMatrix_Reference#SkMatrix'>elements</a>.
+Initializes <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> with scale and translate elements.
| <a href='#SkMatrix_setScaleTranslate_sx'>sx</a> 0 <a href='#SkMatrix_setScaleTranslate_tx'>tx</a> |
| 0 <a href='#SkMatrix_setScaleTranslate_sy'>sy</a> <a href='#SkMatrix_setScaleTranslate_ty'>ty</a> |
@@ -4460,15 +4460,15 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-bool <a href='#SkMatrix_isFinite'>isFinite</a>() <a href='#SkMatrix_isFinite'>const</a>
+bool <a href='#SkMatrix_isFinite'>isFinite</a>() const
</pre>
-Returns true if all elements of the <a href='SkMatrix_Reference#Matrix'>matrix</a> <a href='SkMatrix_Reference#Matrix'>are</a> <a href='SkMatrix_Reference#Matrix'>finite</a>. <a href='SkMatrix_Reference#Matrix'>Returns</a> <a href='SkMatrix_Reference#Matrix'>false</a> <a href='SkMatrix_Reference#Matrix'>if</a> <a href='SkMatrix_Reference#Matrix'>any</a>
+Returns true if all elements of the <a href='SkMatrix_Reference#Matrix'>matrix</a> are finite. Returns false if any
element is infinity, or NaN.
### Return Value
-true if <a href='SkMatrix_Reference#Matrix'>matrix</a> <a href='SkMatrix_Reference#Matrix'>has</a> <a href='SkMatrix_Reference#Matrix'>only</a> <a href='SkMatrix_Reference#Matrix'>finite</a> <a href='SkMatrix_Reference#Matrix'>elements</a>
+true if <a href='SkMatrix_Reference#Matrix'>matrix</a> has only finite elements
### Example
diff --git a/site/user/api/SkPaint_Reference.md b/site/user/api/SkPaint_Reference.md
index 15f888b..eb87a6f 100644
--- a/site/user/api/SkPaint_Reference.md
+++ b/site/user/api/SkPaint_Reference.md
@@ -8,91 +8,81 @@
<pre style="padding: 1em 1em 1em 1em;width: 62.5em; background-color: #f0f0f0">
class <a href='SkPaint_Reference#SkPaint'>SkPaint</a> {
-<a href='SkPaint_Reference#SkPaint'>public</a>:
+public:
<a href='#SkPaint_empty_constructor'>SkPaint()</a>;
- <a href='SkPaint_Reference#SkPaint'>SkPaint</a>(<a href='SkPaint_Reference#SkPaint'>const</a> <a href='SkPaint_Reference#SkPaint'>SkPaint</a>& <a href='SkPaint_Reference#Paint'>paint</a>);
+ <a href='SkPaint_Reference#SkPaint'>SkPaint</a>(const <a href='SkPaint_Reference#SkPaint'>SkPaint</a>& <a href='SkPaint_Reference#Paint'>paint</a>);
<a href='SkPaint_Reference#SkPaint'>SkPaint</a>(<a href='SkPaint_Reference#SkPaint'>SkPaint</a>&& <a href='SkPaint_Reference#Paint'>paint</a>);
~<a href='#SkPaint_empty_constructor'>SkPaint()</a>;
- <a href='SkPaint_Reference#SkPaint'>SkPaint</a>& <a href='SkPaint_Reference#SkPaint'>operator</a>=(<a href='SkPaint_Reference#SkPaint'>const</a> <a href='SkPaint_Reference#SkPaint'>SkPaint</a>& <a href='SkPaint_Reference#Paint'>paint</a>);
- <a href='SkPaint_Reference#SkPaint'>SkPaint</a>& <a href='SkPaint_Reference#SkPaint'>operator</a>=(<a href='SkPaint_Reference#SkPaint'>SkPaint</a>&& <a href='SkPaint_Reference#Paint'>paint</a>);
- <a href='SkPaint_Reference#Paint'>friend</a> <a href='SkPaint_Reference#Paint'>bool</a> <a href='SkPaint_Reference#Paint'>operator</a>==(<a href='SkPaint_Reference#Paint'>const</a> <a href='SkPaint_Reference#SkPaint'>SkPaint</a>& <a href='SkPaint_Reference#SkPaint'>a</a>, <a href='SkPaint_Reference#SkPaint'>const</a> <a href='SkPaint_Reference#SkPaint'>SkPaint</a>& <a href='SkPaint_Reference#SkPaint'>b</a>);
- <a href='SkPaint_Reference#SkPaint'>friend</a> <a href='SkPaint_Reference#SkPaint'>bool</a> <a href='SkPaint_Reference#SkPaint'>operator</a>!=(<a href='SkPaint_Reference#SkPaint'>const</a> <a href='SkPaint_Reference#SkPaint'>SkPaint</a>& <a href='SkPaint_Reference#SkPaint'>a</a>, <a href='SkPaint_Reference#SkPaint'>const</a> <a href='SkPaint_Reference#SkPaint'>SkPaint</a>& <a href='SkPaint_Reference#SkPaint'>b</a>);
- <a href='SkPaint_Reference#SkPaint'>uint32_t</a> <a href='#SkPaint_getHash'>getHash</a>() <a href='#SkPaint_getHash'>const</a>;
- <a href='#SkPaint_getHash'>void</a> <a href='#SkPaint_reset'>reset()</a>;
+ <a href='SkPaint_Reference#SkPaint'>SkPaint</a>& operator=(const <a href='SkPaint_Reference#SkPaint'>SkPaint</a>& <a href='SkPaint_Reference#Paint'>paint</a>);
+ <a href='SkPaint_Reference#SkPaint'>SkPaint</a>& operator=(<a href='SkPaint_Reference#SkPaint'>SkPaint</a>&& <a href='SkPaint_Reference#Paint'>paint</a>);
+ friend bool operator==(const <a href='SkPaint_Reference#SkPaint'>SkPaint</a>& a, const <a href='SkPaint_Reference#SkPaint'>SkPaint</a>& b);
+ friend bool operator!=(const <a href='SkPaint_Reference#SkPaint'>SkPaint</a>& a, const <a href='SkPaint_Reference#SkPaint'>SkPaint</a>& b);
+ uint32_t <a href='#SkPaint_getHash'>getHash</a>() const;
+ void <a href='#SkPaint_reset'>reset()</a>;
+ <a href='undocumented#SkFontHinting'>SkFontHinting</a> <a href='#SkPaint_getHinting'>getHinting</a>() const;
+ void <a href='#SkPaint_setHinting'>setHinting</a>(<a href='undocumented#SkFontHinting'>SkFontHinting</a> hintingLevel);
- <a href='#SkPaint_reset'>enum</a> <a href='#SkPaint_Hinting'>Hinting</a> : <a href='#SkPaint_Hinting'>uint8_t</a> {
- <a href='#SkPaint_kNo_Hinting'>kNo_Hinting</a> = 0,
- <a href='#SkPaint_kSlight_Hinting'>kSlight_Hinting</a> = 1,
- <a href='#SkPaint_kNormal_Hinting'>kNormal_Hinting</a> = 2,
- <a href='#SkPaint_kFull_Hinting'>kFull_Hinting</a> = 3,
+ enum <a href='#SkPaint_Flags'>Flags</a> {
+ <a href='#SkPaint_kAntiAlias_Flag'>kAntiAlias_Flag</a> = 0x01,
+ <a href='#SkPaint_kDither_Flag'>kDither_Flag</a> = 0x04,
+ <a href='#SkPaint_kFakeBoldText_Flag'>kFakeBoldText_Flag</a> = 0x20,
+ <a href='#SkPaint_kLinearText_Flag'>kLinearText_Flag</a> = 0x40,
+ <a href='#SkPaint_kSubpixelText_Flag'>kSubpixelText_Flag</a> = 0x80,
+ <a href='#SkPaint_kLCDRenderText_Flag'>kLCDRenderText_Flag</a> = 0x200,
+ <a href='#SkPaint_kEmbeddedBitmapText_Flag'>kEmbeddedBitmapText_Flag</a> = 0x400,
+ <a href='#SkPaint_kAutoHinting_Flag'>kAutoHinting_Flag</a> = 0x800,
+ <a href='#SkPaint_kAllFlags'>kAllFlags</a> = 0xFFFF,
};
- <a href='#SkPaint_kFull_Hinting'>void</a> <a href='#SkPaint_setHinting'>setHinting</a>(<a href='undocumented#SkFontHinting'>SkFontHinting</a> <a href='undocumented#SkFontHinting'>hintingLevel</a>);
- <a href='#SkPaint_Hinting'>Hinting</a> <a href='#SkPaint_getHinting'>getHinting</a>() <a href='#SkPaint_getHinting'>const</a>;
- <a href='#SkPaint_getHinting'>void</a> <a href='#SkPaint_setHinting'>setHinting</a>(<a href='#SkPaint_Hinting'>Hinting</a> <a href='#SkPaint_Hinting'>h</a>);
- <a href='undocumented#SkFontHinting'>SkFontHinting</a> <a href='#SkPaint_getHinting'>getHinting</a>() <a href='#SkPaint_getHinting'>const</a>;
-
- <a href='#SkPaint_getHinting'>enum</a> <a href='#SkPaint_Flags'>Flags</a> {
- <a href='#SkPaint_kAntiAlias_Flag'>kAntiAlias_Flag</a> = 0<a href='#SkPaint_kAntiAlias_Flag'>x01</a>,
- <a href='#SkPaint_kDither_Flag'>kDither_Flag</a> = 0<a href='#SkPaint_kDither_Flag'>x04</a>,
- <a href='#SkPaint_kFakeBoldText_Flag'>kFakeBoldText_Flag</a> = 0<a href='#SkPaint_kFakeBoldText_Flag'>x20</a>,
- <a href='#SkPaint_kLinearText_Flag'>kLinearText_Flag</a> = 0<a href='#SkPaint_kLinearText_Flag'>x40</a>,
- <a href='#SkPaint_kSubpixelText_Flag'>kSubpixelText_Flag</a> = 0<a href='#SkPaint_kSubpixelText_Flag'>x80</a>,
- <a href='#SkPaint_kLCDRenderText_Flag'>kLCDRenderText_Flag</a> = 0<a href='#SkPaint_kLCDRenderText_Flag'>x200</a>,
- <a href='#SkPaint_kEmbeddedBitmapText_Flag'>kEmbeddedBitmapText_Flag</a> = 0<a href='#SkPaint_kEmbeddedBitmapText_Flag'>x400</a>,
- <a href='#SkPaint_kAutoHinting_Flag'>kAutoHinting_Flag</a> = 0<a href='#SkPaint_kAutoHinting_Flag'>x800</a>,
- <a href='#SkPaint_kAllFlags'>kAllFlags</a> = 0<a href='#SkPaint_kAllFlags'>xFFFF</a>,
+ enum <a href='#SkPaint_ReserveFlags'>ReserveFlags</a> {
+ <a href='#SkPaint_kUnderlineText_ReserveFlag'>kUnderlineText_ReserveFlag</a> = 0x08,
+ <a href='#SkPaint_kStrikeThruText_ReserveFlag'>kStrikeThruText_ReserveFlag</a> = 0x10,
};
- <a href='#SkPaint_kAllFlags'>enum</a> <a href='#SkPaint_ReserveFlags'>ReserveFlags</a> {
- <a href='#SkPaint_kUnderlineText_ReserveFlag'>kUnderlineText_ReserveFlag</a> = 0<a href='#SkPaint_kUnderlineText_ReserveFlag'>x08</a>,
- <a href='#SkPaint_kStrikeThruText_ReserveFlag'>kStrikeThruText_ReserveFlag</a> = 0<a href='#SkPaint_kStrikeThruText_ReserveFlag'>x10</a>,
- };
+ uint32_t <a href='#SkPaint_getFlags'>getFlags</a>() const;
+ void <a href='#SkPaint_setFlags'>setFlags</a>(uint32_t flags);
+ bool <a href='#SkPaint_isAntiAlias'>isAntiAlias</a>() const;
+ void <a href='#SkPaint_setAntiAlias'>setAntiAlias</a>(bool aa);
+ bool <a href='#SkPaint_isDither'>isDither</a>() const;
+ void <a href='#SkPaint_setDither'>setDither</a>(bool dither);
+ bool <a href='#SkPaint_isLinearText'>isLinearText</a>() const;
+ void <a href='#SkPaint_setLinearText'>setLinearText</a>(bool linearText);
+ bool <a href='#SkPaint_isSubpixelText'>isSubpixelText</a>() const;
+ void <a href='#SkPaint_setSubpixelText'>setSubpixelText</a>(bool subpixelText);
+ bool <a href='#SkPaint_isLCDRenderText'>isLCDRenderText</a>() const;
+ void <a href='#SkPaint_setLCDRenderText'>setLCDRenderText</a>(bool lcdText);
+ bool <a href='#SkPaint_isEmbeddedBitmapText'>isEmbeddedBitmapText</a>() const;
+ void <a href='#SkPaint_setEmbeddedBitmapText'>setEmbeddedBitmapText</a>(bool useEmbeddedBitmapText);
+ bool <a href='#SkPaint_isAutohinted'>isAutohinted</a>() const;
+ void <a href='#SkPaint_setAutohinted'>setAutohinted</a>(bool useAutohinter);
+ bool <a href='#SkPaint_isFakeBoldText'>isFakeBoldText</a>() const;
+ void <a href='#SkPaint_setFakeBoldText'>setFakeBoldText</a>(bool fakeBoldText);
+ <a href='undocumented#SkFilterQuality'>SkFilterQuality</a> <a href='#SkPaint_getFilterQuality'>getFilterQuality</a>() const;
+ void <a href='#SkPaint_setFilterQuality'>setFilterQuality</a>(<a href='undocumented#SkFilterQuality'>SkFilterQuality</a> quality);
- <a href='#SkPaint_kStrikeThruText_ReserveFlag'>uint32_t</a> <a href='#SkPaint_getFlags'>getFlags</a>() <a href='#SkPaint_getFlags'>const</a>;
- <a href='#SkPaint_getFlags'>void</a> <a href='#SkPaint_setFlags'>setFlags</a>(<a href='#SkPaint_setFlags'>uint32_t</a> <a href='#SkPaint_setFlags'>flags</a>);
- <a href='#SkPaint_setFlags'>bool</a> <a href='#SkPaint_isAntiAlias'>isAntiAlias</a>() <a href='#SkPaint_isAntiAlias'>const</a>;
- <a href='#SkPaint_isAntiAlias'>void</a> <a href='#SkPaint_setAntiAlias'>setAntiAlias</a>(<a href='#SkPaint_setAntiAlias'>bool</a> <a href='#SkPaint_setAntiAlias'>aa</a>);
- <a href='#SkPaint_setAntiAlias'>bool</a> <a href='#SkPaint_isDither'>isDither</a>() <a href='#SkPaint_isDither'>const</a>;
- <a href='#SkPaint_isDither'>void</a> <a href='#SkPaint_setDither'>setDither</a>(<a href='#SkPaint_setDither'>bool</a> <a href='#SkPaint_setDither'>dither</a>);
- <a href='#SkPaint_setDither'>bool</a> <a href='#SkPaint_isLinearText'>isLinearText</a>() <a href='#SkPaint_isLinearText'>const</a>;
- <a href='#SkPaint_isLinearText'>void</a> <a href='#SkPaint_setLinearText'>setLinearText</a>(<a href='#SkPaint_setLinearText'>bool</a> <a href='#SkPaint_setLinearText'>linearText</a>);
- <a href='#SkPaint_setLinearText'>bool</a> <a href='#SkPaint_isSubpixelText'>isSubpixelText</a>() <a href='#SkPaint_isSubpixelText'>const</a>;
- <a href='#SkPaint_isSubpixelText'>void</a> <a href='#SkPaint_setSubpixelText'>setSubpixelText</a>(<a href='#SkPaint_setSubpixelText'>bool</a> <a href='#SkPaint_setSubpixelText'>subpixelText</a>);
- <a href='#SkPaint_setSubpixelText'>bool</a> <a href='#SkPaint_isLCDRenderText'>isLCDRenderText</a>() <a href='#SkPaint_isLCDRenderText'>const</a>;
- <a href='#SkPaint_isLCDRenderText'>void</a> <a href='#SkPaint_setLCDRenderText'>setLCDRenderText</a>(<a href='#SkPaint_setLCDRenderText'>bool</a> <a href='#SkPaint_setLCDRenderText'>lcdText</a>);
- <a href='#SkPaint_setLCDRenderText'>bool</a> <a href='#SkPaint_isEmbeddedBitmapText'>isEmbeddedBitmapText</a>() <a href='#SkPaint_isEmbeddedBitmapText'>const</a>;
- <a href='#SkPaint_isEmbeddedBitmapText'>void</a> <a href='#SkPaint_setEmbeddedBitmapText'>setEmbeddedBitmapText</a>(<a href='#SkPaint_setEmbeddedBitmapText'>bool</a> <a href='#SkPaint_setEmbeddedBitmapText'>useEmbeddedBitmapText</a>);
- <a href='#SkPaint_setEmbeddedBitmapText'>bool</a> <a href='#SkPaint_isAutohinted'>isAutohinted</a>() <a href='#SkPaint_isAutohinted'>const</a>;
- <a href='#SkPaint_isAutohinted'>void</a> <a href='#SkPaint_setAutohinted'>setAutohinted</a>(<a href='#SkPaint_setAutohinted'>bool</a> <a href='#SkPaint_setAutohinted'>useAutohinter</a>);
- <a href='#SkPaint_setAutohinted'>bool</a> <a href='#SkPaint_isFakeBoldText'>isFakeBoldText</a>() <a href='#SkPaint_isFakeBoldText'>const</a>;
- <a href='#SkPaint_isFakeBoldText'>void</a> <a href='#SkPaint_setFakeBoldText'>setFakeBoldText</a>(<a href='#SkPaint_setFakeBoldText'>bool</a> <a href='#SkPaint_setFakeBoldText'>fakeBoldText</a>);
- <a href='undocumented#SkFilterQuality'>SkFilterQuality</a> <a href='#SkPaint_getFilterQuality'>getFilterQuality</a>() <a href='#SkPaint_getFilterQuality'>const</a>;
- <a href='#SkPaint_getFilterQuality'>void</a> <a href='#SkPaint_setFilterQuality'>setFilterQuality</a>(<a href='undocumented#SkFilterQuality'>SkFilterQuality</a> <a href='undocumented#SkFilterQuality'>quality</a>);
-
- <a href='undocumented#SkFilterQuality'>enum</a> <a href='#SkPaint_Style'>Style</a> : <a href='#SkPaint_Style'>uint8_t</a> {
+ enum <a href='#SkPaint_Style'>Style</a> : uint8_t {
<a href='#SkPaint_kFill_Style'>kFill_Style</a>,
<a href='#SkPaint_kStroke_Style'>kStroke_Style</a>,
<a href='#SkPaint_kStrokeAndFill_Style'>kStrokeAndFill_Style</a>,
};
- <a href='#SkPaint_kStrokeAndFill_Style'>static</a> <a href='#SkPaint_kStrokeAndFill_Style'>constexpr</a> <a href='#SkPaint_kStrokeAndFill_Style'>int</a> <a href='#SkPaint_kStyleCount'>kStyleCount</a> = <a href='#SkPaint_kStrokeAndFill_Style'>kStrokeAndFill_Style</a> + 1;
+ static constexpr int <a href='#SkPaint_kStyleCount'>kStyleCount</a> = <a href='#SkPaint_kStrokeAndFill_Style'>kStrokeAndFill_Style</a> + 1;
- <a href='#SkPaint_Style'>Style</a> <a href='#SkPaint_getStyle'>getStyle</a>() <a href='#SkPaint_getStyle'>const</a>;
- <a href='#SkPaint_getStyle'>void</a> <a href='#SkPaint_setStyle'>setStyle</a>(<a href='#SkPaint_Style'>Style</a> <a href='#SkPaint_Style'>style</a>);
- <a href='SkColor_Reference#SkColor'>SkColor</a> <a href='#SkPaint_getColor'>getColor</a>() <a href='#SkPaint_getColor'>const</a>;
- <a href='SkColor4f_Reference#SkColor4f'>SkColor4f</a> <a href='#SkPaint_getColor4f'>getColor4f</a>() <a href='#SkPaint_getColor4f'>const</a>;
- <a href='#SkPaint_getColor4f'>void</a> <a href='#SkPaint_setColor'>setColor</a>(<a href='SkColor_Reference#SkColor'>SkColor</a> <a href='SkColor_Reference#Color'>color</a>);
- <a href='SkColor_Reference#Color'>void</a> <a href='#SkPaint_setColor4f'>setColor4f</a>(<a href='#SkPaint_setColor4f'>const</a> <a href='SkColor4f_Reference#SkColor4f'>SkColor4f</a>& <a href='SkColor_Reference#Color'>color</a>, <a href='undocumented#SkColorSpace'>SkColorSpace</a>* <a href='undocumented#SkColorSpace'>colorSpace</a>);
- <a href='undocumented#SkColorSpace'>uint8_t</a> <a href='#SkPaint_getAlpha'>getAlpha</a>() <a href='#SkPaint_getAlpha'>const</a>;
- <a href='#SkPaint_getAlpha'>void</a> <a href='#SkPaint_setAlpha'>setAlpha</a>(<a href='undocumented#U8CPU'>U8CPU</a> <a href='undocumented#U8CPU'>a</a>);
- <a href='undocumented#U8CPU'>void</a> <a href='#SkPaint_setARGB'>setARGB</a>(<a href='undocumented#U8CPU'>U8CPU</a> <a href='undocumented#U8CPU'>a</a>, <a href='undocumented#U8CPU'>U8CPU</a> <a href='undocumented#U8CPU'>r</a>, <a href='undocumented#U8CPU'>U8CPU</a> <a href='undocumented#U8CPU'>g</a>, <a href='undocumented#U8CPU'>U8CPU</a> <a href='undocumented#U8CPU'>b</a>);
- <a href='undocumented#SkScalar'>SkScalar</a> <a href='#SkPaint_getStrokeWidth'>getStrokeWidth</a>() <a href='#SkPaint_getStrokeWidth'>const</a>;
- <a href='#SkPaint_getStrokeWidth'>void</a> <a href='#SkPaint_setStrokeWidth'>setStrokeWidth</a>(<a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>width</a>);
- <a href='undocumented#SkScalar'>SkScalar</a> <a href='#SkPaint_getStrokeMiter'>getStrokeMiter</a>() <a href='#SkPaint_getStrokeMiter'>const</a>;
- <a href='#SkPaint_getStrokeMiter'>void</a> <a href='#SkPaint_setStrokeMiter'>setStrokeMiter</a>(<a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>miter</a>);
+ <a href='#SkPaint_Style'>Style</a> <a href='#SkPaint_getStyle'>getStyle</a>() const;
+ void <a href='#SkPaint_setStyle'>setStyle</a>(<a href='#SkPaint_Style'>Style</a> style);
+ <a href='SkColor_Reference#SkColor'>SkColor</a> <a href='#SkPaint_getColor'>getColor</a>() const;
+ <a href='SkColor4f_Reference#SkColor4f'>SkColor4f</a> <a href='#SkPaint_getColor4f'>getColor4f</a>() const;
+ void <a href='#SkPaint_setColor'>setColor</a>(<a href='SkColor_Reference#SkColor'>SkColor</a> <a href='SkColor_Reference#Color'>color</a>);
+ void <a href='#SkPaint_setColor4f'>setColor4f</a>(const <a href='SkColor4f_Reference#SkColor4f'>SkColor4f</a>& <a href='SkColor_Reference#Color'>color</a>, <a href='undocumented#SkColorSpace'>SkColorSpace</a>* colorSpace);
+ uint8_t <a href='#SkPaint_getAlpha'>getAlpha</a>() const;
+ void <a href='#SkPaint_setAlpha'>setAlpha</a>(<a href='undocumented#U8CPU'>U8CPU</a> a);
+ void <a href='#SkPaint_setARGB'>setARGB</a>(<a href='undocumented#U8CPU'>U8CPU</a> a, <a href='undocumented#U8CPU'>U8CPU</a> r, <a href='undocumented#U8CPU'>U8CPU</a> g, <a href='undocumented#U8CPU'>U8CPU</a> b);
+ <a href='undocumented#SkScalar'>SkScalar</a> <a href='#SkPaint_getStrokeWidth'>getStrokeWidth</a>() const;
+ void <a href='#SkPaint_setStrokeWidth'>setStrokeWidth</a>(<a href='undocumented#SkScalar'>SkScalar</a> width);
+ <a href='undocumented#SkScalar'>SkScalar</a> <a href='#SkPaint_getStrokeMiter'>getStrokeMiter</a>() const;
+ void <a href='#SkPaint_setStrokeMiter'>setStrokeMiter</a>(<a href='undocumented#SkScalar'>SkScalar</a> miter);
- <a href='undocumented#SkScalar'>enum</a> <a href='#SkPaint_Cap'>Cap</a> {
+ enum <a href='#SkPaint_Cap'>Cap</a> {
<a href='#SkPaint_kButt_Cap'>kButt_Cap</a>,
<a href='#SkPaint_kRound_Cap'>kRound_Cap</a>,
<a href='#SkPaint_kSquare_Cap'>kSquare_Cap</a>,
@@ -100,9 +90,9 @@
<a href='#SkPaint_kDefault_Cap'>kDefault_Cap</a> = <a href='#SkPaint_kButt_Cap'>kButt_Cap</a>,
};
- <a href='#SkPaint_kButt_Cap'>static</a> <a href='#SkPaint_kButt_Cap'>constexpr</a> <a href='#SkPaint_kButt_Cap'>int</a> <a href='#SkPaint_kCapCount'>kCapCount</a> = <a href='#SkPaint_kLast_Cap'>kLast_Cap</a> + 1;
+ static constexpr int <a href='#SkPaint_kCapCount'>kCapCount</a> = <a href='#SkPaint_kLast_Cap'>kLast_Cap</a> + 1;
- <a href='#SkPaint_kLast_Cap'>enum</a> <a href='#SkPaint_Join'>Join</a> : <a href='#SkPaint_Join'>uint8_t</a> {
+ enum <a href='#SkPaint_Join'>Join</a> : uint8_t {
<a href='#SkPaint_kMiter_Join'>kMiter_Join</a>,
<a href='#SkPaint_kRound_Join'>kRound_Join</a>,
<a href='#SkPaint_kBevel_Join'>kBevel_Join</a>,
@@ -110,121 +100,121 @@
<a href='#SkPaint_kDefault_Join'>kDefault_Join</a> = <a href='#SkPaint_kMiter_Join'>kMiter_Join</a>,
};
- <a href='#SkPaint_kMiter_Join'>static</a> <a href='#SkPaint_kMiter_Join'>constexpr</a> <a href='#SkPaint_kMiter_Join'>int</a> <a href='#SkPaint_kJoinCount'>kJoinCount</a> = <a href='#SkPaint_kLast_Join'>kLast_Join</a> + 1;
+ static constexpr int <a href='#SkPaint_kJoinCount'>kJoinCount</a> = <a href='#SkPaint_kLast_Join'>kLast_Join</a> + 1;
- <a href='#SkPaint_Cap'>Cap</a> <a href='#SkPaint_getStrokeCap'>getStrokeCap</a>() <a href='#SkPaint_getStrokeCap'>const</a>;
- <a href='#SkPaint_getStrokeCap'>void</a> <a href='#SkPaint_setStrokeCap'>setStrokeCap</a>(<a href='#SkPaint_Cap'>Cap</a> <a href='#SkPaint_Cap'>cap</a>);
- <a href='#SkPaint_Join'>Join</a> <a href='#SkPaint_getStrokeJoin'>getStrokeJoin</a>() <a href='#SkPaint_getStrokeJoin'>const</a>;
- <a href='#SkPaint_getStrokeJoin'>void</a> <a href='#SkPaint_setStrokeJoin'>setStrokeJoin</a>(<a href='#SkPaint_Join'>Join</a> <a href='#SkPaint_Join'>join</a>);
- <a href='#SkPaint_Join'>bool</a> <a href='#SkPaint_getFillPath'>getFillPath</a>(<a href='#SkPaint_getFillPath'>const</a> <a href='SkPath_Reference#SkPath'>SkPath</a>& <a href='SkPath_Reference#SkPath'>src</a>, <a href='SkPath_Reference#SkPath'>SkPath</a>* <a href='SkPath_Reference#SkPath'>dst</a>, <a href='SkPath_Reference#SkPath'>const</a> <a href='SkRect_Reference#SkRect'>SkRect</a>* <a href='SkRect_Reference#SkRect'>cullRect</a>,
- <a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>resScale</a> = 1) <a href='undocumented#SkScalar'>const</a>;
- <a href='undocumented#SkScalar'>bool</a> <a href='#SkPaint_getFillPath'>getFillPath</a>(<a href='#SkPaint_getFillPath'>const</a> <a href='SkPath_Reference#SkPath'>SkPath</a>& <a href='SkPath_Reference#SkPath'>src</a>, <a href='SkPath_Reference#SkPath'>SkPath</a>* <a href='SkPath_Reference#SkPath'>dst</a>) <a href='SkPath_Reference#SkPath'>const</a>;
- <a href='undocumented#SkShader'>SkShader</a>* <a href='#SkPaint_getShader'>getShader</a>() <a href='#SkPaint_getShader'>const</a>;
- <a href='undocumented#sk_sp'>sk_sp</a><<a href='undocumented#SkShader'>SkShader</a>> <a href='#SkPaint_refShader'>refShader</a>() <a href='#SkPaint_refShader'>const</a>;
- <a href='#SkPaint_refShader'>void</a> <a href='#SkPaint_setShader'>setShader</a>(<a href='undocumented#sk_sp'>sk_sp</a><<a href='undocumented#SkShader'>SkShader</a>> <a href='undocumented#Shader'>shader</a>);
- <a href='undocumented#SkColorFilter'>SkColorFilter</a>* <a href='#SkPaint_getColorFilter'>getColorFilter</a>() <a href='#SkPaint_getColorFilter'>const</a>;
- <a href='undocumented#sk_sp'>sk_sp</a><<a href='undocumented#SkColorFilter'>SkColorFilter</a>> <a href='#SkPaint_refColorFilter'>refColorFilter</a>() <a href='#SkPaint_refColorFilter'>const</a>;
- <a href='#SkPaint_refColorFilter'>void</a> <a href='#SkPaint_setColorFilter'>setColorFilter</a>(<a href='undocumented#sk_sp'>sk_sp</a><<a href='undocumented#SkColorFilter'>SkColorFilter</a>> <a href='undocumented#SkColorFilter'>colorFilter</a>);
- <a href='SkBlendMode_Reference#SkBlendMode'>SkBlendMode</a> <a href='#SkPaint_getBlendMode'>getBlendMode</a>() <a href='#SkPaint_getBlendMode'>const</a>;
- <a href='#SkPaint_getBlendMode'>bool</a> <a href='#SkPaint_isSrcOver'>isSrcOver</a>() <a href='#SkPaint_isSrcOver'>const</a>;
- <a href='#SkPaint_isSrcOver'>void</a> <a href='#SkPaint_setBlendMode'>setBlendMode</a>(<a href='SkBlendMode_Reference#SkBlendMode'>SkBlendMode</a> <a href='SkBlendMode_Reference#SkBlendMode'>mode</a>);
- <a href='undocumented#SkPathEffect'>SkPathEffect</a>* <a href='#SkPaint_getPathEffect'>getPathEffect</a>() <a href='#SkPaint_getPathEffect'>const</a>;
- <a href='undocumented#sk_sp'>sk_sp</a><<a href='undocumented#SkPathEffect'>SkPathEffect</a>> <a href='#SkPaint_refPathEffect'>refPathEffect</a>() <a href='#SkPaint_refPathEffect'>const</a>;
- <a href='#SkPaint_refPathEffect'>void</a> <a href='#SkPaint_setPathEffect'>setPathEffect</a>(<a href='undocumented#sk_sp'>sk_sp</a><<a href='undocumented#SkPathEffect'>SkPathEffect</a>> <a href='undocumented#SkPathEffect'>pathEffect</a>);
- <a href='undocumented#SkMaskFilter'>SkMaskFilter</a>* <a href='#SkPaint_getMaskFilter'>getMaskFilter</a>() <a href='#SkPaint_getMaskFilter'>const</a>;
- <a href='undocumented#sk_sp'>sk_sp</a><<a href='undocumented#SkMaskFilter'>SkMaskFilter</a>> <a href='#SkPaint_refMaskFilter'>refMaskFilter</a>() <a href='#SkPaint_refMaskFilter'>const</a>;
- <a href='#SkPaint_refMaskFilter'>void</a> <a href='#SkPaint_setMaskFilter'>setMaskFilter</a>(<a href='undocumented#sk_sp'>sk_sp</a><<a href='undocumented#SkMaskFilter'>SkMaskFilter</a>> <a href='undocumented#SkMaskFilter'>maskFilter</a>);
- <a href='undocumented#SkTypeface'>SkTypeface</a>* <a href='#SkPaint_getTypeface'>getTypeface</a>() <a href='#SkPaint_getTypeface'>const</a>;
- <a href='undocumented#sk_sp'>sk_sp</a><<a href='undocumented#SkTypeface'>SkTypeface</a>> <a href='#SkPaint_refTypeface'>refTypeface</a>() <a href='#SkPaint_refTypeface'>const</a>;
- <a href='#SkPaint_refTypeface'>void</a> <a href='#SkPaint_setTypeface'>setTypeface</a>(<a href='undocumented#sk_sp'>sk_sp</a><<a href='undocumented#SkTypeface'>SkTypeface</a>> <a href='undocumented#Typeface'>typeface</a>);
- <a href='undocumented#SkImageFilter'>SkImageFilter</a>* <a href='#SkPaint_getImageFilter'>getImageFilter</a>() <a href='#SkPaint_getImageFilter'>const</a>;
- <a href='undocumented#sk_sp'>sk_sp</a><<a href='undocumented#SkImageFilter'>SkImageFilter</a>> <a href='#SkPaint_refImageFilter'>refImageFilter</a>() <a href='#SkPaint_refImageFilter'>const</a>;
- <a href='#SkPaint_refImageFilter'>void</a> <a href='#SkPaint_setImageFilter'>setImageFilter</a>(<a href='undocumented#sk_sp'>sk_sp</a><<a href='undocumented#SkImageFilter'>SkImageFilter</a>> <a href='undocumented#SkImageFilter'>imageFilter</a>);
- <a href='undocumented#SkDrawLooper'>SkDrawLooper</a>* <a href='#SkPaint_getDrawLooper'>getDrawLooper</a>() <a href='#SkPaint_getDrawLooper'>const</a>;
- <a href='undocumented#sk_sp'>sk_sp</a><<a href='undocumented#SkDrawLooper'>SkDrawLooper</a>> <a href='#SkPaint_refDrawLooper'>refDrawLooper</a>() <a href='#SkPaint_refDrawLooper'>const</a>;
- <a href='undocumented#SkDrawLooper'>SkDrawLooper</a>* <a href='#SkPaint_getLooper'>getLooper</a>() <a href='#SkPaint_getLooper'>const</a>;
- <a href='#SkPaint_getLooper'>void</a> <a href='#SkPaint_setDrawLooper'>setDrawLooper</a>(<a href='undocumented#sk_sp'>sk_sp</a><<a href='undocumented#SkDrawLooper'>SkDrawLooper</a>> <a href='undocumented#SkDrawLooper'>drawLooper</a>);
- <a href='undocumented#SkDrawLooper'>void</a> <a href='#SkPaint_setLooper'>setLooper</a>(<a href='undocumented#sk_sp'>sk_sp</a><<a href='undocumented#SkDrawLooper'>SkDrawLooper</a>> <a href='undocumented#SkDrawLooper'>drawLooper</a>);
- <a href='undocumented#SkScalar'>SkScalar</a> <a href='#SkPaint_getTextSize'>getTextSize</a>() <a href='#SkPaint_getTextSize'>const</a>;
- <a href='#SkPaint_getTextSize'>void</a> <a href='#SkPaint_setTextSize'>setTextSize</a>(<a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>textSize</a>);
- <a href='undocumented#SkScalar'>SkScalar</a> <a href='#SkPaint_getTextScaleX'>getTextScaleX</a>() <a href='#SkPaint_getTextScaleX'>const</a>;
- <a href='#SkPaint_getTextScaleX'>void</a> <a href='#SkPaint_setTextScaleX'>setTextScaleX</a>(<a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>scaleX</a>);
- <a href='undocumented#SkScalar'>SkScalar</a> <a href='#SkPaint_getTextSkewX'>getTextSkewX</a>() <a href='#SkPaint_getTextSkewX'>const</a>;
- <a href='#SkPaint_getTextSkewX'>void</a> <a href='#SkPaint_setTextSkewX'>setTextSkewX</a>(<a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>skewX</a>);
+ <a href='#SkPaint_Cap'>Cap</a> <a href='#SkPaint_getStrokeCap'>getStrokeCap</a>() const;
+ void <a href='#SkPaint_setStrokeCap'>setStrokeCap</a>(<a href='#SkPaint_Cap'>Cap</a> cap);
+ <a href='#SkPaint_Join'>Join</a> <a href='#SkPaint_getStrokeJoin'>getStrokeJoin</a>() const;
+ void <a href='#SkPaint_setStrokeJoin'>setStrokeJoin</a>(<a href='#SkPaint_Join'>Join</a> join);
+ bool <a href='#SkPaint_getFillPath'>getFillPath</a>(const <a href='SkPath_Reference#SkPath'>SkPath</a>& src, <a href='SkPath_Reference#SkPath'>SkPath</a>* dst, const <a href='SkRect_Reference#SkRect'>SkRect</a>* cullRect,
+ <a href='undocumented#SkScalar'>SkScalar</a> resScale = 1) const;
+ bool <a href='#SkPaint_getFillPath'>getFillPath</a>(const <a href='SkPath_Reference#SkPath'>SkPath</a>& src, <a href='SkPath_Reference#SkPath'>SkPath</a>* dst) const;
+ <a href='undocumented#SkShader'>SkShader</a>* <a href='#SkPaint_getShader'>getShader</a>() const;
+ <a href='undocumented#sk_sp'>sk_sp</a><<a href='undocumented#SkShader'>SkShader</a>> <a href='#SkPaint_refShader'>refShader</a>() const;
+ void <a href='#SkPaint_setShader'>setShader</a>(<a href='undocumented#sk_sp'>sk_sp</a><<a href='undocumented#SkShader'>SkShader</a>> <a href='undocumented#Shader'>shader</a>);
+ <a href='undocumented#SkColorFilter'>SkColorFilter</a>* <a href='#SkPaint_getColorFilter'>getColorFilter</a>() const;
+ <a href='undocumented#sk_sp'>sk_sp</a><<a href='undocumented#SkColorFilter'>SkColorFilter</a>> <a href='#SkPaint_refColorFilter'>refColorFilter</a>() const;
+ void <a href='#SkPaint_setColorFilter'>setColorFilter</a>(<a href='undocumented#sk_sp'>sk_sp</a><<a href='undocumented#SkColorFilter'>SkColorFilter</a>> colorFilter);
+ <a href='SkBlendMode_Reference#SkBlendMode'>SkBlendMode</a> <a href='#SkPaint_getBlendMode'>getBlendMode</a>() const;
+ bool <a href='#SkPaint_isSrcOver'>isSrcOver</a>() const;
+ void <a href='#SkPaint_setBlendMode'>setBlendMode</a>(<a href='SkBlendMode_Reference#SkBlendMode'>SkBlendMode</a> mode);
+ <a href='undocumented#SkPathEffect'>SkPathEffect</a>* <a href='#SkPaint_getPathEffect'>getPathEffect</a>() const;
+ <a href='undocumented#sk_sp'>sk_sp</a><<a href='undocumented#SkPathEffect'>SkPathEffect</a>> <a href='#SkPaint_refPathEffect'>refPathEffect</a>() const;
+ void <a href='#SkPaint_setPathEffect'>setPathEffect</a>(<a href='undocumented#sk_sp'>sk_sp</a><<a href='undocumented#SkPathEffect'>SkPathEffect</a>> pathEffect);
+ <a href='undocumented#SkMaskFilter'>SkMaskFilter</a>* <a href='#SkPaint_getMaskFilter'>getMaskFilter</a>() const;
+ <a href='undocumented#sk_sp'>sk_sp</a><<a href='undocumented#SkMaskFilter'>SkMaskFilter</a>> <a href='#SkPaint_refMaskFilter'>refMaskFilter</a>() const;
+ void <a href='#SkPaint_setMaskFilter'>setMaskFilter</a>(<a href='undocumented#sk_sp'>sk_sp</a><<a href='undocumented#SkMaskFilter'>SkMaskFilter</a>> maskFilter);
+ <a href='undocumented#SkTypeface'>SkTypeface</a>* <a href='#SkPaint_getTypeface'>getTypeface</a>() const;
+ <a href='undocumented#sk_sp'>sk_sp</a><<a href='undocumented#SkTypeface'>SkTypeface</a>> <a href='#SkPaint_refTypeface'>refTypeface</a>() const;
+ void <a href='#SkPaint_setTypeface'>setTypeface</a>(<a href='undocumented#sk_sp'>sk_sp</a><<a href='undocumented#SkTypeface'>SkTypeface</a>> <a href='undocumented#Typeface'>typeface</a>);
+ <a href='undocumented#SkImageFilter'>SkImageFilter</a>* <a href='#SkPaint_getImageFilter'>getImageFilter</a>() const;
+ <a href='undocumented#sk_sp'>sk_sp</a><<a href='undocumented#SkImageFilter'>SkImageFilter</a>> <a href='#SkPaint_refImageFilter'>refImageFilter</a>() const;
+ void <a href='#SkPaint_setImageFilter'>setImageFilter</a>(<a href='undocumented#sk_sp'>sk_sp</a><<a href='undocumented#SkImageFilter'>SkImageFilter</a>> imageFilter);
+ <a href='undocumented#SkDrawLooper'>SkDrawLooper</a>* <a href='#SkPaint_getDrawLooper'>getDrawLooper</a>() const;
+ <a href='undocumented#sk_sp'>sk_sp</a><<a href='undocumented#SkDrawLooper'>SkDrawLooper</a>> <a href='#SkPaint_refDrawLooper'>refDrawLooper</a>() const;
+ <a href='undocumented#SkDrawLooper'>SkDrawLooper</a>* <a href='#SkPaint_getLooper'>getLooper</a>() const;
+ void <a href='#SkPaint_setDrawLooper'>setDrawLooper</a>(<a href='undocumented#sk_sp'>sk_sp</a><<a href='undocumented#SkDrawLooper'>SkDrawLooper</a>> drawLooper);
+ void <a href='#SkPaint_setLooper'>setLooper</a>(<a href='undocumented#sk_sp'>sk_sp</a><<a href='undocumented#SkDrawLooper'>SkDrawLooper</a>> drawLooper);
+ <a href='undocumented#SkScalar'>SkScalar</a> <a href='#SkPaint_getTextSize'>getTextSize</a>() const;
+ void <a href='#SkPaint_setTextSize'>setTextSize</a>(<a href='undocumented#SkScalar'>SkScalar</a> textSize);
+ <a href='undocumented#SkScalar'>SkScalar</a> <a href='#SkPaint_getTextScaleX'>getTextScaleX</a>() const;
+ void <a href='#SkPaint_setTextScaleX'>setTextScaleX</a>(<a href='undocumented#SkScalar'>SkScalar</a> scaleX);
+ <a href='undocumented#SkScalar'>SkScalar</a> <a href='#SkPaint_getTextSkewX'>getTextSkewX</a>() const;
+ void <a href='#SkPaint_setTextSkewX'>setTextSkewX</a>(<a href='undocumented#SkScalar'>SkScalar</a> skewX);
- <a href='undocumented#SkScalar'>enum</a> <a href='#SkPaint_TextEncoding'>TextEncoding</a> : <a href='#SkPaint_TextEncoding'>uint8_t</a> {
+ enum <a href='#SkPaint_TextEncoding'>TextEncoding</a> : uint8_t {
<a href='#SkPaint_kUTF8_TextEncoding'>kUTF8_TextEncoding</a>,
<a href='#SkPaint_kUTF16_TextEncoding'>kUTF16_TextEncoding</a>,
<a href='#SkPaint_kUTF32_TextEncoding'>kUTF32_TextEncoding</a>,
<a href='#SkPaint_kGlyphID_TextEncoding'>kGlyphID_TextEncoding</a>,
};
- <a href='#SkPaint_TextEncoding'>TextEncoding</a> <a href='#SkPaint_getTextEncoding'>getTextEncoding</a>() <a href='#SkPaint_getTextEncoding'>const</a>;
- <a href='#SkPaint_getTextEncoding'>void</a> <a href='#SkPaint_setTextEncoding'>setTextEncoding</a>(<a href='#SkPaint_TextEncoding'>TextEncoding</a> <a href='#SkPaint_TextEncoding'>encoding</a>);
+ <a href='#SkPaint_TextEncoding'>TextEncoding</a> <a href='#SkPaint_getTextEncoding'>getTextEncoding</a>() const;
+ void <a href='#SkPaint_setTextEncoding'>setTextEncoding</a>(<a href='#SkPaint_TextEncoding'>TextEncoding</a> encoding);
- <a href='#SkPaint_TextEncoding'>typedef</a> <a href='undocumented#SkFontMetrics'>SkFontMetrics</a> <a href='#SkPaint_FontMetrics'>FontMetrics</a>;
+ typedef <a href='undocumented#SkFontMetrics'>SkFontMetrics</a> <a href='#SkPaint_FontMetrics'>FontMetrics</a>;
- <a href='undocumented#SkScalar'>SkScalar</a> <a href='#SkPaint_getFontMetrics'>getFontMetrics</a>(<a href='undocumented#SkFontMetrics'>SkFontMetrics</a>* <a href='undocumented#SkFontMetrics'>metrics</a>) <a href='undocumented#SkFontMetrics'>const</a>;
- <a href='undocumented#SkScalar'>SkScalar</a> <a href='#SkPaint_getFontSpacing'>getFontSpacing</a>() <a href='#SkPaint_getFontSpacing'>const</a>;
- <a href='#SkPaint_getFontSpacing'>int</a> <a href='#SkPaint_textToGlyphs'>textToGlyphs</a>(<a href='#SkPaint_textToGlyphs'>const</a> <a href='#SkPaint_textToGlyphs'>void</a>* <a href='undocumented#Text'>text</a>, <a href='undocumented#Text'>size_t</a> <a href='undocumented#Text'>byteLength</a>,
- <a href='undocumented#SkGlyphID'>SkGlyphID</a> <a href='undocumented#Glyph'>glyphs</a>[]) <a href='undocumented#Glyph'>const</a>;
- <a href='undocumented#Glyph'>bool</a> <a href='#SkPaint_containsText'>containsText</a>(<a href='#SkPaint_containsText'>const</a> <a href='#SkPaint_containsText'>void</a>* <a href='undocumented#Text'>text</a>, <a href='undocumented#Text'>size_t</a> <a href='undocumented#Text'>byteLength</a>) <a href='undocumented#Text'>const</a>;
- <a href='undocumented#Text'>void</a> <a href='#SkPaint_glyphsToUnichars'>glyphsToUnichars</a>(<a href='#SkPaint_glyphsToUnichars'>const</a> <a href='undocumented#SkGlyphID'>SkGlyphID</a> <a href='undocumented#Glyph'>glyphs</a>[], <a href='undocumented#Glyph'>int</a> <a href='undocumented#Glyph'>count</a>, <a href='undocumented#SkUnichar'>SkUnichar</a> <a href='undocumented#Text'>text</a>[]) <a href='undocumented#Text'>const</a>;
- <a href='undocumented#Text'>int</a> <a href='#SkPaint_countText'>countText</a>(<a href='#SkPaint_countText'>const</a> <a href='#SkPaint_countText'>void</a>* <a href='undocumented#Text'>text</a>, <a href='undocumented#Text'>size_t</a> <a href='undocumented#Text'>byteLength</a>) <a href='undocumented#Text'>const</a>;
- <a href='undocumented#SkScalar'>SkScalar</a> <a href='#SkPaint_measureText'>measureText</a>(<a href='#SkPaint_measureText'>const</a> <a href='#SkPaint_measureText'>void</a>* <a href='undocumented#Text'>text</a>, <a href='undocumented#Text'>size_t</a> <a href='undocumented#Text'>length</a>, <a href='SkRect_Reference#SkRect'>SkRect</a>* <a href='SkRect_Reference#SkRect'>bounds</a>) <a href='SkRect_Reference#SkRect'>const</a>;
- <a href='undocumented#SkScalar'>SkScalar</a> <a href='#SkPaint_measureText'>measureText</a>(<a href='#SkPaint_measureText'>const</a> <a href='#SkPaint_measureText'>void</a>* <a href='undocumented#Text'>text</a>, <a href='undocumented#Text'>size_t</a> <a href='undocumented#Text'>length</a>) <a href='undocumented#Text'>const</a>;
- <a href='undocumented#Text'>size_t</a> <a href='#SkPaint_breakText'>breakText</a>(<a href='#SkPaint_breakText'>const</a> <a href='#SkPaint_breakText'>void</a>* <a href='undocumented#Text'>text</a>, <a href='undocumented#Text'>size_t</a> <a href='undocumented#Text'>length</a>, <a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>maxWidth</a>,
- <a href='undocumented#SkScalar'>SkScalar</a>* <a href='undocumented#SkScalar'>measuredWidth</a> = <a href='undocumented#SkScalar'>nullptr</a>) <a href='undocumented#SkScalar'>const</a>;
- <a href='undocumented#SkScalar'>int</a> <a href='#SkPaint_getTextWidths'>getTextWidths</a>(<a href='#SkPaint_getTextWidths'>const</a> <a href='#SkPaint_getTextWidths'>void</a>* <a href='undocumented#Text'>text</a>, <a href='undocumented#Text'>size_t</a> <a href='undocumented#Text'>byteLength</a>, <a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>widths</a>[],
- <a href='SkRect_Reference#SkRect'>SkRect</a> <a href='SkRect_Reference#SkRect'>bounds</a>[] = <a href='SkRect_Reference#SkRect'>nullptr</a>) <a href='SkRect_Reference#SkRect'>const</a>;
- <a href='SkRect_Reference#SkRect'>void</a> <a href='#SkPaint_getTextPath'>getTextPath</a>(<a href='#SkPaint_getTextPath'>const</a> <a href='#SkPaint_getTextPath'>void</a>* <a href='undocumented#Text'>text</a>, <a href='undocumented#Text'>size_t</a> <a href='undocumented#Text'>length</a>, <a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>x</a>, <a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>y</a>,
- <a href='SkPath_Reference#SkPath'>SkPath</a>* <a href='SkPath_Reference#Path'>path</a>) <a href='SkPath_Reference#Path'>const</a>;
- <a href='SkPath_Reference#Path'>void</a> <a href='#SkPaint_getPosTextPath'>getPosTextPath</a>(<a href='#SkPaint_getPosTextPath'>const</a> <a href='#SkPaint_getPosTextPath'>void</a>* <a href='undocumented#Text'>text</a>, <a href='undocumented#Text'>size_t</a> <a href='undocumented#Text'>length</a>,
- <a href='undocumented#Text'>const</a> <a href='SkPoint_Reference#SkPoint'>SkPoint</a> <a href='SkPoint_Reference#SkPoint'>pos</a>[], <a href='SkPath_Reference#SkPath'>SkPath</a>* <a href='SkPath_Reference#Path'>path</a>) <a href='SkPath_Reference#Path'>const</a>;
- <a href='SkPath_Reference#Path'>int</a> <a href='#SkPaint_getTextIntercepts'>getTextIntercepts</a>(<a href='#SkPaint_getTextIntercepts'>const</a> <a href='#SkPaint_getTextIntercepts'>void</a>* <a href='undocumented#Text'>text</a>, <a href='undocumented#Text'>size_t</a> <a href='undocumented#Text'>length</a>, <a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>x</a>, <a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>y</a>,
- <a href='undocumented#SkScalar'>const</a> <a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>bounds</a>[2], <a href='undocumented#SkScalar'>SkScalar</a>* <a href='undocumented#SkScalar'>intervals</a>) <a href='undocumented#SkScalar'>const</a>;
- <a href='undocumented#SkScalar'>int</a> <a href='#SkPaint_getPosTextIntercepts'>getPosTextIntercepts</a>(<a href='#SkPaint_getPosTextIntercepts'>const</a> <a href='#SkPaint_getPosTextIntercepts'>void</a>* <a href='undocumented#Text'>text</a>, <a href='undocumented#Text'>size_t</a> <a href='undocumented#Text'>length</a>, <a href='undocumented#Text'>const</a> <a href='SkPoint_Reference#SkPoint'>SkPoint</a> <a href='SkPoint_Reference#SkPoint'>pos</a>[],
- <a href='SkPoint_Reference#SkPoint'>const</a> <a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>bounds</a>[2], <a href='undocumented#SkScalar'>SkScalar</a>* <a href='undocumented#SkScalar'>intervals</a>) <a href='undocumented#SkScalar'>const</a>;
- <a href='undocumented#SkScalar'>int</a> <a href='#SkPaint_getPosTextHIntercepts'>getPosTextHIntercepts</a>(<a href='#SkPaint_getPosTextHIntercepts'>const</a> <a href='#SkPaint_getPosTextHIntercepts'>void</a>* <a href='undocumented#Text'>text</a>, <a href='undocumented#Text'>size_t</a> <a href='undocumented#Text'>length</a>, <a href='undocumented#Text'>const</a> <a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>xpos</a>[],
- <a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>constY</a>, <a href='undocumented#SkScalar'>const</a> <a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>bounds</a>[2], <a href='undocumented#SkScalar'>SkScalar</a>* <a href='undocumented#SkScalar'>intervals</a>) <a href='undocumented#SkScalar'>const</a>;
- <a href='undocumented#SkScalar'>int</a> <a href='#SkPaint_getTextBlobIntercepts'>getTextBlobIntercepts</a>(<a href='#SkPaint_getTextBlobIntercepts'>const</a> <a href='SkTextBlob_Reference#SkTextBlob'>SkTextBlob</a>* <a href='SkTextBlob_Reference#SkTextBlob'>blob</a>, <a href='SkTextBlob_Reference#SkTextBlob'>const</a> <a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>bounds</a>[2],
- <a href='undocumented#SkScalar'>SkScalar</a>* <a href='undocumented#SkScalar'>intervals</a>) <a href='undocumented#SkScalar'>const</a>;
- <a href='SkRect_Reference#SkRect'>SkRect</a> <a href='#SkPaint_getFontBounds'>getFontBounds</a>() <a href='#SkPaint_getFontBounds'>const</a>;
- <a href='#SkPaint_getFontBounds'>bool</a> <a href='#SkPaint_nothingToDraw'>nothingToDraw</a>() <a href='#SkPaint_nothingToDraw'>const</a>;
- <a href='#SkPaint_nothingToDraw'>bool</a> <a href='#SkPaint_canComputeFastBounds'>canComputeFastBounds</a>() <a href='#SkPaint_canComputeFastBounds'>const</a>;
- <a href='#SkPaint_canComputeFastBounds'>const</a> <a href='SkRect_Reference#SkRect'>SkRect</a>& <a href='#SkPaint_computeFastBounds'>computeFastBounds</a>(<a href='#SkPaint_computeFastBounds'>const</a> <a href='SkRect_Reference#SkRect'>SkRect</a>& <a href='SkRect_Reference#SkRect'>orig</a>, <a href='SkRect_Reference#SkRect'>SkRect</a>* <a href='SkRect_Reference#SkRect'>storage</a>) <a href='SkRect_Reference#SkRect'>const</a>;
- <a href='SkRect_Reference#SkRect'>const</a> <a href='SkRect_Reference#SkRect'>SkRect</a>& <a href='#SkPaint_computeFastStrokeBounds'>computeFastStrokeBounds</a>(<a href='#SkPaint_computeFastStrokeBounds'>const</a> <a href='SkRect_Reference#SkRect'>SkRect</a>& <a href='SkRect_Reference#SkRect'>orig</a>,
- <a href='SkRect_Reference#SkRect'>SkRect</a>* <a href='SkRect_Reference#SkRect'>storage</a>) <a href='SkRect_Reference#SkRect'>const</a>;
- <a href='SkRect_Reference#SkRect'>const</a> <a href='SkRect_Reference#SkRect'>SkRect</a>& <a href='#SkPaint_doComputeFastBounds'>doComputeFastBounds</a>(<a href='#SkPaint_doComputeFastBounds'>const</a> <a href='SkRect_Reference#SkRect'>SkRect</a>& <a href='SkRect_Reference#SkRect'>orig</a>, <a href='SkRect_Reference#SkRect'>SkRect</a>* <a href='SkRect_Reference#SkRect'>storage</a>,
- <a href='#SkPaint_Style'>Style</a> <a href='#SkPaint_Style'>style</a>) <a href='#SkPaint_Style'>const</a>;
+ <a href='undocumented#SkScalar'>SkScalar</a> <a href='#SkPaint_getFontMetrics'>getFontMetrics</a>(<a href='undocumented#SkFontMetrics'>SkFontMetrics</a>* metrics) const;
+ <a href='undocumented#SkScalar'>SkScalar</a> <a href='#SkPaint_getFontSpacing'>getFontSpacing</a>() const;
+ int <a href='#SkPaint_textToGlyphs'>textToGlyphs</a>(const void* <a href='undocumented#Text'>text</a>, size_t byteLength,
+ <a href='undocumented#SkGlyphID'>SkGlyphID</a> <a href='undocumented#Glyph'>glyphs</a>[]) const;
+ bool <a href='#SkPaint_containsText'>containsText</a>(const void* <a href='undocumented#Text'>text</a>, size_t byteLength) const;
+ void <a href='#SkPaint_glyphsToUnichars'>glyphsToUnichars</a>(const <a href='undocumented#SkGlyphID'>SkGlyphID</a> <a href='undocumented#Glyph'>glyphs</a>[], int count, <a href='undocumented#SkUnichar'>SkUnichar</a> <a href='undocumented#Text'>text</a>[]) const;
+ int <a href='#SkPaint_countText'>countText</a>(const void* <a href='undocumented#Text'>text</a>, size_t byteLength) const;
+ <a href='undocumented#SkScalar'>SkScalar</a> <a href='#SkPaint_measureText'>measureText</a>(const void* <a href='undocumented#Text'>text</a>, size_t length, <a href='SkRect_Reference#SkRect'>SkRect</a>* bounds) const;
+ <a href='undocumented#SkScalar'>SkScalar</a> <a href='#SkPaint_measureText'>measureText</a>(const void* <a href='undocumented#Text'>text</a>, size_t length) const;
+ size_t <a href='#SkPaint_breakText'>breakText</a>(const void* <a href='undocumented#Text'>text</a>, size_t length, <a href='undocumented#SkScalar'>SkScalar</a> maxWidth,
+ <a href='undocumented#SkScalar'>SkScalar</a>* measuredWidth = nullptr) const;
+ int <a href='#SkPaint_getTextWidths'>getTextWidths</a>(const void* <a href='undocumented#Text'>text</a>, size_t byteLength, <a href='undocumented#SkScalar'>SkScalar</a> widths[],
+ <a href='SkRect_Reference#SkRect'>SkRect</a> bounds[] = nullptr) const;
+ void <a href='#SkPaint_getTextPath'>getTextPath</a>(const void* <a href='undocumented#Text'>text</a>, size_t length, <a href='undocumented#SkScalar'>SkScalar</a> x, <a href='undocumented#SkScalar'>SkScalar</a> y,
+ <a href='SkPath_Reference#SkPath'>SkPath</a>* <a href='SkPath_Reference#Path'>path</a>) const;
+ void <a href='#SkPaint_getPosTextPath'>getPosTextPath</a>(const void* <a href='undocumented#Text'>text</a>, size_t length,
+ const <a href='SkPoint_Reference#SkPoint'>SkPoint</a> pos[], <a href='SkPath_Reference#SkPath'>SkPath</a>* <a href='SkPath_Reference#Path'>path</a>) const;
+ int <a href='#SkPaint_getTextIntercepts'>getTextIntercepts</a>(const void* <a href='undocumented#Text'>text</a>, size_t length, <a href='undocumented#SkScalar'>SkScalar</a> x, <a href='undocumented#SkScalar'>SkScalar</a> y,
+ const <a href='undocumented#SkScalar'>SkScalar</a> bounds[2], <a href='undocumented#SkScalar'>SkScalar</a>* intervals) const;
+ int <a href='#SkPaint_getPosTextIntercepts'>getPosTextIntercepts</a>(const void* <a href='undocumented#Text'>text</a>, size_t length, const <a href='SkPoint_Reference#SkPoint'>SkPoint</a> pos[],
+ const <a href='undocumented#SkScalar'>SkScalar</a> bounds[2], <a href='undocumented#SkScalar'>SkScalar</a>* intervals) const;
+ int <a href='#SkPaint_getPosTextHIntercepts'>getPosTextHIntercepts</a>(const void* <a href='undocumented#Text'>text</a>, size_t length, const <a href='undocumented#SkScalar'>SkScalar</a> xpos[],
+ <a href='undocumented#SkScalar'>SkScalar</a> constY, const <a href='undocumented#SkScalar'>SkScalar</a> bounds[2], <a href='undocumented#SkScalar'>SkScalar</a>* intervals) const;
+ int <a href='#SkPaint_getTextBlobIntercepts'>getTextBlobIntercepts</a>(const <a href='SkTextBlob_Reference#SkTextBlob'>SkTextBlob</a>* blob, const <a href='undocumented#SkScalar'>SkScalar</a> bounds[2],
+ <a href='undocumented#SkScalar'>SkScalar</a>* intervals) const;
+ <a href='SkRect_Reference#SkRect'>SkRect</a> <a href='#SkPaint_getFontBounds'>getFontBounds</a>() const;
+ bool <a href='#SkPaint_nothingToDraw'>nothingToDraw</a>() const;
+ bool <a href='#SkPaint_canComputeFastBounds'>canComputeFastBounds</a>() const;
+ const <a href='SkRect_Reference#SkRect'>SkRect</a>& <a href='#SkPaint_computeFastBounds'>computeFastBounds</a>(const <a href='SkRect_Reference#SkRect'>SkRect</a>& orig, <a href='SkRect_Reference#SkRect'>SkRect</a>* storage) const;
+ const <a href='SkRect_Reference#SkRect'>SkRect</a>& <a href='#SkPaint_computeFastStrokeBounds'>computeFastStrokeBounds</a>(const <a href='SkRect_Reference#SkRect'>SkRect</a>& orig,
+ <a href='SkRect_Reference#SkRect'>SkRect</a>* storage) const;
+ const <a href='SkRect_Reference#SkRect'>SkRect</a>& <a href='#SkPaint_doComputeFastBounds'>doComputeFastBounds</a>(const <a href='SkRect_Reference#SkRect'>SkRect</a>& orig, <a href='SkRect_Reference#SkRect'>SkRect</a>* storage,
+ <a href='#SkPaint_Style'>Style</a> style) const;
};
</pre>
-<a href='SkPaint_Reference#Paint'>Paint</a> <a href='SkPaint_Reference#Paint'>controls</a> <a href='SkPaint_Reference#Paint'>options</a> <a href='SkPaint_Reference#Paint'>applied</a> <a href='SkPaint_Reference#Paint'>when</a> <a href='SkPaint_Reference#Paint'>drawing</a> <a href='SkPaint_Reference#Paint'>and</a> <a href='SkPaint_Reference#Paint'>measuring</a>. <a href='SkPaint_Reference#Paint'>Paint</a> <a href='SkPaint_Reference#Paint'>collects</a> <a href='SkPaint_Reference#Paint'>all</a>
-<a href='SkPaint_Reference#Paint'>options</a> <a href='SkPaint_Reference#Paint'>outside</a> <a href='SkPaint_Reference#Paint'>of</a> <a href='SkPaint_Reference#Paint'>the</a> <a href='#Canvas_Clip'>Canvas_Clip</a> <a href='#Canvas_Clip'>and</a> <a href='#Canvas_Matrix'>Canvas_Matrix</a>.
+<a href='SkPaint_Reference#Paint'>Paint</a> controls options applied when drawing and measuring. <a href='SkPaint_Reference#Paint'>Paint</a> collects all
+options outside of the <a href='#Canvas_Clip'>Canvas_Clip</a> and <a href='#Canvas_Matrix'>Canvas_Matrix</a>.
-<a href='#Canvas_Matrix'>Various</a> <a href='#Canvas_Matrix'>options</a> <a href='#Canvas_Matrix'>apply</a> <a href='#Canvas_Matrix'>to</a> <a href='undocumented#Text'>text</a>, <a href='undocumented#Text'>strokes</a> <a href='undocumented#Text'>and</a> <a href='undocumented#Text'>fills</a>, <a href='undocumented#Text'>and</a> <a href='undocumented#Text'>images</a>.
+Various options apply to <a href='undocumented#Text'>text</a>, strokes and fills, and images.
-<a href='undocumented#Text'>Some</a> <a href='undocumented#Text'>options</a> <a href='undocumented#Text'>may</a> <a href='undocumented#Text'>not</a> <a href='undocumented#Text'>be</a> <a href='undocumented#Text'>implemented</a> <a href='undocumented#Text'>on</a> <a href='undocumented#Text'>all</a> <a href='undocumented#Text'>platforms</a>; <a href='undocumented#Text'>in</a> <a href='undocumented#Text'>these</a> <a href='undocumented#Text'>cases</a>, <a href='undocumented#Text'>setting</a>
-<a href='undocumented#Text'>the</a> <a href='undocumented#Text'>option</a> <a href='undocumented#Text'>has</a> <a href='undocumented#Text'>no</a> <a href='undocumented#Text'>effect</a>. <a href='undocumented#Text'>Some</a> <a href='undocumented#Text'>options</a> <a href='undocumented#Text'>are</a> <a href='undocumented#Text'>conveniences</a> <a href='undocumented#Text'>that</a> <a href='undocumented#Text'>duplicate</a> <a href='SkCanvas_Reference#Canvas'>Canvas</a>
-<a href='SkCanvas_Reference#Canvas'>functionality</a>; <a href='SkCanvas_Reference#Canvas'>for</a> <a href='SkCanvas_Reference#Canvas'>instance</a>, <a href='#Text_Size'>text size</a> <a href='undocumented#Text'>is</a> <a href='undocumented#Text'>identical</a> <a href='undocumented#Text'>to</a> <a href='SkMatrix_Reference#Matrix'>matrix</a> <a href='SkMatrix_Reference#Matrix'>scale</a>.
+Some options may not be implemented on all platforms; in these cases, setting
+the option has no effect. Some options are conveniences that duplicate <a href='SkCanvas_Reference#Canvas'>Canvas</a>
+functionality; for instance, <a href='#Text_Size'>text size</a> is identical to <a href='SkMatrix_Reference#Matrix'>matrix</a> scale.
-<a href='SkPaint_Reference#Paint'>Paint</a> <a href='SkPaint_Reference#Paint'>options</a> <a href='SkPaint_Reference#Paint'>are</a> <a href='SkPaint_Reference#Paint'>rarely</a> <a href='SkPaint_Reference#Paint'>exclusive</a>; <a href='SkPaint_Reference#Paint'>each</a> <a href='SkPaint_Reference#Paint'>option</a> <a href='SkPaint_Reference#Paint'>modifies</a> <a href='SkPaint_Reference#Paint'>a</a> <a href='SkPaint_Reference#Paint'>stage</a> <a href='SkPaint_Reference#Paint'>of</a> <a href='SkPaint_Reference#Paint'>the</a> <a href='SkPaint_Reference#Paint'>drawing</a>
-<a href='SkPaint_Reference#Paint'>pipeline</a> <a href='SkPaint_Reference#Paint'>and</a> <a href='SkPaint_Reference#Paint'>multiple</a> <a href='SkPaint_Reference#Paint'>pipeline</a> <a href='SkPaint_Reference#Paint'>stages</a> <a href='SkPaint_Reference#Paint'>may</a> <a href='SkPaint_Reference#Paint'>be</a> <a href='SkPaint_Reference#Paint'>affected</a> <a href='SkPaint_Reference#Paint'>by</a> <a href='SkPaint_Reference#Paint'>a</a> <a href='SkPaint_Reference#Paint'>single</a> <a href='SkPaint_Reference#Paint'>Paint</a>.
+<a href='SkPaint_Reference#Paint'>Paint</a> options are rarely exclusive; each option modifies a stage of the drawing
+pipeline and multiple pipeline stages may be affected by a single <a href='SkPaint_Reference#Paint'>Paint</a>.
-<a href='SkPaint_Reference#Paint'>Paint</a> <a href='SkPaint_Reference#Paint'>collects</a> <a href='SkPaint_Reference#Paint'>effects</a> <a href='SkPaint_Reference#Paint'>and</a> <a href='SkPaint_Reference#Paint'>filters</a> <a href='SkPaint_Reference#Paint'>that</a> <a href='SkPaint_Reference#Paint'>describe</a> <a href='SkPaint_Reference#Paint'>single-pass</a> <a href='SkPaint_Reference#Paint'>and</a> <a href='SkPaint_Reference#Paint'>multiple-pass</a>
-<a href='SkPaint_Reference#Paint'>algorithms</a> <a href='SkPaint_Reference#Paint'>that</a> <a href='SkPaint_Reference#Paint'>alter</a> <a href='SkPaint_Reference#Paint'>the</a> <a href='SkPaint_Reference#Paint'>drawing</a> <a href='SkPaint_Reference#Paint'>geometry</a>, <a href='SkColor_Reference#Color'>color</a>, <a href='SkColor_Reference#Color'>and</a> <a href='SkColor_Reference#Color'>transparency</a>. <a href='SkColor_Reference#Color'>For</a> <a href='SkColor_Reference#Color'>instance</a>,
-<a href='SkPaint_Reference#Paint'>Paint</a> <a href='SkPaint_Reference#Paint'>does</a> <a href='SkPaint_Reference#Paint'>not</a> <a href='SkPaint_Reference#Paint'>directly</a> <a href='SkPaint_Reference#Paint'>implement</a> <a href='SkPaint_Reference#Paint'>dashing</a> <a href='SkPaint_Reference#Paint'>or</a> <a href='SkPaint_Reference#Paint'>blur</a>, <a href='SkPaint_Reference#Paint'>but</a> <a href='SkPaint_Reference#Paint'>contains</a> <a href='SkPaint_Reference#Paint'>the</a> <a href='SkPaint_Reference#Paint'>objects</a> <a href='SkPaint_Reference#Paint'>that</a> <a href='SkPaint_Reference#Paint'>do</a> <a href='SkPaint_Reference#Paint'>so</a>.
+<a href='SkPaint_Reference#Paint'>Paint</a> collects effects and filters that describe single-pass and multiple-pass
+algorithms that alter the drawing geometry, <a href='SkColor_Reference#Color'>color</a>, and transparency. For instance,
+<a href='SkPaint_Reference#Paint'>Paint</a> does not directly implement dashing or blur, but contains the objects that do so.
-<a href='SkPaint_Reference#Paint'>The</a> <a href='SkPaint_Reference#Paint'>objects</a> <a href='SkPaint_Reference#Paint'>contained</a> <a href='SkPaint_Reference#Paint'>by</a> <a href='SkPaint_Reference#Paint'>Paint</a> <a href='SkPaint_Reference#Paint'>are</a> <a href='SkPaint_Reference#Paint'>opaque</a>, <a href='SkPaint_Reference#Paint'>and</a> <a href='SkPaint_Reference#Paint'>cannot</a> <a href='SkPaint_Reference#Paint'>be</a> <a href='SkPaint_Reference#Paint'>edited</a> <a href='SkPaint_Reference#Paint'>outside</a> <a href='SkPaint_Reference#Paint'>of</a> <a href='SkPaint_Reference#Paint'>the</a> <a href='SkPaint_Reference#Paint'>Paint</a>
-<a href='SkPaint_Reference#Paint'>to</a> <a href='SkPaint_Reference#Paint'>affect</a> <a href='SkPaint_Reference#Paint'>it</a>. <a href='SkPaint_Reference#Paint'>The</a> <a href='SkPaint_Reference#Paint'>implementation</a> <a href='SkPaint_Reference#Paint'>is</a> <a href='SkPaint_Reference#Paint'>free</a> <a href='SkPaint_Reference#Paint'>to</a> <a href='SkPaint_Reference#Paint'>defer</a> <a href='SkPaint_Reference#Paint'>computations</a> <a href='SkPaint_Reference#Paint'>associated</a> <a href='SkPaint_Reference#Paint'>with</a> <a href='SkPaint_Reference#Paint'>the</a>
-<a href='SkPaint_Reference#Paint'>Paint</a>, <a href='SkPaint_Reference#Paint'>or</a> <a href='SkPaint_Reference#Paint'>ignore</a> <a href='SkPaint_Reference#Paint'>them</a> <a href='SkPaint_Reference#Paint'>altogether</a>. <a href='SkPaint_Reference#Paint'>For</a> <a href='SkPaint_Reference#Paint'>instance</a>, <a href='SkPaint_Reference#Paint'>some</a> <a href='SkPaint_Reference#Paint'>GPU</a> <a href='SkPaint_Reference#Paint'>implementations</a> <a href='SkPaint_Reference#Paint'>draw</a> <a href='SkPaint_Reference#Paint'>all</a>
-<a href='SkPath_Reference#Path'>Path</a> <a href='SkPath_Reference#Path'>geometries</a> <a href='SkPath_Reference#Path'>with</a> <a href='#Paint_Anti_Alias'>Anti_Aliasing</a>, <a href='#Paint_Anti_Alias'>regardless</a> <a href='#Paint_Anti_Alias'>of</a> <a href='#Paint_Anti_Alias'>how</a> <a href='SkPaint_Reference#SkPaint'>SkPaint</a>::<a href='#SkPaint_kAntiAlias_Flag'>kAntiAlias_Flag</a>
-<a href='#SkPaint_kAntiAlias_Flag'>is</a> <a href='#SkPaint_kAntiAlias_Flag'>set</a> <a href='#SkPaint_kAntiAlias_Flag'>in</a> <a href='SkPaint_Reference#Paint'>Paint</a>.
+The objects contained by <a href='SkPaint_Reference#Paint'>Paint</a> are opaque, and cannot be edited outside of the <a href='SkPaint_Reference#Paint'>Paint</a>
+to affect it. The implementation is free to defer computations associated with the
+<a href='SkPaint_Reference#Paint'>Paint</a>, or ignore them altogether. For instance, some GPU implementations draw all
+<a href='SkPath_Reference#Path'>Path</a> geometries with <a href='#Paint_Anti_Alias'>Anti_Aliasing</a>, regardless of how <a href='SkPaint_Reference#SkPaint'>SkPaint</a>::<a href='#SkPaint_kAntiAlias_Flag'>kAntiAlias_Flag</a>
+is set in <a href='SkPaint_Reference#Paint'>Paint</a>.
-<a href='SkPaint_Reference#Paint'>Paint</a> <a href='SkPaint_Reference#Paint'>describes</a> <a href='SkPaint_Reference#Paint'>a</a> <a href='SkPaint_Reference#Paint'>single</a> <a href='SkColor_Reference#Color'>color</a>, <a href='SkColor_Reference#Color'>a</a> <a href='SkColor_Reference#Color'>single</a> <a href='undocumented#Font'>font</a>, <a href='undocumented#Font'>a</a> <a href='undocumented#Font'>single</a> <a href='SkImage_Reference#Image'>image</a> <a href='SkImage_Reference#Image'>quality</a>, <a href='SkImage_Reference#Image'>and</a> <a href='SkImage_Reference#Image'>so</a> <a href='SkImage_Reference#Image'>on</a>.
-<a href='SkImage_Reference#Image'>Multiple</a> <a href='SkImage_Reference#Image'>colors</a> <a href='SkImage_Reference#Image'>are</a> <a href='SkImage_Reference#Image'>drawn</a> <a href='SkImage_Reference#Image'>either</a> <a href='SkImage_Reference#Image'>by</a> <a href='SkImage_Reference#Image'>using</a> <a href='SkImage_Reference#Image'>multiple</a> <a href='SkImage_Reference#Image'>paints</a> <a href='SkImage_Reference#Image'>or</a> <a href='SkImage_Reference#Image'>with</a> <a href='SkImage_Reference#Image'>objects</a> <a href='SkImage_Reference#Image'>like</a>
-<a href='undocumented#Shader'>Shader</a> <a href='undocumented#Shader'>attached</a> <a href='undocumented#Shader'>to</a> <a href='SkPaint_Reference#Paint'>Paint</a>.
+<a href='SkPaint_Reference#Paint'>Paint</a> describes a single <a href='SkColor_Reference#Color'>color</a>, a single <a href='undocumented#Font'>font</a>, a single <a href='SkImage_Reference#Image'>image</a> quality, and so on.
+Multiple colors are drawn either by using multiple paints or with objects like
+<a href='undocumented#Shader'>Shader</a> attached to <a href='SkPaint_Reference#Paint'>Paint</a>.
<a name='SkPaint_empty_constructor'></a>
@@ -234,7 +224,7 @@
<a href='#SkPaint_empty_constructor'>SkPaint()</a>
</pre>
-Constructs <a href='SkPaint_Reference#Paint'>Paint</a> <a href='SkPaint_Reference#Paint'>with</a> <a href='SkPaint_Reference#Paint'>default</a> <a href='SkPaint_Reference#Paint'>values</a>.
+Constructs <a href='SkPaint_Reference#Paint'>Paint</a> with default values.
| attribute | default value |
| --- | --- |
@@ -250,7 +240,7 @@
| <a href='#Paint_Font_Embedded_Bitmaps'>Font_Embedded_Bitmaps</a> | false |
| <a href='#Paint_Automatic_Hinting'>Automatic_Hinting</a> | false |
| <a href='#Paint_Full_Hinting_Spacing'>Full_Hinting_Spacing</a> | false |
-| <a href='#SkPaint_Hinting'>Hinting</a> | <a href='undocumented#SkFontHinting'>SkFontHinting</a>::<a href='#SkFontHinting_kNormal'>kNormal</a> |
+| Hinting | <a href='undocumented#SkFontHinting'>SkFontHinting</a>::<a href='#SkFontHinting_kNormal'>kNormal</a> |
| <a href='#Image_Filter'>Image_Filter</a> | nullptr |
| <a href='#Paint_LCD_Text'>LCD_Text</a> | false |
| <a href='#Paint_Linear_Text'>Linear_Text</a> | false |
@@ -269,9 +259,9 @@
| <a href='#Paint_Stroke_Width'>Stroke_Width</a> | 0 |
| <a href='#Paint_Subpixel_Text'>Subpixel_Text</a> | false |
-The flags, <a href='undocumented#Text'>text</a> <a href='undocumented#Size'>size</a>, <a href='undocumented#Size'>hinting</a>, <a href='undocumented#Size'>and</a> <a href='undocumented#Size'>miter</a> <a href='undocumented#Size'>limit</a> <a href='undocumented#Size'>may</a> <a href='undocumented#Size'>be</a> <a href='undocumented#Size'>overridden</a> <a href='undocumented#Size'>at</a> <a href='undocumented#Size'>compile</a> <a href='undocumented#Size'>time</a> <a href='undocumented#Size'>by</a> <a href='undocumented#Size'>defining</a>
-<a href='SkPaint_Reference#Paint'>paint</a> <a href='SkPaint_Reference#Paint'>default</a> <a href='SkPaint_Reference#Paint'>values</a>. <a href='SkPaint_Reference#Paint'>The</a> <a href='SkPaint_Reference#Paint'>overrides</a> <a href='SkPaint_Reference#Paint'>may</a> <a href='SkPaint_Reference#Paint'>be</a> <a href='SkPaint_Reference#Paint'>included</a> <a href='SkPaint_Reference#Paint'>in</a> "<a href='SkPaint_Reference#Paint'>SkUserConfig</a>.<a href='SkPaint_Reference#Paint'>h</a>" <a href='SkPaint_Reference#Paint'>or</a> <a href='SkPaint_Reference#Paint'>predefined</a> <a href='SkPaint_Reference#Paint'>by</a> <a href='SkPaint_Reference#Paint'>the</a>
-<a href='SkPaint_Reference#Paint'>build</a> <a href='SkPaint_Reference#Paint'>system</a>.
+The flags, <a href='undocumented#Text'>text</a> <a href='undocumented#Size'>size</a>, hinting, and miter limit may be overridden at compile time by defining
+<a href='SkPaint_Reference#Paint'>paint</a> default values. The overrides may be included in "SkUserConfig.h" or predefined by the
+build system.
### Return Value
@@ -286,17 +276,17 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-<a href='SkPaint_Reference#SkPaint'>SkPaint</a>(<a href='SkPaint_Reference#SkPaint'>const</a> <a href='SkPaint_Reference#SkPaint'>SkPaint</a>& <a href='SkPaint_Reference#Paint'>paint</a>)
+<a href='SkPaint_Reference#SkPaint'>SkPaint</a>(const <a href='SkPaint_Reference#SkPaint'>SkPaint</a>& <a href='SkPaint_Reference#Paint'>paint</a>)
</pre>
Makes a shallow copy of <a href='SkPaint_Reference#SkPaint'>SkPaint</a>. <a href='undocumented#SkTypeface'>SkTypeface</a>, <a href='undocumented#SkPathEffect'>SkPathEffect</a>, <a href='undocumented#SkShader'>SkShader</a>,
-<a href='undocumented#SkMaskFilter'>SkMaskFilter</a>, <a href='undocumented#SkColorFilter'>SkColorFilter</a>, <a href='undocumented#SkDrawLooper'>SkDrawLooper</a>, <a href='undocumented#SkDrawLooper'>and</a> <a href='undocumented#SkImageFilter'>SkImageFilter</a> <a href='undocumented#SkImageFilter'>are</a> <a href='undocumented#SkImageFilter'>shared</a>
-between the original <a href='#SkPaint_copy_const_SkPaint_paint'>paint</a> <a href='#SkPaint_copy_const_SkPaint_paint'>and</a> <a href='#SkPaint_copy_const_SkPaint_paint'>the</a> <a href='#SkPaint_copy_const_SkPaint_paint'>copy</a>. <a href='#SkPaint_copy_const_SkPaint_paint'>Objects</a> <a href='#SkPaint_copy_const_SkPaint_paint'>containing</a> <a href='undocumented#SkRefCnt'>SkRefCnt</a> <a href='undocumented#SkRefCnt'>increment</a>
+<a href='undocumented#SkMaskFilter'>SkMaskFilter</a>, <a href='undocumented#SkColorFilter'>SkColorFilter</a>, <a href='undocumented#SkDrawLooper'>SkDrawLooper</a>, and <a href='undocumented#SkImageFilter'>SkImageFilter</a> are shared
+between the original <a href='#SkPaint_copy_const_SkPaint_paint'>paint</a> and the copy. Objects containing <a href='undocumented#SkRefCnt'>SkRefCnt</a> increment
their references by one.
The referenced objects <a href='undocumented#SkPathEffect'>SkPathEffect</a>, <a href='undocumented#SkShader'>SkShader</a>, <a href='undocumented#SkMaskFilter'>SkMaskFilter</a>, <a href='undocumented#SkColorFilter'>SkColorFilter</a>,
-<a href='undocumented#SkDrawLooper'>SkDrawLooper</a>, <a href='undocumented#SkDrawLooper'>and</a> <a href='undocumented#SkImageFilter'>SkImageFilter</a> <a href='undocumented#SkImageFilter'>cannot</a> <a href='undocumented#SkImageFilter'>be</a> <a href='undocumented#SkImageFilter'>modified</a> <a href='undocumented#SkImageFilter'>after</a> <a href='undocumented#SkImageFilter'>they</a> <a href='undocumented#SkImageFilter'>are</a> <a href='undocumented#SkImageFilter'>created</a>.
-This prevents objects with <a href='undocumented#SkRefCnt'>SkRefCnt</a> <a href='undocumented#SkRefCnt'>from</a> <a href='undocumented#SkRefCnt'>being</a> <a href='undocumented#SkRefCnt'>modified</a> <a href='undocumented#SkRefCnt'>once</a> <a href='SkPaint_Reference#SkPaint'>SkPaint</a> <a href='SkPaint_Reference#SkPaint'>refers</a> <a href='SkPaint_Reference#SkPaint'>to</a> <a href='SkPaint_Reference#SkPaint'>them</a>.
+<a href='undocumented#SkDrawLooper'>SkDrawLooper</a>, and <a href='undocumented#SkImageFilter'>SkImageFilter</a> cannot be modified after they are created.
+This prevents objects with <a href='undocumented#SkRefCnt'>SkRefCnt</a> from being modified once <a href='SkPaint_Reference#SkPaint'>SkPaint</a> refers to them.
### Parameters
@@ -333,7 +323,7 @@
Implements a move constructor to avoid increasing the reference counts
of objects referenced by the <a href='#SkPaint_move_SkPaint_paint'>paint</a>.
-After the call, <a href='#SkPaint_move_SkPaint_paint'>paint</a> <a href='#SkPaint_move_SkPaint_paint'>is</a> <a href='#SkPaint_move_SkPaint_paint'>undefined</a>, <a href='#SkPaint_move_SkPaint_paint'>and</a> <a href='#SkPaint_move_SkPaint_paint'>can</a> <a href='#SkPaint_move_SkPaint_paint'>be</a> <a href='#SkPaint_move_SkPaint_paint'>safely</a> <a href='#SkPaint_move_SkPaint_paint'>destructed</a>.
+After the call, <a href='#SkPaint_move_SkPaint_paint'>paint</a> is undefined, and can be safely destructed.
### Parameters
@@ -366,8 +356,8 @@
void <a href='#SkPaint_reset'>reset()</a>
</pre>
-Sets all <a href='SkPaint_Reference#SkPaint'>SkPaint</a> <a href='SkPaint_Reference#SkPaint'>contents</a> <a href='SkPaint_Reference#SkPaint'>to</a> <a href='SkPaint_Reference#SkPaint'>their</a> <a href='SkPaint_Reference#SkPaint'>initial</a> <a href='SkPaint_Reference#SkPaint'>values</a>. <a href='SkPaint_Reference#SkPaint'>This</a> <a href='SkPaint_Reference#SkPaint'>is</a> <a href='SkPaint_Reference#SkPaint'>equivalent</a> <a href='SkPaint_Reference#SkPaint'>to</a> <a href='SkPaint_Reference#SkPaint'>replacing</a>
-<a href='SkPaint_Reference#SkPaint'>SkPaint</a> <a href='SkPaint_Reference#SkPaint'>with</a> <a href='SkPaint_Reference#SkPaint'>the</a> <a href='SkPaint_Reference#SkPaint'>result</a> <a href='SkPaint_Reference#SkPaint'>of</a> <a href='#SkPaint_empty_constructor'>SkPaint()</a>.
+Sets all <a href='SkPaint_Reference#SkPaint'>SkPaint</a> contents to their initial values. This is equivalent to replacing
+<a href='SkPaint_Reference#SkPaint'>SkPaint</a> with the result of <a href='#SkPaint_empty_constructor'>SkPaint()</a>.
### Example
@@ -389,9 +379,9 @@
~<a href='#SkPaint_empty_constructor'>SkPaint()</a>
</pre>
-Decreases <a href='SkPaint_Reference#SkPaint'>SkPaint</a> <a href='undocumented#SkRefCnt'>SkRefCnt</a> <a href='undocumented#SkRefCnt'>of</a> <a href='undocumented#SkRefCnt'>owned</a> <a href='undocumented#SkRefCnt'>objects</a>: <a href='undocumented#SkTypeface'>SkTypeface</a>, <a href='undocumented#SkPathEffect'>SkPathEffect</a>, <a href='undocumented#SkShader'>SkShader</a>,
-<a href='undocumented#SkMaskFilter'>SkMaskFilter</a>, <a href='undocumented#SkColorFilter'>SkColorFilter</a>, <a href='undocumented#SkDrawLooper'>SkDrawLooper</a>, <a href='undocumented#SkDrawLooper'>and</a> <a href='undocumented#SkImageFilter'>SkImageFilter</a>. <a href='undocumented#SkImageFilter'>If</a> <a href='undocumented#SkImageFilter'>the</a>
-objects containing <a href='undocumented#SkRefCnt'>SkRefCnt</a> <a href='undocumented#SkRefCnt'>go</a> <a href='undocumented#SkRefCnt'>to</a> <a href='undocumented#SkRefCnt'>zero</a>, <a href='undocumented#SkRefCnt'>they</a> <a href='undocumented#SkRefCnt'>are</a> <a href='undocumented#SkRefCnt'>deleted</a>.
+Decreases <a href='SkPaint_Reference#SkPaint'>SkPaint</a> <a href='undocumented#SkRefCnt'>SkRefCnt</a> of owned objects: <a href='undocumented#SkTypeface'>SkTypeface</a>, <a href='undocumented#SkPathEffect'>SkPathEffect</a>, <a href='undocumented#SkShader'>SkShader</a>,
+<a href='undocumented#SkMaskFilter'>SkMaskFilter</a>, <a href='undocumented#SkColorFilter'>SkColorFilter</a>, <a href='undocumented#SkDrawLooper'>SkDrawLooper</a>, and <a href='undocumented#SkImageFilter'>SkImageFilter</a>. If the
+objects containing <a href='undocumented#SkRefCnt'>SkRefCnt</a> go to zero, they are deleted.
<a name='Management'></a>
@@ -400,15 +390,15 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-<a href='SkPaint_Reference#SkPaint'>SkPaint</a>& <a href='SkPaint_Reference#SkPaint'>operator</a>=(<a href='SkPaint_Reference#SkPaint'>const</a> <a href='SkPaint_Reference#SkPaint'>SkPaint</a>& <a href='SkPaint_Reference#Paint'>paint</a>)
+<a href='SkPaint_Reference#SkPaint'>SkPaint</a>& operator=(const <a href='SkPaint_Reference#SkPaint'>SkPaint</a>& <a href='SkPaint_Reference#Paint'>paint</a>)
</pre>
Makes a shallow copy of <a href='SkPaint_Reference#SkPaint'>SkPaint</a>. <a href='undocumented#SkTypeface'>SkTypeface</a>, <a href='undocumented#SkPathEffect'>SkPathEffect</a>, <a href='undocumented#SkShader'>SkShader</a>,
-<a href='undocumented#SkMaskFilter'>SkMaskFilter</a>, <a href='undocumented#SkColorFilter'>SkColorFilter</a>, <a href='undocumented#SkDrawLooper'>SkDrawLooper</a>, <a href='undocumented#SkDrawLooper'>and</a> <a href='undocumented#SkImageFilter'>SkImageFilter</a> <a href='undocumented#SkImageFilter'>are</a> <a href='undocumented#SkImageFilter'>shared</a>
-between the original <a href='#SkPaint_copy_operator_paint'>paint</a> <a href='#SkPaint_copy_operator_paint'>and</a> <a href='#SkPaint_copy_operator_paint'>the</a> <a href='#SkPaint_copy_operator_paint'>copy</a>. <a href='#SkPaint_copy_operator_paint'>Objects</a> <a href='#SkPaint_copy_operator_paint'>containing</a> <a href='undocumented#SkRefCnt'>SkRefCnt</a> <a href='undocumented#SkRefCnt'>in</a> <a href='undocumented#SkRefCnt'>the</a>
+<a href='undocumented#SkMaskFilter'>SkMaskFilter</a>, <a href='undocumented#SkColorFilter'>SkColorFilter</a>, <a href='undocumented#SkDrawLooper'>SkDrawLooper</a>, and <a href='undocumented#SkImageFilter'>SkImageFilter</a> are shared
+between the original <a href='#SkPaint_copy_operator_paint'>paint</a> and the copy. Objects containing <a href='undocumented#SkRefCnt'>SkRefCnt</a> in the
prior destination are decreased by one, and the referenced objects are deleted if the
-resulting count is zero. Objects containing <a href='undocumented#SkRefCnt'>SkRefCnt</a> <a href='undocumented#SkRefCnt'>in</a> <a href='undocumented#SkRefCnt'>the</a> <a href='undocumented#SkRefCnt'>parameter</a> <a href='#SkPaint_copy_operator_paint'>paint</a>
-are increased by one. <a href='#SkPaint_copy_operator_paint'>paint</a> <a href='#SkPaint_copy_operator_paint'>is</a> <a href='#SkPaint_copy_operator_paint'>unmodified</a>.
+resulting count is zero. Objects containing <a href='undocumented#SkRefCnt'>SkRefCnt</a> in the parameter <a href='#SkPaint_copy_operator_paint'>paint</a>
+are increased by one. <a href='#SkPaint_copy_operator_paint'>paint</a> is unmodified.
### Parameters
@@ -439,15 +429,15 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-<a href='SkPaint_Reference#SkPaint'>SkPaint</a>& <a href='SkPaint_Reference#SkPaint'>operator</a>=(<a href='SkPaint_Reference#SkPaint'>SkPaint</a>&& <a href='SkPaint_Reference#Paint'>paint</a>)
+<a href='SkPaint_Reference#SkPaint'>SkPaint</a>& operator=(<a href='SkPaint_Reference#SkPaint'>SkPaint</a>&& <a href='SkPaint_Reference#Paint'>paint</a>)
</pre>
-Moves the <a href='#SkPaint_move_operator_paint'>paint</a> <a href='#SkPaint_move_operator_paint'>to</a> <a href='#SkPaint_move_operator_paint'>avoid</a> <a href='#SkPaint_move_operator_paint'>increasing</a> <a href='#SkPaint_move_operator_paint'>the</a> <a href='#SkPaint_move_operator_paint'>reference</a> <a href='#SkPaint_move_operator_paint'>counts</a>
-of objects referenced by the <a href='#SkPaint_move_operator_paint'>paint</a> <a href='#SkPaint_move_operator_paint'>parameter</a>. <a href='#SkPaint_move_operator_paint'>Objects</a> <a href='#SkPaint_move_operator_paint'>containing</a> <a href='undocumented#SkRefCnt'>SkRefCnt</a> <a href='undocumented#SkRefCnt'>in</a> <a href='undocumented#SkRefCnt'>the</a>
+Moves the <a href='#SkPaint_move_operator_paint'>paint</a> to avoid increasing the reference counts
+of objects referenced by the <a href='#SkPaint_move_operator_paint'>paint</a> parameter. Objects containing <a href='undocumented#SkRefCnt'>SkRefCnt</a> in the
prior destination are decreased by one; those objects are deleted if the resulting count
is zero.
-After the call, <a href='#SkPaint_move_operator_paint'>paint</a> <a href='#SkPaint_move_operator_paint'>is</a> <a href='#SkPaint_move_operator_paint'>undefined</a>, <a href='#SkPaint_move_operator_paint'>and</a> <a href='#SkPaint_move_operator_paint'>can</a> <a href='#SkPaint_move_operator_paint'>be</a> <a href='#SkPaint_move_operator_paint'>safely</a> <a href='#SkPaint_move_operator_paint'>destructed</a>.
+After the call, <a href='#SkPaint_move_operator_paint'>paint</a> is undefined, and can be safely destructed.
### Parameters
@@ -477,26 +467,26 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-bool operator==(const <a href='SkPaint_Reference#SkPaint'>SkPaint</a>& <a href='SkPaint_Reference#SkPaint'>a</a>, <a href='SkPaint_Reference#SkPaint'>const</a> <a href='SkPaint_Reference#SkPaint'>SkPaint</a>& <a href='SkPaint_Reference#SkPaint'>b</a>)
+bool operator==(const <a href='SkPaint_Reference#SkPaint'>SkPaint</a>& a, const <a href='SkPaint_Reference#SkPaint'>SkPaint</a>& b)
</pre>
-Compares <a href='#SkPaint_equal_operator_a'>a</a> <a href='#SkPaint_equal_operator_a'>and</a> <a href='#SkPaint_equal_operator_b'>b</a>, <a href='#SkPaint_equal_operator_b'>and</a> <a href='#SkPaint_equal_operator_b'>returns</a> <a href='#SkPaint_equal_operator_b'>true</a> <a href='#SkPaint_equal_operator_b'>if</a> <a href='#SkPaint_equal_operator_a'>a</a> <a href='#SkPaint_equal_operator_a'>and</a> <a href='#SkPaint_equal_operator_b'>b</a> <a href='#SkPaint_equal_operator_b'>are</a> <a href='#SkPaint_equal_operator_b'>equivalent</a>. <a href='#SkPaint_equal_operator_b'>May</a> <a href='#SkPaint_equal_operator_b'>return</a> <a href='#SkPaint_equal_operator_b'>false</a>
+Compares <a href='#SkPaint_equal_operator_a'>a</a> and <a href='#SkPaint_equal_operator_b'>b</a>, and returns true if <a href='#SkPaint_equal_operator_a'>a</a> and <a href='#SkPaint_equal_operator_b'>b</a> are equivalent. May return false
if <a href='undocumented#SkTypeface'>SkTypeface</a>, <a href='undocumented#SkPathEffect'>SkPathEffect</a>, <a href='undocumented#SkShader'>SkShader</a>, <a href='undocumented#SkMaskFilter'>SkMaskFilter</a>, <a href='undocumented#SkColorFilter'>SkColorFilter</a>,
-<a href='undocumented#SkDrawLooper'>SkDrawLooper</a>, <a href='undocumented#SkDrawLooper'>or</a> <a href='undocumented#SkImageFilter'>SkImageFilter</a> <a href='undocumented#SkImageFilter'>have</a> <a href='undocumented#SkImageFilter'>identical</a> <a href='undocumented#SkImageFilter'>contents</a> <a href='undocumented#SkImageFilter'>but</a> <a href='undocumented#SkImageFilter'>different</a> <a href='undocumented#SkImageFilter'>pointers</a>.
+<a href='undocumented#SkDrawLooper'>SkDrawLooper</a>, or <a href='undocumented#SkImageFilter'>SkImageFilter</a> have identical contents but different pointers.
### Parameters
<table> <tr> <td><a name='SkPaint_equal_operator_a'><code><strong>a</strong></code></a></td>
- <td><a href='SkPaint_Reference#SkPaint'>SkPaint</a> <a href='SkPaint_Reference#SkPaint'>to</a> <a href='SkPaint_Reference#SkPaint'>compare</a></td>
+ <td><a href='SkPaint_Reference#SkPaint'>SkPaint</a> to compare</td>
</tr>
<tr> <td><a name='SkPaint_equal_operator_b'><code><strong>b</strong></code></a></td>
- <td><a href='SkPaint_Reference#SkPaint'>SkPaint</a> <a href='SkPaint_Reference#SkPaint'>to</a> <a href='SkPaint_Reference#SkPaint'>compare</a></td>
+ <td><a href='SkPaint_Reference#SkPaint'>SkPaint</a> to compare</td>
</tr>
</table>
### Return Value
-true if <a href='SkPaint_Reference#SkPaint'>SkPaint</a> <a href='SkPaint_Reference#SkPaint'>pair</a> <a href='SkPaint_Reference#SkPaint'>are</a> <a href='SkPaint_Reference#SkPaint'>equivalent</a>
+true if <a href='SkPaint_Reference#SkPaint'>SkPaint</a> pair are equivalent
### Example
@@ -520,26 +510,26 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-bool operator!=(const <a href='SkPaint_Reference#SkPaint'>SkPaint</a>& <a href='SkPaint_Reference#SkPaint'>a</a>, <a href='SkPaint_Reference#SkPaint'>const</a> <a href='SkPaint_Reference#SkPaint'>SkPaint</a>& <a href='SkPaint_Reference#SkPaint'>b</a>)
+bool operator!=(const <a href='SkPaint_Reference#SkPaint'>SkPaint</a>& a, const <a href='SkPaint_Reference#SkPaint'>SkPaint</a>& b)
</pre>
-Compares <a href='#SkPaint_notequal_operator_a'>a</a> <a href='#SkPaint_notequal_operator_a'>and</a> <a href='#SkPaint_notequal_operator_b'>b</a>, <a href='#SkPaint_notequal_operator_b'>and</a> <a href='#SkPaint_notequal_operator_b'>returns</a> <a href='#SkPaint_notequal_operator_b'>true</a> <a href='#SkPaint_notequal_operator_b'>if</a> <a href='#SkPaint_notequal_operator_a'>a</a> <a href='#SkPaint_notequal_operator_a'>and</a> <a href='#SkPaint_notequal_operator_b'>b</a> <a href='#SkPaint_notequal_operator_b'>are</a> <a href='#SkPaint_notequal_operator_b'>not</a> <a href='#SkPaint_notequal_operator_b'>equivalent</a>. <a href='#SkPaint_notequal_operator_b'>May</a> <a href='#SkPaint_notequal_operator_b'>return</a> <a href='#SkPaint_notequal_operator_b'>true</a>
+Compares <a href='#SkPaint_notequal_operator_a'>a</a> and <a href='#SkPaint_notequal_operator_b'>b</a>, and returns true if <a href='#SkPaint_notequal_operator_a'>a</a> and <a href='#SkPaint_notequal_operator_b'>b</a> are not equivalent. May return true
if <a href='undocumented#SkTypeface'>SkTypeface</a>, <a href='undocumented#SkPathEffect'>SkPathEffect</a>, <a href='undocumented#SkShader'>SkShader</a>, <a href='undocumented#SkMaskFilter'>SkMaskFilter</a>, <a href='undocumented#SkColorFilter'>SkColorFilter</a>,
-<a href='undocumented#SkDrawLooper'>SkDrawLooper</a>, <a href='undocumented#SkDrawLooper'>or</a> <a href='undocumented#SkImageFilter'>SkImageFilter</a> <a href='undocumented#SkImageFilter'>have</a> <a href='undocumented#SkImageFilter'>identical</a> <a href='undocumented#SkImageFilter'>contents</a> <a href='undocumented#SkImageFilter'>but</a> <a href='undocumented#SkImageFilter'>different</a> <a href='undocumented#SkImageFilter'>pointers</a>.
+<a href='undocumented#SkDrawLooper'>SkDrawLooper</a>, or <a href='undocumented#SkImageFilter'>SkImageFilter</a> have identical contents but different pointers.
### Parameters
<table> <tr> <td><a name='SkPaint_notequal_operator_a'><code><strong>a</strong></code></a></td>
- <td><a href='SkPaint_Reference#SkPaint'>SkPaint</a> <a href='SkPaint_Reference#SkPaint'>to</a> <a href='SkPaint_Reference#SkPaint'>compare</a></td>
+ <td><a href='SkPaint_Reference#SkPaint'>SkPaint</a> to compare</td>
</tr>
<tr> <td><a name='SkPaint_notequal_operator_b'><code><strong>b</strong></code></a></td>
- <td><a href='SkPaint_Reference#SkPaint'>SkPaint</a> <a href='SkPaint_Reference#SkPaint'>to</a> <a href='SkPaint_Reference#SkPaint'>compare</a></td>
+ <td><a href='SkPaint_Reference#SkPaint'>SkPaint</a> to compare</td>
</tr>
</table>
### Return Value
-true if <a href='SkPaint_Reference#SkPaint'>SkPaint</a> <a href='SkPaint_Reference#SkPaint'>pair</a> <a href='SkPaint_Reference#SkPaint'>are</a> <a href='SkPaint_Reference#SkPaint'>not</a> <a href='SkPaint_Reference#SkPaint'>equivalent</a>
+true if <a href='SkPaint_Reference#SkPaint'>SkPaint</a> pair are not equivalent
### Example
@@ -563,15 +553,15 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-uint32_t <a href='#SkPaint_getHash'>getHash</a>() <a href='#SkPaint_getHash'>const</a>
+uint32_t <a href='#SkPaint_getHash'>getHash</a>() const
</pre>
-Returns a hash generated from <a href='SkPaint_Reference#SkPaint'>SkPaint</a> <a href='SkPaint_Reference#SkPaint'>values</a> <a href='SkPaint_Reference#SkPaint'>and</a> <a href='SkPaint_Reference#SkPaint'>pointers</a>.
+Returns a hash generated from <a href='SkPaint_Reference#SkPaint'>SkPaint</a> values and pointers.
Identical hashes guarantee that the paints are
equivalent, but differing hashes do not guarantee that the paints have differing
contents.
-If If<a href='#SkPaint_equal_operator'>operator==(const SkPaint& a, const SkPaint& b)</a> <a href='#SkPaint_equal_operator'>returns</a> <a href='#SkPaint_equal_operator'>true</a> <a href='#SkPaint_equal_operator'>for</a> <a href='#SkPaint_equal_operator'>two</a> <a href='#SkPaint_equal_operator'>paints</a>,
+If If<a href='#SkPaint_equal_operator'>operator==(const SkPaint& a, const SkPaint& b)</a> returns true for two paints,
their hashes are also equal.
The hash returned is platform and implementation specific.
@@ -595,100 +585,21 @@
<a name='Hinting'></a>
-<a name='SkPaint_Hinting'></a>
-
----
-
-<pre style="padding: 1em 1em 1em 1em;width: 62.5em; background-color: #f0f0f0">
- enum <a href='#SkPaint_Hinting'>Hinting</a> : <a href='#SkPaint_Hinting'>uint8_t</a> {
- <a href='#SkPaint_kNo_Hinting'>kNo_Hinting</a> = 0,
- <a href='#SkPaint_kSlight_Hinting'>kSlight_Hinting</a> = 1,
- <a href='#SkPaint_kNormal_Hinting'>kNormal_Hinting</a> = 2,
- <a href='#SkPaint_kFull_Hinting'>kFull_Hinting</a> = 3,
- };
-</pre>
-
-<a href='#SkPaint_Hinting'>Hinting</a> <a href='#SkPaint_Hinting'>adjusts</a> <a href='#SkPaint_Hinting'>the</a> <a href='undocumented#Glyph'>glyph</a> <a href='undocumented#Glyph'>outlines</a> <a href='undocumented#Glyph'>so</a> <a href='undocumented#Glyph'>that</a> <a href='undocumented#Glyph'>the</a> <a href='undocumented#Glyph'>shape</a> <a href='undocumented#Glyph'>provides</a> <a href='undocumented#Glyph'>a</a> <a href='undocumented#Glyph'>uniform</a>
-<a href='undocumented#Glyph'>look</a> <a href='undocumented#Glyph'>at</a> <a href='undocumented#Glyph'>a</a> <a href='undocumented#Glyph'>given</a> <a href='SkPoint_Reference#Point'>point</a> <a href='undocumented#Size'>size</a> <a href='undocumented#Size'>on</a> <a href='undocumented#Font'>font</a> <a href='undocumented#Font'>engines</a> <a href='undocumented#Font'>that</a> <a href='undocumented#Font'>support</a> <a href='undocumented#Font'>it</a>. <a href='#SkPaint_Hinting'>Hinting</a> <a href='#SkPaint_Hinting'>may</a> <a href='#SkPaint_Hinting'>have</a> <a href='#SkPaint_Hinting'>a</a>
-<a href='#SkPaint_Hinting'>muted</a> <a href='#SkPaint_Hinting'>effect</a> <a href='#SkPaint_Hinting'>or</a> <a href='#SkPaint_Hinting'>no</a> <a href='#SkPaint_Hinting'>effect</a> <a href='#SkPaint_Hinting'>at</a> <a href='#SkPaint_Hinting'>all</a> <a href='#SkPaint_Hinting'>depending</a> <a href='#SkPaint_Hinting'>on</a> <a href='#SkPaint_Hinting'>the</a> <a href='#SkPaint_Hinting'>platform</a>.
-
-<a href='#SkPaint_Hinting'>The</a> <a href='#SkPaint_Hinting'>four</a> <a href='#SkPaint_Hinting'>levels</a> <a href='#SkPaint_Hinting'>roughly</a> <a href='#SkPaint_Hinting'>control</a> <a href='#SkPaint_Hinting'>corresponding</a> <a href='#SkPaint_Hinting'>features</a> <a href='#SkPaint_Hinting'>on</a> <a href='#SkPaint_Hinting'>platforms</a> <a href='#SkPaint_Hinting'>that</a> <a href='#SkPaint_Hinting'>use</a> <a href='#SkPaint_Hinting'>FreeType</a>
-<a href='#SkPaint_Hinting'>as</a> <a href='#SkPaint_Hinting'>the</a> <a href='#Font_Engine'>Font_Engine</a>.
-
-### Constants
-
-<table style='border-collapse: collapse; width: 62.5em'>
- <tr><th style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>Const</th>
-<th style='text-align: center; border: 2px solid #dddddd; padding: 8px; '>Value</th>
-<th style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>Description</th></tr>
- <tr style='background-color: #f0f0f0; '>
- <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a name='SkPaint_kNo_Hinting'><code>SkPaint::kNo_Hinting</code></a></td>
- <td style='text-align: center; border: 2px solid #dddddd; padding: 8px; '>0</td>
- <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>
-Leaves <a href='undocumented#Glyph'>glyph</a> <a href='undocumented#Glyph'>outlines</a> <a href='undocumented#Glyph'>unchanged</a> <a href='undocumented#Glyph'>from</a> <a href='undocumented#Glyph'>their</a> <a href='undocumented#Glyph'>native</a> <a href='undocumented#Glyph'>representation</a>.
-<a href='undocumented#Glyph'>With</a> <a href='undocumented#Glyph'>FreeType</a>, <a href='undocumented#Glyph'>this</a> <a href='undocumented#Glyph'>is</a> <a href='undocumented#Glyph'>equivalent</a> <a href='undocumented#Glyph'>to</a> <a href='undocumented#Glyph'>the</a> <a href='undocumented#Glyph'>FT_LOAD_NO_HINTING</a>
-<a href='undocumented#Glyph'>bit-field</a> <a href='undocumented#Glyph'>constant</a> <a href='undocumented#Glyph'>supplied</a> <a href='undocumented#Glyph'>to</a> <a href='undocumented#Glyph'>FT_Load_Glyph</a>, <a href='undocumented#Glyph'>which</a> <a href='undocumented#Glyph'>indicates</a> <a href='undocumented#Glyph'>that</a> <a href='undocumented#Glyph'>the</a> <a href='SkPoint_Reference#Vector'>vector</a>
-<a href='SkPoint_Reference#Vector'>outline</a> <a href='SkPoint_Reference#Vector'>being</a> <a href='SkPoint_Reference#Vector'>loaded</a> <a href='SkPoint_Reference#Vector'>should</a> <a href='SkPoint_Reference#Vector'>not</a> <a href='SkPoint_Reference#Vector'>be</a> <a href='SkPoint_Reference#Vector'>fitted</a> <a href='SkPoint_Reference#Vector'>to</a> <a href='SkPoint_Reference#Vector'>the</a> <a href='undocumented#Pixel'>pixel</a> <a href='undocumented#Pixel'>grid</a> <a href='undocumented#Pixel'>but</a> <a href='undocumented#Pixel'>simply</a> <a href='undocumented#Pixel'>scaled</a>
-<a href='undocumented#Pixel'>to</a> 26.6 <a href='undocumented#Pixel'>fractional</a> <a href='undocumented#Pixel'>pixels</a>.
-</td>
- </tr>
- <tr>
- <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a name='SkPaint_kSlight_Hinting'><code>SkPaint::kSlight_Hinting</code></a></td>
- <td style='text-align: center; border: 2px solid #dddddd; padding: 8px; '>1</td>
- <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>
-Modifies <a href='undocumented#Glyph'>glyph</a> <a href='undocumented#Glyph'>outlines</a> <a href='undocumented#Glyph'>minimally</a> <a href='undocumented#Glyph'>to</a> <a href='undocumented#Glyph'>improve</a> <a href='undocumented#Glyph'>contrast</a>.
-<a href='undocumented#Glyph'>With</a> <a href='undocumented#Glyph'>FreeType</a>, <a href='undocumented#Glyph'>this</a> <a href='undocumented#Glyph'>is</a> <a href='undocumented#Glyph'>equivalent</a> <a href='undocumented#Glyph'>in</a> <a href='undocumented#Glyph'>spirit</a> <a href='undocumented#Glyph'>to</a> <a href='undocumented#Glyph'>the</a>
-<a href='undocumented#Glyph'>FT_LOAD_TARGET_LIGHT</a> <a href='undocumented#Glyph'>value</a> <a href='undocumented#Glyph'>supplied</a> <a href='undocumented#Glyph'>to</a> <a href='undocumented#Glyph'>FT_Load_Glyph</a>. <a href='undocumented#Glyph'>It</a> <a href='undocumented#Glyph'>chooses</a> <a href='undocumented#Glyph'>a</a>
-<a href='undocumented#Glyph'>lighter</a> <a href='undocumented#Glyph'>hinting</a> <a href='undocumented#Glyph'>algorithm</a> <a href='undocumented#Glyph'>for</a> <a href='undocumented#Glyph'>non-monochrome</a> <a href='undocumented#Glyph'>modes</a>.
-<a href='undocumented#Glyph'>Generated</a> <a href='undocumented#Glyph'>Glyphs</a> <a href='undocumented#Glyph'>may</a> <a href='undocumented#Glyph'>be</a> <a href='undocumented#Glyph'>fuzzy</a> <a href='undocumented#Glyph'>but</a> <a href='undocumented#Glyph'>better</a> <a href='undocumented#Glyph'>resemble</a> <a href='undocumented#Glyph'>their</a> <a href='undocumented#Glyph'>original</a> <a href='undocumented#Glyph'>shape</a>.
-</td>
- </tr>
- <tr style='background-color: #f0f0f0; '>
- <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a name='SkPaint_kNormal_Hinting'><code>SkPaint::kNormal_Hinting</code></a></td>
- <td style='text-align: center; border: 2px solid #dddddd; padding: 8px; '>2</td>
- <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>
-Modifies <a href='undocumented#Glyph'>glyph</a> <a href='undocumented#Glyph'>outlines</a> <a href='undocumented#Glyph'>to</a> <a href='undocumented#Glyph'>improve</a> <a href='undocumented#Glyph'>contrast</a>. <a href='undocumented#Glyph'>This</a> <a href='undocumented#Glyph'>is</a> <a href='undocumented#Glyph'>the</a> <a href='undocumented#Glyph'>default</a>.
-<a href='undocumented#Glyph'>With</a> <a href='undocumented#Glyph'>FreeType</a>, <a href='undocumented#Glyph'>this</a> <a href='undocumented#Glyph'>supplies</a> <a href='undocumented#Glyph'>FT_LOAD_TARGET_NORMAL</a> <a href='undocumented#Glyph'>to</a> <a href='undocumented#Glyph'>FT_Load_Glyph</a>,
-<a href='undocumented#Glyph'>choosing</a> <a href='undocumented#Glyph'>the</a> <a href='undocumented#Glyph'>default</a> <a href='undocumented#Glyph'>hinting</a> <a href='undocumented#Glyph'>algorithm</a>, <a href='undocumented#Glyph'>which</a> <a href='undocumented#Glyph'>is</a> <a href='undocumented#Glyph'>optimized</a> <a href='undocumented#Glyph'>for</a> <a href='undocumented#Glyph'>standard</a>
-<a href='undocumented#Glyph'>gray-level</a> <a href='undocumented#Glyph'>rendering</a>.
-</td>
- </tr>
- <tr>
- <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a name='SkPaint_kFull_Hinting'><code>SkPaint::kFull_Hinting</code></a></td>
- <td style='text-align: center; border: 2px solid #dddddd; padding: 8px; '>3</td>
- <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>
-Modifies <a href='undocumented#Glyph'>glyph</a> <a href='undocumented#Glyph'>outlines</a> <a href='undocumented#Glyph'>for</a> <a href='undocumented#Glyph'>maximum</a> <a href='undocumented#Glyph'>contrast</a>. <a href='undocumented#Glyph'>With</a> <a href='undocumented#Glyph'>FreeType</a>, <a href='undocumented#Glyph'>this</a> <a href='undocumented#Glyph'>selects</a>
-<a href='undocumented#Glyph'>FT_LOAD_TARGET_LCD</a> <a href='undocumented#Glyph'>or</a> <a href='undocumented#Glyph'>FT_LOAD_TARGET_LCD_V</a> <a href='undocumented#Glyph'>if</a> <a href='#SkPaint_kLCDRenderText_Flag'>kLCDRenderText_Flag</a> <a href='#SkPaint_kLCDRenderText_Flag'>is</a> <a href='#SkPaint_kLCDRenderText_Flag'>set</a>.
-<a href='#SkPaint_kLCDRenderText_Flag'>FT_LOAD_TARGET_LCD</a> <a href='#SkPaint_kLCDRenderText_Flag'>is</a> <a href='#SkPaint_kLCDRenderText_Flag'>a</a> <a href='#SkPaint_kLCDRenderText_Flag'>variant</a> <a href='#SkPaint_kLCDRenderText_Flag'>of</a> <a href='#SkPaint_kLCDRenderText_Flag'>FT_LOAD_TARGET_NORMAL</a> <a href='#SkPaint_kLCDRenderText_Flag'>optimized</a> <a href='#SkPaint_kLCDRenderText_Flag'>for</a>
-<a href='#SkPaint_kLCDRenderText_Flag'>horizontally</a> <a href='#SkPaint_kLCDRenderText_Flag'>decimated</a> <a href='#SkPaint_kLCDRenderText_Flag'>LCD</a> <a href='#SkPaint_kLCDRenderText_Flag'>displays</a>; <a href='#SkPaint_kLCDRenderText_Flag'>FT_LOAD_TARGET_LCD_V</a> <a href='#SkPaint_kLCDRenderText_Flag'>is</a> <a href='#SkPaint_kLCDRenderText_Flag'>a</a>
-<a href='#SkPaint_kLCDRenderText_Flag'>variant</a> <a href='#SkPaint_kLCDRenderText_Flag'>of</a> <a href='#SkPaint_kLCDRenderText_Flag'>FT_LOAD_TARGET_NORMAL</a> <a href='#SkPaint_kLCDRenderText_Flag'>optimized</a> <a href='#SkPaint_kLCDRenderText_Flag'>for</a> <a href='#SkPaint_kLCDRenderText_Flag'>vertically</a> <a href='#SkPaint_kLCDRenderText_Flag'>decimated</a> <a href='#SkPaint_kLCDRenderText_Flag'>LCD</a> <a href='#SkPaint_kLCDRenderText_Flag'>displays</a>.
-</td>
- </tr>
-</table>
-
-On <a href='#OS_X'>OS_X</a> <a href='#OS_X'>and</a> <a href='#OS_X'>iOS</a>, <a href='#OS_X'>hinting</a> <a href='#OS_X'>controls</a> <a href='#OS_X'>whether</a> <a href='#Core_Graphics'>Core_Graphics</a> <a href='#Core_Graphics'>dilates</a> <a href='#Core_Graphics'>the</a> <a href='undocumented#Font'>font</a> <a href='undocumented#Font'>outlines</a>
-<a href='undocumented#Font'>to</a> <a href='undocumented#Font'>account</a> <a href='undocumented#Font'>for</a> <a href='#LCD_Text'>LCD text</a>. <a href='undocumented#Font'>No</a> <a href='undocumented#Font'>hinting</a> <a href='undocumented#Font'>uses</a> <a href='#Core_Text'>Core_Text</a> <a href='#Core_Text'>grayscale</a> <a href='#Core_Text'>output</a>.
-<a href='#Core_Text'>Normal</a> <a href='#Core_Text'>hinting</a> <a href='#Core_Text'>uses</a> <a href='#Core_Text'>Core_Text</a> <a href='#Core_Text'>LCD</a> <a href='#Core_Text'>output</a>. <a href='#Core_Text'>If</a> <a href='#SkPaint_kLCDRenderText_Flag'>kLCDRenderText_Flag</a> <a href='#SkPaint_kLCDRenderText_Flag'>is</a> <a href='#SkPaint_kLCDRenderText_Flag'>clear</a>,
-<a href='#SkPaint_kLCDRenderText_Flag'>the</a> <a href='#SkPaint_kLCDRenderText_Flag'>LCD</a> <a href='#SkPaint_kLCDRenderText_Flag'>output</a> <a href='#SkPaint_kLCDRenderText_Flag'>is</a> <a href='#SkPaint_kLCDRenderText_Flag'>reduced</a> <a href='#SkPaint_kLCDRenderText_Flag'>to</a> <a href='#SkPaint_kLCDRenderText_Flag'>a</a> <a href='#SkPaint_kLCDRenderText_Flag'>single</a> <a href='#SkPaint_kLCDRenderText_Flag'>grayscale</a> <a href='#SkPaint_kLCDRenderText_Flag'>channel</a>.
-
-<a href='#SkPaint_kLCDRenderText_Flag'>On</a> <a href='#SkPaint_kLCDRenderText_Flag'>Windows</a> <a href='#SkPaint_kLCDRenderText_Flag'>with</a> <a href='#SkPaint_kLCDRenderText_Flag'>DirectWrite</a>, <a href='#SkPaint_Hinting'>Hinting</a> <a href='#SkPaint_Hinting'>has</a> <a href='#SkPaint_Hinting'>no</a> <a href='#SkPaint_Hinting'>effect</a>.
-
-<a href='#SkPaint_Hinting'>Hinting</a> <a href='#SkPaint_Hinting'>defaults</a> <a href='#SkPaint_Hinting'>to</a> <a href='undocumented#SkFontHinting'>SkFontHinting</a>::<a href='#SkFontHinting_kNormal'>kNormal</a>.
-<a href='#SkFontHinting_kNormal'>Set</a> <a href='undocumented#SkPaintDefaults_Hinting'>SkPaintDefaults_Hinting</a> <a href='undocumented#SkPaintDefaults_Hinting'>at</a> <a href='undocumented#SkPaintDefaults_Hinting'>compile</a> <a href='undocumented#SkPaintDefaults_Hinting'>time</a> <a href='undocumented#SkPaintDefaults_Hinting'>to</a> <a href='undocumented#SkPaintDefaults_Hinting'>change</a> <a href='undocumented#SkPaintDefaults_Hinting'>the</a> <a href='undocumented#SkPaintDefaults_Hinting'>default</a> <a href='undocumented#SkPaintDefaults_Hinting'>setting</a>.
-
<a name='SkPaint_getHinting'></a>
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-<a href='#SkPaint_Hinting'>Hinting</a> <a href='#SkPaint_getHinting'>getHinting</a>() <a href='#SkPaint_getHinting'>const</a>
+<a href='undocumented#SkFontHinting'>SkFontHinting</a> <a href='#SkPaint_getHinting'>getHinting</a>() const
</pre>
-Returns level of <a href='undocumented#Glyph'>glyph</a> <a href='undocumented#Glyph'>outline</a> <a href='undocumented#Glyph'>adjustment</a>.
+Returns level of <a href='undocumented#Glyph'>glyph</a> outline adjustment.
### Return Value
-one of: <a href='#SkPaint_kNo_Hinting'>kNo_Hinting</a>, <a href='#SkPaint_kSlight_Hinting'>kSlight_Hinting</a>, <a href='#SkPaint_kNormal_Hinting'>kNormal_Hinting</a>, <a href='#SkPaint_kFull_Hinting'>kFull_Hinting</a>
+one of: <a href='undocumented#SkFontHinting'>SkFontHinting</a>::<a href='#SkFontHinting_kNone'>kNone</a>, <a href='undocumented#SkFontHinting'>SkFontHinting</a>::<a href='#SkFontHinting_kSlight'>kSlight</a>, <a href='undocumented#SkFontHinting'>SkFontHinting</a>::<a href='#SkFontHinting_kNormal'>kNormal</a>,
+
+<a href='undocumented#SkFontHinting'>SkFontHinting</a>::<a href='#SkFontHinting_kFull'>kFull</a>
### Example
@@ -707,10 +618,10 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-void <a href='#SkPaint_setHinting'>setHinting</a>(<a href='undocumented#SkFontHinting'>SkFontHinting</a> <a href='undocumented#SkFontHinting'>hintingLevel</a>)
+void <a href='#SkPaint_setHinting'>setHinting</a>(<a href='undocumented#SkFontHinting'>SkFontHinting</a> hintingLevel)
</pre>
-Sets level of <a href='undocumented#Glyph'>glyph</a> <a href='undocumented#Glyph'>outline</a> <a href='undocumented#Glyph'>adjustment</a>.
+Sets level of <a href='undocumented#Glyph'>glyph</a> outline adjustment.
Does not check for valid values of <a href='#SkPaint_setHinting_hintingLevel'>hintingLevel</a>.
### Parameters
@@ -734,36 +645,6 @@
</fiddle-embed></div>
-<a name='SkPaint_setHinting_2'></a>
-
----
-
-<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-void <a href='#SkPaint_setHinting'>setHinting</a>(<a href='#SkPaint_Hinting'>Hinting</a> <a href='#SkPaint_Hinting'>h</a>)
-</pre>
-
-Sets level of <a href='undocumented#Glyph'>glyph</a> <a href='undocumented#Glyph'>outline</a> <a href='undocumented#Glyph'>adjustment</a>.
-Does not check for valid values of <a href='#SkPaint_setHinting_2_h'>h</a>.
-
-### Parameters
-
-<table> <tr> <td><a name='SkPaint_setHinting_2_h'><code><strong>h</strong></code></a></td>
- <td>one of: <a href='#SkPaint_kNo_Hinting'>kNo_Hinting</a>, <a href='#SkPaint_kSlight_Hinting'>kSlight_Hinting</a>, <a href='#SkPaint_kNormal_Hinting'>kNormal_Hinting</a>, <a href='#SkPaint_kFull_Hinting'>kFull_Hinting</a></td>
- </tr>
-</table>
-
-### Example
-
-<div><fiddle-embed name="bb179ec5698ec1398ff18f3657ab73f7">
-
-#### Example Output
-
-~~~~
-paint1 == paint2
-~~~~
-
-</fiddle-embed></div>
-
<a name='Flags'></a>
<a name='SkPaint_Flags'></a>
@@ -772,23 +653,23 @@
<pre style="padding: 1em 1em 1em 1em;width: 62.5em; background-color: #f0f0f0">
enum <a href='#SkPaint_Flags'>Flags</a> {
- <a href='#SkPaint_kAntiAlias_Flag'>kAntiAlias_Flag</a> = 0<a href='#SkPaint_kAntiAlias_Flag'>x01</a>,
- <a href='#SkPaint_kDither_Flag'>kDither_Flag</a> = 0<a href='#SkPaint_kDither_Flag'>x04</a>,
- <a href='#SkPaint_kFakeBoldText_Flag'>kFakeBoldText_Flag</a> = 0<a href='#SkPaint_kFakeBoldText_Flag'>x20</a>,
- <a href='#SkPaint_kLinearText_Flag'>kLinearText_Flag</a> = 0<a href='#SkPaint_kLinearText_Flag'>x40</a>,
- <a href='#SkPaint_kSubpixelText_Flag'>kSubpixelText_Flag</a> = 0<a href='#SkPaint_kSubpixelText_Flag'>x80</a>,
- <a href='#SkPaint_kLCDRenderText_Flag'>kLCDRenderText_Flag</a> = 0<a href='#SkPaint_kLCDRenderText_Flag'>x200</a>,
- <a href='#SkPaint_kEmbeddedBitmapText_Flag'>kEmbeddedBitmapText_Flag</a> = 0<a href='#SkPaint_kEmbeddedBitmapText_Flag'>x400</a>,
- <a href='#SkPaint_kAutoHinting_Flag'>kAutoHinting_Flag</a> = 0<a href='#SkPaint_kAutoHinting_Flag'>x800</a>,
- <a href='#SkPaint_kAllFlags'>kAllFlags</a> = 0<a href='#SkPaint_kAllFlags'>xFFFF</a>,
+ <a href='#SkPaint_kAntiAlias_Flag'>kAntiAlias_Flag</a> = 0x01,
+ <a href='#SkPaint_kDither_Flag'>kDither_Flag</a> = 0x04,
+ <a href='#SkPaint_kFakeBoldText_Flag'>kFakeBoldText_Flag</a> = 0x20,
+ <a href='#SkPaint_kLinearText_Flag'>kLinearText_Flag</a> = 0x40,
+ <a href='#SkPaint_kSubpixelText_Flag'>kSubpixelText_Flag</a> = 0x80,
+ <a href='#SkPaint_kLCDRenderText_Flag'>kLCDRenderText_Flag</a> = 0x200,
+ <a href='#SkPaint_kEmbeddedBitmapText_Flag'>kEmbeddedBitmapText_Flag</a> = 0x400,
+ <a href='#SkPaint_kAutoHinting_Flag'>kAutoHinting_Flag</a> = 0x800,
+ <a href='#SkPaint_kAllFlags'>kAllFlags</a> = 0xFFFF,
};
</pre>
The bit values stored in <a href='#SkPaint_Flags'>Flags</a>.
-<a href='#SkPaint_Flags'>The</a> <a href='#SkPaint_Flags'>default</a> <a href='#SkPaint_Flags'>value</a> <a href='#SkPaint_Flags'>for</a> <a href='#SkPaint_Flags'>Flags</a>, <a href='#SkPaint_Flags'>normally</a> <a href='#SkPaint_Flags'>zero</a>, <a href='#SkPaint_Flags'>can</a> <a href='#SkPaint_Flags'>be</a> <a href='#SkPaint_Flags'>changed</a> <a href='#SkPaint_Flags'>at</a> <a href='#SkPaint_Flags'>compile</a> <a href='#SkPaint_Flags'>time</a>
-<a href='#SkPaint_Flags'>with</a> <a href='#SkPaint_Flags'>a</a> <a href='#SkPaint_Flags'>custom</a> <a href='#SkPaint_Flags'>definition</a> <a href='#SkPaint_Flags'>of</a> <a href='undocumented#SkPaintDefaults_Flags'>SkPaintDefaults_Flags</a>.
-<a href='undocumented#SkPaintDefaults_Flags'>All</a> <a href='undocumented#SkPaintDefaults_Flags'>flags</a> <a href='undocumented#SkPaintDefaults_Flags'>can</a> <a href='undocumented#SkPaintDefaults_Flags'>be</a> <a href='undocumented#SkPaintDefaults_Flags'>read</a> <a href='undocumented#SkPaintDefaults_Flags'>and</a> <a href='undocumented#SkPaintDefaults_Flags'>written</a> <a href='undocumented#SkPaintDefaults_Flags'>explicitly</a>; <a href='#SkPaint_Flags'>Flags</a> <a href='#SkPaint_Flags'>allows</a> <a href='#SkPaint_Flags'>manipulating</a>
-<a href='#SkPaint_Flags'>multiple</a> <a href='#SkPaint_Flags'>settings</a> <a href='#SkPaint_Flags'>at</a> <a href='#SkPaint_Flags'>once</a>.
+The default value for <a href='#SkPaint_Flags'>Flags</a>, normally zero, can be changed at compile time
+with a custom definition of <a href='undocumented#SkPaintDefaults_Flags'>SkPaintDefaults_Flags</a>.
+All flags can be read and written explicitly; <a href='#SkPaint_Flags'>Flags</a> allows manipulating
+multiple settings at once.
### Constants
@@ -848,10 +729,10 @@
<td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a name='SkPaint_kAllFlags'><code>SkPaint::kAllFlags</code></a></td>
<td style='text-align: center; border: 2px solid #dddddd; padding: 8px; '>0xFFFF</td>
<td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>
-mask of all <a href='#SkPaint_Flags'>Flags</a>, <a href='#SkPaint_Flags'>including</a> <a href='#SkPaint_Flags'>private</a> <a href='#SkPaint_Flags'>flags</a> <a href='#SkPaint_Flags'>and</a> <a href='#SkPaint_Flags'>flags</a> <a href='#SkPaint_Flags'>reserved</a> <a href='#SkPaint_Flags'>for</a> <a href='#SkPaint_Flags'>future</a> <a href='#SkPaint_Flags'>use</a>
+mask of all <a href='#SkPaint_Flags'>Flags</a>, including private flags and flags reserved for future use
</td>
</tr>
-<a href='#SkPaint_Flags'>Flags</a> <a href='#SkPaint_Flags'>default</a> <a href='#SkPaint_Flags'>to</a> <a href='#SkPaint_Flags'>all</a> <a href='#SkPaint_Flags'>flags</a> <a href='#SkPaint_Flags'>clear</a>, <a href='#SkPaint_Flags'>disabling</a> <a href='#SkPaint_Flags'>the</a> <a href='#SkPaint_Flags'>associated</a> <a href='#SkPaint_Flags'>feature</a>.
+<a href='#SkPaint_Flags'>Flags</a> default to all flags clear, disabling the associated feature.
</table>
<a name='SkPaint_ReserveFlags'></a>
@@ -864,8 +745,8 @@
<pre style="padding: 1em 1em 1em 1em;width: 62.5em; background-color: #f0f0f0">
enum <a href='#SkPaint_ReserveFlags'>ReserveFlags</a> {
- <a href='#SkPaint_kUnderlineText_ReserveFlag'>kUnderlineText_ReserveFlag</a> = 0<a href='#SkPaint_kUnderlineText_ReserveFlag'>x08</a>,
- <a href='#SkPaint_kStrikeThruText_ReserveFlag'>kStrikeThruText_ReserveFlag</a> = 0<a href='#SkPaint_kStrikeThruText_ReserveFlag'>x10</a>,
+ <a href='#SkPaint_kUnderlineText_ReserveFlag'>kUnderlineText_ReserveFlag</a> = 0x08,
+ <a href='#SkPaint_kStrikeThruText_ReserveFlag'>kStrikeThruText_ReserveFlag</a> = 0x10,
};
</pre>
@@ -898,11 +779,11 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-uint32_t <a href='#SkPaint_getFlags'>getFlags</a>() <a href='#SkPaint_getFlags'>const</a>
+uint32_t <a href='#SkPaint_getFlags'>getFlags</a>() const
</pre>
-Returns <a href='SkPaint_Reference#Paint'>paint</a> <a href='SkPaint_Reference#Paint'>settings</a> <a href='SkPaint_Reference#Paint'>described</a> <a href='SkPaint_Reference#Paint'>by</a> <a href='SkPaint_Reference#SkPaint'>SkPaint</a>::<a href='#SkPaint_Flags'>Flags</a>. <a href='#SkPaint_Flags'>Each</a> <a href='#SkPaint_Flags'>setting</a> <a href='#SkPaint_Flags'>uses</a> <a href='#SkPaint_Flags'>one</a>
-bit, and can be tested with <a href='SkPaint_Reference#SkPaint'>SkPaint</a>::<a href='#SkPaint_Flags'>Flags</a> <a href='#SkPaint_Flags'>members</a>.
+Returns <a href='SkPaint_Reference#Paint'>paint</a> settings described by <a href='SkPaint_Reference#SkPaint'>SkPaint</a>::<a href='#SkPaint_Flags'>Flags</a>. Each setting uses one
+bit, and can be tested with <a href='SkPaint_Reference#SkPaint'>SkPaint</a>::<a href='#SkPaint_Flags'>Flags</a> members.
### Return Value
@@ -925,16 +806,16 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-void <a href='#SkPaint_setFlags'>setFlags</a>(<a href='#SkPaint_setFlags'>uint32_t</a> <a href='#SkPaint_setFlags'>flags</a>)
+void <a href='#SkPaint_setFlags'>setFlags</a>(uint32_t flags)
</pre>
-Replaces <a href='SkPaint_Reference#SkPaint'>SkPaint</a>::<a href='#SkPaint_Flags'>Flags</a> <a href='#SkPaint_Flags'>with</a> <a href='#SkPaint_setFlags_flags'>flags</a>, <a href='#SkPaint_setFlags_flags'>the</a> <a href='#SkPaint_setFlags_flags'>union</a> <a href='#SkPaint_setFlags_flags'>of</a> <a href='#SkPaint_setFlags_flags'>the</a> <a href='SkPaint_Reference#SkPaint'>SkPaint</a>::<a href='#SkPaint_Flags'>Flags</a> <a href='#SkPaint_Flags'>members</a>.
-All <a href='SkPaint_Reference#SkPaint'>SkPaint</a>::<a href='#SkPaint_Flags'>Flags</a> <a href='#SkPaint_Flags'>members</a> <a href='#SkPaint_Flags'>may</a> <a href='#SkPaint_Flags'>be</a> <a href='#SkPaint_Flags'>cleared</a>, <a href='#SkPaint_Flags'>or</a> <a href='#SkPaint_Flags'>one</a> <a href='#SkPaint_Flags'>or</a> <a href='#SkPaint_Flags'>more</a> <a href='#SkPaint_Flags'>may</a> <a href='#SkPaint_Flags'>be</a> <a href='#SkPaint_Flags'>set</a>.
+Replaces <a href='SkPaint_Reference#SkPaint'>SkPaint</a>::<a href='#SkPaint_Flags'>Flags</a> with <a href='#SkPaint_setFlags_flags'>flags</a>, the union of the <a href='SkPaint_Reference#SkPaint'>SkPaint</a>::<a href='#SkPaint_Flags'>Flags</a> members.
+All <a href='SkPaint_Reference#SkPaint'>SkPaint</a>::<a href='#SkPaint_Flags'>Flags</a> members may be cleared, or one or more may be set.
### Parameters
<table> <tr> <td><a name='SkPaint_setFlags_flags'><code><strong>flags</strong></code></a></td>
- <td>union of <a href='SkPaint_Reference#SkPaint'>SkPaint</a>::<a href='#SkPaint_Flags'>Flags</a> <a href='#SkPaint_Flags'>for</a> <a href='SkPaint_Reference#SkPaint'>SkPaint</a></td>
+ <td>union of <a href='SkPaint_Reference#SkPaint'>SkPaint</a>::<a href='#SkPaint_Flags'>Flags</a> for <a href='SkPaint_Reference#SkPaint'>SkPaint</a></td>
</tr>
</table>
@@ -955,32 +836,32 @@
---
-<a href='#Paint_Anti_Alias'>Anti_Alias</a> <a href='#Paint_Anti_Alias'>drawing</a> <a href='#Paint_Anti_Alias'>approximates</a> <a href='#Paint_Anti_Alias'>partial</a> <a href='undocumented#Pixel'>pixel</a> <a href='undocumented#Pixel'>coverage</a> <a href='undocumented#Pixel'>with</a> <a href='undocumented#Pixel'>transparency</a>.
-<a href='undocumented#Pixel'>If</a> <a href='#SkPaint_kAntiAlias_Flag'>kAntiAlias_Flag</a> <a href='#SkPaint_kAntiAlias_Flag'>is</a> <a href='#SkPaint_kAntiAlias_Flag'>clear</a>, <a href='undocumented#Pixel'>pixel</a> <a href='undocumented#Pixel'>centers</a> <a href='undocumented#Pixel'>contained</a> <a href='undocumented#Pixel'>by</a> <a href='undocumented#Pixel'>the</a> <a href='undocumented#Pixel'>shape</a> <a href='undocumented#Pixel'>edge</a> <a href='undocumented#Pixel'>are</a> <a href='undocumented#Pixel'>drawn</a> <a href='undocumented#Pixel'>opaque</a>.
-<a href='undocumented#Pixel'>If</a> <a href='#SkPaint_kAntiAlias_Flag'>kAntiAlias_Flag</a> <a href='#SkPaint_kAntiAlias_Flag'>is</a> <a href='#SkPaint_kAntiAlias_Flag'>set</a>, <a href='#SkPaint_kAntiAlias_Flag'>pixels</a> <a href='#SkPaint_kAntiAlias_Flag'>are</a> <a href='#SkPaint_kAntiAlias_Flag'>drawn</a> <a href='#SkPaint_kAntiAlias_Flag'>with</a> <a href='#Color_Alpha'>Color_Alpha</a> <a href='#Color_Alpha'>equal</a> <a href='#Color_Alpha'>to</a> <a href='#Color_Alpha'>their</a> <a href='#Color_Alpha'>coverage</a>.
+<a href='#Paint_Anti_Alias'>Anti_Alias</a> drawing approximates partial <a href='undocumented#Pixel'>pixel</a> coverage with transparency.
+If <a href='#SkPaint_kAntiAlias_Flag'>kAntiAlias_Flag</a> is clear, <a href='undocumented#Pixel'>pixel</a> centers contained by the shape edge are drawn opaque.
+If <a href='#SkPaint_kAntiAlias_Flag'>kAntiAlias_Flag</a> is set, pixels are drawn with <a href='#Color_Alpha'>Color_Alpha</a> equal to their coverage.
-<a href='#Color_Alpha'>The</a> <a href='#Color_Alpha'>rule</a> <a href='#Color_Alpha'>for</a> <a href='undocumented#Alias'>Aliased</a> <a href='undocumented#Alias'>pixels</a> <a href='undocumented#Alias'>is</a> <a href='undocumented#Alias'>inconsistent</a> <a href='undocumented#Alias'>across</a> <a href='undocumented#Alias'>platforms</a>. <a href='undocumented#Alias'>A</a> <a href='undocumented#Alias'>shape</a> <a href='undocumented#Alias'>edge</a>
-<a href='undocumented#Alias'>passing</a> <a href='undocumented#Alias'>through</a> <a href='undocumented#Alias'>the</a> <a href='undocumented#Pixel'>pixel</a> <a href='undocumented#Pixel'>center</a> <a href='undocumented#Pixel'>may</a>, <a href='undocumented#Pixel'>but</a> <a href='undocumented#Pixel'>is</a> <a href='undocumented#Pixel'>not</a> <a href='undocumented#Pixel'>required</a> <a href='undocumented#Pixel'>to</a>, <a href='undocumented#Pixel'>draw</a> <a href='undocumented#Pixel'>the</a> <a href='undocumented#Pixel'>pixel</a>.
+The rule for <a href='undocumented#Alias'>Aliased</a> pixels is inconsistent across platforms. A shape edge
+passing through the <a href='undocumented#Pixel'>pixel</a> center may, but is not required to, draw the <a href='undocumented#Pixel'>pixel</a>.
-<a href='#Raster_Engine'>Raster_Engine</a> <a href='#Raster_Engine'>draws</a> <a href='undocumented#Alias'>Aliased</a> <a href='undocumented#Alias'>pixels</a> <a href='undocumented#Alias'>whose</a> <a href='undocumented#Alias'>centers</a> <a href='undocumented#Alias'>are</a> <a href='undocumented#Alias'>on</a> <a href='undocumented#Alias'>or</a> <a href='undocumented#Alias'>to</a> <a href='undocumented#Alias'>the</a> <a href='undocumented#Alias'>right</a> <a href='undocumented#Alias'>of</a> <a href='undocumented#Alias'>the</a> <a href='undocumented#Alias'>start</a> <a href='undocumented#Alias'>of</a> <a href='undocumented#Alias'>an</a>
-<a href='undocumented#Alias'>active</a> <a href='SkPath_Reference#Path'>Path</a> <a href='SkPath_Reference#Path'>edge</a>, <a href='SkPath_Reference#Path'>and</a> <a href='SkPath_Reference#Path'>whose</a> <a href='SkPath_Reference#Path'>center</a> <a href='SkPath_Reference#Path'>is</a> <a href='SkPath_Reference#Path'>to</a> <a href='SkPath_Reference#Path'>the</a> <a href='SkPath_Reference#Path'>left</a> <a href='SkPath_Reference#Path'>of</a> <a href='SkPath_Reference#Path'>the</a> <a href='SkPath_Reference#Path'>end</a> <a href='SkPath_Reference#Path'>of</a> <a href='SkPath_Reference#Path'>the</a> <a href='SkPath_Reference#Path'>active</a> <a href='SkPath_Reference#Path'>Path</a> <a href='SkPath_Reference#Path'>edge</a>.
+<a href='#Raster_Engine'>Raster_Engine</a> draws <a href='undocumented#Alias'>Aliased</a> pixels whose centers are on or to the right of the start of an
+active <a href='SkPath_Reference#Path'>Path</a> edge, and whose center is to the left of the end of the active <a href='SkPath_Reference#Path'>Path</a> edge.
-A platform may only support <a href='#Paint_Anti_Alias'>Anti_Aliased</a> <a href='#Paint_Anti_Alias'>drawing</a>. <a href='#Paint_Anti_Alias'>Some</a> <a href='#Paint_Anti_Alias'>GPU-backed</a> <a href='#Paint_Anti_Alias'>platforms</a> <a href='#Paint_Anti_Alias'>use</a>
-<a href='undocumented#Supersampling'>Supersampling</a> <a href='undocumented#Supersampling'>to</a> <a href='#Paint_Anti_Alias'>Anti_Alias</a> <a href='#Paint_Anti_Alias'>all</a> <a href='#Paint_Anti_Alias'>drawing</a>, <a href='#Paint_Anti_Alias'>and</a> <a href='#Paint_Anti_Alias'>have</a> <a href='#Paint_Anti_Alias'>no</a> <a href='#Paint_Anti_Alias'>mechanism</a> <a href='#Paint_Anti_Alias'>to</a> <a href='#Paint_Anti_Alias'>selectively</a>
+A platform may only support <a href='#Paint_Anti_Alias'>Anti_Aliased</a> drawing. Some GPU-backed platforms use
+<a href='undocumented#Supersampling'>Supersampling</a> to <a href='#Paint_Anti_Alias'>Anti_Alias</a> all drawing, and have no mechanism to selectively
<a href='undocumented#Alias'>Alias</a>.
-<a href='undocumented#Alias'>The</a> <a href='undocumented#Alias'>amount</a> <a href='undocumented#Alias'>of</a> <a href='undocumented#Alias'>coverage</a> <a href='undocumented#Alias'>computed</a> <a href='undocumented#Alias'>for</a> <a href='#Paint_Anti_Alias'>Anti_Aliased</a> <a href='#Paint_Anti_Alias'>pixels</a> <a href='#Paint_Anti_Alias'>also</a> <a href='#Paint_Anti_Alias'>varies</a> <a href='#Paint_Anti_Alias'>across</a> <a href='#Paint_Anti_Alias'>platforms</a>.
+The amount of coverage computed for <a href='#Paint_Anti_Alias'>Anti_Aliased</a> pixels also varies across platforms.
-<a href='#Paint_Anti_Alias'>Anti_Alias</a> <a href='#Paint_Anti_Alias'>is</a> <a href='#Paint_Anti_Alias'>disabled</a> <a href='#Paint_Anti_Alias'>by</a> <a href='#Paint_Anti_Alias'>default</a>.
-<a href='#Paint_Anti_Alias'>Anti_Alias</a> <a href='#Paint_Anti_Alias'>can</a> <a href='#Paint_Anti_Alias'>be</a> <a href='#Paint_Anti_Alias'>enabled</a> <a href='#Paint_Anti_Alias'>by</a> <a href='#Paint_Anti_Alias'>default</a> <a href='#Paint_Anti_Alias'>by</a> <a href='#Paint_Anti_Alias'>setting</a> <a href='undocumented#SkPaintDefaults_Flags'>SkPaintDefaults_Flags</a> <a href='undocumented#SkPaintDefaults_Flags'>to</a> <a href='#SkPaint_kAntiAlias_Flag'>kAntiAlias_Flag</a>
-<a href='#SkPaint_kAntiAlias_Flag'>at</a> <a href='#SkPaint_kAntiAlias_Flag'>compile</a> <a href='#SkPaint_kAntiAlias_Flag'>time</a>.
+<a href='#Paint_Anti_Alias'>Anti_Alias</a> is disabled by default.
+<a href='#Paint_Anti_Alias'>Anti_Alias</a> can be enabled by default by setting <a href='undocumented#SkPaintDefaults_Flags'>SkPaintDefaults_Flags</a> to <a href='#SkPaint_kAntiAlias_Flag'>kAntiAlias_Flag</a>
+at compile time.
### Example
-<div><fiddle-embed name="a6575a49467ce8d28bb01cc7638fa04d"><div>A red <a href='undocumented#Line'>line</a> <a href='undocumented#Line'>is</a> <a href='undocumented#Line'>drawn</a> <a href='undocumented#Line'>with</a> <a href='undocumented#Line'>transparency</a> <a href='undocumented#Line'>on</a> <a href='undocumented#Line'>the</a> <a href='undocumented#Line'>edges</a> <a href='undocumented#Line'>to</a> <a href='undocumented#Line'>make</a> <a href='undocumented#Line'>it</a> <a href='undocumented#Line'>look</a> <a href='undocumented#Line'>smoother</a>.
-<a href='undocumented#Line'>A</a> <a href='undocumented#Line'>blue</a> <a href='undocumented#Line'>line</a> <a href='undocumented#Line'>draws</a> <a href='undocumented#Line'>only</a> <a href='undocumented#Line'>where</a> <a href='undocumented#Line'>the</a> <a href='undocumented#Pixel'>pixel</a> <a href='undocumented#Pixel'>centers</a> <a href='undocumented#Pixel'>are</a> <a href='undocumented#Pixel'>contained</a>.
-<a href='undocumented#Pixel'>The</a> <a href='undocumented#Line'>lines</a> <a href='undocumented#Line'>are</a> <a href='undocumented#Line'>drawn</a> <a href='undocumented#Line'>into</a> <a href='SkBitmap_Reference#Bitmap'>Bitmap</a>, <a href='SkBitmap_Reference#Bitmap'>then</a> <a href='SkBitmap_Reference#Bitmap'>drawn</a> <a href='SkBitmap_Reference#Bitmap'>magnified</a> <a href='SkBitmap_Reference#Bitmap'>to</a> <a href='SkBitmap_Reference#Bitmap'>make</a> <a href='SkBitmap_Reference#Bitmap'>the</a>
-<a href='undocumented#Alias'>Aliasing</a> <a href='undocumented#Alias'>easier</a> <a href='undocumented#Alias'>to</a> <a href='undocumented#Alias'>see</a>.
+<div><fiddle-embed name="a6575a49467ce8d28bb01cc7638fa04d"><div>A red <a href='undocumented#Line'>line</a> is drawn with transparency on the edges to make it look smoother.
+A blue <a href='undocumented#Line'>line</a> draws only where the <a href='undocumented#Pixel'>pixel</a> centers are contained.
+The <a href='undocumented#Line'>lines</a> are drawn into <a href='SkBitmap_Reference#Bitmap'>Bitmap</a>, then drawn magnified to make the
+<a href='undocumented#Alias'>Aliasing</a> easier to see.
</div></fiddle-embed></div>
<a name='SkPaint_isAntiAlias'></a>
@@ -988,16 +869,16 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-bool <a href='#SkPaint_isAntiAlias'>isAntiAlias</a>() <a href='#SkPaint_isAntiAlias'>const</a>
+bool <a href='#SkPaint_isAntiAlias'>isAntiAlias</a>() const
</pre>
-Returns true if pixels on the active edges of <a href='SkPath_Reference#SkPath'>SkPath</a> <a href='SkPath_Reference#SkPath'>may</a> <a href='SkPath_Reference#SkPath'>be</a> <a href='SkPath_Reference#SkPath'>drawn</a> <a href='SkPath_Reference#SkPath'>with</a> <a href='SkPath_Reference#SkPath'>partial</a> <a href='SkPath_Reference#SkPath'>transparency</a>.
+Returns true if pixels on the active edges of <a href='SkPath_Reference#SkPath'>SkPath</a> may be drawn with partial transparency.
-Equivalent to <a href='#SkPaint_getFlags'>getFlags</a>() <a href='#SkPaint_getFlags'>masked</a> <a href='#SkPaint_getFlags'>with</a> <a href='#SkPaint_kAntiAlias_Flag'>kAntiAlias_Flag</a>.
+Equivalent to <a href='#SkPaint_getFlags'>getFlags</a>() masked with <a href='#SkPaint_kAntiAlias_Flag'>kAntiAlias_Flag</a>.
### Return Value
-<a href='#SkPaint_kAntiAlias_Flag'>kAntiAlias_Flag</a> <a href='#SkPaint_kAntiAlias_Flag'>state</a>
+<a href='#SkPaint_kAntiAlias_Flag'>kAntiAlias_Flag</a> state
### Example
@@ -1017,14 +898,14 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-void <a href='#SkPaint_setAntiAlias'>setAntiAlias</a>(<a href='#SkPaint_setAntiAlias'>bool</a> <a href='#SkPaint_setAntiAlias'>aa</a>)
+void <a href='#SkPaint_setAntiAlias'>setAntiAlias</a>(bool aa)
</pre>
-Requests, but does not require, that <a href='SkPath_Reference#SkPath'>SkPath</a> <a href='SkPath_Reference#SkPath'>edge</a> <a href='SkPath_Reference#SkPath'>pixels</a> <a href='SkPath_Reference#SkPath'>draw</a> <a href='SkPath_Reference#SkPath'>opaque</a> <a href='SkPath_Reference#SkPath'>or</a> <a href='SkPath_Reference#SkPath'>with</a>
+Requests, but does not require, that <a href='SkPath_Reference#SkPath'>SkPath</a> edge pixels draw opaque or with
partial transparency.
-Sets <a href='#SkPaint_kAntiAlias_Flag'>kAntiAlias_Flag</a> <a href='#SkPaint_kAntiAlias_Flag'>if</a> <a href='#SkPaint_setAntiAlias_aa'>aa</a> <a href='#SkPaint_setAntiAlias_aa'>is</a> <a href='#SkPaint_setAntiAlias_aa'>true</a>.
-Clears <a href='#SkPaint_kAntiAlias_Flag'>kAntiAlias_Flag</a> <a href='#SkPaint_kAntiAlias_Flag'>if</a> <a href='#SkPaint_setAntiAlias_aa'>aa</a> <a href='#SkPaint_setAntiAlias_aa'>is</a> <a href='#SkPaint_setAntiAlias_aa'>false</a>.
+Sets <a href='#SkPaint_kAntiAlias_Flag'>kAntiAlias_Flag</a> if <a href='#SkPaint_setAntiAlias_aa'>aa</a> is true.
+Clears <a href='#SkPaint_kAntiAlias_Flag'>kAntiAlias_Flag</a> if <a href='#SkPaint_setAntiAlias_aa'>aa</a> is false.
### Parameters
@@ -1049,34 +930,34 @@
---
-Dither increases fidelity by adjusting the <a href='SkColor_Reference#Color'>color</a> <a href='SkColor_Reference#Color'>of</a> <a href='SkColor_Reference#Color'>adjacent</a> <a href='SkColor_Reference#Color'>pixels</a>.
-<a href='SkColor_Reference#Color'>This</a> <a href='SkColor_Reference#Color'>can</a> <a href='SkColor_Reference#Color'>help</a> <a href='SkColor_Reference#Color'>to</a> <a href='SkColor_Reference#Color'>smooth</a> <a href='SkColor_Reference#Color'>color</a> <a href='SkColor_Reference#Color'>transitions</a> <a href='SkColor_Reference#Color'>and</a> <a href='SkColor_Reference#Color'>reducing</a> <a href='SkColor_Reference#Color'>banding</a> <a href='SkColor_Reference#Color'>in</a> <a href='SkColor_Reference#Color'>gradients</a>.
-<a href='SkColor_Reference#Color'>Dithering</a> <a href='SkColor_Reference#Color'>lessens</a> <a href='SkColor_Reference#Color'>visible</a> <a href='SkColor_Reference#Color'>banding</a> <a href='SkColor_Reference#Color'>from</a> <a href='SkImageInfo_Reference#kRGB_565_SkColorType'>kRGB_565_SkColorType</a>
-<a href='SkImageInfo_Reference#kRGB_565_SkColorType'>and</a> <a href='SkImageInfo_Reference#kRGBA_8888_SkColorType'>kRGBA_8888_SkColorType</a> <a href='SkImageInfo_Reference#kRGBA_8888_SkColorType'>gradients</a>,
-<a href='SkImageInfo_Reference#kRGBA_8888_SkColorType'>and</a> <a href='SkImageInfo_Reference#kRGBA_8888_SkColorType'>improves</a> <a href='SkImageInfo_Reference#kRGBA_8888_SkColorType'>rendering</a> <a href='SkImageInfo_Reference#kRGBA_8888_SkColorType'>into</a> <a href='SkImageInfo_Reference#kRGBA_8888_SkColorType'>a</a> <a href='SkImageInfo_Reference#kRGB_565_SkColorType'>kRGB_565_SkColorType</a> <a href='SkSurface_Reference#Surface'>Surface</a>.
+Dither increases fidelity by adjusting the <a href='SkColor_Reference#Color'>color</a> of adjacent pixels.
+This can help to smooth <a href='SkColor_Reference#Color'>color</a> transitions and reducing banding in gradients.
+Dithering lessens visible banding from <a href='SkImageInfo_Reference#kRGB_565_SkColorType'>kRGB_565_SkColorType</a>
+and <a href='SkImageInfo_Reference#kRGBA_8888_SkColorType'>kRGBA_8888_SkColorType</a> gradients,
+and improves rendering into a <a href='SkImageInfo_Reference#kRGB_565_SkColorType'>kRGB_565_SkColorType</a> <a href='SkSurface_Reference#Surface'>Surface</a>.
-<a href='SkSurface_Reference#Surface'>Dithering</a> <a href='SkSurface_Reference#Surface'>is</a> <a href='SkSurface_Reference#Surface'>always</a> <a href='SkSurface_Reference#Surface'>enabled</a> <a href='SkSurface_Reference#Surface'>for</a> <a href='SkSurface_Reference#Surface'>linear</a> <a href='SkSurface_Reference#Surface'>gradients</a> <a href='SkSurface_Reference#Surface'>drawing</a> <a href='SkSurface_Reference#Surface'>into</a>
-<a href='SkImageInfo_Reference#kRGB_565_SkColorType'>kRGB_565_SkColorType</a> <a href='SkSurface_Reference#Surface'>Surface</a> <a href='SkSurface_Reference#Surface'>and</a> <a href='SkImageInfo_Reference#kRGBA_8888_SkColorType'>kRGBA_8888_SkColorType</a> <a href='SkSurface_Reference#Surface'>Surface</a>.
-<a href='SkSurface_Reference#Surface'>Dither</a> <a href='SkSurface_Reference#Surface'>cannot</a> <a href='SkSurface_Reference#Surface'>be</a> <a href='SkSurface_Reference#Surface'>enabled</a> <a href='SkSurface_Reference#Surface'>for</a> <a href='SkImageInfo_Reference#kAlpha_8_SkColorType'>kAlpha_8_SkColorType</a> <a href='SkSurface_Reference#Surface'>Surface</a> <a href='SkSurface_Reference#Surface'>and</a>
+Dithering is always enabled for linear gradients drawing into
+<a href='SkImageInfo_Reference#kRGB_565_SkColorType'>kRGB_565_SkColorType</a> <a href='SkSurface_Reference#Surface'>Surface</a> and <a href='SkImageInfo_Reference#kRGBA_8888_SkColorType'>kRGBA_8888_SkColorType</a> <a href='SkSurface_Reference#Surface'>Surface</a>.
+Dither cannot be enabled for <a href='SkImageInfo_Reference#kAlpha_8_SkColorType'>kAlpha_8_SkColorType</a> <a href='SkSurface_Reference#Surface'>Surface</a> and
<a href='SkImageInfo_Reference#kRGBA_F16_SkColorType'>kRGBA_F16_SkColorType</a> <a href='SkSurface_Reference#Surface'>Surface</a>.
-<a href='SkSurface_Reference#Surface'>Dither</a> <a href='SkSurface_Reference#Surface'>is</a> <a href='SkSurface_Reference#Surface'>disabled</a> <a href='SkSurface_Reference#Surface'>by</a> <a href='SkSurface_Reference#Surface'>default</a>.
-<a href='SkSurface_Reference#Surface'>Dither</a> <a href='SkSurface_Reference#Surface'>can</a> <a href='SkSurface_Reference#Surface'>be</a> <a href='SkSurface_Reference#Surface'>enabled</a> <a href='SkSurface_Reference#Surface'>by</a> <a href='SkSurface_Reference#Surface'>default</a> <a href='SkSurface_Reference#Surface'>by</a> <a href='SkSurface_Reference#Surface'>setting</a> <a href='undocumented#SkPaintDefaults_Flags'>SkPaintDefaults_Flags</a> <a href='undocumented#SkPaintDefaults_Flags'>to</a> <a href='#SkPaint_kDither_Flag'>kDither_Flag</a>
-<a href='#SkPaint_kDither_Flag'>at</a> <a href='#SkPaint_kDither_Flag'>compile</a> <a href='#SkPaint_kDither_Flag'>time</a>.
+Dither is disabled by default.
+Dither can be enabled by default by setting <a href='undocumented#SkPaintDefaults_Flags'>SkPaintDefaults_Flags</a> to <a href='#SkPaint_kDither_Flag'>kDither_Flag</a>
+at compile time.
-<a href='#SkPaint_kDither_Flag'>Some</a> <a href='#SkPaint_kDither_Flag'>platform</a> <a href='#SkPaint_kDither_Flag'>implementations</a> <a href='#SkPaint_kDither_Flag'>may</a> <a href='#SkPaint_kDither_Flag'>ignore</a> <a href='#SkPaint_kDither_Flag'>dithering</a>. <a href='#SkPaint_kDither_Flag'>Set</a> <code>SK_IGNORE_GPU_DITHER</code>to ignore Dither on <a href='#GPU_Surface'>GPU_Surface</a>.
+Some platform implementations may ignore dithering. Set <code>SK_IGNORE_GPU_DITHER</code>to ignore Dither on <a href='#GPU_Surface'>GPU_Surface</a>.
### Example
-<div><fiddle-embed name="8b26507690b71462f44642b911890bbf"><div>Dithering in the bottom half more closely approximates the requested <a href='SkColor_Reference#Color'>color</a> <a href='SkColor_Reference#Color'>by</a>
-<a href='SkColor_Reference#Color'>alternating</a> <a href='SkColor_Reference#Color'>nearby</a> <a href='SkColor_Reference#Color'>colors</a> <a href='SkColor_Reference#Color'>from</a> <a href='undocumented#Pixel'>pixel</a> <a href='undocumented#Pixel'>to</a> <a href='undocumented#Pixel'>pixel</a>.
+<div><fiddle-embed name="8b26507690b71462f44642b911890bbf"><div>Dithering in the bottom half more closely approximates the requested <a href='SkColor_Reference#Color'>color</a> by
+alternating nearby colors from <a href='undocumented#Pixel'>pixel</a> to <a href='undocumented#Pixel'>pixel</a>.
</div></fiddle-embed></div>
### Example
-<div><fiddle-embed name="76d4d4a7931a48495e4d5f54e073be53"><div>Dithering introduces subtle adjustments to <a href='SkColor_Reference#Color'>color</a> <a href='SkColor_Reference#Color'>to</a> <a href='SkColor_Reference#Color'>smooth</a> <a href='SkColor_Reference#Color'>gradients</a>.
-<a href='SkColor_Reference#Color'>Drawing</a> <a href='SkColor_Reference#Color'>the</a> <a href='SkColor_Reference#Color'>gradient</a> <a href='SkColor_Reference#Color'>repeatedly</a> <a href='SkColor_Reference#Color'>with</a> <a href='SkBlendMode_Reference#SkBlendMode'>SkBlendMode</a>::<a href='#SkBlendMode_kPlus'>kPlus</a> <a href='#SkBlendMode_kPlus'>exaggerates</a> <a href='#SkBlendMode_kPlus'>the</a>
-<a href='#SkBlendMode_kPlus'>dither</a>, <a href='#SkBlendMode_kPlus'>making</a> <a href='#SkBlendMode_kPlus'>it</a> <a href='#SkBlendMode_kPlus'>easier</a> <a href='#SkBlendMode_kPlus'>to</a> <a href='#SkBlendMode_kPlus'>see</a>.
+<div><fiddle-embed name="76d4d4a7931a48495e4d5f54e073be53"><div>Dithering introduces subtle adjustments to <a href='SkColor_Reference#Color'>color</a> to smooth gradients.
+Drawing the gradient repeatedly with <a href='SkBlendMode_Reference#SkBlendMode'>SkBlendMode</a>::<a href='#SkBlendMode_kPlus'>kPlus</a> exaggerates the
+dither, making it easier to see.
</div></fiddle-embed></div>
### See Also
@@ -1088,16 +969,16 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-bool <a href='#SkPaint_isDither'>isDither</a>() <a href='#SkPaint_isDither'>const</a>
+bool <a href='#SkPaint_isDither'>isDither</a>() const
</pre>
-Returns true if <a href='SkColor_Reference#Color'>color</a> <a href='SkColor_Reference#Color'>error</a> <a href='SkColor_Reference#Color'>may</a> <a href='SkColor_Reference#Color'>be</a> <a href='SkColor_Reference#Color'>distributed</a> <a href='SkColor_Reference#Color'>to</a> <a href='SkColor_Reference#Color'>smooth</a> <a href='SkColor_Reference#Color'>color</a> <a href='SkColor_Reference#Color'>transition</a>.
+Returns true if <a href='SkColor_Reference#Color'>color</a> error may be distributed to smooth <a href='SkColor_Reference#Color'>color</a> transition.
-Equivalent to <a href='#SkPaint_getFlags'>getFlags</a>() <a href='#SkPaint_getFlags'>masked</a> <a href='#SkPaint_getFlags'>with</a> <a href='#SkPaint_kDither_Flag'>kDither_Flag</a>.
+Equivalent to <a href='#SkPaint_getFlags'>getFlags</a>() masked with <a href='#SkPaint_kDither_Flag'>kDither_Flag</a>.
### Return Value
-<a href='#SkPaint_kDither_Flag'>kDither_Flag</a> <a href='#SkPaint_kDither_Flag'>state</a>
+<a href='#SkPaint_kDither_Flag'>kDither_Flag</a> state
### Example
@@ -1117,13 +998,13 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-void <a href='#SkPaint_setDither'>setDither</a>(<a href='#SkPaint_setDither'>bool</a> <a href='#SkPaint_setDither'>dither</a>)
+void <a href='#SkPaint_setDither'>setDither</a>(bool dither)
</pre>
-Requests, but does not require, to distribute <a href='SkColor_Reference#Color'>color</a> <a href='SkColor_Reference#Color'>error</a>.
+Requests, but does not require, to distribute <a href='SkColor_Reference#Color'>color</a> error.
-Sets <a href='#SkPaint_kDither_Flag'>kDither_Flag</a> <a href='#SkPaint_kDither_Flag'>if</a> <a href='#SkPaint_setDither_dither'>dither</a> <a href='#SkPaint_setDither_dither'>is</a> <a href='#SkPaint_setDither_dither'>true</a>.
-Clears <a href='#SkPaint_kDither_Flag'>kDither_Flag</a> <a href='#SkPaint_kDither_Flag'>if</a> <a href='#SkPaint_setDither_dither'>dither</a> <a href='#SkPaint_setDither_dither'>is</a> <a href='#SkPaint_setDither_dither'>false</a>.
+Sets <a href='#SkPaint_kDither_Flag'>kDither_Flag</a> if <a href='#SkPaint_setDither_dither'>dither</a> is true.
+Clears <a href='#SkPaint_kDither_Flag'>kDither_Flag</a> if <a href='#SkPaint_setDither_dither'>dither</a> is false.
### Parameters
@@ -1152,51 +1033,51 @@
---
-<a href='#Paint_LCD_Text'>LCD_Text</a> <a href='#Paint_LCD_Text'>and</a> <a href='#Paint_Subpixel_Text'>Subpixel_Text</a> <a href='#Paint_Subpixel_Text'>increase</a> <a href='#Paint_Subpixel_Text'>the</a> <a href='#Paint_Subpixel_Text'>precision</a> <a href='#Paint_Subpixel_Text'>of</a> <a href='undocumented#Glyph'>glyph</a> <a href='undocumented#Glyph'>position</a>.
+<a href='#Paint_LCD_Text'>LCD_Text</a> and <a href='#Paint_Subpixel_Text'>Subpixel_Text</a> increase the precision of <a href='undocumented#Glyph'>glyph</a> position.
-<a href='undocumented#Glyph'>When</a> <a href='undocumented#Glyph'>set</a>, <a href='#SkPaint_Flags'>Flags</a> <a href='#SkPaint_kLCDRenderText_Flag'>kLCDRenderText_Flag</a> <a href='#SkPaint_kLCDRenderText_Flag'>takes</a> <a href='#SkPaint_kLCDRenderText_Flag'>advantage</a> <a href='#SkPaint_kLCDRenderText_Flag'>of</a> <a href='#SkPaint_kLCDRenderText_Flag'>the</a> <a href='#SkPaint_kLCDRenderText_Flag'>organization</a> <a href='#SkPaint_kLCDRenderText_Flag'>of</a> <a href='#SkPaint_kLCDRenderText_Flag'>RGB</a> <a href='#SkPaint_kLCDRenderText_Flag'>stripes</a> <a href='#SkPaint_kLCDRenderText_Flag'>that</a>
-<a href='#SkPaint_kLCDRenderText_Flag'>create</a> <a href='#SkPaint_kLCDRenderText_Flag'>a</a> <a href='SkColor_Reference#Color'>color</a>, <a href='SkColor_Reference#Color'>and</a> <a href='SkColor_Reference#Color'>relies</a>
-<a href='SkColor_Reference#Color'>on</a> <a href='SkColor_Reference#Color'>the</a> <a href='SkColor_Reference#Color'>small</a> <a href='undocumented#Size'>size</a> <a href='undocumented#Size'>of</a> <a href='undocumented#Size'>the</a> <a href='undocumented#Size'>stripe</a> <a href='undocumented#Size'>and</a> <a href='undocumented#Size'>visual</a> <a href='undocumented#Size'>perception</a> <a href='undocumented#Size'>to</a> <a href='undocumented#Size'>make</a> <a href='undocumented#Size'>the</a> <a href='SkColor_Reference#Color'>color</a> <a href='SkColor_Reference#Color'>fringing</a> <a href='SkColor_Reference#Color'>imperceptible</a>.
-<a href='#Paint_LCD_Text'>LCD_Text</a> <a href='#Paint_LCD_Text'>can</a> <a href='#Paint_LCD_Text'>be</a> <a href='#Paint_LCD_Text'>enabled</a> <a href='#Paint_LCD_Text'>on</a> <a href='#Paint_LCD_Text'>devices</a> <a href='#Paint_LCD_Text'>that</a> <a href='#Paint_LCD_Text'>orient</a> <a href='#Paint_LCD_Text'>stripes</a> <a href='#Paint_LCD_Text'>horizontally</a> <a href='#Paint_LCD_Text'>or</a> <a href='#Paint_LCD_Text'>vertically</a>, <a href='#Paint_LCD_Text'>and</a> <a href='#Paint_LCD_Text'>that</a> <a href='#Paint_LCD_Text'>order</a>
-<a href='#Paint_LCD_Text'>the</a> <a href='SkColor_Reference#Color'>color</a> <a href='SkColor_Reference#Color'>components</a> <a href='SkColor_Reference#Color'>as</a> <a href='SkColor_Reference#Color'>RGB</a> <a href='SkColor_Reference#Color'>or</a> <a href='SkColor_Reference#Color'>BGR</a>.
+When set, <a href='#SkPaint_Flags'>Flags</a> <a href='#SkPaint_kLCDRenderText_Flag'>kLCDRenderText_Flag</a> takes advantage of the organization of RGB stripes that
+create a <a href='SkColor_Reference#Color'>color</a>, and relies
+on the small <a href='undocumented#Size'>size</a> of the stripe and visual perception to make the <a href='SkColor_Reference#Color'>color</a> fringing imperceptible.
+<a href='#Paint_LCD_Text'>LCD_Text</a> can be enabled on devices that orient stripes horizontally or vertically, and that order
+the <a href='SkColor_Reference#Color'>color</a> components as RGB or BGR.
-<a href='#SkPaint_Flags'>Flags</a> <a href='#SkPaint_kSubpixelText_Flag'>kSubpixelText_Flag</a> <a href='#SkPaint_kSubpixelText_Flag'>uses</a> <a href='#SkPaint_kSubpixelText_Flag'>the</a> <a href='undocumented#Pixel'>pixel</a> <a href='undocumented#Pixel'>transparency</a> <a href='undocumented#Pixel'>to</a> <a href='undocumented#Pixel'>represent</a> <a href='undocumented#Pixel'>a</a> <a href='undocumented#Pixel'>fractional</a> <a href='undocumented#Pixel'>offset</a>.
-<a href='undocumented#Pixel'>As</a> <a href='undocumented#Pixel'>the</a> <a href='undocumented#Pixel'>opaqueness</a>
-<a href='undocumented#Pixel'>of</a> <a href='undocumented#Pixel'>the</a> <a href='SkColor_Reference#Color'>color</a> <a href='SkColor_Reference#Color'>increases</a>, <a href='SkColor_Reference#Color'>the</a> <a href='SkColor_Reference#Color'>edge</a> <a href='SkColor_Reference#Color'>of</a> <a href='SkColor_Reference#Color'>the</a> <a href='undocumented#Glyph'>glyph</a> <a href='undocumented#Glyph'>appears</a> <a href='undocumented#Glyph'>to</a> <a href='undocumented#Glyph'>move</a> <a href='undocumented#Glyph'>towards</a> <a href='undocumented#Glyph'>the</a> <a href='undocumented#Glyph'>outside</a> <a href='undocumented#Glyph'>of</a> <a href='undocumented#Glyph'>the</a> <a href='undocumented#Pixel'>pixel</a>.
+<a href='#SkPaint_Flags'>Flags</a> <a href='#SkPaint_kSubpixelText_Flag'>kSubpixelText_Flag</a> uses the <a href='undocumented#Pixel'>pixel</a> transparency to represent a fractional offset.
+As the opaqueness
+of the <a href='SkColor_Reference#Color'>color</a> increases, the edge of the <a href='undocumented#Glyph'>glyph</a> appears to move towards the outside of the <a href='undocumented#Pixel'>pixel</a>.
-<a href='undocumented#Pixel'>Either</a> <a href='undocumented#Pixel'>or</a> <a href='undocumented#Pixel'>both</a> <a href='undocumented#Pixel'>techniques</a> <a href='undocumented#Pixel'>can</a> <a href='undocumented#Pixel'>be</a> <a href='undocumented#Pixel'>enabled</a>.
-<a href='#SkPaint_kLCDRenderText_Flag'>kLCDRenderText_Flag</a> <a href='#SkPaint_kLCDRenderText_Flag'>and</a> <a href='#SkPaint_kSubpixelText_Flag'>kSubpixelText_Flag</a> <a href='#SkPaint_kSubpixelText_Flag'>are</a> <a href='#SkPaint_kSubpixelText_Flag'>clear</a> <a href='#SkPaint_kSubpixelText_Flag'>by</a> <a href='#SkPaint_kSubpixelText_Flag'>default</a>.
-<a href='#Paint_LCD_Text'>LCD_Text</a> <a href='#Paint_LCD_Text'>or</a> <a href='#Paint_Subpixel_Text'>Subpixel_Text</a> <a href='#Paint_Subpixel_Text'>can</a> <a href='#Paint_Subpixel_Text'>be</a> <a href='#Paint_Subpixel_Text'>enabled</a> <a href='#Paint_Subpixel_Text'>by</a> <a href='#Paint_Subpixel_Text'>default</a> <a href='#Paint_Subpixel_Text'>by</a> <a href='#Paint_Subpixel_Text'>setting</a> <a href='undocumented#SkPaintDefaults_Flags'>SkPaintDefaults_Flags</a> <a href='undocumented#SkPaintDefaults_Flags'>to</a>
-<a href='#SkPaint_kLCDRenderText_Flag'>kLCDRenderText_Flag</a> <a href='#SkPaint_kLCDRenderText_Flag'>or</a> <a href='#SkPaint_kSubpixelText_Flag'>kSubpixelText_Flag</a> (<a href='#SkPaint_kSubpixelText_Flag'>or</a> <a href='#SkPaint_kSubpixelText_Flag'>both</a>) <a href='#SkPaint_kSubpixelText_Flag'>at</a> <a href='#SkPaint_kSubpixelText_Flag'>compile</a> <a href='#SkPaint_kSubpixelText_Flag'>time</a>.
+Either or both techniques can be enabled.
+<a href='#SkPaint_kLCDRenderText_Flag'>kLCDRenderText_Flag</a> and <a href='#SkPaint_kSubpixelText_Flag'>kSubpixelText_Flag</a> are clear by default.
+<a href='#Paint_LCD_Text'>LCD_Text</a> or <a href='#Paint_Subpixel_Text'>Subpixel_Text</a> can be enabled by default by setting <a href='undocumented#SkPaintDefaults_Flags'>SkPaintDefaults_Flags</a> to
+<a href='#SkPaint_kLCDRenderText_Flag'>kLCDRenderText_Flag</a> or <a href='#SkPaint_kSubpixelText_Flag'>kSubpixelText_Flag</a> (or both) at compile time.
### Example
-<div><fiddle-embed name="4606ae1be792d6bc46d496432f050ee9"><div>Four commas are drawn normally and with combinations of <a href='#Paint_LCD_Text'>LCD_Text</a> <a href='#Paint_LCD_Text'>and</a> <a href='#Paint_Subpixel_Text'>Subpixel_Text</a>.
-<a href='#Paint_Subpixel_Text'>When</a> <a href='#Paint_Subpixel_Text'>Subpixel_Text</a> <a href='#Paint_Subpixel_Text'>is</a> <a href='#Paint_Subpixel_Text'>disabled</a>, <a href='#Paint_Subpixel_Text'>the</a> <a href='#Paint_Subpixel_Text'>comma</a> <a href='undocumented#Glyph'>Glyphs</a> <a href='undocumented#Glyph'>are</a> <a href='undocumented#Glyph'>identical</a>, <a href='undocumented#Glyph'>but</a> <a href='undocumented#Glyph'>not</a> <a href='undocumented#Glyph'>evenly</a> <a href='undocumented#Glyph'>spaced</a>.
-<a href='undocumented#Glyph'>When</a> <a href='#Paint_Subpixel_Text'>Subpixel_Text</a> <a href='#Paint_Subpixel_Text'>is</a> <a href='#Paint_Subpixel_Text'>enabled</a>, <a href='#Paint_Subpixel_Text'>the</a> <a href='#Paint_Subpixel_Text'>comma</a> <a href='undocumented#Glyph'>Glyphs</a> <a href='undocumented#Glyph'>are</a> <a href='undocumented#Glyph'>unique</a>, <a href='undocumented#Glyph'>but</a> <a href='undocumented#Glyph'>appear</a> <a href='undocumented#Glyph'>evenly</a> <a href='undocumented#Glyph'>spaced</a>.
+<div><fiddle-embed name="4606ae1be792d6bc46d496432f050ee9"><div>Four commas are drawn normally and with combinations of <a href='#Paint_LCD_Text'>LCD_Text</a> and <a href='#Paint_Subpixel_Text'>Subpixel_Text</a>.
+When <a href='#Paint_Subpixel_Text'>Subpixel_Text</a> is disabled, the comma <a href='undocumented#Glyph'>Glyphs</a> are identical, but not evenly spaced.
+When <a href='#Paint_Subpixel_Text'>Subpixel_Text</a> is enabled, the comma <a href='undocumented#Glyph'>Glyphs</a> are unique, but appear evenly spaced.
</div></fiddle-embed></div>
<a name='Linear_Text'></a>
-<a href='#Paint_Linear_Text'>Linear_Text</a> <a href='#Paint_Linear_Text'>selects</a> <a href='#Paint_Linear_Text'>whether</a> <a href='undocumented#Text'>text</a> <a href='undocumented#Text'>is</a> <a href='undocumented#Text'>rendered</a> <a href='undocumented#Text'>as</a> <a href='undocumented#Text'>a</a> <a href='undocumented#Glyph'>Glyph</a> <a href='undocumented#Glyph'>or</a> <a href='undocumented#Glyph'>as</a> <a href='undocumented#Glyph'>a</a> <a href='SkPath_Reference#Path'>Path</a>.
-<a href='SkPath_Reference#Path'>If</a> <a href='#SkPaint_kLinearText_Flag'>kLinearText_Flag</a> <a href='#SkPaint_kLinearText_Flag'>is</a> <a href='#SkPaint_kLinearText_Flag'>set</a>, <a href='#SkPaint_kLinearText_Flag'>it</a> <a href='#SkPaint_kLinearText_Flag'>has</a> <a href='#SkPaint_kLinearText_Flag'>the</a> <a href='#SkPaint_kLinearText_Flag'>same</a> <a href='#SkPaint_kLinearText_Flag'>effect</a> <a href='#SkPaint_kLinearText_Flag'>as</a> <a href='#SkPaint_kLinearText_Flag'>setting</a> <a href='#SkPaint_Hinting'>Hinting</a> <a href='#SkPaint_Hinting'>to</a> <a href='undocumented#SkFontHinting'>SkFontHinting</a>::<a href='#SkFontHinting_kNormal'>kNormal</a>.
-<a href='#SkFontHinting_kNormal'>If</a> <a href='#SkPaint_kLinearText_Flag'>kLinearText_Flag</a> <a href='#SkPaint_kLinearText_Flag'>is</a> <a href='#SkPaint_kLinearText_Flag'>clear</a>, <a href='#SkPaint_kLinearText_Flag'>it</a> <a href='#SkPaint_kLinearText_Flag'>is</a> <a href='#SkPaint_kLinearText_Flag'>the</a> <a href='#SkPaint_kLinearText_Flag'>same</a> <a href='#SkPaint_kLinearText_Flag'>as</a> <a href='#SkPaint_kLinearText_Flag'>setting</a> <a href='#SkPaint_Hinting'>Hinting</a> <a href='#SkPaint_Hinting'>to</a> <a href='undocumented#SkFontHinting'>SkFontHinting</a>::<a href='#SkFontHinting_kNone'>kNone</a>.
+<a href='#Paint_Linear_Text'>Linear_Text</a> selects whether <a href='undocumented#Text'>text</a> is rendered as a <a href='undocumented#Glyph'>Glyph</a> or as a <a href='SkPath_Reference#Path'>Path</a>.
+If <a href='#SkPaint_kLinearText_Flag'>kLinearText_Flag</a> is set, it has the same effect as setting Hinting to <a href='undocumented#SkFontHinting'>SkFontHinting</a>::<a href='#SkFontHinting_kNormal'>kNormal</a>.
+If <a href='#SkPaint_kLinearText_Flag'>kLinearText_Flag</a> is clear, it is the same as setting Hinting to <a href='undocumented#SkFontHinting'>SkFontHinting</a>::<a href='#SkFontHinting_kNone'>kNone</a>.
<a name='SkPaint_isLinearText'></a>
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-bool <a href='#SkPaint_isLinearText'>isLinearText</a>() <a href='#SkPaint_isLinearText'>const</a>
+bool <a href='#SkPaint_isLinearText'>isLinearText</a>() const
</pre>
-Returns true if <a href='undocumented#Text'>text</a> <a href='undocumented#Text'>is</a> <a href='undocumented#Text'>converted</a> <a href='undocumented#Text'>to</a> <a href='SkPath_Reference#SkPath'>SkPath</a> <a href='SkPath_Reference#SkPath'>before</a> <a href='SkPath_Reference#SkPath'>drawing</a> <a href='SkPath_Reference#SkPath'>and</a> <a href='SkPath_Reference#SkPath'>measuring</a>.
+Returns true if <a href='undocumented#Text'>text</a> is converted to <a href='SkPath_Reference#SkPath'>SkPath</a> before drawing and measuring.
-Equivalent to <a href='#SkPaint_getFlags'>getFlags</a>() <a href='#SkPaint_getFlags'>masked</a> <a href='#SkPaint_getFlags'>with</a> <a href='#SkPaint_kLinearText_Flag'>kLinearText_Flag</a>.
+Equivalent to <a href='#SkPaint_getFlags'>getFlags</a>() masked with <a href='#SkPaint_kLinearText_Flag'>kLinearText_Flag</a>.
### Return Value
-<a href='#SkPaint_kLinearText_Flag'>kLinearText_Flag</a> <a href='#SkPaint_kLinearText_Flag'>state</a>
+<a href='#SkPaint_kLinearText_Flag'>kLinearText_Flag</a> state
### Example
@@ -1204,21 +1085,21 @@
### See Also
-<a href='#SkPaint_setLinearText'>setLinearText</a> <a href='#SkPaint_Hinting'>Hinting</a>
+<a href='#SkPaint_setLinearText'>setLinearText</a> Hinting
<a name='SkPaint_setLinearText'></a>
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-void <a href='#SkPaint_setLinearText'>setLinearText</a>(<a href='#SkPaint_setLinearText'>bool</a> <a href='#SkPaint_setLinearText'>linearText</a>)
+void <a href='#SkPaint_setLinearText'>setLinearText</a>(bool linearText)
</pre>
-Returns true if <a href='undocumented#Text'>text</a> <a href='undocumented#Text'>is</a> <a href='undocumented#Text'>converted</a> <a href='undocumented#Text'>to</a> <a href='SkPath_Reference#SkPath'>SkPath</a> <a href='SkPath_Reference#SkPath'>before</a> <a href='SkPath_Reference#SkPath'>drawing</a> <a href='SkPath_Reference#SkPath'>and</a> <a href='SkPath_Reference#SkPath'>measuring</a>.
-By default, <a href='#SkPaint_kLinearText_Flag'>kLinearText_Flag</a> <a href='#SkPaint_kLinearText_Flag'>is</a> <a href='#SkPaint_kLinearText_Flag'>clear</a>.
+Returns true if <a href='undocumented#Text'>text</a> is converted to <a href='SkPath_Reference#SkPath'>SkPath</a> before drawing and measuring.
+By default, <a href='#SkPaint_kLinearText_Flag'>kLinearText_Flag</a> is clear.
-Sets <a href='#SkPaint_kLinearText_Flag'>kLinearText_Flag</a> <a href='#SkPaint_kLinearText_Flag'>if</a> <a href='#SkPaint_setLinearText_linearText'>linearText</a> <a href='#SkPaint_setLinearText_linearText'>is</a> <a href='#SkPaint_setLinearText_linearText'>true</a>.
-Clears <a href='#SkPaint_kLinearText_Flag'>kLinearText_Flag</a> <a href='#SkPaint_kLinearText_Flag'>if</a> <a href='#SkPaint_setLinearText_linearText'>linearText</a> <a href='#SkPaint_setLinearText_linearText'>is</a> <a href='#SkPaint_setLinearText_linearText'>false</a>.
+Sets <a href='#SkPaint_kLinearText_Flag'>kLinearText_Flag</a> if <a href='#SkPaint_setLinearText_linearText'>linearText</a> is true.
+Clears <a href='#SkPaint_kLinearText_Flag'>kLinearText_Flag</a> if <a href='#SkPaint_setLinearText_linearText'>linearText</a> is false.
### Parameters
@@ -1233,29 +1114,29 @@
### See Also
-<a href='#SkPaint_isLinearText'>isLinearText</a> <a href='#SkPaint_Hinting'>Hinting</a>
+<a href='#SkPaint_isLinearText'>isLinearText</a> Hinting
<a name='Subpixel_Text'></a>
-<a href='#SkPaint_Flags'>Flags</a> <a href='#SkPaint_kSubpixelText_Flag'>kSubpixelText_Flag</a> <a href='#SkPaint_kSubpixelText_Flag'>uses</a> <a href='#SkPaint_kSubpixelText_Flag'>the</a> <a href='undocumented#Pixel'>pixel</a> <a href='undocumented#Pixel'>transparency</a> <a href='undocumented#Pixel'>to</a> <a href='undocumented#Pixel'>represent</a> <a href='undocumented#Pixel'>a</a> <a href='undocumented#Pixel'>fractional</a> <a href='undocumented#Pixel'>offset</a>.
-<a href='undocumented#Pixel'>As</a> <a href='undocumented#Pixel'>the</a> <a href='undocumented#Pixel'>opaqueness</a>
-<a href='undocumented#Pixel'>of</a> <a href='undocumented#Pixel'>the</a> <a href='SkColor_Reference#Color'>color</a> <a href='SkColor_Reference#Color'>increases</a>, <a href='SkColor_Reference#Color'>the</a> <a href='SkColor_Reference#Color'>edge</a> <a href='SkColor_Reference#Color'>of</a> <a href='SkColor_Reference#Color'>the</a> <a href='undocumented#Glyph'>glyph</a> <a href='undocumented#Glyph'>appears</a> <a href='undocumented#Glyph'>to</a> <a href='undocumented#Glyph'>move</a> <a href='undocumented#Glyph'>towards</a> <a href='undocumented#Glyph'>the</a> <a href='undocumented#Glyph'>outside</a> <a href='undocumented#Glyph'>of</a> <a href='undocumented#Glyph'>the</a> <a href='undocumented#Pixel'>pixel</a>.
+<a href='#SkPaint_Flags'>Flags</a> <a href='#SkPaint_kSubpixelText_Flag'>kSubpixelText_Flag</a> uses the <a href='undocumented#Pixel'>pixel</a> transparency to represent a fractional offset.
+As the opaqueness
+of the <a href='SkColor_Reference#Color'>color</a> increases, the edge of the <a href='undocumented#Glyph'>glyph</a> appears to move towards the outside of the <a href='undocumented#Pixel'>pixel</a>.
<a name='SkPaint_isSubpixelText'></a>
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-bool <a href='#SkPaint_isSubpixelText'>isSubpixelText</a>() <a href='#SkPaint_isSubpixelText'>const</a>
+bool <a href='#SkPaint_isSubpixelText'>isSubpixelText</a>() const
</pre>
-Returns true if <a href='undocumented#Glyph'>glyphs</a> <a href='undocumented#Glyph'>at</a> <a href='undocumented#Glyph'>different</a> <a href='undocumented#Glyph'>sub-pixel</a> <a href='undocumented#Glyph'>positions</a> <a href='undocumented#Glyph'>may</a> <a href='undocumented#Glyph'>differ</a> <a href='undocumented#Glyph'>on</a> <a href='undocumented#Pixel'>pixel</a> <a href='undocumented#Pixel'>edge</a> <a href='undocumented#Pixel'>coverage</a>.
+Returns true if <a href='undocumented#Glyph'>glyphs</a> at different sub-pixel positions may differ on <a href='undocumented#Pixel'>pixel</a> edge coverage.
-Equivalent to <a href='#SkPaint_getFlags'>getFlags</a>() <a href='#SkPaint_getFlags'>masked</a> <a href='#SkPaint_getFlags'>with</a> <a href='#SkPaint_kSubpixelText_Flag'>kSubpixelText_Flag</a>.
+Equivalent to <a href='#SkPaint_getFlags'>getFlags</a>() masked with <a href='#SkPaint_kSubpixelText_Flag'>kSubpixelText_Flag</a>.
### Return Value
-<a href='#SkPaint_kSubpixelText_Flag'>kSubpixelText_Flag</a> <a href='#SkPaint_kSubpixelText_Flag'>state</a>
+<a href='#SkPaint_kSubpixelText_Flag'>kSubpixelText_Flag</a> state
### Example
@@ -1275,13 +1156,13 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-void <a href='#SkPaint_setSubpixelText'>setSubpixelText</a>(<a href='#SkPaint_setSubpixelText'>bool</a> <a href='#SkPaint_setSubpixelText'>subpixelText</a>)
+void <a href='#SkPaint_setSubpixelText'>setSubpixelText</a>(bool subpixelText)
</pre>
-Requests, but does not require, that <a href='undocumented#Glyph'>glyphs</a> <a href='undocumented#Glyph'>respect</a> <a href='undocumented#Glyph'>sub-pixel</a> <a href='undocumented#Glyph'>positioning</a>.
+Requests, but does not require, that <a href='undocumented#Glyph'>glyphs</a> respect sub-pixel positioning.
-Sets <a href='#SkPaint_kSubpixelText_Flag'>kSubpixelText_Flag</a> <a href='#SkPaint_kSubpixelText_Flag'>if</a> <a href='#SkPaint_setSubpixelText_subpixelText'>subpixelText</a> <a href='#SkPaint_setSubpixelText_subpixelText'>is</a> <a href='#SkPaint_setSubpixelText_subpixelText'>true</a>.
-Clears <a href='#SkPaint_kSubpixelText_Flag'>kSubpixelText_Flag</a> <a href='#SkPaint_kSubpixelText_Flag'>if</a> <a href='#SkPaint_setSubpixelText_subpixelText'>subpixelText</a> <a href='#SkPaint_setSubpixelText_subpixelText'>is</a> <a href='#SkPaint_setSubpixelText_subpixelText'>false</a>.
+Sets <a href='#SkPaint_kSubpixelText_Flag'>kSubpixelText_Flag</a> if <a href='#SkPaint_setSubpixelText_subpixelText'>subpixelText</a> is true.
+Clears <a href='#SkPaint_kSubpixelText_Flag'>kSubpixelText_Flag</a> if <a href='#SkPaint_setSubpixelText_subpixelText'>subpixelText</a> is false.
### Parameters
@@ -1304,27 +1185,27 @@
<a name='LCD_Text'></a>
-When set, <a href='#SkPaint_Flags'>Flags</a> <a href='#SkPaint_kLCDRenderText_Flag'>kLCDRenderText_Flag</a> <a href='#SkPaint_kLCDRenderText_Flag'>takes</a> <a href='#SkPaint_kLCDRenderText_Flag'>advantage</a> <a href='#SkPaint_kLCDRenderText_Flag'>of</a> <a href='#SkPaint_kLCDRenderText_Flag'>the</a> <a href='#SkPaint_kLCDRenderText_Flag'>organization</a> <a href='#SkPaint_kLCDRenderText_Flag'>of</a> <a href='#SkPaint_kLCDRenderText_Flag'>RGB</a> <a href='#SkPaint_kLCDRenderText_Flag'>stripes</a> <a href='#SkPaint_kLCDRenderText_Flag'>that</a>
-<a href='#SkPaint_kLCDRenderText_Flag'>create</a> <a href='#SkPaint_kLCDRenderText_Flag'>a</a> <a href='SkColor_Reference#Color'>color</a>, <a href='SkColor_Reference#Color'>and</a> <a href='SkColor_Reference#Color'>relies</a>
-<a href='SkColor_Reference#Color'>on</a> <a href='SkColor_Reference#Color'>the</a> <a href='SkColor_Reference#Color'>small</a> <a href='undocumented#Size'>size</a> <a href='undocumented#Size'>of</a> <a href='undocumented#Size'>the</a> <a href='undocumented#Size'>stripe</a> <a href='undocumented#Size'>and</a> <a href='undocumented#Size'>visual</a> <a href='undocumented#Size'>perception</a> <a href='undocumented#Size'>to</a> <a href='undocumented#Size'>make</a> <a href='undocumented#Size'>the</a> <a href='SkColor_Reference#Color'>color</a> <a href='SkColor_Reference#Color'>fringing</a> <a href='SkColor_Reference#Color'>imperceptible</a>.
-<a href='#Paint_LCD_Text'>LCD_Text</a> <a href='#Paint_LCD_Text'>can</a> <a href='#Paint_LCD_Text'>be</a> <a href='#Paint_LCD_Text'>enabled</a> <a href='#Paint_LCD_Text'>on</a> <a href='#Paint_LCD_Text'>devices</a> <a href='#Paint_LCD_Text'>that</a> <a href='#Paint_LCD_Text'>orient</a> <a href='#Paint_LCD_Text'>stripes</a> <a href='#Paint_LCD_Text'>horizontally</a> <a href='#Paint_LCD_Text'>or</a> <a href='#Paint_LCD_Text'>vertically</a>, <a href='#Paint_LCD_Text'>and</a> <a href='#Paint_LCD_Text'>that</a> <a href='#Paint_LCD_Text'>order</a>
-<a href='#Paint_LCD_Text'>the</a> <a href='SkColor_Reference#Color'>color</a> <a href='SkColor_Reference#Color'>components</a> <a href='SkColor_Reference#Color'>as</a> <a href='SkColor_Reference#Color'>RGB</a> <a href='SkColor_Reference#Color'>or</a> <a href='SkColor_Reference#Color'>BGR</a>.
+When set, <a href='#SkPaint_Flags'>Flags</a> <a href='#SkPaint_kLCDRenderText_Flag'>kLCDRenderText_Flag</a> takes advantage of the organization of RGB stripes that
+create a <a href='SkColor_Reference#Color'>color</a>, and relies
+on the small <a href='undocumented#Size'>size</a> of the stripe and visual perception to make the <a href='SkColor_Reference#Color'>color</a> fringing imperceptible.
+<a href='#Paint_LCD_Text'>LCD_Text</a> can be enabled on devices that orient stripes horizontally or vertically, and that order
+the <a href='SkColor_Reference#Color'>color</a> components as RGB or BGR.
<a name='SkPaint_isLCDRenderText'></a>
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-bool <a href='#SkPaint_isLCDRenderText'>isLCDRenderText</a>() <a href='#SkPaint_isLCDRenderText'>const</a>
+bool <a href='#SkPaint_isLCDRenderText'>isLCDRenderText</a>() const
</pre>
-Returns true if <a href='undocumented#Glyph'>glyphs</a> <a href='undocumented#Glyph'>may</a> <a href='undocumented#Glyph'>use</a> <a href='undocumented#Glyph'>LCD</a> <a href='undocumented#Glyph'>striping</a> <a href='undocumented#Glyph'>to</a> <a href='undocumented#Glyph'>improve</a> <a href='undocumented#Glyph'>glyph</a> <a href='undocumented#Glyph'>edges</a>.
+Returns true if <a href='undocumented#Glyph'>glyphs</a> may use LCD striping to improve <a href='undocumented#Glyph'>glyph</a> edges.
-Returns true if <a href='SkPaint_Reference#SkPaint'>SkPaint</a>::<a href='#SkPaint_Flags'>Flags</a> <a href='#SkPaint_kLCDRenderText_Flag'>kLCDRenderText_Flag</a> <a href='#SkPaint_kLCDRenderText_Flag'>is</a> <a href='#SkPaint_kLCDRenderText_Flag'>set</a>.
+Returns true if <a href='SkPaint_Reference#SkPaint'>SkPaint</a>::<a href='#SkPaint_Flags'>Flags</a> <a href='#SkPaint_kLCDRenderText_Flag'>kLCDRenderText_Flag</a> is set.
### Return Value
-<a href='#SkPaint_kLCDRenderText_Flag'>kLCDRenderText_Flag</a> <a href='#SkPaint_kLCDRenderText_Flag'>state</a>
+<a href='#SkPaint_kLCDRenderText_Flag'>kLCDRenderText_Flag</a> state
### Example
@@ -1344,13 +1225,13 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-void <a href='#SkPaint_setLCDRenderText'>setLCDRenderText</a>(<a href='#SkPaint_setLCDRenderText'>bool</a> <a href='#SkPaint_setLCDRenderText'>lcdText</a>)
+void <a href='#SkPaint_setLCDRenderText'>setLCDRenderText</a>(bool lcdText)
</pre>
-Requests, but does not require, that <a href='undocumented#Glyph'>glyphs</a> <a href='undocumented#Glyph'>use</a> <a href='undocumented#Glyph'>LCD</a> <a href='undocumented#Glyph'>striping</a> <a href='undocumented#Glyph'>for</a> <a href='undocumented#Glyph'>glyph</a> <a href='undocumented#Glyph'>edges</a>.
+Requests, but does not require, that <a href='undocumented#Glyph'>glyphs</a> use LCD striping for <a href='undocumented#Glyph'>glyph</a> edges.
-Sets <a href='#SkPaint_kLCDRenderText_Flag'>kLCDRenderText_Flag</a> <a href='#SkPaint_kLCDRenderText_Flag'>if</a> <a href='#SkPaint_setLCDRenderText_lcdText'>lcdText</a> <a href='#SkPaint_setLCDRenderText_lcdText'>is</a> <a href='#SkPaint_setLCDRenderText_lcdText'>true</a>.
-Clears <a href='#SkPaint_kLCDRenderText_Flag'>kLCDRenderText_Flag</a> <a href='#SkPaint_kLCDRenderText_Flag'>if</a> <a href='#SkPaint_setLCDRenderText_lcdText'>lcdText</a> <a href='#SkPaint_setLCDRenderText_lcdText'>is</a> <a href='#SkPaint_setLCDRenderText_lcdText'>false</a>.
+Sets <a href='#SkPaint_kLCDRenderText_Flag'>kLCDRenderText_Flag</a> if <a href='#SkPaint_setLCDRenderText_lcdText'>lcdText</a> is true.
+Clears <a href='#SkPaint_kLCDRenderText_Flag'>kLCDRenderText_Flag</a> if <a href='#SkPaint_setLCDRenderText_lcdText'>lcdText</a> is false.
### Parameters
@@ -1375,18 +1256,18 @@
---
-<a href='#Paint_Font_Embedded_Bitmaps'>Font_Embedded_Bitmaps</a> <a href='#Paint_Font_Embedded_Bitmaps'>allows</a> <a href='#Paint_Font_Embedded_Bitmaps'>selecting</a> <a href='#Paint_Font_Embedded_Bitmaps'>custom</a> <a href='#Paint_Font_Embedded_Bitmaps'>sized</a> <a href='SkBitmap_Reference#Bitmap'>bitmap</a> <a href='undocumented#Glyph'>Glyphs</a>.
-<a href='#SkPaint_Flags'>Flags</a> <a href='#SkPaint_kEmbeddedBitmapText_Flag'>kEmbeddedBitmapText_Flag</a> <a href='#SkPaint_kEmbeddedBitmapText_Flag'>when</a> <a href='#SkPaint_kEmbeddedBitmapText_Flag'>set</a> <a href='#SkPaint_kEmbeddedBitmapText_Flag'>chooses</a> <a href='#SkPaint_kEmbeddedBitmapText_Flag'>an</a> <a href='#SkPaint_kEmbeddedBitmapText_Flag'>embedded</a> <a href='SkBitmap_Reference#Bitmap'>bitmap</a> <a href='undocumented#Glyph'>glyph</a> <a href='undocumented#Glyph'>over</a> <a href='undocumented#Glyph'>an</a> <a href='undocumented#Glyph'>outline</a> <a href='undocumented#Glyph'>contained</a>
-<a href='undocumented#Glyph'>in</a> <a href='undocumented#Glyph'>a</a> <a href='undocumented#Font'>font</a> <a href='undocumented#Font'>if</a> <a href='undocumented#Font'>the</a> <a href='undocumented#Font'>platform</a> <a href='undocumented#Font'>supports</a> <a href='undocumented#Font'>this</a> <a href='undocumented#Font'>option</a>.
+<a href='#Paint_Font_Embedded_Bitmaps'>Font_Embedded_Bitmaps</a> allows selecting custom sized <a href='SkBitmap_Reference#Bitmap'>bitmap</a> <a href='undocumented#Glyph'>Glyphs</a>.
+<a href='#SkPaint_Flags'>Flags</a> <a href='#SkPaint_kEmbeddedBitmapText_Flag'>kEmbeddedBitmapText_Flag</a> when set chooses an embedded <a href='SkBitmap_Reference#Bitmap'>bitmap</a> <a href='undocumented#Glyph'>glyph</a> over an outline contained
+in a <a href='undocumented#Font'>font</a> if the platform supports this option.
-<a href='undocumented#Font'>FreeType</a> <a href='undocumented#Font'>selects</a> <a href='undocumented#Font'>the</a> <a href='SkBitmap_Reference#Bitmap'>bitmap</a> <a href='undocumented#Glyph'>glyph</a> <a href='undocumented#Glyph'>if</a> <a href='undocumented#Glyph'>available</a> <a href='undocumented#Glyph'>when</a> <a href='#SkPaint_kEmbeddedBitmapText_Flag'>kEmbeddedBitmapText_Flag</a> <a href='#SkPaint_kEmbeddedBitmapText_Flag'>is</a> <a href='#SkPaint_kEmbeddedBitmapText_Flag'>set</a>, <a href='#SkPaint_kEmbeddedBitmapText_Flag'>and</a> <a href='#SkPaint_kEmbeddedBitmapText_Flag'>selects</a>
-<a href='#SkPaint_kEmbeddedBitmapText_Flag'>the</a> <a href='#SkPaint_kEmbeddedBitmapText_Flag'>outline</a> <a href='undocumented#Glyph'>glyph</a> <a href='undocumented#Glyph'>if</a> <a href='#SkPaint_kEmbeddedBitmapText_Flag'>kEmbeddedBitmapText_Flag</a> <a href='#SkPaint_kEmbeddedBitmapText_Flag'>is</a> <a href='#SkPaint_kEmbeddedBitmapText_Flag'>clear</a>.
-<a href='#SkPaint_kEmbeddedBitmapText_Flag'>Windows</a> <a href='#SkPaint_kEmbeddedBitmapText_Flag'>may</a> <a href='#SkPaint_kEmbeddedBitmapText_Flag'>select</a> <a href='#SkPaint_kEmbeddedBitmapText_Flag'>the</a> <a href='SkBitmap_Reference#Bitmap'>bitmap</a> <a href='undocumented#Glyph'>glyph</a> <a href='undocumented#Glyph'>but</a> <a href='undocumented#Glyph'>is</a> <a href='undocumented#Glyph'>not</a> <a href='undocumented#Glyph'>required</a> <a href='undocumented#Glyph'>to</a> <a href='undocumented#Glyph'>do</a> <a href='undocumented#Glyph'>so</a>.
-<a href='#OS_X'>OS_X</a> <a href='#OS_X'>and</a> <a href='#OS_X'>iOS</a> <a href='#OS_X'>do</a> <a href='#OS_X'>not</a> <a href='#OS_X'>support</a> <a href='#OS_X'>this</a> <a href='#OS_X'>option</a>.
+FreeType selects the <a href='SkBitmap_Reference#Bitmap'>bitmap</a> <a href='undocumented#Glyph'>glyph</a> if available when <a href='#SkPaint_kEmbeddedBitmapText_Flag'>kEmbeddedBitmapText_Flag</a> is set, and selects
+the outline <a href='undocumented#Glyph'>glyph</a> if <a href='#SkPaint_kEmbeddedBitmapText_Flag'>kEmbeddedBitmapText_Flag</a> is clear.
+Windows may select the <a href='SkBitmap_Reference#Bitmap'>bitmap</a> <a href='undocumented#Glyph'>glyph</a> but is not required to do so.
+<a href='#OS_X'>OS_X</a> and iOS do not support this option.
-<a href='#Paint_Font_Embedded_Bitmaps'>Font_Embedded_Bitmaps</a> <a href='#Paint_Font_Embedded_Bitmaps'>is</a> <a href='#Paint_Font_Embedded_Bitmaps'>disabled</a> <a href='#Paint_Font_Embedded_Bitmaps'>by</a> <a href='#Paint_Font_Embedded_Bitmaps'>default</a>.
-<a href='#Paint_Font_Embedded_Bitmaps'>Font_Embedded_Bitmaps</a> <a href='#Paint_Font_Embedded_Bitmaps'>can</a> <a href='#Paint_Font_Embedded_Bitmaps'>be</a> <a href='#Paint_Font_Embedded_Bitmaps'>enabled</a> <a href='#Paint_Font_Embedded_Bitmaps'>by</a> <a href='#Paint_Font_Embedded_Bitmaps'>default</a> <a href='#Paint_Font_Embedded_Bitmaps'>by</a> <a href='#Paint_Font_Embedded_Bitmaps'>setting</a> <a href='undocumented#SkPaintDefaults_Flags'>SkPaintDefaults_Flags</a> <a href='undocumented#SkPaintDefaults_Flags'>to</a>
-<a href='#SkPaint_kEmbeddedBitmapText_Flag'>kEmbeddedBitmapText_Flag</a> <a href='#SkPaint_kEmbeddedBitmapText_Flag'>at</a> <a href='#SkPaint_kEmbeddedBitmapText_Flag'>compile</a> <a href='#SkPaint_kEmbeddedBitmapText_Flag'>time</a>.
+<a href='#Paint_Font_Embedded_Bitmaps'>Font_Embedded_Bitmaps</a> is disabled by default.
+<a href='#Paint_Font_Embedded_Bitmaps'>Font_Embedded_Bitmaps</a> can be enabled by default by setting <a href='undocumented#SkPaintDefaults_Flags'>SkPaintDefaults_Flags</a> to
+<a href='#SkPaint_kEmbeddedBitmapText_Flag'>kEmbeddedBitmapText_Flag</a> at compile time.
### Example
@@ -1418,16 +1299,16 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-bool <a href='#SkPaint_isEmbeddedBitmapText'>isEmbeddedBitmapText</a>() <a href='#SkPaint_isEmbeddedBitmapText'>const</a>
+bool <a href='#SkPaint_isEmbeddedBitmapText'>isEmbeddedBitmapText</a>() const
</pre>
-Returns true if <a href='undocumented#Font'>font</a> <a href='undocumented#Font'>engine</a> <a href='undocumented#Font'>may</a> <a href='undocumented#Font'>return</a> <a href='undocumented#Glyph'>glyphs</a> <a href='undocumented#Glyph'>from</a> <a href='undocumented#Font'>font</a> <a href='SkBitmap_Reference#Bitmap'>bitmaps</a> <a href='SkBitmap_Reference#Bitmap'>instead</a> <a href='SkBitmap_Reference#Bitmap'>of</a> <a href='SkBitmap_Reference#Bitmap'>from</a> <a href='SkBitmap_Reference#Bitmap'>outlines</a>.
+Returns true if <a href='undocumented#Font'>font</a> engine may return <a href='undocumented#Glyph'>glyphs</a> from <a href='undocumented#Font'>font</a> <a href='SkBitmap_Reference#Bitmap'>bitmaps</a> instead of from outlines.
-Equivalent to <a href='#SkPaint_getFlags'>getFlags</a>() <a href='#SkPaint_getFlags'>masked</a> <a href='#SkPaint_getFlags'>with</a> <a href='#SkPaint_kEmbeddedBitmapText_Flag'>kEmbeddedBitmapText_Flag</a>.
+Equivalent to <a href='#SkPaint_getFlags'>getFlags</a>() masked with <a href='#SkPaint_kEmbeddedBitmapText_Flag'>kEmbeddedBitmapText_Flag</a>.
### Return Value
-<a href='#SkPaint_kEmbeddedBitmapText_Flag'>kEmbeddedBitmapText_Flag</a> <a href='#SkPaint_kEmbeddedBitmapText_Flag'>state</a>
+<a href='#SkPaint_kEmbeddedBitmapText_Flag'>kEmbeddedBitmapText_Flag</a> state
### Example
@@ -1447,13 +1328,13 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-void <a href='#SkPaint_setEmbeddedBitmapText'>setEmbeddedBitmapText</a>(<a href='#SkPaint_setEmbeddedBitmapText'>bool</a> <a href='#SkPaint_setEmbeddedBitmapText'>useEmbeddedBitmapText</a>)
+void <a href='#SkPaint_setEmbeddedBitmapText'>setEmbeddedBitmapText</a>(bool useEmbeddedBitmapText)
</pre>
-Requests, but does not require, to use <a href='SkBitmap_Reference#Bitmap'>bitmaps</a> <a href='SkBitmap_Reference#Bitmap'>in</a> <a href='SkBitmap_Reference#Bitmap'>fonts</a> <a href='SkBitmap_Reference#Bitmap'>instead</a> <a href='SkBitmap_Reference#Bitmap'>of</a> <a href='SkBitmap_Reference#Bitmap'>outlines</a>.
+Requests, but does not require, to use <a href='SkBitmap_Reference#Bitmap'>bitmaps</a> in fonts instead of outlines.
-Sets <a href='#SkPaint_kEmbeddedBitmapText_Flag'>kEmbeddedBitmapText_Flag</a> <a href='#SkPaint_kEmbeddedBitmapText_Flag'>if</a> <a href='#SkPaint_setEmbeddedBitmapText_useEmbeddedBitmapText'>useEmbeddedBitmapText</a> <a href='#SkPaint_setEmbeddedBitmapText_useEmbeddedBitmapText'>is</a> <a href='#SkPaint_setEmbeddedBitmapText_useEmbeddedBitmapText'>true</a>.
-Clears <a href='#SkPaint_kEmbeddedBitmapText_Flag'>kEmbeddedBitmapText_Flag</a> <a href='#SkPaint_kEmbeddedBitmapText_Flag'>if</a> <a href='#SkPaint_setEmbeddedBitmapText_useEmbeddedBitmapText'>useEmbeddedBitmapText</a> <a href='#SkPaint_setEmbeddedBitmapText_useEmbeddedBitmapText'>is</a> <a href='#SkPaint_setEmbeddedBitmapText_useEmbeddedBitmapText'>false</a>.
+Sets <a href='#SkPaint_kEmbeddedBitmapText_Flag'>kEmbeddedBitmapText_Flag</a> if <a href='#SkPaint_setEmbeddedBitmapText_useEmbeddedBitmapText'>useEmbeddedBitmapText</a> is true.
+Clears <a href='#SkPaint_kEmbeddedBitmapText_Flag'>kEmbeddedBitmapText_Flag</a> if <a href='#SkPaint_setEmbeddedBitmapText_useEmbeddedBitmapText'>useEmbeddedBitmapText</a> is false.
### Parameters
@@ -1476,30 +1357,30 @@
<a name='Automatic_Hinting'></a>
-If <a href='#SkPaint_Hinting'>Hinting</a> <a href='#SkPaint_Hinting'>is</a> <a href='#SkPaint_Hinting'>set</a> <a href='#SkPaint_Hinting'>to</a> <a href='undocumented#SkFontHinting'>SkFontHinting</a>::<a href='#SkFontHinting_kNormal'>kNormal</a> <a href='#SkFontHinting_kNormal'>or</a> <a href='undocumented#SkFontHinting'>SkFontHinting</a>::<a href='#SkFontHinting_kFull'>kFull</a>, <a href='#Paint_Automatic_Hinting'>Automatic_Hinting</a>
-<a href='#Paint_Automatic_Hinting'>instructs</a> <a href='#Paint_Automatic_Hinting'>the</a> <a href='#Font_Manager'>Font_Manager</a> <a href='#Font_Manager'>to</a> <a href='#Font_Manager'>always</a> <a href='#Font_Manager'>hint</a> <a href='undocumented#Glyph'>Glyphs</a>.
-<a href='#Paint_Automatic_Hinting'>Automatic_Hinting</a> <a href='#Paint_Automatic_Hinting'>has</a> <a href='#Paint_Automatic_Hinting'>no</a> <a href='#Paint_Automatic_Hinting'>effect</a> <a href='#Paint_Automatic_Hinting'>if</a> <a href='#SkPaint_Hinting'>Hinting</a> <a href='#SkPaint_Hinting'>is</a> <a href='#SkPaint_Hinting'>set</a> <a href='#SkPaint_Hinting'>to</a> <a href='#SkPaint_kNo_Hinting'>kNo_Hinting</a> <a href='#SkPaint_kNo_Hinting'>or</a>
-<a href='#SkPaint_kSlight_Hinting'>kSlight_Hinting</a>.
+If Hinting is set to <a href='undocumented#SkFontHinting'>SkFontHinting</a>::<a href='#SkFontHinting_kNormal'>kNormal</a> or <a href='undocumented#SkFontHinting'>SkFontHinting</a>::<a href='#SkFontHinting_kFull'>kFull</a>, <a href='#Paint_Automatic_Hinting'>Automatic_Hinting</a>
+instructs the <a href='#Font_Manager'>Font_Manager</a> to always hint <a href='undocumented#Glyph'>Glyphs</a>.
+<a href='#Paint_Automatic_Hinting'>Automatic_Hinting</a> has no effect if Hinting is set to <a href='undocumented#SkFontHinting'>SkFontHinting</a>::<a href='#SkFontHinting_kNone'>kNone</a> or
+<a href='undocumented#SkFontHinting'>SkFontHinting</a>::<a href='#SkFontHinting_kSlight'>kSlight</a>.
-<a href='#Paint_Automatic_Hinting'>Automatic_Hinting</a> <a href='#Paint_Automatic_Hinting'>only</a> <a href='#Paint_Automatic_Hinting'>affects</a> <a href='#Paint_Automatic_Hinting'>platforms</a> <a href='#Paint_Automatic_Hinting'>that</a> <a href='#Paint_Automatic_Hinting'>use</a> <a href='#Paint_Automatic_Hinting'>FreeType</a> <a href='#Paint_Automatic_Hinting'>as</a> <a href='#Paint_Automatic_Hinting'>the</a> <a href='#Font_Manager'>Font_Manager</a>.
+<a href='#Paint_Automatic_Hinting'>Automatic_Hinting</a> only affects platforms that use FreeType as the <a href='#Font_Manager'>Font_Manager</a>.
<a name='SkPaint_isAutohinted'></a>
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-bool <a href='#SkPaint_isAutohinted'>isAutohinted</a>() <a href='#SkPaint_isAutohinted'>const</a>
+bool <a href='#SkPaint_isAutohinted'>isAutohinted</a>() const
</pre>
-Returns true if <a href='SkPaint_Reference#SkPaint'>SkPaint</a>::<a href='#SkPaint_Hinting'>Hinting</a> <a href='#SkPaint_Hinting'>is</a> <a href='#SkPaint_Hinting'>set</a> <a href='#SkPaint_Hinting'>to</a> <a href='#SkPaint_kNormal_Hinting'>kNormal_Hinting</a> <a href='#SkPaint_kNormal_Hinting'>or</a> <a href='#SkPaint_kFull_Hinting'>kFull_Hinting</a>, <a href='#SkPaint_kFull_Hinting'>and</a> <a href='#SkPaint_kFull_Hinting'>if</a>
-platform uses FreeType as the <a href='undocumented#Font'>font</a> <a href='undocumented#Font'>manager</a>. <a href='undocumented#Font'>If</a> <a href='undocumented#Font'>true</a>, <a href='undocumented#Font'>instructs</a>
-the <a href='undocumented#Font'>font</a> <a href='undocumented#Font'>manager</a> <a href='undocumented#Font'>to</a> <a href='undocumented#Font'>always</a> <a href='undocumented#Font'>hint</a> <a href='undocumented#Glyph'>glyphs</a>.
+Returns true if <a href='SkPaint_Reference#SkPaint'>SkPaint</a>::Hinting is set to <a href='undocumented#SkFontHinting'>SkFontHinting</a>::<a href='#SkFontHinting_kNormal'>kNormal</a> or
+<a href='undocumented#SkFontHinting'>SkFontHinting</a>::<a href='#SkFontHinting_kFull'>kFull</a>, and if platform uses FreeType as the <a href='undocumented#Font'>font</a> manager.
+If true, instructs the <a href='undocumented#Font'>font</a> manager to always hint <a href='undocumented#Glyph'>glyphs</a>.
-Equivalent to <a href='#SkPaint_getFlags'>getFlags</a>() <a href='#SkPaint_getFlags'>masked</a> <a href='#SkPaint_getFlags'>with</a> <a href='#SkPaint_kAutoHinting_Flag'>kAutoHinting_Flag</a>.
+Equivalent to <a href='#SkPaint_getFlags'>getFlags</a>() masked with <a href='#SkPaint_kAutoHinting_Flag'>kAutoHinting_Flag</a>.
### Return Value
-<a href='#SkPaint_kAutoHinting_Flag'>kAutoHinting_Flag</a> <a href='#SkPaint_kAutoHinting_Flag'>state</a>
+<a href='#SkPaint_kAutoHinting_Flag'>kAutoHinting_Flag</a> state
### Example
@@ -1516,26 +1397,26 @@
### See Also
-<a href='#SkPaint_setAutohinted'>setAutohinted</a> <a href='#SkPaint_Hinting'>Hinting</a>
+<a href='#SkPaint_setAutohinted'>setAutohinted</a> Hinting
<a name='SkPaint_setAutohinted'></a>
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-void <a href='#SkPaint_setAutohinted'>setAutohinted</a>(<a href='#SkPaint_setAutohinted'>bool</a> <a href='#SkPaint_setAutohinted'>useAutohinter</a>)
+void <a href='#SkPaint_setAutohinted'>setAutohinted</a>(bool useAutohinter)
</pre>
Sets whether to always hint <a href='undocumented#Glyph'>glyphs</a>.
-If <a href='SkPaint_Reference#SkPaint'>SkPaint</a>::<a href='#SkPaint_Hinting'>Hinting</a> <a href='#SkPaint_Hinting'>is</a> <a href='#SkPaint_Hinting'>set</a> <a href='#SkPaint_Hinting'>to</a> <a href='#SkPaint_kNormal_Hinting'>kNormal_Hinting</a> <a href='#SkPaint_kNormal_Hinting'>or</a> <a href='#SkPaint_kFull_Hinting'>kFull_Hinting</a> <a href='#SkPaint_kFull_Hinting'>and</a> <a href='#SkPaint_setAutohinted_useAutohinter'>useAutohinter</a> <a href='#SkPaint_setAutohinted_useAutohinter'>is</a> <a href='#SkPaint_setAutohinted_useAutohinter'>set</a>,
-instructs the <a href='undocumented#Font_Manager'>font manager</a> <a href='undocumented#Font'>to</a> <a href='undocumented#Font'>always</a> <a href='undocumented#Font'>hint</a> <a href='undocumented#Glyph'>glyphs</a>.
-<a href='SkPaint_Reference#Automatic_Hinting'>auto-hinting</a> <a href='SkPaint_Reference#Automatic_Hinting'>has</a> <a href='SkPaint_Reference#Automatic_Hinting'>no</a> <a href='SkPaint_Reference#Automatic_Hinting'>effect</a> <a href='SkPaint_Reference#Automatic_Hinting'>if</a> <a href='SkPaint_Reference#SkPaint'>SkPaint</a>::<a href='#SkPaint_Hinting'>Hinting</a> <a href='#SkPaint_Hinting'>is</a> <a href='#SkPaint_Hinting'>set</a> <a href='#SkPaint_Hinting'>to</a> <a href='#SkPaint_kNo_Hinting'>kNo_Hinting</a> <a href='#SkPaint_kNo_Hinting'>or</a>
-<a href='#SkPaint_kSlight_Hinting'>kSlight_Hinting</a>.
+If <a href='SkPaint_Reference#SkPaint'>SkPaint</a>::Hinting is set to <a href='undocumented#SkFontHinting'>SkFontHinting</a>::<a href='#SkFontHinting_kNormal'>kNormal</a> or <a href='undocumented#SkFontHinting'>SkFontHinting</a>::<a href='#SkFontHinting_kFull'>kFull</a>
+and <a href='#SkPaint_setAutohinted_useAutohinter'>useAutohinter</a> is set, instructs the <a href='undocumented#Font_Manager'>font manager</a> to always hint <a href='undocumented#Glyph'>glyphs</a>.
+<a href='SkPaint_Reference#Automatic_Hinting'>auto-hinting</a> has no effect if <a href='SkPaint_Reference#SkPaint'>SkPaint</a>::Hinting is set to <a href='undocumented#SkFontHinting'>SkFontHinting</a>::<a href='#SkFontHinting_kNone'>kNone</a> or
+<a href='undocumented#SkFontHinting'>SkFontHinting</a>::<a href='#SkFontHinting_kSlight'>kSlight</a>.
Only affects platforms that use FreeType as the <a href='undocumented#Font_Manager'>font manager</a>.
-Sets <a href='#SkPaint_kAutoHinting_Flag'>kAutoHinting_Flag</a> <a href='#SkPaint_kAutoHinting_Flag'>if</a> <a href='#SkPaint_setAutohinted_useAutohinter'>useAutohinter</a> <a href='#SkPaint_setAutohinted_useAutohinter'>is</a> <a href='#SkPaint_setAutohinted_useAutohinter'>true</a>.
-Clears <a href='#SkPaint_kAutoHinting_Flag'>kAutoHinting_Flag</a> <a href='#SkPaint_kAutoHinting_Flag'>if</a> <a href='#SkPaint_setAutohinted_useAutohinter'>useAutohinter</a> <a href='#SkPaint_setAutohinted_useAutohinter'>is</a> <a href='#SkPaint_setAutohinted_useAutohinter'>false</a>.
+Sets <a href='#SkPaint_kAutoHinting_Flag'>kAutoHinting_Flag</a> if <a href='#SkPaint_setAutohinted_useAutohinter'>useAutohinter</a> is true.
+Clears <a href='#SkPaint_kAutoHinting_Flag'>kAutoHinting_Flag</a> if <a href='#SkPaint_setAutohinted_useAutohinter'>useAutohinter</a> is false.
### Parameters
@@ -1550,24 +1431,24 @@
### See Also
-<a href='#SkPaint_isAutohinted'>isAutohinted</a> <a href='#SkPaint_Hinting'>Hinting</a>
+<a href='#SkPaint_isAutohinted'>isAutohinted</a> Hinting
<a name='Fake_Bold'></a>
---
-<a href='#Paint_Fake_Bold'>Fake_Bold</a> <a href='#Paint_Fake_Bold'>approximates</a> <a href='#Paint_Fake_Bold'>the</a> <a href='#Paint_Fake_Bold'>bold</a> <a href='undocumented#Font'>font</a> <a href='undocumented#Font'>style</a> <a href='undocumented#Font'>accompanying</a> <a href='undocumented#Font'>a</a> <a href='undocumented#Font'>normal</a> <a href='undocumented#Font'>font</a> <a href='undocumented#Font'>when</a> <a href='undocumented#Font'>a</a> <a href='undocumented#Font'>bold</a> <a href='undocumented#Font'>font</a> <a href='undocumented#Font'>face</a>
-<a href='undocumented#Font'>is</a> <a href='undocumented#Font'>not</a> <a href='undocumented#Font'>available</a>. <a href='undocumented#Font'>Skia</a> <a href='undocumented#Font'>does</a> <a href='undocumented#Font'>not</a> <a href='undocumented#Font'>provide</a> <a href='undocumented#Font'>font</a> <a href='undocumented#Font'>substitution</a>; <a href='undocumented#Font'>it</a> <a href='undocumented#Font'>is</a> <a href='undocumented#Font'>up</a> <a href='undocumented#Font'>to</a> <a href='undocumented#Font'>the</a> <a href='undocumented#Font'>client</a> <a href='undocumented#Font'>to</a> <a href='undocumented#Font'>find</a> <a href='undocumented#Font'>the</a>
-<a href='undocumented#Font'>bold</a> <a href='undocumented#Font'>font</a> <a href='undocumented#Font'>face</a> <a href='undocumented#Font'>using</a> <a href='undocumented#Font'>the</a> <a href='undocumented#Font'>platform</a> <a href='#Font_Manager'>Font_Manager</a>.
+<a href='#Paint_Fake_Bold'>Fake_Bold</a> approximates the bold <a href='undocumented#Font'>font</a> style accompanying a normal <a href='undocumented#Font'>font</a> when a bold <a href='undocumented#Font'>font</a> face
+is not available. Skia does not provide <a href='undocumented#Font'>font</a> substitution; it is up to the client to find the
+bold <a href='undocumented#Font'>font</a> face using the platform <a href='#Font_Manager'>Font_Manager</a>.
-<a href='#Font_Manager'>Use</a> <a href='#Paint_Text_Skew_X'>Text_Skew_X</a> <a href='#Paint_Text_Skew_X'>to</a> <a href='#Paint_Text_Skew_X'>approximate</a> <a href='#Paint_Text_Skew_X'>an</a> <a href='#Paint_Text_Skew_X'>italic</a> <a href='undocumented#Font'>font</a> <a href='undocumented#Font'>style</a> <a href='undocumented#Font'>when</a> <a href='undocumented#Font'>the</a> <a href='undocumented#Font'>italic</a> <a href='undocumented#Font'>font</a> <a href='undocumented#Font'>face</a>
-<a href='undocumented#Font'>is</a> <a href='undocumented#Font'>not</a> <a href='undocumented#Font'>available</a>.
+Use <a href='#Paint_Text_Skew_X'>Text_Skew_X</a> to approximate an italic <a href='undocumented#Font'>font</a> style when the italic <a href='undocumented#Font'>font</a> face
+is not available.
-<a href='undocumented#Font'>A</a> <a href='undocumented#Font'>FreeType</a> <a href='undocumented#Font'>based</a> <a href='undocumented#Font'>port</a> <a href='undocumented#Font'>may</a> <a href='undocumented#Font'>define</a> <a href='undocumented#Font'>SK_USE_FREETYPE_EMBOLDEN</a> <a href='undocumented#Font'>at</a> <a href='undocumented#Font'>compile</a> <a href='undocumented#Font'>time</a> <a href='undocumented#Font'>to</a> <a href='undocumented#Font'>direct</a>
-<a href='undocumented#Font'>the</a> <a href='undocumented#Font_Engine'>font engine</a> <a href='undocumented#Font'>to</a> <a href='undocumented#Font'>create</a> <a href='undocumented#Font'>the</a> <a href='undocumented#Font'>bold</a> <a href='undocumented#Glyph'>Glyphs</a>. <a href='undocumented#Glyph'>Otherwise</a>, <a href='undocumented#Glyph'>the</a> <a href='undocumented#Glyph'>extra</a> <a href='undocumented#Glyph'>bold</a> <a href='undocumented#Glyph'>is</a> <a href='undocumented#Glyph'>computed</a>
-<a href='undocumented#Glyph'>by</a> <a href='undocumented#Glyph'>increasing</a> <a href='undocumented#Glyph'>the</a> <a href='#Stroke_Width'>stroke width</a> <a href='undocumented#Glyph'>and</a> <a href='undocumented#Glyph'>setting</a> <a href='undocumented#Glyph'>the</a> <a href='#SkPaint_Style'>Style</a> <a href='#SkPaint_Style'>to</a> <a href='#SkPaint_kStrokeAndFill_Style'>kStrokeAndFill_Style</a> <a href='#SkPaint_kStrokeAndFill_Style'>as</a> <a href='#SkPaint_kStrokeAndFill_Style'>needed</a>.
+A FreeType based port may define SK_USE_FREETYPE_EMBOLDEN at compile time to direct
+the <a href='undocumented#Font_Engine'>font engine</a> to create the bold <a href='undocumented#Glyph'>Glyphs</a>. Otherwise, the extra bold is computed
+by increasing the <a href='#Stroke_Width'>stroke width</a> and setting the <a href='#SkPaint_Style'>Style</a> to <a href='#SkPaint_kStrokeAndFill_Style'>kStrokeAndFill_Style</a> as needed.
-<a href='#Paint_Fake_Bold'>Fake_Bold</a> <a href='#Paint_Fake_Bold'>is</a> <a href='#Paint_Fake_Bold'>disabled</a> <a href='#Paint_Fake_Bold'>by</a> <a href='#Paint_Fake_Bold'>default</a>.
+<a href='#Paint_Fake_Bold'>Fake_Bold</a> is disabled by default.
### Example
@@ -1578,17 +1459,17 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-bool <a href='#SkPaint_isFakeBoldText'>isFakeBoldText</a>() <a href='#SkPaint_isFakeBoldText'>const</a>
+bool <a href='#SkPaint_isFakeBoldText'>isFakeBoldText</a>() const
</pre>
Returns true if approximate bold by increasing the stroke width when creating <a href='undocumented#Glyph'>glyph</a> <a href='SkBitmap_Reference#Bitmap'>bitmaps</a>
from outlines.
-Equivalent to <a href='#SkPaint_getFlags'>getFlags</a>() <a href='#SkPaint_getFlags'>masked</a> <a href='#SkPaint_getFlags'>with</a> <a href='#SkPaint_kFakeBoldText_Flag'>kFakeBoldText_Flag</a>.
+Equivalent to <a href='#SkPaint_getFlags'>getFlags</a>() masked with <a href='#SkPaint_kFakeBoldText_Flag'>kFakeBoldText_Flag</a>.
### Return Value
-<a href='#SkPaint_kFakeBoldText_Flag'>kFakeBoldText_Flag</a> <a href='#SkPaint_kFakeBoldText_Flag'>state</a>
+<a href='#SkPaint_kFakeBoldText_Flag'>kFakeBoldText_Flag</a> state
### Example
@@ -1608,13 +1489,13 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-void <a href='#SkPaint_setFakeBoldText'>setFakeBoldText</a>(<a href='#SkPaint_setFakeBoldText'>bool</a> <a href='#SkPaint_setFakeBoldText'>fakeBoldText</a>)
+void <a href='#SkPaint_setFakeBoldText'>setFakeBoldText</a>(bool fakeBoldText)
</pre>
-Increases <a href='#Stroke_Width'>stroke width</a> when creating <a href='undocumented#Glyph'>glyph</a> <a href='SkBitmap_Reference#Bitmap'>bitmaps</a> <a href='SkBitmap_Reference#Bitmap'>to</a> <a href='SkBitmap_Reference#Bitmap'>approximate</a> <a href='SkBitmap_Reference#Bitmap'>a</a> <a href='SkBitmap_Reference#Bitmap'>bold</a> <a href='undocumented#Typeface'>typeface</a>.
+Increases <a href='#Stroke_Width'>stroke width</a> when creating <a href='undocumented#Glyph'>glyph</a> <a href='SkBitmap_Reference#Bitmap'>bitmaps</a> to approximate a bold <a href='undocumented#Typeface'>typeface</a>.
-Sets <a href='#SkPaint_kFakeBoldText_Flag'>kFakeBoldText_Flag</a> <a href='#SkPaint_kFakeBoldText_Flag'>if</a> <a href='#SkPaint_setFakeBoldText_fakeBoldText'>fakeBoldText</a> <a href='#SkPaint_setFakeBoldText_fakeBoldText'>is</a> <a href='#SkPaint_setFakeBoldText_fakeBoldText'>true</a>.
-Clears <a href='#SkPaint_kFakeBoldText_Flag'>kFakeBoldText_Flag</a> <a href='#SkPaint_kFakeBoldText_Flag'>if</a> <a href='#SkPaint_setFakeBoldText_fakeBoldText'>fakeBoldText</a> <a href='#SkPaint_setFakeBoldText_fakeBoldText'>is</a> <a href='#SkPaint_setFakeBoldText_fakeBoldText'>false</a>.
+Sets <a href='#SkPaint_kFakeBoldText_Flag'>kFakeBoldText_Flag</a> if <a href='#SkPaint_setFakeBoldText_fakeBoldText'>fakeBoldText</a> is true.
+Clears <a href='#SkPaint_kFakeBoldText_Flag'>kFakeBoldText_Flag</a> if <a href='#SkPaint_setFakeBoldText_fakeBoldText'>fakeBoldText</a> is false.
### Parameters
@@ -1637,25 +1518,25 @@
<a name='Full_Hinting_Spacing'></a>
-if <a href='#SkPaint_Hinting'>Hinting</a> <a href='#SkPaint_Hinting'>is</a> <a href='#SkPaint_Hinting'>set</a> <a href='#SkPaint_Hinting'>to</a> <a href='#SkPaint_kFull_Hinting'>kFull_Hinting</a>, <a href='#Paint_Full_Hinting_Spacing'>Full_Hinting_Spacing</a> <a href='#Paint_Full_Hinting_Spacing'>adjusts</a> <a href='#Paint_Full_Hinting_Spacing'>the</a> <a href='#Paint_Full_Hinting_Spacing'>character</a>
-<a href='#Paint_Full_Hinting_Spacing'>spacing</a> <a href='#Paint_Full_Hinting_Spacing'>by</a> <a href='#Paint_Full_Hinting_Spacing'>the</a> <a href='#Paint_Full_Hinting_Spacing'>difference</a> <a href='#Paint_Full_Hinting_Spacing'>of</a> <a href='#Paint_Full_Hinting_Spacing'>the</a> <a href='#Paint_Full_Hinting_Spacing'>hinted</a> <a href='#Paint_Full_Hinting_Spacing'>and</a> <a href='#Paint_Full_Hinting_Spacing'>unhinted</a> <a href='#Left_Side_Bearing'>Left_Side_Bearing</a> <a href='#Left_Side_Bearing'>and</a>
-<a href='#Right_Side_Bearing'>Right_Side_Bearing</a>. <a href='#Paint_Full_Hinting_Spacing'>Full_Hinting_Spacing</a> <a href='#Paint_Full_Hinting_Spacing'>only</a> <a href='#Paint_Full_Hinting_Spacing'>applies</a> <a href='#Paint_Full_Hinting_Spacing'>to</a> <a href='#Paint_Full_Hinting_Spacing'>platforms</a> <a href='#Paint_Full_Hinting_Spacing'>that</a> <a href='#Paint_Full_Hinting_Spacing'>use</a>
-<a href='#Paint_Full_Hinting_Spacing'>FreeType</a> <a href='#Paint_Full_Hinting_Spacing'>as</a> <a href='#Paint_Full_Hinting_Spacing'>their</a> <a href='#Font_Engine'>Font_Engine</a>.
+if Hinting is set to <a href='undocumented#SkFontHinting'>SkFontHinting</a>::<a href='#SkFontHinting_kFull'>kFull</a>, <a href='#Paint_Full_Hinting_Spacing'>Full_Hinting_Spacing</a> adjusts the character
+spacing by the difference of the hinted and unhinted <a href='#Left_Side_Bearing'>Left_Side_Bearing</a> and
+<a href='#Right_Side_Bearing'>Right_Side_Bearing</a>. <a href='#Paint_Full_Hinting_Spacing'>Full_Hinting_Spacing</a> only applies to platforms that use
+FreeType as their <a href='#Font_Engine'>Font_Engine</a>.
-<a href='#Paint_Full_Hinting_Spacing'>Full_Hinting_Spacing</a> <a href='#Paint_Full_Hinting_Spacing'>is</a> <a href='#Paint_Full_Hinting_Spacing'>not</a> <a href='#Paint_Full_Hinting_Spacing'>related</a> <a href='#Paint_Full_Hinting_Spacing'>to</a> <a href='undocumented#Text'>text</a> <a href='undocumented#Text'>kerning</a>, <a href='undocumented#Text'>where</a> <a href='undocumented#Text'>the</a> <a href='undocumented#Text'>space</a> <a href='undocumented#Text'>between</a>
-<a href='undocumented#Text'>a</a> <a href='undocumented#Text'>specific</a> <a href='undocumented#Text'>pair</a> <a href='undocumented#Text'>of</a> <a href='undocumented#Text'>characters</a> <a href='undocumented#Text'>is</a> <a href='undocumented#Text'>adjusted</a> <a href='undocumented#Text'>using</a> <a href='undocumented#Data'>data</a> <a href='undocumented#Data'>in</a> <a href='undocumented#Data'>the</a> <a href='undocumented#Font'>font</a> <a href='undocumented#Font'>kerning</a> <a href='undocumented#Font'>tables</a>.
+<a href='#Paint_Full_Hinting_Spacing'>Full_Hinting_Spacing</a> is not related to <a href='undocumented#Text'>text</a> kerning, where the space between
+a specific pair of characters is adjusted using <a href='undocumented#Data'>data</a> in the <a href='undocumented#Font'>font</a> kerning tables.
<a name='Filter_Quality_Methods'></a>
---
-<a href='#Filter_Quality'>Filter_Quality</a> <a href='#Filter_Quality'>trades</a> <a href='#Filter_Quality'>speed</a> <a href='#Filter_Quality'>for</a> <a href='SkImage_Reference#Image'>image</a> <a href='SkImage_Reference#Image'>filtering</a> <a href='SkImage_Reference#Image'>when</a> <a href='SkImage_Reference#Image'>the</a> <a href='SkImage_Reference#Image'>image</a> <a href='SkImage_Reference#Image'>is</a> <a href='SkImage_Reference#Image'>scaled</a>.
-<a href='SkImage_Reference#Image'>A</a> <a href='SkImage_Reference#Image'>lower</a> <a href='#Filter_Quality'>Filter_Quality</a> <a href='#Filter_Quality'>draws</a> <a href='#Filter_Quality'>faster</a>, <a href='#Filter_Quality'>but</a> <a href='#Filter_Quality'>has</a> <a href='#Filter_Quality'>less</a> <a href='#Filter_Quality'>fidelity</a>.
-<a href='#Filter_Quality'>A</a> <a href='#Filter_Quality'>higher</a> <a href='#Filter_Quality'>Filter_Quality</a> <a href='#Filter_Quality'>draws</a> <a href='#Filter_Quality'>slower</a>, <a href='#Filter_Quality'>but</a> <a href='#Filter_Quality'>looks</a> <a href='#Filter_Quality'>better</a>.
-<a href='#Filter_Quality'>If</a> <a href='#Filter_Quality'>the</a> <a href='SkImage_Reference#Image'>image</a> <a href='SkImage_Reference#Image'>is</a> <a href='SkImage_Reference#Image'>drawn</a> <a href='SkImage_Reference#Image'>without</a> <a href='SkImage_Reference#Image'>scaling</a>, <a href='SkImage_Reference#Image'>the</a> <a href='#Filter_Quality'>Filter_Quality</a> <a href='#Filter_Quality'>choice</a> <a href='#Filter_Quality'>will</a> <a href='#Filter_Quality'>not</a> <a href='#Filter_Quality'>result</a>
-<a href='#Filter_Quality'>in</a> <a href='#Filter_Quality'>a</a> <a href='#Filter_Quality'>noticeable</a> <a href='#Filter_Quality'>difference</a>.
+<a href='#Filter_Quality'>Filter_Quality</a> trades speed for <a href='SkImage_Reference#Image'>image</a> filtering when the <a href='SkImage_Reference#Image'>image</a> is scaled.
+A lower <a href='#Filter_Quality'>Filter_Quality</a> draws faster, but has less fidelity.
+A higher <a href='#Filter_Quality'>Filter_Quality</a> draws slower, but looks better.
+If the <a href='SkImage_Reference#Image'>image</a> is drawn without scaling, the <a href='#Filter_Quality'>Filter_Quality</a> choice will not result
+in a noticeable difference.
-<a href='#Filter_Quality'>Filter_Quality</a> <a href='#Filter_Quality'>is</a> <a href='#Filter_Quality'>used</a> <a href='#Filter_Quality'>in</a> <a href='SkPaint_Reference#Paint'>Paint</a> <a href='SkPaint_Reference#Paint'>passed</a> <a href='SkPaint_Reference#Paint'>as</a> <a href='SkPaint_Reference#Paint'>a</a> <a href='SkPaint_Reference#Paint'>parameter</a> <a href='SkPaint_Reference#Paint'>to</a>
+<a href='#Filter_Quality'>Filter_Quality</a> is used in <a href='SkPaint_Reference#Paint'>Paint</a> passed as a parameter to
<table> <tr>
<td><a href='SkCanvas_Reference#SkCanvas'>SkCanvas</a>::<a href='#SkCanvas_drawBitmap'>drawBitmap</a></td>
@@ -1668,9 +1549,9 @@
</tr>
</table>
-and when <a href='SkPaint_Reference#Paint'>Paint</a> <a href='SkPaint_Reference#Paint'>has</a> <a href='SkPaint_Reference#Paint'>a</a> <a href='undocumented#Shader'>Shader</a> <a href='undocumented#Shader'>specialization</a> <a href='undocumented#Shader'>that</a> <a href='undocumented#Shader'>uses</a> <a href='SkImage_Reference#Image'>Image</a> <a href='SkImage_Reference#Image'>or</a> <a href='SkBitmap_Reference#Bitmap'>Bitmap</a>.
+and when <a href='SkPaint_Reference#Paint'>Paint</a> has a <a href='undocumented#Shader'>Shader</a> specialization that uses <a href='SkImage_Reference#Image'>Image</a> or <a href='SkBitmap_Reference#Bitmap'>Bitmap</a>.
-<a href='#Filter_Quality'>Filter_Quality</a> <a href='#Filter_Quality'>is</a> <a href='undocumented#kNone_SkFilterQuality'>kNone_SkFilterQuality</a> <a href='undocumented#kNone_SkFilterQuality'>by</a> <a href='undocumented#kNone_SkFilterQuality'>default</a>.
+<a href='#Filter_Quality'>Filter_Quality</a> is <a href='undocumented#kNone_SkFilterQuality'>kNone_SkFilterQuality</a> by default.
### Example
@@ -1681,11 +1562,11 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-<a href='undocumented#SkFilterQuality'>SkFilterQuality</a> <a href='#SkPaint_getFilterQuality'>getFilterQuality</a>() <a href='#SkPaint_getFilterQuality'>const</a>
+<a href='undocumented#SkFilterQuality'>SkFilterQuality</a> <a href='#SkPaint_getFilterQuality'>getFilterQuality</a>() const
</pre>
-Returns <a href='undocumented#SkFilterQuality'>SkFilterQuality</a>, <a href='undocumented#SkFilterQuality'>the</a> <a href='SkImage_Reference#Image'>image</a> <a href='SkImage_Reference#Image'>filtering</a> <a href='SkImage_Reference#Image'>level</a>. <a href='SkImage_Reference#Image'>A</a> <a href='SkImage_Reference#Image'>lower</a> <a href='SkImage_Reference#Image'>setting</a>
-draws faster; a higher setting looks better when the <a href='SkImage_Reference#Image'>image</a> <a href='SkImage_Reference#Image'>is</a> <a href='SkImage_Reference#Image'>scaled</a>.
+Returns <a href='undocumented#SkFilterQuality'>SkFilterQuality</a>, the <a href='SkImage_Reference#Image'>image</a> filtering level. A lower setting
+draws faster; a higher setting looks better when the <a href='SkImage_Reference#Image'>image</a> is scaled.
### Return Value
@@ -1710,12 +1591,12 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-void <a href='#SkPaint_setFilterQuality'>setFilterQuality</a>(<a href='undocumented#SkFilterQuality'>SkFilterQuality</a> <a href='undocumented#SkFilterQuality'>quality</a>)
+void <a href='#SkPaint_setFilterQuality'>setFilterQuality</a>(<a href='undocumented#SkFilterQuality'>SkFilterQuality</a> quality)
</pre>
-Sets <a href='undocumented#SkFilterQuality'>SkFilterQuality</a>, <a href='undocumented#SkFilterQuality'>the</a> <a href='SkImage_Reference#Image'>image</a> <a href='SkImage_Reference#Image'>filtering</a> <a href='SkImage_Reference#Image'>level</a>. <a href='SkImage_Reference#Image'>A</a> <a href='SkImage_Reference#Image'>lower</a> <a href='SkImage_Reference#Image'>setting</a>
-draws faster; a higher setting looks better when the <a href='SkImage_Reference#Image'>image</a> <a href='SkImage_Reference#Image'>is</a> <a href='SkImage_Reference#Image'>scaled</a>.
-Does not check to see if <a href='#SkPaint_setFilterQuality_quality'>quality</a> <a href='#SkPaint_setFilterQuality_quality'>is</a> <a href='#SkPaint_setFilterQuality_quality'>valid</a>.
+Sets <a href='undocumented#SkFilterQuality'>SkFilterQuality</a>, the <a href='SkImage_Reference#Image'>image</a> filtering level. A lower setting
+draws faster; a higher setting looks better when the <a href='SkImage_Reference#Image'>image</a> is scaled.
+Does not check to see if <a href='#SkPaint_setFilterQuality_quality'>quality</a> is valid.
### Parameters
@@ -1748,20 +1629,20 @@
| name | description |
| --- | --- |
-| <a href='#SkPaint_getColor'>getColor</a> | returns <a href='#Color_Alpha'>Color_Alpha</a> <a href='#Color_Alpha'>and</a> <a href='#Color_Alpha'>RGB</a>, <a href='#Color_Alpha'>one</a> <a href='#Color_Alpha'>drawing</a> <a href='SkColor_Reference#Color'>color</a> |
-| <a href='#SkPaint_setColor'>setColor</a> | sets <a href='#Color_Alpha'>Color_Alpha</a> <a href='#Color_Alpha'>and</a> <a href='#Color_Alpha'>RGB</a>, <a href='#Color_Alpha'>one</a> <a href='#Color_Alpha'>drawing</a> <a href='SkColor_Reference#Color'>color</a> |
+| <a href='#SkPaint_getColor'>getColor</a> | returns <a href='#Color_Alpha'>Color_Alpha</a> and RGB, one drawing <a href='SkColor_Reference#Color'>color</a> |
+| <a href='#SkPaint_setColor'>setColor</a> | sets <a href='#Color_Alpha'>Color_Alpha</a> and RGB, one drawing <a href='SkColor_Reference#Color'>color</a> |
-<a href='SkColor_Reference#Color'>Color</a> <a href='SkColor_Reference#Color'>specifies</a> <a href='SkColor_Reference#Color'>the</a> <a href='SkColor_Reference#Color'>red</a>, <a href='SkColor_Reference#Color'>blue</a>, <a href='SkColor_Reference#Color'>green</a>, <a href='SkColor_Reference#Color'>and</a> <a href='#Color_Alpha'>Color_Alpha</a>
-<a href='#Color_Alpha'>values</a> <a href='#Color_Alpha'>used</a> <a href='#Color_Alpha'>to</a> <a href='#Color_Alpha'>draw</a> <a href='#Color_Alpha'>a</a> <a href='#Color_Alpha'>filled</a> <a href='#Color_Alpha'>or</a> <a href='#Color_Alpha'>stroked</a> <a href='#Color_Alpha'>shape</a> <a href='#Color_Alpha'>in</a> <a href='#Color_Alpha'>a</a> 32-<a href='#Color_Alpha'>bit</a> <a href='#Color_Alpha'>value</a>. <a href='#Color_Alpha'>Each</a> <a href='#Color_Alpha'>component</a>
-<a href='#Color_Alpha'>occupies</a> 8-<a href='#Color_Alpha'>bits</a>, <a href='#Color_Alpha'>ranging</a> <a href='#Color_Alpha'>from</a> <a href='#Color_Alpha'>zero</a>: <a href='#Color_Alpha'>no</a> <a href='#Color_Alpha'>contribution</a>; <a href='#Color_Alpha'>to</a> 255: <a href='#Color_Alpha'>full</a> <a href='#Color_Alpha'>intensity</a>.
-<a href='#Color_Alpha'>All</a> <a href='#Color_Alpha'>values</a> <a href='#Color_Alpha'>in</a> <a href='#Color_Alpha'>any</a> <a href='#Color_Alpha'>combination</a> <a href='#Color_Alpha'>are</a> <a href='#Color_Alpha'>valid</a>.
+<a href='SkColor_Reference#Color'>Color</a> specifies the red, blue, green, and <a href='#Color_Alpha'>Color_Alpha</a>
+values used to draw a filled or stroked shape in a 32-bit value. Each component
+occupies 8-bits, ranging from zero: no contribution; to 255: full intensity.
+All values in any combination are valid.
-<a href='SkColor_Reference#Color'>Color</a> <a href='SkColor_Reference#Color'>is</a> <a href='SkColor_Reference#Color'>not</a> <a href='undocumented#Premultiply'>Premultiplied</a>; <a href='#Color_Alpha'>Color_Alpha</a> <a href='#Color_Alpha'>sets</a> <a href='#Color_Alpha'>the</a> <a href='#Color_Alpha'>transparency</a> <a href='#Color_Alpha'>independent</a> <a href='#Color_Alpha'>of</a>
-<a href='#Color_Alpha'>RGB</a>: <a href='#Color_Alpha'>red</a>, <a href='#Color_Alpha'>blue</a>, <a href='#Color_Alpha'>and</a> <a href='#Color_Alpha'>green</a>.
+<a href='SkColor_Reference#Color'>Color</a> is not <a href='undocumented#Premultiply'>Premultiplied</a>; <a href='#Color_Alpha'>Color_Alpha</a> sets the transparency independent of
+RGB: red, blue, and green.
-<a href='#Color_Alpha'>The</a> <a href='#Color_Alpha'>bit</a> <a href='#Color_Alpha'>positions</a> <a href='#Color_Alpha'>of</a> <a href='#Color_Alpha'>Color_Alpha</a> <a href='#Color_Alpha'>and</a> <a href='#Color_Alpha'>RGB</a> <a href='#Color_Alpha'>are</a> <a href='#Color_Alpha'>independent</a> <a href='#Color_Alpha'>of</a> <a href='#Color_Alpha'>the</a> <a href='#Color_Alpha'>bit</a>
-<a href='#Color_Alpha'>positions</a> <a href='#Color_Alpha'>on</a> <a href='#Color_Alpha'>the</a> <a href='#Color_Alpha'>output</a> <a href='undocumented#Device'>device</a>, <a href='undocumented#Device'>which</a> <a href='undocumented#Device'>may</a> <a href='undocumented#Device'>have</a> <a href='undocumented#Device'>more</a> <a href='undocumented#Device'>or</a> <a href='undocumented#Device'>fewer</a> <a href='undocumented#Device'>bits</a>, <a href='undocumented#Device'>and</a> <a href='undocumented#Device'>may</a> <a href='undocumented#Device'>have</a>
-<a href='undocumented#Device'>a</a> <a href='undocumented#Device'>different</a> <a href='undocumented#Device'>arrangement</a>.
+The bit positions of <a href='#Color_Alpha'>Color_Alpha</a> and RGB are independent of the bit
+positions on the output <a href='undocumented#Device'>device</a>, which may have more or fewer bits, and may have
+a different arrangement.
| bit positions | <a href='#Color_Alpha'>Color_Alpha</a> | red | blue | green |
| --- | --- | --- | --- | --- |
@@ -1776,16 +1657,16 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-<a href='SkColor_Reference#SkColor'>SkColor</a> <a href='#SkPaint_getColor'>getColor</a>() <a href='#SkPaint_getColor'>const</a>
+<a href='SkColor_Reference#SkColor'>SkColor</a> <a href='#SkPaint_getColor'>getColor</a>() const
</pre>
-Retrieves <a href='SkColor_Reference#Alpha'>alpha</a> <a href='SkColor_Reference#Alpha'>and</a> <a href='SkColor_Reference#Alpha'>RGB</a>, <a href='undocumented#Unpremultiply'>unpremultiplied</a>, <a href='undocumented#Unpremultiply'>packed</a> <a href='undocumented#Unpremultiply'>into</a> 32 <a href='undocumented#Unpremultiply'>bits</a>.
-Use helpers <a href='SkColor_Reference#SkColorGetA'>SkColorGetA</a>(), <a href='SkColor_Reference#SkColorGetR'>SkColorGetR</a>(), <a href='SkColor_Reference#SkColorGetG'>SkColorGetG</a>(), <a href='SkColor_Reference#SkColorGetG'>and</a> <a href='SkColor_Reference#SkColorGetB'>SkColorGetB</a>() <a href='SkColor_Reference#SkColorGetB'>to</a> <a href='SkColor_Reference#SkColorGetB'>extract</a>
-a <a href='SkColor_Reference#Color'>color</a> <a href='SkColor_Reference#Color'>component</a>.
+Retrieves <a href='SkColor_Reference#Alpha'>alpha</a> and RGB, <a href='undocumented#Unpremultiply'>unpremultiplied</a>, packed into 32 bits.
+Use helpers <a href='SkColor_Reference#SkColorGetA'>SkColorGetA</a>(), <a href='SkColor_Reference#SkColorGetR'>SkColorGetR</a>(), <a href='SkColor_Reference#SkColorGetG'>SkColorGetG</a>(), and <a href='SkColor_Reference#SkColorGetB'>SkColorGetB</a>() to extract
+a <a href='SkColor_Reference#Color'>color</a> component.
### Return Value
-<a href='undocumented#Unpremultiply'>unpremultiplied</a> <a href='undocumented#Unpremultiply'>ARGB</a>
+<a href='undocumented#Unpremultiply'>unpremultiplied</a> ARGB
### Example
@@ -1808,15 +1689,15 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-<a href='SkColor4f_Reference#SkColor4f'>SkColor4f</a> <a href='#SkPaint_getColor4f'>getColor4f</a>() <a href='#SkPaint_getColor4f'>const</a>
+<a href='SkColor4f_Reference#SkColor4f'>SkColor4f</a> <a href='#SkPaint_getColor4f'>getColor4f</a>() const
</pre>
-Retrieves <a href='SkColor_Reference#Alpha'>alpha</a> <a href='SkColor_Reference#Alpha'>and</a> <a href='SkColor_Reference#Alpha'>RGB</a>, <a href='undocumented#Unpremultiply'>unpremultiplied</a>, <a href='undocumented#Unpremultiply'>as</a> <a href='undocumented#Unpremultiply'>four</a> <a href='undocumented#Unpremultiply'>floating</a> <a href='SkPoint_Reference#Point'>point</a> <a href='SkPoint_Reference#Point'>values</a>. <a href='SkPoint_Reference#Point'>RGB</a> <a href='SkPoint_Reference#Point'>are</a>
+Retrieves <a href='SkColor_Reference#Alpha'>alpha</a> and RGB, <a href='undocumented#Unpremultiply'>unpremultiplied</a>, as four floating <a href='SkPoint_Reference#Point'>point</a> values. RGB are
are extended sRGB values (sRGB gamut, and encoded with the sRGB transfer function).
### Return Value
-<a href='undocumented#Unpremultiply'>unpremultiplied</a> <a href='undocumented#Unpremultiply'>RGBA</a>
+<a href='undocumented#Unpremultiply'>unpremultiplied</a> RGBA
### Example
@@ -1842,13 +1723,13 @@
void <a href='#SkPaint_setColor'>setColor</a>(<a href='SkColor_Reference#SkColor'>SkColor</a> <a href='SkColor_Reference#Color'>color</a>)
</pre>
-Sets <a href='SkColor_Reference#Alpha'>alpha</a> <a href='SkColor_Reference#Alpha'>and</a> <a href='SkColor_Reference#Alpha'>RGB</a> <a href='SkColor_Reference#Alpha'>used</a> <a href='SkColor_Reference#Alpha'>when</a> <a href='SkColor_Reference#Alpha'>stroking</a> <a href='SkColor_Reference#Alpha'>and</a> <a href='SkColor_Reference#Alpha'>filling</a>. <a href='SkColor_Reference#Alpha'>The</a> <a href='#SkPaint_setColor_color'>color</a> <a href='#SkPaint_setColor_color'>is</a> <a href='#SkPaint_setColor_color'>a</a> 32-<a href='#SkPaint_setColor_color'>bit</a> <a href='#SkPaint_setColor_color'>value</a>,
-<a href='undocumented#Unpremultiply'>unpremultiplied</a>, <a href='undocumented#Unpremultiply'>packing</a> 8-<a href='undocumented#Unpremultiply'>bit</a> <a href='undocumented#Unpremultiply'>components</a> <a href='undocumented#Unpremultiply'>for</a> <a href='SkColor_Reference#Alpha'>alpha</a>, <a href='SkColor_Reference#Alpha'>red</a>, <a href='SkColor_Reference#Alpha'>blue</a>, <a href='SkColor_Reference#Alpha'>and</a> <a href='SkColor_Reference#Alpha'>green</a>.
+Sets <a href='SkColor_Reference#Alpha'>alpha</a> and RGB used when stroking and filling. The <a href='#SkPaint_setColor_color'>color</a> is a 32-bit value,
+<a href='undocumented#Unpremultiply'>unpremultiplied</a>, packing 8-bit components for <a href='SkColor_Reference#Alpha'>alpha</a>, red, blue, and green.
### Parameters
<table> <tr> <td><a name='SkPaint_setColor_color'><code><strong>color</strong></code></a></td>
- <td><a href='undocumented#Unpremultiply'>unpremultiplied</a> <a href='undocumented#Unpremultiply'>ARGB</a></td>
+ <td><a href='undocumented#Unpremultiply'>unpremultiplied</a> ARGB</td>
</tr>
</table>
@@ -1873,21 +1754,21 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-void <a href='#SkPaint_setColor4f'>setColor4f</a>(<a href='#SkPaint_setColor4f'>const</a> <a href='SkColor4f_Reference#SkColor4f'>SkColor4f</a>& <a href='SkColor_Reference#Color'>color</a>, <a href='undocumented#SkColorSpace'>SkColorSpace</a>* <a href='undocumented#SkColorSpace'>colorSpace</a>)
+void <a href='#SkPaint_setColor4f'>setColor4f</a>(const <a href='SkColor4f_Reference#SkColor4f'>SkColor4f</a>& <a href='SkColor_Reference#Color'>color</a>, <a href='undocumented#SkColorSpace'>SkColorSpace</a>* colorSpace)
</pre>
-Sets <a href='SkColor_Reference#Alpha'>alpha</a> <a href='SkColor_Reference#Alpha'>and</a> <a href='SkColor_Reference#Alpha'>RGB</a> <a href='SkColor_Reference#Alpha'>used</a> <a href='SkColor_Reference#Alpha'>when</a> <a href='SkColor_Reference#Alpha'>stroking</a> <a href='SkColor_Reference#Alpha'>and</a> <a href='SkColor_Reference#Alpha'>filling</a>. <a href='SkColor_Reference#Alpha'>The</a> <a href='#SkPaint_setColor4f_color'>color</a> <a href='#SkPaint_setColor4f_color'>is</a> <a href='#SkPaint_setColor4f_color'>four</a> <a href='#SkPaint_setColor4f_color'>floating</a>
-<a href='SkPoint_Reference#Point'>point</a> <a href='SkPoint_Reference#Point'>values</a>, <a href='undocumented#Unpremultiply'>unpremultiplied</a>. <a href='undocumented#Unpremultiply'>The</a> <a href='#SkPaint_setColor4f_color'>color</a> <a href='#SkPaint_setColor4f_color'>values</a> <a href='#SkPaint_setColor4f_color'>are</a> <a href='#SkPaint_setColor4f_color'>interpreted</a> <a href='#SkPaint_setColor4f_color'>as</a> <a href='#SkPaint_setColor4f_color'>being</a> <a href='#SkPaint_setColor4f_color'>in</a>
-the <a href='#SkPaint_setColor4f_colorSpace'>colorSpace</a>. <a href='#SkPaint_setColor4f_colorSpace'>If</a> <a href='#SkPaint_setColor4f_colorSpace'>colorSpace</a> <a href='#SkPaint_setColor4f_colorSpace'>is</a> <a href='#SkPaint_setColor4f_colorSpace'>nullptr</a>, <a href='#SkPaint_setColor4f_colorSpace'>then</a> <a href='#SkPaint_setColor4f_color'>color</a> <a href='#SkPaint_setColor4f_color'>is</a> <a href='#SkPaint_setColor4f_color'>assumed</a> <a href='#SkPaint_setColor4f_color'>to</a> <a href='#SkPaint_setColor4f_color'>be</a> <a href='#SkPaint_setColor4f_color'>in</a> <a href='#SkPaint_setColor4f_color'>the</a>
+Sets <a href='SkColor_Reference#Alpha'>alpha</a> and RGB used when stroking and filling. The <a href='#SkPaint_setColor4f_color'>color</a> is four floating
+<a href='SkPoint_Reference#Point'>point</a> values, <a href='undocumented#Unpremultiply'>unpremultiplied</a>. The <a href='#SkPaint_setColor4f_color'>color</a> values are interpreted as being in
+the <a href='#SkPaint_setColor4f_colorSpace'>colorSpace</a>. If <a href='#SkPaint_setColor4f_colorSpace'>colorSpace</a> is nullptr, then <a href='#SkPaint_setColor4f_color'>color</a> is assumed to be in the
sRGB <a href='undocumented#Color_Space'>color space</a>.
### Parameters
<table> <tr> <td><a name='SkPaint_setColor4f_color'><code><strong>color</strong></code></a></td>
- <td><a href='undocumented#Unpremultiply'>unpremultiplied</a> <a href='undocumented#Unpremultiply'>RGBA</a></td>
+ <td><a href='undocumented#Unpremultiply'>unpremultiplied</a> RGBA</td>
</tr>
<tr> <td><a name='SkPaint_setColor4f_colorSpace'><code><strong>colorSpace</strong></code></a></td>
- <td><a href='undocumented#SkColorSpace'>SkColorSpace</a> <a href='undocumented#SkColorSpace'>describing</a> <a href='undocumented#SkColorSpace'>the</a> <a href='undocumented#SkColorSpace'>encoding</a> <a href='undocumented#SkColorSpace'>of</a> <a href='#SkPaint_setColor4f_color'>color</a></td>
+ <td><a href='undocumented#SkColorSpace'>SkColorSpace</a> describing the encoding of <a href='#SkPaint_setColor4f_color'>color</a></td>
</tr>
</table>
@@ -1909,21 +1790,21 @@
<a name='Alpha_Methods'></a>
-<a href='#Color_Alpha'>Color_Alpha</a> <a href='#Color_Alpha'>sets</a> <a href='#Color_Alpha'>the</a> <a href='#Color_Alpha'>transparency</a> <a href='#Color_Alpha'>independent</a> <a href='#Color_Alpha'>of</a> <a href='#Color_Alpha'>RGB</a>: <a href='#Color_Alpha'>red</a>, <a href='#Color_Alpha'>blue</a>, <a href='#Color_Alpha'>and</a> <a href='#Color_Alpha'>green</a>.
+<a href='#Color_Alpha'>Color_Alpha</a> sets the transparency independent of RGB: red, blue, and green.
<a name='SkPaint_getAlpha'></a>
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-uint8_t <a href='#SkPaint_getAlpha'>getAlpha</a>() <a href='#SkPaint_getAlpha'>const</a>
+uint8_t <a href='#SkPaint_getAlpha'>getAlpha</a>() const
</pre>
-Retrieves <a href='SkColor_Reference#Alpha'>alpha</a> <a href='SkColor_Reference#Alpha'>from</a> <a href='SkColor_Reference#Alpha'>the</a> <a href='SkColor_Reference#Color'>color</a> <a href='SkColor_Reference#Color'>used</a> <a href='SkColor_Reference#Color'>when</a> <a href='SkColor_Reference#Color'>stroking</a> <a href='SkColor_Reference#Color'>and</a> <a href='SkColor_Reference#Color'>filling</a>.
+Retrieves <a href='SkColor_Reference#Alpha'>alpha</a> from the <a href='SkColor_Reference#Color'>color</a> used when stroking and filling.
### Return Value
-<a href='SkColor_Reference#Alpha'>alpha</a> <a href='SkColor_Reference#Alpha'>ranging</a> <a href='SkColor_Reference#Alpha'>from</a> <a href='SkColor_Reference#Alpha'>zero</a>, <a href='SkColor_Reference#Alpha'>fully</a> <a href='SkColor_Reference#Alpha'>transparent</a>, <a href='SkColor_Reference#Alpha'>to</a> 255, <a href='SkColor_Reference#Alpha'>fully</a> <a href='SkColor_Reference#Alpha'>opaque</a>
+<a href='SkColor_Reference#Alpha'>alpha</a> ranging from zero, fully transparent, to 255, fully opaque
### Example
@@ -1942,19 +1823,19 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-void <a href='#SkPaint_setAlpha'>setAlpha</a>(<a href='undocumented#U8CPU'>U8CPU</a> <a href='undocumented#U8CPU'>a</a>)
+void <a href='#SkPaint_setAlpha'>setAlpha</a>(<a href='undocumented#U8CPU'>U8CPU</a> a)
</pre>
-Replaces <a href='SkColor_Reference#Alpha'>alpha</a>, <a href='SkColor_Reference#Alpha'>leaving</a> <a href='SkColor_Reference#Alpha'>RGB</a>
+Replaces <a href='SkColor_Reference#Alpha'>alpha</a>, leaving RGB
unchanged. An out of range value triggers an assert in the debug
-build. <a href='#SkPaint_setAlpha_a'>a</a> <a href='#SkPaint_setAlpha_a'>is</a> <a href='#SkPaint_setAlpha_a'>a</a> <a href='#SkPaint_setAlpha_a'>value</a> <a href='#SkPaint_setAlpha_a'>from</a> <a href='#SkPaint_setAlpha_a'>zero</a> <a href='#SkPaint_setAlpha_a'>to</a> 255.
-<a href='#SkPaint_setAlpha_a'>a</a> <a href='#SkPaint_setAlpha_a'>set</a> <a href='#SkPaint_setAlpha_a'>to</a> <a href='#SkPaint_setAlpha_a'>zero</a> <a href='#SkPaint_setAlpha_a'>makes</a> <a href='SkColor_Reference#Color'>color</a> <a href='SkColor_Reference#Color'>fully</a> <a href='SkColor_Reference#Color'>transparent</a>; <a href='#SkPaint_setAlpha_a'>a</a> <a href='#SkPaint_setAlpha_a'>set</a> <a href='#SkPaint_setAlpha_a'>to</a> 255 <a href='#SkPaint_setAlpha_a'>makes</a> <a href='SkColor_Reference#Color'>color</a>
+build. <a href='#SkPaint_setAlpha_a'>a</a> is <a href='#SkPaint_setAlpha_a'>a</a> value from zero to 255.
+<a href='#SkPaint_setAlpha_a'>a</a> set to zero makes <a href='SkColor_Reference#Color'>color</a> fully transparent; <a href='#SkPaint_setAlpha_a'>a</a> set to 255 makes <a href='SkColor_Reference#Color'>color</a>
fully opaque.
### Parameters
<table> <tr> <td><a name='SkPaint_setAlpha_a'><code><strong>a</strong></code></a></td>
- <td><a href='SkColor_Reference#Alpha'>alpha</a> <a href='SkColor_Reference#Alpha'>component</a> <a href='SkColor_Reference#Alpha'>of</a> <a href='SkColor_Reference#Color'>color</a></td>
+ <td><a href='SkColor_Reference#Alpha'>alpha</a> component of <a href='SkColor_Reference#Color'>color</a></td>
</tr>
</table>
@@ -1975,16 +1856,16 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-void <a href='#SkPaint_setARGB'>setARGB</a>(<a href='undocumented#U8CPU'>U8CPU</a> <a href='undocumented#U8CPU'>a</a>, <a href='undocumented#U8CPU'>U8CPU</a> <a href='undocumented#U8CPU'>r</a>, <a href='undocumented#U8CPU'>U8CPU</a> <a href='undocumented#U8CPU'>g</a>, <a href='undocumented#U8CPU'>U8CPU</a> <a href='undocumented#U8CPU'>b</a>)
+void <a href='#SkPaint_setARGB'>setARGB</a>(<a href='undocumented#U8CPU'>U8CPU</a> a, <a href='undocumented#U8CPU'>U8CPU</a> r, <a href='undocumented#U8CPU'>U8CPU</a> g, <a href='undocumented#U8CPU'>U8CPU</a> b)
</pre>
-Sets <a href='SkColor_Reference#Color'>color</a> <a href='SkColor_Reference#Color'>used</a> <a href='SkColor_Reference#Color'>when</a> <a href='SkColor_Reference#Color'>drawing</a> <a href='SkColor_Reference#Color'>solid</a> <a href='SkColor_Reference#Color'>fills</a>. <a href='SkColor_Reference#Color'>The</a> <a href='SkColor_Reference#Color'>color</a> <a href='SkColor_Reference#Color'>components</a> <a href='SkColor_Reference#Color'>range</a> <a href='SkColor_Reference#Color'>from</a> 0 <a href='SkColor_Reference#Color'>to</a> 255.
-The <a href='SkColor_Reference#Color'>color</a> <a href='SkColor_Reference#Color'>is</a> <a href='undocumented#Unpremultiply'>unpremultiplied</a>; <a href='SkColor_Reference#Alpha'>alpha</a> <a href='SkColor_Reference#Alpha'>sets</a> <a href='SkColor_Reference#Alpha'>the</a> <a href='SkColor_Reference#Alpha'>transparency</a> <a href='SkColor_Reference#Alpha'>independent</a> <a href='SkColor_Reference#Alpha'>of</a> <a href='SkColor_Reference#Alpha'>RGB</a>.
+Sets <a href='SkColor_Reference#Color'>color</a> used when drawing solid fills. The <a href='SkColor_Reference#Color'>color</a> components range from 0 to 255.
+The <a href='SkColor_Reference#Color'>color</a> is <a href='undocumented#Unpremultiply'>unpremultiplied</a>; <a href='SkColor_Reference#Alpha'>alpha</a> sets the transparency independent of RGB.
### Parameters
<table> <tr> <td><a name='SkPaint_setARGB_a'><code><strong>a</strong></code></a></td>
- <td>amount of <a href='SkColor_Reference#Alpha'>alpha</a>, <a href='SkColor_Reference#Alpha'>from</a> <a href='SkColor_Reference#Alpha'>fully</a> <a href='SkColor_Reference#Alpha'>transparent</a> (0) <a href='SkColor_Reference#Alpha'>to</a> <a href='SkColor_Reference#Alpha'>fully</a> <a href='SkColor_Reference#Alpha'>opaque</a> (255)</td>
+ <td>amount of <a href='SkColor_Reference#Alpha'>alpha</a>, from fully transparent (0) to fully opaque (255)</td>
</tr>
<tr> <td><a name='SkPaint_setARGB_r'><code><strong>r</strong></code></a></td>
<td>amount of red, from no red (0) to full red (255)</td>
@@ -2017,23 +1898,23 @@
---
-<a href='#SkPaint_Style'>Style</a> <a href='#SkPaint_Style'>specifies</a> <a href='#SkPaint_Style'>if</a> <a href='#SkPaint_Style'>the</a> <a href='#SkPaint_Style'>geometry</a> <a href='#SkPaint_Style'>is</a> <a href='#SkPaint_Style'>filled</a>, <a href='#SkPaint_Style'>stroked</a>, <a href='#SkPaint_Style'>or</a> <a href='#SkPaint_Style'>both</a> <a href='#SkPaint_Style'>filled</a> <a href='#SkPaint_Style'>and</a> <a href='#SkPaint_Style'>stroked</a>.
-<a href='#SkPaint_Style'>Some</a> <a href='#SkPaint_Style'>shapes</a> <a href='#SkPaint_Style'>ignore</a> <a href='#SkPaint_Style'>Style</a> <a href='#SkPaint_Style'>and</a> <a href='#SkPaint_Style'>are</a> <a href='#SkPaint_Style'>always</a> <a href='#SkPaint_Style'>drawn</a> <a href='#SkPaint_Style'>filled</a> <a href='#SkPaint_Style'>or</a> <a href='#SkPaint_Style'>stroked</a>.
+<a href='#SkPaint_Style'>Style</a> specifies if the geometry is filled, stroked, or both filled and stroked.
+Some shapes ignore <a href='#SkPaint_Style'>Style</a> and are always drawn filled or stroked.
<a name='Style_Fill'></a>
-Set <a href='#SkPaint_Style'>Style</a> <a href='#SkPaint_Style'>to</a> <a href='#SkPaint_kFill_Style'>kFill_Style</a> <a href='#SkPaint_kFill_Style'>to</a> <a href='#SkPaint_kFill_Style'>fill</a> <a href='#SkPaint_kFill_Style'>the</a> <a href='#SkPaint_kFill_Style'>shape</a>.
-<a href='#SkPaint_kFill_Style'>The</a> <a href='#SkPaint_kFill_Style'>fill</a> <a href='#SkPaint_kFill_Style'>covers</a> <a href='#SkPaint_kFill_Style'>the</a> <a href='#SkPaint_kFill_Style'>area</a> <a href='#SkPaint_kFill_Style'>inside</a> <a href='#SkPaint_kFill_Style'>the</a> <a href='#SkPaint_kFill_Style'>geometry</a> <a href='#SkPaint_kFill_Style'>for</a> <a href='#SkPaint_kFill_Style'>most</a> <a href='#SkPaint_kFill_Style'>shapes</a>.
+Set <a href='#SkPaint_Style'>Style</a> to <a href='#SkPaint_kFill_Style'>kFill_Style</a> to fill the shape.
+The fill covers the area inside the geometry for most shapes.
<a name='Style_Stroke'></a>
-Set <a href='#SkPaint_Style'>Style</a> <a href='#SkPaint_Style'>to</a> <a href='#SkPaint_kStroke_Style'>kStroke_Style</a> <a href='#SkPaint_kStroke_Style'>to</a> <a href='#SkPaint_kStroke_Style'>stroke</a> <a href='#SkPaint_kStroke_Style'>the</a> <a href='#SkPaint_kStroke_Style'>shape</a>.
+Set <a href='#SkPaint_Style'>Style</a> to <a href='#SkPaint_kStroke_Style'>kStroke_Style</a> to stroke the shape.
-<a href='#SkPaint_kStroke_Style'>The</a> <a href='#SkPaint_kStroke_Style'>stroke</a> <a href='#SkPaint_kStroke_Style'>covers</a> <a href='#SkPaint_kStroke_Style'>the</a> <a href='#SkPaint_kStroke_Style'>area</a> <a href='#SkPaint_kStroke_Style'>described</a> <a href='#SkPaint_kStroke_Style'>by</a> <a href='#SkPaint_kStroke_Style'>following</a> <a href='#SkPaint_kStroke_Style'>the</a> <a href='#SkPaint_kStroke_Style'>shape</a> <a href='#SkPaint_kStroke_Style'>edge</a> <a href='#SkPaint_kStroke_Style'>with</a> <a href='#SkPaint_kStroke_Style'>a</a> <a href='#SkPaint_kStroke_Style'>pen</a> <a href='#SkPaint_kStroke_Style'>or</a> <a href='#SkPaint_kStroke_Style'>brush</a> <a href='#SkPaint_kStroke_Style'>of</a>
-<a href='#Paint_Stroke_Width'>Stroke_Width</a>. <a href='#Paint_Stroke_Width'>The</a> <a href='#Paint_Stroke_Width'>area</a> <a href='#Paint_Stroke_Width'>covered</a> <a href='#Paint_Stroke_Width'>where</a> <a href='#Paint_Stroke_Width'>the</a> <a href='#Paint_Stroke_Width'>shape</a> <a href='#Paint_Stroke_Width'>starts</a> <a href='#Paint_Stroke_Width'>and</a> <a href='#Paint_Stroke_Width'>stops</a> <a href='#Paint_Stroke_Width'>is</a> <a href='#Paint_Stroke_Width'>described</a> <a href='#Paint_Stroke_Width'>by</a> <a href='#Paint_Stroke_Cap'>Stroke_Cap</a>.
-<a href='#Paint_Stroke_Cap'>The</a> <a href='#Paint_Stroke_Cap'>area</a> <a href='#Paint_Stroke_Cap'>covered</a> <a href='#Paint_Stroke_Cap'>where</a> <a href='#Paint_Stroke_Cap'>the</a> <a href='#Paint_Stroke_Cap'>shape</a> <a href='#Paint_Stroke_Cap'>turns</a> <a href='#Paint_Stroke_Cap'>a</a> <a href='#Paint_Stroke_Cap'>corner</a> <a href='#Paint_Stroke_Cap'>is</a> <a href='#Paint_Stroke_Cap'>described</a> <a href='#Paint_Stroke_Cap'>by</a> <a href='#Paint_Stroke_Join'>Stroke_Join</a>.
-<a href='#Paint_Stroke_Join'>The</a> <a href='#Paint_Stroke_Join'>stroke</a> <a href='#Paint_Stroke_Join'>is</a> <a href='#Paint_Stroke_Join'>centered</a> <a href='#Paint_Stroke_Join'>on</a> <a href='#Paint_Stroke_Join'>the</a> <a href='#Paint_Stroke_Join'>shape</a>; <a href='#Paint_Stroke_Join'>it</a> <a href='#Paint_Stroke_Join'>extends</a> <a href='#Paint_Stroke_Join'>equally</a> <a href='#Paint_Stroke_Join'>on</a> <a href='#Paint_Stroke_Join'>either</a> <a href='#Paint_Stroke_Join'>side</a> <a href='#Paint_Stroke_Join'>of</a> <a href='#Paint_Stroke_Join'>the</a> <a href='#Paint_Stroke_Join'>shape</a> <a href='#Paint_Stroke_Join'>edge</a>.As <a href='#Paint_Stroke_Width'>Stroke_Width</a> <a href='#Paint_Stroke_Width'>gets</a> <a href='#Paint_Stroke_Width'>smaller</a>, <a href='#Paint_Stroke_Width'>the</a> <a href='#Paint_Stroke_Width'>drawn</a> <a href='SkPath_Reference#Path'>path</a> <a href='SkPath_Reference#Path'>frame</a> <a href='SkPath_Reference#Path'>is</a> <a href='SkPath_Reference#Path'>thinner</a>. <a href='#Paint_Stroke_Width'>Stroke_Width</a> <a href='#Paint_Stroke_Width'>less</a> <a href='#Paint_Stroke_Width'>than</a> <a href='#Paint_Stroke_Width'>one</a>
-<a href='#Paint_Stroke_Width'>may</a> <a href='#Paint_Stroke_Width'>have</a> <a href='#Paint_Stroke_Width'>gaps</a>, <a href='#Paint_Stroke_Width'>and</a> <a href='#Paint_Stroke_Width'>if</a> <a href='#SkPaint_kAntiAlias_Flag'>kAntiAlias_Flag</a> <a href='#SkPaint_kAntiAlias_Flag'>is</a> <a href='#SkPaint_kAntiAlias_Flag'>set</a>, <a href='#Color_Alpha'>Color_Alpha</a> <a href='#Color_Alpha'>will</a> <a href='#Color_Alpha'>increase</a> <a href='#Color_Alpha'>to</a> <a href='#Color_Alpha'>visually</a> <a href='#Color_Alpha'>decrease</a> <a href='#Color_Alpha'>coverage</a>.
+The stroke covers the area described by following the shape edge with a pen or brush of
+<a href='#Paint_Stroke_Width'>Stroke_Width</a>. The area covered where the shape starts and stops is described by <a href='#Paint_Stroke_Cap'>Stroke_Cap</a>.
+The area covered where the shape turns a corner is described by <a href='#Paint_Stroke_Join'>Stroke_Join</a>.
+The stroke is centered on the shape; it extends equally on either side of the shape edge.As <a href='#Paint_Stroke_Width'>Stroke_Width</a> gets smaller, the drawn <a href='SkPath_Reference#Path'>path</a> frame is thinner. <a href='#Paint_Stroke_Width'>Stroke_Width</a> less than one
+may have gaps, and if <a href='#SkPaint_kAntiAlias_Flag'>kAntiAlias_Flag</a> is set, <a href='#Color_Alpha'>Color_Alpha</a> will increase to visually decrease coverage.
### See Also
@@ -2043,15 +1924,15 @@
---
-<a href='#Paint_Stroke_Width'>Stroke_Width</a> <a href='#Paint_Stroke_Width'>of</a> <a href='#Paint_Stroke_Width'>zero</a> <a href='#Paint_Stroke_Width'>has</a> <a href='#Paint_Stroke_Width'>a</a> <a href='#Paint_Stroke_Width'>special</a> <a href='#Paint_Stroke_Width'>meaning</a> <a href='#Paint_Stroke_Width'>and</a> <a href='#Paint_Stroke_Width'>switches</a> <a href='#Paint_Stroke_Width'>drawing</a> <a href='#Paint_Stroke_Width'>to</a> <a href='#Paint_Stroke_Width'>use</a> <a href='#Paint_Stroke_Width'>Hairline</a>.
-<a href='#Paint_Stroke_Width'>Hairline</a> <a href='#Paint_Stroke_Width'>draws</a> <a href='#Paint_Stroke_Width'>the</a> <a href='#Paint_Stroke_Width'>thinnest</a> <a href='#Paint_Stroke_Width'>continuous</a> <a href='#Paint_Stroke_Width'>frame</a>. <a href='#Paint_Stroke_Width'>If</a> <a href='#SkPaint_kAntiAlias_Flag'>kAntiAlias_Flag</a> <a href='#SkPaint_kAntiAlias_Flag'>is</a> <a href='#SkPaint_kAntiAlias_Flag'>clear</a>, <a href='#SkPaint_kAntiAlias_Flag'>adjacent</a> <a href='#SkPaint_kAntiAlias_Flag'>pixels</a>
-<a href='#SkPaint_kAntiAlias_Flag'>flow</a> <a href='#SkPaint_kAntiAlias_Flag'>horizontally</a>, <a href='#SkPaint_kAntiAlias_Flag'>vertically</a>,<a href='#SkPaint_kAntiAlias_Flag'>or</a> <a href='#SkPaint_kAntiAlias_Flag'>diagonally</a>.
+<a href='#Paint_Stroke_Width'>Stroke_Width</a> of zero has a special meaning and switches drawing to use Hairline.
+Hairline draws the thinnest continuous frame. If <a href='#SkPaint_kAntiAlias_Flag'>kAntiAlias_Flag</a> is clear, adjacent pixels
+flow horizontally, vertically,or diagonally.
-<a href='SkPath_Reference#Path'>Path</a> <a href='SkPath_Reference#Path'>drawing</a> <a href='SkPath_Reference#Path'>with</a> <a href='SkPath_Reference#Path'>Hairline</a> <a href='SkPath_Reference#Path'>may</a> <a href='SkPath_Reference#Path'>hit</a> <a href='SkPath_Reference#Path'>the</a> <a href='SkPath_Reference#Path'>same</a> <a href='undocumented#Pixel'>pixel</a> <a href='undocumented#Pixel'>more</a> <a href='undocumented#Pixel'>than</a> <a href='undocumented#Pixel'>once</a>. <a href='undocumented#Pixel'>For</a> <a href='undocumented#Pixel'>instance</a>, <a href='SkPath_Reference#Path'>Path</a> <a href='SkPath_Reference#Path'>containing</a>
-<a href='SkPath_Reference#Path'>two</a> <a href='undocumented#Line'>lines</a> <a href='undocumented#Line'>in</a> <a href='undocumented#Line'>one</a> <a href='#Path_Overview_Contour'>Path_Contour</a> <a href='#Path_Overview_Contour'>will</a> <a href='#Path_Overview_Contour'>draw</a> <a href='#Path_Overview_Contour'>the</a> <a href='#Path_Overview_Contour'>corner</a> <a href='SkPoint_Reference#Point'>point</a> <a href='SkPoint_Reference#Point'>once</a>, <a href='SkPoint_Reference#Point'>but</a> <a href='SkPoint_Reference#Point'>may</a> <a href='SkPoint_Reference#Point'>both</a> <a href='undocumented#Line'>lines</a> <a href='undocumented#Line'>may</a> <a href='undocumented#Line'>draw</a> <a href='undocumented#Line'>the</a> <a href='undocumented#Line'>adjacent</a>
-<a href='undocumented#Pixel'>pixel</a>. <a href='undocumented#Pixel'>If</a> <a href='#SkPaint_kAntiAlias_Flag'>kAntiAlias_Flag</a> <a href='#SkPaint_kAntiAlias_Flag'>is</a> <a href='#SkPaint_kAntiAlias_Flag'>set</a>, <a href='#SkPaint_kAntiAlias_Flag'>transparency</a> <a href='#SkPaint_kAntiAlias_Flag'>is</a> <a href='#SkPaint_kAntiAlias_Flag'>applied</a> <a href='#SkPaint_kAntiAlias_Flag'>twice</a>, <a href='#SkPaint_kAntiAlias_Flag'>resulting</a> <a href='#SkPaint_kAntiAlias_Flag'>in</a> <a href='#SkPaint_kAntiAlias_Flag'>a</a> <a href='#SkPaint_kAntiAlias_Flag'>darker</a> <a href='undocumented#Pixel'>pixel</a>. <a href='undocumented#Pixel'>Some</a>
-<a href='undocumented#Pixel'>GPU-backed</a> <a href='undocumented#Pixel'>implementations</a> <a href='undocumented#Pixel'>apply</a> <a href='undocumented#Pixel'>transparency</a> <a href='undocumented#Pixel'>at</a> <a href='undocumented#Pixel'>a</a> <a href='undocumented#Pixel'>later</a> <a href='undocumented#Pixel'>drawing</a> <a href='undocumented#Pixel'>stage</a>, <a href='undocumented#Pixel'>avoiding</a> <a href='undocumented#Pixel'>double</a> <a href='undocumented#Pixel'>hit</a> <a href='undocumented#Pixel'>pixels</a>
-<a href='undocumented#Pixel'>while</a> <a href='undocumented#Pixel'>stroking</a>.
+<a href='SkPath_Reference#Path'>Path</a> drawing with Hairline may hit the same <a href='undocumented#Pixel'>pixel</a> more than once. For instance, <a href='SkPath_Reference#Path'>Path</a> containing
+two <a href='undocumented#Line'>lines</a> in one <a href='#Path_Overview_Contour'>Path_Contour</a> will draw the corner <a href='SkPoint_Reference#Point'>point</a> once, but may both <a href='undocumented#Line'>lines</a> may draw the adjacent
+<a href='undocumented#Pixel'>pixel</a>. If <a href='#SkPaint_kAntiAlias_Flag'>kAntiAlias_Flag</a> is set, transparency is applied twice, resulting in a darker <a href='undocumented#Pixel'>pixel</a>. Some
+GPU-backed implementations apply transparency at a later drawing stage, avoiding double hit pixels
+while stroking.
### See Also
@@ -2062,7 +1943,7 @@
---
<pre style="padding: 1em 1em 1em 1em;width: 62.5em; background-color: #f0f0f0">
- enum <a href='#SkPaint_Style'>Style</a> : <a href='#SkPaint_Style'>uint8_t</a> {
+ enum <a href='#SkPaint_Style'>Style</a> : uint8_t {
<a href='#SkPaint_kFill_Style'>kFill_Style</a>,
<a href='#SkPaint_kStroke_Style'>kStroke_Style</a>,
<a href='#SkPaint_kStrokeAndFill_Style'>kStrokeAndFill_Style</a>,
@@ -2073,12 +1954,12 @@
static constexpr int <a href='#SkPaint_kStyleCount'>kStyleCount</a> = <a href='#SkPaint_kStrokeAndFill_Style'>kStrokeAndFill_Style</a> + 1;
</pre>
-Set <a href='#SkPaint_Style'>Style</a> <a href='#SkPaint_Style'>to</a> <a href='#SkPaint_Style'>fill</a>, <a href='#SkPaint_Style'>stroke</a>, <a href='#SkPaint_Style'>or</a> <a href='#SkPaint_Style'>both</a> <a href='#SkPaint_Style'>fill</a> <a href='#SkPaint_Style'>and</a> <a href='#SkPaint_Style'>stroke</a> <a href='#SkPaint_Style'>geometry</a>.
-<a href='#SkPaint_Style'>The</a> <a href='#SkPaint_Style'>stroke</a> <a href='#SkPaint_Style'>and</a> <a href='#SkPaint_Style'>fill</a>
-<a href='#SkPaint_Style'>share</a> <a href='#SkPaint_Style'>all</a> <a href='SkPaint_Reference#Paint'>paint</a> <a href='SkPaint_Reference#Paint'>attributes</a>; <a href='SkPaint_Reference#Paint'>for</a> <a href='SkPaint_Reference#Paint'>instance</a>, <a href='SkPaint_Reference#Paint'>they</a> <a href='SkPaint_Reference#Paint'>are</a> <a href='SkPaint_Reference#Paint'>drawn</a> <a href='SkPaint_Reference#Paint'>with</a> <a href='SkPaint_Reference#Paint'>the</a> <a href='SkPaint_Reference#Paint'>same</a> <a href='SkColor_Reference#Color'>color</a>.
+Set <a href='#SkPaint_Style'>Style</a> to fill, stroke, or both fill and stroke geometry.
+The stroke and fill
+share all <a href='SkPaint_Reference#Paint'>paint</a> attributes; for instance, they are drawn with the same <a href='SkColor_Reference#Color'>color</a>.
-<a href='SkColor_Reference#Color'>Use</a> <a href='#SkPaint_kStrokeAndFill_Style'>kStrokeAndFill_Style</a> <a href='#SkPaint_kStrokeAndFill_Style'>to</a> <a href='#SkPaint_kStrokeAndFill_Style'>avoid</a> <a href='#SkPaint_kStrokeAndFill_Style'>hitting</a> <a href='#SkPaint_kStrokeAndFill_Style'>the</a> <a href='#SkPaint_kStrokeAndFill_Style'>same</a> <a href='#SkPaint_kStrokeAndFill_Style'>pixels</a> <a href='#SkPaint_kStrokeAndFill_Style'>twice</a> <a href='#SkPaint_kStrokeAndFill_Style'>with</a> <a href='#SkPaint_kStrokeAndFill_Style'>a</a> <a href='#SkPaint_kStrokeAndFill_Style'>stroke</a> <a href='#SkPaint_kStrokeAndFill_Style'>draw</a> <a href='#SkPaint_kStrokeAndFill_Style'>and</a>
-<a href='#SkPaint_kStrokeAndFill_Style'>a</a> <a href='#SkPaint_kStrokeAndFill_Style'>fill</a> <a href='#SkPaint_kStrokeAndFill_Style'>draw</a>.
+Use <a href='#SkPaint_kStrokeAndFill_Style'>kStrokeAndFill_Style</a> to avoid hitting the same pixels twice with a stroke draw and
+a fill draw.
### Constants
@@ -2090,38 +1971,38 @@
<td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a name='SkPaint_kFill_Style'><code>SkPaint::kFill_Style</code></a></td>
<td style='text-align: center; border: 2px solid #dddddd; padding: 8px; '>0</td>
<td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>
-Applies to <a href='SkRect_Reference#Rect'>Rect</a>, <a href='SkRegion_Reference#Region'>Region</a>, <a href='#RRect'>Round_Rect</a>, <a href='undocumented#Circle'>Circles</a>, <a href='undocumented#Oval'>Ovals</a>, <a href='SkPath_Reference#Path'>Path</a>, <a href='SkPath_Reference#Path'>and</a> <a href='undocumented#Text'>Text</a>.
-<a href='SkBitmap_Reference#Bitmap'>Bitmap</a>, <a href='SkImage_Reference#Image'>Image</a>, <a href='undocumented#Patch'>Patches</a>, <a href='SkRegion_Reference#Region'>Region</a>, <a href='undocumented#Sprite'>Sprites</a>, <a href='undocumented#Sprite'>and</a> <a href='undocumented#Vertices'>Vertices</a> <a href='undocumented#Vertices'>are</a> <a href='undocumented#Vertices'>painted</a> <a href='undocumented#Vertices'>as</a> <a href='undocumented#Vertices'>if</a>
-<a href='#SkPaint_kFill_Style'>kFill_Style</a> <a href='#SkPaint_kFill_Style'>is</a> <a href='#SkPaint_kFill_Style'>set</a>, <a href='#SkPaint_kFill_Style'>and</a> <a href='#SkPaint_kFill_Style'>ignore</a> <a href='#SkPaint_kFill_Style'>the</a> <a href='#SkPaint_kFill_Style'>set</a> <a href='#SkPaint_Style'>Style</a>.
-<a href='#SkPaint_Style'>The</a> <a href='#Path_Fill_Type'>Path_Fill_Type</a> <a href='#Path_Fill_Type'>specifies</a> <a href='#Path_Fill_Type'>additional</a> <a href='#Path_Fill_Type'>rules</a> <a href='#Path_Fill_Type'>to</a> <a href='#Path_Fill_Type'>fill</a> <a href='#Path_Fill_Type'>the</a> <a href='#Path_Fill_Type'>area</a> <a href='#Path_Fill_Type'>outside</a> <a href='#Path_Fill_Type'>the</a> <a href='SkPath_Reference#Path'>path</a> <a href='SkPath_Reference#Path'>edge</a>,
-<a href='SkPath_Reference#Path'>and</a> <a href='SkPath_Reference#Path'>to</a> <a href='SkPath_Reference#Path'>create</a> <a href='SkPath_Reference#Path'>an</a> <a href='SkPath_Reference#Path'>unfilled</a> <a href='SkPath_Reference#Path'>hole</a> <a href='SkPath_Reference#Path'>inside</a> <a href='SkPath_Reference#Path'>the</a> <a href='SkPath_Reference#Path'>shape</a>.
-<a href='#SkPaint_Style'>Style</a> <a href='#SkPaint_Style'>is</a> <a href='#SkPaint_Style'>set</a> <a href='#SkPaint_Style'>to</a> <a href='#SkPaint_kFill_Style'>kFill_Style</a> <a href='#SkPaint_kFill_Style'>by</a> <a href='#SkPaint_kFill_Style'>default</a>.
+Applies to <a href='SkRect_Reference#Rect'>Rect</a>, <a href='SkRegion_Reference#Region'>Region</a>, <a href='#RRect'>Round_Rect</a>, <a href='undocumented#Circle'>Circles</a>, <a href='undocumented#Oval'>Ovals</a>, <a href='SkPath_Reference#Path'>Path</a>, and <a href='undocumented#Text'>Text</a>.
+<a href='SkBitmap_Reference#Bitmap'>Bitmap</a>, <a href='SkImage_Reference#Image'>Image</a>, <a href='undocumented#Patch'>Patches</a>, <a href='SkRegion_Reference#Region'>Region</a>, <a href='undocumented#Sprite'>Sprites</a>, and <a href='undocumented#Vertices'>Vertices</a> are painted as if
+<a href='#SkPaint_kFill_Style'>kFill_Style</a> is set, and ignore the set <a href='#SkPaint_Style'>Style</a>.
+The <a href='#Path_Fill_Type'>Path_Fill_Type</a> specifies additional rules to fill the area outside the <a href='SkPath_Reference#Path'>path</a> edge,
+and to create an unfilled hole inside the shape.
+<a href='#SkPaint_Style'>Style</a> is set to <a href='#SkPaint_kFill_Style'>kFill_Style</a> by default.
</td>
</tr>
<tr>
<td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a name='SkPaint_kStroke_Style'><code>SkPaint::kStroke_Style</code></a></td>
<td style='text-align: center; border: 2px solid #dddddd; padding: 8px; '>1</td>
<td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>
-Applies to <a href='SkRect_Reference#Rect'>Rect</a>, <a href='SkRegion_Reference#Region'>Region</a>, <a href='#RRect'>Round_Rect</a>, <a href='undocumented#Arc'>Arcs</a>, <a href='undocumented#Circle'>Circles</a>, <a href='undocumented#Oval'>Ovals</a>, <a href='SkPath_Reference#Path'>Path</a>, <a href='SkPath_Reference#Path'>and</a> <a href='undocumented#Text'>Text</a>.
-<a href='undocumented#Arc'>Arcs</a>, <a href='undocumented#Line'>Lines</a>, <a href='undocumented#Line'>and</a> <a href='SkPoint_Reference#Point'>points</a>, <a href='SkPoint_Reference#Point'>are</a> <a href='SkPoint_Reference#Point'>always</a> <a href='SkPoint_Reference#Point'>drawn</a> <a href='SkPoint_Reference#Point'>as</a> <a href='SkPoint_Reference#Point'>if</a> <a href='#SkPaint_kStroke_Style'>kStroke_Style</a> <a href='#SkPaint_kStroke_Style'>is</a> <a href='#SkPaint_kStroke_Style'>set</a>,
-<a href='#SkPaint_kStroke_Style'>and</a> <a href='#SkPaint_kStroke_Style'>ignore</a> <a href='#SkPaint_kStroke_Style'>the</a> <a href='#SkPaint_kStroke_Style'>set</a> <a href='#SkPaint_Style'>Style</a>.
-<a href='#SkPaint_Style'>The</a> <a href='#SkPaint_Style'>stroke</a> <a href='#SkPaint_Style'>construction</a> <a href='#SkPaint_Style'>is</a> <a href='#SkPaint_Style'>unaffected</a> <a href='#SkPaint_Style'>by</a> <a href='#SkPaint_Style'>the</a> <a href='#Path_Fill_Type'>Path_Fill_Type</a>.
+Applies to <a href='SkRect_Reference#Rect'>Rect</a>, <a href='SkRegion_Reference#Region'>Region</a>, <a href='#RRect'>Round_Rect</a>, <a href='undocumented#Arc'>Arcs</a>, <a href='undocumented#Circle'>Circles</a>, <a href='undocumented#Oval'>Ovals</a>, <a href='SkPath_Reference#Path'>Path</a>, and <a href='undocumented#Text'>Text</a>.
+<a href='undocumented#Arc'>Arcs</a>, <a href='undocumented#Line'>Lines</a>, and <a href='SkPoint_Reference#Point'>points</a>, are always drawn as if <a href='#SkPaint_kStroke_Style'>kStroke_Style</a> is set,
+and ignore the set <a href='#SkPaint_Style'>Style</a>.
+The stroke construction is unaffected by the <a href='#Path_Fill_Type'>Path_Fill_Type</a>.
</td>
</tr>
<tr style='background-color: #f0f0f0; '>
<td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a name='SkPaint_kStrokeAndFill_Style'><code>SkPaint::kStrokeAndFill_Style</code></a></td>
<td style='text-align: center; border: 2px solid #dddddd; padding: 8px; '>2</td>
<td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>
-Applies to <a href='SkRect_Reference#Rect'>Rect</a>, <a href='SkRegion_Reference#Region'>Region</a>, <a href='#RRect'>Round_Rect</a>, <a href='undocumented#Circle'>Circles</a>, <a href='undocumented#Oval'>Ovals</a>, <a href='SkPath_Reference#Path'>Path</a>, <a href='SkPath_Reference#Path'>and</a> <a href='undocumented#Text'>Text</a>.
-<a href='SkPath_Reference#Path'>Path</a> <a href='SkPath_Reference#Path'>is</a> <a href='SkPath_Reference#Path'>treated</a> <a href='SkPath_Reference#Path'>as</a> <a href='SkPath_Reference#Path'>if</a> <a href='SkPath_Reference#Path'>it</a> <a href='SkPath_Reference#Path'>is</a> <a href='SkPath_Reference#Path'>set</a> <a href='SkPath_Reference#Path'>to</a> <a href='SkPath_Reference#SkPath'>SkPath</a>::<a href='#SkPath_kWinding_FillType'>kWinding_FillType</a>,
-<a href='#SkPath_kWinding_FillType'>and</a> <a href='#SkPath_kWinding_FillType'>the</a> <a href='#SkPath_kWinding_FillType'>set</a> <a href='#Path_Fill_Type'>Path_Fill_Type</a> <a href='#Path_Fill_Type'>is</a> <a href='#Path_Fill_Type'>ignored</a>.
+Applies to <a href='SkRect_Reference#Rect'>Rect</a>, <a href='SkRegion_Reference#Region'>Region</a>, <a href='#RRect'>Round_Rect</a>, <a href='undocumented#Circle'>Circles</a>, <a href='undocumented#Oval'>Ovals</a>, <a href='SkPath_Reference#Path'>Path</a>, and <a href='undocumented#Text'>Text</a>.
+<a href='SkPath_Reference#Path'>Path</a> is treated as if it is set to <a href='SkPath_Reference#SkPath'>SkPath</a>::<a href='#SkPath_kWinding_FillType'>kWinding_FillType</a>,
+and the set <a href='#Path_Fill_Type'>Path_Fill_Type</a> is ignored.
</td>
</tr>
<tr>
<td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a name='SkPaint_kStyleCount'><code>SkPaint::kStyleCount</code></a></td>
<td style='text-align: center; border: 2px solid #dddddd; padding: 8px; '>3</td>
<td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>
-May be used to verify that <a href='#SkPaint_Style'>Style</a> <a href='#SkPaint_Style'>is</a> <a href='#SkPaint_Style'>a</a> <a href='#SkPaint_Style'>legal</a> <a href='#SkPaint_Style'>value</a>.
+May be used to verify that <a href='#SkPaint_Style'>Style</a> is a legal value.
</td>
</tr>
</table>
@@ -2131,7 +2012,7 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-<a href='#SkPaint_Style'>Style</a> <a href='#SkPaint_getStyle'>getStyle</a>() <a href='#SkPaint_getStyle'>const</a>
+<a href='#SkPaint_Style'>Style</a> <a href='#SkPaint_getStyle'>getStyle</a>() const
</pre>
Returns whether the geometry is filled, stroked, or filled and stroked.
@@ -2161,11 +2042,11 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-void <a href='#SkPaint_setStyle'>setStyle</a>(<a href='#SkPaint_Style'>Style</a> <a href='#SkPaint_Style'>style</a>)
+void <a href='#SkPaint_setStyle'>setStyle</a>(<a href='#SkPaint_Style'>Style</a> style)
</pre>
Sets whether the geometry is filled, stroked, or filled and stroked.
-Has no effect if <a href='#SkPaint_setStyle_style'>style</a> <a href='#SkPaint_setStyle_style'>is</a> <a href='#SkPaint_setStyle_style'>not</a> <a href='#SkPaint_setStyle_style'>a</a> <a href='#SkPaint_setStyle_style'>legal</a> <a href='SkPaint_Reference#SkPaint'>SkPaint</a>::<a href='#SkPaint_Style'>Style</a> <a href='#SkPaint_Style'>value</a>.
+Has no effect if <a href='#SkPaint_setStyle_style'>style</a> is not a legal <a href='SkPaint_Reference#SkPaint'>SkPaint</a>::<a href='#SkPaint_Style'>Style</a> value.
### Parameters
@@ -2186,23 +2067,23 @@
---
-<a href='#Paint_Stroke_Width'>Stroke_Width</a> <a href='#Paint_Stroke_Width'>sets</a> <a href='#Paint_Stroke_Width'>the</a> <a href='#Paint_Stroke_Width'>width</a> <a href='#Paint_Stroke_Width'>for</a> <a href='#Paint_Stroke_Width'>stroking</a>. <a href='#Paint_Stroke_Width'>The</a> <a href='#Paint_Stroke_Width'>width</a> <a href='#Paint_Stroke_Width'>is</a> <a href='#Paint_Stroke_Width'>the</a> <a href='#Paint_Stroke_Width'>thickness</a>
-<a href='#Paint_Stroke_Width'>of</a> <a href='#Paint_Stroke_Width'>the</a> <a href='#Paint_Stroke_Width'>stroke</a> <a href='#Paint_Stroke_Width'>perpendicular</a> <a href='#Paint_Stroke_Width'>to</a> <a href='#Paint_Stroke_Width'>the</a> <a href='SkPath_Reference#Path_Direction'>path direction</a> <a href='SkPath_Reference#Path'>when</a> <a href='SkPath_Reference#Path'>the</a> <a href='SkPaint_Reference#Paint'>paint style</a> <a href='SkPaint_Reference#Paint'>is</a>
-<a href='SkPaint_Reference#Paint'>set</a> <a href='SkPaint_Reference#Paint'>to</a> <a href='#SkPaint_kStroke_Style'>kStroke_Style</a> <a href='#SkPaint_kStroke_Style'>or</a> <a href='#SkPaint_kStrokeAndFill_Style'>kStrokeAndFill_Style</a>.
+<a href='#Paint_Stroke_Width'>Stroke_Width</a> sets the width for stroking. The width is the thickness
+of the stroke perpendicular to the <a href='SkPath_Reference#Path_Direction'>path direction</a> when the <a href='SkPaint_Reference#Paint'>paint style</a> is
+set to <a href='#SkPaint_kStroke_Style'>kStroke_Style</a> or <a href='#SkPaint_kStrokeAndFill_Style'>kStrokeAndFill_Style</a>.
-<a href='#SkPaint_kStrokeAndFill_Style'>When</a> <a href='#SkPaint_kStrokeAndFill_Style'>width</a> <a href='#SkPaint_kStrokeAndFill_Style'>is</a> <a href='#SkPaint_kStrokeAndFill_Style'>greater</a> <a href='#SkPaint_kStrokeAndFill_Style'>than</a> <a href='#SkPaint_kStrokeAndFill_Style'>zero</a>, <a href='#SkPaint_kStrokeAndFill_Style'>the</a> <a href='#SkPaint_kStrokeAndFill_Style'>stroke</a> <a href='#SkPaint_kStrokeAndFill_Style'>encompasses</a> <a href='#SkPaint_kStrokeAndFill_Style'>as</a> <a href='#SkPaint_kStrokeAndFill_Style'>many</a> <a href='#SkPaint_kStrokeAndFill_Style'>pixels</a> <a href='#SkPaint_kStrokeAndFill_Style'>partially</a>
-<a href='#SkPaint_kStrokeAndFill_Style'>or</a> <a href='#SkPaint_kStrokeAndFill_Style'>fully</a> <a href='#SkPaint_kStrokeAndFill_Style'>as</a> <a href='#SkPaint_kStrokeAndFill_Style'>needed</a>. <a href='#SkPaint_kStrokeAndFill_Style'>When</a> <a href='#SkPaint_kStrokeAndFill_Style'>the</a> <a href='#SkPaint_kStrokeAndFill_Style'>width</a> <a href='#SkPaint_kStrokeAndFill_Style'>equals</a> <a href='#SkPaint_kStrokeAndFill_Style'>zero</a>, <a href='#SkPaint_kStrokeAndFill_Style'>the</a> <a href='SkPaint_Reference#Paint'>paint</a> <a href='SkPaint_Reference#Paint'>enables</a> <a href='SkPaint_Reference#Paint'>hairlines</a>;
-<a href='SkPaint_Reference#Paint'>the</a> <a href='SkPaint_Reference#Paint'>stroke</a> <a href='SkPaint_Reference#Paint'>is</a> <a href='SkPaint_Reference#Paint'>always</a> <a href='SkPaint_Reference#Paint'>one</a> <a href='undocumented#Pixel'>pixel</a> <a href='undocumented#Pixel'>wide</a>.
+When width is greater than zero, the stroke encompasses as many pixels partially
+or fully as needed. When the width equals zero, the <a href='SkPaint_Reference#Paint'>paint</a> enables hairlines;
+the stroke is always one <a href='undocumented#Pixel'>pixel</a> wide.
-<a href='undocumented#Pixel'>The</a> <a href='undocumented#Pixel'>stroke</a> <a href='undocumented#Pixel'>dimensions</a> <a href='undocumented#Pixel'>are</a> <a href='undocumented#Pixel'>scaled</a> <a href='undocumented#Pixel'>by</a> <a href='undocumented#Pixel'>the</a> <a href='SkCanvas_Reference#Canvas_Matrix'>canvas matrix</a>, <a href='SkCanvas_Reference#Canvas'>but</a> <a href='SkCanvas_Reference#Canvas'>Hairline</a> <a href='SkCanvas_Reference#Canvas'>stroke</a>
-<a href='SkCanvas_Reference#Canvas'>remains</a> <a href='SkCanvas_Reference#Canvas'>one</a> <a href='undocumented#Pixel'>pixel</a> <a href='undocumented#Pixel'>wide</a> <a href='undocumented#Pixel'>regardless</a> <a href='undocumented#Pixel'>of</a> <a href='undocumented#Pixel'>scaling</a>.
+The stroke dimensions are scaled by the <a href='SkCanvas_Reference#Canvas_Matrix'>canvas matrix</a>, but Hairline stroke
+remains one <a href='undocumented#Pixel'>pixel</a> wide regardless of scaling.
-<a href='undocumented#Pixel'>The</a> <a href='undocumented#Pixel'>default</a> <a href='undocumented#Pixel'>width</a> <a href='undocumented#Pixel'>for</a> <a href='undocumented#Pixel'>the</a> <a href='SkPaint_Reference#Paint'>paint</a> <a href='SkPaint_Reference#Paint'>is</a> <a href='SkPaint_Reference#Paint'>zero</a>.
+The default width for the <a href='SkPaint_Reference#Paint'>paint</a> is zero.
### Example
-<div><fiddle-embed name="5112c7209a19e035c61cef33a624a652" gpu="true"><div>The pixels hit to represent thin <a href='undocumented#Line'>lines</a> <a href='undocumented#Line'>vary</a> <a href='undocumented#Line'>with</a> <a href='undocumented#Line'>the</a> <a href='undocumented#Line'>angle</a> <a href='undocumented#Line'>of</a> <a href='undocumented#Line'>the</a>
-<a href='undocumented#Line'>line</a> <a href='undocumented#Line'>and</a> <a href='undocumented#Line'>the</a> <a href='undocumented#Line'>platform</a> <a href='undocumented#Line'>implementation</a>.
+<div><fiddle-embed name="5112c7209a19e035c61cef33a624a652" gpu="true"><div>The pixels hit to represent thin <a href='undocumented#Line'>lines</a> vary with the angle of the
+<a href='undocumented#Line'>line</a> and the platform implementation.
</div></fiddle-embed></div>
<a name='SkPaint_getStrokeWidth'></a>
@@ -2210,10 +2091,10 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-<a href='undocumented#SkScalar'>SkScalar</a> <a href='#SkPaint_getStrokeWidth'>getStrokeWidth</a>() <a href='#SkPaint_getStrokeWidth'>const</a>
+<a href='undocumented#SkScalar'>SkScalar</a> <a href='#SkPaint_getStrokeWidth'>getStrokeWidth</a>() const
</pre>
-Returns the thickness of the pen used by <a href='SkPaint_Reference#SkPaint'>SkPaint</a> <a href='SkPaint_Reference#SkPaint'>to</a>
+Returns the thickness of the pen used by <a href='SkPaint_Reference#SkPaint'>SkPaint</a> to
outline the shape.
### Return Value
@@ -2237,12 +2118,12 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-void <a href='#SkPaint_setStrokeWidth'>setStrokeWidth</a>(<a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>width</a>)
+void <a href='#SkPaint_setStrokeWidth'>setStrokeWidth</a>(<a href='undocumented#SkScalar'>SkScalar</a> width)
</pre>
-Sets the thickness of the pen used by the <a href='SkPaint_Reference#Paint'>paint</a> <a href='SkPaint_Reference#Paint'>to</a>
+Sets the thickness of the pen used by the <a href='SkPaint_Reference#Paint'>paint</a> to
outline the shape.
-Has no effect if <a href='#SkPaint_setStrokeWidth_width'>width</a> <a href='#SkPaint_setStrokeWidth_width'>is</a> <a href='#SkPaint_setStrokeWidth_width'>less</a> <a href='#SkPaint_setStrokeWidth_width'>than</a> <a href='#SkPaint_setStrokeWidth_width'>zero</a>.
+Has no effect if <a href='#SkPaint_setStrokeWidth_width'>width</a> is less than zero.
### Parameters
@@ -2267,24 +2148,24 @@
---
-<a href='#Paint_Miter_Limit'>Miter_Limit</a> <a href='#Paint_Miter_Limit'>specifies</a> <a href='#Paint_Miter_Limit'>the</a> <a href='#Paint_Miter_Limit'>maximum</a> <a href='#Paint_Miter_Limit'>miter</a> <a href='#Paint_Miter_Limit'>length</a>,
-<a href='#Paint_Miter_Limit'>relative</a> <a href='#Paint_Miter_Limit'>to</a> <a href='#Paint_Miter_Limit'>the</a> <a href='#Stroke_Width'>stroke width</a>.
+<a href='#Paint_Miter_Limit'>Miter_Limit</a> specifies the maximum miter length,
+relative to the <a href='#Stroke_Width'>stroke width</a>.
-<a href='#Paint_Miter_Limit'>Miter_Limit</a> <a href='#Paint_Miter_Limit'>is</a> <a href='#Paint_Miter_Limit'>used</a> <a href='#Paint_Miter_Limit'>when</a> <a href='#Paint_Miter_Limit'>the</a> <a href='#Paint_Stroke_Join'>Stroke_Join</a>
-<a href='#Paint_Stroke_Join'>is</a> <a href='#Paint_Stroke_Join'>set</a> <a href='#Paint_Stroke_Join'>to</a> <a href='#SkPaint_kMiter_Join'>kMiter_Join</a>, <a href='#SkPaint_kMiter_Join'>and</a> <a href='#SkPaint_kMiter_Join'>the</a> <a href='#SkPaint_Style'>Style</a> <a href='#SkPaint_Style'>is</a> <a href='#SkPaint_Style'>either</a> <a href='#SkPaint_kStroke_Style'>kStroke_Style</a>
-<a href='#SkPaint_kStroke_Style'>or</a> <a href='#SkPaint_kStrokeAndFill_Style'>kStrokeAndFill_Style</a>.
+<a href='#Paint_Miter_Limit'>Miter_Limit</a> is used when the <a href='#Paint_Stroke_Join'>Stroke_Join</a>
+is set to <a href='#SkPaint_kMiter_Join'>kMiter_Join</a>, and the <a href='#SkPaint_Style'>Style</a> is either <a href='#SkPaint_kStroke_Style'>kStroke_Style</a>
+or <a href='#SkPaint_kStrokeAndFill_Style'>kStrokeAndFill_Style</a>.
-<a href='#SkPaint_kStrokeAndFill_Style'>If</a> <a href='#SkPaint_kStrokeAndFill_Style'>the</a> <a href='#SkPaint_kStrokeAndFill_Style'>miter</a> <a href='#SkPaint_kStrokeAndFill_Style'>at</a> <a href='#SkPaint_kStrokeAndFill_Style'>a</a> <a href='#SkPaint_kStrokeAndFill_Style'>corner</a> <a href='#SkPaint_kStrokeAndFill_Style'>exceeds</a> <a href='#SkPaint_kStrokeAndFill_Style'>this</a> <a href='#SkPaint_kStrokeAndFill_Style'>limit</a>, <a href='#SkPaint_kMiter_Join'>kMiter_Join</a>
-<a href='#SkPaint_kMiter_Join'>is</a> <a href='#SkPaint_kMiter_Join'>replaced</a> <a href='#SkPaint_kMiter_Join'>with</a> <a href='#SkPaint_kBevel_Join'>kBevel_Join</a>.
+If the miter at a corner exceeds this limit, <a href='#SkPaint_kMiter_Join'>kMiter_Join</a>
+is replaced with <a href='#SkPaint_kBevel_Join'>kBevel_Join</a>.
-<a href='#Paint_Miter_Limit'>Miter_Limit</a> <a href='#Paint_Miter_Limit'>can</a> <a href='#Paint_Miter_Limit'>be</a> <a href='#Paint_Miter_Limit'>computed</a> <a href='#Paint_Miter_Limit'>from</a> <a href='#Paint_Miter_Limit'>the</a> <a href='#Paint_Miter_Limit'>corner</a> <a href='#Paint_Miter_Limit'>angle</a> <a href='#Paint_Miter_Limit'>using</a>:
+<a href='#Paint_Miter_Limit'>Miter_Limit</a> can be computed from the corner angle using:
<code><a href='#Miter_Limit'>miter limit</a> = 1 / sin ( angle / 2 )</code>.
-<a href='#Paint_Miter_Limit'>Miter_Limit</a> <a href='#Paint_Miter_Limit'>default</a> <a href='#Paint_Miter_Limit'>value</a> <a href='#Paint_Miter_Limit'>is</a> 4.
-<a href='#Paint_Miter_Limit'>The</a> <a href='#Paint_Miter_Limit'>default</a> <a href='#Paint_Miter_Limit'>may</a> <a href='#Paint_Miter_Limit'>be</a> <a href='#Paint_Miter_Limit'>changed</a> <a href='#Paint_Miter_Limit'>at</a> <a href='#Paint_Miter_Limit'>compile</a> <a href='#Paint_Miter_Limit'>time</a> <a href='#Paint_Miter_Limit'>by</a> <a href='#Paint_Miter_Limit'>setting</a> <a href='undocumented#SkPaintDefaults_MiterLimit'>SkPaintDefaults_MiterLimit</a>
-<a href='undocumented#SkPaintDefaults_MiterLimit'>in</a> "<a href='undocumented#SkPaintDefaults_MiterLimit'>SkUserConfig</a>.<a href='undocumented#SkPaintDefaults_MiterLimit'>h</a>" <a href='undocumented#SkPaintDefaults_MiterLimit'>or</a> <a href='undocumented#SkPaintDefaults_MiterLimit'>as</a> <a href='undocumented#SkPaintDefaults_MiterLimit'>a</a> <a href='undocumented#SkPaintDefaults_MiterLimit'>define</a> <a href='undocumented#SkPaintDefaults_MiterLimit'>supplied</a> <a href='undocumented#SkPaintDefaults_MiterLimit'>by</a> <a href='undocumented#SkPaintDefaults_MiterLimit'>the</a> <a href='undocumented#SkPaintDefaults_MiterLimit'>build</a> <a href='undocumented#SkPaintDefaults_MiterLimit'>environment</a>.
+<a href='#Paint_Miter_Limit'>Miter_Limit</a> default value is 4.
+The default may be changed at compile time by setting <a href='undocumented#SkPaintDefaults_MiterLimit'>SkPaintDefaults_MiterLimit</a>
+in "SkUserConfig.h" or as a define supplied by the build environment.
-<a href='undocumented#SkPaintDefaults_MiterLimit'>Here</a> <a href='undocumented#SkPaintDefaults_MiterLimit'>are</a> <a href='undocumented#SkPaintDefaults_MiterLimit'>some</a> <a href='undocumented#SkPaintDefaults_MiterLimit'>miter</a> <a href='undocumented#SkPaintDefaults_MiterLimit'>limits</a> <a href='undocumented#SkPaintDefaults_MiterLimit'>and</a> <a href='undocumented#SkPaintDefaults_MiterLimit'>the</a> <a href='undocumented#SkPaintDefaults_MiterLimit'>angles</a> <a href='undocumented#SkPaintDefaults_MiterLimit'>that</a> <a href='undocumented#SkPaintDefaults_MiterLimit'>triggers</a> <a href='undocumented#SkPaintDefaults_MiterLimit'>them</a>.
+Here are some miter limits and the angles that triggers them.
| <a href='#Miter_Limit'>miter limit</a> | angle in degrees |
| --- | --- |
@@ -2311,7 +2192,7 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-<a href='undocumented#SkScalar'>SkScalar</a> <a href='#SkPaint_getStrokeMiter'>getStrokeMiter</a>() <a href='#SkPaint_getStrokeMiter'>const</a>
+<a href='undocumented#SkScalar'>SkScalar</a> <a href='#SkPaint_getStrokeMiter'>getStrokeMiter</a>() const
</pre>
Returns the limit at which a sharp corner is drawn beveled.
@@ -2341,12 +2222,12 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-void <a href='#SkPaint_setStrokeMiter'>setStrokeMiter</a>(<a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>miter</a>)
+void <a href='#SkPaint_setStrokeMiter'>setStrokeMiter</a>(<a href='undocumented#SkScalar'>SkScalar</a> miter)
</pre>
Sets the limit at which a sharp corner is drawn beveled.
Valid values are zero and greater.
-Has no effect if <a href='#SkPaint_setStrokeMiter_miter'>miter</a> <a href='#SkPaint_setStrokeMiter_miter'>is</a> <a href='#SkPaint_setStrokeMiter_miter'>less</a> <a href='#SkPaint_setStrokeMiter_miter'>than</a> <a href='#SkPaint_setStrokeMiter_miter'>zero</a>.
+Has no effect if <a href='#SkPaint_setStrokeMiter_miter'>miter</a> is less than zero.
### Parameters
@@ -2391,7 +2272,7 @@
static constexpr int <a href='#SkPaint_kCapCount'>kCapCount</a> = <a href='#SkPaint_kLast_Cap'>kLast_Cap</a> + 1;
</pre>
-<a href='#Paint_Stroke_Cap'>Stroke_Cap</a> <a href='#Paint_Stroke_Cap'>draws</a> <a href='#Paint_Stroke_Cap'>at</a> <a href='#Paint_Stroke_Cap'>the</a> <a href='#Paint_Stroke_Cap'>beginning</a> <a href='#Paint_Stroke_Cap'>and</a> <a href='#Paint_Stroke_Cap'>end</a> <a href='#Paint_Stroke_Cap'>of</a> <a href='#Paint_Stroke_Cap'>an</a> <a href='#Paint_Stroke_Cap'>open</a> <a href='#Path_Overview_Contour'>Path_Contour</a>.
+<a href='#Paint_Stroke_Cap'>Stroke_Cap</a> draws at the beginning and end of an open <a href='#Path_Overview_Contour'>Path_Contour</a>.
### Constants
@@ -2410,17 +2291,17 @@
<td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a name='SkPaint_kRound_Cap'><code>SkPaint::kRound_Cap</code></a></td>
<td style='text-align: center; border: 2px solid #dddddd; padding: 8px; '>1</td>
<td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>
-Adds a <a href='undocumented#Circle'>circle</a> <a href='undocumented#Circle'>with</a> <a href='undocumented#Circle'>a</a> <a href='undocumented#Circle'>diameter</a> <a href='undocumented#Circle'>equal</a> <a href='undocumented#Circle'>to</a> <a href='#Paint_Stroke_Width'>Stroke_Width</a> <a href='#Paint_Stroke_Width'>at</a> <a href='#Paint_Stroke_Width'>the</a> <a href='#Paint_Stroke_Width'>beginning</a>
-<a href='#Paint_Stroke_Width'>and</a> <a href='#Paint_Stroke_Width'>end</a>.
+Adds a <a href='undocumented#Circle'>circle</a> with a diameter equal to <a href='#Paint_Stroke_Width'>Stroke_Width</a> at the beginning
+and end.
</td>
</tr>
<tr style='background-color: #f0f0f0; '>
<td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a name='SkPaint_kSquare_Cap'><code>SkPaint::kSquare_Cap</code></a></td>
<td style='text-align: center; border: 2px solid #dddddd; padding: 8px; '>2</td>
<td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>
-Adds a square with sides equal to <a href='#Paint_Stroke_Width'>Stroke_Width</a> <a href='#Paint_Stroke_Width'>at</a> <a href='#Paint_Stroke_Width'>the</a> <a href='#Paint_Stroke_Width'>beginning</a>
-<a href='#Paint_Stroke_Width'>and</a> <a href='#Paint_Stroke_Width'>end</a>. <a href='#Paint_Stroke_Width'>The</a> <a href='#Paint_Stroke_Width'>square</a> <a href='#Paint_Stroke_Width'>sides</a> <a href='#Paint_Stroke_Width'>are</a> <a href='#Paint_Stroke_Width'>parallel</a> <a href='#Paint_Stroke_Width'>to</a> <a href='#Paint_Stroke_Width'>the</a> <a href='#Paint_Stroke_Width'>initial</a> <a href='#Paint_Stroke_Width'>and</a> <a href='#Paint_Stroke_Width'>final</a> <a href='#Paint_Stroke_Width'>direction</a>
-<a href='#Paint_Stroke_Width'>of</a> <a href='#Paint_Stroke_Width'>the</a> <a href='#Paint_Stroke_Width'>stroke</a>.
+Adds a square with sides equal to <a href='#Paint_Stroke_Width'>Stroke_Width</a> at the beginning
+and end. The square sides are parallel to the initial and final direction
+of the stroke.
</td>
</tr>
<tr>
@@ -2434,33 +2315,33 @@
<td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a name='SkPaint_kDefault_Cap'><code>SkPaint::kDefault_Cap</code></a></td>
<td style='text-align: center; border: 2px solid #dddddd; padding: 8px; '>0</td>
<td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>
-<a href='#Paint_Stroke_Cap'>Stroke_Cap</a> <a href='#Paint_Stroke_Cap'>is</a> <a href='#Paint_Stroke_Cap'>set</a> <a href='#Paint_Stroke_Cap'>to</a> <a href='#SkPaint_kButt_Cap'>kButt_Cap</a> <a href='#SkPaint_kButt_Cap'>by</a> <a href='#SkPaint_kButt_Cap'>default</a>.
+<a href='#Paint_Stroke_Cap'>Stroke_Cap</a> is set to <a href='#SkPaint_kButt_Cap'>kButt_Cap</a> by default.
</td>
</tr>
<tr>
<td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a name='SkPaint_kCapCount'><code>SkPaint::kCapCount</code></a></td>
<td style='text-align: center; border: 2px solid #dddddd; padding: 8px; '>3</td>
<td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>
-May be used to verify that <a href='#Paint_Stroke_Cap'>Stroke_Cap</a> <a href='#Paint_Stroke_Cap'>is</a> <a href='#Paint_Stroke_Cap'>a</a> <a href='#Paint_Stroke_Cap'>legal</a> <a href='#Paint_Stroke_Cap'>value</a>.
+May be used to verify that <a href='#Paint_Stroke_Cap'>Stroke_Cap</a> is a legal value.
</td>
</tr>
</table>
-Stroke describes the area covered by a pen of <a href='#Paint_Stroke_Width'>Stroke_Width</a> <a href='#Paint_Stroke_Width'>as</a> <a href='#Paint_Stroke_Width'>it</a>
-<a href='#Paint_Stroke_Width'>follows</a> <a href='#Paint_Stroke_Width'>the</a> <a href='#Path_Overview_Contour'>Path_Contour</a>, <a href='#Path_Overview_Contour'>moving</a> <a href='#Path_Overview_Contour'>parallel</a> <a href='#Path_Overview_Contour'>to</a> <a href='#Path_Overview_Contour'>the</a> <a href='SkPath_Overview#Contour'>contour</a> <a href='SkPath_Overview#Contour'>direction</a>.
+Stroke describes the area covered by a pen of <a href='#Paint_Stroke_Width'>Stroke_Width</a> as it
+follows the <a href='#Path_Overview_Contour'>Path_Contour</a>, moving parallel to the <a href='SkPath_Overview#Contour'>contour</a> direction.
-<a href='SkPath_Overview#Contour'>If</a> <a href='SkPath_Overview#Contour'>the</a> <a href='#Path_Overview_Contour'>Path_Contour</a> <a href='#Path_Overview_Contour'>is</a> <a href='#Path_Overview_Contour'>not</a> <a href='#Path_Overview_Contour'>terminated</a> <a href='#Path_Overview_Contour'>by</a> <a href='SkPath_Reference#SkPath'>SkPath</a>::<a href='#SkPath_kClose_Verb'>kClose_Verb</a>, <a href='#SkPath_kClose_Verb'>the</a> <a href='SkPath_Overview#Contour'>contour</a> <a href='SkPath_Overview#Contour'>has</a> <a href='SkPath_Overview#Contour'>a</a>
-<a href='SkPath_Overview#Contour'>visible</a> <a href='SkPath_Overview#Contour'>beginning</a> <a href='SkPath_Overview#Contour'>and</a> <a href='SkPath_Overview#Contour'>end</a>.
+If the <a href='#Path_Overview_Contour'>Path_Contour</a> is not terminated by <a href='SkPath_Reference#SkPath'>SkPath</a>::<a href='#SkPath_kClose_Verb'>kClose_Verb</a>, the <a href='SkPath_Overview#Contour'>contour</a> has a
+visible beginning and end.
-<a href='#Path_Overview_Contour'>Path_Contour</a> <a href='#Path_Overview_Contour'>may</a> <a href='#Path_Overview_Contour'>start</a> <a href='#Path_Overview_Contour'>and</a> <a href='#Path_Overview_Contour'>end</a> <a href='#Path_Overview_Contour'>at</a> <a href='#Path_Overview_Contour'>the</a> <a href='#Path_Overview_Contour'>same</a> <a href='SkPoint_Reference#Point'>point</a>; <a href='SkPoint_Reference#Point'>defining</a> <a href='#Path_Overview_Contour_Zero_Length'>Zero_Length_Contour</a>.
+<a href='#Path_Overview_Contour'>Path_Contour</a> may start and end at the same <a href='SkPoint_Reference#Point'>point</a>; defining <a href='#Path_Overview_Contour_Zero_Length'>Zero_Length_Contour</a>.
-<a href='#SkPaint_kButt_Cap'>kButt_Cap</a> <a href='#SkPaint_kButt_Cap'>and</a> <a href='#Path_Overview_Contour_Zero_Length'>Zero_Length_Contour</a> <a href='#Path_Overview_Contour_Zero_Length'>is</a> <a href='#Path_Overview_Contour_Zero_Length'>not</a> <a href='#Path_Overview_Contour_Zero_Length'>drawn</a>.
-<a href='#SkPaint_kRound_Cap'>kRound_Cap</a> <a href='#SkPaint_kRound_Cap'>and</a> <a href='#Path_Overview_Contour_Zero_Length'>Zero_Length_Contour</a> <a href='#Path_Overview_Contour_Zero_Length'>draws</a> <a href='#Path_Overview_Contour_Zero_Length'>a</a> <a href='undocumented#Circle'>circle</a> <a href='undocumented#Circle'>of</a> <a href='undocumented#Circle'>diameter</a> <a href='#Paint_Stroke_Width'>Stroke_Width</a>
-<a href='#Paint_Stroke_Width'>at</a> <a href='#Paint_Stroke_Width'>the</a> <a href='SkPath_Overview#Contour'>contour</a> <a href='SkPoint_Reference#Point'>point</a>.
-<a href='#SkPaint_kSquare_Cap'>kSquare_Cap</a> <a href='#SkPaint_kSquare_Cap'>and</a> <a href='#Path_Overview_Contour_Zero_Length'>Zero_Length_Contour</a> <a href='#Path_Overview_Contour_Zero_Length'>draws</a> <a href='#Path_Overview_Contour_Zero_Length'>an</a> <a href='#Path_Overview_Contour_Zero_Length'>upright</a> <a href='#Path_Overview_Contour_Zero_Length'>square</a> <a href='#Path_Overview_Contour_Zero_Length'>with</a> <a href='#Path_Overview_Contour_Zero_Length'>a</a> <a href='#Path_Overview_Contour_Zero_Length'>side</a> <a href='#Path_Overview_Contour_Zero_Length'>of</a>
-<a href='#Paint_Stroke_Width'>Stroke_Width</a> <a href='#Paint_Stroke_Width'>at</a> <a href='#Paint_Stroke_Width'>the</a> <a href='SkPath_Overview#Contour'>contour</a> <a href='SkPoint_Reference#Point'>point</a>.
+<a href='#SkPaint_kButt_Cap'>kButt_Cap</a> and <a href='#Path_Overview_Contour_Zero_Length'>Zero_Length_Contour</a> is not drawn.
+<a href='#SkPaint_kRound_Cap'>kRound_Cap</a> and <a href='#Path_Overview_Contour_Zero_Length'>Zero_Length_Contour</a> draws a <a href='undocumented#Circle'>circle</a> of diameter <a href='#Paint_Stroke_Width'>Stroke_Width</a>
+at the <a href='SkPath_Overview#Contour'>contour</a> <a href='SkPoint_Reference#Point'>point</a>.
+<a href='#SkPaint_kSquare_Cap'>kSquare_Cap</a> and <a href='#Path_Overview_Contour_Zero_Length'>Zero_Length_Contour</a> draws an upright square with a side of
+<a href='#Paint_Stroke_Width'>Stroke_Width</a> at the <a href='SkPath_Overview#Contour'>contour</a> <a href='SkPoint_Reference#Point'>point</a>.
-<a href='#Paint_Stroke_Cap'>Stroke_Cap</a> <a href='#Paint_Stroke_Cap'>is</a> <a href='#SkPaint_kButt_Cap'>kButt_Cap</a> <a href='#SkPaint_kButt_Cap'>by</a> <a href='#SkPaint_kButt_Cap'>default</a>.
+<a href='#Paint_Stroke_Cap'>Stroke_Cap</a> is <a href='#SkPaint_kButt_Cap'>kButt_Cap</a> by default.
### Example
@@ -2471,7 +2352,7 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-<a href='#SkPaint_Cap'>Cap</a> <a href='#SkPaint_getStrokeCap'>getStrokeCap</a>() <a href='#SkPaint_getStrokeCap'>const</a>
+<a href='#SkPaint_Cap'>Cap</a> <a href='#SkPaint_getStrokeCap'>getStrokeCap</a>() const
</pre>
Returns the geometry drawn at the beginning and end of strokes.
@@ -2501,7 +2382,7 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-void <a href='#SkPaint_setStrokeCap'>setStrokeCap</a>(<a href='#SkPaint_Cap'>Cap</a> <a href='#SkPaint_Cap'>cap</a>)
+void <a href='#SkPaint_setStrokeCap'>setStrokeCap</a>(<a href='#SkPaint_Cap'>Cap</a> cap)
</pre>
Sets the geometry drawn at the beginning and end of strokes.
@@ -2513,7 +2394,7 @@
</tr>
</table>
-has no effect if <a href='#SkPaint_setStrokeCap_cap'>cap</a> <a href='#SkPaint_setStrokeCap_cap'>is</a> <a href='#SkPaint_setStrokeCap_cap'>not</a> <a href='#SkPaint_setStrokeCap_cap'>valid</a>
+has no effect if <a href='#SkPaint_setStrokeCap_cap'>cap</a> is not valid
### Example
@@ -2533,14 +2414,14 @@
<a name='Stroke_Join'></a>
-<a href='#Paint_Stroke_Join'>Stroke_Join</a> <a href='#Paint_Stroke_Join'>draws</a> <a href='#Paint_Stroke_Join'>at</a> <a href='#Paint_Stroke_Join'>the</a> <a href='#Paint_Stroke_Join'>sharp</a> <a href='#Paint_Stroke_Join'>corners</a> <a href='#Paint_Stroke_Join'>of</a> <a href='#Paint_Stroke_Join'>an</a> <a href='#Paint_Stroke_Join'>open</a> <a href='#Paint_Stroke_Join'>or</a> <a href='#Paint_Stroke_Join'>closed</a> <a href='#Path_Overview_Contour'>Path_Contour</a>.
+<a href='#Paint_Stroke_Join'>Stroke_Join</a> draws at the sharp corners of an open or closed <a href='#Path_Overview_Contour'>Path_Contour</a>.
-<a href='#Path_Overview_Contour'>Stroke</a> <a href='#Path_Overview_Contour'>describes</a> <a href='#Path_Overview_Contour'>the</a> <a href='#Path_Overview_Contour'>area</a> <a href='#Path_Overview_Contour'>covered</a> <a href='#Path_Overview_Contour'>by</a> <a href='#Path_Overview_Contour'>a</a> <a href='#Path_Overview_Contour'>pen</a> <a href='#Path_Overview_Contour'>of</a> <a href='#Paint_Stroke_Width'>Stroke_Width</a> <a href='#Paint_Stroke_Width'>as</a> <a href='#Paint_Stroke_Width'>it</a>
-<a href='#Paint_Stroke_Width'>follows</a> <a href='#Paint_Stroke_Width'>the</a> <a href='#Path_Overview_Contour'>Path_Contour</a>, <a href='#Path_Overview_Contour'>moving</a> <a href='#Path_Overview_Contour'>parallel</a> <a href='#Path_Overview_Contour'>to</a> <a href='#Path_Overview_Contour'>the</a> <a href='SkPath_Overview#Contour'>contour</a> <a href='SkPath_Overview#Contour'>direction</a>.
+Stroke describes the area covered by a pen of <a href='#Paint_Stroke_Width'>Stroke_Width</a> as it
+follows the <a href='#Path_Overview_Contour'>Path_Contour</a>, moving parallel to the <a href='SkPath_Overview#Contour'>contour</a> direction.
-<a href='SkPath_Overview#Contour'>If</a> <a href='SkPath_Overview#Contour'>the</a> <a href='SkPath_Overview#Contour'>contour</a> <a href='SkPath_Overview#Contour'>direction</a> <a href='SkPath_Overview#Contour'>changes</a> <a href='SkPath_Overview#Contour'>abruptly</a>, <a href='SkPath_Overview#Contour'>because</a> <a href='SkPath_Overview#Contour'>the</a> <a href='SkPath_Overview#Contour'>tangent</a> <a href='SkPath_Overview#Contour'>direction</a> <a href='SkPath_Overview#Contour'>leading</a>
-<a href='SkPath_Overview#Contour'>to</a> <a href='SkPath_Overview#Contour'>the</a> <a href='SkPath_Overview#Contour'>end</a> <a href='SkPath_Overview#Contour'>of</a> <a href='SkPath_Overview#Contour'>a</a> <a href='undocumented#Curve'>curve</a> <a href='undocumented#Curve'>within</a> <a href='undocumented#Curve'>the</a> <a href='SkPath_Overview#Contour'>contour</a> <a href='SkPath_Overview#Contour'>does</a> <a href='SkPath_Overview#Contour'>not</a> <a href='SkPath_Overview#Contour'>match</a> <a href='SkPath_Overview#Contour'>the</a> <a href='SkPath_Overview#Contour'>tangent</a> <a href='SkPath_Overview#Contour'>direction</a> <a href='SkPath_Overview#Contour'>of</a>
-<a href='SkPath_Overview#Contour'>the</a> <a href='SkPath_Overview#Contour'>following</a> <a href='undocumented#Curve'>curve</a>, <a href='undocumented#Curve'>the</a> <a href='undocumented#Curve'>pair</a> <a href='undocumented#Curve'>of</a> <a href='undocumented#Curve'>curves</a> <a href='undocumented#Curve'>meet</a> <a href='undocumented#Curve'>at</a> <a href='#Paint_Stroke_Join'>Stroke_Join</a>.
+If the <a href='SkPath_Overview#Contour'>contour</a> direction changes abruptly, because the tangent direction leading
+to the end of a <a href='undocumented#Curve'>curve</a> within the <a href='SkPath_Overview#Contour'>contour</a> does not match the tangent direction of
+the following <a href='undocumented#Curve'>curve</a>, the pair of <a href='undocumented#Curve'>curves</a> meet at <a href='#Paint_Stroke_Join'>Stroke_Join</a>.
### Example
@@ -2551,7 +2432,7 @@
---
<pre style="padding: 1em 1em 1em 1em;width: 62.5em; background-color: #f0f0f0">
- enum <a href='#SkPaint_Join'>Join</a> : <a href='#SkPaint_Join'>uint8_t</a> {
+ enum <a href='#SkPaint_Join'>Join</a> : uint8_t {
<a href='#SkPaint_kMiter_Join'>kMiter_Join</a>,
<a href='#SkPaint_kRound_Join'>kRound_Join</a>,
<a href='#SkPaint_kBevel_Join'>kBevel_Join</a>,
@@ -2564,17 +2445,17 @@
static constexpr int <a href='#SkPaint_kJoinCount'>kJoinCount</a> = <a href='#SkPaint_kLast_Join'>kLast_Join</a> + 1;
</pre>
-<a href='#SkPaint_Join'>Join</a> <a href='#SkPaint_Join'>specifies</a> <a href='#SkPaint_Join'>how</a> <a href='#SkPaint_Join'>corners</a> <a href='#SkPaint_Join'>are</a> <a href='#SkPaint_Join'>drawn</a> <a href='#SkPaint_Join'>when</a> <a href='#SkPaint_Join'>a</a> <a href='#SkPaint_Join'>shape</a> <a href='#SkPaint_Join'>is</a> <a href='#SkPaint_Join'>stroked</a>. <a href='#SkPaint_Join'>Join</a>
-<a href='#SkPaint_Join'>affects</a> <a href='#SkPaint_Join'>the</a> <a href='#SkPaint_Join'>four</a> <a href='#SkPaint_Join'>corners</a> <a href='#SkPaint_Join'>of</a> <a href='#SkPaint_Join'>a</a> <a href='#SkPaint_Join'>stroked</a> <a href='#SkPaint_Join'>rectangle</a>, <a href='#SkPaint_Join'>and</a> <a href='#SkPaint_Join'>the</a> <a href='#SkPaint_Join'>connected</a> <a href='#SkPaint_Join'>segments</a> <a href='#SkPaint_Join'>in</a> <a href='#SkPaint_Join'>a</a>
-<a href='#SkPaint_Join'>stroked</a> <a href='SkPath_Reference#Path'>path</a>.
+<a href='#SkPaint_Join'>Join</a> specifies how corners are drawn when a shape is stroked. <a href='#SkPaint_Join'>Join</a>
+affects the four corners of a stroked rectangle, and the connected segments in a
+stroked <a href='SkPath_Reference#Path'>path</a>.
-<a href='SkPath_Reference#Path'>Choose</a> <a href='SkPath_Reference#Path'>miter</a> <a href='SkPath_Reference#Path'>join</a> <a href='SkPath_Reference#Path'>to</a> <a href='SkPath_Reference#Path'>draw</a> <a href='SkPath_Reference#Path'>sharp</a> <a href='SkPath_Reference#Path'>corners</a>. <a href='SkPath_Reference#Path'>Choose</a> <a href='SkPath_Reference#Path'>round</a> <a href='SkPath_Reference#Path'>join</a> <a href='SkPath_Reference#Path'>to</a> <a href='SkPath_Reference#Path'>draw</a> <a href='SkPath_Reference#Path'>a</a> <a href='undocumented#Circle'>circle</a> <a href='undocumented#Circle'>with</a> <a href='undocumented#Circle'>a</a>
-<a href='undocumented#Circle'>radius</a> <a href='undocumented#Circle'>equal</a> <a href='undocumented#Circle'>to</a> <a href='undocumented#Circle'>the</a> <a href='#Stroke_Width'>stroke width</a> <a href='undocumented#Circle'>on</a> <a href='undocumented#Circle'>top</a> <a href='undocumented#Circle'>of</a> <a href='undocumented#Circle'>the</a> <a href='undocumented#Circle'>corner</a>. <a href='undocumented#Circle'>Choose</a> <a href='undocumented#Circle'>bevel</a> <a href='undocumented#Circle'>join</a> <a href='undocumented#Circle'>to</a> <a href='undocumented#Circle'>minimally</a>
-<a href='undocumented#Circle'>connect</a> <a href='undocumented#Circle'>the</a> <a href='undocumented#Circle'>thick</a> <a href='undocumented#Circle'>strokes</a>.
+Choose miter join to draw sharp corners. Choose round join to draw a <a href='undocumented#Circle'>circle</a> with a
+radius equal to the <a href='#Stroke_Width'>stroke width</a> on top of the corner. Choose bevel join to minimally
+connect the thick strokes.
-<a href='undocumented#Circle'>The</a> <a href='#Fill_Path'>fill path</a> <a href='undocumented#Circle'>constructed</a> <a href='undocumented#Circle'>to</a> <a href='undocumented#Circle'>describe</a> <a href='undocumented#Circle'>the</a> <a href='undocumented#Circle'>stroked</a> <a href='SkPath_Reference#Path'>path</a> <a href='SkPath_Reference#Path'>respects</a> <a href='SkPath_Reference#Path'>the</a> <a href='SkPath_Reference#Path'>join</a> <a href='SkPath_Reference#Path'>setting</a> <a href='SkPath_Reference#Path'>but</a> <a href='SkPath_Reference#Path'>may</a>
-<a href='SkPath_Reference#Path'>not</a> <a href='SkPath_Reference#Path'>contain</a> <a href='SkPath_Reference#Path'>the</a> <a href='SkPath_Reference#Path'>actual</a> <a href='SkPath_Reference#Path'>join</a>. <a href='SkPath_Reference#Path'>For</a> <a href='SkPath_Reference#Path'>instance</a>, <a href='SkPath_Reference#Path'>a</a> <a href='#Fill_Path'>fill path</a> <a href='SkPath_Reference#Path'>constructed</a> <a href='SkPath_Reference#Path'>with</a> <a href='SkPath_Reference#Path'>round</a> <a href='SkPath_Reference#Path'>joins</a> <a href='SkPath_Reference#Path'>does</a>
-<a href='SkPath_Reference#Path'>not</a> <a href='SkPath_Reference#Path'>necessarily</a> <a href='SkPath_Reference#Path'>include</a> <a href='undocumented#Circle'>circles</a> <a href='undocumented#Circle'>at</a> <a href='undocumented#Circle'>each</a> <a href='undocumented#Circle'>connected</a> <a href='undocumented#Circle'>segment</a>.
+The <a href='#Fill_Path'>fill path</a> constructed to describe the stroked <a href='SkPath_Reference#Path'>path</a> respects the join setting but may
+not contain the actual join. For instance, a <a href='#Fill_Path'>fill path</a> constructed with round joins does
+not necessarily include <a href='undocumented#Circle'>circles</a> at each connected segment.
### Constants
@@ -2587,14 +2468,14 @@
<td style='text-align: center; border: 2px solid #dddddd; padding: 8px; '>0</td>
<td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>
Extends the outside corner to the extent allowed by <a href='#Paint_Miter_Limit'>Miter_Limit</a>.
-<a href='#Paint_Miter_Limit'>If</a> <a href='#Paint_Miter_Limit'>the</a> <a href='#Paint_Miter_Limit'>extension</a> <a href='#Paint_Miter_Limit'>exceeds</a> <a href='#Paint_Miter_Limit'>Miter_Limit</a>, <a href='#SkPaint_kBevel_Join'>kBevel_Join</a> <a href='#SkPaint_kBevel_Join'>is</a> <a href='#SkPaint_kBevel_Join'>used</a> <a href='#SkPaint_kBevel_Join'>instead</a>.
+If the extension exceeds <a href='#Paint_Miter_Limit'>Miter_Limit</a>, <a href='#SkPaint_kBevel_Join'>kBevel_Join</a> is used instead.
</td>
</tr>
<tr>
<td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a name='SkPaint_kRound_Join'><code>SkPaint::kRound_Join</code></a></td>
<td style='text-align: center; border: 2px solid #dddddd; padding: 8px; '>1</td>
<td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>
-Adds a <a href='undocumented#Circle'>circle</a> <a href='undocumented#Circle'>with</a> <a href='undocumented#Circle'>a</a> <a href='undocumented#Circle'>diameter</a> <a href='undocumented#Circle'>of</a> <a href='#Paint_Stroke_Width'>Stroke_Width</a> <a href='#Paint_Stroke_Width'>at</a> <a href='#Paint_Stroke_Width'>the</a> <a href='#Paint_Stroke_Width'>sharp</a> <a href='#Paint_Stroke_Width'>corner</a>.
+Adds a <a href='undocumented#Circle'>circle</a> with a diameter of <a href='#Paint_Stroke_Width'>Stroke_Width</a> at the sharp corner.
</td>
</tr>
<tr style='background-color: #f0f0f0; '>
@@ -2614,14 +2495,14 @@
<td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a name='SkPaint_kDefault_Join'><code>SkPaint::kDefault_Join</code></a></td>
<td style='text-align: center; border: 2px solid #dddddd; padding: 8px; '>1</td>
<td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>
-<a href='#Paint_Stroke_Join'>Stroke_Join</a> <a href='#Paint_Stroke_Join'>is</a> <a href='#Paint_Stroke_Join'>set</a> <a href='#Paint_Stroke_Join'>to</a> <a href='#SkPaint_kMiter_Join'>kMiter_Join</a> <a href='#SkPaint_kMiter_Join'>by</a> <a href='#SkPaint_kMiter_Join'>default</a>.
+<a href='#Paint_Stroke_Join'>Stroke_Join</a> is set to <a href='#SkPaint_kMiter_Join'>kMiter_Join</a> by default.
</td>
</tr>
<tr>
<td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a name='SkPaint_kJoinCount'><code>SkPaint::kJoinCount</code></a></td>
<td style='text-align: center; border: 2px solid #dddddd; padding: 8px; '>3</td>
<td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>
-May be used to verify that <a href='#Paint_Stroke_Join'>Stroke_Join</a> <a href='#Paint_Stroke_Join'>is</a> <a href='#Paint_Stroke_Join'>a</a> <a href='#Paint_Stroke_Join'>legal</a> <a href='#Paint_Stroke_Join'>value</a>.
+May be used to verify that <a href='#Paint_Stroke_Join'>Stroke_Join</a> is a legal value.
</td>
</tr>
</table>
@@ -2639,7 +2520,7 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-<a href='#SkPaint_Join'>Join</a> <a href='#SkPaint_getStrokeJoin'>getStrokeJoin</a>() <a href='#SkPaint_getStrokeJoin'>const</a>
+<a href='#SkPaint_Join'>Join</a> <a href='#SkPaint_getStrokeJoin'>getStrokeJoin</a>() const
</pre>
Returns the geometry drawn at the corners of strokes.
@@ -2669,7 +2550,7 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-void <a href='#SkPaint_setStrokeJoin'>setStrokeJoin</a>(<a href='#SkPaint_Join'>Join</a> <a href='#SkPaint_Join'>join</a>)
+void <a href='#SkPaint_setStrokeJoin'>setStrokeJoin</a>(<a href='#SkPaint_Join'>Join</a> join)
</pre>
Sets the geometry drawn at the corners of strokes.
@@ -2707,23 +2588,23 @@
---
-<a href='#Paint_Fill_Path'>Fill_Path</a> <a href='#Paint_Fill_Path'>creates</a> <a href='#Paint_Fill_Path'>a</a> <a href='SkPath_Reference#Path'>Path</a> <a href='SkPath_Reference#Path'>by</a> <a href='SkPath_Reference#Path'>applying</a> <a href='SkPath_Reference#Path'>the</a> <a href='#Path_Effect'>Path_Effect</a>, <a href='#Path_Effect'>followed</a> <a href='#Path_Effect'>by</a> <a href='#Path_Effect'>the</a> <a href='#Paint_Style_Stroke'>Style_Stroke</a>.
+<a href='#Paint_Fill_Path'>Fill_Path</a> creates a <a href='SkPath_Reference#Path'>Path</a> by applying the <a href='#Path_Effect'>Path_Effect</a>, followed by the <a href='#Paint_Style_Stroke'>Style_Stroke</a>.
-<a href='#Paint_Style_Stroke'>If</a> <a href='SkPaint_Reference#Paint'>Paint</a> <a href='SkPaint_Reference#Paint'>contains</a> <a href='#Path_Effect'>Path_Effect</a>, <a href='#Path_Effect'>Path_Effect</a> <a href='#Path_Effect'>operates</a> <a href='#Path_Effect'>on</a> <a href='#Path_Effect'>the</a> <a href='#Path_Effect'>source</a> <a href='SkPath_Reference#Path'>Path</a>; <a href='SkPath_Reference#Path'>the</a> <a href='SkPath_Reference#Path'>result</a>
-<a href='SkPath_Reference#Path'>replaces</a> <a href='SkPath_Reference#Path'>the</a> <a href='SkPath_Reference#Path'>destination</a> <a href='SkPath_Reference#Path'>Path</a>. <a href='SkPath_Reference#Path'>Otherwise</a>, <a href='SkPath_Reference#Path'>the</a> <a href='SkPath_Reference#Path'>source</a> <a href='SkPath_Reference#Path'>Path</a> <a href='SkPath_Reference#Path'>is</a> <a href='SkPath_Reference#Path'>replaces</a> <a href='SkPath_Reference#Path'>the</a>
-<a href='SkPath_Reference#Path'>destination</a> <a href='SkPath_Reference#Path'>Path</a>.
+If <a href='SkPaint_Reference#Paint'>Paint</a> contains <a href='#Path_Effect'>Path_Effect</a>, <a href='#Path_Effect'>Path_Effect</a> operates on the source <a href='SkPath_Reference#Path'>Path</a>; the result
+replaces the destination <a href='SkPath_Reference#Path'>Path</a>. Otherwise, the source <a href='SkPath_Reference#Path'>Path</a> is replaces the
+destination <a href='SkPath_Reference#Path'>Path</a>.
-<a href='SkPath_Reference#Path'>Fill</a> <a href='SkPath_Reference#Path'>Path</a> <a href='SkPath_Reference#Path'>can</a> <a href='SkPath_Reference#Path'>request</a> <a href='SkPath_Reference#Path'>the</a> <a href='#Path_Effect'>Path_Effect</a> <a href='#Path_Effect'>to</a> <a href='#Path_Effect'>restrict</a> <a href='#Path_Effect'>to</a> <a href='#Path_Effect'>a</a> <a href='#Path_Effect'>culling</a> <a href='#Path_Effect'>rectangle</a>, <a href='#Path_Effect'>but</a>
-<a href='#Path_Effect'>the</a> <a href='#Path_Effect'>Path_Effect</a> <a href='#Path_Effect'>is</a> <a href='#Path_Effect'>not</a> <a href='#Path_Effect'>required</a> <a href='#Path_Effect'>to</a> <a href='#Path_Effect'>do</a> <a href='#Path_Effect'>so</a>.
+Fill <a href='SkPath_Reference#Path'>Path</a> can request the <a href='#Path_Effect'>Path_Effect</a> to restrict to a culling rectangle, but
+the <a href='#Path_Effect'>Path_Effect</a> is not required to do so.
-<a href='#Path_Effect'>If</a> <a href='#SkPaint_Style'>Style</a> <a href='#SkPaint_Style'>is</a> <a href='#SkPaint_kStroke_Style'>kStroke_Style</a> <a href='#SkPaint_kStroke_Style'>or</a> <a href='#SkPaint_kStrokeAndFill_Style'>kStrokeAndFill_Style</a>,
-<a href='#SkPaint_kStrokeAndFill_Style'>and</a> <a href='#Paint_Stroke_Width'>Stroke_Width</a> <a href='#Paint_Stroke_Width'>is</a> <a href='#Paint_Stroke_Width'>greater</a> <a href='#Paint_Stroke_Width'>than</a> <a href='#Paint_Stroke_Width'>zero</a>, <a href='#Paint_Stroke_Width'>the</a> <a href='#Paint_Stroke_Width'>Stroke_Width</a>, <a href='#Paint_Stroke_Cap'>Stroke_Cap</a>, <a href='#Paint_Stroke_Join'>Stroke_Join</a>,
-<a href='#Paint_Stroke_Join'>and</a> <a href='#Paint_Miter_Limit'>Miter_Limit</a> <a href='#Paint_Miter_Limit'>operate</a> <a href='#Paint_Miter_Limit'>on</a> <a href='#Paint_Miter_Limit'>the</a> <a href='#Paint_Miter_Limit'>destination</a> <a href='SkPath_Reference#Path'>Path</a>, <a href='SkPath_Reference#Path'>replacing</a> <a href='SkPath_Reference#Path'>it</a>.
+If <a href='#SkPaint_Style'>Style</a> is <a href='#SkPaint_kStroke_Style'>kStroke_Style</a> or <a href='#SkPaint_kStrokeAndFill_Style'>kStrokeAndFill_Style</a>,
+and <a href='#Paint_Stroke_Width'>Stroke_Width</a> is greater than zero, the <a href='#Paint_Stroke_Width'>Stroke_Width</a>, <a href='#Paint_Stroke_Cap'>Stroke_Cap</a>, <a href='#Paint_Stroke_Join'>Stroke_Join</a>,
+and <a href='#Paint_Miter_Limit'>Miter_Limit</a> operate on the destination <a href='SkPath_Reference#Path'>Path</a>, replacing it.
-<a href='SkPath_Reference#Path'>Fill</a> <a href='SkPath_Reference#Path'>Path</a> <a href='SkPath_Reference#Path'>can</a> <a href='SkPath_Reference#Path'>specify</a> <a href='SkPath_Reference#Path'>the</a> <a href='SkPath_Reference#Path'>precision</a> <a href='SkPath_Reference#Path'>used</a> <a href='SkPath_Reference#Path'>by</a> <a href='#Paint_Stroke_Width'>Stroke_Width</a> <a href='#Paint_Stroke_Width'>to</a> <a href='#Paint_Stroke_Width'>approximate</a> <a href='#Paint_Stroke_Width'>the</a> <a href='#Paint_Stroke_Width'>stroke</a> <a href='#Paint_Stroke_Width'>geometry</a>.
+Fill <a href='SkPath_Reference#Path'>Path</a> can specify the precision used by <a href='#Paint_Stroke_Width'>Stroke_Width</a> to approximate the stroke geometry.
-<a href='#Paint_Stroke_Width'>If</a> <a href='#Paint_Stroke_Width'>the</a> <a href='#SkPaint_Style'>Style</a> <a href='#SkPaint_Style'>is</a> <a href='#SkPaint_kStroke_Style'>kStroke_Style</a> <a href='#SkPaint_kStroke_Style'>and</a> <a href='#SkPaint_kStroke_Style'>the</a> <a href='#Paint_Stroke_Width'>Stroke_Width</a> <a href='#Paint_Stroke_Width'>is</a> <a href='#Paint_Stroke_Width'>zero</a>, <a href='#SkPaint_getFillPath'>getFillPath</a>
-<a href='#SkPaint_getFillPath'>returns</a> <a href='#SkPaint_getFillPath'>false</a> <a href='#SkPaint_getFillPath'>since</a> <a href='#SkPaint_getFillPath'>Hairline</a> <a href='#SkPaint_getFillPath'>has</a> <a href='#SkPaint_getFillPath'>no</a> <a href='#SkPaint_getFillPath'>filled</a> <a href='#SkPaint_getFillPath'>equivalent</a>.
+If the <a href='#SkPaint_Style'>Style</a> is <a href='#SkPaint_kStroke_Style'>kStroke_Style</a> and the <a href='#Paint_Stroke_Width'>Stroke_Width</a> is zero, <a href='#SkPaint_getFillPath'>getFillPath</a>
+returns false since Hairline has no filled equivalent.
### See Also
@@ -2734,7 +2615,7 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-bool <a href='#SkPaint_getFillPath'>getFillPath</a>(<a href='#SkPaint_getFillPath'>const</a> <a href='SkPath_Reference#SkPath'>SkPath</a>& <a href='SkPath_Reference#SkPath'>src</a>, <a href='SkPath_Reference#SkPath'>SkPath</a>* <a href='SkPath_Reference#SkPath'>dst</a>, <a href='SkPath_Reference#SkPath'>const</a> <a href='SkRect_Reference#SkRect'>SkRect</a>* <a href='SkRect_Reference#SkRect'>cullRect</a>, <a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>resScale</a> = 1) <a href='undocumented#SkScalar'>const</a>
+bool <a href='#SkPaint_getFillPath'>getFillPath</a>(const <a href='SkPath_Reference#SkPath'>SkPath</a>& src, <a href='SkPath_Reference#SkPath'>SkPath</a>* dst, const <a href='SkRect_Reference#SkRect'>SkRect</a>* cullRect, <a href='undocumented#SkScalar'>SkScalar</a> resScale = 1) const
</pre>
Returns the filled equivalent of the stroked <a href='SkPath_Reference#Path'>path</a>.
@@ -2742,16 +2623,16 @@
### Parameters
<table> <tr> <td><a name='SkPaint_getFillPath_src'><code><strong>src</strong></code></a></td>
- <td><a href='SkPath_Reference#SkPath'>SkPath</a> <a href='SkPath_Reference#SkPath'>read</a> <a href='SkPath_Reference#SkPath'>to</a> <a href='SkPath_Reference#SkPath'>create</a> <a href='SkPath_Reference#SkPath'>a</a> <a href='SkPath_Reference#SkPath'>filled</a> <a href='SkPath_Reference#SkPath'>version</a></td>
+ <td><a href='SkPath_Reference#SkPath'>SkPath</a> read to create a filled version</td>
</tr>
<tr> <td><a name='SkPaint_getFillPath_dst'><code><strong>dst</strong></code></a></td>
- <td>resulting <a href='SkPath_Reference#SkPath'>SkPath</a>; <a href='SkPath_Reference#SkPath'>may</a> <a href='SkPath_Reference#SkPath'>be</a> <a href='SkPath_Reference#SkPath'>the</a> <a href='SkPath_Reference#SkPath'>same</a> <a href='SkPath_Reference#SkPath'>as</a> <a href='#SkPaint_getFillPath_src'>src</a>, <a href='#SkPaint_getFillPath_src'>but</a> <a href='#SkPaint_getFillPath_src'>may</a> <a href='#SkPaint_getFillPath_src'>not</a> <a href='#SkPaint_getFillPath_src'>be</a> <a href='#SkPaint_getFillPath_src'>nullptr</a></td>
+ <td>resulting <a href='SkPath_Reference#SkPath'>SkPath</a>; may be the same as <a href='#SkPaint_getFillPath_src'>src</a>, but may not be nullptr</td>
</tr>
<tr> <td><a name='SkPaint_getFillPath_cullRect'><code><strong>cullRect</strong></code></a></td>
<td>optional limit passed to <a href='undocumented#SkPathEffect'>SkPathEffect</a></td>
</tr>
<tr> <td><a name='SkPaint_getFillPath_resScale'><code><strong>resScale</strong></code></a></td>
- <td>if > 1, increase precision, else if (0 < <a href='#SkPaint_getFillPath_resScale'>resScale</a> < 1) <a href='#SkPaint_getFillPath_resScale'>reduce</a> <a href='#SkPaint_getFillPath_resScale'>precision</a></td>
+ <td>if > 1, increase precision, else if (0 < <a href='#SkPaint_getFillPath_resScale'>resScale</a> < 1) reduce precision</td>
</tr>
</table>
@@ -2759,13 +2640,13 @@
### Return Value
-true if the <a href='SkPath_Reference#Path'>path</a> <a href='SkPath_Reference#Path'>represents</a> <a href='#Style_Fill'>style fill</a>, <a href='SkPath_Reference#Path'>or</a> <a href='SkPath_Reference#Path'>false</a> <a href='SkPath_Reference#Path'>if</a> <a href='SkPath_Reference#Path'>it</a> <a href='SkPath_Reference#Path'>represents</a> <a href='SkPath_Reference#Path'>hairline</a>
+true if the <a href='SkPath_Reference#Path'>path</a> represents <a href='#Style_Fill'>style fill</a>, or false if it represents hairline
### Example
-<div><fiddle-embed name="cedd6233848198e1fca4d1e14816baaf"><div>A very small <a href='SkPath_Reference#Quad'>Quad</a> <a href='SkPath_Reference#Quad'>stroke</a> <a href='SkPath_Reference#Quad'>is</a> <a href='SkPath_Reference#Quad'>turned</a> <a href='SkPath_Reference#Quad'>into</a> <a href='SkPath_Reference#Quad'>a</a> <a href='SkPath_Reference#Quad'>filled</a> <a href='SkPath_Reference#Path'>path</a> <a href='SkPath_Reference#Path'>with</a> <a href='SkPath_Reference#Path'>increasing</a> <a href='SkPath_Reference#Path'>levels</a> <a href='SkPath_Reference#Path'>of</a> <a href='SkPath_Reference#Path'>precision</a>.
-<a href='SkPath_Reference#Path'>At</a> <a href='SkPath_Reference#Path'>the</a> <a href='SkPath_Reference#Path'>lowest</a> <a href='SkPath_Reference#Path'>precision</a>, <a href='SkPath_Reference#Path'>the</a> <a href='SkPath_Reference#Quad'>Quad</a> <a href='SkPath_Reference#Quad'>stroke</a> <a href='SkPath_Reference#Quad'>is</a> <a href='SkPath_Reference#Quad'>approximated</a> <a href='SkPath_Reference#Quad'>by</a> <a href='SkPath_Reference#Quad'>a</a> <a href='SkPath_Reference#Quad'>rectangle</a>.
-<a href='SkPath_Reference#Quad'>At</a> <a href='SkPath_Reference#Quad'>the</a> <a href='SkPath_Reference#Quad'>highest</a> <a href='SkPath_Reference#Quad'>precision</a>, <a href='SkPath_Reference#Quad'>the</a> <a href='SkPath_Reference#Quad'>filled</a> <a href='SkPath_Reference#Path'>path</a> <a href='SkPath_Reference#Path'>has</a> <a href='SkPath_Reference#Path'>high</a> <a href='SkPath_Reference#Path'>fidelity</a> <a href='SkPath_Reference#Path'>compared</a> <a href='SkPath_Reference#Path'>to</a> <a href='SkPath_Reference#Path'>the</a> <a href='SkPath_Reference#Path'>original</a> <a href='SkPath_Reference#Path'>stroke</a>.
+<div><fiddle-embed name="cedd6233848198e1fca4d1e14816baaf"><div>A very small <a href='SkPath_Reference#Quad'>Quad</a> stroke is turned into a filled <a href='SkPath_Reference#Path'>path</a> with increasing levels of precision.
+At the lowest precision, the <a href='SkPath_Reference#Quad'>Quad</a> stroke is approximated by a rectangle.
+At the highest precision, the filled <a href='SkPath_Reference#Path'>path</a> has high fidelity compared to the original stroke.
</div></fiddle-embed></div>
<a name='SkPaint_getFillPath_2'></a>
@@ -2773,27 +2654,27 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-bool <a href='#SkPaint_getFillPath'>getFillPath</a>(<a href='#SkPaint_getFillPath'>const</a> <a href='SkPath_Reference#SkPath'>SkPath</a>& <a href='SkPath_Reference#SkPath'>src</a>, <a href='SkPath_Reference#SkPath'>SkPath</a>* <a href='SkPath_Reference#SkPath'>dst</a>) <a href='SkPath_Reference#SkPath'>const</a>
+bool <a href='#SkPaint_getFillPath'>getFillPath</a>(const <a href='SkPath_Reference#SkPath'>SkPath</a>& src, <a href='SkPath_Reference#SkPath'>SkPath</a>* dst) const
</pre>
Returns the filled equivalent of the stroked <a href='SkPath_Reference#Path'>path</a>.
-Replaces <a href='#SkPaint_getFillPath_2_dst'>dst</a> <a href='#SkPaint_getFillPath_2_dst'>with</a> <a href='#SkPaint_getFillPath_2_dst'>the</a> <a href='#SkPaint_getFillPath_2_src'>src</a> <a href='SkPath_Reference#Path'>path</a> <a href='SkPath_Reference#Path'>modified</a> <a href='SkPath_Reference#Path'>by</a> <a href='undocumented#SkPathEffect'>SkPathEffect</a> <a href='undocumented#SkPathEffect'>and</a> <a href='#Style_Stroke'>style stroke</a>.
-<a href='undocumented#SkPathEffect'>SkPathEffect</a>, <a href='undocumented#SkPathEffect'>if</a> <a href='undocumented#SkPathEffect'>any</a>, <a href='undocumented#SkPathEffect'>is</a> <a href='undocumented#SkPathEffect'>not</a> <a href='undocumented#SkPathEffect'>culled</a>. <a href='#Stroke_Width'>stroke width</a> <a href='undocumented#SkPathEffect'>is</a> <a href='undocumented#SkPathEffect'>created</a> <a href='undocumented#SkPathEffect'>with</a> <a href='undocumented#SkPathEffect'>default</a> <a href='undocumented#SkPathEffect'>precision</a>.
+Replaces <a href='#SkPaint_getFillPath_2_dst'>dst</a> with the <a href='#SkPaint_getFillPath_2_src'>src</a> <a href='SkPath_Reference#Path'>path</a> modified by <a href='undocumented#SkPathEffect'>SkPathEffect</a> and <a href='#Style_Stroke'>style stroke</a>.
+<a href='undocumented#SkPathEffect'>SkPathEffect</a>, if any, is not culled. <a href='#Stroke_Width'>stroke width</a> is created with default precision.
### Parameters
<table> <tr> <td><a name='SkPaint_getFillPath_2_src'><code><strong>src</strong></code></a></td>
- <td><a href='SkPath_Reference#SkPath'>SkPath</a> <a href='SkPath_Reference#SkPath'>read</a> <a href='SkPath_Reference#SkPath'>to</a> <a href='SkPath_Reference#SkPath'>create</a> <a href='SkPath_Reference#SkPath'>a</a> <a href='SkPath_Reference#SkPath'>filled</a> <a href='SkPath_Reference#SkPath'>version</a></td>
+ <td><a href='SkPath_Reference#SkPath'>SkPath</a> read to create a filled version</td>
</tr>
<tr> <td><a name='SkPaint_getFillPath_2_dst'><code><strong>dst</strong></code></a></td>
- <td>resulting <a href='SkPath_Reference#SkPath'>SkPath</a> <a href='#SkPaint_getFillPath_2_dst'>dst</a> <a href='#SkPaint_getFillPath_2_dst'>may</a> <a href='#SkPaint_getFillPath_2_dst'>be</a> <a href='#SkPaint_getFillPath_2_dst'>the</a> <a href='#SkPaint_getFillPath_2_dst'>same</a> <a href='#SkPaint_getFillPath_2_dst'>as</a> <a href='#SkPaint_getFillPath_2_src'>src</a>, <a href='#SkPaint_getFillPath_2_src'>but</a> <a href='#SkPaint_getFillPath_2_src'>may</a> <a href='#SkPaint_getFillPath_2_src'>not</a> <a href='#SkPaint_getFillPath_2_src'>be</a> <a href='#SkPaint_getFillPath_2_src'>nullptr</a></td>
+ <td>resulting <a href='SkPath_Reference#SkPath'>SkPath</a> <a href='#SkPaint_getFillPath_2_dst'>dst</a> may be the same as <a href='#SkPaint_getFillPath_2_src'>src</a>, but may not be nullptr</td>
</tr>
</table>
### Return Value
-true if the <a href='SkPath_Reference#Path'>path</a> <a href='SkPath_Reference#Path'>represents</a> <a href='#Style_Fill'>style fill</a>, <a href='SkPath_Reference#Path'>or</a> <a href='SkPath_Reference#Path'>false</a> <a href='SkPath_Reference#Path'>if</a> <a href='SkPath_Reference#Path'>it</a> <a href='SkPath_Reference#Path'>represents</a> <a href='SkPath_Reference#Path'>hairline</a>
+true if the <a href='SkPath_Reference#Path'>path</a> represents <a href='#Style_Fill'>style fill</a>, or false if it represents hairline
### Example
@@ -2803,21 +2684,21 @@
---
-<a href='undocumented#Shader'>Shader</a> <a href='undocumented#Shader'>defines</a> <a href='undocumented#Shader'>the</a> <a href='undocumented#Shader'>colors</a> <a href='undocumented#Shader'>used</a> <a href='undocumented#Shader'>when</a> <a href='undocumented#Shader'>drawing</a> <a href='undocumented#Shader'>a</a> <a href='undocumented#Shader'>shape</a>.
-<a href='undocumented#Shader'>Shader</a> <a href='undocumented#Shader'>may</a> <a href='undocumented#Shader'>be</a> <a href='undocumented#Shader'>an</a> <a href='SkImage_Reference#Image'>image</a>, <a href='SkImage_Reference#Image'>a</a> <a href='SkImage_Reference#Image'>gradient</a>, <a href='SkImage_Reference#Image'>or</a> <a href='SkImage_Reference#Image'>a</a> <a href='SkImage_Reference#Image'>computed</a> <a href='SkImage_Reference#Image'>fill</a>.
-<a href='SkImage_Reference#Image'>If</a> <a href='SkPaint_Reference#Paint'>Paint</a> <a href='SkPaint_Reference#Paint'>has</a> <a href='SkPaint_Reference#Paint'>no</a> <a href='undocumented#Shader'>Shader</a>, <a href='undocumented#Shader'>then</a> <a href='SkColor_Reference#Color'>Color</a> <a href='SkColor_Reference#Color'>fills</a> <a href='SkColor_Reference#Color'>the</a> <a href='SkColor_Reference#Color'>shape</a>.
+<a href='undocumented#Shader'>Shader</a> defines the colors used when drawing a shape.
+<a href='undocumented#Shader'>Shader</a> may be an <a href='SkImage_Reference#Image'>image</a>, a gradient, or a computed fill.
+If <a href='SkPaint_Reference#Paint'>Paint</a> has no <a href='undocumented#Shader'>Shader</a>, then <a href='SkColor_Reference#Color'>Color</a> fills the shape.
-<a href='undocumented#Shader'>Shader</a> <a href='undocumented#Shader'>is</a> <a href='undocumented#Shader'>modulated</a> <a href='undocumented#Shader'>by</a> <a href='#Color_Alpha'>Color_Alpha</a> <a href='#Color_Alpha'>component</a> <a href='#Color_Alpha'>of</a> <a href='SkColor_Reference#Color'>Color</a>.
-<a href='SkColor_Reference#Color'>If</a> <a href='undocumented#Shader'>Shader</a> <a href='undocumented#Shader'>object</a> <a href='undocumented#Shader'>defines</a> <a href='undocumented#Shader'>only</a> <a href='#Color_Alpha'>Color_Alpha</a>, <a href='#Color_Alpha'>then</a> <a href='SkColor_Reference#Color'>Color</a> <a href='SkColor_Reference#Color'>modulated</a> <a href='SkColor_Reference#Color'>by</a> <a href='#Color_Alpha'>Color_Alpha</a> <a href='#Color_Alpha'>describes</a>
-<a href='#Color_Alpha'>the</a> <a href='#Color_Alpha'>fill</a>.
+<a href='undocumented#Shader'>Shader</a> is modulated by <a href='#Color_Alpha'>Color_Alpha</a> component of <a href='SkColor_Reference#Color'>Color</a>.
+If <a href='undocumented#Shader'>Shader</a> object defines only <a href='#Color_Alpha'>Color_Alpha</a>, then <a href='SkColor_Reference#Color'>Color</a> modulated by <a href='#Color_Alpha'>Color_Alpha</a> describes
+the fill.
-<a href='#Color_Alpha'>The</a> <a href='#Color_Alpha'>drawn</a> <a href='#Color_Alpha'>transparency</a> <a href='#Color_Alpha'>can</a> <a href='#Color_Alpha'>be</a> <a href='#Color_Alpha'>modified</a> <a href='#Color_Alpha'>without</a> <a href='#Color_Alpha'>altering</a> <a href='undocumented#Shader'>Shader</a>, <a href='undocumented#Shader'>by</a> <a href='undocumented#Shader'>changing</a> <a href='#Color_Alpha'>Color_Alpha</a>.
+The drawn transparency can be modified without altering <a href='undocumented#Shader'>Shader</a>, by changing <a href='#Color_Alpha'>Color_Alpha</a>.
### Example
<div><fiddle-embed name="c015dc2010c15e1c00b4f7330232b0f7"></fiddle-embed></div>
-If <a href='undocumented#Shader'>Shader</a> <a href='undocumented#Shader'>generates</a> <a href='undocumented#Shader'>only</a> <a href='#Color_Alpha'>Color_Alpha</a> <a href='#Color_Alpha'>then</a> <a href='#Color_Alpha'>all</a> <a href='#Color_Alpha'>components</a> <a href='#Color_Alpha'>of</a> <a href='SkColor_Reference#Color'>Color</a> <a href='SkColor_Reference#Color'>modulate</a> <a href='SkColor_Reference#Color'>the</a> <a href='SkColor_Reference#Color'>output</a>.
+If <a href='undocumented#Shader'>Shader</a> generates only <a href='#Color_Alpha'>Color_Alpha</a> then all components of <a href='SkColor_Reference#Color'>Color</a> modulate the output.
### Example
@@ -2828,16 +2709,16 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-<a href='undocumented#SkShader'>SkShader</a>* <a href='#SkPaint_getShader'>getShader</a>() <a href='#SkPaint_getShader'>const</a>
+<a href='undocumented#SkShader'>SkShader</a>* <a href='#SkPaint_getShader'>getShader</a>() const
</pre>
-Returns optional colors used when filling a <a href='SkPath_Reference#Path'>path</a>, <a href='SkPath_Reference#Path'>such</a> <a href='SkPath_Reference#Path'>as</a> <a href='SkPath_Reference#Path'>a</a> <a href='SkPath_Reference#Path'>gradient</a>.
+Returns optional colors used when filling a <a href='SkPath_Reference#Path'>path</a>, such as a gradient.
Does not alter <a href='undocumented#SkShader'>SkShader</a> <a href='undocumented#SkRefCnt'>SkRefCnt</a>.
### Return Value
-<a href='undocumented#SkShader'>SkShader</a> <a href='undocumented#SkShader'>if</a> <a href='undocumented#SkShader'>previously</a> <a href='undocumented#SkShader'>set</a>, <a href='undocumented#SkShader'>nullptr</a> <a href='undocumented#SkShader'>otherwise</a>
+<a href='undocumented#SkShader'>SkShader</a> if previously set, nullptr otherwise
### Example
@@ -2857,16 +2738,16 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-<a href='undocumented#sk_sp'>sk_sp</a>&<a href='undocumented#sk_sp'>lt</a>;<a href='undocumented#SkShader'>SkShader</a>&<a href='undocumented#SkShader'>gt</a>; <a href='#SkPaint_refShader'>refShader</a>() <a href='#SkPaint_refShader'>const</a>
+<a href='undocumented#sk_sp'>sk_sp</a><<a href='undocumented#SkShader'>SkShader</a>> <a href='#SkPaint_refShader'>refShader</a>() const
</pre>
-Returns optional colors used when filling a <a href='SkPath_Reference#Path'>path</a>, <a href='SkPath_Reference#Path'>such</a> <a href='SkPath_Reference#Path'>as</a> <a href='SkPath_Reference#Path'>a</a> <a href='SkPath_Reference#Path'>gradient</a>.
+Returns optional colors used when filling a <a href='SkPath_Reference#Path'>path</a>, such as a gradient.
-Increases <a href='undocumented#SkShader'>SkShader</a> <a href='undocumented#SkRefCnt'>SkRefCnt</a> <a href='undocumented#SkRefCnt'>by</a> <a href='undocumented#SkRefCnt'>one</a>.
+Increases <a href='undocumented#SkShader'>SkShader</a> <a href='undocumented#SkRefCnt'>SkRefCnt</a> by one.
### Return Value
-<a href='undocumented#SkShader'>SkShader</a> <a href='undocumented#SkShader'>if</a> <a href='undocumented#SkShader'>previously</a> <a href='undocumented#SkShader'>set</a>, <a href='undocumented#SkShader'>nullptr</a> <a href='undocumented#SkShader'>otherwise</a>
+<a href='undocumented#SkShader'>SkShader</a> if previously set, nullptr otherwise
### Example
@@ -2886,18 +2767,18 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-void <a href='#SkPaint_setShader'>setShader</a>(<a href='undocumented#sk_sp'>sk_sp</a>&<a href='undocumented#sk_sp'>lt</a>;<a href='undocumented#SkShader'>SkShader</a>&<a href='undocumented#SkShader'>gt</a>; <a href='undocumented#Shader'>shader</a>)
+void <a href='#SkPaint_setShader'>setShader</a>(<a href='undocumented#sk_sp'>sk_sp</a><<a href='undocumented#SkShader'>SkShader</a>> <a href='undocumented#Shader'>shader</a>)
</pre>
-Sets optional colors used when filling a <a href='SkPath_Reference#Path'>path</a>, <a href='SkPath_Reference#Path'>such</a> <a href='SkPath_Reference#Path'>as</a> <a href='SkPath_Reference#Path'>a</a> <a href='SkPath_Reference#Path'>gradient</a>.
+Sets optional colors used when filling a <a href='SkPath_Reference#Path'>path</a>, such as a gradient.
-Sets <a href='undocumented#SkShader'>SkShader</a> <a href='undocumented#SkShader'>to</a> <a href='#SkPaint_setShader_shader'>shader</a>, <a href='#SkPaint_setShader_shader'>decreasing</a> <a href='undocumented#SkRefCnt'>SkRefCnt</a> <a href='undocumented#SkRefCnt'>of</a> <a href='undocumented#SkRefCnt'>the</a> <a href='undocumented#SkRefCnt'>previous</a> <a href='undocumented#SkShader'>SkShader</a>.
-Increments <a href='#SkPaint_setShader_shader'>shader</a> <a href='undocumented#SkRefCnt'>SkRefCnt</a> <a href='undocumented#SkRefCnt'>by</a> <a href='undocumented#SkRefCnt'>one</a>.
+Sets <a href='undocumented#SkShader'>SkShader</a> to <a href='#SkPaint_setShader_shader'>shader</a>, decreasing <a href='undocumented#SkRefCnt'>SkRefCnt</a> of the previous <a href='undocumented#SkShader'>SkShader</a>.
+Increments <a href='#SkPaint_setShader_shader'>shader</a> <a href='undocumented#SkRefCnt'>SkRefCnt</a> by one.
### Parameters
<table> <tr> <td><a name='SkPaint_setShader_shader'><code><strong>shader</strong></code></a></td>
- <td>how geometry is filled with <a href='SkColor_Reference#Color'>color</a>; <a href='SkColor_Reference#Color'>if</a> <a href='SkColor_Reference#Color'>nullptr</a>, <a href='SkColor_Reference#Color'>color</a> <a href='SkColor_Reference#Color'>is</a> <a href='SkColor_Reference#Color'>used</a> <a href='SkColor_Reference#Color'>instead</a></td>
+ <td>how geometry is filled with <a href='SkColor_Reference#Color'>color</a>; if nullptr, <a href='SkColor_Reference#Color'>color</a> is used instead</td>
</tr>
</table>
@@ -2909,11 +2790,11 @@
---
-<a href='#Color_Filter'>Color_Filter</a> <a href='#Color_Filter'>alters</a> <a href='#Color_Filter'>the</a> <a href='SkColor_Reference#Color'>color</a> <a href='SkColor_Reference#Color'>used</a> <a href='SkColor_Reference#Color'>when</a> <a href='SkColor_Reference#Color'>drawing</a> <a href='SkColor_Reference#Color'>a</a> <a href='SkColor_Reference#Color'>shape</a>.
-<a href='#Color_Filter'>Color_Filter</a> <a href='#Color_Filter'>may</a> <a href='#Color_Filter'>apply</a> <a href='#Blend_Mode'>Blend_Mode</a>, <a href='#Blend_Mode'>transform</a> <a href='#Blend_Mode'>the</a> <a href='SkColor_Reference#Color'>color</a> <a href='SkColor_Reference#Color'>through</a> <a href='SkColor_Reference#Color'>a</a> <a href='SkMatrix_Reference#Matrix'>matrix</a>, <a href='SkMatrix_Reference#Matrix'>or</a> <a href='SkMatrix_Reference#Matrix'>composite</a> <a href='SkMatrix_Reference#Matrix'>multiple</a> <a href='SkMatrix_Reference#Matrix'>filters</a>.
-<a href='SkMatrix_Reference#Matrix'>If</a> <a href='SkPaint_Reference#Paint'>Paint</a> <a href='SkPaint_Reference#Paint'>has</a> <a href='SkPaint_Reference#Paint'>no</a> <a href='#Color_Filter'>Color_Filter</a>, <a href='#Color_Filter'>the</a> <a href='SkColor_Reference#Color'>color</a> <a href='SkColor_Reference#Color'>is</a> <a href='SkColor_Reference#Color'>unaltered</a>.
+<a href='#Color_Filter'>Color_Filter</a> alters the <a href='SkColor_Reference#Color'>color</a> used when drawing a shape.
+<a href='#Color_Filter'>Color_Filter</a> may apply <a href='#Blend_Mode'>Blend_Mode</a>, transform the <a href='SkColor_Reference#Color'>color</a> through a <a href='SkMatrix_Reference#Matrix'>matrix</a>, or composite multiple filters.
+If <a href='SkPaint_Reference#Paint'>Paint</a> has no <a href='#Color_Filter'>Color_Filter</a>, the <a href='SkColor_Reference#Color'>color</a> is unaltered.
-<a href='SkColor_Reference#Color'>The</a> <a href='SkColor_Reference#Color'>drawn</a> <a href='SkColor_Reference#Color'>transparency</a> <a href='SkColor_Reference#Color'>can</a> <a href='SkColor_Reference#Color'>be</a> <a href='SkColor_Reference#Color'>modified</a> <a href='SkColor_Reference#Color'>without</a> <a href='SkColor_Reference#Color'>altering</a> <a href='#Color_Filter'>Color_Filter</a>, <a href='#Color_Filter'>by</a> <a href='#Color_Filter'>changing</a> <a href='#Color_Alpha'>Color_Alpha</a>.
+The drawn transparency can be modified without altering <a href='#Color_Filter'>Color_Filter</a>, by changing <a href='#Color_Alpha'>Color_Alpha</a>.
### Example
@@ -2924,15 +2805,15 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-<a href='undocumented#SkColorFilter'>SkColorFilter</a>* <a href='#SkPaint_getColorFilter'>getColorFilter</a>() <a href='#SkPaint_getColorFilter'>const</a>
+<a href='undocumented#SkColorFilter'>SkColorFilter</a>* <a href='#SkPaint_getColorFilter'>getColorFilter</a>() const
</pre>
-Returns <a href='undocumented#SkColorFilter'>SkColorFilter</a> <a href='undocumented#SkColorFilter'>if</a> <a href='undocumented#SkColorFilter'>set</a>, <a href='undocumented#SkColorFilter'>or</a> <a href='undocumented#SkColorFilter'>nullptr</a>.
+Returns <a href='undocumented#SkColorFilter'>SkColorFilter</a> if set, or nullptr.
Does not alter <a href='undocumented#SkColorFilter'>SkColorFilter</a> <a href='undocumented#SkRefCnt'>SkRefCnt</a>.
### Return Value
-<a href='undocumented#SkColorFilter'>SkColorFilter</a> <a href='undocumented#SkColorFilter'>if</a> <a href='undocumented#SkColorFilter'>previously</a> <a href='undocumented#SkColorFilter'>set</a>, <a href='undocumented#SkColorFilter'>nullptr</a> <a href='undocumented#SkColorFilter'>otherwise</a>
+<a href='undocumented#SkColorFilter'>SkColorFilter</a> if previously set, nullptr otherwise
### Example
@@ -2952,15 +2833,15 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-<a href='undocumented#sk_sp'>sk_sp</a>&<a href='undocumented#sk_sp'>lt</a>;<a href='undocumented#SkColorFilter'>SkColorFilter</a>&<a href='undocumented#SkColorFilter'>gt</a>; <a href='#SkPaint_refColorFilter'>refColorFilter</a>() <a href='#SkPaint_refColorFilter'>const</a>
+<a href='undocumented#sk_sp'>sk_sp</a><<a href='undocumented#SkColorFilter'>SkColorFilter</a>> <a href='#SkPaint_refColorFilter'>refColorFilter</a>() const
</pre>
-Returns <a href='undocumented#SkColorFilter'>SkColorFilter</a> <a href='undocumented#SkColorFilter'>if</a> <a href='undocumented#SkColorFilter'>set</a>, <a href='undocumented#SkColorFilter'>or</a> <a href='undocumented#SkColorFilter'>nullptr</a>.
-Increases <a href='undocumented#SkColorFilter'>SkColorFilter</a> <a href='undocumented#SkRefCnt'>SkRefCnt</a> <a href='undocumented#SkRefCnt'>by</a> <a href='undocumented#SkRefCnt'>one</a>.
+Returns <a href='undocumented#SkColorFilter'>SkColorFilter</a> if set, or nullptr.
+Increases <a href='undocumented#SkColorFilter'>SkColorFilter</a> <a href='undocumented#SkRefCnt'>SkRefCnt</a> by one.
### Return Value
-<a href='undocumented#SkColorFilter'>SkColorFilter</a> <a href='undocumented#SkColorFilter'>if</a> <a href='undocumented#SkColorFilter'>set</a>, <a href='undocumented#SkColorFilter'>or</a> <a href='undocumented#SkColorFilter'>nullptr</a>
+<a href='undocumented#SkColorFilter'>SkColorFilter</a> if set, or nullptr
### Example
@@ -2980,18 +2861,18 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-void <a href='#SkPaint_setColorFilter'>setColorFilter</a>(<a href='undocumented#sk_sp'>sk_sp</a>&<a href='undocumented#sk_sp'>lt</a>;<a href='undocumented#SkColorFilter'>SkColorFilter</a>&<a href='undocumented#SkColorFilter'>gt</a>; <a href='undocumented#SkColorFilter'>colorFilter</a>)
+void <a href='#SkPaint_setColorFilter'>setColorFilter</a>(<a href='undocumented#sk_sp'>sk_sp</a><<a href='undocumented#SkColorFilter'>SkColorFilter</a>> colorFilter)
</pre>
-Sets <a href='undocumented#SkColorFilter'>SkColorFilter</a> <a href='undocumented#SkColorFilter'>to</a> <a href='undocumented#SkColorFilter'>filter</a>, <a href='undocumented#SkColorFilter'>decreasing</a> <a href='undocumented#SkRefCnt'>SkRefCnt</a> <a href='undocumented#SkRefCnt'>of</a> <a href='undocumented#SkRefCnt'>the</a> <a href='undocumented#SkRefCnt'>previous</a>
-<a href='undocumented#SkColorFilter'>SkColorFilter</a>. <a href='undocumented#SkColorFilter'>Pass</a> <a href='undocumented#SkColorFilter'>nullptr</a> <a href='undocumented#SkColorFilter'>to</a> <a href='undocumented#SkColorFilter'>clear</a> <a href='undocumented#SkColorFilter'>SkColorFilter</a>.
+Sets <a href='undocumented#SkColorFilter'>SkColorFilter</a> to filter, decreasing <a href='undocumented#SkRefCnt'>SkRefCnt</a> of the previous
+<a href='undocumented#SkColorFilter'>SkColorFilter</a>. Pass nullptr to clear <a href='undocumented#SkColorFilter'>SkColorFilter</a>.
-Increments filter <a href='undocumented#SkRefCnt'>SkRefCnt</a> <a href='undocumented#SkRefCnt'>by</a> <a href='undocumented#SkRefCnt'>one</a>.
+Increments filter <a href='undocumented#SkRefCnt'>SkRefCnt</a> by one.
### Parameters
<table> <tr> <td><a name='SkPaint_setColorFilter_colorFilter'><code><strong>colorFilter</strong></code></a></td>
- <td><a href='undocumented#SkColorFilter'>SkColorFilter</a> <a href='undocumented#SkColorFilter'>to</a> <a href='undocumented#SkColorFilter'>apply</a> <a href='undocumented#SkColorFilter'>to</a> <a href='undocumented#SkColorFilter'>subsequent</a> <a href='undocumented#SkColorFilter'>draw</a></td>
+ <td><a href='undocumented#SkColorFilter'>SkColorFilter</a> to apply to subsequent draw</td>
</tr>
</table>
@@ -3003,9 +2884,9 @@
---
-<a href='#Blend_Mode'>Blend_Mode</a> <a href='#Blend_Mode'>describes</a> <a href='#Blend_Mode'>how</a> <a href='SkColor_Reference#Color'>Color</a> <a href='SkColor_Reference#Color'>combines</a> <a href='SkColor_Reference#Color'>with</a> <a href='SkColor_Reference#Color'>the</a> <a href='SkColor_Reference#Color'>destination</a> <a href='SkColor_Reference#Color'>color</a>.
-<a href='SkColor_Reference#Color'>The</a> <a href='SkColor_Reference#Color'>default</a> <a href='SkColor_Reference#Color'>setting</a>, <a href='SkBlendMode_Reference#SkBlendMode'>SkBlendMode</a>::<a href='#SkBlendMode_kSrcOver'>kSrcOver</a>, <a href='#SkBlendMode_kSrcOver'>draws</a> <a href='#SkBlendMode_kSrcOver'>the</a> <a href='#SkBlendMode_kSrcOver'>source</a> <a href='SkColor_Reference#Color'>color</a>
-<a href='SkColor_Reference#Color'>over</a> <a href='SkColor_Reference#Color'>the</a> <a href='SkColor_Reference#Color'>destination</a> <a href='SkColor_Reference#Color'>color</a>.
+<a href='#Blend_Mode'>Blend_Mode</a> describes how <a href='SkColor_Reference#Color'>Color</a> combines with the destination <a href='SkColor_Reference#Color'>color</a>.
+The default setting, <a href='SkBlendMode_Reference#SkBlendMode'>SkBlendMode</a>::<a href='#SkBlendMode_kSrcOver'>kSrcOver</a>, draws the source <a href='SkColor_Reference#Color'>color</a>
+over the destination <a href='SkColor_Reference#Color'>color</a>.
### Example
@@ -3020,7 +2901,7 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-<a href='SkBlendMode_Reference#SkBlendMode'>SkBlendMode</a> <a href='#SkPaint_getBlendMode'>getBlendMode</a>() <a href='#SkPaint_getBlendMode'>const</a>
+<a href='SkBlendMode_Reference#SkBlendMode'>SkBlendMode</a> <a href='#SkPaint_getBlendMode'>getBlendMode</a>() const
</pre>
Returns <a href='SkBlendMode_Reference#SkBlendMode'>SkBlendMode</a>.
@@ -3028,7 +2909,7 @@
### Return Value
-mode used to combine source <a href='SkColor_Reference#Color'>color</a> <a href='SkColor_Reference#Color'>with</a> <a href='SkColor_Reference#Color'>destination</a> <a href='SkColor_Reference#Color'>color</a>
+mode used to combine source <a href='SkColor_Reference#Color'>color</a> with destination <a href='SkColor_Reference#Color'>color</a>
### Example
@@ -3048,14 +2929,14 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-bool <a href='#SkPaint_isSrcOver'>isSrcOver</a>() <a href='#SkPaint_isSrcOver'>const</a>
+bool <a href='#SkPaint_isSrcOver'>isSrcOver</a>() const
</pre>
-Returns true if <a href='SkBlendMode_Reference#SkBlendMode'>SkBlendMode</a> <a href='SkBlendMode_Reference#SkBlendMode'>is</a> <a href='SkBlendMode_Reference#SkBlendMode'>SkBlendMode</a>::<a href='#SkBlendMode_kSrcOver'>kSrcOver</a>, <a href='#SkBlendMode_kSrcOver'>the</a> <a href='#SkBlendMode_kSrcOver'>default</a>.
+Returns true if <a href='SkBlendMode_Reference#SkBlendMode'>SkBlendMode</a> is <a href='SkBlendMode_Reference#SkBlendMode'>SkBlendMode</a>::<a href='#SkBlendMode_kSrcOver'>kSrcOver</a>, the default.
### Return Value
-true if <a href='SkBlendMode_Reference#SkBlendMode'>SkBlendMode</a> <a href='SkBlendMode_Reference#SkBlendMode'>is</a> <a href='SkBlendMode_Reference#SkBlendMode'>SkBlendMode</a>::<a href='#SkBlendMode_kSrcOver'>kSrcOver</a>
+true if <a href='SkBlendMode_Reference#SkBlendMode'>SkBlendMode</a> is <a href='SkBlendMode_Reference#SkBlendMode'>SkBlendMode</a>::<a href='#SkBlendMode_kSrcOver'>kSrcOver</a>
### Example
@@ -3075,16 +2956,16 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-void <a href='#SkPaint_setBlendMode'>setBlendMode</a>(<a href='SkBlendMode_Reference#SkBlendMode'>SkBlendMode</a> <a href='SkBlendMode_Reference#SkBlendMode'>mode</a>)
+void <a href='#SkPaint_setBlendMode'>setBlendMode</a>(<a href='SkBlendMode_Reference#SkBlendMode'>SkBlendMode</a> mode)
</pre>
-Sets <a href='SkBlendMode_Reference#SkBlendMode'>SkBlendMode</a> <a href='SkBlendMode_Reference#SkBlendMode'>to</a> <a href='#SkPaint_setBlendMode_mode'>mode</a>.
+Sets <a href='SkBlendMode_Reference#SkBlendMode'>SkBlendMode</a> to <a href='#SkPaint_setBlendMode_mode'>mode</a>.
Does not check for valid input.
### Parameters
<table> <tr> <td><a name='SkPaint_setBlendMode_mode'><code><strong>mode</strong></code></a></td>
- <td><a href='SkBlendMode_Reference#SkBlendMode'>SkBlendMode</a> <a href='SkBlendMode_Reference#SkBlendMode'>used</a> <a href='SkBlendMode_Reference#SkBlendMode'>to</a> <a href='SkBlendMode_Reference#SkBlendMode'>combine</a> <a href='SkBlendMode_Reference#SkBlendMode'>source</a> <a href='SkColor_Reference#Color'>color</a> <a href='SkColor_Reference#Color'>and</a> <a href='SkColor_Reference#Color'>destination</a></td>
+ <td><a href='SkBlendMode_Reference#SkBlendMode'>SkBlendMode</a> used to combine source <a href='SkColor_Reference#Color'>color</a> and destination</td>
</tr>
</table>
@@ -3105,9 +2986,9 @@
---
-<a href='#Path_Effect'>Path_Effect</a> <a href='#Path_Effect'>modifies</a> <a href='#Path_Effect'>the</a> <a href='SkPath_Reference#Path'>path</a> <a href='SkPath_Reference#Path'>geometry</a> <a href='SkPath_Reference#Path'>before</a> <a href='SkPath_Reference#Path'>drawing</a> <a href='SkPath_Reference#Path'>it</a>.
-<a href='#Path_Effect'>Path_Effect</a> <a href='#Path_Effect'>may</a> <a href='#Path_Effect'>implement</a> <a href='#Path_Effect'>dashing</a>, <a href='#Path_Effect'>custom</a> <a href='#Path_Effect'>fill</a> <a href='#Path_Effect'>effects</a> <a href='#Path_Effect'>and</a> <a href='#Path_Effect'>custom</a> <a href='#Path_Effect'>stroke</a> <a href='#Path_Effect'>effects</a>.
-<a href='#Path_Effect'>If</a> <a href='SkPaint_Reference#Paint'>Paint</a> <a href='SkPaint_Reference#Paint'>has</a> <a href='SkPaint_Reference#Paint'>no</a> <a href='#Path_Effect'>Path_Effect</a>, <a href='#Path_Effect'>the</a> <a href='SkPath_Reference#Path'>path</a> <a href='SkPath_Reference#Path'>geometry</a> <a href='SkPath_Reference#Path'>is</a> <a href='SkPath_Reference#Path'>unaltered</a> <a href='SkPath_Reference#Path'>when</a> <a href='SkPath_Reference#Path'>filled</a> <a href='SkPath_Reference#Path'>or</a> <a href='SkPath_Reference#Path'>stroked</a>.
+<a href='#Path_Effect'>Path_Effect</a> modifies the <a href='SkPath_Reference#Path'>path</a> geometry before drawing it.
+<a href='#Path_Effect'>Path_Effect</a> may implement dashing, custom fill effects and custom stroke effects.
+If <a href='SkPaint_Reference#Paint'>Paint</a> has no <a href='#Path_Effect'>Path_Effect</a>, the <a href='SkPath_Reference#Path'>path</a> geometry is unaltered when filled or stroked.
### Example
@@ -3122,15 +3003,15 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-<a href='undocumented#SkPathEffect'>SkPathEffect</a>* <a href='#SkPaint_getPathEffect'>getPathEffect</a>() <a href='#SkPaint_getPathEffect'>const</a>
+<a href='undocumented#SkPathEffect'>SkPathEffect</a>* <a href='#SkPaint_getPathEffect'>getPathEffect</a>() const
</pre>
-Returns <a href='undocumented#SkPathEffect'>SkPathEffect</a> <a href='undocumented#SkPathEffect'>if</a> <a href='undocumented#SkPathEffect'>set</a>, <a href='undocumented#SkPathEffect'>or</a> <a href='undocumented#SkPathEffect'>nullptr</a>.
+Returns <a href='undocumented#SkPathEffect'>SkPathEffect</a> if set, or nullptr.
Does not alter <a href='undocumented#SkPathEffect'>SkPathEffect</a> <a href='undocumented#SkRefCnt'>SkRefCnt</a>.
### Return Value
-<a href='undocumented#SkPathEffect'>SkPathEffect</a> <a href='undocumented#SkPathEffect'>if</a> <a href='undocumented#SkPathEffect'>previously</a> <a href='undocumented#SkPathEffect'>set</a>, <a href='undocumented#SkPathEffect'>nullptr</a> <a href='undocumented#SkPathEffect'>otherwise</a>
+<a href='undocumented#SkPathEffect'>SkPathEffect</a> if previously set, nullptr otherwise
### Example
@@ -3150,15 +3031,15 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-<a href='undocumented#sk_sp'>sk_sp</a>&<a href='undocumented#sk_sp'>lt</a>;<a href='undocumented#SkPathEffect'>SkPathEffect</a>&<a href='undocumented#SkPathEffect'>gt</a>; <a href='#SkPaint_refPathEffect'>refPathEffect</a>() <a href='#SkPaint_refPathEffect'>const</a>
+<a href='undocumented#sk_sp'>sk_sp</a><<a href='undocumented#SkPathEffect'>SkPathEffect</a>> <a href='#SkPaint_refPathEffect'>refPathEffect</a>() const
</pre>
-Returns <a href='undocumented#SkPathEffect'>SkPathEffect</a> <a href='undocumented#SkPathEffect'>if</a> <a href='undocumented#SkPathEffect'>set</a>, <a href='undocumented#SkPathEffect'>or</a> <a href='undocumented#SkPathEffect'>nullptr</a>.
-Increases <a href='undocumented#SkPathEffect'>SkPathEffect</a> <a href='undocumented#SkRefCnt'>SkRefCnt</a> <a href='undocumented#SkRefCnt'>by</a> <a href='undocumented#SkRefCnt'>one</a>.
+Returns <a href='undocumented#SkPathEffect'>SkPathEffect</a> if set, or nullptr.
+Increases <a href='undocumented#SkPathEffect'>SkPathEffect</a> <a href='undocumented#SkRefCnt'>SkRefCnt</a> by one.
### Return Value
-<a href='undocumented#SkPathEffect'>SkPathEffect</a> <a href='undocumented#SkPathEffect'>if</a> <a href='undocumented#SkPathEffect'>previously</a> <a href='undocumented#SkPathEffect'>set</a>, <a href='undocumented#SkPathEffect'>nullptr</a> <a href='undocumented#SkPathEffect'>otherwise</a>
+<a href='undocumented#SkPathEffect'>SkPathEffect</a> if previously set, nullptr otherwise
### Example
@@ -3178,18 +3059,18 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-void <a href='#SkPaint_setPathEffect'>setPathEffect</a>(<a href='undocumented#sk_sp'>sk_sp</a>&<a href='undocumented#sk_sp'>lt</a>;<a href='undocumented#SkPathEffect'>SkPathEffect</a>&<a href='undocumented#SkPathEffect'>gt</a>; <a href='undocumented#SkPathEffect'>pathEffect</a>)
+void <a href='#SkPaint_setPathEffect'>setPathEffect</a>(<a href='undocumented#sk_sp'>sk_sp</a><<a href='undocumented#SkPathEffect'>SkPathEffect</a>> pathEffect)
</pre>
-Sets <a href='undocumented#SkPathEffect'>SkPathEffect</a> <a href='undocumented#SkPathEffect'>to</a> <a href='#SkPaint_setPathEffect_pathEffect'>pathEffect</a>, <a href='#SkPaint_setPathEffect_pathEffect'>decreasing</a> <a href='undocumented#SkRefCnt'>SkRefCnt</a> <a href='undocumented#SkRefCnt'>of</a> <a href='undocumented#SkRefCnt'>the</a> <a href='undocumented#SkRefCnt'>previous</a>
-<a href='undocumented#SkPathEffect'>SkPathEffect</a>. <a href='undocumented#SkPathEffect'>Pass</a> <a href='undocumented#SkPathEffect'>nullptr</a> <a href='undocumented#SkPathEffect'>to</a> <a href='undocumented#SkPathEffect'>leave</a> <a href='undocumented#SkPathEffect'>the</a> <a href='SkPath_Reference#Path'>path</a> <a href='SkPath_Reference#Path'>geometry</a> <a href='SkPath_Reference#Path'>unaltered</a>.
+Sets <a href='undocumented#SkPathEffect'>SkPathEffect</a> to <a href='#SkPaint_setPathEffect_pathEffect'>pathEffect</a>, decreasing <a href='undocumented#SkRefCnt'>SkRefCnt</a> of the previous
+<a href='undocumented#SkPathEffect'>SkPathEffect</a>. Pass nullptr to leave the <a href='SkPath_Reference#Path'>path</a> geometry unaltered.
-Increments <a href='#SkPaint_setPathEffect_pathEffect'>pathEffect</a> <a href='undocumented#SkRefCnt'>SkRefCnt</a> <a href='undocumented#SkRefCnt'>by</a> <a href='undocumented#SkRefCnt'>one</a>.
+Increments <a href='#SkPaint_setPathEffect_pathEffect'>pathEffect</a> <a href='undocumented#SkRefCnt'>SkRefCnt</a> by one.
### Parameters
<table> <tr> <td><a name='SkPaint_setPathEffect_pathEffect'><code><strong>pathEffect</strong></code></a></td>
- <td>replace <a href='SkPath_Reference#SkPath'>SkPath</a> <a href='SkPath_Reference#SkPath'>with</a> <a href='SkPath_Reference#SkPath'>a</a> <a href='SkPath_Reference#SkPath'>modification</a> <a href='SkPath_Reference#SkPath'>when</a> <a href='SkPath_Reference#SkPath'>drawn</a></td>
+ <td>replace <a href='SkPath_Reference#SkPath'>SkPath</a> with a modification when drawn</td>
</tr>
</table>
@@ -3201,12 +3082,12 @@
---
-<a href='#Mask_Filter'>Mask_Filter</a> <a href='#Mask_Filter'>uses</a> <a href='#Mask_Filter'>coverage</a> <a href='#Mask_Filter'>of</a> <a href='#Mask_Filter'>the</a> <a href='#Mask_Filter'>shape</a> <a href='#Mask_Filter'>drawn</a> <a href='#Mask_Filter'>to</a> <a href='#Mask_Filter'>create</a> <a href='#Mask_Alpha'>Mask_Alpha</a>.
-<a href='#Mask_Filter'>Mask_Filter</a> <a href='#Mask_Filter'>takes</a> <a href='#Mask_Filter'>a</a> <a href='#Mask_Filter'>Mask</a>, <a href='#Mask_Filter'>and</a> <a href='#Mask_Filter'>returns</a> <a href='#Mask_Filter'>a</a> <a href='#Mask_Filter'>Mask</a>.
+<a href='#Mask_Filter'>Mask_Filter</a> uses coverage of the shape drawn to create <a href='#Mask_Alpha'>Mask_Alpha</a>.
+<a href='#Mask_Filter'>Mask_Filter</a> takes a Mask, and returns a Mask.
-<a href='#Mask_Filter'>Mask_Filter</a> <a href='#Mask_Filter'>may</a> <a href='#Mask_Filter'>change</a> <a href='#Mask_Filter'>the</a> <a href='#Mask_Filter'>geometry</a> <a href='#Mask_Filter'>and</a> <a href='#Mask_Filter'>transparency</a> <a href='#Mask_Filter'>of</a> <a href='#Mask_Filter'>the</a> <a href='#Mask_Filter'>shape</a>, <a href='#Mask_Filter'>such</a> <a href='#Mask_Filter'>as</a>
-<a href='#Mask_Filter'>creating</a> <a href='#Mask_Filter'>a</a> <a href='#Mask_Filter'>blur</a> <a href='#Mask_Filter'>effect</a>. <a href='#Mask_Filter'>Set</a> <a href='#Mask_Filter'>Mask_Filter</a> <a href='#Mask_Filter'>to</a> <a href='#Mask_Filter'>nullptr</a> <a href='#Mask_Filter'>to</a> <a href='#Mask_Filter'>prevent</a> <a href='#Mask_Filter'>Mask_Filter</a> <a href='#Mask_Filter'>from</a>
-<a href='#Mask_Filter'>modifying</a> <a href='#Mask_Filter'>the</a> <a href='#Mask_Filter'>draw</a>.
+<a href='#Mask_Filter'>Mask_Filter</a> may change the geometry and transparency of the shape, such as
+creating a blur effect. Set <a href='#Mask_Filter'>Mask_Filter</a> to nullptr to prevent <a href='#Mask_Filter'>Mask_Filter</a> from
+modifying the draw.
### Example
@@ -3217,15 +3098,15 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-<a href='undocumented#SkMaskFilter'>SkMaskFilter</a>* <a href='#SkPaint_getMaskFilter'>getMaskFilter</a>() <a href='#SkPaint_getMaskFilter'>const</a>
+<a href='undocumented#SkMaskFilter'>SkMaskFilter</a>* <a href='#SkPaint_getMaskFilter'>getMaskFilter</a>() const
</pre>
-Returns <a href='undocumented#SkMaskFilter'>SkMaskFilter</a> <a href='undocumented#SkMaskFilter'>if</a> <a href='undocumented#SkMaskFilter'>set</a>, <a href='undocumented#SkMaskFilter'>or</a> <a href='undocumented#SkMaskFilter'>nullptr</a>.
+Returns <a href='undocumented#SkMaskFilter'>SkMaskFilter</a> if set, or nullptr.
Does not alter <a href='undocumented#SkMaskFilter'>SkMaskFilter</a> <a href='undocumented#SkRefCnt'>SkRefCnt</a>.
### Return Value
-<a href='undocumented#SkMaskFilter'>SkMaskFilter</a> <a href='undocumented#SkMaskFilter'>if</a> <a href='undocumented#SkMaskFilter'>previously</a> <a href='undocumented#SkMaskFilter'>set</a>, <a href='undocumented#SkMaskFilter'>nullptr</a> <a href='undocumented#SkMaskFilter'>otherwise</a>
+<a href='undocumented#SkMaskFilter'>SkMaskFilter</a> if previously set, nullptr otherwise
### Example
@@ -3245,16 +3126,16 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-<a href='undocumented#sk_sp'>sk_sp</a>&<a href='undocumented#sk_sp'>lt</a>;<a href='undocumented#SkMaskFilter'>SkMaskFilter</a>&<a href='undocumented#SkMaskFilter'>gt</a>; <a href='#SkPaint_refMaskFilter'>refMaskFilter</a>() <a href='#SkPaint_refMaskFilter'>const</a>
+<a href='undocumented#sk_sp'>sk_sp</a><<a href='undocumented#SkMaskFilter'>SkMaskFilter</a>> <a href='#SkPaint_refMaskFilter'>refMaskFilter</a>() const
</pre>
-Returns <a href='undocumented#SkMaskFilter'>SkMaskFilter</a> <a href='undocumented#SkMaskFilter'>if</a> <a href='undocumented#SkMaskFilter'>set</a>, <a href='undocumented#SkMaskFilter'>or</a> <a href='undocumented#SkMaskFilter'>nullptr</a>.
+Returns <a href='undocumented#SkMaskFilter'>SkMaskFilter</a> if set, or nullptr.
-Increases <a href='undocumented#SkMaskFilter'>SkMaskFilter</a> <a href='undocumented#SkRefCnt'>SkRefCnt</a> <a href='undocumented#SkRefCnt'>by</a> <a href='undocumented#SkRefCnt'>one</a>.
+Increases <a href='undocumented#SkMaskFilter'>SkMaskFilter</a> <a href='undocumented#SkRefCnt'>SkRefCnt</a> by one.
### Return Value
-<a href='undocumented#SkMaskFilter'>SkMaskFilter</a> <a href='undocumented#SkMaskFilter'>if</a> <a href='undocumented#SkMaskFilter'>previously</a> <a href='undocumented#SkMaskFilter'>set</a>, <a href='undocumented#SkMaskFilter'>nullptr</a> <a href='undocumented#SkMaskFilter'>otherwise</a>
+<a href='undocumented#SkMaskFilter'>SkMaskFilter</a> if previously set, nullptr otherwise
### Example
@@ -3274,14 +3155,14 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-void <a href='#SkPaint_setMaskFilter'>setMaskFilter</a>(<a href='undocumented#sk_sp'>sk_sp</a>&<a href='undocumented#sk_sp'>lt</a>;<a href='undocumented#SkMaskFilter'>SkMaskFilter</a>&<a href='undocumented#SkMaskFilter'>gt</a>; <a href='undocumented#SkMaskFilter'>maskFilter</a>)
+void <a href='#SkPaint_setMaskFilter'>setMaskFilter</a>(<a href='undocumented#sk_sp'>sk_sp</a><<a href='undocumented#SkMaskFilter'>SkMaskFilter</a>> maskFilter)
</pre>
-Sets <a href='undocumented#SkMaskFilter'>SkMaskFilter</a> <a href='undocumented#SkMaskFilter'>to</a> <a href='#SkPaint_setMaskFilter_maskFilter'>maskFilter</a>, <a href='#SkPaint_setMaskFilter_maskFilter'>decreasing</a> <a href='undocumented#SkRefCnt'>SkRefCnt</a> <a href='undocumented#SkRefCnt'>of</a> <a href='undocumented#SkRefCnt'>the</a> <a href='undocumented#SkRefCnt'>previous</a>
-<a href='undocumented#SkMaskFilter'>SkMaskFilter</a>. <a href='undocumented#SkMaskFilter'>Pass</a> <a href='undocumented#SkMaskFilter'>nullptr</a> <a href='undocumented#SkMaskFilter'>to</a> <a href='undocumented#SkMaskFilter'>clear</a> <a href='undocumented#SkMaskFilter'>SkMaskFilter</a> <a href='undocumented#SkMaskFilter'>and</a> <a href='undocumented#SkMaskFilter'>leave</a> <a href='undocumented#SkMaskFilter'>SkMaskFilter</a> <a href='undocumented#SkMaskFilter'>effect</a> <a href='undocumented#SkMaskFilter'>on</a>
+Sets <a href='undocumented#SkMaskFilter'>SkMaskFilter</a> to <a href='#SkPaint_setMaskFilter_maskFilter'>maskFilter</a>, decreasing <a href='undocumented#SkRefCnt'>SkRefCnt</a> of the previous
+<a href='undocumented#SkMaskFilter'>SkMaskFilter</a>. Pass nullptr to clear <a href='undocumented#SkMaskFilter'>SkMaskFilter</a> and leave <a href='undocumented#SkMaskFilter'>SkMaskFilter</a> effect on
<a href='undocumented#Mask_Alpha'>mask alpha</a> unaltered.
-Increments <a href='#SkPaint_setMaskFilter_maskFilter'>maskFilter</a> <a href='undocumented#SkRefCnt'>SkRefCnt</a> <a href='undocumented#SkRefCnt'>by</a> <a href='undocumented#SkRefCnt'>one</a>.
+Increments <a href='#SkPaint_setMaskFilter_maskFilter'>maskFilter</a> <a href='undocumented#SkRefCnt'>SkRefCnt</a> by one.
### Parameters
@@ -3298,10 +3179,10 @@
---
-<a href='undocumented#Typeface'>Typeface</a> <a href='undocumented#Typeface'>identifies</a> <a href='undocumented#Typeface'>the</a> <a href='undocumented#Font'>font</a> <a href='undocumented#Font'>used</a> <a href='undocumented#Font'>when</a> <a href='undocumented#Font'>drawing</a> <a href='undocumented#Font'>and</a> <a href='undocumented#Font'>measuring</a> <a href='undocumented#Text'>text</a>.
-<a href='undocumented#Typeface'>Typeface</a> <a href='undocumented#Typeface'>may</a> <a href='undocumented#Typeface'>be</a> <a href='undocumented#Typeface'>specified</a> <a href='undocumented#Typeface'>by</a> <a href='undocumented#Typeface'>name</a>, <a href='undocumented#Typeface'>from</a> <a href='undocumented#Typeface'>a</a> <a href='undocumented#Typeface'>file</a>, <a href='undocumented#Typeface'>or</a> <a href='undocumented#Typeface'>from</a> <a href='undocumented#Typeface'>a</a> <a href='undocumented#Data'>data</a> <a href='SkStream_Reference#Stream'>stream</a>.
-<a href='SkStream_Reference#Stream'>The</a> <a href='SkStream_Reference#Stream'>default</a> <a href='undocumented#Typeface'>Typeface</a> <a href='undocumented#Typeface'>defers</a> <a href='undocumented#Typeface'>to</a> <a href='undocumented#Typeface'>the</a> <a href='undocumented#Typeface'>platform-specific</a> <a href='undocumented#Typeface'>default</a> <a href='undocumented#Font'>font</a>
-<a href='undocumented#Font'>implementation</a>.
+<a href='undocumented#Typeface'>Typeface</a> identifies the <a href='undocumented#Font'>font</a> used when drawing and measuring <a href='undocumented#Text'>text</a>.
+<a href='undocumented#Typeface'>Typeface</a> may be specified by name, from a file, or from a <a href='undocumented#Data'>data</a> <a href='SkStream_Reference#Stream'>stream</a>.
+The default <a href='undocumented#Typeface'>Typeface</a> defers to the platform-specific default <a href='undocumented#Font'>font</a>
+implementation.
### Example
@@ -3312,15 +3193,15 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-<a href='undocumented#SkTypeface'>SkTypeface</a>* <a href='#SkPaint_getTypeface'>getTypeface</a>() <a href='#SkPaint_getTypeface'>const</a>
+<a href='undocumented#SkTypeface'>SkTypeface</a>* <a href='#SkPaint_getTypeface'>getTypeface</a>() const
</pre>
-Returns <a href='undocumented#SkTypeface'>SkTypeface</a> <a href='undocumented#SkTypeface'>if</a> <a href='undocumented#SkTypeface'>set</a>, <a href='undocumented#SkTypeface'>or</a> <a href='undocumented#SkTypeface'>nullptr</a>.
+Returns <a href='undocumented#SkTypeface'>SkTypeface</a> if set, or nullptr.
Does not alter <a href='undocumented#SkTypeface'>SkTypeface</a> <a href='undocumented#SkRefCnt'>SkRefCnt</a>.
### Return Value
-<a href='undocumented#SkTypeface'>SkTypeface</a> <a href='undocumented#SkTypeface'>if</a> <a href='undocumented#SkTypeface'>previously</a> <a href='undocumented#SkTypeface'>set</a>, <a href='undocumented#SkTypeface'>nullptr</a> <a href='undocumented#SkTypeface'>otherwise</a>
+<a href='undocumented#SkTypeface'>SkTypeface</a> if previously set, nullptr otherwise
### Example
@@ -3340,14 +3221,14 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-<a href='undocumented#sk_sp'>sk_sp</a>&<a href='undocumented#sk_sp'>lt</a>;<a href='undocumented#SkTypeface'>SkTypeface</a>&<a href='undocumented#SkTypeface'>gt</a>; <a href='#SkPaint_refTypeface'>refTypeface</a>() <a href='#SkPaint_refTypeface'>const</a>
+<a href='undocumented#sk_sp'>sk_sp</a><<a href='undocumented#SkTypeface'>SkTypeface</a>> <a href='#SkPaint_refTypeface'>refTypeface</a>() const
</pre>
-Increases <a href='undocumented#SkTypeface'>SkTypeface</a> <a href='undocumented#SkRefCnt'>SkRefCnt</a> <a href='undocumented#SkRefCnt'>by</a> <a href='undocumented#SkRefCnt'>one</a>.
+Increases <a href='undocumented#SkTypeface'>SkTypeface</a> <a href='undocumented#SkRefCnt'>SkRefCnt</a> by one.
### Return Value
-<a href='undocumented#SkTypeface'>SkTypeface</a> <a href='undocumented#SkTypeface'>if</a> <a href='undocumented#SkTypeface'>previously</a> <a href='undocumented#SkTypeface'>set</a>, <a href='undocumented#SkTypeface'>nullptr</a> <a href='undocumented#SkTypeface'>otherwise</a>
+<a href='undocumented#SkTypeface'>SkTypeface</a> if previously set, nullptr otherwise
### Example
@@ -3367,17 +3248,17 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-void <a href='#SkPaint_setTypeface'>setTypeface</a>(<a href='undocumented#sk_sp'>sk_sp</a>&<a href='undocumented#sk_sp'>lt</a>;<a href='undocumented#SkTypeface'>SkTypeface</a>&<a href='undocumented#SkTypeface'>gt</a>; <a href='undocumented#Typeface'>typeface</a>)
+void <a href='#SkPaint_setTypeface'>setTypeface</a>(<a href='undocumented#sk_sp'>sk_sp</a><<a href='undocumented#SkTypeface'>SkTypeface</a>> <a href='undocumented#Typeface'>typeface</a>)
</pre>
-Sets <a href='undocumented#SkTypeface'>SkTypeface</a> <a href='undocumented#SkTypeface'>to</a> <a href='#SkPaint_setTypeface_typeface'>typeface</a>, <a href='#SkPaint_setTypeface_typeface'>decreasing</a> <a href='undocumented#SkRefCnt'>SkRefCnt</a> <a href='undocumented#SkRefCnt'>of</a> <a href='undocumented#SkRefCnt'>the</a> <a href='undocumented#SkRefCnt'>previous</a> <a href='undocumented#SkTypeface'>SkTypeface</a>.
-Pass nullptr to clear <a href='undocumented#SkTypeface'>SkTypeface</a> <a href='undocumented#SkTypeface'>and</a> <a href='undocumented#SkTypeface'>use</a> <a href='undocumented#SkTypeface'>the</a> <a href='undocumented#SkTypeface'>default</a> <a href='#SkPaint_setTypeface_typeface'>typeface</a>. <a href='#SkPaint_setTypeface_typeface'>Increments</a>
-<a href='#SkPaint_setTypeface_typeface'>typeface</a> <a href='undocumented#SkRefCnt'>SkRefCnt</a> <a href='undocumented#SkRefCnt'>by</a> <a href='undocumented#SkRefCnt'>one</a>.
+Sets <a href='undocumented#SkTypeface'>SkTypeface</a> to <a href='#SkPaint_setTypeface_typeface'>typeface</a>, decreasing <a href='undocumented#SkRefCnt'>SkRefCnt</a> of the previous <a href='undocumented#SkTypeface'>SkTypeface</a>.
+Pass nullptr to clear <a href='undocumented#SkTypeface'>SkTypeface</a> and use the default <a href='#SkPaint_setTypeface_typeface'>typeface</a>. Increments
+<a href='#SkPaint_setTypeface_typeface'>typeface</a> <a href='undocumented#SkRefCnt'>SkRefCnt</a> by one.
### Parameters
<table> <tr> <td><a name='SkPaint_setTypeface_typeface'><code><strong>typeface</strong></code></a></td>
- <td><a href='undocumented#Font'>font</a> <a href='undocumented#Font'>and</a> <a href='undocumented#Font'>style</a> <a href='undocumented#Font'>used</a> <a href='undocumented#Font'>to</a> <a href='undocumented#Font'>draw</a> <a href='undocumented#Text'>text</a></td>
+ <td><a href='undocumented#Font'>font</a> and style used to draw <a href='undocumented#Text'>text</a></td>
</tr>
</table>
@@ -3389,13 +3270,13 @@
---
-<a href='#Image_Filter'>Image_Filter</a> <a href='#Image_Filter'>operates</a> <a href='#Image_Filter'>on</a> <a href='#Image_Filter'>the</a> <a href='undocumented#Pixel'>pixel</a> <a href='undocumented#Pixel'>representation</a> <a href='undocumented#Pixel'>of</a> <a href='undocumented#Pixel'>the</a> <a href='undocumented#Pixel'>shape</a>, <a href='undocumented#Pixel'>as</a> <a href='undocumented#Pixel'>modified</a> <a href='undocumented#Pixel'>by</a> <a href='SkPaint_Reference#Paint'>Paint</a>
-<a href='SkPaint_Reference#Paint'>with</a> <a href='#Blend_Mode'>Blend_Mode</a> <a href='#Blend_Mode'>set</a> <a href='#Blend_Mode'>to</a> <a href='SkBlendMode_Reference#SkBlendMode'>SkBlendMode</a>::<a href='#SkBlendMode_kSrcOver'>kSrcOver</a>. <a href='#Image_Filter'>Image_Filter</a> <a href='#Image_Filter'>creates</a> <a href='#Image_Filter'>a</a> <a href='#Image_Filter'>new</a> <a href='SkBitmap_Reference#Bitmap'>bitmap</a>,
-<a href='SkBitmap_Reference#Bitmap'>which</a> <a href='SkBitmap_Reference#Bitmap'>is</a> <a href='SkBitmap_Reference#Bitmap'>drawn</a> <a href='SkBitmap_Reference#Bitmap'>to</a> <a href='SkBitmap_Reference#Bitmap'>the</a> <a href='undocumented#Device'>device</a> <a href='undocumented#Device'>using</a> <a href='undocumented#Device'>the</a> <a href='undocumented#Device'>set</a> <a href='#Blend_Mode'>Blend_Mode</a>.
+<a href='#Image_Filter'>Image_Filter</a> operates on the <a href='undocumented#Pixel'>pixel</a> representation of the shape, as modified by <a href='SkPaint_Reference#Paint'>Paint</a>
+with <a href='#Blend_Mode'>Blend_Mode</a> set to <a href='SkBlendMode_Reference#SkBlendMode'>SkBlendMode</a>::<a href='#SkBlendMode_kSrcOver'>kSrcOver</a>. <a href='#Image_Filter'>Image_Filter</a> creates a new <a href='SkBitmap_Reference#Bitmap'>bitmap</a>,
+which is drawn to the <a href='undocumented#Device'>device</a> using the set <a href='#Blend_Mode'>Blend_Mode</a>.
-<a href='#Image_Filter'>Image_Filter</a> <a href='#Image_Filter'>is</a> <a href='#Image_Filter'>higher</a> <a href='#Image_Filter'>level</a> <a href='#Image_Filter'>than</a> <a href='#Mask_Filter'>Mask_Filter</a>; <a href='#Mask_Filter'>for</a> <a href='#Mask_Filter'>instance</a>, <a href='#Mask_Filter'>an</a> <a href='#Image_Filter'>Image_Filter</a>
-<a href='#Image_Filter'>can</a> <a href='#Image_Filter'>operate</a> <a href='#Image_Filter'>on</a> <a href='#Image_Filter'>all</a> <a href='#Image_Filter'>channels</a> <a href='#Image_Filter'>of</a> <a href='SkColor_Reference#Color'>Color</a>, <a href='SkColor_Reference#Color'>while</a> <a href='#Mask_Filter'>Mask_Filter</a> <a href='#Mask_Filter'>generates</a> <a href='SkColor_Reference#Alpha'>Alpha</a> <a href='SkColor_Reference#Alpha'>only</a>.
-<a href='#Image_Filter'>Image_Filter</a> <a href='#Image_Filter'>operates</a> <a href='#Image_Filter'>independently</a> <a href='#Image_Filter'>of</a> <a href='#Image_Filter'>and</a> <a href='#Image_Filter'>can</a> <a href='#Image_Filter'>be</a> <a href='#Image_Filter'>used</a> <a href='#Image_Filter'>in</a> <a href='#Image_Filter'>combination</a> <a href='#Image_Filter'>with</a>
+<a href='#Image_Filter'>Image_Filter</a> is higher level than <a href='#Mask_Filter'>Mask_Filter</a>; for instance, an <a href='#Image_Filter'>Image_Filter</a>
+can operate on all channels of <a href='SkColor_Reference#Color'>Color</a>, while <a href='#Mask_Filter'>Mask_Filter</a> generates <a href='SkColor_Reference#Alpha'>Alpha</a> only.
+<a href='#Image_Filter'>Image_Filter</a> operates independently of and can be used in combination with
<a href='#Mask_Filter'>Mask_Filter</a>.
### Example
@@ -3407,15 +3288,15 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-<a href='undocumented#SkImageFilter'>SkImageFilter</a>* <a href='#SkPaint_getImageFilter'>getImageFilter</a>() <a href='#SkPaint_getImageFilter'>const</a>
+<a href='undocumented#SkImageFilter'>SkImageFilter</a>* <a href='#SkPaint_getImageFilter'>getImageFilter</a>() const
</pre>
-Returns <a href='undocumented#SkImageFilter'>SkImageFilter</a> <a href='undocumented#SkImageFilter'>if</a> <a href='undocumented#SkImageFilter'>set</a>, <a href='undocumented#SkImageFilter'>or</a> <a href='undocumented#SkImageFilter'>nullptr</a>.
+Returns <a href='undocumented#SkImageFilter'>SkImageFilter</a> if set, or nullptr.
Does not alter <a href='undocumented#SkImageFilter'>SkImageFilter</a> <a href='undocumented#SkRefCnt'>SkRefCnt</a>.
### Return Value
-<a href='undocumented#SkImageFilter'>SkImageFilter</a> <a href='undocumented#SkImageFilter'>if</a> <a href='undocumented#SkImageFilter'>previously</a> <a href='undocumented#SkImageFilter'>set</a>, <a href='undocumented#SkImageFilter'>nullptr</a> <a href='undocumented#SkImageFilter'>otherwise</a>
+<a href='undocumented#SkImageFilter'>SkImageFilter</a> if previously set, nullptr otherwise
### Example
@@ -3435,15 +3316,15 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-<a href='undocumented#sk_sp'>sk_sp</a>&<a href='undocumented#sk_sp'>lt</a>;<a href='undocumented#SkImageFilter'>SkImageFilter</a>&<a href='undocumented#SkImageFilter'>gt</a>; <a href='#SkPaint_refImageFilter'>refImageFilter</a>() <a href='#SkPaint_refImageFilter'>const</a>
+<a href='undocumented#sk_sp'>sk_sp</a><<a href='undocumented#SkImageFilter'>SkImageFilter</a>> <a href='#SkPaint_refImageFilter'>refImageFilter</a>() const
</pre>
-Returns <a href='undocumented#SkImageFilter'>SkImageFilter</a> <a href='undocumented#SkImageFilter'>if</a> <a href='undocumented#SkImageFilter'>set</a>, <a href='undocumented#SkImageFilter'>or</a> <a href='undocumented#SkImageFilter'>nullptr</a>.
-Increases <a href='undocumented#SkImageFilter'>SkImageFilter</a> <a href='undocumented#SkRefCnt'>SkRefCnt</a> <a href='undocumented#SkRefCnt'>by</a> <a href='undocumented#SkRefCnt'>one</a>.
+Returns <a href='undocumented#SkImageFilter'>SkImageFilter</a> if set, or nullptr.
+Increases <a href='undocumented#SkImageFilter'>SkImageFilter</a> <a href='undocumented#SkRefCnt'>SkRefCnt</a> by one.
### Return Value
-<a href='undocumented#SkImageFilter'>SkImageFilter</a> <a href='undocumented#SkImageFilter'>if</a> <a href='undocumented#SkImageFilter'>previously</a> <a href='undocumented#SkImageFilter'>set</a>, <a href='undocumented#SkImageFilter'>nullptr</a> <a href='undocumented#SkImageFilter'>otherwise</a>
+<a href='undocumented#SkImageFilter'>SkImageFilter</a> if previously set, nullptr otherwise
### Example
@@ -3463,19 +3344,19 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-void <a href='#SkPaint_setImageFilter'>setImageFilter</a>(<a href='undocumented#sk_sp'>sk_sp</a>&<a href='undocumented#sk_sp'>lt</a>;<a href='undocumented#SkImageFilter'>SkImageFilter</a>&<a href='undocumented#SkImageFilter'>gt</a>; <a href='undocumented#SkImageFilter'>imageFilter</a>)
+void <a href='#SkPaint_setImageFilter'>setImageFilter</a>(<a href='undocumented#sk_sp'>sk_sp</a><<a href='undocumented#SkImageFilter'>SkImageFilter</a>> imageFilter)
</pre>
-Sets <a href='undocumented#SkImageFilter'>SkImageFilter</a> <a href='undocumented#SkImageFilter'>to</a> <a href='#SkPaint_setImageFilter_imageFilter'>imageFilter</a>, <a href='#SkPaint_setImageFilter_imageFilter'>decreasing</a> <a href='undocumented#SkRefCnt'>SkRefCnt</a> <a href='undocumented#SkRefCnt'>of</a> <a href='undocumented#SkRefCnt'>the</a> <a href='undocumented#SkRefCnt'>previous</a>
-<a href='undocumented#SkImageFilter'>SkImageFilter</a>. <a href='undocumented#SkImageFilter'>Pass</a> <a href='undocumented#SkImageFilter'>nullptr</a> <a href='undocumented#SkImageFilter'>to</a> <a href='undocumented#SkImageFilter'>clear</a> <a href='undocumented#SkImageFilter'>SkImageFilter</a>, <a href='undocumented#SkImageFilter'>and</a> <a href='undocumented#SkImageFilter'>remove</a> <a href='undocumented#SkImageFilter'>SkImageFilter</a> <a href='undocumented#SkImageFilter'>effect</a>
+Sets <a href='undocumented#SkImageFilter'>SkImageFilter</a> to <a href='#SkPaint_setImageFilter_imageFilter'>imageFilter</a>, decreasing <a href='undocumented#SkRefCnt'>SkRefCnt</a> of the previous
+<a href='undocumented#SkImageFilter'>SkImageFilter</a>. Pass nullptr to clear <a href='undocumented#SkImageFilter'>SkImageFilter</a>, and remove <a href='undocumented#SkImageFilter'>SkImageFilter</a> effect
on drawing.
-Increments <a href='#SkPaint_setImageFilter_imageFilter'>imageFilter</a> <a href='undocumented#SkRefCnt'>SkRefCnt</a> <a href='undocumented#SkRefCnt'>by</a> <a href='undocumented#SkRefCnt'>one</a>.
+Increments <a href='#SkPaint_setImageFilter_imageFilter'>imageFilter</a> <a href='undocumented#SkRefCnt'>SkRefCnt</a> by one.
### Parameters
<table> <tr> <td><a name='SkPaint_setImageFilter_imageFilter'><code><strong>imageFilter</strong></code></a></td>
- <td>how <a href='SkImage_Reference#SkImage'>SkImage</a> <a href='SkImage_Reference#SkImage'>is</a> <a href='SkImage_Reference#SkImage'>sampled</a> <a href='SkImage_Reference#SkImage'>when</a> <a href='SkImage_Reference#SkImage'>transformed</a></td>
+ <td>how <a href='SkImage_Reference#SkImage'>SkImage</a> is sampled when transformed</td>
</tr>
</table>
@@ -3487,12 +3368,12 @@
---
-<a href='#Draw_Looper'>Draw_Looper</a> <a href='#Draw_Looper'>sets</a> <a href='#Draw_Looper'>a</a> <a href='#Draw_Looper'>modifier</a> <a href='#Draw_Looper'>that</a> <a href='#Draw_Looper'>communicates</a> <a href='#Draw_Looper'>state</a> <a href='#Draw_Looper'>from</a> <a href='#Draw_Looper'>one</a> <a href='#Draw_Layer'>Draw_Layer</a>
-<a href='#Draw_Layer'>to</a> <a href='#Draw_Layer'>another</a> <a href='#Draw_Layer'>to</a> <a href='#Draw_Layer'>construct</a> <a href='#Draw_Layer'>the</a> <a href='#Draw_Layer'>draw</a>.
+<a href='#Draw_Looper'>Draw_Looper</a> sets a modifier that communicates state from one <a href='#Draw_Layer'>Draw_Layer</a>
+to another to construct the draw.
-<a href='#Draw_Looper'>Draw_Looper</a> <a href='#Draw_Looper'>draws</a> <a href='#Draw_Looper'>one</a> <a href='#Draw_Looper'>or</a> <a href='#Draw_Looper'>more</a> <a href='#Draw_Looper'>times</a>, <a href='#Draw_Looper'>modifying</a> <a href='#Draw_Looper'>the</a> <a href='SkCanvas_Reference#Canvas'>canvas</a> <a href='SkCanvas_Reference#Canvas'>and</a> <a href='SkPaint_Reference#Paint'>paint</a> <a href='SkPaint_Reference#Paint'>each</a> <a href='SkPaint_Reference#Paint'>time</a>.
-<a href='#Draw_Looper'>Draw_Looper</a> <a href='#Draw_Looper'>may</a> <a href='#Draw_Looper'>be</a> <a href='#Draw_Looper'>used</a> <a href='#Draw_Looper'>to</a> <a href='#Draw_Looper'>draw</a> <a href='#Draw_Looper'>multiple</a> <a href='#Draw_Looper'>colors</a> <a href='#Draw_Looper'>or</a> <a href='#Draw_Looper'>create</a> <a href='#Draw_Looper'>a</a> <a href='#Draw_Looper'>colored</a> <a href='#Draw_Looper'>shadow</a>.
-<a href='#Draw_Looper'>Set</a> <a href='#Draw_Looper'>Draw_Looper</a> <a href='#Draw_Looper'>to</a> <a href='#Draw_Looper'>nullptr</a> <a href='#Draw_Looper'>to</a> <a href='#Draw_Looper'>prevent</a> <a href='#Draw_Looper'>Draw_Looper</a> <a href='#Draw_Looper'>from</a> <a href='#Draw_Looper'>modifying</a> <a href='#Draw_Looper'>the</a> <a href='#Draw_Looper'>draw</a>.
+<a href='#Draw_Looper'>Draw_Looper</a> draws one or more times, modifying the <a href='SkCanvas_Reference#Canvas'>canvas</a> and <a href='SkPaint_Reference#Paint'>paint</a> each time.
+<a href='#Draw_Looper'>Draw_Looper</a> may be used to draw multiple colors or create a colored shadow.
+Set <a href='#Draw_Looper'>Draw_Looper</a> to nullptr to prevent <a href='#Draw_Looper'>Draw_Looper</a> from modifying the draw.
### Example
@@ -3503,15 +3384,15 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-<a href='undocumented#SkDrawLooper'>SkDrawLooper</a>* <a href='#SkPaint_getDrawLooper'>getDrawLooper</a>() <a href='#SkPaint_getDrawLooper'>const</a>
+<a href='undocumented#SkDrawLooper'>SkDrawLooper</a>* <a href='#SkPaint_getDrawLooper'>getDrawLooper</a>() const
</pre>
-Returns <a href='undocumented#SkDrawLooper'>SkDrawLooper</a> <a href='undocumented#SkDrawLooper'>if</a> <a href='undocumented#SkDrawLooper'>set</a>, <a href='undocumented#SkDrawLooper'>or</a> <a href='undocumented#SkDrawLooper'>nullptr</a>.
+Returns <a href='undocumented#SkDrawLooper'>SkDrawLooper</a> if set, or nullptr.
Does not alter <a href='undocumented#SkDrawLooper'>SkDrawLooper</a> <a href='undocumented#SkRefCnt'>SkRefCnt</a>.
### Return Value
-<a href='undocumented#SkDrawLooper'>SkDrawLooper</a> <a href='undocumented#SkDrawLooper'>if</a> <a href='undocumented#SkDrawLooper'>previously</a> <a href='undocumented#SkDrawLooper'>set</a>, <a href='undocumented#SkDrawLooper'>nullptr</a> <a href='undocumented#SkDrawLooper'>otherwise</a>
+<a href='undocumented#SkDrawLooper'>SkDrawLooper</a> if previously set, nullptr otherwise
### Example
@@ -3531,15 +3412,15 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-<a href='undocumented#sk_sp'>sk_sp</a>&<a href='undocumented#sk_sp'>lt</a>;<a href='undocumented#SkDrawLooper'>SkDrawLooper</a>&<a href='undocumented#SkDrawLooper'>gt</a>; <a href='#SkPaint_refDrawLooper'>refDrawLooper</a>() <a href='#SkPaint_refDrawLooper'>const</a>
+<a href='undocumented#sk_sp'>sk_sp</a><<a href='undocumented#SkDrawLooper'>SkDrawLooper</a>> <a href='#SkPaint_refDrawLooper'>refDrawLooper</a>() const
</pre>
-Returns <a href='undocumented#SkDrawLooper'>SkDrawLooper</a> <a href='undocumented#SkDrawLooper'>if</a> <a href='undocumented#SkDrawLooper'>set</a>, <a href='undocumented#SkDrawLooper'>or</a> <a href='undocumented#SkDrawLooper'>nullptr</a>.
-Increases <a href='undocumented#SkDrawLooper'>SkDrawLooper</a> <a href='undocumented#SkRefCnt'>SkRefCnt</a> <a href='undocumented#SkRefCnt'>by</a> <a href='undocumented#SkRefCnt'>one</a>.
+Returns <a href='undocumented#SkDrawLooper'>SkDrawLooper</a> if set, or nullptr.
+Increases <a href='undocumented#SkDrawLooper'>SkDrawLooper</a> <a href='undocumented#SkRefCnt'>SkRefCnt</a> by one.
### Return Value
-<a href='undocumented#SkDrawLooper'>SkDrawLooper</a> <a href='undocumented#SkDrawLooper'>if</a> <a href='undocumented#SkDrawLooper'>previously</a> <a href='undocumented#SkDrawLooper'>set</a>, <a href='undocumented#SkDrawLooper'>nullptr</a> <a href='undocumented#SkDrawLooper'>otherwise</a>
+<a href='undocumented#SkDrawLooper'>SkDrawLooper</a> if previously set, nullptr otherwise
### Example
@@ -3559,7 +3440,7 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-<a href='undocumented#SkDrawLooper'>SkDrawLooper</a>* <a href='#SkPaint_getLooper'>getLooper</a>() <a href='#SkPaint_getLooper'>const</a>
+<a href='undocumented#SkDrawLooper'>SkDrawLooper</a>* <a href='#SkPaint_getLooper'>getLooper</a>() const
</pre>
Deprecated.
@@ -3569,14 +3450,14 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-void setDrawLooper(<a href='undocumented#sk_sp'>sk_sp</a>&<a href='undocumented#sk_sp'>lt</a>;<a href='undocumented#SkDrawLooper'>SkDrawLooper</a>&<a href='undocumented#SkDrawLooper'>gt</a>; <a href='undocumented#SkDrawLooper'>drawLooper</a>)
+void setDrawLooper(<a href='undocumented#sk_sp'>sk_sp</a><<a href='undocumented#SkDrawLooper'>SkDrawLooper</a>> drawLooper)
</pre>
-Sets <a href='undocumented#SkDrawLooper'>SkDrawLooper</a> <a href='undocumented#SkDrawLooper'>to</a> <a href='#SkPaint_setDrawLooper_drawLooper'>drawLooper</a>, <a href='#SkPaint_setDrawLooper_drawLooper'>decreasing</a> <a href='undocumented#SkRefCnt'>SkRefCnt</a> <a href='undocumented#SkRefCnt'>of</a> <a href='undocumented#SkRefCnt'>the</a> <a href='undocumented#SkRefCnt'>previous</a>
-<a href='#SkPaint_setDrawLooper_drawLooper'>drawLooper</a>. <a href='#SkPaint_setDrawLooper_drawLooper'>Pass</a> <a href='#SkPaint_setDrawLooper_drawLooper'>nullptr</a> <a href='#SkPaint_setDrawLooper_drawLooper'>to</a> <a href='#SkPaint_setDrawLooper_drawLooper'>clear</a> <a href='undocumented#SkDrawLooper'>SkDrawLooper</a> <a href='undocumented#SkDrawLooper'>and</a> <a href='undocumented#SkDrawLooper'>leave</a> <a href='undocumented#SkDrawLooper'>SkDrawLooper</a> <a href='undocumented#SkDrawLooper'>effect</a> <a href='undocumented#SkDrawLooper'>on</a>
+Sets <a href='undocumented#SkDrawLooper'>SkDrawLooper</a> to <a href='#SkPaint_setDrawLooper_drawLooper'>drawLooper</a>, decreasing <a href='undocumented#SkRefCnt'>SkRefCnt</a> of the previous
+<a href='#SkPaint_setDrawLooper_drawLooper'>drawLooper</a>. Pass nullptr to clear <a href='undocumented#SkDrawLooper'>SkDrawLooper</a> and leave <a href='undocumented#SkDrawLooper'>SkDrawLooper</a> effect on
drawing unaltered.
-Increments <a href='#SkPaint_setDrawLooper_drawLooper'>drawLooper</a> <a href='undocumented#SkRefCnt'>SkRefCnt</a> <a href='undocumented#SkRefCnt'>by</a> <a href='undocumented#SkRefCnt'>one</a>.
+Increments <a href='#SkPaint_setDrawLooper_drawLooper'>drawLooper</a> <a href='undocumented#SkRefCnt'>SkRefCnt</a> by one.
### Parameters
@@ -3594,7 +3475,7 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-void <a href='#SkPaint_setLooper'>setLooper</a>(<a href='undocumented#sk_sp'>sk_sp</a>&<a href='undocumented#sk_sp'>lt</a>;<a href='undocumented#SkDrawLooper'>SkDrawLooper</a>&<a href='undocumented#SkDrawLooper'>gt</a>; <a href='undocumented#SkDrawLooper'>drawLooper</a>)
+void <a href='#SkPaint_setLooper'>setLooper</a>(<a href='undocumented#sk_sp'>sk_sp</a><<a href='undocumented#SkDrawLooper'>SkDrawLooper</a>> drawLooper)
</pre>
Deprecated.
@@ -3603,10 +3484,10 @@
---
-<a href='#Paint_Text_Size'>Text_Size</a> <a href='#Paint_Text_Size'>adjusts</a> <a href='#Paint_Text_Size'>the</a> <a href='#Paint_Text_Size'>overall</a> <a href='#Text_Size'>text size</a> <a href='undocumented#Text'>in</a> <a href='SkPoint_Reference#Point'>points</a>.
-<a href='#Paint_Text_Size'>Text_Size</a> <a href='#Paint_Text_Size'>can</a> <a href='#Paint_Text_Size'>be</a> <a href='#Paint_Text_Size'>set</a> <a href='#Paint_Text_Size'>to</a> <a href='#Paint_Text_Size'>any</a> <a href='#Paint_Text_Size'>positive</a> <a href='#Paint_Text_Size'>value</a> <a href='#Paint_Text_Size'>or</a> <a href='#Paint_Text_Size'>zero</a>.
-<a href='#Paint_Text_Size'>Text_Size</a> <a href='#Paint_Text_Size'>defaults</a> <a href='#Paint_Text_Size'>to</a> 12.
-<a href='#Paint_Text_Size'>Set</a> <a href='undocumented#SkPaintDefaults_TextSize'>SkPaintDefaults_TextSize</a> <a href='undocumented#SkPaintDefaults_TextSize'>at</a> <a href='undocumented#SkPaintDefaults_TextSize'>compile</a> <a href='undocumented#SkPaintDefaults_TextSize'>time</a> <a href='undocumented#SkPaintDefaults_TextSize'>to</a> <a href='undocumented#SkPaintDefaults_TextSize'>change</a> <a href='undocumented#SkPaintDefaults_TextSize'>the</a> <a href='undocumented#SkPaintDefaults_TextSize'>default</a> <a href='undocumented#SkPaintDefaults_TextSize'>setting</a>.
+<a href='#Paint_Text_Size'>Text_Size</a> adjusts the overall <a href='#Text_Size'>text size</a> in <a href='SkPoint_Reference#Point'>points</a>.
+<a href='#Paint_Text_Size'>Text_Size</a> can be set to any positive value or zero.
+<a href='#Paint_Text_Size'>Text_Size</a> defaults to 12.
+Set <a href='undocumented#SkPaintDefaults_TextSize'>SkPaintDefaults_TextSize</a> at compile time to change the default setting.
### Example
@@ -3617,10 +3498,10 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-<a href='undocumented#SkScalar'>SkScalar</a> <a href='#SkPaint_getTextSize'>getTextSize</a>() <a href='#SkPaint_getTextSize'>const</a>
+<a href='undocumented#SkScalar'>SkScalar</a> <a href='#SkPaint_getTextSize'>getTextSize</a>() const
</pre>
-Returns <a href='undocumented#Text'>text</a> <a href='undocumented#Size'>size</a> <a href='undocumented#Size'>in</a> <a href='SkPoint_Reference#Point'>points</a>.
+Returns <a href='undocumented#Text'>text</a> <a href='undocumented#Size'>size</a> in <a href='SkPoint_Reference#Point'>points</a>.
### Return Value
@@ -3635,11 +3516,11 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-void <a href='#SkPaint_setTextSize'>setTextSize</a>(<a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>textSize</a>)
+void <a href='#SkPaint_setTextSize'>setTextSize</a>(<a href='undocumented#SkScalar'>SkScalar</a> textSize)
</pre>
-Sets <a href='#Text_Size'>text size</a> <a href='undocumented#Text'>in</a> <a href='SkPoint_Reference#Point'>points</a>.
-Has no effect if <a href='#SkPaint_setTextSize_textSize'>textSize</a> <a href='#SkPaint_setTextSize_textSize'>is</a> <a href='#SkPaint_setTextSize_textSize'>not</a> <a href='#SkPaint_setTextSize_textSize'>greater</a> <a href='#SkPaint_setTextSize_textSize'>than</a> <a href='#SkPaint_setTextSize_textSize'>or</a> <a href='#SkPaint_setTextSize_textSize'>equal</a> <a href='#SkPaint_setTextSize_textSize'>to</a> <a href='#SkPaint_setTextSize_textSize'>zero</a>.
+Sets <a href='#Text_Size'>text size</a> in <a href='SkPoint_Reference#Point'>points</a>.
+Has no effect if <a href='#SkPaint_setTextSize_textSize'>textSize</a> is not greater than or equal to zero.
### Parameters
@@ -3656,11 +3537,11 @@
---
-<a href='#Paint_Text_Scale_X'>Text_Scale_X</a> <a href='#Paint_Text_Scale_X'>adjusts</a> <a href='#Paint_Text_Scale_X'>the</a> <a href='undocumented#Text'>text</a> <a href='undocumented#Text'>horizontal</a> <a href='undocumented#Text'>scale</a>.
-<a href='undocumented#Text'>Text</a> <a href='undocumented#Text'>scaling</a> <a href='undocumented#Text'>approximates</a> <a href='undocumented#Text'>condensed</a> <a href='undocumented#Text'>and</a> <a href='undocumented#Text'>expanded</a> <a href='undocumented#Text'>type</a> <a href='undocumented#Text'>faces</a> <a href='undocumented#Text'>when</a> <a href='undocumented#Text'>the</a> <a href='undocumented#Text'>actual</a> <a href='undocumented#Text'>face</a>
-<a href='undocumented#Text'>is</a> <a href='undocumented#Text'>not</a> <a href='undocumented#Text'>available</a>.
-<a href='#Paint_Text_Scale_X'>Text_Scale_X</a> <a href='#Paint_Text_Scale_X'>can</a> <a href='#Paint_Text_Scale_X'>be</a> <a href='#Paint_Text_Scale_X'>set</a> <a href='#Paint_Text_Scale_X'>to</a> <a href='#Paint_Text_Scale_X'>any</a> <a href='#Paint_Text_Scale_X'>value</a>.
-<a href='#Paint_Text_Scale_X'>Text_Scale_X</a> <a href='#Paint_Text_Scale_X'>defaults</a> <a href='#Paint_Text_Scale_X'>to</a> 1.
+<a href='#Paint_Text_Scale_X'>Text_Scale_X</a> adjusts the <a href='undocumented#Text'>text</a> horizontal scale.
+<a href='undocumented#Text'>Text</a> scaling approximates condensed and expanded type faces when the actual face
+is not available.
+<a href='#Paint_Text_Scale_X'>Text_Scale_X</a> can be set to any value.
+<a href='#Paint_Text_Scale_X'>Text_Scale_X</a> defaults to 1.
### Example
@@ -3671,15 +3552,15 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-<a href='undocumented#SkScalar'>SkScalar</a> <a href='#SkPaint_getTextScaleX'>getTextScaleX</a>() <a href='#SkPaint_getTextScaleX'>const</a>
+<a href='undocumented#SkScalar'>SkScalar</a> <a href='#SkPaint_getTextScaleX'>getTextScaleX</a>() const
</pre>
-Returns <a href='undocumented#Text'>text</a> <a href='undocumented#Text'>scale</a> <a href='undocumented#Text'>on</a> <a href='undocumented#Text'>x-axis</a>.
+Returns <a href='undocumented#Text'>text</a> scale on x-axis.
Default value is 1.
### Return Value
-<a href='undocumented#Text'>text</a> <a href='undocumented#Text'>horizontal</a> <a href='undocumented#Text'>scale</a>
+<a href='undocumented#Text'>text</a> horizontal scale
### Example
@@ -3690,16 +3571,16 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-void <a href='#SkPaint_setTextScaleX'>setTextScaleX</a>(<a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>scaleX</a>)
+void <a href='#SkPaint_setTextScaleX'>setTextScaleX</a>(<a href='undocumented#SkScalar'>SkScalar</a> scaleX)
</pre>
-Sets <a href='undocumented#Text'>text scale</a> <a href='undocumented#Text'>on</a> <a href='undocumented#Text'>x-axis</a>.
+Sets <a href='undocumented#Text'>text scale</a> on x-axis.
Default value is 1.
### Parameters
<table> <tr> <td><a name='SkPaint_setTextScaleX_scaleX'><code><strong>scaleX</strong></code></a></td>
- <td><a href='undocumented#Text'>text</a> <a href='undocumented#Text'>horizontal</a> <a href='undocumented#Text'>scale</a></td>
+ <td><a href='undocumented#Text'>text</a> horizontal scale</td>
</tr>
</table>
@@ -3711,11 +3592,11 @@
---
-<a href='#Paint_Text_Skew_X'>Text_Skew_X</a> <a href='#Paint_Text_Skew_X'>adjusts</a> <a href='#Paint_Text_Skew_X'>the</a> <a href='undocumented#Text'>text</a> <a href='undocumented#Text'>horizontal</a> <a href='undocumented#Text'>slant</a>.
-<a href='undocumented#Text'>Text</a> <a href='undocumented#Text'>skewing</a> <a href='undocumented#Text'>approximates</a> <a href='undocumented#Text'>italic</a> <a href='undocumented#Text'>and</a> <a href='undocumented#Text'>oblique</a> <a href='undocumented#Text'>type</a> <a href='undocumented#Text'>faces</a> <a href='undocumented#Text'>when</a> <a href='undocumented#Text'>the</a> <a href='undocumented#Text'>actual</a> <a href='undocumented#Text'>face</a>
-<a href='undocumented#Text'>is</a> <a href='undocumented#Text'>not</a> <a href='undocumented#Text'>available</a>.
-<a href='#Paint_Text_Skew_X'>Text_Skew_X</a> <a href='#Paint_Text_Skew_X'>can</a> <a href='#Paint_Text_Skew_X'>be</a> <a href='#Paint_Text_Skew_X'>set</a> <a href='#Paint_Text_Skew_X'>to</a> <a href='#Paint_Text_Skew_X'>any</a> <a href='#Paint_Text_Skew_X'>value</a>.
-<a href='#Paint_Text_Skew_X'>Text_Skew_X</a> <a href='#Paint_Text_Skew_X'>defaults</a> <a href='#Paint_Text_Skew_X'>to</a> 0.
+<a href='#Paint_Text_Skew_X'>Text_Skew_X</a> adjusts the <a href='undocumented#Text'>text</a> horizontal slant.
+<a href='undocumented#Text'>Text</a> skewing approximates italic and oblique type faces when the actual face
+is not available.
+<a href='#Paint_Text_Skew_X'>Text_Skew_X</a> can be set to any value.
+<a href='#Paint_Text_Skew_X'>Text_Skew_X</a> defaults to 0.
### Example
@@ -3726,10 +3607,10 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-<a href='undocumented#SkScalar'>SkScalar</a> <a href='#SkPaint_getTextSkewX'>getTextSkewX</a>() <a href='#SkPaint_getTextSkewX'>const</a>
+<a href='undocumented#SkScalar'>SkScalar</a> <a href='#SkPaint_getTextSkewX'>getTextSkewX</a>() const
</pre>
-Returns <a href='undocumented#Text'>text</a> <a href='undocumented#Text'>skew</a> <a href='undocumented#Text'>on</a> <a href='undocumented#Text'>x-axis</a>.
+Returns <a href='undocumented#Text'>text</a> skew on x-axis.
Default value is zero.
### Return Value
@@ -3745,10 +3626,10 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-void <a href='#SkPaint_setTextSkewX'>setTextSkewX</a>(<a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>skewX</a>)
+void <a href='#SkPaint_setTextSkewX'>setTextSkewX</a>(<a href='undocumented#SkScalar'>SkScalar</a> skewX)
</pre>
-Sets <a href='undocumented#Text'>text skew</a> <a href='undocumented#Text'>on</a> <a href='undocumented#Text'>x-axis</a>.
+Sets <a href='undocumented#Text'>text skew</a> on x-axis.
Default value is zero.
### Parameters
@@ -3771,7 +3652,7 @@
---
<pre style="padding: 1em 1em 1em 1em;width: 62.5em; background-color: #f0f0f0">
- enum <a href='#SkPaint_TextEncoding'>TextEncoding</a> : <a href='#SkPaint_TextEncoding'>uint8_t</a> {
+ enum <a href='#SkPaint_TextEncoding'>TextEncoding</a> : uint8_t {
<a href='#SkPaint_kUTF8_TextEncoding'>kUTF8_TextEncoding</a>,
<a href='#SkPaint_kUTF16_TextEncoding'>kUTF16_TextEncoding</a>,
<a href='#SkPaint_kUTF32_TextEncoding'>kUTF32_TextEncoding</a>,
@@ -3779,13 +3660,13 @@
};
</pre>
-<a href='#SkPaint_TextEncoding'>TextEncoding</a> <a href='#SkPaint_TextEncoding'>determines</a> <a href='#SkPaint_TextEncoding'>whether</a> <a href='undocumented#Text'>text</a> <a href='undocumented#Text'>specifies</a> <a href='undocumented#Text'>character</a> <a href='undocumented#Text'>codes</a> <a href='undocumented#Text'>and</a> <a href='undocumented#Text'>their</a> <a href='undocumented#Text'>encoded</a>
-<a href='undocumented#Size'>size</a>, <a href='undocumented#Size'>or</a> <a href='undocumented#Glyph'>glyph</a> <a href='undocumented#Glyph'>indices</a>. <a href='undocumented#Glyph'>Characters</a> <a href='undocumented#Glyph'>are</a> <a href='undocumented#Glyph'>encoded</a> <a href='undocumented#Glyph'>as</a> <a href='undocumented#Glyph'>specified</a> <a href='undocumented#Glyph'>by</a> <a href='undocumented#Glyph'>the</a>
+<a href='#SkPaint_TextEncoding'>TextEncoding</a> determines whether <a href='undocumented#Text'>text</a> specifies character codes and their encoded
+<a href='undocumented#Size'>size</a>, or <a href='undocumented#Glyph'>glyph</a> indices. Characters are encoded as specified by the
<a href='https://unicode.org/standard/standard.html'>Unicode standard</a></a> .
-Character codes encoded <a href='undocumented#Size'>size</a> <a href='undocumented#Size'>are</a> <a href='undocumented#Size'>specified</a> <a href='undocumented#Size'>by</a> <a href='undocumented#Size'>UTF-8</a>, <a href='undocumented#Size'>UTF-16</a>, <a href='undocumented#Size'>or</a> <a href='undocumented#Size'>UTF-32</a>.
-<a href='undocumented#Size'>All</a> <a href='undocumented#Size'>character</a> <a href='undocumented#Size'>code</a> <a href='undocumented#Size'>formats</a> <a href='undocumented#Size'>are</a> <a href='undocumented#Size'>able</a> <a href='undocumented#Size'>to</a> <a href='undocumented#Size'>represent</a> <a href='undocumented#Size'>all</a> <a href='undocumented#Size'>of</a> <a href='undocumented#Size'>Unicode</a>, <a href='undocumented#Size'>differing</a> <a href='undocumented#Size'>only</a>
-<a href='undocumented#Size'>in</a> <a href='undocumented#Size'>the</a> <a href='undocumented#Size'>total</a> <a href='undocumented#Size'>storage</a> <a href='undocumented#Size'>required</a>.
+Character codes encoded <a href='undocumented#Size'>size</a> are specified by UTF-8, UTF-16, or UTF-32.
+All character code formats are able to represent all of Unicode, differing only
+in the total storage required.
<a href='https://tools.ietf.org/html/rfc3629'>UTF-8 (RFC 3629)</a></a> encodes each character as one or more 8-bit bytes.
@@ -3793,10 +3674,10 @@
<a href='https://www.unicode.org/versions/Unicode5.0.0/ch03.pdf'>UTF-32</a></a> encodes each character as one 32-bit word.
-<a href='#Font_Manager'>Font_Manager</a> <a href='#Font_Manager'>uses</a> <a href='undocumented#Font'>font</a> <a href='undocumented#Data'>data</a> <a href='undocumented#Data'>to</a> <a href='undocumented#Data'>convert</a> <a href='undocumented#Data'>character</a> <a href='undocumented#Data'>code</a> <a href='SkPoint_Reference#Point'>points</a> <a href='SkPoint_Reference#Point'>into</a> <a href='undocumented#Glyph'>glyph</a> <a href='undocumented#Glyph'>indices</a>.
-<a href='undocumented#Glyph'>A</a> <a href='undocumented#Glyph'>glyph</a> <a href='undocumented#Glyph'>index</a> <a href='undocumented#Glyph'>is</a> <a href='undocumented#Glyph'>a</a> 16-<a href='undocumented#Glyph'>bit</a> <a href='undocumented#Glyph'>word</a>.
+<a href='#Font_Manager'>Font_Manager</a> uses <a href='undocumented#Font'>font</a> <a href='undocumented#Data'>data</a> to convert character code <a href='SkPoint_Reference#Point'>points</a> into <a href='undocumented#Glyph'>glyph</a> indices.
+A <a href='undocumented#Glyph'>glyph</a> index is a 16-bit word.
-<a href='#SkPaint_TextEncoding'>TextEncoding</a> <a href='#SkPaint_TextEncoding'>is</a> <a href='#SkPaint_TextEncoding'>set</a> <a href='#SkPaint_TextEncoding'>to</a> <a href='#SkPaint_kUTF8_TextEncoding'>kUTF8_TextEncoding</a> <a href='#SkPaint_kUTF8_TextEncoding'>by</a> <a href='#SkPaint_kUTF8_TextEncoding'>default</a>.
+<a href='#SkPaint_TextEncoding'>TextEncoding</a> is set to <a href='#SkPaint_kUTF8_TextEncoding'>kUTF8_TextEncoding</a> by default.
### Constants
@@ -3832,10 +3713,10 @@
### Example
-<div><fiddle-embed name="b29294e7f29d160a1b46abf2dcec9d2a"><div>First <a href='undocumented#Line'>line</a> <a href='undocumented#Line'>is</a> <a href='undocumented#Line'>encoded</a> <a href='undocumented#Line'>in</a> <a href='undocumented#Line'>UTF-8</a>.
-<a href='undocumented#Line'>Second</a> <a href='undocumented#Line'>line</a> <a href='undocumented#Line'>is</a> <a href='undocumented#Line'>encoded</a> <a href='undocumented#Line'>in</a> <a href='undocumented#Line'>UTF-16</a>.
-<a href='undocumented#Line'>Third</a> <a href='undocumented#Line'>line</a> <a href='undocumented#Line'>is</a> <a href='undocumented#Line'>encoded</a> <a href='undocumented#Line'>in</a> <a href='undocumented#Line'>UTF-32</a>.
-<a href='undocumented#Line'>Fourth</a> <a href='undocumented#Line'>line</a> <a href='undocumented#Line'>has</a> 16-<a href='undocumented#Line'>bit</a> <a href='undocumented#Glyph'>glyph</a> <a href='undocumented#Glyph'>indices</a>.
+<div><fiddle-embed name="b29294e7f29d160a1b46abf2dcec9d2a"><div>First <a href='undocumented#Line'>line</a> is encoded in UTF-8.
+Second <a href='undocumented#Line'>line</a> is encoded in UTF-16.
+Third <a href='undocumented#Line'>line</a> is encoded in UTF-32.
+Fourth <a href='undocumented#Line'>line</a> has 16-bit <a href='undocumented#Glyph'>glyph</a> indices.
</div></fiddle-embed></div>
<a name='SkPaint_getTextEncoding'></a>
@@ -3843,15 +3724,15 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-<a href='#SkPaint_TextEncoding'>TextEncoding</a> <a href='#SkPaint_getTextEncoding'>getTextEncoding</a>() <a href='#SkPaint_getTextEncoding'>const</a>
+<a href='#SkPaint_TextEncoding'>TextEncoding</a> <a href='#SkPaint_getTextEncoding'>getTextEncoding</a>() const
</pre>
Returns <a href='SkPaint_Reference#SkPaint'>SkPaint</a>::<a href='#SkPaint_TextEncoding'>TextEncoding</a>.
-<a href='SkPaint_Reference#SkPaint'>SkPaint</a>::<a href='#SkPaint_TextEncoding'>TextEncoding</a> <a href='#SkPaint_TextEncoding'>determines</a> <a href='#SkPaint_TextEncoding'>how</a> <a href='#SkPaint_TextEncoding'>character</a> <a href='#SkPaint_TextEncoding'>code</a> <a href='SkPoint_Reference#Point'>points</a> <a href='SkPoint_Reference#Point'>are</a> <a href='SkPoint_Reference#Point'>mapped</a> <a href='SkPoint_Reference#Point'>to</a> <a href='undocumented#Font'>font</a> <a href='undocumented#Glyph'>glyph</a> <a href='undocumented#Glyph'>indices</a>.
+<a href='SkPaint_Reference#SkPaint'>SkPaint</a>::<a href='#SkPaint_TextEncoding'>TextEncoding</a> determines how character code <a href='SkPoint_Reference#Point'>points</a> are mapped to <a href='undocumented#Font'>font</a> <a href='undocumented#Glyph'>glyph</a> indices.
### Return Value
-one of: <a href='#SkPaint_kUTF8_TextEncoding'>kUTF8_TextEncoding</a>, <a href='#SkPaint_kUTF16_TextEncoding'>kUTF16_TextEncoding</a>, <a href='#SkPaint_kUTF32_TextEncoding'>kUTF32_TextEncoding</a>, <a href='#SkPaint_kUTF32_TextEncoding'>or</a>
+one of: <a href='#SkPaint_kUTF8_TextEncoding'>kUTF8_TextEncoding</a>, <a href='#SkPaint_kUTF16_TextEncoding'>kUTF16_TextEncoding</a>, <a href='#SkPaint_kUTF32_TextEncoding'>kUTF32_TextEncoding</a>, or
<a href='#SkPaint_kGlyphID_TextEncoding'>kGlyphID_TextEncoding</a>
@@ -3873,17 +3754,17 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-void <a href='#SkPaint_setTextEncoding'>setTextEncoding</a>(<a href='#SkPaint_TextEncoding'>TextEncoding</a> <a href='#SkPaint_TextEncoding'>encoding</a>)
+void <a href='#SkPaint_setTextEncoding'>setTextEncoding</a>(<a href='#SkPaint_TextEncoding'>TextEncoding</a> encoding)
</pre>
-Sets <a href='SkPaint_Reference#SkPaint'>SkPaint</a>::<a href='#SkPaint_TextEncoding'>TextEncoding</a> <a href='#SkPaint_TextEncoding'>to</a> <a href='#SkPaint_setTextEncoding_encoding'>encoding</a>.
-<a href='SkPaint_Reference#SkPaint'>SkPaint</a>::<a href='#SkPaint_TextEncoding'>TextEncoding</a> <a href='#SkPaint_TextEncoding'>determines</a> <a href='#SkPaint_TextEncoding'>how</a> <a href='#SkPaint_TextEncoding'>character</a> <a href='#SkPaint_TextEncoding'>code</a> <a href='SkPoint_Reference#Point'>points</a> <a href='SkPoint_Reference#Point'>are</a> <a href='SkPoint_Reference#Point'>mapped</a> <a href='SkPoint_Reference#Point'>to</a> <a href='undocumented#Font'>font</a> <a href='undocumented#Glyph'>glyph</a> <a href='undocumented#Glyph'>indices</a>.
-Invalid values for <a href='#SkPaint_setTextEncoding_encoding'>encoding</a> <a href='#SkPaint_setTextEncoding_encoding'>are</a> <a href='#SkPaint_setTextEncoding_encoding'>ignored</a>.
+Sets <a href='SkPaint_Reference#SkPaint'>SkPaint</a>::<a href='#SkPaint_TextEncoding'>TextEncoding</a> to <a href='#SkPaint_setTextEncoding_encoding'>encoding</a>.
+<a href='SkPaint_Reference#SkPaint'>SkPaint</a>::<a href='#SkPaint_TextEncoding'>TextEncoding</a> determines how character code <a href='SkPoint_Reference#Point'>points</a> are mapped to <a href='undocumented#Font'>font</a> <a href='undocumented#Glyph'>glyph</a> indices.
+Invalid values for <a href='#SkPaint_setTextEncoding_encoding'>encoding</a> are ignored.
### Parameters
<table> <tr> <td><a name='SkPaint_setTextEncoding_encoding'><code><strong>encoding</strong></code></a></td>
- <td>one of: <a href='#SkPaint_kUTF8_TextEncoding'>kUTF8_TextEncoding</a>, <a href='#SkPaint_kUTF16_TextEncoding'>kUTF16_TextEncoding</a>, <a href='#SkPaint_kUTF32_TextEncoding'>kUTF32_TextEncoding</a>, <a href='#SkPaint_kUTF32_TextEncoding'>or</a></td>
+ <td>one of: <a href='#SkPaint_kUTF8_TextEncoding'>kUTF8_TextEncoding</a>, <a href='#SkPaint_kUTF16_TextEncoding'>kUTF16_TextEncoding</a>, <a href='#SkPaint_kUTF32_TextEncoding'>kUTF32_TextEncoding</a>, or</td>
</tr>
</table>
@@ -3912,21 +3793,21 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-<a href='undocumented#SkScalar'>SkScalar</a> <a href='#SkPaint_getFontMetrics'>getFontMetrics</a>(<a href='undocumented#SkFontMetrics'>SkFontMetrics</a>* <a href='undocumented#SkFontMetrics'>metrics</a>) <a href='undocumented#SkFontMetrics'>const</a>
+<a href='undocumented#SkScalar'>SkScalar</a> <a href='#SkPaint_getFontMetrics'>getFontMetrics</a>(<a href='undocumented#SkFontMetrics'>SkFontMetrics</a>* metrics) const
</pre>
-Returns <a href='undocumented#SkFontMetrics'>SkFontMetrics</a> <a href='undocumented#SkFontMetrics'>associated</a> <a href='undocumented#SkFontMetrics'>with</a> <a href='undocumented#SkTypeface'>SkTypeface</a>.
-The return value is the recommended spacing between <a href='undocumented#Line'>lines</a>: <a href='undocumented#Line'>the</a> <a href='undocumented#Line'>sum</a> <a href='undocumented#Line'>of</a> <a href='#SkPaint_getFontMetrics_metrics'>metrics</a>
+Returns <a href='undocumented#SkFontMetrics'>SkFontMetrics</a> associated with <a href='undocumented#SkTypeface'>SkTypeface</a>.
+The return value is the recommended spacing between <a href='undocumented#Line'>lines</a>: the sum of <a href='#SkPaint_getFontMetrics_metrics'>metrics</a>
descent, ascent, and leading.
-If <a href='#SkPaint_getFontMetrics_metrics'>metrics</a> <a href='#SkPaint_getFontMetrics_metrics'>is</a> <a href='#SkPaint_getFontMetrics_metrics'>not</a> <a href='#SkPaint_getFontMetrics_metrics'>nullptr</a>, <a href='undocumented#SkFontMetrics'>SkFontMetrics</a> <a href='undocumented#SkFontMetrics'>is</a> <a href='undocumented#SkFontMetrics'>copied</a> <a href='undocumented#SkFontMetrics'>to</a> <a href='#SkPaint_getFontMetrics_metrics'>metrics</a>.
-Results are scaled by <a href='#Text_Size'>text size</a> <a href='undocumented#Text'>but</a> <a href='undocumented#Text'>does</a> <a href='undocumented#Text'>not</a> <a href='undocumented#Text'>take</a> <a href='undocumented#Text'>into</a> <a href='undocumented#Text'>account</a>
+If <a href='#SkPaint_getFontMetrics_metrics'>metrics</a> is not nullptr, <a href='undocumented#SkFontMetrics'>SkFontMetrics</a> is copied to <a href='#SkPaint_getFontMetrics_metrics'>metrics</a>.
+Results are scaled by <a href='#Text_Size'>text size</a> but does not take into account
dimensions required by <a href='#Text_Scale_X'>text scale x</a>, <a href='#Text_Skew_X'>text skew x</a>, <a href='#Fake_Bold'>fake bold</a>,
<a href='#Style_Stroke'>style stroke</a>, and <a href='undocumented#SkPathEffect'>SkPathEffect</a>.
### Parameters
<table> <tr> <td><a name='SkPaint_getFontMetrics_metrics'><code><strong>metrics</strong></code></a></td>
- <td>storage for <a href='undocumented#SkFontMetrics'>SkFontMetrics</a>; <a href='undocumented#SkFontMetrics'>may</a> <a href='undocumented#SkFontMetrics'>be</a> <a href='undocumented#SkFontMetrics'>nullptr</a></td>
+ <td>storage for <a href='undocumented#SkFontMetrics'>SkFontMetrics</a>; may be nullptr</td>
</tr>
</table>
@@ -3947,12 +3828,12 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-<a href='undocumented#SkScalar'>SkScalar</a> <a href='#SkPaint_getFontSpacing'>getFontSpacing</a>() <a href='#SkPaint_getFontSpacing'>const</a>
+<a href='undocumented#SkScalar'>SkScalar</a> <a href='#SkPaint_getFontSpacing'>getFontSpacing</a>() const
</pre>
-Returns the recommended spacing between <a href='undocumented#Line'>lines</a>: <a href='undocumented#Line'>the</a> <a href='undocumented#Line'>sum</a> <a href='undocumented#Line'>of</a> <a href='undocumented#Line'>metrics</a>
+Returns the recommended spacing between <a href='undocumented#Line'>lines</a>: the sum of metrics
descent, ascent, and leading.
-Result is scaled by <a href='undocumented#Text'>text</a> <a href='undocumented#Size'>size</a> <a href='undocumented#Size'>but</a> <a href='undocumented#Size'>does</a> <a href='undocumented#Size'>not</a> <a href='undocumented#Size'>take</a> <a href='undocumented#Size'>into</a> <a href='undocumented#Size'>account</a>
+Result is scaled by <a href='undocumented#Text'>text</a> <a href='undocumented#Size'>size</a> but does not take into account
dimensions required by stroking and <a href='undocumented#SkPathEffect'>SkPathEffect</a>.
Returns the same result as <a href='#SkPaint_getFontMetrics'>getFontMetrics</a>().
@@ -3980,21 +3861,21 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-int <a href='#SkPaint_textToGlyphs'>textToGlyphs</a>(<a href='#SkPaint_textToGlyphs'>const</a> <a href='#SkPaint_textToGlyphs'>void</a>* <a href='undocumented#Text'>text</a>, <a href='undocumented#Text'>size_t</a> <a href='undocumented#Text'>byteLength</a>, <a href='undocumented#SkGlyphID'>SkGlyphID</a> <a href='undocumented#Glyph'>glyphs</a>[]) <a href='undocumented#Glyph'>const</a>
+int <a href='#SkPaint_textToGlyphs'>textToGlyphs</a>(const void* <a href='undocumented#Text'>text</a>, size_t byteLength, <a href='undocumented#SkGlyphID'>SkGlyphID</a> <a href='undocumented#Glyph'>glyphs</a>[]) const
</pre>
-Converts <a href='#SkPaint_textToGlyphs_text'>text</a> <a href='#SkPaint_textToGlyphs_text'>into</a> <a href='undocumented#Glyph'>glyph</a> <a href='undocumented#Glyph'>indices</a>.
-Returns the number of <a href='undocumented#Glyph'>glyph</a> <a href='undocumented#Glyph'>indices</a> <a href='undocumented#Glyph'>represented</a> <a href='undocumented#Glyph'>by</a> <a href='#SkPaint_textToGlyphs_text'>text</a>.
-<a href='SkPaint_Reference#SkPaint'>SkPaint</a>::<a href='#SkPaint_TextEncoding'>TextEncoding</a> <a href='#SkPaint_TextEncoding'>specifies</a> <a href='#SkPaint_TextEncoding'>how</a> <a href='#SkPaint_textToGlyphs_text'>text</a> <a href='#SkPaint_textToGlyphs_text'>represents</a> <a href='#SkPaint_textToGlyphs_text'>characters</a> <a href='#SkPaint_textToGlyphs_text'>or</a> <a href='#SkPaint_textToGlyphs_glyphs'>glyphs</a>.
-<a href='#SkPaint_textToGlyphs_glyphs'>glyphs</a> <a href='#SkPaint_textToGlyphs_glyphs'>may</a> <a href='#SkPaint_textToGlyphs_glyphs'>be</a> <a href='#SkPaint_textToGlyphs_glyphs'>nullptr</a>, <a href='#SkPaint_textToGlyphs_glyphs'>to</a> <a href='#SkPaint_textToGlyphs_glyphs'>compute</a> <a href='#SkPaint_textToGlyphs_glyphs'>the</a> <a href='undocumented#Glyph'>glyph</a> <a href='undocumented#Glyph'>count</a>.
+Converts <a href='#SkPaint_textToGlyphs_text'>text</a> into <a href='undocumented#Glyph'>glyph</a> indices.
+Returns the number of <a href='undocumented#Glyph'>glyph</a> indices represented by <a href='#SkPaint_textToGlyphs_text'>text</a>.
+<a href='SkPaint_Reference#SkPaint'>SkPaint</a>::<a href='#SkPaint_TextEncoding'>TextEncoding</a> specifies how <a href='#SkPaint_textToGlyphs_text'>text</a> represents characters or <a href='#SkPaint_textToGlyphs_glyphs'>glyphs</a>.
+<a href='#SkPaint_textToGlyphs_glyphs'>glyphs</a> may be nullptr, to compute the <a href='undocumented#Glyph'>glyph</a> count.
-Does not check <a href='#SkPaint_textToGlyphs_text'>text</a> <a href='#SkPaint_textToGlyphs_text'>for</a> <a href='#SkPaint_textToGlyphs_text'>valid</a> <a href='#SkPaint_textToGlyphs_text'>character</a> <a href='#SkPaint_textToGlyphs_text'>codes</a> <a href='#SkPaint_textToGlyphs_text'>or</a> <a href='#SkPaint_textToGlyphs_text'>valid</a> <a href='undocumented#Glyph'>glyph</a> <a href='undocumented#Glyph'>indices</a>.
+Does not check <a href='#SkPaint_textToGlyphs_text'>text</a> for valid character codes or valid <a href='undocumented#Glyph'>glyph</a> indices.
-If <a href='#SkPaint_textToGlyphs_byteLength'>byteLength</a> <a href='#SkPaint_textToGlyphs_byteLength'>equals</a> <a href='#SkPaint_textToGlyphs_byteLength'>zero</a>, <a href='#SkPaint_textToGlyphs_byteLength'>returns</a> <a href='#SkPaint_textToGlyphs_byteLength'>zero</a>.
-If <a href='#SkPaint_textToGlyphs_byteLength'>byteLength</a> <a href='#SkPaint_textToGlyphs_byteLength'>includes</a> <a href='#SkPaint_textToGlyphs_byteLength'>a</a> <a href='#SkPaint_textToGlyphs_byteLength'>partial</a> <a href='#SkPaint_textToGlyphs_byteLength'>character</a>, <a href='#SkPaint_textToGlyphs_byteLength'>the</a> <a href='#SkPaint_textToGlyphs_byteLength'>partial</a> <a href='#SkPaint_textToGlyphs_byteLength'>character</a> <a href='#SkPaint_textToGlyphs_byteLength'>is</a> <a href='#SkPaint_textToGlyphs_byteLength'>ignored</a>.
+If <a href='#SkPaint_textToGlyphs_byteLength'>byteLength</a> equals zero, returns zero.
+If <a href='#SkPaint_textToGlyphs_byteLength'>byteLength</a> includes a partial character, the partial character is ignored.
-If <a href='SkPaint_Reference#SkPaint'>SkPaint</a>::<a href='#SkPaint_TextEncoding'>TextEncoding</a> <a href='#SkPaint_TextEncoding'>is</a> <a href='#SkPaint_kUTF8_TextEncoding'>kUTF8_TextEncoding</a> <a href='#SkPaint_kUTF8_TextEncoding'>and</a>
-<a href='#SkPaint_textToGlyphs_text'>text</a> <a href='#SkPaint_textToGlyphs_text'>contains</a> <a href='#SkPaint_textToGlyphs_text'>an</a> <a href='#SkPaint_textToGlyphs_text'>invalid</a> <a href='#SkPaint_textToGlyphs_text'>UTF-8</a> <a href='#SkPaint_textToGlyphs_text'>sequence</a>, <a href='#SkPaint_textToGlyphs_text'>zero</a> <a href='#SkPaint_textToGlyphs_text'>is</a> <a href='#SkPaint_textToGlyphs_text'>returned</a>.
+If <a href='SkPaint_Reference#SkPaint'>SkPaint</a>::<a href='#SkPaint_TextEncoding'>TextEncoding</a> is <a href='#SkPaint_kUTF8_TextEncoding'>kUTF8_TextEncoding</a> and
+<a href='#SkPaint_textToGlyphs_text'>text</a> contains an invalid UTF-8 sequence, zero is returned.
### Parameters
@@ -4005,13 +3886,13 @@
<td>length of character storage in bytes</td>
</tr>
<tr> <td><a name='SkPaint_textToGlyphs_glyphs'><code><strong>glyphs</strong></code></a></td>
- <td>storage for <a href='undocumented#Glyph'>glyph</a> <a href='undocumented#Glyph'>indices</a>; <a href='undocumented#Glyph'>may</a> <a href='undocumented#Glyph'>be</a> <a href='undocumented#Glyph'>nullptr</a></td>
+ <td>storage for <a href='undocumented#Glyph'>glyph</a> indices; may be nullptr</td>
</tr>
</table>
### Return Value
-number of <a href='#SkPaint_textToGlyphs_glyphs'>glyphs</a> <a href='#SkPaint_textToGlyphs_glyphs'>represented</a> <a href='#SkPaint_textToGlyphs_glyphs'>by</a> <a href='#SkPaint_textToGlyphs_text'>text</a> <a href='#SkPaint_textToGlyphs_text'>of</a> <a href='#SkPaint_textToGlyphs_text'>length</a> <a href='#SkPaint_textToGlyphs_byteLength'>byteLength</a>
+number of <a href='#SkPaint_textToGlyphs_glyphs'>glyphs</a> represented by <a href='#SkPaint_textToGlyphs_text'>text</a> of length <a href='#SkPaint_textToGlyphs_byteLength'>byteLength</a>
### Example
@@ -4022,11 +3903,11 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-int <a href='#SkPaint_countText'>countText</a>(<a href='#SkPaint_countText'>const</a> <a href='#SkPaint_countText'>void</a>* <a href='undocumented#Text'>text</a>, <a href='undocumented#Text'>size_t</a> <a href='undocumented#Text'>byteLength</a>) <a href='undocumented#Text'>const</a>
+int <a href='#SkPaint_countText'>countText</a>(const void* <a href='undocumented#Text'>text</a>, size_t byteLength) const
</pre>
-Returns the number of <a href='undocumented#Glyph'>glyphs</a> <a href='undocumented#Glyph'>in</a> <a href='#SkPaint_countText_text'>text</a>.
-Uses <a href='SkPaint_Reference#SkPaint'>SkPaint</a>::<a href='#SkPaint_TextEncoding'>TextEncoding</a> <a href='#SkPaint_TextEncoding'>to</a> <a href='#SkPaint_TextEncoding'>count</a> <a href='#SkPaint_TextEncoding'>the</a> <a href='undocumented#Glyph'>glyphs</a>.
+Returns the number of <a href='undocumented#Glyph'>glyphs</a> in <a href='#SkPaint_countText_text'>text</a>.
+Uses <a href='SkPaint_Reference#SkPaint'>SkPaint</a>::<a href='#SkPaint_TextEncoding'>TextEncoding</a> to count the <a href='undocumented#Glyph'>glyphs</a>.
Returns the same result as <a href='#SkPaint_textToGlyphs'>textToGlyphs</a>().
### Parameters
@@ -4041,7 +3922,7 @@
### Return Value
-number of <a href='undocumented#Glyph'>glyphs</a> <a href='undocumented#Glyph'>represented</a> <a href='undocumented#Glyph'>by</a> <a href='#SkPaint_countText_text'>text</a> <a href='#SkPaint_countText_text'>of</a> <a href='#SkPaint_countText_text'>length</a> <a href='#SkPaint_countText_byteLength'>byteLength</a>
+number of <a href='undocumented#Glyph'>glyphs</a> represented by <a href='#SkPaint_countText_text'>text</a> of length <a href='#SkPaint_countText_byteLength'>byteLength</a>
### Example
@@ -4060,18 +3941,18 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-bool <a href='#SkPaint_containsText'>containsText</a>(<a href='#SkPaint_containsText'>const</a> <a href='#SkPaint_containsText'>void</a>* <a href='undocumented#Text'>text</a>, <a href='undocumented#Text'>size_t</a> <a href='undocumented#Text'>byteLength</a>) <a href='undocumented#Text'>const</a>
+bool <a href='#SkPaint_containsText'>containsText</a>(const void* <a href='undocumented#Text'>text</a>, size_t byteLength) const
</pre>
-Returns true if all <a href='#SkPaint_containsText_text'>text</a> <a href='#SkPaint_containsText_text'>corresponds</a> <a href='#SkPaint_containsText_text'>to</a> <a href='#SkPaint_containsText_text'>a</a> <a href='#SkPaint_containsText_text'>non-zero</a> <a href='undocumented#Glyph'>glyph</a> <a href='undocumented#Glyph'>index</a>.
-Returns false if any characters in <a href='#SkPaint_containsText_text'>text</a> <a href='#SkPaint_containsText_text'>are</a> <a href='#SkPaint_containsText_text'>not</a> <a href='#SkPaint_containsText_text'>supported</a> <a href='#SkPaint_containsText_text'>in</a>
+Returns true if all <a href='#SkPaint_containsText_text'>text</a> corresponds to a non-zero <a href='undocumented#Glyph'>glyph</a> index.
+Returns false if any characters in <a href='#SkPaint_containsText_text'>text</a> are not supported in
<a href='undocumented#SkTypeface'>SkTypeface</a>.
-If <a href='SkPaint_Reference#SkPaint'>SkPaint</a>::<a href='#SkPaint_TextEncoding'>TextEncoding</a> <a href='#SkPaint_TextEncoding'>is</a> <a href='#SkPaint_kGlyphID_TextEncoding'>kGlyphID_TextEncoding</a>,
-returns true if all <a href='undocumented#Glyph'>glyph</a> <a href='undocumented#Glyph'>indices</a> <a href='undocumented#Glyph'>in</a> <a href='#SkPaint_containsText_text'>text</a> <a href='#SkPaint_containsText_text'>are</a> <a href='#SkPaint_containsText_text'>non-zero</a>;
-does not check to see if <a href='#SkPaint_containsText_text'>text</a> <a href='#SkPaint_containsText_text'>contains</a> <a href='#SkPaint_containsText_text'>valid</a> <a href='undocumented#Glyph'>glyph</a> <a href='undocumented#Glyph'>indices</a> <a href='undocumented#Glyph'>for</a> <a href='undocumented#SkTypeface'>SkTypeface</a>.
+If <a href='SkPaint_Reference#SkPaint'>SkPaint</a>::<a href='#SkPaint_TextEncoding'>TextEncoding</a> is <a href='#SkPaint_kGlyphID_TextEncoding'>kGlyphID_TextEncoding</a>,
+returns true if all <a href='undocumented#Glyph'>glyph</a> indices in <a href='#SkPaint_containsText_text'>text</a> are non-zero;
+does not check to see if <a href='#SkPaint_containsText_text'>text</a> contains valid <a href='undocumented#Glyph'>glyph</a> indices for <a href='undocumented#SkTypeface'>SkTypeface</a>.
-Returns true if <a href='#SkPaint_containsText_byteLength'>byteLength</a> <a href='#SkPaint_containsText_byteLength'>is</a> <a href='#SkPaint_containsText_byteLength'>zero</a>.
+Returns true if <a href='#SkPaint_containsText_byteLength'>byteLength</a> is zero.
### Parameters
@@ -4079,16 +3960,16 @@
<td>array of characters or <a href='undocumented#Glyph'>glyphs</a></td>
</tr>
<tr> <td><a name='SkPaint_containsText_byteLength'><code><strong>byteLength</strong></code></a></td>
- <td>number of bytes in <a href='#SkPaint_containsText_text'>text</a> <a href='#SkPaint_containsText_text'>array</a></td>
+ <td>number of bytes in <a href='#SkPaint_containsText_text'>text</a> array</td>
</tr>
</table>
### Return Value
-true if all <a href='#SkPaint_containsText_text'>text</a> <a href='#SkPaint_containsText_text'>corresponds</a> <a href='#SkPaint_containsText_text'>to</a> <a href='#SkPaint_containsText_text'>a</a> <a href='#SkPaint_containsText_text'>non-zero</a> <a href='undocumented#Glyph'>glyph</a> <a href='undocumented#Glyph'>index</a>
+true if all <a href='#SkPaint_containsText_text'>text</a> corresponds to a non-zero <a href='undocumented#Glyph'>glyph</a> index
-<div><a href='#SkPaint_containsText'>containsText</a> <a href='#SkPaint_containsText'>succeeds</a> <a href='#SkPaint_containsText'>for</a> <a href='#SkPaint_containsText'>degree</a> <a href='#SkPaint_containsText'>symbol</a>, <a href='#SkPaint_containsText'>but</a> <a href='#SkPaint_containsText'>cannot</a> <a href='#SkPaint_containsText'>find</a> <a href='#SkPaint_containsText'>a</a> <a href='undocumented#Glyph'>glyph</a> <a href='undocumented#Glyph'>index</a>
-<a href='undocumented#Glyph'>corresponding</a> <a href='undocumented#Glyph'>to</a> <a href='undocumented#Glyph'>the</a> <a href='undocumented#Glyph'>Unicode</a> <a href='undocumented#Glyph'>surrogate</a> <a href='undocumented#Glyph'>code</a> <a href='SkPoint_Reference#Point'>point</a>.
+<div><a href='#SkPaint_containsText'>containsText</a> succeeds for degree symbol, but cannot find a <a href='undocumented#Glyph'>glyph</a> index
+corresponding to the Unicode surrogate code <a href='SkPoint_Reference#Point'>point</a>.
</div>
#### Example Output
@@ -4100,8 +3981,8 @@
### Example
-<div><fiddle-embed name="083557b6f653d6fc00a34e01f87b74ff"><div><a href='#SkPaint_containsText'>containsText</a> <a href='#SkPaint_containsText'>returns</a> <a href='#SkPaint_containsText'>true</a> <a href='#SkPaint_containsText'>that</a> <a href='undocumented#Glyph'>glyph</a> <a href='undocumented#Glyph'>index</a> <a href='undocumented#Glyph'>is</a> <a href='undocumented#Glyph'>greater</a> <a href='undocumented#Glyph'>than</a> <a href='undocumented#Glyph'>zero</a>, <a href='undocumented#Glyph'>not</a>
-<a href='undocumented#Glyph'>that</a> <a href='undocumented#Glyph'>it</a> <a href='undocumented#Glyph'>corresponds</a> <a href='undocumented#Glyph'>to</a> <a href='undocumented#Glyph'>an</a> <a href='undocumented#Glyph'>entry</a> <a href='undocumented#Glyph'>in</a> <a href='undocumented#Typeface'>Typeface</a>.
+<div><fiddle-embed name="083557b6f653d6fc00a34e01f87b74ff"><div><a href='#SkPaint_containsText'>containsText</a> returns true that <a href='undocumented#Glyph'>glyph</a> index is greater than zero, not
+that it corresponds to an entry in <a href='undocumented#Typeface'>Typeface</a>.
</div>
#### Example Output
@@ -4123,13 +4004,13 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-void <a href='#SkPaint_glyphsToUnichars'>glyphsToUnichars</a>(<a href='#SkPaint_glyphsToUnichars'>const</a> <a href='undocumented#SkGlyphID'>SkGlyphID</a> <a href='undocumented#Glyph'>glyphs</a>[], <a href='undocumented#Glyph'>int</a> <a href='undocumented#Glyph'>count</a>, <a href='undocumented#SkUnichar'>SkUnichar</a> <a href='undocumented#Text'>text</a>[]) <a href='undocumented#Text'>const</a>
+void <a href='#SkPaint_glyphsToUnichars'>glyphsToUnichars</a>(const <a href='undocumented#SkGlyphID'>SkGlyphID</a> <a href='undocumented#Glyph'>glyphs</a>[], int count, <a href='undocumented#SkUnichar'>SkUnichar</a> <a href='undocumented#Text'>text</a>[]) const
</pre>
-Converts <a href='#SkPaint_glyphsToUnichars_glyphs'>glyphs</a> <a href='#SkPaint_glyphsToUnichars_glyphs'>into</a> <a href='#SkPaint_glyphsToUnichars_text'>text</a> <a href='#SkPaint_glyphsToUnichars_text'>if</a> <a href='#SkPaint_glyphsToUnichars_text'>possible</a>.
-<a href='undocumented#Glyph'>Glyph</a> <a href='undocumented#Glyph'>values</a> <a href='undocumented#Glyph'>without</a> <a href='undocumented#Glyph'>direct</a> <a href='undocumented#Glyph'>Unicode</a> <a href='undocumented#Glyph'>equivalents</a> <a href='undocumented#Glyph'>are</a> <a href='undocumented#Glyph'>mapped</a> <a href='undocumented#Glyph'>to</a> <a href='undocumented#Glyph'>zero</a>.
-Uses the <a href='undocumented#SkTypeface'>SkTypeface</a>, <a href='undocumented#SkTypeface'>but</a> <a href='undocumented#SkTypeface'>is</a> <a href='undocumented#SkTypeface'>unaffected</a>
-by <a href='SkPaint_Reference#SkPaint'>SkPaint</a>::<a href='#SkPaint_TextEncoding'>TextEncoding</a>; <a href='#SkPaint_TextEncoding'>the</a> <a href='#SkPaint_glyphsToUnichars_text'>text</a> <a href='#SkPaint_glyphsToUnichars_text'>values</a> <a href='#SkPaint_glyphsToUnichars_text'>returned</a> <a href='#SkPaint_glyphsToUnichars_text'>are</a> <a href='#SkPaint_glyphsToUnichars_text'>equivalent</a> <a href='#SkPaint_glyphsToUnichars_text'>to</a> <a href='#SkPaint_kUTF32_TextEncoding'>kUTF32_TextEncoding</a>.
+Converts <a href='#SkPaint_glyphsToUnichars_glyphs'>glyphs</a> into <a href='#SkPaint_glyphsToUnichars_text'>text</a> if possible.
+<a href='undocumented#Glyph'>Glyph</a> values without direct Unicode equivalents are mapped to zero.
+Uses the <a href='undocumented#SkTypeface'>SkTypeface</a>, but is unaffected
+by <a href='SkPaint_Reference#SkPaint'>SkPaint</a>::<a href='#SkPaint_TextEncoding'>TextEncoding</a>; the <a href='#SkPaint_glyphsToUnichars_text'>text</a> values returned are equivalent to <a href='#SkPaint_kUTF32_TextEncoding'>kUTF32_TextEncoding</a>.
Only supported on platforms that use FreeType as the <a href='undocumented#Font_Engine'>font engine</a>.
@@ -4139,7 +4020,7 @@
<td>array of indices into <a href='undocumented#Font'>font</a></td>
</tr>
<tr> <td><a name='SkPaint_glyphsToUnichars_count'><code><strong>count</strong></code></a></td>
- <td>length of <a href='undocumented#Glyph'>glyph</a> <a href='undocumented#Glyph'>array</a></td>
+ <td>length of <a href='undocumented#Glyph'>glyph</a> array</td>
</tr>
<tr> <td><a name='SkPaint_glyphsToUnichars_text'><code><strong>text</strong></code></a></td>
<td>storage for character codes, one per <a href='undocumented#Glyph'>glyph</a></td>
@@ -4148,7 +4029,7 @@
### Example
-<div><fiddle-embed name="c12686b0b3e0a87d0a248bbfc57e9492"><div>Convert UTF-8 <a href='#SkPaint_glyphsToUnichars_text'>text</a> <a href='#SkPaint_glyphsToUnichars_text'>to</a> <a href='#SkPaint_glyphsToUnichars_glyphs'>glyphs</a>; <a href='#SkPaint_glyphsToUnichars_glyphs'>then</a> <a href='#SkPaint_glyphsToUnichars_glyphs'>convert</a> <a href='#SkPaint_glyphsToUnichars_glyphs'>glyphs</a> <a href='#SkPaint_glyphsToUnichars_glyphs'>to</a> <a href='#SkPaint_glyphsToUnichars_glyphs'>Unichar</a> <a href='#SkPaint_glyphsToUnichars_glyphs'>code</a> <a href='SkPoint_Reference#Point'>points</a>.
+<div><fiddle-embed name="c12686b0b3e0a87d0a248bbfc57e9492"><div>Convert UTF-8 <a href='#SkPaint_glyphsToUnichars_text'>text</a> to <a href='#SkPaint_glyphsToUnichars_glyphs'>glyphs</a>; then convert <a href='#SkPaint_glyphsToUnichars_glyphs'>glyphs</a> to Unichar code <a href='SkPoint_Reference#Point'>points</a>.
</div></fiddle-embed></div>
<a name='Measure_Text'></a>
@@ -4158,24 +4039,24 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-<a href='undocumented#SkScalar'>SkScalar</a> <a href='#SkPaint_measureText'>measureText</a>(<a href='#SkPaint_measureText'>const</a> <a href='#SkPaint_measureText'>void</a>* <a href='undocumented#Text'>text</a>, <a href='undocumented#Text'>size_t</a> <a href='undocumented#Text'>length</a>, <a href='SkRect_Reference#SkRect'>SkRect</a>* <a href='SkRect_Reference#SkRect'>bounds</a>) <a href='SkRect_Reference#SkRect'>const</a>
+<a href='undocumented#SkScalar'>SkScalar</a> <a href='#SkPaint_measureText'>measureText</a>(const void* <a href='undocumented#Text'>text</a>, size_t length, <a href='SkRect_Reference#SkRect'>SkRect</a>* bounds) const
</pre>
Returns the advance width of <a href='#SkPaint_measureText_text'>text</a>.
The advance is the normal distance to move before drawing additional <a href='#SkPaint_measureText_text'>text</a>.
-Uses <a href='SkPaint_Reference#SkPaint'>SkPaint</a>::<a href='#SkPaint_TextEncoding'>TextEncoding</a> <a href='#SkPaint_TextEncoding'>to</a> <a href='#SkPaint_TextEncoding'>decode</a> <a href='#SkPaint_measureText_text'>text</a>, <a href='undocumented#SkTypeface'>SkTypeface</a> <a href='undocumented#SkTypeface'>to</a> <a href='undocumented#SkTypeface'>get</a> <a href='undocumented#SkTypeface'>the</a> <a href='#Font_Metrics'>font metrics</a>,
-and <a href='#Text_Size'>text size</a>, <a href='#Text_Scale_X'>text scale x</a>, <a href='#Text_Skew_X'>text skew x</a>, <a href='#Stroke_Width'>stroke width</a>, <a href='#SkPaint_measureText_text'>and</a>
-<a href='undocumented#SkPathEffect'>SkPathEffect</a> <a href='undocumented#SkPathEffect'>to</a> <a href='undocumented#SkPathEffect'>scale</a> <a href='undocumented#SkPathEffect'>the</a> <a href='undocumented#SkPathEffect'>metrics</a> <a href='undocumented#SkPathEffect'>and</a> <a href='#SkPaint_measureText_bounds'>bounds</a>.
-Returns the bounding box of <a href='#SkPaint_measureText_text'>text</a> <a href='#SkPaint_measureText_text'>if</a> <a href='#SkPaint_measureText_bounds'>bounds</a> <a href='#SkPaint_measureText_bounds'>is</a> <a href='#SkPaint_measureText_bounds'>not</a> <a href='#SkPaint_measureText_bounds'>nullptr</a>.
-The bounding box is computed as if the <a href='#SkPaint_measureText_text'>text</a> <a href='#SkPaint_measureText_text'>was</a> <a href='#SkPaint_measureText_text'>drawn</a> <a href='#SkPaint_measureText_text'>at</a> <a href='#SkPaint_measureText_text'>the</a> <a href='#SkPaint_measureText_text'>origin</a>.
+Uses <a href='SkPaint_Reference#SkPaint'>SkPaint</a>::<a href='#SkPaint_TextEncoding'>TextEncoding</a> to decode <a href='#SkPaint_measureText_text'>text</a>, <a href='undocumented#SkTypeface'>SkTypeface</a> to get the <a href='#Font_Metrics'>font metrics</a>,
+and <a href='#Text_Size'>text size</a>, <a href='#Text_Scale_X'>text scale x</a>, <a href='#Text_Skew_X'>text skew x</a>, <a href='#Stroke_Width'>stroke width</a>, and
+<a href='undocumented#SkPathEffect'>SkPathEffect</a> to scale the metrics and <a href='#SkPaint_measureText_bounds'>bounds</a>.
+Returns the bounding box of <a href='#SkPaint_measureText_text'>text</a> if <a href='#SkPaint_measureText_bounds'>bounds</a> is not nullptr.
+The bounding box is computed as if the <a href='#SkPaint_measureText_text'>text</a> was drawn at the origin.
### Parameters
<table> <tr> <td><a name='SkPaint_measureText_text'><code><strong>text</strong></code></a></td>
- <td>character codes or <a href='undocumented#Glyph'>glyph</a> <a href='undocumented#Glyph'>indices</a> <a href='undocumented#Glyph'>to</a> <a href='undocumented#Glyph'>be</a> <a href='undocumented#Glyph'>measured</a></td>
+ <td>character codes or <a href='undocumented#Glyph'>glyph</a> indices to be measured</td>
</tr>
<tr> <td><a name='SkPaint_measureText_length'><code><strong>length</strong></code></a></td>
- <td>number of bytes of <a href='#SkPaint_measureText_text'>text</a> <a href='#SkPaint_measureText_text'>to</a> <a href='#SkPaint_measureText_text'>measure</a></td>
+ <td>number of bytes of <a href='#SkPaint_measureText_text'>text</a> to measure</td>
</tr>
<tr> <td><a name='SkPaint_measureText_bounds'><code><strong>bounds</strong></code></a></td>
<td>returns bounding box relative to (0, 0) if not nullptr</td>
@@ -4195,22 +4076,22 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-<a href='undocumented#SkScalar'>SkScalar</a> <a href='#SkPaint_measureText'>measureText</a>(<a href='#SkPaint_measureText'>const</a> <a href='#SkPaint_measureText'>void</a>* <a href='undocumented#Text'>text</a>, <a href='undocumented#Text'>size_t</a> <a href='undocumented#Text'>length</a>) <a href='undocumented#Text'>const</a>
+<a href='undocumented#SkScalar'>SkScalar</a> <a href='#SkPaint_measureText'>measureText</a>(const void* <a href='undocumented#Text'>text</a>, size_t length) const
</pre>
Returns the advance width of <a href='#SkPaint_measureText_2_text'>text</a>.
The advance is the normal distance to move before drawing additional <a href='#SkPaint_measureText_2_text'>text</a>.
-Uses <a href='SkPaint_Reference#SkPaint'>SkPaint</a>::<a href='#SkPaint_TextEncoding'>TextEncoding</a> <a href='#SkPaint_TextEncoding'>to</a> <a href='#SkPaint_TextEncoding'>decode</a> <a href='#SkPaint_measureText_2_text'>text</a>, <a href='undocumented#SkTypeface'>SkTypeface</a> <a href='undocumented#SkTypeface'>to</a> <a href='undocumented#SkTypeface'>get</a> <a href='undocumented#SkTypeface'>the</a> <a href='#Font_Metrics'>font metrics</a>,
-and <a href='#Text_Size'>text size</a> <a href='#SkPaint_measureText_2_text'>to</a> <a href='#SkPaint_measureText_2_text'>scale</a> <a href='#SkPaint_measureText_2_text'>the</a> <a href='#SkPaint_measureText_2_text'>metrics</a>.
+Uses <a href='SkPaint_Reference#SkPaint'>SkPaint</a>::<a href='#SkPaint_TextEncoding'>TextEncoding</a> to decode <a href='#SkPaint_measureText_2_text'>text</a>, <a href='undocumented#SkTypeface'>SkTypeface</a> to get the <a href='#Font_Metrics'>font metrics</a>,
+and <a href='#Text_Size'>text size</a> to scale the metrics.
Does not scale the advance or bounds by <a href='#Fake_Bold'>fake bold</a> or <a href='undocumented#SkPathEffect'>SkPathEffect</a>.
### Parameters
<table> <tr> <td><a name='SkPaint_measureText_2_text'><code><strong>text</strong></code></a></td>
- <td>character codes or <a href='undocumented#Glyph'>glyph</a> <a href='undocumented#Glyph'>indices</a> <a href='undocumented#Glyph'>to</a> <a href='undocumented#Glyph'>be</a> <a href='undocumented#Glyph'>measured</a></td>
+ <td>character codes or <a href='undocumented#Glyph'>glyph</a> indices to be measured</td>
</tr>
<tr> <td><a name='SkPaint_measureText_2_length'><code><strong>length</strong></code></a></td>
- <td>number of bytes of <a href='#SkPaint_measureText_2_text'>text</a> <a href='#SkPaint_measureText_2_text'>to</a> <a href='#SkPaint_measureText_2_text'>measure</a></td>
+ <td>number of bytes of <a href='#SkPaint_measureText_2_text'>text</a> to measure</td>
</tr>
</table>
@@ -4236,42 +4117,42 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-size_t <a href='#SkPaint_breakText'>breakText</a>(<a href='#SkPaint_breakText'>const</a> <a href='#SkPaint_breakText'>void</a>* <a href='undocumented#Text'>text</a>, <a href='undocumented#Text'>size_t</a> <a href='undocumented#Text'>length</a>, <a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>maxWidth</a>,
- <a href='undocumented#SkScalar'>SkScalar</a>* <a href='undocumented#SkScalar'>measuredWidth</a> = <a href='undocumented#SkScalar'>nullptr</a>) <a href='undocumented#SkScalar'>const</a>
+size_t <a href='#SkPaint_breakText'>breakText</a>(const void* <a href='undocumented#Text'>text</a>, size_t length, <a href='undocumented#SkScalar'>SkScalar</a> maxWidth,
+ <a href='undocumented#SkScalar'>SkScalar</a>* measuredWidth = nullptr) const
</pre>
-Returns the bytes of <a href='#SkPaint_breakText_text'>text</a> <a href='#SkPaint_breakText_text'>that</a> <a href='#SkPaint_breakText_text'>fit</a> <a href='#SkPaint_breakText_text'>within</a> <a href='#SkPaint_breakText_maxWidth'>maxWidth</a>.
-The <a href='#SkPaint_breakText_text'>text</a> <a href='#SkPaint_breakText_text'>fragment</a> <a href='#SkPaint_breakText_text'>fits</a> <a href='#SkPaint_breakText_text'>if</a> <a href='#SkPaint_breakText_text'>its</a> <a href='#SkPaint_breakText_text'>advance</a> <a href='#SkPaint_breakText_text'>width</a> <a href='#SkPaint_breakText_text'>is</a> <a href='#SkPaint_breakText_text'>less</a> <a href='#SkPaint_breakText_text'>than</a> <a href='#SkPaint_breakText_text'>or</a> <a href='#SkPaint_breakText_text'>equal</a> <a href='#SkPaint_breakText_text'>to</a> <a href='#SkPaint_breakText_maxWidth'>maxWidth</a>.
+Returns the bytes of <a href='#SkPaint_breakText_text'>text</a> that fit within <a href='#SkPaint_breakText_maxWidth'>maxWidth</a>.
+The <a href='#SkPaint_breakText_text'>text</a> fragment fits if its advance width is less than or equal to <a href='#SkPaint_breakText_maxWidth'>maxWidth</a>.
Measures only while the advance is less than or equal to <a href='#SkPaint_breakText_maxWidth'>maxWidth</a>.
-Returns the advance or the <a href='#SkPaint_breakText_text'>text</a> <a href='#SkPaint_breakText_text'>fragment</a> <a href='#SkPaint_breakText_text'>in</a> <a href='#SkPaint_breakText_measuredWidth'>measuredWidth</a> <a href='#SkPaint_breakText_measuredWidth'>if</a> <a href='#SkPaint_breakText_measuredWidth'>it</a> <a href='#SkPaint_breakText_measuredWidth'>not</a> <a href='#SkPaint_breakText_measuredWidth'>nullptr</a>.
-Uses <a href='SkPaint_Reference#SkPaint'>SkPaint</a>::<a href='#SkPaint_TextEncoding'>TextEncoding</a> <a href='#SkPaint_TextEncoding'>to</a> <a href='#SkPaint_TextEncoding'>decode</a> <a href='#SkPaint_breakText_text'>text</a>, <a href='undocumented#SkTypeface'>SkTypeface</a> <a href='undocumented#SkTypeface'>to</a> <a href='undocumented#SkTypeface'>get</a> <a href='undocumented#SkTypeface'>the</a> <a href='#Font_Metrics'>font metrics</a>,
-and <a href='#Text_Size'>text size</a> <a href='#SkPaint_breakText_text'>to</a> <a href='#SkPaint_breakText_text'>scale</a> <a href='#SkPaint_breakText_text'>the</a> <a href='#SkPaint_breakText_text'>metrics</a>.
+Returns the advance or the <a href='#SkPaint_breakText_text'>text</a> fragment in <a href='#SkPaint_breakText_measuredWidth'>measuredWidth</a> if it not nullptr.
+Uses <a href='SkPaint_Reference#SkPaint'>SkPaint</a>::<a href='#SkPaint_TextEncoding'>TextEncoding</a> to decode <a href='#SkPaint_breakText_text'>text</a>, <a href='undocumented#SkTypeface'>SkTypeface</a> to get the <a href='#Font_Metrics'>font metrics</a>,
+and <a href='#Text_Size'>text size</a> to scale the metrics.
Does not scale the advance or bounds by <a href='#Fake_Bold'>fake bold</a> or <a href='undocumented#SkPathEffect'>SkPathEffect</a>.
### Parameters
<table> <tr> <td><a name='SkPaint_breakText_text'><code><strong>text</strong></code></a></td>
- <td>character codes or <a href='undocumented#Glyph'>glyph</a> <a href='undocumented#Glyph'>indices</a> <a href='undocumented#Glyph'>to</a> <a href='undocumented#Glyph'>be</a> <a href='undocumented#Glyph'>measured</a></td>
+ <td>character codes or <a href='undocumented#Glyph'>glyph</a> indices to be measured</td>
</tr>
<tr> <td><a name='SkPaint_breakText_length'><code><strong>length</strong></code></a></td>
- <td>number of bytes of <a href='#SkPaint_breakText_text'>text</a> <a href='#SkPaint_breakText_text'>to</a> <a href='#SkPaint_breakText_text'>measure</a></td>
+ <td>number of bytes of <a href='#SkPaint_breakText_text'>text</a> to measure</td>
</tr>
<tr> <td><a name='SkPaint_breakText_maxWidth'><code><strong>maxWidth</strong></code></a></td>
- <td>advance limit; <a href='#SkPaint_breakText_text'>text</a> <a href='#SkPaint_breakText_text'>is</a> <a href='#SkPaint_breakText_text'>measured</a> <a href='#SkPaint_breakText_text'>while</a> <a href='#SkPaint_breakText_text'>advance</a> <a href='#SkPaint_breakText_text'>is</a> <a href='#SkPaint_breakText_text'>less</a> <a href='#SkPaint_breakText_text'>than</a> <a href='#SkPaint_breakText_maxWidth'>maxWidth</a></td>
+ <td>advance limit; <a href='#SkPaint_breakText_text'>text</a> is measured while advance is less than <a href='#SkPaint_breakText_maxWidth'>maxWidth</a></td>
</tr>
<tr> <td><a name='SkPaint_breakText_measuredWidth'><code><strong>measuredWidth</strong></code></a></td>
- <td>returns the width of the <a href='#SkPaint_breakText_text'>text</a> <a href='#SkPaint_breakText_text'>less</a> <a href='#SkPaint_breakText_text'>than</a> <a href='#SkPaint_breakText_text'>or</a> <a href='#SkPaint_breakText_text'>equal</a> <a href='#SkPaint_breakText_text'>to</a> <a href='#SkPaint_breakText_maxWidth'>maxWidth</a></td>
+ <td>returns the width of the <a href='#SkPaint_breakText_text'>text</a> less than or equal to <a href='#SkPaint_breakText_maxWidth'>maxWidth</a></td>
</tr>
</table>
### Return Value
-bytes of <a href='#SkPaint_breakText_text'>text</a> <a href='#SkPaint_breakText_text'>that</a> <a href='#SkPaint_breakText_text'>fit</a>, <a href='#SkPaint_breakText_text'>always</a> <a href='#SkPaint_breakText_text'>less</a> <a href='#SkPaint_breakText_text'>than</a> <a href='#SkPaint_breakText_text'>or</a> <a href='#SkPaint_breakText_text'>equal</a> <a href='#SkPaint_breakText_text'>to</a> <a href='#SkPaint_breakText_length'>length</a>
+bytes of <a href='#SkPaint_breakText_text'>text</a> that fit, always less than or equal to <a href='#SkPaint_breakText_length'>length</a>
### Example
-<div><fiddle-embed name="fd0033470ccbd5c7059670fdbf96cffc"><div><a href='undocumented#Line'>Line</a> <a href='undocumented#Line'>under</a> "<a href='undocumented#Line'>Breakfast</a>" <a href='undocumented#Line'>shows</a> <a href='undocumented#Line'>desired</a> <a href='undocumented#Line'>width</a>, <a href='undocumented#Line'>shorter</a> <a href='undocumented#Line'>than</a> <a href='undocumented#Line'>available</a> <a href='undocumented#Line'>characters</a>.
-<a href='undocumented#Line'>Line</a> <a href='undocumented#Line'>under</a> "<a href='undocumented#Line'>Bre</a>" <a href='undocumented#Line'>shows</a> <a href='undocumented#Line'>measured</a> <a href='undocumented#Line'>width</a> <a href='undocumented#Line'>after</a> <a href='undocumented#Line'>breaking</a> <a href='#SkPaint_breakText_text'>text</a>.
+<div><fiddle-embed name="fd0033470ccbd5c7059670fdbf96cffc"><div><a href='undocumented#Line'>Line</a> under "Breakfast" shows desired width, shorter than available characters.
+<a href='undocumented#Line'>Line</a> under "Bre" shows measured width after breaking <a href='#SkPaint_breakText_text'>text</a>.
</div></fiddle-embed></div>
<a name='SkPaint_getTextWidths'></a>
@@ -4279,67 +4160,67 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-int <a href='#SkPaint_getTextWidths'>getTextWidths</a>(<a href='#SkPaint_getTextWidths'>const</a> <a href='#SkPaint_getTextWidths'>void</a>* <a href='undocumented#Text'>text</a>, <a href='undocumented#Text'>size_t</a> <a href='undocumented#Text'>byteLength</a>, <a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>widths</a>[], <a href='SkRect_Reference#SkRect'>SkRect</a> <a href='SkRect_Reference#SkRect'>bounds</a>[] = <a href='SkRect_Reference#SkRect'>nullptr</a>) <a href='SkRect_Reference#SkRect'>const</a>
+int <a href='#SkPaint_getTextWidths'>getTextWidths</a>(const void* <a href='undocumented#Text'>text</a>, size_t byteLength, <a href='undocumented#SkScalar'>SkScalar</a> widths[], <a href='SkRect_Reference#SkRect'>SkRect</a> bounds[] = nullptr) const
</pre>
-Retrieves the advance and <a href='#SkPaint_getTextWidths_bounds'>bounds</a> <a href='#SkPaint_getTextWidths_bounds'>for</a> <a href='#SkPaint_getTextWidths_bounds'>each</a> <a href='undocumented#Glyph'>glyph</a> <a href='undocumented#Glyph'>in</a> <a href='#SkPaint_getTextWidths_text'>text</a>, <a href='#SkPaint_getTextWidths_text'>and</a> <a href='#SkPaint_getTextWidths_text'>returns</a>
-the <a href='undocumented#Glyph'>glyph</a> <a href='undocumented#Glyph'>count</a> <a href='undocumented#Glyph'>in</a> <a href='#SkPaint_getTextWidths_text'>text</a>.
-Both <a href='#SkPaint_getTextWidths_widths'>widths</a> <a href='#SkPaint_getTextWidths_widths'>and</a> <a href='#SkPaint_getTextWidths_bounds'>bounds</a> <a href='#SkPaint_getTextWidths_bounds'>may</a> <a href='#SkPaint_getTextWidths_bounds'>be</a> <a href='#SkPaint_getTextWidths_bounds'>nullptr</a>.
-If <a href='#SkPaint_getTextWidths_widths'>widths</a> <a href='#SkPaint_getTextWidths_widths'>is</a> <a href='#SkPaint_getTextWidths_widths'>not</a> <a href='#SkPaint_getTextWidths_widths'>nullptr</a>, <a href='#SkPaint_getTextWidths_widths'>widths</a> <a href='#SkPaint_getTextWidths_widths'>must</a> <a href='#SkPaint_getTextWidths_widths'>be</a> <a href='#SkPaint_getTextWidths_widths'>an</a> <a href='#SkPaint_getTextWidths_widths'>array</a> <a href='#SkPaint_getTextWidths_widths'>of</a> <a href='undocumented#Glyph'>glyph</a> <a href='undocumented#Glyph'>count</a> <a href='undocumented#Glyph'>entries</a>.
-if <a href='#SkPaint_getTextWidths_bounds'>bounds</a> <a href='#SkPaint_getTextWidths_bounds'>is</a> <a href='#SkPaint_getTextWidths_bounds'>not</a> <a href='#SkPaint_getTextWidths_bounds'>nullptr</a>, <a href='#SkPaint_getTextWidths_bounds'>bounds</a> <a href='#SkPaint_getTextWidths_bounds'>must</a> <a href='#SkPaint_getTextWidths_bounds'>be</a> <a href='#SkPaint_getTextWidths_bounds'>an</a> <a href='#SkPaint_getTextWidths_bounds'>array</a> <a href='#SkPaint_getTextWidths_bounds'>of</a> <a href='undocumented#Glyph'>glyph</a> <a href='undocumented#Glyph'>count</a> <a href='undocumented#Glyph'>entries</a>.
-Uses <a href='SkPaint_Reference#SkPaint'>SkPaint</a>::<a href='#SkPaint_TextEncoding'>TextEncoding</a> <a href='#SkPaint_TextEncoding'>to</a> <a href='#SkPaint_TextEncoding'>decode</a> <a href='#SkPaint_getTextWidths_text'>text</a>, <a href='undocumented#SkTypeface'>SkTypeface</a> <a href='undocumented#SkTypeface'>to</a> <a href='undocumented#SkTypeface'>get</a> <a href='undocumented#SkTypeface'>the</a> <a href='#Font_Metrics'>font metrics</a>,
-and <a href='#Text_Size'>text size</a> <a href='#SkPaint_getTextWidths_text'>to</a> <a href='#SkPaint_getTextWidths_text'>scale</a> <a href='#SkPaint_getTextWidths_text'>the</a> <a href='#SkPaint_getTextWidths_widths'>widths</a> <a href='#SkPaint_getTextWidths_widths'>and</a> <a href='#SkPaint_getTextWidths_bounds'>bounds</a>.
+Retrieves the advance and <a href='#SkPaint_getTextWidths_bounds'>bounds</a> for each <a href='undocumented#Glyph'>glyph</a> in <a href='#SkPaint_getTextWidths_text'>text</a>, and returns
+the <a href='undocumented#Glyph'>glyph</a> count in <a href='#SkPaint_getTextWidths_text'>text</a>.
+Both <a href='#SkPaint_getTextWidths_widths'>widths</a> and <a href='#SkPaint_getTextWidths_bounds'>bounds</a> may be nullptr.
+If <a href='#SkPaint_getTextWidths_widths'>widths</a> is not nullptr, <a href='#SkPaint_getTextWidths_widths'>widths</a> must be an array of <a href='undocumented#Glyph'>glyph</a> count entries.
+if <a href='#SkPaint_getTextWidths_bounds'>bounds</a> is not nullptr, <a href='#SkPaint_getTextWidths_bounds'>bounds</a> must be an array of <a href='undocumented#Glyph'>glyph</a> count entries.
+Uses <a href='SkPaint_Reference#SkPaint'>SkPaint</a>::<a href='#SkPaint_TextEncoding'>TextEncoding</a> to decode <a href='#SkPaint_getTextWidths_text'>text</a>, <a href='undocumented#SkTypeface'>SkTypeface</a> to get the <a href='#Font_Metrics'>font metrics</a>,
+and <a href='#Text_Size'>text size</a> to scale the <a href='#SkPaint_getTextWidths_widths'>widths</a> and <a href='#SkPaint_getTextWidths_bounds'>bounds</a>.
Does not scale the advance by <a href='#Fake_Bold'>fake bold</a> or <a href='undocumented#SkPathEffect'>SkPathEffect</a>.
-Does include <a href='#Fake_Bold'>fake bold</a> and <a href='undocumented#SkPathEffect'>SkPathEffect</a> <a href='undocumented#SkPathEffect'>in</a> <a href='undocumented#SkPathEffect'>the</a> <a href='#SkPaint_getTextWidths_bounds'>bounds</a>.
+Does include <a href='#Fake_Bold'>fake bold</a> and <a href='undocumented#SkPathEffect'>SkPathEffect</a> in the <a href='#SkPaint_getTextWidths_bounds'>bounds</a>.
### Parameters
<table> <tr> <td><a name='SkPaint_getTextWidths_text'><code><strong>text</strong></code></a></td>
- <td>character codes or <a href='undocumented#Glyph'>glyph</a> <a href='undocumented#Glyph'>indices</a> <a href='undocumented#Glyph'>to</a> <a href='undocumented#Glyph'>be</a> <a href='undocumented#Glyph'>measured</a></td>
+ <td>character codes or <a href='undocumented#Glyph'>glyph</a> indices to be measured</td>
</tr>
<tr> <td><a name='SkPaint_getTextWidths_byteLength'><code><strong>byteLength</strong></code></a></td>
- <td>number of bytes of <a href='#SkPaint_getTextWidths_text'>text</a> <a href='#SkPaint_getTextWidths_text'>to</a> <a href='#SkPaint_getTextWidths_text'>measure</a></td>
+ <td>number of bytes of <a href='#SkPaint_getTextWidths_text'>text</a> to measure</td>
</tr>
<tr> <td><a name='SkPaint_getTextWidths_widths'><code><strong>widths</strong></code></a></td>
- <td>returns <a href='#SkPaint_getTextWidths_text'>text</a> <a href='#SkPaint_getTextWidths_text'>advances</a> <a href='#SkPaint_getTextWidths_text'>for</a> <a href='#SkPaint_getTextWidths_text'>each</a> <a href='undocumented#Glyph'>glyph</a>; <a href='undocumented#Glyph'>may</a> <a href='undocumented#Glyph'>be</a> <a href='undocumented#Glyph'>nullptr</a></td>
+ <td>returns <a href='#SkPaint_getTextWidths_text'>text</a> advances for each <a href='undocumented#Glyph'>glyph</a>; may be nullptr</td>
</tr>
<tr> <td><a name='SkPaint_getTextWidths_bounds'><code><strong>bounds</strong></code></a></td>
- <td>returns <a href='#SkPaint_getTextWidths_bounds'>bounds</a> <a href='#SkPaint_getTextWidths_bounds'>for</a> <a href='#SkPaint_getTextWidths_bounds'>each</a> <a href='undocumented#Glyph'>glyph</a> <a href='undocumented#Glyph'>relative</a> <a href='undocumented#Glyph'>to</a> (0, 0); <a href='undocumented#Glyph'>may</a> <a href='undocumented#Glyph'>be</a> <a href='undocumented#Glyph'>nullptr</a></td>
+ <td>returns <a href='#SkPaint_getTextWidths_bounds'>bounds</a> for each <a href='undocumented#Glyph'>glyph</a> relative to (0, 0); may be nullptr</td>
</tr>
</table>
### Return Value
-<a href='undocumented#Glyph'>glyph</a> <a href='undocumented#Glyph'>count</a> <a href='undocumented#Glyph'>in</a> <a href='#SkPaint_getTextWidths_text'>text</a>
+<a href='undocumented#Glyph'>glyph</a> count in <a href='#SkPaint_getTextWidths_text'>text</a>
### Example
-<div><fiddle-embed name="6b9e101f49e9c2c28755c5bdcef64dfb"><div>Bounds of <a href='undocumented#Glyph'>Glyphs</a> <a href='undocumented#Glyph'>increase</a> <a href='undocumented#Glyph'>for</a> <a href='undocumented#Glyph'>stroked</a> <a href='#SkPaint_getTextWidths_text'>text</a>, <a href='#SkPaint_getTextWidths_text'>but</a> <a href='#SkPaint_getTextWidths_text'>text</a> <a href='#SkPaint_getTextWidths_text'>advance</a> <a href='#SkPaint_getTextWidths_text'>remains</a> <a href='#SkPaint_getTextWidths_text'>the</a> <a href='#SkPaint_getTextWidths_text'>same</a>.
-<a href='#SkPaint_getTextWidths_text'>The</a> <a href='#SkPaint_getTextWidths_text'>underlines</a> <a href='#SkPaint_getTextWidths_text'>show</a> <a href='#SkPaint_getTextWidths_text'>the</a> <a href='#SkPaint_getTextWidths_text'>text</a> <a href='#SkPaint_getTextWidths_text'>advance</a>, <a href='#SkPaint_getTextWidths_text'>spaced</a> <a href='#SkPaint_getTextWidths_text'>to</a> <a href='#SkPaint_getTextWidths_text'>keep</a> <a href='#SkPaint_getTextWidths_text'>them</a> <a href='#SkPaint_getTextWidths_text'>distinct</a>.
+<div><fiddle-embed name="6b9e101f49e9c2c28755c5bdcef64dfb"><div>Bounds of <a href='undocumented#Glyph'>Glyphs</a> increase for stroked <a href='#SkPaint_getTextWidths_text'>text</a>, but <a href='#SkPaint_getTextWidths_text'>text</a> advance remains the same.
+The underlines show the <a href='#SkPaint_getTextWidths_text'>text</a> advance, spaced to keep them distinct.
</div></fiddle-embed></div>
<a name='Text_Path'></a>
-<a href='#Paint_Text_Path'>Text_Path</a> <a href='#Paint_Text_Path'>describes</a> <a href='#Paint_Text_Path'>the</a> <a href='#Paint_Text_Path'>geometry</a> <a href='#Paint_Text_Path'>of</a> <a href='undocumented#Glyph'>Glyphs</a> <a href='undocumented#Glyph'>used</a> <a href='undocumented#Glyph'>to</a> <a href='undocumented#Glyph'>draw</a> <a href='undocumented#Text'>text</a>.
+<a href='#Paint_Text_Path'>Text_Path</a> describes the geometry of <a href='undocumented#Glyph'>Glyphs</a> used to draw <a href='undocumented#Text'>text</a>.
<a name='SkPaint_getTextPath'></a>
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-void <a href='#SkPaint_getTextPath'>getTextPath</a>(<a href='#SkPaint_getTextPath'>const</a> <a href='#SkPaint_getTextPath'>void</a>* <a href='undocumented#Text'>text</a>, <a href='undocumented#Text'>size_t</a> <a href='undocumented#Text'>length</a>, <a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>x</a>, <a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>y</a>, <a href='SkPath_Reference#SkPath'>SkPath</a>* <a href='SkPath_Reference#Path'>path</a>) <a href='SkPath_Reference#Path'>const</a>
+void <a href='#SkPaint_getTextPath'>getTextPath</a>(const void* <a href='undocumented#Text'>text</a>, size_t length, <a href='undocumented#SkScalar'>SkScalar</a> x, <a href='undocumented#SkScalar'>SkScalar</a> y, <a href='SkPath_Reference#SkPath'>SkPath</a>* <a href='SkPath_Reference#Path'>path</a>) const
</pre>
-Returns the geometry as <a href='SkPath_Reference#SkPath'>SkPath</a> <a href='SkPath_Reference#SkPath'>equivalent</a> <a href='SkPath_Reference#SkPath'>to</a> <a href='SkPath_Reference#SkPath'>the</a> <a href='SkPath_Reference#SkPath'>drawn</a> <a href='#SkPaint_getTextPath_text'>text</a>.
-Uses <a href='SkPaint_Reference#SkPaint'>SkPaint</a>::<a href='#SkPaint_TextEncoding'>TextEncoding</a> <a href='#SkPaint_TextEncoding'>to</a> <a href='#SkPaint_TextEncoding'>decode</a> <a href='#SkPaint_getTextPath_text'>text</a>, <a href='undocumented#SkTypeface'>SkTypeface</a> <a href='undocumented#SkTypeface'>to</a> <a href='undocumented#SkTypeface'>get</a> <a href='undocumented#SkTypeface'>the</a> <a href='undocumented#Glyph'>glyph</a> <a href='SkPath_Reference#Path'>paths</a>,
-and <a href='#Text_Size'>text size</a>, <a href='#Fake_Bold'>fake bold</a>, <a href='#SkPaint_getTextPath_text'>and</a> <a href='undocumented#SkPathEffect'>SkPathEffect</a> <a href='undocumented#SkPathEffect'>to</a> <a href='undocumented#SkPathEffect'>scale</a> <a href='undocumented#SkPathEffect'>and</a> <a href='undocumented#SkPathEffect'>modify</a> <a href='undocumented#SkPathEffect'>the</a> <a href='undocumented#Glyph'>glyph</a> <a href='SkPath_Reference#Path'>paths</a>.
-All of the <a href='undocumented#Glyph'>glyph</a> <a href='SkPath_Reference#Path'>paths</a> <a href='SkPath_Reference#Path'>are</a> <a href='SkPath_Reference#Path'>stored</a> <a href='SkPath_Reference#Path'>in</a> <a href='#SkPaint_getTextPath_path'>path</a>.
-Uses <a href='#SkPaint_getTextPath_x'>x</a>, <a href='#SkPaint_getTextPath_y'>y</a>, <a href='#SkPaint_getTextPath_y'>to</a> <a href='#SkPaint_getTextPath_y'>position</a> <a href='#SkPaint_getTextPath_path'>path</a>.
+Returns the geometry as <a href='SkPath_Reference#SkPath'>SkPath</a> equivalent to the drawn <a href='#SkPaint_getTextPath_text'>text</a>.
+Uses <a href='SkPaint_Reference#SkPaint'>SkPaint</a>::<a href='#SkPaint_TextEncoding'>TextEncoding</a> to decode <a href='#SkPaint_getTextPath_text'>text</a>, <a href='undocumented#SkTypeface'>SkTypeface</a> to get the <a href='undocumented#Glyph'>glyph</a> <a href='SkPath_Reference#Path'>paths</a>,
+and <a href='#Text_Size'>text size</a>, <a href='#Fake_Bold'>fake bold</a>, and <a href='undocumented#SkPathEffect'>SkPathEffect</a> to scale and modify the <a href='undocumented#Glyph'>glyph</a> <a href='SkPath_Reference#Path'>paths</a>.
+All of the <a href='undocumented#Glyph'>glyph</a> <a href='SkPath_Reference#Path'>paths</a> are stored in <a href='#SkPaint_getTextPath_path'>path</a>.
+Uses <a href='#SkPaint_getTextPath_x'>x</a>, <a href='#SkPaint_getTextPath_y'>y</a>, to position <a href='#SkPaint_getTextPath_path'>path</a>.
### Parameters
<table> <tr> <td><a name='SkPaint_getTextPath_text'><code><strong>text</strong></code></a></td>
- <td>character codes or <a href='undocumented#Glyph'>glyph</a> <a href='undocumented#Glyph'>indices</a></td>
+ <td>character codes or <a href='undocumented#Glyph'>glyph</a> indices</td>
</tr>
<tr> <td><a name='SkPaint_getTextPath_length'><code><strong>length</strong></code></a></td>
<td>number of bytes of <a href='#SkPaint_getTextPath_text'>text</a></td>
@@ -4357,8 +4238,8 @@
### Example
-<div><fiddle-embed name="7c9e6a399f898d68026c1f0865e6f73e"><div><a href='undocumented#Text'>Text</a> <a href='undocumented#Text'>is</a> <a href='undocumented#Text'>added</a> <a href='undocumented#Text'>to</a> <a href='SkPath_Reference#Path'>Path</a>, <a href='SkPath_Reference#Path'>offset</a>, <a href='SkPath_Reference#Path'>and</a> <a href='SkPath_Reference#Path'>subtracted</a> <a href='SkPath_Reference#Path'>from</a> <a href='SkPath_Reference#Path'>Path</a>, <a href='SkPath_Reference#Path'>then</a> <a href='SkPath_Reference#Path'>added</a> <a href='SkPath_Reference#Path'>at</a>
-<a href='SkPath_Reference#Path'>the</a> <a href='SkPath_Reference#Path'>offset</a> <a href='SkPath_Reference#Path'>location</a>. <a href='SkPath_Reference#Path'>The</a> <a href='SkPath_Reference#Path'>result</a> <a href='SkPath_Reference#Path'>is</a> <a href='SkPath_Reference#Path'>rendered</a> <a href='SkPath_Reference#Path'>with</a> <a href='SkPath_Reference#Path'>one</a> <a href='SkPath_Reference#Path'>draw</a> <a href='SkPath_Reference#Path'>call</a>.
+<div><fiddle-embed name="7c9e6a399f898d68026c1f0865e6f73e"><div><a href='undocumented#Text'>Text</a> is added to <a href='SkPath_Reference#Path'>Path</a>, offset, and subtracted from <a href='SkPath_Reference#Path'>Path</a>, then added at
+the offset location. The result is rendered with one draw call.
</div></fiddle-embed></div>
<a name='SkPaint_getPosTextPath'></a>
@@ -4366,20 +4247,20 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-void <a href='#SkPaint_getPosTextPath'>getPosTextPath</a>(<a href='#SkPaint_getPosTextPath'>const</a> <a href='#SkPaint_getPosTextPath'>void</a>* <a href='undocumented#Text'>text</a>, <a href='undocumented#Text'>size_t</a> <a href='undocumented#Text'>length</a>, <a href='undocumented#Text'>const</a> <a href='SkPoint_Reference#SkPoint'>SkPoint</a> <a href='SkPoint_Reference#SkPoint'>pos</a>[], <a href='SkPath_Reference#SkPath'>SkPath</a>* <a href='SkPath_Reference#Path'>path</a>) <a href='SkPath_Reference#Path'>const</a>
+void <a href='#SkPaint_getPosTextPath'>getPosTextPath</a>(const void* <a href='undocumented#Text'>text</a>, size_t length, const <a href='SkPoint_Reference#SkPoint'>SkPoint</a> pos[], <a href='SkPath_Reference#SkPath'>SkPath</a>* <a href='SkPath_Reference#Path'>path</a>) const
</pre>
-Returns the geometry as <a href='SkPath_Reference#SkPath'>SkPath</a> <a href='SkPath_Reference#SkPath'>equivalent</a> <a href='SkPath_Reference#SkPath'>to</a> <a href='SkPath_Reference#SkPath'>the</a> <a href='SkPath_Reference#SkPath'>drawn</a> <a href='#SkPaint_getPosTextPath_text'>text</a>.
-Uses <a href='SkPaint_Reference#SkPaint'>SkPaint</a>::<a href='#SkPaint_TextEncoding'>TextEncoding</a> <a href='#SkPaint_TextEncoding'>to</a> <a href='#SkPaint_TextEncoding'>decode</a> <a href='#SkPaint_getPosTextPath_text'>text</a>, <a href='undocumented#SkTypeface'>SkTypeface</a> <a href='undocumented#SkTypeface'>to</a> <a href='undocumented#SkTypeface'>get</a> <a href='undocumented#SkTypeface'>the</a> <a href='undocumented#Glyph'>glyph</a> <a href='SkPath_Reference#Path'>paths</a>,
-and <a href='#Text_Size'>text size</a>, <a href='#Fake_Bold'>fake bold</a>, <a href='#SkPaint_getPosTextPath_text'>and</a> <a href='undocumented#SkPathEffect'>SkPathEffect</a> <a href='undocumented#SkPathEffect'>to</a> <a href='undocumented#SkPathEffect'>scale</a> <a href='undocumented#SkPathEffect'>and</a> <a href='undocumented#SkPathEffect'>modify</a> <a href='undocumented#SkPathEffect'>the</a> <a href='undocumented#Glyph'>glyph</a> <a href='SkPath_Reference#Path'>paths</a>.
-All of the <a href='undocumented#Glyph'>glyph</a> <a href='SkPath_Reference#Path'>paths</a> <a href='SkPath_Reference#Path'>are</a> <a href='SkPath_Reference#Path'>stored</a> <a href='SkPath_Reference#Path'>in</a> <a href='#SkPaint_getPosTextPath_path'>path</a>.
-Uses <a href='#SkPaint_getPosTextPath_pos'>pos</a> <a href='#SkPaint_getPosTextPath_pos'>array</a> <a href='#SkPaint_getPosTextPath_pos'>to</a> <a href='#SkPaint_getPosTextPath_pos'>position</a> <a href='#SkPaint_getPosTextPath_path'>path</a>.
-<a href='#SkPaint_getPosTextPath_pos'>pos</a> <a href='#SkPaint_getPosTextPath_pos'>contains</a> <a href='#SkPaint_getPosTextPath_pos'>a</a> <a href='#SkPaint_getPosTextPath_pos'>position</a> <a href='#SkPaint_getPosTextPath_pos'>for</a> <a href='#SkPaint_getPosTextPath_pos'>each</a> <a href='undocumented#Glyph'>glyph</a>.
+Returns the geometry as <a href='SkPath_Reference#SkPath'>SkPath</a> equivalent to the drawn <a href='#SkPaint_getPosTextPath_text'>text</a>.
+Uses <a href='SkPaint_Reference#SkPaint'>SkPaint</a>::<a href='#SkPaint_TextEncoding'>TextEncoding</a> to decode <a href='#SkPaint_getPosTextPath_text'>text</a>, <a href='undocumented#SkTypeface'>SkTypeface</a> to get the <a href='undocumented#Glyph'>glyph</a> <a href='SkPath_Reference#Path'>paths</a>,
+and <a href='#Text_Size'>text size</a>, <a href='#Fake_Bold'>fake bold</a>, and <a href='undocumented#SkPathEffect'>SkPathEffect</a> to scale and modify the <a href='undocumented#Glyph'>glyph</a> <a href='SkPath_Reference#Path'>paths</a>.
+All of the <a href='undocumented#Glyph'>glyph</a> <a href='SkPath_Reference#Path'>paths</a> are stored in <a href='#SkPaint_getPosTextPath_path'>path</a>.
+Uses <a href='#SkPaint_getPosTextPath_pos'>pos</a> array to position <a href='#SkPaint_getPosTextPath_path'>path</a>.
+<a href='#SkPaint_getPosTextPath_pos'>pos</a> contains a position for each <a href='undocumented#Glyph'>glyph</a>.
### Parameters
<table> <tr> <td><a name='SkPaint_getPosTextPath_text'><code><strong>text</strong></code></a></td>
- <td>character codes or <a href='undocumented#Glyph'>glyph</a> <a href='undocumented#Glyph'>indices</a></td>
+ <td>character codes or <a href='undocumented#Glyph'>glyph</a> indices</td>
</tr>
<tr> <td><a name='SkPaint_getPosTextPath_length'><code><strong>length</strong></code></a></td>
<td>number of bytes of <a href='#SkPaint_getPosTextPath_text'>text</a></td>
@@ -4394,40 +4275,40 @@
### Example
-<div><fiddle-embed name="7f27c93472aa99a7542fb3493076f072"><div>Simplifies three <a href='undocumented#Glyph'>Glyphs</a> <a href='undocumented#Glyph'>to</a> <a href='undocumented#Glyph'>eliminate</a> <a href='undocumented#Glyph'>overlaps</a>, <a href='undocumented#Glyph'>and</a> <a href='undocumented#Glyph'>strokes</a> <a href='undocumented#Glyph'>the</a> <a href='undocumented#Glyph'>result</a>.
+<div><fiddle-embed name="7f27c93472aa99a7542fb3493076f072"><div>Simplifies three <a href='undocumented#Glyph'>Glyphs</a> to eliminate overlaps, and strokes the result.
</div></fiddle-embed></div>
<a name='Text_Intercepts'></a>
-<a href='#Paint_Text_Intercepts'>Text_Intercepts</a> <a href='#Paint_Text_Intercepts'>describe</a> <a href='#Paint_Text_Intercepts'>the</a> <a href='#Paint_Text_Intercepts'>intersection</a> <a href='#Paint_Text_Intercepts'>of</a> <a href='#Paint_Text_Intercepts'>drawn</a> <a href='undocumented#Text'>text</a> <a href='undocumented#Glyph'>Glyphs</a> <a href='undocumented#Glyph'>with</a> <a href='undocumented#Glyph'>a</a> <a href='undocumented#Glyph'>pair</a>
-<a href='undocumented#Glyph'>of</a> <a href='undocumented#Line'>lines</a> <a href='undocumented#Line'>parallel</a> <a href='undocumented#Line'>to</a> <a href='undocumented#Line'>the</a> <a href='undocumented#Text'>text</a> <a href='undocumented#Text'>advance</a>. <a href='#Paint_Text_Intercepts'>Text_Intercepts</a> <a href='#Paint_Text_Intercepts'>permits</a> <a href='#Paint_Text_Intercepts'>creating</a> <a href='#Paint_Text_Intercepts'>a</a>
-<a href='#Paint_Text_Intercepts'>underline</a> <a href='#Paint_Text_Intercepts'>that</a> <a href='#Paint_Text_Intercepts'>skips</a> <a href='#Paint_Text_Intercepts'>Descenders</a>.
+<a href='#Paint_Text_Intercepts'>Text_Intercepts</a> describe the intersection of drawn <a href='undocumented#Text'>text</a> <a href='undocumented#Glyph'>Glyphs</a> with a pair
+of <a href='undocumented#Line'>lines</a> parallel to the <a href='undocumented#Text'>text</a> advance. <a href='#Paint_Text_Intercepts'>Text_Intercepts</a> permits creating a
+underline that skips Descenders.
<a name='SkPaint_getTextIntercepts'></a>
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-int <a href='#SkPaint_getTextIntercepts'>getTextIntercepts</a>(<a href='#SkPaint_getTextIntercepts'>const</a> <a href='#SkPaint_getTextIntercepts'>void</a>* <a href='undocumented#Text'>text</a>, <a href='undocumented#Text'>size_t</a> <a href='undocumented#Text'>length</a>, <a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>x</a>, <a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>y</a>,
- <a href='undocumented#SkScalar'>const</a> <a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>bounds</a>[2], <a href='undocumented#SkScalar'>SkScalar</a>* <a href='undocumented#SkScalar'>intervals</a>) <a href='undocumented#SkScalar'>const</a>
+int <a href='#SkPaint_getTextIntercepts'>getTextIntercepts</a>(const void* <a href='undocumented#Text'>text</a>, size_t length, <a href='undocumented#SkScalar'>SkScalar</a> x, <a href='undocumented#SkScalar'>SkScalar</a> y,
+ const <a href='undocumented#SkScalar'>SkScalar</a> bounds[2], <a href='undocumented#SkScalar'>SkScalar</a>* intervals) const
</pre>
-Returns the number of <a href='#SkPaint_getTextIntercepts_intervals'>intervals</a> <a href='#SkPaint_getTextIntercepts_intervals'>that</a> <a href='#SkPaint_getTextIntercepts_intervals'>intersect</a> <a href='#SkPaint_getTextIntercepts_bounds'>bounds</a>.
-<a href='#SkPaint_getTextIntercepts_bounds'>bounds</a> <a href='#SkPaint_getTextIntercepts_bounds'>describes</a> <a href='#SkPaint_getTextIntercepts_bounds'>a</a> <a href='#SkPaint_getTextIntercepts_bounds'>pair</a> <a href='#SkPaint_getTextIntercepts_bounds'>of</a> <a href='undocumented#Line'>lines</a> <a href='undocumented#Line'>parallel</a> <a href='undocumented#Line'>to</a> <a href='undocumented#Line'>the</a> <a href='#SkPaint_getTextIntercepts_text'>text</a> <a href='#SkPaint_getTextIntercepts_text'>advance</a>.
-The return count is zero or a multiple of two, and is at most twice the number of <a href='undocumented#Glyph'>glyphs</a> <a href='undocumented#Glyph'>in</a>
+Returns the number of <a href='#SkPaint_getTextIntercepts_intervals'>intervals</a> that intersect <a href='#SkPaint_getTextIntercepts_bounds'>bounds</a>.
+<a href='#SkPaint_getTextIntercepts_bounds'>bounds</a> describes a pair of <a href='undocumented#Line'>lines</a> parallel to the <a href='#SkPaint_getTextIntercepts_text'>text</a> advance.
+The return count is zero or a multiple of two, and is at most twice the number of <a href='undocumented#Glyph'>glyphs</a> in
the <a href='undocumented#String'>string</a>.
-Uses <a href='SkPaint_Reference#SkPaint'>SkPaint</a>::<a href='#SkPaint_TextEncoding'>TextEncoding</a> <a href='#SkPaint_TextEncoding'>to</a> <a href='#SkPaint_TextEncoding'>decode</a> <a href='#SkPaint_getTextIntercepts_text'>text</a>, <a href='undocumented#SkTypeface'>SkTypeface</a> <a href='undocumented#SkTypeface'>to</a> <a href='undocumented#SkTypeface'>get</a> <a href='undocumented#SkTypeface'>the</a> <a href='undocumented#Glyph'>glyph</a> <a href='SkPath_Reference#Path'>paths</a>,
-and <a href='#Text_Size'>text size</a>, <a href='#Fake_Bold'>fake bold</a>, <a href='#SkPaint_getTextIntercepts_text'>and</a> <a href='undocumented#SkPathEffect'>SkPathEffect</a> <a href='undocumented#SkPathEffect'>to</a> <a href='undocumented#SkPathEffect'>scale</a> <a href='undocumented#SkPathEffect'>and</a> <a href='undocumented#SkPathEffect'>modify</a> <a href='undocumented#SkPathEffect'>the</a> <a href='undocumented#Glyph'>glyph</a> <a href='SkPath_Reference#Path'>paths</a>.
-Uses <a href='#SkPaint_getTextIntercepts_x'>x</a>, <a href='#SkPaint_getTextIntercepts_y'>y</a> <a href='#SkPaint_getTextIntercepts_y'>to</a> <a href='#SkPaint_getTextIntercepts_y'>position</a> <a href='#SkPaint_getTextIntercepts_intervals'>intervals</a>.
+Uses <a href='SkPaint_Reference#SkPaint'>SkPaint</a>::<a href='#SkPaint_TextEncoding'>TextEncoding</a> to decode <a href='#SkPaint_getTextIntercepts_text'>text</a>, <a href='undocumented#SkTypeface'>SkTypeface</a> to get the <a href='undocumented#Glyph'>glyph</a> <a href='SkPath_Reference#Path'>paths</a>,
+and <a href='#Text_Size'>text size</a>, <a href='#Fake_Bold'>fake bold</a>, and <a href='undocumented#SkPathEffect'>SkPathEffect</a> to scale and modify the <a href='undocumented#Glyph'>glyph</a> <a href='SkPath_Reference#Path'>paths</a>.
+Uses <a href='#SkPaint_getTextIntercepts_x'>x</a>, <a href='#SkPaint_getTextIntercepts_y'>y</a> to position <a href='#SkPaint_getTextIntercepts_intervals'>intervals</a>.
-Pass nullptr for <a href='#SkPaint_getTextIntercepts_intervals'>intervals</a> <a href='#SkPaint_getTextIntercepts_intervals'>to</a> <a href='#SkPaint_getTextIntercepts_intervals'>determine</a> <a href='#SkPaint_getTextIntercepts_intervals'>the</a> <a href='undocumented#Size'>size</a> <a href='undocumented#Size'>of</a> <a href='undocumented#Size'>the</a> <a href='undocumented#Size'>interval</a> <a href='undocumented#Size'>array</a>.
+Pass nullptr for <a href='#SkPaint_getTextIntercepts_intervals'>intervals</a> to determine the <a href='undocumented#Size'>size</a> of the interval array.
-<a href='#SkPaint_getTextIntercepts_intervals'>intervals</a> <a href='#SkPaint_getTextIntercepts_intervals'>are</a> <a href='#SkPaint_getTextIntercepts_intervals'>cached</a> <a href='#SkPaint_getTextIntercepts_intervals'>to</a> <a href='#SkPaint_getTextIntercepts_intervals'>improve</a> <a href='#SkPaint_getTextIntercepts_intervals'>performance</a> <a href='#SkPaint_getTextIntercepts_intervals'>for</a> <a href='#SkPaint_getTextIntercepts_intervals'>multiple</a> <a href='#SkPaint_getTextIntercepts_intervals'>calls</a>.
+<a href='#SkPaint_getTextIntercepts_intervals'>intervals</a> are cached to improve performance for multiple calls.
### Parameters
<table> <tr> <td><a name='SkPaint_getTextIntercepts_text'><code><strong>text</strong></code></a></td>
- <td>character codes or <a href='undocumented#Glyph'>glyph</a> <a href='undocumented#Glyph'>indices</a></td>
+ <td>character codes or <a href='undocumented#Glyph'>glyph</a> indices</td>
</tr>
<tr> <td><a name='SkPaint_getTextIntercepts_length'><code><strong>length</strong></code></a></td>
<td>number of bytes of <a href='#SkPaint_getTextIntercepts_text'>text</a></td>
@@ -4439,7 +4320,7 @@
<td>y-axis value of the origin of the <a href='#SkPaint_getTextIntercepts_text'>text</a></td>
</tr>
<tr> <td><a name='SkPaint_getTextIntercepts_bounds'><code><strong>bounds</strong></code></a></td>
- <td>lower and upper <a href='undocumented#Line'>line</a> <a href='undocumented#Line'>parallel</a> <a href='undocumented#Line'>to</a> <a href='undocumented#Line'>the</a> <a href='undocumented#Line'>advance</a></td>
+ <td>lower and upper <a href='undocumented#Line'>line</a> parallel to the advance</td>
</tr>
<tr> <td><a name='SkPaint_getTextIntercepts_intervals'><code><strong>intervals</strong></code></a></td>
<td>returned intersections; may be nullptr</td>
@@ -4452,7 +4333,7 @@
### Example
-<div><fiddle-embed name="2a0b80ed20d193c688085b79deb5bdc9"><div>Underline uses intercepts to draw on either side of the <a href='undocumented#Glyph'>glyph</a> <a href='undocumented#Glyph'>Descender</a>.
+<div><fiddle-embed name="2a0b80ed20d193c688085b79deb5bdc9"><div>Underline uses intercepts to draw on either side of the <a href='undocumented#Glyph'>glyph</a> Descender.
</div></fiddle-embed></div>
<a name='SkPaint_getPosTextIntercepts'></a>
@@ -4460,26 +4341,26 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-int <a href='#SkPaint_getPosTextIntercepts'>getPosTextIntercepts</a>(<a href='#SkPaint_getPosTextIntercepts'>const</a> <a href='#SkPaint_getPosTextIntercepts'>void</a>* <a href='undocumented#Text'>text</a>, <a href='undocumented#Text'>size_t</a> <a href='undocumented#Text'>length</a>, <a href='undocumented#Text'>const</a> <a href='SkPoint_Reference#SkPoint'>SkPoint</a> <a href='SkPoint_Reference#SkPoint'>pos</a>[],
- <a href='SkPoint_Reference#SkPoint'>const</a> <a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>bounds</a>[2], <a href='undocumented#SkScalar'>SkScalar</a>* <a href='undocumented#SkScalar'>intervals</a>) <a href='undocumented#SkScalar'>const</a>
+int <a href='#SkPaint_getPosTextIntercepts'>getPosTextIntercepts</a>(const void* <a href='undocumented#Text'>text</a>, size_t length, const <a href='SkPoint_Reference#SkPoint'>SkPoint</a> pos[],
+ const <a href='undocumented#SkScalar'>SkScalar</a> bounds[2], <a href='undocumented#SkScalar'>SkScalar</a>* intervals) const
</pre>
-Returns the number of <a href='#SkPaint_getPosTextIntercepts_intervals'>intervals</a> <a href='#SkPaint_getPosTextIntercepts_intervals'>that</a> <a href='#SkPaint_getPosTextIntercepts_intervals'>intersect</a> <a href='#SkPaint_getPosTextIntercepts_bounds'>bounds</a>.
-<a href='#SkPaint_getPosTextIntercepts_bounds'>bounds</a> <a href='#SkPaint_getPosTextIntercepts_bounds'>describes</a> <a href='#SkPaint_getPosTextIntercepts_bounds'>a</a> <a href='#SkPaint_getPosTextIntercepts_bounds'>pair</a> <a href='#SkPaint_getPosTextIntercepts_bounds'>of</a> <a href='undocumented#Line'>lines</a> <a href='undocumented#Line'>parallel</a> <a href='undocumented#Line'>to</a> <a href='undocumented#Line'>the</a> <a href='#SkPaint_getPosTextIntercepts_text'>text</a> <a href='#SkPaint_getPosTextIntercepts_text'>advance</a>.
-The return count is zero or a multiple of two, and is at most twice the number of <a href='undocumented#Glyph'>glyphs</a> <a href='undocumented#Glyph'>in</a>
+Returns the number of <a href='#SkPaint_getPosTextIntercepts_intervals'>intervals</a> that intersect <a href='#SkPaint_getPosTextIntercepts_bounds'>bounds</a>.
+<a href='#SkPaint_getPosTextIntercepts_bounds'>bounds</a> describes a pair of <a href='undocumented#Line'>lines</a> parallel to the <a href='#SkPaint_getPosTextIntercepts_text'>text</a> advance.
+The return count is zero or a multiple of two, and is at most twice the number of <a href='undocumented#Glyph'>glyphs</a> in
the <a href='undocumented#String'>string</a>.
-Uses <a href='SkPaint_Reference#SkPaint'>SkPaint</a>::<a href='#SkPaint_TextEncoding'>TextEncoding</a> <a href='#SkPaint_TextEncoding'>to</a> <a href='#SkPaint_TextEncoding'>decode</a> <a href='#SkPaint_getPosTextIntercepts_text'>text</a>, <a href='undocumented#SkTypeface'>SkTypeface</a> <a href='undocumented#SkTypeface'>to</a> <a href='undocumented#SkTypeface'>get</a> <a href='undocumented#SkTypeface'>the</a> <a href='undocumented#Glyph'>glyph</a> <a href='SkPath_Reference#Path'>paths</a>,
-and <a href='#Text_Size'>text size</a>, <a href='#Fake_Bold'>fake bold</a>, <a href='#SkPaint_getPosTextIntercepts_text'>and</a> <a href='undocumented#SkPathEffect'>SkPathEffect</a> <a href='undocumented#SkPathEffect'>to</a> <a href='undocumented#SkPathEffect'>scale</a> <a href='undocumented#SkPathEffect'>and</a> <a href='undocumented#SkPathEffect'>modify</a> <a href='undocumented#SkPathEffect'>the</a> <a href='undocumented#Glyph'>glyph</a> <a href='SkPath_Reference#Path'>paths</a>.
-Uses <a href='#SkPaint_getPosTextIntercepts_pos'>pos</a> <a href='#SkPaint_getPosTextIntercepts_pos'>array</a> <a href='#SkPaint_getPosTextIntercepts_pos'>to</a> <a href='#SkPaint_getPosTextIntercepts_pos'>position</a> <a href='#SkPaint_getPosTextIntercepts_intervals'>intervals</a>.
+Uses <a href='SkPaint_Reference#SkPaint'>SkPaint</a>::<a href='#SkPaint_TextEncoding'>TextEncoding</a> to decode <a href='#SkPaint_getPosTextIntercepts_text'>text</a>, <a href='undocumented#SkTypeface'>SkTypeface</a> to get the <a href='undocumented#Glyph'>glyph</a> <a href='SkPath_Reference#Path'>paths</a>,
+and <a href='#Text_Size'>text size</a>, <a href='#Fake_Bold'>fake bold</a>, and <a href='undocumented#SkPathEffect'>SkPathEffect</a> to scale and modify the <a href='undocumented#Glyph'>glyph</a> <a href='SkPath_Reference#Path'>paths</a>.
+Uses <a href='#SkPaint_getPosTextIntercepts_pos'>pos</a> array to position <a href='#SkPaint_getPosTextIntercepts_intervals'>intervals</a>.
-Pass nullptr for <a href='#SkPaint_getPosTextIntercepts_intervals'>intervals</a> <a href='#SkPaint_getPosTextIntercepts_intervals'>to</a> <a href='#SkPaint_getPosTextIntercepts_intervals'>determine</a> <a href='#SkPaint_getPosTextIntercepts_intervals'>the</a> <a href='undocumented#Size'>size</a> <a href='undocumented#Size'>of</a> <a href='undocumented#Size'>the</a> <a href='undocumented#Size'>interval</a> <a href='undocumented#Size'>array</a>.
+Pass nullptr for <a href='#SkPaint_getPosTextIntercepts_intervals'>intervals</a> to determine the <a href='undocumented#Size'>size</a> of the interval array.
-<a href='#SkPaint_getPosTextIntercepts_intervals'>intervals</a> <a href='#SkPaint_getPosTextIntercepts_intervals'>are</a> <a href='#SkPaint_getPosTextIntercepts_intervals'>cached</a> <a href='#SkPaint_getPosTextIntercepts_intervals'>to</a> <a href='#SkPaint_getPosTextIntercepts_intervals'>improve</a> <a href='#SkPaint_getPosTextIntercepts_intervals'>performance</a> <a href='#SkPaint_getPosTextIntercepts_intervals'>for</a> <a href='#SkPaint_getPosTextIntercepts_intervals'>multiple</a> <a href='#SkPaint_getPosTextIntercepts_intervals'>calls</a>.
+<a href='#SkPaint_getPosTextIntercepts_intervals'>intervals</a> are cached to improve performance for multiple calls.
### Parameters
<table> <tr> <td><a name='SkPaint_getPosTextIntercepts_text'><code><strong>text</strong></code></a></td>
- <td>character codes or <a href='undocumented#Glyph'>glyph</a> <a href='undocumented#Glyph'>indices</a></td>
+ <td>character codes or <a href='undocumented#Glyph'>glyph</a> indices</td>
</tr>
<tr> <td><a name='SkPaint_getPosTextIntercepts_length'><code><strong>length</strong></code></a></td>
<td>number of bytes of <a href='#SkPaint_getPosTextIntercepts_text'>text</a></td>
@@ -4488,7 +4369,7 @@
<td>positions of each <a href='undocumented#Glyph'>glyph</a></td>
</tr>
<tr> <td><a name='SkPaint_getPosTextIntercepts_bounds'><code><strong>bounds</strong></code></a></td>
- <td>lower and upper <a href='undocumented#Line'>line</a> <a href='undocumented#Line'>parallel</a> <a href='undocumented#Line'>to</a> <a href='undocumented#Line'>the</a> <a href='undocumented#Line'>advance</a></td>
+ <td>lower and upper <a href='undocumented#Line'>line</a> parallel to the advance</td>
</tr>
<tr> <td><a name='SkPaint_getPosTextIntercepts_intervals'><code><strong>intervals</strong></code></a></td>
<td>returned intersections; may be nullptr</td>
@@ -4501,7 +4382,7 @@
### Example
-<div><fiddle-embed name="5b5754fdb90b44c245d72567854eca04"><div><a href='undocumented#Text'>Text</a> <a href='undocumented#Text'>intercepts</a> <a href='undocumented#Text'>draw</a> <a href='undocumented#Text'>on</a> <a href='undocumented#Text'>either</a> <a href='undocumented#Text'>side</a> <a href='undocumented#Text'>of</a>, <a href='undocumented#Text'>but</a> <a href='undocumented#Text'>not</a> <a href='undocumented#Text'>inside</a>, <a href='undocumented#Glyph'>Glyphs</a> <a href='undocumented#Glyph'>in</a> <a href='undocumented#Glyph'>a</a> <a href='undocumented#Glyph'>run</a>.
+<div><fiddle-embed name="5b5754fdb90b44c245d72567854eca04"><div><a href='undocumented#Text'>Text</a> intercepts draw on either side of, but not inside, <a href='undocumented#Glyph'>Glyphs</a> in a run.
</div></fiddle-embed></div>
<a name='SkPaint_getPosTextHIntercepts'></a>
@@ -4509,38 +4390,38 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-int <a href='#SkPaint_getPosTextHIntercepts'>getPosTextHIntercepts</a>(<a href='#SkPaint_getPosTextHIntercepts'>const</a> <a href='#SkPaint_getPosTextHIntercepts'>void</a>* <a href='undocumented#Text'>text</a>, <a href='undocumented#Text'>size_t</a> <a href='undocumented#Text'>length</a>, <a href='undocumented#Text'>const</a> <a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>xpos</a>[], <a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>constY</a>,
- <a href='undocumented#SkScalar'>const</a> <a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>bounds</a>[2], <a href='undocumented#SkScalar'>SkScalar</a>* <a href='undocumented#SkScalar'>intervals</a>) <a href='undocumented#SkScalar'>const</a>
+int <a href='#SkPaint_getPosTextHIntercepts'>getPosTextHIntercepts</a>(const void* <a href='undocumented#Text'>text</a>, size_t length, const <a href='undocumented#SkScalar'>SkScalar</a> xpos[], <a href='undocumented#SkScalar'>SkScalar</a> constY,
+ const <a href='undocumented#SkScalar'>SkScalar</a> bounds[2], <a href='undocumented#SkScalar'>SkScalar</a>* intervals) const
</pre>
-Returns the number of <a href='#SkPaint_getPosTextHIntercepts_intervals'>intervals</a> <a href='#SkPaint_getPosTextHIntercepts_intervals'>that</a> <a href='#SkPaint_getPosTextHIntercepts_intervals'>intersect</a> <a href='#SkPaint_getPosTextHIntercepts_bounds'>bounds</a>.
-<a href='#SkPaint_getPosTextHIntercepts_bounds'>bounds</a> <a href='#SkPaint_getPosTextHIntercepts_bounds'>describes</a> <a href='#SkPaint_getPosTextHIntercepts_bounds'>a</a> <a href='#SkPaint_getPosTextHIntercepts_bounds'>pair</a> <a href='#SkPaint_getPosTextHIntercepts_bounds'>of</a> <a href='undocumented#Line'>lines</a> <a href='undocumented#Line'>parallel</a> <a href='undocumented#Line'>to</a> <a href='undocumented#Line'>the</a> <a href='#SkPaint_getPosTextHIntercepts_text'>text</a> <a href='#SkPaint_getPosTextHIntercepts_text'>advance</a>.
-The return count is zero or a multiple of two, and is at most twice the number of <a href='undocumented#Glyph'>glyphs</a> <a href='undocumented#Glyph'>in</a>
+Returns the number of <a href='#SkPaint_getPosTextHIntercepts_intervals'>intervals</a> that intersect <a href='#SkPaint_getPosTextHIntercepts_bounds'>bounds</a>.
+<a href='#SkPaint_getPosTextHIntercepts_bounds'>bounds</a> describes a pair of <a href='undocumented#Line'>lines</a> parallel to the <a href='#SkPaint_getPosTextHIntercepts_text'>text</a> advance.
+The return count is zero or a multiple of two, and is at most twice the number of <a href='undocumented#Glyph'>glyphs</a> in
the <a href='undocumented#String'>string</a>.
-Uses <a href='SkPaint_Reference#SkPaint'>SkPaint</a>::<a href='#SkPaint_TextEncoding'>TextEncoding</a> <a href='#SkPaint_TextEncoding'>to</a> <a href='#SkPaint_TextEncoding'>decode</a> <a href='#SkPaint_getPosTextHIntercepts_text'>text</a>, <a href='undocumented#SkTypeface'>SkTypeface</a> <a href='undocumented#SkTypeface'>to</a> <a href='undocumented#SkTypeface'>get</a> <a href='undocumented#SkTypeface'>the</a> <a href='undocumented#Glyph'>glyph</a> <a href='SkPath_Reference#Path'>paths</a>,
-and <a href='#Text_Size'>text size</a>, <a href='#Fake_Bold'>fake bold</a>, <a href='#SkPaint_getPosTextHIntercepts_text'>and</a> <a href='undocumented#SkPathEffect'>SkPathEffect</a> <a href='undocumented#SkPathEffect'>to</a> <a href='undocumented#SkPathEffect'>scale</a> <a href='undocumented#SkPathEffect'>and</a> <a href='undocumented#SkPathEffect'>modify</a> <a href='undocumented#SkPathEffect'>the</a> <a href='undocumented#Glyph'>glyph</a> <a href='SkPath_Reference#Path'>paths</a>.
-Uses <a href='#SkPaint_getPosTextHIntercepts_xpos'>xpos</a> <a href='#SkPaint_getPosTextHIntercepts_xpos'>array</a>, <a href='#SkPaint_getPosTextHIntercepts_constY'>constY</a> <a href='#SkPaint_getPosTextHIntercepts_constY'>to</a> <a href='#SkPaint_getPosTextHIntercepts_constY'>position</a> <a href='#SkPaint_getPosTextHIntercepts_intervals'>intervals</a>.
+Uses <a href='SkPaint_Reference#SkPaint'>SkPaint</a>::<a href='#SkPaint_TextEncoding'>TextEncoding</a> to decode <a href='#SkPaint_getPosTextHIntercepts_text'>text</a>, <a href='undocumented#SkTypeface'>SkTypeface</a> to get the <a href='undocumented#Glyph'>glyph</a> <a href='SkPath_Reference#Path'>paths</a>,
+and <a href='#Text_Size'>text size</a>, <a href='#Fake_Bold'>fake bold</a>, and <a href='undocumented#SkPathEffect'>SkPathEffect</a> to scale and modify the <a href='undocumented#Glyph'>glyph</a> <a href='SkPath_Reference#Path'>paths</a>.
+Uses <a href='#SkPaint_getPosTextHIntercepts_xpos'>xpos</a> array, <a href='#SkPaint_getPosTextHIntercepts_constY'>constY</a> to position <a href='#SkPaint_getPosTextHIntercepts_intervals'>intervals</a>.
-Pass nullptr for <a href='#SkPaint_getPosTextHIntercepts_intervals'>intervals</a> <a href='#SkPaint_getPosTextHIntercepts_intervals'>to</a> <a href='#SkPaint_getPosTextHIntercepts_intervals'>determine</a> <a href='#SkPaint_getPosTextHIntercepts_intervals'>the</a> <a href='undocumented#Size'>size</a> <a href='undocumented#Size'>of</a> <a href='undocumented#Size'>the</a> <a href='undocumented#Size'>interval</a> <a href='undocumented#Size'>array</a>.
+Pass nullptr for <a href='#SkPaint_getPosTextHIntercepts_intervals'>intervals</a> to determine the <a href='undocumented#Size'>size</a> of the interval array.
-<a href='#SkPaint_getPosTextHIntercepts_intervals'>intervals</a> <a href='#SkPaint_getPosTextHIntercepts_intervals'>are</a> <a href='#SkPaint_getPosTextHIntercepts_intervals'>cached</a> <a href='#SkPaint_getPosTextHIntercepts_intervals'>to</a> <a href='#SkPaint_getPosTextHIntercepts_intervals'>improve</a> <a href='#SkPaint_getPosTextHIntercepts_intervals'>performance</a> <a href='#SkPaint_getPosTextHIntercepts_intervals'>for</a> <a href='#SkPaint_getPosTextHIntercepts_intervals'>multiple</a> <a href='#SkPaint_getPosTextHIntercepts_intervals'>calls</a>.
+<a href='#SkPaint_getPosTextHIntercepts_intervals'>intervals</a> are cached to improve performance for multiple calls.
### Parameters
<table> <tr> <td><a name='SkPaint_getPosTextHIntercepts_text'><code><strong>text</strong></code></a></td>
- <td>character codes or <a href='undocumented#Glyph'>glyph</a> <a href='undocumented#Glyph'>indices</a></td>
+ <td>character codes or <a href='undocumented#Glyph'>glyph</a> indices</td>
</tr>
<tr> <td><a name='SkPaint_getPosTextHIntercepts_length'><code><strong>length</strong></code></a></td>
<td>number of bytes of <a href='#SkPaint_getPosTextHIntercepts_text'>text</a></td>
</tr>
<tr> <td><a name='SkPaint_getPosTextHIntercepts_xpos'><code><strong>xpos</strong></code></a></td>
- <td>positions of each <a href='undocumented#Glyph'>glyph</a> <a href='undocumented#Glyph'>on</a> <a href='undocumented#Glyph'>x-axis</a></td>
+ <td>positions of each <a href='undocumented#Glyph'>glyph</a> on x-axis</td>
</tr>
<tr> <td><a name='SkPaint_getPosTextHIntercepts_constY'><code><strong>constY</strong></code></a></td>
- <td>position of each <a href='undocumented#Glyph'>glyph</a> <a href='undocumented#Glyph'>on</a> <a href='undocumented#Glyph'>y-axis</a></td>
+ <td>position of each <a href='undocumented#Glyph'>glyph</a> on y-axis</td>
</tr>
<tr> <td><a name='SkPaint_getPosTextHIntercepts_bounds'><code><strong>bounds</strong></code></a></td>
- <td>lower and upper <a href='undocumented#Line'>line</a> <a href='undocumented#Line'>parallel</a> <a href='undocumented#Line'>to</a> <a href='undocumented#Line'>the</a> <a href='undocumented#Line'>advance</a></td>
+ <td>lower and upper <a href='undocumented#Line'>line</a> parallel to the advance</td>
</tr>
<tr> <td><a name='SkPaint_getPosTextHIntercepts_intervals'><code><strong>intervals</strong></code></a></td>
<td>returned intersections; may be nullptr</td>
@@ -4553,7 +4434,7 @@
### Example
-<div><fiddle-embed name="dc9851c43acc3716aca8c9a4d40d452d"><div><a href='undocumented#Text'>Text</a> <a href='undocumented#Text'>intercepts</a> <a href='undocumented#Text'>do</a> <a href='undocumented#Text'>not</a> <a href='undocumented#Text'>take</a> <a href='undocumented#Text'>stroke</a> <a href='undocumented#Text'>thickness</a> <a href='undocumented#Text'>into</a> <a href='undocumented#Text'>consideration</a>.
+<div><fiddle-embed name="dc9851c43acc3716aca8c9a4d40d452d"><div><a href='undocumented#Text'>Text</a> intercepts do not take stroke thickness into consideration.
</div></fiddle-embed></div>
<a name='SkPaint_getTextBlobIntercepts'></a>
@@ -4561,30 +4442,30 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-int <a href='#SkPaint_getTextBlobIntercepts'>getTextBlobIntercepts</a>(<a href='#SkPaint_getTextBlobIntercepts'>const</a> <a href='SkTextBlob_Reference#SkTextBlob'>SkTextBlob</a>* <a href='SkTextBlob_Reference#SkTextBlob'>blob</a>, <a href='SkTextBlob_Reference#SkTextBlob'>const</a> <a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>bounds</a>[2], <a href='undocumented#SkScalar'>SkScalar</a>* <a href='undocumented#SkScalar'>intervals</a>) <a href='undocumented#SkScalar'>const</a>
+int <a href='#SkPaint_getTextBlobIntercepts'>getTextBlobIntercepts</a>(const <a href='SkTextBlob_Reference#SkTextBlob'>SkTextBlob</a>* blob, const <a href='undocumented#SkScalar'>SkScalar</a> bounds[2], <a href='undocumented#SkScalar'>SkScalar</a>* intervals) const
</pre>
-Returns the number of <a href='#SkPaint_getTextBlobIntercepts_intervals'>intervals</a> <a href='#SkPaint_getTextBlobIntercepts_intervals'>that</a> <a href='#SkPaint_getTextBlobIntercepts_intervals'>intersect</a> <a href='#SkPaint_getTextBlobIntercepts_bounds'>bounds</a>.
-<a href='#SkPaint_getTextBlobIntercepts_bounds'>bounds</a> <a href='#SkPaint_getTextBlobIntercepts_bounds'>describes</a> <a href='#SkPaint_getTextBlobIntercepts_bounds'>a</a> <a href='#SkPaint_getTextBlobIntercepts_bounds'>pair</a> <a href='#SkPaint_getTextBlobIntercepts_bounds'>of</a> <a href='undocumented#Line'>lines</a> <a href='undocumented#Line'>parallel</a> <a href='undocumented#Line'>to</a> <a href='undocumented#Line'>the</a> <a href='undocumented#Text'>text</a> <a href='undocumented#Text'>advance</a>.
-The return count is zero or a multiple of two, and is at most twice the number of <a href='undocumented#Glyph'>glyphs</a> <a href='undocumented#Glyph'>in</a>
+Returns the number of <a href='#SkPaint_getTextBlobIntercepts_intervals'>intervals</a> that intersect <a href='#SkPaint_getTextBlobIntercepts_bounds'>bounds</a>.
+<a href='#SkPaint_getTextBlobIntercepts_bounds'>bounds</a> describes a pair of <a href='undocumented#Line'>lines</a> parallel to the <a href='undocumented#Text'>text</a> advance.
+The return count is zero or a multiple of two, and is at most twice the number of <a href='undocumented#Glyph'>glyphs</a> in
the <a href='undocumented#String'>string</a>.
-Uses <a href='undocumented#SkTypeface'>SkTypeface</a> <a href='undocumented#SkTypeface'>to</a> <a href='undocumented#SkTypeface'>get</a> <a href='undocumented#SkTypeface'>the</a> <a href='undocumented#Glyph'>glyph</a> <a href='SkPath_Reference#Path'>paths</a>,
-and <a href='#Text_Size'>text size</a>, <a href='#Fake_Bold'>fake bold</a>, <a href='undocumented#Text'>and</a> <a href='undocumented#SkPathEffect'>SkPathEffect</a> <a href='undocumented#SkPathEffect'>to</a> <a href='undocumented#SkPathEffect'>scale</a> <a href='undocumented#SkPathEffect'>and</a> <a href='undocumented#SkPathEffect'>modify</a> <a href='undocumented#SkPathEffect'>the</a> <a href='undocumented#Glyph'>glyph</a> <a href='SkPath_Reference#Path'>paths</a>.
+Uses <a href='undocumented#SkTypeface'>SkTypeface</a> to get the <a href='undocumented#Glyph'>glyph</a> <a href='SkPath_Reference#Path'>paths</a>,
+and <a href='#Text_Size'>text size</a>, <a href='#Fake_Bold'>fake bold</a>, and <a href='undocumented#SkPathEffect'>SkPathEffect</a> to scale and modify the <a href='undocumented#Glyph'>glyph</a> <a href='SkPath_Reference#Path'>paths</a>.
Uses run array to position <a href='#SkPaint_getTextBlobIntercepts_intervals'>intervals</a>.
-<a href='SkPaint_Reference#SkPaint'>SkPaint</a>::<a href='#SkPaint_TextEncoding'>TextEncoding</a> <a href='#SkPaint_TextEncoding'>must</a> <a href='#SkPaint_TextEncoding'>be</a> <a href='#SkPaint_TextEncoding'>set</a> <a href='#SkPaint_TextEncoding'>to</a> <a href='SkPaint_Reference#SkPaint'>SkPaint</a>::<a href='#SkPaint_kGlyphID_TextEncoding'>kGlyphID_TextEncoding</a>.
+<a href='SkPaint_Reference#SkPaint'>SkPaint</a>::<a href='#SkPaint_TextEncoding'>TextEncoding</a> must be set to <a href='SkPaint_Reference#SkPaint'>SkPaint</a>::<a href='#SkPaint_kGlyphID_TextEncoding'>kGlyphID_TextEncoding</a>.
-Pass nullptr for <a href='#SkPaint_getTextBlobIntercepts_intervals'>intervals</a> <a href='#SkPaint_getTextBlobIntercepts_intervals'>to</a> <a href='#SkPaint_getTextBlobIntercepts_intervals'>determine</a> <a href='#SkPaint_getTextBlobIntercepts_intervals'>the</a> <a href='undocumented#Size'>size</a> <a href='undocumented#Size'>of</a> <a href='undocumented#Size'>the</a> <a href='undocumented#Size'>interval</a> <a href='undocumented#Size'>array</a>.
+Pass nullptr for <a href='#SkPaint_getTextBlobIntercepts_intervals'>intervals</a> to determine the <a href='undocumented#Size'>size</a> of the interval array.
-<a href='#SkPaint_getTextBlobIntercepts_intervals'>intervals</a> <a href='#SkPaint_getTextBlobIntercepts_intervals'>are</a> <a href='#SkPaint_getTextBlobIntercepts_intervals'>cached</a> <a href='#SkPaint_getTextBlobIntercepts_intervals'>to</a> <a href='#SkPaint_getTextBlobIntercepts_intervals'>improve</a> <a href='#SkPaint_getTextBlobIntercepts_intervals'>performance</a> <a href='#SkPaint_getTextBlobIntercepts_intervals'>for</a> <a href='#SkPaint_getTextBlobIntercepts_intervals'>multiple</a> <a href='#SkPaint_getTextBlobIntercepts_intervals'>calls</a>.
+<a href='#SkPaint_getTextBlobIntercepts_intervals'>intervals</a> are cached to improve performance for multiple calls.
### Parameters
<table> <tr> <td><a name='SkPaint_getTextBlobIntercepts_blob'><code><strong>blob</strong></code></a></td>
- <td><a href='undocumented#Glyph'>glyphs</a>, <a href='undocumented#Glyph'>positions</a>, <a href='undocumented#Glyph'>and</a> <a href='undocumented#Text'>text</a> <a href='SkPaint_Reference#Paint'>paint</a> <a href='SkPaint_Reference#Paint'>attributes</a></td>
+ <td><a href='undocumented#Glyph'>glyphs</a>, positions, and <a href='undocumented#Text'>text</a> <a href='SkPaint_Reference#Paint'>paint</a> attributes</td>
</tr>
<tr> <td><a name='SkPaint_getTextBlobIntercepts_bounds'><code><strong>bounds</strong></code></a></td>
- <td>lower and upper <a href='undocumented#Line'>line</a> <a href='undocumented#Line'>parallel</a> <a href='undocumented#Line'>to</a> <a href='undocumented#Line'>the</a> <a href='undocumented#Line'>advance</a></td>
+ <td>lower and upper <a href='undocumented#Line'>line</a> parallel to the advance</td>
</tr>
<tr> <td><a name='SkPaint_getTextBlobIntercepts_intervals'><code><strong>intervals</strong></code></a></td>
<td>returned intersections; may be nullptr</td>
@@ -4604,14 +4485,14 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-<a href='SkRect_Reference#SkRect'>SkRect</a> <a href='#SkPaint_getFontBounds'>getFontBounds</a>() <a href='#SkPaint_getFontBounds'>const</a>
+<a href='SkRect_Reference#SkRect'>SkRect</a> <a href='#SkPaint_getFontBounds'>getFontBounds</a>() const
</pre>
Returns the union of bounds of all <a href='undocumented#Glyph'>glyphs</a>.
-Returned dimensions are computed by <a href='undocumented#Font'>font</a> <a href='undocumented#Font'>manager</a> <a href='undocumented#Font'>from</a> <a href='undocumented#Font'>font</a> <a href='undocumented#Data'>data</a>,
-ignoring <a href='SkPaint_Reference#SkPaint'>SkPaint</a>::<a href='#SkPaint_Hinting'>Hinting</a>. <a href='#SkPaint_Hinting'>Includes</a> <a href='undocumented#Font'>font</a> <a href='undocumented#Font'>metrics</a>, <a href='undocumented#Font'>but</a> <a href='undocumented#Font'>not</a> <a href='undocumented#Font'>fake</a> <a href='undocumented#Font'>bold</a> <a href='undocumented#Font'>or</a> <a href='undocumented#SkPathEffect'>SkPathEffect</a>.
+Returned dimensions are computed by <a href='undocumented#Font'>font</a> manager from <a href='undocumented#Font'>font</a> <a href='undocumented#Data'>data</a>,
+ignoring <a href='SkPaint_Reference#SkPaint'>SkPaint</a>::Hinting. Includes <a href='undocumented#Font'>font</a> metrics, but not fake bold or <a href='undocumented#SkPathEffect'>SkPathEffect</a>.
-If <a href='undocumented#Text'>text</a> <a href='undocumented#Size'>size</a> <a href='undocumented#Size'>is</a> <a href='undocumented#Size'>large</a>, <a href='undocumented#Text'>text</a> <a href='undocumented#Text'>scale</a> <a href='undocumented#Text'>is</a> <a href='undocumented#Text'>one</a>, <a href='undocumented#Text'>and</a> <a href='undocumented#Text'>text</a> <a href='undocumented#Text'>skew</a> <a href='undocumented#Text'>is</a> <a href='undocumented#Text'>zero</a>,
+If <a href='undocumented#Text'>text</a> <a href='undocumented#Size'>size</a> is large, <a href='undocumented#Text'>text</a> scale is one, and <a href='undocumented#Text'>text</a> skew is zero,
returns the bounds as:
{ <a href='undocumented#SkFontMetrics'>SkFontMetrics</a>::<a href='#SkFontMetrics_fXMin'>fXMin</a>, <a href='undocumented#SkFontMetrics'>SkFontMetrics</a>::<a href='#SkFontMetrics_fTop'>fTop</a>, <a href='undocumented#SkFontMetrics'>SkFontMetrics</a>::<a href='#SkFontMetrics_fXMax'>fXMax</a>, <a href='undocumented#SkFontMetrics'>SkFontMetrics</a>::<a href='#SkFontMetrics_fBottom'>fBottom</a> }.
@@ -4637,18 +4518,18 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-bool <a href='#SkPaint_nothingToDraw'>nothingToDraw</a>() <a href='#SkPaint_nothingToDraw'>const</a>
+bool <a href='#SkPaint_nothingToDraw'>nothingToDraw</a>() const
</pre>
-Returns true if <a href='SkPaint_Reference#SkPaint'>SkPaint</a> <a href='SkPaint_Reference#SkPaint'>prevents</a> <a href='SkPaint_Reference#SkPaint'>all</a> <a href='SkPaint_Reference#SkPaint'>drawing</a>;
-otherwise, the <a href='SkPaint_Reference#SkPaint'>SkPaint</a> <a href='SkPaint_Reference#SkPaint'>may</a> <a href='SkPaint_Reference#SkPaint'>or</a> <a href='SkPaint_Reference#SkPaint'>may</a> <a href='SkPaint_Reference#SkPaint'>not</a> <a href='SkPaint_Reference#SkPaint'>allow</a> <a href='SkPaint_Reference#SkPaint'>drawing</a>.
+Returns true if <a href='SkPaint_Reference#SkPaint'>SkPaint</a> prevents all drawing;
+otherwise, the <a href='SkPaint_Reference#SkPaint'>SkPaint</a> may or may not allow drawing.
-Returns true if, for example, <a href='SkBlendMode_Reference#SkBlendMode'>SkBlendMode</a> <a href='SkBlendMode_Reference#SkBlendMode'>combined</a> <a href='SkBlendMode_Reference#SkBlendMode'>with</a> <a href='SkColor_Reference#Alpha'>alpha</a> <a href='SkColor_Reference#Alpha'>computes</a> <a href='SkColor_Reference#Alpha'>a</a>
-new <a href='SkColor_Reference#Alpha'>alpha</a> <a href='SkColor_Reference#Alpha'>of</a> <a href='SkColor_Reference#Alpha'>zero</a>.
+Returns true if, for example, <a href='SkBlendMode_Reference#SkBlendMode'>SkBlendMode</a> combined with <a href='SkColor_Reference#Alpha'>alpha</a> computes a
+new <a href='SkColor_Reference#Alpha'>alpha</a> of zero.
### Return Value
-true if <a href='SkPaint_Reference#SkPaint'>SkPaint</a> <a href='SkPaint_Reference#SkPaint'>prevents</a> <a href='SkPaint_Reference#SkPaint'>all</a> <a href='SkPaint_Reference#SkPaint'>drawing</a>
+true if <a href='SkPaint_Reference#SkPaint'>SkPaint</a> prevents all drawing
### Example
@@ -4669,46 +4550,46 @@
Private: To be made private.
-<a href='#Paint_Fast_Bounds'>Fast_Bounds</a> <a href='#Paint_Fast_Bounds'>functions</a> <a href='#Paint_Fast_Bounds'>conservatively</a> <a href='#Paint_Fast_Bounds'>outset</a> <a href='#Paint_Fast_Bounds'>a</a> <a href='#Paint_Fast_Bounds'>drawing</a> <a href='#Paint_Fast_Bounds'>bounds</a> <a href='#Paint_Fast_Bounds'>by</a> <a href='#Paint_Fast_Bounds'>additional</a> <a href='#Paint_Fast_Bounds'>area</a>
-<a href='SkPaint_Reference#Paint'>Paint</a> <a href='SkPaint_Reference#Paint'>may</a> <a href='SkPaint_Reference#Paint'>draw</a> <a href='SkPaint_Reference#Paint'>to</a>.
+<a href='#Paint_Fast_Bounds'>Fast_Bounds</a> functions conservatively outset a drawing bounds by additional area
+<a href='SkPaint_Reference#Paint'>Paint</a> may draw to.
<a name='SkPaint_canComputeFastBounds'></a>
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-bool <a href='#SkPaint_canComputeFastBounds'>canComputeFastBounds</a>() <a href='#SkPaint_canComputeFastBounds'>const</a>
+bool <a href='#SkPaint_canComputeFastBounds'>canComputeFastBounds</a>() const
</pre>
Private: (to be made private)
-Returns true if <a href='SkPaint_Reference#Paint'>Paint</a> <a href='SkPaint_Reference#Paint'>does</a> <a href='SkPaint_Reference#Paint'>not</a> <a href='SkPaint_Reference#Paint'>include</a> <a href='SkPaint_Reference#Paint'>elements</a> <a href='SkPaint_Reference#Paint'>requiring</a> <a href='SkPaint_Reference#Paint'>extensive</a> <a href='SkPaint_Reference#Paint'>computation</a>
-<a href='SkPaint_Reference#Paint'>to</a> <a href='SkPaint_Reference#Paint'>compute</a> <a href='undocumented#Device'>Device</a> <a href='undocumented#Device'>bounds</a> <a href='undocumented#Device'>of</a> <a href='undocumented#Device'>drawn</a> <a href='undocumented#Device'>geometry</a>. <a href='undocumented#Device'>For</a> <a href='undocumented#Device'>instance</a>, <a href='SkPaint_Reference#Paint'>Paint</a> <a href='SkPaint_Reference#Paint'>with</a> <a href='#Path_Effect'>Path_Effect</a>
-<a href='#Path_Effect'>always</a> <a href='#Path_Effect'>returns</a> <a href='#Path_Effect'>false</a>.
+Returns true if <a href='SkPaint_Reference#Paint'>Paint</a> does not include elements requiring extensive computation
+to compute <a href='undocumented#Device'>Device</a> bounds of drawn geometry. For instance, <a href='SkPaint_Reference#Paint'>Paint</a> with <a href='#Path_Effect'>Path_Effect</a>
+always returns false.
### Return Value
-true if <a href='SkPaint_Reference#Paint'>Paint</a> <a href='SkPaint_Reference#Paint'>allows</a> <a href='SkPaint_Reference#Paint'>for</a> <a href='SkPaint_Reference#Paint'>fast</a> <a href='SkPaint_Reference#Paint'>computation</a> <a href='SkPaint_Reference#Paint'>of</a> <a href='SkPaint_Reference#Paint'>bounds</a>
+true if <a href='SkPaint_Reference#Paint'>Paint</a> allows for fast computation of bounds
<a name='SkPaint_computeFastBounds'></a>
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-const <a href='SkRect_Reference#SkRect'>SkRect</a>& <a href='#SkPaint_computeFastBounds'>computeFastBounds</a>(<a href='#SkPaint_computeFastBounds'>const</a> <a href='SkRect_Reference#SkRect'>SkRect</a>& <a href='SkRect_Reference#SkRect'>orig</a>, <a href='SkRect_Reference#SkRect'>SkRect</a>* <a href='SkRect_Reference#SkRect'>storage</a>) <a href='SkRect_Reference#SkRect'>const</a>
+const <a href='SkRect_Reference#SkRect'>SkRect</a>& <a href='#SkPaint_computeFastBounds'>computeFastBounds</a>(const <a href='SkRect_Reference#SkRect'>SkRect</a>& orig, <a href='SkRect_Reference#SkRect'>SkRect</a>* storage) const
</pre>
Private: (to be made private)
-Only call if <a href='#SkPaint_canComputeFastBounds'>canComputeFastBounds</a> <a href='#SkPaint_canComputeFastBounds'>returned</a> <a href='#SkPaint_canComputeFastBounds'>true</a>. <a href='#SkPaint_canComputeFastBounds'>This</a> <a href='#SkPaint_canComputeFastBounds'>takes</a> <a href='#SkPaint_canComputeFastBounds'>a</a>
-<a href='#SkPaint_canComputeFastBounds'>raw</a> <a href='#SkPaint_canComputeFastBounds'>rectangle</a>, <a href='#SkPaint_canComputeFastBounds'>the</a> <a href='#SkPaint_canComputeFastBounds'>raw</a> <a href='#SkPaint_canComputeFastBounds'>bounds</a> <a href='#SkPaint_canComputeFastBounds'>of</a> <a href='#SkPaint_canComputeFastBounds'>a</a> <a href='#SkPaint_canComputeFastBounds'>shape</a>; <a href='#SkPaint_canComputeFastBounds'>and</a> <a href='#SkPaint_canComputeFastBounds'>adjusts</a> <a href='#SkPaint_canComputeFastBounds'>it</a> <a href='#SkPaint_canComputeFastBounds'>for</a> <a href='#SkPaint_canComputeFastBounds'>stylistic</a>
-<a href='#SkPaint_canComputeFastBounds'>effects</a> <a href='#SkPaint_canComputeFastBounds'>in</a> <a href='#SkPaint_canComputeFastBounds'>the</a> <a href='SkPaint_Reference#Paint'>paint</a>, <a href='SkPaint_Reference#Paint'>such</a> <a href='SkPaint_Reference#Paint'>as</a> <a href='SkPaint_Reference#Paint'>stroking</a>. <a href='SkPaint_Reference#Paint'>If</a> <a href='SkPaint_Reference#Paint'>needed</a>, <a href='SkPaint_Reference#Paint'>it</a> <a href='SkPaint_Reference#Paint'>uses</a> <a href='SkPaint_Reference#Paint'>the</a> <a href='#SkPaint_computeFastBounds_storage'>storage</a>
-<a href='#SkPaint_computeFastBounds_storage'>parameter</a>. <a href='#SkPaint_computeFastBounds_storage'>It</a> <a href='#SkPaint_computeFastBounds_storage'>returns</a> <a href='#SkPaint_computeFastBounds_storage'>the</a> <a href='#SkPaint_computeFastBounds_storage'>adjusted</a> <a href='#SkPaint_computeFastBounds_storage'>bounds</a> <a href='#SkPaint_computeFastBounds_storage'>that</a> <a href='#SkPaint_computeFastBounds_storage'>can</a> <a href='#SkPaint_computeFastBounds_storage'>then</a> <a href='#SkPaint_computeFastBounds_storage'>be</a> <a href='#SkPaint_computeFastBounds_storage'>used</a>
-<a href='#SkPaint_computeFastBounds_storage'>for</a> <a href='SkCanvas_Reference#SkCanvas'>SkCanvas</a>::<a href='#SkCanvas_quickReject'>quickReject</a> <a href='#SkCanvas_quickReject'>tests</a>.
+Only call if <a href='#SkPaint_canComputeFastBounds'>canComputeFastBounds</a> returned true. This takes a
+raw rectangle, the raw bounds of a shape; and adjusts it for stylistic
+effects in the <a href='SkPaint_Reference#Paint'>paint</a>, such as stroking. If needed, it uses the <a href='#SkPaint_computeFastBounds_storage'>storage</a>
+parameter. It returns the adjusted bounds that can then be used
+for <a href='SkCanvas_Reference#SkCanvas'>SkCanvas</a>::<a href='#SkCanvas_quickReject'>quickReject</a> tests.
-<a href='#SkCanvas_quickReject'>The</a> <a href='#SkCanvas_quickReject'>returned</a> <a href='SkRect_Reference#Rect'>Rect</a> <a href='SkRect_Reference#Rect'>will</a> <a href='SkRect_Reference#Rect'>either</a> <a href='SkRect_Reference#Rect'>be</a> <a href='#SkPaint_computeFastBounds_orig'>orig</a> <a href='#SkPaint_computeFastBounds_orig'>or</a> <a href='#SkPaint_computeFastBounds_storage'>storage</a>, <a href='#SkPaint_computeFastBounds_storage'>thus</a> <a href='#SkPaint_computeFastBounds_storage'>the</a> <a href='#SkPaint_computeFastBounds_storage'>caller</a>
-<a href='#SkPaint_computeFastBounds_storage'>should</a> <a href='#SkPaint_computeFastBounds_storage'>not</a> <a href='#SkPaint_computeFastBounds_storage'>rely</a> <a href='#SkPaint_computeFastBounds_storage'>on</a> <a href='#SkPaint_computeFastBounds_storage'>storage</a> <a href='#SkPaint_computeFastBounds_storage'>being</a> <a href='#SkPaint_computeFastBounds_storage'>set</a> <a href='#SkPaint_computeFastBounds_storage'>to</a> <a href='#SkPaint_computeFastBounds_storage'>the</a> <a href='#SkPaint_computeFastBounds_storage'>result</a>, <a href='#SkPaint_computeFastBounds_storage'>but</a> <a href='#SkPaint_computeFastBounds_storage'>should</a> <a href='#SkPaint_computeFastBounds_storage'>always</a>
-<a href='#SkPaint_computeFastBounds_storage'>use</a> <a href='#SkPaint_computeFastBounds_storage'>the</a> <a href='#SkPaint_computeFastBounds_storage'>returned</a> <a href='#SkPaint_computeFastBounds_storage'>value</a>. <a href='#SkPaint_computeFastBounds_storage'>It</a> <a href='#SkPaint_computeFastBounds_storage'>is</a> <a href='#SkPaint_computeFastBounds_storage'>legal</a> <a href='#SkPaint_computeFastBounds_storage'>for</a> <a href='#SkPaint_computeFastBounds_orig'>orig</a> <a href='#SkPaint_computeFastBounds_orig'>and</a> <a href='#SkPaint_computeFastBounds_storage'>storage</a> <a href='#SkPaint_computeFastBounds_storage'>to</a> <a href='#SkPaint_computeFastBounds_storage'>be</a> <a href='#SkPaint_computeFastBounds_storage'>the</a> <a href='#SkPaint_computeFastBounds_storage'>same</a>
+The returned <a href='SkRect_Reference#Rect'>Rect</a> will either be <a href='#SkPaint_computeFastBounds_orig'>orig</a> or <a href='#SkPaint_computeFastBounds_storage'>storage</a>, thus the caller
+should not rely on <a href='#SkPaint_computeFastBounds_storage'>storage</a> being set to the result, but should always
+use the returned value. It is legal for <a href='#SkPaint_computeFastBounds_orig'>orig</a> and <a href='#SkPaint_computeFastBounds_storage'>storage</a> to be the same
<a href='SkRect_Reference#Rect'>Rect</a>.
Private: For example:
@@ -4723,7 +4604,7 @@
### Parameters
<table> <tr> <td><a name='SkPaint_computeFastBounds_orig'><code><strong>orig</strong></code></a></td>
- <td>geometry modified by <a href='SkPaint_Reference#Paint'>Paint</a> <a href='SkPaint_Reference#Paint'>when</a> <a href='SkPaint_Reference#Paint'>drawn</a></td>
+ <td>geometry modified by <a href='SkPaint_Reference#Paint'>Paint</a> when drawn</td>
</tr>
<tr> <td><a name='SkPaint_computeFastBounds_storage'><code><strong>storage</strong></code></a></td>
<td>computed bounds of geometry; may not be nullptr</td>
@@ -4739,7 +4620,7 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-const <a href='SkRect_Reference#SkRect'>SkRect</a>& <a href='#SkPaint_computeFastStrokeBounds'>computeFastStrokeBounds</a>(<a href='#SkPaint_computeFastStrokeBounds'>const</a> <a href='SkRect_Reference#SkRect'>SkRect</a>& <a href='SkRect_Reference#SkRect'>orig</a>, <a href='SkRect_Reference#SkRect'>SkRect</a>* <a href='SkRect_Reference#SkRect'>storage</a>) <a href='SkRect_Reference#SkRect'>const</a>
+const <a href='SkRect_Reference#SkRect'>SkRect</a>& <a href='#SkPaint_computeFastStrokeBounds'>computeFastStrokeBounds</a>(const <a href='SkRect_Reference#SkRect'>SkRect</a>& orig, <a href='SkRect_Reference#SkRect'>SkRect</a>* storage) const
</pre>
Private: (to be made private)
@@ -4747,7 +4628,7 @@
### Parameters
<table> <tr> <td><a name='SkPaint_computeFastStrokeBounds_orig'><code><strong>orig</strong></code></a></td>
- <td>geometry modified by <a href='SkPaint_Reference#Paint'>Paint</a> <a href='SkPaint_Reference#Paint'>when</a> <a href='SkPaint_Reference#Paint'>drawn</a></td>
+ <td>geometry modified by <a href='SkPaint_Reference#Paint'>Paint</a> when drawn</td>
</tr>
<tr> <td><a name='SkPaint_computeFastStrokeBounds_storage'><code><strong>storage</strong></code></a></td>
<td>computed bounds of geometry</td>
@@ -4763,19 +4644,19 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-const <a href='SkRect_Reference#SkRect'>SkRect</a>& <a href='#SkPaint_doComputeFastBounds'>doComputeFastBounds</a>(<a href='#SkPaint_doComputeFastBounds'>const</a> <a href='SkRect_Reference#SkRect'>SkRect</a>& <a href='SkRect_Reference#SkRect'>orig</a>, <a href='SkRect_Reference#SkRect'>SkRect</a>* <a href='SkRect_Reference#SkRect'>storage</a>, <a href='#SkPaint_Style'>Style</a> <a href='#SkPaint_Style'>style</a>) <a href='#SkPaint_Style'>const</a>
+const <a href='SkRect_Reference#SkRect'>SkRect</a>& <a href='#SkPaint_doComputeFastBounds'>doComputeFastBounds</a>(const <a href='SkRect_Reference#SkRect'>SkRect</a>& orig, <a href='SkRect_Reference#SkRect'>SkRect</a>* storage, <a href='#SkPaint_Style'>Style</a> style) const
</pre>
Private: (to be made private)
-Computes the bounds, overriding the <a href='SkPaint_Reference#Paint'>Paint</a> <a href='#SkPaint_Style'>Style</a>. <a href='#SkPaint_Style'>This</a> <a href='#SkPaint_Style'>can</a> <a href='#SkPaint_Style'>be</a> <a href='#SkPaint_Style'>used</a> <a href='#SkPaint_Style'>to</a>
-<a href='#SkPaint_Style'>account</a> <a href='#SkPaint_Style'>for</a> <a href='#SkPaint_Style'>additional</a> <a href='#SkPaint_Style'>width</a> <a href='#SkPaint_Style'>required</a> <a href='#SkPaint_Style'>by</a> <a href='#SkPaint_Style'>stroking</a> <a href='#SkPaint_doComputeFastBounds_orig'>orig</a>, <a href='#SkPaint_doComputeFastBounds_orig'>without</a>
-<a href='#SkPaint_doComputeFastBounds_orig'>altering</a> <a href='#SkPaint_Style'>Style</a> <a href='#SkPaint_Style'>set</a> <a href='#SkPaint_Style'>to</a> <a href='#SkPaint_Style'>fill</a>.
+Computes the bounds, overriding the <a href='SkPaint_Reference#Paint'>Paint</a> <a href='#SkPaint_Style'>Style</a>. This can be used to
+account for additional width required by stroking <a href='#SkPaint_doComputeFastBounds_orig'>orig</a>, without
+altering <a href='#SkPaint_Style'>Style</a> set to fill.
### Parameters
<table> <tr> <td><a name='SkPaint_doComputeFastBounds_orig'><code><strong>orig</strong></code></a></td>
- <td>geometry modified by <a href='SkPaint_Reference#Paint'>Paint</a> <a href='SkPaint_Reference#Paint'>when</a> <a href='SkPaint_Reference#Paint'>drawn</a></td>
+ <td>geometry modified by <a href='SkPaint_Reference#Paint'>Paint</a> when drawn</td>
</tr>
<tr> <td><a name='SkPaint_doComputeFastBounds_storage'><code><strong>storage</strong></code></a></td>
<td>computed bounds of geometry</td>
diff --git a/site/user/api/SkPath_Reference.md b/site/user/api/SkPath_Reference.md
index 1eb57c7..0596a43 100644
--- a/site/user/api/SkPath_Reference.md
+++ b/site/user/api/SkPath_Reference.md
@@ -8,159 +8,159 @@
<pre style="padding: 1em 1em 1em 1em;width: 62.5em; background-color: #f0f0f0">
class <a href='SkPath_Reference#SkPath'>SkPath</a> {
-<a href='SkPath_Reference#SkPath'>public</a>:
- <a href='SkPath_Reference#SkPath'>enum</a> <a href='#SkPath_Direction'>Direction</a> : <a href='#SkPath_Direction'>int</a> {
+public:
+ enum <a href='#SkPath_Direction'>Direction</a> : int {
<a href='#SkPath_kCW_Direction'>kCW_Direction</a>,
<a href='#SkPath_kCCW_Direction'>kCCW_Direction</a>,
};
<a href='#SkPath_empty_constructor'>SkPath()</a>;
- <a href='SkPath_Reference#SkPath'>SkPath</a>(<a href='SkPath_Reference#SkPath'>const</a> <a href='SkPath_Reference#SkPath'>SkPath</a>& <a href='SkPath_Reference#Path'>path</a>);
+ <a href='SkPath_Reference#SkPath'>SkPath</a>(const <a href='SkPath_Reference#SkPath'>SkPath</a>& <a href='SkPath_Reference#Path'>path</a>);
~<a href='#SkPath_empty_constructor'>SkPath()</a>;
- <a href='SkPath_Reference#SkPath'>SkPath</a>& <a href='SkPath_Reference#SkPath'>operator</a>=(<a href='SkPath_Reference#SkPath'>const</a> <a href='SkPath_Reference#SkPath'>SkPath</a>& <a href='SkPath_Reference#Path'>path</a>);
- <a href='SkPath_Reference#Path'>friend</a> <a href='SkPath_Reference#Path'>bool</a> <a href='SkPath_Reference#Path'>operator</a>==(<a href='SkPath_Reference#Path'>const</a> <a href='SkPath_Reference#SkPath'>SkPath</a>& <a href='SkPath_Reference#SkPath'>a</a>, <a href='SkPath_Reference#SkPath'>const</a> <a href='SkPath_Reference#SkPath'>SkPath</a>& <a href='SkPath_Reference#SkPath'>b</a>);
- <a href='SkPath_Reference#SkPath'>friend</a> <a href='SkPath_Reference#SkPath'>bool</a> <a href='SkPath_Reference#SkPath'>operator</a>!=(<a href='SkPath_Reference#SkPath'>const</a> <a href='SkPath_Reference#SkPath'>SkPath</a>& <a href='SkPath_Reference#SkPath'>a</a>, <a href='SkPath_Reference#SkPath'>const</a> <a href='SkPath_Reference#SkPath'>SkPath</a>& <a href='SkPath_Reference#SkPath'>b</a>);
- <a href='SkPath_Reference#SkPath'>bool</a> <a href='#SkPath_isInterpolatable'>isInterpolatable</a>(<a href='#SkPath_isInterpolatable'>const</a> <a href='SkPath_Reference#SkPath'>SkPath</a>& <a href='SkPath_Reference#SkPath'>compare</a>) <a href='SkPath_Reference#SkPath'>const</a>;
- <a href='SkPath_Reference#SkPath'>bool</a> <a href='SkPath_Reference#SkPath'>interpolate</a>(<a href='SkPath_Reference#SkPath'>const</a> <a href='SkPath_Reference#SkPath'>SkPath</a>& <a href='SkPath_Reference#SkPath'>ending</a>, <a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>weight</a>, <a href='SkPath_Reference#SkPath'>SkPath</a>* <a href='SkPath_Reference#SkPath'>out</a>) <a href='SkPath_Reference#SkPath'>const</a>;
- <a href='SkPath_Reference#SkPath'>bool</a> <a href='#SkPath_unique'>unique()</a> <a href='#SkPath_unique'>const</a>;
+ <a href='SkPath_Reference#SkPath'>SkPath</a>& operator=(const <a href='SkPath_Reference#SkPath'>SkPath</a>& <a href='SkPath_Reference#Path'>path</a>);
+ friend bool operator==(const <a href='SkPath_Reference#SkPath'>SkPath</a>& a, const <a href='SkPath_Reference#SkPath'>SkPath</a>& b);
+ friend bool operator!=(const <a href='SkPath_Reference#SkPath'>SkPath</a>& a, const <a href='SkPath_Reference#SkPath'>SkPath</a>& b);
+ bool <a href='#SkPath_isInterpolatable'>isInterpolatable</a>(const <a href='SkPath_Reference#SkPath'>SkPath</a>& compare) const;
+ bool interpolate(const <a href='SkPath_Reference#SkPath'>SkPath</a>& ending, <a href='undocumented#SkScalar'>SkScalar</a> weight, <a href='SkPath_Reference#SkPath'>SkPath</a>* out) const;
+ bool <a href='#SkPath_unique'>unique()</a> const;
- <a href='#SkPath_unique'>enum</a> <a href='#SkPath_FillType'>FillType</a> {
+ enum <a href='#SkPath_FillType'>FillType</a> {
<a href='#SkPath_kWinding_FillType'>kWinding_FillType</a>,
<a href='#SkPath_kEvenOdd_FillType'>kEvenOdd_FillType</a>,
<a href='#SkPath_kInverseWinding_FillType'>kInverseWinding_FillType</a>,
<a href='#SkPath_kInverseEvenOdd_FillType'>kInverseEvenOdd_FillType</a>,
};
- <a href='#SkPath_FillType'>FillType</a> <a href='#SkPath_getFillType'>getFillType</a>() <a href='#SkPath_getFillType'>const</a>;
- <a href='#SkPath_getFillType'>void</a> <a href='#SkPath_setFillType'>setFillType</a>(<a href='#SkPath_FillType'>FillType</a> <a href='#SkPath_FillType'>ft</a>);
- <a href='#SkPath_FillType'>bool</a> <a href='#SkPath_isInverseFillType'>isInverseFillType</a>() <a href='#SkPath_isInverseFillType'>const</a>;
- <a href='#SkPath_isInverseFillType'>void</a> <a href='#SkPath_toggleInverseFillType'>toggleInverseFillType</a>();
+ <a href='#SkPath_FillType'>FillType</a> <a href='#SkPath_getFillType'>getFillType</a>() const;
+ void <a href='#SkPath_setFillType'>setFillType</a>(<a href='#SkPath_FillType'>FillType</a> ft);
+ bool <a href='#SkPath_isInverseFillType'>isInverseFillType</a>() const;
+ void <a href='#SkPath_toggleInverseFillType'>toggleInverseFillType</a>();
- <a href='#SkPath_toggleInverseFillType'>enum</a> <a href='#SkPath_Convexity'>Convexity</a> : <a href='#SkPath_Convexity'>uint8_t</a> {
+ enum <a href='#SkPath_Convexity'>Convexity</a> : uint8_t {
<a href='#SkPath_kUnknown_Convexity'>kUnknown_Convexity</a>,
<a href='#SkPath_kConvex_Convexity'>kConvex_Convexity</a>,
<a href='#SkPath_kConcave_Convexity'>kConcave_Convexity</a>,
};
- <a href='#SkPath_Convexity'>Convexity</a> <a href='#SkPath_getConvexity'>getConvexity</a>() <a href='#SkPath_getConvexity'>const</a>;
- <a href='#SkPath_Convexity'>Convexity</a> <a href='#SkPath_getConvexityOrUnknown'>getConvexityOrUnknown</a>() <a href='#SkPath_getConvexityOrUnknown'>const</a>;
- <a href='#SkPath_getConvexityOrUnknown'>void</a> <a href='#SkPath_setConvexity'>setConvexity</a>(<a href='#SkPath_Convexity'>Convexity</a> <a href='#SkPath_Convexity'>convexity</a>);
- <a href='#SkPath_Convexity'>bool</a> <a href='#SkPath_isConvex'>isConvex</a>() <a href='#SkPath_isConvex'>const</a>;
- <a href='#SkPath_isConvex'>bool</a> <a href='#SkPath_isOval'>isOval</a>(<a href='SkRect_Reference#SkRect'>SkRect</a>* <a href='SkRect_Reference#SkRect'>bounds</a>) <a href='SkRect_Reference#SkRect'>const</a>;
- <a href='SkRect_Reference#SkRect'>bool</a> <a href='#SkPath_isRRect'>isRRect</a>(<a href='SkRRect_Reference#SkRRect'>SkRRect</a>* <a href='SkRRect_Reference#SkRRect'>rrect</a>) <a href='SkRRect_Reference#SkRRect'>const</a>;
+ <a href='#SkPath_Convexity'>Convexity</a> <a href='#SkPath_getConvexity'>getConvexity</a>() const;
+ <a href='#SkPath_Convexity'>Convexity</a> <a href='#SkPath_getConvexityOrUnknown'>getConvexityOrUnknown</a>() const;
+ void <a href='#SkPath_setConvexity'>setConvexity</a>(<a href='#SkPath_Convexity'>Convexity</a> convexity);
+ bool <a href='#SkPath_isConvex'>isConvex</a>() const;
+ bool <a href='#SkPath_isOval'>isOval</a>(<a href='SkRect_Reference#SkRect'>SkRect</a>* bounds) const;
+ bool <a href='#SkPath_isRRect'>isRRect</a>(<a href='SkRRect_Reference#SkRRect'>SkRRect</a>* rrect) const;
<a href='SkPath_Reference#SkPath'>SkPath</a>& <a href='#SkPath_reset'>reset()</a>;
<a href='SkPath_Reference#SkPath'>SkPath</a>& <a href='#SkPath_rewind'>rewind()</a>;
- <a href='#SkPath_rewind'>bool</a> <a href='#SkPath_isEmpty'>isEmpty</a>() <a href='#SkPath_isEmpty'>const</a>;
- <a href='#SkPath_isEmpty'>bool</a> <a href='#SkPath_isLastContourClosed'>isLastContourClosed</a>() <a href='#SkPath_isLastContourClosed'>const</a>;
- <a href='#SkPath_isLastContourClosed'>bool</a> <a href='#SkPath_isFinite'>isFinite</a>() <a href='#SkPath_isFinite'>const</a>;
- <a href='#SkPath_isFinite'>bool</a> <a href='#SkPath_isVolatile'>isVolatile</a>() <a href='#SkPath_isVolatile'>const</a>;
- <a href='#SkPath_isVolatile'>void</a> <a href='#SkPath_setIsVolatile'>setIsVolatile</a>(<a href='#SkPath_setIsVolatile'>bool</a> <a href='#SkPath_isVolatile'>isVolatile</a>);
- <a href='#SkPath_isVolatile'>static</a> <a href='#SkPath_isVolatile'>bool</a> <a href='#SkPath_IsLineDegenerate'>IsLineDegenerate</a>(<a href='#SkPath_IsLineDegenerate'>const</a> <a href='SkPoint_Reference#SkPoint'>SkPoint</a>& <a href='SkPoint_Reference#SkPoint'>p1</a>, <a href='SkPoint_Reference#SkPoint'>const</a> <a href='SkPoint_Reference#SkPoint'>SkPoint</a>& <a href='SkPoint_Reference#SkPoint'>p2</a>, <a href='SkPoint_Reference#SkPoint'>bool</a> <a href='SkPoint_Reference#SkPoint'>exact</a>);
- <a href='SkPoint_Reference#SkPoint'>static</a> <a href='SkPoint_Reference#SkPoint'>bool</a> <a href='#SkPath_IsQuadDegenerate'>IsQuadDegenerate</a>(<a href='#SkPath_IsQuadDegenerate'>const</a> <a href='SkPoint_Reference#SkPoint'>SkPoint</a>& <a href='SkPoint_Reference#SkPoint'>p1</a>, <a href='SkPoint_Reference#SkPoint'>const</a> <a href='SkPoint_Reference#SkPoint'>SkPoint</a>& <a href='SkPoint_Reference#SkPoint'>p2</a>,
- <a href='SkPoint_Reference#SkPoint'>const</a> <a href='SkPoint_Reference#SkPoint'>SkPoint</a>& <a href='SkPoint_Reference#SkPoint'>p3</a>, <a href='SkPoint_Reference#SkPoint'>bool</a> <a href='SkPoint_Reference#SkPoint'>exact</a>);
- <a href='SkPoint_Reference#SkPoint'>static</a> <a href='SkPoint_Reference#SkPoint'>bool</a> <a href='#SkPath_IsCubicDegenerate'>IsCubicDegenerate</a>(<a href='#SkPath_IsCubicDegenerate'>const</a> <a href='SkPoint_Reference#SkPoint'>SkPoint</a>& <a href='SkPoint_Reference#SkPoint'>p1</a>, <a href='SkPoint_Reference#SkPoint'>const</a> <a href='SkPoint_Reference#SkPoint'>SkPoint</a>& <a href='SkPoint_Reference#SkPoint'>p2</a>,
- <a href='SkPoint_Reference#SkPoint'>const</a> <a href='SkPoint_Reference#SkPoint'>SkPoint</a>& <a href='SkPoint_Reference#SkPoint'>p3</a>, <a href='SkPoint_Reference#SkPoint'>const</a> <a href='SkPoint_Reference#SkPoint'>SkPoint</a>& <a href='SkPoint_Reference#SkPoint'>p4</a>, <a href='SkPoint_Reference#SkPoint'>bool</a> <a href='SkPoint_Reference#SkPoint'>exact</a>);
- <a href='SkPoint_Reference#SkPoint'>bool</a> <a href='#SkPath_isLine'>isLine</a>(<a href='SkPoint_Reference#SkPoint'>SkPoint</a> <a href='undocumented#Line'>line</a>[2]) <a href='undocumented#Line'>const</a>;
- <a href='undocumented#Line'>int</a> <a href='#SkPath_countPoints'>countPoints</a>() <a href='#SkPath_countPoints'>const</a>;
- <a href='SkPoint_Reference#SkPoint'>SkPoint</a> <a href='#SkPath_getPoint'>getPoint</a>(<a href='#SkPath_getPoint'>int</a> <a href='#SkPath_getPoint'>index</a>) <a href='#SkPath_getPoint'>const</a>;
- <a href='#SkPath_getPoint'>int</a> <a href='#SkPath_getPoints'>getPoints</a>(<a href='SkPoint_Reference#SkPoint'>SkPoint</a> <a href='SkPoint_Reference#Point'>points</a>[], <a href='SkPoint_Reference#Point'>int</a> <a href='SkPoint_Reference#Point'>max</a>) <a href='SkPoint_Reference#Point'>const</a>;
- <a href='SkPoint_Reference#Point'>int</a> <a href='#SkPath_countVerbs'>countVerbs</a>() <a href='#SkPath_countVerbs'>const</a>;
- <a href='#SkPath_countVerbs'>int</a> <a href='#SkPath_getVerbs'>getVerbs</a>(<a href='#SkPath_getVerbs'>uint8_t</a> <a href='SkPath_Reference#Verb'>verbs</a>[], <a href='SkPath_Reference#Verb'>int</a> <a href='SkPath_Reference#Verb'>max</a>) <a href='SkPath_Reference#Verb'>const</a>;
- <a href='SkPath_Reference#Verb'>void</a> <a href='#SkPath_swap'>swap</a>(<a href='SkPath_Reference#SkPath'>SkPath</a>& <a href='SkPath_Reference#SkPath'>other</a>);
- <a href='SkPath_Reference#SkPath'>const</a> <a href='SkRect_Reference#SkRect'>SkRect</a>& <a href='#SkPath_getBounds'>getBounds</a>() <a href='#SkPath_getBounds'>const</a>;
- <a href='#SkPath_getBounds'>void</a> <a href='#SkPath_updateBoundsCache'>updateBoundsCache</a>() <a href='#SkPath_updateBoundsCache'>const</a>;
- <a href='SkRect_Reference#SkRect'>SkRect</a> <a href='#SkPath_computeTightBounds'>computeTightBounds</a>() <a href='#SkPath_computeTightBounds'>const</a>;
- <a href='#SkPath_computeTightBounds'>bool</a> <a href='#SkPath_conservativelyContainsRect'>conservativelyContainsRect</a>(<a href='#SkPath_conservativelyContainsRect'>const</a> <a href='SkRect_Reference#SkRect'>SkRect</a>& <a href='SkRect_Reference#Rect'>rect</a>) <a href='SkRect_Reference#Rect'>const</a>;
- <a href='SkRect_Reference#Rect'>void</a> <a href='#SkPath_incReserve'>incReserve</a>(<a href='#SkPath_incReserve'>int</a> <a href='#SkPath_incReserve'>extraPtCount</a>);
- <a href='#SkPath_incReserve'>void</a> <a href='#SkPath_shrinkToFit'>shrinkToFit</a>();
- <a href='SkPath_Reference#SkPath'>SkPath</a>& <a href='#SkPath_moveTo'>moveTo</a>(<a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>x</a>, <a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>y</a>);
- <a href='SkPath_Reference#SkPath'>SkPath</a>& <a href='#SkPath_moveTo'>moveTo</a>(<a href='#SkPath_moveTo'>const</a> <a href='SkPoint_Reference#SkPoint'>SkPoint</a>& <a href='SkPoint_Reference#SkPoint'>p</a>);
- <a href='SkPath_Reference#SkPath'>SkPath</a>& <a href='#SkPath_rMoveTo'>rMoveTo</a>(<a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>dx</a>, <a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>dy</a>);
- <a href='SkPath_Reference#SkPath'>SkPath</a>& <a href='#SkPath_lineTo'>lineTo</a>(<a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>x</a>, <a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>y</a>);
- <a href='SkPath_Reference#SkPath'>SkPath</a>& <a href='#SkPath_lineTo'>lineTo</a>(<a href='#SkPath_lineTo'>const</a> <a href='SkPoint_Reference#SkPoint'>SkPoint</a>& <a href='SkPoint_Reference#SkPoint'>p</a>);
- <a href='SkPath_Reference#SkPath'>SkPath</a>& <a href='#SkPath_rLineTo'>rLineTo</a>(<a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>dx</a>, <a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>dy</a>);
- <a href='SkPath_Reference#SkPath'>SkPath</a>& <a href='#SkPath_quadTo'>quadTo</a>(<a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>x1</a>, <a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>y1</a>, <a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>x2</a>, <a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>y2</a>);
- <a href='SkPath_Reference#SkPath'>SkPath</a>& <a href='#SkPath_quadTo'>quadTo</a>(<a href='#SkPath_quadTo'>const</a> <a href='SkPoint_Reference#SkPoint'>SkPoint</a>& <a href='SkPoint_Reference#SkPoint'>p1</a>, <a href='SkPoint_Reference#SkPoint'>const</a> <a href='SkPoint_Reference#SkPoint'>SkPoint</a>& <a href='SkPoint_Reference#SkPoint'>p2</a>);
- <a href='SkPath_Reference#SkPath'>SkPath</a>& <a href='#SkPath_rQuadTo'>rQuadTo</a>(<a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>dx1</a>, <a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>dy1</a>, <a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>dx2</a>, <a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>dy2</a>);
- <a href='SkPath_Reference#SkPath'>SkPath</a>& <a href='#SkPath_conicTo'>conicTo</a>(<a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>x1</a>, <a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>y1</a>, <a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>x2</a>, <a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>y2</a>,
- <a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>w</a>);
- <a href='SkPath_Reference#SkPath'>SkPath</a>& <a href='#SkPath_conicTo'>conicTo</a>(<a href='#SkPath_conicTo'>const</a> <a href='SkPoint_Reference#SkPoint'>SkPoint</a>& <a href='SkPoint_Reference#SkPoint'>p1</a>, <a href='SkPoint_Reference#SkPoint'>const</a> <a href='SkPoint_Reference#SkPoint'>SkPoint</a>& <a href='SkPoint_Reference#SkPoint'>p2</a>, <a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>w</a>);
- <a href='SkPath_Reference#SkPath'>SkPath</a>& <a href='#SkPath_rConicTo'>rConicTo</a>(<a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>dx1</a>, <a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>dy1</a>, <a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>dx2</a>, <a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>dy2</a>,
- <a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>w</a>);
- <a href='SkPath_Reference#SkPath'>SkPath</a>& <a href='#SkPath_cubicTo'>cubicTo</a>(<a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>x1</a>, <a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>y1</a>, <a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>x2</a>, <a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>y2</a>,
- <a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>x3</a>, <a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>y3</a>);
- <a href='SkPath_Reference#SkPath'>SkPath</a>& <a href='#SkPath_cubicTo'>cubicTo</a>(<a href='#SkPath_cubicTo'>const</a> <a href='SkPoint_Reference#SkPoint'>SkPoint</a>& <a href='SkPoint_Reference#SkPoint'>p1</a>, <a href='SkPoint_Reference#SkPoint'>const</a> <a href='SkPoint_Reference#SkPoint'>SkPoint</a>& <a href='SkPoint_Reference#SkPoint'>p2</a>, <a href='SkPoint_Reference#SkPoint'>const</a> <a href='SkPoint_Reference#SkPoint'>SkPoint</a>& <a href='SkPoint_Reference#SkPoint'>p3</a>);
- <a href='SkPath_Reference#SkPath'>SkPath</a>& <a href='#SkPath_rCubicTo'>rCubicTo</a>(<a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>dx1</a>, <a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>dy1</a>, <a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>dx2</a>, <a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>dy2</a>,
- <a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>dx3</a>, <a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>dy3</a>);
- <a href='SkPath_Reference#SkPath'>SkPath</a>& <a href='#SkPath_arcTo'>arcTo</a>(<a href='#SkPath_arcTo'>const</a> <a href='SkRect_Reference#SkRect'>SkRect</a>& <a href='undocumented#Oval'>oval</a>, <a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>startAngle</a>, <a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>sweepAngle</a>, <a href='undocumented#SkScalar'>bool</a> <a href='undocumented#SkScalar'>forceMoveTo</a>);
- <a href='SkPath_Reference#SkPath'>SkPath</a>& <a href='#SkPath_arcTo'>arcTo</a>(<a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>x1</a>, <a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>y1</a>, <a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>x2</a>, <a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>y2</a>, <a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>radius</a>);
- <a href='SkPath_Reference#SkPath'>SkPath</a>& <a href='#SkPath_arcTo'>arcTo</a>(<a href='#SkPath_arcTo'>const</a> <a href='SkPoint_Reference#SkPoint'>SkPoint</a> <a href='SkPoint_Reference#SkPoint'>p1</a>, <a href='SkPoint_Reference#SkPoint'>const</a> <a href='SkPoint_Reference#SkPoint'>SkPoint</a> <a href='SkPoint_Reference#SkPoint'>p2</a>, <a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>radius</a>);
+ bool <a href='#SkPath_isEmpty'>isEmpty</a>() const;
+ bool <a href='#SkPath_isLastContourClosed'>isLastContourClosed</a>() const;
+ bool <a href='#SkPath_isFinite'>isFinite</a>() const;
+ bool <a href='#SkPath_isVolatile'>isVolatile</a>() const;
+ void <a href='#SkPath_setIsVolatile'>setIsVolatile</a>(bool <a href='#SkPath_isVolatile'>isVolatile</a>);
+ static bool <a href='#SkPath_IsLineDegenerate'>IsLineDegenerate</a>(const <a href='SkPoint_Reference#SkPoint'>SkPoint</a>& p1, const <a href='SkPoint_Reference#SkPoint'>SkPoint</a>& p2, bool exact);
+ static bool <a href='#SkPath_IsQuadDegenerate'>IsQuadDegenerate</a>(const <a href='SkPoint_Reference#SkPoint'>SkPoint</a>& p1, const <a href='SkPoint_Reference#SkPoint'>SkPoint</a>& p2,
+ const <a href='SkPoint_Reference#SkPoint'>SkPoint</a>& p3, bool exact);
+ static bool <a href='#SkPath_IsCubicDegenerate'>IsCubicDegenerate</a>(const <a href='SkPoint_Reference#SkPoint'>SkPoint</a>& p1, const <a href='SkPoint_Reference#SkPoint'>SkPoint</a>& p2,
+ const <a href='SkPoint_Reference#SkPoint'>SkPoint</a>& p3, const <a href='SkPoint_Reference#SkPoint'>SkPoint</a>& p4, bool exact);
+ bool <a href='#SkPath_isLine'>isLine</a>(<a href='SkPoint_Reference#SkPoint'>SkPoint</a> <a href='undocumented#Line'>line</a>[2]) const;
+ int <a href='#SkPath_countPoints'>countPoints</a>() const;
+ <a href='SkPoint_Reference#SkPoint'>SkPoint</a> <a href='#SkPath_getPoint'>getPoint</a>(int index) const;
+ int <a href='#SkPath_getPoints'>getPoints</a>(<a href='SkPoint_Reference#SkPoint'>SkPoint</a> <a href='SkPoint_Reference#Point'>points</a>[], int max) const;
+ int <a href='#SkPath_countVerbs'>countVerbs</a>() const;
+ int <a href='#SkPath_getVerbs'>getVerbs</a>(uint8_t <a href='SkPath_Reference#Verb'>verbs</a>[], int max) const;
+ void <a href='#SkPath_swap'>swap</a>(<a href='SkPath_Reference#SkPath'>SkPath</a>& other);
+ const <a href='SkRect_Reference#SkRect'>SkRect</a>& <a href='#SkPath_getBounds'>getBounds</a>() const;
+ void <a href='#SkPath_updateBoundsCache'>updateBoundsCache</a>() const;
+ <a href='SkRect_Reference#SkRect'>SkRect</a> <a href='#SkPath_computeTightBounds'>computeTightBounds</a>() const;
+ bool <a href='#SkPath_conservativelyContainsRect'>conservativelyContainsRect</a>(const <a href='SkRect_Reference#SkRect'>SkRect</a>& <a href='SkRect_Reference#Rect'>rect</a>) const;
+ void <a href='#SkPath_incReserve'>incReserve</a>(int extraPtCount);
+ void <a href='#SkPath_shrinkToFit'>shrinkToFit</a>();
+ <a href='SkPath_Reference#SkPath'>SkPath</a>& <a href='#SkPath_moveTo'>moveTo</a>(<a href='undocumented#SkScalar'>SkScalar</a> x, <a href='undocumented#SkScalar'>SkScalar</a> y);
+ <a href='SkPath_Reference#SkPath'>SkPath</a>& <a href='#SkPath_moveTo'>moveTo</a>(const <a href='SkPoint_Reference#SkPoint'>SkPoint</a>& p);
+ <a href='SkPath_Reference#SkPath'>SkPath</a>& <a href='#SkPath_rMoveTo'>rMoveTo</a>(<a href='undocumented#SkScalar'>SkScalar</a> dx, <a href='undocumented#SkScalar'>SkScalar</a> dy);
+ <a href='SkPath_Reference#SkPath'>SkPath</a>& <a href='#SkPath_lineTo'>lineTo</a>(<a href='undocumented#SkScalar'>SkScalar</a> x, <a href='undocumented#SkScalar'>SkScalar</a> y);
+ <a href='SkPath_Reference#SkPath'>SkPath</a>& <a href='#SkPath_lineTo'>lineTo</a>(const <a href='SkPoint_Reference#SkPoint'>SkPoint</a>& p);
+ <a href='SkPath_Reference#SkPath'>SkPath</a>& <a href='#SkPath_rLineTo'>rLineTo</a>(<a href='undocumented#SkScalar'>SkScalar</a> dx, <a href='undocumented#SkScalar'>SkScalar</a> dy);
+ <a href='SkPath_Reference#SkPath'>SkPath</a>& <a href='#SkPath_quadTo'>quadTo</a>(<a href='undocumented#SkScalar'>SkScalar</a> x1, <a href='undocumented#SkScalar'>SkScalar</a> y1, <a href='undocumented#SkScalar'>SkScalar</a> x2, <a href='undocumented#SkScalar'>SkScalar</a> y2);
+ <a href='SkPath_Reference#SkPath'>SkPath</a>& <a href='#SkPath_quadTo'>quadTo</a>(const <a href='SkPoint_Reference#SkPoint'>SkPoint</a>& p1, const <a href='SkPoint_Reference#SkPoint'>SkPoint</a>& p2);
+ <a href='SkPath_Reference#SkPath'>SkPath</a>& <a href='#SkPath_rQuadTo'>rQuadTo</a>(<a href='undocumented#SkScalar'>SkScalar</a> dx1, <a href='undocumented#SkScalar'>SkScalar</a> dy1, <a href='undocumented#SkScalar'>SkScalar</a> dx2, <a href='undocumented#SkScalar'>SkScalar</a> dy2);
+ <a href='SkPath_Reference#SkPath'>SkPath</a>& <a href='#SkPath_conicTo'>conicTo</a>(<a href='undocumented#SkScalar'>SkScalar</a> x1, <a href='undocumented#SkScalar'>SkScalar</a> y1, <a href='undocumented#SkScalar'>SkScalar</a> x2, <a href='undocumented#SkScalar'>SkScalar</a> y2,
+ <a href='undocumented#SkScalar'>SkScalar</a> w);
+ <a href='SkPath_Reference#SkPath'>SkPath</a>& <a href='#SkPath_conicTo'>conicTo</a>(const <a href='SkPoint_Reference#SkPoint'>SkPoint</a>& p1, const <a href='SkPoint_Reference#SkPoint'>SkPoint</a>& p2, <a href='undocumented#SkScalar'>SkScalar</a> w);
+ <a href='SkPath_Reference#SkPath'>SkPath</a>& <a href='#SkPath_rConicTo'>rConicTo</a>(<a href='undocumented#SkScalar'>SkScalar</a> dx1, <a href='undocumented#SkScalar'>SkScalar</a> dy1, <a href='undocumented#SkScalar'>SkScalar</a> dx2, <a href='undocumented#SkScalar'>SkScalar</a> dy2,
+ <a href='undocumented#SkScalar'>SkScalar</a> w);
+ <a href='SkPath_Reference#SkPath'>SkPath</a>& <a href='#SkPath_cubicTo'>cubicTo</a>(<a href='undocumented#SkScalar'>SkScalar</a> x1, <a href='undocumented#SkScalar'>SkScalar</a> y1, <a href='undocumented#SkScalar'>SkScalar</a> x2, <a href='undocumented#SkScalar'>SkScalar</a> y2,
+ <a href='undocumented#SkScalar'>SkScalar</a> x3, <a href='undocumented#SkScalar'>SkScalar</a> y3);
+ <a href='SkPath_Reference#SkPath'>SkPath</a>& <a href='#SkPath_cubicTo'>cubicTo</a>(const <a href='SkPoint_Reference#SkPoint'>SkPoint</a>& p1, const <a href='SkPoint_Reference#SkPoint'>SkPoint</a>& p2, const <a href='SkPoint_Reference#SkPoint'>SkPoint</a>& p3);
+ <a href='SkPath_Reference#SkPath'>SkPath</a>& <a href='#SkPath_rCubicTo'>rCubicTo</a>(<a href='undocumented#SkScalar'>SkScalar</a> dx1, <a href='undocumented#SkScalar'>SkScalar</a> dy1, <a href='undocumented#SkScalar'>SkScalar</a> dx2, <a href='undocumented#SkScalar'>SkScalar</a> dy2,
+ <a href='undocumented#SkScalar'>SkScalar</a> dx3, <a href='undocumented#SkScalar'>SkScalar</a> dy3);
+ <a href='SkPath_Reference#SkPath'>SkPath</a>& <a href='#SkPath_arcTo'>arcTo</a>(const <a href='SkRect_Reference#SkRect'>SkRect</a>& <a href='undocumented#Oval'>oval</a>, <a href='undocumented#SkScalar'>SkScalar</a> startAngle, <a href='undocumented#SkScalar'>SkScalar</a> sweepAngle, bool forceMoveTo);
+ <a href='SkPath_Reference#SkPath'>SkPath</a>& <a href='#SkPath_arcTo'>arcTo</a>(<a href='undocumented#SkScalar'>SkScalar</a> x1, <a href='undocumented#SkScalar'>SkScalar</a> y1, <a href='undocumented#SkScalar'>SkScalar</a> x2, <a href='undocumented#SkScalar'>SkScalar</a> y2, <a href='undocumented#SkScalar'>SkScalar</a> radius);
+ <a href='SkPath_Reference#SkPath'>SkPath</a>& <a href='#SkPath_arcTo'>arcTo</a>(const <a href='SkPoint_Reference#SkPoint'>SkPoint</a> p1, const <a href='SkPoint_Reference#SkPoint'>SkPoint</a> p2, <a href='undocumented#SkScalar'>SkScalar</a> radius);
- <a href='undocumented#SkScalar'>enum</a> <a href='#SkPath_ArcSize'>ArcSize</a> {
+ enum <a href='#SkPath_ArcSize'>ArcSize</a> {
<a href='#SkPath_kSmall_ArcSize'>kSmall_ArcSize</a>,
<a href='#SkPath_kLarge_ArcSize'>kLarge_ArcSize</a>,
};
- <a href='SkPath_Reference#SkPath'>SkPath</a>& <a href='#SkPath_arcTo'>arcTo</a>(<a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>rx</a>, <a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>ry</a>, <a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>xAxisRotate</a>, <a href='#SkPath_ArcSize'>ArcSize</a> <a href='#SkPath_ArcSize'>largeArc</a>,
- <a href='#SkPath_Direction'>Direction</a> <a href='#SkPath_Direction'>sweep</a>, <a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>x</a>, <a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>y</a>);
- <a href='SkPath_Reference#SkPath'>SkPath</a>& <a href='#SkPath_arcTo'>arcTo</a>(<a href='#SkPath_arcTo'>const</a> <a href='SkPoint_Reference#SkPoint'>SkPoint</a> <a href='SkPoint_Reference#SkPoint'>r</a>, <a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>xAxisRotate</a>, <a href='#SkPath_ArcSize'>ArcSize</a> <a href='#SkPath_ArcSize'>largeArc</a>, <a href='#SkPath_Direction'>Direction</a> <a href='#SkPath_Direction'>sweep</a>,
- <a href='#SkPath_Direction'>const</a> <a href='SkPoint_Reference#SkPoint'>SkPoint</a> <a href='SkPoint_Reference#SkPoint'>xy</a>);
- <a href='SkPath_Reference#SkPath'>SkPath</a>& <a href='#SkPath_rArcTo'>rArcTo</a>(<a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>rx</a>, <a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>ry</a>, <a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>xAxisRotate</a>, <a href='#SkPath_ArcSize'>ArcSize</a> <a href='#SkPath_ArcSize'>largeArc</a>,
- <a href='#SkPath_Direction'>Direction</a> <a href='#SkPath_Direction'>sweep</a>, <a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>dx</a>, <a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>dy</a>);
+ <a href='SkPath_Reference#SkPath'>SkPath</a>& <a href='#SkPath_arcTo'>arcTo</a>(<a href='undocumented#SkScalar'>SkScalar</a> rx, <a href='undocumented#SkScalar'>SkScalar</a> ry, <a href='undocumented#SkScalar'>SkScalar</a> xAxisRotate, <a href='#SkPath_ArcSize'>ArcSize</a> largeArc,
+ <a href='#SkPath_Direction'>Direction</a> sweep, <a href='undocumented#SkScalar'>SkScalar</a> x, <a href='undocumented#SkScalar'>SkScalar</a> y);
+ <a href='SkPath_Reference#SkPath'>SkPath</a>& <a href='#SkPath_arcTo'>arcTo</a>(const <a href='SkPoint_Reference#SkPoint'>SkPoint</a> r, <a href='undocumented#SkScalar'>SkScalar</a> xAxisRotate, <a href='#SkPath_ArcSize'>ArcSize</a> largeArc, <a href='#SkPath_Direction'>Direction</a> sweep,
+ const <a href='SkPoint_Reference#SkPoint'>SkPoint</a> xy);
+ <a href='SkPath_Reference#SkPath'>SkPath</a>& <a href='#SkPath_rArcTo'>rArcTo</a>(<a href='undocumented#SkScalar'>SkScalar</a> rx, <a href='undocumented#SkScalar'>SkScalar</a> ry, <a href='undocumented#SkScalar'>SkScalar</a> xAxisRotate, <a href='#SkPath_ArcSize'>ArcSize</a> largeArc,
+ <a href='#SkPath_Direction'>Direction</a> sweep, <a href='undocumented#SkScalar'>SkScalar</a> dx, <a href='undocumented#SkScalar'>SkScalar</a> dy);
<a href='SkPath_Reference#SkPath'>SkPath</a>& <a href='#SkPath_close'>close()</a>;
- <a href='#SkPath_close'>static</a> <a href='#SkPath_close'>bool</a> <a href='#SkPath_IsInverseFillType'>IsInverseFillType</a>(<a href='#SkPath_FillType'>FillType</a> <a href='#SkPath_FillType'>fill</a>);
- <a href='#SkPath_FillType'>static</a> <a href='#SkPath_FillType'>FillType</a> <a href='#SkPath_ConvertToNonInverseFillType'>ConvertToNonInverseFillType</a>(<a href='#SkPath_FillType'>FillType</a> <a href='#SkPath_FillType'>fill</a>);
- <a href='#SkPath_FillType'>static</a> <a href='#SkPath_FillType'>int</a> <a href='#SkPath_ConvertConicToQuads'>ConvertConicToQuads</a>(<a href='#SkPath_ConvertConicToQuads'>const</a> <a href='SkPoint_Reference#SkPoint'>SkPoint</a>& <a href='SkPoint_Reference#SkPoint'>p0</a>, <a href='SkPoint_Reference#SkPoint'>const</a> <a href='SkPoint_Reference#SkPoint'>SkPoint</a>& <a href='SkPoint_Reference#SkPoint'>p1</a>, <a href='SkPoint_Reference#SkPoint'>const</a> <a href='SkPoint_Reference#SkPoint'>SkPoint</a>& <a href='SkPoint_Reference#SkPoint'>p2</a>,
- <a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>w</a>, <a href='SkPoint_Reference#SkPoint'>SkPoint</a> <a href='SkPoint_Reference#SkPoint'>pts</a>[], <a href='SkPoint_Reference#SkPoint'>int</a> <a href='SkPoint_Reference#SkPoint'>pow2</a>);
- <a href='SkPoint_Reference#SkPoint'>bool</a> <a href='#SkPath_isRect'>isRect</a>(<a href='SkRect_Reference#SkRect'>SkRect</a>* <a href='SkRect_Reference#Rect'>rect</a>, <a href='SkRect_Reference#Rect'>bool</a>* <a href='SkRect_Reference#Rect'>isClosed</a> = <a href='SkRect_Reference#Rect'>nullptr</a>, <a href='#SkPath_Direction'>Direction</a>* <a href='#SkPath_Direction'>direction</a> = <a href='#SkPath_Direction'>nullptr</a>) <a href='#SkPath_Direction'>const</a>;
- <a href='#SkPath_Direction'>bool</a> <a href='#SkPath_isNestedFillRects'>isNestedFillRects</a>(<a href='SkRect_Reference#SkRect'>SkRect</a> <a href='SkRect_Reference#Rect'>rect</a>[2], <a href='#SkPath_Direction'>Direction</a> <a href='#SkPath_Direction'>dirs</a>[2] = <a href='#SkPath_Direction'>nullptr</a>) <a href='#SkPath_Direction'>const</a>;
- <a href='SkPath_Reference#SkPath'>SkPath</a>& <a href='#SkPath_addRect'>addRect</a>(<a href='#SkPath_addRect'>const</a> <a href='SkRect_Reference#SkRect'>SkRect</a>& <a href='SkRect_Reference#Rect'>rect</a>, <a href='#SkPath_Direction'>Direction</a> <a href='#SkPath_Direction'>dir</a> = <a href='#SkPath_kCW_Direction'>kCW_Direction</a>);
- <a href='SkPath_Reference#SkPath'>SkPath</a>& <a href='#SkPath_addRect'>addRect</a>(<a href='#SkPath_addRect'>const</a> <a href='SkRect_Reference#SkRect'>SkRect</a>& <a href='SkRect_Reference#Rect'>rect</a>, <a href='#SkPath_Direction'>Direction</a> <a href='#SkPath_Direction'>dir</a>, <a href='#SkPath_Direction'>unsigned</a> <a href='#SkPath_Direction'>start</a>);
- <a href='SkPath_Reference#SkPath'>SkPath</a>& <a href='#SkPath_addRect'>addRect</a>(<a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>left</a>, <a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>top</a>, <a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>right</a>, <a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>bottom</a>,
- <a href='#SkPath_Direction'>Direction</a> <a href='#SkPath_Direction'>dir</a> = <a href='#SkPath_kCW_Direction'>kCW_Direction</a>);
- <a href='SkPath_Reference#SkPath'>SkPath</a>& <a href='#SkPath_addOval'>addOval</a>(<a href='#SkPath_addOval'>const</a> <a href='SkRect_Reference#SkRect'>SkRect</a>& <a href='undocumented#Oval'>oval</a>, <a href='#SkPath_Direction'>Direction</a> <a href='#SkPath_Direction'>dir</a> = <a href='#SkPath_kCW_Direction'>kCW_Direction</a>);
- <a href='SkPath_Reference#SkPath'>SkPath</a>& <a href='#SkPath_addOval'>addOval</a>(<a href='#SkPath_addOval'>const</a> <a href='SkRect_Reference#SkRect'>SkRect</a>& <a href='undocumented#Oval'>oval</a>, <a href='#SkPath_Direction'>Direction</a> <a href='#SkPath_Direction'>dir</a>, <a href='#SkPath_Direction'>unsigned</a> <a href='#SkPath_Direction'>start</a>);
- <a href='SkPath_Reference#SkPath'>SkPath</a>& <a href='#SkPath_addCircle'>addCircle</a>(<a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>x</a>, <a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>y</a>, <a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>radius</a>,
- <a href='#SkPath_Direction'>Direction</a> <a href='#SkPath_Direction'>dir</a> = <a href='#SkPath_kCW_Direction'>kCW_Direction</a>);
- <a href='SkPath_Reference#SkPath'>SkPath</a>& <a href='#SkPath_addArc'>addArc</a>(<a href='#SkPath_addArc'>const</a> <a href='SkRect_Reference#SkRect'>SkRect</a>& <a href='undocumented#Oval'>oval</a>, <a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>startAngle</a>, <a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>sweepAngle</a>);
- <a href='SkPath_Reference#SkPath'>SkPath</a>& <a href='#SkPath_addRoundRect'>addRoundRect</a>(<a href='#SkPath_addRoundRect'>const</a> <a href='SkRect_Reference#SkRect'>SkRect</a>& <a href='SkRect_Reference#Rect'>rect</a>, <a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>rx</a>, <a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>ry</a>,
- <a href='#SkPath_Direction'>Direction</a> <a href='#SkPath_Direction'>dir</a> = <a href='#SkPath_kCW_Direction'>kCW_Direction</a>);
- <a href='SkPath_Reference#SkPath'>SkPath</a>& <a href='#SkPath_addRoundRect'>addRoundRect</a>(<a href='#SkPath_addRoundRect'>const</a> <a href='SkRect_Reference#SkRect'>SkRect</a>& <a href='SkRect_Reference#Rect'>rect</a>, <a href='SkRect_Reference#Rect'>const</a> <a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>radii</a>[],
- <a href='#SkPath_Direction'>Direction</a> <a href='#SkPath_Direction'>dir</a> = <a href='#SkPath_kCW_Direction'>kCW_Direction</a>);
- <a href='SkPath_Reference#SkPath'>SkPath</a>& <a href='#SkPath_addRRect'>addRRect</a>(<a href='#SkPath_addRRect'>const</a> <a href='SkRRect_Reference#SkRRect'>SkRRect</a>& <a href='SkRRect_Reference#SkRRect'>rrect</a>, <a href='#SkPath_Direction'>Direction</a> <a href='#SkPath_Direction'>dir</a> = <a href='#SkPath_kCW_Direction'>kCW_Direction</a>);
- <a href='SkPath_Reference#SkPath'>SkPath</a>& <a href='#SkPath_addRRect'>addRRect</a>(<a href='#SkPath_addRRect'>const</a> <a href='SkRRect_Reference#SkRRect'>SkRRect</a>& <a href='SkRRect_Reference#SkRRect'>rrect</a>, <a href='#SkPath_Direction'>Direction</a> <a href='#SkPath_Direction'>dir</a>, <a href='#SkPath_Direction'>unsigned</a> <a href='#SkPath_Direction'>start</a>);
- <a href='SkPath_Reference#SkPath'>SkPath</a>& <a href='#SkPath_addPoly'>addPoly</a>(<a href='#SkPath_addPoly'>const</a> <a href='SkPoint_Reference#SkPoint'>SkPoint</a> <a href='SkPoint_Reference#SkPoint'>pts</a>[], <a href='SkPoint_Reference#SkPoint'>int</a> <a href='SkPoint_Reference#SkPoint'>count</a>, <a href='SkPoint_Reference#SkPoint'>bool</a> <a href='SkPoint_Reference#SkPoint'>close</a>);
- <a href='SkPath_Reference#SkPath'>SkPath</a>& <a href='#SkPath_addPoly'>addPoly</a>(<a href='#SkPath_addPoly'>const</a> <a href='#SkPath_addPoly'>std</a>::<a href='#SkPath_addPoly'>initializer_list</a><<a href='SkPoint_Reference#SkPoint'>SkPoint</a>>& <a href='SkPoint_Reference#SkPoint'>list</a>, <a href='SkPoint_Reference#SkPoint'>bool</a> <a href='SkPoint_Reference#SkPoint'>close</a>);
+ static bool <a href='#SkPath_IsInverseFillType'>IsInverseFillType</a>(<a href='#SkPath_FillType'>FillType</a> fill);
+ static <a href='#SkPath_FillType'>FillType</a> <a href='#SkPath_ConvertToNonInverseFillType'>ConvertToNonInverseFillType</a>(<a href='#SkPath_FillType'>FillType</a> fill);
+ static int <a href='#SkPath_ConvertConicToQuads'>ConvertConicToQuads</a>(const <a href='SkPoint_Reference#SkPoint'>SkPoint</a>& p0, const <a href='SkPoint_Reference#SkPoint'>SkPoint</a>& p1, const <a href='SkPoint_Reference#SkPoint'>SkPoint</a>& p2,
+ <a href='undocumented#SkScalar'>SkScalar</a> w, <a href='SkPoint_Reference#SkPoint'>SkPoint</a> pts[], int pow2);
+ bool <a href='#SkPath_isRect'>isRect</a>(<a href='SkRect_Reference#SkRect'>SkRect</a>* <a href='SkRect_Reference#Rect'>rect</a>, bool* isClosed = nullptr, <a href='#SkPath_Direction'>Direction</a>* direction = nullptr) const;
+ bool <a href='#SkPath_isNestedFillRects'>isNestedFillRects</a>(<a href='SkRect_Reference#SkRect'>SkRect</a> <a href='SkRect_Reference#Rect'>rect</a>[2], <a href='#SkPath_Direction'>Direction</a> dirs[2] = nullptr) const;
+ <a href='SkPath_Reference#SkPath'>SkPath</a>& <a href='#SkPath_addRect'>addRect</a>(const <a href='SkRect_Reference#SkRect'>SkRect</a>& <a href='SkRect_Reference#Rect'>rect</a>, <a href='#SkPath_Direction'>Direction</a> dir = <a href='#SkPath_kCW_Direction'>kCW_Direction</a>);
+ <a href='SkPath_Reference#SkPath'>SkPath</a>& <a href='#SkPath_addRect'>addRect</a>(const <a href='SkRect_Reference#SkRect'>SkRect</a>& <a href='SkRect_Reference#Rect'>rect</a>, <a href='#SkPath_Direction'>Direction</a> dir, unsigned start);
+ <a href='SkPath_Reference#SkPath'>SkPath</a>& <a href='#SkPath_addRect'>addRect</a>(<a href='undocumented#SkScalar'>SkScalar</a> left, <a href='undocumented#SkScalar'>SkScalar</a> top, <a href='undocumented#SkScalar'>SkScalar</a> right, <a href='undocumented#SkScalar'>SkScalar</a> bottom,
+ <a href='#SkPath_Direction'>Direction</a> dir = <a href='#SkPath_kCW_Direction'>kCW_Direction</a>);
+ <a href='SkPath_Reference#SkPath'>SkPath</a>& <a href='#SkPath_addOval'>addOval</a>(const <a href='SkRect_Reference#SkRect'>SkRect</a>& <a href='undocumented#Oval'>oval</a>, <a href='#SkPath_Direction'>Direction</a> dir = <a href='#SkPath_kCW_Direction'>kCW_Direction</a>);
+ <a href='SkPath_Reference#SkPath'>SkPath</a>& <a href='#SkPath_addOval'>addOval</a>(const <a href='SkRect_Reference#SkRect'>SkRect</a>& <a href='undocumented#Oval'>oval</a>, <a href='#SkPath_Direction'>Direction</a> dir, unsigned start);
+ <a href='SkPath_Reference#SkPath'>SkPath</a>& <a href='#SkPath_addCircle'>addCircle</a>(<a href='undocumented#SkScalar'>SkScalar</a> x, <a href='undocumented#SkScalar'>SkScalar</a> y, <a href='undocumented#SkScalar'>SkScalar</a> radius,
+ <a href='#SkPath_Direction'>Direction</a> dir = <a href='#SkPath_kCW_Direction'>kCW_Direction</a>);
+ <a href='SkPath_Reference#SkPath'>SkPath</a>& <a href='#SkPath_addArc'>addArc</a>(const <a href='SkRect_Reference#SkRect'>SkRect</a>& <a href='undocumented#Oval'>oval</a>, <a href='undocumented#SkScalar'>SkScalar</a> startAngle, <a href='undocumented#SkScalar'>SkScalar</a> sweepAngle);
+ <a href='SkPath_Reference#SkPath'>SkPath</a>& <a href='#SkPath_addRoundRect'>addRoundRect</a>(const <a href='SkRect_Reference#SkRect'>SkRect</a>& <a href='SkRect_Reference#Rect'>rect</a>, <a href='undocumented#SkScalar'>SkScalar</a> rx, <a href='undocumented#SkScalar'>SkScalar</a> ry,
+ <a href='#SkPath_Direction'>Direction</a> dir = <a href='#SkPath_kCW_Direction'>kCW_Direction</a>);
+ <a href='SkPath_Reference#SkPath'>SkPath</a>& <a href='#SkPath_addRoundRect'>addRoundRect</a>(const <a href='SkRect_Reference#SkRect'>SkRect</a>& <a href='SkRect_Reference#Rect'>rect</a>, const <a href='undocumented#SkScalar'>SkScalar</a> radii[],
+ <a href='#SkPath_Direction'>Direction</a> dir = <a href='#SkPath_kCW_Direction'>kCW_Direction</a>);
+ <a href='SkPath_Reference#SkPath'>SkPath</a>& <a href='#SkPath_addRRect'>addRRect</a>(const <a href='SkRRect_Reference#SkRRect'>SkRRect</a>& rrect, <a href='#SkPath_Direction'>Direction</a> dir = <a href='#SkPath_kCW_Direction'>kCW_Direction</a>);
+ <a href='SkPath_Reference#SkPath'>SkPath</a>& <a href='#SkPath_addRRect'>addRRect</a>(const <a href='SkRRect_Reference#SkRRect'>SkRRect</a>& rrect, <a href='#SkPath_Direction'>Direction</a> dir, unsigned start);
+ <a href='SkPath_Reference#SkPath'>SkPath</a>& <a href='#SkPath_addPoly'>addPoly</a>(const <a href='SkPoint_Reference#SkPoint'>SkPoint</a> pts[], int count, bool close);
+ <a href='SkPath_Reference#SkPath'>SkPath</a>& <a href='#SkPath_addPoly'>addPoly</a>(const std::initializer_list<<a href='SkPoint_Reference#SkPoint'>SkPoint</a>>& list, bool close);
- <a href='SkPoint_Reference#SkPoint'>enum</a> <a href='#SkPath_AddPathMode'>AddPathMode</a> {
+ enum <a href='#SkPath_AddPathMode'>AddPathMode</a> {
<a href='#SkPath_kAppend_AddPathMode'>kAppend_AddPathMode</a>,
<a href='#SkPath_kExtend_AddPathMode'>kExtend_AddPathMode</a>,
};
- <a href='SkPath_Reference#SkPath'>SkPath</a>& <a href='#SkPath_addPath'>addPath</a>(<a href='#SkPath_addPath'>const</a> <a href='SkPath_Reference#SkPath'>SkPath</a>& <a href='SkPath_Reference#SkPath'>src</a>, <a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>dx</a>, <a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>dy</a>,
- <a href='#SkPath_AddPathMode'>AddPathMode</a> <a href='#SkPath_AddPathMode'>mode</a> = <a href='#SkPath_kAppend_AddPathMode'>kAppend_AddPathMode</a>);
- <a href='SkPath_Reference#SkPath'>SkPath</a>& <a href='#SkPath_addPath'>addPath</a>(<a href='#SkPath_addPath'>const</a> <a href='SkPath_Reference#SkPath'>SkPath</a>& <a href='SkPath_Reference#SkPath'>src</a>, <a href='#SkPath_AddPathMode'>AddPathMode</a> <a href='#SkPath_AddPathMode'>mode</a> = <a href='#SkPath_kAppend_AddPathMode'>kAppend_AddPathMode</a>);
- <a href='SkPath_Reference#SkPath'>SkPath</a>& <a href='#SkPath_addPath'>addPath</a>(<a href='#SkPath_addPath'>const</a> <a href='SkPath_Reference#SkPath'>SkPath</a>& <a href='SkPath_Reference#SkPath'>src</a>, <a href='SkPath_Reference#SkPath'>const</a> <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a>& <a href='SkMatrix_Reference#Matrix'>matrix</a>,
- <a href='#SkPath_AddPathMode'>AddPathMode</a> <a href='#SkPath_AddPathMode'>mode</a> = <a href='#SkPath_kAppend_AddPathMode'>kAppend_AddPathMode</a>);
- <a href='SkPath_Reference#SkPath'>SkPath</a>& <a href='#SkPath_reverseAddPath'>reverseAddPath</a>(<a href='#SkPath_reverseAddPath'>const</a> <a href='SkPath_Reference#SkPath'>SkPath</a>& <a href='SkPath_Reference#SkPath'>src</a>);
- <a href='SkPath_Reference#SkPath'>void</a> <a href='SkPath_Reference#SkPath'>offset</a>(<a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>dx</a>, <a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>dy</a>, <a href='SkPath_Reference#SkPath'>SkPath</a>* <a href='SkPath_Reference#SkPath'>dst</a>) <a href='SkPath_Reference#SkPath'>const</a>;
- <a href='SkPath_Reference#SkPath'>void</a> <a href='SkPath_Reference#SkPath'>offset</a>(<a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>dx</a>, <a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>dy</a>);
- <a href='undocumented#SkScalar'>void</a> <a href='undocumented#SkScalar'>transform</a>(<a href='undocumented#SkScalar'>const</a> <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a>& <a href='SkMatrix_Reference#Matrix'>matrix</a>, <a href='SkPath_Reference#SkPath'>SkPath</a>* <a href='SkPath_Reference#SkPath'>dst</a>) <a href='SkPath_Reference#SkPath'>const</a>;
- <a href='SkPath_Reference#SkPath'>void</a> <a href='SkPath_Reference#SkPath'>transform</a>(<a href='SkPath_Reference#SkPath'>const</a> <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a>& <a href='SkMatrix_Reference#Matrix'>matrix</a>);
- <a href='SkMatrix_Reference#Matrix'>bool</a> <a href='#SkPath_getLastPt'>getLastPt</a>(<a href='SkPoint_Reference#SkPoint'>SkPoint</a>* <a href='SkPoint_Reference#SkPoint'>lastPt</a>) <a href='SkPoint_Reference#SkPoint'>const</a>;
- <a href='SkPoint_Reference#SkPoint'>void</a> <a href='#SkPath_setLastPt'>setLastPt</a>(<a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>x</a>, <a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>y</a>);
- <a href='undocumented#SkScalar'>void</a> <a href='#SkPath_setLastPt'>setLastPt</a>(<a href='#SkPath_setLastPt'>const</a> <a href='SkPoint_Reference#SkPoint'>SkPoint</a>& <a href='SkPoint_Reference#SkPoint'>p</a>);
+ <a href='SkPath_Reference#SkPath'>SkPath</a>& <a href='#SkPath_addPath'>addPath</a>(const <a href='SkPath_Reference#SkPath'>SkPath</a>& src, <a href='undocumented#SkScalar'>SkScalar</a> dx, <a href='undocumented#SkScalar'>SkScalar</a> dy,
+ <a href='#SkPath_AddPathMode'>AddPathMode</a> mode = <a href='#SkPath_kAppend_AddPathMode'>kAppend_AddPathMode</a>);
+ <a href='SkPath_Reference#SkPath'>SkPath</a>& <a href='#SkPath_addPath'>addPath</a>(const <a href='SkPath_Reference#SkPath'>SkPath</a>& src, <a href='#SkPath_AddPathMode'>AddPathMode</a> mode = <a href='#SkPath_kAppend_AddPathMode'>kAppend_AddPathMode</a>);
+ <a href='SkPath_Reference#SkPath'>SkPath</a>& <a href='#SkPath_addPath'>addPath</a>(const <a href='SkPath_Reference#SkPath'>SkPath</a>& src, const <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a>& <a href='SkMatrix_Reference#Matrix'>matrix</a>,
+ <a href='#SkPath_AddPathMode'>AddPathMode</a> mode = <a href='#SkPath_kAppend_AddPathMode'>kAppend_AddPathMode</a>);
+ <a href='SkPath_Reference#SkPath'>SkPath</a>& <a href='#SkPath_reverseAddPath'>reverseAddPath</a>(const <a href='SkPath_Reference#SkPath'>SkPath</a>& src);
+ void offset(<a href='undocumented#SkScalar'>SkScalar</a> dx, <a href='undocumented#SkScalar'>SkScalar</a> dy, <a href='SkPath_Reference#SkPath'>SkPath</a>* dst) const;
+ void offset(<a href='undocumented#SkScalar'>SkScalar</a> dx, <a href='undocumented#SkScalar'>SkScalar</a> dy);
+ void transform(const <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a>& <a href='SkMatrix_Reference#Matrix'>matrix</a>, <a href='SkPath_Reference#SkPath'>SkPath</a>* dst) const;
+ void transform(const <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a>& <a href='SkMatrix_Reference#Matrix'>matrix</a>);
+ bool <a href='#SkPath_getLastPt'>getLastPt</a>(<a href='SkPoint_Reference#SkPoint'>SkPoint</a>* lastPt) const;
+ void <a href='#SkPath_setLastPt'>setLastPt</a>(<a href='undocumented#SkScalar'>SkScalar</a> x, <a href='undocumented#SkScalar'>SkScalar</a> y);
+ void <a href='#SkPath_setLastPt'>setLastPt</a>(const <a href='SkPoint_Reference#SkPoint'>SkPoint</a>& p);
- <a href='SkPoint_Reference#SkPoint'>enum</a> <a href='#SkPath_SegmentMask'>SegmentMask</a> {
+ enum <a href='#SkPath_SegmentMask'>SegmentMask</a> {
<a href='#SkPath_kLine_SegmentMask'>kLine_SegmentMask</a> = 1 << 0,
<a href='#SkPath_kQuad_SegmentMask'>kQuad_SegmentMask</a> = 1 << 1,
<a href='#SkPath_kConic_SegmentMask'>kConic_SegmentMask</a> = 1 << 2,
<a href='#SkPath_kCubic_SegmentMask'>kCubic_SegmentMask</a> = 1 << 3,
};
- <a href='#SkPath_kCubic_SegmentMask'>uint32_t</a> <a href='#SkPath_getSegmentMasks'>getSegmentMasks</a>() <a href='#SkPath_getSegmentMasks'>const</a>;
+ uint32_t <a href='#SkPath_getSegmentMasks'>getSegmentMasks</a>() const;
- <a href='#SkPath_getSegmentMasks'>enum</a> <a href='#SkPath_Verb'>Verb</a> {
+ enum <a href='#SkPath_Verb'>Verb</a> {
<a href='#SkPath_kMove_Verb'>kMove_Verb</a>,
<a href='#SkPath_kLine_Verb'>kLine_Verb</a>,
<a href='#SkPath_kQuad_Verb'>kQuad_Verb</a>,
@@ -170,57 +170,57 @@
<a href='#SkPath_kDone_Verb'>kDone_Verb</a>,
};
- <a href='#SkPath_kDone_Verb'>class</a> <a href='#SkPath_Iter'>Iter</a> {
- <a href='#SkPath_Iter'>public</a>:
+ class <a href='#SkPath_Iter'>Iter</a> {
+ public:
<a href='#SkPath_Iter'>Iter</a>();
- <a href='#SkPath_Iter'>Iter</a>(<a href='#SkPath_Iter'>const</a> <a href='SkPath_Reference#SkPath'>SkPath</a>& <a href='SkPath_Reference#Path'>path</a>, <a href='SkPath_Reference#Path'>bool</a> <a href='SkPath_Reference#Path'>forceClose</a>);
- <a href='SkPath_Reference#Path'>void</a> <a href='SkPath_Reference#Path'>setPath</a>(<a href='SkPath_Reference#Path'>const</a> <a href='SkPath_Reference#SkPath'>SkPath</a>& <a href='SkPath_Reference#Path'>path</a>, <a href='SkPath_Reference#Path'>bool</a> <a href='SkPath_Reference#Path'>forceClose</a>);
- <a href='#SkPath_Verb'>Verb</a> <a href='#SkPath_Verb'>next</a>(<a href='SkPoint_Reference#SkPoint'>SkPoint</a> <a href='SkPoint_Reference#SkPoint'>pts</a>[4], <a href='SkPoint_Reference#SkPoint'>bool</a> <a href='SkPoint_Reference#SkPoint'>doConsumeDegenerates</a> = <a href='SkPoint_Reference#SkPoint'>true</a>, <a href='SkPoint_Reference#SkPoint'>bool</a> <a href='SkPoint_Reference#SkPoint'>exact</a> = <a href='SkPoint_Reference#SkPoint'>false</a>);
- <a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>conicWeight</a>() <a href='undocumented#SkScalar'>const</a>;
- <a href='undocumented#SkScalar'>bool</a> <a href='undocumented#SkScalar'>isCloseLine</a>() <a href='undocumented#SkScalar'>const</a>;
- <a href='undocumented#SkScalar'>bool</a> <a href='undocumented#SkScalar'>isClosedContour</a>() <a href='undocumented#SkScalar'>const</a>;
+ <a href='#SkPath_Iter'>Iter</a>(const <a href='SkPath_Reference#SkPath'>SkPath</a>& <a href='SkPath_Reference#Path'>path</a>, bool forceClose);
+ void setPath(const <a href='SkPath_Reference#SkPath'>SkPath</a>& <a href='SkPath_Reference#Path'>path</a>, bool forceClose);
+ <a href='#SkPath_Verb'>Verb</a> next(<a href='SkPoint_Reference#SkPoint'>SkPoint</a> pts[4], bool doConsumeDegenerates = true, bool exact = false);
+ <a href='undocumented#SkScalar'>SkScalar</a> conicWeight() const;
+ bool isCloseLine() const;
+ bool isClosedContour() const;
};
- <a href='undocumented#SkScalar'>class</a> <a href='#SkPath_RawIter'>RawIter</a> {
- <a href='#SkPath_RawIter'>public</a>:
+ class <a href='#SkPath_RawIter'>RawIter</a> {
+ public:
<a href='#SkPath_RawIter'>RawIter</a>();
- <a href='#SkPath_RawIter'>RawIter</a>(<a href='#SkPath_RawIter'>const</a> <a href='SkPath_Reference#SkPath'>SkPath</a>& <a href='SkPath_Reference#Path'>path</a>);
- <a href='SkPath_Reference#Path'>void</a> <a href='SkPath_Reference#Path'>setPath</a>(<a href='SkPath_Reference#Path'>const</a> <a href='SkPath_Reference#SkPath'>SkPath</a>& <a href='SkPath_Reference#Path'>path</a>);
- <a href='#SkPath_Verb'>Verb</a> <a href='#SkPath_Verb'>next</a>(<a href='SkPoint_Reference#SkPoint'>SkPoint</a> <a href='SkPoint_Reference#SkPoint'>pts</a>[4]);
- <a href='#SkPath_Verb'>Verb</a> <a href='#SkPath_Verb'>peek()</a> <a href='#SkPath_Verb'>const</a>;
- <a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>conicWeight</a>() <a href='undocumented#SkScalar'>const</a>;
+ <a href='#SkPath_RawIter'>RawIter</a>(const <a href='SkPath_Reference#SkPath'>SkPath</a>& <a href='SkPath_Reference#Path'>path</a>);
+ void setPath(const <a href='SkPath_Reference#SkPath'>SkPath</a>& <a href='SkPath_Reference#Path'>path</a>);
+ <a href='#SkPath_Verb'>Verb</a> next(<a href='SkPoint_Reference#SkPoint'>SkPoint</a> pts[4]);
+ <a href='#SkPath_Verb'>Verb</a> peek() const;
+ <a href='undocumented#SkScalar'>SkScalar</a> conicWeight() const;
};
- <a href='undocumented#SkScalar'>bool</a> <a href='undocumented#SkScalar'>contains</a>(<a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>x</a>, <a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>y</a>) <a href='undocumented#SkScalar'>const</a>;
- <a href='undocumented#SkScalar'>void</a> <a href='#SkPath_dump'>dump</a>(<a href='SkWStream_Reference#SkWStream'>SkWStream</a>* <a href='SkStream_Reference#Stream'>stream</a>, <a href='SkStream_Reference#Stream'>bool</a> <a href='SkStream_Reference#Stream'>forceClose</a>, <a href='SkStream_Reference#Stream'>bool</a> <a href='SkStream_Reference#Stream'>dumpAsHex</a>) <a href='SkStream_Reference#Stream'>const</a>;
- <a href='SkStream_Reference#Stream'>void</a> <a href='#SkPath_dump'>dump()</a> <a href='#SkPath_dump'>const</a>;
- <a href='#SkPath_dump'>void</a> <a href='#SkPath_dumpHex'>dumpHex</a>() <a href='#SkPath_dumpHex'>const</a>;
- <a href='#SkPath_dumpHex'>size_t</a> <a href='#SkPath_writeToMemory'>writeToMemory</a>(<a href='#SkPath_writeToMemory'>void</a>* <a href='#SkPath_writeToMemory'>buffer</a>) <a href='#SkPath_writeToMemory'>const</a>;
- <a href='undocumented#sk_sp'>sk_sp</a><<a href='undocumented#SkData'>SkData</a>> <a href='#SkPath_serialize'>serialize()</a> <a href='#SkPath_serialize'>const</a>;
- <a href='#SkPath_serialize'>size_t</a> <a href='#SkPath_readFromMemory'>readFromMemory</a>(<a href='#SkPath_readFromMemory'>const</a> <a href='#SkPath_readFromMemory'>void</a>* <a href='#SkPath_readFromMemory'>buffer</a>, <a href='#SkPath_readFromMemory'>size_t</a> <a href='#SkPath_readFromMemory'>length</a>);
- <a href='#SkPath_readFromMemory'>uint32_t</a> <a href='#SkPath_getGenerationID'>getGenerationID</a>() <a href='#SkPath_getGenerationID'>const</a>;
- <a href='#SkPath_getGenerationID'>bool</a> <a href='#SkPath_isValid'>isValid</a>() <a href='#SkPath_isValid'>const</a>;
- <a href='#SkPath_isValid'>bool</a> <a href='#SkPath_isValid'>isValid</a>() <a href='#SkPath_isValid'>const</a>;
- <a href='#SkPath_isValid'>bool</a> <a href='#SkPath_pathRefIsValid'>pathRefIsValid</a>() <a href='#SkPath_pathRefIsValid'>const</a>;
+ bool contains(<a href='undocumented#SkScalar'>SkScalar</a> x, <a href='undocumented#SkScalar'>SkScalar</a> y) const;
+ void <a href='#SkPath_dump'>dump</a>(<a href='SkWStream_Reference#SkWStream'>SkWStream</a>* <a href='SkStream_Reference#Stream'>stream</a>, bool forceClose, bool dumpAsHex) const;
+ void <a href='#SkPath_dump'>dump()</a> const;
+ void <a href='#SkPath_dumpHex'>dumpHex</a>() const;
+ size_t <a href='#SkPath_writeToMemory'>writeToMemory</a>(void* buffer) const;
+ <a href='undocumented#sk_sp'>sk_sp</a><<a href='undocumented#SkData'>SkData</a>> <a href='#SkPath_serialize'>serialize()</a> const;
+ size_t <a href='#SkPath_readFromMemory'>readFromMemory</a>(const void* buffer, size_t length);
+ uint32_t <a href='#SkPath_getGenerationID'>getGenerationID</a>() const;
+ bool <a href='#SkPath_isValid'>isValid</a>() const;
+ bool <a href='#SkPath_isValid'>isValid</a>() const;
+ bool <a href='#SkPath_pathRefIsValid'>pathRefIsValid</a>() const;
};
</pre>
-<a href='SkPath_Reference#Path'>Paths</a> <a href='SkPath_Reference#Path'>contain</a> <a href='SkPath_Reference#Path'>geometry</a>. <a href='SkPath_Reference#Path'>Paths</a> <a href='SkPath_Reference#Path'>may</a> <a href='SkPath_Reference#Path'>be</a> <a href='SkPath_Reference#Path'>empty</a>, <a href='SkPath_Reference#Path'>or</a> <a href='SkPath_Reference#Path'>contain</a> <a href='SkPath_Reference#Path'>one</a> <a href='SkPath_Reference#Path'>or</a> <a href='SkPath_Reference#Path'>more</a> <a href='SkPath_Reference#Verb'>Verbs</a> <a href='SkPath_Reference#Verb'>that</a>
-<a href='SkPath_Reference#Verb'>outline</a> <a href='SkPath_Reference#Verb'>a</a> <a href='SkPath_Reference#Verb'>figure</a>. <a href='SkPath_Reference#Path'>Path</a> <a href='SkPath_Reference#Path'>always</a> <a href='SkPath_Reference#Path'>starts</a> <a href='SkPath_Reference#Path'>with</a> <a href='SkPath_Reference#Path'>a</a> <a href='SkPath_Reference#Path'>move</a> <a href='SkPath_Reference#Path'>verb</a> <a href='SkPath_Reference#Path'>to</a> <a href='SkPath_Reference#Path'>a</a> <a href='#Cartesian_Coordinate'>Cartesian_Coordinate</a>,
-<a href='#Cartesian_Coordinate'>and</a> <a href='#Cartesian_Coordinate'>may</a> <a href='#Cartesian_Coordinate'>be</a> <a href='#Cartesian_Coordinate'>followed</a> <a href='#Cartesian_Coordinate'>by</a> <a href='#Cartesian_Coordinate'>additional</a> <a href='SkPath_Reference#Verb'>verbs</a> <a href='SkPath_Reference#Verb'>that</a> <a href='SkPath_Reference#Verb'>add</a> <a href='undocumented#Line'>lines</a> <a href='undocumented#Line'>or</a> <a href='undocumented#Curve'>curves</a>.
-<a href='undocumented#Curve'>Adding</a> <a href='undocumented#Curve'>a</a> <a href='undocumented#Curve'>close</a> <a href='undocumented#Curve'>verb</a> <a href='undocumented#Curve'>makes</a> <a href='undocumented#Curve'>the</a> <a href='undocumented#Curve'>geometry</a> <a href='undocumented#Curve'>into</a> <a href='undocumented#Curve'>a</a> <a href='undocumented#Curve'>continuous</a> <a href='undocumented#Curve'>loop</a>, <a href='undocumented#Curve'>a</a> <a href='undocumented#Curve'>closed</a> <a href='SkPath_Overview#Contour'>contour</a>.
-<a href='SkPath_Reference#Path'>Paths</a> <a href='SkPath_Reference#Path'>may</a> <a href='SkPath_Reference#Path'>contain</a> <a href='SkPath_Reference#Path'>any</a> <a href='SkPath_Reference#Path'>number</a> <a href='SkPath_Reference#Path'>of</a> <a href='SkPath_Overview#Contour'>contours</a>, <a href='SkPath_Overview#Contour'>each</a> <a href='SkPath_Overview#Contour'>beginning</a> <a href='SkPath_Overview#Contour'>with</a> <a href='SkPath_Overview#Contour'>a</a> <a href='SkPath_Overview#Contour'>move</a> <a href='SkPath_Overview#Contour'>verb</a>.
+<a href='SkPath_Reference#Path'>Paths</a> contain geometry. <a href='SkPath_Reference#Path'>Paths</a> may be empty, or contain one or more <a href='SkPath_Reference#Verb'>Verbs</a> that
+outline a figure. <a href='SkPath_Reference#Path'>Path</a> always starts with a move verb to a <a href='#Cartesian_Coordinate'>Cartesian_Coordinate</a>,
+and may be followed by additional <a href='SkPath_Reference#Verb'>verbs</a> that add <a href='undocumented#Line'>lines</a> or <a href='undocumented#Curve'>curves</a>.
+Adding a close verb makes the geometry into a continuous loop, a closed <a href='SkPath_Overview#Contour'>contour</a>.
+<a href='SkPath_Reference#Path'>Paths</a> may contain any number of <a href='SkPath_Overview#Contour'>contours</a>, each beginning with a move verb.
-<a href='SkPath_Reference#Path'>Path</a> <a href='SkPath_Overview#Contour'>contours</a> <a href='SkPath_Overview#Contour'>may</a> <a href='SkPath_Overview#Contour'>contain</a> <a href='SkPath_Overview#Contour'>only</a> <a href='SkPath_Overview#Contour'>a</a> <a href='SkPath_Overview#Contour'>move</a> <a href='SkPath_Overview#Contour'>verb</a>, <a href='SkPath_Overview#Contour'>or</a> <a href='SkPath_Overview#Contour'>may</a> <a href='SkPath_Overview#Contour'>also</a> <a href='SkPath_Overview#Contour'>contain</a> <a href='undocumented#Line'>lines</a>,
-<a href='#Path_Quad'>Quadratic_Beziers</a>, <a href='SkPath_Reference#Conic'>Conics</a>, <a href='SkPath_Reference#Conic'>and</a> <a href='#Path_Cubic'>Cubic_Beziers</a>. <a href='SkPath_Reference#Path'>Path</a> <a href='SkPath_Overview#Contour'>contours</a> <a href='SkPath_Overview#Contour'>may</a> <a href='SkPath_Overview#Contour'>be</a> <a href='SkPath_Overview#Contour'>open</a> <a href='SkPath_Overview#Contour'>or</a>
-<a href='SkPath_Overview#Contour'>closed</a>.
+<a href='SkPath_Reference#Path'>Path</a> <a href='SkPath_Overview#Contour'>contours</a> may contain only a move verb, or may also contain <a href='undocumented#Line'>lines</a>,
+<a href='#Path_Quad'>Quadratic_Beziers</a>, <a href='SkPath_Reference#Conic'>Conics</a>, and <a href='#Path_Cubic'>Cubic_Beziers</a>. <a href='SkPath_Reference#Path'>Path</a> <a href='SkPath_Overview#Contour'>contours</a> may be open or
+closed.
-<a href='SkPath_Overview#Contour'>When</a> <a href='SkPath_Overview#Contour'>used</a> <a href='SkPath_Overview#Contour'>to</a> <a href='SkPath_Overview#Contour'>draw</a> <a href='SkPath_Overview#Contour'>a</a> <a href='SkPath_Overview#Contour'>filled</a> <a href='SkPath_Overview#Contour'>area</a>, <a href='SkPath_Reference#Path'>Path</a> <a href='SkPath_Reference#Path'>describes</a> <a href='SkPath_Reference#Path'>whether</a> <a href='SkPath_Reference#Path'>the</a> <a href='SkPath_Reference#Path'>fill</a> <a href='SkPath_Reference#Path'>is</a> <a href='SkPath_Reference#Path'>inside</a> <a href='SkPath_Reference#Path'>or</a>
-<a href='SkPath_Reference#Path'>outside</a> <a href='SkPath_Reference#Path'>the</a> <a href='SkPath_Reference#Path'>geometry</a>. <a href='SkPath_Reference#Path'>Path</a> <a href='SkPath_Reference#Path'>also</a> <a href='SkPath_Reference#Path'>describes</a> <a href='SkPath_Reference#Path'>the</a> <a href='SkPath_Reference#Path'>winding</a> <a href='SkPath_Reference#Path'>rule</a> <a href='SkPath_Reference#Path'>used</a> <a href='SkPath_Reference#Path'>to</a> <a href='SkPath_Reference#Path'>fill</a>
-<a href='SkPath_Reference#Path'>overlapping</a> <a href='SkPath_Overview#Contour'>contours</a>.
+When used to draw a filled area, <a href='SkPath_Reference#Path'>Path</a> describes whether the fill is inside or
+outside the geometry. <a href='SkPath_Reference#Path'>Path</a> also describes the winding rule used to fill
+overlapping <a href='SkPath_Overview#Contour'>contours</a>.
-<a href='SkPath_Overview#Contour'>Internally</a>, <a href='SkPath_Reference#Path'>Path</a> <a href='SkPath_Reference#Path'>lazily</a> <a href='SkPath_Reference#Path'>computes</a> <a href='SkPath_Reference#Path'>metrics</a> <a href='SkPath_Reference#Path'>likes</a> <a href='SkPath_Reference#Path'>bounds</a> <a href='SkPath_Reference#Path'>and</a> <a href='SkPath_Reference#Path'>convexity</a>. <a href='SkPath_Reference#Path'>Call</a>
-<a href='SkPath_Reference#SkPath'>SkPath</a>::<a href='#SkPath_updateBoundsCache'>updateBoundsCache</a> <a href='#SkPath_updateBoundsCache'>to</a> <a href='#SkPath_updateBoundsCache'>make</a> <a href='SkPath_Reference#Path'>Path</a> <a href='SkPath_Reference#Path'>thread</a> <a href='SkPath_Reference#Path'>safe</a>.
+Internally, <a href='SkPath_Reference#Path'>Path</a> lazily computes metrics likes bounds and convexity. Call
+<a href='SkPath_Reference#SkPath'>SkPath</a>::<a href='#SkPath_updateBoundsCache'>updateBoundsCache</a> to make <a href='SkPath_Reference#Path'>Path</a> thread safe.
<a name='Verb'></a>
@@ -240,8 +240,8 @@
};
</pre>
-<a href='#SkPath_Verb'>Verb</a> <a href='#SkPath_Verb'>instructs</a> <a href='SkPath_Reference#Path'>Path</a> <a href='SkPath_Reference#Path'>how</a> <a href='SkPath_Reference#Path'>to</a> <a href='SkPath_Reference#Path'>interpret</a> <a href='SkPath_Reference#Path'>one</a> <a href='SkPath_Reference#Path'>or</a> <a href='SkPath_Reference#Path'>more</a> <a href='SkPoint_Reference#Point'>Point</a> <a href='SkPoint_Reference#Point'>and</a> <a href='SkPoint_Reference#Point'>optional</a> <a href='#Path_Conic_Weight'>Conic_Weight</a>;
-<a href='#Path_Conic_Weight'>manage</a> <a href='SkPath_Overview#Contour'>Contour</a>, <a href='SkPath_Overview#Contour'>and</a> <a href='SkPath_Overview#Contour'>terminate</a> <a href='SkPath_Reference#Path'>Path</a>.
+<a href='#SkPath_Verb'>Verb</a> instructs <a href='SkPath_Reference#Path'>Path</a> how to interpret one or more <a href='SkPoint_Reference#Point'>Point</a> and optional <a href='#Path_Conic_Weight'>Conic_Weight</a>;
+manage <a href='SkPath_Overview#Contour'>Contour</a>, and terminate <a href='SkPath_Reference#Path'>Path</a>.
### Constants
@@ -253,71 +253,71 @@
<td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a name='SkPath_kMove_Verb'><code>SkPath::kMove_Verb</code></a></td>
<td style='text-align: center; border: 2px solid #dddddd; padding: 8px; '>0</td>
<td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>
-Consecutive <a href='#SkPath_kMove_Verb'>kMove_Verb</a> <a href='#SkPath_kMove_Verb'>are</a> <a href='#SkPath_kMove_Verb'>preserved</a> <a href='#SkPath_kMove_Verb'>but</a> <a href='#SkPath_kMove_Verb'>all</a> <a href='#SkPath_kMove_Verb'>but</a> <a href='#SkPath_kMove_Verb'>the</a> <a href='#SkPath_kMove_Verb'>last</a> <a href='#SkPath_kMove_Verb'>kMove_Verb</a> <a href='#SkPath_kMove_Verb'>is</a>
-<a href='#SkPath_kMove_Verb'>ignored</a>. <a href='#SkPath_kMove_Verb'>kMove_Verb</a> <a href='#SkPath_kMove_Verb'>after</a> <a href='#SkPath_kMove_Verb'>other</a> <a href='SkPath_Reference#Verb'>Verbs</a> <a href='SkPath_Reference#Verb'>implicitly</a> <a href='SkPath_Reference#Verb'>closes</a> <a href='SkPath_Reference#Verb'>the</a> <a href='SkPath_Reference#Verb'>previous</a> <a href='SkPath_Overview#Contour'>Contour</a>
-<a href='SkPath_Overview#Contour'>if</a> <a href='SkPaint_Reference#SkPaint'>SkPaint</a>::<a href='#SkPaint_kFill_Style'>kFill_Style</a> <a href='#SkPaint_kFill_Style'>is</a> <a href='#SkPaint_kFill_Style'>set</a> <a href='#SkPaint_kFill_Style'>when</a> <a href='#SkPaint_kFill_Style'>drawn</a>; <a href='#SkPaint_kFill_Style'>otherwise</a>, <a href='#SkPaint_kFill_Style'>stroke</a> <a href='#SkPaint_kFill_Style'>is</a> <a href='#SkPaint_kFill_Style'>drawn</a> <a href='#SkPaint_kFill_Style'>open</a>.
-<a href='#SkPath_kMove_Verb'>kMove_Verb</a> <a href='#SkPath_kMove_Verb'>as</a> <a href='#SkPath_kMove_Verb'>the</a> <a href='#SkPath_kMove_Verb'>last</a> <a href='#SkPath_Verb'>Verb</a> <a href='#SkPath_Verb'>is</a> <a href='#SkPath_Verb'>preserved</a> <a href='#SkPath_Verb'>but</a> <a href='#SkPath_Verb'>ignored</a>.
+Consecutive <a href='#SkPath_kMove_Verb'>kMove_Verb</a> are preserved but all but the last <a href='#SkPath_kMove_Verb'>kMove_Verb</a> is
+ignored. <a href='#SkPath_kMove_Verb'>kMove_Verb</a> after other <a href='SkPath_Reference#Verb'>Verbs</a> implicitly closes the previous <a href='SkPath_Overview#Contour'>Contour</a>
+if <a href='SkPaint_Reference#SkPaint'>SkPaint</a>::<a href='#SkPaint_kFill_Style'>kFill_Style</a> is set when drawn; otherwise, stroke is drawn open.
+<a href='#SkPath_kMove_Verb'>kMove_Verb</a> as the last <a href='#SkPath_Verb'>Verb</a> is preserved but ignored.
</td>
</tr>
<tr>
<td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a name='SkPath_kLine_Verb'><code>SkPath::kLine_Verb</code></a></td>
<td style='text-align: center; border: 2px solid #dddddd; padding: 8px; '>1</td>
<td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>
-<a href='undocumented#Line'>Line</a> <a href='undocumented#Line'>is</a> <a href='undocumented#Line'>a</a> <a href='undocumented#Line'>straight</a> <a href='undocumented#Line'>segment</a> <a href='undocumented#Line'>from</a> <a href='SkPoint_Reference#Point'>Point</a> <a href='SkPoint_Reference#Point'>to</a> <a href='SkPoint_Reference#Point'>Point</a>. <a href='SkPoint_Reference#Point'>Consecutive</a> <a href='#SkPath_kLine_Verb'>kLine_Verb</a>
-<a href='#SkPath_kLine_Verb'>extend</a> <a href='SkPath_Overview#Contour'>Contour</a>. <a href='#SkPath_kLine_Verb'>kLine_Verb</a> <a href='#SkPath_kLine_Verb'>at</a> <a href='#SkPath_kLine_Verb'>same</a> <a href='#SkPath_kLine_Verb'>position</a> <a href='#SkPath_kLine_Verb'>as</a> <a href='#SkPath_kLine_Verb'>prior</a> <a href='#SkPath_kMove_Verb'>kMove_Verb</a> <a href='#SkPath_kMove_Verb'>is</a>
-<a href='#SkPath_kMove_Verb'>preserved</a>, <a href='#SkPath_kMove_Verb'>and</a> <a href='#SkPath_kMove_Verb'>draws</a> <a href='SkPoint_Reference#Point'>Point</a> <a href='SkPoint_Reference#Point'>if</a> <a href='SkPaint_Reference#SkPaint'>SkPaint</a>::<a href='#SkPaint_kStroke_Style'>kStroke_Style</a> <a href='#SkPaint_kStroke_Style'>is</a> <a href='#SkPaint_kStroke_Style'>set</a>, <a href='#SkPaint_kStroke_Style'>and</a>
-<a href='SkPaint_Reference#SkPaint'>SkPaint</a>::<a href='#SkPaint_Cap'>Cap</a> <a href='#SkPaint_Cap'>is</a> <a href='SkPaint_Reference#SkPaint'>SkPaint</a>::<a href='#SkPaint_kSquare_Cap'>kSquare_Cap</a> <a href='#SkPaint_kSquare_Cap'>or</a> <a href='SkPaint_Reference#SkPaint'>SkPaint</a>::<a href='#SkPaint_kRound_Cap'>kRound_Cap</a>. <a href='#SkPath_kLine_Verb'>kLine_Verb</a>
-<a href='#SkPath_kLine_Verb'>at</a> <a href='#SkPath_kLine_Verb'>same</a> <a href='#SkPath_kLine_Verb'>position</a> <a href='#SkPath_kLine_Verb'>as</a> <a href='#SkPath_kLine_Verb'>prior</a> <a href='undocumented#Line'>line</a> <a href='undocumented#Line'>or</a> <a href='undocumented#Curve'>curve</a> <a href='#SkPath_Verb'>Verb</a> <a href='#SkPath_Verb'>is</a> <a href='#SkPath_Verb'>preserved</a> <a href='#SkPath_Verb'>but</a> <a href='#SkPath_Verb'>is</a> <a href='#SkPath_Verb'>ignored</a>.
+<a href='undocumented#Line'>Line</a> is a straight segment from <a href='SkPoint_Reference#Point'>Point</a> to <a href='SkPoint_Reference#Point'>Point</a>. Consecutive <a href='#SkPath_kLine_Verb'>kLine_Verb</a>
+extend <a href='SkPath_Overview#Contour'>Contour</a>. <a href='#SkPath_kLine_Verb'>kLine_Verb</a> at same position as prior <a href='#SkPath_kMove_Verb'>kMove_Verb</a> is
+preserved, and draws <a href='SkPoint_Reference#Point'>Point</a> if <a href='SkPaint_Reference#SkPaint'>SkPaint</a>::<a href='#SkPaint_kStroke_Style'>kStroke_Style</a> is set, and
+<a href='SkPaint_Reference#SkPaint'>SkPaint</a>::<a href='#SkPaint_Cap'>Cap</a> is <a href='SkPaint_Reference#SkPaint'>SkPaint</a>::<a href='#SkPaint_kSquare_Cap'>kSquare_Cap</a> or <a href='SkPaint_Reference#SkPaint'>SkPaint</a>::<a href='#SkPaint_kRound_Cap'>kRound_Cap</a>. <a href='#SkPath_kLine_Verb'>kLine_Verb</a>
+at same position as prior <a href='undocumented#Line'>line</a> or <a href='undocumented#Curve'>curve</a> <a href='#SkPath_Verb'>Verb</a> is preserved but is ignored.
</td>
</tr>
<tr style='background-color: #f0f0f0; '>
<td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a name='SkPath_kQuad_Verb'><code>SkPath::kQuad_Verb</code></a></td>
<td style='text-align: center; border: 2px solid #dddddd; padding: 8px; '>2</td>
<td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>
-Adds <a href='SkPath_Reference#Quad'>Quad</a> <a href='SkPath_Reference#Quad'>from</a> <a href='#Path_Last_Point'>Last_Point</a>, <a href='#Path_Last_Point'>using</a> <a href='#Path_Last_Point'>control</a> <a href='SkPoint_Reference#Point'>Point</a>, <a href='SkPoint_Reference#Point'>and</a> <a href='SkPoint_Reference#Point'>end</a> <a href='SkPoint_Reference#Point'>Point</a>.
-<a href='SkPath_Reference#Quad'>Quad</a> <a href='SkPath_Reference#Quad'>is</a> <a href='SkPath_Reference#Quad'>a</a> <a href='SkPath_Reference#Quad'>parabolic</a> <a href='SkPath_Reference#Quad'>section</a> <a href='SkPath_Reference#Quad'>within</a> <a href='SkPath_Reference#Quad'>tangents</a> <a href='SkPath_Reference#Quad'>from</a> <a href='#Path_Last_Point'>Last_Point</a> <a href='#Path_Last_Point'>to</a> <a href='#Path_Last_Point'>control</a> <a href='SkPoint_Reference#Point'>Point</a>,
-<a href='SkPoint_Reference#Point'>and</a> <a href='SkPoint_Reference#Point'>control</a> <a href='SkPoint_Reference#Point'>Point</a> <a href='SkPoint_Reference#Point'>to</a> <a href='SkPoint_Reference#Point'>end</a> <a href='SkPoint_Reference#Point'>Point</a>.
+Adds <a href='SkPath_Reference#Quad'>Quad</a> from <a href='#Path_Last_Point'>Last_Point</a>, using control <a href='SkPoint_Reference#Point'>Point</a>, and end <a href='SkPoint_Reference#Point'>Point</a>.
+<a href='SkPath_Reference#Quad'>Quad</a> is a parabolic section within tangents from <a href='#Path_Last_Point'>Last_Point</a> to control <a href='SkPoint_Reference#Point'>Point</a>,
+and control <a href='SkPoint_Reference#Point'>Point</a> to end <a href='SkPoint_Reference#Point'>Point</a>.
</td>
</tr>
<tr>
<td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a name='SkPath_kConic_Verb'><code>SkPath::kConic_Verb</code></a></td>
<td style='text-align: center; border: 2px solid #dddddd; padding: 8px; '>3</td>
<td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>
-Adds <a href='SkPath_Reference#Conic'>Conic</a> <a href='SkPath_Reference#Conic'>from</a> <a href='#Path_Last_Point'>Last_Point</a>, <a href='#Path_Last_Point'>using</a> <a href='#Path_Last_Point'>control</a> <a href='SkPoint_Reference#Point'>Point</a>, <a href='SkPoint_Reference#Point'>end</a> <a href='SkPoint_Reference#Point'>Point</a>, <a href='SkPoint_Reference#Point'>and</a> <a href='#Path_Conic_Weight'>Conic_Weight</a>.
-<a href='SkPath_Reference#Conic'>Conic</a> <a href='SkPath_Reference#Conic'>is</a> <a href='SkPath_Reference#Conic'>a</a> <a href='SkPath_Reference#Conic'>elliptical</a>, <a href='SkPath_Reference#Conic'>parabolic</a>, <a href='SkPath_Reference#Conic'>or</a> <a href='SkPath_Reference#Conic'>hyperbolic</a> <a href='SkPath_Reference#Conic'>section</a> <a href='SkPath_Reference#Conic'>within</a> <a href='SkPath_Reference#Conic'>tangents</a>
-<a href='SkPath_Reference#Conic'>from</a> <a href='#Path_Last_Point'>Last_Point</a> <a href='#Path_Last_Point'>to</a> <a href='#Path_Last_Point'>control</a> <a href='SkPoint_Reference#Point'>Point</a>, <a href='SkPoint_Reference#Point'>and</a> <a href='SkPoint_Reference#Point'>control</a> <a href='SkPoint_Reference#Point'>Point</a> <a href='SkPoint_Reference#Point'>to</a> <a href='SkPoint_Reference#Point'>end</a> <a href='SkPoint_Reference#Point'>Point</a>, <a href='SkPoint_Reference#Point'>constrained</a>
-<a href='SkPoint_Reference#Point'>by</a> <a href='#Path_Conic_Weight'>Conic_Weight</a>. <a href='#Path_Conic_Weight'>Conic_Weight</a> <a href='#Path_Conic_Weight'>less</a> <a href='#Path_Conic_Weight'>than</a> <a href='#Path_Conic_Weight'>one</a> <a href='#Path_Conic_Weight'>is</a> <a href='#Path_Conic_Weight'>elliptical</a>; <a href='#Path_Conic_Weight'>equal</a> <a href='#Path_Conic_Weight'>to</a> <a href='#Path_Conic_Weight'>one</a> <a href='#Path_Conic_Weight'>is</a>
-<a href='#Path_Conic_Weight'>parabolic</a> (<a href='#Path_Conic_Weight'>and</a> <a href='#Path_Conic_Weight'>identical</a> <a href='#Path_Conic_Weight'>to</a> <a href='SkPath_Reference#Quad'>Quad</a>); <a href='SkPath_Reference#Quad'>greater</a> <a href='SkPath_Reference#Quad'>than</a> <a href='SkPath_Reference#Quad'>one</a> <a href='SkPath_Reference#Quad'>hyperbolic</a>.
+Adds <a href='SkPath_Reference#Conic'>Conic</a> from <a href='#Path_Last_Point'>Last_Point</a>, using control <a href='SkPoint_Reference#Point'>Point</a>, end <a href='SkPoint_Reference#Point'>Point</a>, and <a href='#Path_Conic_Weight'>Conic_Weight</a>.
+<a href='SkPath_Reference#Conic'>Conic</a> is a elliptical, parabolic, or hyperbolic section within tangents
+from <a href='#Path_Last_Point'>Last_Point</a> to control <a href='SkPoint_Reference#Point'>Point</a>, and control <a href='SkPoint_Reference#Point'>Point</a> to end <a href='SkPoint_Reference#Point'>Point</a>, constrained
+by <a href='#Path_Conic_Weight'>Conic_Weight</a>. <a href='#Path_Conic_Weight'>Conic_Weight</a> less than one is elliptical; equal to one is
+parabolic (and identical to <a href='SkPath_Reference#Quad'>Quad</a>); greater than one hyperbolic.
</td>
</tr>
<tr style='background-color: #f0f0f0; '>
<td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a name='SkPath_kCubic_Verb'><code>SkPath::kCubic_Verb</code></a></td>
<td style='text-align: center; border: 2px solid #dddddd; padding: 8px; '>4</td>
<td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>
-Adds <a href='SkPath_Reference#Cubic'>Cubic</a> <a href='SkPath_Reference#Cubic'>from</a> <a href='#Path_Last_Point'>Last_Point</a>, <a href='#Path_Last_Point'>using</a> <a href='#Path_Last_Point'>two</a> <a href='#Path_Last_Point'>control</a> <a href='SkPoint_Reference#Point'>Points</a>, <a href='SkPoint_Reference#Point'>and</a> <a href='SkPoint_Reference#Point'>end</a> <a href='SkPoint_Reference#Point'>Point</a>.
-<a href='SkPath_Reference#Cubic'>Cubic</a> <a href='SkPath_Reference#Cubic'>is</a> <a href='SkPath_Reference#Cubic'>a</a> <a href='SkPath_Reference#Cubic'>third-order</a> <a href='#Bezier_Curve'>Bezier_Curve</a> <a href='#Bezier_Curve'>section</a> <a href='#Bezier_Curve'>within</a> <a href='#Bezier_Curve'>tangents</a> <a href='#Bezier_Curve'>from</a> <a href='#Path_Last_Point'>Last_Point</a>
-<a href='#Path_Last_Point'>to</a> <a href='#Path_Last_Point'>first</a> <a href='#Path_Last_Point'>control</a> <a href='SkPoint_Reference#Point'>Point</a>, <a href='SkPoint_Reference#Point'>and</a> <a href='SkPoint_Reference#Point'>from</a> <a href='SkPoint_Reference#Point'>second</a> <a href='SkPoint_Reference#Point'>control</a> <a href='SkPoint_Reference#Point'>Point</a> <a href='SkPoint_Reference#Point'>to</a> <a href='SkPoint_Reference#Point'>end</a> <a href='SkPoint_Reference#Point'>Point</a>.
+Adds <a href='SkPath_Reference#Cubic'>Cubic</a> from <a href='#Path_Last_Point'>Last_Point</a>, using two control <a href='SkPoint_Reference#Point'>Points</a>, and end <a href='SkPoint_Reference#Point'>Point</a>.
+<a href='SkPath_Reference#Cubic'>Cubic</a> is a third-order <a href='#Bezier_Curve'>Bezier_Curve</a> section within tangents from <a href='#Path_Last_Point'>Last_Point</a>
+to first control <a href='SkPoint_Reference#Point'>Point</a>, and from second control <a href='SkPoint_Reference#Point'>Point</a> to end <a href='SkPoint_Reference#Point'>Point</a>.
</td>
</tr>
<tr>
<td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a name='SkPath_kClose_Verb'><code>SkPath::kClose_Verb</code></a></td>
<td style='text-align: center; border: 2px solid #dddddd; padding: 8px; '>5</td>
<td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>
-Closes <a href='SkPath_Overview#Contour'>Contour</a>, <a href='SkPath_Overview#Contour'>connecting</a> <a href='#Path_Last_Point'>Last_Point</a> <a href='#Path_Last_Point'>to</a> <a href='#SkPath_kMove_Verb'>kMove_Verb</a> <a href='SkPoint_Reference#Point'>Point</a>. <a href='SkPoint_Reference#Point'>Consecutive</a>
-<a href='#SkPath_kClose_Verb'>kClose_Verb</a> <a href='#SkPath_kClose_Verb'>are</a> <a href='#SkPath_kClose_Verb'>preserved</a> <a href='#SkPath_kClose_Verb'>but</a> <a href='#SkPath_kClose_Verb'>only</a> <a href='#SkPath_kClose_Verb'>first</a> <a href='#SkPath_kClose_Verb'>has</a> <a href='#SkPath_kClose_Verb'>an</a> <a href='#SkPath_kClose_Verb'>effect</a>. <a href='#SkPath_kClose_Verb'>kClose_Verb</a> <a href='#SkPath_kClose_Verb'>after</a>
-<a href='#SkPath_kMove_Verb'>kMove_Verb</a> <a href='#SkPath_kMove_Verb'>has</a> <a href='#SkPath_kMove_Verb'>no</a> <a href='#SkPath_kMove_Verb'>effect</a>.
+Closes <a href='SkPath_Overview#Contour'>Contour</a>, connecting <a href='#Path_Last_Point'>Last_Point</a> to <a href='#SkPath_kMove_Verb'>kMove_Verb</a> <a href='SkPoint_Reference#Point'>Point</a>. Consecutive
+<a href='#SkPath_kClose_Verb'>kClose_Verb</a> are preserved but only first has an effect. <a href='#SkPath_kClose_Verb'>kClose_Verb</a> after
+<a href='#SkPath_kMove_Verb'>kMove_Verb</a> has no effect.
</td>
</tr>
<tr style='background-color: #f0f0f0; '>
<td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a name='SkPath_kDone_Verb'><code>SkPath::kDone_Verb</code></a></td>
<td style='text-align: center; border: 2px solid #dddddd; padding: 8px; '>6</td>
<td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>
-Not in <a href='#Path_Verb_Array'>Verb_Array</a>, <a href='#Path_Verb_Array'>but</a> <a href='#Path_Verb_Array'>returned</a> <a href='#Path_Verb_Array'>by</a> <a href='SkPath_Reference#Path'>Path</a> <a href='SkPath_Reference#Path'>iterator</a>.
+Not in <a href='#Path_Verb_Array'>Verb_Array</a>, but returned by <a href='SkPath_Reference#Path'>Path</a> iterator.
</td>
</tr>
-Each <a href='#SkPath_Verb'>Verb</a> <a href='#SkPath_Verb'>has</a> <a href='#SkPath_Verb'>zero</a> <a href='#SkPath_Verb'>or</a> <a href='#SkPath_Verb'>more</a> <a href='SkPoint_Reference#Point'>Points</a> <a href='SkPoint_Reference#Point'>stored</a> <a href='SkPoint_Reference#Point'>in</a> <a href='SkPath_Reference#Path'>Path</a>.
-<a href='SkPath_Reference#Path'>Path</a> <a href='SkPath_Reference#Path'>iterator</a> <a href='SkPath_Reference#Path'>returns</a> <a href='SkPath_Reference#Path'>complete</a> <a href='undocumented#Curve'>curve</a> <a href='undocumented#Curve'>descriptions</a>, <a href='undocumented#Curve'>duplicating</a> <a href='undocumented#Curve'>shared</a> <a href='SkPoint_Reference#Point'>Points</a>
-<a href='SkPoint_Reference#Point'>for</a> <a href='SkPoint_Reference#Point'>consecutive</a> <a href='SkPoint_Reference#Point'>entries</a>.
+Each <a href='#SkPath_Verb'>Verb</a> has zero or more <a href='SkPoint_Reference#Point'>Points</a> stored in <a href='SkPath_Reference#Path'>Path</a>.
+<a href='SkPath_Reference#Path'>Path</a> iterator returns complete <a href='undocumented#Curve'>curve</a> descriptions, duplicating shared <a href='SkPoint_Reference#Point'>Points</a>
+for consecutive entries.
</table>
@@ -351,23 +351,23 @@
---
<pre style="padding: 1em 1em 1em 1em;width: 62.5em; background-color: #f0f0f0">
- enum <a href='#SkPath_Direction'>Direction</a> : <a href='#SkPath_Direction'>int</a> {
+ enum <a href='#SkPath_Direction'>Direction</a> : int {
<a href='#SkPath_kCW_Direction'>kCW_Direction</a>,
<a href='#SkPath_kCCW_Direction'>kCCW_Direction</a>,
};
</pre>
-<a href='#SkPath_Direction'>Direction</a> <a href='#SkPath_Direction'>describes</a> <a href='#SkPath_Direction'>whether</a> <a href='SkPath_Overview#Contour'>Contour</a> <a href='SkPath_Overview#Contour'>is</a> <a href='SkPath_Overview#Contour'>clockwise</a> <a href='SkPath_Overview#Contour'>or</a> <a href='SkPath_Overview#Contour'>counterclockwise</a>.
-<a href='SkPath_Overview#Contour'>When</a> <a href='SkPath_Reference#Path'>Path</a> <a href='SkPath_Reference#Path'>contains</a> <a href='SkPath_Reference#Path'>multiple</a> <a href='SkPath_Reference#Path'>overlapping</a> <a href='SkPath_Overview#Contour'>Contours</a>, <a href='#SkPath_Direction'>Direction</a> <a href='#SkPath_Direction'>together</a> <a href='#SkPath_Direction'>with</a>
-<a href='#Path_Fill_Type'>Fill_Type</a> <a href='#Path_Fill_Type'>determines</a> <a href='#Path_Fill_Type'>whether</a> <a href='#Path_Fill_Type'>overlaps</a> <a href='#Path_Fill_Type'>are</a> <a href='#Path_Fill_Type'>filled</a> <a href='#Path_Fill_Type'>or</a> <a href='#Path_Fill_Type'>form</a> <a href='#Path_Fill_Type'>holes</a>.
+<a href='#SkPath_Direction'>Direction</a> describes whether <a href='SkPath_Overview#Contour'>Contour</a> is clockwise or counterclockwise.
+When <a href='SkPath_Reference#Path'>Path</a> contains multiple overlapping <a href='SkPath_Overview#Contour'>Contours</a>, <a href='#SkPath_Direction'>Direction</a> together with
+<a href='#Path_Fill_Type'>Fill_Type</a> determines whether overlaps are filled or form holes.
-<a href='#SkPath_Direction'>Direction</a> <a href='#SkPath_Direction'>also</a> <a href='#SkPath_Direction'>determines</a> <a href='#SkPath_Direction'>how</a> <a href='SkPath_Overview#Contour'>Contour</a> <a href='SkPath_Overview#Contour'>is</a> <a href='SkPath_Overview#Contour'>measured</a>. <a href='SkPath_Overview#Contour'>For</a> <a href='SkPath_Overview#Contour'>instance</a>, <a href='SkPath_Overview#Contour'>dashing</a>
-<a href='SkPath_Overview#Contour'>measures</a> <a href='SkPath_Overview#Contour'>along</a> <a href='SkPath_Reference#Path'>Path</a> <a href='SkPath_Reference#Path'>to</a> <a href='SkPath_Reference#Path'>determine</a> <a href='SkPath_Reference#Path'>where</a> <a href='SkPath_Reference#Path'>to</a> <a href='SkPath_Reference#Path'>start</a> <a href='SkPath_Reference#Path'>and</a> <a href='SkPath_Reference#Path'>stop</a> <a href='SkPath_Reference#Path'>stroke</a>; <a href='#SkPath_Direction'>Direction</a>
-<a href='#SkPath_Direction'>will</a> <a href='#SkPath_Direction'>change</a> <a href='#SkPath_Direction'>dashed</a> <a href='#SkPath_Direction'>results</a> <a href='#SkPath_Direction'>as</a> <a href='#SkPath_Direction'>it</a> <a href='#SkPath_Direction'>steps</a> <a href='#SkPath_Direction'>clockwise</a> <a href='#SkPath_Direction'>or</a> <a href='#SkPath_Direction'>counterclockwise</a>.
+<a href='#SkPath_Direction'>Direction</a> also determines how <a href='SkPath_Overview#Contour'>Contour</a> is measured. For instance, dashing
+measures along <a href='SkPath_Reference#Path'>Path</a> to determine where to start and stop stroke; <a href='#SkPath_Direction'>Direction</a>
+will change dashed results as it steps clockwise or counterclockwise.
-<a href='#SkPath_Direction'>Closed</a> <a href='SkPath_Overview#Contour'>Contours</a> <a href='SkPath_Overview#Contour'>like</a> <a href='SkRect_Reference#Rect'>Rect</a>, <a href='#RRect'>Round_Rect</a>, <a href='undocumented#Circle'>Circle</a>, <a href='undocumented#Circle'>and</a> <a href='undocumented#Oval'>Oval</a> <a href='undocumented#Oval'>added</a> <a href='undocumented#Oval'>with</a>
-<a href='#SkPath_kCW_Direction'>kCW_Direction</a> <a href='#SkPath_kCW_Direction'>travel</a> <a href='#SkPath_kCW_Direction'>clockwise</a>; <a href='#SkPath_kCW_Direction'>the</a> <a href='#SkPath_kCW_Direction'>same</a> <a href='#SkPath_kCW_Direction'>added</a> <a href='#SkPath_kCW_Direction'>with</a> <a href='#SkPath_kCCW_Direction'>kCCW_Direction</a>
-<a href='#SkPath_kCCW_Direction'>travel</a> <a href='#SkPath_kCCW_Direction'>counterclockwise</a>.
+Closed <a href='SkPath_Overview#Contour'>Contours</a> like <a href='SkRect_Reference#Rect'>Rect</a>, <a href='#RRect'>Round_Rect</a>, <a href='undocumented#Circle'>Circle</a>, and <a href='undocumented#Oval'>Oval</a> added with
+<a href='#SkPath_kCW_Direction'>kCW_Direction</a> travel clockwise; the same added with <a href='#SkPath_kCCW_Direction'>kCCW_Direction</a>
+travel counterclockwise.
### Constants
@@ -405,8 +405,8 @@
<a href='#SkPath_empty_constructor'>SkPath()</a>
</pre>
-Constructs an empty <a href='SkPath_Reference#SkPath'>SkPath</a>. <a href='SkPath_Reference#SkPath'>By</a> <a href='SkPath_Reference#SkPath'>default</a>, <a href='SkPath_Reference#SkPath'>SkPath</a> <a href='SkPath_Reference#SkPath'>has</a> <a href='SkPath_Reference#SkPath'>no</a> <a href='SkPath_Reference#Verb'>verbs</a>, <a href='SkPath_Reference#Verb'>no</a> <a href='SkPoint_Reference#SkPoint'>SkPoint</a>, <a href='SkPoint_Reference#SkPoint'>and</a> <a href='SkPoint_Reference#SkPoint'>no</a> <a href='SkPath_Reference#Conic_Weight'>weights</a>.
-<a href='SkPath_Reference#SkPath'>SkPath</a>::<a href='#SkPath_FillType'>FillType</a> <a href='#SkPath_FillType'>is</a> <a href='#SkPath_FillType'>set</a> <a href='#SkPath_FillType'>to</a> <a href='#SkPath_kWinding_FillType'>kWinding_FillType</a>.
+Constructs an empty <a href='SkPath_Reference#SkPath'>SkPath</a>. By default, <a href='SkPath_Reference#SkPath'>SkPath</a> has no <a href='SkPath_Reference#Verb'>verbs</a>, no <a href='SkPoint_Reference#SkPoint'>SkPoint</a>, and no <a href='SkPath_Reference#Conic_Weight'>weights</a>.
+<a href='SkPath_Reference#SkPath'>SkPath</a>::<a href='#SkPath_FillType'>FillType</a> is set to <a href='#SkPath_kWinding_FillType'>kWinding_FillType</a>.
### Return Value
@@ -433,22 +433,22 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-<a href='SkPath_Reference#SkPath'>SkPath</a>(<a href='SkPath_Reference#SkPath'>const</a> <a href='SkPath_Reference#SkPath'>SkPath</a>& <a href='SkPath_Reference#Path'>path</a>)
+<a href='SkPath_Reference#SkPath'>SkPath</a>(const <a href='SkPath_Reference#SkPath'>SkPath</a>& <a href='SkPath_Reference#Path'>path</a>)
</pre>
Constructs a copy of an existing <a href='#SkPath_copy_const_SkPath_path'>path</a>.
-Copy constructor makes two <a href='SkPath_Reference#Path'>paths</a> <a href='SkPath_Reference#Path'>identical</a> <a href='SkPath_Reference#Path'>by</a> <a href='SkPath_Reference#Path'>value</a>. <a href='SkPath_Reference#Path'>Internally</a>, <a href='#SkPath_copy_const_SkPath_path'>path</a> <a href='#SkPath_copy_const_SkPath_path'>and</a>
+Copy constructor makes two <a href='SkPath_Reference#Path'>paths</a> identical by value. Internally, <a href='#SkPath_copy_const_SkPath_path'>path</a> and
the returned result share pointer values. The underlying <a href='#Verb_Array'>verb array</a>, <a href='SkPath_Reference#Point_Array'>SkPoint array</a>
-and <a href='SkPath_Reference#Conic_Weight'>weights</a> <a href='SkPath_Reference#Conic_Weight'>are</a> <a href='SkPath_Reference#Conic_Weight'>copied</a> <a href='SkPath_Reference#Conic_Weight'>when</a> <a href='SkPath_Reference#Conic_Weight'>modified</a>.
+and <a href='SkPath_Reference#Conic_Weight'>weights</a> are copied when modified.
-Creating a <a href='SkPath_Reference#SkPath'>SkPath</a> <a href='SkPath_Reference#SkPath'>copy</a> <a href='SkPath_Reference#SkPath'>is</a> <a href='SkPath_Reference#SkPath'>very</a> <a href='SkPath_Reference#SkPath'>efficient</a> <a href='SkPath_Reference#SkPath'>and</a> <a href='SkPath_Reference#SkPath'>never</a> <a href='SkPath_Reference#SkPath'>allocates</a> <a href='SkPath_Reference#SkPath'>memory</a>.
-<a href='SkPath_Reference#SkPath'>SkPath</a> <a href='SkPath_Reference#SkPath'>are</a> <a href='SkPath_Reference#SkPath'>always</a> <a href='SkPath_Reference#SkPath'>copied</a> <a href='SkPath_Reference#SkPath'>by</a> <a href='SkPath_Reference#SkPath'>value</a> <a href='SkPath_Reference#SkPath'>from</a> <a href='SkPath_Reference#SkPath'>the</a> <a href='SkPath_Reference#SkPath'>interface</a>; <a href='SkPath_Reference#SkPath'>the</a> <a href='SkPath_Reference#SkPath'>underlying</a> <a href='SkPath_Reference#SkPath'>shared</a>
+Creating a <a href='SkPath_Reference#SkPath'>SkPath</a> copy is very efficient and never allocates memory.
+<a href='SkPath_Reference#SkPath'>SkPath</a> are always copied by value from the interface; the underlying shared
pointers are not exposed.
### Parameters
<table> <tr> <td><a name='SkPath_copy_const_SkPath_path'><code><strong>path</strong></code></a></td>
- <td><a href='SkPath_Reference#SkPath'>SkPath</a> <a href='SkPath_Reference#SkPath'>to</a> <a href='SkPath_Reference#SkPath'>copy</a> <a href='SkPath_Reference#SkPath'>by</a> <a href='SkPath_Reference#SkPath'>value</a></td>
+ <td><a href='SkPath_Reference#SkPath'>SkPath</a> to copy by value</td>
</tr>
</table>
@@ -458,8 +458,8 @@
### Example
-<div><fiddle-embed name="647312aacd946c8a6eabaca797140432"><div>Modifying one <a href='#SkPath_copy_const_SkPath_path'>path</a> <a href='#SkPath_copy_const_SkPath_path'>does</a> <a href='#SkPath_copy_const_SkPath_path'>not</a> <a href='#SkPath_copy_const_SkPath_path'>effect</a> <a href='#SkPath_copy_const_SkPath_path'>another</a>, <a href='#SkPath_copy_const_SkPath_path'>even</a> <a href='#SkPath_copy_const_SkPath_path'>if</a> <a href='#SkPath_copy_const_SkPath_path'>they</a> <a href='#SkPath_copy_const_SkPath_path'>started</a> <a href='#SkPath_copy_const_SkPath_path'>as</a> <a href='#SkPath_copy_const_SkPath_path'>copies</a>
-<a href='#SkPath_copy_const_SkPath_path'>of</a> <a href='#SkPath_copy_const_SkPath_path'>each</a> <a href='#SkPath_copy_const_SkPath_path'>other</a>.
+<div><fiddle-embed name="647312aacd946c8a6eabaca797140432"><div>Modifying one <a href='#SkPath_copy_const_SkPath_path'>path</a> does not effect another, even if they started as copies
+of each other.
</div>
#### Example Output
@@ -486,11 +486,11 @@
~<a href='#SkPath_empty_constructor'>SkPath()</a>
</pre>
-Releases ownership of any shared <a href='undocumented#Data'>data</a> <a href='undocumented#Data'>and</a> <a href='undocumented#Data'>deletes</a> <a href='undocumented#Data'>data</a> <a href='undocumented#Data'>if</a> <a href='SkPath_Reference#SkPath'>SkPath</a> <a href='SkPath_Reference#SkPath'>is</a> <a href='SkPath_Reference#SkPath'>sole</a> <a href='SkPath_Reference#SkPath'>owner</a>.
+Releases ownership of any shared <a href='undocumented#Data'>data</a> and deletes <a href='undocumented#Data'>data</a> if <a href='SkPath_Reference#SkPath'>SkPath</a> is sole owner.
### Example
-<div><fiddle-embed name="01ad6be9b7d15a2217daea273eb3d466"><div>delete calls <a href='SkPath_Reference#Path'>Path</a> <a href='SkPath_Reference#Path'>destructor</a>, <a href='SkPath_Reference#Path'>but</a> <a href='SkPath_Reference#Path'>copy</a> <a href='SkPath_Reference#Path'>of</a> <a href='SkPath_Reference#Path'>original</a> <a href='SkPath_Reference#Path'>in</a> <a href='SkPath_Reference#Path'>path2</a> <a href='SkPath_Reference#Path'>is</a> <a href='SkPath_Reference#Path'>unaffected</a>.
+<div><fiddle-embed name="01ad6be9b7d15a2217daea273eb3d466"><div>delete calls <a href='SkPath_Reference#Path'>Path</a> destructor, but copy of original in path2 is unaffected.
</div></fiddle-embed></div>
### See Also
@@ -502,28 +502,28 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-<a href='SkPath_Reference#SkPath'>SkPath</a>& <a href='SkPath_Reference#SkPath'>operator</a>=(<a href='SkPath_Reference#SkPath'>const</a> <a href='SkPath_Reference#SkPath'>SkPath</a>& <a href='SkPath_Reference#Path'>path</a>)
+<a href='SkPath_Reference#SkPath'>SkPath</a>& operator=(const <a href='SkPath_Reference#SkPath'>SkPath</a>& <a href='SkPath_Reference#Path'>path</a>)
</pre>
Constructs a copy of an existing <a href='#SkPath_copy_operator_path'>path</a>.
-<a href='SkPath_Reference#SkPath'>SkPath</a> <a href='SkPath_Reference#SkPath'>assignment</a> <a href='SkPath_Reference#SkPath'>makes</a> <a href='SkPath_Reference#SkPath'>two</a> <a href='SkPath_Reference#Path'>paths</a> <a href='SkPath_Reference#Path'>identical</a> <a href='SkPath_Reference#Path'>by</a> <a href='SkPath_Reference#Path'>value</a>. <a href='SkPath_Reference#Path'>Internally</a>, <a href='SkPath_Reference#Path'>assignment</a>
-shares pointer values. The underlying <a href='#Verb_Array'>verb array</a>, <a href='SkPath_Reference#Point_Array'>SkPoint array</a> <a href='SkPoint_Reference#SkPoint'>and</a> <a href='SkPath_Reference#Conic_Weight'>weights</a>
+<a href='SkPath_Reference#SkPath'>SkPath</a> assignment makes two <a href='SkPath_Reference#Path'>paths</a> identical by value. Internally, assignment
+shares pointer values. The underlying <a href='#Verb_Array'>verb array</a>, <a href='SkPath_Reference#Point_Array'>SkPoint array</a> and <a href='SkPath_Reference#Conic_Weight'>weights</a>
are copied when modified.
-Copying <a href='SkPath_Reference#SkPath'>SkPath</a> <a href='SkPath_Reference#SkPath'>by</a> <a href='SkPath_Reference#SkPath'>assignment</a> <a href='SkPath_Reference#SkPath'>is</a> <a href='SkPath_Reference#SkPath'>very</a> <a href='SkPath_Reference#SkPath'>efficient</a> <a href='SkPath_Reference#SkPath'>and</a> <a href='SkPath_Reference#SkPath'>never</a> <a href='SkPath_Reference#SkPath'>allocates</a> <a href='SkPath_Reference#SkPath'>memory</a>.
-<a href='SkPath_Reference#SkPath'>SkPath</a> <a href='SkPath_Reference#SkPath'>are</a> <a href='SkPath_Reference#SkPath'>always</a> <a href='SkPath_Reference#SkPath'>copied</a> <a href='SkPath_Reference#SkPath'>by</a> <a href='SkPath_Reference#SkPath'>value</a> <a href='SkPath_Reference#SkPath'>from</a> <a href='SkPath_Reference#SkPath'>the</a> <a href='SkPath_Reference#SkPath'>interface</a>; <a href='SkPath_Reference#SkPath'>the</a> <a href='SkPath_Reference#SkPath'>underlying</a> <a href='SkPath_Reference#SkPath'>shared</a>
+Copying <a href='SkPath_Reference#SkPath'>SkPath</a> by assignment is very efficient and never allocates memory.
+<a href='SkPath_Reference#SkPath'>SkPath</a> are always copied by value from the interface; the underlying shared
pointers are not exposed.
### Parameters
<table> <tr> <td><a name='SkPath_copy_operator_path'><code><strong>path</strong></code></a></td>
- <td><a href='#Verb_Array'>verb array</a>, <a href='SkPath_Reference#Point_Array'>SkPoint array</a>, <a href='SkPath_Reference#Conic_Weight'>weights</a>, <a href='SkPath_Reference#Conic_Weight'>and</a> <a href='SkPath_Reference#SkPath'>SkPath</a>::<a href='#SkPath_FillType'>FillType</a> <a href='#SkPath_FillType'>to</a> <a href='#SkPath_FillType'>copy</a></td>
+ <td><a href='#Verb_Array'>verb array</a>, <a href='SkPath_Reference#Point_Array'>SkPoint array</a>, <a href='SkPath_Reference#Conic_Weight'>weights</a>, and <a href='SkPath_Reference#SkPath'>SkPath</a>::<a href='#SkPath_FillType'>FillType</a> to copy</td>
</tr>
</table>
### Return Value
-<a href='SkPath_Reference#SkPath'>SkPath</a> <a href='SkPath_Reference#SkPath'>copied</a> <a href='SkPath_Reference#SkPath'>by</a> <a href='SkPath_Reference#SkPath'>value</a>
+<a href='SkPath_Reference#SkPath'>SkPath</a> copied by value
### Example
@@ -547,30 +547,30 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-bool operator==(const <a href='SkPath_Reference#SkPath'>SkPath</a>& <a href='SkPath_Reference#SkPath'>a</a>, <a href='SkPath_Reference#SkPath'>const</a> <a href='SkPath_Reference#SkPath'>SkPath</a>& <a href='SkPath_Reference#SkPath'>b</a>)
+bool operator==(const <a href='SkPath_Reference#SkPath'>SkPath</a>& a, const <a href='SkPath_Reference#SkPath'>SkPath</a>& b)
</pre>
-Compares <a href='#SkPath_equal_operator_a'>a</a> <a href='#SkPath_equal_operator_a'>and</a> <a href='#SkPath_equal_operator_b'>b</a>; <a href='#SkPath_equal_operator_b'>returns</a> <a href='#SkPath_equal_operator_b'>true</a> <a href='#SkPath_equal_operator_b'>if</a> <a href='SkPath_Reference#SkPath'>SkPath</a>::<a href='#SkPath_FillType'>FillType</a>, <a href='#Verb_Array'>verb array</a>, <a href='SkPath_Reference#Point_Array'>SkPoint array</a>, <a href='SkPoint_Reference#SkPoint'>and</a> <a href='SkPath_Reference#Conic_Weight'>weights</a>
+Compares <a href='#SkPath_equal_operator_a'>a</a> and <a href='#SkPath_equal_operator_b'>b</a>; returns true if <a href='SkPath_Reference#SkPath'>SkPath</a>::<a href='#SkPath_FillType'>FillType</a>, <a href='#Verb_Array'>verb array</a>, <a href='SkPath_Reference#Point_Array'>SkPoint array</a>, and <a href='SkPath_Reference#Conic_Weight'>weights</a>
are equivalent.
### Parameters
<table> <tr> <td><a name='SkPath_equal_operator_a'><code><strong>a</strong></code></a></td>
- <td><a href='SkPath_Reference#SkPath'>SkPath</a> <a href='SkPath_Reference#SkPath'>to</a> <a href='SkPath_Reference#SkPath'>compare</a></td>
+ <td><a href='SkPath_Reference#SkPath'>SkPath</a> to compare</td>
</tr>
<tr> <td><a name='SkPath_equal_operator_b'><code><strong>b</strong></code></a></td>
- <td><a href='SkPath_Reference#SkPath'>SkPath</a> <a href='SkPath_Reference#SkPath'>to</a> <a href='SkPath_Reference#SkPath'>compare</a></td>
+ <td><a href='SkPath_Reference#SkPath'>SkPath</a> to compare</td>
</tr>
</table>
### Return Value
-true if <a href='SkPath_Reference#SkPath'>SkPath</a> <a href='SkPath_Reference#SkPath'>pair</a> <a href='SkPath_Reference#SkPath'>are</a> <a href='SkPath_Reference#SkPath'>equivalent</a>
+true if <a href='SkPath_Reference#SkPath'>SkPath</a> pair are equivalent
### Example
-<div><fiddle-embed name="31883f51bb357f2ac5990d88f8b82e02"><div><a href='#SkPath_rewind'>rewind()</a> <a href='#SkPath_rewind'>removes</a> <a href='#Path_Verb_Array'>Verb_Array</a> <a href='#Path_Verb_Array'>but</a> <a href='#Path_Verb_Array'>leaves</a> <a href='#Path_Verb_Array'>storage</a>; <a href='#Path_Verb_Array'>since</a> <a href='#Path_Verb_Array'>storage</a> <a href='#Path_Verb_Array'>is</a> <a href='#Path_Verb_Array'>not</a> <a href='#Path_Verb_Array'>compared</a>,
-<a href='SkPath_Reference#Path'>Path</a> <a href='SkPath_Reference#Path'>pair</a> <a href='SkPath_Reference#Path'>are</a> <a href='SkPath_Reference#Path'>equivalent</a>.
+<div><fiddle-embed name="31883f51bb357f2ac5990d88f8b82e02"><div><a href='#SkPath_rewind'>rewind()</a> removes <a href='#Path_Verb_Array'>Verb_Array</a> but leaves storage; since storage is not compared,
+<a href='SkPath_Reference#Path'>Path</a> pair are equivalent.
</div>
#### Example Output
@@ -593,29 +593,29 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-bool operator!=(const <a href='SkPath_Reference#SkPath'>SkPath</a>& <a href='SkPath_Reference#SkPath'>a</a>, <a href='SkPath_Reference#SkPath'>const</a> <a href='SkPath_Reference#SkPath'>SkPath</a>& <a href='SkPath_Reference#SkPath'>b</a>)
+bool operator!=(const <a href='SkPath_Reference#SkPath'>SkPath</a>& a, const <a href='SkPath_Reference#SkPath'>SkPath</a>& b)
</pre>
-Compares <a href='#SkPath_notequal_operator_a'>a</a> <a href='#SkPath_notequal_operator_a'>and</a> <a href='#SkPath_notequal_operator_b'>b</a>; <a href='#SkPath_notequal_operator_b'>returns</a> <a href='#SkPath_notequal_operator_b'>true</a> <a href='#SkPath_notequal_operator_b'>if</a> <a href='SkPath_Reference#SkPath'>SkPath</a>::<a href='#SkPath_FillType'>FillType</a>, <a href='#Verb_Array'>verb array</a>, <a href='SkPath_Reference#Point_Array'>SkPoint array</a>, <a href='SkPoint_Reference#SkPoint'>and</a> <a href='SkPath_Reference#Conic_Weight'>weights</a>
+Compares <a href='#SkPath_notequal_operator_a'>a</a> and <a href='#SkPath_notequal_operator_b'>b</a>; returns true if <a href='SkPath_Reference#SkPath'>SkPath</a>::<a href='#SkPath_FillType'>FillType</a>, <a href='#Verb_Array'>verb array</a>, <a href='SkPath_Reference#Point_Array'>SkPoint array</a>, and <a href='SkPath_Reference#Conic_Weight'>weights</a>
are not equivalent.
### Parameters
<table> <tr> <td><a name='SkPath_notequal_operator_a'><code><strong>a</strong></code></a></td>
- <td><a href='SkPath_Reference#SkPath'>SkPath</a> <a href='SkPath_Reference#SkPath'>to</a> <a href='SkPath_Reference#SkPath'>compare</a></td>
+ <td><a href='SkPath_Reference#SkPath'>SkPath</a> to compare</td>
</tr>
<tr> <td><a name='SkPath_notequal_operator_b'><code><strong>b</strong></code></a></td>
- <td><a href='SkPath_Reference#SkPath'>SkPath</a> <a href='SkPath_Reference#SkPath'>to</a> <a href='SkPath_Reference#SkPath'>compare</a></td>
+ <td><a href='SkPath_Reference#SkPath'>SkPath</a> to compare</td>
</tr>
</table>
### Return Value
-true if <a href='SkPath_Reference#SkPath'>SkPath</a> <a href='SkPath_Reference#SkPath'>pair</a> <a href='SkPath_Reference#SkPath'>are</a> <a href='SkPath_Reference#SkPath'>not</a> <a href='SkPath_Reference#SkPath'>equivalent</a>
+true if <a href='SkPath_Reference#SkPath'>SkPath</a> pair are not equivalent
### Example
-<div><fiddle-embed name="bbbda1cc818d96c9c0d2a06c0c48902b"><div><a href='SkPath_Reference#Path'>Path</a> <a href='SkPath_Reference#Path'>pair</a> <a href='SkPath_Reference#Path'>are</a> <a href='SkPath_Reference#Path'>equal</a> <a href='SkPath_Reference#Path'>though</a> <a href='SkPath_Reference#Path'>their</a> <a href='SkPath_Reference#Path'>convexity</a> <a href='SkPath_Reference#Path'>is</a> <a href='SkPath_Reference#Path'>not</a> <a href='SkPath_Reference#Path'>equal</a>.
+<div><fiddle-embed name="bbbda1cc818d96c9c0d2a06c0c48902b"><div><a href='SkPath_Reference#Path'>Path</a> pair are equal though their convexity is not equal.
</div>
#### Example Output
@@ -636,26 +636,26 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-bool <a href='#SkPath_isInterpolatable'>isInterpolatable</a>(<a href='#SkPath_isInterpolatable'>const</a> <a href='SkPath_Reference#SkPath'>SkPath</a>& <a href='SkPath_Reference#SkPath'>compare</a>) <a href='SkPath_Reference#SkPath'>const</a>
+bool <a href='#SkPath_isInterpolatable'>isInterpolatable</a>(const <a href='SkPath_Reference#SkPath'>SkPath</a>& compare) const
</pre>
-Returns true if <a href='SkPath_Reference#SkPath'>SkPath</a> <a href='SkPath_Reference#SkPath'>contain</a> <a href='SkPath_Reference#SkPath'>equal</a> <a href='SkPath_Reference#Verb'>verbs</a> <a href='SkPath_Reference#Verb'>and</a> <a href='SkPath_Reference#Verb'>equal</a> <a href='SkPath_Reference#Conic_Weight'>weights</a>.
-If <a href='SkPath_Reference#SkPath'>SkPath</a> <a href='SkPath_Reference#SkPath'>contain</a> <a href='SkPath_Reference#SkPath'>one</a> <a href='SkPath_Reference#SkPath'>or</a> <a href='SkPath_Reference#SkPath'>more</a> <a href='SkPath_Reference#Conic'>conics</a>, <a href='SkPath_Reference#Conic'>the</a> <a href='SkPath_Reference#Conic_Weight'>weights</a> <a href='SkPath_Reference#Conic_Weight'>must</a> <a href='SkPath_Reference#Conic_Weight'>match</a>.
+Returns true if <a href='SkPath_Reference#SkPath'>SkPath</a> contain equal <a href='SkPath_Reference#Verb'>verbs</a> and equal <a href='SkPath_Reference#Conic_Weight'>weights</a>.
+If <a href='SkPath_Reference#SkPath'>SkPath</a> contain one or more <a href='SkPath_Reference#Conic'>conics</a>, the <a href='SkPath_Reference#Conic_Weight'>weights</a> must match.
-<a href='#SkPath_conicTo'>conicTo</a>() <a href='#SkPath_conicTo'>may</a> <a href='#SkPath_conicTo'>add</a> <a href='#SkPath_conicTo'>different</a> <a href='SkPath_Reference#Verb'>verbs</a> <a href='SkPath_Reference#Verb'>depending</a> <a href='SkPath_Reference#Verb'>on</a> <a href='#Conic_Weight'>conic weight</a>, <a href='SkPath_Reference#Conic'>so</a> <a href='SkPath_Reference#Conic'>it</a> <a href='SkPath_Reference#Conic'>is</a> <a href='SkPath_Reference#Conic'>not</a>
-trivial to interpolate a pair of <a href='SkPath_Reference#SkPath'>SkPath</a> <a href='SkPath_Reference#SkPath'>containing</a> <a href='SkPath_Reference#Conic'>conics</a> <a href='SkPath_Reference#Conic'>with</a> <a href='SkPath_Reference#Conic'>different</a>
-<a href='#Conic_Weight'>conic weight</a> <a href='SkPath_Reference#Conic'>values</a>.
+<a href='#SkPath_conicTo'>conicTo</a>() may add different <a href='SkPath_Reference#Verb'>verbs</a> depending on <a href='#Conic_Weight'>conic weight</a>, so it is not
+trivial to interpolate a pair of <a href='SkPath_Reference#SkPath'>SkPath</a> containing <a href='SkPath_Reference#Conic'>conics</a> with different
+<a href='#Conic_Weight'>conic weight</a> values.
### Parameters
<table> <tr> <td><a name='SkPath_isInterpolatable_compare'><code><strong>compare</strong></code></a></td>
- <td><a href='SkPath_Reference#SkPath'>SkPath</a> <a href='SkPath_Reference#SkPath'>to</a> <a href='#SkPath_isInterpolatable_compare'>compare</a></td>
+ <td><a href='SkPath_Reference#SkPath'>SkPath</a> to <a href='#SkPath_isInterpolatable_compare'>compare</a></td>
</tr>
</table>
### Return Value
-true if <a href='SkPath_Reference#SkPath'>SkPath</a> <a href='#Verb_Array'>verb array</a> <a href='SkPath_Reference#SkPath'>and</a> <a href='SkPath_Reference#Conic_Weight'>weights</a> <a href='SkPath_Reference#Conic_Weight'>are</a> <a href='SkPath_Reference#Conic_Weight'>equivalent</a>
+true if <a href='SkPath_Reference#SkPath'>SkPath</a> <a href='#Verb_Array'>verb array</a> and <a href='SkPath_Reference#Conic_Weight'>weights</a> are equivalent
### Example
@@ -680,40 +680,40 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-bool interpolate(const <a href='SkPath_Reference#SkPath'>SkPath</a>& <a href='SkPath_Reference#SkPath'>ending</a>, <a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>weight</a>, <a href='SkPath_Reference#SkPath'>SkPath</a>* <a href='SkPath_Reference#SkPath'>out</a>) <a href='SkPath_Reference#SkPath'>const</a>
+bool interpolate(const <a href='SkPath_Reference#SkPath'>SkPath</a>& ending, <a href='undocumented#SkScalar'>SkScalar</a> weight, <a href='SkPath_Reference#SkPath'>SkPath</a>* out) const
</pre>
-Interpolates between <a href='SkPath_Reference#Path'>Paths</a> <a href='SkPath_Reference#Path'>with</a> <a href='#Path_Point_Array'>Point_Array</a> <a href='#Path_Point_Array'>of</a> <a href='#Path_Point_Array'>equal</a> <a href='undocumented#Size'>size</a>.
-<a href='undocumented#Size'>Copy</a> <a href='#Path_Verb_Array'>Verb_Array</a> <a href='#Path_Verb_Array'>and</a> <a href='SkPath_Reference#Conic_Weight'>Weights</a> <a href='SkPath_Reference#Conic_Weight'>to</a> <a href='#SkPath_interpolate_out'>out</a>, <a href='#SkPath_interpolate_out'>and</a> <a href='#SkPath_interpolate_out'>set</a> <a href='#SkPath_interpolate_out'>out</a> <a href='#Path_Point_Array'>Point_Array</a> <a href='#Path_Point_Array'>to</a> <a href='#Path_Point_Array'>a</a> <a href='#Path_Point_Array'>weighted</a>
-<a href='#Path_Point_Array'>average</a> <a href='#Path_Point_Array'>of</a> <a href='#Path_Point_Array'>this</a> <a href='#Path_Point_Array'>Point_Array</a> <a href='#Path_Point_Array'>and</a> <a href='#SkPath_interpolate_ending'>ending</a> <a href='#Path_Point_Array'>Point_Array</a>, <a href='#Path_Point_Array'>using</a> <a href='#Path_Point_Array'>the</a> <a href='#Path_Point_Array'>formula</a>:
+Interpolates between <a href='SkPath_Reference#Path'>Paths</a> with <a href='#Path_Point_Array'>Point_Array</a> of equal <a href='undocumented#Size'>size</a>.
+Copy <a href='#Path_Verb_Array'>Verb_Array</a> and <a href='SkPath_Reference#Conic_Weight'>Weights</a> to <a href='#SkPath_interpolate_out'>out</a>, and set <a href='#SkPath_interpolate_out'>out</a> <a href='#Path_Point_Array'>Point_Array</a> to a weighted
+average of this <a href='#Path_Point_Array'>Point_Array</a> and <a href='#SkPath_interpolate_ending'>ending</a> <a href='#Path_Point_Array'>Point_Array</a>, using the formula:
<code>(<a href='SkPath_Reference#Path'>Path</a> <a href='SkPoint_Reference#Point'>Point</a> * <a href='#SkPath_interpolate_weight'>weight</a>) + <a href='#SkPath_interpolate_ending'>ending</a> <a href='SkPoint_Reference#Point'>Point</a> * (1 - <a href='#SkPath_interpolate_weight'>weight</a>)</code>.
-<a href='#SkPath_interpolate_weight'>weight</a> <a href='#SkPath_interpolate_weight'>is</a> <a href='#SkPath_interpolate_weight'>most</a> <a href='#SkPath_interpolate_weight'>useful</a> <a href='#SkPath_interpolate_weight'>when</a> <a href='#SkPath_interpolate_weight'>between</a> <a href='#SkPath_interpolate_weight'>zero</a> (<a href='#SkPath_interpolate_ending'>ending</a> <a href='#Path_Point_Array'>Point_Array</a>) <a href='#Path_Point_Array'>and</a>
-<a href='#Path_Point_Array'>one</a> (<a href='#Path_Point_Array'>this</a> <a href='#Path_Point_Array'>Point_Array</a>); <a href='#Path_Point_Array'>will</a> <a href='#Path_Point_Array'>work</a> <a href='#Path_Point_Array'>with</a> <a href='#Path_Point_Array'>values</a> <a href='#Path_Point_Array'>outside</a> <a href='#Path_Point_Array'>of</a> <a href='#Path_Point_Array'>this</a>
-<a href='#Path_Point_Array'>range</a>.
+<a href='#SkPath_interpolate_weight'>weight</a> is most useful when between zero (<a href='#SkPath_interpolate_ending'>ending</a> <a href='#Path_Point_Array'>Point_Array</a>) and
+one (this <a href='#Path_Point_Array'>Point_Array</a>); will work with values outside of this
+range.
-<a href='#SkPath_interpolate'>interpolate()</a> <a href='#SkPath_interpolate'>returns</a> <a href='#SkPath_interpolate'>false</a> <a href='#SkPath_interpolate'>and</a> <a href='#SkPath_interpolate'>leaves</a> <a href='#SkPath_interpolate_out'>out</a> <a href='#SkPath_interpolate_out'>unchanged</a> <a href='#SkPath_interpolate_out'>if</a> <a href='#Path_Point_Array'>Point_Array</a> <a href='#Path_Point_Array'>is</a> <a href='#Path_Point_Array'>not</a>
-<a href='#Path_Point_Array'>the</a> <a href='#Path_Point_Array'>same</a> <a href='undocumented#Size'>size</a> <a href='undocumented#Size'>as</a> <a href='#SkPath_interpolate_ending'>ending</a> <a href='#Path_Point_Array'>Point_Array</a>. <a href='#Path_Point_Array'>Call</a> <a href='#SkPath_isInterpolatable'>isInterpolatable</a> <a href='#SkPath_isInterpolatable'>to</a> <a href='#SkPath_isInterpolatable'>check</a> <a href='SkPath_Reference#Path'>Path</a>
-<a href='SkPath_Reference#Path'>compatibility</a> <a href='SkPath_Reference#Path'>prior</a> <a href='SkPath_Reference#Path'>to</a> <a href='SkPath_Reference#Path'>calling</a> <a href='#SkPath_interpolate'>interpolate()</a>.
+<a href='#SkPath_interpolate'>interpolate()</a> returns false and leaves <a href='#SkPath_interpolate_out'>out</a> unchanged if <a href='#Path_Point_Array'>Point_Array</a> is not
+the same <a href='undocumented#Size'>size</a> as <a href='#SkPath_interpolate_ending'>ending</a> <a href='#Path_Point_Array'>Point_Array</a>. Call <a href='#SkPath_isInterpolatable'>isInterpolatable</a> to check <a href='SkPath_Reference#Path'>Path</a>
+compatibility prior to calling <a href='#SkPath_interpolate'>interpolate()</a>.
### Parameters
<table> <tr> <td><a name='SkPath_interpolate_ending'><code><strong>ending</strong></code></a></td>
- <td><a href='#Path_Point_Array'>Point_Array</a> <a href='#Path_Point_Array'>averaged</a> <a href='#Path_Point_Array'>with</a> <a href='#Path_Point_Array'>this</a> <a href='#Path_Point_Array'>Point_Array</a></td>
+ <td><a href='#Path_Point_Array'>Point_Array</a> averaged with this <a href='#Path_Point_Array'>Point_Array</a></td>
</tr>
<tr> <td><a name='SkPath_interpolate_weight'><code><strong>weight</strong></code></a></td>
- <td>contribution of this <a href='#Path_Point_Array'>Point_Array</a>, <a href='#Path_Point_Array'>and</a>
-<a href='#Path_Point_Array'>one</a> <a href='#Path_Point_Array'>minus</a> <a href='#Path_Point_Array'>contribution</a> <a href='#Path_Point_Array'>of</a> <a href='#SkPath_interpolate_ending'>ending</a> <a href='#Path_Point_Array'>Point_Array</a>
+ <td>contribution of this <a href='#Path_Point_Array'>Point_Array</a>, and
+one minus contribution of <a href='#SkPath_interpolate_ending'>ending</a> <a href='#Path_Point_Array'>Point_Array</a>
</td>
</tr>
<tr> <td><a name='SkPath_interpolate_out'><code><strong>out</strong></code></a></td>
- <td><a href='SkPath_Reference#Path'>Path</a> <a href='SkPath_Reference#Path'>replaced</a> <a href='SkPath_Reference#Path'>by</a> <a href='SkPath_Reference#Path'>interpolated</a> <a href='SkPath_Reference#Path'>averages</a></td>
+ <td><a href='SkPath_Reference#Path'>Path</a> replaced by interpolated averages</td>
</tr>
</table>
### Return Value
-true if <a href='SkPath_Reference#Path'>Paths</a> <a href='SkPath_Reference#Path'>contain</a> <a href='SkPath_Reference#Path'>same</a> <a href='SkPath_Reference#Path'>number</a> <a href='SkPath_Reference#Path'>of</a> <a href='SkPoint_Reference#Point'>Points</a>
+true if <a href='SkPath_Reference#Path'>Paths</a> contain same number of <a href='SkPoint_Reference#Point'>Points</a>
### Example
@@ -728,7 +728,7 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-bool <a href='#SkPath_unique'>unique()</a> <a href='#SkPath_unique'>const</a>
+bool <a href='#SkPath_unique'>unique()</a> const
</pre>
To be deprecated soon.
@@ -750,13 +750,13 @@
};
</pre>
-<a href='#Path_Fill_Type'>Fill_Type</a> <a href='#Path_Fill_Type'>selects</a> <a href='#Path_Fill_Type'>the</a> <a href='#Path_Fill_Type'>rule</a> <a href='#Path_Fill_Type'>used</a> <a href='#Path_Fill_Type'>to</a> <a href='#Path_Fill_Type'>fill</a> <a href='SkPath_Reference#Path'>Path</a>. <a href='SkPath_Reference#Path'>Path</a> <a href='SkPath_Reference#Path'>set</a> <a href='SkPath_Reference#Path'>to</a> <a href='#SkPath_kWinding_FillType'>kWinding_FillType</a>
-<a href='#SkPath_kWinding_FillType'>fills</a> <a href='#SkPath_kWinding_FillType'>if</a> <a href='#SkPath_kWinding_FillType'>the</a> <a href='#SkPath_kWinding_FillType'>sum</a> <a href='#SkPath_kWinding_FillType'>of</a> <a href='SkPath_Overview#Contour'>Contour</a> <a href='SkPath_Overview#Contour'>edges</a> <a href='SkPath_Overview#Contour'>is</a> <a href='SkPath_Overview#Contour'>not</a> <a href='SkPath_Overview#Contour'>zero</a>, <a href='SkPath_Overview#Contour'>where</a> <a href='SkPath_Overview#Contour'>clockwise</a> <a href='SkPath_Overview#Contour'>edges</a> <a href='SkPath_Overview#Contour'>add</a> <a href='SkPath_Overview#Contour'>one</a>, <a href='SkPath_Overview#Contour'>and</a>
-<a href='SkPath_Overview#Contour'>counterclockwise</a> <a href='SkPath_Overview#Contour'>edges</a> <a href='SkPath_Overview#Contour'>subtract</a> <a href='SkPath_Overview#Contour'>one</a>. <a href='SkPath_Reference#Path'>Path</a> <a href='SkPath_Reference#Path'>set</a> <a href='SkPath_Reference#Path'>to</a> <a href='#SkPath_kEvenOdd_FillType'>kEvenOdd_FillType</a> <a href='#SkPath_kEvenOdd_FillType'>fills</a> <a href='#SkPath_kEvenOdd_FillType'>if</a> <a href='#SkPath_kEvenOdd_FillType'>the</a>
-<a href='#SkPath_kEvenOdd_FillType'>number</a> <a href='#SkPath_kEvenOdd_FillType'>of</a> <a href='SkPath_Overview#Contour'>Contour</a> <a href='SkPath_Overview#Contour'>edges</a> <a href='SkPath_Overview#Contour'>is</a> <a href='SkPath_Overview#Contour'>odd</a>. <a href='SkPath_Overview#Contour'>Each</a> <a href='#Path_Fill_Type'>Fill_Type</a> <a href='#Path_Fill_Type'>has</a> <a href='#Path_Fill_Type'>an</a> <a href='#Path_Fill_Type'>inverse</a> <a href='#Path_Fill_Type'>variant</a> <a href='#Path_Fill_Type'>that</a>
-<a href='#Path_Fill_Type'>reverses</a> <a href='#Path_Fill_Type'>the</a> <a href='#Path_Fill_Type'>rule</a>:
-<a href='#SkPath_kInverseWinding_FillType'>kInverseWinding_FillType</a> <a href='#SkPath_kInverseWinding_FillType'>fills</a> <a href='#SkPath_kInverseWinding_FillType'>where</a> <a href='#SkPath_kInverseWinding_FillType'>the</a> <a href='#SkPath_kInverseWinding_FillType'>sum</a> <a href='#SkPath_kInverseWinding_FillType'>of</a> <a href='SkPath_Overview#Contour'>Contour</a> <a href='SkPath_Overview#Contour'>edges</a> <a href='SkPath_Overview#Contour'>is</a> <a href='SkPath_Overview#Contour'>zero</a>;
-<a href='#SkPath_kInverseEvenOdd_FillType'>kInverseEvenOdd_FillType</a> <a href='#SkPath_kInverseEvenOdd_FillType'>fills</a> <a href='#SkPath_kInverseEvenOdd_FillType'>where</a> <a href='#SkPath_kInverseEvenOdd_FillType'>the</a> <a href='#SkPath_kInverseEvenOdd_FillType'>number</a> <a href='#SkPath_kInverseEvenOdd_FillType'>of</a> <a href='SkPath_Overview#Contour'>Contour</a> <a href='SkPath_Overview#Contour'>edges</a> <a href='SkPath_Overview#Contour'>is</a> <a href='SkPath_Overview#Contour'>even</a>.
+<a href='#Path_Fill_Type'>Fill_Type</a> selects the rule used to fill <a href='SkPath_Reference#Path'>Path</a>. <a href='SkPath_Reference#Path'>Path</a> set to <a href='#SkPath_kWinding_FillType'>kWinding_FillType</a>
+fills if the sum of <a href='SkPath_Overview#Contour'>Contour</a> edges is not zero, where clockwise edges add one, and
+counterclockwise edges subtract one. <a href='SkPath_Reference#Path'>Path</a> set to <a href='#SkPath_kEvenOdd_FillType'>kEvenOdd_FillType</a> fills if the
+number of <a href='SkPath_Overview#Contour'>Contour</a> edges is odd. Each <a href='#Path_Fill_Type'>Fill_Type</a> has an inverse variant that
+reverses the rule:
+<a href='#SkPath_kInverseWinding_FillType'>kInverseWinding_FillType</a> fills where the sum of <a href='SkPath_Overview#Contour'>Contour</a> edges is zero;
+<a href='#SkPath_kInverseEvenOdd_FillType'>kInverseEvenOdd_FillType</a> fills where the number of <a href='SkPath_Overview#Contour'>Contour</a> edges is even.
### Example
@@ -811,10 +811,10 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-<a href='#SkPath_FillType'>FillType</a> <a href='#SkPath_getFillType'>getFillType</a>() <a href='#SkPath_getFillType'>const</a>
+<a href='#SkPath_FillType'>FillType</a> <a href='#SkPath_getFillType'>getFillType</a>() const
</pre>
-Returns <a href='#SkPath_FillType'>FillType</a>, <a href='#SkPath_FillType'>the</a> <a href='#SkPath_FillType'>rule</a> <a href='#SkPath_FillType'>used</a> <a href='#SkPath_FillType'>to</a> <a href='#SkPath_FillType'>fill</a> <a href='SkPath_Reference#SkPath'>SkPath</a>. <a href='#SkPath_FillType'>FillType</a> <a href='#SkPath_FillType'>of</a> <a href='#SkPath_FillType'>a</a> <a href='#SkPath_FillType'>new</a> <a href='SkPath_Reference#SkPath'>SkPath</a> <a href='SkPath_Reference#SkPath'>is</a>
+Returns <a href='#SkPath_FillType'>FillType</a>, the rule used to fill <a href='SkPath_Reference#SkPath'>SkPath</a>. <a href='#SkPath_FillType'>FillType</a> of a new <a href='SkPath_Reference#SkPath'>SkPath</a> is
<a href='#SkPath_kWinding_FillType'>kWinding_FillType</a>.
### Return Value
@@ -844,11 +844,11 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-void <a href='#SkPath_setFillType'>setFillType</a>(<a href='#SkPath_FillType'>FillType</a> <a href='#SkPath_FillType'>ft</a>)
+void <a href='#SkPath_setFillType'>setFillType</a>(<a href='#SkPath_FillType'>FillType</a> ft)
</pre>
-Sets <a href='#SkPath_FillType'>FillType</a>, <a href='#SkPath_FillType'>the</a> <a href='#SkPath_FillType'>rule</a> <a href='#SkPath_FillType'>used</a> <a href='#SkPath_FillType'>to</a> <a href='#SkPath_FillType'>fill</a> <a href='SkPath_Reference#SkPath'>SkPath</a>. <a href='SkPath_Reference#SkPath'>While</a> <a href='SkPath_Reference#SkPath'>there</a> <a href='SkPath_Reference#SkPath'>is</a> <a href='SkPath_Reference#SkPath'>no</a> <a href='SkPath_Reference#SkPath'>check</a>
-that <a href='#SkPath_setFillType_ft'>ft</a> <a href='#SkPath_setFillType_ft'>is</a> <a href='#SkPath_setFillType_ft'>legal</a>, <a href='#SkPath_setFillType_ft'>values</a> <a href='#SkPath_setFillType_ft'>outside</a> <a href='#SkPath_setFillType_ft'>of</a> <a href='#SkPath_FillType'>FillType</a> <a href='#SkPath_FillType'>are</a> <a href='#SkPath_FillType'>not</a> <a href='#SkPath_FillType'>supported</a>.
+Sets <a href='#SkPath_FillType'>FillType</a>, the rule used to fill <a href='SkPath_Reference#SkPath'>SkPath</a>. While there is no check
+that <a href='#SkPath_setFillType_ft'>ft</a> is legal, values outside of <a href='#SkPath_FillType'>FillType</a> are not supported.
### Parameters
@@ -861,7 +861,7 @@
### Example
-<div><fiddle-embed name="b4a91cd7f50b2a0a0d1bec6d0ac823d2"><div>If empty <a href='SkPath_Reference#Path'>Path</a> <a href='SkPath_Reference#Path'>is</a> <a href='SkPath_Reference#Path'>set</a> <a href='SkPath_Reference#Path'>to</a> <a href='SkPath_Reference#Path'>inverse</a> <a href='#SkPath_FillType'>FillType</a>, <a href='#SkPath_FillType'>it</a> <a href='#SkPath_FillType'>fills</a> <a href='#SkPath_FillType'>all</a> <a href='#SkPath_FillType'>pixels</a>.
+<div><fiddle-embed name="b4a91cd7f50b2a0a0d1bec6d0ac823d2"><div>If empty <a href='SkPath_Reference#Path'>Path</a> is set to inverse <a href='#SkPath_FillType'>FillType</a>, it fills all pixels.
</div></fiddle-embed></div>
### See Also
@@ -873,15 +873,15 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-bool <a href='#SkPath_isInverseFillType'>isInverseFillType</a>() <a href='#SkPath_isInverseFillType'>const</a>
+bool <a href='#SkPath_isInverseFillType'>isInverseFillType</a>() const
</pre>
-Returns if <a href='#SkPath_FillType'>FillType</a> <a href='#SkPath_FillType'>describes</a> <a href='#SkPath_FillType'>area</a> <a href='#SkPath_FillType'>outside</a> <a href='SkPath_Reference#SkPath'>SkPath</a> <a href='SkPath_Reference#SkPath'>geometry</a>. <a href='SkPath_Reference#SkPath'>The</a> <a href='SkPath_Reference#SkPath'>inverse</a> <a href='SkPath_Reference#SkPath'>fill</a> <a href='SkPath_Reference#SkPath'>area</a>
+Returns if <a href='#SkPath_FillType'>FillType</a> describes area outside <a href='SkPath_Reference#SkPath'>SkPath</a> geometry. The inverse fill area
extends indefinitely.
### Return Value
-true if <a href='#SkPath_FillType'>FillType</a> <a href='#SkPath_FillType'>is</a> <a href='#SkPath_kInverseWinding_FillType'>kInverseWinding_FillType</a> <a href='#SkPath_kInverseWinding_FillType'>or</a> <a href='#SkPath_kInverseEvenOdd_FillType'>kInverseEvenOdd_FillType</a>
+true if <a href='#SkPath_FillType'>FillType</a> is <a href='#SkPath_kInverseWinding_FillType'>kInverseWinding_FillType</a> or <a href='#SkPath_kInverseEvenOdd_FillType'>kInverseEvenOdd_FillType</a>
### Example
@@ -907,8 +907,8 @@
void <a href='#SkPath_toggleInverseFillType'>toggleInverseFillType</a>()
</pre>
-Replaces <a href='#SkPath_FillType'>FillType</a> <a href='#SkPath_FillType'>with</a> <a href='#SkPath_FillType'>its</a> <a href='#SkPath_FillType'>inverse</a>. <a href='#SkPath_FillType'>The</a> <a href='#SkPath_FillType'>inverse</a> <a href='#SkPath_FillType'>of</a> <a href='#SkPath_FillType'>FillType</a> <a href='#SkPath_FillType'>describes</a> <a href='#SkPath_FillType'>the</a> <a href='#SkPath_FillType'>area</a>
-<a href='#SkPath_FillType'>unmodified</a> <a href='#SkPath_FillType'>by</a> <a href='#SkPath_FillType'>the</a> <a href='#SkPath_FillType'>original</a> <a href='#SkPath_FillType'>FillType</a>.
+Replaces <a href='#SkPath_FillType'>FillType</a> with its inverse. The inverse of <a href='#SkPath_FillType'>FillType</a> describes the area
+unmodified by the original <a href='#SkPath_FillType'>FillType</a>.
| <a href='#SkPath_FillType'>FillType</a> | toggled <a href='#SkPath_FillType'>FillType</a> |
| --- | --- |
@@ -919,7 +919,7 @@
### Example
-<div><fiddle-embed name="400facce23d417bc5043c5f58404afbd"><div><a href='SkPath_Reference#Path'>Path</a> <a href='SkPath_Reference#Path'>drawn</a> <a href='SkPath_Reference#Path'>normally</a> <a href='SkPath_Reference#Path'>and</a> <a href='SkPath_Reference#Path'>through</a> <a href='SkPath_Reference#Path'>its</a> <a href='SkPath_Reference#Path'>inverse</a> <a href='SkPath_Reference#Path'>touches</a> <a href='SkPath_Reference#Path'>every</a> <a href='undocumented#Pixel'>pixel</a> <a href='undocumented#Pixel'>once</a>.
+<div><fiddle-embed name="400facce23d417bc5043c5f58404afbd"><div><a href='SkPath_Reference#Path'>Path</a> drawn normally and through its inverse touches every <a href='undocumented#Pixel'>pixel</a> once.
</div></fiddle-embed></div>
### See Also
@@ -933,23 +933,23 @@
---
<pre style="padding: 1em 1em 1em 1em;width: 62.5em; background-color: #f0f0f0">
- enum <a href='#SkPath_Convexity'>Convexity</a> : <a href='#SkPath_Convexity'>uint8_t</a> {
+ enum <a href='#SkPath_Convexity'>Convexity</a> : uint8_t {
<a href='#SkPath_kUnknown_Convexity'>kUnknown_Convexity</a>,
<a href='#SkPath_kConvex_Convexity'>kConvex_Convexity</a>,
<a href='#SkPath_kConcave_Convexity'>kConcave_Convexity</a>,
};
</pre>
-<a href='SkPath_Reference#Path'>Path</a> <a href='SkPath_Reference#Path'>is</a> <a href='SkPath_Reference#Path'>convex</a> <a href='SkPath_Reference#Path'>if</a> <a href='SkPath_Reference#Path'>it</a> <a href='SkPath_Reference#Path'>contains</a> <a href='SkPath_Reference#Path'>one</a> <a href='SkPath_Overview#Contour'>Contour</a> <a href='SkPath_Overview#Contour'>and</a> <a href='SkPath_Overview#Contour'>Contour</a> <a href='SkPath_Overview#Contour'>loops</a> <a href='SkPath_Overview#Contour'>no</a> <a href='SkPath_Overview#Contour'>more</a> <a href='SkPath_Overview#Contour'>than</a>
-360 <a href='SkPath_Overview#Contour'>degrees</a>, <a href='SkPath_Overview#Contour'>and</a> <a href='SkPath_Overview#Contour'>Contour</a> <a href='SkPath_Overview#Contour'>angles</a> <a href='SkPath_Overview#Contour'>all</a> <a href='SkPath_Overview#Contour'>have</a> <a href='SkPath_Overview#Contour'>same</a> <a href='#SkPath_Direction'>Direction</a>. <a href='#SkPath_Direction'>Convex</a> <a href='SkPath_Reference#Path'>Path</a>
-<a href='SkPath_Reference#Path'>may</a> <a href='SkPath_Reference#Path'>have</a> <a href='SkPath_Reference#Path'>better</a> <a href='SkPath_Reference#Path'>performance</a> <a href='SkPath_Reference#Path'>and</a> <a href='SkPath_Reference#Path'>require</a> <a href='SkPath_Reference#Path'>fewer</a> <a href='SkPath_Reference#Path'>resources</a> <a href='SkPath_Reference#Path'>on</a> <a href='#GPU_Surface'>GPU_Surface</a>.
+<a href='SkPath_Reference#Path'>Path</a> is convex if it contains one <a href='SkPath_Overview#Contour'>Contour</a> and <a href='SkPath_Overview#Contour'>Contour</a> loops no more than
+360 degrees, and <a href='SkPath_Overview#Contour'>Contour</a> angles all have same <a href='#SkPath_Direction'>Direction</a>. Convex <a href='SkPath_Reference#Path'>Path</a>
+may have better performance and require fewer resources on <a href='#GPU_Surface'>GPU_Surface</a>.
-<a href='SkPath_Reference#Path'>Path</a> <a href='SkPath_Reference#Path'>is</a> <a href='SkPath_Reference#Path'>concave</a> <a href='SkPath_Reference#Path'>when</a> <a href='SkPath_Reference#Path'>either</a> <a href='SkPath_Reference#Path'>at</a> <a href='SkPath_Reference#Path'>least</a> <a href='SkPath_Reference#Path'>one</a> <a href='#SkPath_Direction'>Direction</a> <a href='#SkPath_Direction'>change</a> <a href='#SkPath_Direction'>is</a> <a href='#SkPath_Direction'>clockwise</a> <a href='#SkPath_Direction'>and</a>
-<a href='#SkPath_Direction'>another</a> <a href='#SkPath_Direction'>is</a> <a href='#SkPath_Direction'>counterclockwise</a>, <a href='#SkPath_Direction'>or</a> <a href='#SkPath_Direction'>the</a> <a href='#SkPath_Direction'>sum</a> <a href='#SkPath_Direction'>of</a> <a href='#SkPath_Direction'>the</a> <a href='#SkPath_Direction'>changes</a> <a href='#SkPath_Direction'>in</a> <a href='#SkPath_Direction'>Direction</a> <a href='#SkPath_Direction'>is</a> <a href='#SkPath_Direction'>not</a> 360
-<a href='#SkPath_Direction'>degrees</a>.
+<a href='SkPath_Reference#Path'>Path</a> is concave when either at least one <a href='#SkPath_Direction'>Direction</a> change is clockwise and
+another is counterclockwise, or the sum of the changes in <a href='#SkPath_Direction'>Direction</a> is not 360
+degrees.
-<a href='#SkPath_Direction'>Initially</a> <a href='SkPath_Reference#Path'>Path</a> <a href='#SkPath_Convexity'>Convexity</a> <a href='#SkPath_Convexity'>is</a> <a href='#SkPath_kUnknown_Convexity'>kUnknown_Convexity</a>. <a href='SkPath_Reference#Path'>Path</a> <a href='#SkPath_Convexity'>Convexity</a> <a href='#SkPath_Convexity'>is</a> <a href='#SkPath_Convexity'>computed</a>
-<a href='#SkPath_Convexity'>if</a> <a href='#SkPath_Convexity'>needed</a> <a href='#SkPath_Convexity'>by</a> <a href='#SkPath_Convexity'>destination</a> <a href='SkSurface_Reference#Surface'>Surface</a>.
+Initially <a href='SkPath_Reference#Path'>Path</a> <a href='#SkPath_Convexity'>Convexity</a> is <a href='#SkPath_kUnknown_Convexity'>kUnknown_Convexity</a>. <a href='SkPath_Reference#Path'>Path</a> <a href='#SkPath_Convexity'>Convexity</a> is computed
+if needed by destination <a href='SkSurface_Reference#Surface'>Surface</a>.
### Constants
@@ -990,12 +990,12 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-<a href='#SkPath_Convexity'>Convexity</a> <a href='#SkPath_getConvexity'>getConvexity</a>() <a href='#SkPath_getConvexity'>const</a>
+<a href='#SkPath_Convexity'>Convexity</a> <a href='#SkPath_getConvexity'>getConvexity</a>() const
</pre>
-Computes <a href='SkPath_Reference#SkPath'>SkPath</a>::<a href='#SkPath_Convexity'>Convexity</a> <a href='#SkPath_Convexity'>if</a> <a href='#SkPath_Convexity'>required</a>, <a href='#SkPath_Convexity'>and</a> <a href='#SkPath_Convexity'>returns</a> <a href='#SkPath_Convexity'>stored</a> <a href='#SkPath_Convexity'>value</a>.
-<a href='SkPath_Reference#SkPath'>SkPath</a>::<a href='#SkPath_Convexity'>Convexity</a> <a href='#SkPath_Convexity'>is</a> <a href='#SkPath_Convexity'>computed</a> <a href='#SkPath_Convexity'>if</a> <a href='#SkPath_Convexity'>stored</a> <a href='#SkPath_Convexity'>value</a> <a href='#SkPath_Convexity'>is</a> <a href='#SkPath_kUnknown_Convexity'>kUnknown_Convexity</a>,
-or if <a href='SkPath_Reference#SkPath'>SkPath</a> <a href='SkPath_Reference#SkPath'>has</a> <a href='SkPath_Reference#SkPath'>been</a> <a href='SkPath_Reference#SkPath'>altered</a> <a href='SkPath_Reference#SkPath'>since</a> <a href='SkPath_Reference#SkPath'>SkPath</a>::<a href='#SkPath_Convexity'>Convexity</a> <a href='#SkPath_Convexity'>was</a> <a href='#SkPath_Convexity'>computed</a> <a href='#SkPath_Convexity'>or</a> <a href='#SkPath_Convexity'>set</a>.
+Computes <a href='SkPath_Reference#SkPath'>SkPath</a>::<a href='#SkPath_Convexity'>Convexity</a> if required, and returns stored value.
+<a href='SkPath_Reference#SkPath'>SkPath</a>::<a href='#SkPath_Convexity'>Convexity</a> is computed if stored value is <a href='#SkPath_kUnknown_Convexity'>kUnknown_Convexity</a>,
+or if <a href='SkPath_Reference#SkPath'>SkPath</a> has been altered since <a href='SkPath_Reference#SkPath'>SkPath</a>::<a href='#SkPath_Convexity'>Convexity</a> was computed or set.
### Return Value
@@ -1014,11 +1014,11 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-<a href='#SkPath_Convexity'>Convexity</a> <a href='#SkPath_getConvexityOrUnknown'>getConvexityOrUnknown</a>() <a href='#SkPath_getConvexityOrUnknown'>const</a>
+<a href='#SkPath_Convexity'>Convexity</a> <a href='#SkPath_getConvexityOrUnknown'>getConvexityOrUnknown</a>() const
</pre>
-Returns last computed <a href='SkPath_Reference#SkPath'>SkPath</a>::<a href='#SkPath_Convexity'>Convexity</a>, <a href='#SkPath_Convexity'>or</a> <a href='#SkPath_kUnknown_Convexity'>kUnknown_Convexity</a> <a href='#SkPath_kUnknown_Convexity'>if</a>
-<a href='SkPath_Reference#SkPath'>SkPath</a> <a href='SkPath_Reference#SkPath'>has</a> <a href='SkPath_Reference#SkPath'>been</a> <a href='SkPath_Reference#SkPath'>altered</a> <a href='SkPath_Reference#SkPath'>since</a> <a href='SkPath_Reference#SkPath'>SkPath</a>::<a href='#SkPath_Convexity'>Convexity</a> <a href='#SkPath_Convexity'>was</a> <a href='#SkPath_Convexity'>computed</a> <a href='#SkPath_Convexity'>or</a> <a href='#SkPath_Convexity'>set</a>.
+Returns last computed <a href='SkPath_Reference#SkPath'>SkPath</a>::<a href='#SkPath_Convexity'>Convexity</a>, or <a href='#SkPath_kUnknown_Convexity'>kUnknown_Convexity</a> if
+<a href='SkPath_Reference#SkPath'>SkPath</a> has been altered since <a href='SkPath_Reference#SkPath'>SkPath</a>::<a href='#SkPath_Convexity'>Convexity</a> was computed or set.
### Return Value
@@ -1026,8 +1026,8 @@
### Example
-<div><fiddle-embed name="111c59e9afadb940ab8f41bdc25378a4"><div><a href='#SkPath_Convexity'>Convexity</a> <a href='#SkPath_Convexity'>is</a> <a href='#SkPath_Convexity'>unknown</a> <a href='#SkPath_Convexity'>unless</a> <a href='#SkPath_getConvexity'>getConvexity</a> <a href='#SkPath_getConvexity'>is</a> <a href='#SkPath_getConvexity'>called</a> <a href='#SkPath_getConvexity'>without</a> <a href='#SkPath_getConvexity'>a</a> <a href='#SkPath_getConvexity'>subsequent</a> <a href='#SkPath_getConvexity'>call</a>
-<a href='#SkPath_getConvexity'>that</a> <a href='#SkPath_getConvexity'>alters</a> <a href='#SkPath_getConvexity'>the</a> <a href='SkPath_Reference#Path'>path</a>.
+<div><fiddle-embed name="111c59e9afadb940ab8f41bdc25378a4"><div><a href='#SkPath_Convexity'>Convexity</a> is unknown unless <a href='#SkPath_getConvexity'>getConvexity</a> is called without a subsequent call
+that alters the <a href='SkPath_Reference#Path'>path</a>.
</div></fiddle-embed></div>
### See Also
@@ -1039,24 +1039,24 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-void <a href='#SkPath_setConvexity'>setConvexity</a>(<a href='#SkPath_Convexity'>Convexity</a> <a href='#SkPath_Convexity'>convexity</a>)
+void <a href='#SkPath_setConvexity'>setConvexity</a>(<a href='#SkPath_Convexity'>Convexity</a> convexity)
</pre>
-Stores <a href='#SkPath_setConvexity_convexity'>convexity</a> <a href='#SkPath_setConvexity_convexity'>so</a> <a href='#SkPath_setConvexity_convexity'>that</a> <a href='#SkPath_setConvexity_convexity'>it</a> <a href='#SkPath_setConvexity_convexity'>is</a> <a href='#SkPath_setConvexity_convexity'>later</a> <a href='#SkPath_setConvexity_convexity'>returned</a> <a href='#SkPath_setConvexity_convexity'>by</a> <a href='#SkPath_getConvexity'>getConvexity</a>() <a href='#SkPath_getConvexity'>or</a> <a href='#SkPath_getConvexityOrUnknown'>getConvexityOrUnknown</a>().
-<a href='#SkPath_setConvexity_convexity'>convexity</a> <a href='#SkPath_setConvexity_convexity'>may</a> <a href='#SkPath_setConvexity_convexity'>differ</a> <a href='#SkPath_setConvexity_convexity'>from</a> <a href='#SkPath_getConvexity'>getConvexity</a>(), <a href='#SkPath_getConvexity'>although</a> <a href='#SkPath_getConvexity'>setting</a> <a href='#SkPath_getConvexity'>an</a> <a href='#SkPath_getConvexity'>incorrect</a> <a href='#SkPath_getConvexity'>value</a> <a href='#SkPath_getConvexity'>may</a>
+Stores <a href='#SkPath_setConvexity_convexity'>convexity</a> so that it is later returned by <a href='#SkPath_getConvexity'>getConvexity</a>() or <a href='#SkPath_getConvexityOrUnknown'>getConvexityOrUnknown</a>().
+<a href='#SkPath_setConvexity_convexity'>convexity</a> may differ from <a href='#SkPath_getConvexity'>getConvexity</a>(), although setting an incorrect value may
cause incorrect or inefficient drawing.
-If <a href='#SkPath_setConvexity_convexity'>convexity</a> <a href='#SkPath_setConvexity_convexity'>is</a> <a href='#SkPath_kUnknown_Convexity'>kUnknown_Convexity</a>: <a href='#SkPath_getConvexity'>getConvexity</a>() <a href='#SkPath_getConvexity'>will</a>
-compute <a href='SkPath_Reference#SkPath'>SkPath</a>::<a href='#SkPath_Convexity'>Convexity</a>, <a href='#SkPath_Convexity'>and</a> <a href='#SkPath_getConvexityOrUnknown'>getConvexityOrUnknown</a>() <a href='#SkPath_getConvexityOrUnknown'>will</a> <a href='#SkPath_getConvexityOrUnknown'>return</a> <a href='#SkPath_kUnknown_Convexity'>kUnknown_Convexity</a>.
+If <a href='#SkPath_setConvexity_convexity'>convexity</a> is <a href='#SkPath_kUnknown_Convexity'>kUnknown_Convexity</a>: <a href='#SkPath_getConvexity'>getConvexity</a>() will
+compute <a href='SkPath_Reference#SkPath'>SkPath</a>::<a href='#SkPath_Convexity'>Convexity</a>, and <a href='#SkPath_getConvexityOrUnknown'>getConvexityOrUnknown</a>() will return <a href='#SkPath_kUnknown_Convexity'>kUnknown_Convexity</a>.
-If <a href='#SkPath_setConvexity_convexity'>convexity</a> <a href='#SkPath_setConvexity_convexity'>is</a> <a href='#SkPath_kConvex_Convexity'>kConvex_Convexity</a> <a href='#SkPath_kConvex_Convexity'>or</a> <a href='#SkPath_kConcave_Convexity'>kConcave_Convexity</a>, <a href='#SkPath_getConvexity'>getConvexity</a>()
-and <a href='#SkPath_getConvexityOrUnknown'>getConvexityOrUnknown</a>() <a href='#SkPath_getConvexityOrUnknown'>will</a> <a href='#SkPath_getConvexityOrUnknown'>return</a> <a href='#SkPath_setConvexity_convexity'>convexity</a> <a href='#SkPath_setConvexity_convexity'>until</a> <a href='#SkPath_setConvexity_convexity'>the</a> <a href='SkPath_Reference#Path'>path</a> <a href='SkPath_Reference#Path'>is</a>
+If <a href='#SkPath_setConvexity_convexity'>convexity</a> is <a href='#SkPath_kConvex_Convexity'>kConvex_Convexity</a> or <a href='#SkPath_kConcave_Convexity'>kConcave_Convexity</a>, <a href='#SkPath_getConvexity'>getConvexity</a>()
+and <a href='#SkPath_getConvexityOrUnknown'>getConvexityOrUnknown</a>() will return <a href='#SkPath_setConvexity_convexity'>convexity</a> until the <a href='SkPath_Reference#Path'>path</a> is
altered.
### Parameters
<table> <tr> <td><a name='SkPath_setConvexity_convexity'><code><strong>convexity</strong></code></a></td>
- <td>one of: <a href='#SkPath_kUnknown_Convexity'>kUnknown_Convexity</a>, <a href='#SkPath_kConvex_Convexity'>kConvex_Convexity</a>, <a href='#SkPath_kConvex_Convexity'>or</a> <a href='#SkPath_kConcave_Convexity'>kConcave_Convexity</a></td>
+ <td>one of: <a href='#SkPath_kUnknown_Convexity'>kUnknown_Convexity</a>, <a href='#SkPath_kConvex_Convexity'>kConvex_Convexity</a>, or <a href='#SkPath_kConcave_Convexity'>kConcave_Convexity</a></td>
</tr>
</table>
@@ -1073,16 +1073,16 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-bool <a href='#SkPath_isConvex'>isConvex</a>() <a href='#SkPath_isConvex'>const</a>
+bool <a href='#SkPath_isConvex'>isConvex</a>() const
</pre>
-Computes <a href='SkPath_Reference#SkPath'>SkPath</a>::<a href='#SkPath_Convexity'>Convexity</a> <a href='#SkPath_Convexity'>if</a> <a href='#SkPath_Convexity'>required</a>, <a href='#SkPath_Convexity'>and</a> <a href='#SkPath_Convexity'>returns</a> <a href='#SkPath_Convexity'>true</a> <a href='#SkPath_Convexity'>if</a> <a href='#SkPath_Convexity'>value</a> <a href='#SkPath_Convexity'>is</a> <a href='#SkPath_kConvex_Convexity'>kConvex_Convexity</a>.
-If <a href='#SkPath_setConvexity'>setConvexity</a>() <a href='#SkPath_setConvexity'>was</a> <a href='#SkPath_setConvexity'>called</a> <a href='#SkPath_setConvexity'>with</a> <a href='#SkPath_kConvex_Convexity'>kConvex_Convexity</a> <a href='#SkPath_kConvex_Convexity'>or</a> <a href='#SkPath_kConcave_Convexity'>kConcave_Convexity</a>, <a href='#SkPath_kConcave_Convexity'>and</a>
-the <a href='SkPath_Reference#Path'>path</a> <a href='SkPath_Reference#Path'>has</a> <a href='SkPath_Reference#Path'>not</a> <a href='SkPath_Reference#Path'>been</a> <a href='SkPath_Reference#Path'>altered</a>, <a href='SkPath_Reference#SkPath'>SkPath</a>::<a href='#SkPath_Convexity'>Convexity</a> <a href='#SkPath_Convexity'>is</a> <a href='#SkPath_Convexity'>not</a> <a href='#SkPath_Convexity'>recomputed</a>.
+Computes <a href='SkPath_Reference#SkPath'>SkPath</a>::<a href='#SkPath_Convexity'>Convexity</a> if required, and returns true if value is <a href='#SkPath_kConvex_Convexity'>kConvex_Convexity</a>.
+If <a href='#SkPath_setConvexity'>setConvexity</a>() was called with <a href='#SkPath_kConvex_Convexity'>kConvex_Convexity</a> or <a href='#SkPath_kConcave_Convexity'>kConcave_Convexity</a>, and
+the <a href='SkPath_Reference#Path'>path</a> has not been altered, <a href='SkPath_Reference#SkPath'>SkPath</a>::<a href='#SkPath_Convexity'>Convexity</a> is not recomputed.
### Return Value
-true if <a href='SkPath_Reference#SkPath'>SkPath</a>::<a href='#SkPath_Convexity'>Convexity</a> <a href='#SkPath_Convexity'>stored</a> <a href='#SkPath_Convexity'>or</a> <a href='#SkPath_Convexity'>computed</a> <a href='#SkPath_Convexity'>is</a> <a href='#SkPath_kConvex_Convexity'>kConvex_Convexity</a>
+true if <a href='SkPath_Reference#SkPath'>SkPath</a>::<a href='#SkPath_Convexity'>Convexity</a> stored or computed is <a href='#SkPath_kConvex_Convexity'>kConvex_Convexity</a>
### Example
@@ -1099,25 +1099,25 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-bool <a href='#SkPath_isOval'>isOval</a>(<a href='SkRect_Reference#SkRect'>SkRect</a>* <a href='SkRect_Reference#SkRect'>bounds</a>) <a href='SkRect_Reference#SkRect'>const</a>
+bool <a href='#SkPath_isOval'>isOval</a>(<a href='SkRect_Reference#SkRect'>SkRect</a>* bounds) const
</pre>
-Returns true if this <a href='SkPath_Reference#Path'>path</a> <a href='SkPath_Reference#Path'>is</a> <a href='SkPath_Reference#Path'>recognized</a> <a href='SkPath_Reference#Path'>as</a> <a href='SkPath_Reference#Path'>an</a> <a href='undocumented#Oval'>oval</a> <a href='undocumented#Oval'>or</a> <a href='undocumented#Circle'>circle</a>.
+Returns true if this <a href='SkPath_Reference#Path'>path</a> is recognized as an <a href='undocumented#Oval'>oval</a> or <a href='undocumented#Circle'>circle</a>.
-<a href='#SkPath_isOval_bounds'>bounds</a> <a href='#SkPath_isOval_bounds'>receives</a> <a href='#SkPath_isOval_bounds'>bounds</a> <a href='#SkPath_isOval_bounds'>of</a> <a href='undocumented#Oval'>oval</a>.
+<a href='#SkPath_isOval_bounds'>bounds</a> receives <a href='#SkPath_isOval_bounds'>bounds</a> of <a href='undocumented#Oval'>oval</a>.
-<a href='#SkPath_isOval_bounds'>bounds</a> <a href='#SkPath_isOval_bounds'>is</a> <a href='#SkPath_isOval_bounds'>unmodified</a> <a href='#SkPath_isOval_bounds'>if</a> <a href='undocumented#Oval'>oval</a> <a href='undocumented#Oval'>is</a> <a href='undocumented#Oval'>not</a> <a href='undocumented#Oval'>found</a>.
+<a href='#SkPath_isOval_bounds'>bounds</a> is unmodified if <a href='undocumented#Oval'>oval</a> is not found.
### Parameters
<table> <tr> <td><a name='SkPath_isOval_bounds'><code><strong>bounds</strong></code></a></td>
- <td>storage for bounding <a href='SkRect_Reference#SkRect'>SkRect</a> <a href='SkRect_Reference#SkRect'>of</a> <a href='undocumented#Oval'>oval</a>; <a href='undocumented#Oval'>may</a> <a href='undocumented#Oval'>be</a> <a href='undocumented#Oval'>nullptr</a></td>
+ <td>storage for bounding <a href='SkRect_Reference#SkRect'>SkRect</a> of <a href='undocumented#Oval'>oval</a>; may be nullptr</td>
</tr>
</table>
### Return Value
-true if <a href='SkPath_Reference#SkPath'>SkPath</a> <a href='SkPath_Reference#SkPath'>is</a> <a href='SkPath_Reference#SkPath'>recognized</a> <a href='SkPath_Reference#SkPath'>as</a> <a href='SkPath_Reference#SkPath'>an</a> <a href='undocumented#Oval'>oval</a> <a href='undocumented#Oval'>or</a> <a href='undocumented#Circle'>circle</a>
+true if <a href='SkPath_Reference#SkPath'>SkPath</a> is recognized as an <a href='undocumented#Oval'>oval</a> or <a href='undocumented#Circle'>circle</a>
### Example
@@ -1132,26 +1132,26 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-bool <a href='#SkPath_isRRect'>isRRect</a>(<a href='SkRRect_Reference#SkRRect'>SkRRect</a>* <a href='SkRRect_Reference#SkRRect'>rrect</a>) <a href='SkRRect_Reference#SkRRect'>const</a>
+bool <a href='#SkPath_isRRect'>isRRect</a>(<a href='SkRRect_Reference#SkRRect'>SkRRect</a>* rrect) const
</pre>
-Returns true if <a href='SkPath_Reference#Path'>path</a> <a href='SkPath_Reference#Path'>is</a> <a href='SkPath_Reference#Path'>representable</a> <a href='SkPath_Reference#Path'>as</a> <a href='SkRRect_Reference#SkRRect'>SkRRect</a>.
-Returns false if <a href='SkPath_Reference#Path'>path</a> <a href='SkPath_Reference#Path'>is</a> <a href='SkPath_Reference#Path'>representable</a> <a href='SkPath_Reference#Path'>as</a> <a href='undocumented#Oval'>oval</a>, <a href='undocumented#Circle'>circle</a>, <a href='undocumented#Circle'>or</a> <a href='SkRect_Reference#SkRect'>SkRect</a>.
+Returns true if <a href='SkPath_Reference#Path'>path</a> is representable as <a href='SkRRect_Reference#SkRRect'>SkRRect</a>.
+Returns false if <a href='SkPath_Reference#Path'>path</a> is representable as <a href='undocumented#Oval'>oval</a>, <a href='undocumented#Circle'>circle</a>, or <a href='SkRect_Reference#SkRect'>SkRect</a>.
-<a href='#SkPath_isRRect_rrect'>rrect</a> <a href='#SkPath_isRRect_rrect'>receives</a> <a href='#SkPath_isRRect_rrect'>bounds</a> <a href='#SkPath_isRRect_rrect'>of</a> <a href='SkRRect_Reference#SkRRect'>SkRRect</a>.
+<a href='#SkPath_isRRect_rrect'>rrect</a> receives bounds of <a href='SkRRect_Reference#SkRRect'>SkRRect</a>.
-<a href='#SkPath_isRRect_rrect'>rrect</a> <a href='#SkPath_isRRect_rrect'>is</a> <a href='#SkPath_isRRect_rrect'>unmodified</a> <a href='#SkPath_isRRect_rrect'>if</a> <a href='SkRRect_Reference#SkRRect'>SkRRect</a> <a href='SkRRect_Reference#SkRRect'>is</a> <a href='SkRRect_Reference#SkRRect'>not</a> <a href='SkRRect_Reference#SkRRect'>found</a>.
+<a href='#SkPath_isRRect_rrect'>rrect</a> is unmodified if <a href='SkRRect_Reference#SkRRect'>SkRRect</a> is not found.
### Parameters
<table> <tr> <td><a name='SkPath_isRRect_rrect'><code><strong>rrect</strong></code></a></td>
- <td>storage for bounding <a href='SkRect_Reference#SkRect'>SkRect</a> <a href='SkRect_Reference#SkRect'>of</a> <a href='SkRRect_Reference#SkRRect'>SkRRect</a>; <a href='SkRRect_Reference#SkRRect'>may</a> <a href='SkRRect_Reference#SkRRect'>be</a> <a href='SkRRect_Reference#SkRRect'>nullptr</a></td>
+ <td>storage for bounding <a href='SkRect_Reference#SkRect'>SkRect</a> of <a href='SkRRect_Reference#SkRRect'>SkRRect</a>; may be nullptr</td>
</tr>
</table>
### Return Value
-true if <a href='SkPath_Reference#SkPath'>SkPath</a> <a href='SkPath_Reference#SkPath'>contains</a> <a href='SkPath_Reference#SkPath'>only</a> <a href='SkRRect_Reference#SkRRect'>SkRRect</a>
+true if <a href='SkPath_Reference#SkPath'>SkPath</a> contains only <a href='SkRRect_Reference#SkRRect'>SkRRect</a>
### Example
@@ -1170,9 +1170,9 @@
<a href='SkPath_Reference#SkPath'>SkPath</a>& <a href='#SkPath_reset'>reset()</a>
</pre>
-Sets <a href='SkPath_Reference#SkPath'>SkPath</a> <a href='SkPath_Reference#SkPath'>to</a> <a href='SkPath_Reference#SkPath'>its</a> <a href='SkPath_Reference#SkPath'>initial</a> <a href='SkPath_Reference#SkPath'>state</a>.
-Removes verb array, <a href='SkPoint_Reference#SkPoint'>SkPoint</a> <a href='SkPoint_Reference#SkPoint'>array</a>, <a href='SkPoint_Reference#SkPoint'>and</a> <a href='SkPath_Reference#Conic_Weight'>weights</a>, <a href='SkPath_Reference#Conic_Weight'>and</a> <a href='SkPath_Reference#Conic_Weight'>sets</a> <a href='#SkPath_FillType'>FillType</a> <a href='#SkPath_FillType'>to</a> <a href='#SkPath_kWinding_FillType'>kWinding_FillType</a>.
-Internal storage associated with <a href='SkPath_Reference#SkPath'>SkPath</a> <a href='SkPath_Reference#SkPath'>is</a> <a href='SkPath_Reference#SkPath'>released</a>.
+Sets <a href='SkPath_Reference#SkPath'>SkPath</a> to its initial state.
+Removes verb array, <a href='SkPoint_Reference#SkPoint'>SkPoint</a> array, and <a href='SkPath_Reference#Conic_Weight'>weights</a>, and sets <a href='#SkPath_FillType'>FillType</a> to <a href='#SkPath_kWinding_FillType'>kWinding_FillType</a>.
+Internal storage associated with <a href='SkPath_Reference#SkPath'>SkPath</a> is released.
### Return Value
@@ -1194,11 +1194,11 @@
<a href='SkPath_Reference#SkPath'>SkPath</a>& <a href='#SkPath_rewind'>rewind()</a>
</pre>
-Sets <a href='SkPath_Reference#SkPath'>SkPath</a> <a href='SkPath_Reference#SkPath'>to</a> <a href='SkPath_Reference#SkPath'>its</a> <a href='SkPath_Reference#SkPath'>initial</a> <a href='SkPath_Reference#SkPath'>state</a>, <a href='SkPath_Reference#SkPath'>preserving</a> <a href='SkPath_Reference#SkPath'>internal</a> <a href='SkPath_Reference#SkPath'>storage</a>.
-Removes verb array, <a href='SkPoint_Reference#SkPoint'>SkPoint</a> <a href='SkPoint_Reference#SkPoint'>array</a>, <a href='SkPoint_Reference#SkPoint'>and</a> <a href='SkPath_Reference#Conic_Weight'>weights</a>, <a href='SkPath_Reference#Conic_Weight'>and</a> <a href='SkPath_Reference#Conic_Weight'>sets</a> <a href='#SkPath_FillType'>FillType</a> <a href='#SkPath_FillType'>to</a> <a href='#SkPath_kWinding_FillType'>kWinding_FillType</a>.
-Internal storage associated with <a href='SkPath_Reference#SkPath'>SkPath</a> <a href='SkPath_Reference#SkPath'>is</a> <a href='SkPath_Reference#SkPath'>retained</a>.
+Sets <a href='SkPath_Reference#SkPath'>SkPath</a> to its initial state, preserving internal storage.
+Removes verb array, <a href='SkPoint_Reference#SkPoint'>SkPoint</a> array, and <a href='SkPath_Reference#Conic_Weight'>weights</a>, and sets <a href='#SkPath_FillType'>FillType</a> to <a href='#SkPath_kWinding_FillType'>kWinding_FillType</a>.
+Internal storage associated with <a href='SkPath_Reference#SkPath'>SkPath</a> is retained.
-Use <a href='#SkPath_rewind'>rewind()</a> <a href='#SkPath_rewind'>instead</a> <a href='#SkPath_rewind'>of</a> <a href='#SkPath_reset'>reset()</a> <a href='#SkPath_reset'>if</a> <a href='SkPath_Reference#SkPath'>SkPath</a> <a href='SkPath_Reference#SkPath'>storage</a> <a href='SkPath_Reference#SkPath'>will</a> <a href='SkPath_Reference#SkPath'>be</a> <a href='SkPath_Reference#SkPath'>reused</a> <a href='SkPath_Reference#SkPath'>and</a> <a href='SkPath_Reference#SkPath'>performance</a>
+Use <a href='#SkPath_rewind'>rewind()</a> instead of <a href='#SkPath_reset'>reset()</a> if <a href='SkPath_Reference#SkPath'>SkPath</a> storage will be reused and performance
is critical.
### Return Value
@@ -1220,16 +1220,16 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-bool <a href='#SkPath_isEmpty'>isEmpty</a>() <a href='#SkPath_isEmpty'>const</a>
+bool <a href='#SkPath_isEmpty'>isEmpty</a>() const
</pre>
-Returns if <a href='SkPath_Reference#SkPath'>SkPath</a> <a href='SkPath_Reference#SkPath'>is</a> <a href='SkPath_Reference#SkPath'>empty</a>.
-Empty <a href='SkPath_Reference#SkPath'>SkPath</a> <a href='SkPath_Reference#SkPath'>may</a> <a href='SkPath_Reference#SkPath'>have</a> <a href='#SkPath_FillType'>FillType</a> <a href='#SkPath_FillType'>but</a> <a href='#SkPath_FillType'>has</a> <a href='#SkPath_FillType'>no</a> <a href='SkPoint_Reference#SkPoint'>SkPoint</a>, <a href='SkPath_Reference#SkPath'>SkPath</a>::<a href='#SkPath_Verb'>Verb</a>, <a href='#SkPath_Verb'>or</a> <a href='SkPath_Reference#Conic'>conic</a> <a href='SkPath_Reference#Conic'>weight</a>.
-<a href='#SkPath_empty_constructor'>SkPath()</a> <a href='SkPath_Reference#SkPath'>constructs</a> <a href='SkPath_Reference#SkPath'>empty</a> <a href='SkPath_Reference#SkPath'>SkPath</a>; <a href='#SkPath_reset'>reset()</a> <a href='#SkPath_reset'>and</a> <a href='#SkPath_rewind'>rewind()</a> <a href='#SkPath_rewind'>make</a> <a href='SkPath_Reference#SkPath'>SkPath</a> <a href='SkPath_Reference#SkPath'>empty</a>.
+Returns if <a href='SkPath_Reference#SkPath'>SkPath</a> is empty.
+Empty <a href='SkPath_Reference#SkPath'>SkPath</a> may have <a href='#SkPath_FillType'>FillType</a> but has no <a href='SkPoint_Reference#SkPoint'>SkPoint</a>, <a href='SkPath_Reference#SkPath'>SkPath</a>::<a href='#SkPath_Verb'>Verb</a>, or <a href='SkPath_Reference#Conic'>conic</a> weight.
+<a href='#SkPath_empty_constructor'>SkPath()</a> constructs empty <a href='SkPath_Reference#SkPath'>SkPath</a>; <a href='#SkPath_reset'>reset()</a> and <a href='#SkPath_rewind'>rewind()</a> make <a href='SkPath_Reference#SkPath'>SkPath</a> empty.
### Return Value
-true if the <a href='SkPath_Reference#Path'>path</a> <a href='SkPath_Reference#Path'>contains</a> <a href='SkPath_Reference#Path'>no</a> <a href='SkPath_Reference#SkPath'>SkPath</a>::<a href='#SkPath_Verb'>Verb</a> <a href='#SkPath_Verb'>array</a>
+true if the <a href='SkPath_Reference#Path'>path</a> contains no <a href='SkPath_Reference#SkPath'>SkPath</a>::<a href='#SkPath_Verb'>Verb</a> array
### Example
@@ -1256,21 +1256,21 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-bool <a href='#SkPath_isLastContourClosed'>isLastContourClosed</a>() <a href='#SkPath_isLastContourClosed'>const</a>
+bool <a href='#SkPath_isLastContourClosed'>isLastContourClosed</a>() const
</pre>
-Returns if <a href='SkPath_Overview#Contour'>contour</a> <a href='SkPath_Overview#Contour'>is</a> <a href='SkPath_Overview#Contour'>closed</a>.
-<a href='SkPath_Overview#Contour'>Contour</a> <a href='SkPath_Overview#Contour'>is</a> <a href='SkPath_Overview#Contour'>closed</a> <a href='SkPath_Overview#Contour'>if</a> <a href='SkPath_Reference#SkPath'>SkPath</a> <a href='SkPath_Reference#SkPath'>SkPath</a>::<a href='#SkPath_Verb'>Verb</a> <a href='#SkPath_Verb'>array</a> <a href='#SkPath_Verb'>was</a> <a href='#SkPath_Verb'>last</a> <a href='#SkPath_Verb'>modified</a> <a href='#SkPath_Verb'>by</a> <a href='#SkPath_close'>close()</a>. <a href='#SkPath_close'>When</a> <a href='#SkPath_close'>stroked</a>,
-closed <a href='SkPath_Overview#Contour'>contour</a> <a href='SkPath_Overview#Contour'>draws</a> <a href='SkPaint_Reference#SkPaint'>SkPaint</a>::<a href='#SkPaint_Join'>Join</a> <a href='#SkPaint_Join'>instead</a> <a href='#SkPaint_Join'>of</a> <a href='SkPaint_Reference#SkPaint'>SkPaint</a>::<a href='#SkPaint_Cap'>Cap</a> <a href='#SkPaint_Cap'>at</a> <a href='#SkPaint_Cap'>first</a> <a href='#SkPaint_Cap'>and</a> <a href='#SkPaint_Cap'>last</a> <a href='SkPoint_Reference#SkPoint'>SkPoint</a>.
+Returns if <a href='SkPath_Overview#Contour'>contour</a> is closed.
+<a href='SkPath_Overview#Contour'>Contour</a> is closed if <a href='SkPath_Reference#SkPath'>SkPath</a> <a href='SkPath_Reference#SkPath'>SkPath</a>::<a href='#SkPath_Verb'>Verb</a> array was last modified by <a href='#SkPath_close'>close()</a>. When stroked,
+closed <a href='SkPath_Overview#Contour'>contour</a> draws <a href='SkPaint_Reference#SkPaint'>SkPaint</a>::<a href='#SkPaint_Join'>Join</a> instead of <a href='SkPaint_Reference#SkPaint'>SkPaint</a>::<a href='#SkPaint_Cap'>Cap</a> at first and last <a href='SkPoint_Reference#SkPoint'>SkPoint</a>.
### Return Value
-true if the last <a href='SkPath_Overview#Contour'>contour</a> <a href='SkPath_Overview#Contour'>ends</a> <a href='SkPath_Overview#Contour'>with</a> <a href='SkPath_Overview#Contour'>a</a> <a href='#SkPath_kClose_Verb'>kClose_Verb</a>
+true if the last <a href='SkPath_Overview#Contour'>contour</a> ends with a <a href='#SkPath_kClose_Verb'>kClose_Verb</a>
### Example
-<div><fiddle-embed name="03b740ab94b9017800a52e30b5e7fee7"><div><a href='#SkPath_close'>close()</a> <a href='#SkPath_close'>has</a> <a href='#SkPath_close'>no</a> <a href='#SkPath_close'>effect</a> <a href='#SkPath_close'>if</a> <a href='SkPath_Reference#Path'>Path</a> <a href='SkPath_Reference#Path'>is</a> <a href='SkPath_Reference#Path'>empty</a>; <a href='#SkPath_isLastContourClosed'>isLastContourClosed</a>() <a href='#SkPath_isLastContourClosed'>returns</a>
-<a href='#SkPath_isLastContourClosed'>false</a> <a href='#SkPath_isLastContourClosed'>until</a> <a href='SkPath_Reference#Path'>Path</a> <a href='SkPath_Reference#Path'>has</a> <a href='SkPath_Reference#Path'>geometry</a> <a href='SkPath_Reference#Path'>followed</a> <a href='SkPath_Reference#Path'>by</a> <a href='#SkPath_close'>close()</a>.
+<div><fiddle-embed name="03b740ab94b9017800a52e30b5e7fee7"><div><a href='#SkPath_close'>close()</a> has no effect if <a href='SkPath_Reference#Path'>Path</a> is empty; <a href='#SkPath_isLastContourClosed'>isLastContourClosed</a>() returns
+false until <a href='SkPath_Reference#Path'>Path</a> has geometry followed by <a href='#SkPath_close'>close()</a>.
</div>
#### Example Output
@@ -1293,16 +1293,16 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-bool <a href='#SkPath_isFinite'>isFinite</a>() <a href='#SkPath_isFinite'>const</a>
+bool <a href='#SkPath_isFinite'>isFinite</a>() const
</pre>
-Returns true for finite <a href='SkPoint_Reference#SkPoint'>SkPoint</a> <a href='SkPoint_Reference#SkPoint'>array</a> <a href='SkPoint_Reference#SkPoint'>values</a> <a href='SkPoint_Reference#SkPoint'>between</a> <a href='SkPoint_Reference#SkPoint'>negative</a> <a href='undocumented#SK_ScalarMax'>SK_ScalarMax</a> <a href='undocumented#SK_ScalarMax'>and</a>
-positive <a href='undocumented#SK_ScalarMax'>SK_ScalarMax</a>. <a href='undocumented#SK_ScalarMax'>Returns</a> <a href='undocumented#SK_ScalarMax'>false</a> <a href='undocumented#SK_ScalarMax'>for</a> <a href='undocumented#SK_ScalarMax'>any</a> <a href='SkPoint_Reference#SkPoint'>SkPoint</a> <a href='SkPoint_Reference#SkPoint'>array</a> <a href='SkPoint_Reference#SkPoint'>value</a> <a href='SkPoint_Reference#SkPoint'>of</a>
-<a href='undocumented#SK_ScalarInfinity'>SK_ScalarInfinity</a>, <a href='undocumented#SK_ScalarNegativeInfinity'>SK_ScalarNegativeInfinity</a>, <a href='undocumented#SK_ScalarNegativeInfinity'>or</a> <a href='undocumented#SK_ScalarNaN'>SK_ScalarNaN</a>.
+Returns true for finite <a href='SkPoint_Reference#SkPoint'>SkPoint</a> array values between negative <a href='undocumented#SK_ScalarMax'>SK_ScalarMax</a> and
+positive <a href='undocumented#SK_ScalarMax'>SK_ScalarMax</a>. Returns false for any <a href='SkPoint_Reference#SkPoint'>SkPoint</a> array value of
+<a href='undocumented#SK_ScalarInfinity'>SK_ScalarInfinity</a>, <a href='undocumented#SK_ScalarNegativeInfinity'>SK_ScalarNegativeInfinity</a>, or <a href='undocumented#SK_ScalarNaN'>SK_ScalarNaN</a>.
### Return Value
-true if all <a href='SkPoint_Reference#SkPoint'>SkPoint</a> <a href='SkPoint_Reference#SkPoint'>values</a> <a href='SkPoint_Reference#SkPoint'>are</a> <a href='SkPoint_Reference#SkPoint'>finite</a>
+true if all <a href='SkPoint_Reference#SkPoint'>SkPoint</a> values are finite
### Example
@@ -1327,17 +1327,17 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-bool <a href='#SkPath_isVolatile'>isVolatile</a>() <a href='#SkPath_isVolatile'>const</a>
+bool <a href='#SkPath_isVolatile'>isVolatile</a>() const
</pre>
-Returns true if the <a href='SkPath_Reference#Path'>path</a> <a href='SkPath_Reference#Path'>is</a> <a href='SkPath_Reference#Path'>volatile</a>; <a href='SkPath_Reference#Path'>it</a> <a href='SkPath_Reference#Path'>will</a> <a href='SkPath_Reference#Path'>not</a> <a href='SkPath_Reference#Path'>be</a> <a href='SkPath_Reference#Path'>altered</a> <a href='SkPath_Reference#Path'>or</a> <a href='SkPath_Reference#Path'>discarded</a>
-by the caller after it is drawn. <a href='SkPath_Reference#SkPath'>SkPath</a> <a href='SkPath_Reference#SkPath'>by</a> <a href='SkPath_Reference#SkPath'>default</a> <a href='SkPath_Reference#SkPath'>have</a> <a href='SkPath_Reference#SkPath'>volatile</a> <a href='SkPath_Reference#SkPath'>set</a> <a href='SkPath_Reference#SkPath'>false</a>, <a href='SkPath_Reference#SkPath'>allowing</a>
-<a href='SkSurface_Reference#SkSurface'>SkSurface</a> <a href='SkSurface_Reference#SkSurface'>to</a> <a href='SkSurface_Reference#SkSurface'>attach</a> <a href='SkSurface_Reference#SkSurface'>a</a> <a href='SkSurface_Reference#SkSurface'>cache</a> <a href='SkSurface_Reference#SkSurface'>of</a> <a href='undocumented#Data'>data</a> <a href='undocumented#Data'>which</a> <a href='undocumented#Data'>speeds</a> <a href='undocumented#Data'>repeated</a> <a href='undocumented#Data'>drawing</a>. <a href='undocumented#Data'>If</a> <a href='undocumented#Data'>true</a>, <a href='SkSurface_Reference#SkSurface'>SkSurface</a>
+Returns true if the <a href='SkPath_Reference#Path'>path</a> is volatile; it will not be altered or discarded
+by the caller after it is drawn. <a href='SkPath_Reference#SkPath'>SkPath</a> by default have volatile set false, allowing
+<a href='SkSurface_Reference#SkSurface'>SkSurface</a> to attach a cache of <a href='undocumented#Data'>data</a> which speeds repeated drawing. If true, <a href='SkSurface_Reference#SkSurface'>SkSurface</a>
may not speed repeated drawing.
### Return Value
-true if caller will alter <a href='SkPath_Reference#SkPath'>SkPath</a> <a href='SkPath_Reference#SkPath'>after</a> <a href='SkPath_Reference#SkPath'>drawing</a>
+true if caller will alter <a href='SkPath_Reference#SkPath'>SkPath</a> after drawing
### Example
@@ -1362,26 +1362,26 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-void <a href='#SkPath_setIsVolatile'>setIsVolatile</a>(<a href='#SkPath_setIsVolatile'>bool</a> <a href='#SkPath_isVolatile'>isVolatile</a>)
+void <a href='#SkPath_setIsVolatile'>setIsVolatile</a>(bool <a href='#SkPath_isVolatile'>isVolatile</a>)
</pre>
-Specifies whether <a href='SkPath_Reference#SkPath'>SkPath</a> <a href='SkPath_Reference#SkPath'>is</a> <a href='SkPath_Reference#SkPath'>volatile</a>; <a href='SkPath_Reference#SkPath'>whether</a> <a href='SkPath_Reference#SkPath'>it</a> <a href='SkPath_Reference#SkPath'>will</a> <a href='SkPath_Reference#SkPath'>be</a> <a href='SkPath_Reference#SkPath'>altered</a> <a href='SkPath_Reference#SkPath'>or</a> <a href='SkPath_Reference#SkPath'>discarded</a>
-by the caller after it is drawn. <a href='SkPath_Reference#SkPath'>SkPath</a> <a href='SkPath_Reference#SkPath'>by</a> <a href='SkPath_Reference#SkPath'>default</a> <a href='SkPath_Reference#SkPath'>have</a> <a href='SkPath_Reference#SkPath'>volatile</a> <a href='SkPath_Reference#SkPath'>set</a> <a href='SkPath_Reference#SkPath'>false</a>, <a href='SkPath_Reference#SkPath'>allowing</a>
-<a href='undocumented#SkBaseDevice'>SkBaseDevice</a> <a href='undocumented#SkBaseDevice'>to</a> <a href='undocumented#SkBaseDevice'>attach</a> <a href='undocumented#SkBaseDevice'>a</a> <a href='undocumented#SkBaseDevice'>cache</a> <a href='undocumented#SkBaseDevice'>of</a> <a href='undocumented#Data'>data</a> <a href='undocumented#Data'>which</a> <a href='undocumented#Data'>speeds</a> <a href='undocumented#Data'>repeated</a> <a href='undocumented#Data'>drawing</a>.
+Specifies whether <a href='SkPath_Reference#SkPath'>SkPath</a> is volatile; whether it will be altered or discarded
+by the caller after it is drawn. <a href='SkPath_Reference#SkPath'>SkPath</a> by default have volatile set false, allowing
+<a href='undocumented#SkBaseDevice'>SkBaseDevice</a> to attach a cache of <a href='undocumented#Data'>data</a> which speeds repeated drawing.
-Mark temporary <a href='SkPath_Reference#Path'>paths</a>, <a href='SkPath_Reference#Path'>discarded</a> <a href='SkPath_Reference#Path'>or</a> <a href='SkPath_Reference#Path'>modified</a> <a href='SkPath_Reference#Path'>after</a> <a href='SkPath_Reference#Path'>use</a>, <a href='SkPath_Reference#Path'>as</a> <a href='SkPath_Reference#Path'>volatile</a>
-to inform <a href='undocumented#SkBaseDevice'>SkBaseDevice</a> <a href='undocumented#SkBaseDevice'>that</a> <a href='undocumented#SkBaseDevice'>the</a> <a href='SkPath_Reference#Path'>path</a> <a href='SkPath_Reference#Path'>need</a> <a href='SkPath_Reference#Path'>not</a> <a href='SkPath_Reference#Path'>be</a> <a href='SkPath_Reference#Path'>cached</a>.
+Mark temporary <a href='SkPath_Reference#Path'>paths</a>, discarded or modified after use, as volatile
+to inform <a href='undocumented#SkBaseDevice'>SkBaseDevice</a> that the <a href='SkPath_Reference#Path'>path</a> need not be cached.
-Mark animating <a href='SkPath_Reference#SkPath'>SkPath</a> <a href='SkPath_Reference#SkPath'>volatile</a> <a href='SkPath_Reference#SkPath'>to</a> <a href='SkPath_Reference#SkPath'>improve</a> <a href='SkPath_Reference#SkPath'>performance</a>.
-Mark unchanging <a href='SkPath_Reference#SkPath'>SkPath</a> <a href='SkPath_Reference#SkPath'>non-volatile</a> <a href='SkPath_Reference#SkPath'>to</a> <a href='SkPath_Reference#SkPath'>improve</a> <a href='SkPath_Reference#SkPath'>repeated</a> <a href='SkPath_Reference#SkPath'>rendering</a>.
+Mark animating <a href='SkPath_Reference#SkPath'>SkPath</a> volatile to improve performance.
+Mark unchanging <a href='SkPath_Reference#SkPath'>SkPath</a> non-volatile to improve repeated rendering.
-<a href='undocumented#Raster_Surface'>raster surface</a> <a href='SkPath_Reference#SkPath'>SkPath</a> <a href='SkPath_Reference#SkPath'>draws</a> <a href='SkPath_Reference#SkPath'>are</a> <a href='SkPath_Reference#SkPath'>affected</a> <a href='SkPath_Reference#SkPath'>by</a> <a href='SkPath_Reference#SkPath'>volatile</a> <a href='SkPath_Reference#SkPath'>for</a> <a href='SkPath_Reference#SkPath'>some</a> <a href='SkPath_Reference#SkPath'>shadows</a>.
-<a href='undocumented#GPU_Surface'>GPU surface</a> <a href='SkPath_Reference#SkPath'>SkPath</a> <a href='SkPath_Reference#SkPath'>draws</a> <a href='SkPath_Reference#SkPath'>are</a> <a href='SkPath_Reference#SkPath'>affected</a> <a href='SkPath_Reference#SkPath'>by</a> <a href='SkPath_Reference#SkPath'>volatile</a> <a href='SkPath_Reference#SkPath'>for</a> <a href='SkPath_Reference#SkPath'>some</a> <a href='SkPath_Reference#SkPath'>shadows</a> <a href='SkPath_Reference#SkPath'>and</a> <a href='SkPath_Reference#SkPath'>concave</a> <a href='SkPath_Reference#SkPath'>geometries</a>.
+<a href='undocumented#Raster_Surface'>raster surface</a> <a href='SkPath_Reference#SkPath'>SkPath</a> draws are affected by volatile for some shadows.
+<a href='undocumented#GPU_Surface'>GPU surface</a> <a href='SkPath_Reference#SkPath'>SkPath</a> draws are affected by volatile for some shadows and concave geometries.
### Parameters
<table> <tr> <td><a name='SkPath_setIsVolatile_isVolatile'><code><strong>isVolatile</strong></code></a></td>
- <td>true if caller will alter <a href='SkPath_Reference#SkPath'>SkPath</a> <a href='SkPath_Reference#SkPath'>after</a> <a href='SkPath_Reference#SkPath'>drawing</a></td>
+ <td>true if caller will alter <a href='SkPath_Reference#SkPath'>SkPath</a> after drawing</td>
</tr>
</table>
@@ -1398,23 +1398,23 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-static bool <a href='#SkPath_IsLineDegenerate'>IsLineDegenerate</a>(<a href='#SkPath_IsLineDegenerate'>const</a> <a href='SkPoint_Reference#SkPoint'>SkPoint</a>& <a href='SkPoint_Reference#SkPoint'>p1</a>, <a href='SkPoint_Reference#SkPoint'>const</a> <a href='SkPoint_Reference#SkPoint'>SkPoint</a>& <a href='SkPoint_Reference#SkPoint'>p2</a>, <a href='SkPoint_Reference#SkPoint'>bool</a> <a href='SkPoint_Reference#SkPoint'>exact</a>)
+static bool <a href='#SkPath_IsLineDegenerate'>IsLineDegenerate</a>(const <a href='SkPoint_Reference#SkPoint'>SkPoint</a>& p1, const <a href='SkPoint_Reference#SkPoint'>SkPoint</a>& p2, bool exact)
</pre>
-Tests if <a href='undocumented#Line'>line</a> <a href='undocumented#Line'>between</a> <a href='SkPoint_Reference#SkPoint'>SkPoint</a> <a href='SkPoint_Reference#SkPoint'>pair</a> <a href='SkPoint_Reference#SkPoint'>is</a> <a href='SkPoint_Reference#SkPoint'>degenerate</a>.
-<a href='undocumented#Line'>Line</a> <a href='undocumented#Line'>with</a> <a href='undocumented#Line'>no</a> <a href='undocumented#Line'>length</a> <a href='undocumented#Line'>or</a> <a href='undocumented#Line'>that</a> <a href='undocumented#Line'>moves</a> <a href='undocumented#Line'>a</a> <a href='undocumented#Line'>very</a> <a href='undocumented#Line'>short</a> <a href='undocumented#Line'>distance</a> <a href='undocumented#Line'>is</a> <a href='undocumented#Line'>degenerate</a>; <a href='undocumented#Line'>it</a> <a href='undocumented#Line'>is</a>
+Tests if <a href='undocumented#Line'>line</a> between <a href='SkPoint_Reference#SkPoint'>SkPoint</a> pair is degenerate.
+<a href='undocumented#Line'>Line</a> with no length or that moves a very short distance is degenerate; it is
treated as a <a href='SkPoint_Reference#Point'>point</a>.
-<a href='#SkPath_IsLineDegenerate_exact'>exact</a> <a href='#SkPath_IsLineDegenerate_exact'>changes</a> <a href='#SkPath_IsLineDegenerate_exact'>the</a> <a href='#SkPath_IsLineDegenerate_exact'>equality</a> <a href='#SkPath_IsLineDegenerate_exact'>test</a>. <a href='#SkPath_IsLineDegenerate_exact'>If</a> <a href='#SkPath_IsLineDegenerate_exact'>true</a>, <a href='#SkPath_IsLineDegenerate_exact'>returns</a> <a href='#SkPath_IsLineDegenerate_exact'>true</a> <a href='#SkPath_IsLineDegenerate_exact'>only</a> <a href='#SkPath_IsLineDegenerate_exact'>if</a> <a href='#SkPath_IsLineDegenerate_p1'>p1</a> <a href='#SkPath_IsLineDegenerate_p1'>equals</a> <a href='#SkPath_IsLineDegenerate_p2'>p2</a>.
-If false, returns true if <a href='#SkPath_IsLineDegenerate_p1'>p1</a> <a href='#SkPath_IsLineDegenerate_p1'>equals</a> <a href='#SkPath_IsLineDegenerate_p1'>or</a> <a href='#SkPath_IsLineDegenerate_p1'>nearly</a> <a href='#SkPath_IsLineDegenerate_p1'>equals</a> <a href='#SkPath_IsLineDegenerate_p2'>p2</a>.
+<a href='#SkPath_IsLineDegenerate_exact'>exact</a> changes the equality test. If true, returns true only if <a href='#SkPath_IsLineDegenerate_p1'>p1</a> equals <a href='#SkPath_IsLineDegenerate_p2'>p2</a>.
+If false, returns true if <a href='#SkPath_IsLineDegenerate_p1'>p1</a> equals or nearly equals <a href='#SkPath_IsLineDegenerate_p2'>p2</a>.
### Parameters
<table> <tr> <td><a name='SkPath_IsLineDegenerate_p1'><code><strong>p1</strong></code></a></td>
- <td><a href='undocumented#Line'>line</a> <a href='undocumented#Line'>start</a> <a href='SkPoint_Reference#Point'>point</a></td>
+ <td><a href='undocumented#Line'>line</a> start <a href='SkPoint_Reference#Point'>point</a></td>
</tr>
<tr> <td><a name='SkPath_IsLineDegenerate_p2'><code><strong>p2</strong></code></a></td>
- <td><a href='undocumented#Line'>line</a> <a href='undocumented#Line'>end</a> <a href='SkPoint_Reference#Point'>point</a></td>
+ <td><a href='undocumented#Line'>line</a> end <a href='SkPoint_Reference#Point'>point</a></td>
</tr>
<tr> <td><a name='SkPath_IsLineDegenerate_exact'><code><strong>exact</strong></code></a></td>
<td>if false, allow nearly equals</td>
@@ -1423,7 +1423,7 @@
### Return Value
-true if <a href='undocumented#Line'>line</a> <a href='undocumented#Line'>is</a> <a href='undocumented#Line'>degenerate</a>; <a href='undocumented#Line'>its</a> <a href='undocumented#Line'>length</a> <a href='undocumented#Line'>is</a> <a href='undocumented#Line'>effectively</a> <a href='undocumented#Line'>zero</a>
+true if <a href='undocumented#Line'>line</a> is degenerate; its length is effectively zero
### Example
@@ -1452,34 +1452,34 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-static bool <a href='#SkPath_IsQuadDegenerate'>IsQuadDegenerate</a>(<a href='#SkPath_IsQuadDegenerate'>const</a> <a href='SkPoint_Reference#SkPoint'>SkPoint</a>& <a href='SkPoint_Reference#SkPoint'>p1</a>, <a href='SkPoint_Reference#SkPoint'>const</a> <a href='SkPoint_Reference#SkPoint'>SkPoint</a>& <a href='SkPoint_Reference#SkPoint'>p2</a>, <a href='SkPoint_Reference#SkPoint'>const</a> <a href='SkPoint_Reference#SkPoint'>SkPoint</a>& <a href='SkPoint_Reference#SkPoint'>p3</a>, <a href='SkPoint_Reference#SkPoint'>bool</a> <a href='SkPoint_Reference#SkPoint'>exact</a>)
+static bool <a href='#SkPath_IsQuadDegenerate'>IsQuadDegenerate</a>(const <a href='SkPoint_Reference#SkPoint'>SkPoint</a>& p1, const <a href='SkPoint_Reference#SkPoint'>SkPoint</a>& p2, const <a href='SkPoint_Reference#SkPoint'>SkPoint</a>& p3, bool exact)
</pre>
-Tests if <a href='SkPath_Reference#Quad'>quad</a> <a href='SkPath_Reference#Quad'>is</a> <a href='SkPath_Reference#Quad'>degenerate</a>.
-<a href='SkPath_Reference#Quad'>Quad</a> <a href='SkPath_Reference#Quad'>with</a> <a href='SkPath_Reference#Quad'>no</a> <a href='SkPath_Reference#Quad'>length</a> <a href='SkPath_Reference#Quad'>or</a> <a href='SkPath_Reference#Quad'>that</a> <a href='SkPath_Reference#Quad'>moves</a> <a href='SkPath_Reference#Quad'>a</a> <a href='SkPath_Reference#Quad'>very</a> <a href='SkPath_Reference#Quad'>short</a> <a href='SkPath_Reference#Quad'>distance</a> <a href='SkPath_Reference#Quad'>is</a> <a href='SkPath_Reference#Quad'>degenerate</a>; <a href='SkPath_Reference#Quad'>it</a> <a href='SkPath_Reference#Quad'>is</a>
+Tests if <a href='SkPath_Reference#Quad'>quad</a> is degenerate.
+<a href='SkPath_Reference#Quad'>Quad</a> with no length or that moves a very short distance is degenerate; it is
treated as a <a href='SkPoint_Reference#Point'>point</a>.
### Parameters
<table> <tr> <td><a name='SkPath_IsQuadDegenerate_p1'><code><strong>p1</strong></code></a></td>
- <td><a href='SkPath_Reference#Quad'>quad</a> <a href='SkPath_Reference#Quad'>start</a> <a href='SkPoint_Reference#Point'>point</a></td>
+ <td><a href='SkPath_Reference#Quad'>quad</a> start <a href='SkPoint_Reference#Point'>point</a></td>
</tr>
<tr> <td><a name='SkPath_IsQuadDegenerate_p2'><code><strong>p2</strong></code></a></td>
- <td><a href='SkPath_Reference#Quad'>quad</a> <a href='SkPath_Reference#Quad'>control</a> <a href='SkPoint_Reference#Point'>point</a></td>
+ <td><a href='SkPath_Reference#Quad'>quad</a> control <a href='SkPoint_Reference#Point'>point</a></td>
</tr>
<tr> <td><a name='SkPath_IsQuadDegenerate_p3'><code><strong>p3</strong></code></a></td>
- <td><a href='SkPath_Reference#Quad'>quad</a> <a href='SkPath_Reference#Quad'>end</a> <a href='SkPoint_Reference#Point'>point</a></td>
+ <td><a href='SkPath_Reference#Quad'>quad</a> end <a href='SkPoint_Reference#Point'>point</a></td>
</tr>
<tr> <td><a name='SkPath_IsQuadDegenerate_exact'><code><strong>exact</strong></code></a></td>
- <td>if true, returns true only if <a href='#SkPath_IsQuadDegenerate_p1'>p1</a>, <a href='#SkPath_IsQuadDegenerate_p2'>p2</a>, <a href='#SkPath_IsQuadDegenerate_p2'>and</a> <a href='#SkPath_IsQuadDegenerate_p3'>p3</a> <a href='#SkPath_IsQuadDegenerate_p3'>are</a> <a href='#SkPath_IsQuadDegenerate_p3'>equal</a>;</td>
+ <td>if true, returns true only if <a href='#SkPath_IsQuadDegenerate_p1'>p1</a>, <a href='#SkPath_IsQuadDegenerate_p2'>p2</a>, and <a href='#SkPath_IsQuadDegenerate_p3'>p3</a> are equal;</td>
</tr>
</table>
-if false, returns true if <a href='#SkPath_IsQuadDegenerate_p1'>p1</a>, <a href='#SkPath_IsQuadDegenerate_p2'>p2</a>, <a href='#SkPath_IsQuadDegenerate_p2'>and</a> <a href='#SkPath_IsQuadDegenerate_p3'>p3</a> <a href='#SkPath_IsQuadDegenerate_p3'>are</a> <a href='#SkPath_IsQuadDegenerate_p3'>equal</a> <a href='#SkPath_IsQuadDegenerate_p3'>or</a> <a href='#SkPath_IsQuadDegenerate_p3'>nearly</a> <a href='#SkPath_IsQuadDegenerate_p3'>equal</a>
+if false, returns true if <a href='#SkPath_IsQuadDegenerate_p1'>p1</a>, <a href='#SkPath_IsQuadDegenerate_p2'>p2</a>, and <a href='#SkPath_IsQuadDegenerate_p3'>p3</a> are equal or nearly equal
### Return Value
-true if <a href='SkPath_Reference#Quad'>quad</a> <a href='SkPath_Reference#Quad'>is</a> <a href='SkPath_Reference#Quad'>degenerate</a>; <a href='SkPath_Reference#Quad'>its</a> <a href='SkPath_Reference#Quad'>length</a> <a href='SkPath_Reference#Quad'>is</a> <a href='SkPath_Reference#Quad'>effectively</a> <a href='SkPath_Reference#Quad'>zero</a>
+true if <a href='SkPath_Reference#Quad'>quad</a> is degenerate; its length is effectively zero
### Example
@@ -1508,38 +1508,38 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-static bool <a href='#SkPath_IsCubicDegenerate'>IsCubicDegenerate</a>(<a href='#SkPath_IsCubicDegenerate'>const</a> <a href='SkPoint_Reference#SkPoint'>SkPoint</a>& <a href='SkPoint_Reference#SkPoint'>p1</a>, <a href='SkPoint_Reference#SkPoint'>const</a> <a href='SkPoint_Reference#SkPoint'>SkPoint</a>& <a href='SkPoint_Reference#SkPoint'>p2</a>, <a href='SkPoint_Reference#SkPoint'>const</a> <a href='SkPoint_Reference#SkPoint'>SkPoint</a>& <a href='SkPoint_Reference#SkPoint'>p3</a>,
- <a href='SkPoint_Reference#SkPoint'>const</a> <a href='SkPoint_Reference#SkPoint'>SkPoint</a>& <a href='SkPoint_Reference#SkPoint'>p4</a>, <a href='SkPoint_Reference#SkPoint'>bool</a> <a href='SkPoint_Reference#SkPoint'>exact</a>)
+static bool <a href='#SkPath_IsCubicDegenerate'>IsCubicDegenerate</a>(const <a href='SkPoint_Reference#SkPoint'>SkPoint</a>& p1, const <a href='SkPoint_Reference#SkPoint'>SkPoint</a>& p2, const <a href='SkPoint_Reference#SkPoint'>SkPoint</a>& p3,
+ const <a href='SkPoint_Reference#SkPoint'>SkPoint</a>& p4, bool exact)
</pre>
-Tests if <a href='SkPath_Reference#Cubic'>cubic</a> <a href='SkPath_Reference#Cubic'>is</a> <a href='SkPath_Reference#Cubic'>degenerate</a>.
-<a href='SkPath_Reference#Cubic'>Cubic</a> <a href='SkPath_Reference#Cubic'>with</a> <a href='SkPath_Reference#Cubic'>no</a> <a href='SkPath_Reference#Cubic'>length</a> <a href='SkPath_Reference#Cubic'>or</a> <a href='SkPath_Reference#Cubic'>that</a> <a href='SkPath_Reference#Cubic'>moves</a> <a href='SkPath_Reference#Cubic'>a</a> <a href='SkPath_Reference#Cubic'>very</a> <a href='SkPath_Reference#Cubic'>short</a> <a href='SkPath_Reference#Cubic'>distance</a> <a href='SkPath_Reference#Cubic'>is</a> <a href='SkPath_Reference#Cubic'>degenerate</a>; <a href='SkPath_Reference#Cubic'>it</a> <a href='SkPath_Reference#Cubic'>is</a>
+Tests if <a href='SkPath_Reference#Cubic'>cubic</a> is degenerate.
+<a href='SkPath_Reference#Cubic'>Cubic</a> with no length or that moves a very short distance is degenerate; it is
treated as a <a href='SkPoint_Reference#Point'>point</a>.
### Parameters
<table> <tr> <td><a name='SkPath_IsCubicDegenerate_p1'><code><strong>p1</strong></code></a></td>
- <td><a href='SkPath_Reference#Cubic'>cubic</a> <a href='SkPath_Reference#Cubic'>start</a> <a href='SkPoint_Reference#Point'>point</a></td>
+ <td><a href='SkPath_Reference#Cubic'>cubic</a> start <a href='SkPoint_Reference#Point'>point</a></td>
</tr>
<tr> <td><a name='SkPath_IsCubicDegenerate_p2'><code><strong>p2</strong></code></a></td>
- <td><a href='SkPath_Reference#Cubic'>cubic</a> <a href='SkPath_Reference#Cubic'>control</a> <a href='SkPoint_Reference#Point'>point</a> 1</td>
+ <td><a href='SkPath_Reference#Cubic'>cubic</a> control <a href='SkPoint_Reference#Point'>point</a> 1</td>
</tr>
<tr> <td><a name='SkPath_IsCubicDegenerate_p3'><code><strong>p3</strong></code></a></td>
- <td><a href='SkPath_Reference#Cubic'>cubic</a> <a href='SkPath_Reference#Cubic'>control</a> <a href='SkPoint_Reference#Point'>point</a> 2</td>
+ <td><a href='SkPath_Reference#Cubic'>cubic</a> control <a href='SkPoint_Reference#Point'>point</a> 2</td>
</tr>
<tr> <td><a name='SkPath_IsCubicDegenerate_p4'><code><strong>p4</strong></code></a></td>
- <td><a href='SkPath_Reference#Cubic'>cubic</a> <a href='SkPath_Reference#Cubic'>end</a> <a href='SkPoint_Reference#Point'>point</a></td>
+ <td><a href='SkPath_Reference#Cubic'>cubic</a> end <a href='SkPoint_Reference#Point'>point</a></td>
</tr>
<tr> <td><a name='SkPath_IsCubicDegenerate_exact'><code><strong>exact</strong></code></a></td>
- <td>if true, returns true only if <a href='#SkPath_IsCubicDegenerate_p1'>p1</a>, <a href='#SkPath_IsCubicDegenerate_p2'>p2</a>, <a href='#SkPath_IsCubicDegenerate_p3'>p3</a>, <a href='#SkPath_IsCubicDegenerate_p3'>and</a> <a href='#SkPath_IsCubicDegenerate_p4'>p4</a> <a href='#SkPath_IsCubicDegenerate_p4'>are</a> <a href='#SkPath_IsCubicDegenerate_p4'>equal</a>;</td>
+ <td>if true, returns true only if <a href='#SkPath_IsCubicDegenerate_p1'>p1</a>, <a href='#SkPath_IsCubicDegenerate_p2'>p2</a>, <a href='#SkPath_IsCubicDegenerate_p3'>p3</a>, and <a href='#SkPath_IsCubicDegenerate_p4'>p4</a> are equal;</td>
</tr>
</table>
-if false, returns true if <a href='#SkPath_IsCubicDegenerate_p1'>p1</a>, <a href='#SkPath_IsCubicDegenerate_p2'>p2</a>, <a href='#SkPath_IsCubicDegenerate_p3'>p3</a>, <a href='#SkPath_IsCubicDegenerate_p3'>and</a> <a href='#SkPath_IsCubicDegenerate_p4'>p4</a> <a href='#SkPath_IsCubicDegenerate_p4'>are</a> <a href='#SkPath_IsCubicDegenerate_p4'>equal</a> <a href='#SkPath_IsCubicDegenerate_p4'>or</a> <a href='#SkPath_IsCubicDegenerate_p4'>nearly</a> <a href='#SkPath_IsCubicDegenerate_p4'>equal</a>
+if false, returns true if <a href='#SkPath_IsCubicDegenerate_p1'>p1</a>, <a href='#SkPath_IsCubicDegenerate_p2'>p2</a>, <a href='#SkPath_IsCubicDegenerate_p3'>p3</a>, and <a href='#SkPath_IsCubicDegenerate_p4'>p4</a> are equal or nearly equal
### Return Value
-true if <a href='SkPath_Reference#Cubic'>cubic</a> <a href='SkPath_Reference#Cubic'>is</a> <a href='SkPath_Reference#Cubic'>degenerate</a>; <a href='SkPath_Reference#Cubic'>its</a> <a href='SkPath_Reference#Cubic'>length</a> <a href='SkPath_Reference#Cubic'>is</a> <a href='SkPath_Reference#Cubic'>effectively</a> <a href='SkPath_Reference#Cubic'>zero</a>
+true if <a href='SkPath_Reference#Cubic'>cubic</a> is degenerate; its length is effectively zero
### Example
@@ -1559,25 +1559,25 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-bool <a href='#SkPath_isLine'>isLine</a>(<a href='SkPoint_Reference#SkPoint'>SkPoint</a> <a href='undocumented#Line'>line</a>[2]) <a href='undocumented#Line'>const</a>
+bool <a href='#SkPath_isLine'>isLine</a>(<a href='SkPoint_Reference#SkPoint'>SkPoint</a> <a href='undocumented#Line'>line</a>[2]) const
</pre>
-Returns true if <a href='SkPath_Reference#SkPath'>SkPath</a> <a href='SkPath_Reference#SkPath'>contains</a> <a href='SkPath_Reference#SkPath'>only</a> <a href='SkPath_Reference#SkPath'>one</a> <a href='#SkPath_isLine_line'>line</a>;
-<a href='SkPath_Reference#SkPath'>SkPath</a>::<a href='#SkPath_Verb'>Verb</a> <a href='#SkPath_Verb'>array</a> <a href='#SkPath_Verb'>has</a> <a href='#SkPath_Verb'>two</a> <a href='#SkPath_Verb'>entries</a>: <a href='#SkPath_kMove_Verb'>kMove_Verb</a>, <a href='#SkPath_kLine_Verb'>kLine_Verb</a>.
-If <a href='SkPath_Reference#SkPath'>SkPath</a> <a href='SkPath_Reference#SkPath'>contains</a> <a href='SkPath_Reference#SkPath'>one</a> <a href='#SkPath_isLine_line'>line</a> <a href='#SkPath_isLine_line'>and</a> <a href='#SkPath_isLine_line'>line</a> <a href='#SkPath_isLine_line'>is</a> <a href='#SkPath_isLine_line'>not</a> <a href='#SkPath_isLine_line'>nullptr</a>, <a href='#SkPath_isLine_line'>line</a> <a href='#SkPath_isLine_line'>is</a> <a href='#SkPath_isLine_line'>set</a> <a href='#SkPath_isLine_line'>to</a>
-<a href='#SkPath_isLine_line'>line</a> <a href='#SkPath_isLine_line'>start</a> <a href='SkPoint_Reference#Point'>point</a> <a href='SkPoint_Reference#Point'>and</a> <a href='#SkPath_isLine_line'>line</a> <a href='#SkPath_isLine_line'>end</a> <a href='SkPoint_Reference#Point'>point</a>.
-Returns false if <a href='SkPath_Reference#SkPath'>SkPath</a> <a href='SkPath_Reference#SkPath'>is</a> <a href='SkPath_Reference#SkPath'>not</a> <a href='SkPath_Reference#SkPath'>one</a> <a href='#SkPath_isLine_line'>line</a>; <a href='#SkPath_isLine_line'>line</a> <a href='#SkPath_isLine_line'>is</a> <a href='#SkPath_isLine_line'>unaltered</a>.
+Returns true if <a href='SkPath_Reference#SkPath'>SkPath</a> contains only one <a href='#SkPath_isLine_line'>line</a>;
+<a href='SkPath_Reference#SkPath'>SkPath</a>::<a href='#SkPath_Verb'>Verb</a> array has two entries: <a href='#SkPath_kMove_Verb'>kMove_Verb</a>, <a href='#SkPath_kLine_Verb'>kLine_Verb</a>.
+If <a href='SkPath_Reference#SkPath'>SkPath</a> contains one <a href='#SkPath_isLine_line'>line</a> and <a href='#SkPath_isLine_line'>line</a> is not nullptr, <a href='#SkPath_isLine_line'>line</a> is set to
+<a href='#SkPath_isLine_line'>line</a> start <a href='SkPoint_Reference#Point'>point</a> and <a href='#SkPath_isLine_line'>line</a> end <a href='SkPoint_Reference#Point'>point</a>.
+Returns false if <a href='SkPath_Reference#SkPath'>SkPath</a> is not one <a href='#SkPath_isLine_line'>line</a>; <a href='#SkPath_isLine_line'>line</a> is unaltered.
### Parameters
<table> <tr> <td><a name='SkPath_isLine_line'><code><strong>line</strong></code></a></td>
- <td>storage for <a href='#SkPath_isLine_line'>line</a>. <a href='#SkPath_isLine_line'>May</a> <a href='#SkPath_isLine_line'>be</a> <a href='#SkPath_isLine_line'>nullptr</a></td>
+ <td>storage for <a href='#SkPath_isLine_line'>line</a>. May be nullptr</td>
</tr>
</table>
### Return Value
-true if <a href='SkPath_Reference#SkPath'>SkPath</a> <a href='SkPath_Reference#SkPath'>contains</a> <a href='SkPath_Reference#SkPath'>exactly</a> <a href='SkPath_Reference#SkPath'>one</a> <a href='#SkPath_isLine_line'>line</a>
+true if <a href='SkPath_Reference#SkPath'>SkPath</a> contains exactly one <a href='#SkPath_isLine_line'>line</a>
### Example
@@ -1596,30 +1596,30 @@
<a name='Point_Array'></a>
-<a href='#Path_Point_Array'>Point_Array</a> <a href='#Path_Point_Array'>contains</a> <a href='SkPoint_Reference#Point'>Points</a> <a href='SkPoint_Reference#Point'>satisfying</a> <a href='SkPoint_Reference#Point'>the</a> <a href='SkPoint_Reference#Point'>allocated</a> <a href='SkPoint_Reference#Point'>Points</a> <a href='SkPoint_Reference#Point'>for</a>
-<a href='SkPoint_Reference#Point'>each</a> <a href='#SkPath_Verb'>Verb</a> <a href='#SkPath_Verb'>in</a> <a href='#Path_Verb_Array'>Verb_Array</a>. <a href='#Path_Verb_Array'>For</a> <a href='#Path_Verb_Array'>instance</a>, <a href='SkPath_Reference#Path'>Path</a> <a href='SkPath_Reference#Path'>containing</a> <a href='SkPath_Reference#Path'>one</a> <a href='SkPath_Overview#Contour'>Contour</a> <a href='SkPath_Overview#Contour'>with</a> <a href='undocumented#Line'>Line</a>
-<a href='undocumented#Line'>and</a> <a href='SkPath_Reference#Quad'>Quad</a> <a href='SkPath_Reference#Quad'>is</a> <a href='SkPath_Reference#Quad'>described</a> <a href='SkPath_Reference#Quad'>by</a> <a href='#Path_Verb_Array'>Verb_Array</a>: <a href='#SkPath_kMove_Verb'>kMove_Verb</a>, <a href='#SkPath_kLine_Verb'>kLine_Verb</a>, <a href='#SkPath_kQuad_Verb'>kQuad_Verb</a>; <a href='#SkPath_kQuad_Verb'>and</a>
-<a href='#SkPath_kQuad_Verb'>one</a> <a href='SkPoint_Reference#Point'>Point</a> <a href='SkPoint_Reference#Point'>for</a> <a href='SkPoint_Reference#Point'>move</a>, <a href='SkPoint_Reference#Point'>one</a> <a href='SkPoint_Reference#Point'>Point</a> <a href='SkPoint_Reference#Point'>for</a> <a href='undocumented#Line'>Line</a>, <a href='undocumented#Line'>two</a> <a href='SkPoint_Reference#Point'>Points</a> <a href='SkPoint_Reference#Point'>for</a> <a href='SkPath_Reference#Quad'>Quad</a>; <a href='SkPath_Reference#Quad'>totaling</a> <a href='SkPath_Reference#Quad'>four</a> <a href='SkPoint_Reference#Point'>Points</a>.
+<a href='#Path_Point_Array'>Point_Array</a> contains <a href='SkPoint_Reference#Point'>Points</a> satisfying the allocated <a href='SkPoint_Reference#Point'>Points</a> for
+each <a href='#SkPath_Verb'>Verb</a> in <a href='#Path_Verb_Array'>Verb_Array</a>. For instance, <a href='SkPath_Reference#Path'>Path</a> containing one <a href='SkPath_Overview#Contour'>Contour</a> with <a href='undocumented#Line'>Line</a>
+and <a href='SkPath_Reference#Quad'>Quad</a> is described by <a href='#Path_Verb_Array'>Verb_Array</a>: <a href='#SkPath_kMove_Verb'>kMove_Verb</a>, <a href='#SkPath_kLine_Verb'>kLine_Verb</a>, <a href='#SkPath_kQuad_Verb'>kQuad_Verb</a>; and
+one <a href='SkPoint_Reference#Point'>Point</a> for move, one <a href='SkPoint_Reference#Point'>Point</a> for <a href='undocumented#Line'>Line</a>, two <a href='SkPoint_Reference#Point'>Points</a> for <a href='SkPath_Reference#Quad'>Quad</a>; totaling four <a href='SkPoint_Reference#Point'>Points</a>.
-<a href='#Path_Point_Array'>Point_Array</a> <a href='#Path_Point_Array'>may</a> <a href='#Path_Point_Array'>be</a> <a href='#Path_Point_Array'>read</a> <a href='#Path_Point_Array'>directly</a> <a href='#Path_Point_Array'>from</a> <a href='SkPath_Reference#Path'>Path</a> <a href='SkPath_Reference#Path'>with</a> <a href='#SkPath_getPoints'>getPoints</a>, <a href='#SkPath_getPoints'>or</a> <a href='#SkPath_getPoints'>inspected</a> <a href='#SkPath_getPoints'>with</a>
-<a href='#SkPath_getPoint'>getPoint</a>, <a href='#SkPath_getPoint'>with</a> <a href='#SkPath_Iter'>Iter</a>, <a href='#SkPath_Iter'>or</a> <a href='#SkPath_Iter'>with</a> <a href='#SkPath_RawIter'>RawIter</a>.
+<a href='#Path_Point_Array'>Point_Array</a> may be read directly from <a href='SkPath_Reference#Path'>Path</a> with <a href='#SkPath_getPoints'>getPoints</a>, or inspected with
+<a href='#SkPath_getPoint'>getPoint</a>, with <a href='#SkPath_Iter'>Iter</a>, or with <a href='#SkPath_RawIter'>RawIter</a>.
<a name='SkPath_getPoints'></a>
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-int <a href='#SkPath_getPoints'>getPoints</a>(<a href='SkPoint_Reference#SkPoint'>SkPoint</a> <a href='SkPoint_Reference#Point'>points</a>[], <a href='SkPoint_Reference#Point'>int</a> <a href='SkPoint_Reference#Point'>max</a>) <a href='SkPoint_Reference#Point'>const</a>
+int <a href='#SkPath_getPoints'>getPoints</a>(<a href='SkPoint_Reference#SkPoint'>SkPoint</a> <a href='SkPoint_Reference#Point'>points</a>[], int max) const
</pre>
-Returns number of <a href='#SkPath_getPoints_points'>points</a> <a href='#SkPath_getPoints_points'>in</a> <a href='SkPath_Reference#SkPath'>SkPath</a>. <a href='SkPath_Reference#SkPath'>Up</a> <a href='SkPath_Reference#SkPath'>to</a> <a href='#SkPath_getPoints_max'>max</a> <a href='#SkPath_getPoints_points'>points</a> <a href='#SkPath_getPoints_points'>are</a> <a href='#SkPath_getPoints_points'>copied</a>.
-<a href='#SkPath_getPoints_points'>points</a> <a href='#SkPath_getPoints_points'>may</a> <a href='#SkPath_getPoints_points'>be</a> <a href='#SkPath_getPoints_points'>nullptr</a>; <a href='#SkPath_getPoints_points'>then</a>, <a href='#SkPath_getPoints_max'>max</a> <a href='#SkPath_getPoints_max'>must</a> <a href='#SkPath_getPoints_max'>be</a> <a href='#SkPath_getPoints_max'>zero</a>.
-If <a href='#SkPath_getPoints_max'>max</a> <a href='#SkPath_getPoints_max'>is</a> <a href='#SkPath_getPoints_max'>greater</a> <a href='#SkPath_getPoints_max'>than</a> <a href='#SkPath_getPoints_max'>number</a> <a href='#SkPath_getPoints_max'>of</a> <a href='#SkPath_getPoints_points'>points</a>, <a href='#SkPath_getPoints_points'>excess</a> <a href='#SkPath_getPoints_points'>points</a> <a href='#SkPath_getPoints_points'>storage</a> <a href='#SkPath_getPoints_points'>is</a> <a href='#SkPath_getPoints_points'>unaltered</a>.
+Returns number of <a href='#SkPath_getPoints_points'>points</a> in <a href='SkPath_Reference#SkPath'>SkPath</a>. Up to <a href='#SkPath_getPoints_max'>max</a> <a href='#SkPath_getPoints_points'>points</a> are copied.
+<a href='#SkPath_getPoints_points'>points</a> may be nullptr; then, <a href='#SkPath_getPoints_max'>max</a> must be zero.
+If <a href='#SkPath_getPoints_max'>max</a> is greater than number of <a href='#SkPath_getPoints_points'>points</a>, excess <a href='#SkPath_getPoints_points'>points</a> storage is unaltered.
### Parameters
<table> <tr> <td><a name='SkPath_getPoints_points'><code><strong>points</strong></code></a></td>
- <td>storage for <a href='SkPath_Reference#SkPath'>SkPath</a> <a href='SkPath_Reference#Point_Array'>SkPoint array</a>. <a href='SkPoint_Reference#SkPoint'>May</a> <a href='SkPoint_Reference#SkPoint'>be</a> <a href='SkPoint_Reference#SkPoint'>nullptr</a></td>
+ <td>storage for <a href='SkPath_Reference#SkPath'>SkPath</a> <a href='SkPath_Reference#Point_Array'>SkPoint array</a>. May be nullptr</td>
</tr>
<tr> <td><a name='SkPath_getPoints_max'><code><strong>max</strong></code></a></td>
<td>maximum to copy; must be greater than or equal to zero</td>
@@ -1628,7 +1628,7 @@
### Return Value
-<a href='SkPath_Reference#SkPath'>SkPath</a> <a href='SkPath_Reference#Point_Array'>SkPoint array</a> <a href='SkPoint_Reference#SkPoint'>length</a>
+<a href='SkPath_Reference#SkPath'>SkPath</a> <a href='SkPath_Reference#Point_Array'>SkPoint array</a> length
### Example
@@ -1654,15 +1654,15 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-int <a href='#SkPath_countPoints'>countPoints</a>() <a href='#SkPath_countPoints'>const</a>
+int <a href='#SkPath_countPoints'>countPoints</a>() const
</pre>
-Returns the number of <a href='SkPoint_Reference#Point'>points</a> <a href='SkPoint_Reference#Point'>in</a> <a href='SkPath_Reference#SkPath'>SkPath</a>.
-<a href='SkPoint_Reference#SkPoint'>SkPoint</a> <a href='SkPoint_Reference#SkPoint'>count</a> <a href='SkPoint_Reference#SkPoint'>is</a> <a href='SkPoint_Reference#SkPoint'>initially</a> <a href='SkPoint_Reference#SkPoint'>zero</a>.
+Returns the number of <a href='SkPoint_Reference#Point'>points</a> in <a href='SkPath_Reference#SkPath'>SkPath</a>.
+<a href='SkPoint_Reference#SkPoint'>SkPoint</a> count is initially zero.
### Return Value
-<a href='SkPath_Reference#SkPath'>SkPath</a> <a href='SkPoint_Reference#SkPoint'>SkPoint</a> <a href='SkPoint_Reference#SkPoint'>array</a> <a href='SkPoint_Reference#SkPoint'>length</a>
+<a href='SkPath_Reference#SkPath'>SkPath</a> <a href='SkPoint_Reference#SkPoint'>SkPoint</a> array length
### Example
@@ -1688,23 +1688,23 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-<a href='SkPoint_Reference#SkPoint'>SkPoint</a> <a href='#SkPath_getPoint'>getPoint</a>(<a href='#SkPath_getPoint'>int</a> <a href='#SkPath_getPoint'>index</a>) <a href='#SkPath_getPoint'>const</a>
+<a href='SkPoint_Reference#SkPoint'>SkPoint</a> <a href='#SkPath_getPoint'>getPoint</a>(int index) const
</pre>
-Returns <a href='SkPoint_Reference#SkPoint'>SkPoint</a> <a href='SkPoint_Reference#SkPoint'>at</a> <a href='#SkPath_getPoint_index'>index</a> <a href='#SkPath_getPoint_index'>in</a> <a href='SkPath_Reference#Point_Array'>SkPoint array</a>. <a href='SkPoint_Reference#SkPoint'>Valid</a> <a href='SkPoint_Reference#SkPoint'>range</a> <a href='SkPoint_Reference#SkPoint'>for</a> <a href='#SkPath_getPoint_index'>index</a> <a href='#SkPath_getPoint_index'>is</a>
+Returns <a href='SkPoint_Reference#SkPoint'>SkPoint</a> at <a href='#SkPath_getPoint_index'>index</a> in <a href='SkPath_Reference#Point_Array'>SkPoint array</a>. Valid range for <a href='#SkPath_getPoint_index'>index</a> is
0 to <a href='#SkPath_countPoints'>countPoints</a>() - 1.
-Returns (0, 0) if <a href='#SkPath_getPoint_index'>index</a> <a href='#SkPath_getPoint_index'>is</a> <a href='#SkPath_getPoint_index'>out</a> <a href='#SkPath_getPoint_index'>of</a> <a href='#SkPath_getPoint_index'>range</a>.
+Returns (0, 0) if <a href='#SkPath_getPoint_index'>index</a> is out of range.
### Parameters
<table> <tr> <td><a name='SkPath_getPoint_index'><code><strong>index</strong></code></a></td>
- <td><a href='SkPath_Reference#Point_Array'>SkPoint array</a> <a href='SkPoint_Reference#SkPoint'>element</a> <a href='SkPoint_Reference#SkPoint'>selector</a></td>
+ <td><a href='SkPath_Reference#Point_Array'>SkPoint array</a> element selector</td>
</tr>
</table>
### Return Value
-<a href='SkPath_Reference#Point_Array'>SkPoint array</a> <a href='SkPoint_Reference#SkPoint'>value</a> <a href='SkPoint_Reference#SkPoint'>or</a> (0, 0)
+<a href='SkPath_Reference#Point_Array'>SkPoint array</a> value or (0, 0)
### Example
@@ -1725,25 +1725,25 @@
<a name='Verb_Array'></a>
-<a href='#Path_Verb_Array'>Verb_Array</a> <a href='#Path_Verb_Array'>always</a> <a href='#Path_Verb_Array'>starts</a> <a href='#Path_Verb_Array'>with</a> <a href='#SkPath_kMove_Verb'>kMove_Verb</a>.
-<a href='#SkPath_kMove_Verb'>If</a> <a href='#SkPath_kClose_Verb'>kClose_Verb</a> <a href='#SkPath_kClose_Verb'>is</a> <a href='#SkPath_kClose_Verb'>not</a> <a href='#SkPath_kClose_Verb'>the</a> <a href='#SkPath_kClose_Verb'>last</a> <a href='#SkPath_kClose_Verb'>entry</a>, <a href='#SkPath_kClose_Verb'>it</a> <a href='#SkPath_kClose_Verb'>is</a> <a href='#SkPath_kClose_Verb'>always</a> <a href='#SkPath_kClose_Verb'>followed</a> <a href='#SkPath_kClose_Verb'>by</a> <a href='#SkPath_kMove_Verb'>kMove_Verb</a>;
-<a href='#SkPath_kMove_Verb'>the</a> <a href='#SkPath_kMove_Verb'>quantity</a> <a href='#SkPath_kMove_Verb'>of</a> <a href='#SkPath_kMove_Verb'>kMove_Verb</a> <a href='#SkPath_kMove_Verb'>equals</a> <a href='#SkPath_kMove_Verb'>the</a> <a href='SkPath_Overview#Contour'>Contour</a> <a href='SkPath_Overview#Contour'>count</a>.
-<a href='#Path_Verb_Array'>Verb_Array</a> <a href='#Path_Verb_Array'>does</a> <a href='#Path_Verb_Array'>not</a> <a href='#Path_Verb_Array'>include</a> <a href='#Path_Verb_Array'>or</a> <a href='#Path_Verb_Array'>count</a> <a href='#SkPath_kDone_Verb'>kDone_Verb</a>; <a href='#SkPath_kDone_Verb'>it</a> <a href='#SkPath_kDone_Verb'>is</a> <a href='#SkPath_kDone_Verb'>a</a> <a href='#SkPath_kDone_Verb'>convenience</a>
-<a href='#SkPath_kDone_Verb'>returned</a> <a href='#SkPath_kDone_Verb'>when</a> <a href='#SkPath_kDone_Verb'>iterating</a> <a href='#SkPath_kDone_Verb'>through</a> <a href='#Path_Verb_Array'>Verb_Array</a>.
+<a href='#Path_Verb_Array'>Verb_Array</a> always starts with <a href='#SkPath_kMove_Verb'>kMove_Verb</a>.
+If <a href='#SkPath_kClose_Verb'>kClose_Verb</a> is not the last entry, it is always followed by <a href='#SkPath_kMove_Verb'>kMove_Verb</a>;
+the quantity of <a href='#SkPath_kMove_Verb'>kMove_Verb</a> equals the <a href='SkPath_Overview#Contour'>Contour</a> count.
+<a href='#Path_Verb_Array'>Verb_Array</a> does not include or count <a href='#SkPath_kDone_Verb'>kDone_Verb</a>; it is a convenience
+returned when iterating through <a href='#Path_Verb_Array'>Verb_Array</a>.
-<a href='#Path_Verb_Array'>Verb_Array</a> <a href='#Path_Verb_Array'>may</a> <a href='#Path_Verb_Array'>be</a> <a href='#Path_Verb_Array'>read</a> <a href='#Path_Verb_Array'>directly</a> <a href='#Path_Verb_Array'>from</a> <a href='SkPath_Reference#Path'>Path</a> <a href='SkPath_Reference#Path'>with</a> <a href='#SkPath_getVerbs'>getVerbs</a>, <a href='#SkPath_getVerbs'>or</a> <a href='#SkPath_getVerbs'>inspected</a> <a href='#SkPath_getVerbs'>with</a> <a href='#SkPath_Iter'>Iter</a>,
-<a href='#SkPath_Iter'>or</a> <a href='#SkPath_Iter'>with</a> <a href='#SkPath_RawIter'>RawIter</a>.
+<a href='#Path_Verb_Array'>Verb_Array</a> may be read directly from <a href='SkPath_Reference#Path'>Path</a> with <a href='#SkPath_getVerbs'>getVerbs</a>, or inspected with <a href='#SkPath_Iter'>Iter</a>,
+or with <a href='#SkPath_RawIter'>RawIter</a>.
<a name='SkPath_countVerbs'></a>
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-int <a href='#SkPath_countVerbs'>countVerbs</a>() <a href='#SkPath_countVerbs'>const</a>
+int <a href='#SkPath_countVerbs'>countVerbs</a>() const
</pre>
Returns the number of <a href='SkPath_Reference#Verb'>verbs</a>: <a href='#SkPath_kMove_Verb'>kMove_Verb</a>, <a href='#SkPath_kLine_Verb'>kLine_Verb</a>, <a href='#SkPath_kQuad_Verb'>kQuad_Verb</a>, <a href='#SkPath_kConic_Verb'>kConic_Verb</a>,
-<a href='#SkPath_kCubic_Verb'>kCubic_Verb</a>, <a href='#SkPath_kCubic_Verb'>and</a> <a href='#SkPath_kClose_Verb'>kClose_Verb</a>; <a href='#SkPath_kClose_Verb'>added</a> <a href='#SkPath_kClose_Verb'>to</a> <a href='SkPath_Reference#SkPath'>SkPath</a>.
+<a href='#SkPath_kCubic_Verb'>kCubic_Verb</a>, and <a href='#SkPath_kClose_Verb'>kClose_Verb</a>; added to <a href='SkPath_Reference#SkPath'>SkPath</a>.
### Return Value
@@ -1771,16 +1771,16 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-int <a href='#SkPath_getVerbs'>getVerbs</a>(<a href='#SkPath_getVerbs'>uint8_t</a> <a href='SkPath_Reference#Verb'>verbs</a>[], <a href='SkPath_Reference#Verb'>int</a> <a href='SkPath_Reference#Verb'>max</a>) <a href='SkPath_Reference#Verb'>const</a>
+int <a href='#SkPath_getVerbs'>getVerbs</a>(uint8_t <a href='SkPath_Reference#Verb'>verbs</a>[], int max) const
</pre>
-Returns the number of <a href='#SkPath_getVerbs_verbs'>verbs</a> <a href='#SkPath_getVerbs_verbs'>in</a> <a href='#SkPath_getVerbs_verbs'>the</a> <a href='SkPath_Reference#Path'>path</a>. <a href='SkPath_Reference#Path'>Up</a> <a href='SkPath_Reference#Path'>to</a> <a href='#SkPath_getVerbs_max'>max</a> <a href='#SkPath_getVerbs_verbs'>verbs</a> <a href='#SkPath_getVerbs_verbs'>are</a> <a href='#SkPath_getVerbs_verbs'>copied</a>. <a href='#SkPath_getVerbs_verbs'>The</a>
-<a href='#SkPath_getVerbs_verbs'>verbs</a> <a href='#SkPath_getVerbs_verbs'>are</a> <a href='#SkPath_getVerbs_verbs'>copied</a> <a href='#SkPath_getVerbs_verbs'>as</a> <a href='#SkPath_getVerbs_verbs'>one</a> <a href='#SkPath_getVerbs_verbs'>byte</a> <a href='#SkPath_getVerbs_verbs'>per</a> <a href='#SkPath_getVerbs_verbs'>verb</a>.
+Returns the number of <a href='#SkPath_getVerbs_verbs'>verbs</a> in the <a href='SkPath_Reference#Path'>path</a>. Up to <a href='#SkPath_getVerbs_max'>max</a> <a href='#SkPath_getVerbs_verbs'>verbs</a> are copied. The
+<a href='#SkPath_getVerbs_verbs'>verbs</a> are copied as one byte per verb.
### Parameters
<table> <tr> <td><a name='SkPath_getVerbs_verbs'><code><strong>verbs</strong></code></a></td>
- <td>storage for <a href='#SkPath_getVerbs_verbs'>verbs</a>, <a href='#SkPath_getVerbs_verbs'>may</a> <a href='#SkPath_getVerbs_verbs'>be</a> <a href='#SkPath_getVerbs_verbs'>nullptr</a></td>
+ <td>storage for <a href='#SkPath_getVerbs_verbs'>verbs</a>, may be nullptr</td>
</tr>
<tr> <td><a name='SkPath_getVerbs_max'><code><strong>max</strong></code></a></td>
<td>maximum number to copy into <a href='#SkPath_getVerbs_verbs'>verbs</a></td>
@@ -1789,7 +1789,7 @@
### Return Value
-the actual number of <a href='#SkPath_getVerbs_verbs'>verbs</a> <a href='#SkPath_getVerbs_verbs'>in</a> <a href='#SkPath_getVerbs_verbs'>the</a> <a href='SkPath_Reference#Path'>path</a>
+the actual number of <a href='#SkPath_getVerbs_verbs'>verbs</a> in the <a href='SkPath_Reference#Path'>path</a>
### Example
@@ -1815,21 +1815,21 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-void <a href='#SkPath_swap'>swap</a>(<a href='SkPath_Reference#SkPath'>SkPath</a>& <a href='SkPath_Reference#SkPath'>other</a>)
+void <a href='#SkPath_swap'>swap</a>(<a href='SkPath_Reference#SkPath'>SkPath</a>& other)
</pre>
-Exchanges the <a href='#Verb_Array'>verb array</a>, <a href='SkPath_Reference#Point_Array'>SkPoint array</a>, <a href='SkPath_Reference#Conic_Weight'>weights</a>, <a href='SkPath_Reference#Conic_Weight'>and</a> <a href='SkPath_Reference#SkPath'>SkPath</a>::<a href='#SkPath_FillType'>FillType</a> <a href='#SkPath_FillType'>with</a> <a href='#SkPath_swap_other'>other</a>.
-Cached state is also exchanged. <a href='#SkPath_swap'>swap()</a> <a href='#SkPath_swap'>internally</a> <a href='#SkPath_swap'>exchanges</a> <a href='#SkPath_swap'>pointers</a>, <a href='#SkPath_swap'>so</a>
+Exchanges the <a href='#Verb_Array'>verb array</a>, <a href='SkPath_Reference#Point_Array'>SkPoint array</a>, <a href='SkPath_Reference#Conic_Weight'>weights</a>, and <a href='SkPath_Reference#SkPath'>SkPath</a>::<a href='#SkPath_FillType'>FillType</a> with <a href='#SkPath_swap_other'>other</a>.
+Cached state is also exchanged. <a href='#SkPath_swap'>swap()</a> internally exchanges pointers, so
it is lightweight and does not allocate memory.
-<a href='#SkPath_swap'>swap()</a> <a href='#SkPath_swap'>usage</a> <a href='#SkPath_swap'>has</a> <a href='#SkPath_swap'>largely</a> <a href='#SkPath_swap'>been</a> <a href='#SkPath_swap'>replaced</a> <a href='#SkPath_swap'>by</a> by<a href='#SkPath_copy_operator'>operator=(const SkPath& path)</a>.
-<a href='SkPath_Reference#SkPath'>SkPath</a> <a href='SkPath_Reference#SkPath'>do</a> <a href='SkPath_Reference#SkPath'>not</a> <a href='SkPath_Reference#SkPath'>copy</a> <a href='SkPath_Reference#SkPath'>their</a> <a href='SkPath_Reference#SkPath'>content</a> <a href='SkPath_Reference#SkPath'>on</a> <a href='SkPath_Reference#SkPath'>assignment</a> <a href='SkPath_Reference#SkPath'>until</a> <a href='SkPath_Reference#SkPath'>they</a> <a href='SkPath_Reference#SkPath'>are</a> <a href='SkPath_Reference#SkPath'>written</a> <a href='SkPath_Reference#SkPath'>to</a>,
+<a href='#SkPath_swap'>swap()</a> usage has largely been replaced by by<a href='#SkPath_copy_operator'>operator=(const SkPath& path)</a>.
+<a href='SkPath_Reference#SkPath'>SkPath</a> do not copy their content on assignment until they are written to,
making assignment as efficient as <a href='#SkPath_swap'>swap()</a>.
### Parameters
<table> <tr> <td><a name='SkPath_swap_other'><code><strong>other</strong></code></a></td>
- <td><a href='SkPath_Reference#SkPath'>SkPath</a> <a href='SkPath_Reference#SkPath'>exchanged</a> <a href='SkPath_Reference#SkPath'>by</a> <a href='SkPath_Reference#SkPath'>value</a></td>
+ <td><a href='SkPath_Reference#SkPath'>SkPath</a> exchanged by value</td>
</tr>
</table>
@@ -1855,24 +1855,24 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-const <a href='SkRect_Reference#SkRect'>SkRect</a>& <a href='#SkPath_getBounds'>getBounds</a>() <a href='#SkPath_getBounds'>const</a>
+const <a href='SkRect_Reference#SkRect'>SkRect</a>& <a href='#SkPath_getBounds'>getBounds</a>() const
</pre>
-Returns minimum and maximum axes values of <a href='SkPoint_Reference#SkPoint'>SkPoint</a> <a href='SkPoint_Reference#SkPoint'>array</a>.
-Returns (0, 0, 0, 0) if <a href='SkPath_Reference#SkPath'>SkPath</a> <a href='SkPath_Reference#SkPath'>contains</a> <a href='SkPath_Reference#SkPath'>no</a> <a href='SkPoint_Reference#Point'>points</a>. <a href='SkPoint_Reference#Point'>Returned</a> <a href='SkPoint_Reference#Point'>bounds</a> <a href='SkPoint_Reference#Point'>width</a> <a href='SkPoint_Reference#Point'>and</a> <a href='SkPoint_Reference#Point'>height</a> <a href='SkPoint_Reference#Point'>may</a>
-be larger or smaller than area affected when <a href='SkPath_Reference#SkPath'>SkPath</a> <a href='SkPath_Reference#SkPath'>is</a> <a href='SkPath_Reference#SkPath'>drawn</a>.
+Returns minimum and maximum axes values of <a href='SkPoint_Reference#SkPoint'>SkPoint</a> array.
+Returns (0, 0, 0, 0) if <a href='SkPath_Reference#SkPath'>SkPath</a> contains no <a href='SkPoint_Reference#Point'>points</a>. Returned bounds width and height may
+be larger or smaller than area affected when <a href='SkPath_Reference#SkPath'>SkPath</a> is drawn.
-<a href='SkRect_Reference#SkRect'>SkRect</a> <a href='SkRect_Reference#SkRect'>returned</a> <a href='SkRect_Reference#SkRect'>includes</a> <a href='SkRect_Reference#SkRect'>all</a> <a href='SkPoint_Reference#SkPoint'>SkPoint</a> <a href='SkPoint_Reference#SkPoint'>added</a> <a href='SkPoint_Reference#SkPoint'>to</a> <a href='SkPath_Reference#SkPath'>SkPath</a>, <a href='SkPath_Reference#SkPath'>including</a> <a href='SkPoint_Reference#SkPoint'>SkPoint</a> <a href='SkPoint_Reference#SkPoint'>associated</a> <a href='SkPoint_Reference#SkPoint'>with</a>
-<a href='#SkPath_kMove_Verb'>kMove_Verb</a> <a href='#SkPath_kMove_Verb'>that</a> <a href='#SkPath_kMove_Verb'>define</a> <a href='#SkPath_kMove_Verb'>empty</a> <a href='SkPath_Overview#Contour'>contours</a>.
+<a href='SkRect_Reference#SkRect'>SkRect</a> returned includes all <a href='SkPoint_Reference#SkPoint'>SkPoint</a> added to <a href='SkPath_Reference#SkPath'>SkPath</a>, including <a href='SkPoint_Reference#SkPoint'>SkPoint</a> associated with
+<a href='#SkPath_kMove_Verb'>kMove_Verb</a> that define empty <a href='SkPath_Overview#Contour'>contours</a>.
### Return Value
-bounds of all <a href='SkPoint_Reference#SkPoint'>SkPoint</a> <a href='SkPoint_Reference#SkPoint'>in</a> <a href='SkPoint_Reference#SkPoint'>SkPoint</a> <a href='SkPoint_Reference#SkPoint'>array</a>
+bounds of all <a href='SkPoint_Reference#SkPoint'>SkPoint</a> in <a href='SkPoint_Reference#SkPoint'>SkPoint</a> array
### Example
-<div><fiddle-embed name="45c0fc3acb74fab99d544b80eadd10ad"><div>Bounds of upright <a href='undocumented#Circle'>Circle</a> <a href='undocumented#Circle'>can</a> <a href='undocumented#Circle'>be</a> <a href='undocumented#Circle'>predicted</a> <a href='undocumented#Circle'>from</a> <a href='undocumented#Circle'>center</a> <a href='undocumented#Circle'>and</a> <a href='undocumented#Circle'>radius</a>.
-<a href='undocumented#Circle'>Bounds</a> <a href='undocumented#Circle'>of</a> <a href='undocumented#Circle'>rotated</a> <a href='undocumented#Circle'>Circle</a> <a href='undocumented#Circle'>includes</a> <a href='undocumented#Circle'>control</a> <a href='SkPoint_Reference#Point'>Points</a> <a href='SkPoint_Reference#Point'>outside</a> <a href='SkPoint_Reference#Point'>of</a> <a href='SkPoint_Reference#Point'>filled</a> <a href='SkPoint_Reference#Point'>area</a>.
+<div><fiddle-embed name="45c0fc3acb74fab99d544b80eadd10ad"><div>Bounds of upright <a href='undocumented#Circle'>Circle</a> can be predicted from center and radius.
+Bounds of rotated <a href='undocumented#Circle'>Circle</a> includes control <a href='SkPoint_Reference#Point'>Points</a> outside of filled area.
</div>
#### Example Output
@@ -1896,15 +1896,15 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-void <a href='#SkPath_updateBoundsCache'>updateBoundsCache</a>() <a href='#SkPath_updateBoundsCache'>const</a>
+void <a href='#SkPath_updateBoundsCache'>updateBoundsCache</a>() const
</pre>
-Updates internal bounds so that subsequent calls to <a href='#SkPath_getBounds'>getBounds</a>() <a href='#SkPath_getBounds'>are</a> <a href='#SkPath_getBounds'>instantaneous</a>.
-Unaltered copies of <a href='SkPath_Reference#SkPath'>SkPath</a> <a href='SkPath_Reference#SkPath'>may</a> <a href='SkPath_Reference#SkPath'>also</a> <a href='SkPath_Reference#SkPath'>access</a> <a href='SkPath_Reference#SkPath'>cached</a> <a href='SkPath_Reference#SkPath'>bounds</a> <a href='SkPath_Reference#SkPath'>through</a> <a href='#SkPath_getBounds'>getBounds</a>().
+Updates internal bounds so that subsequent calls to <a href='#SkPath_getBounds'>getBounds</a>() are instantaneous.
+Unaltered copies of <a href='SkPath_Reference#SkPath'>SkPath</a> may also access cached bounds through <a href='#SkPath_getBounds'>getBounds</a>().
-For now, identical to calling <a href='#SkPath_getBounds'>getBounds</a>() <a href='#SkPath_getBounds'>and</a> <a href='#SkPath_getBounds'>ignoring</a> <a href='#SkPath_getBounds'>the</a> <a href='#SkPath_getBounds'>returned</a> <a href='#SkPath_getBounds'>value</a>.
+For now, identical to calling <a href='#SkPath_getBounds'>getBounds</a>() and ignoring the returned value.
-Call to prepare <a href='SkPath_Reference#SkPath'>SkPath</a> <a href='SkPath_Reference#SkPath'>subsequently</a> <a href='SkPath_Reference#SkPath'>drawn</a> <a href='SkPath_Reference#SkPath'>from</a> <a href='SkPath_Reference#SkPath'>multiple</a> <a href='SkPath_Reference#SkPath'>threads</a>,
+Call to prepare <a href='SkPath_Reference#SkPath'>SkPath</a> subsequently drawn from multiple threads,
to avoid a race condition where each draw separately computes the bounds.
### Example
@@ -1930,25 +1930,25 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-<a href='SkRect_Reference#SkRect'>SkRect</a> <a href='#SkPath_computeTightBounds'>computeTightBounds</a>() <a href='#SkPath_computeTightBounds'>const</a>
+<a href='SkRect_Reference#SkRect'>SkRect</a> <a href='#SkPath_computeTightBounds'>computeTightBounds</a>() const
</pre>
-Returns minimum and maximum axes values of the <a href='undocumented#Line'>lines</a> <a href='undocumented#Line'>and</a> <a href='undocumented#Curve'>curves</a> <a href='undocumented#Curve'>in</a> <a href='SkPath_Reference#SkPath'>SkPath</a>.
-Returns (0, 0, 0, 0) if <a href='SkPath_Reference#SkPath'>SkPath</a> <a href='SkPath_Reference#SkPath'>contains</a> <a href='SkPath_Reference#SkPath'>no</a> <a href='SkPoint_Reference#Point'>points</a>.
+Returns minimum and maximum axes values of the <a href='undocumented#Line'>lines</a> and <a href='undocumented#Curve'>curves</a> in <a href='SkPath_Reference#SkPath'>SkPath</a>.
+Returns (0, 0, 0, 0) if <a href='SkPath_Reference#SkPath'>SkPath</a> contains no <a href='SkPoint_Reference#Point'>points</a>.
Returned bounds width and height may be larger or smaller than area affected
-when <a href='SkPath_Reference#SkPath'>SkPath</a> <a href='SkPath_Reference#SkPath'>is</a> <a href='SkPath_Reference#SkPath'>drawn</a>.
+when <a href='SkPath_Reference#SkPath'>SkPath</a> is drawn.
-Includes <a href='SkPoint_Reference#SkPoint'>SkPoint</a> <a href='SkPoint_Reference#SkPoint'>associated</a> <a href='SkPoint_Reference#SkPoint'>with</a> <a href='#SkPath_kMove_Verb'>kMove_Verb</a> <a href='#SkPath_kMove_Verb'>that</a> <a href='#SkPath_kMove_Verb'>define</a> <a href='#SkPath_kMove_Verb'>empty</a>
+Includes <a href='SkPoint_Reference#SkPoint'>SkPoint</a> associated with <a href='#SkPath_kMove_Verb'>kMove_Verb</a> that define empty
<a href='SkPath_Overview#Contour'>contours</a>.
-Behaves identically to <a href='#SkPath_getBounds'>getBounds</a>() <a href='#SkPath_getBounds'>when</a> <a href='SkPath_Reference#SkPath'>SkPath</a> <a href='SkPath_Reference#SkPath'>contains</a>
-only <a href='undocumented#Line'>lines</a>. <a href='undocumented#Line'>If</a> <a href='SkPath_Reference#SkPath'>SkPath</a> <a href='SkPath_Reference#SkPath'>contains</a> <a href='undocumented#Curve'>curves</a>, <a href='undocumented#Curve'>computed</a> <a href='undocumented#Curve'>bounds</a> <a href='undocumented#Curve'>includes</a>
-the maximum extent of the <a href='SkPath_Reference#Quad'>quad</a>, <a href='SkPath_Reference#Conic'>conic</a>, <a href='SkPath_Reference#Conic'>or</a> <a href='SkPath_Reference#Cubic'>cubic</a>; <a href='SkPath_Reference#Cubic'>is</a> <a href='SkPath_Reference#Cubic'>slower</a> <a href='SkPath_Reference#Cubic'>than</a> <a href='#SkPath_getBounds'>getBounds</a>();
-and unlike <a href='#SkPath_getBounds'>getBounds</a>(), <a href='#SkPath_getBounds'>does</a> <a href='#SkPath_getBounds'>not</a> <a href='#SkPath_getBounds'>cache</a> <a href='#SkPath_getBounds'>the</a> <a href='#SkPath_getBounds'>result</a>.
+Behaves identically to <a href='#SkPath_getBounds'>getBounds</a>() when <a href='SkPath_Reference#SkPath'>SkPath</a> contains
+only <a href='undocumented#Line'>lines</a>. If <a href='SkPath_Reference#SkPath'>SkPath</a> contains <a href='undocumented#Curve'>curves</a>, computed bounds includes
+the maximum extent of the <a href='SkPath_Reference#Quad'>quad</a>, <a href='SkPath_Reference#Conic'>conic</a>, or <a href='SkPath_Reference#Cubic'>cubic</a>; is slower than <a href='#SkPath_getBounds'>getBounds</a>();
+and unlike <a href='#SkPath_getBounds'>getBounds</a>(), does not cache the result.
### Return Value
-tight bounds of <a href='undocumented#Curve'>curves</a> <a href='undocumented#Curve'>in</a> <a href='SkPath_Reference#SkPath'>SkPath</a>
+tight bounds of <a href='undocumented#Curve'>curves</a> in <a href='SkPath_Reference#SkPath'>SkPath</a>
### Example
@@ -1973,31 +1973,31 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-bool <a href='#SkPath_conservativelyContainsRect'>conservativelyContainsRect</a>(<a href='#SkPath_conservativelyContainsRect'>const</a> <a href='SkRect_Reference#SkRect'>SkRect</a>& <a href='SkRect_Reference#Rect'>rect</a>) <a href='SkRect_Reference#Rect'>const</a>
+bool <a href='#SkPath_conservativelyContainsRect'>conservativelyContainsRect</a>(const <a href='SkRect_Reference#SkRect'>SkRect</a>& <a href='SkRect_Reference#Rect'>rect</a>) const
</pre>
-Returns true if <a href='#SkPath_conservativelyContainsRect_rect'>rect</a> <a href='#SkPath_conservativelyContainsRect_rect'>is</a> <a href='#SkPath_conservativelyContainsRect_rect'>contained</a> <a href='#SkPath_conservativelyContainsRect_rect'>by</a> <a href='SkPath_Reference#SkPath'>SkPath</a>.
-May return false when <a href='#SkPath_conservativelyContainsRect_rect'>rect</a> <a href='#SkPath_conservativelyContainsRect_rect'>is</a> <a href='#SkPath_conservativelyContainsRect_rect'>contained</a> <a href='#SkPath_conservativelyContainsRect_rect'>by</a> <a href='SkPath_Reference#SkPath'>SkPath</a>.
+Returns true if <a href='#SkPath_conservativelyContainsRect_rect'>rect</a> is contained by <a href='SkPath_Reference#SkPath'>SkPath</a>.
+May return false when <a href='#SkPath_conservativelyContainsRect_rect'>rect</a> is contained by <a href='SkPath_Reference#SkPath'>SkPath</a>.
-For now, only returns true if <a href='SkPath_Reference#SkPath'>SkPath</a> <a href='SkPath_Reference#SkPath'>has</a> <a href='SkPath_Reference#SkPath'>one</a> <a href='SkPath_Overview#Contour'>contour</a> <a href='SkPath_Overview#Contour'>and</a> <a href='SkPath_Overview#Contour'>is</a> <a href='SkPath_Overview#Contour'>convex</a>.
-<a href='#SkPath_conservativelyContainsRect_rect'>rect</a> <a href='#SkPath_conservativelyContainsRect_rect'>may</a> <a href='#SkPath_conservativelyContainsRect_rect'>share</a> <a href='SkPoint_Reference#Point'>points</a> <a href='SkPoint_Reference#Point'>and</a> <a href='SkPoint_Reference#Point'>edges</a> <a href='SkPoint_Reference#Point'>with</a> <a href='SkPath_Reference#SkPath'>SkPath</a> <a href='SkPath_Reference#SkPath'>and</a> <a href='SkPath_Reference#SkPath'>be</a> <a href='SkPath_Reference#SkPath'>contained</a>.
-Returns true if <a href='#SkPath_conservativelyContainsRect_rect'>rect</a> <a href='#SkPath_conservativelyContainsRect_rect'>is</a> <a href='#SkPath_conservativelyContainsRect_rect'>empty</a>, <a href='#SkPath_conservativelyContainsRect_rect'>that</a> <a href='#SkPath_conservativelyContainsRect_rect'>is</a>, <a href='#SkPath_conservativelyContainsRect_rect'>it</a> <a href='#SkPath_conservativelyContainsRect_rect'>has</a> <a href='#SkPath_conservativelyContainsRect_rect'>zero</a> <a href='#SkPath_conservativelyContainsRect_rect'>width</a> <a href='#SkPath_conservativelyContainsRect_rect'>or</a> <a href='#SkPath_conservativelyContainsRect_rect'>height</a>; <a href='#SkPath_conservativelyContainsRect_rect'>and</a>
-the <a href='SkPoint_Reference#SkPoint'>SkPoint</a> <a href='SkPoint_Reference#SkPoint'>or</a> <a href='undocumented#Line'>line</a> <a href='undocumented#Line'>described</a> <a href='undocumented#Line'>by</a> <a href='#SkPath_conservativelyContainsRect_rect'>rect</a> <a href='#SkPath_conservativelyContainsRect_rect'>is</a> <a href='#SkPath_conservativelyContainsRect_rect'>contained</a> <a href='#SkPath_conservativelyContainsRect_rect'>by</a> <a href='SkPath_Reference#SkPath'>SkPath</a>.
+For now, only returns true if <a href='SkPath_Reference#SkPath'>SkPath</a> has one <a href='SkPath_Overview#Contour'>contour</a> and is convex.
+<a href='#SkPath_conservativelyContainsRect_rect'>rect</a> may share <a href='SkPoint_Reference#Point'>points</a> and edges with <a href='SkPath_Reference#SkPath'>SkPath</a> and be contained.
+Returns true if <a href='#SkPath_conservativelyContainsRect_rect'>rect</a> is empty, that is, it has zero width or height; and
+the <a href='SkPoint_Reference#SkPoint'>SkPoint</a> or <a href='undocumented#Line'>line</a> described by <a href='#SkPath_conservativelyContainsRect_rect'>rect</a> is contained by <a href='SkPath_Reference#SkPath'>SkPath</a>.
### Parameters
<table> <tr> <td><a name='SkPath_conservativelyContainsRect_rect'><code><strong>rect</strong></code></a></td>
- <td><a href='SkRect_Reference#SkRect'>SkRect</a>, <a href='undocumented#Line'>line</a>, <a href='undocumented#Line'>or</a> <a href='SkPoint_Reference#SkPoint'>SkPoint</a> <a href='SkPoint_Reference#SkPoint'>checked</a> <a href='SkPoint_Reference#SkPoint'>for</a> <a href='SkPoint_Reference#SkPoint'>containment</a></td>
+ <td><a href='SkRect_Reference#SkRect'>SkRect</a>, <a href='undocumented#Line'>line</a>, or <a href='SkPoint_Reference#SkPoint'>SkPoint</a> checked for containment</td>
</tr>
</table>
### Return Value
-true if <a href='#SkPath_conservativelyContainsRect_rect'>rect</a> <a href='#SkPath_conservativelyContainsRect_rect'>is</a> <a href='#SkPath_conservativelyContainsRect_rect'>contained</a>
+true if <a href='#SkPath_conservativelyContainsRect_rect'>rect</a> is contained
### Example
-<div><fiddle-embed name="41638d13e40fa449ece354dde5fb1941"><div><a href='SkRect_Reference#Rect'>Rect</a> <a href='SkRect_Reference#Rect'>is</a> <a href='SkRect_Reference#Rect'>drawn</a> <a href='SkRect_Reference#Rect'>in</a> <a href='SkRect_Reference#Rect'>blue</a> <a href='SkRect_Reference#Rect'>if</a> <a href='SkRect_Reference#Rect'>it</a> <a href='SkRect_Reference#Rect'>is</a> <a href='SkRect_Reference#Rect'>contained</a> <a href='SkRect_Reference#Rect'>by</a> <a href='SkRect_Reference#Rect'>red</a> <a href='SkPath_Reference#Path'>Path</a>.
+<div><fiddle-embed name="41638d13e40fa449ece354dde5fb1941"><div><a href='SkRect_Reference#Rect'>Rect</a> is drawn in blue if it is contained by red <a href='SkPath_Reference#Path'>Path</a>.
</div></fiddle-embed></div>
### See Also
@@ -2009,17 +2009,17 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-void <a href='#SkPath_incReserve'>incReserve</a>(<a href='#SkPath_incReserve'>int</a> <a href='#SkPath_incReserve'>extraPtCount</a>)
+void <a href='#SkPath_incReserve'>incReserve</a>(int extraPtCount)
</pre>
-Grows <a href='SkPath_Reference#SkPath'>SkPath</a> <a href='#Verb_Array'>verb array</a> <a href='SkPath_Reference#SkPath'>and</a> <a href='SkPath_Reference#Point_Array'>SkPoint array</a> <a href='SkPoint_Reference#SkPoint'>to</a> <a href='SkPoint_Reference#SkPoint'>contain</a> <a href='#SkPath_incReserve_extraPtCount'>extraPtCount</a> <a href='#SkPath_incReserve_extraPtCount'>additional</a> <a href='SkPoint_Reference#SkPoint'>SkPoint</a>.
+Grows <a href='SkPath_Reference#SkPath'>SkPath</a> <a href='#Verb_Array'>verb array</a> and <a href='SkPath_Reference#Point_Array'>SkPoint array</a> to contain <a href='#SkPath_incReserve_extraPtCount'>extraPtCount</a> additional <a href='SkPoint_Reference#SkPoint'>SkPoint</a>.
May improve performance and use less memory by
-reducing the number and <a href='undocumented#Size'>size</a> <a href='undocumented#Size'>of</a> <a href='undocumented#Size'>allocations</a> <a href='undocumented#Size'>when</a> <a href='undocumented#Size'>creating</a> <a href='SkPath_Reference#SkPath'>SkPath</a>.
+reducing the number and <a href='undocumented#Size'>size</a> of allocations when creating <a href='SkPath_Reference#SkPath'>SkPath</a>.
### Parameters
<table> <tr> <td><a name='SkPath_incReserve_extraPtCount'><code><strong>extraPtCount</strong></code></a></td>
- <td>number of additional <a href='SkPoint_Reference#SkPoint'>SkPoint</a> <a href='SkPoint_Reference#SkPoint'>to</a> <a href='SkPoint_Reference#SkPoint'>allocate</a></td>
+ <td>number of additional <a href='SkPoint_Reference#SkPoint'>SkPoint</a> to allocate</td>
</tr>
</table>
@@ -2039,8 +2039,8 @@
void <a href='#SkPath_shrinkToFit'>shrinkToFit</a>()
</pre>
-Shrinks <a href='SkPath_Reference#SkPath'>SkPath</a> <a href='SkPath_Reference#SkPath'>verb</a> <a href='SkPath_Reference#SkPath'>array</a> <a href='SkPath_Reference#SkPath'>and</a> <a href='SkPoint_Reference#SkPoint'>SkPoint</a> <a href='SkPoint_Reference#SkPoint'>array</a> <a href='SkPoint_Reference#SkPoint'>storage</a> <a href='SkPoint_Reference#SkPoint'>to</a> <a href='SkPoint_Reference#SkPoint'>discard</a> <a href='SkPoint_Reference#SkPoint'>unused</a> <a href='SkPoint_Reference#SkPoint'>capacity</a>.
-May reduce the heap overhead for <a href='SkPath_Reference#SkPath'>SkPath</a> <a href='SkPath_Reference#SkPath'>known</a> <a href='SkPath_Reference#SkPath'>to</a> <a href='SkPath_Reference#SkPath'>be</a> <a href='SkPath_Reference#SkPath'>fully</a> <a href='SkPath_Reference#SkPath'>constructed</a>.
+Shrinks <a href='SkPath_Reference#SkPath'>SkPath</a> verb array and <a href='SkPoint_Reference#SkPoint'>SkPoint</a> array storage to discard unused capacity.
+May reduce the heap overhead for <a href='SkPath_Reference#SkPath'>SkPath</a> known to be fully constructed.
### See Also
@@ -2053,18 +2053,18 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-<a href='SkPath_Reference#SkPath'>SkPath</a>& <a href='#SkPath_moveTo'>moveTo</a>(<a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>x</a>, <a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>y</a>)
+<a href='SkPath_Reference#SkPath'>SkPath</a>& <a href='#SkPath_moveTo'>moveTo</a>(<a href='undocumented#SkScalar'>SkScalar</a> x, <a href='undocumented#SkScalar'>SkScalar</a> y)
</pre>
-Adds beginning of <a href='SkPath_Overview#Contour'>contour</a> <a href='SkPath_Overview#Contour'>at</a> <a href='SkPoint_Reference#SkPoint'>SkPoint</a> (<a href='#SkPath_moveTo_x'>x</a>, <a href='#SkPath_moveTo_y'>y</a>).
+Adds beginning of <a href='SkPath_Overview#Contour'>contour</a> at <a href='SkPoint_Reference#SkPoint'>SkPoint</a> (<a href='#SkPath_moveTo_x'>x</a>, <a href='#SkPath_moveTo_y'>y</a>).
### Parameters
<table> <tr> <td><a name='SkPath_moveTo_x'><code><strong>x</strong></code></a></td>
- <td>x-axis value of <a href='SkPath_Overview#Contour'>contour</a> <a href='SkPath_Overview#Contour'>start</a></td>
+ <td>x-axis value of <a href='SkPath_Overview#Contour'>contour</a> start</td>
</tr>
<tr> <td><a name='SkPath_moveTo_y'><code><strong>y</strong></code></a></td>
- <td>y-axis value of <a href='SkPath_Overview#Contour'>contour</a> <a href='SkPath_Overview#Contour'>start</a></td>
+ <td>y-axis value of <a href='SkPath_Overview#Contour'>contour</a> start</td>
</tr>
</table>
@@ -2085,15 +2085,15 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-<a href='SkPath_Reference#SkPath'>SkPath</a>& <a href='#SkPath_moveTo'>moveTo</a>(<a href='#SkPath_moveTo'>const</a> <a href='SkPoint_Reference#SkPoint'>SkPoint</a>& <a href='SkPoint_Reference#SkPoint'>p</a>)
+<a href='SkPath_Reference#SkPath'>SkPath</a>& <a href='#SkPath_moveTo'>moveTo</a>(const <a href='SkPoint_Reference#SkPoint'>SkPoint</a>& p)
</pre>
-Adds beginning of <a href='SkPath_Overview#Contour'>contour</a> <a href='SkPath_Overview#Contour'>at</a> <a href='SkPoint_Reference#SkPoint'>SkPoint</a> <a href='#SkPath_moveTo_2_p'>p</a>.
+Adds beginning of <a href='SkPath_Overview#Contour'>contour</a> at <a href='SkPoint_Reference#SkPoint'>SkPoint</a> <a href='#SkPath_moveTo_2_p'>p</a>.
### Parameters
<table> <tr> <td><a name='SkPath_moveTo_2_p'><code><strong>p</strong></code></a></td>
- <td><a href='SkPath_Overview#Contour'>contour</a> <a href='SkPath_Overview#Contour'>start</a></td>
+ <td><a href='SkPath_Overview#Contour'>contour</a> start</td>
</tr>
</table>
@@ -2114,21 +2114,21 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-<a href='SkPath_Reference#SkPath'>SkPath</a>& <a href='#SkPath_rMoveTo'>rMoveTo</a>(<a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>dx</a>, <a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>dy</a>)
+<a href='SkPath_Reference#SkPath'>SkPath</a>& <a href='#SkPath_rMoveTo'>rMoveTo</a>(<a href='undocumented#SkScalar'>SkScalar</a> dx, <a href='undocumented#SkScalar'>SkScalar</a> dy)
</pre>
-Adds beginning of <a href='SkPath_Overview#Contour'>contour</a> <a href='SkPath_Overview#Contour'>relative</a> <a href='SkPath_Overview#Contour'>to</a> <a href='#Last_Point'>last point</a>.
-If <a href='SkPath_Reference#SkPath'>SkPath</a> <a href='SkPath_Reference#SkPath'>is</a> <a href='SkPath_Reference#SkPath'>empty</a>, <a href='SkPath_Reference#SkPath'>starts</a> <a href='SkPath_Overview#Contour'>contour</a> <a href='SkPath_Overview#Contour'>at</a> (<a href='#SkPath_rMoveTo_dx'>dx</a>, <a href='#SkPath_rMoveTo_dy'>dy</a>).
-Otherwise, start <a href='SkPath_Overview#Contour'>contour</a> <a href='SkPath_Overview#Contour'>at</a> <a href='#Last_Point'>last point</a> <a href='SkPath_Overview#Contour'>offset</a> <a href='SkPath_Overview#Contour'>by</a> (<a href='#SkPath_rMoveTo_dx'>dx</a>, <a href='#SkPath_rMoveTo_dy'>dy</a>).
+Adds beginning of <a href='SkPath_Overview#Contour'>contour</a> relative to <a href='#Last_Point'>last point</a>.
+If <a href='SkPath_Reference#SkPath'>SkPath</a> is empty, starts <a href='SkPath_Overview#Contour'>contour</a> at (<a href='#SkPath_rMoveTo_dx'>dx</a>, <a href='#SkPath_rMoveTo_dy'>dy</a>).
+Otherwise, start <a href='SkPath_Overview#Contour'>contour</a> at <a href='#Last_Point'>last point</a> offset by (<a href='#SkPath_rMoveTo_dx'>dx</a>, <a href='#SkPath_rMoveTo_dy'>dy</a>).
Function name stands for "relative move to".
### Parameters
<table> <tr> <td><a name='SkPath_rMoveTo_dx'><code><strong>dx</strong></code></a></td>
- <td>offset from <a href='#Last_Point'>last point</a> to <a href='SkPath_Overview#Contour'>contour</a> <a href='SkPath_Overview#Contour'>start</a> <a href='SkPath_Overview#Contour'>on</a> <a href='SkPath_Overview#Contour'>x-axis</a></td>
+ <td>offset from <a href='#Last_Point'>last point</a> to <a href='SkPath_Overview#Contour'>contour</a> start on x-axis</td>
</tr>
<tr> <td><a name='SkPath_rMoveTo_dy'><code><strong>dy</strong></code></a></td>
- <td>offset from <a href='#Last_Point'>last point</a> to <a href='SkPath_Overview#Contour'>contour</a> <a href='SkPath_Overview#Contour'>start</a> <a href='SkPath_Overview#Contour'>on</a> <a href='SkPath_Overview#Contour'>y-axis</a></td>
+ <td>offset from <a href='#Last_Point'>last point</a> to <a href='SkPath_Overview#Contour'>contour</a> start on y-axis</td>
</tr>
</table>
@@ -2149,22 +2149,22 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-<a href='SkPath_Reference#SkPath'>SkPath</a>& <a href='#SkPath_lineTo'>lineTo</a>(<a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>x</a>, <a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>y</a>)
+<a href='SkPath_Reference#SkPath'>SkPath</a>& <a href='#SkPath_lineTo'>lineTo</a>(<a href='undocumented#SkScalar'>SkScalar</a> x, <a href='undocumented#SkScalar'>SkScalar</a> y)
</pre>
-Adds <a href='undocumented#Line'>line</a> <a href='undocumented#Line'>from</a> <a href='#Last_Point'>last point</a> <a href='undocumented#Line'>to</a> (<a href='#SkPath_lineTo_x'>x</a>, <a href='#SkPath_lineTo_y'>y</a>). <a href='#SkPath_lineTo_y'>If</a> <a href='SkPath_Reference#SkPath'>SkPath</a> <a href='SkPath_Reference#SkPath'>is</a> <a href='SkPath_Reference#SkPath'>empty</a>, <a href='SkPath_Reference#SkPath'>or</a> <a href='SkPath_Reference#SkPath'>last</a> <a href='SkPath_Reference#SkPath'>SkPath</a>::<a href='#SkPath_Verb'>Verb</a> <a href='#SkPath_Verb'>is</a>
-<a href='#SkPath_kClose_Verb'>kClose_Verb</a>, <a href='#Last_Point'>last point</a> <a href='#SkPath_kClose_Verb'>is</a> <a href='#SkPath_kClose_Verb'>set</a> <a href='#SkPath_kClose_Verb'>to</a> (0, 0) <a href='#SkPath_kClose_Verb'>before</a> <a href='#SkPath_kClose_Verb'>adding</a> <a href='undocumented#Line'>line</a>.
+Adds <a href='undocumented#Line'>line</a> from <a href='#Last_Point'>last point</a> to (<a href='#SkPath_lineTo_x'>x</a>, <a href='#SkPath_lineTo_y'>y</a>). If <a href='SkPath_Reference#SkPath'>SkPath</a> is empty, or last <a href='SkPath_Reference#SkPath'>SkPath</a>::<a href='#SkPath_Verb'>Verb</a> is
+<a href='#SkPath_kClose_Verb'>kClose_Verb</a>, <a href='#Last_Point'>last point</a> is set to (0, 0) before adding <a href='undocumented#Line'>line</a>.
-<a href='#SkPath_lineTo'>lineTo</a>() <a href='#SkPath_lineTo'>appends</a> <a href='#SkPath_kMove_Verb'>kMove_Verb</a> <a href='#SkPath_kMove_Verb'>to</a> <a href='#Verb_Array'>verb array</a> <a href='#SkPath_kMove_Verb'>and</a> (0, 0) <a href='#SkPath_kMove_Verb'>to</a> <a href='SkPath_Reference#Point_Array'>SkPoint array</a>, <a href='SkPoint_Reference#SkPoint'>if</a> <a href='SkPoint_Reference#SkPoint'>needed</a>.
-<a href='#SkPath_lineTo'>lineTo</a>() <a href='#SkPath_lineTo'>then</a> <a href='#SkPath_lineTo'>appends</a> <a href='#SkPath_kLine_Verb'>kLine_Verb</a> <a href='#SkPath_kLine_Verb'>to</a> <a href='#Verb_Array'>verb array</a> <a href='#SkPath_kLine_Verb'>and</a> (<a href='#SkPath_lineTo_x'>x</a>, <a href='#SkPath_lineTo_y'>y</a>) <a href='#SkPath_lineTo_y'>to</a> <a href='SkPath_Reference#Point_Array'>SkPoint array</a>.
+<a href='#SkPath_lineTo'>lineTo</a>() appends <a href='#SkPath_kMove_Verb'>kMove_Verb</a> to <a href='#Verb_Array'>verb array</a> and (0, 0) to <a href='SkPath_Reference#Point_Array'>SkPoint array</a>, if needed.
+<a href='#SkPath_lineTo'>lineTo</a>() then appends <a href='#SkPath_kLine_Verb'>kLine_Verb</a> to <a href='#Verb_Array'>verb array</a> and (<a href='#SkPath_lineTo_x'>x</a>, <a href='#SkPath_lineTo_y'>y</a>) to <a href='SkPath_Reference#Point_Array'>SkPoint array</a>.
### Parameters
<table> <tr> <td><a name='SkPath_lineTo_x'><code><strong>x</strong></code></a></td>
- <td>end of added <a href='undocumented#Line'>line</a> <a href='undocumented#Line'>on</a> <a href='undocumented#Line'>x-axis</a></td>
+ <td>end of added <a href='undocumented#Line'>line</a> on x-axis</td>
</tr>
<tr> <td><a name='SkPath_lineTo_y'><code><strong>y</strong></code></a></td>
- <td>end of added <a href='undocumented#Line'>line</a> <a href='undocumented#Line'>on</a> <a href='undocumented#Line'>y-axis</a></td>
+ <td>end of added <a href='undocumented#Line'>line</a> on y-axis</td>
</tr>
</table>
@@ -2185,19 +2185,19 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-<a href='SkPath_Reference#SkPath'>SkPath</a>& <a href='#SkPath_lineTo'>lineTo</a>(<a href='#SkPath_lineTo'>const</a> <a href='SkPoint_Reference#SkPoint'>SkPoint</a>& <a href='SkPoint_Reference#SkPoint'>p</a>)
+<a href='SkPath_Reference#SkPath'>SkPath</a>& <a href='#SkPath_lineTo'>lineTo</a>(const <a href='SkPoint_Reference#SkPoint'>SkPoint</a>& p)
</pre>
-Adds <a href='undocumented#Line'>line</a> <a href='undocumented#Line'>from</a> <a href='#Last_Point'>last point</a> <a href='undocumented#Line'>to</a> <a href='SkPoint_Reference#SkPoint'>SkPoint</a> <a href='#SkPath_lineTo_2_p'>p</a>. <a href='#SkPath_lineTo_2_p'>If</a> <a href='SkPath_Reference#SkPath'>SkPath</a> <a href='SkPath_Reference#SkPath'>is</a> <a href='SkPath_Reference#SkPath'>empty</a>, <a href='SkPath_Reference#SkPath'>or</a> <a href='SkPath_Reference#SkPath'>last</a> <a href='SkPath_Reference#SkPath'>SkPath</a>::<a href='#SkPath_Verb'>Verb</a> <a href='#SkPath_Verb'>is</a>
-<a href='#SkPath_kClose_Verb'>kClose_Verb</a>, <a href='#Last_Point'>last point</a> <a href='#SkPath_kClose_Verb'>is</a> <a href='#SkPath_kClose_Verb'>set</a> <a href='#SkPath_kClose_Verb'>to</a> (0, 0) <a href='#SkPath_kClose_Verb'>before</a> <a href='#SkPath_kClose_Verb'>adding</a> <a href='undocumented#Line'>line</a>.
+Adds <a href='undocumented#Line'>line</a> from <a href='#Last_Point'>last point</a> to <a href='SkPoint_Reference#SkPoint'>SkPoint</a> <a href='#SkPath_lineTo_2_p'>p</a>. If <a href='SkPath_Reference#SkPath'>SkPath</a> is empty, or last <a href='SkPath_Reference#SkPath'>SkPath</a>::<a href='#SkPath_Verb'>Verb</a> is
+<a href='#SkPath_kClose_Verb'>kClose_Verb</a>, <a href='#Last_Point'>last point</a> is set to (0, 0) before adding <a href='undocumented#Line'>line</a>.
-<a href='#SkPath_lineTo'>lineTo</a>() <a href='#SkPath_lineTo'>first</a> <a href='#SkPath_lineTo'>appends</a> <a href='#SkPath_kMove_Verb'>kMove_Verb</a> <a href='#SkPath_kMove_Verb'>to</a> <a href='#Verb_Array'>verb array</a> <a href='#SkPath_kMove_Verb'>and</a> (0, 0) <a href='#SkPath_kMove_Verb'>to</a> <a href='SkPath_Reference#Point_Array'>SkPoint array</a>, <a href='SkPoint_Reference#SkPoint'>if</a> <a href='SkPoint_Reference#SkPoint'>needed</a>.
-<a href='#SkPath_lineTo'>lineTo</a>() <a href='#SkPath_lineTo'>then</a> <a href='#SkPath_lineTo'>appends</a> <a href='#SkPath_kLine_Verb'>kLine_Verb</a> <a href='#SkPath_kLine_Verb'>to</a> <a href='#Verb_Array'>verb array</a> <a href='#SkPath_kLine_Verb'>and</a> <a href='SkPoint_Reference#SkPoint'>SkPoint</a> <a href='#SkPath_lineTo_2_p'>p</a> <a href='#SkPath_lineTo_2_p'>to</a> <a href='SkPath_Reference#Point_Array'>SkPoint array</a>.
+<a href='#SkPath_lineTo'>lineTo</a>() first appends <a href='#SkPath_kMove_Verb'>kMove_Verb</a> to <a href='#Verb_Array'>verb array</a> and (0, 0) to <a href='SkPath_Reference#Point_Array'>SkPoint array</a>, if needed.
+<a href='#SkPath_lineTo'>lineTo</a>() then appends <a href='#SkPath_kLine_Verb'>kLine_Verb</a> to <a href='#Verb_Array'>verb array</a> and <a href='SkPoint_Reference#SkPoint'>SkPoint</a> <a href='#SkPath_lineTo_2_p'>p</a> to <a href='SkPath_Reference#Point_Array'>SkPoint array</a>.
### Parameters
<table> <tr> <td><a name='SkPath_lineTo_2_p'><code><strong>p</strong></code></a></td>
- <td>end <a href='SkPoint_Reference#SkPoint'>SkPoint</a> <a href='SkPoint_Reference#SkPoint'>of</a> <a href='SkPoint_Reference#SkPoint'>added</a> <a href='undocumented#Line'>line</a></td>
+ <td>end <a href='SkPoint_Reference#SkPoint'>SkPoint</a> of added <a href='undocumented#Line'>line</a></td>
</tr>
</table>
@@ -2218,24 +2218,24 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-<a href='SkPath_Reference#SkPath'>SkPath</a>& <a href='#SkPath_rLineTo'>rLineTo</a>(<a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>dx</a>, <a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>dy</a>)
+<a href='SkPath_Reference#SkPath'>SkPath</a>& <a href='#SkPath_rLineTo'>rLineTo</a>(<a href='undocumented#SkScalar'>SkScalar</a> dx, <a href='undocumented#SkScalar'>SkScalar</a> dy)
</pre>
-Adds <a href='undocumented#Line'>line</a> <a href='undocumented#Line'>from</a> <a href='#Last_Point'>last point</a> <a href='undocumented#Line'>to</a> <a href='SkPoint_Reference#Vector'>vector</a> (<a href='#SkPath_rLineTo_dx'>dx</a>, <a href='#SkPath_rLineTo_dy'>dy</a>). <a href='#SkPath_rLineTo_dy'>If</a> <a href='SkPath_Reference#SkPath'>SkPath</a> <a href='SkPath_Reference#SkPath'>is</a> <a href='SkPath_Reference#SkPath'>empty</a>, <a href='SkPath_Reference#SkPath'>or</a> <a href='SkPath_Reference#SkPath'>last</a> <a href='SkPath_Reference#SkPath'>SkPath</a>::<a href='#SkPath_Verb'>Verb</a> <a href='#SkPath_Verb'>is</a>
-<a href='#SkPath_kClose_Verb'>kClose_Verb</a>, <a href='#Last_Point'>last point</a> <a href='#SkPath_kClose_Verb'>is</a> <a href='#SkPath_kClose_Verb'>set</a> <a href='#SkPath_kClose_Verb'>to</a> (0, 0) <a href='#SkPath_kClose_Verb'>before</a> <a href='#SkPath_kClose_Verb'>adding</a> <a href='undocumented#Line'>line</a>.
+Adds <a href='undocumented#Line'>line</a> from <a href='#Last_Point'>last point</a> to <a href='SkPoint_Reference#Vector'>vector</a> (<a href='#SkPath_rLineTo_dx'>dx</a>, <a href='#SkPath_rLineTo_dy'>dy</a>). If <a href='SkPath_Reference#SkPath'>SkPath</a> is empty, or last <a href='SkPath_Reference#SkPath'>SkPath</a>::<a href='#SkPath_Verb'>Verb</a> is
+<a href='#SkPath_kClose_Verb'>kClose_Verb</a>, <a href='#Last_Point'>last point</a> is set to (0, 0) before adding <a href='undocumented#Line'>line</a>.
-Appends <a href='#SkPath_kMove_Verb'>kMove_Verb</a> <a href='#SkPath_kMove_Verb'>to</a> <a href='#Verb_Array'>verb array</a> <a href='#SkPath_kMove_Verb'>and</a> (0, 0) <a href='#SkPath_kMove_Verb'>to</a> <a href='SkPath_Reference#Point_Array'>SkPoint array</a>, <a href='SkPoint_Reference#SkPoint'>if</a> <a href='SkPoint_Reference#SkPoint'>needed</a>;
-then appends <a href='#SkPath_kLine_Verb'>kLine_Verb</a> <a href='#SkPath_kLine_Verb'>to</a> <a href='#Verb_Array'>verb array</a> <a href='#SkPath_kLine_Verb'>and</a> <a href='undocumented#Line'>line</a> <a href='undocumented#Line'>end</a> <a href='undocumented#Line'>to</a> <a href='SkPath_Reference#Point_Array'>SkPoint array</a>.
-<a href='undocumented#Line'>Line</a> <a href='undocumented#Line'>end</a> <a href='undocumented#Line'>is</a> <a href='#Last_Point'>last point</a> <a href='undocumented#Line'>plus</a> <a href='SkPoint_Reference#Vector'>vector</a> (<a href='#SkPath_rLineTo_dx'>dx</a>, <a href='#SkPath_rLineTo_dy'>dy</a>).
-Function name stands for "relative <a href='undocumented#Line'>line</a> <a href='undocumented#Line'>to</a>".
+Appends <a href='#SkPath_kMove_Verb'>kMove_Verb</a> to <a href='#Verb_Array'>verb array</a> and (0, 0) to <a href='SkPath_Reference#Point_Array'>SkPoint array</a>, if needed;
+then appends <a href='#SkPath_kLine_Verb'>kLine_Verb</a> to <a href='#Verb_Array'>verb array</a> and <a href='undocumented#Line'>line</a> end to <a href='SkPath_Reference#Point_Array'>SkPoint array</a>.
+<a href='undocumented#Line'>Line</a> end is <a href='#Last_Point'>last point</a> plus <a href='SkPoint_Reference#Vector'>vector</a> (<a href='#SkPath_rLineTo_dx'>dx</a>, <a href='#SkPath_rLineTo_dy'>dy</a>).
+Function name stands for "relative <a href='undocumented#Line'>line</a> to".
### Parameters
<table> <tr> <td><a name='SkPath_rLineTo_dx'><code><strong>dx</strong></code></a></td>
- <td>offset from <a href='#Last_Point'>last point</a> to <a href='undocumented#Line'>line</a> <a href='undocumented#Line'>end</a> <a href='undocumented#Line'>on</a> <a href='undocumented#Line'>x-axis</a></td>
+ <td>offset from <a href='#Last_Point'>last point</a> to <a href='undocumented#Line'>line</a> end on x-axis</td>
</tr>
<tr> <td><a name='SkPath_rLineTo_dy'><code><strong>dy</strong></code></a></td>
- <td>offset from <a href='#Last_Point'>last point</a> to <a href='undocumented#Line'>line</a> <a href='undocumented#Line'>end</a> <a href='undocumented#Line'>on</a> <a href='undocumented#Line'>y-axis</a></td>
+ <td>offset from <a href='#Last_Point'>last point</a> to <a href='undocumented#Line'>line</a> end on y-axis</td>
</tr>
</table>
@@ -2255,19 +2255,19 @@
---
-<a href='SkPath_Reference#Quad'>Quad</a> <a href='SkPath_Reference#Quad'>describes</a> <a href='SkPath_Reference#Quad'>a</a> <a href='#Path_Quad'>Quadratic_Bezier</a>, <a href='#Path_Quad'>a</a> <a href='#Path_Quad'>second-order</a> <a href='undocumented#Curve'>curve</a> <a href='undocumented#Curve'>identical</a> <a href='undocumented#Curve'>to</a> <a href='undocumented#Curve'>a</a> <a href='undocumented#Curve'>section</a>
-<a href='undocumented#Curve'>of</a> <a href='undocumented#Curve'>a</a> <a href='undocumented#Curve'>parabola</a>. <a href='SkPath_Reference#Quad'>Quad</a> <a href='SkPath_Reference#Quad'>begins</a> <a href='SkPath_Reference#Quad'>at</a> <a href='SkPath_Reference#Quad'>a</a> <a href='SkPath_Reference#Quad'>start</a> <a href='SkPoint_Reference#Point'>Point</a>, <a href='undocumented#Curve'>curves</a> <a href='undocumented#Curve'>towards</a> <a href='undocumented#Curve'>a</a> <a href='undocumented#Curve'>control</a> <a href='SkPoint_Reference#Point'>Point</a>,
-<a href='SkPoint_Reference#Point'>and</a> <a href='SkPoint_Reference#Point'>then</a> <a href='undocumented#Curve'>curves</a> <a href='undocumented#Curve'>to</a> <a href='undocumented#Curve'>an</a> <a href='undocumented#Curve'>end</a> <a href='SkPoint_Reference#Point'>Point</a>.
+<a href='SkPath_Reference#Quad'>Quad</a> describes a <a href='#Path_Quad'>Quadratic_Bezier</a>, a second-order <a href='undocumented#Curve'>curve</a> identical to a section
+of a parabola. <a href='SkPath_Reference#Quad'>Quad</a> begins at a start <a href='SkPoint_Reference#Point'>Point</a>, <a href='undocumented#Curve'>curves</a> towards a control <a href='SkPoint_Reference#Point'>Point</a>,
+and then <a href='undocumented#Curve'>curves</a> to an end <a href='SkPoint_Reference#Point'>Point</a>.
### Example
<div><fiddle-embed name="78ad51fa1cd33eb84a6f99061e56e067"></fiddle-embed></div>
-<a href='SkPath_Reference#Quad'>Quad</a> <a href='SkPath_Reference#Quad'>is</a> <a href='SkPath_Reference#Quad'>a</a> <a href='SkPath_Reference#Quad'>special</a> <a href='SkPath_Reference#Quad'>case</a> <a href='SkPath_Reference#Quad'>of</a> <a href='SkPath_Reference#Conic'>Conic</a> <a href='SkPath_Reference#Conic'>where</a> <a href='#Path_Conic_Weight'>Conic_Weight</a> <a href='#Path_Conic_Weight'>is</a> <a href='#Path_Conic_Weight'>set</a> <a href='#Path_Conic_Weight'>to</a> <a href='#Path_Conic_Weight'>one</a>.
+<a href='SkPath_Reference#Quad'>Quad</a> is a special case of <a href='SkPath_Reference#Conic'>Conic</a> where <a href='#Path_Conic_Weight'>Conic_Weight</a> is set to one.
-<a href='SkPath_Reference#Quad'>Quad</a> <a href='SkPath_Reference#Quad'>is</a> <a href='SkPath_Reference#Quad'>always</a> <a href='SkPath_Reference#Quad'>contained</a> <a href='SkPath_Reference#Quad'>by</a> <a href='SkPath_Reference#Quad'>the</a> <a href='SkPath_Reference#Quad'>triangle</a> <a href='SkPath_Reference#Quad'>connecting</a> <a href='SkPath_Reference#Quad'>its</a> <a href='SkPath_Reference#Quad'>three</a> <a href='SkPoint_Reference#Point'>Points</a>. <a href='SkPath_Reference#Quad'>Quad</a>
-<a href='SkPath_Reference#Quad'>begins</a> <a href='SkPath_Reference#Quad'>tangent</a> <a href='SkPath_Reference#Quad'>to</a> <a href='SkPath_Reference#Quad'>the</a> <a href='undocumented#Line'>line</a> <a href='undocumented#Line'>between</a> <a href='undocumented#Line'>start</a> <a href='SkPoint_Reference#Point'>Point</a> <a href='SkPoint_Reference#Point'>and</a> <a href='SkPoint_Reference#Point'>control</a> <a href='SkPoint_Reference#Point'>Point</a>, <a href='SkPoint_Reference#Point'>and</a> <a href='SkPoint_Reference#Point'>ends</a>
-<a href='SkPoint_Reference#Point'>tangent</a> <a href='SkPoint_Reference#Point'>to</a> <a href='SkPoint_Reference#Point'>the</a> <a href='undocumented#Line'>line</a> <a href='undocumented#Line'>between</a> <a href='undocumented#Line'>control</a> <a href='SkPoint_Reference#Point'>Point</a> <a href='SkPoint_Reference#Point'>and</a> <a href='SkPoint_Reference#Point'>end</a> <a href='SkPoint_Reference#Point'>Point</a>.
+<a href='SkPath_Reference#Quad'>Quad</a> is always contained by the triangle connecting its three <a href='SkPoint_Reference#Point'>Points</a>. <a href='SkPath_Reference#Quad'>Quad</a>
+begins tangent to the <a href='undocumented#Line'>line</a> between start <a href='SkPoint_Reference#Point'>Point</a> and control <a href='SkPoint_Reference#Point'>Point</a>, and ends
+tangent to the <a href='undocumented#Line'>line</a> between control <a href='SkPoint_Reference#Point'>Point</a> and end <a href='SkPoint_Reference#Point'>Point</a>.
### Example
@@ -2278,30 +2278,30 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-<a href='SkPath_Reference#SkPath'>SkPath</a>& <a href='#SkPath_quadTo'>quadTo</a>(<a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>x1</a>, <a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>y1</a>, <a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>x2</a>, <a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>y2</a>)
+<a href='SkPath_Reference#SkPath'>SkPath</a>& <a href='#SkPath_quadTo'>quadTo</a>(<a href='undocumented#SkScalar'>SkScalar</a> x1, <a href='undocumented#SkScalar'>SkScalar</a> y1, <a href='undocumented#SkScalar'>SkScalar</a> x2, <a href='undocumented#SkScalar'>SkScalar</a> y2)
</pre>
-Adds <a href='SkPath_Reference#Quad'>quad</a> <a href='SkPath_Reference#Quad'>from</a> <a href='#Last_Point'>last point</a> <a href='SkPath_Reference#Quad'>towards</a> (<a href='#SkPath_quadTo_x1'>x1</a>, <a href='#SkPath_quadTo_y1'>y1</a>), <a href='#SkPath_quadTo_y1'>to</a> (<a href='#SkPath_quadTo_x2'>x2</a>, <a href='#SkPath_quadTo_y2'>y2</a>).
-If <a href='SkPath_Reference#SkPath'>SkPath</a> <a href='SkPath_Reference#SkPath'>is</a> <a href='SkPath_Reference#SkPath'>empty</a>, <a href='SkPath_Reference#SkPath'>or</a> <a href='SkPath_Reference#SkPath'>last</a> <a href='SkPath_Reference#SkPath'>SkPath</a>::<a href='#SkPath_Verb'>Verb</a> <a href='#SkPath_Verb'>is</a> <a href='#SkPath_kClose_Verb'>kClose_Verb</a>, <a href='#Last_Point'>last point</a> <a href='#SkPath_kClose_Verb'>is</a> <a href='#SkPath_kClose_Verb'>set</a> <a href='#SkPath_kClose_Verb'>to</a> (0, 0)
+Adds <a href='SkPath_Reference#Quad'>quad</a> from <a href='#Last_Point'>last point</a> towards (<a href='#SkPath_quadTo_x1'>x1</a>, <a href='#SkPath_quadTo_y1'>y1</a>), to (<a href='#SkPath_quadTo_x2'>x2</a>, <a href='#SkPath_quadTo_y2'>y2</a>).
+If <a href='SkPath_Reference#SkPath'>SkPath</a> is empty, or last <a href='SkPath_Reference#SkPath'>SkPath</a>::<a href='#SkPath_Verb'>Verb</a> is <a href='#SkPath_kClose_Verb'>kClose_Verb</a>, <a href='#Last_Point'>last point</a> is set to (0, 0)
before adding <a href='SkPath_Reference#Quad'>quad</a>.
-Appends <a href='#SkPath_kMove_Verb'>kMove_Verb</a> <a href='#SkPath_kMove_Verb'>to</a> <a href='#Verb_Array'>verb array</a> <a href='#SkPath_kMove_Verb'>and</a> (0, 0) <a href='#SkPath_kMove_Verb'>to</a> <a href='SkPath_Reference#Point_Array'>SkPoint array</a>, <a href='SkPoint_Reference#SkPoint'>if</a> <a href='SkPoint_Reference#SkPoint'>needed</a>;
-then appends <a href='#SkPath_kQuad_Verb'>kQuad_Verb</a> <a href='#SkPath_kQuad_Verb'>to</a> <a href='#Verb_Array'>verb array</a>; <a href='#SkPath_kQuad_Verb'>and</a> (<a href='#SkPath_quadTo_x1'>x1</a>, <a href='#SkPath_quadTo_y1'>y1</a>), (<a href='#SkPath_quadTo_x2'>x2</a>, <a href='#SkPath_quadTo_y2'>y2</a>)
+Appends <a href='#SkPath_kMove_Verb'>kMove_Verb</a> to <a href='#Verb_Array'>verb array</a> and (0, 0) to <a href='SkPath_Reference#Point_Array'>SkPoint array</a>, if needed;
+then appends <a href='#SkPath_kQuad_Verb'>kQuad_Verb</a> to <a href='#Verb_Array'>verb array</a>; and (<a href='#SkPath_quadTo_x1'>x1</a>, <a href='#SkPath_quadTo_y1'>y1</a>), (<a href='#SkPath_quadTo_x2'>x2</a>, <a href='#SkPath_quadTo_y2'>y2</a>)
to <a href='SkPath_Reference#Point_Array'>SkPoint array</a>.
### Parameters
<table> <tr> <td><a name='SkPath_quadTo_x1'><code><strong>x1</strong></code></a></td>
- <td>control <a href='SkPoint_Reference#SkPoint'>SkPoint</a> <a href='SkPoint_Reference#SkPoint'>of</a> <a href='SkPath_Reference#Quad'>quad</a> <a href='SkPath_Reference#Quad'>on</a> <a href='SkPath_Reference#Quad'>x-axis</a></td>
+ <td>control <a href='SkPoint_Reference#SkPoint'>SkPoint</a> of <a href='SkPath_Reference#Quad'>quad</a> on x-axis</td>
</tr>
<tr> <td><a name='SkPath_quadTo_y1'><code><strong>y1</strong></code></a></td>
- <td>control <a href='SkPoint_Reference#SkPoint'>SkPoint</a> <a href='SkPoint_Reference#SkPoint'>of</a> <a href='SkPath_Reference#Quad'>quad</a> <a href='SkPath_Reference#Quad'>on</a> <a href='SkPath_Reference#Quad'>y-axis</a></td>
+ <td>control <a href='SkPoint_Reference#SkPoint'>SkPoint</a> of <a href='SkPath_Reference#Quad'>quad</a> on y-axis</td>
</tr>
<tr> <td><a name='SkPath_quadTo_x2'><code><strong>x2</strong></code></a></td>
- <td>end <a href='SkPoint_Reference#SkPoint'>SkPoint</a> <a href='SkPoint_Reference#SkPoint'>of</a> <a href='SkPath_Reference#Quad'>quad</a> <a href='SkPath_Reference#Quad'>on</a> <a href='SkPath_Reference#Quad'>x-axis</a></td>
+ <td>end <a href='SkPoint_Reference#SkPoint'>SkPoint</a> of <a href='SkPath_Reference#Quad'>quad</a> on x-axis</td>
</tr>
<tr> <td><a name='SkPath_quadTo_y2'><code><strong>y2</strong></code></a></td>
- <td>end <a href='SkPoint_Reference#SkPoint'>SkPoint</a> <a href='SkPoint_Reference#SkPoint'>of</a> <a href='SkPath_Reference#Quad'>quad</a> <a href='SkPath_Reference#Quad'>on</a> <a href='SkPath_Reference#Quad'>y-axis</a></td>
+ <td>end <a href='SkPoint_Reference#SkPoint'>SkPoint</a> of <a href='SkPath_Reference#Quad'>quad</a> on y-axis</td>
</tr>
</table>
@@ -2322,24 +2322,24 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-<a href='SkPath_Reference#SkPath'>SkPath</a>& <a href='#SkPath_quadTo'>quadTo</a>(<a href='#SkPath_quadTo'>const</a> <a href='SkPoint_Reference#SkPoint'>SkPoint</a>& <a href='SkPoint_Reference#SkPoint'>p1</a>, <a href='SkPoint_Reference#SkPoint'>const</a> <a href='SkPoint_Reference#SkPoint'>SkPoint</a>& <a href='SkPoint_Reference#SkPoint'>p2</a>)
+<a href='SkPath_Reference#SkPath'>SkPath</a>& <a href='#SkPath_quadTo'>quadTo</a>(const <a href='SkPoint_Reference#SkPoint'>SkPoint</a>& p1, const <a href='SkPoint_Reference#SkPoint'>SkPoint</a>& p2)
</pre>
-Adds <a href='SkPath_Reference#Quad'>quad</a> <a href='SkPath_Reference#Quad'>from</a> <a href='#Last_Point'>last point</a> <a href='SkPath_Reference#Quad'>towards</a> <a href='SkPoint_Reference#SkPoint'>SkPoint</a> <a href='#SkPath_quadTo_2_p1'>p1</a>, <a href='#SkPath_quadTo_2_p1'>to</a> <a href='SkPoint_Reference#SkPoint'>SkPoint</a> <a href='#SkPath_quadTo_2_p2'>p2</a>.
-If <a href='SkPath_Reference#SkPath'>SkPath</a> <a href='SkPath_Reference#SkPath'>is</a> <a href='SkPath_Reference#SkPath'>empty</a>, <a href='SkPath_Reference#SkPath'>or</a> <a href='SkPath_Reference#SkPath'>last</a> <a href='SkPath_Reference#SkPath'>SkPath</a>::<a href='#SkPath_Verb'>Verb</a> <a href='#SkPath_Verb'>is</a> <a href='#SkPath_kClose_Verb'>kClose_Verb</a>, <a href='#Last_Point'>last point</a> <a href='#SkPath_kClose_Verb'>is</a> <a href='#SkPath_kClose_Verb'>set</a> <a href='#SkPath_kClose_Verb'>to</a> (0, 0)
+Adds <a href='SkPath_Reference#Quad'>quad</a> from <a href='#Last_Point'>last point</a> towards <a href='SkPoint_Reference#SkPoint'>SkPoint</a> <a href='#SkPath_quadTo_2_p1'>p1</a>, to <a href='SkPoint_Reference#SkPoint'>SkPoint</a> <a href='#SkPath_quadTo_2_p2'>p2</a>.
+If <a href='SkPath_Reference#SkPath'>SkPath</a> is empty, or last <a href='SkPath_Reference#SkPath'>SkPath</a>::<a href='#SkPath_Verb'>Verb</a> is <a href='#SkPath_kClose_Verb'>kClose_Verb</a>, <a href='#Last_Point'>last point</a> is set to (0, 0)
before adding <a href='SkPath_Reference#Quad'>quad</a>.
-Appends <a href='#SkPath_kMove_Verb'>kMove_Verb</a> <a href='#SkPath_kMove_Verb'>to</a> <a href='#Verb_Array'>verb array</a> <a href='#SkPath_kMove_Verb'>and</a> (0, 0) <a href='#SkPath_kMove_Verb'>to</a> <a href='SkPath_Reference#Point_Array'>SkPoint array</a>, <a href='SkPoint_Reference#SkPoint'>if</a> <a href='SkPoint_Reference#SkPoint'>needed</a>;
-then appends <a href='#SkPath_kQuad_Verb'>kQuad_Verb</a> <a href='#SkPath_kQuad_Verb'>to</a> <a href='#Verb_Array'>verb array</a>; <a href='#SkPath_kQuad_Verb'>and</a> <a href='SkPoint_Reference#SkPoint'>SkPoint</a> <a href='#SkPath_quadTo_2_p1'>p1</a>, <a href='#SkPath_quadTo_2_p2'>p2</a>
+Appends <a href='#SkPath_kMove_Verb'>kMove_Verb</a> to <a href='#Verb_Array'>verb array</a> and (0, 0) to <a href='SkPath_Reference#Point_Array'>SkPoint array</a>, if needed;
+then appends <a href='#SkPath_kQuad_Verb'>kQuad_Verb</a> to <a href='#Verb_Array'>verb array</a>; and <a href='SkPoint_Reference#SkPoint'>SkPoint</a> <a href='#SkPath_quadTo_2_p1'>p1</a>, <a href='#SkPath_quadTo_2_p2'>p2</a>
to <a href='SkPath_Reference#Point_Array'>SkPoint array</a>.
### Parameters
<table> <tr> <td><a name='SkPath_quadTo_2_p1'><code><strong>p1</strong></code></a></td>
- <td>control <a href='SkPoint_Reference#SkPoint'>SkPoint</a> <a href='SkPoint_Reference#SkPoint'>of</a> <a href='SkPoint_Reference#SkPoint'>added</a> <a href='SkPath_Reference#Quad'>quad</a></td>
+ <td>control <a href='SkPoint_Reference#SkPoint'>SkPoint</a> of added <a href='SkPath_Reference#Quad'>quad</a></td>
</tr>
<tr> <td><a name='SkPath_quadTo_2_p2'><code><strong>p2</strong></code></a></td>
- <td>end <a href='SkPoint_Reference#SkPoint'>SkPoint</a> <a href='SkPoint_Reference#SkPoint'>of</a> <a href='SkPoint_Reference#SkPoint'>added</a> <a href='SkPath_Reference#Quad'>quad</a></td>
+ <td>end <a href='SkPoint_Reference#SkPoint'>SkPoint</a> of added <a href='SkPath_Reference#Quad'>quad</a></td>
</tr>
</table>
@@ -2360,33 +2360,33 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-<a href='SkPath_Reference#SkPath'>SkPath</a>& <a href='#SkPath_rQuadTo'>rQuadTo</a>(<a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>dx1</a>, <a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>dy1</a>, <a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>dx2</a>, <a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>dy2</a>)
+<a href='SkPath_Reference#SkPath'>SkPath</a>& <a href='#SkPath_rQuadTo'>rQuadTo</a>(<a href='undocumented#SkScalar'>SkScalar</a> dx1, <a href='undocumented#SkScalar'>SkScalar</a> dy1, <a href='undocumented#SkScalar'>SkScalar</a> dx2, <a href='undocumented#SkScalar'>SkScalar</a> dy2)
</pre>
-Adds <a href='SkPath_Reference#Quad'>quad</a> <a href='SkPath_Reference#Quad'>from</a> <a href='#Last_Point'>last point</a> <a href='SkPath_Reference#Quad'>towards</a> <a href='SkPoint_Reference#Vector'>vector</a> (<a href='#SkPath_rQuadTo_dx1'>dx1</a>, <a href='#SkPath_rQuadTo_dy1'>dy1</a>), <a href='#SkPath_rQuadTo_dy1'>to</a> <a href='SkPoint_Reference#Vector'>vector</a> (<a href='#SkPath_rQuadTo_dx2'>dx2</a>, <a href='#SkPath_rQuadTo_dy2'>dy2</a>).
-If <a href='SkPath_Reference#SkPath'>SkPath</a> <a href='SkPath_Reference#SkPath'>is</a> <a href='SkPath_Reference#SkPath'>empty</a>, <a href='SkPath_Reference#SkPath'>or</a> <a href='SkPath_Reference#SkPath'>last</a> <a href='SkPath_Reference#SkPath'>SkPath</a>::<a href='#SkPath_Verb'>Verb</a>
-is <a href='#SkPath_kClose_Verb'>kClose_Verb</a>, <a href='#Last_Point'>last point</a> <a href='#SkPath_kClose_Verb'>is</a> <a href='#SkPath_kClose_Verb'>set</a> <a href='#SkPath_kClose_Verb'>to</a> (0, 0) <a href='#SkPath_kClose_Verb'>before</a> <a href='#SkPath_kClose_Verb'>adding</a> <a href='SkPath_Reference#Quad'>quad</a>.
+Adds <a href='SkPath_Reference#Quad'>quad</a> from <a href='#Last_Point'>last point</a> towards <a href='SkPoint_Reference#Vector'>vector</a> (<a href='#SkPath_rQuadTo_dx1'>dx1</a>, <a href='#SkPath_rQuadTo_dy1'>dy1</a>), to <a href='SkPoint_Reference#Vector'>vector</a> (<a href='#SkPath_rQuadTo_dx2'>dx2</a>, <a href='#SkPath_rQuadTo_dy2'>dy2</a>).
+If <a href='SkPath_Reference#SkPath'>SkPath</a> is empty, or last <a href='SkPath_Reference#SkPath'>SkPath</a>::<a href='#SkPath_Verb'>Verb</a>
+is <a href='#SkPath_kClose_Verb'>kClose_Verb</a>, <a href='#Last_Point'>last point</a> is set to (0, 0) before adding <a href='SkPath_Reference#Quad'>quad</a>.
-Appends <a href='#SkPath_kMove_Verb'>kMove_Verb</a> <a href='#SkPath_kMove_Verb'>to</a> <a href='#Verb_Array'>verb array</a> <a href='#SkPath_kMove_Verb'>and</a> (0, 0) <a href='#SkPath_kMove_Verb'>to</a> <a href='SkPath_Reference#Point_Array'>SkPoint array</a>,
-if needed; then appends <a href='#SkPath_kQuad_Verb'>kQuad_Verb</a> <a href='#SkPath_kQuad_Verb'>to</a> <a href='#Verb_Array'>verb array</a>; <a href='#SkPath_kQuad_Verb'>and</a> <a href='#SkPath_kQuad_Verb'>appends</a> <a href='SkPath_Reference#Quad'>quad</a>
-control and <a href='SkPath_Reference#Quad'>quad</a> <a href='SkPath_Reference#Quad'>end</a> <a href='SkPath_Reference#Quad'>to</a> <a href='SkPath_Reference#Point_Array'>SkPoint array</a>.
-<a href='SkPath_Reference#Quad'>Quad</a> <a href='SkPath_Reference#Quad'>control</a> <a href='SkPath_Reference#Quad'>is</a> <a href='#Last_Point'>last point</a> <a href='SkPath_Reference#Quad'>plus</a> <a href='SkPoint_Reference#Vector'>vector</a> (<a href='#SkPath_rQuadTo_dx1'>dx1</a>, <a href='#SkPath_rQuadTo_dy1'>dy1</a>).
-<a href='SkPath_Reference#Quad'>Quad</a> <a href='SkPath_Reference#Quad'>end</a> <a href='SkPath_Reference#Quad'>is</a> <a href='#Last_Point'>last point</a> <a href='SkPath_Reference#Quad'>plus</a> <a href='SkPoint_Reference#Vector'>vector</a> (<a href='#SkPath_rQuadTo_dx2'>dx2</a>, <a href='#SkPath_rQuadTo_dy2'>dy2</a>).
-Function name stands for "relative <a href='SkPath_Reference#Quad'>quad</a> <a href='SkPath_Reference#Quad'>to</a>".
+Appends <a href='#SkPath_kMove_Verb'>kMove_Verb</a> to <a href='#Verb_Array'>verb array</a> and (0, 0) to <a href='SkPath_Reference#Point_Array'>SkPoint array</a>,
+if needed; then appends <a href='#SkPath_kQuad_Verb'>kQuad_Verb</a> to <a href='#Verb_Array'>verb array</a>; and appends <a href='SkPath_Reference#Quad'>quad</a>
+control and <a href='SkPath_Reference#Quad'>quad</a> end to <a href='SkPath_Reference#Point_Array'>SkPoint array</a>.
+<a href='SkPath_Reference#Quad'>Quad</a> control is <a href='#Last_Point'>last point</a> plus <a href='SkPoint_Reference#Vector'>vector</a> (<a href='#SkPath_rQuadTo_dx1'>dx1</a>, <a href='#SkPath_rQuadTo_dy1'>dy1</a>).
+<a href='SkPath_Reference#Quad'>Quad</a> end is <a href='#Last_Point'>last point</a> plus <a href='SkPoint_Reference#Vector'>vector</a> (<a href='#SkPath_rQuadTo_dx2'>dx2</a>, <a href='#SkPath_rQuadTo_dy2'>dy2</a>).
+Function name stands for "relative <a href='SkPath_Reference#Quad'>quad</a> to".
### Parameters
<table> <tr> <td><a name='SkPath_rQuadTo_dx1'><code><strong>dx1</strong></code></a></td>
- <td>offset from <a href='#Last_Point'>last point</a> to <a href='SkPath_Reference#Quad'>quad</a> <a href='SkPath_Reference#Quad'>control</a> <a href='SkPath_Reference#Quad'>on</a> <a href='SkPath_Reference#Quad'>x-axis</a></td>
+ <td>offset from <a href='#Last_Point'>last point</a> to <a href='SkPath_Reference#Quad'>quad</a> control on x-axis</td>
</tr>
<tr> <td><a name='SkPath_rQuadTo_dy1'><code><strong>dy1</strong></code></a></td>
- <td>offset from <a href='#Last_Point'>last point</a> to <a href='SkPath_Reference#Quad'>quad</a> <a href='SkPath_Reference#Quad'>control</a> <a href='SkPath_Reference#Quad'>on</a> <a href='SkPath_Reference#Quad'>y-axis</a></td>
+ <td>offset from <a href='#Last_Point'>last point</a> to <a href='SkPath_Reference#Quad'>quad</a> control on y-axis</td>
</tr>
<tr> <td><a name='SkPath_rQuadTo_dx2'><code><strong>dx2</strong></code></a></td>
- <td>offset from <a href='#Last_Point'>last point</a> to <a href='SkPath_Reference#Quad'>quad</a> <a href='SkPath_Reference#Quad'>end</a> <a href='SkPath_Reference#Quad'>on</a> <a href='SkPath_Reference#Quad'>x-axis</a></td>
+ <td>offset from <a href='#Last_Point'>last point</a> to <a href='SkPath_Reference#Quad'>quad</a> end on x-axis</td>
</tr>
<tr> <td><a name='SkPath_rQuadTo_dy2'><code><strong>dy2</strong></code></a></td>
- <td>offset from <a href='#Last_Point'>last point</a> to <a href='SkPath_Reference#Quad'>quad</a> <a href='SkPath_Reference#Quad'>end</a> <a href='SkPath_Reference#Quad'>on</a> <a href='SkPath_Reference#Quad'>y-axis</a></td>
+ <td>offset from <a href='#Last_Point'>last point</a> to <a href='SkPath_Reference#Quad'>quad</a> end on y-axis</td>
</tr>
</table>
@@ -2404,30 +2404,30 @@
<a name='Conic'></a>
-<a href='SkPath_Reference#Conic'>Conic</a> <a href='SkPath_Reference#Conic'>describes</a> <a href='SkPath_Reference#Conic'>a</a> <a href='SkPath_Reference#Conic'>conical</a> <a href='SkPath_Reference#Conic'>section</a>: <a href='SkPath_Reference#Conic'>a</a> <a href='SkPath_Reference#Conic'>piece</a> <a href='SkPath_Reference#Conic'>of</a> <a href='SkPath_Reference#Conic'>an</a> <a href='SkPath_Reference#Conic'>ellipse</a>, <a href='SkPath_Reference#Conic'>or</a> <a href='SkPath_Reference#Conic'>a</a> <a href='SkPath_Reference#Conic'>piece</a> <a href='SkPath_Reference#Conic'>of</a> <a href='SkPath_Reference#Conic'>a</a>
-<a href='SkPath_Reference#Conic'>parabola</a>, <a href='SkPath_Reference#Conic'>or</a> <a href='SkPath_Reference#Conic'>a</a> <a href='SkPath_Reference#Conic'>piece</a> <a href='SkPath_Reference#Conic'>of</a> <a href='SkPath_Reference#Conic'>a</a> <a href='SkPath_Reference#Conic'>hyperbola</a>. <a href='SkPath_Reference#Conic'>Conic</a> <a href='SkPath_Reference#Conic'>begins</a> <a href='SkPath_Reference#Conic'>at</a> <a href='SkPath_Reference#Conic'>a</a> <a href='SkPath_Reference#Conic'>start</a> <a href='SkPoint_Reference#Point'>Point</a>,
-<a href='undocumented#Curve'>curves</a> <a href='undocumented#Curve'>towards</a> <a href='undocumented#Curve'>a</a> <a href='undocumented#Curve'>control</a> <a href='SkPoint_Reference#Point'>Point</a>, <a href='SkPoint_Reference#Point'>and</a> <a href='SkPoint_Reference#Point'>then</a> <a href='undocumented#Curve'>curves</a> <a href='undocumented#Curve'>to</a> <a href='undocumented#Curve'>an</a> <a href='undocumented#Curve'>end</a> <a href='SkPoint_Reference#Point'>Point</a>. <a href='SkPoint_Reference#Point'>The</a> <a href='SkPoint_Reference#Point'>influence</a>
-<a href='SkPoint_Reference#Point'>of</a> <a href='SkPoint_Reference#Point'>the</a> <a href='SkPoint_Reference#Point'>control</a> <a href='SkPoint_Reference#Point'>Point</a> <a href='SkPoint_Reference#Point'>is</a> <a href='SkPoint_Reference#Point'>determined</a> <a href='SkPoint_Reference#Point'>by</a> <a href='#Path_Conic_Weight'>Conic_Weight</a>.
+<a href='SkPath_Reference#Conic'>Conic</a> describes a conical section: a piece of an ellipse, or a piece of a
+parabola, or a piece of a hyperbola. <a href='SkPath_Reference#Conic'>Conic</a> begins at a start <a href='SkPoint_Reference#Point'>Point</a>,
+<a href='undocumented#Curve'>curves</a> towards a control <a href='SkPoint_Reference#Point'>Point</a>, and then <a href='undocumented#Curve'>curves</a> to an end <a href='SkPoint_Reference#Point'>Point</a>. The influence
+of the control <a href='SkPoint_Reference#Point'>Point</a> is determined by <a href='#Path_Conic_Weight'>Conic_Weight</a>.
-<a href='#Path_Conic_Weight'>Each</a> <a href='SkPath_Reference#Conic'>Conic</a> <a href='SkPath_Reference#Conic'>in</a> <a href='SkPath_Reference#Path'>Path</a> <a href='SkPath_Reference#Path'>adds</a> <a href='SkPath_Reference#Path'>two</a> <a href='SkPoint_Reference#Point'>Points</a> <a href='SkPoint_Reference#Point'>and</a> <a href='SkPoint_Reference#Point'>one</a> <a href='#Path_Conic_Weight'>Conic_Weight</a>. <a href='#Path_Conic_Weight'>Conic_Weights</a> <a href='#Path_Conic_Weight'>in</a> <a href='SkPath_Reference#Path'>Path</a>
-<a href='SkPath_Reference#Path'>may</a> <a href='SkPath_Reference#Path'>be</a> <a href='SkPath_Reference#Path'>inspected</a> <a href='SkPath_Reference#Path'>with</a> <a href='#SkPath_Iter'>Iter</a>, <a href='#SkPath_Iter'>or</a> <a href='#SkPath_Iter'>with</a> <a href='#SkPath_RawIter'>RawIter</a>.
+Each <a href='SkPath_Reference#Conic'>Conic</a> in <a href='SkPath_Reference#Path'>Path</a> adds two <a href='SkPoint_Reference#Point'>Points</a> and one <a href='#Path_Conic_Weight'>Conic_Weight</a>. <a href='#Path_Conic_Weight'>Conic_Weights</a> in <a href='SkPath_Reference#Path'>Path</a>
+may be inspected with <a href='#SkPath_Iter'>Iter</a>, or with <a href='#SkPath_RawIter'>RawIter</a>.
<a name='Conic_Weight'></a>
---
-Weight determines both the strength of the control <a href='SkPoint_Reference#Point'>Point</a> <a href='SkPoint_Reference#Point'>and</a> <a href='SkPoint_Reference#Point'>the</a> <a href='SkPoint_Reference#Point'>type</a> <a href='SkPoint_Reference#Point'>of</a> <a href='SkPath_Reference#Conic'>Conic</a>.
-<a href='SkPath_Reference#Conic'>Weight</a> <a href='SkPath_Reference#Conic'>varies</a> <a href='SkPath_Reference#Conic'>from</a> <a href='SkPath_Reference#Conic'>zero</a> <a href='SkPath_Reference#Conic'>to</a> <a href='SkPath_Reference#Conic'>infinity</a>. <a href='SkPath_Reference#Conic'>At</a> <a href='SkPath_Reference#Conic'>zero</a>, <a href='SkPath_Reference#Conic'>Weight</a> <a href='SkPath_Reference#Conic'>causes</a> <a href='SkPath_Reference#Conic'>the</a> <a href='SkPath_Reference#Conic'>control</a> <a href='SkPoint_Reference#Point'>Point</a> <a href='SkPoint_Reference#Point'>to</a>
-<a href='SkPoint_Reference#Point'>have</a> <a href='SkPoint_Reference#Point'>no</a> <a href='SkPoint_Reference#Point'>effect</a>; <a href='SkPath_Reference#Conic'>Conic</a> <a href='SkPath_Reference#Conic'>is</a> <a href='SkPath_Reference#Conic'>identical</a> <a href='SkPath_Reference#Conic'>to</a> <a href='SkPath_Reference#Conic'>a</a> <a href='undocumented#Line'>line</a> <a href='undocumented#Line'>segment</a> <a href='undocumented#Line'>from</a> <a href='undocumented#Line'>start</a> <a href='SkPoint_Reference#Point'>Point</a> <a href='SkPoint_Reference#Point'>to</a> <a href='SkPoint_Reference#Point'>end</a>
-<a href='SkPoint_Reference#Point'>point</a>. <a href='SkPoint_Reference#Point'>If</a> <a href='SkPoint_Reference#Point'>Weight</a> <a href='SkPoint_Reference#Point'>is</a> <a href='SkPoint_Reference#Point'>less</a> <a href='SkPoint_Reference#Point'>than</a> <a href='SkPoint_Reference#Point'>one</a>, <a href='SkPath_Reference#Conic'>Conic</a> <a href='SkPath_Reference#Conic'>follows</a> <a href='SkPath_Reference#Conic'>an</a> <a href='SkPath_Reference#Conic'>elliptical</a> <a href='undocumented#Arc'>arc</a>.
-<a href='undocumented#Arc'>If</a> <a href='undocumented#Arc'>Weight</a> <a href='undocumented#Arc'>is</a> <a href='undocumented#Arc'>exactly</a> <a href='undocumented#Arc'>one</a>, <a href='undocumented#Arc'>then</a> <a href='SkPath_Reference#Conic'>Conic</a> <a href='SkPath_Reference#Conic'>is</a> <a href='SkPath_Reference#Conic'>identical</a> <a href='SkPath_Reference#Conic'>to</a> <a href='SkPath_Reference#Quad'>Quad</a>; <a href='SkPath_Reference#Conic'>Conic</a> <a href='SkPath_Reference#Conic'>follows</a> <a href='SkPath_Reference#Conic'>a</a>
-<a href='SkPath_Reference#Conic'>parabolic</a> <a href='undocumented#Arc'>arc</a>. <a href='undocumented#Arc'>If</a> <a href='undocumented#Arc'>Weight</a> <a href='undocumented#Arc'>is</a> <a href='undocumented#Arc'>greater</a> <a href='undocumented#Arc'>than</a> <a href='undocumented#Arc'>one</a>, <a href='SkPath_Reference#Conic'>Conic</a> <a href='SkPath_Reference#Conic'>follows</a> <a href='SkPath_Reference#Conic'>a</a> <a href='SkPath_Reference#Conic'>hyperbolic</a>
-<a href='undocumented#Arc'>arc</a>. <a href='undocumented#Arc'>If</a> <a href='undocumented#Arc'>Weight</a> <a href='undocumented#Arc'>is</a> <a href='undocumented#Arc'>infinity</a>, <a href='SkPath_Reference#Conic'>Conic</a> <a href='SkPath_Reference#Conic'>is</a> <a href='SkPath_Reference#Conic'>identical</a> <a href='SkPath_Reference#Conic'>to</a> <a href='SkPath_Reference#Conic'>two</a> <a href='undocumented#Line'>line</a> <a href='undocumented#Line'>segments</a>, <a href='undocumented#Line'>connecting</a>
-<a href='undocumented#Line'>start</a> <a href='SkPoint_Reference#Point'>Point</a> <a href='SkPoint_Reference#Point'>to</a> <a href='SkPoint_Reference#Point'>control</a> <a href='SkPoint_Reference#Point'>Point</a>, <a href='SkPoint_Reference#Point'>and</a> <a href='SkPoint_Reference#Point'>control</a> <a href='SkPoint_Reference#Point'>Point</a> <a href='SkPoint_Reference#Point'>to</a> <a href='SkPoint_Reference#Point'>end</a> <a href='SkPoint_Reference#Point'>Point</a>.
+Weight determines both the strength of the control <a href='SkPoint_Reference#Point'>Point</a> and the type of <a href='SkPath_Reference#Conic'>Conic</a>.
+Weight varies from zero to infinity. At zero, Weight causes the control <a href='SkPoint_Reference#Point'>Point</a> to
+have no effect; <a href='SkPath_Reference#Conic'>Conic</a> is identical to a <a href='undocumented#Line'>line</a> segment from start <a href='SkPoint_Reference#Point'>Point</a> to end
+<a href='SkPoint_Reference#Point'>point</a>. If Weight is less than one, <a href='SkPath_Reference#Conic'>Conic</a> follows an elliptical <a href='undocumented#Arc'>arc</a>.
+If Weight is exactly one, then <a href='SkPath_Reference#Conic'>Conic</a> is identical to <a href='SkPath_Reference#Quad'>Quad</a>; <a href='SkPath_Reference#Conic'>Conic</a> follows a
+parabolic <a href='undocumented#Arc'>arc</a>. If Weight is greater than one, <a href='SkPath_Reference#Conic'>Conic</a> follows a hyperbolic
+<a href='undocumented#Arc'>arc</a>. If Weight is infinity, <a href='SkPath_Reference#Conic'>Conic</a> is identical to two <a href='undocumented#Line'>line</a> segments, connecting
+start <a href='SkPoint_Reference#Point'>Point</a> to control <a href='SkPoint_Reference#Point'>Point</a>, and control <a href='SkPoint_Reference#Point'>Point</a> to end <a href='SkPoint_Reference#Point'>Point</a>.
### Example
-<div><fiddle-embed name="2aadded3d20dfef34d1c8abe28c7bc8d"><div>When <a href='#Path_Conic_Weight'>Conic_Weight</a> <a href='#Path_Conic_Weight'>is</a> <a href='#Path_Conic_Weight'>one</a>, <a href='SkPath_Reference#Quad'>Quad</a> <a href='SkPath_Reference#Quad'>is</a> <a href='SkPath_Reference#Quad'>added</a> <a href='SkPath_Reference#Quad'>to</a> <a href='SkPath_Reference#Path'>path</a>; <a href='SkPath_Reference#Path'>the</a> <a href='SkPath_Reference#Path'>two</a> <a href='SkPath_Reference#Path'>are</a> <a href='SkPath_Reference#Path'>identical</a>.
+<div><fiddle-embed name="2aadded3d20dfef34d1c8abe28c7bc8d"><div>When <a href='#Path_Conic_Weight'>Conic_Weight</a> is one, <a href='SkPath_Reference#Quad'>Quad</a> is added to <a href='SkPath_Reference#Path'>path</a>; the two are identical.
</div>
#### Example Output
@@ -2440,11 +2440,11 @@
</fiddle-embed></div>
-If weight is less than one, <a href='SkPath_Reference#Conic'>Conic</a> <a href='SkPath_Reference#Conic'>is</a> <a href='SkPath_Reference#Conic'>an</a> <a href='SkPath_Reference#Conic'>elliptical</a> <a href='SkPath_Reference#Conic'>segment</a>.
+If weight is less than one, <a href='SkPath_Reference#Conic'>Conic</a> is an elliptical segment.
### Example
-<div><fiddle-embed name="e88f554efacfa9f75f270fb1c0add5b4"><div>A 90 degree circular <a href='undocumented#Arc'>arc</a> <a href='undocumented#Arc'>has</a> <a href='undocumented#Arc'>the</a> <a href='undocumented#Arc'>weight</a> <code>1 / <a href='undocumented#sqrt()'>sqrt</a>(2)</code>.
+<div><fiddle-embed name="e88f554efacfa9f75f270fb1c0add5b4"><div>A 90 degree circular <a href='undocumented#Arc'>arc</a> has the weight <code>1 / <a href='undocumented#sqrt()'>sqrt</a>(2)</code>.
</div>
#### Example Output
@@ -2457,9 +2457,9 @@
</fiddle-embed></div>
-If weight is greater than one, <a href='SkPath_Reference#Conic'>Conic</a> <a href='SkPath_Reference#Conic'>is</a> <a href='SkPath_Reference#Conic'>a</a> <a href='SkPath_Reference#Conic'>hyperbolic</a> <a href='SkPath_Reference#Conic'>segment</a>. <a href='SkPath_Reference#Conic'>As</a> <a href='SkPath_Reference#Conic'>weight</a> <a href='SkPath_Reference#Conic'>gets</a> <a href='SkPath_Reference#Conic'>large</a>,
-<a href='SkPath_Reference#Conic'>a</a> <a href='SkPath_Reference#Conic'>hyperbolic</a> <a href='SkPath_Reference#Conic'>segment</a> <a href='SkPath_Reference#Conic'>can</a> <a href='SkPath_Reference#Conic'>be</a> <a href='SkPath_Reference#Conic'>approximated</a> <a href='SkPath_Reference#Conic'>by</a> <a href='SkPath_Reference#Conic'>straight</a> <a href='undocumented#Line'>lines</a> <a href='undocumented#Line'>connecting</a> <a href='undocumented#Line'>the</a>
-<a href='undocumented#Line'>control</a> <a href='SkPoint_Reference#Point'>Point</a> <a href='SkPoint_Reference#Point'>with</a> <a href='SkPoint_Reference#Point'>the</a> <a href='SkPoint_Reference#Point'>end</a> <a href='SkPoint_Reference#Point'>Points</a>.
+If weight is greater than one, <a href='SkPath_Reference#Conic'>Conic</a> is a hyperbolic segment. As weight gets large,
+a hyperbolic segment can be approximated by straight <a href='undocumented#Line'>lines</a> connecting the
+control <a href='SkPoint_Reference#Point'>Point</a> with the end <a href='SkPoint_Reference#Point'>Points</a>.
### Example
@@ -2481,37 +2481,37 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-<a href='SkPath_Reference#SkPath'>SkPath</a>& <a href='#SkPath_conicTo'>conicTo</a>(<a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>x1</a>, <a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>y1</a>, <a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>x2</a>, <a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>y2</a>, <a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>w</a>)
+<a href='SkPath_Reference#SkPath'>SkPath</a>& <a href='#SkPath_conicTo'>conicTo</a>(<a href='undocumented#SkScalar'>SkScalar</a> x1, <a href='undocumented#SkScalar'>SkScalar</a> y1, <a href='undocumented#SkScalar'>SkScalar</a> x2, <a href='undocumented#SkScalar'>SkScalar</a> y2, <a href='undocumented#SkScalar'>SkScalar</a> w)
</pre>
-Adds <a href='SkPath_Reference#Conic'>conic</a> <a href='SkPath_Reference#Conic'>from</a> <a href='#Last_Point'>last point</a> <a href='SkPath_Reference#Conic'>towards</a> (<a href='#SkPath_conicTo_x1'>x1</a>, <a href='#SkPath_conicTo_y1'>y1</a>), <a href='#SkPath_conicTo_y1'>to</a> (<a href='#SkPath_conicTo_x2'>x2</a>, <a href='#SkPath_conicTo_y2'>y2</a>), <a href='#SkPath_conicTo_y2'>weighted</a> <a href='#SkPath_conicTo_y2'>by</a> <a href='#SkPath_conicTo_w'>w</a>.
-If <a href='SkPath_Reference#SkPath'>SkPath</a> <a href='SkPath_Reference#SkPath'>is</a> <a href='SkPath_Reference#SkPath'>empty</a>, <a href='SkPath_Reference#SkPath'>or</a> <a href='SkPath_Reference#SkPath'>last</a> <a href='SkPath_Reference#SkPath'>SkPath</a>::<a href='#SkPath_Verb'>Verb</a> <a href='#SkPath_Verb'>is</a> <a href='#SkPath_kClose_Verb'>kClose_Verb</a>, <a href='#Last_Point'>last point</a> <a href='#SkPath_kClose_Verb'>is</a> <a href='#SkPath_kClose_Verb'>set</a> <a href='#SkPath_kClose_Verb'>to</a> (0, 0)
+Adds <a href='SkPath_Reference#Conic'>conic</a> from <a href='#Last_Point'>last point</a> towards (<a href='#SkPath_conicTo_x1'>x1</a>, <a href='#SkPath_conicTo_y1'>y1</a>), to (<a href='#SkPath_conicTo_x2'>x2</a>, <a href='#SkPath_conicTo_y2'>y2</a>), weighted by <a href='#SkPath_conicTo_w'>w</a>.
+If <a href='SkPath_Reference#SkPath'>SkPath</a> is empty, or last <a href='SkPath_Reference#SkPath'>SkPath</a>::<a href='#SkPath_Verb'>Verb</a> is <a href='#SkPath_kClose_Verb'>kClose_Verb</a>, <a href='#Last_Point'>last point</a> is set to (0, 0)
before adding <a href='SkPath_Reference#Conic'>conic</a>.
-Appends <a href='#SkPath_kMove_Verb'>kMove_Verb</a> <a href='#SkPath_kMove_Verb'>to</a> <a href='#Verb_Array'>verb array</a> <a href='#SkPath_kMove_Verb'>and</a> (0, 0) <a href='#SkPath_kMove_Verb'>to</a> <a href='SkPath_Reference#Point_Array'>SkPoint array</a>, <a href='SkPoint_Reference#SkPoint'>if</a> <a href='SkPoint_Reference#SkPoint'>needed</a>.
+Appends <a href='#SkPath_kMove_Verb'>kMove_Verb</a> to <a href='#Verb_Array'>verb array</a> and (0, 0) to <a href='SkPath_Reference#Point_Array'>SkPoint array</a>, if needed.
-If <a href='#SkPath_conicTo_w'>w</a> <a href='#SkPath_conicTo_w'>is</a> <a href='#SkPath_conicTo_w'>finite</a> <a href='#SkPath_conicTo_w'>and</a> <a href='#SkPath_conicTo_w'>not</a> <a href='#SkPath_conicTo_w'>one</a>, <a href='#SkPath_conicTo_w'>appends</a> <a href='#SkPath_kConic_Verb'>kConic_Verb</a> <a href='#SkPath_kConic_Verb'>to</a> <a href='#Verb_Array'>verb array</a>;
-and (<a href='#SkPath_conicTo_x1'>x1</a>, <a href='#SkPath_conicTo_y1'>y1</a>), (<a href='#SkPath_conicTo_x2'>x2</a>, <a href='#SkPath_conicTo_y2'>y2</a>) <a href='#SkPath_conicTo_y2'>to</a> <a href='SkPath_Reference#Point_Array'>SkPoint array</a>; <a href='SkPoint_Reference#SkPoint'>and</a> <a href='#SkPath_conicTo_w'>w</a> <a href='#SkPath_conicTo_w'>to</a> <a href='SkPath_Reference#Conic_Weight'>conic weights</a>.
+If <a href='#SkPath_conicTo_w'>w</a> is finite and not one, appends <a href='#SkPath_kConic_Verb'>kConic_Verb</a> to <a href='#Verb_Array'>verb array</a>;
+and (<a href='#SkPath_conicTo_x1'>x1</a>, <a href='#SkPath_conicTo_y1'>y1</a>), (<a href='#SkPath_conicTo_x2'>x2</a>, <a href='#SkPath_conicTo_y2'>y2</a>) to <a href='SkPath_Reference#Point_Array'>SkPoint array</a>; and <a href='#SkPath_conicTo_w'>w</a> to <a href='SkPath_Reference#Conic_Weight'>conic weights</a>.
-If <a href='#SkPath_conicTo_w'>w</a> <a href='#SkPath_conicTo_w'>is</a> <a href='#SkPath_conicTo_w'>one</a>, <a href='#SkPath_conicTo_w'>appends</a> <a href='#SkPath_kQuad_Verb'>kQuad_Verb</a> <a href='#SkPath_kQuad_Verb'>to</a> <a href='#Verb_Array'>verb array</a>, <a href='#SkPath_kQuad_Verb'>and</a>
-(<a href='#SkPath_conicTo_x1'>x1</a>, <a href='#SkPath_conicTo_y1'>y1</a>), (<a href='#SkPath_conicTo_x2'>x2</a>, <a href='#SkPath_conicTo_y2'>y2</a>) <a href='#SkPath_conicTo_y2'>to</a> <a href='SkPath_Reference#Point_Array'>SkPoint array</a>.
+If <a href='#SkPath_conicTo_w'>w</a> is one, appends <a href='#SkPath_kQuad_Verb'>kQuad_Verb</a> to <a href='#Verb_Array'>verb array</a>, and
+(<a href='#SkPath_conicTo_x1'>x1</a>, <a href='#SkPath_conicTo_y1'>y1</a>), (<a href='#SkPath_conicTo_x2'>x2</a>, <a href='#SkPath_conicTo_y2'>y2</a>) to <a href='SkPath_Reference#Point_Array'>SkPoint array</a>.
-If <a href='#SkPath_conicTo_w'>w</a> <a href='#SkPath_conicTo_w'>is</a> <a href='#SkPath_conicTo_w'>not</a> <a href='#SkPath_conicTo_w'>finite</a>, <a href='#SkPath_conicTo_w'>appends</a> <a href='#SkPath_kLine_Verb'>kLine_Verb</a> <a href='#SkPath_kLine_Verb'>twice</a> <a href='#SkPath_kLine_Verb'>to</a> <a href='#Verb_Array'>verb array</a>, <a href='#SkPath_kLine_Verb'>and</a>
-(<a href='#SkPath_conicTo_x1'>x1</a>, <a href='#SkPath_conicTo_y1'>y1</a>), (<a href='#SkPath_conicTo_x2'>x2</a>, <a href='#SkPath_conicTo_y2'>y2</a>) <a href='#SkPath_conicTo_y2'>to</a> <a href='SkPath_Reference#Point_Array'>SkPoint array</a>.
+If <a href='#SkPath_conicTo_w'>w</a> is not finite, appends <a href='#SkPath_kLine_Verb'>kLine_Verb</a> twice to <a href='#Verb_Array'>verb array</a>, and
+(<a href='#SkPath_conicTo_x1'>x1</a>, <a href='#SkPath_conicTo_y1'>y1</a>), (<a href='#SkPath_conicTo_x2'>x2</a>, <a href='#SkPath_conicTo_y2'>y2</a>) to <a href='SkPath_Reference#Point_Array'>SkPoint array</a>.
### Parameters
<table> <tr> <td><a name='SkPath_conicTo_x1'><code><strong>x1</strong></code></a></td>
- <td>control <a href='SkPoint_Reference#SkPoint'>SkPoint</a> <a href='SkPoint_Reference#SkPoint'>of</a> <a href='SkPath_Reference#Conic'>conic</a> <a href='SkPath_Reference#Conic'>on</a> <a href='SkPath_Reference#Conic'>x-axis</a></td>
+ <td>control <a href='SkPoint_Reference#SkPoint'>SkPoint</a> of <a href='SkPath_Reference#Conic'>conic</a> on x-axis</td>
</tr>
<tr> <td><a name='SkPath_conicTo_y1'><code><strong>y1</strong></code></a></td>
- <td>control <a href='SkPoint_Reference#SkPoint'>SkPoint</a> <a href='SkPoint_Reference#SkPoint'>of</a> <a href='SkPath_Reference#Conic'>conic</a> <a href='SkPath_Reference#Conic'>on</a> <a href='SkPath_Reference#Conic'>y-axis</a></td>
+ <td>control <a href='SkPoint_Reference#SkPoint'>SkPoint</a> of <a href='SkPath_Reference#Conic'>conic</a> on y-axis</td>
</tr>
<tr> <td><a name='SkPath_conicTo_x2'><code><strong>x2</strong></code></a></td>
- <td>end <a href='SkPoint_Reference#SkPoint'>SkPoint</a> <a href='SkPoint_Reference#SkPoint'>of</a> <a href='SkPath_Reference#Conic'>conic</a> <a href='SkPath_Reference#Conic'>on</a> <a href='SkPath_Reference#Conic'>x-axis</a></td>
+ <td>end <a href='SkPoint_Reference#SkPoint'>SkPoint</a> of <a href='SkPath_Reference#Conic'>conic</a> on x-axis</td>
</tr>
<tr> <td><a name='SkPath_conicTo_y2'><code><strong>y2</strong></code></a></td>
- <td>end <a href='SkPoint_Reference#SkPoint'>SkPoint</a> <a href='SkPoint_Reference#SkPoint'>of</a> <a href='SkPath_Reference#Conic'>conic</a> <a href='SkPath_Reference#Conic'>on</a> <a href='SkPath_Reference#Conic'>y-axis</a></td>
+ <td>end <a href='SkPoint_Reference#SkPoint'>SkPoint</a> of <a href='SkPath_Reference#Conic'>conic</a> on y-axis</td>
</tr>
<tr> <td><a name='SkPath_conicTo_w'><code><strong>w</strong></code></a></td>
<td>weight of added <a href='SkPath_Reference#Conic'>conic</a></td>
@@ -2524,9 +2524,9 @@
### Example
-<div><fiddle-embed name="358d9b6060b528b0923c007420f09c13"><div>As weight increases, <a href='undocumented#Curve'>curve</a> <a href='undocumented#Curve'>is</a> <a href='undocumented#Curve'>pulled</a> <a href='undocumented#Curve'>towards</a> <a href='undocumented#Curve'>control</a> <a href='SkPoint_Reference#Point'>point</a>.
-<a href='SkPoint_Reference#Point'>The</a> <a href='SkPoint_Reference#Point'>bottom</a> <a href='SkPoint_Reference#Point'>two</a> <a href='undocumented#Curve'>curves</a> <a href='undocumented#Curve'>are</a> <a href='undocumented#Curve'>elliptical</a>; <a href='undocumented#Curve'>the</a> <a href='undocumented#Curve'>next</a> <a href='undocumented#Curve'>is</a> <a href='undocumented#Curve'>parabolic</a>; <a href='undocumented#Curve'>the</a>
-<a href='undocumented#Curve'>top</a> <a href='undocumented#Curve'>curve</a> <a href='undocumented#Curve'>is</a> <a href='undocumented#Curve'>hyperbolic</a>.
+<div><fiddle-embed name="358d9b6060b528b0923c007420f09c13"><div>As weight increases, <a href='undocumented#Curve'>curve</a> is pulled towards control <a href='SkPoint_Reference#Point'>point</a>.
+The bottom two <a href='undocumented#Curve'>curves</a> are elliptical; the next is parabolic; the
+top <a href='undocumented#Curve'>curve</a> is hyperbolic.
</div></fiddle-embed></div>
### See Also
@@ -2538,31 +2538,31 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-<a href='SkPath_Reference#SkPath'>SkPath</a>& <a href='#SkPath_conicTo'>conicTo</a>(<a href='#SkPath_conicTo'>const</a> <a href='SkPoint_Reference#SkPoint'>SkPoint</a>& <a href='SkPoint_Reference#SkPoint'>p1</a>, <a href='SkPoint_Reference#SkPoint'>const</a> <a href='SkPoint_Reference#SkPoint'>SkPoint</a>& <a href='SkPoint_Reference#SkPoint'>p2</a>, <a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>w</a>)
+<a href='SkPath_Reference#SkPath'>SkPath</a>& <a href='#SkPath_conicTo'>conicTo</a>(const <a href='SkPoint_Reference#SkPoint'>SkPoint</a>& p1, const <a href='SkPoint_Reference#SkPoint'>SkPoint</a>& p2, <a href='undocumented#SkScalar'>SkScalar</a> w)
</pre>
-Adds <a href='SkPath_Reference#Conic'>conic</a> <a href='SkPath_Reference#Conic'>from</a> <a href='#Last_Point'>last point</a> <a href='SkPath_Reference#Conic'>towards</a> <a href='SkPoint_Reference#SkPoint'>SkPoint</a> <a href='#SkPath_conicTo_2_p1'>p1</a>, <a href='#SkPath_conicTo_2_p1'>to</a> <a href='SkPoint_Reference#SkPoint'>SkPoint</a> <a href='#SkPath_conicTo_2_p2'>p2</a>, <a href='#SkPath_conicTo_2_p2'>weighted</a> <a href='#SkPath_conicTo_2_p2'>by</a> <a href='#SkPath_conicTo_2_w'>w</a>.
-If <a href='SkPath_Reference#SkPath'>SkPath</a> <a href='SkPath_Reference#SkPath'>is</a> <a href='SkPath_Reference#SkPath'>empty</a>, <a href='SkPath_Reference#SkPath'>or</a> <a href='SkPath_Reference#SkPath'>last</a> <a href='SkPath_Reference#SkPath'>SkPath</a>::<a href='#SkPath_Verb'>Verb</a> <a href='#SkPath_Verb'>is</a> <a href='#SkPath_kClose_Verb'>kClose_Verb</a>, <a href='#Last_Point'>last point</a> <a href='#SkPath_kClose_Verb'>is</a> <a href='#SkPath_kClose_Verb'>set</a> <a href='#SkPath_kClose_Verb'>to</a> (0, 0)
+Adds <a href='SkPath_Reference#Conic'>conic</a> from <a href='#Last_Point'>last point</a> towards <a href='SkPoint_Reference#SkPoint'>SkPoint</a> <a href='#SkPath_conicTo_2_p1'>p1</a>, to <a href='SkPoint_Reference#SkPoint'>SkPoint</a> <a href='#SkPath_conicTo_2_p2'>p2</a>, weighted by <a href='#SkPath_conicTo_2_w'>w</a>.
+If <a href='SkPath_Reference#SkPath'>SkPath</a> is empty, or last <a href='SkPath_Reference#SkPath'>SkPath</a>::<a href='#SkPath_Verb'>Verb</a> is <a href='#SkPath_kClose_Verb'>kClose_Verb</a>, <a href='#Last_Point'>last point</a> is set to (0, 0)
before adding <a href='SkPath_Reference#Conic'>conic</a>.
-Appends <a href='#SkPath_kMove_Verb'>kMove_Verb</a> <a href='#SkPath_kMove_Verb'>to</a> <a href='#Verb_Array'>verb array</a> <a href='#SkPath_kMove_Verb'>and</a> (0, 0) <a href='#SkPath_kMove_Verb'>to</a> <a href='SkPath_Reference#Point_Array'>SkPoint array</a>, <a href='SkPoint_Reference#SkPoint'>if</a> <a href='SkPoint_Reference#SkPoint'>needed</a>.
+Appends <a href='#SkPath_kMove_Verb'>kMove_Verb</a> to <a href='#Verb_Array'>verb array</a> and (0, 0) to <a href='SkPath_Reference#Point_Array'>SkPoint array</a>, if needed.
-If <a href='#SkPath_conicTo_2_w'>w</a> <a href='#SkPath_conicTo_2_w'>is</a> <a href='#SkPath_conicTo_2_w'>finite</a> <a href='#SkPath_conicTo_2_w'>and</a> <a href='#SkPath_conicTo_2_w'>not</a> <a href='#SkPath_conicTo_2_w'>one</a>, <a href='#SkPath_conicTo_2_w'>appends</a> <a href='#SkPath_kConic_Verb'>kConic_Verb</a> <a href='#SkPath_kConic_Verb'>to</a> <a href='#Verb_Array'>verb array</a>;
-and <a href='SkPoint_Reference#SkPoint'>SkPoint</a> <a href='#SkPath_conicTo_2_p1'>p1</a>, <a href='#SkPath_conicTo_2_p2'>p2</a> <a href='#SkPath_conicTo_2_p2'>to</a> <a href='SkPath_Reference#Point_Array'>SkPoint array</a>; <a href='SkPoint_Reference#SkPoint'>and</a> <a href='#SkPath_conicTo_2_w'>w</a> <a href='#SkPath_conicTo_2_w'>to</a> <a href='SkPath_Reference#Conic_Weight'>conic weights</a>.
+If <a href='#SkPath_conicTo_2_w'>w</a> is finite and not one, appends <a href='#SkPath_kConic_Verb'>kConic_Verb</a> to <a href='#Verb_Array'>verb array</a>;
+and <a href='SkPoint_Reference#SkPoint'>SkPoint</a> <a href='#SkPath_conicTo_2_p1'>p1</a>, <a href='#SkPath_conicTo_2_p2'>p2</a> to <a href='SkPath_Reference#Point_Array'>SkPoint array</a>; and <a href='#SkPath_conicTo_2_w'>w</a> to <a href='SkPath_Reference#Conic_Weight'>conic weights</a>.
-If <a href='#SkPath_conicTo_2_w'>w</a> <a href='#SkPath_conicTo_2_w'>is</a> <a href='#SkPath_conicTo_2_w'>one</a>, <a href='#SkPath_conicTo_2_w'>appends</a> <a href='#SkPath_kQuad_Verb'>kQuad_Verb</a> <a href='#SkPath_kQuad_Verb'>to</a> <a href='#Verb_Array'>verb array</a>, <a href='#SkPath_kQuad_Verb'>and</a> <a href='SkPoint_Reference#SkPoint'>SkPoint</a> <a href='#SkPath_conicTo_2_p1'>p1</a>, <a href='#SkPath_conicTo_2_p2'>p2</a>
+If <a href='#SkPath_conicTo_2_w'>w</a> is one, appends <a href='#SkPath_kQuad_Verb'>kQuad_Verb</a> to <a href='#Verb_Array'>verb array</a>, and <a href='SkPoint_Reference#SkPoint'>SkPoint</a> <a href='#SkPath_conicTo_2_p1'>p1</a>, <a href='#SkPath_conicTo_2_p2'>p2</a>
to <a href='SkPath_Reference#Point_Array'>SkPoint array</a>.
-If <a href='#SkPath_conicTo_2_w'>w</a> <a href='#SkPath_conicTo_2_w'>is</a> <a href='#SkPath_conicTo_2_w'>not</a> <a href='#SkPath_conicTo_2_w'>finite</a>, <a href='#SkPath_conicTo_2_w'>appends</a> <a href='#SkPath_kLine_Verb'>kLine_Verb</a> <a href='#SkPath_kLine_Verb'>twice</a> <a href='#SkPath_kLine_Verb'>to</a> <a href='#Verb_Array'>verb array</a>, <a href='#SkPath_kLine_Verb'>and</a>
-<a href='SkPoint_Reference#SkPoint'>SkPoint</a> <a href='#SkPath_conicTo_2_p1'>p1</a>, <a href='#SkPath_conicTo_2_p2'>p2</a> <a href='#SkPath_conicTo_2_p2'>to</a> <a href='SkPath_Reference#Point_Array'>SkPoint array</a>.
+If <a href='#SkPath_conicTo_2_w'>w</a> is not finite, appends <a href='#SkPath_kLine_Verb'>kLine_Verb</a> twice to <a href='#Verb_Array'>verb array</a>, and
+<a href='SkPoint_Reference#SkPoint'>SkPoint</a> <a href='#SkPath_conicTo_2_p1'>p1</a>, <a href='#SkPath_conicTo_2_p2'>p2</a> to <a href='SkPath_Reference#Point_Array'>SkPoint array</a>.
### Parameters
<table> <tr> <td><a name='SkPath_conicTo_2_p1'><code><strong>p1</strong></code></a></td>
- <td>control <a href='SkPoint_Reference#SkPoint'>SkPoint</a> <a href='SkPoint_Reference#SkPoint'>of</a> <a href='SkPoint_Reference#SkPoint'>added</a> <a href='SkPath_Reference#Conic'>conic</a></td>
+ <td>control <a href='SkPoint_Reference#SkPoint'>SkPoint</a> of added <a href='SkPath_Reference#Conic'>conic</a></td>
</tr>
<tr> <td><a name='SkPath_conicTo_2_p2'><code><strong>p2</strong></code></a></td>
- <td>end <a href='SkPoint_Reference#SkPoint'>SkPoint</a> <a href='SkPoint_Reference#SkPoint'>of</a> <a href='SkPoint_Reference#SkPoint'>added</a> <a href='SkPath_Reference#Conic'>conic</a></td>
+ <td>end <a href='SkPoint_Reference#SkPoint'>SkPoint</a> of added <a href='SkPath_Reference#Conic'>conic</a></td>
</tr>
<tr> <td><a name='SkPath_conicTo_2_w'><code><strong>w</strong></code></a></td>
<td>weight of added <a href='SkPath_Reference#Conic'>conic</a></td>
@@ -2575,8 +2575,8 @@
### Example
-<div><fiddle-embed name="22d25e03b19d5bae92118877e462361b"><div><a href='SkPath_Reference#Conic'>Conics</a> <a href='SkPath_Reference#Conic'>and</a> <a href='undocumented#Arc'>arcs</a> <a href='undocumented#Arc'>use</a> <a href='undocumented#Arc'>identical</a> <a href='undocumented#Arc'>representations</a>. <a href='undocumented#Arc'>As</a> <a href='undocumented#Arc'>the</a> <a href='undocumented#Arc'>arc</a> <a href='undocumented#Arc'>sweep</a> <a href='undocumented#Arc'>increases</a>
-<a href='undocumented#Arc'>the</a> <a href='#Path_Conic_Weight'>Conic_Weight</a> <a href='#Path_Conic_Weight'>also</a> <a href='#Path_Conic_Weight'>increases</a>, <a href='#Path_Conic_Weight'>but</a> <a href='#Path_Conic_Weight'>remains</a> <a href='#Path_Conic_Weight'>smaller</a> <a href='#Path_Conic_Weight'>than</a> <a href='#Path_Conic_Weight'>one</a>.
+<div><fiddle-embed name="22d25e03b19d5bae92118877e462361b"><div><a href='SkPath_Reference#Conic'>Conics</a> and <a href='undocumented#Arc'>arcs</a> use identical representations. As the <a href='undocumented#Arc'>arc</a> sweep increases
+the <a href='#Path_Conic_Weight'>Conic_Weight</a> also increases, but remains smaller than one.
</div></fiddle-embed></div>
### See Also
@@ -2588,40 +2588,40 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-<a href='SkPath_Reference#SkPath'>SkPath</a>& <a href='#SkPath_rConicTo'>rConicTo</a>(<a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>dx1</a>, <a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>dy1</a>, <a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>dx2</a>, <a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>dy2</a>, <a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>w</a>)
+<a href='SkPath_Reference#SkPath'>SkPath</a>& <a href='#SkPath_rConicTo'>rConicTo</a>(<a href='undocumented#SkScalar'>SkScalar</a> dx1, <a href='undocumented#SkScalar'>SkScalar</a> dy1, <a href='undocumented#SkScalar'>SkScalar</a> dx2, <a href='undocumented#SkScalar'>SkScalar</a> dy2, <a href='undocumented#SkScalar'>SkScalar</a> w)
</pre>
-Adds <a href='SkPath_Reference#Conic'>conic</a> <a href='SkPath_Reference#Conic'>from</a> <a href='#Last_Point'>last point</a> <a href='SkPath_Reference#Conic'>towards</a> <a href='SkPoint_Reference#Vector'>vector</a> (<a href='#SkPath_rConicTo_dx1'>dx1</a>, <a href='#SkPath_rConicTo_dy1'>dy1</a>), <a href='#SkPath_rConicTo_dy1'>to</a> <a href='SkPoint_Reference#Vector'>vector</a> (<a href='#SkPath_rConicTo_dx2'>dx2</a>, <a href='#SkPath_rConicTo_dy2'>dy2</a>),
-weighted by <a href='#SkPath_rConicTo_w'>w</a>. <a href='#SkPath_rConicTo_w'>If</a> <a href='SkPath_Reference#SkPath'>SkPath</a> <a href='SkPath_Reference#SkPath'>is</a> <a href='SkPath_Reference#SkPath'>empty</a>, <a href='SkPath_Reference#SkPath'>or</a> <a href='SkPath_Reference#SkPath'>last</a> <a href='SkPath_Reference#SkPath'>SkPath</a>::<a href='#SkPath_Verb'>Verb</a>
-is <a href='#SkPath_kClose_Verb'>kClose_Verb</a>, <a href='#Last_Point'>last point</a> <a href='#SkPath_kClose_Verb'>is</a> <a href='#SkPath_kClose_Verb'>set</a> <a href='#SkPath_kClose_Verb'>to</a> (0, 0) <a href='#SkPath_kClose_Verb'>before</a> <a href='#SkPath_kClose_Verb'>adding</a> <a href='SkPath_Reference#Conic'>conic</a>.
+Adds <a href='SkPath_Reference#Conic'>conic</a> from <a href='#Last_Point'>last point</a> towards <a href='SkPoint_Reference#Vector'>vector</a> (<a href='#SkPath_rConicTo_dx1'>dx1</a>, <a href='#SkPath_rConicTo_dy1'>dy1</a>), to <a href='SkPoint_Reference#Vector'>vector</a> (<a href='#SkPath_rConicTo_dx2'>dx2</a>, <a href='#SkPath_rConicTo_dy2'>dy2</a>),
+weighted by <a href='#SkPath_rConicTo_w'>w</a>. If <a href='SkPath_Reference#SkPath'>SkPath</a> is empty, or last <a href='SkPath_Reference#SkPath'>SkPath</a>::<a href='#SkPath_Verb'>Verb</a>
+is <a href='#SkPath_kClose_Verb'>kClose_Verb</a>, <a href='#Last_Point'>last point</a> is set to (0, 0) before adding <a href='SkPath_Reference#Conic'>conic</a>.
-Appends <a href='#SkPath_kMove_Verb'>kMove_Verb</a> <a href='#SkPath_kMove_Verb'>to</a> <a href='#Verb_Array'>verb array</a> <a href='#SkPath_kMove_Verb'>and</a> (0, 0) <a href='#SkPath_kMove_Verb'>to</a> <a href='SkPath_Reference#Point_Array'>SkPoint array</a>,
+Appends <a href='#SkPath_kMove_Verb'>kMove_Verb</a> to <a href='#Verb_Array'>verb array</a> and (0, 0) to <a href='SkPath_Reference#Point_Array'>SkPoint array</a>,
if needed.
-If <a href='#SkPath_rConicTo_w'>w</a> <a href='#SkPath_rConicTo_w'>is</a> <a href='#SkPath_rConicTo_w'>finite</a> <a href='#SkPath_rConicTo_w'>and</a> <a href='#SkPath_rConicTo_w'>not</a> <a href='#SkPath_rConicTo_w'>one</a>, <a href='#SkPath_rConicTo_w'>next</a> <a href='#SkPath_rConicTo_w'>appends</a> <a href='#SkPath_kConic_Verb'>kConic_Verb</a> <a href='#SkPath_kConic_Verb'>to</a> <a href='#Verb_Array'>verb array</a>,
-and <a href='#SkPath_rConicTo_w'>w</a> <a href='#SkPath_rConicTo_w'>is</a> <a href='#SkPath_rConicTo_w'>recorded</a> <a href='#SkPath_rConicTo_w'>as</a> <a href='#Conic_Weight'>conic weight</a>; <a href='SkPath_Reference#Conic'>otherwise</a>, <a href='SkPath_Reference#Conic'>if</a> <a href='#SkPath_rConicTo_w'>w</a> <a href='#SkPath_rConicTo_w'>is</a> <a href='#SkPath_rConicTo_w'>one</a>, <a href='#SkPath_rConicTo_w'>appends</a>
-<a href='#SkPath_kQuad_Verb'>kQuad_Verb</a> <a href='#SkPath_kQuad_Verb'>to</a> <a href='#Verb_Array'>verb array</a>; <a href='#SkPath_kQuad_Verb'>or</a> <a href='#SkPath_kQuad_Verb'>if</a> <a href='#SkPath_rConicTo_w'>w</a> <a href='#SkPath_rConicTo_w'>is</a> <a href='#SkPath_rConicTo_w'>not</a> <a href='#SkPath_rConicTo_w'>finite</a>, <a href='#SkPath_rConicTo_w'>appends</a> <a href='#SkPath_kLine_Verb'>kLine_Verb</a>
+If <a href='#SkPath_rConicTo_w'>w</a> is finite and not one, next appends <a href='#SkPath_kConic_Verb'>kConic_Verb</a> to <a href='#Verb_Array'>verb array</a>,
+and <a href='#SkPath_rConicTo_w'>w</a> is recorded as <a href='#Conic_Weight'>conic weight</a>; otherwise, if <a href='#SkPath_rConicTo_w'>w</a> is one, appends
+<a href='#SkPath_kQuad_Verb'>kQuad_Verb</a> to <a href='#Verb_Array'>verb array</a>; or if <a href='#SkPath_rConicTo_w'>w</a> is not finite, appends <a href='#SkPath_kLine_Verb'>kLine_Verb</a>
twice to <a href='#Verb_Array'>verb array</a>.
-In all cases appends <a href='SkPoint_Reference#SkPoint'>SkPoint</a> <a href='SkPoint_Reference#SkPoint'>control</a> <a href='SkPoint_Reference#SkPoint'>and</a> <a href='SkPoint_Reference#SkPoint'>end</a> <a href='SkPoint_Reference#SkPoint'>to</a> <a href='SkPath_Reference#Point_Array'>SkPoint array</a>.
+In all cases appends <a href='SkPoint_Reference#SkPoint'>SkPoint</a> control and end to <a href='SkPath_Reference#Point_Array'>SkPoint array</a>.
control is <a href='#Last_Point'>last point</a> plus <a href='SkPoint_Reference#Vector'>vector</a> (<a href='#SkPath_rConicTo_dx1'>dx1</a>, <a href='#SkPath_rConicTo_dy1'>dy1</a>).
end is <a href='#Last_Point'>last point</a> plus <a href='SkPoint_Reference#Vector'>vector</a> (<a href='#SkPath_rConicTo_dx2'>dx2</a>, <a href='#SkPath_rConicTo_dy2'>dy2</a>).
-Function name stands for "relative <a href='SkPath_Reference#Conic'>conic</a> <a href='SkPath_Reference#Conic'>to</a>".
+Function name stands for "relative <a href='SkPath_Reference#Conic'>conic</a> to".
### Parameters
<table> <tr> <td><a name='SkPath_rConicTo_dx1'><code><strong>dx1</strong></code></a></td>
- <td>offset from <a href='#Last_Point'>last point</a> to <a href='SkPath_Reference#Conic'>conic</a> <a href='SkPath_Reference#Conic'>control</a> <a href='SkPath_Reference#Conic'>on</a> <a href='SkPath_Reference#Conic'>x-axis</a></td>
+ <td>offset from <a href='#Last_Point'>last point</a> to <a href='SkPath_Reference#Conic'>conic</a> control on x-axis</td>
</tr>
<tr> <td><a name='SkPath_rConicTo_dy1'><code><strong>dy1</strong></code></a></td>
- <td>offset from <a href='#Last_Point'>last point</a> to <a href='SkPath_Reference#Conic'>conic</a> <a href='SkPath_Reference#Conic'>control</a> <a href='SkPath_Reference#Conic'>on</a> <a href='SkPath_Reference#Conic'>y-axis</a></td>
+ <td>offset from <a href='#Last_Point'>last point</a> to <a href='SkPath_Reference#Conic'>conic</a> control on y-axis</td>
</tr>
<tr> <td><a name='SkPath_rConicTo_dx2'><code><strong>dx2</strong></code></a></td>
- <td>offset from <a href='#Last_Point'>last point</a> to <a href='SkPath_Reference#Conic'>conic</a> <a href='SkPath_Reference#Conic'>end</a> <a href='SkPath_Reference#Conic'>on</a> <a href='SkPath_Reference#Conic'>x-axis</a></td>
+ <td>offset from <a href='#Last_Point'>last point</a> to <a href='SkPath_Reference#Conic'>conic</a> end on x-axis</td>
</tr>
<tr> <td><a name='SkPath_rConicTo_dy2'><code><strong>dy2</strong></code></a></td>
- <td>offset from <a href='#Last_Point'>last point</a> to <a href='SkPath_Reference#Conic'>conic</a> <a href='SkPath_Reference#Conic'>end</a> <a href='SkPath_Reference#Conic'>on</a> <a href='SkPath_Reference#Conic'>y-axis</a></td>
+ <td>offset from <a href='#Last_Point'>last point</a> to <a href='SkPath_Reference#Conic'>conic</a> end on y-axis</td>
</tr>
<tr> <td><a name='SkPath_rConicTo_w'><code><strong>w</strong></code></a></td>
<td>weight of added <a href='SkPath_Reference#Conic'>conic</a></td>
@@ -2644,9 +2644,9 @@
---
-<a href='SkPath_Reference#Cubic'>Cubic</a> <a href='SkPath_Reference#Cubic'>describes</a> <a href='SkPath_Reference#Cubic'>a</a> <a href='#Bezier_Curve'>Bezier_Curve</a> <a href='#Bezier_Curve'>segment</a> <a href='#Bezier_Curve'>described</a> <a href='#Bezier_Curve'>by</a> <a href='#Bezier_Curve'>a</a> <a href='#Bezier_Curve'>third-order</a> <a href='#Bezier_Curve'>polynomial</a>.
-<a href='SkPath_Reference#Cubic'>Cubic</a> <a href='SkPath_Reference#Cubic'>begins</a> <a href='SkPath_Reference#Cubic'>at</a> <a href='SkPath_Reference#Cubic'>a</a> <a href='SkPath_Reference#Cubic'>start</a> <a href='SkPoint_Reference#Point'>Point</a>, <a href='SkPoint_Reference#Point'>curving</a> <a href='SkPoint_Reference#Point'>towards</a> <a href='SkPoint_Reference#Point'>the</a> <a href='SkPoint_Reference#Point'>first</a> <a href='SkPoint_Reference#Point'>control</a> <a href='SkPoint_Reference#Point'>Point</a>;
-<a href='SkPoint_Reference#Point'>and</a> <a href='undocumented#Curve'>curves</a> <a href='undocumented#Curve'>from</a> <a href='undocumented#Curve'>the</a> <a href='undocumented#Curve'>end</a> <a href='SkPoint_Reference#Point'>Point</a> <a href='SkPoint_Reference#Point'>towards</a> <a href='SkPoint_Reference#Point'>the</a> <a href='SkPoint_Reference#Point'>second</a> <a href='SkPoint_Reference#Point'>control</a> <a href='SkPoint_Reference#Point'>Point</a>.
+<a href='SkPath_Reference#Cubic'>Cubic</a> describes a <a href='#Bezier_Curve'>Bezier_Curve</a> segment described by a third-order polynomial.
+<a href='SkPath_Reference#Cubic'>Cubic</a> begins at a start <a href='SkPoint_Reference#Point'>Point</a>, curving towards the first control <a href='SkPoint_Reference#Point'>Point</a>;
+and <a href='undocumented#Curve'>curves</a> from the end <a href='SkPoint_Reference#Point'>Point</a> towards the second control <a href='SkPoint_Reference#Point'>Point</a>.
### Example
@@ -2657,36 +2657,36 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-<a href='SkPath_Reference#SkPath'>SkPath</a>& <a href='#SkPath_cubicTo'>cubicTo</a>(<a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>x1</a>, <a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>y1</a>, <a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>x2</a>, <a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>y2</a>, <a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>x3</a>, <a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>y3</a>)
+<a href='SkPath_Reference#SkPath'>SkPath</a>& <a href='#SkPath_cubicTo'>cubicTo</a>(<a href='undocumented#SkScalar'>SkScalar</a> x1, <a href='undocumented#SkScalar'>SkScalar</a> y1, <a href='undocumented#SkScalar'>SkScalar</a> x2, <a href='undocumented#SkScalar'>SkScalar</a> y2, <a href='undocumented#SkScalar'>SkScalar</a> x3, <a href='undocumented#SkScalar'>SkScalar</a> y3)
</pre>
-Adds <a href='SkPath_Reference#Cubic'>cubic</a> <a href='SkPath_Reference#Cubic'>from</a> <a href='#Last_Point'>last point</a> <a href='SkPath_Reference#Cubic'>towards</a> (<a href='#SkPath_cubicTo_x1'>x1</a>, <a href='#SkPath_cubicTo_y1'>y1</a>), <a href='#SkPath_cubicTo_y1'>then</a> <a href='#SkPath_cubicTo_y1'>towards</a> (<a href='#SkPath_cubicTo_x2'>x2</a>, <a href='#SkPath_cubicTo_y2'>y2</a>), <a href='#SkPath_cubicTo_y2'>ending</a> <a href='#SkPath_cubicTo_y2'>at</a>
-(<a href='#SkPath_cubicTo_x3'>x3</a>, <a href='#SkPath_cubicTo_y3'>y3</a>). <a href='#SkPath_cubicTo_y3'>If</a> <a href='SkPath_Reference#SkPath'>SkPath</a> <a href='SkPath_Reference#SkPath'>is</a> <a href='SkPath_Reference#SkPath'>empty</a>, <a href='SkPath_Reference#SkPath'>or</a> <a href='SkPath_Reference#SkPath'>last</a> <a href='SkPath_Reference#SkPath'>SkPath</a>::<a href='#SkPath_Verb'>Verb</a> <a href='#SkPath_Verb'>is</a> <a href='#SkPath_kClose_Verb'>kClose_Verb</a>, <a href='#Last_Point'>last point</a> <a href='#SkPath_kClose_Verb'>is</a> <a href='#SkPath_kClose_Verb'>set</a> <a href='#SkPath_kClose_Verb'>to</a>
+Adds <a href='SkPath_Reference#Cubic'>cubic</a> from <a href='#Last_Point'>last point</a> towards (<a href='#SkPath_cubicTo_x1'>x1</a>, <a href='#SkPath_cubicTo_y1'>y1</a>), then towards (<a href='#SkPath_cubicTo_x2'>x2</a>, <a href='#SkPath_cubicTo_y2'>y2</a>), ending at
+(<a href='#SkPath_cubicTo_x3'>x3</a>, <a href='#SkPath_cubicTo_y3'>y3</a>). If <a href='SkPath_Reference#SkPath'>SkPath</a> is empty, or last <a href='SkPath_Reference#SkPath'>SkPath</a>::<a href='#SkPath_Verb'>Verb</a> is <a href='#SkPath_kClose_Verb'>kClose_Verb</a>, <a href='#Last_Point'>last point</a> is set to
(0, 0) before adding <a href='SkPath_Reference#Cubic'>cubic</a>.
-Appends <a href='#SkPath_kMove_Verb'>kMove_Verb</a> <a href='#SkPath_kMove_Verb'>to</a> <a href='#Verb_Array'>verb array</a> <a href='#SkPath_kMove_Verb'>and</a> (0, 0) <a href='#SkPath_kMove_Verb'>to</a> <a href='SkPath_Reference#Point_Array'>SkPoint array</a>, <a href='SkPoint_Reference#SkPoint'>if</a> <a href='SkPoint_Reference#SkPoint'>needed</a>;
-then appends <a href='#SkPath_kCubic_Verb'>kCubic_Verb</a> <a href='#SkPath_kCubic_Verb'>to</a> <a href='#Verb_Array'>verb array</a>; <a href='#SkPath_kCubic_Verb'>and</a> (<a href='#SkPath_cubicTo_x1'>x1</a>, <a href='#SkPath_cubicTo_y1'>y1</a>), (<a href='#SkPath_cubicTo_x2'>x2</a>, <a href='#SkPath_cubicTo_y2'>y2</a>), (<a href='#SkPath_cubicTo_x3'>x3</a>, <a href='#SkPath_cubicTo_y3'>y3</a>)
+Appends <a href='#SkPath_kMove_Verb'>kMove_Verb</a> to <a href='#Verb_Array'>verb array</a> and (0, 0) to <a href='SkPath_Reference#Point_Array'>SkPoint array</a>, if needed;
+then appends <a href='#SkPath_kCubic_Verb'>kCubic_Verb</a> to <a href='#Verb_Array'>verb array</a>; and (<a href='#SkPath_cubicTo_x1'>x1</a>, <a href='#SkPath_cubicTo_y1'>y1</a>), (<a href='#SkPath_cubicTo_x2'>x2</a>, <a href='#SkPath_cubicTo_y2'>y2</a>), (<a href='#SkPath_cubicTo_x3'>x3</a>, <a href='#SkPath_cubicTo_y3'>y3</a>)
to <a href='SkPath_Reference#Point_Array'>SkPoint array</a>.
### Parameters
<table> <tr> <td><a name='SkPath_cubicTo_x1'><code><strong>x1</strong></code></a></td>
- <td>first control <a href='SkPoint_Reference#SkPoint'>SkPoint</a> <a href='SkPoint_Reference#SkPoint'>of</a> <a href='SkPath_Reference#Cubic'>cubic</a> <a href='SkPath_Reference#Cubic'>on</a> <a href='SkPath_Reference#Cubic'>x-axis</a></td>
+ <td>first control <a href='SkPoint_Reference#SkPoint'>SkPoint</a> of <a href='SkPath_Reference#Cubic'>cubic</a> on x-axis</td>
</tr>
<tr> <td><a name='SkPath_cubicTo_y1'><code><strong>y1</strong></code></a></td>
- <td>first control <a href='SkPoint_Reference#SkPoint'>SkPoint</a> <a href='SkPoint_Reference#SkPoint'>of</a> <a href='SkPath_Reference#Cubic'>cubic</a> <a href='SkPath_Reference#Cubic'>on</a> <a href='SkPath_Reference#Cubic'>y-axis</a></td>
+ <td>first control <a href='SkPoint_Reference#SkPoint'>SkPoint</a> of <a href='SkPath_Reference#Cubic'>cubic</a> on y-axis</td>
</tr>
<tr> <td><a name='SkPath_cubicTo_x2'><code><strong>x2</strong></code></a></td>
- <td>second control <a href='SkPoint_Reference#SkPoint'>SkPoint</a> <a href='SkPoint_Reference#SkPoint'>of</a> <a href='SkPath_Reference#Cubic'>cubic</a> <a href='SkPath_Reference#Cubic'>on</a> <a href='SkPath_Reference#Cubic'>x-axis</a></td>
+ <td>second control <a href='SkPoint_Reference#SkPoint'>SkPoint</a> of <a href='SkPath_Reference#Cubic'>cubic</a> on x-axis</td>
</tr>
<tr> <td><a name='SkPath_cubicTo_y2'><code><strong>y2</strong></code></a></td>
- <td>second control <a href='SkPoint_Reference#SkPoint'>SkPoint</a> <a href='SkPoint_Reference#SkPoint'>of</a> <a href='SkPath_Reference#Cubic'>cubic</a> <a href='SkPath_Reference#Cubic'>on</a> <a href='SkPath_Reference#Cubic'>y-axis</a></td>
+ <td>second control <a href='SkPoint_Reference#SkPoint'>SkPoint</a> of <a href='SkPath_Reference#Cubic'>cubic</a> on y-axis</td>
</tr>
<tr> <td><a name='SkPath_cubicTo_x3'><code><strong>x3</strong></code></a></td>
- <td>end <a href='SkPoint_Reference#SkPoint'>SkPoint</a> <a href='SkPoint_Reference#SkPoint'>of</a> <a href='SkPath_Reference#Cubic'>cubic</a> <a href='SkPath_Reference#Cubic'>on</a> <a href='SkPath_Reference#Cubic'>x-axis</a></td>
+ <td>end <a href='SkPoint_Reference#SkPoint'>SkPoint</a> of <a href='SkPath_Reference#Cubic'>cubic</a> on x-axis</td>
</tr>
<tr> <td><a name='SkPath_cubicTo_y3'><code><strong>y3</strong></code></a></td>
- <td>end <a href='SkPoint_Reference#SkPoint'>SkPoint</a> <a href='SkPoint_Reference#SkPoint'>of</a> <a href='SkPath_Reference#Cubic'>cubic</a> <a href='SkPath_Reference#Cubic'>on</a> <a href='SkPath_Reference#Cubic'>y-axis</a></td>
+ <td>end <a href='SkPoint_Reference#SkPoint'>SkPoint</a> of <a href='SkPath_Reference#Cubic'>cubic</a> on y-axis</td>
</tr>
</table>
@@ -2707,27 +2707,27 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-<a href='SkPath_Reference#SkPath'>SkPath</a>& <a href='#SkPath_cubicTo'>cubicTo</a>(<a href='#SkPath_cubicTo'>const</a> <a href='SkPoint_Reference#SkPoint'>SkPoint</a>& <a href='SkPoint_Reference#SkPoint'>p1</a>, <a href='SkPoint_Reference#SkPoint'>const</a> <a href='SkPoint_Reference#SkPoint'>SkPoint</a>& <a href='SkPoint_Reference#SkPoint'>p2</a>, <a href='SkPoint_Reference#SkPoint'>const</a> <a href='SkPoint_Reference#SkPoint'>SkPoint</a>& <a href='SkPoint_Reference#SkPoint'>p3</a>)
+<a href='SkPath_Reference#SkPath'>SkPath</a>& <a href='#SkPath_cubicTo'>cubicTo</a>(const <a href='SkPoint_Reference#SkPoint'>SkPoint</a>& p1, const <a href='SkPoint_Reference#SkPoint'>SkPoint</a>& p2, const <a href='SkPoint_Reference#SkPoint'>SkPoint</a>& p3)
</pre>
-Adds <a href='SkPath_Reference#Cubic'>cubic</a> <a href='SkPath_Reference#Cubic'>from</a> <a href='#Last_Point'>last point</a> <a href='SkPath_Reference#Cubic'>towards</a> <a href='SkPoint_Reference#SkPoint'>SkPoint</a> <a href='#SkPath_cubicTo_2_p1'>p1</a>, <a href='#SkPath_cubicTo_2_p1'>then</a> <a href='#SkPath_cubicTo_2_p1'>towards</a> <a href='SkPoint_Reference#SkPoint'>SkPoint</a> <a href='#SkPath_cubicTo_2_p2'>p2</a>, <a href='#SkPath_cubicTo_2_p2'>ending</a> <a href='#SkPath_cubicTo_2_p2'>at</a>
-<a href='SkPoint_Reference#SkPoint'>SkPoint</a> <a href='#SkPath_cubicTo_2_p3'>p3</a>. <a href='#SkPath_cubicTo_2_p3'>If</a> <a href='SkPath_Reference#SkPath'>SkPath</a> <a href='SkPath_Reference#SkPath'>is</a> <a href='SkPath_Reference#SkPath'>empty</a>, <a href='SkPath_Reference#SkPath'>or</a> <a href='SkPath_Reference#SkPath'>last</a> <a href='SkPath_Reference#SkPath'>SkPath</a>::<a href='#SkPath_Verb'>Verb</a> <a href='#SkPath_Verb'>is</a> <a href='#SkPath_kClose_Verb'>kClose_Verb</a>, <a href='#Last_Point'>last point</a> <a href='#SkPath_kClose_Verb'>is</a> <a href='#SkPath_kClose_Verb'>set</a> <a href='#SkPath_kClose_Verb'>to</a>
+Adds <a href='SkPath_Reference#Cubic'>cubic</a> from <a href='#Last_Point'>last point</a> towards <a href='SkPoint_Reference#SkPoint'>SkPoint</a> <a href='#SkPath_cubicTo_2_p1'>p1</a>, then towards <a href='SkPoint_Reference#SkPoint'>SkPoint</a> <a href='#SkPath_cubicTo_2_p2'>p2</a>, ending at
+<a href='SkPoint_Reference#SkPoint'>SkPoint</a> <a href='#SkPath_cubicTo_2_p3'>p3</a>. If <a href='SkPath_Reference#SkPath'>SkPath</a> is empty, or last <a href='SkPath_Reference#SkPath'>SkPath</a>::<a href='#SkPath_Verb'>Verb</a> is <a href='#SkPath_kClose_Verb'>kClose_Verb</a>, <a href='#Last_Point'>last point</a> is set to
(0, 0) before adding <a href='SkPath_Reference#Cubic'>cubic</a>.
-Appends <a href='#SkPath_kMove_Verb'>kMove_Verb</a> <a href='#SkPath_kMove_Verb'>to</a> <a href='#Verb_Array'>verb array</a> <a href='#SkPath_kMove_Verb'>and</a> (0, 0) <a href='#SkPath_kMove_Verb'>to</a> <a href='SkPath_Reference#Point_Array'>SkPoint array</a>, <a href='SkPoint_Reference#SkPoint'>if</a> <a href='SkPoint_Reference#SkPoint'>needed</a>;
-then appends <a href='#SkPath_kCubic_Verb'>kCubic_Verb</a> <a href='#SkPath_kCubic_Verb'>to</a> <a href='#Verb_Array'>verb array</a>; <a href='#SkPath_kCubic_Verb'>and</a> <a href='SkPoint_Reference#SkPoint'>SkPoint</a> <a href='#SkPath_cubicTo_2_p1'>p1</a>, <a href='#SkPath_cubicTo_2_p2'>p2</a>, <a href='#SkPath_cubicTo_2_p3'>p3</a>
+Appends <a href='#SkPath_kMove_Verb'>kMove_Verb</a> to <a href='#Verb_Array'>verb array</a> and (0, 0) to <a href='SkPath_Reference#Point_Array'>SkPoint array</a>, if needed;
+then appends <a href='#SkPath_kCubic_Verb'>kCubic_Verb</a> to <a href='#Verb_Array'>verb array</a>; and <a href='SkPoint_Reference#SkPoint'>SkPoint</a> <a href='#SkPath_cubicTo_2_p1'>p1</a>, <a href='#SkPath_cubicTo_2_p2'>p2</a>, <a href='#SkPath_cubicTo_2_p3'>p3</a>
to <a href='SkPath_Reference#Point_Array'>SkPoint array</a>.
### Parameters
<table> <tr> <td><a name='SkPath_cubicTo_2_p1'><code><strong>p1</strong></code></a></td>
- <td>first control <a href='SkPoint_Reference#SkPoint'>SkPoint</a> <a href='SkPoint_Reference#SkPoint'>of</a> <a href='SkPath_Reference#Cubic'>cubic</a></td>
+ <td>first control <a href='SkPoint_Reference#SkPoint'>SkPoint</a> of <a href='SkPath_Reference#Cubic'>cubic</a></td>
</tr>
<tr> <td><a name='SkPath_cubicTo_2_p2'><code><strong>p2</strong></code></a></td>
- <td>second control <a href='SkPoint_Reference#SkPoint'>SkPoint</a> <a href='SkPoint_Reference#SkPoint'>of</a> <a href='SkPath_Reference#Cubic'>cubic</a></td>
+ <td>second control <a href='SkPoint_Reference#SkPoint'>SkPoint</a> of <a href='SkPath_Reference#Cubic'>cubic</a></td>
</tr>
<tr> <td><a name='SkPath_cubicTo_2_p3'><code><strong>p3</strong></code></a></td>
- <td>end <a href='SkPoint_Reference#SkPoint'>SkPoint</a> <a href='SkPoint_Reference#SkPoint'>of</a> <a href='SkPath_Reference#Cubic'>cubic</a></td>
+ <td>end <a href='SkPoint_Reference#SkPoint'>SkPoint</a> of <a href='SkPath_Reference#Cubic'>cubic</a></td>
</tr>
</table>
@@ -2748,40 +2748,40 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-<a href='SkPath_Reference#SkPath'>SkPath</a>& <a href='#SkPath_rCubicTo'>rCubicTo</a>(<a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>dx1</a>, <a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>dy1</a>, <a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>dx2</a>, <a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>dy2</a>, <a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>dx3</a>, <a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>dy3</a>)
+<a href='SkPath_Reference#SkPath'>SkPath</a>& <a href='#SkPath_rCubicTo'>rCubicTo</a>(<a href='undocumented#SkScalar'>SkScalar</a> dx1, <a href='undocumented#SkScalar'>SkScalar</a> dy1, <a href='undocumented#SkScalar'>SkScalar</a> dx2, <a href='undocumented#SkScalar'>SkScalar</a> dy2, <a href='undocumented#SkScalar'>SkScalar</a> dx3, <a href='undocumented#SkScalar'>SkScalar</a> dy3)
</pre>
-Adds <a href='SkPath_Reference#Cubic'>cubic</a> <a href='SkPath_Reference#Cubic'>from</a> <a href='#Last_Point'>last point</a> <a href='SkPath_Reference#Cubic'>towards</a> <a href='SkPoint_Reference#Vector'>vector</a> (<a href='#SkPath_rCubicTo_dx1'>dx1</a>, <a href='#SkPath_rCubicTo_dy1'>dy1</a>), <a href='#SkPath_rCubicTo_dy1'>then</a> <a href='#SkPath_rCubicTo_dy1'>towards</a>
-<a href='SkPoint_Reference#Vector'>vector</a> (<a href='#SkPath_rCubicTo_dx2'>dx2</a>, <a href='#SkPath_rCubicTo_dy2'>dy2</a>), <a href='#SkPath_rCubicTo_dy2'>to</a> <a href='SkPoint_Reference#Vector'>vector</a> (<a href='#SkPath_rCubicTo_dx3'>dx3</a>, <a href='#SkPath_rCubicTo_dy3'>dy3</a>).
-If <a href='SkPath_Reference#SkPath'>SkPath</a> <a href='SkPath_Reference#SkPath'>is</a> <a href='SkPath_Reference#SkPath'>empty</a>, <a href='SkPath_Reference#SkPath'>or</a> <a href='SkPath_Reference#SkPath'>last</a> <a href='SkPath_Reference#SkPath'>SkPath</a>::<a href='#SkPath_Verb'>Verb</a>
-is <a href='#SkPath_kClose_Verb'>kClose_Verb</a>, <a href='#Last_Point'>last point</a> <a href='#SkPath_kClose_Verb'>is</a> <a href='#SkPath_kClose_Verb'>set</a> <a href='#SkPath_kClose_Verb'>to</a> (0, 0) <a href='#SkPath_kClose_Verb'>before</a> <a href='#SkPath_kClose_Verb'>adding</a> <a href='SkPath_Reference#Cubic'>cubic</a>.
+Adds <a href='SkPath_Reference#Cubic'>cubic</a> from <a href='#Last_Point'>last point</a> towards <a href='SkPoint_Reference#Vector'>vector</a> (<a href='#SkPath_rCubicTo_dx1'>dx1</a>, <a href='#SkPath_rCubicTo_dy1'>dy1</a>), then towards
+<a href='SkPoint_Reference#Vector'>vector</a> (<a href='#SkPath_rCubicTo_dx2'>dx2</a>, <a href='#SkPath_rCubicTo_dy2'>dy2</a>), to <a href='SkPoint_Reference#Vector'>vector</a> (<a href='#SkPath_rCubicTo_dx3'>dx3</a>, <a href='#SkPath_rCubicTo_dy3'>dy3</a>).
+If <a href='SkPath_Reference#SkPath'>SkPath</a> is empty, or last <a href='SkPath_Reference#SkPath'>SkPath</a>::<a href='#SkPath_Verb'>Verb</a>
+is <a href='#SkPath_kClose_Verb'>kClose_Verb</a>, <a href='#Last_Point'>last point</a> is set to (0, 0) before adding <a href='SkPath_Reference#Cubic'>cubic</a>.
-Appends <a href='#SkPath_kMove_Verb'>kMove_Verb</a> <a href='#SkPath_kMove_Verb'>to</a> <a href='#Verb_Array'>verb array</a> <a href='#SkPath_kMove_Verb'>and</a> (0, 0) <a href='#SkPath_kMove_Verb'>to</a> <a href='SkPath_Reference#Point_Array'>SkPoint array</a>,
-if needed; then appends <a href='#SkPath_kCubic_Verb'>kCubic_Verb</a> <a href='#SkPath_kCubic_Verb'>to</a> <a href='#Verb_Array'>verb array</a>; <a href='#SkPath_kCubic_Verb'>and</a> <a href='#SkPath_kCubic_Verb'>appends</a> <a href='SkPath_Reference#Cubic'>cubic</a>
-control and <a href='SkPath_Reference#Cubic'>cubic</a> <a href='SkPath_Reference#Cubic'>end</a> <a href='SkPath_Reference#Cubic'>to</a> <a href='SkPath_Reference#Point_Array'>SkPoint array</a>.
-<a href='SkPath_Reference#Cubic'>Cubic</a> <a href='SkPath_Reference#Cubic'>control</a> <a href='SkPath_Reference#Cubic'>is</a> <a href='#Last_Point'>last point</a> <a href='SkPath_Reference#Cubic'>plus</a> <a href='SkPoint_Reference#Vector'>vector</a> (<a href='#SkPath_rCubicTo_dx1'>dx1</a>, <a href='#SkPath_rCubicTo_dy1'>dy1</a>).
-<a href='SkPath_Reference#Cubic'>Cubic</a> <a href='SkPath_Reference#Cubic'>end</a> <a href='SkPath_Reference#Cubic'>is</a> <a href='#Last_Point'>last point</a> <a href='SkPath_Reference#Cubic'>plus</a> <a href='SkPoint_Reference#Vector'>vector</a> (<a href='#SkPath_rCubicTo_dx2'>dx2</a>, <a href='#SkPath_rCubicTo_dy2'>dy2</a>).
-Function name stands for "relative <a href='SkPath_Reference#Cubic'>cubic</a> <a href='SkPath_Reference#Cubic'>to</a>".
+Appends <a href='#SkPath_kMove_Verb'>kMove_Verb</a> to <a href='#Verb_Array'>verb array</a> and (0, 0) to <a href='SkPath_Reference#Point_Array'>SkPoint array</a>,
+if needed; then appends <a href='#SkPath_kCubic_Verb'>kCubic_Verb</a> to <a href='#Verb_Array'>verb array</a>; and appends <a href='SkPath_Reference#Cubic'>cubic</a>
+control and <a href='SkPath_Reference#Cubic'>cubic</a> end to <a href='SkPath_Reference#Point_Array'>SkPoint array</a>.
+<a href='SkPath_Reference#Cubic'>Cubic</a> control is <a href='#Last_Point'>last point</a> plus <a href='SkPoint_Reference#Vector'>vector</a> (<a href='#SkPath_rCubicTo_dx1'>dx1</a>, <a href='#SkPath_rCubicTo_dy1'>dy1</a>).
+<a href='SkPath_Reference#Cubic'>Cubic</a> end is <a href='#Last_Point'>last point</a> plus <a href='SkPoint_Reference#Vector'>vector</a> (<a href='#SkPath_rCubicTo_dx2'>dx2</a>, <a href='#SkPath_rCubicTo_dy2'>dy2</a>).
+Function name stands for "relative <a href='SkPath_Reference#Cubic'>cubic</a> to".
### Parameters
<table> <tr> <td><a name='SkPath_rCubicTo_dx1'><code><strong>dx1</strong></code></a></td>
- <td>offset from <a href='#Last_Point'>last point</a> to first <a href='SkPath_Reference#Cubic'>cubic</a> <a href='SkPath_Reference#Cubic'>control</a> <a href='SkPath_Reference#Cubic'>on</a> <a href='SkPath_Reference#Cubic'>x-axis</a></td>
+ <td>offset from <a href='#Last_Point'>last point</a> to first <a href='SkPath_Reference#Cubic'>cubic</a> control on x-axis</td>
</tr>
<tr> <td><a name='SkPath_rCubicTo_dy1'><code><strong>dy1</strong></code></a></td>
- <td>offset from <a href='#Last_Point'>last point</a> to first <a href='SkPath_Reference#Cubic'>cubic</a> <a href='SkPath_Reference#Cubic'>control</a> <a href='SkPath_Reference#Cubic'>on</a> <a href='SkPath_Reference#Cubic'>y-axis</a></td>
+ <td>offset from <a href='#Last_Point'>last point</a> to first <a href='SkPath_Reference#Cubic'>cubic</a> control on y-axis</td>
</tr>
<tr> <td><a name='SkPath_rCubicTo_dx2'><code><strong>dx2</strong></code></a></td>
- <td>offset from <a href='#Last_Point'>last point</a> to second <a href='SkPath_Reference#Cubic'>cubic</a> <a href='SkPath_Reference#Cubic'>control</a> <a href='SkPath_Reference#Cubic'>on</a> <a href='SkPath_Reference#Cubic'>x-axis</a></td>
+ <td>offset from <a href='#Last_Point'>last point</a> to second <a href='SkPath_Reference#Cubic'>cubic</a> control on x-axis</td>
</tr>
<tr> <td><a name='SkPath_rCubicTo_dy2'><code><strong>dy2</strong></code></a></td>
- <td>offset from <a href='#Last_Point'>last point</a> to second <a href='SkPath_Reference#Cubic'>cubic</a> <a href='SkPath_Reference#Cubic'>control</a> <a href='SkPath_Reference#Cubic'>on</a> <a href='SkPath_Reference#Cubic'>y-axis</a></td>
+ <td>offset from <a href='#Last_Point'>last point</a> to second <a href='SkPath_Reference#Cubic'>cubic</a> control on y-axis</td>
</tr>
<tr> <td><a name='SkPath_rCubicTo_dx3'><code><strong>dx3</strong></code></a></td>
- <td>offset from <a href='#Last_Point'>last point</a> to <a href='SkPath_Reference#Cubic'>cubic</a> <a href='SkPath_Reference#Cubic'>end</a> <a href='SkPath_Reference#Cubic'>on</a> <a href='SkPath_Reference#Cubic'>x-axis</a></td>
+ <td>offset from <a href='#Last_Point'>last point</a> to <a href='SkPath_Reference#Cubic'>cubic</a> end on x-axis</td>
</tr>
<tr> <td><a name='SkPath_rCubicTo_dy3'><code><strong>dy3</strong></code></a></td>
- <td>offset from <a href='#Last_Point'>last point</a> to <a href='SkPath_Reference#Cubic'>cubic</a> <a href='SkPath_Reference#Cubic'>end</a> <a href='SkPath_Reference#Cubic'>on</a> <a href='SkPath_Reference#Cubic'>y-axis</a></td>
+ <td>offset from <a href='#Last_Point'>last point</a> to <a href='SkPath_Reference#Cubic'>cubic</a> end on y-axis</td>
</tr>
</table>
@@ -2801,32 +2801,32 @@
---
-<a href='undocumented#Arc'>Arc</a> <a href='undocumented#Arc'>can</a> <a href='undocumented#Arc'>be</a> <a href='undocumented#Arc'>constructed</a> <a href='undocumented#Arc'>in</a> <a href='undocumented#Arc'>a</a> <a href='undocumented#Arc'>number</a> <a href='undocumented#Arc'>of</a> <a href='undocumented#Arc'>ways</a>. <a href='undocumented#Arc'>Arc</a> <a href='undocumented#Arc'>may</a> <a href='undocumented#Arc'>be</a> <a href='undocumented#Arc'>described</a> <a href='undocumented#Arc'>by</a> <a href='undocumented#Arc'>part</a> <a href='undocumented#Arc'>of</a> <a href='undocumented#Oval'>Oval</a> <a href='undocumented#Oval'>and</a> <a href='undocumented#Oval'>angles</a>,
-<a href='undocumented#Oval'>by</a> <a href='undocumented#Oval'>start</a> <a href='SkPoint_Reference#Point'>point</a> <a href='SkPoint_Reference#Point'>and</a> <a href='SkPoint_Reference#Point'>end</a> <a href='SkPoint_Reference#Point'>point</a>, <a href='SkPoint_Reference#Point'>and</a> <a href='SkPoint_Reference#Point'>by</a> <a href='SkPoint_Reference#Point'>radius</a> <a href='SkPoint_Reference#Point'>and</a> <a href='SkPoint_Reference#Point'>tangent</a> <a href='undocumented#Line'>lines</a>. <a href='undocumented#Line'>Each</a> <a href='undocumented#Line'>construction</a> <a href='undocumented#Line'>has</a> <a href='undocumented#Line'>advantages</a>,
-<a href='undocumented#Line'>and</a> <a href='undocumented#Line'>some</a> <a href='undocumented#Line'>constructions</a> <a href='undocumented#Line'>correspond</a> <a href='undocumented#Line'>to</a> <a href='undocumented#Arc'>Arc</a> <a href='undocumented#Arc'>drawing</a> <a href='undocumented#Arc'>in</a> <a href='undocumented#Arc'>graphics</a> <a href='undocumented#Arc'>standards</a>.
+<a href='undocumented#Arc'>Arc</a> can be constructed in a number of ways. <a href='undocumented#Arc'>Arc</a> may be described by part of <a href='undocumented#Oval'>Oval</a> and angles,
+by start <a href='SkPoint_Reference#Point'>point</a> and end <a href='SkPoint_Reference#Point'>point</a>, and by radius and tangent <a href='undocumented#Line'>lines</a>. Each construction has advantages,
+and some constructions correspond to <a href='undocumented#Arc'>Arc</a> drawing in graphics standards.
-<a href='undocumented#Arc'>All</a> <a href='undocumented#Arc'>Arc</a> <a href='undocumented#Arc'>draws</a> <a href='undocumented#Arc'>are</a> <a href='undocumented#Arc'>implemented</a> <a href='undocumented#Arc'>by</a> <a href='undocumented#Arc'>one</a> <a href='undocumented#Arc'>or</a> <a href='undocumented#Arc'>more</a> <a href='SkPath_Reference#Conic'>Conic</a> <a href='SkPath_Reference#Conic'>draws</a>. <a href='SkPath_Reference#Conic'>When</a> <a href='#Path_Conic_Weight'>Conic_Weight</a> <a href='#Path_Conic_Weight'>is</a> <a href='#Path_Conic_Weight'>less</a> <a href='#Path_Conic_Weight'>than</a> <a href='#Path_Conic_Weight'>one</a>,
-<a href='SkPath_Reference#Conic'>Conic</a> <a href='SkPath_Reference#Conic'>describes</a> <a href='SkPath_Reference#Conic'>an</a> <a href='undocumented#Arc'>Arc</a> <a href='undocumented#Arc'>of</a> <a href='undocumented#Arc'>some</a> <a href='undocumented#Oval'>Oval</a> <a href='undocumented#Oval'>or</a> <a href='undocumented#Circle'>Circle</a>.
+All <a href='undocumented#Arc'>Arc</a> draws are implemented by one or more <a href='SkPath_Reference#Conic'>Conic</a> draws. When <a href='#Path_Conic_Weight'>Conic_Weight</a> is less than one,
+<a href='SkPath_Reference#Conic'>Conic</a> describes an <a href='undocumented#Arc'>Arc</a> of some <a href='undocumented#Oval'>Oval</a> or <a href='undocumented#Circle'>Circle</a>.
Circle<a href='#SkPath_arcTo'>arcTo(const SkRect& oval, SkScalar startAngle, SkScalar sweepAngle, bool forceMoveTo)</a>
-<a href='#SkPath_arcTo'>describes</a> <a href='undocumented#Arc'>Arc</a> <a href='undocumented#Arc'>as</a> <a href='undocumented#Arc'>a</a> <a href='undocumented#Arc'>piece</a> <a href='undocumented#Arc'>of</a> <a href='undocumented#Oval'>Oval</a>, <a href='undocumented#Oval'>beginning</a> <a href='undocumented#Oval'>at</a> <a href='undocumented#Oval'>start</a> <a href='undocumented#Oval'>angle</a>, <a href='undocumented#Oval'>sweeping</a> <a href='undocumented#Oval'>clockwise</a> <a href='undocumented#Oval'>or</a> <a href='undocumented#Oval'>counterclockwise</a>,
-<a href='undocumented#Oval'>which</a> <a href='undocumented#Oval'>may</a> <a href='undocumented#Oval'>continue</a> <a href='SkPath_Overview#Contour'>Contour</a> <a href='SkPath_Overview#Contour'>or</a> <a href='SkPath_Overview#Contour'>start</a> <a href='SkPath_Overview#Contour'>a</a> <a href='SkPath_Overview#Contour'>new</a> <a href='SkPath_Overview#Contour'>one</a>. <a href='SkPath_Overview#Contour'>This</a> <a href='SkPath_Overview#Contour'>construction</a> <a href='SkPath_Overview#Contour'>is</a> <a href='SkPath_Overview#Contour'>similar</a> <a href='SkPath_Overview#Contour'>to</a> <a href='undocumented#PostScript'>PostScript</a> <a href='undocumented#PostScript'>and</a>
-<a href='#HTML_Canvas'>HTML_Canvas</a> <a href='undocumented#Arc'>arcs</a>. <a href='undocumented#Arc'>Variation</a> <a href='#SkPath_addArc'>addArc</a> <a href='#SkPath_addArc'>always</a> <a href='#SkPath_addArc'>starts</a> <a href='#SkPath_addArc'>new</a> <a href='SkPath_Overview#Contour'>Contour</a>. <a href='SkCanvas_Reference#SkCanvas'>SkCanvas</a>::<a href='#SkCanvas_drawArc'>drawArc</a> <a href='#SkCanvas_drawArc'>draws</a> <a href='#SkCanvas_drawArc'>without</a>
-<a href='#SkCanvas_drawArc'>requiring</a> <a href='SkPath_Reference#Path'>Path</a>.
+describes <a href='undocumented#Arc'>Arc</a> as a piece of <a href='undocumented#Oval'>Oval</a>, beginning at start angle, sweeping clockwise or counterclockwise,
+which may continue <a href='SkPath_Overview#Contour'>Contour</a> or start a new one. This construction is similar to <a href='undocumented#PostScript'>PostScript</a> and
+<a href='#HTML_Canvas'>HTML_Canvas</a> <a href='undocumented#Arc'>arcs</a>. Variation <a href='#SkPath_addArc'>addArc</a> always starts new <a href='SkPath_Overview#Contour'>Contour</a>. <a href='SkCanvas_Reference#SkCanvas'>SkCanvas</a>::<a href='#SkCanvas_drawArc'>drawArc</a> draws without
+requiring <a href='SkPath_Reference#Path'>Path</a>.
Path<a href='#SkPath_arcTo_2'>arcTo(SkScalar x1, SkScalar y1, SkScalar x2, SkScalar y2, SkScalar radius)</a>
-<a href='#SkPath_arcTo_2'>describes</a> <a href='undocumented#Arc'>Arc</a> <a href='undocumented#Arc'>as</a> <a href='undocumented#Arc'>tangent</a> <a href='undocumented#Arc'>to</a> <a href='undocumented#Arc'>the</a> <a href='undocumented#Line'>line</a> <a href='undocumented#Line'>segment</a> <a href='undocumented#Line'>from</a> <a href='undocumented#Line'>last</a> <a href='SkPoint_Reference#Point'>Point</a> <a href='SkPoint_Reference#Point'>added</a> <a href='SkPoint_Reference#Point'>to</a> <a href='SkPath_Reference#Path'>Path</a> <a href='SkPath_Reference#Path'>to</a> (<a href='SkPath_Reference#Path'>x1</a>, <a href='SkPath_Reference#Path'>y1</a>); <a href='SkPath_Reference#Path'>and</a> <a href='SkPath_Reference#Path'>tangent</a>
-<a href='SkPath_Reference#Path'>to</a> <a href='SkPath_Reference#Path'>the</a> <a href='undocumented#Line'>line</a> <a href='undocumented#Line'>segment</a> <a href='undocumented#Line'>from</a> (<a href='undocumented#Line'>x1</a>, <a href='undocumented#Line'>y1</a>) <a href='undocumented#Line'>to</a> (<a href='undocumented#Line'>x2</a>, <a href='undocumented#Line'>y2</a>). <a href='undocumented#Line'>This</a> <a href='undocumented#Line'>construction</a> <a href='undocumented#Line'>is</a> <a href='undocumented#Line'>similar</a> <a href='undocumented#Line'>to</a> <a href='undocumented#PostScript'>PostScript</a> <a href='undocumented#PostScript'>and</a>
+describes <a href='undocumented#Arc'>Arc</a> as tangent to the <a href='undocumented#Line'>line</a> segment from last <a href='SkPoint_Reference#Point'>Point</a> added to <a href='SkPath_Reference#Path'>Path</a> to (x1, y1); and tangent
+to the <a href='undocumented#Line'>line</a> segment from (x1, y1) to (x2, y2). This construction is similar to <a href='undocumented#PostScript'>PostScript</a> and
<a href='#HTML_Canvas'>HTML_Canvas</a> <a href='undocumented#Arc'>arcs</a>.
arcs<a href='#SkPath_arcTo_4'>arcTo(SkScalar rx, SkScalar ry, SkScalar xAxisRotate, ArcSize largeArc, Direction sweep, SkScalar x, SkScalar y)</a>
-<a href='#SkPath_arcTo_4'>describes</a> <a href='undocumented#Arc'>Arc</a> <a href='undocumented#Arc'>as</a> <a href='undocumented#Arc'>part</a> <a href='undocumented#Arc'>of</a> <a href='undocumented#Oval'>Oval</a> <a href='undocumented#Oval'>with</a> <a href='undocumented#Oval'>radii</a> (<a href='undocumented#Oval'>rx</a>, <a href='undocumented#Oval'>ry</a>), <a href='undocumented#Oval'>beginning</a> <a href='undocumented#Oval'>at</a>
-<a href='undocumented#Oval'>last</a> <a href='SkPoint_Reference#Point'>Point</a> <a href='SkPoint_Reference#Point'>added</a> <a href='SkPoint_Reference#Point'>to</a> <a href='SkPath_Reference#Path'>Path</a> <a href='SkPath_Reference#Path'>and</a> <a href='SkPath_Reference#Path'>ending</a> <a href='SkPath_Reference#Path'>at</a> (<a href='SkPath_Reference#Path'>x</a>, <a href='SkPath_Reference#Path'>y</a>). <a href='SkPath_Reference#Path'>More</a> <a href='SkPath_Reference#Path'>than</a> <a href='SkPath_Reference#Path'>one</a> <a href='undocumented#Arc'>Arc</a> <a href='undocumented#Arc'>satisfies</a> <a href='undocumented#Arc'>this</a> <a href='undocumented#Arc'>criteria</a>,
-<a href='undocumented#Arc'>so</a> <a href='undocumented#Arc'>additional</a> <a href='undocumented#Arc'>values</a> <a href='undocumented#Arc'>choose</a> <a href='undocumented#Arc'>a</a> <a href='undocumented#Arc'>single</a> <a href='undocumented#Arc'>solution</a>. <a href='undocumented#Arc'>This</a> <a href='undocumented#Arc'>construction</a> <a href='undocumented#Arc'>is</a> <a href='undocumented#Arc'>similar</a> <a href='undocumented#Arc'>to</a> <a href='undocumented#SVG'>SVG</a> <a href='undocumented#Arc'>arcs</a>.
+describes <a href='undocumented#Arc'>Arc</a> as part of <a href='undocumented#Oval'>Oval</a> with radii (rx, ry), beginning at
+last <a href='SkPoint_Reference#Point'>Point</a> added to <a href='SkPath_Reference#Path'>Path</a> and ending at (x, y). More than one <a href='undocumented#Arc'>Arc</a> satisfies this criteria,
+so additional values choose a single solution. This construction is similar to <a href='undocumented#SVG'>SVG</a> <a href='undocumented#Arc'>arcs</a>.
-<a href='#SkPath_conicTo'>conicTo</a> <a href='#SkPath_conicTo'>describes</a> <a href='undocumented#Arc'>Arc</a> <a href='undocumented#Arc'>of</a> <a href='undocumented#Arc'>less</a> <a href='undocumented#Arc'>than</a> 180 <a href='undocumented#Arc'>degrees</a> <a href='undocumented#Arc'>as</a> <a href='undocumented#Arc'>a</a> <a href='undocumented#Arc'>pair</a> <a href='undocumented#Arc'>of</a> <a href='undocumented#Arc'>tangent</a> <a href='undocumented#Line'>lines</a> <a href='undocumented#Line'>and</a> <a href='#Path_Conic_Weight'>Conic_Weight</a>.
-<a href='#SkPath_conicTo'>conicTo</a> <a href='#SkPath_conicTo'>can</a> <a href='#SkPath_conicTo'>represent</a> <a href='#SkPath_conicTo'>any</a> <a href='undocumented#Arc'>Arc</a> <a href='undocumented#Arc'>with</a> <a href='undocumented#Arc'>a</a> <a href='undocumented#Arc'>sweep</a> <a href='undocumented#Arc'>less</a> <a href='undocumented#Arc'>than</a> 180 <a href='undocumented#Arc'>degrees</a> <a href='undocumented#Arc'>at</a> <a href='undocumented#Arc'>any</a> <a href='undocumented#Arc'>rotation</a>. <a href='undocumented#Arc'>All</a> <a href='#SkPath_arcTo'>arcTo</a>
-<a href='#SkPath_arcTo'>constructions</a> <a href='#SkPath_arcTo'>are</a> <a href='#SkPath_arcTo'>converted</a> <a href='#SkPath_arcTo'>to</a> <a href='SkPath_Reference#Conic'>Conic</a> <a href='undocumented#Data'>data</a> <a href='undocumented#Data'>when</a> <a href='undocumented#Data'>added</a> <a href='undocumented#Data'>to</a> <a href='SkPath_Reference#Path'>Path</a>.
+<a href='#SkPath_conicTo'>conicTo</a> describes <a href='undocumented#Arc'>Arc</a> of less than 180 degrees as a pair of tangent <a href='undocumented#Line'>lines</a> and <a href='#Path_Conic_Weight'>Conic_Weight</a>.
+<a href='#SkPath_conicTo'>conicTo</a> can represent any <a href='undocumented#Arc'>Arc</a> with a sweep less than 180 degrees at any rotation. All <a href='#SkPath_arcTo'>arcTo</a>
+constructions are converted to <a href='SkPath_Reference#Conic'>Conic</a> <a href='undocumented#Data'>data</a> when added to <a href='SkPath_Reference#Path'>Path</a>.

@@ -2850,17 +2850,17 @@
In the example above:
<table> <tr>
- <td>1 describes an <a href='undocumented#Arc'>arc</a> <a href='undocumented#Arc'>from</a> <a href='undocumented#Arc'>an</a> <a href='undocumented#Oval'>oval</a>, <a href='undocumented#Oval'>a</a> <a href='undocumented#Oval'>starting</a> <a href='undocumented#Oval'>angle</a>, <a href='undocumented#Oval'>and</a> <a href='undocumented#Oval'>a</a> <a href='undocumented#Oval'>sweep</a> <a href='undocumented#Oval'>angle</a>.</td>
+ <td>1 describes an <a href='undocumented#Arc'>arc</a> from an <a href='undocumented#Oval'>oval</a>, a starting angle, and a sweep angle.</td>
</tr> <tr>
- <td>2 is similar to 1, but does not require building a <a href='SkPath_Reference#Path'>path</a> <a href='SkPath_Reference#Path'>to</a> <a href='SkPath_Reference#Path'>draw</a>.</td>
+ <td>2 is similar to 1, but does not require building a <a href='SkPath_Reference#Path'>path</a> to draw.</td>
</tr> <tr>
<td>3 is similar to 1, but always begins new <a href='SkPath_Overview#Contour'>Contour</a>.</td>
</tr> <tr>
- <td>4 describes an <a href='undocumented#Arc'>arc</a> <a href='undocumented#Arc'>from</a> <a href='undocumented#Arc'>a</a> <a href='undocumented#Arc'>pair</a> <a href='undocumented#Arc'>of</a> <a href='undocumented#Arc'>tangent</a> <a href='undocumented#Line'>lines</a> <a href='undocumented#Line'>and</a> <a href='undocumented#Line'>a</a> <a href='undocumented#Line'>radius</a>.</td>
+ <td>4 describes an <a href='undocumented#Arc'>arc</a> from a pair of tangent <a href='undocumented#Line'>lines</a> and a radius.</td>
</tr> <tr>
- <td>5 describes an <a href='undocumented#Arc'>arc</a> <a href='undocumented#Arc'>from</a> <a href='undocumented#Oval'>Oval</a> <a href='undocumented#Oval'>center</a>, <a href='undocumented#Arc'>arc</a> <a href='undocumented#Arc'>start</a> <a href='SkPoint_Reference#Point'>Point</a> <a href='SkPoint_Reference#Point'>and</a> <a href='undocumented#Arc'>arc</a> <a href='undocumented#Arc'>end</a> <a href='SkPoint_Reference#Point'>Point</a>.</td>
+ <td>5 describes an <a href='undocumented#Arc'>arc</a> from <a href='undocumented#Oval'>Oval</a> center, <a href='undocumented#Arc'>arc</a> start <a href='SkPoint_Reference#Point'>Point</a> and <a href='undocumented#Arc'>arc</a> end <a href='SkPoint_Reference#Point'>Point</a>.</td>
</tr> <tr>
- <td>6 describes an <a href='undocumented#Arc'>arc</a> <a href='undocumented#Arc'>from</a> <a href='undocumented#Arc'>a</a> <a href='undocumented#Arc'>pair</a> <a href='undocumented#Arc'>of</a> <a href='undocumented#Arc'>tangent</a> <a href='undocumented#Line'>lines</a> <a href='undocumented#Line'>and</a> <a href='undocumented#Line'>a</a> <a href='#Path_Conic_Weight'>Conic_Weight</a>.</td>
+ <td>6 describes an <a href='undocumented#Arc'>arc</a> from a pair of tangent <a href='undocumented#Line'>lines</a> and a <a href='#Path_Conic_Weight'>Conic_Weight</a>.</td>
</tr>
</table>
@@ -2869,17 +2869,17 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-<a href='SkPath_Reference#SkPath'>SkPath</a>& <a href='#SkPath_arcTo'>arcTo</a>(<a href='#SkPath_arcTo'>const</a> <a href='SkRect_Reference#SkRect'>SkRect</a>& <a href='undocumented#Oval'>oval</a>, <a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>startAngle</a>, <a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>sweepAngle</a>, <a href='undocumented#SkScalar'>bool</a> <a href='undocumented#SkScalar'>forceMoveTo</a>)
+<a href='SkPath_Reference#SkPath'>SkPath</a>& <a href='#SkPath_arcTo'>arcTo</a>(const <a href='SkRect_Reference#SkRect'>SkRect</a>& <a href='undocumented#Oval'>oval</a>, <a href='undocumented#SkScalar'>SkScalar</a> startAngle, <a href='undocumented#SkScalar'>SkScalar</a> sweepAngle, bool forceMoveTo)
</pre>
-Appends <a href='undocumented#Arc'>arc</a> <a href='undocumented#Arc'>to</a> <a href='SkPath_Reference#SkPath'>SkPath</a>. <a href='undocumented#Arc'>Arc</a> <a href='undocumented#Arc'>added</a> <a href='undocumented#Arc'>is</a> <a href='undocumented#Arc'>part</a> <a href='undocumented#Arc'>of</a> <a href='undocumented#Arc'>ellipse</a>
-bounded by <a href='#SkPath_arcTo_oval'>oval</a>, <a href='#SkPath_arcTo_oval'>from</a> <a href='#SkPath_arcTo_startAngle'>startAngle</a> <a href='#SkPath_arcTo_startAngle'>through</a> <a href='#SkPath_arcTo_sweepAngle'>sweepAngle</a>. <a href='#SkPath_arcTo_sweepAngle'>Both</a> <a href='#SkPath_arcTo_startAngle'>startAngle</a> <a href='#SkPath_arcTo_startAngle'>and</a>
-<a href='#SkPath_arcTo_sweepAngle'>sweepAngle</a> <a href='#SkPath_arcTo_sweepAngle'>are</a> <a href='#SkPath_arcTo_sweepAngle'>measured</a> <a href='#SkPath_arcTo_sweepAngle'>in</a> <a href='#SkPath_arcTo_sweepAngle'>degrees</a>, <a href='#SkPath_arcTo_sweepAngle'>where</a> <a href='#SkPath_arcTo_sweepAngle'>zero</a> <a href='#SkPath_arcTo_sweepAngle'>degrees</a> <a href='#SkPath_arcTo_sweepAngle'>is</a> <a href='#SkPath_arcTo_sweepAngle'>aligned</a> <a href='#SkPath_arcTo_sweepAngle'>with</a> <a href='#SkPath_arcTo_sweepAngle'>the</a>
-positive x-axis, and positive sweeps extends <a href='undocumented#Arc'>arc</a> <a href='undocumented#Arc'>clockwise</a>.
+Appends <a href='undocumented#Arc'>arc</a> to <a href='SkPath_Reference#SkPath'>SkPath</a>. <a href='undocumented#Arc'>Arc</a> added is part of ellipse
+bounded by <a href='#SkPath_arcTo_oval'>oval</a>, from <a href='#SkPath_arcTo_startAngle'>startAngle</a> through <a href='#SkPath_arcTo_sweepAngle'>sweepAngle</a>. Both <a href='#SkPath_arcTo_startAngle'>startAngle</a> and
+<a href='#SkPath_arcTo_sweepAngle'>sweepAngle</a> are measured in degrees, where zero degrees is aligned with the
+positive x-axis, and positive sweeps extends <a href='undocumented#Arc'>arc</a> clockwise.
-<a href='#SkPath_arcTo'>arcTo</a>() <a href='#SkPath_arcTo'>adds</a> <a href='undocumented#Line'>line</a> <a href='undocumented#Line'>connecting</a> <a href='SkPath_Reference#SkPath'>SkPath</a> <a href='SkPath_Reference#SkPath'>last</a> <a href='SkPoint_Reference#SkPoint'>SkPoint</a> <a href='SkPoint_Reference#SkPoint'>to</a> <a href='SkPoint_Reference#SkPoint'>initial</a> <a href='undocumented#Arc'>arc</a> <a href='SkPoint_Reference#SkPoint'>SkPoint</a> <a href='SkPoint_Reference#SkPoint'>if</a> <a href='#SkPath_arcTo_forceMoveTo'>forceMoveTo</a>
-is false and <a href='SkPath_Reference#SkPath'>SkPath</a> <a href='SkPath_Reference#SkPath'>is</a> <a href='SkPath_Reference#SkPath'>not</a> <a href='SkPath_Reference#SkPath'>empty</a>. <a href='SkPath_Reference#SkPath'>Otherwise</a>, <a href='SkPath_Reference#SkPath'>added</a> <a href='SkPath_Overview#Contour'>contour</a> <a href='SkPath_Overview#Contour'>begins</a> <a href='SkPath_Overview#Contour'>with</a> <a href='SkPath_Overview#Contour'>first</a> <a href='SkPoint_Reference#Point'>point</a>
-of <a href='undocumented#Arc'>arc</a>. <a href='undocumented#Arc'>Angles</a> <a href='undocumented#Arc'>greater</a> <a href='undocumented#Arc'>than</a> -360 <a href='undocumented#Arc'>and</a> <a href='undocumented#Arc'>less</a> <a href='undocumented#Arc'>than</a> 360 <a href='undocumented#Arc'>are</a> <a href='undocumented#Arc'>treated</a> <a href='undocumented#Arc'>modulo</a> 360.
+<a href='#SkPath_arcTo'>arcTo</a>() adds <a href='undocumented#Line'>line</a> connecting <a href='SkPath_Reference#SkPath'>SkPath</a> last <a href='SkPoint_Reference#SkPoint'>SkPoint</a> to initial <a href='undocumented#Arc'>arc</a> <a href='SkPoint_Reference#SkPoint'>SkPoint</a> if <a href='#SkPath_arcTo_forceMoveTo'>forceMoveTo</a>
+is false and <a href='SkPath_Reference#SkPath'>SkPath</a> is not empty. Otherwise, added <a href='SkPath_Overview#Contour'>contour</a> begins with first <a href='SkPoint_Reference#Point'>point</a>
+of <a href='undocumented#Arc'>arc</a>. Angles greater than -360 and less than 360 are treated modulo 360.
### Parameters
@@ -2887,13 +2887,13 @@
<td>bounds of ellipse containing <a href='undocumented#Arc'>arc</a></td>
</tr>
<tr> <td><a name='SkPath_arcTo_startAngle'><code><strong>startAngle</strong></code></a></td>
- <td>starting angle of <a href='undocumented#Arc'>arc</a> <a href='undocumented#Arc'>in</a> <a href='undocumented#Arc'>degrees</a></td>
+ <td>starting angle of <a href='undocumented#Arc'>arc</a> in degrees</td>
</tr>
<tr> <td><a name='SkPath_arcTo_sweepAngle'><code><strong>sweepAngle</strong></code></a></td>
<td>sweep, in degrees. Positive is clockwise; treated modulo 360</td>
</tr>
<tr> <td><a name='SkPath_arcTo_forceMoveTo'><code><strong>forceMoveTo</strong></code></a></td>
- <td>true to start a new <a href='SkPath_Overview#Contour'>contour</a> <a href='SkPath_Overview#Contour'>with</a> <a href='undocumented#Arc'>arc</a></td>
+ <td>true to start a new <a href='SkPath_Overview#Contour'>contour</a> with <a href='undocumented#Arc'>arc</a></td>
</tr>
</table>
@@ -2903,8 +2903,8 @@
### Example
-<div><fiddle-embed name="5f02890edaa10cb5e1a4243a82b6a382"><div><a href='#SkPath_arcTo'>arcTo</a> <a href='#SkPath_arcTo'>continues</a> <a href='#SkPath_arcTo'>a</a> <a href='#SkPath_arcTo'>previous</a> <a href='SkPath_Overview#Contour'>contour</a> <a href='SkPath_Overview#Contour'>when</a> <a href='#SkPath_arcTo_forceMoveTo'>forceMoveTo</a> <a href='#SkPath_arcTo_forceMoveTo'>is</a> <a href='#SkPath_arcTo_forceMoveTo'>false</a> <a href='#SkPath_arcTo_forceMoveTo'>and</a> <a href='#SkPath_arcTo_forceMoveTo'>when</a> <a href='SkPath_Reference#Path'>Path</a>
-<a href='SkPath_Reference#Path'>is</a> <a href='SkPath_Reference#Path'>not</a> <a href='SkPath_Reference#Path'>empty</a>.
+<div><fiddle-embed name="5f02890edaa10cb5e1a4243a82b6a382"><div><a href='#SkPath_arcTo'>arcTo</a> continues a previous <a href='SkPath_Overview#Contour'>contour</a> when <a href='#SkPath_arcTo_forceMoveTo'>forceMoveTo</a> is false and when <a href='SkPath_Reference#Path'>Path</a>
+is not empty.
</div></fiddle-embed></div>
### See Also
@@ -2916,22 +2916,22 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-<a href='SkPath_Reference#SkPath'>SkPath</a>& <a href='#SkPath_arcTo'>arcTo</a>(<a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>x1</a>, <a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>y1</a>, <a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>x2</a>, <a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>y2</a>, <a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>radius</a>)
+<a href='SkPath_Reference#SkPath'>SkPath</a>& <a href='#SkPath_arcTo'>arcTo</a>(<a href='undocumented#SkScalar'>SkScalar</a> x1, <a href='undocumented#SkScalar'>SkScalar</a> y1, <a href='undocumented#SkScalar'>SkScalar</a> x2, <a href='undocumented#SkScalar'>SkScalar</a> y2, <a href='undocumented#SkScalar'>SkScalar</a> radius)
</pre>
-Appends <a href='undocumented#Arc'>arc</a> <a href='undocumented#Arc'>to</a> <a href='SkPath_Reference#SkPath'>SkPath</a>, <a href='SkPath_Reference#SkPath'>after</a> <a href='SkPath_Reference#SkPath'>appending</a> <a href='undocumented#Line'>line</a> <a href='undocumented#Line'>if</a> <a href='undocumented#Line'>needed</a>. <a href='undocumented#Arc'>Arc</a> <a href='undocumented#Arc'>is</a> <a href='undocumented#Arc'>implemented</a> <a href='undocumented#Arc'>by</a> <a href='SkPath_Reference#Conic'>conic</a>
-weighted to describe part of <a href='undocumented#Circle'>circle</a>. <a href='undocumented#Arc'>Arc</a> <a href='undocumented#Arc'>is</a> <a href='undocumented#Arc'>contained</a> <a href='undocumented#Arc'>by</a> <a href='undocumented#Arc'>tangent</a> <a href='undocumented#Arc'>from</a>
-last <a href='SkPath_Reference#SkPath'>SkPath</a> <a href='SkPoint_Reference#Point'>point</a> <a href='SkPoint_Reference#Point'>to</a> (<a href='#SkPath_arcTo_2_x1'>x1</a>, <a href='#SkPath_arcTo_2_y1'>y1</a>), <a href='#SkPath_arcTo_2_y1'>and</a> <a href='#SkPath_arcTo_2_y1'>tangent</a> <a href='#SkPath_arcTo_2_y1'>from</a> (<a href='#SkPath_arcTo_2_x1'>x1</a>, <a href='#SkPath_arcTo_2_y1'>y1</a>) <a href='#SkPath_arcTo_2_y1'>to</a> (<a href='#SkPath_arcTo_2_x2'>x2</a>, <a href='#SkPath_arcTo_2_y2'>y2</a>). <a href='undocumented#Arc'>Arc</a>
-is part of <a href='undocumented#Circle'>circle</a> <a href='undocumented#Circle'>sized</a> <a href='undocumented#Circle'>to</a> <a href='#SkPath_arcTo_2_radius'>radius</a>, <a href='#SkPath_arcTo_2_radius'>positioned</a> <a href='#SkPath_arcTo_2_radius'>so</a> <a href='#SkPath_arcTo_2_radius'>it</a> <a href='#SkPath_arcTo_2_radius'>touches</a> <a href='#SkPath_arcTo_2_radius'>both</a> <a href='#SkPath_arcTo_2_radius'>tangent</a> <a href='undocumented#Line'>lines</a>.
+Appends <a href='undocumented#Arc'>arc</a> to <a href='SkPath_Reference#SkPath'>SkPath</a>, after appending <a href='undocumented#Line'>line</a> if needed. <a href='undocumented#Arc'>Arc</a> is implemented by <a href='SkPath_Reference#Conic'>conic</a>
+weighted to describe part of <a href='undocumented#Circle'>circle</a>. <a href='undocumented#Arc'>Arc</a> is contained by tangent from
+last <a href='SkPath_Reference#SkPath'>SkPath</a> <a href='SkPoint_Reference#Point'>point</a> to (<a href='#SkPath_arcTo_2_x1'>x1</a>, <a href='#SkPath_arcTo_2_y1'>y1</a>), and tangent from (<a href='#SkPath_arcTo_2_x1'>x1</a>, <a href='#SkPath_arcTo_2_y1'>y1</a>) to (<a href='#SkPath_arcTo_2_x2'>x2</a>, <a href='#SkPath_arcTo_2_y2'>y2</a>). <a href='undocumented#Arc'>Arc</a>
+is part of <a href='undocumented#Circle'>circle</a> sized to <a href='#SkPath_arcTo_2_radius'>radius</a>, positioned so it touches both tangent <a href='undocumented#Line'>lines</a>.
-If last <a href='SkPath_Reference#Path'>Path</a> <a href='SkPoint_Reference#Point'>Point</a> <a href='SkPoint_Reference#Point'>does</a> <a href='SkPoint_Reference#Point'>not</a> <a href='SkPoint_Reference#Point'>start</a> <a href='undocumented#Arc'>Arc</a>, <a href='#SkPath_arcTo'>arcTo</a> <a href='#SkPath_arcTo'>appends</a> <a href='#SkPath_arcTo'>connecting</a> <a href='undocumented#Line'>Line</a> <a href='undocumented#Line'>to</a> <a href='SkPath_Reference#Path'>Path</a>.
-The length of <a href='SkPoint_Reference#Vector'>Vector</a> <a href='SkPoint_Reference#Vector'>from</a> (<a href='#SkPath_arcTo_2_x1'>x1</a>, <a href='#SkPath_arcTo_2_y1'>y1</a>) <a href='#SkPath_arcTo_2_y1'>to</a> (<a href='#SkPath_arcTo_2_x2'>x2</a>, <a href='#SkPath_arcTo_2_y2'>y2</a>) <a href='#SkPath_arcTo_2_y2'>does</a> <a href='#SkPath_arcTo_2_y2'>not</a> <a href='#SkPath_arcTo_2_y2'>affect</a> <a href='undocumented#Arc'>Arc</a>.
+If last <a href='SkPath_Reference#Path'>Path</a> <a href='SkPoint_Reference#Point'>Point</a> does not start <a href='undocumented#Arc'>Arc</a>, <a href='#SkPath_arcTo'>arcTo</a> appends connecting <a href='undocumented#Line'>Line</a> to <a href='SkPath_Reference#Path'>Path</a>.
+The length of <a href='SkPoint_Reference#Vector'>Vector</a> from (<a href='#SkPath_arcTo_2_x1'>x1</a>, <a href='#SkPath_arcTo_2_y1'>y1</a>) to (<a href='#SkPath_arcTo_2_x2'>x2</a>, <a href='#SkPath_arcTo_2_y2'>y2</a>) does not affect <a href='undocumented#Arc'>Arc</a>.
-<a href='undocumented#Arc'>Arc</a> <a href='undocumented#Arc'>sweep</a> <a href='undocumented#Arc'>is</a> <a href='undocumented#Arc'>always</a> <a href='undocumented#Arc'>less</a> <a href='undocumented#Arc'>than</a> 180 <a href='undocumented#Arc'>degrees</a>. <a href='undocumented#Arc'>If</a> <a href='#SkPath_arcTo_2_radius'>radius</a> <a href='#SkPath_arcTo_2_radius'>is</a> <a href='#SkPath_arcTo_2_radius'>zero</a>, <a href='#SkPath_arcTo_2_radius'>or</a> <a href='#SkPath_arcTo_2_radius'>if</a>
-tangents are nearly parallel, <a href='#SkPath_arcTo'>arcTo</a> <a href='#SkPath_arcTo'>appends</a> <a href='undocumented#Line'>Line</a> <a href='undocumented#Line'>from</a> <a href='undocumented#Line'>last</a> <a href='SkPath_Reference#Path'>Path</a> <a href='SkPoint_Reference#Point'>Point</a> <a href='SkPoint_Reference#Point'>to</a> (<a href='#SkPath_arcTo_2_x1'>x1</a>, <a href='#SkPath_arcTo_2_y1'>y1</a>).
+<a href='undocumented#Arc'>Arc</a> sweep is always less than 180 degrees. If <a href='#SkPath_arcTo_2_radius'>radius</a> is zero, or if
+tangents are nearly parallel, <a href='#SkPath_arcTo'>arcTo</a> appends <a href='undocumented#Line'>Line</a> from last <a href='SkPath_Reference#Path'>Path</a> <a href='SkPoint_Reference#Point'>Point</a> to (<a href='#SkPath_arcTo_2_x1'>x1</a>, <a href='#SkPath_arcTo_2_y1'>y1</a>).
-<a href='#SkPath_arcTo'>arcTo</a> <a href='#SkPath_arcTo'>appends</a> <a href='#SkPath_arcTo'>at</a> <a href='#SkPath_arcTo'>most</a> <a href='#SkPath_arcTo'>one</a> <a href='undocumented#Line'>Line</a> <a href='undocumented#Line'>and</a> <a href='undocumented#Line'>one</a> <a href='SkPath_Reference#Conic'>conic</a>.
-<a href='#SkPath_arcTo'>arcTo</a> <a href='#SkPath_arcTo'>implements</a> <a href='#SkPath_arcTo'>the</a> <a href='#SkPath_arcTo'>functionality</a> <a href='#SkPath_arcTo'>of</a> <a href='undocumented#Arct'>PostScript arct</a> <a href='undocumented#PostScript'>and</a> <a href='undocumented#ArcTo'>HTML Canvas arcTo</a>.
+<a href='#SkPath_arcTo'>arcTo</a> appends at most one <a href='undocumented#Line'>Line</a> and one <a href='SkPath_Reference#Conic'>conic</a>.
+<a href='#SkPath_arcTo'>arcTo</a> implements the functionality of <a href='undocumented#Arct'>PostScript arct</a> and <a href='undocumented#ArcTo'>HTML Canvas arcTo</a>.
### Parameters
@@ -2948,7 +2948,7 @@
<td>y-axis value end of second tangent</td>
</tr>
<tr> <td><a name='SkPath_arcTo_2_radius'><code><strong>radius</strong></code></a></td>
- <td>distance from <a href='undocumented#Arc'>arc</a> <a href='undocumented#Arc'>to</a> <a href='undocumented#Circle'>circle</a> <a href='undocumented#Circle'>center</a></td>
+ <td>distance from <a href='undocumented#Arc'>arc</a> to <a href='undocumented#Circle'>circle</a> center</td>
</tr>
</table>
@@ -2966,7 +2966,7 @@
### Example
-<div><fiddle-embed name="498360fa0a201cc5db04b1c27256358f"><div><a href='#SkPath_arcTo'>arcTo</a> <a href='#SkPath_arcTo'>is</a> <a href='#SkPath_arcTo'>represented</a> <a href='#SkPath_arcTo'>by</a> <a href='undocumented#Line'>Line</a> <a href='undocumented#Line'>and</a> <a href='undocumented#Line'>circular</a> <a href='SkPath_Reference#Conic'>Conic</a> <a href='SkPath_Reference#Conic'>in</a> <a href='SkPath_Reference#Path'>Path</a>.
+<div><fiddle-embed name="498360fa0a201cc5db04b1c27256358f"><div><a href='#SkPath_arcTo'>arcTo</a> is represented by <a href='undocumented#Line'>Line</a> and circular <a href='SkPath_Reference#Conic'>Conic</a> in <a href='SkPath_Reference#Path'>Path</a>.
</div>
#### Example Output
@@ -2988,33 +2988,33 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-<a href='SkPath_Reference#SkPath'>SkPath</a>& <a href='#SkPath_arcTo'>arcTo</a>(<a href='#SkPath_arcTo'>const</a> <a href='SkPoint_Reference#SkPoint'>SkPoint</a> <a href='SkPoint_Reference#SkPoint'>p1</a>, <a href='SkPoint_Reference#SkPoint'>const</a> <a href='SkPoint_Reference#SkPoint'>SkPoint</a> <a href='SkPoint_Reference#SkPoint'>p2</a>, <a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>radius</a>)
+<a href='SkPath_Reference#SkPath'>SkPath</a>& <a href='#SkPath_arcTo'>arcTo</a>(const <a href='SkPoint_Reference#SkPoint'>SkPoint</a> p1, const <a href='SkPoint_Reference#SkPoint'>SkPoint</a> p2, <a href='undocumented#SkScalar'>SkScalar</a> radius)
</pre>
-Appends <a href='undocumented#Arc'>arc</a> <a href='undocumented#Arc'>to</a> <a href='SkPath_Reference#SkPath'>SkPath</a>, <a href='SkPath_Reference#SkPath'>after</a> <a href='SkPath_Reference#SkPath'>appending</a> <a href='undocumented#Line'>line</a> <a href='undocumented#Line'>if</a> <a href='undocumented#Line'>needed</a>. <a href='undocumented#Arc'>Arc</a> <a href='undocumented#Arc'>is</a> <a href='undocumented#Arc'>implemented</a> <a href='undocumented#Arc'>by</a> <a href='SkPath_Reference#Conic'>conic</a>
-weighted to describe part of <a href='undocumented#Circle'>circle</a>. <a href='undocumented#Arc'>Arc</a> <a href='undocumented#Arc'>is</a> <a href='undocumented#Arc'>contained</a> <a href='undocumented#Arc'>by</a> <a href='undocumented#Arc'>tangent</a> <a href='undocumented#Arc'>from</a>
-last <a href='SkPath_Reference#SkPath'>SkPath</a> <a href='SkPoint_Reference#Point'>point</a> <a href='SkPoint_Reference#Point'>to</a> <a href='#SkPath_arcTo_3_p1'>p1</a>, <a href='#SkPath_arcTo_3_p1'>and</a> <a href='#SkPath_arcTo_3_p1'>tangent</a> <a href='#SkPath_arcTo_3_p1'>from</a> <a href='#SkPath_arcTo_3_p1'>p1</a> <a href='#SkPath_arcTo_3_p1'>to</a> <a href='#SkPath_arcTo_3_p2'>p2</a>. <a href='undocumented#Arc'>Arc</a>
-is part of <a href='undocumented#Circle'>circle</a> <a href='undocumented#Circle'>sized</a> <a href='undocumented#Circle'>to</a> <a href='#SkPath_arcTo_3_radius'>radius</a>, <a href='#SkPath_arcTo_3_radius'>positioned</a> <a href='#SkPath_arcTo_3_radius'>so</a> <a href='#SkPath_arcTo_3_radius'>it</a> <a href='#SkPath_arcTo_3_radius'>touches</a> <a href='#SkPath_arcTo_3_radius'>both</a> <a href='#SkPath_arcTo_3_radius'>tangent</a> <a href='undocumented#Line'>lines</a>.
+Appends <a href='undocumented#Arc'>arc</a> to <a href='SkPath_Reference#SkPath'>SkPath</a>, after appending <a href='undocumented#Line'>line</a> if needed. <a href='undocumented#Arc'>Arc</a> is implemented by <a href='SkPath_Reference#Conic'>conic</a>
+weighted to describe part of <a href='undocumented#Circle'>circle</a>. <a href='undocumented#Arc'>Arc</a> is contained by tangent from
+last <a href='SkPath_Reference#SkPath'>SkPath</a> <a href='SkPoint_Reference#Point'>point</a> to <a href='#SkPath_arcTo_3_p1'>p1</a>, and tangent from <a href='#SkPath_arcTo_3_p1'>p1</a> to <a href='#SkPath_arcTo_3_p2'>p2</a>. <a href='undocumented#Arc'>Arc</a>
+is part of <a href='undocumented#Circle'>circle</a> sized to <a href='#SkPath_arcTo_3_radius'>radius</a>, positioned so it touches both tangent <a href='undocumented#Line'>lines</a>.
-If last <a href='SkPath_Reference#SkPath'>SkPath</a> <a href='SkPoint_Reference#SkPoint'>SkPoint</a> <a href='SkPoint_Reference#SkPoint'>does</a> <a href='SkPoint_Reference#SkPoint'>not</a> <a href='SkPoint_Reference#SkPoint'>start</a> <a href='undocumented#Arc'>arc</a>, <a href='#SkPath_arcTo'>arcTo</a>() <a href='#SkPath_arcTo'>appends</a> <a href='#SkPath_arcTo'>connecting</a> <a href='undocumented#Line'>line</a> <a href='undocumented#Line'>to</a> <a href='SkPath_Reference#SkPath'>SkPath</a>.
-The length of <a href='SkPoint_Reference#Vector'>vector</a> <a href='SkPoint_Reference#Vector'>from</a> <a href='#SkPath_arcTo_3_p1'>p1</a> <a href='#SkPath_arcTo_3_p1'>to</a> <a href='#SkPath_arcTo_3_p2'>p2</a> <a href='#SkPath_arcTo_3_p2'>does</a> <a href='#SkPath_arcTo_3_p2'>not</a> <a href='#SkPath_arcTo_3_p2'>affect</a> <a href='undocumented#Arc'>arc</a>.
+If last <a href='SkPath_Reference#SkPath'>SkPath</a> <a href='SkPoint_Reference#SkPoint'>SkPoint</a> does not start <a href='undocumented#Arc'>arc</a>, <a href='#SkPath_arcTo'>arcTo</a>() appends connecting <a href='undocumented#Line'>line</a> to <a href='SkPath_Reference#SkPath'>SkPath</a>.
+The length of <a href='SkPoint_Reference#Vector'>vector</a> from <a href='#SkPath_arcTo_3_p1'>p1</a> to <a href='#SkPath_arcTo_3_p2'>p2</a> does not affect <a href='undocumented#Arc'>arc</a>.
-<a href='undocumented#Arc'>Arc</a> <a href='undocumented#Arc'>sweep</a> <a href='undocumented#Arc'>is</a> <a href='undocumented#Arc'>always</a> <a href='undocumented#Arc'>less</a> <a href='undocumented#Arc'>than</a> 180 <a href='undocumented#Arc'>degrees</a>. <a href='undocumented#Arc'>If</a> <a href='#SkPath_arcTo_3_radius'>radius</a> <a href='#SkPath_arcTo_3_radius'>is</a> <a href='#SkPath_arcTo_3_radius'>zero</a>, <a href='#SkPath_arcTo_3_radius'>or</a> <a href='#SkPath_arcTo_3_radius'>if</a>
-tangents are nearly parallel, <a href='#SkPath_arcTo'>arcTo</a>() <a href='#SkPath_arcTo'>appends</a> <a href='undocumented#Line'>line</a> <a href='undocumented#Line'>from</a> <a href='undocumented#Line'>last</a> <a href='SkPath_Reference#SkPath'>SkPath</a> <a href='SkPoint_Reference#SkPoint'>SkPoint</a> <a href='SkPoint_Reference#SkPoint'>to</a> <a href='#SkPath_arcTo_3_p1'>p1</a>.
+<a href='undocumented#Arc'>Arc</a> sweep is always less than 180 degrees. If <a href='#SkPath_arcTo_3_radius'>radius</a> is zero, or if
+tangents are nearly parallel, <a href='#SkPath_arcTo'>arcTo</a>() appends <a href='undocumented#Line'>line</a> from last <a href='SkPath_Reference#SkPath'>SkPath</a> <a href='SkPoint_Reference#SkPoint'>SkPoint</a> to <a href='#SkPath_arcTo_3_p1'>p1</a>.
-<a href='#SkPath_arcTo'>arcTo</a>() <a href='#SkPath_arcTo'>appends</a> <a href='#SkPath_arcTo'>at</a> <a href='#SkPath_arcTo'>most</a> <a href='#SkPath_arcTo'>one</a> <a href='undocumented#Line'>line</a> <a href='undocumented#Line'>and</a> <a href='undocumented#Line'>one</a> <a href='SkPath_Reference#Conic'>conic</a>.
-<a href='#SkPath_arcTo'>arcTo</a>() <a href='#SkPath_arcTo'>implements</a> <a href='#SkPath_arcTo'>the</a> <a href='#SkPath_arcTo'>functionality</a> <a href='#SkPath_arcTo'>of</a> <a href='undocumented#Arct'>PostScript arct</a> <a href='undocumented#PostScript'>and</a> <a href='undocumented#ArcTo'>HTML Canvas arcTo</a>.
+<a href='#SkPath_arcTo'>arcTo</a>() appends at most one <a href='undocumented#Line'>line</a> and one <a href='SkPath_Reference#Conic'>conic</a>.
+<a href='#SkPath_arcTo'>arcTo</a>() implements the functionality of <a href='undocumented#Arct'>PostScript arct</a> and <a href='undocumented#ArcTo'>HTML Canvas arcTo</a>.
### Parameters
<table> <tr> <td><a name='SkPath_arcTo_3_p1'><code><strong>p1</strong></code></a></td>
- <td><a href='SkPoint_Reference#SkPoint'>SkPoint</a> <a href='SkPoint_Reference#SkPoint'>common</a> <a href='SkPoint_Reference#SkPoint'>to</a> <a href='SkPoint_Reference#SkPoint'>pair</a> <a href='SkPoint_Reference#SkPoint'>of</a> <a href='SkPoint_Reference#SkPoint'>tangents</a></td>
+ <td><a href='SkPoint_Reference#SkPoint'>SkPoint</a> common to pair of tangents</td>
</tr>
<tr> <td><a name='SkPath_arcTo_3_p2'><code><strong>p2</strong></code></a></td>
<td>end of second tangent</td>
</tr>
<tr> <td><a name='SkPath_arcTo_3_radius'><code><strong>radius</strong></code></a></td>
- <td>distance from <a href='undocumented#Arc'>arc</a> <a href='undocumented#Arc'>to</a> <a href='undocumented#Circle'>circle</a> <a href='undocumented#Circle'>center</a></td>
+ <td>distance from <a href='undocumented#Arc'>arc</a> to <a href='undocumented#Circle'>circle</a> center</td>
</tr>
</table>
@@ -3024,8 +3024,8 @@
### Example
-<div><fiddle-embed name="0c056264a361579c18e5d02d3172d4d4"><div>Because tangent <a href='undocumented#Line'>lines</a> <a href='undocumented#Line'>are</a> <a href='undocumented#Line'>parallel</a>, <a href='#SkPath_arcTo'>arcTo</a> <a href='#SkPath_arcTo'>appends</a> <a href='undocumented#Line'>line</a> <a href='undocumented#Line'>from</a> <a href='undocumented#Line'>last</a> <a href='SkPath_Reference#Path'>Path</a> <a href='SkPoint_Reference#Point'>Point</a> <a href='SkPoint_Reference#Point'>to</a>
-<a href='#SkPath_arcTo_3_p1'>p1</a>, <a href='#SkPath_arcTo_3_p1'>but</a> <a href='#SkPath_arcTo_3_p1'>does</a> <a href='#SkPath_arcTo_3_p1'>not</a> <a href='#SkPath_arcTo_3_p1'>append</a> <a href='#SkPath_arcTo_3_p1'>a</a> <a href='#SkPath_arcTo_3_p1'>circular</a> <a href='SkPath_Reference#Conic'>Conic</a>.
+<div><fiddle-embed name="0c056264a361579c18e5d02d3172d4d4"><div>Because tangent <a href='undocumented#Line'>lines</a> are parallel, <a href='#SkPath_arcTo'>arcTo</a> appends <a href='undocumented#Line'>line</a> from last <a href='SkPath_Reference#Path'>Path</a> <a href='SkPoint_Reference#Point'>Point</a> to
+<a href='#SkPath_arcTo_3_p1'>p1</a>, but does not append a circular <a href='SkPath_Reference#Conic'>Conic</a>.
</div>
#### Example Output
@@ -3052,10 +3052,10 @@
};
</pre>
-Four axis-aligned <a href='undocumented#Oval'>Ovals</a> <a href='undocumented#Oval'>with</a> <a href='undocumented#Oval'>the</a> <a href='undocumented#Oval'>same</a> <a href='undocumented#Oval'>height</a> <a href='undocumented#Oval'>and</a> <a href='undocumented#Oval'>width</a> <a href='undocumented#Oval'>intersect</a> <a href='undocumented#Oval'>a</a> <a href='undocumented#Oval'>pair</a> <a href='undocumented#Oval'>of</a> <a href='SkPoint_Reference#Point'>Points</a>.
-<a href='#SkPath_ArcSize'>ArcSize</a> <a href='#SkPath_ArcSize'>and</a> <a href='#SkPath_Direction'>Direction</a> <a href='#SkPath_Direction'>select</a> <a href='#SkPath_Direction'>one</a> <a href='#SkPath_Direction'>of</a> <a href='#SkPath_Direction'>the</a> <a href='#SkPath_Direction'>four</a> <a href='undocumented#Oval'>Ovals</a>, <a href='undocumented#Oval'>by</a> <a href='undocumented#Oval'>choosing</a> <a href='undocumented#Oval'>the</a> <a href='undocumented#Oval'>larger</a> <a href='undocumented#Oval'>or</a> <a href='undocumented#Oval'>smaller</a>
-<a href='undocumented#Arc'>arc</a> <a href='undocumented#Arc'>between</a> <a href='undocumented#Arc'>the</a> <a href='SkPoint_Reference#Point'>Points</a>; <a href='SkPoint_Reference#Point'>and</a> <a href='SkPoint_Reference#Point'>by</a> <a href='SkPoint_Reference#Point'>choosing</a> <a href='SkPoint_Reference#Point'>the</a> <a href='undocumented#Arc'>arc</a> <a href='#SkPath_Direction'>Direction</a>, <a href='#SkPath_Direction'>clockwise</a>
-<a href='#SkPath_Direction'>or</a> <a href='#SkPath_Direction'>counterclockwise</a>.
+Four axis-aligned <a href='undocumented#Oval'>Ovals</a> with the same height and width intersect a pair of <a href='SkPoint_Reference#Point'>Points</a>.
+<a href='#SkPath_ArcSize'>ArcSize</a> and <a href='#SkPath_Direction'>Direction</a> select one of the four <a href='undocumented#Oval'>Ovals</a>, by choosing the larger or smaller
+<a href='undocumented#Arc'>arc</a> between the <a href='SkPoint_Reference#Point'>Points</a>; and by choosing the <a href='undocumented#Arc'>arc</a> <a href='#SkPath_Direction'>Direction</a>, clockwise
+or counterclockwise.
### Constants
@@ -3079,9 +3079,9 @@
### Example
-<div><fiddle-embed name="8e40c546eecd9cc213200717240898ba"><div><a href='undocumented#Arc'>Arc</a> <a href='undocumented#Arc'>begins</a> <a href='undocumented#Arc'>at</a> <a href='undocumented#Arc'>top</a> <a href='undocumented#Arc'>of</a> <a href='undocumented#Oval'>Oval</a> <a href='undocumented#Oval'>pair</a> <a href='undocumented#Oval'>and</a> <a href='undocumented#Oval'>ends</a> <a href='undocumented#Oval'>at</a> <a href='undocumented#Oval'>bottom</a>. <a href='undocumented#Arc'>Arc</a> <a href='undocumented#Arc'>can</a> <a href='undocumented#Arc'>take</a> <a href='undocumented#Arc'>four</a> <a href='undocumented#Arc'>routes</a> <a href='undocumented#Arc'>to</a> <a href='undocumented#Arc'>get</a> <a href='undocumented#Arc'>there</a>.
-<a href='undocumented#Arc'>Two</a> <a href='undocumented#Arc'>routes</a> <a href='undocumented#Arc'>are</a> <a href='undocumented#Arc'>large</a>, <a href='undocumented#Arc'>and</a> <a href='undocumented#Arc'>two</a> <a href='undocumented#Arc'>routes</a> <a href='undocumented#Arc'>are</a> <a href='undocumented#Arc'>counterclockwise</a>. <a href='undocumented#Arc'>The</a> <a href='undocumented#Arc'>one</a> <a href='undocumented#Arc'>route</a> <a href='undocumented#Arc'>both</a> <a href='undocumented#Arc'>large</a>
-<a href='undocumented#Arc'>and</a> <a href='undocumented#Arc'>counterclockwise</a> <a href='undocumented#Arc'>is</a> <a href='undocumented#Arc'>blue</a>.
+<div><fiddle-embed name="8e40c546eecd9cc213200717240898ba"><div><a href='undocumented#Arc'>Arc</a> begins at top of <a href='undocumented#Oval'>Oval</a> pair and ends at bottom. <a href='undocumented#Arc'>Arc</a> can take four routes to get there.
+Two routes are large, and two routes are counterclockwise. The one route both large
+and counterclockwise is blue.
</div></fiddle-embed></div>
### See Also
@@ -3093,24 +3093,24 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-<a href='SkPath_Reference#SkPath'>SkPath</a>& <a href='#SkPath_arcTo'>arcTo</a>(<a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>rx</a>, <a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>ry</a>, <a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>xAxisRotate</a>, <a href='#SkPath_ArcSize'>ArcSize</a> <a href='#SkPath_ArcSize'>largeArc</a>, <a href='#SkPath_Direction'>Direction</a> <a href='#SkPath_Direction'>sweep</a>,
- <a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>x</a>, <a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>y</a>)
+<a href='SkPath_Reference#SkPath'>SkPath</a>& <a href='#SkPath_arcTo'>arcTo</a>(<a href='undocumented#SkScalar'>SkScalar</a> rx, <a href='undocumented#SkScalar'>SkScalar</a> ry, <a href='undocumented#SkScalar'>SkScalar</a> xAxisRotate, <a href='#SkPath_ArcSize'>ArcSize</a> largeArc, <a href='#SkPath_Direction'>Direction</a> sweep,
+ <a href='undocumented#SkScalar'>SkScalar</a> x, <a href='undocumented#SkScalar'>SkScalar</a> y)
</pre>
-Appends <a href='undocumented#Arc'>arc</a> <a href='undocumented#Arc'>to</a> <a href='SkPath_Reference#SkPath'>SkPath</a>. <a href='undocumented#Arc'>Arc</a> <a href='undocumented#Arc'>is</a> <a href='undocumented#Arc'>implemented</a> <a href='undocumented#Arc'>by</a> <a href='undocumented#Arc'>one</a> <a href='undocumented#Arc'>or</a> <a href='undocumented#Arc'>more</a> <a href='SkPath_Reference#Conic'>conics</a> <a href='SkPath_Reference#Conic'>weighted</a> <a href='SkPath_Reference#Conic'>to</a>
-describe part of <a href='undocumented#Oval'>oval</a> <a href='undocumented#Oval'>with</a> <a href='undocumented#Oval'>radii</a> (<a href='#SkPath_arcTo_4_rx'>rx</a>, <a href='#SkPath_arcTo_4_ry'>ry</a>) <a href='#SkPath_arcTo_4_ry'>rotated</a> <a href='#SkPath_arcTo_4_ry'>by</a> <a href='#SkPath_arcTo_4_xAxisRotate'>xAxisRotate</a> <a href='#SkPath_arcTo_4_xAxisRotate'>degrees</a>. <a href='undocumented#Arc'>Arc</a>
-<a href='undocumented#Curve'>curves</a> <a href='undocumented#Curve'>from</a> <a href='undocumented#Curve'>last</a> <a href='SkPath_Reference#SkPath'>SkPath</a> <a href='SkPoint_Reference#SkPoint'>SkPoint</a> <a href='SkPoint_Reference#SkPoint'>to</a> (<a href='#SkPath_arcTo_4_x'>x</a>, <a href='#SkPath_arcTo_4_y'>y</a>), <a href='#SkPath_arcTo_4_y'>choosing</a> <a href='#SkPath_arcTo_4_y'>one</a> <a href='#SkPath_arcTo_4_y'>of</a> <a href='#SkPath_arcTo_4_y'>four</a> <a href='#SkPath_arcTo_4_y'>possible</a> <a href='#SkPath_arcTo_4_y'>routes</a>:
+Appends <a href='undocumented#Arc'>arc</a> to <a href='SkPath_Reference#SkPath'>SkPath</a>. <a href='undocumented#Arc'>Arc</a> is implemented by one or more <a href='SkPath_Reference#Conic'>conics</a> weighted to
+describe part of <a href='undocumented#Oval'>oval</a> with radii (<a href='#SkPath_arcTo_4_rx'>rx</a>, <a href='#SkPath_arcTo_4_ry'>ry</a>) rotated by <a href='#SkPath_arcTo_4_xAxisRotate'>xAxisRotate</a> degrees. <a href='undocumented#Arc'>Arc</a>
+<a href='undocumented#Curve'>curves</a> from last <a href='SkPath_Reference#SkPath'>SkPath</a> <a href='SkPoint_Reference#SkPoint'>SkPoint</a> to (<a href='#SkPath_arcTo_4_x'>x</a>, <a href='#SkPath_arcTo_4_y'>y</a>), choosing one of four possible routes:
clockwise or counterclockwise, and smaller or larger.
-<a href='undocumented#Arc'>Arc</a> <a href='#SkPath_arcTo_4_sweep'>sweep</a> <a href='#SkPath_arcTo_4_sweep'>is</a> <a href='#SkPath_arcTo_4_sweep'>always</a> <a href='#SkPath_arcTo_4_sweep'>less</a> <a href='#SkPath_arcTo_4_sweep'>than</a> 360 <a href='#SkPath_arcTo_4_sweep'>degrees</a>. <a href='#SkPath_arcTo'>arcTo</a>() <a href='#SkPath_arcTo'>appends</a> <a href='undocumented#Line'>line</a> <a href='undocumented#Line'>to</a> (<a href='#SkPath_arcTo_4_x'>x</a>, <a href='#SkPath_arcTo_4_y'>y</a>) <a href='#SkPath_arcTo_4_y'>if</a>
-either radii are zero, or if last <a href='SkPath_Reference#SkPath'>SkPath</a> <a href='SkPoint_Reference#SkPoint'>SkPoint</a> <a href='SkPoint_Reference#SkPoint'>equals</a> (<a href='#SkPath_arcTo_4_x'>x</a>, <a href='#SkPath_arcTo_4_y'>y</a>). <a href='#SkPath_arcTo'>arcTo</a>() <a href='#SkPath_arcTo'>scales</a> <a href='#SkPath_arcTo'>radii</a>
-(<a href='#SkPath_arcTo_4_rx'>rx</a>, <a href='#SkPath_arcTo_4_ry'>ry</a>) <a href='#SkPath_arcTo_4_ry'>to</a> <a href='#SkPath_arcTo_4_ry'>fit</a> <a href='#SkPath_arcTo_4_ry'>last</a> <a href='SkPath_Reference#SkPath'>SkPath</a> <a href='SkPoint_Reference#SkPoint'>SkPoint</a> <a href='SkPoint_Reference#SkPoint'>and</a> (<a href='#SkPath_arcTo_4_x'>x</a>, <a href='#SkPath_arcTo_4_y'>y</a>) <a href='#SkPath_arcTo_4_y'>if</a> <a href='#SkPath_arcTo_4_y'>both</a> <a href='#SkPath_arcTo_4_y'>are</a> <a href='#SkPath_arcTo_4_y'>greater</a> <a href='#SkPath_arcTo_4_y'>than</a> <a href='#SkPath_arcTo_4_y'>zero</a> <a href='#SkPath_arcTo_4_y'>but</a>
+<a href='undocumented#Arc'>Arc</a> <a href='#SkPath_arcTo_4_sweep'>sweep</a> is always less than 360 degrees. <a href='#SkPath_arcTo'>arcTo</a>() appends <a href='undocumented#Line'>line</a> to (<a href='#SkPath_arcTo_4_x'>x</a>, <a href='#SkPath_arcTo_4_y'>y</a>) if
+either radii are zero, or if last <a href='SkPath_Reference#SkPath'>SkPath</a> <a href='SkPoint_Reference#SkPoint'>SkPoint</a> equals (<a href='#SkPath_arcTo_4_x'>x</a>, <a href='#SkPath_arcTo_4_y'>y</a>). <a href='#SkPath_arcTo'>arcTo</a>() scales radii
+(<a href='#SkPath_arcTo_4_rx'>rx</a>, <a href='#SkPath_arcTo_4_ry'>ry</a>) to fit last <a href='SkPath_Reference#SkPath'>SkPath</a> <a href='SkPoint_Reference#SkPoint'>SkPoint</a> and (<a href='#SkPath_arcTo_4_x'>x</a>, <a href='#SkPath_arcTo_4_y'>y</a>) if both are greater than zero but
too small.
-<a href='#SkPath_arcTo'>arcTo</a>() <a href='#SkPath_arcTo'>appends</a> <a href='#SkPath_arcTo'>up</a> <a href='#SkPath_arcTo'>to</a> <a href='#SkPath_arcTo'>four</a> <a href='SkPath_Reference#Conic'>conic</a> <a href='undocumented#Curve'>curves</a>.
-<a href='#SkPath_arcTo'>arcTo</a>() <a href='#SkPath_arcTo'>implements</a> <a href='#SkPath_arcTo'>the</a> <a href='#SkPath_arcTo'>functionality</a> <a href='#SkPath_arcTo'>of</a> <a href='undocumented#SVG_Arc'>SVG arc</a>, <a href='undocumented#SVG'>although</a> <a href='undocumented#Sweep_Flag'>SVG sweep-flag</a> <a href='undocumented#SVG'>value</a>
-is opposite the integer value of <a href='#SkPath_arcTo_4_sweep'>sweep</a>; <a href='undocumented#Sweep_Flag'>SVG sweep-flag</a> <a href='undocumented#SVG'>uses</a> 1 <a href='undocumented#SVG'>for</a> <a href='undocumented#SVG'>clockwise</a>,
-while <a href='#SkPath_kCW_Direction'>kCW_Direction</a> <a href='#SkPath_kCW_Direction'>cast</a> <a href='#SkPath_kCW_Direction'>to</a> <a href='#SkPath_kCW_Direction'>int</a> <a href='#SkPath_kCW_Direction'>is</a> <a href='#SkPath_kCW_Direction'>zero</a>.
+<a href='#SkPath_arcTo'>arcTo</a>() appends up to four <a href='SkPath_Reference#Conic'>conic</a> <a href='undocumented#Curve'>curves</a>.
+<a href='#SkPath_arcTo'>arcTo</a>() implements the functionality of <a href='undocumented#SVG_Arc'>SVG arc</a>, although <a href='undocumented#Sweep_Flag'>SVG sweep-flag</a> value
+is opposite the integer value of <a href='#SkPath_arcTo_4_sweep'>sweep</a>; <a href='undocumented#Sweep_Flag'>SVG sweep-flag</a> uses 1 for clockwise,
+while <a href='#SkPath_kCW_Direction'>kCW_Direction</a> cast to int is zero.
### Parameters
@@ -3154,25 +3154,25 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-<a href='SkPath_Reference#SkPath'>SkPath</a>& <a href='#SkPath_arcTo'>arcTo</a>(<a href='#SkPath_arcTo'>const</a> <a href='SkPoint_Reference#SkPoint'>SkPoint</a> <a href='SkPoint_Reference#SkPoint'>r</a>, <a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>xAxisRotate</a>, <a href='#SkPath_ArcSize'>ArcSize</a> <a href='#SkPath_ArcSize'>largeArc</a>, <a href='#SkPath_Direction'>Direction</a> <a href='#SkPath_Direction'>sweep</a>,
- <a href='#SkPath_Direction'>const</a> <a href='SkPoint_Reference#SkPoint'>SkPoint</a> <a href='SkPoint_Reference#SkPoint'>xy</a>)
+<a href='SkPath_Reference#SkPath'>SkPath</a>& <a href='#SkPath_arcTo'>arcTo</a>(const <a href='SkPoint_Reference#SkPoint'>SkPoint</a> r, <a href='undocumented#SkScalar'>SkScalar</a> xAxisRotate, <a href='#SkPath_ArcSize'>ArcSize</a> largeArc, <a href='#SkPath_Direction'>Direction</a> sweep,
+ const <a href='SkPoint_Reference#SkPoint'>SkPoint</a> xy)
</pre>
-Appends <a href='undocumented#Arc'>arc</a> <a href='undocumented#Arc'>to</a> <a href='SkPath_Reference#SkPath'>SkPath</a>. <a href='undocumented#Arc'>Arc</a> <a href='undocumented#Arc'>is</a> <a href='undocumented#Arc'>implemented</a> <a href='undocumented#Arc'>by</a> <a href='undocumented#Arc'>one</a> <a href='undocumented#Arc'>or</a> <a href='undocumented#Arc'>more</a> <a href='SkPath_Reference#Conic'>conic</a> <a href='SkPath_Reference#Conic'>weighted</a> <a href='SkPath_Reference#Conic'>to</a> <a href='SkPath_Reference#Conic'>describe</a>
-part of <a href='undocumented#Oval'>oval</a> <a href='undocumented#Oval'>with</a> <a href='undocumented#Oval'>radii</a> (<a href='#SkPath_arcTo_5_r'>r</a>.<a href='#SkPoint_fX'>fX</a>, <a href='#SkPath_arcTo_5_r'>r</a>.<a href='#SkPoint_fY'>fY</a>) <a href='#SkPoint_fY'>rotated</a> <a href='#SkPoint_fY'>by</a> <a href='#SkPath_arcTo_5_xAxisRotate'>xAxisRotate</a> <a href='#SkPath_arcTo_5_xAxisRotate'>degrees</a>. <a href='undocumented#Arc'>Arc</a> <a href='undocumented#Curve'>curves</a>
-from last <a href='SkPath_Reference#SkPath'>SkPath</a> <a href='SkPoint_Reference#SkPoint'>SkPoint</a> <a href='SkPoint_Reference#SkPoint'>to</a> (<a href='#SkPath_arcTo_5_xy'>xy</a>.<a href='#SkPoint_fX'>fX</a>, <a href='#SkPath_arcTo_5_xy'>xy</a>.<a href='#SkPoint_fY'>fY</a>), <a href='#SkPoint_fY'>choosing</a> <a href='#SkPoint_fY'>one</a> <a href='#SkPoint_fY'>of</a> <a href='#SkPoint_fY'>four</a> <a href='#SkPoint_fY'>possible</a> <a href='#SkPoint_fY'>routes</a>:
+Appends <a href='undocumented#Arc'>arc</a> to <a href='SkPath_Reference#SkPath'>SkPath</a>. <a href='undocumented#Arc'>Arc</a> is implemented by one or more <a href='SkPath_Reference#Conic'>conic</a> weighted to describe
+part of <a href='undocumented#Oval'>oval</a> with radii (<a href='#SkPath_arcTo_5_r'>r</a>.<a href='#SkPoint_fX'>fX</a>, <a href='#SkPath_arcTo_5_r'>r</a>.<a href='#SkPoint_fY'>fY</a>) rotated by <a href='#SkPath_arcTo_5_xAxisRotate'>xAxisRotate</a> degrees. <a href='undocumented#Arc'>Arc</a> <a href='undocumented#Curve'>curves</a>
+from last <a href='SkPath_Reference#SkPath'>SkPath</a> <a href='SkPoint_Reference#SkPoint'>SkPoint</a> to (<a href='#SkPath_arcTo_5_xy'>xy</a>.<a href='#SkPoint_fX'>fX</a>, <a href='#SkPath_arcTo_5_xy'>xy</a>.<a href='#SkPoint_fY'>fY</a>), choosing one of four possible routes:
clockwise or counterclockwise,
and smaller or larger.
-<a href='undocumented#Arc'>Arc</a> <a href='#SkPath_arcTo_5_sweep'>sweep</a> <a href='#SkPath_arcTo_5_sweep'>is</a> <a href='#SkPath_arcTo_5_sweep'>always</a> <a href='#SkPath_arcTo_5_sweep'>less</a> <a href='#SkPath_arcTo_5_sweep'>than</a> 360 <a href='#SkPath_arcTo_5_sweep'>degrees</a>. <a href='#SkPath_arcTo'>arcTo</a>() <a href='#SkPath_arcTo'>appends</a> <a href='undocumented#Line'>line</a> <a href='undocumented#Line'>to</a> <a href='#SkPath_arcTo_5_xy'>xy</a> <a href='#SkPath_arcTo_5_xy'>if</a> <a href='#SkPath_arcTo_5_xy'>either</a>
-radii are zero, or if last <a href='SkPath_Reference#SkPath'>SkPath</a> <a href='SkPoint_Reference#SkPoint'>SkPoint</a> <a href='SkPoint_Reference#SkPoint'>equals</a> (<a href='#SkPath_arcTo_5_xy'>xy</a>.<a href='#SkPoint_fX'>fX</a>, <a href='#SkPath_arcTo_5_xy'>xy</a>.<a href='#SkPoint_fY'>fY</a>). <a href='#SkPath_arcTo'>arcTo</a>() <a href='#SkPath_arcTo'>scales</a> <a href='#SkPath_arcTo'>radii</a> <a href='#SkPath_arcTo_5_r'>r</a> <a href='#SkPath_arcTo_5_r'>to</a>
-fit last <a href='SkPath_Reference#SkPath'>SkPath</a> <a href='SkPoint_Reference#SkPoint'>SkPoint</a> <a href='SkPoint_Reference#SkPoint'>and</a> <a href='#SkPath_arcTo_5_xy'>xy</a> <a href='#SkPath_arcTo_5_xy'>if</a> <a href='#SkPath_arcTo_5_xy'>both</a> <a href='#SkPath_arcTo_5_xy'>are</a> <a href='#SkPath_arcTo_5_xy'>greater</a> <a href='#SkPath_arcTo_5_xy'>than</a> <a href='#SkPath_arcTo_5_xy'>zero</a> <a href='#SkPath_arcTo_5_xy'>but</a> <a href='#SkPath_arcTo_5_xy'>too</a> <a href='#SkPath_arcTo_5_xy'>small</a> <a href='#SkPath_arcTo_5_xy'>to</a> <a href='#SkPath_arcTo_5_xy'>describe</a>
+<a href='undocumented#Arc'>Arc</a> <a href='#SkPath_arcTo_5_sweep'>sweep</a> is always less than 360 degrees. <a href='#SkPath_arcTo'>arcTo</a>() appends <a href='undocumented#Line'>line</a> to <a href='#SkPath_arcTo_5_xy'>xy</a> if either
+radii are zero, or if last <a href='SkPath_Reference#SkPath'>SkPath</a> <a href='SkPoint_Reference#SkPoint'>SkPoint</a> equals (<a href='#SkPath_arcTo_5_xy'>xy</a>.<a href='#SkPoint_fX'>fX</a>, <a href='#SkPath_arcTo_5_xy'>xy</a>.<a href='#SkPoint_fY'>fY</a>). <a href='#SkPath_arcTo'>arcTo</a>() scales radii <a href='#SkPath_arcTo_5_r'>r</a> to
+fit last <a href='SkPath_Reference#SkPath'>SkPath</a> <a href='SkPoint_Reference#SkPoint'>SkPoint</a> and <a href='#SkPath_arcTo_5_xy'>xy</a> if both are greater than zero but too small to describe
an <a href='undocumented#Arc'>arc</a>.
-<a href='#SkPath_arcTo'>arcTo</a>() <a href='#SkPath_arcTo'>appends</a> <a href='#SkPath_arcTo'>up</a> <a href='#SkPath_arcTo'>to</a> <a href='#SkPath_arcTo'>four</a> <a href='SkPath_Reference#Conic'>conic</a> <a href='undocumented#Curve'>curves</a>.
-<a href='#SkPath_arcTo'>arcTo</a>() <a href='#SkPath_arcTo'>implements</a> <a href='#SkPath_arcTo'>the</a> <a href='#SkPath_arcTo'>functionality</a> <a href='#SkPath_arcTo'>of</a> <a href='undocumented#SVG_Arc'>SVG arc</a>, <a href='undocumented#SVG'>although</a> <a href='undocumented#Sweep_Flag'>SVG sweep-flag</a> <a href='undocumented#SVG'>value</a> <a href='undocumented#SVG'>is</a>
-opposite the integer value of <a href='#SkPath_arcTo_5_sweep'>sweep</a>; <a href='undocumented#Sweep_Flag'>SVG sweep-flag</a> <a href='undocumented#SVG'>uses</a> 1 <a href='undocumented#SVG'>for</a> <a href='undocumented#SVG'>clockwise</a>, <a href='undocumented#SVG'>while</a>
-<a href='#SkPath_kCW_Direction'>kCW_Direction</a> <a href='#SkPath_kCW_Direction'>cast</a> <a href='#SkPath_kCW_Direction'>to</a> <a href='#SkPath_kCW_Direction'>int</a> <a href='#SkPath_kCW_Direction'>is</a> <a href='#SkPath_kCW_Direction'>zero</a>.
+<a href='#SkPath_arcTo'>arcTo</a>() appends up to four <a href='SkPath_Reference#Conic'>conic</a> <a href='undocumented#Curve'>curves</a>.
+<a href='#SkPath_arcTo'>arcTo</a>() implements the functionality of <a href='undocumented#SVG_Arc'>SVG arc</a>, although <a href='undocumented#Sweep_Flag'>SVG sweep-flag</a> value is
+opposite the integer value of <a href='#SkPath_arcTo_5_sweep'>sweep</a>; <a href='undocumented#Sweep_Flag'>SVG sweep-flag</a> uses 1 for clockwise, while
+<a href='#SkPath_kCW_Direction'>kCW_Direction</a> cast to int is zero.
### Parameters
@@ -3210,26 +3210,26 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-<a href='SkPath_Reference#SkPath'>SkPath</a>& <a href='#SkPath_rArcTo'>rArcTo</a>(<a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>rx</a>, <a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>ry</a>, <a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>xAxisRotate</a>, <a href='#SkPath_ArcSize'>ArcSize</a> <a href='#SkPath_ArcSize'>largeArc</a>, <a href='#SkPath_Direction'>Direction</a> <a href='#SkPath_Direction'>sweep</a>,
- <a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>dx</a>, <a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>dy</a>)
+<a href='SkPath_Reference#SkPath'>SkPath</a>& <a href='#SkPath_rArcTo'>rArcTo</a>(<a href='undocumented#SkScalar'>SkScalar</a> rx, <a href='undocumented#SkScalar'>SkScalar</a> ry, <a href='undocumented#SkScalar'>SkScalar</a> xAxisRotate, <a href='#SkPath_ArcSize'>ArcSize</a> largeArc, <a href='#SkPath_Direction'>Direction</a> sweep,
+ <a href='undocumented#SkScalar'>SkScalar</a> dx, <a href='undocumented#SkScalar'>SkScalar</a> dy)
</pre>
-Appends <a href='undocumented#Arc'>Arc</a> <a href='undocumented#Arc'>to</a> <a href='SkPath_Reference#Path'>Path</a>, <a href='SkPath_Reference#Path'>relative</a> <a href='SkPath_Reference#Path'>to</a> <a href='SkPath_Reference#Path'>last</a> <a href='SkPath_Reference#Path'>Path</a> <a href='SkPoint_Reference#Point'>Point</a>. <a href='undocumented#Arc'>Arc</a> <a href='undocumented#Arc'>is</a> <a href='undocumented#Arc'>implemented</a> <a href='undocumented#Arc'>by</a> <a href='undocumented#Arc'>one</a> <a href='undocumented#Arc'>or</a>
-<a href='undocumented#Arc'>more</a> <a href='SkPath_Reference#Conic'>Conic</a>, <a href='SkPath_Reference#Conic'>weighted</a> <a href='SkPath_Reference#Conic'>to</a> <a href='SkPath_Reference#Conic'>describe</a> <a href='SkPath_Reference#Conic'>part</a> <a href='SkPath_Reference#Conic'>of</a> <a href='undocumented#Oval'>Oval</a> <a href='undocumented#Oval'>with</a> <a href='undocumented#Oval'>radii</a> (<a href='#SkPath_rArcTo_rx'>rx</a>, <a href='#SkPath_rArcTo_ry'>ry</a>) <a href='#SkPath_rArcTo_ry'>rotated</a> <a href='#SkPath_rArcTo_ry'>by</a>
-<a href='#SkPath_rArcTo_xAxisRotate'>xAxisRotate</a> <a href='#SkPath_rArcTo_xAxisRotate'>degrees</a>. <a href='undocumented#Arc'>Arc</a> <a href='undocumented#Curve'>curves</a> <a href='undocumented#Curve'>from</a> <a href='undocumented#Curve'>last</a> <a href='SkPath_Reference#Path'>Path</a> <a href='SkPoint_Reference#Point'>Point</a> <a href='SkPoint_Reference#Point'>to</a> <a href='SkPoint_Reference#Point'>relative</a> <a href='SkPoint_Reference#Point'>end</a> <a href='SkPoint_Reference#Point'>Point</a>
-(<a href='#SkPath_rArcTo_dx'>dx</a>, <a href='#SkPath_rArcTo_dy'>dy</a>), <a href='#SkPath_rArcTo_dy'>choosing</a> <a href='#SkPath_rArcTo_dy'>one</a> <a href='#SkPath_rArcTo_dy'>of</a> <a href='#SkPath_rArcTo_dy'>four</a> <a href='#SkPath_rArcTo_dy'>possible</a> <a href='#SkPath_rArcTo_dy'>routes</a>: <a href='#SkPath_rArcTo_dy'>clockwise</a> <a href='#SkPath_rArcTo_dy'>or</a>
-<a href='#SkPath_rArcTo_dy'>counterclockwise</a>, <a href='#SkPath_rArcTo_dy'>and</a> <a href='#SkPath_rArcTo_dy'>smaller</a> <a href='#SkPath_rArcTo_dy'>or</a> <a href='#SkPath_rArcTo_dy'>larger</a>. <a href='#SkPath_rArcTo_dy'>If</a> <a href='SkPath_Reference#Path'>Path</a> <a href='SkPath_Reference#Path'>is</a> <a href='SkPath_Reference#Path'>empty</a>, <a href='SkPath_Reference#Path'>the</a> <a href='SkPath_Reference#Path'>start</a> <a href='undocumented#Arc'>Arc</a> <a href='SkPoint_Reference#Point'>Point</a>
-<a href='SkPoint_Reference#Point'>is</a> (0, 0).
+Appends <a href='undocumented#Arc'>Arc</a> to <a href='SkPath_Reference#Path'>Path</a>, relative to last <a href='SkPath_Reference#Path'>Path</a> <a href='SkPoint_Reference#Point'>Point</a>. <a href='undocumented#Arc'>Arc</a> is implemented by one or
+more <a href='SkPath_Reference#Conic'>Conic</a>, weighted to describe part of <a href='undocumented#Oval'>Oval</a> with radii (<a href='#SkPath_rArcTo_rx'>rx</a>, <a href='#SkPath_rArcTo_ry'>ry</a>) rotated by
+<a href='#SkPath_rArcTo_xAxisRotate'>xAxisRotate</a> degrees. <a href='undocumented#Arc'>Arc</a> <a href='undocumented#Curve'>curves</a> from last <a href='SkPath_Reference#Path'>Path</a> <a href='SkPoint_Reference#Point'>Point</a> to relative end <a href='SkPoint_Reference#Point'>Point</a>
+(<a href='#SkPath_rArcTo_dx'>dx</a>, <a href='#SkPath_rArcTo_dy'>dy</a>), choosing one of four possible routes: clockwise or
+counterclockwise, and smaller or larger. If <a href='SkPath_Reference#Path'>Path</a> is empty, the start <a href='undocumented#Arc'>Arc</a> <a href='SkPoint_Reference#Point'>Point</a>
+is (0, 0).
-<a href='undocumented#Arc'>Arc</a> <a href='#SkPath_rArcTo_sweep'>sweep</a> <a href='#SkPath_rArcTo_sweep'>is</a> <a href='#SkPath_rArcTo_sweep'>always</a> <a href='#SkPath_rArcTo_sweep'>less</a> <a href='#SkPath_rArcTo_sweep'>than</a> 360 <a href='#SkPath_rArcTo_sweep'>degrees</a>. <a href='#SkPath_arcTo'>arcTo</a> <a href='#SkPath_arcTo'>appends</a> <a href='undocumented#Line'>Line</a> <a href='undocumented#Line'>to</a> <a href='undocumented#Line'>end</a> <a href='SkPoint_Reference#Point'>Point</a>
-<a href='SkPoint_Reference#Point'>if</a> <a href='SkPoint_Reference#Point'>either</a> <a href='SkPoint_Reference#Point'>radii</a> <a href='SkPoint_Reference#Point'>are</a> <a href='SkPoint_Reference#Point'>zero</a>, <a href='SkPoint_Reference#Point'>or</a> <a href='SkPoint_Reference#Point'>if</a> <a href='SkPoint_Reference#Point'>last</a> <a href='SkPath_Reference#Path'>Path</a> <a href='SkPoint_Reference#Point'>Point</a> <a href='SkPoint_Reference#Point'>equals</a> <a href='SkPoint_Reference#Point'>end</a> <a href='SkPoint_Reference#Point'>Point</a>.
-<a href='#SkPath_arcTo'>arcTo</a> <a href='#SkPath_arcTo'>scales</a> <a href='#SkPath_arcTo'>radii</a> (<a href='#SkPath_rArcTo_rx'>rx</a>, <a href='#SkPath_rArcTo_ry'>ry</a>) <a href='#SkPath_rArcTo_ry'>to</a> <a href='#SkPath_rArcTo_ry'>fit</a> <a href='#SkPath_rArcTo_ry'>last</a> <a href='SkPath_Reference#Path'>Path</a> <a href='SkPoint_Reference#Point'>Point</a> <a href='SkPoint_Reference#Point'>and</a> <a href='SkPoint_Reference#Point'>end</a> <a href='SkPoint_Reference#Point'>Point</a> <a href='SkPoint_Reference#Point'>if</a> <a href='SkPoint_Reference#Point'>both</a> <a href='SkPoint_Reference#Point'>are</a>
-<a href='SkPoint_Reference#Point'>greater</a> <a href='SkPoint_Reference#Point'>than</a> <a href='SkPoint_Reference#Point'>zero</a> <a href='SkPoint_Reference#Point'>but</a> <a href='SkPoint_Reference#Point'>too</a> <a href='SkPoint_Reference#Point'>small</a> <a href='SkPoint_Reference#Point'>to</a> <a href='SkPoint_Reference#Point'>describe</a> <a href='SkPoint_Reference#Point'>an</a> <a href='undocumented#Arc'>arc</a>.
+<a href='undocumented#Arc'>Arc</a> <a href='#SkPath_rArcTo_sweep'>sweep</a> is always less than 360 degrees. <a href='#SkPath_arcTo'>arcTo</a> appends <a href='undocumented#Line'>Line</a> to end <a href='SkPoint_Reference#Point'>Point</a>
+if either radii are zero, or if last <a href='SkPath_Reference#Path'>Path</a> <a href='SkPoint_Reference#Point'>Point</a> equals end <a href='SkPoint_Reference#Point'>Point</a>.
+<a href='#SkPath_arcTo'>arcTo</a> scales radii (<a href='#SkPath_rArcTo_rx'>rx</a>, <a href='#SkPath_rArcTo_ry'>ry</a>) to fit last <a href='SkPath_Reference#Path'>Path</a> <a href='SkPoint_Reference#Point'>Point</a> and end <a href='SkPoint_Reference#Point'>Point</a> if both are
+greater than zero but too small to describe an <a href='undocumented#Arc'>arc</a>.
-<a href='#SkPath_arcTo'>arcTo</a> <a href='#SkPath_arcTo'>appends</a> <a href='#SkPath_arcTo'>up</a> <a href='#SkPath_arcTo'>to</a> <a href='#SkPath_arcTo'>four</a> <a href='SkPath_Reference#Conic'>Conic</a> <a href='undocumented#Curve'>curves</a>.
-<a href='#SkPath_arcTo'>arcTo</a> <a href='#SkPath_arcTo'>implements</a> <a href='#SkPath_arcTo'>the</a> <a href='#SkPath_arcTo'>functionality</a> <a href='#SkPath_arcTo'>of</a> <a href='#SVG_Arc'>SVG_Arc</a>, <a href='#SVG_Arc'>although</a> <a href='undocumented#SVG'>SVG</a> "<a href='undocumented#SVG'>sweep-flag</a>" <a href='undocumented#SVG'>value</a> <a href='undocumented#SVG'>is</a>
-<a href='undocumented#SVG'>opposite</a> <a href='undocumented#SVG'>the</a> <a href='undocumented#SVG'>integer</a> <a href='undocumented#SVG'>value</a> <a href='undocumented#SVG'>of</a> <a href='#SkPath_rArcTo_sweep'>sweep</a>; <a href='undocumented#SVG'>SVG</a> "<a href='undocumented#SVG'>sweep-flag</a>" <a href='undocumented#SVG'>uses</a> 1 <a href='undocumented#SVG'>for</a> <a href='undocumented#SVG'>clockwise</a>, <a href='undocumented#SVG'>while</a>
-<a href='#SkPath_kCW_Direction'>kCW_Direction</a> <a href='#SkPath_kCW_Direction'>cast</a> <a href='#SkPath_kCW_Direction'>to</a> <a href='#SkPath_kCW_Direction'>int</a> <a href='#SkPath_kCW_Direction'>is</a> <a href='#SkPath_kCW_Direction'>zero</a>.
+<a href='#SkPath_arcTo'>arcTo</a> appends up to four <a href='SkPath_Reference#Conic'>Conic</a> <a href='undocumented#Curve'>curves</a>.
+<a href='#SkPath_arcTo'>arcTo</a> implements the functionality of <a href='#SVG_Arc'>SVG_Arc</a>, although <a href='undocumented#SVG'>SVG</a> "sweep-flag" value is
+opposite the integer value of <a href='#SkPath_rArcTo_sweep'>sweep</a>; <a href='undocumented#SVG'>SVG</a> "sweep-flag" uses 1 for clockwise, while
+<a href='#SkPath_kCW_Direction'>kCW_Direction</a> cast to int is zero.
### Parameters
@@ -3249,10 +3249,10 @@
<td>chooses clockwise or counterclockwise <a href='undocumented#Arc'>Arc</a></td>
</tr>
<tr> <td><a name='SkPath_rArcTo_dx'><code><strong>dx</strong></code></a></td>
- <td>x-axis offset end of <a href='undocumented#Arc'>Arc</a> <a href='undocumented#Arc'>from</a> <a href='undocumented#Arc'>last</a> <a href='SkPath_Reference#Path'>Path</a> <a href='SkPoint_Reference#Point'>Point</a></td>
+ <td>x-axis offset end of <a href='undocumented#Arc'>Arc</a> from last <a href='SkPath_Reference#Path'>Path</a> <a href='SkPoint_Reference#Point'>Point</a></td>
</tr>
<tr> <td><a name='SkPath_rArcTo_dy'><code><strong>dy</strong></code></a></td>
- <td>y-axis offset end of <a href='undocumented#Arc'>Arc</a> <a href='undocumented#Arc'>from</a> <a href='undocumented#Arc'>last</a> <a href='SkPath_Reference#Path'>Path</a> <a href='SkPoint_Reference#Point'>Point</a></td>
+ <td>y-axis offset end of <a href='undocumented#Arc'>Arc</a> from last <a href='SkPath_Reference#Path'>Path</a> <a href='SkPoint_Reference#Point'>Point</a></td>
</tr>
</table>
@@ -3276,13 +3276,13 @@
<a href='SkPath_Reference#SkPath'>SkPath</a>& <a href='#SkPath_close'>close()</a>
</pre>
-Appends <a href='#SkPath_kClose_Verb'>kClose_Verb</a> <a href='#SkPath_kClose_Verb'>to</a> <a href='SkPath_Reference#SkPath'>SkPath</a>. <a href='SkPath_Reference#SkPath'>A</a> <a href='SkPath_Reference#SkPath'>closed</a> <a href='SkPath_Overview#Contour'>contour</a> <a href='SkPath_Overview#Contour'>connects</a> <a href='SkPath_Overview#Contour'>the</a> <a href='SkPath_Overview#Contour'>first</a> <a href='SkPath_Overview#Contour'>and</a> <a href='SkPath_Overview#Contour'>last</a> <a href='SkPoint_Reference#SkPoint'>SkPoint</a>
-with <a href='undocumented#Line'>line</a>, <a href='undocumented#Line'>forming</a> <a href='undocumented#Line'>a</a> <a href='undocumented#Line'>continuous</a> <a href='undocumented#Line'>loop</a>. <a href='undocumented#Line'>Open</a> <a href='undocumented#Line'>and</a> <a href='undocumented#Line'>closed</a> <a href='SkPath_Overview#Contour'>contour</a> <a href='SkPath_Overview#Contour'>draw</a> <a href='SkPath_Overview#Contour'>the</a> <a href='SkPath_Overview#Contour'>same</a>
-with <a href='SkPaint_Reference#SkPaint'>SkPaint</a>::<a href='#SkPaint_kFill_Style'>kFill_Style</a>. <a href='#SkPaint_kFill_Style'>With</a> <a href='SkPaint_Reference#SkPaint'>SkPaint</a>::<a href='#SkPaint_kStroke_Style'>kStroke_Style</a>, <a href='#SkPaint_kStroke_Style'>open</a> <a href='SkPath_Overview#Contour'>contour</a> <a href='SkPath_Overview#Contour'>draws</a>
-<a href='SkPaint_Reference#SkPaint'>SkPaint</a>::<a href='#SkPaint_Cap'>Cap</a> <a href='#SkPaint_Cap'>at</a> <a href='SkPath_Overview#Contour'>contour</a> <a href='SkPath_Overview#Contour'>start</a> <a href='SkPath_Overview#Contour'>and</a> <a href='SkPath_Overview#Contour'>end</a>; <a href='SkPath_Overview#Contour'>closed</a> <a href='SkPath_Overview#Contour'>contour</a> <a href='SkPath_Overview#Contour'>draws</a>
-<a href='SkPaint_Reference#SkPaint'>SkPaint</a>::<a href='#SkPaint_Join'>Join</a> <a href='#SkPaint_Join'>at</a> <a href='SkPath_Overview#Contour'>contour</a> <a href='SkPath_Overview#Contour'>start</a> <a href='SkPath_Overview#Contour'>and</a> <a href='SkPath_Overview#Contour'>end</a>.
+Appends <a href='#SkPath_kClose_Verb'>kClose_Verb</a> to <a href='SkPath_Reference#SkPath'>SkPath</a>. A closed <a href='SkPath_Overview#Contour'>contour</a> connects the first and last <a href='SkPoint_Reference#SkPoint'>SkPoint</a>
+with <a href='undocumented#Line'>line</a>, forming a continuous loop. Open and closed <a href='SkPath_Overview#Contour'>contour</a> draw the same
+with <a href='SkPaint_Reference#SkPaint'>SkPaint</a>::<a href='#SkPaint_kFill_Style'>kFill_Style</a>. With <a href='SkPaint_Reference#SkPaint'>SkPaint</a>::<a href='#SkPaint_kStroke_Style'>kStroke_Style</a>, open <a href='SkPath_Overview#Contour'>contour</a> draws
+<a href='SkPaint_Reference#SkPaint'>SkPaint</a>::<a href='#SkPaint_Cap'>Cap</a> at <a href='SkPath_Overview#Contour'>contour</a> start and end; closed <a href='SkPath_Overview#Contour'>contour</a> draws
+<a href='SkPaint_Reference#SkPaint'>SkPaint</a>::<a href='#SkPaint_Join'>Join</a> at <a href='SkPath_Overview#Contour'>contour</a> start and end.
-<a href='#SkPath_close'>close()</a> <a href='#SkPath_close'>has</a> <a href='#SkPath_close'>no</a> <a href='#SkPath_close'>effect</a> <a href='#SkPath_close'>if</a> <a href='SkPath_Reference#SkPath'>SkPath</a> <a href='SkPath_Reference#SkPath'>is</a> <a href='SkPath_Reference#SkPath'>empty</a> <a href='SkPath_Reference#SkPath'>or</a> <a href='SkPath_Reference#SkPath'>last</a> <a href='SkPath_Reference#SkPath'>SkPath</a> <a href='SkPath_Reference#SkPath'>SkPath</a>::<a href='#SkPath_Verb'>Verb</a> <a href='#SkPath_Verb'>is</a> <a href='#SkPath_kClose_Verb'>kClose_Verb</a>.
+<a href='#SkPath_close'>close()</a> has no effect if <a href='SkPath_Reference#SkPath'>SkPath</a> is empty or last <a href='SkPath_Reference#SkPath'>SkPath</a> <a href='SkPath_Reference#SkPath'>SkPath</a>::<a href='#SkPath_Verb'>Verb</a> is <a href='#SkPath_kClose_Verb'>kClose_Verb</a>.
### Return Value
@@ -3299,11 +3299,11 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-static bool <a href='#SkPath_IsInverseFillType'>IsInverseFillType</a>(<a href='#SkPath_FillType'>FillType</a> <a href='#SkPath_FillType'>fill</a>)
+static bool <a href='#SkPath_IsInverseFillType'>IsInverseFillType</a>(<a href='#SkPath_FillType'>FillType</a> fill)
</pre>
-Returns true if <a href='#SkPath_IsInverseFillType_fill'>fill</a> <a href='#SkPath_IsInverseFillType_fill'>is</a> <a href='#SkPath_IsInverseFillType_fill'>inverted</a> <a href='#SkPath_IsInverseFillType_fill'>and</a> <a href='SkPath_Reference#Path'>Path</a> <a href='SkPath_Reference#Path'>with</a> <a href='#SkPath_IsInverseFillType_fill'>fill</a> <a href='#SkPath_IsInverseFillType_fill'>represents</a> <a href='#SkPath_IsInverseFillType_fill'>area</a> <a href='#SkPath_IsInverseFillType_fill'>outside</a>
-<a href='#SkPath_IsInverseFillType_fill'>of</a> <a href='#SkPath_IsInverseFillType_fill'>its</a> <a href='#SkPath_IsInverseFillType_fill'>geometric</a> <a href='#SkPath_IsInverseFillType_fill'>bounds</a>.
+Returns true if <a href='#SkPath_IsInverseFillType_fill'>fill</a> is inverted and <a href='SkPath_Reference#Path'>Path</a> with <a href='#SkPath_IsInverseFillType_fill'>fill</a> represents area outside
+of its geometric bounds.
| <a href='#SkPath_FillType'>FillType</a> | is inverse |
| --- | --- |
@@ -3323,7 +3323,7 @@
### Return Value
-true if <a href='SkPath_Reference#Path'>Path</a> <a href='SkPath_Reference#Path'>fills</a> <a href='SkPath_Reference#Path'>outside</a> <a href='SkPath_Reference#Path'>its</a> <a href='SkPath_Reference#Path'>bounds</a>
+true if <a href='SkPath_Reference#Path'>Path</a> fills outside its bounds
### Example
@@ -3349,10 +3349,10 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-static <a href='#SkPath_FillType'>FillType</a> <a href='#SkPath_ConvertToNonInverseFillType'>ConvertToNonInverseFillType</a>(<a href='#SkPath_FillType'>FillType</a> <a href='#SkPath_FillType'>fill</a>)
+static <a href='#SkPath_FillType'>FillType</a> <a href='#SkPath_ConvertToNonInverseFillType'>ConvertToNonInverseFillType</a>(<a href='#SkPath_FillType'>FillType</a> fill)
</pre>
-Returns equivalent <a href='#Path_Fill_Type'>Fill_Type</a> <a href='#Path_Fill_Type'>representing</a> <a href='SkPath_Reference#Path'>Path</a> <a href='#SkPath_ConvertToNonInverseFillType_fill'>fill</a> <a href='#SkPath_ConvertToNonInverseFillType_fill'>inside</a> <a href='#SkPath_ConvertToNonInverseFillType_fill'>its</a> <a href='#SkPath_ConvertToNonInverseFillType_fill'>bounds</a>.
+Returns equivalent <a href='#Path_Fill_Type'>Fill_Type</a> representing <a href='SkPath_Reference#Path'>Path</a> <a href='#SkPath_ConvertToNonInverseFillType_fill'>fill</a> inside its bounds.
| <a href='#SkPath_FillType'>FillType</a> | inside <a href='#SkPath_FillType'>FillType</a> |
| --- | --- |
@@ -3372,7 +3372,7 @@
### Return Value
-<a href='#SkPath_ConvertToNonInverseFillType_fill'>fill</a>, <a href='#SkPath_ConvertToNonInverseFillType_fill'>or</a> <a href='#SkPath_kWinding_FillType'>kWinding_FillType</a> <a href='#SkPath_kWinding_FillType'>or</a> <a href='#SkPath_kEvenOdd_FillType'>kEvenOdd_FillType</a> <a href='#SkPath_kEvenOdd_FillType'>if</a> <a href='#SkPath_ConvertToNonInverseFillType_fill'>fill</a> <a href='#SkPath_ConvertToNonInverseFillType_fill'>is</a> <a href='#SkPath_ConvertToNonInverseFillType_fill'>inverted</a>
+<a href='#SkPath_ConvertToNonInverseFillType_fill'>fill</a>, or <a href='#SkPath_kWinding_FillType'>kWinding_FillType</a> or <a href='#SkPath_kEvenOdd_FillType'>kEvenOdd_FillType</a> if <a href='#SkPath_ConvertToNonInverseFillType_fill'>fill</a> is inverted
### Example
@@ -3398,59 +3398,59 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-static int <a href='#SkPath_ConvertConicToQuads'>ConvertConicToQuads</a>(<a href='#SkPath_ConvertConicToQuads'>const</a> <a href='SkPoint_Reference#SkPoint'>SkPoint</a>& <a href='SkPoint_Reference#SkPoint'>p0</a>, <a href='SkPoint_Reference#SkPoint'>const</a> <a href='SkPoint_Reference#SkPoint'>SkPoint</a>& <a href='SkPoint_Reference#SkPoint'>p1</a>, <a href='SkPoint_Reference#SkPoint'>const</a> <a href='SkPoint_Reference#SkPoint'>SkPoint</a>& <a href='SkPoint_Reference#SkPoint'>p2</a>, <a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>w</a>,
- <a href='SkPoint_Reference#SkPoint'>SkPoint</a> <a href='SkPoint_Reference#SkPoint'>pts</a>[], <a href='SkPoint_Reference#SkPoint'>int</a> <a href='SkPoint_Reference#SkPoint'>pow2</a>)
+static int <a href='#SkPath_ConvertConicToQuads'>ConvertConicToQuads</a>(const <a href='SkPoint_Reference#SkPoint'>SkPoint</a>& p0, const <a href='SkPoint_Reference#SkPoint'>SkPoint</a>& p1, const <a href='SkPoint_Reference#SkPoint'>SkPoint</a>& p2, <a href='undocumented#SkScalar'>SkScalar</a> w,
+ <a href='SkPoint_Reference#SkPoint'>SkPoint</a> pts[], int pow2)
</pre>
-Approximates <a href='SkPath_Reference#Conic'>Conic</a> <a href='SkPath_Reference#Conic'>with</a> <a href='SkPath_Reference#Quad'>Quad</a> <a href='SkPath_Reference#Quad'>array</a>. <a href='SkPath_Reference#Conic'>Conic</a> <a href='SkPath_Reference#Conic'>is</a> <a href='SkPath_Reference#Conic'>constructed</a> <a href='SkPath_Reference#Conic'>from</a> <a href='SkPath_Reference#Conic'>start</a> <a href='SkPoint_Reference#Point'>Point</a> <a href='#SkPath_ConvertConicToQuads_p0'>p0</a>,
-<a href='#SkPath_ConvertConicToQuads_p0'>control</a> <a href='SkPoint_Reference#Point'>Point</a> <a href='#SkPath_ConvertConicToQuads_p1'>p1</a>, <a href='#SkPath_ConvertConicToQuads_p1'>end</a> <a href='SkPoint_Reference#Point'>Point</a> <a href='#SkPath_ConvertConicToQuads_p2'>p2</a>, <a href='#SkPath_ConvertConicToQuads_p2'>and</a> <a href='#SkPath_ConvertConicToQuads_p2'>weight</a> <a href='#SkPath_ConvertConicToQuads_w'>w</a>.
-<a href='SkPath_Reference#Quad'>Quad</a> <a href='SkPath_Reference#Quad'>array</a> <a href='SkPath_Reference#Quad'>is</a> <a href='SkPath_Reference#Quad'>stored</a> <a href='SkPath_Reference#Quad'>in</a> <a href='#SkPath_ConvertConicToQuads_pts'>pts</a>; <a href='#SkPath_ConvertConicToQuads_pts'>this</a> <a href='#SkPath_ConvertConicToQuads_pts'>storage</a> <a href='#SkPath_ConvertConicToQuads_pts'>is</a> <a href='#SkPath_ConvertConicToQuads_pts'>supplied</a> <a href='#SkPath_ConvertConicToQuads_pts'>by</a> <a href='#SkPath_ConvertConicToQuads_pts'>caller</a>.
-<a href='#SkPath_ConvertConicToQuads_pts'>Maximum</a> <a href='SkPath_Reference#Quad'>Quad</a> <a href='SkPath_Reference#Quad'>count</a> <a href='SkPath_Reference#Quad'>is</a> 2 <a href='SkPath_Reference#Quad'>to</a> <a href='SkPath_Reference#Quad'>the</a> <a href='#SkPath_ConvertConicToQuads_pow2'>pow2</a>.
-<a href='#SkPath_ConvertConicToQuads_pow2'>Every</a> <a href='#SkPath_ConvertConicToQuads_pow2'>third</a> <a href='SkPoint_Reference#Point'>point</a> <a href='SkPoint_Reference#Point'>in</a> <a href='SkPoint_Reference#Point'>array</a> <a href='SkPoint_Reference#Point'>shares</a> <a href='SkPoint_Reference#Point'>last</a> <a href='SkPoint_Reference#Point'>Point</a> <a href='SkPoint_Reference#Point'>of</a> <a href='SkPoint_Reference#Point'>previous</a> <a href='SkPath_Reference#Quad'>Quad</a> <a href='SkPath_Reference#Quad'>and</a> <a href='SkPath_Reference#Quad'>first</a> <a href='SkPoint_Reference#Point'>Point</a> <a href='SkPoint_Reference#Point'>of</a>
-<a href='SkPoint_Reference#Point'>next</a> <a href='SkPath_Reference#Quad'>Quad</a>. <a href='SkPath_Reference#Quad'>Maximum</a> <a href='#SkPath_ConvertConicToQuads_pts'>pts</a> <a href='#SkPath_ConvertConicToQuads_pts'>storage</a> <a href='undocumented#Size'>size</a> <a href='undocumented#Size'>is</a> <a href='undocumented#Size'>given</a> <a href='undocumented#Size'>by</a>:
+Approximates <a href='SkPath_Reference#Conic'>Conic</a> with <a href='SkPath_Reference#Quad'>Quad</a> array. <a href='SkPath_Reference#Conic'>Conic</a> is constructed from start <a href='SkPoint_Reference#Point'>Point</a> <a href='#SkPath_ConvertConicToQuads_p0'>p0</a>,
+control <a href='SkPoint_Reference#Point'>Point</a> <a href='#SkPath_ConvertConicToQuads_p1'>p1</a>, end <a href='SkPoint_Reference#Point'>Point</a> <a href='#SkPath_ConvertConicToQuads_p2'>p2</a>, and weight <a href='#SkPath_ConvertConicToQuads_w'>w</a>.
+<a href='SkPath_Reference#Quad'>Quad</a> array is stored in <a href='#SkPath_ConvertConicToQuads_pts'>pts</a>; this storage is supplied by caller.
+Maximum <a href='SkPath_Reference#Quad'>Quad</a> count is 2 to the <a href='#SkPath_ConvertConicToQuads_pow2'>pow2</a>.
+Every third <a href='SkPoint_Reference#Point'>point</a> in array shares last <a href='SkPoint_Reference#Point'>Point</a> of previous <a href='SkPath_Reference#Quad'>Quad</a> and first <a href='SkPoint_Reference#Point'>Point</a> of
+next <a href='SkPath_Reference#Quad'>Quad</a>. Maximum <a href='#SkPath_ConvertConicToQuads_pts'>pts</a> storage <a href='undocumented#Size'>size</a> is given by:
<code>(1 + 2 * (1 << <a href='#SkPath_ConvertConicToQuads_pow2'>pow2</a>)) * <a href='undocumented#sizeof()'>sizeof</a>(<a href='SkPoint_Reference#SkPoint'>SkPoint</a>)</code>.
-Returns <a href='SkPath_Reference#Quad'>Quad</a> <a href='SkPath_Reference#Quad'>count</a> <a href='SkPath_Reference#Quad'>used</a> <a href='SkPath_Reference#Quad'>the</a> <a href='SkPath_Reference#Quad'>approximation</a>, <a href='SkPath_Reference#Quad'>which</a> <a href='SkPath_Reference#Quad'>may</a> <a href='SkPath_Reference#Quad'>be</a> <a href='SkPath_Reference#Quad'>smaller</a>
-<a href='SkPath_Reference#Quad'>than</a> <a href='SkPath_Reference#Quad'>the</a> <a href='SkPath_Reference#Quad'>number</a> <a href='SkPath_Reference#Quad'>requested</a>.
+Returns <a href='SkPath_Reference#Quad'>Quad</a> count used the approximation, which may be smaller
+than the number requested.
-<a href='#Path_Conic_Weight'>Conic_Weight</a> <a href='#Path_Conic_Weight'>determines</a> <a href='#Path_Conic_Weight'>the</a> <a href='#Path_Conic_Weight'>amount</a> <a href='#Path_Conic_Weight'>of</a> <a href='#Path_Conic_Weight'>influence</a> <a href='SkPath_Reference#Conic'>Conic</a> <a href='SkPath_Reference#Conic'>control</a> <a href='SkPoint_Reference#Point'>point</a> <a href='SkPoint_Reference#Point'>has</a> <a href='SkPoint_Reference#Point'>on</a> <a href='SkPoint_Reference#Point'>the</a> <a href='undocumented#Curve'>curve</a>.
-<a href='#SkPath_ConvertConicToQuads_w'>w</a> <a href='#SkPath_ConvertConicToQuads_w'>less</a> <a href='#SkPath_ConvertConicToQuads_w'>than</a> <a href='#SkPath_ConvertConicToQuads_w'>one</a> <a href='#SkPath_ConvertConicToQuads_w'>represents</a> <a href='#SkPath_ConvertConicToQuads_w'>an</a> <a href='#SkPath_ConvertConicToQuads_w'>elliptical</a> <a href='#SkPath_ConvertConicToQuads_w'>section</a>. <a href='#SkPath_ConvertConicToQuads_w'>w</a> <a href='#SkPath_ConvertConicToQuads_w'>greater</a> <a href='#SkPath_ConvertConicToQuads_w'>than</a> <a href='#SkPath_ConvertConicToQuads_w'>one</a> <a href='#SkPath_ConvertConicToQuads_w'>represents</a>
-<a href='#SkPath_ConvertConicToQuads_w'>a</a> <a href='#SkPath_ConvertConicToQuads_w'>hyperbolic</a> <a href='#SkPath_ConvertConicToQuads_w'>section</a>. <a href='#SkPath_ConvertConicToQuads_w'>w</a> <a href='#SkPath_ConvertConicToQuads_w'>equal</a> <a href='#SkPath_ConvertConicToQuads_w'>to</a> <a href='#SkPath_ConvertConicToQuads_w'>one</a> <a href='#SkPath_ConvertConicToQuads_w'>represents</a> <a href='#SkPath_ConvertConicToQuads_w'>a</a> <a href='#SkPath_ConvertConicToQuads_w'>parabolic</a> <a href='#SkPath_ConvertConicToQuads_w'>section</a>.
+<a href='#Path_Conic_Weight'>Conic_Weight</a> determines the amount of influence <a href='SkPath_Reference#Conic'>Conic</a> control <a href='SkPoint_Reference#Point'>point</a> has on the <a href='undocumented#Curve'>curve</a>.
+<a href='#SkPath_ConvertConicToQuads_w'>w</a> less than one represents an elliptical section. <a href='#SkPath_ConvertConicToQuads_w'>w</a> greater than one represents
+a hyperbolic section. <a href='#SkPath_ConvertConicToQuads_w'>w</a> equal to one represents a parabolic section.
-<a href='#SkPath_ConvertConicToQuads_w'>Two</a> <a href='SkPath_Reference#Quad'>Quad</a> <a href='undocumented#Curve'>curves</a> <a href='undocumented#Curve'>are</a> <a href='undocumented#Curve'>sufficient</a> <a href='undocumented#Curve'>to</a> <a href='undocumented#Curve'>approximate</a> <a href='undocumented#Curve'>an</a> <a href='undocumented#Curve'>elliptical</a> <a href='SkPath_Reference#Conic'>Conic</a> <a href='SkPath_Reference#Conic'>with</a> <a href='SkPath_Reference#Conic'>a</a> <a href='SkPath_Reference#Conic'>sweep</a>
-<a href='SkPath_Reference#Conic'>of</a> <a href='SkPath_Reference#Conic'>up</a> <a href='SkPath_Reference#Conic'>to</a> 90 <a href='SkPath_Reference#Conic'>degrees</a>; <a href='SkPath_Reference#Conic'>in</a> <a href='SkPath_Reference#Conic'>this</a> <a href='SkPath_Reference#Conic'>case</a>, <a href='SkPath_Reference#Conic'>set</a> <a href='#SkPath_ConvertConicToQuads_pow2'>pow2</a> <a href='#SkPath_ConvertConicToQuads_pow2'>to</a> <a href='#SkPath_ConvertConicToQuads_pow2'>one</a>.
+Two <a href='SkPath_Reference#Quad'>Quad</a> <a href='undocumented#Curve'>curves</a> are sufficient to approximate an elliptical <a href='SkPath_Reference#Conic'>Conic</a> with a sweep
+of up to 90 degrees; in this case, set <a href='#SkPath_ConvertConicToQuads_pow2'>pow2</a> to one.
### Parameters
<table> <tr> <td><a name='SkPath_ConvertConicToQuads_p0'><code><strong>p0</strong></code></a></td>
- <td><a href='SkPath_Reference#Conic'>Conic</a> <a href='SkPath_Reference#Conic'>start</a> <a href='SkPoint_Reference#Point'>Point</a></td>
+ <td><a href='SkPath_Reference#Conic'>Conic</a> start <a href='SkPoint_Reference#Point'>Point</a></td>
</tr>
<tr> <td><a name='SkPath_ConvertConicToQuads_p1'><code><strong>p1</strong></code></a></td>
- <td><a href='SkPath_Reference#Conic'>Conic</a> <a href='SkPath_Reference#Conic'>control</a> <a href='SkPoint_Reference#Point'>Point</a></td>
+ <td><a href='SkPath_Reference#Conic'>Conic</a> control <a href='SkPoint_Reference#Point'>Point</a></td>
</tr>
<tr> <td><a name='SkPath_ConvertConicToQuads_p2'><code><strong>p2</strong></code></a></td>
- <td><a href='SkPath_Reference#Conic'>Conic</a> <a href='SkPath_Reference#Conic'>end</a> <a href='SkPoint_Reference#Point'>Point</a></td>
+ <td><a href='SkPath_Reference#Conic'>Conic</a> end <a href='SkPoint_Reference#Point'>Point</a></td>
</tr>
<tr> <td><a name='SkPath_ConvertConicToQuads_w'><code><strong>w</strong></code></a></td>
- <td><a href='SkPath_Reference#Conic'>Conic</a> <a href='SkPath_Reference#Conic'>weight</a></td>
+ <td><a href='SkPath_Reference#Conic'>Conic</a> weight</td>
</tr>
<tr> <td><a name='SkPath_ConvertConicToQuads_pts'><code><strong>pts</strong></code></a></td>
- <td>storage for <a href='SkPath_Reference#Quad'>Quad</a> <a href='SkPath_Reference#Quad'>array</a></td>
+ <td>storage for <a href='SkPath_Reference#Quad'>Quad</a> array</td>
</tr>
<tr> <td><a name='SkPath_ConvertConicToQuads_pow2'><code><strong>pow2</strong></code></a></td>
- <td><a href='SkPath_Reference#Quad'>Quad</a> <a href='SkPath_Reference#Quad'>count</a>, <a href='SkPath_Reference#Quad'>as</a> <a href='SkPath_Reference#Quad'>power</a> <a href='SkPath_Reference#Quad'>of</a> <a href='SkPath_Reference#Quad'>two</a>, <a href='SkPath_Reference#Quad'>normally</a> 0 <a href='SkPath_Reference#Quad'>to</a> 5 (1 <a href='SkPath_Reference#Quad'>to</a> 32 <a href='SkPath_Reference#Quad'>Quad</a> <a href='undocumented#Curve'>curves</a>)</td>
+ <td><a href='SkPath_Reference#Quad'>Quad</a> count, as power of two, normally 0 to 5 (1 to 32 <a href='SkPath_Reference#Quad'>Quad</a> <a href='undocumented#Curve'>curves</a>)</td>
</tr>
</table>
### Return Value
-number of <a href='SkPath_Reference#Quad'>Quad</a> <a href='undocumented#Curve'>curves</a> <a href='undocumented#Curve'>written</a> <a href='undocumented#Curve'>to</a> <a href='#SkPath_ConvertConicToQuads_pts'>pts</a>
+number of <a href='SkPath_Reference#Quad'>Quad</a> <a href='undocumented#Curve'>curves</a> written to <a href='#SkPath_ConvertConicToQuads_pts'>pts</a>
### Example
-<div><fiddle-embed name="3ba94448a4ba48f926e643baeb5b1016"><div>A pair of <a href='SkPath_Reference#Quad'>Quad</a> <a href='undocumented#Curve'>curves</a> <a href='undocumented#Curve'>are</a> <a href='undocumented#Curve'>drawn</a> <a href='undocumented#Curve'>in</a> <a href='undocumented#Curve'>red</a> <a href='undocumented#Curve'>on</a> <a href='undocumented#Curve'>top</a> <a href='undocumented#Curve'>of</a> <a href='undocumented#Curve'>the</a> <a href='undocumented#Curve'>elliptical</a> <a href='SkPath_Reference#Conic'>Conic</a> <a href='undocumented#Curve'>curve</a> <a href='undocumented#Curve'>in</a> <a href='undocumented#Curve'>black</a>.
-<a href='undocumented#Curve'>The</a> <a href='undocumented#Curve'>middle</a> <a href='undocumented#Curve'>curve</a> <a href='undocumented#Curve'>is</a> <a href='undocumented#Curve'>nearly</a> <a href='undocumented#Curve'>circular</a>. <a href='undocumented#Curve'>The</a> <a href='undocumented#Curve'>top-right</a> <a href='undocumented#Curve'>curve</a> <a href='undocumented#Curve'>is</a> <a href='undocumented#Curve'>parabolic</a>, <a href='undocumented#Curve'>which</a> <a href='undocumented#Curve'>can</a>
-<a href='undocumented#Curve'>be</a> <a href='undocumented#Curve'>drawn</a> <a href='undocumented#Curve'>exactly</a> <a href='undocumented#Curve'>with</a> <a href='undocumented#Curve'>a</a> <a href='undocumented#Curve'>single</a> <a href='SkPath_Reference#Quad'>Quad</a>.
+<div><fiddle-embed name="3ba94448a4ba48f926e643baeb5b1016"><div>A pair of <a href='SkPath_Reference#Quad'>Quad</a> <a href='undocumented#Curve'>curves</a> are drawn in red on top of the elliptical <a href='SkPath_Reference#Conic'>Conic</a> <a href='undocumented#Curve'>curve</a> in black.
+The middle <a href='undocumented#Curve'>curve</a> is nearly circular. The top-right <a href='undocumented#Curve'>curve</a> is parabolic, which can
+be drawn exactly with a single <a href='SkPath_Reference#Quad'>Quad</a>.
</div></fiddle-embed></div>
### See Also
@@ -3462,38 +3462,38 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-bool <a href='#SkPath_isRect'>isRect</a>(<a href='SkRect_Reference#SkRect'>SkRect</a>* <a href='SkRect_Reference#Rect'>rect</a>, <a href='SkRect_Reference#Rect'>bool</a>* <a href='SkRect_Reference#Rect'>isClosed</a> = <a href='SkRect_Reference#Rect'>nullptr</a>, <a href='#SkPath_Direction'>Direction</a>* <a href='#SkPath_Direction'>direction</a> = <a href='#SkPath_Direction'>nullptr</a>) <a href='#SkPath_Direction'>const</a>
+bool <a href='#SkPath_isRect'>isRect</a>(<a href='SkRect_Reference#SkRect'>SkRect</a>* <a href='SkRect_Reference#Rect'>rect</a>, bool* isClosed = nullptr, <a href='#SkPath_Direction'>Direction</a>* direction = nullptr) const
</pre>
-Returns true if <a href='SkPath_Reference#SkPath'>SkPath</a> <a href='SkPath_Reference#SkPath'>is</a> <a href='SkPath_Reference#SkPath'>equivalent</a> <a href='SkPath_Reference#SkPath'>to</a> <a href='SkRect_Reference#SkRect'>SkRect</a> <a href='SkRect_Reference#SkRect'>when</a> <a href='SkRect_Reference#SkRect'>filled</a>.
-If false: <a href='#SkPath_isRect_rect'>rect</a>, <a href='#SkPath_isRect_isClosed'>isClosed</a>, <a href='#SkPath_isRect_isClosed'>and</a> <a href='#SkPath_isRect_direction'>direction</a> <a href='#SkPath_isRect_direction'>are</a> <a href='#SkPath_isRect_direction'>unchanged</a>.
-If true: <a href='#SkPath_isRect_rect'>rect</a>, <a href='#SkPath_isRect_isClosed'>isClosed</a>, <a href='#SkPath_isRect_isClosed'>and</a> <a href='#SkPath_isRect_direction'>direction</a> <a href='#SkPath_isRect_direction'>are</a> <a href='#SkPath_isRect_direction'>written</a> <a href='#SkPath_isRect_direction'>to</a> <a href='#SkPath_isRect_direction'>if</a> <a href='#SkPath_isRect_direction'>not</a> <a href='#SkPath_isRect_direction'>nullptr</a>.
+Returns true if <a href='SkPath_Reference#SkPath'>SkPath</a> is equivalent to <a href='SkRect_Reference#SkRect'>SkRect</a> when filled.
+If false: <a href='#SkPath_isRect_rect'>rect</a>, <a href='#SkPath_isRect_isClosed'>isClosed</a>, and <a href='#SkPath_isRect_direction'>direction</a> are unchanged.
+If true: <a href='#SkPath_isRect_rect'>rect</a>, <a href='#SkPath_isRect_isClosed'>isClosed</a>, and <a href='#SkPath_isRect_direction'>direction</a> are written to if not nullptr.
-<a href='#SkPath_isRect_rect'>rect</a> <a href='#SkPath_isRect_rect'>may</a> <a href='#SkPath_isRect_rect'>be</a> <a href='#SkPath_isRect_rect'>smaller</a> <a href='#SkPath_isRect_rect'>than</a> <a href='#SkPath_isRect_rect'>the</a> <a href='SkPath_Reference#SkPath'>SkPath</a> <a href='SkPath_Reference#SkPath'>bounds</a>. <a href='SkPath_Reference#SkPath'>SkPath</a> <a href='SkPath_Reference#SkPath'>bounds</a> <a href='SkPath_Reference#SkPath'>may</a> <a href='SkPath_Reference#SkPath'>include</a> <a href='#SkPath_kMove_Verb'>kMove_Verb</a> <a href='SkPoint_Reference#Point'>points</a>
+<a href='#SkPath_isRect_rect'>rect</a> may be smaller than the <a href='SkPath_Reference#SkPath'>SkPath</a> bounds. <a href='SkPath_Reference#SkPath'>SkPath</a> bounds may include <a href='#SkPath_kMove_Verb'>kMove_Verb</a> <a href='SkPoint_Reference#Point'>points</a>
that do not alter the area drawn by the returned <a href='#SkPath_isRect_rect'>rect</a>.
### Parameters
<table> <tr> <td><a name='SkPath_isRect_rect'><code><strong>rect</strong></code></a></td>
- <td>storage for bounds of <a href='SkRect_Reference#SkRect'>SkRect</a>; <a href='SkRect_Reference#SkRect'>may</a> <a href='SkRect_Reference#SkRect'>be</a> <a href='SkRect_Reference#SkRect'>nullptr</a></td>
+ <td>storage for bounds of <a href='SkRect_Reference#SkRect'>SkRect</a>; may be nullptr</td>
</tr>
<tr> <td><a name='SkPath_isRect_isClosed'><code><strong>isClosed</strong></code></a></td>
- <td>storage set to true if <a href='SkPath_Reference#SkPath'>SkPath</a> <a href='SkPath_Reference#SkPath'>is</a> <a href='SkPath_Reference#SkPath'>closed</a>; <a href='SkPath_Reference#SkPath'>may</a> <a href='SkPath_Reference#SkPath'>be</a> <a href='SkPath_Reference#SkPath'>nullptr</a></td>
+ <td>storage set to true if <a href='SkPath_Reference#SkPath'>SkPath</a> is closed; may be nullptr</td>
</tr>
<tr> <td><a name='SkPath_isRect_direction'><code><strong>direction</strong></code></a></td>
- <td>storage set to <a href='SkRect_Reference#SkRect'>SkRect</a> <a href='#SkPath_isRect_direction'>direction</a>; <a href='#SkPath_isRect_direction'>may</a> <a href='#SkPath_isRect_direction'>be</a> <a href='#SkPath_isRect_direction'>nullptr</a></td>
+ <td>storage set to <a href='SkRect_Reference#SkRect'>SkRect</a> <a href='#SkPath_isRect_direction'>direction</a>; may be nullptr</td>
</tr>
</table>
### Return Value
-true if <a href='SkPath_Reference#SkPath'>SkPath</a> <a href='SkPath_Reference#SkPath'>contains</a> <a href='SkRect_Reference#SkRect'>SkRect</a>
+true if <a href='SkPath_Reference#SkPath'>SkPath</a> contains <a href='SkRect_Reference#SkRect'>SkRect</a>
### Example
-<div><fiddle-embed name="81a2aac1b8f0ff3d4c8d35ccb9149b16"><div>After <a href='#SkPath_addRect'>addRect</a>, <a href='#SkPath_isRect'>isRect</a> <a href='#SkPath_isRect'>returns</a> <a href='#SkPath_isRect'>true</a>. <a href='#SkPath_isRect'>Following</a> <a href='#SkPath_moveTo'>moveTo</a> <a href='#SkPath_moveTo'>permits</a> <a href='#SkPath_isRect'>isRect</a> <a href='#SkPath_isRect'>to</a> <a href='#SkPath_isRect'>return</a> <a href='#SkPath_isRect'>true</a>, <a href='#SkPath_isRect'>but</a>
-<a href='#SkPath_isRect'>following</a> <a href='#SkPath_lineTo'>lineTo</a> <a href='#SkPath_lineTo'>does</a> <a href='#SkPath_lineTo'>not</a>. <a href='#SkPath_addPoly'>addPoly</a> <a href='#SkPath_addPoly'>returns</a> <a href='#SkPath_addPoly'>true</a> <a href='#SkPath_addPoly'>even</a> <a href='#SkPath_addPoly'>though</a> <a href='#SkPath_isRect_rect'>rect</a> <a href='#SkPath_isRect_rect'>is</a> <a href='#SkPath_isRect_rect'>not</a> <a href='#SkPath_isRect_rect'>closed</a>, <a href='#SkPath_isRect_rect'>and</a> <a href='#SkPath_isRect_rect'>one</a>
-<a href='#SkPath_isRect_rect'>side</a> <a href='#SkPath_isRect_rect'>of</a> <a href='#SkPath_isRect_rect'>rect</a> <a href='#SkPath_isRect_rect'>is</a> <a href='#SkPath_isRect_rect'>made</a> <a href='#SkPath_isRect_rect'>up</a> <a href='#SkPath_isRect_rect'>of</a> <a href='#SkPath_isRect_rect'>consecutive</a> <a href='undocumented#Line'>line</a> <a href='undocumented#Line'>segments</a>.
+<div><fiddle-embed name="81a2aac1b8f0ff3d4c8d35ccb9149b16"><div>After <a href='#SkPath_addRect'>addRect</a>, <a href='#SkPath_isRect'>isRect</a> returns true. Following <a href='#SkPath_moveTo'>moveTo</a> permits <a href='#SkPath_isRect'>isRect</a> to return true, but
+following <a href='#SkPath_lineTo'>lineTo</a> does not. <a href='#SkPath_addPoly'>addPoly</a> returns true even though <a href='#SkPath_isRect_rect'>rect</a> is not closed, and one
+side of <a href='#SkPath_isRect_rect'>rect</a> is made up of consecutive <a href='undocumented#Line'>line</a> segments.
</div>
#### Example Output
@@ -3517,29 +3517,29 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-bool <a href='#SkPath_isNestedFillRects'>isNestedFillRects</a>(<a href='SkRect_Reference#SkRect'>SkRect</a> <a href='SkRect_Reference#Rect'>rect</a>[2], <a href='#SkPath_Direction'>Direction</a> <a href='#SkPath_Direction'>dirs</a>[2] = <a href='#SkPath_Direction'>nullptr</a>) <a href='#SkPath_Direction'>const</a>
+bool <a href='#SkPath_isNestedFillRects'>isNestedFillRects</a>(<a href='SkRect_Reference#SkRect'>SkRect</a> <a href='SkRect_Reference#Rect'>rect</a>[2], <a href='#SkPath_Direction'>Direction</a> dirs[2] = nullptr) const
</pre>
-Returns true if <a href='SkPath_Reference#SkPath'>SkPath</a> <a href='SkPath_Reference#SkPath'>is</a> <a href='SkPath_Reference#SkPath'>equivalent</a> <a href='SkPath_Reference#SkPath'>to</a> <a href='SkPath_Reference#SkPath'>nested</a> <a href='SkRect_Reference#SkRect'>SkRect</a> <a href='SkRect_Reference#SkRect'>pair</a> <a href='SkRect_Reference#SkRect'>when</a> <a href='SkRect_Reference#SkRect'>filled</a>.
-If false, <a href='#SkPath_isNestedFillRects_rect'>rect</a> <a href='#SkPath_isNestedFillRects_rect'>and</a> <a href='#SkPath_isNestedFillRects_dirs'>dirs</a> <a href='#SkPath_isNestedFillRects_dirs'>are</a> <a href='#SkPath_isNestedFillRects_dirs'>unchanged</a>.
-If true, <a href='#SkPath_isNestedFillRects_rect'>rect</a> <a href='#SkPath_isNestedFillRects_rect'>and</a> <a href='#SkPath_isNestedFillRects_dirs'>dirs</a> <a href='#SkPath_isNestedFillRects_dirs'>are</a> <a href='#SkPath_isNestedFillRects_dirs'>written</a> <a href='#SkPath_isNestedFillRects_dirs'>to</a> <a href='#SkPath_isNestedFillRects_dirs'>if</a> <a href='#SkPath_isNestedFillRects_dirs'>not</a> <a href='#SkPath_isNestedFillRects_dirs'>nullptr</a>:
-setting <a href='#SkPath_isNestedFillRects_rect'>rect</a>[0] <a href='#SkPath_isNestedFillRects_rect'>to</a> <a href='#SkPath_isNestedFillRects_rect'>outer</a> <a href='SkRect_Reference#SkRect'>SkRect</a>, <a href='SkRect_Reference#SkRect'>and</a> <a href='#SkPath_isNestedFillRects_rect'>rect</a>[1] <a href='#SkPath_isNestedFillRects_rect'>to</a> <a href='#SkPath_isNestedFillRects_rect'>inner</a> <a href='SkRect_Reference#SkRect'>SkRect</a>;
-setting <a href='#SkPath_isNestedFillRects_dirs'>dirs</a>[0] <a href='#SkPath_isNestedFillRects_dirs'>to</a> <a href='SkPath_Reference#SkPath'>SkPath</a>::<a href='#SkPath_Direction'>Direction</a> <a href='#SkPath_Direction'>of</a> <a href='#SkPath_Direction'>outer</a> <a href='SkRect_Reference#SkRect'>SkRect</a>, <a href='SkRect_Reference#SkRect'>and</a> <a href='#SkPath_isNestedFillRects_dirs'>dirs</a>[1] <a href='#SkPath_isNestedFillRects_dirs'>to</a> <a href='SkPath_Reference#SkPath'>SkPath</a>::<a href='#SkPath_Direction'>Direction</a> <a href='#SkPath_Direction'>of</a>
+Returns true if <a href='SkPath_Reference#SkPath'>SkPath</a> is equivalent to nested <a href='SkRect_Reference#SkRect'>SkRect</a> pair when filled.
+If false, <a href='#SkPath_isNestedFillRects_rect'>rect</a> and <a href='#SkPath_isNestedFillRects_dirs'>dirs</a> are unchanged.
+If true, <a href='#SkPath_isNestedFillRects_rect'>rect</a> and <a href='#SkPath_isNestedFillRects_dirs'>dirs</a> are written to if not nullptr:
+setting <a href='#SkPath_isNestedFillRects_rect'>rect</a>[0] to outer <a href='SkRect_Reference#SkRect'>SkRect</a>, and <a href='#SkPath_isNestedFillRects_rect'>rect</a>[1] to inner <a href='SkRect_Reference#SkRect'>SkRect</a>;
+setting <a href='#SkPath_isNestedFillRects_dirs'>dirs</a>[0] to <a href='SkPath_Reference#SkPath'>SkPath</a>::<a href='#SkPath_Direction'>Direction</a> of outer <a href='SkRect_Reference#SkRect'>SkRect</a>, and <a href='#SkPath_isNestedFillRects_dirs'>dirs</a>[1] to <a href='SkPath_Reference#SkPath'>SkPath</a>::<a href='#SkPath_Direction'>Direction</a> of
inner <a href='SkRect_Reference#SkRect'>SkRect</a>.
### Parameters
<table> <tr> <td><a name='SkPath_isNestedFillRects_rect'><code><strong>rect</strong></code></a></td>
- <td>storage for <a href='SkRect_Reference#SkRect'>SkRect</a> <a href='SkRect_Reference#SkRect'>pair</a>; <a href='SkRect_Reference#SkRect'>may</a> <a href='SkRect_Reference#SkRect'>be</a> <a href='SkRect_Reference#SkRect'>nullptr</a></td>
+ <td>storage for <a href='SkRect_Reference#SkRect'>SkRect</a> pair; may be nullptr</td>
</tr>
<tr> <td><a name='SkPath_isNestedFillRects_dirs'><code><strong>dirs</strong></code></a></td>
- <td>storage for <a href='SkPath_Reference#SkPath'>SkPath</a>::<a href='#SkPath_Direction'>Direction</a> <a href='#SkPath_Direction'>pair</a>; <a href='#SkPath_Direction'>may</a> <a href='#SkPath_Direction'>be</a> <a href='#SkPath_Direction'>nullptr</a></td>
+ <td>storage for <a href='SkPath_Reference#SkPath'>SkPath</a>::<a href='#SkPath_Direction'>Direction</a> pair; may be nullptr</td>
</tr>
</table>
### Return Value
-true if <a href='SkPath_Reference#SkPath'>SkPath</a> <a href='SkPath_Reference#SkPath'>contains</a> <a href='SkPath_Reference#SkPath'>nested</a> <a href='SkRect_Reference#SkRect'>SkRect</a> <a href='SkRect_Reference#SkRect'>pair</a>
+true if <a href='SkPath_Reference#SkPath'>SkPath</a> contains nested <a href='SkRect_Reference#SkRect'>SkRect</a> pair
### Example
@@ -3563,21 +3563,21 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-<a href='SkPath_Reference#SkPath'>SkPath</a>& <a href='#SkPath_addRect'>addRect</a>(<a href='#SkPath_addRect'>const</a> <a href='SkRect_Reference#SkRect'>SkRect</a>& <a href='SkRect_Reference#Rect'>rect</a>, <a href='#SkPath_Direction'>Direction</a> <a href='#SkPath_Direction'>dir</a> = <a href='#SkPath_kCW_Direction'>kCW_Direction</a>)
+<a href='SkPath_Reference#SkPath'>SkPath</a>& <a href='#SkPath_addRect'>addRect</a>(const <a href='SkRect_Reference#SkRect'>SkRect</a>& <a href='SkRect_Reference#Rect'>rect</a>, <a href='#SkPath_Direction'>Direction</a> dir = <a href='#SkPath_kCW_Direction'>kCW_Direction</a>)
</pre>
-Adds <a href='SkRect_Reference#SkRect'>SkRect</a> <a href='SkRect_Reference#SkRect'>to</a> <a href='SkPath_Reference#SkPath'>SkPath</a>, <a href='SkPath_Reference#SkPath'>appending</a> <a href='#SkPath_kMove_Verb'>kMove_Verb</a>, <a href='#SkPath_kMove_Verb'>three</a> <a href='#SkPath_kLine_Verb'>kLine_Verb</a>, <a href='#SkPath_kLine_Verb'>and</a> <a href='#SkPath_kClose_Verb'>kClose_Verb</a>,
-starting with top-left corner of <a href='SkRect_Reference#SkRect'>SkRect</a>; <a href='SkRect_Reference#SkRect'>followed</a> <a href='SkRect_Reference#SkRect'>by</a> <a href='SkRect_Reference#SkRect'>top-right</a>, <a href='SkRect_Reference#SkRect'>bottom-right</a>,
-and bottom-left if <a href='#SkPath_addRect_dir'>dir</a> <a href='#SkPath_addRect_dir'>is</a> <a href='#SkPath_kCW_Direction'>kCW_Direction</a>; <a href='#SkPath_kCW_Direction'>or</a> <a href='#SkPath_kCW_Direction'>followed</a> <a href='#SkPath_kCW_Direction'>by</a> <a href='#SkPath_kCW_Direction'>bottom-left</a>,
-bottom-right, and top-right if <a href='#SkPath_addRect_dir'>dir</a> <a href='#SkPath_addRect_dir'>is</a> <a href='#SkPath_kCCW_Direction'>kCCW_Direction</a>.
+Adds <a href='SkRect_Reference#SkRect'>SkRect</a> to <a href='SkPath_Reference#SkPath'>SkPath</a>, appending <a href='#SkPath_kMove_Verb'>kMove_Verb</a>, three <a href='#SkPath_kLine_Verb'>kLine_Verb</a>, and <a href='#SkPath_kClose_Verb'>kClose_Verb</a>,
+starting with top-left corner of <a href='SkRect_Reference#SkRect'>SkRect</a>; followed by top-right, bottom-right,
+and bottom-left if <a href='#SkPath_addRect_dir'>dir</a> is <a href='#SkPath_kCW_Direction'>kCW_Direction</a>; or followed by bottom-left,
+bottom-right, and top-right if <a href='#SkPath_addRect_dir'>dir</a> is <a href='#SkPath_kCCW_Direction'>kCCW_Direction</a>.
### Parameters
<table> <tr> <td><a name='SkPath_addRect_rect'><code><strong>rect</strong></code></a></td>
- <td><a href='SkRect_Reference#SkRect'>SkRect</a> <a href='SkRect_Reference#SkRect'>to</a> <a href='SkRect_Reference#SkRect'>add</a> <a href='SkRect_Reference#SkRect'>as</a> <a href='SkRect_Reference#SkRect'>a</a> <a href='SkRect_Reference#SkRect'>closed</a> <a href='SkPath_Overview#Contour'>contour</a></td>
+ <td><a href='SkRect_Reference#SkRect'>SkRect</a> to add as a closed <a href='SkPath_Overview#Contour'>contour</a></td>
</tr>
<tr> <td><a name='SkPath_addRect_dir'><code><strong>dir</strong></code></a></td>
- <td><a href='SkPath_Reference#SkPath'>SkPath</a>::<a href='#SkPath_Direction'>Direction</a> <a href='#SkPath_Direction'>to</a> <a href='#SkPath_Direction'>wind</a> <a href='#SkPath_Direction'>added</a> <a href='SkPath_Overview#Contour'>contour</a></td>
+ <td><a href='SkPath_Reference#SkPath'>SkPath</a>::<a href='#SkPath_Direction'>Direction</a> to wind added <a href='SkPath_Overview#Contour'>contour</a></td>
</tr>
</table>
@@ -3587,8 +3587,8 @@
### Example
-<div><fiddle-embed name="0f841e4eaebb613b5069800567917c2d"><div>The left <a href='SkRect_Reference#Rect'>Rect</a> <a href='SkRect_Reference#Rect'>dashes</a> <a href='SkRect_Reference#Rect'>starting</a> <a href='SkRect_Reference#Rect'>at</a> <a href='SkRect_Reference#Rect'>the</a> <a href='SkRect_Reference#Rect'>top-left</a> <a href='SkRect_Reference#Rect'>corner</a>, <a href='SkRect_Reference#Rect'>to</a> <a href='SkRect_Reference#Rect'>the</a> <a href='SkRect_Reference#Rect'>right</a>.
-<a href='SkRect_Reference#Rect'>The</a> <a href='SkRect_Reference#Rect'>right</a> <a href='SkRect_Reference#Rect'>Rect</a> <a href='SkRect_Reference#Rect'>dashes</a> <a href='SkRect_Reference#Rect'>starting</a> <a href='SkRect_Reference#Rect'>at</a> <a href='SkRect_Reference#Rect'>the</a> <a href='SkRect_Reference#Rect'>top-left</a> <a href='SkRect_Reference#Rect'>corner</a>, <a href='SkRect_Reference#Rect'>towards</a> <a href='SkRect_Reference#Rect'>the</a> <a href='SkRect_Reference#Rect'>bottom</a>.
+<div><fiddle-embed name="0f841e4eaebb613b5069800567917c2d"><div>The left <a href='SkRect_Reference#Rect'>Rect</a> dashes starting at the top-left corner, to the right.
+The right <a href='SkRect_Reference#Rect'>Rect</a> dashes starting at the top-left corner, towards the bottom.
</div></fiddle-embed></div>
### See Also
@@ -3600,13 +3600,13 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-<a href='SkPath_Reference#SkPath'>SkPath</a>& <a href='#SkPath_addRect'>addRect</a>(<a href='#SkPath_addRect'>const</a> <a href='SkRect_Reference#SkRect'>SkRect</a>& <a href='SkRect_Reference#Rect'>rect</a>, <a href='#SkPath_Direction'>Direction</a> <a href='#SkPath_Direction'>dir</a>, <a href='#SkPath_Direction'>unsigned</a> <a href='#SkPath_Direction'>start</a>)
+<a href='SkPath_Reference#SkPath'>SkPath</a>& <a href='#SkPath_addRect'>addRect</a>(const <a href='SkRect_Reference#SkRect'>SkRect</a>& <a href='SkRect_Reference#Rect'>rect</a>, <a href='#SkPath_Direction'>Direction</a> dir, unsigned start)
</pre>
-Adds <a href='SkRect_Reference#Rect'>Rect</a> <a href='SkRect_Reference#Rect'>to</a> <a href='SkPath_Reference#Path'>Path</a>, <a href='SkPath_Reference#Path'>appending</a> <a href='#SkPath_kMove_Verb'>kMove_Verb</a>, <a href='#SkPath_kMove_Verb'>three</a> <a href='#SkPath_kLine_Verb'>kLine_Verb</a>, <a href='#SkPath_kLine_Verb'>and</a> <a href='#SkPath_kClose_Verb'>kClose_Verb</a>.
-<a href='#SkPath_kClose_Verb'>If</a> <a href='#SkPath_addRect_2_dir'>dir</a> <a href='#SkPath_addRect_2_dir'>is</a> <a href='#SkPath_kCW_Direction'>kCW_Direction</a>, <a href='SkRect_Reference#Rect'>Rect</a> <a href='SkRect_Reference#Rect'>corners</a> <a href='SkRect_Reference#Rect'>are</a> <a href='SkRect_Reference#Rect'>added</a> <a href='SkRect_Reference#Rect'>clockwise</a>; <a href='SkRect_Reference#Rect'>if</a> <a href='#SkPath_addRect_2_dir'>dir</a> <a href='#SkPath_addRect_2_dir'>is</a>
-<a href='#SkPath_kCCW_Direction'>kCCW_Direction</a>, <a href='SkRect_Reference#Rect'>Rect</a> <a href='SkRect_Reference#Rect'>corners</a> <a href='SkRect_Reference#Rect'>are</a> <a href='SkRect_Reference#Rect'>added</a> <a href='SkRect_Reference#Rect'>counterclockwise</a>.
-<a href='#SkPath_addRect_2_start'>start</a> <a href='#SkPath_addRect_2_start'>determines</a> <a href='#SkPath_addRect_2_start'>the</a> <a href='#SkPath_addRect_2_start'>first</a> <a href='#SkPath_addRect_2_start'>corner</a> <a href='#SkPath_addRect_2_start'>added</a>.
+Adds <a href='SkRect_Reference#Rect'>Rect</a> to <a href='SkPath_Reference#Path'>Path</a>, appending <a href='#SkPath_kMove_Verb'>kMove_Verb</a>, three <a href='#SkPath_kLine_Verb'>kLine_Verb</a>, and <a href='#SkPath_kClose_Verb'>kClose_Verb</a>.
+If <a href='#SkPath_addRect_2_dir'>dir</a> is <a href='#SkPath_kCW_Direction'>kCW_Direction</a>, <a href='SkRect_Reference#Rect'>Rect</a> corners are added clockwise; if <a href='#SkPath_addRect_2_dir'>dir</a> is
+<a href='#SkPath_kCCW_Direction'>kCCW_Direction</a>, <a href='SkRect_Reference#Rect'>Rect</a> corners are added counterclockwise.
+<a href='#SkPath_addRect_2_start'>start</a> determines the first corner added.
| <a href='#SkPath_addRect_2_start'>start</a> | first corner |
| --- | --- |
@@ -3618,13 +3618,13 @@
### Parameters
<table> <tr> <td><a name='SkPath_addRect_2_rect'><code><strong>rect</strong></code></a></td>
- <td><a href='SkRect_Reference#Rect'>Rect</a> <a href='SkRect_Reference#Rect'>to</a> <a href='SkRect_Reference#Rect'>add</a> <a href='SkRect_Reference#Rect'>as</a> <a href='SkRect_Reference#Rect'>a</a> <a href='SkRect_Reference#Rect'>closed</a> <a href='SkPath_Overview#Contour'>contour</a></td>
+ <td><a href='SkRect_Reference#Rect'>Rect</a> to add as a closed <a href='SkPath_Overview#Contour'>contour</a></td>
</tr>
<tr> <td><a name='SkPath_addRect_2_dir'><code><strong>dir</strong></code></a></td>
- <td><a href='#SkPath_Direction'>Direction</a> <a href='#SkPath_Direction'>to</a> <a href='#SkPath_Direction'>wind</a> <a href='#SkPath_Direction'>added</a> <a href='SkPath_Overview#Contour'>contour</a></td>
+ <td><a href='#SkPath_Direction'>Direction</a> to wind added <a href='SkPath_Overview#Contour'>contour</a></td>
</tr>
<tr> <td><a name='SkPath_addRect_2_start'><code><strong>start</strong></code></a></td>
- <td>initial corner of <a href='SkRect_Reference#Rect'>Rect</a> <a href='SkRect_Reference#Rect'>to</a> <a href='SkRect_Reference#Rect'>add</a></td>
+ <td>initial corner of <a href='SkRect_Reference#Rect'>Rect</a> to add</td>
</tr>
</table>
@@ -3634,8 +3634,8 @@
### Example
-<div><fiddle-embed name="9202430b3f4f5275af8eec5cc9d7baa8"><div>The arrow is just after the initial corner and <a href='SkPoint_Reference#Point'>points</a> <a href='SkPoint_Reference#Point'>towards</a> <a href='SkPoint_Reference#Point'>the</a> <a href='SkPoint_Reference#Point'>next</a>
-<a href='SkPoint_Reference#Point'>corner</a> <a href='SkPoint_Reference#Point'>appended</a> <a href='SkPoint_Reference#Point'>to</a> <a href='SkPath_Reference#Path'>Path</a>.
+<div><fiddle-embed name="9202430b3f4f5275af8eec5cc9d7baa8"><div>The arrow is just after the initial corner and <a href='SkPoint_Reference#Point'>points</a> towards the next
+corner appended to <a href='SkPath_Reference#Path'>Path</a>.
</div></fiddle-embed></div>
### See Also
@@ -3647,15 +3647,15 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-<a href='SkPath_Reference#SkPath'>SkPath</a>& <a href='#SkPath_addRect'>addRect</a>(<a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>left</a>, <a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>top</a>, <a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>right</a>, <a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>bottom</a>,
- <a href='#SkPath_Direction'>Direction</a> <a href='#SkPath_Direction'>dir</a> = <a href='#SkPath_kCW_Direction'>kCW_Direction</a>)
+<a href='SkPath_Reference#SkPath'>SkPath</a>& <a href='#SkPath_addRect'>addRect</a>(<a href='undocumented#SkScalar'>SkScalar</a> left, <a href='undocumented#SkScalar'>SkScalar</a> top, <a href='undocumented#SkScalar'>SkScalar</a> right, <a href='undocumented#SkScalar'>SkScalar</a> bottom,
+ <a href='#SkPath_Direction'>Direction</a> dir = <a href='#SkPath_kCW_Direction'>kCW_Direction</a>)
</pre>
-Adds <a href='SkRect_Reference#SkRect'>SkRect</a> (<a href='#SkPath_addRect_3_left'>left</a>, <a href='#SkPath_addRect_3_top'>top</a>, <a href='#SkPath_addRect_3_right'>right</a>, <a href='#SkPath_addRect_3_bottom'>bottom</a>) <a href='#SkPath_addRect_3_bottom'>to</a> <a href='SkPath_Reference#SkPath'>SkPath</a>,
-appending <a href='#SkPath_kMove_Verb'>kMove_Verb</a>, <a href='#SkPath_kMove_Verb'>three</a> <a href='#SkPath_kLine_Verb'>kLine_Verb</a>, <a href='#SkPath_kLine_Verb'>and</a> <a href='#SkPath_kClose_Verb'>kClose_Verb</a>,
-starting with top-left corner of <a href='SkRect_Reference#SkRect'>SkRect</a>; <a href='SkRect_Reference#SkRect'>followed</a> <a href='SkRect_Reference#SkRect'>by</a> <a href='SkRect_Reference#SkRect'>top-right</a>, <a href='SkRect_Reference#SkRect'>bottom-right</a>,
-and bottom-left if <a href='#SkPath_addRect_3_dir'>dir</a> <a href='#SkPath_addRect_3_dir'>is</a> <a href='#SkPath_kCW_Direction'>kCW_Direction</a>; <a href='#SkPath_kCW_Direction'>or</a> <a href='#SkPath_kCW_Direction'>followed</a> <a href='#SkPath_kCW_Direction'>by</a> <a href='#SkPath_kCW_Direction'>bottom-left</a>,
-bottom-right, and top-right if <a href='#SkPath_addRect_3_dir'>dir</a> <a href='#SkPath_addRect_3_dir'>is</a> <a href='#SkPath_kCCW_Direction'>kCCW_Direction</a>.
+Adds <a href='SkRect_Reference#SkRect'>SkRect</a> (<a href='#SkPath_addRect_3_left'>left</a>, <a href='#SkPath_addRect_3_top'>top</a>, <a href='#SkPath_addRect_3_right'>right</a>, <a href='#SkPath_addRect_3_bottom'>bottom</a>) to <a href='SkPath_Reference#SkPath'>SkPath</a>,
+appending <a href='#SkPath_kMove_Verb'>kMove_Verb</a>, three <a href='#SkPath_kLine_Verb'>kLine_Verb</a>, and <a href='#SkPath_kClose_Verb'>kClose_Verb</a>,
+starting with top-left corner of <a href='SkRect_Reference#SkRect'>SkRect</a>; followed by top-right, bottom-right,
+and bottom-left if <a href='#SkPath_addRect_3_dir'>dir</a> is <a href='#SkPath_kCW_Direction'>kCW_Direction</a>; or followed by bottom-left,
+bottom-right, and top-right if <a href='#SkPath_addRect_3_dir'>dir</a> is <a href='#SkPath_kCCW_Direction'>kCCW_Direction</a>.
### Parameters
@@ -3672,7 +3672,7 @@
<td>larger y-axis value of <a href='SkRect_Reference#SkRect'>SkRect</a></td>
</tr>
<tr> <td><a name='SkPath_addRect_3_dir'><code><strong>dir</strong></code></a></td>
- <td><a href='SkPath_Reference#SkPath'>SkPath</a>::<a href='#SkPath_Direction'>Direction</a> <a href='#SkPath_Direction'>to</a> <a href='#SkPath_Direction'>wind</a> <a href='#SkPath_Direction'>added</a> <a href='SkPath_Overview#Contour'>contour</a></td>
+ <td><a href='SkPath_Reference#SkPath'>SkPath</a>::<a href='#SkPath_Direction'>Direction</a> to wind added <a href='SkPath_Overview#Contour'>contour</a></td>
</tr>
</table>
@@ -3682,8 +3682,8 @@
### Example
-<div><fiddle-embed name="3837827310e8b88b8c2e128ef9fbbd65"><div>The <a href='#SkPath_addRect_3_left'>left</a> <a href='SkRect_Reference#Rect'>Rect</a> <a href='SkRect_Reference#Rect'>dashes</a> <a href='SkRect_Reference#Rect'>start</a> <a href='SkRect_Reference#Rect'>at</a> <a href='SkRect_Reference#Rect'>the</a> <a href='SkRect_Reference#Rect'>top-left</a> <a href='SkRect_Reference#Rect'>corner</a>, <a href='SkRect_Reference#Rect'>and</a> <a href='SkRect_Reference#Rect'>continue</a> <a href='SkRect_Reference#Rect'>to</a> <a href='SkRect_Reference#Rect'>the</a> <a href='#SkPath_addRect_3_right'>right</a>.
-<a href='#SkPath_addRect_3_right'>The</a> <a href='#SkPath_addRect_3_right'>right</a> <a href='SkRect_Reference#Rect'>Rect</a> <a href='SkRect_Reference#Rect'>dashes</a> <a href='SkRect_Reference#Rect'>start</a> <a href='SkRect_Reference#Rect'>at</a> <a href='SkRect_Reference#Rect'>the</a> <a href='SkRect_Reference#Rect'>top-left</a> <a href='SkRect_Reference#Rect'>corner</a>, <a href='SkRect_Reference#Rect'>and</a> <a href='SkRect_Reference#Rect'>continue</a> <a href='SkRect_Reference#Rect'>down</a>.
+<div><fiddle-embed name="3837827310e8b88b8c2e128ef9fbbd65"><div>The <a href='#SkPath_addRect_3_left'>left</a> <a href='SkRect_Reference#Rect'>Rect</a> dashes start at the top-left corner, and continue to the <a href='#SkPath_addRect_3_right'>right</a>.
+The <a href='#SkPath_addRect_3_right'>right</a> <a href='SkRect_Reference#Rect'>Rect</a> dashes start at the top-left corner, and continue down.
</div></fiddle-embed></div>
### See Also
@@ -3695,13 +3695,13 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-<a href='SkPath_Reference#SkPath'>SkPath</a>& <a href='#SkPath_addOval'>addOval</a>(<a href='#SkPath_addOval'>const</a> <a href='SkRect_Reference#SkRect'>SkRect</a>& <a href='undocumented#Oval'>oval</a>, <a href='#SkPath_Direction'>Direction</a> <a href='#SkPath_Direction'>dir</a> = <a href='#SkPath_kCW_Direction'>kCW_Direction</a>)
+<a href='SkPath_Reference#SkPath'>SkPath</a>& <a href='#SkPath_addOval'>addOval</a>(const <a href='SkRect_Reference#SkRect'>SkRect</a>& <a href='undocumented#Oval'>oval</a>, <a href='#SkPath_Direction'>Direction</a> dir = <a href='#SkPath_kCW_Direction'>kCW_Direction</a>)
</pre>
-Adds <a href='#SkPath_addOval_oval'>oval</a> <a href='#SkPath_addOval_oval'>to</a> <a href='SkPath_Reference#Path'>path</a>, <a href='SkPath_Reference#Path'>appending</a> <a href='#SkPath_kMove_Verb'>kMove_Verb</a>, <a href='#SkPath_kMove_Verb'>four</a> <a href='#SkPath_kConic_Verb'>kConic_Verb</a>, <a href='#SkPath_kConic_Verb'>and</a> <a href='#SkPath_kClose_Verb'>kClose_Verb</a>.
-<a href='undocumented#Oval'>Oval</a> <a href='undocumented#Oval'>is</a> <a href='undocumented#Oval'>upright</a> <a href='undocumented#Oval'>ellipse</a> <a href='undocumented#Oval'>bounded</a> <a href='undocumented#Oval'>by</a> <a href='SkRect_Reference#SkRect'>SkRect</a> <a href='#SkPath_addOval_oval'>oval</a> <a href='#SkPath_addOval_oval'>with</a> <a href='#SkPath_addOval_oval'>radii</a> <a href='#SkPath_addOval_oval'>equal</a> <a href='#SkPath_addOval_oval'>to</a> <a href='#SkPath_addOval_oval'>half</a> <a href='#SkPath_addOval_oval'>oval</a> <a href='#SkPath_addOval_oval'>width</a>
-and half <a href='#SkPath_addOval_oval'>oval</a> <a href='#SkPath_addOval_oval'>height</a>. <a href='undocumented#Oval'>Oval</a> <a href='undocumented#Oval'>begins</a> <a href='undocumented#Oval'>at</a> (<a href='#SkPath_addOval_oval'>oval</a>.<a href='#SkRect_fRight'>fRight</a>, <a href='#SkPath_addOval_oval'>oval</a>.<a href='#SkRect_centerY'>centerY</a>()) <a href='#SkRect_centerY'>and</a> <a href='#SkRect_centerY'>continues</a>
-clockwise if <a href='#SkPath_addOval_dir'>dir</a> <a href='#SkPath_addOval_dir'>is</a> <a href='#SkPath_kCW_Direction'>kCW_Direction</a>, <a href='#SkPath_kCW_Direction'>counterclockwise</a> <a href='#SkPath_kCW_Direction'>if</a> <a href='#SkPath_addOval_dir'>dir</a> <a href='#SkPath_addOval_dir'>is</a> <a href='#SkPath_kCCW_Direction'>kCCW_Direction</a>.
+Adds <a href='#SkPath_addOval_oval'>oval</a> to <a href='SkPath_Reference#Path'>path</a>, appending <a href='#SkPath_kMove_Verb'>kMove_Verb</a>, four <a href='#SkPath_kConic_Verb'>kConic_Verb</a>, and <a href='#SkPath_kClose_Verb'>kClose_Verb</a>.
+<a href='undocumented#Oval'>Oval</a> is upright ellipse bounded by <a href='SkRect_Reference#SkRect'>SkRect</a> <a href='#SkPath_addOval_oval'>oval</a> with radii equal to half <a href='#SkPath_addOval_oval'>oval</a> width
+and half <a href='#SkPath_addOval_oval'>oval</a> height. <a href='undocumented#Oval'>Oval</a> begins at (<a href='#SkPath_addOval_oval'>oval</a>.<a href='#SkRect_fRight'>fRight</a>, <a href='#SkPath_addOval_oval'>oval</a>.<a href='#SkRect_centerY'>centerY</a>()) and continues
+clockwise if <a href='#SkPath_addOval_dir'>dir</a> is <a href='#SkPath_kCW_Direction'>kCW_Direction</a>, counterclockwise if <a href='#SkPath_addOval_dir'>dir</a> is <a href='#SkPath_kCCW_Direction'>kCCW_Direction</a>.
### Parameters
@@ -3709,7 +3709,7 @@
<td>bounds of ellipse added</td>
</tr>
<tr> <td><a name='SkPath_addOval_dir'><code><strong>dir</strong></code></a></td>
- <td><a href='SkPath_Reference#SkPath'>SkPath</a>::<a href='#SkPath_Direction'>Direction</a> <a href='#SkPath_Direction'>to</a> <a href='#SkPath_Direction'>wind</a> <a href='#SkPath_Direction'>ellipse</a></td>
+ <td><a href='SkPath_Reference#SkPath'>SkPath</a>::<a href='#SkPath_Direction'>Direction</a> to wind ellipse</td>
</tr>
</table>
@@ -3730,13 +3730,13 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-<a href='SkPath_Reference#SkPath'>SkPath</a>& <a href='#SkPath_addOval'>addOval</a>(<a href='#SkPath_addOval'>const</a> <a href='SkRect_Reference#SkRect'>SkRect</a>& <a href='undocumented#Oval'>oval</a>, <a href='#SkPath_Direction'>Direction</a> <a href='#SkPath_Direction'>dir</a>, <a href='#SkPath_Direction'>unsigned</a> <a href='#SkPath_Direction'>start</a>)
+<a href='SkPath_Reference#SkPath'>SkPath</a>& <a href='#SkPath_addOval'>addOval</a>(const <a href='SkRect_Reference#SkRect'>SkRect</a>& <a href='undocumented#Oval'>oval</a>, <a href='#SkPath_Direction'>Direction</a> dir, unsigned start)
</pre>
-Adds <a href='undocumented#Oval'>Oval</a> <a href='undocumented#Oval'>to</a> <a href='SkPath_Reference#Path'>Path</a>, <a href='SkPath_Reference#Path'>appending</a> <a href='#SkPath_kMove_Verb'>kMove_Verb</a>, <a href='#SkPath_kMove_Verb'>four</a> <a href='#SkPath_kConic_Verb'>kConic_Verb</a>, <a href='#SkPath_kConic_Verb'>and</a> <a href='#SkPath_kClose_Verb'>kClose_Verb</a>.
-<a href='undocumented#Oval'>Oval</a> <a href='undocumented#Oval'>is</a> <a href='undocumented#Oval'>upright</a> <a href='undocumented#Oval'>ellipse</a> <a href='undocumented#Oval'>bounded</a> <a href='undocumented#Oval'>by</a> <a href='SkRect_Reference#Rect'>Rect</a> <a href='#SkPath_addOval_2_oval'>oval</a> <a href='#SkPath_addOval_2_oval'>with</a> <a href='#SkPath_addOval_2_oval'>radii</a> <a href='#SkPath_addOval_2_oval'>equal</a> <a href='#SkPath_addOval_2_oval'>to</a> <a href='#SkPath_addOval_2_oval'>half</a> <a href='#SkPath_addOval_2_oval'>oval</a> <a href='#SkPath_addOval_2_oval'>width</a>
-<a href='#SkPath_addOval_2_oval'>and</a> <a href='#SkPath_addOval_2_oval'>half</a> <a href='#SkPath_addOval_2_oval'>oval</a> <a href='#SkPath_addOval_2_oval'>height</a>. <a href='undocumented#Oval'>Oval</a> <a href='undocumented#Oval'>begins</a> <a href='undocumented#Oval'>at</a> <a href='#SkPath_addOval_2_start'>start</a> <a href='#SkPath_addOval_2_start'>and</a> <a href='#SkPath_addOval_2_start'>continues</a>
-<a href='#SkPath_addOval_2_start'>clockwise</a> <a href='#SkPath_addOval_2_start'>if</a> <a href='#SkPath_addOval_2_dir'>dir</a> <a href='#SkPath_addOval_2_dir'>is</a> <a href='#SkPath_kCW_Direction'>kCW_Direction</a>, <a href='#SkPath_kCW_Direction'>counterclockwise</a> <a href='#SkPath_kCW_Direction'>if</a> <a href='#SkPath_addOval_2_dir'>dir</a> <a href='#SkPath_addOval_2_dir'>is</a> <a href='#SkPath_kCCW_Direction'>kCCW_Direction</a>.
+Adds <a href='undocumented#Oval'>Oval</a> to <a href='SkPath_Reference#Path'>Path</a>, appending <a href='#SkPath_kMove_Verb'>kMove_Verb</a>, four <a href='#SkPath_kConic_Verb'>kConic_Verb</a>, and <a href='#SkPath_kClose_Verb'>kClose_Verb</a>.
+<a href='undocumented#Oval'>Oval</a> is upright ellipse bounded by <a href='SkRect_Reference#Rect'>Rect</a> <a href='#SkPath_addOval_2_oval'>oval</a> with radii equal to half <a href='#SkPath_addOval_2_oval'>oval</a> width
+and half <a href='#SkPath_addOval_2_oval'>oval</a> height. <a href='undocumented#Oval'>Oval</a> begins at <a href='#SkPath_addOval_2_start'>start</a> and continues
+clockwise if <a href='#SkPath_addOval_2_dir'>dir</a> is <a href='#SkPath_kCW_Direction'>kCW_Direction</a>, counterclockwise if <a href='#SkPath_addOval_2_dir'>dir</a> is <a href='#SkPath_kCCW_Direction'>kCCW_Direction</a>.
| <a href='#SkPath_addOval_2_start'>start</a> | <a href='SkPoint_Reference#Point'>Point</a> |
| --- | --- |
@@ -3751,10 +3751,10 @@
<td>bounds of ellipse added</td>
</tr>
<tr> <td><a name='SkPath_addOval_2_dir'><code><strong>dir</strong></code></a></td>
- <td><a href='#SkPath_Direction'>Direction</a> <a href='#SkPath_Direction'>to</a> <a href='#SkPath_Direction'>wind</a> <a href='#SkPath_Direction'>ellipse</a></td>
+ <td><a href='#SkPath_Direction'>Direction</a> to wind ellipse</td>
</tr>
<tr> <td><a name='SkPath_addOval_2_start'><code><strong>start</strong></code></a></td>
- <td>index of initial <a href='SkPoint_Reference#Point'>point</a> <a href='SkPoint_Reference#Point'>of</a> <a href='SkPoint_Reference#Point'>ellipse</a></td>
+ <td>index of initial <a href='SkPoint_Reference#Point'>point</a> of ellipse</td>
</tr>
</table>
@@ -3775,14 +3775,14 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-<a href='SkPath_Reference#SkPath'>SkPath</a>& <a href='#SkPath_addCircle'>addCircle</a>(<a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>x</a>, <a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>y</a>, <a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>radius</a>, <a href='#SkPath_Direction'>Direction</a> <a href='#SkPath_Direction'>dir</a> = <a href='#SkPath_kCW_Direction'>kCW_Direction</a>)
+<a href='SkPath_Reference#SkPath'>SkPath</a>& <a href='#SkPath_addCircle'>addCircle</a>(<a href='undocumented#SkScalar'>SkScalar</a> x, <a href='undocumented#SkScalar'>SkScalar</a> y, <a href='undocumented#SkScalar'>SkScalar</a> radius, <a href='#SkPath_Direction'>Direction</a> dir = <a href='#SkPath_kCW_Direction'>kCW_Direction</a>)
</pre>
-Adds <a href='undocumented#Circle'>Circle</a> <a href='undocumented#Circle'>centered</a> <a href='undocumented#Circle'>at</a> (<a href='#SkPath_addCircle_x'>x</a>, <a href='#SkPath_addCircle_y'>y</a>) <a href='#SkPath_addCircle_y'>of</a> <a href='undocumented#Size'>size</a> <a href='#SkPath_addCircle_radius'>radius</a> <a href='#SkPath_addCircle_radius'>to</a> <a href='SkPath_Reference#Path'>Path</a>, <a href='SkPath_Reference#Path'>appending</a> <a href='#SkPath_kMove_Verb'>kMove_Verb</a>,
-<a href='#SkPath_kMove_Verb'>four</a> <a href='#SkPath_kConic_Verb'>kConic_Verb</a>, <a href='#SkPath_kConic_Verb'>and</a> <a href='#SkPath_kClose_Verb'>kClose_Verb</a>. <a href='undocumented#Circle'>Circle</a> <a href='undocumented#Circle'>begins</a> <a href='undocumented#Circle'>at</a>: <code>(<a href='#SkPath_addCircle_x'>x</a> + <a href='#SkPath_addCircle_radius'>radius</a>, <a href='#SkPath_addCircle_y'>y</a>)</code>, continuing
-clockwise if <a href='#SkPath_addCircle_dir'>dir</a> <a href='#SkPath_addCircle_dir'>is</a> <a href='#SkPath_kCW_Direction'>kCW_Direction</a>, <a href='#SkPath_kCW_Direction'>and</a> <a href='#SkPath_kCW_Direction'>counterclockwise</a> <a href='#SkPath_kCW_Direction'>if</a> <a href='#SkPath_addCircle_dir'>dir</a> <a href='#SkPath_addCircle_dir'>is</a> <a href='#SkPath_kCCW_Direction'>kCCW_Direction</a>.
+Adds <a href='undocumented#Circle'>Circle</a> centered at (<a href='#SkPath_addCircle_x'>x</a>, <a href='#SkPath_addCircle_y'>y</a>) of <a href='undocumented#Size'>size</a> <a href='#SkPath_addCircle_radius'>radius</a> to <a href='SkPath_Reference#Path'>Path</a>, appending <a href='#SkPath_kMove_Verb'>kMove_Verb</a>,
+four <a href='#SkPath_kConic_Verb'>kConic_Verb</a>, and <a href='#SkPath_kClose_Verb'>kClose_Verb</a>. <a href='undocumented#Circle'>Circle</a> begins at: <code>(<a href='#SkPath_addCircle_x'>x</a> + <a href='#SkPath_addCircle_radius'>radius</a>, <a href='#SkPath_addCircle_y'>y</a>)</code>, continuing
+clockwise if <a href='#SkPath_addCircle_dir'>dir</a> is <a href='#SkPath_kCW_Direction'>kCW_Direction</a>, and counterclockwise if <a href='#SkPath_addCircle_dir'>dir</a> is <a href='#SkPath_kCCW_Direction'>kCCW_Direction</a>.
-<a href='#SkPath_kCCW_Direction'>Has</a> <a href='#SkPath_kCCW_Direction'>no</a> <a href='#SkPath_kCCW_Direction'>effect</a> <a href='#SkPath_kCCW_Direction'>if</a> <a href='#SkPath_addCircle_radius'>radius</a> <a href='#SkPath_addCircle_radius'>is</a> <a href='#SkPath_addCircle_radius'>zero</a> <a href='#SkPath_addCircle_radius'>or</a> <a href='#SkPath_addCircle_radius'>negative</a>.
+Has no effect if <a href='#SkPath_addCircle_radius'>radius</a> is zero or negative.
### Parameters
@@ -3796,7 +3796,7 @@
<td>distance from center to edge</td>
</tr>
<tr> <td><a name='SkPath_addCircle_dir'><code><strong>dir</strong></code></a></td>
- <td><a href='#SkPath_Direction'>Direction</a> <a href='#SkPath_Direction'>to</a> <a href='#SkPath_Direction'>wind</a> <a href='undocumented#Circle'>Circle</a></td>
+ <td><a href='#SkPath_Direction'>Direction</a> to wind <a href='undocumented#Circle'>Circle</a></td>
</tr>
</table>
@@ -3817,17 +3817,17 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-<a href='SkPath_Reference#SkPath'>SkPath</a>& <a href='#SkPath_addArc'>addArc</a>(<a href='#SkPath_addArc'>const</a> <a href='SkRect_Reference#SkRect'>SkRect</a>& <a href='undocumented#Oval'>oval</a>, <a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>startAngle</a>, <a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>sweepAngle</a>)
+<a href='SkPath_Reference#SkPath'>SkPath</a>& <a href='#SkPath_addArc'>addArc</a>(const <a href='SkRect_Reference#SkRect'>SkRect</a>& <a href='undocumented#Oval'>oval</a>, <a href='undocumented#SkScalar'>SkScalar</a> startAngle, <a href='undocumented#SkScalar'>SkScalar</a> sweepAngle)
</pre>
-Appends <a href='undocumented#Arc'>arc</a> <a href='undocumented#Arc'>to</a> <a href='SkPath_Reference#SkPath'>SkPath</a>, <a href='SkPath_Reference#SkPath'>as</a> <a href='SkPath_Reference#SkPath'>the</a> <a href='SkPath_Reference#SkPath'>start</a> <a href='SkPath_Reference#SkPath'>of</a> <a href='SkPath_Reference#SkPath'>new</a> <a href='SkPath_Overview#Contour'>contour</a>. <a href='undocumented#Arc'>Arc</a> <a href='undocumented#Arc'>added</a> <a href='undocumented#Arc'>is</a> <a href='undocumented#Arc'>part</a> <a href='undocumented#Arc'>of</a> <a href='undocumented#Arc'>ellipse</a>
-bounded by <a href='#SkPath_addArc_oval'>oval</a>, <a href='#SkPath_addArc_oval'>from</a> <a href='#SkPath_addArc_startAngle'>startAngle</a> <a href='#SkPath_addArc_startAngle'>through</a> <a href='#SkPath_addArc_sweepAngle'>sweepAngle</a>. <a href='#SkPath_addArc_sweepAngle'>Both</a> <a href='#SkPath_addArc_startAngle'>startAngle</a> <a href='#SkPath_addArc_startAngle'>and</a>
-<a href='#SkPath_addArc_sweepAngle'>sweepAngle</a> <a href='#SkPath_addArc_sweepAngle'>are</a> <a href='#SkPath_addArc_sweepAngle'>measured</a> <a href='#SkPath_addArc_sweepAngle'>in</a> <a href='#SkPath_addArc_sweepAngle'>degrees</a>, <a href='#SkPath_addArc_sweepAngle'>where</a> <a href='#SkPath_addArc_sweepAngle'>zero</a> <a href='#SkPath_addArc_sweepAngle'>degrees</a> <a href='#SkPath_addArc_sweepAngle'>is</a> <a href='#SkPath_addArc_sweepAngle'>aligned</a> <a href='#SkPath_addArc_sweepAngle'>with</a> <a href='#SkPath_addArc_sweepAngle'>the</a>
-positive x-axis, and positive sweeps extends <a href='undocumented#Arc'>arc</a> <a href='undocumented#Arc'>clockwise</a>.
+Appends <a href='undocumented#Arc'>arc</a> to <a href='SkPath_Reference#SkPath'>SkPath</a>, as the start of new <a href='SkPath_Overview#Contour'>contour</a>. <a href='undocumented#Arc'>Arc</a> added is part of ellipse
+bounded by <a href='#SkPath_addArc_oval'>oval</a>, from <a href='#SkPath_addArc_startAngle'>startAngle</a> through <a href='#SkPath_addArc_sweepAngle'>sweepAngle</a>. Both <a href='#SkPath_addArc_startAngle'>startAngle</a> and
+<a href='#SkPath_addArc_sweepAngle'>sweepAngle</a> are measured in degrees, where zero degrees is aligned with the
+positive x-axis, and positive sweeps extends <a href='undocumented#Arc'>arc</a> clockwise.
-If <a href='#SkPath_addArc_sweepAngle'>sweepAngle</a> <= -360, <a href='#SkPath_addArc_sweepAngle'>or</a> <a href='#SkPath_addArc_sweepAngle'>sweepAngle</a> >= 360; <a href='#SkPath_addArc_sweepAngle'>and</a> <a href='#SkPath_addArc_startAngle'>startAngle</a> <a href='#SkPath_addArc_startAngle'>modulo</a> 90 <a href='#SkPath_addArc_startAngle'>is</a> <a href='#SkPath_addArc_startAngle'>nearly</a>
-zero, append <a href='#SkPath_addArc_oval'>oval</a> <a href='#SkPath_addArc_oval'>instead</a> <a href='#SkPath_addArc_oval'>of</a> <a href='undocumented#Arc'>arc</a>. <a href='undocumented#Arc'>Otherwise</a>, <a href='#SkPath_addArc_sweepAngle'>sweepAngle</a> <a href='#SkPath_addArc_sweepAngle'>values</a> <a href='#SkPath_addArc_sweepAngle'>are</a> <a href='#SkPath_addArc_sweepAngle'>treated</a>
-modulo 360, and <a href='undocumented#Arc'>arc</a> <a href='undocumented#Arc'>may</a> <a href='undocumented#Arc'>or</a> <a href='undocumented#Arc'>may</a> <a href='undocumented#Arc'>not</a> <a href='undocumented#Arc'>draw</a> <a href='undocumented#Arc'>depending</a> <a href='undocumented#Arc'>on</a> <a href='undocumented#Arc'>numeric</a> <a href='undocumented#Arc'>rounding</a>.
+If <a href='#SkPath_addArc_sweepAngle'>sweepAngle</a> <= -360, or <a href='#SkPath_addArc_sweepAngle'>sweepAngle</a> >= 360; and <a href='#SkPath_addArc_startAngle'>startAngle</a> modulo 90 is nearly
+zero, append <a href='#SkPath_addArc_oval'>oval</a> instead of <a href='undocumented#Arc'>arc</a>. Otherwise, <a href='#SkPath_addArc_sweepAngle'>sweepAngle</a> values are treated
+modulo 360, and <a href='undocumented#Arc'>arc</a> may or may not draw depending on numeric rounding.
### Parameters
@@ -3835,7 +3835,7 @@
<td>bounds of ellipse containing <a href='undocumented#Arc'>arc</a></td>
</tr>
<tr> <td><a name='SkPath_addArc_startAngle'><code><strong>startAngle</strong></code></a></td>
- <td>starting angle of <a href='undocumented#Arc'>arc</a> <a href='undocumented#Arc'>in</a> <a href='undocumented#Arc'>degrees</a></td>
+ <td>starting angle of <a href='undocumented#Arc'>arc</a> in degrees</td>
</tr>
<tr> <td><a name='SkPath_addArc_sweepAngle'><code><strong>sweepAngle</strong></code></a></td>
<td>sweep, in degrees. Positive is clockwise; treated modulo 360</td>
@@ -3849,8 +3849,8 @@
### Example
<div><fiddle-embed name="9cf5122475624e4cf39f06c698f80b1a"><div>The middle row of the left and right columns draw differently from the entries
-above and below because <a href='#SkPath_addArc_sweepAngle'>sweepAngle</a> <a href='#SkPath_addArc_sweepAngle'>is</a> <a href='#SkPath_addArc_sweepAngle'>outside</a> <a href='#SkPath_addArc_sweepAngle'>of</a> <a href='#SkPath_addArc_sweepAngle'>the</a> <a href='#SkPath_addArc_sweepAngle'>range</a> <a href='#SkPath_addArc_sweepAngle'>of</a> +/-360,
-<a href='#SkPath_addArc_sweepAngle'>and</a> <a href='#SkPath_addArc_startAngle'>startAngle</a> <a href='#SkPath_addArc_startAngle'>modulo</a> 90 <a href='#SkPath_addArc_startAngle'>is</a> <a href='#SkPath_addArc_startAngle'>not</a> <a href='#SkPath_addArc_startAngle'>zero</a>.
+above and below because <a href='#SkPath_addArc_sweepAngle'>sweepAngle</a> is outside of the range of +/-360,
+and <a href='#SkPath_addArc_startAngle'>startAngle</a> modulo 90 is not zero.
</div></fiddle-embed></div>
### See Also
@@ -3862,20 +3862,20 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-<a href='SkPath_Reference#SkPath'>SkPath</a>& <a href='#SkPath_addRoundRect'>addRoundRect</a>(<a href='#SkPath_addRoundRect'>const</a> <a href='SkRect_Reference#SkRect'>SkRect</a>& <a href='SkRect_Reference#Rect'>rect</a>, <a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>rx</a>, <a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>ry</a>, <a href='#SkPath_Direction'>Direction</a> <a href='#SkPath_Direction'>dir</a> = <a href='#SkPath_kCW_Direction'>kCW_Direction</a>)
+<a href='SkPath_Reference#SkPath'>SkPath</a>& <a href='#SkPath_addRoundRect'>addRoundRect</a>(const <a href='SkRect_Reference#SkRect'>SkRect</a>& <a href='SkRect_Reference#Rect'>rect</a>, <a href='undocumented#SkScalar'>SkScalar</a> rx, <a href='undocumented#SkScalar'>SkScalar</a> ry, <a href='#SkPath_Direction'>Direction</a> dir = <a href='#SkPath_kCW_Direction'>kCW_Direction</a>)
</pre>
-Appends <a href='SkRRect_Reference#SkRRect'>SkRRect</a> <a href='SkRRect_Reference#SkRRect'>to</a> <a href='SkPath_Reference#SkPath'>SkPath</a>, <a href='SkPath_Reference#SkPath'>creating</a> <a href='SkPath_Reference#SkPath'>a</a> <a href='SkPath_Reference#SkPath'>new</a> <a href='SkPath_Reference#SkPath'>closed</a> <a href='SkPath_Overview#Contour'>contour</a>. <a href='SkRRect_Reference#SkRRect'>SkRRect</a> <a href='SkRRect_Reference#SkRRect'>has</a> <a href='SkRRect_Reference#SkRRect'>bounds</a>
-equal to <a href='#SkPath_addRoundRect_rect'>rect</a>; <a href='#SkPath_addRoundRect_rect'>each</a> <a href='#SkPath_addRoundRect_rect'>corner</a> <a href='#SkPath_addRoundRect_rect'>is</a> 90 <a href='#SkPath_addRoundRect_rect'>degrees</a> <a href='#SkPath_addRoundRect_rect'>of</a> <a href='#SkPath_addRoundRect_rect'>an</a> <a href='#SkPath_addRoundRect_rect'>ellipse</a> <a href='#SkPath_addRoundRect_rect'>with</a> <a href='#SkPath_addRoundRect_rect'>radii</a> (<a href='#SkPath_addRoundRect_rx'>rx</a>, <a href='#SkPath_addRoundRect_ry'>ry</a>). <a href='#SkPath_addRoundRect_ry'>If</a>
-<a href='#SkPath_addRoundRect_dir'>dir</a> <a href='#SkPath_addRoundRect_dir'>is</a> <a href='#SkPath_kCW_Direction'>kCW_Direction</a>, <a href='SkRRect_Reference#SkRRect'>SkRRect</a> <a href='SkRRect_Reference#SkRRect'>starts</a> <a href='SkRRect_Reference#SkRRect'>at</a> <a href='SkRRect_Reference#SkRRect'>top-left</a> <a href='SkRRect_Reference#SkRRect'>of</a> <a href='SkRRect_Reference#SkRRect'>the</a> <a href='SkRRect_Reference#SkRRect'>lower-left</a> <a href='SkRRect_Reference#SkRRect'>corner</a> <a href='SkRRect_Reference#SkRRect'>and</a>
-winds clockwise. If <a href='#SkPath_addRoundRect_dir'>dir</a> <a href='#SkPath_addRoundRect_dir'>is</a> <a href='#SkPath_kCCW_Direction'>kCCW_Direction</a>, <a href='SkRRect_Reference#SkRRect'>SkRRect</a> <a href='SkRRect_Reference#SkRRect'>starts</a> <a href='SkRRect_Reference#SkRRect'>at</a> <a href='SkRRect_Reference#SkRRect'>the</a> <a href='SkRRect_Reference#SkRRect'>bottom-left</a>
+Appends <a href='SkRRect_Reference#SkRRect'>SkRRect</a> to <a href='SkPath_Reference#SkPath'>SkPath</a>, creating a new closed <a href='SkPath_Overview#Contour'>contour</a>. <a href='SkRRect_Reference#SkRRect'>SkRRect</a> has bounds
+equal to <a href='#SkPath_addRoundRect_rect'>rect</a>; each corner is 90 degrees of an ellipse with radii (<a href='#SkPath_addRoundRect_rx'>rx</a>, <a href='#SkPath_addRoundRect_ry'>ry</a>). If
+<a href='#SkPath_addRoundRect_dir'>dir</a> is <a href='#SkPath_kCW_Direction'>kCW_Direction</a>, <a href='SkRRect_Reference#SkRRect'>SkRRect</a> starts at top-left of the lower-left corner and
+winds clockwise. If <a href='#SkPath_addRoundRect_dir'>dir</a> is <a href='#SkPath_kCCW_Direction'>kCCW_Direction</a>, <a href='SkRRect_Reference#SkRRect'>SkRRect</a> starts at the bottom-left
of the upper-left corner and winds counterclockwise.
-If either <a href='#SkPath_addRoundRect_rx'>rx</a> <a href='#SkPath_addRoundRect_rx'>or</a> <a href='#SkPath_addRoundRect_ry'>ry</a> <a href='#SkPath_addRoundRect_ry'>is</a> <a href='#SkPath_addRoundRect_ry'>too</a> <a href='#SkPath_addRoundRect_ry'>large</a>, <a href='#SkPath_addRoundRect_rx'>rx</a> <a href='#SkPath_addRoundRect_rx'>and</a> <a href='#SkPath_addRoundRect_ry'>ry</a> <a href='#SkPath_addRoundRect_ry'>are</a> <a href='#SkPath_addRoundRect_ry'>scaled</a> <a href='#SkPath_addRoundRect_ry'>uniformly</a> <a href='#SkPath_addRoundRect_ry'>until</a> <a href='#SkPath_addRoundRect_ry'>the</a>
-corners fit. If <a href='#SkPath_addRoundRect_rx'>rx</a> <a href='#SkPath_addRoundRect_rx'>or</a> <a href='#SkPath_addRoundRect_ry'>ry</a> <a href='#SkPath_addRoundRect_ry'>is</a> <a href='#SkPath_addRoundRect_ry'>less</a> <a href='#SkPath_addRoundRect_ry'>than</a> <a href='#SkPath_addRoundRect_ry'>or</a> <a href='#SkPath_addRoundRect_ry'>equal</a> <a href='#SkPath_addRoundRect_ry'>to</a> <a href='#SkPath_addRoundRect_ry'>zero</a>, <a href='#SkPath_addRoundRect'>addRoundRect</a>() <a href='#SkPath_addRoundRect'>appends</a>
-<a href='SkRect_Reference#SkRect'>SkRect</a> <a href='#SkPath_addRoundRect_rect'>rect</a> <a href='#SkPath_addRoundRect_rect'>to</a> <a href='SkPath_Reference#SkPath'>SkPath</a>.
+If either <a href='#SkPath_addRoundRect_rx'>rx</a> or <a href='#SkPath_addRoundRect_ry'>ry</a> is too large, <a href='#SkPath_addRoundRect_rx'>rx</a> and <a href='#SkPath_addRoundRect_ry'>ry</a> are scaled uniformly until the
+corners fit. If <a href='#SkPath_addRoundRect_rx'>rx</a> or <a href='#SkPath_addRoundRect_ry'>ry</a> is less than or equal to zero, <a href='#SkPath_addRoundRect'>addRoundRect</a>() appends
+<a href='SkRect_Reference#SkRect'>SkRect</a> <a href='#SkPath_addRoundRect_rect'>rect</a> to <a href='SkPath_Reference#SkPath'>SkPath</a>.
-After appending, <a href='SkPath_Reference#SkPath'>SkPath</a> <a href='SkPath_Reference#SkPath'>may</a> <a href='SkPath_Reference#SkPath'>be</a> <a href='SkPath_Reference#SkPath'>empty</a>, <a href='SkPath_Reference#SkPath'>or</a> <a href='SkPath_Reference#SkPath'>may</a> <a href='SkPath_Reference#SkPath'>contain</a>: <a href='SkRect_Reference#SkRect'>SkRect</a>, <a href='undocumented#Oval'>oval</a>, <a href='undocumented#Oval'>or</a> <a href='SkRRect_Reference#SkRRect'>SkRRect</a>.
+After appending, <a href='SkPath_Reference#SkPath'>SkPath</a> may be empty, or may contain: <a href='SkRect_Reference#SkRect'>SkRect</a>, <a href='undocumented#Oval'>oval</a>, or <a href='SkRRect_Reference#SkRRect'>SkRRect</a>.
### Parameters
@@ -3889,7 +3889,7 @@
<td>y-axis radius of rounded corners on the <a href='SkRRect_Reference#SkRRect'>SkRRect</a></td>
</tr>
<tr> <td><a name='SkPath_addRoundRect_dir'><code><strong>dir</strong></code></a></td>
- <td><a href='SkPath_Reference#SkPath'>SkPath</a>::<a href='#SkPath_Direction'>Direction</a> <a href='#SkPath_Direction'>to</a> <a href='#SkPath_Direction'>wind</a> <a href='SkRRect_Reference#SkRRect'>SkRRect</a></td>
+ <td><a href='SkPath_Reference#SkPath'>SkPath</a>::<a href='#SkPath_Direction'>Direction</a> to wind <a href='SkRRect_Reference#SkRRect'>SkRRect</a></td>
</tr>
</table>
@@ -3899,11 +3899,11 @@
### Example
-<div><fiddle-embed name="24736f685f265cf533f1700c042db353"><div>If either radius is zero, <a href='SkPath_Reference#Path'>path</a> <a href='SkPath_Reference#Path'>contains</a> <a href='SkRect_Reference#Rect'>Rect</a> <a href='SkRect_Reference#Rect'>and</a> <a href='SkRect_Reference#Rect'>is</a> <a href='SkRect_Reference#Rect'>drawn</a> <a href='SkRect_Reference#Rect'>red</a>.
-<a href='SkRect_Reference#Rect'>If</a> <a href='SkRect_Reference#Rect'>sides</a> <a href='SkRect_Reference#Rect'>are</a> <a href='SkRect_Reference#Rect'>only</a> <a href='SkRect_Reference#Rect'>radii</a>, <a href='SkPath_Reference#Path'>path</a> <a href='SkPath_Reference#Path'>contains</a> <a href='undocumented#Oval'>Oval</a> <a href='undocumented#Oval'>and</a> <a href='undocumented#Oval'>is</a> <a href='undocumented#Oval'>drawn</a> <a href='undocumented#Oval'>blue</a>.
-<a href='undocumented#Oval'>All</a> <a href='undocumented#Oval'>remaining</a> <a href='SkPath_Reference#Path'>path</a> <a href='SkPath_Reference#Path'>draws</a> <a href='SkPath_Reference#Path'>are</a> <a href='SkPath_Reference#Path'>convex</a>, <a href='SkPath_Reference#Path'>and</a> <a href='SkPath_Reference#Path'>are</a> <a href='SkPath_Reference#Path'>drawn</a> <a href='SkPath_Reference#Path'>in</a> <a href='SkPath_Reference#Path'>gray</a>; <a href='SkPath_Reference#Path'>no</a>
-<a href='SkPath_Reference#Path'>paths</a> <a href='SkPath_Reference#Path'>constructed</a> <a href='SkPath_Reference#Path'>from</a> <a href='#SkPath_addRoundRect'>addRoundRect</a> <a href='#SkPath_addRoundRect'>are</a> <a href='#SkPath_addRoundRect'>concave</a>, <a href='#SkPath_addRoundRect'>so</a> <a href='#SkPath_addRoundRect'>none</a> <a href='#SkPath_addRoundRect'>are</a>
-<a href='#SkPath_addRoundRect'>drawn</a> <a href='#SkPath_addRoundRect'>in</a> <a href='#SkPath_addRoundRect'>green</a>.
+<div><fiddle-embed name="24736f685f265cf533f1700c042db353"><div>If either radius is zero, <a href='SkPath_Reference#Path'>path</a> contains <a href='SkRect_Reference#Rect'>Rect</a> and is drawn red.
+If sides are only radii, <a href='SkPath_Reference#Path'>path</a> contains <a href='undocumented#Oval'>Oval</a> and is drawn blue.
+All remaining <a href='SkPath_Reference#Path'>path</a> draws are convex, and are drawn in gray; no
+<a href='SkPath_Reference#Path'>paths</a> constructed from <a href='#SkPath_addRoundRect'>addRoundRect</a> are concave, so none are
+drawn in green.
</div></fiddle-embed></div>
### See Also
@@ -3915,14 +3915,14 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-<a href='SkPath_Reference#SkPath'>SkPath</a>& <a href='#SkPath_addRoundRect'>addRoundRect</a>(<a href='#SkPath_addRoundRect'>const</a> <a href='SkRect_Reference#SkRect'>SkRect</a>& <a href='SkRect_Reference#Rect'>rect</a>, <a href='SkRect_Reference#Rect'>const</a> <a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>radii</a>[], <a href='#SkPath_Direction'>Direction</a> <a href='#SkPath_Direction'>dir</a> = <a href='#SkPath_kCW_Direction'>kCW_Direction</a>)
+<a href='SkPath_Reference#SkPath'>SkPath</a>& <a href='#SkPath_addRoundRect'>addRoundRect</a>(const <a href='SkRect_Reference#SkRect'>SkRect</a>& <a href='SkRect_Reference#Rect'>rect</a>, const <a href='undocumented#SkScalar'>SkScalar</a> radii[], <a href='#SkPath_Direction'>Direction</a> dir = <a href='#SkPath_kCW_Direction'>kCW_Direction</a>)
</pre>
-Appends <a href='#RRect'>Round_Rect</a> <a href='#RRect'>to</a> <a href='SkPath_Reference#Path'>Path</a>, <a href='SkPath_Reference#Path'>creating</a> <a href='SkPath_Reference#Path'>a</a> <a href='SkPath_Reference#Path'>new</a> <a href='SkPath_Reference#Path'>closed</a> <a href='SkPath_Overview#Contour'>Contour</a>. <a href='#RRect'>Round_Rect</a> <a href='#RRect'>has</a> <a href='#RRect'>bounds</a>
-<a href='#RRect'>equal</a> <a href='#RRect'>to</a> <a href='#SkPath_addRoundRect_2_rect'>rect</a>; <a href='#SkPath_addRoundRect_2_rect'>each</a> <a href='#SkPath_addRoundRect_2_rect'>corner</a> <a href='#SkPath_addRoundRect_2_rect'>is</a> 90 <a href='#SkPath_addRoundRect_2_rect'>degrees</a> <a href='#SkPath_addRoundRect_2_rect'>of</a> <a href='#SkPath_addRoundRect_2_rect'>an</a> <a href='#SkPath_addRoundRect_2_rect'>ellipse</a> <a href='#SkPath_addRoundRect_2_rect'>with</a> <a href='#SkPath_addRoundRect_2_radii'>radii</a> <a href='#SkPath_addRoundRect_2_radii'>from</a> <a href='#SkPath_addRoundRect_2_radii'>the</a>
-<a href='#SkPath_addRoundRect_2_radii'>array</a>.
+Appends <a href='#RRect'>Round_Rect</a> to <a href='SkPath_Reference#Path'>Path</a>, creating a new closed <a href='SkPath_Overview#Contour'>Contour</a>. <a href='#RRect'>Round_Rect</a> has bounds
+equal to <a href='#SkPath_addRoundRect_2_rect'>rect</a>; each corner is 90 degrees of an ellipse with <a href='#SkPath_addRoundRect_2_radii'>radii</a> from the
+array.
-| <a href='#SkPath_addRoundRect_2_radii'>radii</a> <a href='#SkPath_addRoundRect_2_radii'>index</a> | location |
+| <a href='#SkPath_addRoundRect_2_radii'>radii</a> index | location |
| --- | --- |
| 0 | x-axis radius of top-left corner |
| 1 | y-axis radius of top-left corner |
@@ -3933,15 +3933,15 @@
| 6 | x-axis radius of bottom-left corner |
| 7 | y-axis radius of bottom-left corner |
-If <a href='#SkPath_addRoundRect_2_dir'>dir</a> <a href='#SkPath_addRoundRect_2_dir'>is</a> <a href='#SkPath_kCW_Direction'>kCW_Direction</a>, <a href='#RRect'>Round_Rect</a> <a href='#RRect'>starts</a> <a href='#RRect'>at</a> <a href='#RRect'>top-left</a> <a href='#RRect'>of</a> <a href='#RRect'>the</a> <a href='#RRect'>lower-left</a> <a href='#RRect'>corner</a>
-<a href='#RRect'>and</a> <a href='#RRect'>winds</a> <a href='#RRect'>clockwise</a>. <a href='#RRect'>If</a> <a href='#SkPath_addRoundRect_2_dir'>dir</a> <a href='#SkPath_addRoundRect_2_dir'>is</a> <a href='#SkPath_kCCW_Direction'>kCCW_Direction</a>, <a href='#RRect'>Round_Rect</a> <a href='#RRect'>starts</a> <a href='#RRect'>at</a> <a href='#RRect'>the</a>
-<a href='#RRect'>bottom-left</a> <a href='#RRect'>of</a> <a href='#RRect'>the</a> <a href='#RRect'>upper-left</a> <a href='#RRect'>corner</a> <a href='#RRect'>and</a> <a href='#RRect'>winds</a> <a href='#RRect'>counterclockwise</a>.
+If <a href='#SkPath_addRoundRect_2_dir'>dir</a> is <a href='#SkPath_kCW_Direction'>kCW_Direction</a>, <a href='#RRect'>Round_Rect</a> starts at top-left of the lower-left corner
+and winds clockwise. If <a href='#SkPath_addRoundRect_2_dir'>dir</a> is <a href='#SkPath_kCCW_Direction'>kCCW_Direction</a>, <a href='#RRect'>Round_Rect</a> starts at the
+bottom-left of the upper-left corner and winds counterclockwise.
-<a href='#RRect'>If</a> <a href='#RRect'>both</a> <a href='#SkPath_addRoundRect_2_radii'>radii</a> <a href='#SkPath_addRoundRect_2_radii'>on</a> <a href='#SkPath_addRoundRect_2_radii'>any</a> <a href='#SkPath_addRoundRect_2_radii'>side</a> <a href='#SkPath_addRoundRect_2_radii'>of</a> <a href='#SkPath_addRoundRect_2_rect'>rect</a> <a href='#SkPath_addRoundRect_2_rect'>exceed</a> <a href='#SkPath_addRoundRect_2_rect'>its</a> <a href='#SkPath_addRoundRect_2_rect'>length</a>, <a href='#SkPath_addRoundRect_2_rect'>all</a> <a href='#SkPath_addRoundRect_2_radii'>radii</a> <a href='#SkPath_addRoundRect_2_radii'>are</a> <a href='#SkPath_addRoundRect_2_radii'>scaled</a>
-<a href='#SkPath_addRoundRect_2_radii'>uniformly</a> <a href='#SkPath_addRoundRect_2_radii'>until</a> <a href='#SkPath_addRoundRect_2_radii'>the</a> <a href='#SkPath_addRoundRect_2_radii'>corners</a> <a href='#SkPath_addRoundRect_2_radii'>fit</a>. <a href='#SkPath_addRoundRect_2_radii'>If</a> <a href='#SkPath_addRoundRect_2_radii'>either</a> <a href='#SkPath_addRoundRect_2_radii'>radius</a> <a href='#SkPath_addRoundRect_2_radii'>of</a> <a href='#SkPath_addRoundRect_2_radii'>a</a> <a href='#SkPath_addRoundRect_2_radii'>corner</a> <a href='#SkPath_addRoundRect_2_radii'>is</a> <a href='#SkPath_addRoundRect_2_radii'>less</a> <a href='#SkPath_addRoundRect_2_radii'>than</a> <a href='#SkPath_addRoundRect_2_radii'>or</a>
-<a href='#SkPath_addRoundRect_2_radii'>equal</a> <a href='#SkPath_addRoundRect_2_radii'>to</a> <a href='#SkPath_addRoundRect_2_radii'>zero</a>, <a href='#SkPath_addRoundRect_2_radii'>both</a> <a href='#SkPath_addRoundRect_2_radii'>are</a> <a href='#SkPath_addRoundRect_2_radii'>treated</a> <a href='#SkPath_addRoundRect_2_radii'>as</a> <a href='#SkPath_addRoundRect_2_radii'>zero</a>.
+If both <a href='#SkPath_addRoundRect_2_radii'>radii</a> on any side of <a href='#SkPath_addRoundRect_2_rect'>rect</a> exceed its length, all <a href='#SkPath_addRoundRect_2_radii'>radii</a> are scaled
+uniformly until the corners fit. If either radius of a corner is less than or
+equal to zero, both are treated as zero.
-<a href='#SkPath_addRoundRect_2_radii'>After</a> <a href='#SkPath_addRoundRect_2_radii'>appending</a>, <a href='SkPath_Reference#Path'>Path</a> <a href='SkPath_Reference#Path'>may</a> <a href='SkPath_Reference#Path'>be</a> <a href='SkPath_Reference#Path'>empty</a>, <a href='SkPath_Reference#Path'>or</a> <a href='SkPath_Reference#Path'>may</a> <a href='SkPath_Reference#Path'>contain</a>: <a href='SkRect_Reference#Rect'>Rect</a>, <a href='undocumented#Oval'>Oval</a>, <a href='undocumented#Oval'>or</a> <a href='#RRect'>Round_Rect</a>.
+After appending, <a href='SkPath_Reference#Path'>Path</a> may be empty, or may contain: <a href='SkRect_Reference#Rect'>Rect</a>, <a href='undocumented#Oval'>Oval</a>, or <a href='#RRect'>Round_Rect</a>.
### Parameters
@@ -3949,10 +3949,10 @@
<td>bounds of <a href='#RRect'>Round_Rect</a></td>
</tr>
<tr> <td><a name='SkPath_addRoundRect_2_radii'><code><strong>radii</strong></code></a></td>
- <td>array of 8 <a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>values</a>, <a href='undocumented#SkScalar'>a</a> <a href='undocumented#SkScalar'>radius</a> <a href='undocumented#SkScalar'>pair</a> <a href='undocumented#SkScalar'>for</a> <a href='undocumented#SkScalar'>each</a> <a href='undocumented#SkScalar'>corner</a></td>
+ <td>array of 8 <a href='undocumented#SkScalar'>SkScalar</a> values, a radius pair for each corner</td>
</tr>
<tr> <td><a name='SkPath_addRoundRect_2_dir'><code><strong>dir</strong></code></a></td>
- <td><a href='#SkPath_Direction'>Direction</a> <a href='#SkPath_Direction'>to</a> <a href='#SkPath_Direction'>wind</a> <a href='#RRect'>Round_Rect</a></td>
+ <td><a href='#SkPath_Direction'>Direction</a> to wind <a href='#RRect'>Round_Rect</a></td>
</tr>
</table>
@@ -3973,15 +3973,15 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-<a href='SkPath_Reference#SkPath'>SkPath</a>& <a href='#SkPath_addRRect'>addRRect</a>(<a href='#SkPath_addRRect'>const</a> <a href='SkRRect_Reference#SkRRect'>SkRRect</a>& <a href='SkRRect_Reference#SkRRect'>rrect</a>, <a href='#SkPath_Direction'>Direction</a> <a href='#SkPath_Direction'>dir</a> = <a href='#SkPath_kCW_Direction'>kCW_Direction</a>)
+<a href='SkPath_Reference#SkPath'>SkPath</a>& <a href='#SkPath_addRRect'>addRRect</a>(const <a href='SkRRect_Reference#SkRRect'>SkRRect</a>& rrect, <a href='#SkPath_Direction'>Direction</a> dir = <a href='#SkPath_kCW_Direction'>kCW_Direction</a>)
</pre>
-Adds <a href='#SkPath_addRRect_rrect'>rrect</a> <a href='#SkPath_addRRect_rrect'>to</a> <a href='SkPath_Reference#SkPath'>SkPath</a>, <a href='SkPath_Reference#SkPath'>creating</a> <a href='SkPath_Reference#SkPath'>a</a> <a href='SkPath_Reference#SkPath'>new</a> <a href='SkPath_Reference#SkPath'>closed</a> <a href='SkPath_Overview#Contour'>contour</a>. <a href='SkPath_Overview#Contour'>If</a>
-<a href='#SkPath_addRRect_dir'>dir</a> <a href='#SkPath_addRRect_dir'>is</a> <a href='#SkPath_kCW_Direction'>kCW_Direction</a>, <a href='#SkPath_addRRect_rrect'>rrect</a> <a href='#SkPath_addRRect_rrect'>starts</a> <a href='#SkPath_addRRect_rrect'>at</a> <a href='#SkPath_addRRect_rrect'>top-left</a> <a href='#SkPath_addRRect_rrect'>of</a> <a href='#SkPath_addRRect_rrect'>the</a> <a href='#SkPath_addRRect_rrect'>lower-left</a> <a href='#SkPath_addRRect_rrect'>corner</a> <a href='#SkPath_addRRect_rrect'>and</a>
-winds clockwise. If <a href='#SkPath_addRRect_dir'>dir</a> <a href='#SkPath_addRRect_dir'>is</a> <a href='#SkPath_kCCW_Direction'>kCCW_Direction</a>, <a href='#SkPath_addRRect_rrect'>rrect</a> <a href='#SkPath_addRRect_rrect'>starts</a> <a href='#SkPath_addRRect_rrect'>at</a> <a href='#SkPath_addRRect_rrect'>the</a> <a href='#SkPath_addRRect_rrect'>bottom-left</a>
+Adds <a href='#SkPath_addRRect_rrect'>rrect</a> to <a href='SkPath_Reference#SkPath'>SkPath</a>, creating a new closed <a href='SkPath_Overview#Contour'>contour</a>. If
+<a href='#SkPath_addRRect_dir'>dir</a> is <a href='#SkPath_kCW_Direction'>kCW_Direction</a>, <a href='#SkPath_addRRect_rrect'>rrect</a> starts at top-left of the lower-left corner and
+winds clockwise. If <a href='#SkPath_addRRect_dir'>dir</a> is <a href='#SkPath_kCCW_Direction'>kCCW_Direction</a>, <a href='#SkPath_addRRect_rrect'>rrect</a> starts at the bottom-left
of the upper-left corner and winds counterclockwise.
-After appending, <a href='SkPath_Reference#SkPath'>SkPath</a> <a href='SkPath_Reference#SkPath'>may</a> <a href='SkPath_Reference#SkPath'>be</a> <a href='SkPath_Reference#SkPath'>empty</a>, <a href='SkPath_Reference#SkPath'>or</a> <a href='SkPath_Reference#SkPath'>may</a> <a href='SkPath_Reference#SkPath'>contain</a>: <a href='SkRect_Reference#SkRect'>SkRect</a>, <a href='undocumented#Oval'>oval</a>, <a href='undocumented#Oval'>or</a> <a href='SkRRect_Reference#SkRRect'>SkRRect</a>.
+After appending, <a href='SkPath_Reference#SkPath'>SkPath</a> may be empty, or may contain: <a href='SkRect_Reference#SkRect'>SkRect</a>, <a href='undocumented#Oval'>oval</a>, or <a href='SkRRect_Reference#SkRRect'>SkRRect</a>.
### Parameters
@@ -3989,7 +3989,7 @@
<td>bounds and radii of rounded rectangle</td>
</tr>
<tr> <td><a name='SkPath_addRRect_dir'><code><strong>dir</strong></code></a></td>
- <td><a href='SkPath_Reference#SkPath'>SkPath</a>::<a href='#SkPath_Direction'>Direction</a> <a href='#SkPath_Direction'>to</a> <a href='#SkPath_Direction'>wind</a> <a href='SkRRect_Reference#SkRRect'>SkRRect</a></td>
+ <td><a href='SkPath_Reference#SkPath'>SkPath</a>::<a href='#SkPath_Direction'>Direction</a> to wind <a href='SkRRect_Reference#SkRRect'>SkRRect</a></td>
</tr>
</table>
@@ -4010,12 +4010,12 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-<a href='SkPath_Reference#SkPath'>SkPath</a>& <a href='#SkPath_addRRect'>addRRect</a>(<a href='#SkPath_addRRect'>const</a> <a href='SkRRect_Reference#SkRRect'>SkRRect</a>& <a href='SkRRect_Reference#SkRRect'>rrect</a>, <a href='#SkPath_Direction'>Direction</a> <a href='#SkPath_Direction'>dir</a>, <a href='#SkPath_Direction'>unsigned</a> <a href='#SkPath_Direction'>start</a>)
+<a href='SkPath_Reference#SkPath'>SkPath</a>& <a href='#SkPath_addRRect'>addRRect</a>(const <a href='SkRRect_Reference#SkRRect'>SkRRect</a>& rrect, <a href='#SkPath_Direction'>Direction</a> dir, unsigned start)
</pre>
-Adds <a href='#SkPath_addRRect_2_rrect'>rrect</a> <a href='#SkPath_addRRect_2_rrect'>to</a> <a href='SkPath_Reference#Path'>Path</a>, <a href='SkPath_Reference#Path'>creating</a> <a href='SkPath_Reference#Path'>a</a> <a href='SkPath_Reference#Path'>new</a> <a href='SkPath_Reference#Path'>closed</a> <a href='SkPath_Overview#Contour'>Contour</a>. <a href='SkPath_Overview#Contour'>If</a> <a href='#SkPath_addRRect_2_dir'>dir</a> <a href='#SkPath_addRRect_2_dir'>is</a> <a href='#SkPath_kCW_Direction'>kCW_Direction</a>, <a href='#SkPath_addRRect_2_rrect'>rrect</a>
-<a href='#SkPath_addRRect_2_rrect'>winds</a> <a href='#SkPath_addRRect_2_rrect'>clockwise</a>; <a href='#SkPath_addRRect_2_rrect'>if</a> <a href='#SkPath_addRRect_2_dir'>dir</a> <a href='#SkPath_addRRect_2_dir'>is</a> <a href='#SkPath_kCCW_Direction'>kCCW_Direction</a>, <a href='#SkPath_addRRect_2_rrect'>rrect</a> <a href='#SkPath_addRRect_2_rrect'>winds</a> <a href='#SkPath_addRRect_2_rrect'>counterclockwise</a>.
-<a href='#SkPath_addRRect_2_start'>start</a> <a href='#SkPath_addRRect_2_start'>determines</a> <a href='#SkPath_addRRect_2_start'>the</a> <a href='#SkPath_addRRect_2_start'>first</a> <a href='SkPoint_Reference#Point'>point</a> <a href='SkPoint_Reference#Point'>of</a> <a href='#SkPath_addRRect_2_rrect'>rrect</a> <a href='#SkPath_addRRect_2_rrect'>to</a> <a href='#SkPath_addRRect_2_rrect'>add</a>.
+Adds <a href='#SkPath_addRRect_2_rrect'>rrect</a> to <a href='SkPath_Reference#Path'>Path</a>, creating a new closed <a href='SkPath_Overview#Contour'>Contour</a>. If <a href='#SkPath_addRRect_2_dir'>dir</a> is <a href='#SkPath_kCW_Direction'>kCW_Direction</a>, <a href='#SkPath_addRRect_2_rrect'>rrect</a>
+winds clockwise; if <a href='#SkPath_addRRect_2_dir'>dir</a> is <a href='#SkPath_kCCW_Direction'>kCCW_Direction</a>, <a href='#SkPath_addRRect_2_rrect'>rrect</a> winds counterclockwise.
+<a href='#SkPath_addRRect_2_start'>start</a> determines the first <a href='SkPoint_Reference#Point'>point</a> of <a href='#SkPath_addRRect_2_rrect'>rrect</a> to add.
| <a href='#SkPath_addRRect_2_start'>start</a> | location |
| --- | --- |
@@ -4028,7 +4028,7 @@
| 6 | top of bottom-left corner |
| 7 | bottom of top-left corner |
-After appending, <a href='SkPath_Reference#Path'>Path</a> <a href='SkPath_Reference#Path'>may</a> <a href='SkPath_Reference#Path'>be</a> <a href='SkPath_Reference#Path'>empty</a>, <a href='SkPath_Reference#Path'>or</a> <a href='SkPath_Reference#Path'>may</a> <a href='SkPath_Reference#Path'>contain</a>: <a href='SkRect_Reference#Rect'>Rect</a>, <a href='undocumented#Oval'>Oval</a>, <a href='undocumented#Oval'>or</a> <a href='#RRect'>Round_Rect</a>.
+After appending, <a href='SkPath_Reference#Path'>Path</a> may be empty, or may contain: <a href='SkRect_Reference#Rect'>Rect</a>, <a href='undocumented#Oval'>Oval</a>, or <a href='#RRect'>Round_Rect</a>.
### Parameters
@@ -4036,10 +4036,10 @@
<td>bounds and radii of rounded rectangle</td>
</tr>
<tr> <td><a name='SkPath_addRRect_2_dir'><code><strong>dir</strong></code></a></td>
- <td><a href='#SkPath_Direction'>Direction</a> <a href='#SkPath_Direction'>to</a> <a href='#SkPath_Direction'>wind</a> <a href='#RRect'>Round_Rect</a></td>
+ <td><a href='#SkPath_Direction'>Direction</a> to wind <a href='#RRect'>Round_Rect</a></td>
</tr>
<tr> <td><a name='SkPath_addRRect_2_start'><code><strong>start</strong></code></a></td>
- <td>index of initial <a href='SkPoint_Reference#Point'>point</a> <a href='SkPoint_Reference#Point'>of</a> <a href='#RRect'>Round_Rect</a></td>
+ <td>index of initial <a href='SkPoint_Reference#Point'>point</a> of <a href='#RRect'>Round_Rect</a></td>
</tr>
</table>
@@ -4060,27 +4060,27 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-<a href='SkPath_Reference#SkPath'>SkPath</a>& <a href='#SkPath_addPoly'>addPoly</a>(<a href='#SkPath_addPoly'>const</a> <a href='SkPoint_Reference#SkPoint'>SkPoint</a> <a href='SkPoint_Reference#SkPoint'>pts</a>[], <a href='SkPoint_Reference#SkPoint'>int</a> <a href='SkPoint_Reference#SkPoint'>count</a>, <a href='SkPoint_Reference#SkPoint'>bool</a> <a href='SkPoint_Reference#SkPoint'>close</a>)
+<a href='SkPath_Reference#SkPath'>SkPath</a>& <a href='#SkPath_addPoly'>addPoly</a>(const <a href='SkPoint_Reference#SkPoint'>SkPoint</a> pts[], int count, bool close)
</pre>
-Adds <a href='SkPath_Overview#Contour'>contour</a> <a href='SkPath_Overview#Contour'>created</a> <a href='SkPath_Overview#Contour'>from</a> <a href='undocumented#Line'>line</a> <a href='undocumented#Line'>array</a>, <a href='undocumented#Line'>adding</a> (<a href='#SkPath_addPoly_count'>count</a> - 1) <a href='undocumented#Line'>line</a> <a href='undocumented#Line'>segments</a>.
-<a href='SkPath_Overview#Contour'>Contour</a> <a href='SkPath_Overview#Contour'>added</a> <a href='SkPath_Overview#Contour'>starts</a> <a href='SkPath_Overview#Contour'>at</a> <a href='#SkPath_addPoly_pts'>pts</a>[0], <a href='#SkPath_addPoly_pts'>then</a> <a href='#SkPath_addPoly_pts'>adds</a> <a href='#SkPath_addPoly_pts'>a</a> <a href='undocumented#Line'>line</a> <a href='undocumented#Line'>for</a> <a href='undocumented#Line'>every</a> <a href='undocumented#Line'>additional</a> <a href='SkPoint_Reference#SkPoint'>SkPoint</a>
-in <a href='#SkPath_addPoly_pts'>pts</a> <a href='#SkPath_addPoly_pts'>array</a>. <a href='#SkPath_addPoly_pts'>If</a> <a href='#SkPath_addPoly_close'>close</a> <a href='#SkPath_addPoly_close'>is</a> <a href='#SkPath_addPoly_close'>true</a>, <a href='#SkPath_addPoly_close'>appends</a> <a href='#SkPath_kClose_Verb'>kClose_Verb</a> <a href='#SkPath_kClose_Verb'>to</a> <a href='SkPath_Reference#SkPath'>SkPath</a>, <a href='SkPath_Reference#SkPath'>connecting</a>
-<a href='#SkPath_addPoly_pts'>pts</a>[<a href='#SkPath_addPoly_count'>count</a> - 1] <a href='#SkPath_addPoly_count'>and</a> <a href='#SkPath_addPoly_pts'>pts</a>[0].
+Adds <a href='SkPath_Overview#Contour'>contour</a> created from <a href='undocumented#Line'>line</a> array, adding (<a href='#SkPath_addPoly_count'>count</a> - 1) <a href='undocumented#Line'>line</a> segments.
+<a href='SkPath_Overview#Contour'>Contour</a> added starts at <a href='#SkPath_addPoly_pts'>pts</a>[0], then adds a <a href='undocumented#Line'>line</a> for every additional <a href='SkPoint_Reference#SkPoint'>SkPoint</a>
+in <a href='#SkPath_addPoly_pts'>pts</a> array. If <a href='#SkPath_addPoly_close'>close</a> is true, appends <a href='#SkPath_kClose_Verb'>kClose_Verb</a> to <a href='SkPath_Reference#SkPath'>SkPath</a>, connecting
+<a href='#SkPath_addPoly_pts'>pts</a>[<a href='#SkPath_addPoly_count'>count</a> - 1] and <a href='#SkPath_addPoly_pts'>pts</a>[0].
-If <a href='#SkPath_addPoly_count'>count</a> <a href='#SkPath_addPoly_count'>is</a> <a href='#SkPath_addPoly_count'>zero</a>, <a href='#SkPath_addPoly_count'>append</a> <a href='#SkPath_kMove_Verb'>kMove_Verb</a> <a href='#SkPath_kMove_Verb'>to</a> <a href='SkPath_Reference#Path'>path</a>.
-Has no effect if <a href='#SkPath_addPoly_count'>count</a> <a href='#SkPath_addPoly_count'>is</a> <a href='#SkPath_addPoly_count'>less</a> <a href='#SkPath_addPoly_count'>than</a> <a href='#SkPath_addPoly_count'>one</a>.
+If <a href='#SkPath_addPoly_count'>count</a> is zero, append <a href='#SkPath_kMove_Verb'>kMove_Verb</a> to <a href='SkPath_Reference#Path'>path</a>.
+Has no effect if <a href='#SkPath_addPoly_count'>count</a> is less than one.
### Parameters
<table> <tr> <td><a name='SkPath_addPoly_pts'><code><strong>pts</strong></code></a></td>
- <td>array of <a href='undocumented#Line'>line</a> <a href='undocumented#Line'>sharing</a> <a href='undocumented#Line'>end</a> <a href='undocumented#Line'>and</a> <a href='undocumented#Line'>start</a> <a href='SkPoint_Reference#SkPoint'>SkPoint</a></td>
+ <td>array of <a href='undocumented#Line'>line</a> sharing end and start <a href='SkPoint_Reference#SkPoint'>SkPoint</a></td>
</tr>
<tr> <td><a name='SkPath_addPoly_count'><code><strong>count</strong></code></a></td>
<td>length of <a href='SkPath_Reference#Point_Array'>SkPoint array</a></td>
</tr>
<tr> <td><a name='SkPath_addPoly_close'><code><strong>close</strong></code></a></td>
- <td>true to add <a href='undocumented#Line'>line</a> <a href='undocumented#Line'>connecting</a> <a href='SkPath_Overview#Contour'>contour</a> <a href='SkPath_Overview#Contour'>end</a> <a href='SkPath_Overview#Contour'>and</a> <a href='SkPath_Overview#Contour'>start</a></td>
+ <td>true to add <a href='undocumented#Line'>line</a> connecting <a href='SkPath_Overview#Contour'>contour</a> end and start</td>
</tr>
</table>
@@ -4101,14 +4101,14 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-<a href='SkPath_Reference#SkPath'>SkPath</a>& <a href='#SkPath_addPoly'>addPoly</a>(<a href='#SkPath_addPoly'>const</a> <a href='#SkPath_addPoly'>std</a>::<a href='#SkPath_addPoly'>initializer_list</a>&<a href='#SkPath_addPoly'>lt</a>;<a href='SkPoint_Reference#SkPoint'>SkPoint</a>&<a href='SkPoint_Reference#SkPoint'>gt</a>;& <a href='SkPoint_Reference#SkPoint'>list</a>, <a href='SkPoint_Reference#SkPoint'>bool</a> <a href='SkPoint_Reference#SkPoint'>close</a>)
+<a href='SkPath_Reference#SkPath'>SkPath</a>& <a href='#SkPath_addPoly'>addPoly</a>(const std::initializer_list<<a href='SkPoint_Reference#SkPoint'>SkPoint</a>>& list, bool close)
</pre>
-Adds <a href='SkPath_Overview#Contour'>contour</a> <a href='SkPath_Overview#Contour'>created</a> <a href='SkPath_Overview#Contour'>from</a> <a href='#SkPath_addPoly_2_list'>list</a>. <a href='SkPath_Overview#Contour'>Contour</a> <a href='SkPath_Overview#Contour'>added</a> <a href='SkPath_Overview#Contour'>starts</a> <a href='SkPath_Overview#Contour'>at</a> <a href='#SkPath_addPoly_2_list'>list</a>[0], <a href='#SkPath_addPoly_2_list'>then</a> <a href='#SkPath_addPoly_2_list'>adds</a> <a href='#SkPath_addPoly_2_list'>a</a> <a href='undocumented#Line'>line</a>
-for every additional <a href='SkPoint_Reference#SkPoint'>SkPoint</a> <a href='SkPoint_Reference#SkPoint'>in</a> <a href='#SkPath_addPoly_2_list'>list</a>. <a href='#SkPath_addPoly_2_list'>If</a> <a href='#SkPath_addPoly_2_close'>close</a> <a href='#SkPath_addPoly_2_close'>is</a> <a href='#SkPath_addPoly_2_close'>true</a>, <a href='#SkPath_addPoly_2_close'>appends</a> <a href='#SkPath_kClose_Verb'>kClose_Verb</a> <a href='#SkPath_kClose_Verb'>to</a> <a href='SkPath_Reference#SkPath'>SkPath</a>,
-connecting last and first <a href='SkPoint_Reference#SkPoint'>SkPoint</a> <a href='SkPoint_Reference#SkPoint'>in</a> <a href='#SkPath_addPoly_2_list'>list</a>.
+Adds <a href='SkPath_Overview#Contour'>contour</a> created from <a href='#SkPath_addPoly_2_list'>list</a>. <a href='SkPath_Overview#Contour'>Contour</a> added starts at <a href='#SkPath_addPoly_2_list'>list</a>[0], then adds a <a href='undocumented#Line'>line</a>
+for every additional <a href='SkPoint_Reference#SkPoint'>SkPoint</a> in <a href='#SkPath_addPoly_2_list'>list</a>. If <a href='#SkPath_addPoly_2_close'>close</a> is true, appends <a href='#SkPath_kClose_Verb'>kClose_Verb</a> to <a href='SkPath_Reference#SkPath'>SkPath</a>,
+connecting last and first <a href='SkPoint_Reference#SkPoint'>SkPoint</a> in <a href='#SkPath_addPoly_2_list'>list</a>.
-If <a href='#SkPath_addPoly_2_list'>list</a> <a href='#SkPath_addPoly_2_list'>is</a> <a href='#SkPath_addPoly_2_list'>empty</a>, <a href='#SkPath_addPoly_2_list'>append</a> <a href='#SkPath_kMove_Verb'>kMove_Verb</a> <a href='#SkPath_kMove_Verb'>to</a> <a href='SkPath_Reference#Path'>path</a>.
+If <a href='#SkPath_addPoly_2_list'>list</a> is empty, append <a href='#SkPath_kMove_Verb'>kMove_Verb</a> to <a href='SkPath_Reference#Path'>path</a>.
### Parameters
@@ -4116,7 +4116,7 @@
<td>array of <a href='SkPoint_Reference#SkPoint'>SkPoint</a></td>
</tr>
<tr> <td><a name='SkPath_addPoly_2_close'><code><strong>close</strong></code></a></td>
- <td>true to add <a href='undocumented#Line'>line</a> <a href='undocumented#Line'>connecting</a> <a href='SkPath_Overview#Contour'>contour</a> <a href='SkPath_Overview#Contour'>end</a> <a href='SkPath_Overview#Contour'>and</a> <a href='SkPath_Overview#Contour'>start</a></td>
+ <td>true to add <a href='undocumented#Line'>line</a> connecting <a href='SkPath_Overview#Contour'>contour</a> end and start</td>
</tr>
</table>
@@ -4143,8 +4143,8 @@
};
</pre>
-<a href='#SkPath_AddPathMode'>AddPathMode</a> <a href='#SkPath_AddPathMode'>chooses</a> <a href='#SkPath_AddPathMode'>how</a> <a href='#SkPath_addPath'>addPath</a> <a href='#SkPath_addPath'>appends</a>. <a href='#SkPath_addPath'>Adding</a> <a href='#SkPath_addPath'>one</a> <a href='SkPath_Reference#Path'>Path</a> <a href='SkPath_Reference#Path'>to</a> <a href='SkPath_Reference#Path'>another</a> <a href='SkPath_Reference#Path'>can</a> <a href='SkPath_Reference#Path'>extend</a>
-<a href='SkPath_Reference#Path'>the</a> <a href='SkPath_Reference#Path'>last</a> <a href='SkPath_Overview#Contour'>Contour</a> <a href='SkPath_Overview#Contour'>or</a> <a href='SkPath_Overview#Contour'>start</a> <a href='SkPath_Overview#Contour'>a</a> <a href='SkPath_Overview#Contour'>new</a> <a href='SkPath_Overview#Contour'>Contour</a>.
+<a href='#SkPath_AddPathMode'>AddPathMode</a> chooses how <a href='#SkPath_addPath'>addPath</a> appends. Adding one <a href='SkPath_Reference#Path'>Path</a> to another can extend
+the last <a href='SkPath_Overview#Contour'>Contour</a> or start a new <a href='SkPath_Overview#Contour'>Contour</a>.
### Constants
@@ -4156,27 +4156,27 @@
<td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a name='SkPath_kAppend_AddPathMode'><code>SkPath::kAppend_AddPathMode</code></a></td>
<td style='text-align: center; border: 2px solid #dddddd; padding: 8px; '>#Line # appended to destination unaltered ##</td>
<td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>
-<a href='SkPath_Reference#Path'>Path</a> <a href='SkPath_Reference#Verb'>Verbs</a>, <a href='SkPoint_Reference#Point'>Points</a>, <a href='SkPoint_Reference#Point'>and</a> <a href='#Path_Conic_Weight'>Conic_Weights</a> <a href='#Path_Conic_Weight'>are</a> <a href='#Path_Conic_Weight'>appended</a> <a href='#Path_Conic_Weight'>to</a> <a href='#Path_Conic_Weight'>destination</a> <a href='#Path_Conic_Weight'>unaltered</a>.
-<a href='#Path_Conic_Weight'>Since</a> <a href='SkPath_Reference#Path'>Path</a> <a href='#Path_Verb_Array'>Verb_Array</a> <a href='#Path_Verb_Array'>begins</a> <a href='#Path_Verb_Array'>with</a> <a href='#SkPath_kMove_Verb'>kMove_Verb</a> <a href='#SkPath_kMove_Verb'>if</a> <a href='#SkPath_kMove_Verb'>src</a> <a href='#SkPath_kMove_Verb'>is</a> <a href='#SkPath_kMove_Verb'>not</a> <a href='#SkPath_kMove_Verb'>empty</a>, <a href='#SkPath_kMove_Verb'>this</a>
-<a href='#SkPath_kMove_Verb'>starts</a> <a href='#SkPath_kMove_Verb'>a</a> <a href='#SkPath_kMove_Verb'>new</a> <a href='SkPath_Overview#Contour'>Contour</a>.
+<a href='SkPath_Reference#Path'>Path</a> <a href='SkPath_Reference#Verb'>Verbs</a>, <a href='SkPoint_Reference#Point'>Points</a>, and <a href='#Path_Conic_Weight'>Conic_Weights</a> are appended to destination unaltered.
+Since <a href='SkPath_Reference#Path'>Path</a> <a href='#Path_Verb_Array'>Verb_Array</a> begins with <a href='#SkPath_kMove_Verb'>kMove_Verb</a> if src is not empty, this
+starts a new <a href='SkPath_Overview#Contour'>Contour</a>.
</td>
</tr>
<tr>
<td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a name='SkPath_kExtend_AddPathMode'><code>SkPath::kExtend_AddPathMode</code></a></td>
<td style='text-align: center; border: 2px solid #dddddd; padding: 8px; '>#Line # add line if prior Contour is not closed ##</td>
<td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>
-If destination is closed or empty, start a new <a href='SkPath_Overview#Contour'>Contour</a>. <a href='SkPath_Overview#Contour'>If</a> <a href='SkPath_Overview#Contour'>destination</a>
-<a href='SkPath_Overview#Contour'>is</a> <a href='SkPath_Overview#Contour'>not</a> <a href='SkPath_Overview#Contour'>empty</a>, <a href='SkPath_Overview#Contour'>add</a> <a href='undocumented#Line'>Line</a> <a href='undocumented#Line'>from</a> <a href='#Path_Last_Point'>Last_Point</a> <a href='#Path_Last_Point'>to</a> <a href='#Path_Last_Point'>added</a> <a href='SkPath_Reference#Path'>Path</a> <a href='SkPath_Reference#Path'>first</a> <a href='SkPoint_Reference#Point'>Point</a>. <a href='SkPoint_Reference#Point'>Skip</a> <a href='SkPoint_Reference#Point'>added</a>
-<a href='SkPath_Reference#Path'>Path</a> <a href='SkPath_Reference#Path'>initial</a> <a href='#SkPath_kMove_Verb'>kMove_Verb</a>, <a href='#SkPath_kMove_Verb'>then</a> <a href='#SkPath_kMove_Verb'>append</a> <a href='#SkPath_kMove_Verb'>remaining</a> <a href='SkPath_Reference#Verb'>Verbs</a>, <a href='SkPoint_Reference#Point'>Points</a>, <a href='SkPoint_Reference#Point'>and</a> <a href='#Path_Conic_Weight'>Conic_Weights</a>.
+If destination is closed or empty, start a new <a href='SkPath_Overview#Contour'>Contour</a>. If destination
+is not empty, add <a href='undocumented#Line'>Line</a> from <a href='#Path_Last_Point'>Last_Point</a> to added <a href='SkPath_Reference#Path'>Path</a> first <a href='SkPoint_Reference#Point'>Point</a>. Skip added
+<a href='SkPath_Reference#Path'>Path</a> initial <a href='#SkPath_kMove_Verb'>kMove_Verb</a>, then append remaining <a href='SkPath_Reference#Verb'>Verbs</a>, <a href='SkPoint_Reference#Point'>Points</a>, and <a href='#Path_Conic_Weight'>Conic_Weights</a>.
</td>
</tr>
</table>
### Example
-<div><fiddle-embed name="801b02e74c64aafdb734f2e5cf3e5ab0"><div>test is built from <a href='SkPath_Reference#Path'>path</a>, <a href='SkPath_Reference#Path'>open</a> <a href='SkPath_Reference#Path'>on</a> <a href='SkPath_Reference#Path'>the</a> <a href='SkPath_Reference#Path'>top</a> <a href='SkPath_Reference#Path'>row</a>, <a href='SkPath_Reference#Path'>and</a> <a href='SkPath_Reference#Path'>closed</a> <a href='SkPath_Reference#Path'>on</a> <a href='SkPath_Reference#Path'>the</a> <a href='SkPath_Reference#Path'>bottom</a> <a href='SkPath_Reference#Path'>row</a>.
-<a href='SkPath_Reference#Path'>The</a> <a href='SkPath_Reference#Path'>left</a> <a href='SkPath_Reference#Path'>column</a> <a href='SkPath_Reference#Path'>uses</a> <a href='#SkPath_kAppend_AddPathMode'>kAppend_AddPathMode</a>; <a href='#SkPath_kAppend_AddPathMode'>the</a> <a href='#SkPath_kAppend_AddPathMode'>right</a> <a href='#SkPath_kAppend_AddPathMode'>uses</a> <a href='#SkPath_kExtend_AddPathMode'>kExtend_AddPathMode</a>.
-<a href='#SkPath_kExtend_AddPathMode'>The</a> <a href='#SkPath_kExtend_AddPathMode'>top</a> <a href='#SkPath_kExtend_AddPathMode'>right</a> <a href='#SkPath_kExtend_AddPathMode'>composition</a> <a href='#SkPath_kExtend_AddPathMode'>is</a> <a href='#SkPath_kExtend_AddPathMode'>made</a> <a href='#SkPath_kExtend_AddPathMode'>up</a> <a href='#SkPath_kExtend_AddPathMode'>of</a> <a href='#SkPath_kExtend_AddPathMode'>one</a> <a href='SkPath_Overview#Contour'>contour</a>; <a href='SkPath_Overview#Contour'>the</a> <a href='SkPath_Overview#Contour'>other</a> <a href='SkPath_Overview#Contour'>three</a> <a href='SkPath_Overview#Contour'>have</a> <a href='SkPath_Overview#Contour'>two</a>.
+<div><fiddle-embed name="801b02e74c64aafdb734f2e5cf3e5ab0"><div>test is built from <a href='SkPath_Reference#Path'>path</a>, open on the top row, and closed on the bottom row.
+The left column uses <a href='#SkPath_kAppend_AddPathMode'>kAppend_AddPathMode</a>; the right uses <a href='#SkPath_kExtend_AddPathMode'>kExtend_AddPathMode</a>.
+The top right composition is made up of one <a href='SkPath_Overview#Contour'>contour</a>; the other three have two.
</div></fiddle-embed></div>
### See Also
@@ -4188,28 +4188,28 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-<a href='SkPath_Reference#SkPath'>SkPath</a>& <a href='#SkPath_addPath'>addPath</a>(<a href='#SkPath_addPath'>const</a> <a href='SkPath_Reference#SkPath'>SkPath</a>& <a href='SkPath_Reference#SkPath'>src</a>, <a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>dx</a>, <a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>dy</a>, <a href='#SkPath_AddPathMode'>AddPathMode</a> <a href='#SkPath_AddPathMode'>mode</a> = <a href='#SkPath_kAppend_AddPathMode'>kAppend_AddPathMode</a>)
+<a href='SkPath_Reference#SkPath'>SkPath</a>& <a href='#SkPath_addPath'>addPath</a>(const <a href='SkPath_Reference#SkPath'>SkPath</a>& src, <a href='undocumented#SkScalar'>SkScalar</a> dx, <a href='undocumented#SkScalar'>SkScalar</a> dy, <a href='#SkPath_AddPathMode'>AddPathMode</a> mode = <a href='#SkPath_kAppend_AddPathMode'>kAppend_AddPathMode</a>)
</pre>
-Appends <a href='#SkPath_addPath_src'>src</a> <a href='#SkPath_addPath_src'>to</a> <a href='SkPath_Reference#SkPath'>SkPath</a>, <a href='SkPath_Reference#SkPath'>offset</a> <a href='SkPath_Reference#SkPath'>by</a> (<a href='#SkPath_addPath_dx'>dx</a>, <a href='#SkPath_addPath_dy'>dy</a>).
+Appends <a href='#SkPath_addPath_src'>src</a> to <a href='SkPath_Reference#SkPath'>SkPath</a>, offset by (<a href='#SkPath_addPath_dx'>dx</a>, <a href='#SkPath_addPath_dy'>dy</a>).
-If <a href='#SkPath_addPath_mode'>mode</a> <a href='#SkPath_addPath_mode'>is</a> <a href='#SkPath_kAppend_AddPathMode'>kAppend_AddPathMode</a>, <a href='#SkPath_addPath_src'>src</a> <a href='#Verb_Array'>verb array</a>, <a href='SkPath_Reference#Point_Array'>SkPoint array</a>, <a href='SkPoint_Reference#SkPoint'>and</a> <a href='SkPath_Reference#Conic_Weight'>conic weights</a> <a href='SkPath_Reference#Conic'>are</a>
-added unaltered. If <a href='#SkPath_addPath_mode'>mode</a> <a href='#SkPath_addPath_mode'>is</a> <a href='#SkPath_kExtend_AddPathMode'>kExtend_AddPathMode</a>, <a href='#SkPath_kExtend_AddPathMode'>add</a> <a href='undocumented#Line'>line</a> <a href='undocumented#Line'>before</a> <a href='undocumented#Line'>appending</a>
-<a href='SkPath_Reference#Verb'>verbs</a>, <a href='SkPoint_Reference#SkPoint'>SkPoint</a>, <a href='SkPoint_Reference#SkPoint'>and</a> <a href='SkPath_Reference#Conic_Weight'>conic weights</a>.
+If <a href='#SkPath_addPath_mode'>mode</a> is <a href='#SkPath_kAppend_AddPathMode'>kAppend_AddPathMode</a>, <a href='#SkPath_addPath_src'>src</a> <a href='#Verb_Array'>verb array</a>, <a href='SkPath_Reference#Point_Array'>SkPoint array</a>, and <a href='SkPath_Reference#Conic_Weight'>conic weights</a> are
+added unaltered. If <a href='#SkPath_addPath_mode'>mode</a> is <a href='#SkPath_kExtend_AddPathMode'>kExtend_AddPathMode</a>, add <a href='undocumented#Line'>line</a> before appending
+<a href='SkPath_Reference#Verb'>verbs</a>, <a href='SkPoint_Reference#SkPoint'>SkPoint</a>, and <a href='SkPath_Reference#Conic_Weight'>conic weights</a>.
### Parameters
<table> <tr> <td><a name='SkPath_addPath_src'><code><strong>src</strong></code></a></td>
- <td><a href='SkPath_Reference#SkPath'>SkPath</a> <a href='SkPath_Reference#Verb'>verbs</a>, <a href='SkPoint_Reference#SkPoint'>SkPoint</a>, <a href='SkPoint_Reference#SkPoint'>and</a> <a href='SkPath_Reference#Conic_Weight'>conic weights</a> <a href='SkPath_Reference#Conic'>to</a> <a href='SkPath_Reference#Conic'>add</a></td>
+ <td><a href='SkPath_Reference#SkPath'>SkPath</a> <a href='SkPath_Reference#Verb'>verbs</a>, <a href='SkPoint_Reference#SkPoint'>SkPoint</a>, and <a href='SkPath_Reference#Conic_Weight'>conic weights</a> to add</td>
</tr>
<tr> <td><a name='SkPath_addPath_dx'><code><strong>dx</strong></code></a></td>
- <td>offset added to <a href='#SkPath_addPath_src'>src</a> <a href='SkPath_Reference#Point_Array'>SkPoint array</a> <a href='SkPoint_Reference#SkPoint'>x-axis</a> <a href='SkPoint_Reference#SkPoint'>coordinates</a></td>
+ <td>offset added to <a href='#SkPath_addPath_src'>src</a> <a href='SkPath_Reference#Point_Array'>SkPoint array</a> x-axis coordinates</td>
</tr>
<tr> <td><a name='SkPath_addPath_dy'><code><strong>dy</strong></code></a></td>
- <td>offset added to <a href='#SkPath_addPath_src'>src</a> <a href='SkPath_Reference#Point_Array'>SkPoint array</a> <a href='SkPoint_Reference#SkPoint'>y-axis</a> <a href='SkPoint_Reference#SkPoint'>coordinates</a></td>
+ <td>offset added to <a href='#SkPath_addPath_src'>src</a> <a href='SkPath_Reference#Point_Array'>SkPoint array</a> y-axis coordinates</td>
</tr>
<tr> <td><a name='SkPath_addPath_mode'><code><strong>mode</strong></code></a></td>
- <td><a href='#SkPath_kAppend_AddPathMode'>kAppend_AddPathMode</a> <a href='#SkPath_kAppend_AddPathMode'>or</a> <a href='#SkPath_kExtend_AddPathMode'>kExtend_AddPathMode</a></td>
+ <td><a href='#SkPath_kAppend_AddPathMode'>kAppend_AddPathMode</a> or <a href='#SkPath_kExtend_AddPathMode'>kExtend_AddPathMode</a></td>
</tr>
</table>
@@ -4230,22 +4230,22 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-<a href='SkPath_Reference#SkPath'>SkPath</a>& <a href='#SkPath_addPath'>addPath</a>(<a href='#SkPath_addPath'>const</a> <a href='SkPath_Reference#SkPath'>SkPath</a>& <a href='SkPath_Reference#SkPath'>src</a>, <a href='#SkPath_AddPathMode'>AddPathMode</a> <a href='#SkPath_AddPathMode'>mode</a> = <a href='#SkPath_kAppend_AddPathMode'>kAppend_AddPathMode</a>)
+<a href='SkPath_Reference#SkPath'>SkPath</a>& <a href='#SkPath_addPath'>addPath</a>(const <a href='SkPath_Reference#SkPath'>SkPath</a>& src, <a href='#SkPath_AddPathMode'>AddPathMode</a> mode = <a href='#SkPath_kAppend_AddPathMode'>kAppend_AddPathMode</a>)
</pre>
-Appends <a href='#SkPath_addPath_2_src'>src</a> <a href='#SkPath_addPath_2_src'>to</a> <a href='SkPath_Reference#SkPath'>SkPath</a>.
+Appends <a href='#SkPath_addPath_2_src'>src</a> to <a href='SkPath_Reference#SkPath'>SkPath</a>.
-If <a href='#SkPath_addPath_2_mode'>mode</a> <a href='#SkPath_addPath_2_mode'>is</a> <a href='#SkPath_kAppend_AddPathMode'>kAppend_AddPathMode</a>, <a href='#SkPath_addPath_2_src'>src</a> <a href='#Verb_Array'>verb array</a>, <a href='SkPath_Reference#Point_Array'>SkPoint array</a>, <a href='SkPoint_Reference#SkPoint'>and</a> <a href='SkPath_Reference#Conic_Weight'>conic weights</a> <a href='SkPath_Reference#Conic'>are</a>
-added unaltered. If <a href='#SkPath_addPath_2_mode'>mode</a> <a href='#SkPath_addPath_2_mode'>is</a> <a href='#SkPath_kExtend_AddPathMode'>kExtend_AddPathMode</a>, <a href='#SkPath_kExtend_AddPathMode'>add</a> <a href='undocumented#Line'>line</a> <a href='undocumented#Line'>before</a> <a href='undocumented#Line'>appending</a>
-<a href='SkPath_Reference#Verb'>verbs</a>, <a href='SkPoint_Reference#SkPoint'>SkPoint</a>, <a href='SkPoint_Reference#SkPoint'>and</a> <a href='SkPath_Reference#Conic_Weight'>conic weights</a>.
+If <a href='#SkPath_addPath_2_mode'>mode</a> is <a href='#SkPath_kAppend_AddPathMode'>kAppend_AddPathMode</a>, <a href='#SkPath_addPath_2_src'>src</a> <a href='#Verb_Array'>verb array</a>, <a href='SkPath_Reference#Point_Array'>SkPoint array</a>, and <a href='SkPath_Reference#Conic_Weight'>conic weights</a> are
+added unaltered. If <a href='#SkPath_addPath_2_mode'>mode</a> is <a href='#SkPath_kExtend_AddPathMode'>kExtend_AddPathMode</a>, add <a href='undocumented#Line'>line</a> before appending
+<a href='SkPath_Reference#Verb'>verbs</a>, <a href='SkPoint_Reference#SkPoint'>SkPoint</a>, and <a href='SkPath_Reference#Conic_Weight'>conic weights</a>.
### Parameters
<table> <tr> <td><a name='SkPath_addPath_2_src'><code><strong>src</strong></code></a></td>
- <td><a href='SkPath_Reference#SkPath'>SkPath</a> <a href='SkPath_Reference#Verb'>verbs</a>, <a href='SkPoint_Reference#SkPoint'>SkPoint</a>, <a href='SkPoint_Reference#SkPoint'>and</a> <a href='SkPath_Reference#Conic_Weight'>conic weights</a> <a href='SkPath_Reference#Conic'>to</a> <a href='SkPath_Reference#Conic'>add</a></td>
+ <td><a href='SkPath_Reference#SkPath'>SkPath</a> <a href='SkPath_Reference#Verb'>verbs</a>, <a href='SkPoint_Reference#SkPoint'>SkPoint</a>, and <a href='SkPath_Reference#Conic_Weight'>conic weights</a> to add</td>
</tr>
<tr> <td><a name='SkPath_addPath_2_mode'><code><strong>mode</strong></code></a></td>
- <td><a href='#SkPath_kAppend_AddPathMode'>kAppend_AddPathMode</a> <a href='#SkPath_kAppend_AddPathMode'>or</a> <a href='#SkPath_kExtend_AddPathMode'>kExtend_AddPathMode</a></td>
+ <td><a href='#SkPath_kAppend_AddPathMode'>kAppend_AddPathMode</a> or <a href='#SkPath_kExtend_AddPathMode'>kExtend_AddPathMode</a></td>
</tr>
</table>
@@ -4266,26 +4266,26 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-<a href='SkPath_Reference#SkPath'>SkPath</a>& <a href='#SkPath_addPath'>addPath</a>(<a href='#SkPath_addPath'>const</a> <a href='SkPath_Reference#SkPath'>SkPath</a>& <a href='SkPath_Reference#SkPath'>src</a>, <a href='SkPath_Reference#SkPath'>const</a> <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a>& <a href='SkMatrix_Reference#Matrix'>matrix</a>, <a href='#SkPath_AddPathMode'>AddPathMode</a> <a href='#SkPath_AddPathMode'>mode</a> = <a href='#SkPath_kAppend_AddPathMode'>kAppend_AddPathMode</a>)
+<a href='SkPath_Reference#SkPath'>SkPath</a>& <a href='#SkPath_addPath'>addPath</a>(const <a href='SkPath_Reference#SkPath'>SkPath</a>& src, const <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a>& <a href='SkMatrix_Reference#Matrix'>matrix</a>, <a href='#SkPath_AddPathMode'>AddPathMode</a> mode = <a href='#SkPath_kAppend_AddPathMode'>kAppend_AddPathMode</a>)
</pre>
-Appends <a href='#SkPath_addPath_3_src'>src</a> <a href='#SkPath_addPath_3_src'>to</a> <a href='SkPath_Reference#SkPath'>SkPath</a>, <a href='SkPath_Reference#SkPath'>transformed</a> <a href='SkPath_Reference#SkPath'>by</a> <a href='#SkPath_addPath_3_matrix'>matrix</a>. <a href='#SkPath_addPath_3_matrix'>Transformed</a> <a href='undocumented#Curve'>curves</a> <a href='undocumented#Curve'>may</a> <a href='undocumented#Curve'>have</a> <a href='undocumented#Curve'>different</a>
-<a href='SkPath_Reference#Verb'>verbs</a>, <a href='SkPoint_Reference#SkPoint'>SkPoint</a>, <a href='SkPoint_Reference#SkPoint'>and</a> <a href='SkPath_Reference#Conic_Weight'>conic weights</a>.
+Appends <a href='#SkPath_addPath_3_src'>src</a> to <a href='SkPath_Reference#SkPath'>SkPath</a>, transformed by <a href='#SkPath_addPath_3_matrix'>matrix</a>. Transformed <a href='undocumented#Curve'>curves</a> may have different
+<a href='SkPath_Reference#Verb'>verbs</a>, <a href='SkPoint_Reference#SkPoint'>SkPoint</a>, and <a href='SkPath_Reference#Conic_Weight'>conic weights</a>.
-If <a href='#SkPath_addPath_3_mode'>mode</a> <a href='#SkPath_addPath_3_mode'>is</a> <a href='#SkPath_kAppend_AddPathMode'>kAppend_AddPathMode</a>, <a href='#SkPath_addPath_3_src'>src</a> <a href='#Verb_Array'>verb array</a>, <a href='SkPath_Reference#Point_Array'>SkPoint array</a>, <a href='SkPoint_Reference#SkPoint'>and</a> <a href='SkPath_Reference#Conic_Weight'>conic weights</a> <a href='SkPath_Reference#Conic'>are</a>
-added unaltered. If <a href='#SkPath_addPath_3_mode'>mode</a> <a href='#SkPath_addPath_3_mode'>is</a> <a href='#SkPath_kExtend_AddPathMode'>kExtend_AddPathMode</a>, <a href='#SkPath_kExtend_AddPathMode'>add</a> <a href='undocumented#Line'>line</a> <a href='undocumented#Line'>before</a> <a href='undocumented#Line'>appending</a>
-<a href='SkPath_Reference#Verb'>verbs</a>, <a href='SkPoint_Reference#SkPoint'>SkPoint</a>, <a href='SkPoint_Reference#SkPoint'>and</a> <a href='SkPath_Reference#Conic_Weight'>conic weights</a>.
+If <a href='#SkPath_addPath_3_mode'>mode</a> is <a href='#SkPath_kAppend_AddPathMode'>kAppend_AddPathMode</a>, <a href='#SkPath_addPath_3_src'>src</a> <a href='#Verb_Array'>verb array</a>, <a href='SkPath_Reference#Point_Array'>SkPoint array</a>, and <a href='SkPath_Reference#Conic_Weight'>conic weights</a> are
+added unaltered. If <a href='#SkPath_addPath_3_mode'>mode</a> is <a href='#SkPath_kExtend_AddPathMode'>kExtend_AddPathMode</a>, add <a href='undocumented#Line'>line</a> before appending
+<a href='SkPath_Reference#Verb'>verbs</a>, <a href='SkPoint_Reference#SkPoint'>SkPoint</a>, and <a href='SkPath_Reference#Conic_Weight'>conic weights</a>.
### Parameters
<table> <tr> <td><a name='SkPath_addPath_3_src'><code><strong>src</strong></code></a></td>
- <td><a href='SkPath_Reference#SkPath'>SkPath</a> <a href='SkPath_Reference#Verb'>verbs</a>, <a href='SkPoint_Reference#SkPoint'>SkPoint</a>, <a href='SkPoint_Reference#SkPoint'>and</a> <a href='SkPath_Reference#Conic_Weight'>conic weights</a> <a href='SkPath_Reference#Conic'>to</a> <a href='SkPath_Reference#Conic'>add</a></td>
+ <td><a href='SkPath_Reference#SkPath'>SkPath</a> <a href='SkPath_Reference#Verb'>verbs</a>, <a href='SkPoint_Reference#SkPoint'>SkPoint</a>, and <a href='SkPath_Reference#Conic_Weight'>conic weights</a> to add</td>
</tr>
<tr> <td><a name='SkPath_addPath_3_matrix'><code><strong>matrix</strong></code></a></td>
<td>transform applied to <a href='#SkPath_addPath_3_src'>src</a></td>
</tr>
<tr> <td><a name='SkPath_addPath_3_mode'><code><strong>mode</strong></code></a></td>
- <td><a href='#SkPath_kAppend_AddPathMode'>kAppend_AddPathMode</a> <a href='#SkPath_kAppend_AddPathMode'>or</a> <a href='#SkPath_kExtend_AddPathMode'>kExtend_AddPathMode</a></td>
+ <td><a href='#SkPath_kAppend_AddPathMode'>kAppend_AddPathMode</a> or <a href='#SkPath_kExtend_AddPathMode'>kExtend_AddPathMode</a></td>
</tr>
</table>
@@ -4306,16 +4306,16 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-<a href='SkPath_Reference#SkPath'>SkPath</a>& <a href='#SkPath_reverseAddPath'>reverseAddPath</a>(<a href='#SkPath_reverseAddPath'>const</a> <a href='SkPath_Reference#SkPath'>SkPath</a>& <a href='SkPath_Reference#SkPath'>src</a>)
+<a href='SkPath_Reference#SkPath'>SkPath</a>& <a href='#SkPath_reverseAddPath'>reverseAddPath</a>(const <a href='SkPath_Reference#SkPath'>SkPath</a>& src)
</pre>
-Appends <a href='#SkPath_reverseAddPath_src'>src</a> <a href='#SkPath_reverseAddPath_src'>to</a> <a href='SkPath_Reference#SkPath'>SkPath</a>, <a href='SkPath_Reference#SkPath'>from</a> <a href='SkPath_Reference#SkPath'>back</a> <a href='SkPath_Reference#SkPath'>to</a> <a href='SkPath_Reference#SkPath'>front</a>.
-Reversed <a href='#SkPath_reverseAddPath_src'>src</a> <a href='#SkPath_reverseAddPath_src'>always</a> <a href='#SkPath_reverseAddPath_src'>appends</a> <a href='#SkPath_reverseAddPath_src'>a</a> <a href='#SkPath_reverseAddPath_src'>new</a> <a href='SkPath_Overview#Contour'>contour</a> <a href='SkPath_Overview#Contour'>to</a> <a href='SkPath_Reference#SkPath'>SkPath</a>.
+Appends <a href='#SkPath_reverseAddPath_src'>src</a> to <a href='SkPath_Reference#SkPath'>SkPath</a>, from back to front.
+Reversed <a href='#SkPath_reverseAddPath_src'>src</a> always appends a new <a href='SkPath_Overview#Contour'>contour</a> to <a href='SkPath_Reference#SkPath'>SkPath</a>.
### Parameters
<table> <tr> <td><a name='SkPath_reverseAddPath_src'><code><strong>src</strong></code></a></td>
- <td><a href='SkPath_Reference#SkPath'>SkPath</a> <a href='SkPath_Reference#Verb'>verbs</a>, <a href='SkPoint_Reference#SkPoint'>SkPoint</a>, <a href='SkPoint_Reference#SkPoint'>and</a> <a href='SkPath_Reference#Conic_Weight'>conic weights</a> <a href='SkPath_Reference#Conic'>to</a> <a href='SkPath_Reference#Conic'>add</a></td>
+ <td><a href='SkPath_Reference#SkPath'>SkPath</a> <a href='SkPath_Reference#Verb'>verbs</a>, <a href='SkPoint_Reference#SkPoint'>SkPoint</a>, and <a href='SkPath_Reference#Conic_Weight'>conic weights</a> to add</td>
</tr>
</table>
@@ -4336,22 +4336,22 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-void offset(<a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>dx</a>, <a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>dy</a>, <a href='SkPath_Reference#SkPath'>SkPath</a>* <a href='SkPath_Reference#SkPath'>dst</a>) <a href='SkPath_Reference#SkPath'>const</a>
+void offset(<a href='undocumented#SkScalar'>SkScalar</a> dx, <a href='undocumented#SkScalar'>SkScalar</a> dy, <a href='SkPath_Reference#SkPath'>SkPath</a>* dst) const
</pre>
-Offsets <a href='SkPath_Reference#Point_Array'>SkPoint array</a> <a href='SkPoint_Reference#SkPoint'>by</a> (<a href='#SkPath_offset_dx'>dx</a>, <a href='#SkPath_offset_dy'>dy</a>). <a href='#SkPath_offset_dy'>Offset</a> <a href='SkPath_Reference#SkPath'>SkPath</a> <a href='SkPath_Reference#SkPath'>replaces</a> <a href='#SkPath_offset_dst'>dst</a>.
-If <a href='#SkPath_offset_dst'>dst</a> <a href='#SkPath_offset_dst'>is</a> <a href='#SkPath_offset_dst'>nullptr</a>, <a href='SkPath_Reference#SkPath'>SkPath</a> <a href='SkPath_Reference#SkPath'>is</a> <a href='SkPath_Reference#SkPath'>replaced</a> <a href='SkPath_Reference#SkPath'>by</a> <a href='SkPath_Reference#SkPath'>offset</a> <a href='undocumented#Data'>data</a>.
+Offsets <a href='SkPath_Reference#Point_Array'>SkPoint array</a> by (<a href='#SkPath_offset_dx'>dx</a>, <a href='#SkPath_offset_dy'>dy</a>). Offset <a href='SkPath_Reference#SkPath'>SkPath</a> replaces <a href='#SkPath_offset_dst'>dst</a>.
+If <a href='#SkPath_offset_dst'>dst</a> is nullptr, <a href='SkPath_Reference#SkPath'>SkPath</a> is replaced by offset <a href='undocumented#Data'>data</a>.
### Parameters
<table> <tr> <td><a name='SkPath_offset_dx'><code><strong>dx</strong></code></a></td>
- <td>offset added to <a href='SkPath_Reference#Point_Array'>SkPoint array</a> <a href='SkPoint_Reference#SkPoint'>x-axis</a> <a href='SkPoint_Reference#SkPoint'>coordinates</a></td>
+ <td>offset added to <a href='SkPath_Reference#Point_Array'>SkPoint array</a> x-axis coordinates</td>
</tr>
<tr> <td><a name='SkPath_offset_dy'><code><strong>dy</strong></code></a></td>
- <td>offset added to <a href='SkPath_Reference#Point_Array'>SkPoint array</a> <a href='SkPoint_Reference#SkPoint'>y-axis</a> <a href='SkPoint_Reference#SkPoint'>coordinates</a></td>
+ <td>offset added to <a href='SkPath_Reference#Point_Array'>SkPoint array</a> y-axis coordinates</td>
</tr>
<tr> <td><a name='SkPath_offset_dst'><code><strong>dst</strong></code></a></td>
- <td>overwritten, translated copy of <a href='SkPath_Reference#SkPath'>SkPath</a>; <a href='SkPath_Reference#SkPath'>may</a> <a href='SkPath_Reference#SkPath'>be</a> <a href='SkPath_Reference#SkPath'>nullptr</a></td>
+ <td>overwritten, translated copy of <a href='SkPath_Reference#SkPath'>SkPath</a>; may be nullptr</td>
</tr>
</table>
@@ -4370,18 +4370,18 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-void offset(<a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>dx</a>, <a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>dy</a>)
+void offset(<a href='undocumented#SkScalar'>SkScalar</a> dx, <a href='undocumented#SkScalar'>SkScalar</a> dy)
</pre>
-Offsets <a href='SkPath_Reference#Point_Array'>SkPoint array</a> <a href='SkPoint_Reference#SkPoint'>by</a> (<a href='#SkPath_offset_2_dx'>dx</a>, <a href='#SkPath_offset_2_dy'>dy</a>). <a href='SkPath_Reference#SkPath'>SkPath</a> <a href='SkPath_Reference#SkPath'>is</a> <a href='SkPath_Reference#SkPath'>replaced</a> <a href='SkPath_Reference#SkPath'>by</a> <a href='SkPath_Reference#SkPath'>offset</a> <a href='undocumented#Data'>data</a>.
+Offsets <a href='SkPath_Reference#Point_Array'>SkPoint array</a> by (<a href='#SkPath_offset_2_dx'>dx</a>, <a href='#SkPath_offset_2_dy'>dy</a>). <a href='SkPath_Reference#SkPath'>SkPath</a> is replaced by offset <a href='undocumented#Data'>data</a>.
### Parameters
<table> <tr> <td><a name='SkPath_offset_2_dx'><code><strong>dx</strong></code></a></td>
- <td>offset added to <a href='SkPath_Reference#Point_Array'>SkPoint array</a> <a href='SkPoint_Reference#SkPoint'>x-axis</a> <a href='SkPoint_Reference#SkPoint'>coordinates</a></td>
+ <td>offset added to <a href='SkPath_Reference#Point_Array'>SkPoint array</a> x-axis coordinates</td>
</tr>
<tr> <td><a name='SkPath_offset_2_dy'><code><strong>dy</strong></code></a></td>
- <td>offset added to <a href='SkPath_Reference#Point_Array'>SkPoint array</a> <a href='SkPoint_Reference#SkPoint'>y-axis</a> <a href='SkPoint_Reference#SkPoint'>coordinates</a></td>
+ <td>offset added to <a href='SkPath_Reference#Point_Array'>SkPoint array</a> y-axis coordinates</td>
</tr>
</table>
@@ -4398,21 +4398,21 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-void transform(const <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a>& <a href='SkMatrix_Reference#Matrix'>matrix</a>, <a href='SkPath_Reference#SkPath'>SkPath</a>* <a href='SkPath_Reference#SkPath'>dst</a>) <a href='SkPath_Reference#SkPath'>const</a>
+void transform(const <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a>& <a href='SkMatrix_Reference#Matrix'>matrix</a>, <a href='SkPath_Reference#SkPath'>SkPath</a>* dst) const
</pre>
-Transforms <a href='#Verb_Array'>verb array</a>, <a href='SkPath_Reference#Point_Array'>SkPoint array</a>, <a href='SkPoint_Reference#SkPoint'>and</a> <a href='SkPoint_Reference#SkPoint'>weight</a> <a href='SkPoint_Reference#SkPoint'>by</a> <a href='#SkPath_transform_matrix'>matrix</a>.
-transform may change <a href='SkPath_Reference#Verb'>verbs</a> <a href='SkPath_Reference#Verb'>and</a> <a href='SkPath_Reference#Verb'>increase</a> <a href='SkPath_Reference#Verb'>their</a> <a href='SkPath_Reference#Verb'>number</a>.
-Transformed <a href='SkPath_Reference#SkPath'>SkPath</a> <a href='SkPath_Reference#SkPath'>replaces</a> <a href='#SkPath_transform_dst'>dst</a>; <a href='#SkPath_transform_dst'>if</a> <a href='#SkPath_transform_dst'>dst</a> <a href='#SkPath_transform_dst'>is</a> <a href='#SkPath_transform_dst'>nullptr</a>, <a href='#SkPath_transform_dst'>original</a> <a href='undocumented#Data'>data</a>
+Transforms <a href='#Verb_Array'>verb array</a>, <a href='SkPath_Reference#Point_Array'>SkPoint array</a>, and weight by <a href='#SkPath_transform_matrix'>matrix</a>.
+transform may change <a href='SkPath_Reference#Verb'>verbs</a> and increase their number.
+Transformed <a href='SkPath_Reference#SkPath'>SkPath</a> replaces <a href='#SkPath_transform_dst'>dst</a>; if <a href='#SkPath_transform_dst'>dst</a> is nullptr, original <a href='undocumented#Data'>data</a>
is replaced.
### Parameters
<table> <tr> <td><a name='SkPath_transform_matrix'><code><strong>matrix</strong></code></a></td>
- <td><a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> <a href='SkMatrix_Reference#SkMatrix'>to</a> <a href='SkMatrix_Reference#SkMatrix'>apply</a> <a href='SkMatrix_Reference#SkMatrix'>to</a> <a href='SkPath_Reference#SkPath'>SkPath</a></td>
+ <td><a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> to apply to <a href='SkPath_Reference#SkPath'>SkPath</a></td>
</tr>
<tr> <td><a name='SkPath_transform_dst'><code><strong>dst</strong></code></a></td>
- <td>overwritten, transformed copy of <a href='SkPath_Reference#SkPath'>SkPath</a>; <a href='SkPath_Reference#SkPath'>may</a> <a href='SkPath_Reference#SkPath'>be</a> <a href='SkPath_Reference#SkPath'>nullptr</a></td>
+ <td>overwritten, transformed copy of <a href='SkPath_Reference#SkPath'>SkPath</a>; may be nullptr</td>
</tr>
</table>
@@ -4432,14 +4432,14 @@
void transform(const <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a>& <a href='SkMatrix_Reference#Matrix'>matrix</a>)
</pre>
-Transforms <a href='#Verb_Array'>verb array</a>, <a href='SkPath_Reference#Point_Array'>SkPoint array</a>, <a href='SkPoint_Reference#SkPoint'>and</a> <a href='SkPoint_Reference#SkPoint'>weight</a> <a href='SkPoint_Reference#SkPoint'>by</a> <a href='#SkPath_transform_2_matrix'>matrix</a>.
-transform may change <a href='SkPath_Reference#Verb'>verbs</a> <a href='SkPath_Reference#Verb'>and</a> <a href='SkPath_Reference#Verb'>increase</a> <a href='SkPath_Reference#Verb'>their</a> <a href='SkPath_Reference#Verb'>number</a>.
-<a href='SkPath_Reference#SkPath'>SkPath</a> <a href='SkPath_Reference#SkPath'>is</a> <a href='SkPath_Reference#SkPath'>replaced</a> <a href='SkPath_Reference#SkPath'>by</a> <a href='SkPath_Reference#SkPath'>transformed</a> <a href='undocumented#Data'>data</a>.
+Transforms <a href='#Verb_Array'>verb array</a>, <a href='SkPath_Reference#Point_Array'>SkPoint array</a>, and weight by <a href='#SkPath_transform_2_matrix'>matrix</a>.
+transform may change <a href='SkPath_Reference#Verb'>verbs</a> and increase their number.
+<a href='SkPath_Reference#SkPath'>SkPath</a> is replaced by transformed <a href='undocumented#Data'>data</a>.
### Parameters
<table> <tr> <td><a name='SkPath_transform_2_matrix'><code><strong>matrix</strong></code></a></td>
- <td><a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> <a href='SkMatrix_Reference#SkMatrix'>to</a> <a href='SkMatrix_Reference#SkMatrix'>apply</a> <a href='SkMatrix_Reference#SkMatrix'>to</a> <a href='SkPath_Reference#SkPath'>SkPath</a></td>
+ <td><a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> to apply to <a href='SkPath_Reference#SkPath'>SkPath</a></td>
</tr>
</table>
@@ -4453,31 +4453,31 @@
<a name='Last_Point'></a>
-<a href='SkPath_Reference#Path'>Path</a> <a href='SkPath_Reference#Path'>is</a> <a href='SkPath_Reference#Path'>defined</a> <a href='SkPath_Reference#Path'>cumulatively</a>, <a href='SkPath_Reference#Path'>often</a> <a href='SkPath_Reference#Path'>by</a> <a href='SkPath_Reference#Path'>adding</a> <a href='SkPath_Reference#Path'>a</a> <a href='SkPath_Reference#Path'>segment</a> <a href='SkPath_Reference#Path'>to</a> <a href='SkPath_Reference#Path'>the</a> <a href='SkPath_Reference#Path'>end</a> <a href='SkPath_Reference#Path'>of</a> <a href='SkPath_Reference#Path'>last</a>
-<a href='SkPath_Overview#Contour'>Contour</a>. <a href='#Path_Last_Point'>Last_Point</a> <a href='#Path_Last_Point'>of</a> <a href='SkPath_Overview#Contour'>Contour</a> <a href='SkPath_Overview#Contour'>is</a> <a href='SkPath_Overview#Contour'>shared</a> <a href='SkPath_Overview#Contour'>as</a> <a href='SkPath_Overview#Contour'>first</a> <a href='SkPoint_Reference#Point'>Point</a> <a href='SkPoint_Reference#Point'>of</a> <a href='SkPoint_Reference#Point'>added</a> <a href='undocumented#Line'>Line</a> <a href='undocumented#Line'>or</a> <a href='undocumented#Curve'>Curve</a>.
-<a href='#Path_Last_Point'>Last_Point</a> <a href='#Path_Last_Point'>can</a> <a href='#Path_Last_Point'>be</a> <a href='#Path_Last_Point'>read</a> <a href='#Path_Last_Point'>and</a> <a href='#Path_Last_Point'>written</a> <a href='#Path_Last_Point'>directly</a> <a href='#Path_Last_Point'>with</a> <a href='#SkPath_getLastPt'>getLastPt</a> <a href='#SkPath_getLastPt'>and</a> <a href='#SkPath_setLastPt'>setLastPt</a>.
+<a href='SkPath_Reference#Path'>Path</a> is defined cumulatively, often by adding a segment to the end of last
+<a href='SkPath_Overview#Contour'>Contour</a>. <a href='#Path_Last_Point'>Last_Point</a> of <a href='SkPath_Overview#Contour'>Contour</a> is shared as first <a href='SkPoint_Reference#Point'>Point</a> of added <a href='undocumented#Line'>Line</a> or <a href='undocumented#Curve'>Curve</a>.
+<a href='#Path_Last_Point'>Last_Point</a> can be read and written directly with <a href='#SkPath_getLastPt'>getLastPt</a> and <a href='#SkPath_setLastPt'>setLastPt</a>.
<a name='SkPath_getLastPt'></a>
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-bool <a href='#SkPath_getLastPt'>getLastPt</a>(<a href='SkPoint_Reference#SkPoint'>SkPoint</a>* <a href='SkPoint_Reference#SkPoint'>lastPt</a>) <a href='SkPoint_Reference#SkPoint'>const</a>
+bool <a href='#SkPath_getLastPt'>getLastPt</a>(<a href='SkPoint_Reference#SkPoint'>SkPoint</a>* lastPt) const
</pre>
-Returns <a href='#Last_Point'>last point</a> on <a href='SkPath_Reference#SkPath'>SkPath</a> <a href='SkPath_Reference#SkPath'>in</a> <a href='#SkPath_getLastPt_lastPt'>lastPt</a>. <a href='#SkPath_getLastPt_lastPt'>Returns</a> <a href='#SkPath_getLastPt_lastPt'>false</a> <a href='#SkPath_getLastPt_lastPt'>if</a> <a href='SkPath_Reference#Point_Array'>SkPoint array</a> <a href='SkPoint_Reference#SkPoint'>is</a> <a href='SkPoint_Reference#SkPoint'>empty</a>,
-storing (0, 0) if <a href='#SkPath_getLastPt_lastPt'>lastPt</a> <a href='#SkPath_getLastPt_lastPt'>is</a> <a href='#SkPath_getLastPt_lastPt'>not</a> <a href='#SkPath_getLastPt_lastPt'>nullptr</a>.
+Returns <a href='#Last_Point'>last point</a> on <a href='SkPath_Reference#SkPath'>SkPath</a> in <a href='#SkPath_getLastPt_lastPt'>lastPt</a>. Returns false if <a href='SkPath_Reference#Point_Array'>SkPoint array</a> is empty,
+storing (0, 0) if <a href='#SkPath_getLastPt_lastPt'>lastPt</a> is not nullptr.
### Parameters
<table> <tr> <td><a name='SkPath_getLastPt_lastPt'><code><strong>lastPt</strong></code></a></td>
- <td>storage for final <a href='SkPoint_Reference#SkPoint'>SkPoint</a> <a href='SkPoint_Reference#SkPoint'>in</a> <a href='SkPath_Reference#Point_Array'>SkPoint array</a>; <a href='SkPoint_Reference#SkPoint'>may</a> <a href='SkPoint_Reference#SkPoint'>be</a> <a href='SkPoint_Reference#SkPoint'>nullptr</a></td>
+ <td>storage for final <a href='SkPoint_Reference#SkPoint'>SkPoint</a> in <a href='SkPath_Reference#Point_Array'>SkPoint array</a>; may be nullptr</td>
</tr>
</table>
### Return Value
-true if <a href='SkPath_Reference#Point_Array'>SkPoint array</a> <a href='SkPoint_Reference#SkPoint'>contains</a> <a href='SkPoint_Reference#SkPoint'>one</a> <a href='SkPoint_Reference#SkPoint'>or</a> <a href='SkPoint_Reference#SkPoint'>more</a> <a href='SkPoint_Reference#SkPoint'>SkPoint</a>
+true if <a href='SkPath_Reference#Point_Array'>SkPoint array</a> contains one or more <a href='SkPoint_Reference#SkPoint'>SkPoint</a>
### Example
@@ -4500,11 +4500,11 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-void <a href='#SkPath_setLastPt'>setLastPt</a>(<a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>x</a>, <a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>y</a>)
+void <a href='#SkPath_setLastPt'>setLastPt</a>(<a href='undocumented#SkScalar'>SkScalar</a> x, <a href='undocumented#SkScalar'>SkScalar</a> y)
</pre>
-Sets <a href='#Last_Point'>last point</a> to (<a href='#SkPath_setLastPt_x'>x</a>, <a href='#SkPath_setLastPt_y'>y</a>). <a href='#SkPath_setLastPt_y'>If</a> <a href='SkPath_Reference#Point_Array'>SkPoint array</a> <a href='SkPoint_Reference#SkPoint'>is</a> <a href='SkPoint_Reference#SkPoint'>empty</a>, <a href='SkPoint_Reference#SkPoint'>append</a> <a href='#SkPath_kMove_Verb'>kMove_Verb</a> <a href='#SkPath_kMove_Verb'>to</a>
-<a href='#Verb_Array'>verb array</a> and append (<a href='#SkPath_setLastPt_x'>x</a>, <a href='#SkPath_setLastPt_y'>y</a>) <a href='#SkPath_setLastPt_y'>to</a> <a href='SkPath_Reference#Point_Array'>SkPoint array</a>.
+Sets <a href='#Last_Point'>last point</a> to (<a href='#SkPath_setLastPt_x'>x</a>, <a href='#SkPath_setLastPt_y'>y</a>). If <a href='SkPath_Reference#Point_Array'>SkPoint array</a> is empty, append <a href='#SkPath_kMove_Verb'>kMove_Verb</a> to
+<a href='#Verb_Array'>verb array</a> and append (<a href='#SkPath_setLastPt_x'>x</a>, <a href='#SkPath_setLastPt_y'>y</a>) to <a href='SkPath_Reference#Point_Array'>SkPoint array</a>.
### Parameters
@@ -4529,11 +4529,11 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-void <a href='#SkPath_setLastPt'>setLastPt</a>(<a href='#SkPath_setLastPt'>const</a> <a href='SkPoint_Reference#SkPoint'>SkPoint</a>& <a href='SkPoint_Reference#SkPoint'>p</a>)
+void <a href='#SkPath_setLastPt'>setLastPt</a>(const <a href='SkPoint_Reference#SkPoint'>SkPoint</a>& p)
</pre>
-Sets the <a href='#Last_Point'>last point</a> on the <a href='SkPath_Reference#Path'>path</a>. <a href='SkPath_Reference#Path'>If</a> <a href='SkPath_Reference#Point_Array'>SkPoint array</a> <a href='SkPoint_Reference#SkPoint'>is</a> <a href='SkPoint_Reference#SkPoint'>empty</a>, <a href='SkPoint_Reference#SkPoint'>append</a> <a href='#SkPath_kMove_Verb'>kMove_Verb</a> <a href='#SkPath_kMove_Verb'>to</a>
-<a href='#Verb_Array'>verb array</a> and append <a href='#SkPath_setLastPt_2_p'>p</a> <a href='#SkPath_setLastPt_2_p'>to</a> <a href='SkPath_Reference#Point_Array'>SkPoint array</a>.
+Sets the <a href='#Last_Point'>last point</a> on the <a href='SkPath_Reference#Path'>path</a>. If <a href='SkPath_Reference#Point_Array'>SkPoint array</a> is empty, append <a href='#SkPath_kMove_Verb'>kMove_Verb</a> to
+<a href='#Verb_Array'>verb array</a> and append <a href='#SkPath_setLastPt_2_p'>p</a> to <a href='SkPath_Reference#Point_Array'>SkPoint array</a>.
### Parameters
@@ -4563,8 +4563,8 @@
};
</pre>
-<a href='#SkPath_SegmentMask'>SegmentMask</a> <a href='#SkPath_SegmentMask'>constants</a> <a href='#SkPath_SegmentMask'>correspond</a> <a href='#SkPath_SegmentMask'>to</a> <a href='#SkPath_SegmentMask'>each</a> <a href='#SkPath_SegmentMask'>drawing</a> <a href='#SkPath_Verb'>Verb</a> <a href='#SkPath_Verb'>type</a> <a href='#SkPath_Verb'>in</a> <a href='SkPath_Reference#Path'>Path</a>; <a href='SkPath_Reference#Path'>for</a>
-<a href='SkPath_Reference#Path'>instance</a>, <a href='SkPath_Reference#Path'>if</a> <a href='SkPath_Reference#Path'>Path</a> <a href='SkPath_Reference#Path'>only</a> <a href='SkPath_Reference#Path'>contains</a> <a href='undocumented#Line'>Lines</a>, <a href='undocumented#Line'>only</a> <a href='undocumented#Line'>the</a> <a href='#SkPath_kLine_SegmentMask'>kLine_SegmentMask</a> <a href='#SkPath_kLine_SegmentMask'>bit</a> <a href='#SkPath_kLine_SegmentMask'>is</a> <a href='#SkPath_kLine_SegmentMask'>set</a>.
+<a href='#SkPath_SegmentMask'>SegmentMask</a> constants correspond to each drawing <a href='#SkPath_Verb'>Verb</a> type in <a href='SkPath_Reference#Path'>Path</a>; for
+instance, if <a href='SkPath_Reference#Path'>Path</a> only contains <a href='undocumented#Line'>Lines</a>, only the <a href='#SkPath_kLine_SegmentMask'>kLine_SegmentMask</a> bit is set.
### Constants
@@ -4576,35 +4576,35 @@
<td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a name='SkPath_kLine_SegmentMask'><code>SkPath::kLine_SegmentMask</code></a></td>
<td style='text-align: center; border: 2px solid #dddddd; padding: 8px; '>1</td>
<td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>
-Set if <a href='#Path_Verb_Array'>Verb_Array</a> <a href='#Path_Verb_Array'>contains</a> <a href='#SkPath_kLine_Verb'>kLine_Verb</a>.
+Set if <a href='#Path_Verb_Array'>Verb_Array</a> contains <a href='#SkPath_kLine_Verb'>kLine_Verb</a>.
</td>
</tr>
<tr>
<td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a name='SkPath_kQuad_SegmentMask'><code>SkPath::kQuad_SegmentMask</code></a></td>
<td style='text-align: center; border: 2px solid #dddddd; padding: 8px; '>2</td>
<td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>
-Set if <a href='#Path_Verb_Array'>Verb_Array</a> <a href='#Path_Verb_Array'>contains</a> <a href='#SkPath_kQuad_Verb'>kQuad_Verb</a>. <a href='#SkPath_kQuad_Verb'>Note</a> <a href='#SkPath_kQuad_Verb'>that</a> <a href='#SkPath_conicTo'>conicTo</a> <a href='#SkPath_conicTo'>may</a> <a href='#SkPath_conicTo'>add</a> <a href='#SkPath_conicTo'>a</a> <a href='SkPath_Reference#Quad'>Quad</a>.
+Set if <a href='#Path_Verb_Array'>Verb_Array</a> contains <a href='#SkPath_kQuad_Verb'>kQuad_Verb</a>. Note that <a href='#SkPath_conicTo'>conicTo</a> may add a <a href='SkPath_Reference#Quad'>Quad</a>.
</td>
</tr>
<tr style='background-color: #f0f0f0; '>
<td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a name='SkPath_kConic_SegmentMask'><code>SkPath::kConic_SegmentMask</code></a></td>
<td style='text-align: center; border: 2px solid #dddddd; padding: 8px; '>4</td>
<td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>
-Set if <a href='#Path_Verb_Array'>Verb_Array</a> <a href='#Path_Verb_Array'>contains</a> <a href='#SkPath_kConic_Verb'>kConic_Verb</a>.
+Set if <a href='#Path_Verb_Array'>Verb_Array</a> contains <a href='#SkPath_kConic_Verb'>kConic_Verb</a>.
</td>
</tr>
<tr>
<td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a name='SkPath_kCubic_SegmentMask'><code>SkPath::kCubic_SegmentMask</code></a></td>
<td style='text-align: center; border: 2px solid #dddddd; padding: 8px; '>8</td>
<td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>
-Set if <a href='#Path_Verb_Array'>Verb_Array</a> <a href='#Path_Verb_Array'>contains</a> <a href='#SkPath_kCubic_Verb'>kCubic_Verb</a>.
+Set if <a href='#Path_Verb_Array'>Verb_Array</a> contains <a href='#SkPath_kCubic_Verb'>kCubic_Verb</a>.
</td>
</tr>
</table>
### Example
-<div><fiddle-embed name="a61e5758574e28190ec4ed8c4ae7e7fa"><div>When <a href='#SkPath_conicTo'>conicTo</a> <a href='#SkPath_conicTo'>has</a> <a href='#SkPath_conicTo'>a</a> <a href='#SkPath_conicTo'>weight</a> <a href='#SkPath_conicTo'>of</a> <a href='#SkPath_conicTo'>one</a>, <a href='SkPath_Reference#Quad'>Quad</a> <a href='SkPath_Reference#Quad'>is</a> <a href='SkPath_Reference#Quad'>added</a> <a href='SkPath_Reference#Quad'>to</a> <a href='SkPath_Reference#Path'>Path</a>.
+<div><fiddle-embed name="a61e5758574e28190ec4ed8c4ae7e7fa"><div>When <a href='#SkPath_conicTo'>conicTo</a> has a weight of one, <a href='SkPath_Reference#Quad'>Quad</a> is added to <a href='SkPath_Reference#Path'>Path</a>.
</div>
#### Example Output
@@ -4625,18 +4625,18 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-uint32_t <a href='#SkPath_getSegmentMasks'>getSegmentMasks</a>() <a href='#SkPath_getSegmentMasks'>const</a>
+uint32_t <a href='#SkPath_getSegmentMasks'>getSegmentMasks</a>() const
</pre>
-Returns a mask, where each set bit corresponds to a <a href='#SkPath_SegmentMask'>SegmentMask</a> <a href='#SkPath_SegmentMask'>constant</a>
-if <a href='SkPath_Reference#SkPath'>SkPath</a> <a href='SkPath_Reference#SkPath'>contains</a> <a href='SkPath_Reference#SkPath'>one</a> <a href='SkPath_Reference#SkPath'>or</a> <a href='SkPath_Reference#SkPath'>more</a> <a href='SkPath_Reference#Verb'>verbs</a> <a href='SkPath_Reference#Verb'>of</a> <a href='SkPath_Reference#Verb'>that</a> <a href='SkPath_Reference#Verb'>type</a>.
-Returns zero if <a href='SkPath_Reference#SkPath'>SkPath</a> <a href='SkPath_Reference#SkPath'>contains</a> <a href='SkPath_Reference#SkPath'>no</a> <a href='undocumented#Line'>lines</a>, <a href='undocumented#Line'>or</a> <a href='undocumented#Curve'>curves</a>: <a href='SkPath_Reference#Quad'>quads</a>, <a href='SkPath_Reference#Conic'>conics</a>, <a href='SkPath_Reference#Conic'>or</a> <a href='SkPath_Reference#Cubic'>cubics</a>.
+Returns a mask, where each set bit corresponds to a <a href='#SkPath_SegmentMask'>SegmentMask</a> constant
+if <a href='SkPath_Reference#SkPath'>SkPath</a> contains one or more <a href='SkPath_Reference#Verb'>verbs</a> of that type.
+Returns zero if <a href='SkPath_Reference#SkPath'>SkPath</a> contains no <a href='undocumented#Line'>lines</a>, or <a href='undocumented#Curve'>curves</a>: <a href='SkPath_Reference#Quad'>quads</a>, <a href='SkPath_Reference#Conic'>conics</a>, or <a href='SkPath_Reference#Cubic'>cubics</a>.
-<a href='#SkPath_getSegmentMasks'>getSegmentMasks</a>() <a href='#SkPath_getSegmentMasks'>returns</a> <a href='#SkPath_getSegmentMasks'>a</a> <a href='#SkPath_getSegmentMasks'>cached</a> <a href='#SkPath_getSegmentMasks'>result</a>; <a href='#SkPath_getSegmentMasks'>it</a> <a href='#SkPath_getSegmentMasks'>is</a> <a href='#SkPath_getSegmentMasks'>very</a> <a href='#SkPath_getSegmentMasks'>fast</a>.
+<a href='#SkPath_getSegmentMasks'>getSegmentMasks</a>() returns a cached result; it is very fast.
### Return Value
-<a href='#SkPath_SegmentMask'>SegmentMask</a> <a href='#SkPath_SegmentMask'>bits</a> <a href='#SkPath_SegmentMask'>or</a> <a href='#SkPath_SegmentMask'>zero</a>
+<a href='#SkPath_SegmentMask'>SegmentMask</a> bits or zero
### Example
@@ -4659,13 +4659,13 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-bool contains(<a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>x</a>, <a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>y</a>) <a href='undocumented#SkScalar'>const</a>
+bool contains(<a href='undocumented#SkScalar'>SkScalar</a> x, <a href='undocumented#SkScalar'>SkScalar</a> y) const
</pre>
-Returns true if the <a href='SkPoint_Reference#Point'>point</a> (<a href='#SkPath_contains_x'>x</a>, <a href='#SkPath_contains_y'>y</a>) <a href='#SkPath_contains_y'>is</a> <a href='#SkPath_contains_y'>contained</a> <a href='#SkPath_contains_y'>by</a> <a href='SkPath_Reference#Path'>Path</a>, <a href='SkPath_Reference#Path'>taking</a> <a href='SkPath_Reference#Path'>into</a>
-<a href='SkPath_Reference#Path'>account</a> <a href='#SkPath_FillType'>FillType</a>.
+Returns true if the <a href='SkPoint_Reference#Point'>point</a> (<a href='#SkPath_contains_x'>x</a>, <a href='#SkPath_contains_y'>y</a>) is contained by <a href='SkPath_Reference#Path'>Path</a>, taking into
+account <a href='#SkPath_FillType'>FillType</a>.
-| <a href='#SkPath_FillType'>FillType</a> | <a href='#SkPath_contains'>contains()</a> <a href='#SkPath_contains'>returns</a> <a href='#SkPath_contains'>true</a> <a href='#SkPath_contains'>if</a> <a href='SkPoint_Reference#Point'>Point</a> <a href='SkPoint_Reference#Point'>is</a> <a href='SkPoint_Reference#Point'>enclosed</a> <a href='SkPoint_Reference#Point'>by</a> |
+| <a href='#SkPath_FillType'>FillType</a> | <a href='#SkPath_contains'>contains()</a> returns true if <a href='SkPoint_Reference#Point'>Point</a> is enclosed by |
| --- | --- |
| <a href='#SkPath_kWinding_FillType'>kWinding_FillType</a> | a non-zero sum of <a href='SkPath_Overview#Contour'>Contour</a> <a href='SkPath_Reference#Direction'>Directions</a>. |
| <a href='#SkPath_kEvenOdd_FillType'>kEvenOdd_FillType</a> | an odd number of <a href='SkPath_Overview#Contour'>Contours</a>. |
@@ -4684,7 +4684,7 @@
### Return Value
-true if <a href='SkPoint_Reference#Point'>Point</a> <a href='SkPoint_Reference#Point'>is</a> <a href='SkPoint_Reference#Point'>in</a> <a href='SkPath_Reference#Path'>Path</a>
+true if <a href='SkPoint_Reference#Point'>Point</a> is in <a href='SkPath_Reference#Path'>Path</a>
### Example
@@ -4699,24 +4699,24 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-void <a href='#SkPath_dump'>dump</a>(<a href='SkWStream_Reference#SkWStream'>SkWStream</a>* <a href='SkStream_Reference#Stream'>stream</a>, <a href='SkStream_Reference#Stream'>bool</a> <a href='SkStream_Reference#Stream'>forceClose</a>, <a href='SkStream_Reference#Stream'>bool</a> <a href='SkStream_Reference#Stream'>dumpAsHex</a>) <a href='SkStream_Reference#Stream'>const</a>
+void <a href='#SkPath_dump'>dump</a>(<a href='SkWStream_Reference#SkWStream'>SkWStream</a>* <a href='SkStream_Reference#Stream'>stream</a>, bool forceClose, bool dumpAsHex) const
</pre>
-Writes <a href='undocumented#Text'>text</a> <a href='undocumented#Text'>representation</a> <a href='undocumented#Text'>of</a> <a href='SkPath_Reference#SkPath'>SkPath</a> <a href='SkPath_Reference#SkPath'>to</a> <a href='#SkPath_dump_stream'>stream</a>. <a href='#SkPath_dump_stream'>If</a> <a href='#SkPath_dump_stream'>stream</a> <a href='#SkPath_dump_stream'>is</a> <a href='#SkPath_dump_stream'>nullptr</a>, <a href='#SkPath_dump_stream'>writes</a> <a href='#SkPath_dump_stream'>to</a>
-standard output. Set <a href='#SkPath_dump_forceClose'>forceClose</a> <a href='#SkPath_dump_forceClose'>to</a> <a href='#SkPath_dump_forceClose'>true</a> <a href='#SkPath_dump_forceClose'>to</a> <a href='#SkPath_dump_forceClose'>get</a> <a href='#SkPath_dump_forceClose'>edges</a> <a href='#SkPath_dump_forceClose'>used</a> <a href='#SkPath_dump_forceClose'>to</a> <a href='#SkPath_dump_forceClose'>fill</a> <a href='SkPath_Reference#SkPath'>SkPath</a>.
-Set <a href='#SkPath_dump_dumpAsHex'>dumpAsHex</a> <a href='#SkPath_dump_dumpAsHex'>true</a> <a href='#SkPath_dump_dumpAsHex'>to</a> <a href='#SkPath_dump_dumpAsHex'>generate</a> <a href='#SkPath_dump_dumpAsHex'>exact</a> <a href='#SkPath_dump_dumpAsHex'>binary</a> <a href='#SkPath_dump_dumpAsHex'>representations</a>
-of floating <a href='SkPoint_Reference#Point'>point</a> <a href='SkPoint_Reference#Point'>numbers</a> <a href='SkPoint_Reference#Point'>used</a> <a href='SkPoint_Reference#Point'>in</a> <a href='SkPath_Reference#Point_Array'>SkPoint array</a> <a href='SkPoint_Reference#SkPoint'>and</a> <a href='SkPath_Reference#Conic_Weight'>conic weights</a>.
+Writes <a href='undocumented#Text'>text</a> representation of <a href='SkPath_Reference#SkPath'>SkPath</a> to <a href='#SkPath_dump_stream'>stream</a>. If <a href='#SkPath_dump_stream'>stream</a> is nullptr, writes to
+standard output. Set <a href='#SkPath_dump_forceClose'>forceClose</a> to true to get edges used to fill <a href='SkPath_Reference#SkPath'>SkPath</a>.
+Set <a href='#SkPath_dump_dumpAsHex'>dumpAsHex</a> true to generate exact binary representations
+of floating <a href='SkPoint_Reference#Point'>point</a> numbers used in <a href='SkPath_Reference#Point_Array'>SkPoint array</a> and <a href='SkPath_Reference#Conic_Weight'>conic weights</a>.
### Parameters
<table> <tr> <td><a name='SkPath_dump_stream'><code><strong>stream</strong></code></a></td>
- <td>writable <a href='SkWStream_Reference#SkWStream'>SkWStream</a> <a href='SkWStream_Reference#SkWStream'>receiving</a> <a href='SkPath_Reference#SkPath'>SkPath</a> <a href='undocumented#Text'>text</a> <a href='undocumented#Text'>representation</a>; <a href='undocumented#Text'>may</a> <a href='undocumented#Text'>be</a> <a href='undocumented#Text'>nullptr</a></td>
+ <td>writable <a href='SkWStream_Reference#SkWStream'>SkWStream</a> receiving <a href='SkPath_Reference#SkPath'>SkPath</a> <a href='undocumented#Text'>text</a> representation; may be nullptr</td>
</tr>
<tr> <td><a name='SkPath_dump_forceClose'><code><strong>forceClose</strong></code></a></td>
- <td>true if missing <a href='#SkPath_kClose_Verb'>kClose_Verb</a> <a href='#SkPath_kClose_Verb'>is</a> <a href='#SkPath_kClose_Verb'>output</a></td>
+ <td>true if missing <a href='#SkPath_kClose_Verb'>kClose_Verb</a> is output</td>
</tr>
<tr> <td><a name='SkPath_dump_dumpAsHex'><code><strong>dumpAsHex</strong></code></a></td>
- <td>true if <a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>values</a> <a href='undocumented#SkScalar'>are</a> <a href='undocumented#SkScalar'>written</a> <a href='undocumented#SkScalar'>as</a> <a href='undocumented#SkScalar'>hexadecimal</a></td>
+ <td>true if <a href='undocumented#SkScalar'>SkScalar</a> values are written as hexadecimal</td>
</tr>
</table>
@@ -4756,11 +4756,11 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-void <a href='#SkPath_dump'>dump()</a> <a href='#SkPath_dump'>const</a>
+void <a href='#SkPath_dump'>dump()</a> const
</pre>
-Writes <a href='undocumented#Text'>text</a> <a href='undocumented#Text'>representation</a> <a href='undocumented#Text'>of</a> <a href='SkPath_Reference#SkPath'>SkPath</a> <a href='SkPath_Reference#SkPath'>to</a> <a href='SkPath_Reference#SkPath'>standard</a> <a href='SkPath_Reference#SkPath'>output</a>. <a href='SkPath_Reference#SkPath'>The</a> <a href='SkPath_Reference#SkPath'>representation</a> <a href='SkPath_Reference#SkPath'>may</a> <a href='SkPath_Reference#SkPath'>be</a>
-directly compiled as C++ code. Floating <a href='SkPoint_Reference#Point'>point</a> <a href='SkPoint_Reference#Point'>values</a> <a href='SkPoint_Reference#Point'>are</a> <a href='SkPoint_Reference#Point'>written</a>
+Writes <a href='undocumented#Text'>text</a> representation of <a href='SkPath_Reference#SkPath'>SkPath</a> to standard output. The representation may be
+directly compiled as C++ code. Floating <a href='SkPoint_Reference#Point'>point</a> values are written
with limited precision; it may not be possible to reconstruct original <a href='SkPath_Reference#SkPath'>SkPath</a>
from output.
@@ -4788,15 +4788,15 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-void <a href='#SkPath_dumpHex'>dumpHex</a>() <a href='#SkPath_dumpHex'>const</a>
+void <a href='#SkPath_dumpHex'>dumpHex</a>() const
</pre>
-Writes <a href='undocumented#Text'>text</a> <a href='undocumented#Text'>representation</a> <a href='undocumented#Text'>of</a> <a href='SkPath_Reference#Path'>Path</a> <a href='SkPath_Reference#Path'>to</a> <a href='SkPath_Reference#Path'>standard</a> <a href='SkPath_Reference#Path'>output</a>. <a href='SkPath_Reference#Path'>The</a> <a href='SkPath_Reference#Path'>representation</a> <a href='SkPath_Reference#Path'>may</a> <a href='SkPath_Reference#Path'>be</a>
-<a href='SkPath_Reference#Path'>directly</a> <a href='SkPath_Reference#Path'>compiled</a> <a href='SkPath_Reference#Path'>as</a> <a href='SkPath_Reference#Path'>C</a>++ <a href='SkPath_Reference#Path'>code</a>. <a href='SkPath_Reference#Path'>Floating</a> <a href='SkPoint_Reference#Point'>point</a> <a href='SkPoint_Reference#Point'>values</a> <a href='SkPoint_Reference#Point'>are</a> <a href='SkPoint_Reference#Point'>written</a>
-<a href='SkPoint_Reference#Point'>in</a> <a href='SkPoint_Reference#Point'>hexadecimal</a> <a href='SkPoint_Reference#Point'>to</a> <a href='SkPoint_Reference#Point'>preserve</a> <a href='SkPoint_Reference#Point'>their</a> <a href='SkPoint_Reference#Point'>exact</a> <a href='SkPoint_Reference#Point'>bit</a> <a href='SkPoint_Reference#Point'>pattern</a>. <a href='SkPoint_Reference#Point'>The</a> <a href='SkPoint_Reference#Point'>output</a> <a href='SkPoint_Reference#Point'>reconstructs</a> <a href='SkPoint_Reference#Point'>the</a>
-<a href='SkPoint_Reference#Point'>original</a> <a href='SkPath_Reference#Path'>Path</a>.
+Writes <a href='undocumented#Text'>text</a> representation of <a href='SkPath_Reference#Path'>Path</a> to standard output. The representation may be
+directly compiled as C++ code. Floating <a href='SkPoint_Reference#Point'>point</a> values are written
+in hexadecimal to preserve their exact bit pattern. The output reconstructs the
+original <a href='SkPath_Reference#Path'>Path</a>.
-<a href='SkPath_Reference#Path'>Use</a> <a href='SkPath_Reference#Path'>instead</a> <a href='SkPath_Reference#Path'>of</a> <a href='#SkPath_dump'>dump()</a> <a href='#SkPath_dump'>when</a> <a href='#SkPath_dump'>submitting</a>
+Use instead of <a href='#SkPath_dump'>dump()</a> when submitting
<a href='https://bug.skia.org'>bug reports against Skia</a></a> .
### Example
@@ -4823,28 +4823,28 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-size_t <a href='#SkPath_writeToMemory'>writeToMemory</a>(<a href='#SkPath_writeToMemory'>void</a>* <a href='#SkPath_writeToMemory'>buffer</a>) <a href='#SkPath_writeToMemory'>const</a>
+size_t <a href='#SkPath_writeToMemory'>writeToMemory</a>(void* buffer) const
</pre>
-Writes <a href='SkPath_Reference#SkPath'>SkPath</a> <a href='SkPath_Reference#SkPath'>to</a> <a href='#SkPath_writeToMemory_buffer'>buffer</a>, <a href='#SkPath_writeToMemory_buffer'>returning</a> <a href='#SkPath_writeToMemory_buffer'>the</a> <a href='#SkPath_writeToMemory_buffer'>number</a> <a href='#SkPath_writeToMemory_buffer'>of</a> <a href='#SkPath_writeToMemory_buffer'>bytes</a> <a href='#SkPath_writeToMemory_buffer'>written</a>.
+Writes <a href='SkPath_Reference#SkPath'>SkPath</a> to <a href='#SkPath_writeToMemory_buffer'>buffer</a>, returning the number of bytes written.
Pass nullptr to obtain the storage <a href='undocumented#Size'>size</a>.
-Writes <a href='SkPath_Reference#SkPath'>SkPath</a>::<a href='#SkPath_FillType'>FillType</a>, <a href='#Verb_Array'>verb array</a>, <a href='SkPath_Reference#Point_Array'>SkPoint array</a>, <a href='#Conic_Weight'>conic weight</a>, <a href='SkPath_Reference#Conic'>and</a>
-additionally writes computed information like <a href='SkPath_Reference#SkPath'>SkPath</a>::<a href='#SkPath_Convexity'>Convexity</a> <a href='#SkPath_Convexity'>and</a> <a href='#SkPath_Convexity'>bounds</a>.
+Writes <a href='SkPath_Reference#SkPath'>SkPath</a>::<a href='#SkPath_FillType'>FillType</a>, <a href='#Verb_Array'>verb array</a>, <a href='SkPath_Reference#Point_Array'>SkPoint array</a>, <a href='#Conic_Weight'>conic weight</a>, and
+additionally writes computed information like <a href='SkPath_Reference#SkPath'>SkPath</a>::<a href='#SkPath_Convexity'>Convexity</a> and bounds.
Use only be used in concert with <a href='#SkPath_readFromMemory'>readFromMemory</a>();
-the format used for <a href='SkPath_Reference#SkPath'>SkPath</a> <a href='SkPath_Reference#SkPath'>in</a> <a href='SkPath_Reference#SkPath'>memory</a> <a href='SkPath_Reference#SkPath'>is</a> <a href='SkPath_Reference#SkPath'>not</a> <a href='SkPath_Reference#SkPath'>guaranteed</a>.
+the format used for <a href='SkPath_Reference#SkPath'>SkPath</a> in memory is not guaranteed.
### Parameters
<table> <tr> <td><a name='SkPath_writeToMemory_buffer'><code><strong>buffer</strong></code></a></td>
- <td>storage for <a href='SkPath_Reference#SkPath'>SkPath</a>; <a href='SkPath_Reference#SkPath'>may</a> <a href='SkPath_Reference#SkPath'>be</a> <a href='SkPath_Reference#SkPath'>nullptr</a></td>
+ <td>storage for <a href='SkPath_Reference#SkPath'>SkPath</a>; may be nullptr</td>
</tr>
</table>
### Return Value
-<a href='undocumented#Size'>size</a> <a href='undocumented#Size'>of</a> <a href='undocumented#Size'>storage</a> <a href='undocumented#Size'>required</a> <a href='undocumented#Size'>for</a> <a href='SkPath_Reference#SkPath'>SkPath</a>; <a href='SkPath_Reference#SkPath'>always</a> <a href='SkPath_Reference#SkPath'>a</a> <a href='SkPath_Reference#SkPath'>multiple</a> <a href='SkPath_Reference#SkPath'>of</a> 4
+<a href='undocumented#Size'>size</a> of storage required for <a href='SkPath_Reference#SkPath'>SkPath</a>; always a multiple of 4
### Example
@@ -4867,20 +4867,20 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-<a href='undocumented#sk_sp'>sk_sp</a>&<a href='undocumented#sk_sp'>lt</a>;<a href='undocumented#SkData'>SkData</a>&<a href='undocumented#SkData'>gt</a>; <a href='#SkPath_serialize'>serialize()</a> <a href='#SkPath_serialize'>const</a>
+<a href='undocumented#sk_sp'>sk_sp</a><<a href='undocumented#SkData'>SkData</a>> <a href='#SkPath_serialize'>serialize()</a> const
</pre>
-Writes <a href='SkPath_Reference#SkPath'>SkPath</a> <a href='SkPath_Reference#SkPath'>to</a> <a href='SkPath_Reference#SkPath'>buffer</a>, <a href='SkPath_Reference#SkPath'>returning</a> <a href='SkPath_Reference#SkPath'>the</a> <a href='SkPath_Reference#SkPath'>buffer</a> <a href='SkPath_Reference#SkPath'>written</a> <a href='SkPath_Reference#SkPath'>to</a>, <a href='SkPath_Reference#SkPath'>wrapped</a> <a href='SkPath_Reference#SkPath'>in</a> <a href='undocumented#SkData'>SkData</a>.
+Writes <a href='SkPath_Reference#SkPath'>SkPath</a> to buffer, returning the buffer written to, wrapped in <a href='undocumented#SkData'>SkData</a>.
-<a href='#SkPath_serialize'>serialize()</a> <a href='#SkPath_serialize'>writes</a> <a href='SkPath_Reference#SkPath'>SkPath</a>::<a href='#SkPath_FillType'>FillType</a>, <a href='#SkPath_FillType'>verb</a> <a href='#SkPath_FillType'>array</a>, <a href='SkPoint_Reference#SkPoint'>SkPoint</a> <a href='SkPoint_Reference#SkPoint'>array</a>, <a href='SkPath_Reference#Conic'>conic</a> <a href='SkPath_Reference#Conic'>weight</a>, <a href='SkPath_Reference#Conic'>and</a>
-additionally writes computed information like <a href='SkPath_Reference#SkPath'>SkPath</a>::<a href='#SkPath_Convexity'>Convexity</a> <a href='#SkPath_Convexity'>and</a> <a href='#SkPath_Convexity'>bounds</a>.
+<a href='#SkPath_serialize'>serialize()</a> writes <a href='SkPath_Reference#SkPath'>SkPath</a>::<a href='#SkPath_FillType'>FillType</a>, verb array, <a href='SkPoint_Reference#SkPoint'>SkPoint</a> array, <a href='SkPath_Reference#Conic'>conic</a> weight, and
+additionally writes computed information like <a href='SkPath_Reference#SkPath'>SkPath</a>::<a href='#SkPath_Convexity'>Convexity</a> and bounds.
-<a href='#SkPath_serialize'>serialize()</a> <a href='#SkPath_serialize'>should</a> <a href='#SkPath_serialize'>only</a> <a href='#SkPath_serialize'>be</a> <a href='#SkPath_serialize'>used</a> <a href='#SkPath_serialize'>in</a> <a href='#SkPath_serialize'>concert</a> <a href='#SkPath_serialize'>with</a> <a href='#SkPath_readFromMemory'>readFromMemory</a>().
-The format used for <a href='SkPath_Reference#SkPath'>SkPath</a> <a href='SkPath_Reference#SkPath'>in</a> <a href='SkPath_Reference#SkPath'>memory</a> <a href='SkPath_Reference#SkPath'>is</a> <a href='SkPath_Reference#SkPath'>not</a> <a href='SkPath_Reference#SkPath'>guaranteed</a>.
+<a href='#SkPath_serialize'>serialize()</a> should only be used in concert with <a href='#SkPath_readFromMemory'>readFromMemory</a>().
+The format used for <a href='SkPath_Reference#SkPath'>SkPath</a> in memory is not guaranteed.
### Return Value
-<a href='SkPath_Reference#SkPath'>SkPath</a> <a href='undocumented#Data'>data</a> <a href='undocumented#Data'>wrapped</a> <a href='undocumented#Data'>in</a> <a href='undocumented#SkData'>SkData</a> <a href='undocumented#SkData'>buffer</a>
+<a href='SkPath_Reference#SkPath'>SkPath</a> <a href='undocumented#Data'>data</a> wrapped in <a href='undocumented#SkData'>SkData</a> buffer
### Example
@@ -4903,17 +4903,17 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-size_t <a href='#SkPath_readFromMemory'>readFromMemory</a>(<a href='#SkPath_readFromMemory'>const</a> <a href='#SkPath_readFromMemory'>void</a>* <a href='#SkPath_readFromMemory'>buffer</a>, <a href='#SkPath_readFromMemory'>size_t</a> <a href='#SkPath_readFromMemory'>length</a>)
+size_t <a href='#SkPath_readFromMemory'>readFromMemory</a>(const void* buffer, size_t length)
</pre>
-Initializes <a href='SkPath_Reference#SkPath'>SkPath</a> <a href='SkPath_Reference#SkPath'>from</a> <a href='#SkPath_readFromMemory_buffer'>buffer</a> <a href='#SkPath_readFromMemory_buffer'>of</a> <a href='undocumented#Size'>size</a> <a href='#SkPath_readFromMemory_length'>length</a>. <a href='#SkPath_readFromMemory_length'>Returns</a> <a href='#SkPath_readFromMemory_length'>zero</a> <a href='#SkPath_readFromMemory_length'>if</a> <a href='#SkPath_readFromMemory_length'>the</a> <a href='#SkPath_readFromMemory_buffer'>buffer</a> <a href='#SkPath_readFromMemory_buffer'>is</a>
-<a href='undocumented#Data'>data</a> <a href='undocumented#Data'>is</a> <a href='undocumented#Data'>inconsistent</a>, <a href='undocumented#Data'>or</a> <a href='undocumented#Data'>the</a> <a href='#SkPath_readFromMemory_length'>length</a> <a href='#SkPath_readFromMemory_length'>is</a> <a href='#SkPath_readFromMemory_length'>too</a> <a href='#SkPath_readFromMemory_length'>small</a>.
+Initializes <a href='SkPath_Reference#SkPath'>SkPath</a> from <a href='#SkPath_readFromMemory_buffer'>buffer</a> of <a href='undocumented#Size'>size</a> <a href='#SkPath_readFromMemory_length'>length</a>. Returns zero if the <a href='#SkPath_readFromMemory_buffer'>buffer</a> is
+<a href='undocumented#Data'>data</a> is inconsistent, or the <a href='#SkPath_readFromMemory_length'>length</a> is too small.
-Reads <a href='SkPath_Reference#SkPath'>SkPath</a>::<a href='#SkPath_FillType'>FillType</a>, <a href='#Verb_Array'>verb array</a>, <a href='SkPath_Reference#Point_Array'>SkPoint array</a>, <a href='#Conic_Weight'>conic weight</a>, <a href='SkPath_Reference#Conic'>and</a>
-additionally reads computed information like <a href='SkPath_Reference#SkPath'>SkPath</a>::<a href='#SkPath_Convexity'>Convexity</a> <a href='#SkPath_Convexity'>and</a> <a href='#SkPath_Convexity'>bounds</a>.
+Reads <a href='SkPath_Reference#SkPath'>SkPath</a>::<a href='#SkPath_FillType'>FillType</a>, <a href='#Verb_Array'>verb array</a>, <a href='SkPath_Reference#Point_Array'>SkPoint array</a>, <a href='#Conic_Weight'>conic weight</a>, and
+additionally reads computed information like <a href='SkPath_Reference#SkPath'>SkPath</a>::<a href='#SkPath_Convexity'>Convexity</a> and bounds.
Used only in concert with <a href='#SkPath_writeToMemory'>writeToMemory</a>();
-the format used for <a href='SkPath_Reference#SkPath'>SkPath</a> <a href='SkPath_Reference#SkPath'>in</a> <a href='SkPath_Reference#SkPath'>memory</a> <a href='SkPath_Reference#SkPath'>is</a> <a href='SkPath_Reference#SkPath'>not</a> <a href='SkPath_Reference#SkPath'>guaranteed</a>.
+the format used for <a href='SkPath_Reference#SkPath'>SkPath</a> in memory is not guaranteed.
### Parameters
@@ -4921,7 +4921,7 @@
<td>storage for <a href='SkPath_Reference#SkPath'>SkPath</a></td>
</tr>
<tr> <td><a name='SkPath_readFromMemory_length'><code><strong>length</strong></code></a></td>
- <td><a href='#SkPath_readFromMemory_buffer'>buffer</a> <a href='undocumented#Size'>size</a> <a href='undocumented#Size'>in</a> <a href='undocumented#Size'>bytes</a>; <a href='undocumented#Size'>must</a> <a href='undocumented#Size'>be</a> <a href='undocumented#Size'>multiple</a> <a href='undocumented#Size'>of</a> 4</td>
+ <td><a href='#SkPath_readFromMemory_buffer'>buffer</a> <a href='undocumented#Size'>size</a> in bytes; must be multiple of 4</td>
</tr>
</table>
@@ -4948,28 +4948,28 @@
<a name='Generation_ID'></a>
-<a href='#Path_Generation_ID'>Generation_ID</a> <a href='#Path_Generation_ID'>provides</a> <a href='#Path_Generation_ID'>a</a> <a href='#Path_Generation_ID'>quick</a> <a href='#Path_Generation_ID'>way</a> <a href='#Path_Generation_ID'>to</a> <a href='#Path_Generation_ID'>check</a> <a href='#Path_Generation_ID'>if</a> <a href='#Path_Verb_Array'>Verb_Array</a>, <a href='#Path_Point_Array'>Point_Array</a>, <a href='#Path_Point_Array'>or</a>
-<a href='#Path_Conic_Weight'>Conic_Weight</a> <a href='#Path_Conic_Weight'>has</a> <a href='#Path_Conic_Weight'>changed</a>. <a href='#Path_Generation_ID'>Generation_ID</a> <a href='#Path_Generation_ID'>is</a> <a href='#Path_Generation_ID'>not</a> <a href='#Path_Generation_ID'>a</a> <a href='#Path_Generation_ID'>hash</a>; <a href='#Path_Generation_ID'>identical</a> <a href='SkPath_Reference#Path'>Paths</a> <a href='SkPath_Reference#Path'>will</a>
-<a href='SkPath_Reference#Path'>not</a> <a href='SkPath_Reference#Path'>necessarily</a> <a href='SkPath_Reference#Path'>have</a> <a href='SkPath_Reference#Path'>matching</a> <a href='#Path_Generation_ID'>Generation_IDs</a>.
+<a href='#Path_Generation_ID'>Generation_ID</a> provides a quick way to check if <a href='#Path_Verb_Array'>Verb_Array</a>, <a href='#Path_Point_Array'>Point_Array</a>, or
+<a href='#Path_Conic_Weight'>Conic_Weight</a> has changed. <a href='#Path_Generation_ID'>Generation_ID</a> is not a hash; identical <a href='SkPath_Reference#Path'>Paths</a> will
+not necessarily have matching <a href='#Path_Generation_ID'>Generation_IDs</a>.
-<a href='#Path_Generation_ID'>Empty</a> <a href='SkPath_Reference#Path'>Paths</a> <a href='SkPath_Reference#Path'>have</a> <a href='SkPath_Reference#Path'>a</a> <a href='#Path_Generation_ID'>Generation_ID</a> <a href='#Path_Generation_ID'>of</a> <a href='#Path_Generation_ID'>one</a>.
+Empty <a href='SkPath_Reference#Path'>Paths</a> have a <a href='#Path_Generation_ID'>Generation_ID</a> of one.
<a name='SkPath_getGenerationID'></a>
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-uint32_t <a href='#SkPath_getGenerationID'>getGenerationID</a>() <a href='#SkPath_getGenerationID'>const</a>
+uint32_t <a href='#SkPath_getGenerationID'>getGenerationID</a>() const
</pre>
(See Skia bug 1762.)
Returns a non-zero, globally unique value. A different value is returned
-if verb array, <a href='SkPoint_Reference#SkPoint'>SkPoint</a> <a href='SkPoint_Reference#SkPoint'>array</a>, <a href='SkPoint_Reference#SkPoint'>or</a> <a href='SkPath_Reference#Conic'>conic</a> <a href='SkPath_Reference#Conic'>weight</a> <a href='SkPath_Reference#Conic'>changes</a>.
+if verb array, <a href='SkPoint_Reference#SkPoint'>SkPoint</a> array, or <a href='SkPath_Reference#Conic'>conic</a> weight changes.
-Setting <a href='SkPath_Reference#SkPath'>SkPath</a>::<a href='#SkPath_FillType'>FillType</a> <a href='#SkPath_FillType'>does</a> <a href='#SkPath_FillType'>not</a> <a href='#SkPath_FillType'>change</a> <a href='#SkPath_FillType'>generation</a> <a href='#SkPath_FillType'>identifier</a>.
+Setting <a href='SkPath_Reference#SkPath'>SkPath</a>::<a href='#SkPath_FillType'>FillType</a> does not change generation identifier.
-Each time the <a href='SkPath_Reference#Path'>path</a> <a href='SkPath_Reference#Path'>is</a> <a href='SkPath_Reference#Path'>modified</a>, <a href='SkPath_Reference#Path'>a</a> <a href='SkPath_Reference#Path'>different</a> <a href='SkPath_Reference#Path'>generation</a> <a href='SkPath_Reference#Path'>identifier</a> <a href='SkPath_Reference#Path'>will</a> <a href='SkPath_Reference#Path'>be</a> <a href='SkPath_Reference#Path'>returned</a>.
-<a href='SkPath_Reference#SkPath'>SkPath</a>::<a href='#SkPath_FillType'>FillType</a> <a href='#SkPath_FillType'>does</a> <a href='#SkPath_FillType'>affect</a> <a href='#SkPath_FillType'>generation</a> <a href='#SkPath_FillType'>identifier</a> <a href='#SkPath_FillType'>on</a> <a href='#SkPath_FillType'>Android</a> <a href='#SkPath_FillType'>framework</a>.
+Each time the <a href='SkPath_Reference#Path'>path</a> is modified, a different generation identifier will be returned.
+<a href='SkPath_Reference#SkPath'>SkPath</a>::<a href='#SkPath_FillType'>FillType</a> does affect generation identifier on Android framework.
### Return Value
@@ -4999,23 +4999,23 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-bool <a href='#SkPath_isValid'>isValid</a>() <a href='#SkPath_isValid'>const</a>
+bool <a href='#SkPath_isValid'>isValid</a>() const
</pre>
-Returns if <a href='SkPath_Reference#SkPath'>SkPath</a> <a href='undocumented#Data'>data</a> <a href='undocumented#Data'>is</a> <a href='undocumented#Data'>consistent</a>. <a href='undocumented#Data'>Corrupt</a> <a href='SkPath_Reference#SkPath'>SkPath</a> <a href='undocumented#Data'>data</a> <a href='undocumented#Data'>is</a> <a href='undocumented#Data'>detected</a> <a href='undocumented#Data'>if</a>
+Returns if <a href='SkPath_Reference#SkPath'>SkPath</a> <a href='undocumented#Data'>data</a> is consistent. Corrupt <a href='SkPath_Reference#SkPath'>SkPath</a> <a href='undocumented#Data'>data</a> is detected if
internal values are out of range or internal storage does not match
array dimensions.
### Return Value
-true if <a href='SkPath_Reference#SkPath'>SkPath</a> <a href='undocumented#Data'>data</a> <a href='undocumented#Data'>is</a> <a href='undocumented#Data'>consistent</a>
+true if <a href='SkPath_Reference#SkPath'>SkPath</a> <a href='undocumented#Data'>data</a> is consistent
<a name='SkPath_pathRefIsValid'></a>
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-bool <a href='#SkPath_pathRefIsValid'>pathRefIsValid</a>() <a href='#SkPath_pathRefIsValid'>const</a>
+bool <a href='#SkPath_pathRefIsValid'>pathRefIsValid</a>() const
</pre>
To be deprecated soon.
@@ -5026,25 +5026,25 @@
<pre style="padding: 1em 1em 1em 1em;width: 62.5em; background-color: #f0f0f0">
class <a href='#SkPath_Iter'>Iter</a> {
- <a href='#SkPath_Iter'>public</a>:
+ public:
<a href='#SkPath_Iter_Iter'>Iter()</a>;
- <a href='#SkPath_Iter'>Iter</a>(<a href='#SkPath_Iter'>const</a> <a href='SkPath_Reference#SkPath'>SkPath</a>& <a href='SkPath_Reference#Path'>path</a>, <a href='SkPath_Reference#Path'>bool</a> <a href='SkPath_Reference#Path'>forceClose</a>);
- <a href='SkPath_Reference#Path'>void</a> <a href='#SkPath_Iter_setPath'>setPath</a>(<a href='#SkPath_Iter_setPath'>const</a> <a href='SkPath_Reference#SkPath'>SkPath</a>& <a href='SkPath_Reference#Path'>path</a>, <a href='SkPath_Reference#Path'>bool</a> <a href='SkPath_Reference#Path'>forceClose</a>);
- <a href='#SkPath_Verb'>Verb</a> <a href='#SkPath_Verb'>next</a>(<a href='SkPoint_Reference#SkPoint'>SkPoint</a> <a href='SkPoint_Reference#SkPoint'>pts</a>[4], <a href='SkPoint_Reference#SkPoint'>bool</a> <a href='SkPoint_Reference#SkPoint'>doConsumeDegenerates</a> = <a href='SkPoint_Reference#SkPoint'>true</a>, <a href='SkPoint_Reference#SkPoint'>bool</a> <a href='SkPoint_Reference#SkPoint'>exact</a> = <a href='SkPoint_Reference#SkPoint'>false</a>);
- <a href='undocumented#SkScalar'>SkScalar</a> <a href='#SkPath_Iter_conicWeight'>conicWeight</a>() <a href='#SkPath_Iter_conicWeight'>const</a>;
- <a href='#SkPath_Iter_conicWeight'>bool</a> <a href='#SkPath_Iter_isCloseLine'>isCloseLine</a>() <a href='#SkPath_Iter_isCloseLine'>const</a>;
- <a href='#SkPath_Iter_isCloseLine'>bool</a> <a href='#SkPath_Iter_isClosedContour'>isClosedContour</a>() <a href='#SkPath_Iter_isClosedContour'>const</a>;
+ <a href='#SkPath_Iter'>Iter</a>(const <a href='SkPath_Reference#SkPath'>SkPath</a>& <a href='SkPath_Reference#Path'>path</a>, bool forceClose);
+ void <a href='#SkPath_Iter_setPath'>setPath</a>(const <a href='SkPath_Reference#SkPath'>SkPath</a>& <a href='SkPath_Reference#Path'>path</a>, bool forceClose);
+ <a href='#SkPath_Verb'>Verb</a> next(<a href='SkPoint_Reference#SkPoint'>SkPoint</a> pts[4], bool doConsumeDegenerates = true, bool exact = false);
+ <a href='undocumented#SkScalar'>SkScalar</a> <a href='#SkPath_Iter_conicWeight'>conicWeight</a>() const;
+ bool <a href='#SkPath_Iter_isCloseLine'>isCloseLine</a>() const;
+ bool <a href='#SkPath_Iter_isClosedContour'>isClosedContour</a>() const;
};
</pre>
-Iterates through <a href='#Path_Verb_Array'>Verb_Array</a>, <a href='#Path_Verb_Array'>and</a> <a href='#Path_Verb_Array'>associated</a> <a href='#Path_Point_Array'>Point_Array</a> <a href='#Path_Point_Array'>and</a> <a href='#Path_Conic_Weight'>Conic_Weight</a>.
-<a href='#Path_Conic_Weight'>Provides</a> <a href='#Path_Conic_Weight'>options</a> <a href='#Path_Conic_Weight'>to</a> <a href='#Path_Conic_Weight'>treat</a> <a href='#Path_Conic_Weight'>open</a> <a href='SkPath_Overview#Contour'>Contours</a> <a href='SkPath_Overview#Contour'>as</a> <a href='SkPath_Overview#Contour'>closed</a>, <a href='SkPath_Overview#Contour'>and</a> <a href='SkPath_Overview#Contour'>to</a> <a href='SkPath_Overview#Contour'>ignore</a>
-<a href='SkPath_Overview#Contour'>degenerate</a> <a href='undocumented#Data'>data</a>.
+Iterates through <a href='#Path_Verb_Array'>Verb_Array</a>, and associated <a href='#Path_Point_Array'>Point_Array</a> and <a href='#Path_Conic_Weight'>Conic_Weight</a>.
+Provides options to treat open <a href='SkPath_Overview#Contour'>Contours</a> as closed, and to ignore
+degenerate <a href='undocumented#Data'>data</a>.
### Example
-<div><fiddle-embed name="2f53df9201769ab7e7c0e164a1334309"><div>Ignoring the actual <a href='SkPath_Reference#Verb'>Verbs</a> <a href='SkPath_Reference#Verb'>and</a> <a href='SkPath_Reference#Verb'>replacing</a> <a href='SkPath_Reference#Verb'>them</a> <a href='SkPath_Reference#Verb'>with</a> <a href='SkPath_Reference#Quad'>Quads</a> <a href='SkPath_Reference#Quad'>rounds</a> <a href='SkPath_Reference#Quad'>the</a>
-<a href='SkPath_Reference#Path'>path</a> <a href='SkPath_Reference#Path'>of</a> <a href='SkPath_Reference#Path'>the</a> <a href='undocumented#Glyph'>glyph</a>.
+<div><fiddle-embed name="2f53df9201769ab7e7c0e164a1334309"><div>Ignoring the actual <a href='SkPath_Reference#Verb'>Verbs</a> and replacing them with <a href='SkPath_Reference#Quad'>Quads</a> rounds the
+<a href='SkPath_Reference#Path'>path</a> of the <a href='undocumented#Glyph'>glyph</a>.
</div></fiddle-embed></div>
### See Also
@@ -5059,13 +5059,13 @@
<a href='#SkPath_Iter_Iter'>Iter()</a>
</pre>
-Initializes <a href='SkPath_Reference#SkPath'>SkPath</a>::<a href='#SkPath_Iter'>Iter</a> <a href='#SkPath_Iter'>with</a> <a href='#SkPath_Iter'>an</a> <a href='#SkPath_Iter'>empty</a> <a href='SkPath_Reference#SkPath'>SkPath</a>. <a href='#SkPath_Iter_next'>next()</a> <a href='#SkPath_Iter_next'>on</a> <a href='SkPath_Reference#SkPath'>SkPath</a>::<a href='#SkPath_Iter'>Iter</a> <a href='#SkPath_Iter'>returns</a>
+Initializes <a href='SkPath_Reference#SkPath'>SkPath</a>::<a href='#SkPath_Iter'>Iter</a> with an empty <a href='SkPath_Reference#SkPath'>SkPath</a>. <a href='#SkPath_Iter_next'>next()</a> on <a href='SkPath_Reference#SkPath'>SkPath</a>::<a href='#SkPath_Iter'>Iter</a> returns
<a href='#SkPath_kDone_Verb'>kDone_Verb</a>.
-Call <a href='#SkPath_Iter_setPath'>setPath</a> <a href='#SkPath_Iter_setPath'>to</a> <a href='#SkPath_Iter_setPath'>initialize</a> <a href='SkPath_Reference#SkPath'>SkPath</a>::<a href='#SkPath_Iter'>Iter</a> <a href='#SkPath_Iter'>at</a> <a href='#SkPath_Iter'>a</a> <a href='#SkPath_Iter'>later</a> <a href='#SkPath_Iter'>time</a>.
+Call <a href='#SkPath_Iter_setPath'>setPath</a> to initialize <a href='SkPath_Reference#SkPath'>SkPath</a>::<a href='#SkPath_Iter'>Iter</a> at a later time.
### Return Value
-<a href='SkPath_Reference#SkPath'>SkPath</a>::<a href='#SkPath_Iter'>Iter</a> <a href='#SkPath_Iter'>of</a> <a href='#SkPath_Iter'>empty</a> <a href='SkPath_Reference#SkPath'>SkPath</a>
+<a href='SkPath_Reference#SkPath'>SkPath</a>::<a href='#SkPath_Iter'>Iter</a> of empty <a href='SkPath_Reference#SkPath'>SkPath</a>
### Example
@@ -5089,26 +5089,26 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-<a href='#SkPath_Iter'>Iter</a>(<a href='#SkPath_Iter'>const</a> <a href='SkPath_Reference#SkPath'>SkPath</a>& <a href='SkPath_Reference#Path'>path</a>, <a href='SkPath_Reference#Path'>bool</a> <a href='SkPath_Reference#Path'>forceClose</a>)
+<a href='#SkPath_Iter'>Iter</a>(const <a href='SkPath_Reference#SkPath'>SkPath</a>& <a href='SkPath_Reference#Path'>path</a>, bool forceClose)
</pre>
-Sets <a href='SkPath_Reference#SkPath'>SkPath</a>::<a href='#SkPath_Iter'>Iter</a> <a href='#SkPath_Iter'>to</a> <a href='#SkPath_Iter'>return</a> <a href='#SkPath_Iter'>elements</a> <a href='#SkPath_Iter'>of</a> <a href='#Verb_Array'>verb array</a>, <a href='SkPath_Reference#Point_Array'>SkPoint array</a>, <a href='SkPoint_Reference#SkPoint'>and</a> <a href='#Conic_Weight'>conic weight</a> <a href='SkPath_Reference#Conic'>in</a>
-<a href='#SkPath_Iter_const_SkPath_path'>path</a>. <a href='#SkPath_Iter_const_SkPath_path'>If</a> <a href='#SkPath_Iter_const_SkPath_forceClose'>forceClose</a> <a href='#SkPath_Iter_const_SkPath_forceClose'>is</a> <a href='#SkPath_Iter_const_SkPath_forceClose'>true</a>, <a href='SkPath_Reference#SkPath'>SkPath</a>::<a href='#SkPath_Iter'>Iter</a> <a href='#SkPath_Iter'>will</a> <a href='#SkPath_Iter'>add</a> <a href='#SkPath_kLine_Verb'>kLine_Verb</a> <a href='#SkPath_kLine_Verb'>and</a> <a href='#SkPath_kClose_Verb'>kClose_Verb</a> <a href='#SkPath_kClose_Verb'>after</a> <a href='#SkPath_kClose_Verb'>each</a>
-open <a href='SkPath_Overview#Contour'>contour</a>. <a href='#SkPath_Iter_const_SkPath_path'>path</a> <a href='#SkPath_Iter_const_SkPath_path'>is</a> <a href='#SkPath_Iter_const_SkPath_path'>not</a> <a href='#SkPath_Iter_const_SkPath_path'>altered</a>.
+Sets <a href='SkPath_Reference#SkPath'>SkPath</a>::<a href='#SkPath_Iter'>Iter</a> to return elements of <a href='#Verb_Array'>verb array</a>, <a href='SkPath_Reference#Point_Array'>SkPoint array</a>, and <a href='#Conic_Weight'>conic weight</a> in
+<a href='#SkPath_Iter_const_SkPath_path'>path</a>. If <a href='#SkPath_Iter_const_SkPath_forceClose'>forceClose</a> is true, <a href='SkPath_Reference#SkPath'>SkPath</a>::<a href='#SkPath_Iter'>Iter</a> will add <a href='#SkPath_kLine_Verb'>kLine_Verb</a> and <a href='#SkPath_kClose_Verb'>kClose_Verb</a> after each
+open <a href='SkPath_Overview#Contour'>contour</a>. <a href='#SkPath_Iter_const_SkPath_path'>path</a> is not altered.
### Parameters
<table> <tr> <td><a name='SkPath_Iter_const_SkPath_path'><code><strong>path</strong></code></a></td>
- <td><a href='SkPath_Reference#SkPath'>SkPath</a> <a href='SkPath_Reference#SkPath'>to</a> <a href='SkPath_Reference#SkPath'>iterate</a></td>
+ <td><a href='SkPath_Reference#SkPath'>SkPath</a> to iterate</td>
</tr>
<tr> <td><a name='SkPath_Iter_const_SkPath_forceClose'><code><strong>forceClose</strong></code></a></td>
- <td>true if open <a href='SkPath_Overview#Contour'>contours</a> <a href='SkPath_Overview#Contour'>generate</a> <a href='#SkPath_kClose_Verb'>kClose_Verb</a></td>
+ <td>true if open <a href='SkPath_Overview#Contour'>contours</a> generate <a href='#SkPath_kClose_Verb'>kClose_Verb</a></td>
</tr>
</table>
### Return Value
-<a href='SkPath_Reference#SkPath'>SkPath</a>::<a href='#SkPath_Iter'>Iter</a> <a href='#SkPath_Iter'>of</a> <a href='#SkPath_Iter_const_SkPath_path'>path</a>
+<a href='SkPath_Reference#SkPath'>SkPath</a>::<a href='#SkPath_Iter'>Iter</a> of <a href='#SkPath_Iter_const_SkPath_path'>path</a>
### Example
@@ -5140,20 +5140,20 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-void <a href='#SkPath_Iter_setPath'>setPath</a>(<a href='#SkPath_Iter_setPath'>const</a> <a href='SkPath_Reference#SkPath'>SkPath</a>& <a href='SkPath_Reference#Path'>path</a>, <a href='SkPath_Reference#Path'>bool</a> <a href='SkPath_Reference#Path'>forceClose</a>)
+void <a href='#SkPath_Iter_setPath'>setPath</a>(const <a href='SkPath_Reference#SkPath'>SkPath</a>& <a href='SkPath_Reference#Path'>path</a>, bool forceClose)
</pre>
-Sets <a href='SkPath_Reference#SkPath'>SkPath</a>::<a href='#SkPath_Iter'>Iter</a> <a href='#SkPath_Iter'>to</a> <a href='#SkPath_Iter'>return</a> <a href='#SkPath_Iter'>elements</a> <a href='#SkPath_Iter'>of</a> <a href='#Verb_Array'>verb array</a>, <a href='SkPath_Reference#Point_Array'>SkPoint array</a>, <a href='SkPoint_Reference#SkPoint'>and</a> <a href='#Conic_Weight'>conic weight</a> <a href='SkPath_Reference#Conic'>in</a>
-<a href='#SkPath_Iter_setPath_path'>path</a>. <a href='#SkPath_Iter_setPath_path'>If</a> <a href='#SkPath_Iter_setPath_forceClose'>forceClose</a> <a href='#SkPath_Iter_setPath_forceClose'>is</a> <a href='#SkPath_Iter_setPath_forceClose'>true</a>, <a href='SkPath_Reference#SkPath'>SkPath</a>::<a href='#SkPath_Iter'>Iter</a> <a href='#SkPath_Iter'>will</a> <a href='#SkPath_Iter'>add</a> <a href='#SkPath_kLine_Verb'>kLine_Verb</a> <a href='#SkPath_kLine_Verb'>and</a> <a href='#SkPath_kClose_Verb'>kClose_Verb</a> <a href='#SkPath_kClose_Verb'>after</a> <a href='#SkPath_kClose_Verb'>each</a>
-open <a href='SkPath_Overview#Contour'>contour</a>. <a href='#SkPath_Iter_setPath_path'>path</a> <a href='#SkPath_Iter_setPath_path'>is</a> <a href='#SkPath_Iter_setPath_path'>not</a> <a href='#SkPath_Iter_setPath_path'>altered</a>.
+Sets <a href='SkPath_Reference#SkPath'>SkPath</a>::<a href='#SkPath_Iter'>Iter</a> to return elements of <a href='#Verb_Array'>verb array</a>, <a href='SkPath_Reference#Point_Array'>SkPoint array</a>, and <a href='#Conic_Weight'>conic weight</a> in
+<a href='#SkPath_Iter_setPath_path'>path</a>. If <a href='#SkPath_Iter_setPath_forceClose'>forceClose</a> is true, <a href='SkPath_Reference#SkPath'>SkPath</a>::<a href='#SkPath_Iter'>Iter</a> will add <a href='#SkPath_kLine_Verb'>kLine_Verb</a> and <a href='#SkPath_kClose_Verb'>kClose_Verb</a> after each
+open <a href='SkPath_Overview#Contour'>contour</a>. <a href='#SkPath_Iter_setPath_path'>path</a> is not altered.
### Parameters
<table> <tr> <td><a name='SkPath_Iter_setPath_path'><code><strong>path</strong></code></a></td>
- <td><a href='SkPath_Reference#SkPath'>SkPath</a> <a href='SkPath_Reference#SkPath'>to</a> <a href='SkPath_Reference#SkPath'>iterate</a></td>
+ <td><a href='SkPath_Reference#SkPath'>SkPath</a> to iterate</td>
</tr>
<tr> <td><a name='SkPath_Iter_setPath_forceClose'><code><strong>forceClose</strong></code></a></td>
- <td>true if open <a href='SkPath_Overview#Contour'>contours</a> <a href='SkPath_Overview#Contour'>generate</a> <a href='#SkPath_kClose_Verb'>kClose_Verb</a></td>
+ <td>true if open <a href='SkPath_Overview#Contour'>contours</a> generate <a href='#SkPath_kClose_Verb'>kClose_Verb</a></td>
</tr>
</table>
@@ -5187,24 +5187,24 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-<a href='#SkPath_Verb'>Verb</a> <a href='#SkPath_Verb'>next</a>(<a href='SkPoint_Reference#SkPoint'>SkPoint</a> <a href='SkPoint_Reference#SkPoint'>pts</a>[4], <a href='SkPoint_Reference#SkPoint'>bool</a> <a href='SkPoint_Reference#SkPoint'>doConsumeDegenerates</a> = <a href='SkPoint_Reference#SkPoint'>true</a>, <a href='SkPoint_Reference#SkPoint'>bool</a> <a href='SkPoint_Reference#SkPoint'>exact</a> = <a href='SkPoint_Reference#SkPoint'>false</a>)
+<a href='#SkPath_Verb'>Verb</a> next(<a href='SkPoint_Reference#SkPoint'>SkPoint</a> pts[4], bool doConsumeDegenerates = true, bool exact = false)
</pre>
-Returns next <a href='SkPath_Reference#SkPath'>SkPath</a>::<a href='#SkPath_Verb'>Verb</a> <a href='#SkPath_Verb'>in</a> <a href='#Verb_Array'>verb array</a>, <a href='#SkPath_Verb'>and</a> <a href='#SkPath_Verb'>advances</a> <a href='SkPath_Reference#SkPath'>SkPath</a>::<a href='#SkPath_Iter'>Iter</a>.
+Returns next <a href='SkPath_Reference#SkPath'>SkPath</a>::<a href='#SkPath_Verb'>Verb</a> in <a href='#Verb_Array'>verb array</a>, and advances <a href='SkPath_Reference#SkPath'>SkPath</a>::<a href='#SkPath_Iter'>Iter</a>.
When <a href='#Verb_Array'>verb array</a> is exhausted, returns <a href='#SkPath_kDone_Verb'>kDone_Verb</a>.
-Zero to four <a href='SkPoint_Reference#SkPoint'>SkPoint</a> <a href='SkPoint_Reference#SkPoint'>are</a> <a href='SkPoint_Reference#SkPoint'>stored</a> <a href='SkPoint_Reference#SkPoint'>in</a> <a href='#SkPath_Iter_next_pts'>pts</a>, <a href='#SkPath_Iter_next_pts'>depending</a> <a href='#SkPath_Iter_next_pts'>on</a> <a href='#SkPath_Iter_next_pts'>the</a> <a href='#SkPath_Iter_next_pts'>returned</a> <a href='SkPath_Reference#SkPath'>SkPath</a>::<a href='#SkPath_Verb'>Verb</a>.
+Zero to four <a href='SkPoint_Reference#SkPoint'>SkPoint</a> are stored in <a href='#SkPath_Iter_next_pts'>pts</a>, depending on the returned <a href='SkPath_Reference#SkPath'>SkPath</a>::<a href='#SkPath_Verb'>Verb</a>.
-If <a href='#SkPath_Iter_next_doConsumeDegenerates'>doConsumeDegenerates</a> <a href='#SkPath_Iter_next_doConsumeDegenerates'>is</a> <a href='#SkPath_Iter_next_doConsumeDegenerates'>true</a>, <a href='#SkPath_Iter_next_doConsumeDegenerates'>skip</a> <a href='#SkPath_Iter_next_doConsumeDegenerates'>consecutive</a> <a href='#SkPath_kMove_Verb'>kMove_Verb</a> <a href='#SkPath_kMove_Verb'>entries</a>, <a href='#SkPath_kMove_Verb'>returning</a>
-only the last in the series; and skip very small <a href='undocumented#Line'>lines</a>, <a href='SkPath_Reference#Quad'>quads</a>, <a href='SkPath_Reference#Quad'>and</a> <a href='SkPath_Reference#Conic'>conics</a>; <a href='SkPath_Reference#Conic'>and</a>
-skip <a href='#SkPath_kClose_Verb'>kClose_Verb</a> <a href='#SkPath_kClose_Verb'>following</a> <a href='#SkPath_kMove_Verb'>kMove_Verb</a>.
-if <a href='#SkPath_Iter_next_doConsumeDegenerates'>doConsumeDegenerates</a> <a href='#SkPath_Iter_next_doConsumeDegenerates'>is</a> <a href='#SkPath_Iter_next_doConsumeDegenerates'>true</a> <a href='#SkPath_Iter_next_doConsumeDegenerates'>and</a> <a href='#SkPath_Iter_next_exact'>exact</a> <a href='#SkPath_Iter_next_exact'>is</a> <a href='#SkPath_Iter_next_exact'>true</a>, <a href='#SkPath_Iter_next_exact'>only</a> <a href='#SkPath_Iter_next_exact'>skip</a> <a href='undocumented#Line'>lines</a>, <a href='SkPath_Reference#Quad'>quads</a>, <a href='SkPath_Reference#Quad'>and</a>
-<a href='SkPath_Reference#Conic'>conics</a> <a href='SkPath_Reference#Conic'>with</a> <a href='SkPath_Reference#Conic'>zero</a> <a href='SkPath_Reference#Conic'>lengths</a>.
+If <a href='#SkPath_Iter_next_doConsumeDegenerates'>doConsumeDegenerates</a> is true, skip consecutive <a href='#SkPath_kMove_Verb'>kMove_Verb</a> entries, returning
+only the last in the series; and skip very small <a href='undocumented#Line'>lines</a>, <a href='SkPath_Reference#Quad'>quads</a>, and <a href='SkPath_Reference#Conic'>conics</a>; and
+skip <a href='#SkPath_kClose_Verb'>kClose_Verb</a> following <a href='#SkPath_kMove_Verb'>kMove_Verb</a>.
+if <a href='#SkPath_Iter_next_doConsumeDegenerates'>doConsumeDegenerates</a> is true and <a href='#SkPath_Iter_next_exact'>exact</a> is true, only skip <a href='undocumented#Line'>lines</a>, <a href='SkPath_Reference#Quad'>quads</a>, and
+<a href='SkPath_Reference#Conic'>conics</a> with zero lengths.
### Parameters
<table> <tr> <td><a name='SkPath_Iter_next_pts'><code><strong>pts</strong></code></a></td>
- <td>storage for <a href='SkPoint_Reference#SkPoint'>SkPoint</a> <a href='undocumented#Data'>data</a> <a href='undocumented#Data'>describing</a> <a href='undocumented#Data'>returned</a> <a href='SkPath_Reference#SkPath'>SkPath</a>::<a href='#SkPath_Verb'>Verb</a></td>
+ <td>storage for <a href='SkPoint_Reference#SkPoint'>SkPoint</a> <a href='undocumented#Data'>data</a> describing returned <a href='SkPath_Reference#SkPath'>SkPath</a>::<a href='#SkPath_Verb'>Verb</a></td>
</tr>
<tr> <td><a name='SkPath_Iter_next_doConsumeDegenerates'><code><strong>doConsumeDegenerates</strong></code></a></td>
<td>if true, skip degenerate <a href='SkPath_Reference#Verb'>verbs</a></td>
@@ -5216,17 +5216,17 @@
### Return Value
-next <a href='SkPath_Reference#SkPath'>SkPath</a>::<a href='#SkPath_Verb'>Verb</a> <a href='#SkPath_Verb'>from</a> <a href='#Verb_Array'>verb array</a>
+next <a href='SkPath_Reference#SkPath'>SkPath</a>::<a href='#SkPath_Verb'>Verb</a> from <a href='#Verb_Array'>verb array</a>
### Example
-<div><fiddle-embed name="00ae8984856486bdb626d0ed6587855a"><div>skip degenerate skips the first in a <a href='#SkPath_kMove_Verb'>kMove_Verb</a> <a href='#SkPath_kMove_Verb'>pair</a>, <a href='#SkPath_kMove_Verb'>the</a> <a href='#SkPath_kMove_Verb'>kMove_Verb</a>
-<a href='#SkPath_kMove_Verb'>followed</a> <a href='#SkPath_kMove_Verb'>by</a> <a href='#SkPath_kMove_Verb'>the</a> <a href='#SkPath_kClose_Verb'>kClose_Verb</a>, <a href='#SkPath_kClose_Verb'>the</a> <a href='#SkPath_kClose_Verb'>zero length</a> <a href='undocumented#Line'>Line</a> <a href='undocumented#Line'>and</a> <a href='undocumented#Line'>the</a> <a href='undocumented#Line'>very</a> <a href='undocumented#Line'>small</a> <a href='undocumented#Line'>Line</a>.
+<div><fiddle-embed name="00ae8984856486bdb626d0ed6587855a"><div>skip degenerate skips the first in a <a href='#SkPath_kMove_Verb'>kMove_Verb</a> pair, the <a href='#SkPath_kMove_Verb'>kMove_Verb</a>
+followed by the <a href='#SkPath_kClose_Verb'>kClose_Verb</a>, the zero length <a href='undocumented#Line'>Line</a> and the very small <a href='undocumented#Line'>Line</a>.
-<a href='undocumented#Line'>skip</a> <a href='undocumented#Line'>degenerate</a> <a href='undocumented#Line'>if</a> <a href='#SkPath_Iter_next_exact'>exact</a> <a href='#SkPath_Iter_next_exact'>skips</a> <a href='#SkPath_Iter_next_exact'>the</a> <a href='#SkPath_Iter_next_exact'>same</a> <a href='#SkPath_Iter_next_exact'>as</a> <a href='#SkPath_Iter_next_exact'>skip</a> <a href='#SkPath_Iter_next_exact'>degenerate</a>, <a href='#SkPath_Iter_next_exact'>but</a> <a href='#SkPath_Iter_next_exact'>shows</a>
-<a href='#SkPath_Iter_next_exact'>the</a> <a href='#SkPath_Iter_next_exact'>very</a> <a href='#SkPath_Iter_next_exact'>small</a> <a href='undocumented#Line'>Line</a>.
+skip degenerate if <a href='#SkPath_Iter_next_exact'>exact</a> skips the same as skip degenerate, but shows
+the very small <a href='undocumented#Line'>Line</a>.
-<a href='undocumented#Line'>skip</a> <a href='undocumented#Line'>none</a> <a href='undocumented#Line'>shows</a> <a href='undocumented#Line'>all</a> <a href='undocumented#Line'>of</a> <a href='undocumented#Line'>the</a> <a href='SkPath_Reference#Verb'>Verbs</a> <a href='SkPath_Reference#Verb'>and</a> <a href='SkPoint_Reference#Point'>Points</a> <a href='SkPoint_Reference#Point'>in</a> <a href='SkPath_Reference#Path'>Path</a>.
+skip none shows all of the <a href='SkPath_Reference#Verb'>Verbs</a> and <a href='SkPoint_Reference#Point'>Points</a> in <a href='SkPath_Reference#Path'>Path</a>.
</div>
#### Example Output
@@ -5266,17 +5266,17 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-<a href='undocumented#SkScalar'>SkScalar</a> <a href='#SkPath_Iter_conicWeight'>conicWeight</a>() <a href='#SkPath_Iter_conicWeight'>const</a>
+<a href='undocumented#SkScalar'>SkScalar</a> <a href='#SkPath_Iter_conicWeight'>conicWeight</a>() const
</pre>
-Returns <a href='SkPath_Reference#Conic'>conic</a> <a href='SkPath_Reference#Conic'>weight</a> <a href='SkPath_Reference#Conic'>if</a> <a href='#SkPath_Iter_next'>next()</a> <a href='#SkPath_Iter_next'>returned</a> <a href='#SkPath_kConic_Verb'>kConic_Verb</a>.
+Returns <a href='SkPath_Reference#Conic'>conic</a> weight if <a href='#SkPath_Iter_next'>next()</a> returned <a href='#SkPath_kConic_Verb'>kConic_Verb</a>.
-If <a href='#SkPath_Iter_next'>next()</a> <a href='#SkPath_Iter_next'>has</a> <a href='#SkPath_Iter_next'>not</a> <a href='#SkPath_Iter_next'>been</a> <a href='#SkPath_Iter_next'>called</a>, <a href='#SkPath_Iter_next'>or</a> <a href='#SkPath_Iter_next'>next()</a> <a href='#SkPath_Iter_next'>did</a> <a href='#SkPath_Iter_next'>not</a> <a href='#SkPath_Iter_next'>return</a> <a href='#SkPath_kConic_Verb'>kConic_Verb</a>,
+If <a href='#SkPath_Iter_next'>next()</a> has not been called, or <a href='#SkPath_Iter_next'>next()</a> did not return <a href='#SkPath_kConic_Verb'>kConic_Verb</a>,
result is undefined.
### Return Value
-<a href='SkPath_Reference#Conic'>conic</a> <a href='SkPath_Reference#Conic'>weight</a> <a href='SkPath_Reference#Conic'>for</a> <a href='SkPath_Reference#Conic'>conic</a> <a href='SkPoint_Reference#SkPoint'>SkPoint</a> <a href='SkPoint_Reference#SkPoint'>returned</a> <a href='SkPoint_Reference#SkPoint'>by</a> <a href='#SkPath_Iter_next'>next()</a>
+<a href='SkPath_Reference#Conic'>conic</a> weight for <a href='SkPath_Reference#Conic'>conic</a> <a href='SkPoint_Reference#SkPoint'>SkPoint</a> returned by <a href='#SkPath_Iter_next'>next()</a>
### Example
@@ -5302,19 +5302,19 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-bool <a href='#SkPath_Iter_isCloseLine'>isCloseLine</a>() <a href='#SkPath_Iter_isCloseLine'>const</a>
+bool <a href='#SkPath_Iter_isCloseLine'>isCloseLine</a>() const
</pre>
-Returns true if last <a href='#SkPath_kLine_Verb'>kLine_Verb</a> <a href='#SkPath_kLine_Verb'>returned</a> <a href='#SkPath_kLine_Verb'>by</a> <a href='#SkPath_Iter_next'>next()</a> <a href='#SkPath_Iter_next'>was</a> <a href='#SkPath_Iter_next'>generated</a>
-by <a href='#SkPath_kClose_Verb'>kClose_Verb</a>. <a href='#SkPath_kClose_Verb'>When</a> <a href='#SkPath_kClose_Verb'>true</a>, <a href='#SkPath_kClose_Verb'>the</a> <a href='#SkPath_kClose_Verb'>end</a> <a href='SkPoint_Reference#Point'>point</a> <a href='SkPoint_Reference#Point'>returned</a> <a href='SkPoint_Reference#Point'>by</a> <a href='#SkPath_Iter_next'>next()</a> <a href='#SkPath_Iter_next'>is</a>
-also the start <a href='SkPoint_Reference#Point'>point</a> <a href='SkPoint_Reference#Point'>of</a> <a href='SkPath_Overview#Contour'>contour</a>.
+Returns true if last <a href='#SkPath_kLine_Verb'>kLine_Verb</a> returned by <a href='#SkPath_Iter_next'>next()</a> was generated
+by <a href='#SkPath_kClose_Verb'>kClose_Verb</a>. When true, the end <a href='SkPoint_Reference#Point'>point</a> returned by <a href='#SkPath_Iter_next'>next()</a> is
+also the start <a href='SkPoint_Reference#Point'>point</a> of <a href='SkPath_Overview#Contour'>contour</a>.
-If <a href='#SkPath_Iter_next'>next()</a> <a href='#SkPath_Iter_next'>has</a> <a href='#SkPath_Iter_next'>not</a> <a href='#SkPath_Iter_next'>been</a> <a href='#SkPath_Iter_next'>called</a>, <a href='#SkPath_Iter_next'>or</a> <a href='#SkPath_Iter_next'>next()</a> <a href='#SkPath_Iter_next'>did</a> <a href='#SkPath_Iter_next'>not</a> <a href='#SkPath_Iter_next'>return</a> <a href='#SkPath_kLine_Verb'>kLine_Verb</a>,
+If <a href='#SkPath_Iter_next'>next()</a> has not been called, or <a href='#SkPath_Iter_next'>next()</a> did not return <a href='#SkPath_kLine_Verb'>kLine_Verb</a>,
result is undefined.
### Return Value
-true if last <a href='#SkPath_kLine_Verb'>kLine_Verb</a> <a href='#SkPath_kLine_Verb'>was</a> <a href='#SkPath_kLine_Verb'>generated</a> <a href='#SkPath_kLine_Verb'>by</a> <a href='#SkPath_kClose_Verb'>kClose_Verb</a>
+true if last <a href='#SkPath_kLine_Verb'>kLine_Verb</a> was generated by <a href='#SkPath_kClose_Verb'>kClose_Verb</a>
### Example
@@ -5343,16 +5343,16 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-bool <a href='#SkPath_Iter_isClosedContour'>isClosedContour</a>() <a href='#SkPath_Iter_isClosedContour'>const</a>
+bool <a href='#SkPath_Iter_isClosedContour'>isClosedContour</a>() const
</pre>
-Returns true if subsequent calls to <a href='#SkPath_Iter_next'>next()</a> <a href='#SkPath_Iter_next'>return</a> <a href='#SkPath_kClose_Verb'>kClose_Verb</a> <a href='#SkPath_kClose_Verb'>before</a> <a href='#SkPath_kClose_Verb'>returning</a>
-<a href='#SkPath_kMove_Verb'>kMove_Verb</a>. <a href='#SkPath_kMove_Verb'>if</a> <a href='#SkPath_kMove_Verb'>true</a>, <a href='SkPath_Overview#Contour'>contour</a> <a href='SkPath_Reference#SkPath'>SkPath</a>::<a href='#SkPath_Iter'>Iter</a> <a href='#SkPath_Iter'>is</a> <a href='#SkPath_Iter'>processing</a> <a href='#SkPath_Iter'>may</a> <a href='#SkPath_Iter'>end</a> <a href='#SkPath_Iter'>with</a> <a href='#SkPath_kClose_Verb'>kClose_Verb</a>, <a href='#SkPath_kClose_Verb'>or</a>
-<a href='SkPath_Reference#SkPath'>SkPath</a>::<a href='#SkPath_Iter'>Iter</a> <a href='#SkPath_Iter'>may</a> <a href='#SkPath_Iter'>have</a> <a href='#SkPath_Iter'>been</a> <a href='#SkPath_Iter'>initialized</a> <a href='#SkPath_Iter'>with</a> <a href='#SkPath_Iter'>force</a> <a href='#SkPath_Iter'>close</a> <a href='#SkPath_Iter'>set</a> <a href='#SkPath_Iter'>to</a> <a href='#SkPath_Iter'>true</a>.
+Returns true if subsequent calls to <a href='#SkPath_Iter_next'>next()</a> return <a href='#SkPath_kClose_Verb'>kClose_Verb</a> before returning
+<a href='#SkPath_kMove_Verb'>kMove_Verb</a>. if true, <a href='SkPath_Overview#Contour'>contour</a> <a href='SkPath_Reference#SkPath'>SkPath</a>::<a href='#SkPath_Iter'>Iter</a> is processing may end with <a href='#SkPath_kClose_Verb'>kClose_Verb</a>, or
+<a href='SkPath_Reference#SkPath'>SkPath</a>::<a href='#SkPath_Iter'>Iter</a> may have been initialized with force close set to true.
### Return Value
-true if <a href='SkPath_Overview#Contour'>contour</a> <a href='SkPath_Overview#Contour'>is</a> <a href='SkPath_Overview#Contour'>closed</a>
+true if <a href='SkPath_Overview#Contour'>contour</a> is closed
### Example
@@ -5379,18 +5379,18 @@
<pre style="padding: 1em 1em 1em 1em;width: 62.5em; background-color: #f0f0f0">
class <a href='#SkPath_RawIter'>RawIter</a> {
- <a href='#SkPath_RawIter'>public</a>:
+ public:
<a href='#SkPath_RawIter_RawIter'>RawIter()</a>;
- <a href='#SkPath_RawIter'>RawIter</a>(<a href='#SkPath_RawIter'>const</a> <a href='SkPath_Reference#SkPath'>SkPath</a>& <a href='SkPath_Reference#Path'>path</a>);
- <a href='SkPath_Reference#Path'>void</a> <a href='#SkPath_RawIter_setPath'>setPath</a>(<a href='#SkPath_RawIter_setPath'>const</a> <a href='SkPath_Reference#SkPath'>SkPath</a>& <a href='SkPath_Reference#Path'>path</a>);
- <a href='#SkPath_Verb'>Verb</a> <a href='#SkPath_Verb'>next</a>(<a href='SkPoint_Reference#SkPoint'>SkPoint</a> <a href='SkPoint_Reference#SkPoint'>pts</a>[4]);
- <a href='#SkPath_Verb'>Verb</a> <a href='#SkPath_RawIter_peek'>peek()</a> <a href='#SkPath_RawIter_peek'>const</a>;
- <a href='undocumented#SkScalar'>SkScalar</a> <a href='#SkPath_RawIter_conicWeight'>conicWeight</a>() <a href='#SkPath_RawIter_conicWeight'>const</a>;
+ <a href='#SkPath_RawIter'>RawIter</a>(const <a href='SkPath_Reference#SkPath'>SkPath</a>& <a href='SkPath_Reference#Path'>path</a>);
+ void <a href='#SkPath_RawIter_setPath'>setPath</a>(const <a href='SkPath_Reference#SkPath'>SkPath</a>& <a href='SkPath_Reference#Path'>path</a>);
+ <a href='#SkPath_Verb'>Verb</a> next(<a href='SkPoint_Reference#SkPoint'>SkPoint</a> pts[4]);
+ <a href='#SkPath_Verb'>Verb</a> <a href='#SkPath_RawIter_peek'>peek()</a> const;
+ <a href='undocumented#SkScalar'>SkScalar</a> <a href='#SkPath_RawIter_conicWeight'>conicWeight</a>() const;
};
</pre>
-Iterates through <a href='#Path_Verb_Array'>Verb_Array</a>, <a href='#Path_Verb_Array'>and</a> <a href='#Path_Verb_Array'>associated</a> <a href='#Path_Point_Array'>Point_Array</a> <a href='#Path_Point_Array'>and</a> <a href='#Path_Conic_Weight'>Conic_Weight</a>.
-<a href='#Path_Verb_Array'>Verb_Array</a>, <a href='#Path_Point_Array'>Point_Array</a>, <a href='#Path_Point_Array'>and</a> <a href='#Path_Conic_Weight'>Conic_Weight</a> <a href='#Path_Conic_Weight'>are</a> <a href='#Path_Conic_Weight'>returned</a> <a href='#Path_Conic_Weight'>unaltered</a>.
+Iterates through <a href='#Path_Verb_Array'>Verb_Array</a>, and associated <a href='#Path_Point_Array'>Point_Array</a> and <a href='#Path_Conic_Weight'>Conic_Weight</a>.
+<a href='#Path_Verb_Array'>Verb_Array</a>, <a href='#Path_Point_Array'>Point_Array</a>, and <a href='#Path_Conic_Weight'>Conic_Weight</a> are returned unaltered.
<a name='SkPath_RawIter_RawIter'></a>
@@ -5400,49 +5400,49 @@
<a href='#SkPath_RawIter_RawIter'>RawIter()</a>
</pre>
-Initializes <a href='#SkPath_RawIter'>RawIter</a> <a href='#SkPath_RawIter'>with</a> <a href='#SkPath_RawIter'>an</a> <a href='#SkPath_RawIter'>empty</a> <a href='SkPath_Reference#SkPath'>SkPath</a>. <a href='#SkPath_RawIter_next'>next()</a> <a href='#SkPath_RawIter_next'>on</a> <a href='#SkPath_RawIter'>RawIter</a> <a href='#SkPath_RawIter'>returns</a> <a href='#SkPath_kDone_Verb'>kDone_Verb</a>.
-Call <a href='#SkPath_RawIter_setPath'>setPath</a> <a href='#SkPath_RawIter_setPath'>to</a> <a href='#SkPath_RawIter_setPath'>initialize</a> <a href='SkPath_Reference#SkPath'>SkPath</a>::<a href='#SkPath_Iter'>Iter</a> <a href='#SkPath_Iter'>at</a> <a href='#SkPath_Iter'>a</a> <a href='#SkPath_Iter'>later</a> <a href='#SkPath_Iter'>time</a>.
+Initializes <a href='#SkPath_RawIter'>RawIter</a> with an empty <a href='SkPath_Reference#SkPath'>SkPath</a>. <a href='#SkPath_RawIter_next'>next()</a> on <a href='#SkPath_RawIter'>RawIter</a> returns <a href='#SkPath_kDone_Verb'>kDone_Verb</a>.
+Call <a href='#SkPath_RawIter_setPath'>setPath</a> to initialize <a href='SkPath_Reference#SkPath'>SkPath</a>::<a href='#SkPath_Iter'>Iter</a> at a later time.
### Return Value
-<a href='#SkPath_RawIter'>RawIter</a> <a href='#SkPath_RawIter'>of</a> <a href='#SkPath_RawIter'>empty</a> <a href='SkPath_Reference#SkPath'>SkPath</a>
+<a href='#SkPath_RawIter'>RawIter</a> of empty <a href='SkPath_Reference#SkPath'>SkPath</a>
<a name='SkPath_RawIter_copy_const_SkPath'></a>
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-<a href='#SkPath_RawIter'>RawIter</a>(<a href='#SkPath_RawIter'>const</a> <a href='SkPath_Reference#SkPath'>SkPath</a>& <a href='SkPath_Reference#Path'>path</a>)
+<a href='#SkPath_RawIter'>RawIter</a>(const <a href='SkPath_Reference#SkPath'>SkPath</a>& <a href='SkPath_Reference#Path'>path</a>)
</pre>
-Sets <a href='#SkPath_RawIter'>RawIter</a> <a href='#SkPath_RawIter'>to</a> <a href='#SkPath_RawIter'>return</a> <a href='#SkPath_RawIter'>elements</a> <a href='#SkPath_RawIter'>of</a> <a href='#Verb_Array'>verb array</a>, <a href='SkPath_Reference#Point_Array'>SkPoint array</a>, <a href='SkPoint_Reference#SkPoint'>and</a> <a href='#Conic_Weight'>conic weight</a> <a href='SkPath_Reference#Conic'>in</a> <a href='#SkPath_RawIter_copy_const_SkPath_path'>path</a>.
+Sets <a href='#SkPath_RawIter'>RawIter</a> to return elements of <a href='#Verb_Array'>verb array</a>, <a href='SkPath_Reference#Point_Array'>SkPoint array</a>, and <a href='#Conic_Weight'>conic weight</a> in <a href='#SkPath_RawIter_copy_const_SkPath_path'>path</a>.
### Parameters
<table> <tr> <td><a name='SkPath_RawIter_copy_const_SkPath_path'><code><strong>path</strong></code></a></td>
- <td><a href='SkPath_Reference#SkPath'>SkPath</a> <a href='SkPath_Reference#SkPath'>to</a> <a href='SkPath_Reference#SkPath'>iterate</a></td>
+ <td><a href='SkPath_Reference#SkPath'>SkPath</a> to iterate</td>
</tr>
</table>
### Return Value
-<a href='#SkPath_RawIter'>RawIter</a> <a href='#SkPath_RawIter'>of</a> <a href='#SkPath_RawIter_copy_const_SkPath_path'>path</a>
+<a href='#SkPath_RawIter'>RawIter</a> of <a href='#SkPath_RawIter_copy_const_SkPath_path'>path</a>
<a name='SkPath_RawIter_setPath'></a>
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-void <a href='#SkPath_RawIter_setPath'>setPath</a>(<a href='#SkPath_RawIter_setPath'>const</a> <a href='SkPath_Reference#SkPath'>SkPath</a>& <a href='SkPath_Reference#Path'>path</a>)
+void <a href='#SkPath_RawIter_setPath'>setPath</a>(const <a href='SkPath_Reference#SkPath'>SkPath</a>& <a href='SkPath_Reference#Path'>path</a>)
</pre>
-Sets <a href='SkPath_Reference#SkPath'>SkPath</a>::<a href='#SkPath_Iter'>Iter</a> <a href='#SkPath_Iter'>to</a> <a href='#SkPath_Iter'>return</a> <a href='#SkPath_Iter'>elements</a> <a href='#SkPath_Iter'>of</a> <a href='#Verb_Array'>verb array</a>, <a href='SkPath_Reference#Point_Array'>SkPoint array</a>, <a href='SkPoint_Reference#SkPoint'>and</a> <a href='#Conic_Weight'>conic weight</a> <a href='SkPath_Reference#Conic'>in</a>
+Sets <a href='SkPath_Reference#SkPath'>SkPath</a>::<a href='#SkPath_Iter'>Iter</a> to return elements of <a href='#Verb_Array'>verb array</a>, <a href='SkPath_Reference#Point_Array'>SkPoint array</a>, and <a href='#Conic_Weight'>conic weight</a> in
<a href='#SkPath_RawIter_setPath_path'>path</a>.
### Parameters
<table> <tr> <td><a name='SkPath_RawIter_setPath_path'><code><strong>path</strong></code></a></td>
- <td><a href='SkPath_Reference#SkPath'>SkPath</a> <a href='SkPath_Reference#SkPath'>to</a> <a href='SkPath_Reference#SkPath'>iterate</a></td>
+ <td><a href='SkPath_Reference#SkPath'>SkPath</a> to iterate</td>
</tr>
</table>
@@ -5451,23 +5451,23 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-<a href='#SkPath_Verb'>Verb</a> <a href='#SkPath_Verb'>next</a>(<a href='SkPoint_Reference#SkPoint'>SkPoint</a> <a href='SkPoint_Reference#SkPoint'>pts</a>[4])
+<a href='#SkPath_Verb'>Verb</a> next(<a href='SkPoint_Reference#SkPoint'>SkPoint</a> pts[4])
</pre>
-Returns next <a href='SkPath_Reference#SkPath'>SkPath</a>::<a href='#SkPath_Verb'>Verb</a> <a href='#SkPath_Verb'>in</a> <a href='#Verb_Array'>verb array</a>, <a href='#SkPath_Verb'>and</a> <a href='#SkPath_Verb'>advances</a> <a href='#SkPath_RawIter'>RawIter</a>.
+Returns next <a href='SkPath_Reference#SkPath'>SkPath</a>::<a href='#SkPath_Verb'>Verb</a> in <a href='#Verb_Array'>verb array</a>, and advances <a href='#SkPath_RawIter'>RawIter</a>.
When <a href='#Verb_Array'>verb array</a> is exhausted, returns <a href='#SkPath_kDone_Verb'>kDone_Verb</a>.
-Zero to four <a href='SkPoint_Reference#SkPoint'>SkPoint</a> <a href='SkPoint_Reference#SkPoint'>are</a> <a href='SkPoint_Reference#SkPoint'>stored</a> <a href='SkPoint_Reference#SkPoint'>in</a> <a href='#SkPath_RawIter_next_pts'>pts</a>, <a href='#SkPath_RawIter_next_pts'>depending</a> <a href='#SkPath_RawIter_next_pts'>on</a> <a href='#SkPath_RawIter_next_pts'>the</a> <a href='#SkPath_RawIter_next_pts'>returned</a> <a href='SkPath_Reference#SkPath'>SkPath</a>::<a href='#SkPath_Verb'>Verb</a>.
+Zero to four <a href='SkPoint_Reference#SkPoint'>SkPoint</a> are stored in <a href='#SkPath_RawIter_next_pts'>pts</a>, depending on the returned <a href='SkPath_Reference#SkPath'>SkPath</a>::<a href='#SkPath_Verb'>Verb</a>.
### Parameters
<table> <tr> <td><a name='SkPath_RawIter_next_pts'><code><strong>pts</strong></code></a></td>
- <td>storage for <a href='SkPoint_Reference#SkPoint'>SkPoint</a> <a href='undocumented#Data'>data</a> <a href='undocumented#Data'>describing</a> <a href='undocumented#Data'>returned</a> <a href='SkPath_Reference#SkPath'>SkPath</a>::<a href='#SkPath_Verb'>Verb</a></td>
+ <td>storage for <a href='SkPoint_Reference#SkPoint'>SkPoint</a> <a href='undocumented#Data'>data</a> describing returned <a href='SkPath_Reference#SkPath'>SkPath</a>::<a href='#SkPath_Verb'>Verb</a></td>
</tr>
</table>
### Return Value
-next <a href='SkPath_Reference#SkPath'>SkPath</a>::<a href='#SkPath_Verb'>Verb</a> <a href='#SkPath_Verb'>from</a> <a href='#Verb_Array'>verb array</a>
+next <a href='SkPath_Reference#SkPath'>SkPath</a>::<a href='#SkPath_Verb'>Verb</a> from <a href='#Verb_Array'>verb array</a>
### Example
@@ -5497,14 +5497,14 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-<a href='#SkPath_Verb'>Verb</a> <a href='#SkPath_RawIter_peek'>peek()</a> <a href='#SkPath_RawIter_peek'>const</a>
+<a href='#SkPath_Verb'>Verb</a> <a href='#SkPath_RawIter_peek'>peek()</a> const
</pre>
-Returns next <a href='SkPath_Reference#SkPath'>SkPath</a>::<a href='#SkPath_Verb'>Verb</a>, <a href='#SkPath_Verb'>but</a> <a href='#SkPath_Verb'>does</a> <a href='#SkPath_Verb'>not</a> <a href='#SkPath_Verb'>advance</a> <a href='#SkPath_RawIter'>RawIter</a>.
+Returns next <a href='SkPath_Reference#SkPath'>SkPath</a>::<a href='#SkPath_Verb'>Verb</a>, but does not advance <a href='#SkPath_RawIter'>RawIter</a>.
### Return Value
-next <a href='SkPath_Reference#SkPath'>SkPath</a>::<a href='#SkPath_Verb'>Verb</a> <a href='#SkPath_Verb'>from</a> <a href='#SkPath_Verb'>verb</a> <a href='#SkPath_Verb'>array</a>
+next <a href='SkPath_Reference#SkPath'>SkPath</a>::<a href='#SkPath_Verb'>Verb</a> from verb array
### Example
@@ -5533,17 +5533,17 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-<a href='undocumented#SkScalar'>SkScalar</a> <a href='#SkPath_RawIter_conicWeight'>conicWeight</a>() <a href='#SkPath_RawIter_conicWeight'>const</a>
+<a href='undocumented#SkScalar'>SkScalar</a> <a href='#SkPath_RawIter_conicWeight'>conicWeight</a>() const
</pre>
-Returns <a href='SkPath_Reference#Conic'>conic</a> <a href='SkPath_Reference#Conic'>weight</a> <a href='SkPath_Reference#Conic'>if</a> <a href='#SkPath_RawIter_next'>next()</a> <a href='#SkPath_RawIter_next'>returned</a> <a href='#SkPath_kConic_Verb'>kConic_Verb</a>.
+Returns <a href='SkPath_Reference#Conic'>conic</a> weight if <a href='#SkPath_RawIter_next'>next()</a> returned <a href='#SkPath_kConic_Verb'>kConic_Verb</a>.
-If <a href='#SkPath_RawIter_next'>next()</a> <a href='#SkPath_RawIter_next'>has</a> <a href='#SkPath_RawIter_next'>not</a> <a href='#SkPath_RawIter_next'>been</a> <a href='#SkPath_RawIter_next'>called</a>, <a href='#SkPath_RawIter_next'>or</a> <a href='#SkPath_RawIter_next'>next()</a> <a href='#SkPath_RawIter_next'>did</a> <a href='#SkPath_RawIter_next'>not</a> <a href='#SkPath_RawIter_next'>return</a> <a href='#SkPath_kConic_Verb'>kConic_Verb</a>,
+If <a href='#SkPath_RawIter_next'>next()</a> has not been called, or <a href='#SkPath_RawIter_next'>next()</a> did not return <a href='#SkPath_kConic_Verb'>kConic_Verb</a>,
result is undefined.
### Return Value
-<a href='SkPath_Reference#Conic'>conic</a> <a href='SkPath_Reference#Conic'>weight</a> <a href='SkPath_Reference#Conic'>for</a> <a href='SkPath_Reference#Conic'>conic</a> <a href='SkPoint_Reference#SkPoint'>SkPoint</a> <a href='SkPoint_Reference#SkPoint'>returned</a> <a href='SkPoint_Reference#SkPoint'>by</a> <a href='#SkPath_RawIter_next'>next()</a>
+<a href='SkPath_Reference#Conic'>conic</a> weight for <a href='SkPath_Reference#Conic'>conic</a> <a href='SkPoint_Reference#SkPoint'>SkPoint</a> returned by <a href='#SkPath_RawIter_next'>next()</a>
### Example
diff --git a/site/user/api/SkPicture_Reference.md b/site/user/api/SkPicture_Reference.md
index c005fe9..4467519 100644
--- a/site/user/api/SkPicture_Reference.md
+++ b/site/user/api/SkPicture_Reference.md
@@ -7,43 +7,43 @@
---
<pre style="padding: 1em 1em 1em 1em;width: 62.5em; background-color: #f0f0f0">
-class <a href='SkPicture_Reference#SkPicture'>SkPicture</a> : <a href='SkPicture_Reference#SkPicture'>public</a> <a href='undocumented#SkRefCnt'>SkRefCnt</a> {
-<a href='undocumented#SkRefCnt'>public</a>:
- <a href='undocumented#SkRefCnt'>static</a> <a href='undocumented#sk_sp'>sk_sp</a><<a href='SkPicture_Reference#SkPicture'>SkPicture</a>> <a href='#SkPicture_MakeFromStream'>MakeFromStream</a>(<a href='SkStream_Reference#SkStream'>SkStream</a>* <a href='SkStream_Reference#Stream'>stream</a>,
- <a href='SkStream_Reference#Stream'>const</a> <a href='undocumented#SkDeserialProcs'>SkDeserialProcs</a>* <a href='undocumented#SkDeserialProcs'>procs</a> = <a href='undocumented#SkDeserialProcs'>nullptr</a>);
- <a href='undocumented#SkDeserialProcs'>static</a> <a href='undocumented#sk_sp'>sk_sp</a><<a href='SkPicture_Reference#SkPicture'>SkPicture</a>> <a href='#SkPicture_MakeFromData'>MakeFromData</a>(<a href='#SkPicture_MakeFromData'>const</a> <a href='undocumented#SkData'>SkData</a>* <a href='undocumented#Data'>data</a>,
- <a href='undocumented#Data'>const</a> <a href='undocumented#SkDeserialProcs'>SkDeserialProcs</a>* <a href='undocumented#SkDeserialProcs'>procs</a> = <a href='undocumented#SkDeserialProcs'>nullptr</a>);
- <a href='undocumented#SkDeserialProcs'>static</a> <a href='undocumented#sk_sp'>sk_sp</a><<a href='SkPicture_Reference#SkPicture'>SkPicture</a>> <a href='#SkPicture_MakeFromData'>MakeFromData</a>(<a href='#SkPicture_MakeFromData'>const</a> <a href='#SkPicture_MakeFromData'>void</a>* <a href='undocumented#Data'>data</a>, <a href='undocumented#Data'>size_t</a> <a href='undocumented#Size'>size</a>,
- <a href='undocumented#Size'>const</a> <a href='undocumented#SkDeserialProcs'>SkDeserialProcs</a>* <a href='undocumented#SkDeserialProcs'>procs</a> = <a href='undocumented#SkDeserialProcs'>nullptr</a>);
+class <a href='SkPicture_Reference#SkPicture'>SkPicture</a> : public <a href='undocumented#SkRefCnt'>SkRefCnt</a> {
+public:
+ static <a href='undocumented#sk_sp'>sk_sp</a><<a href='SkPicture_Reference#SkPicture'>SkPicture</a>> <a href='#SkPicture_MakeFromStream'>MakeFromStream</a>(<a href='SkStream_Reference#SkStream'>SkStream</a>* <a href='SkStream_Reference#Stream'>stream</a>,
+ const <a href='undocumented#SkDeserialProcs'>SkDeserialProcs</a>* procs = nullptr);
+ static <a href='undocumented#sk_sp'>sk_sp</a><<a href='SkPicture_Reference#SkPicture'>SkPicture</a>> <a href='#SkPicture_MakeFromData'>MakeFromData</a>(const <a href='undocumented#SkData'>SkData</a>* <a href='undocumented#Data'>data</a>,
+ const <a href='undocumented#SkDeserialProcs'>SkDeserialProcs</a>* procs = nullptr);
+ static <a href='undocumented#sk_sp'>sk_sp</a><<a href='SkPicture_Reference#SkPicture'>SkPicture</a>> <a href='#SkPicture_MakeFromData'>MakeFromData</a>(const void* <a href='undocumented#Data'>data</a>, size_t <a href='undocumented#Size'>size</a>,
+ const <a href='undocumented#SkDeserialProcs'>SkDeserialProcs</a>* procs = nullptr);
- <a href='undocumented#SkDeserialProcs'>class</a> <a href='#SkPicture_AbortCallback'>AbortCallback</a> {
- <a href='#SkPicture_AbortCallback'>public</a>:
+ class <a href='#SkPicture_AbortCallback'>AbortCallback</a> {
+ public:
<a href='#SkPicture_AbortCallback'>AbortCallback</a>();
- <a href='#SkPicture_AbortCallback'>virtual</a> ~<a href='#SkPicture_AbortCallback'>AbortCallback</a>();
- <a href='#SkPicture_AbortCallback'>virtual</a> <a href='#SkPicture_AbortCallback'>bool</a> <a href='#SkPicture_AbortCallback'>abort()</a> = 0;
+ virtual ~<a href='#SkPicture_AbortCallback'>AbortCallback</a>();
+ virtual bool abort() = 0;
};
- <a href='#SkPicture_AbortCallback'>virtual</a> <a href='#SkPicture_AbortCallback'>void</a> <a href='#SkPicture_AbortCallback'>playback</a>(<a href='SkCanvas_Reference#SkCanvas'>SkCanvas</a>* <a href='SkCanvas_Reference#Canvas'>canvas</a>, <a href='#SkPicture_AbortCallback'>AbortCallback</a>* <a href='#SkPicture_AbortCallback'>callback</a> = <a href='#SkPicture_AbortCallback'>nullptr</a>) <a href='#SkPicture_AbortCallback'>const</a> = 0;
- <a href='#SkPicture_AbortCallback'>virtual</a> <a href='SkRect_Reference#SkRect'>SkRect</a> <a href='#SkPicture_cullRect'>cullRect</a>() <a href='#SkPicture_cullRect'>const</a> = 0;
- <a href='#SkPicture_cullRect'>uint32_t</a> <a href='#SkPicture_uniqueID'>uniqueID</a>() <a href='#SkPicture_uniqueID'>const</a>;
- <a href='undocumented#sk_sp'>sk_sp</a><<a href='undocumented#SkData'>SkData</a>> <a href='#SkPicture_serialize'>serialize</a>(<a href='#SkPicture_serialize'>const</a> <a href='undocumented#SkSerialProcs'>SkSerialProcs</a>* <a href='undocumented#SkSerialProcs'>procs</a> = <a href='undocumented#SkSerialProcs'>nullptr</a>) <a href='undocumented#SkSerialProcs'>const</a>;
- <a href='undocumented#SkSerialProcs'>void</a> <a href='#SkPicture_serialize'>serialize</a>(<a href='SkWStream_Reference#SkWStream'>SkWStream</a>* <a href='SkStream_Reference#Stream'>stream</a>, <a href='SkStream_Reference#Stream'>const</a> <a href='undocumented#SkSerialProcs'>SkSerialProcs</a>* <a href='undocumented#SkSerialProcs'>procs</a> = <a href='undocumented#SkSerialProcs'>nullptr</a>) <a href='undocumented#SkSerialProcs'>const</a>;
- <a href='undocumented#SkSerialProcs'>static</a> <a href='undocumented#sk_sp'>sk_sp</a><<a href='SkPicture_Reference#SkPicture'>SkPicture</a>> <a href='#SkPicture_MakePlaceholder'>MakePlaceholder</a>(<a href='SkRect_Reference#SkRect'>SkRect</a> <a href='SkRect_Reference#SkRect'>cull</a>);
- <a href='SkRect_Reference#SkRect'>virtual</a> <a href='SkRect_Reference#SkRect'>int</a> <a href='#SkPicture_approximateOpCount'>approximateOpCount</a>() <a href='#SkPicture_approximateOpCount'>const</a> = 0;
- <a href='#SkPicture_approximateOpCount'>virtual</a> <a href='#SkPicture_approximateOpCount'>size_t</a> <a href='#SkPicture_approximateBytesUsed'>approximateBytesUsed</a>() <a href='#SkPicture_approximateBytesUsed'>const</a> = 0;
+ virtual void playback(<a href='SkCanvas_Reference#SkCanvas'>SkCanvas</a>* <a href='SkCanvas_Reference#Canvas'>canvas</a>, <a href='#SkPicture_AbortCallback'>AbortCallback</a>* callback = nullptr) const = 0;
+ virtual <a href='SkRect_Reference#SkRect'>SkRect</a> <a href='#SkPicture_cullRect'>cullRect</a>() const = 0;
+ uint32_t <a href='#SkPicture_uniqueID'>uniqueID</a>() const;
+ <a href='undocumented#sk_sp'>sk_sp</a><<a href='undocumented#SkData'>SkData</a>> <a href='#SkPicture_serialize'>serialize</a>(const <a href='undocumented#SkSerialProcs'>SkSerialProcs</a>* procs = nullptr) const;
+ void <a href='#SkPicture_serialize'>serialize</a>(<a href='SkWStream_Reference#SkWStream'>SkWStream</a>* <a href='SkStream_Reference#Stream'>stream</a>, const <a href='undocumented#SkSerialProcs'>SkSerialProcs</a>* procs = nullptr) const;
+ static <a href='undocumented#sk_sp'>sk_sp</a><<a href='SkPicture_Reference#SkPicture'>SkPicture</a>> <a href='#SkPicture_MakePlaceholder'>MakePlaceholder</a>(<a href='SkRect_Reference#SkRect'>SkRect</a> cull);
+ virtual int <a href='#SkPicture_approximateOpCount'>approximateOpCount</a>() const = 0;
+ virtual size_t <a href='#SkPicture_approximateBytesUsed'>approximateBytesUsed</a>() const = 0;
};
</pre>
-<a href='SkPicture_Reference#Picture'>Picture</a> <a href='SkPicture_Reference#Picture'>records</a> <a href='SkPicture_Reference#Picture'>drawing</a> <a href='SkPicture_Reference#Picture'>commands</a> <a href='SkPicture_Reference#Picture'>made</a> <a href='SkPicture_Reference#Picture'>to</a> <a href='SkCanvas_Reference#Canvas'>Canvas</a>. <a href='SkCanvas_Reference#Canvas'>The</a> <a href='SkCanvas_Reference#Canvas'>command</a> <a href='SkStream_Reference#Stream'>stream</a> <a href='SkStream_Reference#Stream'>may</a> <a href='SkStream_Reference#Stream'>be</a>
-<a href='SkStream_Reference#Stream'>played</a> <a href='SkStream_Reference#Stream'>in</a> <a href='SkStream_Reference#Stream'>whole</a> <a href='SkStream_Reference#Stream'>or</a> <a href='SkStream_Reference#Stream'>in</a> <a href='SkStream_Reference#Stream'>part</a> <a href='SkStream_Reference#Stream'>at</a> <a href='SkStream_Reference#Stream'>a</a> <a href='SkStream_Reference#Stream'>later</a> <a href='SkStream_Reference#Stream'>time</a>.
+<a href='SkPicture_Reference#Picture'>Picture</a> records drawing commands made to <a href='SkCanvas_Reference#Canvas'>Canvas</a>. The command <a href='SkStream_Reference#Stream'>stream</a> may be
+played in whole or in part at a later time.
-<a href='SkPicture_Reference#Picture'>Picture</a> <a href='SkPicture_Reference#Picture'>is</a> <a href='SkPicture_Reference#Picture'>an</a> <a href='SkPicture_Reference#Picture'>abstract</a> <a href='SkPicture_Reference#Picture'>class</a>. <a href='SkPicture_Reference#Picture'>Picture</a> <a href='SkPicture_Reference#Picture'>may</a> <a href='SkPicture_Reference#Picture'>be</a> <a href='SkPicture_Reference#Picture'>generated</a> <a href='SkPicture_Reference#Picture'>by</a> <a href='#Picture_Recorder'>Picture_Recorder</a>
-<a href='#Picture_Recorder'>or</a> <a href='undocumented#Drawable'>Drawable</a>, <a href='undocumented#Drawable'>or</a> <a href='undocumented#Drawable'>from</a> <a href='SkPicture_Reference#Picture'>Picture</a> <a href='SkPicture_Reference#Picture'>previously</a> <a href='SkPicture_Reference#Picture'>saved</a> <a href='SkPicture_Reference#Picture'>to</a> <a href='undocumented#Data'>Data</a> <a href='undocumented#Data'>or</a> <a href='SkStream_Reference#Stream'>Stream</a>.
+<a href='SkPicture_Reference#Picture'>Picture</a> is an abstract class. <a href='SkPicture_Reference#Picture'>Picture</a> may be generated by <a href='#Picture_Recorder'>Picture_Recorder</a>
+or <a href='undocumented#Drawable'>Drawable</a>, or from <a href='SkPicture_Reference#Picture'>Picture</a> previously saved to <a href='undocumented#Data'>Data</a> or <a href='SkStream_Reference#Stream'>Stream</a>.
-<a href='SkPicture_Reference#Picture'>Picture</a> <a href='SkPicture_Reference#Picture'>may</a> <a href='SkPicture_Reference#Picture'>contain</a> <a href='SkPicture_Reference#Picture'>any</a> <a href='SkCanvas_Reference#Canvas'>Canvas</a> <a href='SkCanvas_Reference#Canvas'>drawing</a> <a href='SkCanvas_Reference#Canvas'>command</a>, <a href='SkCanvas_Reference#Canvas'>as</a> <a href='SkCanvas_Reference#Canvas'>well</a> <a href='SkCanvas_Reference#Canvas'>as</a> <a href='SkCanvas_Reference#Canvas'>one</a> <a href='SkCanvas_Reference#Canvas'>or</a> <a href='SkCanvas_Reference#Canvas'>more</a>
-<a href='#Canvas_Matrix'>Canvas_Matrix</a> <a href='#Canvas_Matrix'>or</a> <a href='#Canvas_Clip'>Canvas_Clip</a>. <a href='SkPicture_Reference#Picture'>Picture</a> <a href='SkPicture_Reference#Picture'>has</a> <a href='SkPicture_Reference#Picture'>a</a> <a href='SkPicture_Reference#Picture'>cull</a> <a href='SkRect_Reference#Rect'>Rect</a>, <a href='SkRect_Reference#Rect'>which</a> <a href='SkRect_Reference#Rect'>is</a> <a href='SkRect_Reference#Rect'>used</a> <a href='SkRect_Reference#Rect'>as</a>
-<a href='SkRect_Reference#Rect'>a</a> <a href='SkRect_Reference#Rect'>bounding</a> <a href='SkRect_Reference#Rect'>box</a> <a href='SkRect_Reference#Rect'>hint</a>. <a href='SkRect_Reference#Rect'>To</a> <a href='SkRect_Reference#Rect'>limit</a> <a href='SkPicture_Reference#Picture'>Picture</a> <a href='SkPicture_Reference#Picture'>bounds</a>, <a href='SkPicture_Reference#Picture'>use</a> <a href='#Canvas_Clip'>Canvas_Clip</a> <a href='#Canvas_Clip'>when</a>
-<a href='#Canvas_Clip'>recording</a> <a href='#Canvas_Clip'>or</a> <a href='#Canvas_Clip'>drawing</a> <a href='SkPicture_Reference#Picture'>Picture</a>.
+<a href='SkPicture_Reference#Picture'>Picture</a> may contain any <a href='SkCanvas_Reference#Canvas'>Canvas</a> drawing command, as well as one or more
+<a href='#Canvas_Matrix'>Canvas_Matrix</a> or <a href='#Canvas_Clip'>Canvas_Clip</a>. <a href='SkPicture_Reference#Picture'>Picture</a> has a cull <a href='SkRect_Reference#Rect'>Rect</a>, which is used as
+a bounding box hint. To limit <a href='SkPicture_Reference#Picture'>Picture</a> bounds, use <a href='#Canvas_Clip'>Canvas_Clip</a> when
+recording or drawing <a href='SkPicture_Reference#Picture'>Picture</a>.
<a name='SkPicture_AbortCallback'></a>
@@ -51,18 +51,18 @@
<pre style="padding: 1em 1em 1em 1em;width: 62.5em; background-color: #f0f0f0">
class <a href='#SkPicture_AbortCallback'>AbortCallback</a> {
- <a href='#SkPicture_AbortCallback'>public</a>:
+ public:
<a href='#SkPicture_AbortCallback_AbortCallback'>AbortCallback()</a> {}
- <a href='#SkPicture_AbortCallback'>virtual</a> ~<a href='#SkPicture_AbortCallback_AbortCallback'>AbortCallback()</a> {}
- <a href='#SkPicture_AbortCallback'>virtual</a> <a href='#SkPicture_AbortCallback'>bool</a> <a href='#SkPicture_AbortCallback_abort'>abort()</a> = 0;
+ virtual ~<a href='#SkPicture_AbortCallback_AbortCallback'>AbortCallback()</a> {}
+ virtual bool <a href='#SkPicture_AbortCallback_abort'>abort()</a> = 0;
};
</pre>
-<a href='#SkPicture_AbortCallback'>AbortCallback</a> <a href='#SkPicture_AbortCallback'>is</a> <a href='#SkPicture_AbortCallback'>an</a> <a href='#SkPicture_AbortCallback'>abstract</a> <a href='#SkPicture_AbortCallback'>class</a>. <a href='#SkPicture_AbortCallback'>An</a> <a href='#SkPicture_AbortCallback'>implementation</a> <a href='#SkPicture_AbortCallback'>of</a> <a href='#SkPicture_AbortCallback'>AbortCallback</a> <a href='#SkPicture_AbortCallback'>may</a>
-<a href='#SkPicture_AbortCallback'>passed</a> <a href='#SkPicture_AbortCallback'>as</a> <a href='#SkPicture_AbortCallback'>a</a> <a href='#SkPicture_AbortCallback'>parameter</a> <a href='#SkPicture_AbortCallback'>to</a> <a href='SkPicture_Reference#SkPicture'>SkPicture</a>::<a href='#SkPicture_playback'>playback</a>, <a href='#SkPicture_playback'>to</a> <a href='#SkPicture_playback'>stop</a> <a href='#SkPicture_playback'>it</a> <a href='#SkPicture_playback'>before</a> <a href='#SkPicture_playback'>all</a> <a href='#SkPicture_playback'>drawing</a>
-<a href='#SkPicture_playback'>commands</a> <a href='#SkPicture_playback'>have</a> <a href='#SkPicture_playback'>been</a> <a href='#SkPicture_playback'>processed</a>.
+<a href='#SkPicture_AbortCallback'>AbortCallback</a> is an abstract class. An implementation of <a href='#SkPicture_AbortCallback'>AbortCallback</a> may
+passed as a parameter to <a href='SkPicture_Reference#SkPicture'>SkPicture</a>::<a href='#SkPicture_playback'>playback</a>, to stop it before all drawing
+commands have been processed.
-<a href='#SkPicture_playback'>If</a> <a href='#SkPicture_AbortCallback'>AbortCallback</a>::<a href='#SkPicture_AbortCallback_abort'>abort</a> <a href='#SkPicture_AbortCallback_abort'>returns</a> <a href='#SkPicture_AbortCallback_abort'>true</a>, <a href='SkPicture_Reference#SkPicture'>SkPicture</a>::<a href='#SkPicture_playback'>playback</a> <a href='#SkPicture_playback'>is</a> <a href='#SkPicture_playback'>interrupted</a>.
+If <a href='#SkPicture_AbortCallback'>AbortCallback</a>::<a href='#SkPicture_AbortCallback_abort'>abort</a> returns true, <a href='SkPicture_Reference#SkPicture'>SkPicture</a>::<a href='#SkPicture_playback'>playback</a> is interrupted.
<a name='SkPicture_AbortCallback_AbortCallback'></a>
@@ -104,15 +104,15 @@
virtual bool <a href='#SkPicture_AbortCallback_abort'>abort()</a> = 0
</pre>
-Stops <a href='SkPicture_Reference#SkPicture'>SkPicture</a> <a href='SkPicture_Reference#SkPicture'>playback</a> <a href='SkPicture_Reference#SkPicture'>when</a> <a href='SkPicture_Reference#SkPicture'>some</a> <a href='SkPicture_Reference#SkPicture'>condition</a> <a href='SkPicture_Reference#SkPicture'>is</a> <a href='SkPicture_Reference#SkPicture'>met</a>. <a href='SkPicture_Reference#SkPicture'>A</a> <a href='SkPicture_Reference#SkPicture'>subclass</a> <a href='SkPicture_Reference#SkPicture'>of</a>
-<a href='#SkPicture_AbortCallback'>AbortCallback</a> <a href='#SkPicture_AbortCallback'>provides</a> <a href='#SkPicture_AbortCallback'>an</a> <a href='#SkPicture_AbortCallback'>override</a> <a href='#SkPicture_AbortCallback'>for</a> <a href='#SkPicture_AbortCallback_abort'>abort()</a> <a href='#SkPicture_AbortCallback_abort'>that</a> <a href='#SkPicture_AbortCallback_abort'>can</a> <a href='#SkPicture_AbortCallback_abort'>stop</a> <a href='SkPicture_Reference#SkPicture'>SkPicture</a>::<a href='#SkPicture_playback'>playback</a>.
+Stops <a href='SkPicture_Reference#SkPicture'>SkPicture</a> playback when some condition is met. A subclass of
+<a href='#SkPicture_AbortCallback'>AbortCallback</a> provides an override for <a href='#SkPicture_AbortCallback_abort'>abort()</a> that can stop <a href='SkPicture_Reference#SkPicture'>SkPicture</a>::<a href='#SkPicture_playback'>playback</a>.
-The part of <a href='SkPicture_Reference#SkPicture'>SkPicture</a> <a href='SkPicture_Reference#SkPicture'>drawn</a> <a href='SkPicture_Reference#SkPicture'>when</a> <a href='SkPicture_Reference#SkPicture'>aborted</a> <a href='SkPicture_Reference#SkPicture'>is</a> <a href='SkPicture_Reference#SkPicture'>undefined</a>. <a href='SkPicture_Reference#SkPicture'>SkPicture</a> <a href='SkPicture_Reference#SkPicture'>instantiations</a> <a href='SkPicture_Reference#SkPicture'>are</a>
-free to stop drawing at different <a href='SkPoint_Reference#Point'>points</a> <a href='SkPoint_Reference#Point'>during</a> <a href='SkPoint_Reference#Point'>playback</a>.
+The part of <a href='SkPicture_Reference#SkPicture'>SkPicture</a> drawn when aborted is undefined. <a href='SkPicture_Reference#SkPicture'>SkPicture</a> instantiations are
+free to stop drawing at different <a href='SkPoint_Reference#Point'>points</a> during playback.
-If the abort happens inside one or more calls to <a href='SkCanvas_Reference#SkCanvas'>SkCanvas</a>::<a href='#SkCanvas_save'>save()</a>, <a href='#SkCanvas_save'>stack</a>
-of <a href='SkCanvas_Reference#SkCanvas'>SkCanvas</a> <a href='SkMatrix_Reference#Matrix'>matrix</a> <a href='SkMatrix_Reference#Matrix'>and</a> <a href='SkCanvas_Reference#SkCanvas'>SkCanvas</a> <a href='SkCanvas_Reference#SkCanvas'>clip</a> <a href='SkCanvas_Reference#SkCanvas'>values</a> <a href='SkCanvas_Reference#SkCanvas'>is</a> <a href='SkCanvas_Reference#SkCanvas'>restored</a> <a href='SkCanvas_Reference#SkCanvas'>to</a> <a href='SkCanvas_Reference#SkCanvas'>its</a> <a href='SkCanvas_Reference#SkCanvas'>state</a> <a href='SkCanvas_Reference#SkCanvas'>before</a>
-<a href='SkPicture_Reference#SkPicture'>SkPicture</a>::<a href='#SkPicture_playback'>playback</a> <a href='#SkPicture_playback'>was</a> <a href='#SkPicture_playback'>called</a>.
+If the abort happens inside one or more calls to <a href='SkCanvas_Reference#SkCanvas'>SkCanvas</a>::<a href='#SkCanvas_save'>save()</a>, stack
+of <a href='SkCanvas_Reference#SkCanvas'>SkCanvas</a> <a href='SkMatrix_Reference#Matrix'>matrix</a> and <a href='SkCanvas_Reference#SkCanvas'>SkCanvas</a> clip values is restored to its state before
+<a href='SkPicture_Reference#SkPicture'>SkPicture</a>::<a href='#SkPicture_playback'>playback</a> was called.
### Return Value
@@ -133,17 +133,17 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-static <a href='undocumented#sk_sp'>sk_sp</a>&<a href='undocumented#sk_sp'>lt</a>;<a href='SkPicture_Reference#SkPicture'>SkPicture</a>&<a href='SkPicture_Reference#SkPicture'>gt</a>; <a href='#SkPicture_MakeFromStream'>MakeFromStream</a>(<a href='SkStream_Reference#SkStream'>SkStream</a>* <a href='SkStream_Reference#Stream'>stream</a>, <a href='SkStream_Reference#Stream'>const</a> <a href='undocumented#SkDeserialProcs'>SkDeserialProcs</a>* <a href='undocumented#SkDeserialProcs'>procs</a> = <a href='undocumented#SkDeserialProcs'>nullptr</a>)
+static <a href='undocumented#sk_sp'>sk_sp</a><<a href='SkPicture_Reference#SkPicture'>SkPicture</a>> <a href='#SkPicture_MakeFromStream'>MakeFromStream</a>(<a href='SkStream_Reference#SkStream'>SkStream</a>* <a href='SkStream_Reference#Stream'>stream</a>, const <a href='undocumented#SkDeserialProcs'>SkDeserialProcs</a>* procs = nullptr)
</pre>
-Recreates <a href='SkPicture_Reference#SkPicture'>SkPicture</a> <a href='SkPicture_Reference#SkPicture'>that</a> <a href='SkPicture_Reference#SkPicture'>was</a> <a href='SkPicture_Reference#SkPicture'>serialized</a> <a href='SkPicture_Reference#SkPicture'>into</a> <a href='SkPicture_Reference#SkPicture'>a</a> <a href='#SkPicture_MakeFromStream_stream'>stream</a>. <a href='#SkPicture_MakeFromStream_stream'>Returns</a> <a href='#SkPicture_MakeFromStream_stream'>constructed</a> <a href='SkPicture_Reference#SkPicture'>SkPicture</a>
-if successful; otherwise, returns nullptr. Fails if <a href='undocumented#Data'>data</a> <a href='undocumented#Data'>does</a> <a href='undocumented#Data'>not</a> <a href='undocumented#Data'>permit</a>
+Recreates <a href='SkPicture_Reference#SkPicture'>SkPicture</a> that was serialized into a <a href='#SkPicture_MakeFromStream_stream'>stream</a>. Returns constructed <a href='SkPicture_Reference#SkPicture'>SkPicture</a>
+if successful; otherwise, returns nullptr. Fails if <a href='undocumented#Data'>data</a> does not permit
constructing valid <a href='SkPicture_Reference#SkPicture'>SkPicture</a>.
-<a href='#SkPicture_MakeFromStream_procs'>procs</a>-><a href='#SkDeserialProcs_fPictureProc'>fPictureProc</a> <a href='#SkDeserialProcs_fPictureProc'>permits</a> <a href='#SkDeserialProcs_fPictureProc'>supplying</a> <a href='#SkDeserialProcs_fPictureProc'>a</a> <a href='#SkDeserialProcs_fPictureProc'>custom</a> <a href='#SkDeserialProcs_fPictureProc'>function</a> <a href='#SkDeserialProcs_fPictureProc'>to</a> <a href='#SkDeserialProcs_fPictureProc'>decode</a> <a href='SkPicture_Reference#SkPicture'>SkPicture</a>.
-If <a href='#SkPicture_MakeFromStream_procs'>procs</a>-><a href='#SkDeserialProcs_fPictureProc'>fPictureProc</a> <a href='#SkDeserialProcs_fPictureProc'>is</a> <a href='#SkDeserialProcs_fPictureProc'>nullptr</a>, <a href='#SkDeserialProcs_fPictureProc'>default</a> <a href='#SkDeserialProcs_fPictureProc'>decoding</a> <a href='#SkDeserialProcs_fPictureProc'>is</a> <a href='#SkDeserialProcs_fPictureProc'>used</a>. <a href='#SkPicture_MakeFromStream_procs'>procs</a>-><a href='#SkDeserialProcs_fPictureCtx'>fPictureCtx</a>
+<a href='#SkPicture_MakeFromStream_procs'>procs</a>-><a href='#SkDeserialProcs_fPictureProc'>fPictureProc</a> permits supplying a custom function to decode <a href='SkPicture_Reference#SkPicture'>SkPicture</a>.
+If <a href='#SkPicture_MakeFromStream_procs'>procs</a>-><a href='#SkDeserialProcs_fPictureProc'>fPictureProc</a> is nullptr, default decoding is used. <a href='#SkPicture_MakeFromStream_procs'>procs</a>-><a href='#SkDeserialProcs_fPictureCtx'>fPictureCtx</a>
may be used to provide user context to <a href='#SkPicture_MakeFromStream_procs'>procs</a>-><a href='#SkDeserialProcs_fPictureProc'>fPictureProc</a>; <a href='#SkPicture_MakeFromStream_procs'>procs</a>-><a href='#SkDeserialProcs_fPictureProc'>fPictureProc</a>
-is called with a pointer to <a href='undocumented#Data'>data</a>, <a href='undocumented#Data'>data</a> <a href='undocumented#Data'>byte</a> <a href='undocumented#Data'>length</a>, <a href='undocumented#Data'>and</a> <a href='undocumented#Data'>user</a> <a href='undocumented#Data'>context</a>.
+is called with a pointer to <a href='undocumented#Data'>data</a>, <a href='undocumented#Data'>data</a> byte length, and user context.
### Parameters
@@ -151,13 +151,13 @@
<td>container for serial <a href='undocumented#Data'>data</a></td>
</tr>
<tr> <td><a name='SkPicture_MakeFromStream_procs'><code><strong>procs</strong></code></a></td>
- <td>custom serial <a href='undocumented#Data'>data</a> <a href='undocumented#Data'>decoders</a>; <a href='undocumented#Data'>may</a> <a href='undocumented#Data'>be</a> <a href='undocumented#Data'>nullptr</a></td>
+ <td>custom serial <a href='undocumented#Data'>data</a> decoders; may be nullptr</td>
</tr>
</table>
### Return Value
-<a href='SkPicture_Reference#SkPicture'>SkPicture</a> <a href='SkPicture_Reference#SkPicture'>constructed</a> <a href='SkPicture_Reference#SkPicture'>from</a> <a href='#SkPicture_MakeFromStream_stream'>stream</a> <a href='undocumented#Data'>data</a>
+<a href='SkPicture_Reference#SkPicture'>SkPicture</a> constructed from <a href='#SkPicture_MakeFromStream_stream'>stream</a> <a href='undocumented#Data'>data</a>
### Example
@@ -172,17 +172,17 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-static <a href='undocumented#sk_sp'>sk_sp</a>&<a href='undocumented#sk_sp'>lt</a>;<a href='SkPicture_Reference#SkPicture'>SkPicture</a>&<a href='SkPicture_Reference#SkPicture'>gt</a>; <a href='#SkPicture_MakeFromData'>MakeFromData</a>(<a href='#SkPicture_MakeFromData'>const</a> <a href='undocumented#SkData'>SkData</a>* <a href='undocumented#Data'>data</a>, <a href='undocumented#Data'>const</a> <a href='undocumented#SkDeserialProcs'>SkDeserialProcs</a>* <a href='undocumented#SkDeserialProcs'>procs</a> = <a href='undocumented#SkDeserialProcs'>nullptr</a>)
+static <a href='undocumented#sk_sp'>sk_sp</a><<a href='SkPicture_Reference#SkPicture'>SkPicture</a>> <a href='#SkPicture_MakeFromData'>MakeFromData</a>(const <a href='undocumented#SkData'>SkData</a>* <a href='undocumented#Data'>data</a>, const <a href='undocumented#SkDeserialProcs'>SkDeserialProcs</a>* procs = nullptr)
</pre>
-Recreates <a href='SkPicture_Reference#SkPicture'>SkPicture</a> <a href='SkPicture_Reference#SkPicture'>that</a> <a href='SkPicture_Reference#SkPicture'>was</a> <a href='SkPicture_Reference#SkPicture'>serialized</a> <a href='SkPicture_Reference#SkPicture'>into</a> <a href='#SkPicture_MakeFromData_data'>data</a>. <a href='#SkPicture_MakeFromData_data'>Returns</a> <a href='#SkPicture_MakeFromData_data'>constructed</a> <a href='SkPicture_Reference#SkPicture'>SkPicture</a>
-if successful; otherwise, returns nullptr. Fails if <a href='#SkPicture_MakeFromData_data'>data</a> <a href='#SkPicture_MakeFromData_data'>does</a> <a href='#SkPicture_MakeFromData_data'>not</a> <a href='#SkPicture_MakeFromData_data'>permit</a>
+Recreates <a href='SkPicture_Reference#SkPicture'>SkPicture</a> that was serialized into <a href='#SkPicture_MakeFromData_data'>data</a>. Returns constructed <a href='SkPicture_Reference#SkPicture'>SkPicture</a>
+if successful; otherwise, returns nullptr. Fails if <a href='#SkPicture_MakeFromData_data'>data</a> does not permit
constructing valid <a href='SkPicture_Reference#SkPicture'>SkPicture</a>.
-<a href='#SkPicture_MakeFromData_procs'>procs</a>-><a href='#SkDeserialProcs_fPictureProc'>fPictureProc</a> <a href='#SkDeserialProcs_fPictureProc'>permits</a> <a href='#SkDeserialProcs_fPictureProc'>supplying</a> <a href='#SkDeserialProcs_fPictureProc'>a</a> <a href='#SkDeserialProcs_fPictureProc'>custom</a> <a href='#SkDeserialProcs_fPictureProc'>function</a> <a href='#SkDeserialProcs_fPictureProc'>to</a> <a href='#SkDeserialProcs_fPictureProc'>decode</a> <a href='SkPicture_Reference#SkPicture'>SkPicture</a>.
-If <a href='#SkPicture_MakeFromData_procs'>procs</a>-><a href='#SkDeserialProcs_fPictureProc'>fPictureProc</a> <a href='#SkDeserialProcs_fPictureProc'>is</a> <a href='#SkDeserialProcs_fPictureProc'>nullptr</a>, <a href='#SkDeserialProcs_fPictureProc'>default</a> <a href='#SkDeserialProcs_fPictureProc'>decoding</a> <a href='#SkDeserialProcs_fPictureProc'>is</a> <a href='#SkDeserialProcs_fPictureProc'>used</a>. <a href='#SkPicture_MakeFromData_procs'>procs</a>-><a href='#SkDeserialProcs_fPictureCtx'>fPictureCtx</a>
+<a href='#SkPicture_MakeFromData_procs'>procs</a>-><a href='#SkDeserialProcs_fPictureProc'>fPictureProc</a> permits supplying a custom function to decode <a href='SkPicture_Reference#SkPicture'>SkPicture</a>.
+If <a href='#SkPicture_MakeFromData_procs'>procs</a>-><a href='#SkDeserialProcs_fPictureProc'>fPictureProc</a> is nullptr, default decoding is used. <a href='#SkPicture_MakeFromData_procs'>procs</a>-><a href='#SkDeserialProcs_fPictureCtx'>fPictureCtx</a>
may be used to provide user context to <a href='#SkPicture_MakeFromData_procs'>procs</a>-><a href='#SkDeserialProcs_fPictureProc'>fPictureProc</a>; <a href='#SkPicture_MakeFromData_procs'>procs</a>-><a href='#SkDeserialProcs_fPictureProc'>fPictureProc</a>
-is called with a pointer to <a href='#SkPicture_MakeFromData_data'>data</a>, <a href='#SkPicture_MakeFromData_data'>data</a> <a href='#SkPicture_MakeFromData_data'>byte</a> <a href='#SkPicture_MakeFromData_data'>length</a>, <a href='#SkPicture_MakeFromData_data'>and</a> <a href='#SkPicture_MakeFromData_data'>user</a> <a href='#SkPicture_MakeFromData_data'>context</a>.
+is called with a pointer to <a href='#SkPicture_MakeFromData_data'>data</a>, <a href='#SkPicture_MakeFromData_data'>data</a> byte length, and user context.
### Parameters
@@ -190,13 +190,13 @@
<td>container for serial <a href='#SkPicture_MakeFromData_data'>data</a></td>
</tr>
<tr> <td><a name='SkPicture_MakeFromData_procs'><code><strong>procs</strong></code></a></td>
- <td>custom serial <a href='#SkPicture_MakeFromData_data'>data</a> <a href='#SkPicture_MakeFromData_data'>decoders</a>; <a href='#SkPicture_MakeFromData_data'>may</a> <a href='#SkPicture_MakeFromData_data'>be</a> <a href='#SkPicture_MakeFromData_data'>nullptr</a></td>
+ <td>custom serial <a href='#SkPicture_MakeFromData_data'>data</a> decoders; may be nullptr</td>
</tr>
</table>
### Return Value
-<a href='SkPicture_Reference#SkPicture'>SkPicture</a> <a href='SkPicture_Reference#SkPicture'>constructed</a> <a href='SkPicture_Reference#SkPicture'>from</a> <a href='#SkPicture_MakeFromData_data'>data</a>
+<a href='SkPicture_Reference#SkPicture'>SkPicture</a> constructed from <a href='#SkPicture_MakeFromData_data'>data</a>
### Example
@@ -211,8 +211,8 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-static <a href='undocumented#sk_sp'>sk_sp</a>&<a href='undocumented#sk_sp'>lt</a>;<a href='SkPicture_Reference#SkPicture'>SkPicture</a>&<a href='SkPicture_Reference#SkPicture'>gt</a>; <a href='#SkPicture_MakeFromData'>MakeFromData</a>(<a href='#SkPicture_MakeFromData'>const</a> <a href='#SkPicture_MakeFromData'>void</a>* <a href='undocumented#Data'>data</a>, <a href='undocumented#Data'>size_t</a> <a href='undocumented#Size'>size</a>,
- <a href='undocumented#Size'>const</a> <a href='undocumented#SkDeserialProcs'>SkDeserialProcs</a>* <a href='undocumented#SkDeserialProcs'>procs</a> = <a href='undocumented#SkDeserialProcs'>nullptr</a>)
+static <a href='undocumented#sk_sp'>sk_sp</a><<a href='SkPicture_Reference#SkPicture'>SkPicture</a>> <a href='#SkPicture_MakeFromData'>MakeFromData</a>(const void* <a href='undocumented#Data'>data</a>, size_t <a href='undocumented#Size'>size</a>,
+ const <a href='undocumented#SkDeserialProcs'>SkDeserialProcs</a>* procs = nullptr)
</pre>
### Parameters
@@ -221,16 +221,16 @@
<td>pointer to serial <a href='#SkPicture_MakeFromData_2_data'>data</a></td>
</tr>
<tr> <td><a name='SkPicture_MakeFromData_2_size'><code><strong>size</strong></code></a></td>
- <td><a href='#SkPicture_MakeFromData_2_size'>size</a> <a href='#SkPicture_MakeFromData_2_size'>of</a> <a href='#SkPicture_MakeFromData_2_data'>data</a></td>
+ <td><a href='#SkPicture_MakeFromData_2_size'>size</a> of <a href='#SkPicture_MakeFromData_2_data'>data</a></td>
</tr>
<tr> <td><a name='SkPicture_MakeFromData_2_procs'><code><strong>procs</strong></code></a></td>
- <td>custom serial <a href='#SkPicture_MakeFromData_2_data'>data</a> <a href='#SkPicture_MakeFromData_2_data'>decoders</a>; <a href='#SkPicture_MakeFromData_2_data'>may</a> <a href='#SkPicture_MakeFromData_2_data'>be</a> <a href='#SkPicture_MakeFromData_2_data'>nullptr</a></td>
+ <td>custom serial <a href='#SkPicture_MakeFromData_2_data'>data</a> decoders; may be nullptr</td>
</tr>
</table>
### Return Value
-<a href='SkPicture_Reference#SkPicture'>SkPicture</a> <a href='SkPicture_Reference#SkPicture'>constructed</a> <a href='SkPicture_Reference#SkPicture'>from</a> <a href='#SkPicture_MakeFromData_2_data'>data</a>
+<a href='SkPicture_Reference#SkPicture'>SkPicture</a> constructed from <a href='#SkPicture_MakeFromData_2_data'>data</a>
### Example
@@ -245,14 +245,14 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-virtual void playback(<a href='SkCanvas_Reference#SkCanvas'>SkCanvas</a>* <a href='SkCanvas_Reference#Canvas'>canvas</a>, <a href='#SkPicture_AbortCallback'>AbortCallback</a>* <a href='#SkPicture_AbortCallback'>callback</a> = <a href='#SkPicture_AbortCallback'>nullptr</a>) <a href='#SkPicture_AbortCallback'>const</a> = 0
+virtual void playback(<a href='SkCanvas_Reference#SkCanvas'>SkCanvas</a>* <a href='SkCanvas_Reference#Canvas'>canvas</a>, <a href='#SkPicture_AbortCallback'>AbortCallback</a>* callback = nullptr) const = 0
</pre>
-Replays the drawing commands on the specified <a href='#SkPicture_playback_canvas'>canvas</a>. <a href='#SkPicture_playback_canvas'>In</a> <a href='#SkPicture_playback_canvas'>the</a> <a href='#SkPicture_playback_canvas'>case</a> <a href='#SkPicture_playback_canvas'>that</a> <a href='#SkPicture_playback_canvas'>the</a>
-commands are recorded, each command in the <a href='SkPicture_Reference#SkPicture'>SkPicture</a> <a href='SkPicture_Reference#SkPicture'>is</a> <a href='SkPicture_Reference#SkPicture'>sent</a> <a href='SkPicture_Reference#SkPicture'>separately</a> <a href='SkPicture_Reference#SkPicture'>to</a> <a href='#SkPicture_playback_canvas'>canvas</a>.
+Replays the drawing commands on the specified <a href='#SkPicture_playback_canvas'>canvas</a>. In the case that the
+commands are recorded, each command in the <a href='SkPicture_Reference#SkPicture'>SkPicture</a> is sent separately to <a href='#SkPicture_playback_canvas'>canvas</a>.
-To add a single command to draw <a href='SkPicture_Reference#SkPicture'>SkPicture</a> <a href='SkPicture_Reference#SkPicture'>to</a> <a href='SkPicture_Reference#SkPicture'>recording</a> <a href='#SkPicture_playback_canvas'>canvas</a>, <a href='#SkPicture_playback_canvas'>call</a>
-<a href='SkCanvas_Reference#SkCanvas'>SkCanvas</a>::<a href='#SkCanvas_drawPicture'>drawPicture</a> <a href='#SkCanvas_drawPicture'>instead</a>.
+To add a single command to draw <a href='SkPicture_Reference#SkPicture'>SkPicture</a> to recording <a href='#SkPicture_playback_canvas'>canvas</a>, call
+<a href='SkCanvas_Reference#SkCanvas'>SkCanvas</a>::<a href='#SkCanvas_drawPicture'>drawPicture</a> instead.
### Parameters
@@ -277,24 +277,24 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-virtual <a href='SkRect_Reference#SkRect'>SkRect</a> <a href='#SkPicture_cullRect'>cullRect</a>() <a href='#SkPicture_cullRect'>const</a> = 0
+virtual <a href='SkRect_Reference#SkRect'>SkRect</a> <a href='#SkPicture_cullRect'>cullRect</a>() const = 0
</pre>
-Returns cull <a href='SkRect_Reference#SkRect'>SkRect</a> <a href='SkRect_Reference#SkRect'>for</a> <a href='SkRect_Reference#SkRect'>this</a> <a href='SkPicture_Reference#Picture'>picture</a>, <a href='SkPicture_Reference#Picture'>passed</a> <a href='SkPicture_Reference#Picture'>in</a> <a href='SkPicture_Reference#Picture'>when</a> <a href='SkPicture_Reference#SkPicture'>SkPicture</a> <a href='SkPicture_Reference#SkPicture'>was</a> <a href='SkPicture_Reference#SkPicture'>created</a>.
-Returned <a href='SkRect_Reference#SkRect'>SkRect</a> <a href='SkRect_Reference#SkRect'>does</a> <a href='SkRect_Reference#SkRect'>not</a> <a href='SkRect_Reference#SkRect'>specify</a> <a href='SkRect_Reference#SkRect'>clipping</a> <a href='SkRect_Reference#SkRect'>SkRect</a> <a href='SkRect_Reference#SkRect'>for</a> <a href='SkPicture_Reference#SkPicture'>SkPicture</a>; <a href='SkPicture_Reference#SkPicture'>cull</a> <a href='SkPicture_Reference#SkPicture'>is</a> <a href='SkPicture_Reference#SkPicture'>hint</a>
-of <a href='SkPicture_Reference#SkPicture'>SkPicture</a> <a href='SkPicture_Reference#SkPicture'>bounds</a>.
+Returns cull <a href='SkRect_Reference#SkRect'>SkRect</a> for this <a href='SkPicture_Reference#Picture'>picture</a>, passed in when <a href='SkPicture_Reference#SkPicture'>SkPicture</a> was created.
+Returned <a href='SkRect_Reference#SkRect'>SkRect</a> does not specify clipping <a href='SkRect_Reference#SkRect'>SkRect</a> for <a href='SkPicture_Reference#SkPicture'>SkPicture</a>; cull is hint
+of <a href='SkPicture_Reference#SkPicture'>SkPicture</a> bounds.
-<a href='SkPicture_Reference#SkPicture'>SkPicture</a> <a href='SkPicture_Reference#SkPicture'>is</a> <a href='SkPicture_Reference#SkPicture'>free</a> <a href='SkPicture_Reference#SkPicture'>to</a> <a href='SkPicture_Reference#SkPicture'>discard</a> <a href='SkPicture_Reference#SkPicture'>recorded</a> <a href='SkPicture_Reference#SkPicture'>drawing</a> <a href='SkPicture_Reference#SkPicture'>commands</a> <a href='SkPicture_Reference#SkPicture'>that</a> <a href='SkPicture_Reference#SkPicture'>fall</a> <a href='SkPicture_Reference#SkPicture'>outside</a>
+<a href='SkPicture_Reference#SkPicture'>SkPicture</a> is free to discard recorded drawing commands that fall outside
cull.
### Return Value
-bounds passed when <a href='SkPicture_Reference#SkPicture'>SkPicture</a> <a href='SkPicture_Reference#SkPicture'>was</a> <a href='SkPicture_Reference#SkPicture'>created</a>
+bounds passed when <a href='SkPicture_Reference#SkPicture'>SkPicture</a> was created
### Example
-<div><fiddle-embed name="15bb9a9596b40c5e2045f76e8c1dcf8e"><div><a href='SkPicture_Reference#Picture'>Picture</a> <a href='SkPicture_Reference#Picture'>recorded</a> <a href='SkPicture_Reference#Picture'>bounds</a> <a href='SkPicture_Reference#Picture'>are</a> <a href='SkPicture_Reference#Picture'>smaller</a> <a href='SkPicture_Reference#Picture'>than</a> <a href='SkPicture_Reference#Picture'>contents</a>; <a href='SkPicture_Reference#Picture'>contents</a> <a href='SkPicture_Reference#Picture'>outside</a> <a href='SkPicture_Reference#Picture'>recorded</a>
-<a href='SkPicture_Reference#Picture'>bounds</a> <a href='SkPicture_Reference#Picture'>may</a> <a href='SkPicture_Reference#Picture'>be</a> <a href='SkPicture_Reference#Picture'>drawn</a>, <a href='SkPicture_Reference#Picture'>and</a> <a href='SkPicture_Reference#Picture'>are</a> <a href='SkPicture_Reference#Picture'>drawn</a> <a href='SkPicture_Reference#Picture'>in</a> <a href='SkPicture_Reference#Picture'>this</a> <a href='SkPicture_Reference#Picture'>example</a>.
+<div><fiddle-embed name="15bb9a9596b40c5e2045f76e8c1dcf8e"><div><a href='SkPicture_Reference#Picture'>Picture</a> recorded bounds are smaller than contents; contents outside recorded
+bounds may be drawn, and are drawn in this example.
</div></fiddle-embed></div>
### See Also
@@ -306,10 +306,10 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-uint32_t <a href='#SkPicture_uniqueID'>uniqueID</a>() <a href='#SkPicture_uniqueID'>const</a>
+uint32_t <a href='#SkPicture_uniqueID'>uniqueID</a>() const
</pre>
-Returns a non-zero value unique among <a href='SkPicture_Reference#SkPicture'>SkPicture</a> <a href='SkPicture_Reference#SkPicture'>in</a> <a href='SkPicture_Reference#SkPicture'>Skia</a> <a href='SkPicture_Reference#SkPicture'>process</a>.
+Returns a non-zero value unique among <a href='SkPicture_Reference#SkPicture'>SkPicture</a> in Skia process.
### Return Value
@@ -337,21 +337,21 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-<a href='undocumented#sk_sp'>sk_sp</a>&<a href='undocumented#sk_sp'>lt</a>;<a href='undocumented#SkData'>SkData</a>&<a href='undocumented#SkData'>gt</a>; <a href='#SkPicture_serialize'>serialize</a>(<a href='#SkPicture_serialize'>const</a> <a href='undocumented#SkSerialProcs'>SkSerialProcs</a>* <a href='undocumented#SkSerialProcs'>procs</a> = <a href='undocumented#SkSerialProcs'>nullptr</a>) <a href='undocumented#SkSerialProcs'>const</a>
+<a href='undocumented#sk_sp'>sk_sp</a><<a href='undocumented#SkData'>SkData</a>> <a href='#SkPicture_serialize'>serialize</a>(const <a href='undocumented#SkSerialProcs'>SkSerialProcs</a>* procs = nullptr) const
</pre>
-Returns storage containing <a href='undocumented#SkData'>SkData</a> <a href='undocumented#SkData'>describing</a> <a href='SkPicture_Reference#SkPicture'>SkPicture</a>, <a href='SkPicture_Reference#SkPicture'>using</a> <a href='SkPicture_Reference#SkPicture'>optional</a> <a href='SkPicture_Reference#SkPicture'>custom</a>
+Returns storage containing <a href='undocumented#SkData'>SkData</a> describing <a href='SkPicture_Reference#SkPicture'>SkPicture</a>, using optional custom
encoders.
-<a href='#SkPicture_serialize_procs'>procs</a>-><a href='#SkSerialProcs_fPictureProc'>fPictureProc</a> <a href='#SkSerialProcs_fPictureProc'>permits</a> <a href='#SkSerialProcs_fPictureProc'>supplying</a> <a href='#SkSerialProcs_fPictureProc'>a</a> <a href='#SkSerialProcs_fPictureProc'>custom</a> <a href='#SkSerialProcs_fPictureProc'>function</a> <a href='#SkSerialProcs_fPictureProc'>to</a> <a href='#SkSerialProcs_fPictureProc'>encode</a> <a href='SkPicture_Reference#SkPicture'>SkPicture</a>.
-If <a href='#SkPicture_serialize_procs'>procs</a>-><a href='#SkSerialProcs_fPictureProc'>fPictureProc</a> <a href='#SkSerialProcs_fPictureProc'>is</a> <a href='#SkSerialProcs_fPictureProc'>nullptr</a>, <a href='#SkSerialProcs_fPictureProc'>default</a> <a href='#SkSerialProcs_fPictureProc'>encoding</a> <a href='#SkSerialProcs_fPictureProc'>is</a> <a href='#SkSerialProcs_fPictureProc'>used</a>. <a href='#SkPicture_serialize_procs'>procs</a>-><a href='#SkSerialProcs_fPictureCtx'>fPictureCtx</a>
+<a href='#SkPicture_serialize_procs'>procs</a>-><a href='#SkSerialProcs_fPictureProc'>fPictureProc</a> permits supplying a custom function to encode <a href='SkPicture_Reference#SkPicture'>SkPicture</a>.
+If <a href='#SkPicture_serialize_procs'>procs</a>-><a href='#SkSerialProcs_fPictureProc'>fPictureProc</a> is nullptr, default encoding is used. <a href='#SkPicture_serialize_procs'>procs</a>-><a href='#SkSerialProcs_fPictureCtx'>fPictureCtx</a>
may be used to provide user context to <a href='#SkPicture_serialize_procs'>procs</a>-><a href='#SkSerialProcs_fPictureProc'>fPictureProc</a>; <a href='#SkPicture_serialize_procs'>procs</a>-><a href='#SkSerialProcs_fPictureProc'>fPictureProc</a>
-is called with a pointer to <a href='SkPicture_Reference#SkPicture'>SkPicture</a> <a href='SkPicture_Reference#SkPicture'>and</a> <a href='SkPicture_Reference#SkPicture'>user</a> <a href='SkPicture_Reference#SkPicture'>context</a>.
+is called with a pointer to <a href='SkPicture_Reference#SkPicture'>SkPicture</a> and user context.
### Parameters
<table> <tr> <td><a name='SkPicture_serialize_procs'><code><strong>procs</strong></code></a></td>
- <td>custom serial <a href='undocumented#Data'>data</a> <a href='undocumented#Data'>encoders</a>; <a href='undocumented#Data'>may</a> <a href='undocumented#Data'>be</a> <a href='undocumented#Data'>nullptr</a></td>
+ <td>custom serial <a href='undocumented#Data'>data</a> encoders; may be nullptr</td>
</tr>
</table>
@@ -372,15 +372,15 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-void <a href='#SkPicture_serialize'>serialize</a>(<a href='SkWStream_Reference#SkWStream'>SkWStream</a>* <a href='SkStream_Reference#Stream'>stream</a>, <a href='SkStream_Reference#Stream'>const</a> <a href='undocumented#SkSerialProcs'>SkSerialProcs</a>* <a href='undocumented#SkSerialProcs'>procs</a> = <a href='undocumented#SkSerialProcs'>nullptr</a>) <a href='undocumented#SkSerialProcs'>const</a>
+void <a href='#SkPicture_serialize'>serialize</a>(<a href='SkWStream_Reference#SkWStream'>SkWStream</a>* <a href='SkStream_Reference#Stream'>stream</a>, const <a href='undocumented#SkSerialProcs'>SkSerialProcs</a>* procs = nullptr) const
</pre>
-Writes <a href='SkPicture_Reference#Picture'>picture</a> <a href='SkPicture_Reference#Picture'>to</a> <a href='#SkPicture_serialize_2_stream'>stream</a>, <a href='#SkPicture_serialize_2_stream'>using</a> <a href='#SkPicture_serialize_2_stream'>optional</a> <a href='#SkPicture_serialize_2_stream'>custom</a> <a href='#SkPicture_serialize_2_stream'>encoders</a>.
+Writes <a href='SkPicture_Reference#Picture'>picture</a> to <a href='#SkPicture_serialize_2_stream'>stream</a>, using optional custom encoders.
-<a href='#SkPicture_serialize_2_procs'>procs</a>-><a href='#SkSerialProcs_fPictureProc'>fPictureProc</a> <a href='#SkSerialProcs_fPictureProc'>permits</a> <a href='#SkSerialProcs_fPictureProc'>supplying</a> <a href='#SkSerialProcs_fPictureProc'>a</a> <a href='#SkSerialProcs_fPictureProc'>custom</a> <a href='#SkSerialProcs_fPictureProc'>function</a> <a href='#SkSerialProcs_fPictureProc'>to</a> <a href='#SkSerialProcs_fPictureProc'>encode</a> <a href='SkPicture_Reference#SkPicture'>SkPicture</a>.
-If <a href='#SkPicture_serialize_2_procs'>procs</a>-><a href='#SkSerialProcs_fPictureProc'>fPictureProc</a> <a href='#SkSerialProcs_fPictureProc'>is</a> <a href='#SkSerialProcs_fPictureProc'>nullptr</a>, <a href='#SkSerialProcs_fPictureProc'>default</a> <a href='#SkSerialProcs_fPictureProc'>encoding</a> <a href='#SkSerialProcs_fPictureProc'>is</a> <a href='#SkSerialProcs_fPictureProc'>used</a>. <a href='#SkPicture_serialize_2_procs'>procs</a>-><a href='#SkSerialProcs_fPictureCtx'>fPictureCtx</a>
+<a href='#SkPicture_serialize_2_procs'>procs</a>-><a href='#SkSerialProcs_fPictureProc'>fPictureProc</a> permits supplying a custom function to encode <a href='SkPicture_Reference#SkPicture'>SkPicture</a>.
+If <a href='#SkPicture_serialize_2_procs'>procs</a>-><a href='#SkSerialProcs_fPictureProc'>fPictureProc</a> is nullptr, default encoding is used. <a href='#SkPicture_serialize_2_procs'>procs</a>-><a href='#SkSerialProcs_fPictureCtx'>fPictureCtx</a>
may be used to provide user context to <a href='#SkPicture_serialize_2_procs'>procs</a>-><a href='#SkSerialProcs_fPictureProc'>fPictureProc</a>; <a href='#SkPicture_serialize_2_procs'>procs</a>-><a href='#SkSerialProcs_fPictureProc'>fPictureProc</a>
-is called with a pointer to <a href='SkPicture_Reference#SkPicture'>SkPicture</a> <a href='SkPicture_Reference#SkPicture'>and</a> <a href='SkPicture_Reference#SkPicture'>user</a> <a href='SkPicture_Reference#SkPicture'>context</a>.
+is called with a pointer to <a href='SkPicture_Reference#SkPicture'>SkPicture</a> and user context.
### Parameters
@@ -388,7 +388,7 @@
<td>writable serial <a href='undocumented#Data'>data</a> <a href='#SkPicture_serialize_2_stream'>stream</a></td>
</tr>
<tr> <td><a name='SkPicture_serialize_2_procs'><code><strong>procs</strong></code></a></td>
- <td>custom serial <a href='undocumented#Data'>data</a> <a href='undocumented#Data'>encoders</a>; <a href='undocumented#Data'>may</a> <a href='undocumented#Data'>be</a> <a href='undocumented#Data'>nullptr</a></td>
+ <td>custom serial <a href='undocumented#Data'>data</a> encoders; may be nullptr</td>
</tr>
</table>
@@ -405,15 +405,15 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-static <a href='undocumented#sk_sp'>sk_sp</a>&<a href='undocumented#sk_sp'>lt</a>;<a href='SkPicture_Reference#SkPicture'>SkPicture</a>&<a href='SkPicture_Reference#SkPicture'>gt</a>; <a href='#SkPicture_MakePlaceholder'>MakePlaceholder</a>(<a href='SkRect_Reference#SkRect'>SkRect</a> <a href='SkRect_Reference#SkRect'>cull</a>)
+static <a href='undocumented#sk_sp'>sk_sp</a><<a href='SkPicture_Reference#SkPicture'>SkPicture</a>> <a href='#SkPicture_MakePlaceholder'>MakePlaceholder</a>(<a href='SkRect_Reference#SkRect'>SkRect</a> cull)
</pre>
-Returns a placeholder <a href='SkPicture_Reference#SkPicture'>SkPicture</a>. <a href='SkPicture_Reference#SkPicture'>Result</a> <a href='SkPicture_Reference#SkPicture'>does</a> <a href='SkPicture_Reference#SkPicture'>not</a> <a href='SkPicture_Reference#SkPicture'>draw</a>, <a href='SkPicture_Reference#SkPicture'>and</a> <a href='SkPicture_Reference#SkPicture'>contains</a> <a href='SkPicture_Reference#SkPicture'>only</a>
-<a href='#SkPicture_MakePlaceholder_cull'>cull</a> <a href='SkRect_Reference#SkRect'>SkRect</a>, <a href='SkRect_Reference#SkRect'>a</a> <a href='SkRect_Reference#SkRect'>hint</a> <a href='SkRect_Reference#SkRect'>of</a> <a href='SkRect_Reference#SkRect'>its</a> <a href='SkRect_Reference#SkRect'>bounds</a>. <a href='SkRect_Reference#SkRect'>Result</a> <a href='SkRect_Reference#SkRect'>is</a> <a href='SkRect_Reference#SkRect'>immutable</a>; <a href='SkRect_Reference#SkRect'>it</a> <a href='SkRect_Reference#SkRect'>cannot</a> <a href='SkRect_Reference#SkRect'>be</a> <a href='SkRect_Reference#SkRect'>changed</a>
+Returns a placeholder <a href='SkPicture_Reference#SkPicture'>SkPicture</a>. Result does not draw, and contains only
+<a href='#SkPicture_MakePlaceholder_cull'>cull</a> <a href='SkRect_Reference#SkRect'>SkRect</a>, a hint of its bounds. Result is immutable; it cannot be changed
later. Result identifier is unique.
Returned placeholder can be intercepted during playback to insert other
-commands into <a href='SkCanvas_Reference#SkCanvas'>SkCanvas</a> <a href='SkCanvas_Reference#SkCanvas'>draw</a> <a href='SkStream_Reference#Stream'>stream</a>.
+commands into <a href='SkCanvas_Reference#SkCanvas'>SkCanvas</a> draw <a href='SkStream_Reference#Stream'>stream</a>.
### Parameters
@@ -439,11 +439,11 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-virtual int <a href='#SkPicture_approximateOpCount'>approximateOpCount</a>() <a href='#SkPicture_approximateOpCount'>const</a> = 0
+virtual int <a href='#SkPicture_approximateOpCount'>approximateOpCount</a>() const = 0
</pre>
-Returns the approximate number of operations in <a href='SkPicture_Reference#SkPicture'>SkPicture</a>. <a href='SkPicture_Reference#SkPicture'>Returned</a> <a href='SkPicture_Reference#SkPicture'>value</a>
-may be greater or less than the number of <a href='SkCanvas_Reference#SkCanvas'>SkCanvas</a> <a href='SkCanvas_Reference#SkCanvas'>calls</a>
+Returns the approximate number of operations in <a href='SkPicture_Reference#SkPicture'>SkPicture</a>. Returned value
+may be greater or less than the number of <a href='SkCanvas_Reference#SkCanvas'>SkCanvas</a> calls
recorded: some calls may be recorded as more than one operation, other
calls may be optimized away.
@@ -464,10 +464,10 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-virtual size_t <a href='#SkPicture_approximateBytesUsed'>approximateBytesUsed</a>() <a href='#SkPicture_approximateBytesUsed'>const</a> = 0
+virtual size_t <a href='#SkPicture_approximateBytesUsed'>approximateBytesUsed</a>() const = 0
</pre>
-Returns the approximate byte <a href='undocumented#Size'>size</a> <a href='undocumented#Size'>of</a> <a href='SkPicture_Reference#SkPicture'>SkPicture</a>. <a href='SkPicture_Reference#SkPicture'>Does</a> <a href='SkPicture_Reference#SkPicture'>not</a> <a href='SkPicture_Reference#SkPicture'>include</a> <a href='SkPicture_Reference#SkPicture'>large</a> <a href='SkPicture_Reference#SkPicture'>objects</a>
+Returns the approximate byte <a href='undocumented#Size'>size</a> of <a href='SkPicture_Reference#SkPicture'>SkPicture</a>. Does not include large objects
referenced by <a href='SkPicture_Reference#SkPicture'>SkPicture</a>.
### Return Value
diff --git a/site/user/api/SkPixmap_Reference.md b/site/user/api/SkPixmap_Reference.md
index d05c4b0..17c19f8 100644
--- a/site/user/api/SkPixmap_Reference.md
+++ b/site/user/api/SkPixmap_Reference.md
@@ -8,70 +8,70 @@
<pre style="padding: 1em 1em 1em 1em;width: 62.5em; background-color: #f0f0f0">
class <a href='SkPixmap_Reference#SkPixmap'>SkPixmap</a> {
-<a href='SkPixmap_Reference#SkPixmap'>public</a>:
+public:
<a href='#SkPixmap_empty_constructor'>SkPixmap()</a>;
- <a href='SkPixmap_Reference#SkPixmap'>SkPixmap</a>(<a href='SkPixmap_Reference#SkPixmap'>const</a> <a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a>& <a href='SkImageInfo_Reference#SkImageInfo'>info</a>, <a href='SkImageInfo_Reference#SkImageInfo'>const</a> <a href='SkImageInfo_Reference#SkImageInfo'>void</a>* <a href='SkImageInfo_Reference#SkImageInfo'>addr</a>, <a href='SkImageInfo_Reference#SkImageInfo'>size_t</a> <a href='#SkPixmap_rowBytes'>rowBytes</a>);
- <a href='#SkPixmap_rowBytes'>void</a> <a href='#SkPixmap_reset'>reset()</a>;
- <a href='#SkPixmap_reset'>void</a> <a href='#SkPixmap_reset'>reset</a>(<a href='#SkPixmap_reset'>const</a> <a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a>& <a href='SkImageInfo_Reference#SkImageInfo'>info</a>, <a href='SkImageInfo_Reference#SkImageInfo'>const</a> <a href='SkImageInfo_Reference#SkImageInfo'>void</a>* <a href='SkImageInfo_Reference#SkImageInfo'>addr</a>, <a href='SkImageInfo_Reference#SkImageInfo'>size_t</a> <a href='#SkPixmap_rowBytes'>rowBytes</a>);
- <a href='#SkPixmap_rowBytes'>void</a> <a href='#SkPixmap_setColorSpace'>setColorSpace</a>(<a href='undocumented#sk_sp'>sk_sp</a><<a href='undocumented#SkColorSpace'>SkColorSpace</a>> <a href='#SkPixmap_colorSpace'>colorSpace</a>);
- <a href='#SkPixmap_colorSpace'>bool</a> <a href='#SkPixmap_colorSpace'>reset</a>(<a href='#SkPixmap_colorSpace'>const</a> <a href='undocumented#SkMask'>SkMask</a>& <a href='undocumented#SkMask'>mask</a>);
- <a href='undocumented#SkMask'>bool</a> <a href='#SkPixmap_extractSubset'>extractSubset</a>(<a href='SkPixmap_Reference#SkPixmap'>SkPixmap</a>* <a href='SkPixmap_Reference#SkPixmap'>subset</a>, <a href='SkPixmap_Reference#SkPixmap'>const</a> <a href='SkIRect_Reference#SkIRect'>SkIRect</a>& <a href='SkIRect_Reference#SkIRect'>area</a>) <a href='SkIRect_Reference#SkIRect'>const</a>;
- <a href='SkIRect_Reference#SkIRect'>const</a> <a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a>& <a href='#SkPixmap_info'>info()</a> <a href='#SkPixmap_info'>const</a>;
- <a href='#SkPixmap_info'>size_t</a> <a href='#SkPixmap_rowBytes'>rowBytes</a>() <a href='#SkPixmap_rowBytes'>const</a>;
- <a href='#SkPixmap_rowBytes'>const</a> <a href='#SkPixmap_rowBytes'>void</a>* <a href='#SkPixmap_addr'>addr()</a> <a href='#SkPixmap_addr'>const</a>;
- <a href='#SkPixmap_addr'>int</a> <a href='#SkPixmap_width'>width()</a> <a href='#SkPixmap_width'>const</a>;
- <a href='#SkPixmap_width'>int</a> <a href='#SkPixmap_height'>height()</a> <a href='#SkPixmap_height'>const</a>;
- <a href='SkImageInfo_Reference#SkColorType'>SkColorType</a> <a href='#SkPixmap_colorType'>colorType</a>() <a href='#SkPixmap_colorType'>const</a>;
- <a href='SkImageInfo_Reference#SkAlphaType'>SkAlphaType</a> <a href='#SkPixmap_alphaType'>alphaType</a>() <a href='#SkPixmap_alphaType'>const</a>;
- <a href='undocumented#SkColorSpace'>SkColorSpace</a>* <a href='#SkPixmap_colorSpace'>colorSpace</a>() <a href='#SkPixmap_colorSpace'>const</a>;
- <a href='#SkPixmap_colorSpace'>bool</a> <a href='#SkPixmap_isOpaque'>isOpaque</a>() <a href='#SkPixmap_isOpaque'>const</a>;
- <a href='SkIRect_Reference#SkIRect'>SkIRect</a> <a href='#SkPixmap_bounds'>bounds()</a> <a href='#SkPixmap_bounds'>const</a>;
- <a href='#SkPixmap_bounds'>int</a> <a href='#SkPixmap_rowBytesAsPixels'>rowBytesAsPixels</a>() <a href='#SkPixmap_rowBytesAsPixels'>const</a>;
- <a href='#SkPixmap_rowBytesAsPixels'>int</a> <a href='#SkPixmap_shiftPerPixel'>shiftPerPixel</a>() <a href='#SkPixmap_shiftPerPixel'>const</a>;
- <a href='#SkPixmap_shiftPerPixel'>size_t</a> <a href='#SkPixmap_computeByteSize'>computeByteSize</a>() <a href='#SkPixmap_computeByteSize'>const</a>;
- <a href='#SkPixmap_computeByteSize'>bool</a> <a href='#SkPixmap_computeIsOpaque'>computeIsOpaque</a>() <a href='#SkPixmap_computeIsOpaque'>const</a>;
- <a href='SkColor_Reference#SkColor'>SkColor</a> <a href='#SkPixmap_getColor'>getColor</a>(<a href='#SkPixmap_getColor'>int</a> <a href='#SkPixmap_getColor'>x</a>, <a href='#SkPixmap_getColor'>int</a> <a href='#SkPixmap_getColor'>y</a>) <a href='#SkPixmap_getColor'>const</a>;
- <a href='#SkPixmap_getColor'>float</a> <a href='#SkPixmap_getAlphaf'>getAlphaf</a>(<a href='#SkPixmap_getAlphaf'>int</a> <a href='#SkPixmap_getAlphaf'>x</a>, <a href='#SkPixmap_getAlphaf'>int</a> <a href='#SkPixmap_getAlphaf'>y</a>) <a href='#SkPixmap_getAlphaf'>const</a>;
- <a href='#SkPixmap_getAlphaf'>const</a> <a href='#SkPixmap_getAlphaf'>void</a>* <a href='#SkPixmap_addr'>addr</a>(<a href='#SkPixmap_addr'>int</a> <a href='#SkPixmap_addr'>x</a>, <a href='#SkPixmap_addr'>int</a> <a href='#SkPixmap_addr'>y</a>) <a href='#SkPixmap_addr'>const</a>;
- <a href='#SkPixmap_addr'>const</a> <a href='#SkPixmap_addr'>uint8_t</a>* <a href='#SkPixmap_addr8'>addr8</a>() <a href='#SkPixmap_addr8'>const</a>;
- <a href='#SkPixmap_addr8'>const</a> <a href='#SkPixmap_addr8'>uint16_t</a>* <a href='#SkPixmap_addr16'>addr16</a>() <a href='#SkPixmap_addr16'>const</a>;
- <a href='#SkPixmap_addr16'>const</a> <a href='#SkPixmap_addr16'>uint32_t</a>* <a href='#SkPixmap_addr32'>addr32</a>() <a href='#SkPixmap_addr32'>const</a>;
- <a href='#SkPixmap_addr32'>const</a> <a href='#SkPixmap_addr32'>uint64_t</a>* <a href='#SkPixmap_addr64'>addr64</a>() <a href='#SkPixmap_addr64'>const</a>;
- <a href='#SkPixmap_addr64'>const</a> <a href='#SkPixmap_addr64'>uint16_t</a>* <a href='#SkPixmap_addrF16'>addrF16</a>() <a href='#SkPixmap_addrF16'>const</a>;
- <a href='#SkPixmap_addrF16'>const</a> <a href='#SkPixmap_addrF16'>uint8_t</a>* <a href='#SkPixmap_addr8'>addr8</a>(<a href='#SkPixmap_addr8'>int</a> <a href='#SkPixmap_addr8'>x</a>, <a href='#SkPixmap_addr8'>int</a> <a href='#SkPixmap_addr8'>y</a>) <a href='#SkPixmap_addr8'>const</a>;
- <a href='#SkPixmap_addr8'>const</a> <a href='#SkPixmap_addr8'>uint16_t</a>* <a href='#SkPixmap_addr16'>addr16</a>(<a href='#SkPixmap_addr16'>int</a> <a href='#SkPixmap_addr16'>x</a>, <a href='#SkPixmap_addr16'>int</a> <a href='#SkPixmap_addr16'>y</a>) <a href='#SkPixmap_addr16'>const</a>;
- <a href='#SkPixmap_addr16'>const</a> <a href='#SkPixmap_addr16'>uint32_t</a>* <a href='#SkPixmap_addr32'>addr32</a>(<a href='#SkPixmap_addr32'>int</a> <a href='#SkPixmap_addr32'>x</a>, <a href='#SkPixmap_addr32'>int</a> <a href='#SkPixmap_addr32'>y</a>) <a href='#SkPixmap_addr32'>const</a>;
- <a href='#SkPixmap_addr32'>const</a> <a href='#SkPixmap_addr32'>uint64_t</a>* <a href='#SkPixmap_addr64'>addr64</a>(<a href='#SkPixmap_addr64'>int</a> <a href='#SkPixmap_addr64'>x</a>, <a href='#SkPixmap_addr64'>int</a> <a href='#SkPixmap_addr64'>y</a>) <a href='#SkPixmap_addr64'>const</a>;
- <a href='#SkPixmap_addr64'>const</a> <a href='#SkPixmap_addr64'>uint16_t</a>* <a href='#SkPixmap_addrF16'>addrF16</a>(<a href='#SkPixmap_addrF16'>int</a> <a href='#SkPixmap_addrF16'>x</a>, <a href='#SkPixmap_addrF16'>int</a> <a href='#SkPixmap_addrF16'>y</a>) <a href='#SkPixmap_addrF16'>const</a>;
- <a href='#SkPixmap_addrF16'>void</a>* <a href='#SkPixmap_writable_addr'>writable_addr</a>() <a href='#SkPixmap_writable_addr'>const</a>;
- <a href='#SkPixmap_writable_addr'>void</a>* <a href='#SkPixmap_writable_addr'>writable_addr</a>(<a href='#SkPixmap_writable_addr'>int</a> <a href='#SkPixmap_writable_addr'>x</a>, <a href='#SkPixmap_writable_addr'>int</a> <a href='#SkPixmap_writable_addr'>y</a>) <a href='#SkPixmap_writable_addr'>const</a>;
- <a href='#SkPixmap_writable_addr'>uint8_t</a>* <a href='#SkPixmap_writable_addr8'>writable_addr8</a>(<a href='#SkPixmap_writable_addr8'>int</a> <a href='#SkPixmap_writable_addr8'>x</a>, <a href='#SkPixmap_writable_addr8'>int</a> <a href='#SkPixmap_writable_addr8'>y</a>) <a href='#SkPixmap_writable_addr8'>const</a>;
- <a href='#SkPixmap_writable_addr8'>uint16_t</a>* <a href='#SkPixmap_writable_addr16'>writable_addr16</a>(<a href='#SkPixmap_writable_addr16'>int</a> <a href='#SkPixmap_writable_addr16'>x</a>, <a href='#SkPixmap_writable_addr16'>int</a> <a href='#SkPixmap_writable_addr16'>y</a>) <a href='#SkPixmap_writable_addr16'>const</a>;
- <a href='#SkPixmap_writable_addr16'>uint32_t</a>* <a href='#SkPixmap_writable_addr32'>writable_addr32</a>(<a href='#SkPixmap_writable_addr32'>int</a> <a href='#SkPixmap_writable_addr32'>x</a>, <a href='#SkPixmap_writable_addr32'>int</a> <a href='#SkPixmap_writable_addr32'>y</a>) <a href='#SkPixmap_writable_addr32'>const</a>;
- <a href='#SkPixmap_writable_addr32'>uint64_t</a>* <a href='#SkPixmap_writable_addr64'>writable_addr64</a>(<a href='#SkPixmap_writable_addr64'>int</a> <a href='#SkPixmap_writable_addr64'>x</a>, <a href='#SkPixmap_writable_addr64'>int</a> <a href='#SkPixmap_writable_addr64'>y</a>) <a href='#SkPixmap_writable_addr64'>const</a>;
- <a href='#SkPixmap_writable_addr64'>uint16_t</a>* <a href='#SkPixmap_writable_addrF16'>writable_addrF16</a>(<a href='#SkPixmap_writable_addrF16'>int</a> <a href='#SkPixmap_writable_addrF16'>x</a>, <a href='#SkPixmap_writable_addrF16'>int</a> <a href='#SkPixmap_writable_addrF16'>y</a>) <a href='#SkPixmap_writable_addrF16'>const</a>;
- <a href='#SkPixmap_writable_addrF16'>bool</a> <a href='#SkPixmap_readPixels'>readPixels</a>(<a href='#SkPixmap_readPixels'>const</a> <a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a>& <a href='SkImageInfo_Reference#SkImageInfo'>dstInfo</a>, <a href='SkImageInfo_Reference#SkImageInfo'>void</a>* <a href='SkImageInfo_Reference#SkImageInfo'>dstPixels</a>, <a href='SkImageInfo_Reference#SkImageInfo'>size_t</a> <a href='SkImageInfo_Reference#SkImageInfo'>dstRowBytes</a>) <a href='SkImageInfo_Reference#SkImageInfo'>const</a>;
- <a href='SkImageInfo_Reference#SkImageInfo'>bool</a> <a href='#SkPixmap_readPixels'>readPixels</a>(<a href='#SkPixmap_readPixels'>const</a> <a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a>& <a href='SkImageInfo_Reference#SkImageInfo'>dstInfo</a>, <a href='SkImageInfo_Reference#SkImageInfo'>void</a>* <a href='SkImageInfo_Reference#SkImageInfo'>dstPixels</a>, <a href='SkImageInfo_Reference#SkImageInfo'>size_t</a> <a href='SkImageInfo_Reference#SkImageInfo'>dstRowBytes</a>, <a href='SkImageInfo_Reference#SkImageInfo'>int</a> <a href='SkImageInfo_Reference#SkImageInfo'>srcX</a>,
- <a href='SkImageInfo_Reference#SkImageInfo'>int</a> <a href='SkImageInfo_Reference#SkImageInfo'>srcY</a>) <a href='SkImageInfo_Reference#SkImageInfo'>const</a>;
- <a href='SkImageInfo_Reference#SkImageInfo'>bool</a> <a href='#SkPixmap_readPixels'>readPixels</a>(<a href='#SkPixmap_readPixels'>const</a> <a href='SkPixmap_Reference#SkPixmap'>SkPixmap</a>& <a href='SkPixmap_Reference#SkPixmap'>dst</a>, <a href='SkPixmap_Reference#SkPixmap'>int</a> <a href='SkPixmap_Reference#SkPixmap'>srcX</a>, <a href='SkPixmap_Reference#SkPixmap'>int</a> <a href='SkPixmap_Reference#SkPixmap'>srcY</a>) <a href='SkPixmap_Reference#SkPixmap'>const</a>;
- <a href='SkPixmap_Reference#SkPixmap'>bool</a> <a href='#SkPixmap_readPixels'>readPixels</a>(<a href='#SkPixmap_readPixels'>const</a> <a href='SkPixmap_Reference#SkPixmap'>SkPixmap</a>& <a href='SkPixmap_Reference#SkPixmap'>dst</a>) <a href='SkPixmap_Reference#SkPixmap'>const</a>;
- <a href='SkPixmap_Reference#SkPixmap'>bool</a> <a href='#SkPixmap_scalePixels'>scalePixels</a>(<a href='#SkPixmap_scalePixels'>const</a> <a href='SkPixmap_Reference#SkPixmap'>SkPixmap</a>& <a href='SkPixmap_Reference#SkPixmap'>dst</a>, <a href='undocumented#SkFilterQuality'>SkFilterQuality</a> <a href='undocumented#SkFilterQuality'>filterQuality</a>) <a href='undocumented#SkFilterQuality'>const</a>;
- <a href='undocumented#SkFilterQuality'>bool</a> <a href='#SkPixmap_erase'>erase</a>(<a href='SkColor_Reference#SkColor'>SkColor</a> <a href='SkColor_Reference#Color'>color</a>, <a href='SkColor_Reference#Color'>const</a> <a href='SkIRect_Reference#SkIRect'>SkIRect</a>& <a href='SkIRect_Reference#SkIRect'>subset</a>) <a href='SkIRect_Reference#SkIRect'>const</a>;
- <a href='SkIRect_Reference#SkIRect'>bool</a> <a href='#SkPixmap_erase'>erase</a>(<a href='SkColor_Reference#SkColor'>SkColor</a> <a href='SkColor_Reference#Color'>color</a>) <a href='SkColor_Reference#Color'>const</a>;
- <a href='SkColor_Reference#Color'>bool</a> <a href='#SkPixmap_erase'>erase</a>(<a href='#SkPixmap_erase'>const</a> <a href='SkColor4f_Reference#SkColor4f'>SkColor4f</a>& <a href='SkColor_Reference#Color'>color</a>, <a href='SkColor_Reference#Color'>const</a> <a href='SkIRect_Reference#SkIRect'>SkIRect</a>* <a href='SkIRect_Reference#SkIRect'>subset</a> = <a href='SkIRect_Reference#SkIRect'>nullptr</a>) <a href='SkIRect_Reference#SkIRect'>const</a>;
+ <a href='SkPixmap_Reference#SkPixmap'>SkPixmap</a>(const <a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a>& info, const void* addr, size_t <a href='#SkPixmap_rowBytes'>rowBytes</a>);
+ void <a href='#SkPixmap_reset'>reset()</a>;
+ void reset(const <a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a>& info, const void* addr, size_t <a href='#SkPixmap_rowBytes'>rowBytes</a>);
+ void <a href='#SkPixmap_setColorSpace'>setColorSpace</a>(<a href='undocumented#sk_sp'>sk_sp</a><<a href='undocumented#SkColorSpace'>SkColorSpace</a>> <a href='#SkPixmap_colorSpace'>colorSpace</a>);
+ bool reset(const <a href='undocumented#SkMask'>SkMask</a>& mask);
+ bool <a href='#SkPixmap_extractSubset'>extractSubset</a>(<a href='SkPixmap_Reference#SkPixmap'>SkPixmap</a>* subset, const <a href='SkIRect_Reference#SkIRect'>SkIRect</a>& area) const;
+ const <a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a>& <a href='#SkPixmap_info'>info()</a> const;
+ size_t <a href='#SkPixmap_rowBytes'>rowBytes</a>() const;
+ const void* <a href='#SkPixmap_addr'>addr()</a> const;
+ int <a href='#SkPixmap_width'>width()</a> const;
+ int <a href='#SkPixmap_height'>height()</a> const;
+ <a href='SkImageInfo_Reference#SkColorType'>SkColorType</a> <a href='#SkPixmap_colorType'>colorType</a>() const;
+ <a href='SkImageInfo_Reference#SkAlphaType'>SkAlphaType</a> <a href='#SkPixmap_alphaType'>alphaType</a>() const;
+ <a href='undocumented#SkColorSpace'>SkColorSpace</a>* <a href='#SkPixmap_colorSpace'>colorSpace</a>() const;
+ bool <a href='#SkPixmap_isOpaque'>isOpaque</a>() const;
+ <a href='SkIRect_Reference#SkIRect'>SkIRect</a> <a href='#SkPixmap_bounds'>bounds()</a> const;
+ int <a href='#SkPixmap_rowBytesAsPixels'>rowBytesAsPixels</a>() const;
+ int <a href='#SkPixmap_shiftPerPixel'>shiftPerPixel</a>() const;
+ size_t <a href='#SkPixmap_computeByteSize'>computeByteSize</a>() const;
+ bool <a href='#SkPixmap_computeIsOpaque'>computeIsOpaque</a>() const;
+ <a href='SkColor_Reference#SkColor'>SkColor</a> <a href='#SkPixmap_getColor'>getColor</a>(int x, int y) const;
+ float <a href='#SkPixmap_getAlphaf'>getAlphaf</a>(int x, int y) const;
+ const void* <a href='#SkPixmap_addr'>addr</a>(int x, int y) const;
+ const uint8_t* <a href='#SkPixmap_addr8'>addr8</a>() const;
+ const uint16_t* <a href='#SkPixmap_addr16'>addr16</a>() const;
+ const uint32_t* <a href='#SkPixmap_addr32'>addr32</a>() const;
+ const uint64_t* <a href='#SkPixmap_addr64'>addr64</a>() const;
+ const uint16_t* <a href='#SkPixmap_addrF16'>addrF16</a>() const;
+ const uint8_t* <a href='#SkPixmap_addr8'>addr8</a>(int x, int y) const;
+ const uint16_t* <a href='#SkPixmap_addr16'>addr16</a>(int x, int y) const;
+ const uint32_t* <a href='#SkPixmap_addr32'>addr32</a>(int x, int y) const;
+ const uint64_t* <a href='#SkPixmap_addr64'>addr64</a>(int x, int y) const;
+ const uint16_t* <a href='#SkPixmap_addrF16'>addrF16</a>(int x, int y) const;
+ void* <a href='#SkPixmap_writable_addr'>writable_addr</a>() const;
+ void* <a href='#SkPixmap_writable_addr'>writable_addr</a>(int x, int y) const;
+ uint8_t* <a href='#SkPixmap_writable_addr8'>writable_addr8</a>(int x, int y) const;
+ uint16_t* <a href='#SkPixmap_writable_addr16'>writable_addr16</a>(int x, int y) const;
+ uint32_t* <a href='#SkPixmap_writable_addr32'>writable_addr32</a>(int x, int y) const;
+ uint64_t* <a href='#SkPixmap_writable_addr64'>writable_addr64</a>(int x, int y) const;
+ uint16_t* <a href='#SkPixmap_writable_addrF16'>writable_addrF16</a>(int x, int y) const;
+ bool <a href='#SkPixmap_readPixels'>readPixels</a>(const <a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a>& dstInfo, void* dstPixels, size_t dstRowBytes) const;
+ bool <a href='#SkPixmap_readPixels'>readPixels</a>(const <a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a>& dstInfo, void* dstPixels, size_t dstRowBytes, int srcX,
+ int srcY) const;
+ bool <a href='#SkPixmap_readPixels'>readPixels</a>(const <a href='SkPixmap_Reference#SkPixmap'>SkPixmap</a>& dst, int srcX, int srcY) const;
+ bool <a href='#SkPixmap_readPixels'>readPixels</a>(const <a href='SkPixmap_Reference#SkPixmap'>SkPixmap</a>& dst) const;
+ bool <a href='#SkPixmap_scalePixels'>scalePixels</a>(const <a href='SkPixmap_Reference#SkPixmap'>SkPixmap</a>& dst, <a href='undocumented#SkFilterQuality'>SkFilterQuality</a> filterQuality) const;
+ bool <a href='#SkPixmap_erase'>erase</a>(<a href='SkColor_Reference#SkColor'>SkColor</a> <a href='SkColor_Reference#Color'>color</a>, const <a href='SkIRect_Reference#SkIRect'>SkIRect</a>& subset) const;
+ bool <a href='#SkPixmap_erase'>erase</a>(<a href='SkColor_Reference#SkColor'>SkColor</a> <a href='SkColor_Reference#Color'>color</a>) const;
+ bool <a href='#SkPixmap_erase'>erase</a>(const <a href='SkColor4f_Reference#SkColor4f'>SkColor4f</a>& <a href='SkColor_Reference#Color'>color</a>, const <a href='SkIRect_Reference#SkIRect'>SkIRect</a>* subset = nullptr) const;
};
</pre>
-<a href='SkPixmap_Reference#Pixmap'>Pixmap</a> <a href='SkPixmap_Reference#Pixmap'>provides</a> <a href='SkPixmap_Reference#Pixmap'>a</a> <a href='SkPixmap_Reference#Pixmap'>utility</a> <a href='SkPixmap_Reference#Pixmap'>to</a> <a href='SkPixmap_Reference#Pixmap'>pair</a> <a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a> <a href='SkImageInfo_Reference#SkImageInfo'>with</a> <a href='SkImageInfo_Reference#SkImageInfo'>pixels</a> <a href='SkImageInfo_Reference#SkImageInfo'>and</a> <a href='SkImageInfo_Reference#SkImageInfo'>row</a> <a href='SkImageInfo_Reference#SkImageInfo'>bytes</a>.
-<a href='SkPixmap_Reference#Pixmap'>Pixmap</a> <a href='SkPixmap_Reference#Pixmap'>is</a> <a href='SkPixmap_Reference#Pixmap'>a</a> <a href='SkPixmap_Reference#Pixmap'>low</a> <a href='SkPixmap_Reference#Pixmap'>level</a> <a href='SkPixmap_Reference#Pixmap'>class</a> <a href='SkPixmap_Reference#Pixmap'>which</a> <a href='SkPixmap_Reference#Pixmap'>provides</a> <a href='SkPixmap_Reference#Pixmap'>convenience</a> <a href='SkPixmap_Reference#Pixmap'>functions</a> <a href='SkPixmap_Reference#Pixmap'>to</a> <a href='SkPixmap_Reference#Pixmap'>access</a>
-<a href='SkPixmap_Reference#Pixmap'>raster</a> <a href='SkPixmap_Reference#Pixmap'>destinations</a>. <a href='SkCanvas_Reference#Canvas'>Canvas</a> <a href='SkCanvas_Reference#Canvas'>can</a> <a href='SkCanvas_Reference#Canvas'>not</a> <a href='SkCanvas_Reference#Canvas'>draw</a> <a href='SkPixmap_Reference#Pixmap'>Pixmap</a>, <a href='SkPixmap_Reference#Pixmap'>nor</a> <a href='SkPixmap_Reference#Pixmap'>does</a> <a href='SkPixmap_Reference#Pixmap'>Pixmap</a> <a href='SkPixmap_Reference#Pixmap'>provide</a>
-<a href='SkPixmap_Reference#Pixmap'>a</a> <a href='SkPixmap_Reference#Pixmap'>direct</a> <a href='SkPixmap_Reference#Pixmap'>drawing</a> <a href='SkPixmap_Reference#Pixmap'>destination</a>.
+<a href='SkPixmap_Reference#Pixmap'>Pixmap</a> provides a utility to pair <a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a> with pixels and row bytes.
+<a href='SkPixmap_Reference#Pixmap'>Pixmap</a> is a low level class which provides convenience functions to access
+raster destinations. <a href='SkCanvas_Reference#Canvas'>Canvas</a> can not draw <a href='SkPixmap_Reference#Pixmap'>Pixmap</a>, nor does <a href='SkPixmap_Reference#Pixmap'>Pixmap</a> provide
+a direct drawing destination.
-<a href='SkPixmap_Reference#Pixmap'>Use</a> <a href='SkBitmap_Reference#Bitmap'>Bitmap</a> <a href='SkBitmap_Reference#Bitmap'>to</a> <a href='SkBitmap_Reference#Bitmap'>draw</a> <a href='SkBitmap_Reference#Bitmap'>pixels</a> <a href='SkBitmap_Reference#Bitmap'>referenced</a> <a href='SkBitmap_Reference#Bitmap'>by</a> <a href='SkPixmap_Reference#Pixmap'>Pixmap</a>; <a href='SkPixmap_Reference#Pixmap'>use</a> <a href='SkSurface_Reference#Surface'>Surface</a> <a href='SkSurface_Reference#Surface'>to</a> <a href='SkSurface_Reference#Surface'>draw</a> <a href='SkSurface_Reference#Surface'>into</a>
-<a href='SkSurface_Reference#Surface'>pixels</a> <a href='SkSurface_Reference#Surface'>referenced</a> <a href='SkSurface_Reference#Surface'>by</a> <a href='SkPixmap_Reference#Pixmap'>Pixmap</a>.
+Use <a href='SkBitmap_Reference#Bitmap'>Bitmap</a> to draw pixels referenced by <a href='SkPixmap_Reference#Pixmap'>Pixmap</a>; use <a href='SkSurface_Reference#Surface'>Surface</a> to draw into
+pixels referenced by <a href='SkPixmap_Reference#Pixmap'>Pixmap</a>.
-<a href='SkPixmap_Reference#Pixmap'>Pixmap</a> <a href='SkPixmap_Reference#Pixmap'>does</a> <a href='SkPixmap_Reference#Pixmap'>not</a> <a href='SkPixmap_Reference#Pixmap'>try</a> <a href='SkPixmap_Reference#Pixmap'>to</a> <a href='SkPixmap_Reference#Pixmap'>manage</a> <a href='SkPixmap_Reference#Pixmap'>the</a> <a href='SkPixmap_Reference#Pixmap'>lifetime</a> <a href='SkPixmap_Reference#Pixmap'>of</a> <a href='SkPixmap_Reference#Pixmap'>the</a> <a href='undocumented#Pixel'>pixel</a> <a href='undocumented#Pixel'>memory</a>. <a href='undocumented#Pixel'>Use</a> <a href='#Pixel_Ref'>Pixel_Ref</a>
-<a href='#Pixel_Ref'>to</a> <a href='#Pixel_Ref'>manage</a> <a href='undocumented#Pixel'>pixel</a> <a href='undocumented#Pixel'>memory</a>; <a href='#Pixel_Ref'>Pixel_Ref</a> <a href='#Pixel_Ref'>is</a> <a href='#Pixel_Ref'>safe</a> <a href='#Pixel_Ref'>across</a> <a href='#Pixel_Ref'>threads</a>.
+<a href='SkPixmap_Reference#Pixmap'>Pixmap</a> does not try to manage the lifetime of the <a href='undocumented#Pixel'>pixel</a> memory. Use <a href='#Pixel_Ref'>Pixel_Ref</a>
+to manage <a href='undocumented#Pixel'>pixel</a> memory; <a href='#Pixel_Ref'>Pixel_Ref</a> is safe across threads.
<a name='Initialization'></a>
@@ -83,10 +83,10 @@
<a href='#SkPixmap_empty_constructor'>SkPixmap()</a>
</pre>
-Creates an empty <a href='SkPixmap_Reference#SkPixmap'>SkPixmap</a> <a href='SkPixmap_Reference#SkPixmap'>without</a> <a href='SkPixmap_Reference#SkPixmap'>pixels</a>, <a href='SkPixmap_Reference#SkPixmap'>with</a> <a href='SkImageInfo_Reference#kUnknown_SkColorType'>kUnknown_SkColorType</a>, <a href='SkImageInfo_Reference#kUnknown_SkColorType'>with</a>
-<a href='SkImageInfo_Reference#kUnknown_SkAlphaType'>kUnknown_SkAlphaType</a>, <a href='SkImageInfo_Reference#kUnknown_SkAlphaType'>and</a> <a href='SkImageInfo_Reference#kUnknown_SkAlphaType'>with</a> <a href='SkImageInfo_Reference#kUnknown_SkAlphaType'>a</a> <a href='SkImageInfo_Reference#kUnknown_SkAlphaType'>width</a> <a href='SkImageInfo_Reference#kUnknown_SkAlphaType'>and</a> <a href='SkImageInfo_Reference#kUnknown_SkAlphaType'>height</a> <a href='SkImageInfo_Reference#kUnknown_SkAlphaType'>of</a> <a href='SkImageInfo_Reference#kUnknown_SkAlphaType'>zero</a>. <a href='SkImageInfo_Reference#kUnknown_SkAlphaType'>Use</a>
-<a href='#SkPixmap_reset'>reset()</a> <a href='#SkPixmap_reset'>to</a> <a href='#SkPixmap_reset'>associate</a> <a href='#SkPixmap_reset'>pixels</a>, <a href='SkImageInfo_Reference#SkColorType'>SkColorType</a>, <a href='SkImageInfo_Reference#SkAlphaType'>SkAlphaType</a>, <a href='SkImageInfo_Reference#SkAlphaType'>width</a>, <a href='SkImageInfo_Reference#SkAlphaType'>and</a> <a href='SkImageInfo_Reference#SkAlphaType'>height</a>
-after <a href='SkPixmap_Reference#SkPixmap'>SkPixmap</a> <a href='SkPixmap_Reference#SkPixmap'>has</a> <a href='SkPixmap_Reference#SkPixmap'>been</a> <a href='SkPixmap_Reference#SkPixmap'>created</a>.
+Creates an empty <a href='SkPixmap_Reference#SkPixmap'>SkPixmap</a> without pixels, with <a href='SkImageInfo_Reference#kUnknown_SkColorType'>kUnknown_SkColorType</a>, with
+<a href='SkImageInfo_Reference#kUnknown_SkAlphaType'>kUnknown_SkAlphaType</a>, and with a width and height of zero. Use
+<a href='#SkPixmap_reset'>reset()</a> to associate pixels, <a href='SkImageInfo_Reference#SkColorType'>SkColorType</a>, <a href='SkImageInfo_Reference#SkAlphaType'>SkAlphaType</a>, width, and height
+after <a href='SkPixmap_Reference#SkPixmap'>SkPixmap</a> has been created.
### Return Value
@@ -114,32 +114,32 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-<a href='SkPixmap_Reference#SkPixmap'>SkPixmap</a>(<a href='SkPixmap_Reference#SkPixmap'>const</a> <a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a>& <a href='SkImageInfo_Reference#SkImageInfo'>info</a>, <a href='SkImageInfo_Reference#SkImageInfo'>const</a> <a href='SkImageInfo_Reference#SkImageInfo'>void</a>* <a href='SkImageInfo_Reference#SkImageInfo'>addr</a>, <a href='SkImageInfo_Reference#SkImageInfo'>size_t</a> <a href='#SkPixmap_rowBytes'>rowBytes</a>)
+<a href='SkPixmap_Reference#SkPixmap'>SkPixmap</a>(const <a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a>& info, const void* addr, size_t <a href='#SkPixmap_rowBytes'>rowBytes</a>)
</pre>
-Creates <a href='SkPixmap_Reference#SkPixmap'>SkPixmap</a> <a href='SkPixmap_Reference#SkPixmap'>from</a> <a href='#SkPixmap_const_SkImageInfo_const_star_info'>info</a> <a href='#SkPixmap_const_SkImageInfo_const_star_info'>width</a>, <a href='#SkPixmap_const_SkImageInfo_const_star_info'>height</a>, <a href='SkImageInfo_Reference#SkAlphaType'>SkAlphaType</a>, <a href='SkImageInfo_Reference#SkAlphaType'>and</a> <a href='SkImageInfo_Reference#SkColorType'>SkColorType</a>.
-<a href='#SkPixmap_const_SkImageInfo_const_star_addr'>addr</a> <a href='SkPoint_Reference#Point'>points</a> <a href='SkPoint_Reference#Point'>to</a> <a href='SkPoint_Reference#Point'>pixels</a>, <a href='SkPoint_Reference#Point'>or</a> <a href='SkPoint_Reference#Point'>nullptr</a>. <a href='#SkPixmap_const_SkImageInfo_const_star_rowBytes'>rowBytes</a> <a href='#SkPixmap_const_SkImageInfo_const_star_rowBytes'>should</a> <a href='#SkPixmap_const_SkImageInfo_const_star_rowBytes'>be</a> <a href='#SkPixmap_const_SkImageInfo_const_star_info'>info</a>.<a href='#SkImageInfo_width'>width()</a> <a href='#SkImageInfo_width'>times</a>
-<a href='#SkPixmap_const_SkImageInfo_const_star_info'>info</a>.<a href='#SkImageInfo_bytesPerPixel'>bytesPerPixel</a>(), <a href='#SkImageInfo_bytesPerPixel'>or</a> <a href='#SkImageInfo_bytesPerPixel'>larger</a>.
+Creates <a href='SkPixmap_Reference#SkPixmap'>SkPixmap</a> from <a href='#SkPixmap_const_SkImageInfo_const_star_info'>info</a> width, height, <a href='SkImageInfo_Reference#SkAlphaType'>SkAlphaType</a>, and <a href='SkImageInfo_Reference#SkColorType'>SkColorType</a>.
+<a href='#SkPixmap_const_SkImageInfo_const_star_addr'>addr</a> <a href='SkPoint_Reference#Point'>points</a> to pixels, or nullptr. <a href='#SkPixmap_const_SkImageInfo_const_star_rowBytes'>rowBytes</a> should be <a href='#SkPixmap_const_SkImageInfo_const_star_info'>info</a>.<a href='#SkImageInfo_width'>width()</a> times
+<a href='#SkPixmap_const_SkImageInfo_const_star_info'>info</a>.<a href='#SkImageInfo_bytesPerPixel'>bytesPerPixel</a>(), or larger.
No parameter checking is performed; it is up to the caller to ensure that
-<a href='#SkPixmap_const_SkImageInfo_const_star_addr'>addr</a> <a href='#SkPixmap_const_SkImageInfo_const_star_addr'>and</a> <a href='#SkPixmap_const_SkImageInfo_const_star_rowBytes'>rowBytes</a> <a href='#SkPixmap_const_SkImageInfo_const_star_rowBytes'>agree</a> <a href='#SkPixmap_const_SkImageInfo_const_star_rowBytes'>with</a> <a href='#SkPixmap_const_SkImageInfo_const_star_info'>info</a>.
+<a href='#SkPixmap_const_SkImageInfo_const_star_addr'>addr</a> and <a href='#SkPixmap_const_SkImageInfo_const_star_rowBytes'>rowBytes</a> agree with <a href='#SkPixmap_const_SkImageInfo_const_star_info'>info</a>.
-The memory lifetime of pixels is managed by the caller. When <a href='SkPixmap_Reference#SkPixmap'>SkPixmap</a> <a href='SkPixmap_Reference#SkPixmap'>goes</a>
-out of scope, <a href='#SkPixmap_const_SkImageInfo_const_star_addr'>addr</a> <a href='#SkPixmap_const_SkImageInfo_const_star_addr'>is</a> <a href='#SkPixmap_const_SkImageInfo_const_star_addr'>unaffected</a>.
+The memory lifetime of pixels is managed by the caller. When <a href='SkPixmap_Reference#SkPixmap'>SkPixmap</a> goes
+out of scope, <a href='#SkPixmap_const_SkImageInfo_const_star_addr'>addr</a> is unaffected.
-<a href='SkPixmap_Reference#SkPixmap'>SkPixmap</a> <a href='SkPixmap_Reference#SkPixmap'>may</a> <a href='SkPixmap_Reference#SkPixmap'>be</a> <a href='SkPixmap_Reference#SkPixmap'>later</a> <a href='SkPixmap_Reference#SkPixmap'>modified</a> <a href='SkPixmap_Reference#SkPixmap'>by</a> <a href='#SkPixmap_reset'>reset()</a> <a href='#SkPixmap_reset'>to</a> <a href='#SkPixmap_reset'>change</a> <a href='#SkPixmap_reset'>its</a> <a href='undocumented#Size'>size</a>, <a href='undocumented#Pixel'>pixel</a> <a href='undocumented#Pixel'>type</a>, <a href='undocumented#Pixel'>or</a>
+<a href='SkPixmap_Reference#SkPixmap'>SkPixmap</a> may be later modified by <a href='#SkPixmap_reset'>reset()</a> to change its <a href='undocumented#Size'>size</a>, <a href='undocumented#Pixel'>pixel</a> type, or
storage.
### Parameters
<table> <tr> <td><a name='SkPixmap_const_SkImageInfo_const_star_info'><code><strong>info</strong></code></a></td>
- <td>width, height, <a href='SkImageInfo_Reference#SkAlphaType'>SkAlphaType</a>, <a href='SkImageInfo_Reference#SkColorType'>SkColorType</a> <a href='SkImageInfo_Reference#SkColorType'>of</a> <a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a></td>
+ <td>width, height, <a href='SkImageInfo_Reference#SkAlphaType'>SkAlphaType</a>, <a href='SkImageInfo_Reference#SkColorType'>SkColorType</a> of <a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a></td>
</tr>
<tr> <td><a name='SkPixmap_const_SkImageInfo_const_star_addr'><code><strong>addr</strong></code></a></td>
<td>pointer to pixels allocated by caller; may be nullptr</td>
</tr>
<tr> <td><a name='SkPixmap_const_SkImageInfo_const_star_rowBytes'><code><strong>rowBytes</strong></code></a></td>
- <td><a href='undocumented#Size'>size</a> <a href='undocumented#Size'>of</a> <a href='undocumented#Size'>one</a> <a href='undocumented#Size'>row</a> <a href='undocumented#Size'>of</a> <a href='#SkPixmap_const_SkImageInfo_const_star_addr'>addr</a>; <a href='#SkPixmap_const_SkImageInfo_const_star_addr'>width</a> <a href='#SkPixmap_const_SkImageInfo_const_star_addr'>times</a> <a href='undocumented#Pixel'>pixel</a> <a href='undocumented#Size'>size</a>, <a href='undocumented#Size'>or</a> <a href='undocumented#Size'>larger</a></td>
+ <td><a href='undocumented#Size'>size</a> of one row of <a href='#SkPixmap_const_SkImageInfo_const_star_addr'>addr</a>; width times <a href='undocumented#Pixel'>pixel</a> <a href='undocumented#Size'>size</a>, or larger</td>
</tr>
</table>
@@ -149,8 +149,8 @@
### Example
-<div><fiddle-embed name="9a00774be57d7308313b3a9073e6e696"><div><a href='SkImage_Reference#SkImage'>SkImage</a>::<a href='#SkImage_MakeRasterCopy'>MakeRasterCopy</a> <a href='#SkImage_MakeRasterCopy'>takes</a> <a href='#SkImage_MakeRasterCopy'>const</a> <a href='SkPixmap_Reference#SkPixmap'>SkPixmap</a>& <a href='SkPixmap_Reference#SkPixmap'>as</a> <a href='SkPixmap_Reference#SkPixmap'>an</a> <a href='SkPixmap_Reference#SkPixmap'>argument</a>. <a href='SkPixmap_Reference#SkPixmap'>The</a> <a href='SkPixmap_Reference#SkPixmap'>example</a>
-<a href='SkPixmap_Reference#SkPixmap'>constructs</a> <a href='SkPixmap_Reference#SkPixmap'>a</a> <a href='SkPixmap_Reference#SkPixmap'>SkPixmap</a> <a href='SkPixmap_Reference#SkPixmap'>from</a> <a href='SkPixmap_Reference#SkPixmap'>the</a> <a href='SkPixmap_Reference#SkPixmap'>brace-delimited</a> <a href='SkPixmap_Reference#SkPixmap'>parameters</a>.
+<div><fiddle-embed name="9a00774be57d7308313b3a9073e6e696"><div><a href='SkImage_Reference#SkImage'>SkImage</a>::<a href='#SkImage_MakeRasterCopy'>MakeRasterCopy</a> takes const <a href='SkPixmap_Reference#SkPixmap'>SkPixmap</a>& as an argument. The example
+constructs a <a href='SkPixmap_Reference#SkPixmap'>SkPixmap</a> from the brace-delimited parameters.
</div>
#### Example Output
@@ -174,8 +174,8 @@
void <a href='#SkPixmap_reset'>reset()</a>
</pre>
-Sets width, height, row bytes to zero; <a href='undocumented#Pixel'>pixel</a> <a href='undocumented#Pixel'>address</a> <a href='undocumented#Pixel'>to</a> <a href='undocumented#Pixel'>nullptr</a>; <a href='SkImageInfo_Reference#SkColorType'>SkColorType</a> <a href='SkImageInfo_Reference#SkColorType'>to</a>
-<a href='SkImageInfo_Reference#kUnknown_SkColorType'>kUnknown_SkColorType</a>; <a href='SkImageInfo_Reference#kUnknown_SkColorType'>and</a> <a href='SkImageInfo_Reference#SkAlphaType'>SkAlphaType</a> <a href='SkImageInfo_Reference#SkAlphaType'>to</a> <a href='SkImageInfo_Reference#kUnknown_SkAlphaType'>kUnknown_SkAlphaType</a>.
+Sets width, height, row bytes to zero; <a href='undocumented#Pixel'>pixel</a> address to nullptr; <a href='SkImageInfo_Reference#SkColorType'>SkColorType</a> to
+<a href='SkImageInfo_Reference#kUnknown_SkColorType'>kUnknown_SkColorType</a>; and <a href='SkImageInfo_Reference#SkAlphaType'>SkAlphaType</a> to <a href='SkImageInfo_Reference#kUnknown_SkAlphaType'>kUnknown_SkAlphaType</a>.
The prior pixels are unaffected; it is up to the caller to release pixels
memory if desired.
@@ -202,30 +202,30 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-void reset(const <a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a>& <a href='SkImageInfo_Reference#SkImageInfo'>info</a>, <a href='SkImageInfo_Reference#SkImageInfo'>const</a> <a href='SkImageInfo_Reference#SkImageInfo'>void</a>* <a href='SkImageInfo_Reference#SkImageInfo'>addr</a>, <a href='SkImageInfo_Reference#SkImageInfo'>size_t</a> <a href='#SkPixmap_rowBytes'>rowBytes</a>)
+void reset(const <a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a>& info, const void* addr, size_t <a href='#SkPixmap_rowBytes'>rowBytes</a>)
</pre>
-Sets width, height, <a href='SkImageInfo_Reference#SkAlphaType'>SkAlphaType</a>, <a href='SkImageInfo_Reference#SkAlphaType'>and</a> <a href='SkImageInfo_Reference#SkColorType'>SkColorType</a> <a href='SkImageInfo_Reference#SkColorType'>from</a> <a href='#SkPixmap_reset_2_info'>info</a>.
-Sets <a href='undocumented#Pixel'>pixel</a> <a href='undocumented#Pixel'>address</a> <a href='undocumented#Pixel'>from</a> <a href='#SkPixmap_reset_2_addr'>addr</a>, <a href='#SkPixmap_reset_2_addr'>which</a> <a href='#SkPixmap_reset_2_addr'>may</a> <a href='#SkPixmap_reset_2_addr'>be</a> <a href='#SkPixmap_reset_2_addr'>nullptr</a>.
-Sets row bytes from <a href='#SkPixmap_reset_2_rowBytes'>rowBytes</a>, <a href='#SkPixmap_reset_2_rowBytes'>which</a> <a href='#SkPixmap_reset_2_rowBytes'>should</a> <a href='#SkPixmap_reset_2_rowBytes'>be</a> <a href='#SkPixmap_reset_2_info'>info</a>.<a href='#SkImageInfo_width'>width()</a> <a href='#SkImageInfo_width'>times</a>
-<a href='#SkPixmap_reset_2_info'>info</a>.<a href='#SkImageInfo_bytesPerPixel'>bytesPerPixel</a>(), <a href='#SkImageInfo_bytesPerPixel'>or</a> <a href='#SkImageInfo_bytesPerPixel'>larger</a>.
+Sets width, height, <a href='SkImageInfo_Reference#SkAlphaType'>SkAlphaType</a>, and <a href='SkImageInfo_Reference#SkColorType'>SkColorType</a> from <a href='#SkPixmap_reset_2_info'>info</a>.
+Sets <a href='undocumented#Pixel'>pixel</a> address from <a href='#SkPixmap_reset_2_addr'>addr</a>, which may be nullptr.
+Sets row bytes from <a href='#SkPixmap_reset_2_rowBytes'>rowBytes</a>, which should be <a href='#SkPixmap_reset_2_info'>info</a>.<a href='#SkImageInfo_width'>width()</a> times
+<a href='#SkPixmap_reset_2_info'>info</a>.<a href='#SkImageInfo_bytesPerPixel'>bytesPerPixel</a>(), or larger.
-Does not check <a href='#SkPixmap_reset_2_addr'>addr</a>. <a href='#SkPixmap_reset_2_addr'>Asserts</a> <a href='#SkPixmap_reset_2_addr'>if</a> <a href='#SkPixmap_reset_2_addr'>built</a> <a href='#SkPixmap_reset_2_addr'>with</a> <a href='#SkPixmap_reset_2_addr'>SK_DEBUG</a> <a href='#SkPixmap_reset_2_addr'>defined</a> <a href='#SkPixmap_reset_2_addr'>and</a> <a href='#SkPixmap_reset_2_addr'>if</a> <a href='#SkPixmap_reset_2_rowBytes'>rowBytes</a> <a href='#SkPixmap_reset_2_rowBytes'>is</a>
+Does not check <a href='#SkPixmap_reset_2_addr'>addr</a>. Asserts if built with SK_DEBUG defined and if <a href='#SkPixmap_reset_2_rowBytes'>rowBytes</a> is
too small to hold one row of pixels.
-The memory lifetime pixels are managed by the caller. When <a href='SkPixmap_Reference#SkPixmap'>SkPixmap</a> <a href='SkPixmap_Reference#SkPixmap'>goes</a>
-out of scope, <a href='#SkPixmap_reset_2_addr'>addr</a> <a href='#SkPixmap_reset_2_addr'>is</a> <a href='#SkPixmap_reset_2_addr'>unaffected</a>.
+The memory lifetime pixels are managed by the caller. When <a href='SkPixmap_Reference#SkPixmap'>SkPixmap</a> goes
+out of scope, <a href='#SkPixmap_reset_2_addr'>addr</a> is unaffected.
### Parameters
<table> <tr> <td><a name='SkPixmap_reset_2_info'><code><strong>info</strong></code></a></td>
- <td>width, height, <a href='SkImageInfo_Reference#SkAlphaType'>SkAlphaType</a>, <a href='SkImageInfo_Reference#SkColorType'>SkColorType</a> <a href='SkImageInfo_Reference#SkColorType'>of</a> <a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a></td>
+ <td>width, height, <a href='SkImageInfo_Reference#SkAlphaType'>SkAlphaType</a>, <a href='SkImageInfo_Reference#SkColorType'>SkColorType</a> of <a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a></td>
</tr>
<tr> <td><a name='SkPixmap_reset_2_addr'><code><strong>addr</strong></code></a></td>
<td>pointer to pixels allocated by caller; may be nullptr</td>
</tr>
<tr> <td><a name='SkPixmap_reset_2_rowBytes'><code><strong>rowBytes</strong></code></a></td>
- <td><a href='undocumented#Size'>size</a> <a href='undocumented#Size'>of</a> <a href='undocumented#Size'>one</a> <a href='undocumented#Size'>row</a> <a href='undocumented#Size'>of</a> <a href='#SkPixmap_reset_2_addr'>addr</a>; <a href='#SkPixmap_reset_2_addr'>width</a> <a href='#SkPixmap_reset_2_addr'>times</a> <a href='undocumented#Pixel'>pixel</a> <a href='undocumented#Size'>size</a>, <a href='undocumented#Size'>or</a> <a href='undocumented#Size'>larger</a></td>
+ <td><a href='undocumented#Size'>size</a> of one row of <a href='#SkPixmap_reset_2_addr'>addr</a>; width times <a href='undocumented#Pixel'>pixel</a> <a href='undocumented#Size'>size</a>, or larger</td>
</tr>
</table>
@@ -242,17 +242,17 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-void <a href='#SkPixmap_setColorSpace'>setColorSpace</a>(<a href='undocumented#sk_sp'>sk_sp</a>&<a href='undocumented#sk_sp'>lt</a>;<a href='undocumented#SkColorSpace'>SkColorSpace</a>&<a href='undocumented#SkColorSpace'>gt</a>; <a href='#SkPixmap_colorSpace'>colorSpace</a>)
+void <a href='#SkPixmap_setColorSpace'>setColorSpace</a>(<a href='undocumented#sk_sp'>sk_sp</a><<a href='undocumented#SkColorSpace'>SkColorSpace</a>> <a href='#SkPixmap_colorSpace'>colorSpace</a>)
</pre>
-Changes <a href='undocumented#SkColorSpace'>SkColorSpace</a> <a href='undocumented#SkColorSpace'>in</a> <a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a>; <a href='SkImageInfo_Reference#SkImageInfo'>preserves</a> <a href='SkImageInfo_Reference#SkImageInfo'>width</a>, <a href='SkImageInfo_Reference#SkImageInfo'>height</a>, <a href='SkImageInfo_Reference#SkAlphaType'>SkAlphaType</a>, <a href='SkImageInfo_Reference#SkAlphaType'>and</a>
-<a href='SkImageInfo_Reference#SkColorType'>SkColorType</a> <a href='SkImageInfo_Reference#SkColorType'>in</a> <a href='SkImage_Reference#SkImage'>SkImage</a>, <a href='SkImage_Reference#SkImage'>and</a> <a href='SkImage_Reference#SkImage'>leaves</a> <a href='undocumented#Pixel'>pixel</a> <a href='undocumented#Pixel'>address</a> <a href='undocumented#Pixel'>and</a> <a href='undocumented#Pixel'>row</a> <a href='undocumented#Pixel'>bytes</a> <a href='undocumented#Pixel'>unchanged</a>.
-<a href='undocumented#SkColorSpace'>SkColorSpace</a> <a href='undocumented#Reference_Count'>reference count</a> <a href='undocumented#SkColorSpace'>is</a> <a href='undocumented#SkColorSpace'>incremented</a>.
+Changes <a href='undocumented#SkColorSpace'>SkColorSpace</a> in <a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a>; preserves width, height, <a href='SkImageInfo_Reference#SkAlphaType'>SkAlphaType</a>, and
+<a href='SkImageInfo_Reference#SkColorType'>SkColorType</a> in <a href='SkImage_Reference#SkImage'>SkImage</a>, and leaves <a href='undocumented#Pixel'>pixel</a> address and row bytes unchanged.
+<a href='undocumented#SkColorSpace'>SkColorSpace</a> <a href='undocumented#Reference_Count'>reference count</a> is incremented.
### Parameters
<table> <tr> <td><a name='SkPixmap_setColorSpace_colorSpace'><code><strong>colorSpace</strong></code></a></td>
- <td><a href='undocumented#SkColorSpace'>SkColorSpace</a> <a href='undocumented#SkColorSpace'>moved</a> <a href='undocumented#SkColorSpace'>to</a> <a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a></td>
+ <td><a href='undocumented#SkColorSpace'>SkColorSpace</a> moved to <a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a></td>
</tr>
</table>
@@ -278,7 +278,7 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-bool reset(const <a href='undocumented#SkMask'>SkMask</a>& <a href='undocumented#SkMask'>mask</a>)
+bool reset(const <a href='undocumented#SkMask'>SkMask</a>& mask)
</pre>
To be deprecated soon.
@@ -288,11 +288,11 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-bool extractSubset(<a href='SkPixmap_Reference#SkPixmap'>SkPixmap</a>* <a href='SkPixmap_Reference#SkPixmap'>subset</a>, <a href='SkPixmap_Reference#SkPixmap'>const</a> <a href='SkIRect_Reference#SkIRect'>SkIRect</a>& <a href='SkIRect_Reference#SkIRect'>area</a>) <a href='SkIRect_Reference#SkIRect'>const</a>
+bool extractSubset(<a href='SkPixmap_Reference#SkPixmap'>SkPixmap</a>* subset, const <a href='SkIRect_Reference#SkIRect'>SkIRect</a>& area) const
</pre>
-Sets <a href='#SkPixmap_extractSubset_subset'>subset</a> <a href='#SkPixmap_extractSubset_subset'>width</a>, <a href='#SkPixmap_extractSubset_subset'>height</a>, <a href='undocumented#Pixel'>pixel</a> <a href='undocumented#Pixel'>address</a> <a href='undocumented#Pixel'>to</a> <a href='undocumented#Pixel'>intersection</a> <a href='undocumented#Pixel'>of</a> <a href='SkPixmap_Reference#SkPixmap'>SkPixmap</a> <a href='SkPixmap_Reference#SkPixmap'>with</a> <a href='#SkPixmap_extractSubset_area'>area</a>,
-if intersection is not empty; and return true. Otherwise, leave <a href='#SkPixmap_extractSubset_subset'>subset</a> <a href='#SkPixmap_extractSubset_subset'>unchanged</a>
+Sets <a href='#SkPixmap_extractSubset_subset'>subset</a> width, height, <a href='undocumented#Pixel'>pixel</a> address to intersection of <a href='SkPixmap_Reference#SkPixmap'>SkPixmap</a> with <a href='#SkPixmap_extractSubset_area'>area</a>,
+if intersection is not empty; and return true. Otherwise, leave <a href='#SkPixmap_extractSubset_subset'>subset</a> unchanged
and return false.
Failing to read the return value generates a compile time warning.
@@ -300,7 +300,7 @@
### Parameters
<table> <tr> <td><a name='SkPixmap_extractSubset_subset'><code><strong>subset</strong></code></a></td>
- <td>storage for width, height, <a href='undocumented#Pixel'>pixel</a> <a href='undocumented#Pixel'>address</a> <a href='undocumented#Pixel'>of</a> <a href='undocumented#Pixel'>intersection</a></td>
+ <td>storage for width, height, <a href='undocumented#Pixel'>pixel</a> address of intersection</td>
</tr>
<tr> <td><a name='SkPixmap_extractSubset_area'><code><strong>area</strong></code></a></td>
<td>bounds to intersect with <a href='SkPixmap_Reference#SkPixmap'>SkPixmap</a></td>
@@ -309,7 +309,7 @@
### Return Value
-true if intersection of <a href='SkPixmap_Reference#SkPixmap'>SkPixmap</a> <a href='SkPixmap_Reference#SkPixmap'>and</a> <a href='#SkPixmap_extractSubset_area'>area</a> <a href='#SkPixmap_extractSubset_area'>is</a> <a href='#SkPixmap_extractSubset_area'>not</a> <a href='#SkPixmap_extractSubset_area'>empty</a>
+true if intersection of <a href='SkPixmap_Reference#SkPixmap'>SkPixmap</a> and <a href='#SkPixmap_extractSubset_area'>area</a> is not empty
### Example
@@ -326,10 +326,10 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-const <a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a>& <a href='#SkPixmap_info'>info()</a> <a href='#SkPixmap_info'>const</a>
+const <a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a>& <a href='#SkPixmap_info'>info()</a> const
</pre>
-Returns width, height, <a href='SkImageInfo_Reference#SkAlphaType'>SkAlphaType</a>, <a href='SkImageInfo_Reference#SkColorType'>SkColorType</a>, <a href='SkImageInfo_Reference#SkColorType'>and</a> <a href='undocumented#SkColorSpace'>SkColorSpace</a>.
+Returns width, height, <a href='SkImageInfo_Reference#SkAlphaType'>SkAlphaType</a>, <a href='SkImageInfo_Reference#SkColorType'>SkColorType</a>, and <a href='undocumented#SkColorSpace'>SkColorSpace</a>.
### Return Value
@@ -356,18 +356,18 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-size_t <a href='#SkPixmap_rowBytes'>rowBytes</a>() <a href='#SkPixmap_rowBytes'>const</a>
+size_t <a href='#SkPixmap_rowBytes'>rowBytes</a>() const
</pre>
-Returns row bytes, the interval from one <a href='undocumented#Pixel'>pixel</a> <a href='undocumented#Pixel'>row</a> <a href='undocumented#Pixel'>to</a> <a href='undocumented#Pixel'>the</a> <a href='undocumented#Pixel'>next</a>. <a href='undocumented#Pixel'>Row</a> <a href='undocumented#Pixel'>bytes</a>
-<a href='undocumented#Pixel'>is</a> <a href='undocumented#Pixel'>at</a> <a href='undocumented#Pixel'>least</a> <a href='undocumented#Pixel'>as</a> <a href='undocumented#Pixel'>large</a> <a href='undocumented#Pixel'>as</a>: <code><a href='#SkPixmap_width'>width()</a> * <a href='#SkPixmap_info'>info()</a>.<a href='#SkImageInfo_bytesPerPixel'>bytesPerPixel</a>()</code>.
+Returns row bytes, the interval from one <a href='undocumented#Pixel'>pixel</a> row to the next. Row bytes
+is at least as large as: <code><a href='#SkPixmap_width'>width()</a> * <a href='#SkPixmap_info'>info()</a>.<a href='#SkImageInfo_bytesPerPixel'>bytesPerPixel</a>()</code>.
-Returns zero if <a href='#SkPixmap_colorType'>colorType</a> <a href='#SkPixmap_colorType'>is</a> <a href='SkImageInfo_Reference#kUnknown_SkColorType'>kUnknown_SkColorType</a>.
-<a href='SkImageInfo_Reference#kUnknown_SkColorType'>It</a> <a href='SkImageInfo_Reference#kUnknown_SkColorType'>is</a> <a href='SkImageInfo_Reference#kUnknown_SkColorType'>up</a> <a href='SkImageInfo_Reference#kUnknown_SkColorType'>to</a> <a href='SkImageInfo_Reference#kUnknown_SkColorType'>the</a> <a href='SkBitmap_Reference#Bitmap'>Bitmap</a> <a href='SkBitmap_Reference#Bitmap'>creator</a> <a href='SkBitmap_Reference#Bitmap'>to</a> <a href='SkBitmap_Reference#Bitmap'>ensure</a> <a href='SkBitmap_Reference#Bitmap'>that</a> <a href='SkBitmap_Reference#Bitmap'>row</a> <a href='SkBitmap_Reference#Bitmap'>bytes</a> <a href='SkBitmap_Reference#Bitmap'>is</a> <a href='SkBitmap_Reference#Bitmap'>a</a> <a href='SkBitmap_Reference#Bitmap'>useful</a> <a href='SkBitmap_Reference#Bitmap'>value</a>.
+Returns zero if <a href='#SkPixmap_colorType'>colorType</a> is <a href='SkImageInfo_Reference#kUnknown_SkColorType'>kUnknown_SkColorType</a>.
+It is up to the <a href='SkBitmap_Reference#Bitmap'>Bitmap</a> creator to ensure that row bytes is a useful value.
### Return Value
-byte length of <a href='undocumented#Pixel'>pixel</a> <a href='undocumented#Pixel'>row</a>
+byte length of <a href='undocumented#Pixel'>pixel</a> row
### Example
@@ -391,16 +391,16 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-const void* <a href='#SkPixmap_addr'>addr()</a> <a href='#SkPixmap_addr'>const</a>
+const void* <a href='#SkPixmap_addr'>addr()</a> const
</pre>
-Returns <a href='undocumented#Pixel'>pixel</a> <a href='undocumented#Pixel'>address</a>, <a href='undocumented#Pixel'>the</a> <a href='undocumented#Pixel'>base</a> <a href='undocumented#Pixel'>address</a> <a href='undocumented#Pixel'>corresponding</a> <a href='undocumented#Pixel'>to</a> <a href='undocumented#Pixel'>the</a> <a href='undocumented#Pixel'>pixel</a> <a href='undocumented#Pixel'>origin</a>.
+Returns <a href='undocumented#Pixel'>pixel</a> address, the base address corresponding to the <a href='undocumented#Pixel'>pixel</a> origin.
-It is up to the <a href='SkPixmap_Reference#SkPixmap'>SkPixmap</a> <a href='SkPixmap_Reference#SkPixmap'>creator</a> <a href='SkPixmap_Reference#SkPixmap'>to</a> <a href='SkPixmap_Reference#SkPixmap'>ensure</a> <a href='SkPixmap_Reference#SkPixmap'>that</a> <a href='undocumented#Pixel'>pixel</a> <a href='undocumented#Pixel'>address</a> <a href='undocumented#Pixel'>is</a> <a href='undocumented#Pixel'>a</a> <a href='undocumented#Pixel'>useful</a> <a href='undocumented#Pixel'>value</a>.
+It is up to the <a href='SkPixmap_Reference#SkPixmap'>SkPixmap</a> creator to ensure that <a href='undocumented#Pixel'>pixel</a> address is a useful value.
### Return Value
-<a href='undocumented#Pixel'>pixel</a> <a href='undocumented#Pixel'>address</a>
+<a href='undocumented#Pixel'>pixel</a> address
### Example
@@ -425,16 +425,16 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-int <a href='#SkPixmap_width'>width()</a> <a href='#SkPixmap_width'>const</a>
+int <a href='#SkPixmap_width'>width()</a> const
</pre>
-Returns <a href='undocumented#Pixel'>pixel</a> <a href='undocumented#Pixel'>count</a> <a href='undocumented#Pixel'>in</a> <a href='undocumented#Pixel'>each</a> <a href='undocumented#Pixel'>pixel</a> <a href='undocumented#Pixel'>row</a>. <a href='undocumented#Pixel'>Should</a> <a href='undocumented#Pixel'>be</a> <a href='undocumented#Pixel'>equal</a> <a href='undocumented#Pixel'>or</a> <a href='undocumented#Pixel'>less</a> <a href='undocumented#Pixel'>than</a>:
+Returns <a href='undocumented#Pixel'>pixel</a> count in each <a href='undocumented#Pixel'>pixel</a> row. Should be equal or less than:
<code><a href='#SkPixmap_rowBytes'>rowBytes</a>() / <a href='#SkPixmap_info'>info()</a>.<a href='#SkImageInfo_bytesPerPixel'>bytesPerPixel</a>()</code>.
### Return Value
-<a href='undocumented#Pixel'>pixel</a> <a href='undocumented#Pixel'>width</a> <a href='undocumented#Pixel'>in</a> <a href='#Image_Info'>Image_Info</a>
+<a href='undocumented#Pixel'>pixel</a> width in <a href='#Image_Info'>Image_Info</a>
### Example
@@ -457,14 +457,14 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-int <a href='#SkPixmap_height'>height()</a> <a href='#SkPixmap_height'>const</a>
+int <a href='#SkPixmap_height'>height()</a> const
</pre>
-Returns <a href='undocumented#Pixel'>pixel</a> <a href='undocumented#Pixel'>row</a> <a href='undocumented#Pixel'>count</a>.
+Returns <a href='undocumented#Pixel'>pixel</a> row count.
### Return Value
-<a href='undocumented#Pixel'>pixel</a> <a href='undocumented#Pixel'>height</a> <a href='undocumented#Pixel'>in</a> <a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a>
+<a href='undocumented#Pixel'>pixel</a> height in <a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a>
### Example
@@ -487,10 +487,10 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-<a href='SkImageInfo_Reference#SkColorType'>SkColorType</a> <a href='#SkPixmap_colorType'>colorType</a>() <a href='#SkPixmap_colorType'>const</a>
+<a href='SkImageInfo_Reference#SkColorType'>SkColorType</a> <a href='#SkPixmap_colorType'>colorType</a>() const
</pre>
-Returns <a href='#Image_Info_Color_Type'>Color_Type</a>, <a href='#Image_Info_Color_Type'>one</a> <a href='#Image_Info_Color_Type'>of</a>: <a href='SkImageInfo_Reference#kUnknown_SkColorType'>kUnknown_SkColorType</a>, <a href='SkImageInfo_Reference#kAlpha_8_SkColorType'>kAlpha_8_SkColorType</a>, <a href='SkImageInfo_Reference#kRGB_565_SkColorType'>kRGB_565_SkColorType</a>,
+Returns <a href='#Image_Info_Color_Type'>Color_Type</a>, one of: <a href='SkImageInfo_Reference#kUnknown_SkColorType'>kUnknown_SkColorType</a>, <a href='SkImageInfo_Reference#kAlpha_8_SkColorType'>kAlpha_8_SkColorType</a>, <a href='SkImageInfo_Reference#kRGB_565_SkColorType'>kRGB_565_SkColorType</a>,
<a href='SkImageInfo_Reference#kARGB_4444_SkColorType'>kARGB_4444_SkColorType</a>, <a href='SkImageInfo_Reference#kRGBA_8888_SkColorType'>kRGBA_8888_SkColorType</a>, <a href='SkImageInfo_Reference#kRGB_888x_SkColorType'>kRGB_888x_SkColorType</a>,
<a href='SkImageInfo_Reference#kBGRA_8888_SkColorType'>kBGRA_8888_SkColorType</a>, <a href='SkImageInfo_Reference#kRGBA_1010102_SkColorType'>kRGBA_1010102_SkColorType</a>, <a href='SkImageInfo_Reference#kRGB_101010x_SkColorType'>kRGB_101010x_SkColorType</a>,
<a href='SkImageInfo_Reference#kGray_8_SkColorType'>kGray_8_SkColorType</a>, <a href='SkImageInfo_Reference#kRGBA_F16_SkColorType'>kRGBA_F16_SkColorType</a>
@@ -498,7 +498,7 @@
### Return Value
-<a href='#Image_Info_Color_Type'>Color_Type</a> <a href='#Image_Info_Color_Type'>in</a> <a href='#Image_Info'>Image_Info</a>
+<a href='#Image_Info_Color_Type'>Color_Type</a> in <a href='#Image_Info'>Image_Info</a>
### Example
@@ -521,16 +521,16 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-<a href='SkImageInfo_Reference#SkAlphaType'>SkAlphaType</a> <a href='#SkPixmap_alphaType'>alphaType</a>() <a href='#SkPixmap_alphaType'>const</a>
+<a href='SkImageInfo_Reference#SkAlphaType'>SkAlphaType</a> <a href='#SkPixmap_alphaType'>alphaType</a>() const
</pre>
-Returns <a href='#Image_Info_Alpha_Type'>Alpha_Type</a>, <a href='#Image_Info_Alpha_Type'>one</a> <a href='#Image_Info_Alpha_Type'>of</a>: <a href='SkImageInfo_Reference#kUnknown_SkAlphaType'>kUnknown_SkAlphaType</a>, <a href='SkImageInfo_Reference#kOpaque_SkAlphaType'>kOpaque_SkAlphaType</a>, <a href='SkImageInfo_Reference#kPremul_SkAlphaType'>kPremul_SkAlphaType</a>,
+Returns <a href='#Image_Info_Alpha_Type'>Alpha_Type</a>, one of: <a href='SkImageInfo_Reference#kUnknown_SkAlphaType'>kUnknown_SkAlphaType</a>, <a href='SkImageInfo_Reference#kOpaque_SkAlphaType'>kOpaque_SkAlphaType</a>, <a href='SkImageInfo_Reference#kPremul_SkAlphaType'>kPremul_SkAlphaType</a>,
<a href='SkImageInfo_Reference#kUnpremul_SkAlphaType'>kUnpremul_SkAlphaType</a>
.
### Return Value
-<a href='#Image_Info_Alpha_Type'>Alpha_Type</a> <a href='#Image_Info_Alpha_Type'>in</a> <a href='#Image_Info'>Image_Info</a>
+<a href='#Image_Info_Alpha_Type'>Alpha_Type</a> in <a href='#Image_Info'>Image_Info</a>
### Example
@@ -553,21 +553,21 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-<a href='undocumented#SkColorSpace'>SkColorSpace</a>* <a href='#SkPixmap_colorSpace'>colorSpace</a>() <a href='#SkPixmap_colorSpace'>const</a>
+<a href='undocumented#SkColorSpace'>SkColorSpace</a>* <a href='#SkPixmap_colorSpace'>colorSpace</a>() const
</pre>
-Returns <a href='undocumented#SkColorSpace'>SkColorSpace</a>, <a href='undocumented#SkColorSpace'>the</a> <a href='undocumented#SkColorSpace'>range</a> <a href='undocumented#SkColorSpace'>of</a> <a href='undocumented#SkColorSpace'>colors</a>, <a href='undocumented#SkColorSpace'>associated</a> <a href='undocumented#SkColorSpace'>with</a> <a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a>. <a href='SkImageInfo_Reference#SkImageInfo'>The</a>
-reference count of <a href='undocumented#SkColorSpace'>SkColorSpace</a> <a href='undocumented#SkColorSpace'>is</a> <a href='undocumented#SkColorSpace'>unchanged</a>. <a href='undocumented#SkColorSpace'>The</a> <a href='undocumented#SkColorSpace'>returned</a> <a href='undocumented#SkColorSpace'>SkColorSpace</a> <a href='undocumented#SkColorSpace'>is</a>
+Returns <a href='undocumented#SkColorSpace'>SkColorSpace</a>, the range of colors, associated with <a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a>. The
+reference count of <a href='undocumented#SkColorSpace'>SkColorSpace</a> is unchanged. The returned <a href='undocumented#SkColorSpace'>SkColorSpace</a> is
immutable.
### Return Value
-<a href='undocumented#SkColorSpace'>SkColorSpace</a> <a href='undocumented#SkColorSpace'>in</a> <a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a>, <a href='SkImageInfo_Reference#SkImageInfo'>or</a> <a href='SkImageInfo_Reference#SkImageInfo'>nullptr</a>
+<a href='undocumented#SkColorSpace'>SkColorSpace</a> in <a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a>, or nullptr
### Example
-<div><fiddle-embed name="3421bb20a302d563832ba7bb45e0cc58"><div><a href='undocumented#SkColorSpace'>SkColorSpace</a>::<a href='#SkColorSpace_MakeSRGBLinear'>MakeSRGBLinear</a> <a href='#SkColorSpace_MakeSRGBLinear'>creates</a> <a href='#Color_Space'>Color_Space</a> <a href='#Color_Space'>with</a> <a href='#Color_Space'>linear</a> <a href='#Color_Space'>gamma</a>
-<a href='#Color_Space'>and</a> <a href='#Color_Space'>an</a> <a href='#Color_Space'>sRGB</a> <a href='#Color_Space'>gamut</a>. <a href='#Color_Space'>This</a> <a href='#Color_Space'>Color_Space</a> <a href='#Color_Space'>gamma</a> <a href='#Color_Space'>is</a> <a href='#Color_Space'>not</a> <a href='#Color_Space'>close</a> <a href='#Color_Space'>to</a> <a href='#Color_Space'>sRGB</a> <a href='#Color_Space'>gamma</a>.
+<div><fiddle-embed name="3421bb20a302d563832ba7bb45e0cc58"><div><a href='undocumented#SkColorSpace'>SkColorSpace</a>::<a href='#SkColorSpace_MakeSRGBLinear'>MakeSRGBLinear</a> creates <a href='#Color_Space'>Color_Space</a> with linear gamma
+and an sRGB gamut. This <a href='#Color_Space'>Color_Space</a> gamma is not close to sRGB gamma.
</div>
#### Example Output
@@ -587,20 +587,20 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-bool <a href='#SkPixmap_isOpaque'>isOpaque</a>() <a href='#SkPixmap_isOpaque'>const</a>
+bool <a href='#SkPixmap_isOpaque'>isOpaque</a>() const
</pre>
-Returns true if <a href='SkImageInfo_Reference#SkAlphaType'>SkAlphaType</a> <a href='SkImageInfo_Reference#SkAlphaType'>is</a> <a href='SkImageInfo_Reference#kOpaque_SkAlphaType'>kOpaque_SkAlphaType</a>.
-Does not check if <a href='SkImageInfo_Reference#SkColorType'>SkColorType</a> <a href='SkImageInfo_Reference#SkColorType'>allows</a> <a href='SkColor_Reference#Alpha'>alpha</a>, <a href='SkColor_Reference#Alpha'>or</a> <a href='SkColor_Reference#Alpha'>if</a> <a href='SkColor_Reference#Alpha'>any</a> <a href='undocumented#Pixel'>pixel</a> <a href='undocumented#Pixel'>value</a> <a href='undocumented#Pixel'>has</a>
+Returns true if <a href='SkImageInfo_Reference#SkAlphaType'>SkAlphaType</a> is <a href='SkImageInfo_Reference#kOpaque_SkAlphaType'>kOpaque_SkAlphaType</a>.
+Does not check if <a href='SkImageInfo_Reference#SkColorType'>SkColorType</a> allows <a href='SkColor_Reference#Alpha'>alpha</a>, or if any <a href='undocumented#Pixel'>pixel</a> value has
transparency.
### Return Value
-true if <a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a> <a href='SkImageInfo_Reference#SkImageInfo'>has</a> <a href='SkImageInfo_Reference#SkImageInfo'>opaque</a> <a href='SkImageInfo_Reference#SkAlphaType'>SkAlphaType</a>
+true if <a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a> has opaque <a href='SkImageInfo_Reference#SkAlphaType'>SkAlphaType</a>
### Example
-<div><fiddle-embed name="efd083f121e888a523455ea8a49e50d1"><div><a href='#SkPixmap_isOpaque'>isOpaque</a> <a href='#SkPixmap_isOpaque'>ignores</a> <a href='#SkPixmap_isOpaque'>whether</a> <a href='#SkPixmap_isOpaque'>all</a> <a href='#SkPixmap_isOpaque'>pixels</a> <a href='#SkPixmap_isOpaque'>are</a> <a href='#SkPixmap_isOpaque'>opaque</a> <a href='#SkPixmap_isOpaque'>or</a> <a href='#SkPixmap_isOpaque'>not</a>.
+<div><fiddle-embed name="efd083f121e888a523455ea8a49e50d1"><div><a href='#SkPixmap_isOpaque'>isOpaque</a> ignores whether all pixels are opaque or not.
</div>
#### Example Output
@@ -623,14 +623,14 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-<a href='SkIRect_Reference#SkIRect'>SkIRect</a> <a href='#SkPixmap_bounds'>bounds()</a> <a href='#SkPixmap_bounds'>const</a>
+<a href='SkIRect_Reference#SkIRect'>SkIRect</a> <a href='#SkPixmap_bounds'>bounds()</a> const
</pre>
Returns <a href='SkIRect_Reference#SkIRect'>SkIRect</a> { 0, 0, <a href='#SkPixmap_width'>width()</a>, <a href='#SkPixmap_height'>height()</a> }.
### Return Value
-integral rectangle from origin to <a href='#SkPixmap_width'>width()</a> <a href='#SkPixmap_width'>and</a> <a href='#SkPixmap_height'>height()</a>
+integral rectangle from origin to <a href='#SkPixmap_width'>width()</a> and <a href='#SkPixmap_height'>height()</a>
### Example
@@ -656,7 +656,7 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-int <a href='#SkPixmap_rowBytesAsPixels'>rowBytesAsPixels</a>() <a href='#SkPixmap_rowBytesAsPixels'>const</a>
+int <a href='#SkPixmap_rowBytesAsPixels'>rowBytesAsPixels</a>() const
</pre>
Returns number of pixels that fit on row. Should be greater than or equal to
@@ -691,7 +691,7 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-int <a href='#SkPixmap_shiftPerPixel'>shiftPerPixel</a>() <a href='#SkPixmap_shiftPerPixel'>const</a>
+int <a href='#SkPixmap_shiftPerPixel'>shiftPerPixel</a>() const
</pre>
Returns bit shift converting row bytes to row pixels.
@@ -729,18 +729,18 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-size_t <a href='#SkPixmap_computeByteSize'>computeByteSize</a>() <a href='#SkPixmap_computeByteSize'>const</a>
+size_t <a href='#SkPixmap_computeByteSize'>computeByteSize</a>() const
</pre>
-Returns minimum memory required for <a href='undocumented#Pixel'>pixel</a> <a href='undocumented#Pixel'>storage</a>.
-Does not include unused memory on last row when <a href='#SkPixmap_rowBytesAsPixels'>rowBytesAsPixels</a>() <a href='#SkPixmap_rowBytesAsPixels'>exceeds</a> <a href='#SkPixmap_width'>width()</a>.
+Returns minimum memory required for <a href='undocumented#Pixel'>pixel</a> storage.
+Does not include unused memory on last row when <a href='#SkPixmap_rowBytesAsPixels'>rowBytesAsPixels</a>() exceeds <a href='#SkPixmap_width'>width()</a>.
Returns zero if result does not fit in size_t.
-Returns zero if <a href='#SkPixmap_height'>height()</a> <a href='#SkPixmap_height'>or</a> <a href='#SkPixmap_width'>width()</a> <a href='#SkPixmap_width'>is</a> 0.
-Returns <a href='#SkPixmap_height'>height()</a> <a href='#SkPixmap_height'>times</a> <a href='#SkPixmap_rowBytes'>rowBytes</a>() <a href='#SkPixmap_rowBytes'>if</a> <a href='#SkPixmap_colorType'>colorType</a>() <a href='#SkPixmap_colorType'>is</a> <a href='SkImageInfo_Reference#kUnknown_SkColorType'>kUnknown_SkColorType</a>.
+Returns zero if <a href='#SkPixmap_height'>height()</a> or <a href='#SkPixmap_width'>width()</a> is 0.
+Returns <a href='#SkPixmap_height'>height()</a> times <a href='#SkPixmap_rowBytes'>rowBytes</a>() if <a href='#SkPixmap_colorType'>colorType</a>() is <a href='SkImageInfo_Reference#kUnknown_SkColorType'>kUnknown_SkColorType</a>.
### Return Value
-<a href='undocumented#Size'>size</a> <a href='undocumented#Size'>in</a> <a href='undocumented#Size'>bytes</a> <a href='undocumented#Size'>of</a> <a href='SkImage_Reference#Image'>image</a> <a href='SkImage_Reference#Image'>buffer</a>
+<a href='undocumented#Size'>size</a> in bytes of <a href='SkImage_Reference#Image'>image</a> buffer
### Example
@@ -773,26 +773,26 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-bool <a href='#SkPixmap_computeIsOpaque'>computeIsOpaque</a>() <a href='#SkPixmap_computeIsOpaque'>const</a>
+bool <a href='#SkPixmap_computeIsOpaque'>computeIsOpaque</a>() const
</pre>
-Returns true if all pixels are opaque. <a href='SkImageInfo_Reference#SkColorType'>SkColorType</a> <a href='SkImageInfo_Reference#SkColorType'>determines</a> <a href='SkImageInfo_Reference#SkColorType'>how</a> <a href='SkImageInfo_Reference#SkColorType'>pixels</a>
-are encoded, and whether <a href='undocumented#Pixel'>pixel</a> <a href='undocumented#Pixel'>describes</a> <a href='SkColor_Reference#Alpha'>alpha</a>. <a href='SkColor_Reference#Alpha'>Returns</a> <a href='SkColor_Reference#Alpha'>true</a> <a href='SkColor_Reference#Alpha'>for</a> <a href='SkImageInfo_Reference#SkColorType'>SkColorType</a>
-without <a href='SkColor_Reference#Alpha'>alpha</a> <a href='SkColor_Reference#Alpha'>in</a> <a href='SkColor_Reference#Alpha'>each</a> <a href='undocumented#Pixel'>pixel</a>; <a href='undocumented#Pixel'>for</a> <a href='undocumented#Pixel'>other</a> <a href='SkImageInfo_Reference#SkColorType'>SkColorType</a>, <a href='SkImageInfo_Reference#SkColorType'>returns</a> <a href='SkImageInfo_Reference#SkColorType'>true</a> <a href='SkImageInfo_Reference#SkColorType'>if</a> <a href='SkImageInfo_Reference#SkColorType'>all</a>
-pixels have <a href='SkColor_Reference#Alpha'>alpha</a> <a href='SkColor_Reference#Alpha'>values</a> <a href='SkColor_Reference#Alpha'>equivalent</a> <a href='SkColor_Reference#Alpha'>to</a> 1.0 <a href='SkColor_Reference#Alpha'>or</a> <a href='SkColor_Reference#Alpha'>greater</a>.
+Returns true if all pixels are opaque. <a href='SkImageInfo_Reference#SkColorType'>SkColorType</a> determines how pixels
+are encoded, and whether <a href='undocumented#Pixel'>pixel</a> describes <a href='SkColor_Reference#Alpha'>alpha</a>. Returns true for <a href='SkImageInfo_Reference#SkColorType'>SkColorType</a>
+without <a href='SkColor_Reference#Alpha'>alpha</a> in each <a href='undocumented#Pixel'>pixel</a>; for other <a href='SkImageInfo_Reference#SkColorType'>SkColorType</a>, returns true if all
+pixels have <a href='SkColor_Reference#Alpha'>alpha</a> values equivalent to 1.0 or greater.
-For <a href='SkImageInfo_Reference#SkColorType'>SkColorType</a> <a href='SkImageInfo_Reference#kRGB_565_SkColorType'>kRGB_565_SkColorType</a> <a href='SkImageInfo_Reference#kRGB_565_SkColorType'>or</a> <a href='SkImageInfo_Reference#kGray_8_SkColorType'>kGray_8_SkColorType</a>: <a href='SkImageInfo_Reference#kGray_8_SkColorType'>always</a>
+For <a href='SkImageInfo_Reference#SkColorType'>SkColorType</a> <a href='SkImageInfo_Reference#kRGB_565_SkColorType'>kRGB_565_SkColorType</a> or <a href='SkImageInfo_Reference#kGray_8_SkColorType'>kGray_8_SkColorType</a>: always
returns true. For <a href='SkImageInfo_Reference#SkColorType'>SkColorType</a> <a href='SkImageInfo_Reference#kAlpha_8_SkColorType'>kAlpha_8_SkColorType</a>, <a href='SkImageInfo_Reference#kBGRA_8888_SkColorType'>kBGRA_8888_SkColorType</a>,
-<a href='SkImageInfo_Reference#kRGBA_8888_SkColorType'>kRGBA_8888_SkColorType</a>: <a href='SkImageInfo_Reference#kRGBA_8888_SkColorType'>returns</a> <a href='SkImageInfo_Reference#kRGBA_8888_SkColorType'>true</a> <a href='SkImageInfo_Reference#kRGBA_8888_SkColorType'>if</a> <a href='SkImageInfo_Reference#kRGBA_8888_SkColorType'>all</a> <a href='undocumented#Pixel'>pixel</a> <a href='SkColor_Reference#Alpha'>alpha</a> <a href='SkColor_Reference#Alpha'>values</a> <a href='SkColor_Reference#Alpha'>are</a> 255.
-For <a href='SkImageInfo_Reference#SkColorType'>SkColorType</a> <a href='SkImageInfo_Reference#kARGB_4444_SkColorType'>kARGB_4444_SkColorType</a>: <a href='SkImageInfo_Reference#kARGB_4444_SkColorType'>returns</a> <a href='SkImageInfo_Reference#kARGB_4444_SkColorType'>true</a> <a href='SkImageInfo_Reference#kARGB_4444_SkColorType'>if</a> <a href='SkImageInfo_Reference#kARGB_4444_SkColorType'>all</a> <a href='undocumented#Pixel'>pixel</a> <a href='SkColor_Reference#Alpha'>alpha</a> <a href='SkColor_Reference#Alpha'>values</a> <a href='SkColor_Reference#Alpha'>are</a> 15.
-For <a href='SkImageInfo_Reference#kRGBA_F16_SkColorType'>kRGBA_F16_SkColorType</a>: <a href='SkImageInfo_Reference#kRGBA_F16_SkColorType'>returns</a> <a href='SkImageInfo_Reference#kRGBA_F16_SkColorType'>true</a> <a href='SkImageInfo_Reference#kRGBA_F16_SkColorType'>if</a> <a href='SkImageInfo_Reference#kRGBA_F16_SkColorType'>all</a> <a href='undocumented#Pixel'>pixel</a> <a href='SkColor_Reference#Alpha'>alpha</a> <a href='SkColor_Reference#Alpha'>values</a> <a href='SkColor_Reference#Alpha'>are</a> 1.0 <a href='SkColor_Reference#Alpha'>or</a>
+<a href='SkImageInfo_Reference#kRGBA_8888_SkColorType'>kRGBA_8888_SkColorType</a>: returns true if all <a href='undocumented#Pixel'>pixel</a> <a href='SkColor_Reference#Alpha'>alpha</a> values are 255.
+For <a href='SkImageInfo_Reference#SkColorType'>SkColorType</a> <a href='SkImageInfo_Reference#kARGB_4444_SkColorType'>kARGB_4444_SkColorType</a>: returns true if all <a href='undocumented#Pixel'>pixel</a> <a href='SkColor_Reference#Alpha'>alpha</a> values are 15.
+For <a href='SkImageInfo_Reference#kRGBA_F16_SkColorType'>kRGBA_F16_SkColorType</a>: returns true if all <a href='undocumented#Pixel'>pixel</a> <a href='SkColor_Reference#Alpha'>alpha</a> values are 1.0 or
greater.
Returns false for <a href='SkImageInfo_Reference#kUnknown_SkColorType'>kUnknown_SkColorType</a>.
### Return Value
-true if all pixels have opaque values or <a href='SkImageInfo_Reference#SkColorType'>SkColorType</a> <a href='SkImageInfo_Reference#SkColorType'>is</a> <a href='SkImageInfo_Reference#SkColorType'>opaque</a>
+true if all pixels have opaque values or <a href='SkImageInfo_Reference#SkColorType'>SkColorType</a> is opaque
### Example
@@ -818,19 +818,19 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-<a href='SkColor_Reference#SkColor'>SkColor</a> <a href='#SkPixmap_getColor'>getColor</a>(<a href='#SkPixmap_getColor'>int</a> <a href='#SkPixmap_getColor'>x</a>, <a href='#SkPixmap_getColor'>int</a> <a href='#SkPixmap_getColor'>y</a>) <a href='#SkPixmap_getColor'>const</a>
+<a href='SkColor_Reference#SkColor'>SkColor</a> <a href='#SkPixmap_getColor'>getColor</a>(int x, int y) const
</pre>
-Returns <a href='undocumented#Pixel'>pixel</a> <a href='undocumented#Pixel'>at</a> (<a href='#SkPixmap_getColor_x'>x</a>, <a href='#SkPixmap_getColor_y'>y</a>) <a href='#SkPixmap_getColor_y'>as</a> <a href='undocumented#Unpremultiply'>unpremultiplied</a> <a href='SkColor_Reference#Color'>color</a>.
-Returns black with <a href='SkColor_Reference#Alpha'>alpha</a> <a href='SkColor_Reference#Alpha'>if</a> <a href='SkImageInfo_Reference#SkColorType'>SkColorType</a> <a href='SkImageInfo_Reference#SkColorType'>is</a> <a href='SkImageInfo_Reference#kAlpha_8_SkColorType'>kAlpha_8_SkColorType</a>.
+Returns <a href='undocumented#Pixel'>pixel</a> at (<a href='#SkPixmap_getColor_x'>x</a>, <a href='#SkPixmap_getColor_y'>y</a>) as <a href='undocumented#Unpremultiply'>unpremultiplied</a> <a href='SkColor_Reference#Color'>color</a>.
+Returns black with <a href='SkColor_Reference#Alpha'>alpha</a> if <a href='SkImageInfo_Reference#SkColorType'>SkColorType</a> is <a href='SkImageInfo_Reference#kAlpha_8_SkColorType'>kAlpha_8_SkColorType</a>.
-Input is not validated: out of bounds values of <a href='#SkPixmap_getColor_x'>x</a> <a href='#SkPixmap_getColor_x'>or</a> <a href='#SkPixmap_getColor_y'>y</a> <a href='#SkPixmap_getColor_y'>trigger</a> <a href='#SkPixmap_getColor_y'>an</a> <a href='#SkPixmap_getColor_y'>assert()</a> <a href='#SkPixmap_getColor_y'>if</a>
+Input is not validated: out of bounds values of <a href='#SkPixmap_getColor_x'>x</a> or <a href='#SkPixmap_getColor_y'>y</a> trigger an assert() if
built with SK_DEBUG defined; and returns undefined values or may crash if
-SK_RELEASE is defined. Fails if <a href='SkImageInfo_Reference#SkColorType'>SkColorType</a> <a href='SkImageInfo_Reference#SkColorType'>is</a> <a href='SkImageInfo_Reference#kUnknown_SkColorType'>kUnknown_SkColorType</a> <a href='SkImageInfo_Reference#kUnknown_SkColorType'>or</a>
-<a href='undocumented#Pixel'>pixel</a> <a href='undocumented#Pixel'>address</a> <a href='undocumented#Pixel'>is</a> <a href='undocumented#Pixel'>nullptr</a>.
+SK_RELEASE is defined. Fails if <a href='SkImageInfo_Reference#SkColorType'>SkColorType</a> is <a href='SkImageInfo_Reference#kUnknown_SkColorType'>kUnknown_SkColorType</a> or
+<a href='undocumented#Pixel'>pixel</a> address is nullptr.
-<a href='undocumented#SkColorSpace'>SkColorSpace</a> <a href='undocumented#SkColorSpace'>in</a> <a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a> <a href='SkImageInfo_Reference#SkImageInfo'>is</a> <a href='SkImageInfo_Reference#SkImageInfo'>ignored</a>. <a href='SkImageInfo_Reference#SkImageInfo'>Some</a> <a href='SkColor_Reference#Color'>color</a> <a href='SkColor_Reference#Color'>precision</a> <a href='SkColor_Reference#Color'>may</a> <a href='SkColor_Reference#Color'>be</a> <a href='SkColor_Reference#Color'>lost</a> <a href='SkColor_Reference#Color'>in</a> <a href='SkColor_Reference#Color'>the</a>
-conversion to <a href='undocumented#Unpremultiply'>unpremultiplied</a> <a href='SkColor_Reference#Color'>color</a>; <a href='SkColor_Reference#Color'>original</a> <a href='undocumented#Pixel'>pixel</a> <a href='undocumented#Data'>data</a> <a href='undocumented#Data'>may</a> <a href='undocumented#Data'>have</a> <a href='undocumented#Data'>additional</a>
+<a href='undocumented#SkColorSpace'>SkColorSpace</a> in <a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a> is ignored. Some <a href='SkColor_Reference#Color'>color</a> precision may be lost in the
+conversion to <a href='undocumented#Unpremultiply'>unpremultiplied</a> <a href='SkColor_Reference#Color'>color</a>; original <a href='undocumented#Pixel'>pixel</a> <a href='undocumented#Data'>data</a> may have additional
precision.
### Parameters
@@ -845,7 +845,7 @@
### Return Value
-<a href='undocumented#Pixel'>pixel</a> <a href='undocumented#Pixel'>converted</a> <a href='undocumented#Pixel'>to</a> <a href='undocumented#Unpremultiply'>unpremultiplied</a> <a href='SkColor_Reference#Color'>color</a>
+<a href='undocumented#Pixel'>pixel</a> converted to <a href='undocumented#Unpremultiply'>unpremultiplied</a> <a href='SkColor_Reference#Color'>color</a>
### Example
@@ -877,11 +877,11 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-float <a href='#SkPixmap_getAlphaf'>getAlphaf</a>(<a href='#SkPixmap_getAlphaf'>int</a> <a href='#SkPixmap_getAlphaf'>x</a>, <a href='#SkPixmap_getAlphaf'>int</a> <a href='#SkPixmap_getAlphaf'>y</a>) <a href='#SkPixmap_getAlphaf'>const</a>
+float <a href='#SkPixmap_getAlphaf'>getAlphaf</a>(int x, int y) const
</pre>
-Looks up the <a href='undocumented#Pixel'>pixel</a> <a href='undocumented#Pixel'>at</a> (<a href='#SkPixmap_getAlphaf_x'>x</a>,<a href='#SkPixmap_getAlphaf_y'>y</a>) <a href='#SkPixmap_getAlphaf_y'>and</a> <a href='#SkPixmap_getAlphaf_y'>return</a> <a href='#SkPixmap_getAlphaf_y'>its</a> <a href='SkColor_Reference#Alpha'>alpha</a> <a href='SkColor_Reference#Alpha'>component</a>, <a href='SkColor_Reference#Alpha'>normalized</a> <a href='SkColor_Reference#Alpha'>to</a> [0..1].
-<a href='SkColor_Reference#Alpha'>This</a> <a href='SkColor_Reference#Alpha'>is</a> <a href='SkColor_Reference#Alpha'>roughly</a> <a href='SkColor_Reference#Alpha'>equivalent</a> <a href='SkColor_Reference#Alpha'>to</a> <code>SkGetColorA(<a href='#SkPixmap_getColor'>getColor</a>())</code>, but can be more efficient
+Looks up the <a href='undocumented#Pixel'>pixel</a> at (<a href='#SkPixmap_getAlphaf_x'>x</a>,<a href='#SkPixmap_getAlphaf_y'>y</a>) and return its <a href='SkColor_Reference#Alpha'>alpha</a> component, normalized to [0..1].
+This is roughly equivalent to <code>SkGetColorA(<a href='#SkPixmap_getColor'>getColor</a>())</code>, but can be more efficient
(and more precise if the pixels store more than 8 bits per component).
### Parameters
@@ -896,7 +896,7 @@
### Return Value
-<a href='SkColor_Reference#Alpha'>alpha</a> <a href='SkColor_Reference#Alpha'>converted</a> <a href='SkColor_Reference#Alpha'>to</a> <a href='SkColor_Reference#Alpha'>normalized</a> <a href='SkColor_Reference#Alpha'>float</a>
+<a href='SkColor_Reference#Alpha'>alpha</a> converted to normalized float
### See Also
@@ -909,16 +909,16 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-const void* <a href='#SkPixmap_addr'>addr</a>(<a href='#SkPixmap_addr'>int</a> <a href='#SkPixmap_addr'>x</a>, <a href='#SkPixmap_addr'>int</a> <a href='#SkPixmap_addr'>y</a>) <a href='#SkPixmap_addr'>const</a>
+const void* <a href='#SkPixmap_addr'>addr</a>(int x, int y) const
</pre>
-Returns readable <a href='undocumented#Pixel'>pixel</a> <a href='undocumented#Pixel'>address</a> <a href='undocumented#Pixel'>at</a> (<a href='#SkPixmap_addr_2_x'>x</a>, <a href='#SkPixmap_addr_2_y'>y</a>). <a href='#SkPixmap_addr_2_y'>Returns</a> <a href='#SkPixmap_addr_2_y'>nullptr</a> <a href='#SkPixmap_addr_2_y'>if</a> <a href='undocumented#SkPixelRef'>SkPixelRef</a> <a href='undocumented#SkPixelRef'>is</a> <a href='undocumented#SkPixelRef'>nullptr</a>.
+Returns readable <a href='undocumented#Pixel'>pixel</a> address at (<a href='#SkPixmap_addr_2_x'>x</a>, <a href='#SkPixmap_addr_2_y'>y</a>). Returns nullptr if <a href='undocumented#SkPixelRef'>SkPixelRef</a> is nullptr.
-Input is not validated: out of bounds values of <a href='#SkPixmap_addr_2_x'>x</a> <a href='#SkPixmap_addr_2_x'>or</a> <a href='#SkPixmap_addr_2_y'>y</a> <a href='#SkPixmap_addr_2_y'>trigger</a> <a href='#SkPixmap_addr_2_y'>an</a> <a href='#SkPixmap_addr_2_y'>assert()</a> <a href='#SkPixmap_addr_2_y'>if</a>
-built with SK_DEBUG defined. Returns nullptr if <a href='SkImageInfo_Reference#SkColorType'>SkColorType</a> <a href='SkImageInfo_Reference#SkColorType'>is</a> <a href='SkImageInfo_Reference#kUnknown_SkColorType'>kUnknown_SkColorType</a>.
+Input is not validated: out of bounds values of <a href='#SkPixmap_addr_2_x'>x</a> or <a href='#SkPixmap_addr_2_y'>y</a> trigger an assert() if
+built with SK_DEBUG defined. Returns nullptr if <a href='SkImageInfo_Reference#SkColorType'>SkColorType</a> is <a href='SkImageInfo_Reference#kUnknown_SkColorType'>kUnknown_SkColorType</a>.
-Performs a lookup of <a href='undocumented#Pixel'>pixel</a> <a href='undocumented#Size'>size</a>; <a href='undocumented#Size'>for</a> <a href='undocumented#Size'>better</a> <a href='undocumented#Size'>performance</a>, <a href='undocumented#Size'>call</a>
-one of: <a href='#SkPixmap_addr8'>addr8</a>, <a href='#SkPixmap_addr16'>addr16</a>, <a href='#SkPixmap_addr32'>addr32</a>, <a href='#SkPixmap_addr64'>addr64</a>, <a href='#SkPixmap_addr64'>or</a> <a href='#SkPixmap_addrF16'>addrF16</a>().
+Performs a lookup of <a href='undocumented#Pixel'>pixel</a> <a href='undocumented#Size'>size</a>; for better performance, call
+one of: <a href='#SkPixmap_addr8'>addr8</a>, <a href='#SkPixmap_addr16'>addr16</a>, <a href='#SkPixmap_addr32'>addr32</a>, <a href='#SkPixmap_addr64'>addr64</a>, or <a href='#SkPixmap_addrF16'>addrF16</a>().
### Parameters
@@ -955,12 +955,12 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-const uint8_t* <a href='#SkPixmap_addr8'>addr8</a>() <a href='#SkPixmap_addr8'>const</a>
+const uint8_t* <a href='#SkPixmap_addr8'>addr8</a>() const
</pre>
-Returns readable base <a href='undocumented#Pixel'>pixel</a> <a href='undocumented#Pixel'>address</a>. <a href='undocumented#Pixel'>Result</a> <a href='undocumented#Pixel'>is</a> <a href='undocumented#Pixel'>addressable</a> <a href='undocumented#Pixel'>as</a> <a href='undocumented#Pixel'>unsigned</a> 8-<a href='undocumented#Pixel'>bit</a> <a href='undocumented#Pixel'>bytes</a>.
-Will trigger an assert() if <a href='SkImageInfo_Reference#SkColorType'>SkColorType</a> <a href='SkImageInfo_Reference#SkColorType'>is</a> <a href='SkImageInfo_Reference#SkColorType'>not</a> <a href='SkImageInfo_Reference#kAlpha_8_SkColorType'>kAlpha_8_SkColorType</a> <a href='SkImageInfo_Reference#kAlpha_8_SkColorType'>or</a>
-<a href='SkImageInfo_Reference#kGray_8_SkColorType'>kGray_8_SkColorType</a>, <a href='SkImageInfo_Reference#kGray_8_SkColorType'>and</a> <a href='SkImageInfo_Reference#kGray_8_SkColorType'>is</a> <a href='SkImageInfo_Reference#kGray_8_SkColorType'>built</a> <a href='SkImageInfo_Reference#kGray_8_SkColorType'>with</a> <a href='SkImageInfo_Reference#kGray_8_SkColorType'>SK_DEBUG</a> <a href='SkImageInfo_Reference#kGray_8_SkColorType'>defined</a>.
+Returns readable base <a href='undocumented#Pixel'>pixel</a> address. Result is addressable as unsigned 8-bit bytes.
+Will trigger an assert() if <a href='SkImageInfo_Reference#SkColorType'>SkColorType</a> is not <a href='SkImageInfo_Reference#kAlpha_8_SkColorType'>kAlpha_8_SkColorType</a> or
+<a href='SkImageInfo_Reference#kGray_8_SkColorType'>kGray_8_SkColorType</a>, and is built with SK_DEBUG defined.
One byte corresponds to one <a href='undocumented#Pixel'>pixel</a>.
@@ -989,12 +989,12 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-const uint16_t* <a href='#SkPixmap_addr16'>addr16</a>() <a href='#SkPixmap_addr16'>const</a>
+const uint16_t* <a href='#SkPixmap_addr16'>addr16</a>() const
</pre>
-Returns readable base <a href='undocumented#Pixel'>pixel</a> <a href='undocumented#Pixel'>address</a>. <a href='undocumented#Pixel'>Result</a> <a href='undocumented#Pixel'>is</a> <a href='undocumented#Pixel'>addressable</a> <a href='undocumented#Pixel'>as</a> <a href='undocumented#Pixel'>unsigned</a> 16-<a href='undocumented#Pixel'>bit</a> <a href='undocumented#Pixel'>words</a>.
-Will trigger an assert() if <a href='SkImageInfo_Reference#SkColorType'>SkColorType</a> <a href='SkImageInfo_Reference#SkColorType'>is</a> <a href='SkImageInfo_Reference#SkColorType'>not</a> <a href='SkImageInfo_Reference#kRGB_565_SkColorType'>kRGB_565_SkColorType</a> <a href='SkImageInfo_Reference#kRGB_565_SkColorType'>or</a>
-<a href='SkImageInfo_Reference#kARGB_4444_SkColorType'>kARGB_4444_SkColorType</a>, <a href='SkImageInfo_Reference#kARGB_4444_SkColorType'>and</a> <a href='SkImageInfo_Reference#kARGB_4444_SkColorType'>is</a> <a href='SkImageInfo_Reference#kARGB_4444_SkColorType'>built</a> <a href='SkImageInfo_Reference#kARGB_4444_SkColorType'>with</a> <a href='SkImageInfo_Reference#kARGB_4444_SkColorType'>SK_DEBUG</a> <a href='SkImageInfo_Reference#kARGB_4444_SkColorType'>defined</a>.
+Returns readable base <a href='undocumented#Pixel'>pixel</a> address. Result is addressable as unsigned 16-bit words.
+Will trigger an assert() if <a href='SkImageInfo_Reference#SkColorType'>SkColorType</a> is not <a href='SkImageInfo_Reference#kRGB_565_SkColorType'>kRGB_565_SkColorType</a> or
+<a href='SkImageInfo_Reference#kARGB_4444_SkColorType'>kARGB_4444_SkColorType</a>, and is built with SK_DEBUG defined.
One word corresponds to one <a href='undocumented#Pixel'>pixel</a>.
@@ -1023,12 +1023,12 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-const uint32_t* <a href='#SkPixmap_addr32'>addr32</a>() <a href='#SkPixmap_addr32'>const</a>
+const uint32_t* <a href='#SkPixmap_addr32'>addr32</a>() const
</pre>
-Returns readable base <a href='undocumented#Pixel'>pixel</a> <a href='undocumented#Pixel'>address</a>. <a href='undocumented#Pixel'>Result</a> <a href='undocumented#Pixel'>is</a> <a href='undocumented#Pixel'>addressable</a> <a href='undocumented#Pixel'>as</a> <a href='undocumented#Pixel'>unsigned</a> 32-<a href='undocumented#Pixel'>bit</a> <a href='undocumented#Pixel'>words</a>.
-Will trigger an assert() if <a href='SkImageInfo_Reference#SkColorType'>SkColorType</a> <a href='SkImageInfo_Reference#SkColorType'>is</a> <a href='SkImageInfo_Reference#SkColorType'>not</a> <a href='SkImageInfo_Reference#kRGBA_8888_SkColorType'>kRGBA_8888_SkColorType</a> <a href='SkImageInfo_Reference#kRGBA_8888_SkColorType'>or</a>
-<a href='SkImageInfo_Reference#kBGRA_8888_SkColorType'>kBGRA_8888_SkColorType</a>, <a href='SkImageInfo_Reference#kBGRA_8888_SkColorType'>and</a> <a href='SkImageInfo_Reference#kBGRA_8888_SkColorType'>is</a> <a href='SkImageInfo_Reference#kBGRA_8888_SkColorType'>built</a> <a href='SkImageInfo_Reference#kBGRA_8888_SkColorType'>with</a> <a href='SkImageInfo_Reference#kBGRA_8888_SkColorType'>SK_DEBUG</a> <a href='SkImageInfo_Reference#kBGRA_8888_SkColorType'>defined</a>.
+Returns readable base <a href='undocumented#Pixel'>pixel</a> address. Result is addressable as unsigned 32-bit words.
+Will trigger an assert() if <a href='SkImageInfo_Reference#SkColorType'>SkColorType</a> is not <a href='SkImageInfo_Reference#kRGBA_8888_SkColorType'>kRGBA_8888_SkColorType</a> or
+<a href='SkImageInfo_Reference#kBGRA_8888_SkColorType'>kBGRA_8888_SkColorType</a>, and is built with SK_DEBUG defined.
One word corresponds to one <a href='undocumented#Pixel'>pixel</a>.
@@ -1057,11 +1057,11 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-const uint64_t* <a href='#SkPixmap_addr64'>addr64</a>() <a href='#SkPixmap_addr64'>const</a>
+const uint64_t* <a href='#SkPixmap_addr64'>addr64</a>() const
</pre>
-Returns readable base <a href='undocumented#Pixel'>pixel</a> <a href='undocumented#Pixel'>address</a>. <a href='undocumented#Pixel'>Result</a> <a href='undocumented#Pixel'>is</a> <a href='undocumented#Pixel'>addressable</a> <a href='undocumented#Pixel'>as</a> <a href='undocumented#Pixel'>unsigned</a> 64-<a href='undocumented#Pixel'>bit</a> <a href='undocumented#Pixel'>words</a>.
-Will trigger an assert() if <a href='SkImageInfo_Reference#SkColorType'>SkColorType</a> <a href='SkImageInfo_Reference#SkColorType'>is</a> <a href='SkImageInfo_Reference#SkColorType'>not</a> <a href='SkImageInfo_Reference#kRGBA_F16_SkColorType'>kRGBA_F16_SkColorType</a> <a href='SkImageInfo_Reference#kRGBA_F16_SkColorType'>and</a> <a href='SkImageInfo_Reference#kRGBA_F16_SkColorType'>is</a> <a href='SkImageInfo_Reference#kRGBA_F16_SkColorType'>built</a>
+Returns readable base <a href='undocumented#Pixel'>pixel</a> address. Result is addressable as unsigned 64-bit words.
+Will trigger an assert() if <a href='SkImageInfo_Reference#SkColorType'>SkColorType</a> is not <a href='SkImageInfo_Reference#kRGBA_F16_SkColorType'>kRGBA_F16_SkColorType</a> and is built
with SK_DEBUG defined.
One word corresponds to one <a href='undocumented#Pixel'>pixel</a>.
@@ -1091,14 +1091,14 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-const uint16_t* <a href='#SkPixmap_addrF16'>addrF16</a>() <a href='#SkPixmap_addrF16'>const</a>
+const uint16_t* <a href='#SkPixmap_addrF16'>addrF16</a>() const
</pre>
-Returns readable base <a href='undocumented#Pixel'>pixel</a> <a href='undocumented#Pixel'>address</a>. <a href='undocumented#Pixel'>Result</a> <a href='undocumented#Pixel'>is</a> <a href='undocumented#Pixel'>addressable</a> <a href='undocumented#Pixel'>as</a> <a href='undocumented#Pixel'>unsigned</a> 16-<a href='undocumented#Pixel'>bit</a> <a href='undocumented#Pixel'>words</a>.
-Will trigger an assert() if <a href='SkImageInfo_Reference#SkColorType'>SkColorType</a> <a href='SkImageInfo_Reference#SkColorType'>is</a> <a href='SkImageInfo_Reference#SkColorType'>not</a> <a href='SkImageInfo_Reference#kRGBA_F16_SkColorType'>kRGBA_F16_SkColorType</a> <a href='SkImageInfo_Reference#kRGBA_F16_SkColorType'>and</a> <a href='SkImageInfo_Reference#kRGBA_F16_SkColorType'>is</a> <a href='SkImageInfo_Reference#kRGBA_F16_SkColorType'>built</a>
+Returns readable base <a href='undocumented#Pixel'>pixel</a> address. Result is addressable as unsigned 16-bit words.
+Will trigger an assert() if <a href='SkImageInfo_Reference#SkColorType'>SkColorType</a> is not <a href='SkImageInfo_Reference#kRGBA_F16_SkColorType'>kRGBA_F16_SkColorType</a> and is built
with SK_DEBUG defined.
-Each word represents one <a href='SkColor_Reference#Color'>color</a> <a href='SkColor_Reference#Color'>component</a> <a href='SkColor_Reference#Color'>encoded</a> <a href='SkColor_Reference#Color'>as</a> <a href='SkColor_Reference#Color'>a</a> <a href='SkColor_Reference#Color'>half</a> <a href='SkColor_Reference#Color'>float</a>.
+Each word represents one <a href='SkColor_Reference#Color'>color</a> component encoded as a half float.
Four words correspond to one <a href='undocumented#Pixel'>pixel</a>.
### Return Value
@@ -1126,16 +1126,16 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-const uint8_t* <a href='#SkPixmap_addr8'>addr8</a>(<a href='#SkPixmap_addr8'>int</a> <a href='#SkPixmap_addr8'>x</a>, <a href='#SkPixmap_addr8'>int</a> <a href='#SkPixmap_addr8'>y</a>) <a href='#SkPixmap_addr8'>const</a>
+const uint8_t* <a href='#SkPixmap_addr8'>addr8</a>(int x, int y) const
</pre>
-Returns readable <a href='undocumented#Pixel'>pixel</a> <a href='undocumented#Pixel'>address</a> <a href='undocumented#Pixel'>at</a> (<a href='#SkPixmap_addr8_2_x'>x</a>, <a href='#SkPixmap_addr8_2_y'>y</a>).
+Returns readable <a href='undocumented#Pixel'>pixel</a> address at (<a href='#SkPixmap_addr8_2_x'>x</a>, <a href='#SkPixmap_addr8_2_y'>y</a>).
-Input is not validated: out of bounds values of <a href='#SkPixmap_addr8_2_x'>x</a> <a href='#SkPixmap_addr8_2_x'>or</a> <a href='#SkPixmap_addr8_2_y'>y</a> <a href='#SkPixmap_addr8_2_y'>trigger</a> <a href='#SkPixmap_addr8_2_y'>an</a> <a href='#SkPixmap_addr8_2_y'>assert()</a> <a href='#SkPixmap_addr8_2_y'>if</a>
+Input is not validated: out of bounds values of <a href='#SkPixmap_addr8_2_x'>x</a> or <a href='#SkPixmap_addr8_2_y'>y</a> trigger an assert() if
built with SK_DEBUG defined.
-Will trigger an assert() if <a href='SkImageInfo_Reference#SkColorType'>SkColorType</a> <a href='SkImageInfo_Reference#SkColorType'>is</a> <a href='SkImageInfo_Reference#SkColorType'>not</a> <a href='SkImageInfo_Reference#kAlpha_8_SkColorType'>kAlpha_8_SkColorType</a> <a href='SkImageInfo_Reference#kAlpha_8_SkColorType'>or</a>
-<a href='SkImageInfo_Reference#kGray_8_SkColorType'>kGray_8_SkColorType</a>, <a href='SkImageInfo_Reference#kGray_8_SkColorType'>and</a> <a href='SkImageInfo_Reference#kGray_8_SkColorType'>is</a> <a href='SkImageInfo_Reference#kGray_8_SkColorType'>built</a> <a href='SkImageInfo_Reference#kGray_8_SkColorType'>with</a> <a href='SkImageInfo_Reference#kGray_8_SkColorType'>SK_DEBUG</a> <a href='SkImageInfo_Reference#kGray_8_SkColorType'>defined</a>.
+Will trigger an assert() if <a href='SkImageInfo_Reference#SkColorType'>SkColorType</a> is not <a href='SkImageInfo_Reference#kAlpha_8_SkColorType'>kAlpha_8_SkColorType</a> or
+<a href='SkImageInfo_Reference#kGray_8_SkColorType'>kGray_8_SkColorType</a>, and is built with SK_DEBUG defined.
### Parameters
@@ -1149,7 +1149,7 @@
### Return Value
-readable unsigned 8-bit pointer to <a href='undocumented#Pixel'>pixel</a> <a href='undocumented#Pixel'>at</a> (<a href='#SkPixmap_addr8_2_x'>x</a>, <a href='#SkPixmap_addr8_2_y'>y</a>)
+readable unsigned 8-bit pointer to <a href='undocumented#Pixel'>pixel</a> at (<a href='#SkPixmap_addr8_2_x'>x</a>, <a href='#SkPixmap_addr8_2_y'>y</a>)
### Example
@@ -1172,16 +1172,16 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-const uint16_t* <a href='#SkPixmap_addr16'>addr16</a>(<a href='#SkPixmap_addr16'>int</a> <a href='#SkPixmap_addr16'>x</a>, <a href='#SkPixmap_addr16'>int</a> <a href='#SkPixmap_addr16'>y</a>) <a href='#SkPixmap_addr16'>const</a>
+const uint16_t* <a href='#SkPixmap_addr16'>addr16</a>(int x, int y) const
</pre>
-Returns readable <a href='undocumented#Pixel'>pixel</a> <a href='undocumented#Pixel'>address</a> <a href='undocumented#Pixel'>at</a> (<a href='#SkPixmap_addr16_2_x'>x</a>, <a href='#SkPixmap_addr16_2_y'>y</a>).
+Returns readable <a href='undocumented#Pixel'>pixel</a> address at (<a href='#SkPixmap_addr16_2_x'>x</a>, <a href='#SkPixmap_addr16_2_y'>y</a>).
-Input is not validated: out of bounds values of <a href='#SkPixmap_addr16_2_x'>x</a> <a href='#SkPixmap_addr16_2_x'>or</a> <a href='#SkPixmap_addr16_2_y'>y</a> <a href='#SkPixmap_addr16_2_y'>trigger</a> <a href='#SkPixmap_addr16_2_y'>an</a> <a href='#SkPixmap_addr16_2_y'>assert()</a> <a href='#SkPixmap_addr16_2_y'>if</a>
+Input is not validated: out of bounds values of <a href='#SkPixmap_addr16_2_x'>x</a> or <a href='#SkPixmap_addr16_2_y'>y</a> trigger an assert() if
built with SK_DEBUG defined.
-Will trigger an assert() if <a href='SkImageInfo_Reference#SkColorType'>SkColorType</a> <a href='SkImageInfo_Reference#SkColorType'>is</a> <a href='SkImageInfo_Reference#SkColorType'>not</a> <a href='SkImageInfo_Reference#kRGB_565_SkColorType'>kRGB_565_SkColorType</a> <a href='SkImageInfo_Reference#kRGB_565_SkColorType'>or</a>
-<a href='SkImageInfo_Reference#kARGB_4444_SkColorType'>kARGB_4444_SkColorType</a>, <a href='SkImageInfo_Reference#kARGB_4444_SkColorType'>and</a> <a href='SkImageInfo_Reference#kARGB_4444_SkColorType'>is</a> <a href='SkImageInfo_Reference#kARGB_4444_SkColorType'>built</a> <a href='SkImageInfo_Reference#kARGB_4444_SkColorType'>with</a> <a href='SkImageInfo_Reference#kARGB_4444_SkColorType'>SK_DEBUG</a> <a href='SkImageInfo_Reference#kARGB_4444_SkColorType'>defined</a>.
+Will trigger an assert() if <a href='SkImageInfo_Reference#SkColorType'>SkColorType</a> is not <a href='SkImageInfo_Reference#kRGB_565_SkColorType'>kRGB_565_SkColorType</a> or
+<a href='SkImageInfo_Reference#kARGB_4444_SkColorType'>kARGB_4444_SkColorType</a>, and is built with SK_DEBUG defined.
### Parameters
@@ -1195,7 +1195,7 @@
### Return Value
-readable unsigned 16-bit pointer to <a href='undocumented#Pixel'>pixel</a> <a href='undocumented#Pixel'>at</a> (<a href='#SkPixmap_addr16_2_x'>x</a>, <a href='#SkPixmap_addr16_2_y'>y</a>)
+readable unsigned 16-bit pointer to <a href='undocumented#Pixel'>pixel</a> at (<a href='#SkPixmap_addr16_2_x'>x</a>, <a href='#SkPixmap_addr16_2_y'>y</a>)
### Example
@@ -1218,16 +1218,16 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-const uint32_t* <a href='#SkPixmap_addr32'>addr32</a>(<a href='#SkPixmap_addr32'>int</a> <a href='#SkPixmap_addr32'>x</a>, <a href='#SkPixmap_addr32'>int</a> <a href='#SkPixmap_addr32'>y</a>) <a href='#SkPixmap_addr32'>const</a>
+const uint32_t* <a href='#SkPixmap_addr32'>addr32</a>(int x, int y) const
</pre>
-Returns readable <a href='undocumented#Pixel'>pixel</a> <a href='undocumented#Pixel'>address</a> <a href='undocumented#Pixel'>at</a> (<a href='#SkPixmap_addr32_2_x'>x</a>, <a href='#SkPixmap_addr32_2_y'>y</a>).
+Returns readable <a href='undocumented#Pixel'>pixel</a> address at (<a href='#SkPixmap_addr32_2_x'>x</a>, <a href='#SkPixmap_addr32_2_y'>y</a>).
-Input is not validated: out of bounds values of <a href='#SkPixmap_addr32_2_x'>x</a> <a href='#SkPixmap_addr32_2_x'>or</a> <a href='#SkPixmap_addr32_2_y'>y</a> <a href='#SkPixmap_addr32_2_y'>trigger</a> <a href='#SkPixmap_addr32_2_y'>an</a> <a href='#SkPixmap_addr32_2_y'>assert()</a> <a href='#SkPixmap_addr32_2_y'>if</a>
+Input is not validated: out of bounds values of <a href='#SkPixmap_addr32_2_x'>x</a> or <a href='#SkPixmap_addr32_2_y'>y</a> trigger an assert() if
built with SK_DEBUG defined.
-Will trigger an assert() if <a href='SkImageInfo_Reference#SkColorType'>SkColorType</a> <a href='SkImageInfo_Reference#SkColorType'>is</a> <a href='SkImageInfo_Reference#SkColorType'>not</a> <a href='SkImageInfo_Reference#kRGBA_8888_SkColorType'>kRGBA_8888_SkColorType</a> <a href='SkImageInfo_Reference#kRGBA_8888_SkColorType'>or</a>
-<a href='SkImageInfo_Reference#kBGRA_8888_SkColorType'>kBGRA_8888_SkColorType</a>, <a href='SkImageInfo_Reference#kBGRA_8888_SkColorType'>and</a> <a href='SkImageInfo_Reference#kBGRA_8888_SkColorType'>is</a> <a href='SkImageInfo_Reference#kBGRA_8888_SkColorType'>built</a> <a href='SkImageInfo_Reference#kBGRA_8888_SkColorType'>with</a> <a href='SkImageInfo_Reference#kBGRA_8888_SkColorType'>SK_DEBUG</a> <a href='SkImageInfo_Reference#kBGRA_8888_SkColorType'>defined</a>.
+Will trigger an assert() if <a href='SkImageInfo_Reference#SkColorType'>SkColorType</a> is not <a href='SkImageInfo_Reference#kRGBA_8888_SkColorType'>kRGBA_8888_SkColorType</a> or
+<a href='SkImageInfo_Reference#kBGRA_8888_SkColorType'>kBGRA_8888_SkColorType</a>, and is built with SK_DEBUG defined.
### Parameters
@@ -1241,7 +1241,7 @@
### Return Value
-readable unsigned 32-bit pointer to <a href='undocumented#Pixel'>pixel</a> <a href='undocumented#Pixel'>at</a> (<a href='#SkPixmap_addr32_2_x'>x</a>, <a href='#SkPixmap_addr32_2_y'>y</a>)
+readable unsigned 32-bit pointer to <a href='undocumented#Pixel'>pixel</a> at (<a href='#SkPixmap_addr32_2_x'>x</a>, <a href='#SkPixmap_addr32_2_y'>y</a>)
### Example
@@ -1264,15 +1264,15 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-const uint64_t* <a href='#SkPixmap_addr64'>addr64</a>(<a href='#SkPixmap_addr64'>int</a> <a href='#SkPixmap_addr64'>x</a>, <a href='#SkPixmap_addr64'>int</a> <a href='#SkPixmap_addr64'>y</a>) <a href='#SkPixmap_addr64'>const</a>
+const uint64_t* <a href='#SkPixmap_addr64'>addr64</a>(int x, int y) const
</pre>
-Returns readable <a href='undocumented#Pixel'>pixel</a> <a href='undocumented#Pixel'>address</a> <a href='undocumented#Pixel'>at</a> (<a href='#SkPixmap_addr64_2_x'>x</a>, <a href='#SkPixmap_addr64_2_y'>y</a>).
+Returns readable <a href='undocumented#Pixel'>pixel</a> address at (<a href='#SkPixmap_addr64_2_x'>x</a>, <a href='#SkPixmap_addr64_2_y'>y</a>).
-Input is not validated: out of bounds values of <a href='#SkPixmap_addr64_2_x'>x</a> <a href='#SkPixmap_addr64_2_x'>or</a> <a href='#SkPixmap_addr64_2_y'>y</a> <a href='#SkPixmap_addr64_2_y'>trigger</a> <a href='#SkPixmap_addr64_2_y'>an</a> <a href='#SkPixmap_addr64_2_y'>assert()</a> <a href='#SkPixmap_addr64_2_y'>if</a>
+Input is not validated: out of bounds values of <a href='#SkPixmap_addr64_2_x'>x</a> or <a href='#SkPixmap_addr64_2_y'>y</a> trigger an assert() if
built with SK_DEBUG defined.
-Will trigger an assert() if <a href='SkImageInfo_Reference#SkColorType'>SkColorType</a> <a href='SkImageInfo_Reference#SkColorType'>is</a> <a href='SkImageInfo_Reference#SkColorType'>not</a> <a href='SkImageInfo_Reference#kRGBA_F16_SkColorType'>kRGBA_F16_SkColorType</a> <a href='SkImageInfo_Reference#kRGBA_F16_SkColorType'>and</a> <a href='SkImageInfo_Reference#kRGBA_F16_SkColorType'>is</a> <a href='SkImageInfo_Reference#kRGBA_F16_SkColorType'>built</a>
+Will trigger an assert() if <a href='SkImageInfo_Reference#SkColorType'>SkColorType</a> is not <a href='SkImageInfo_Reference#kRGBA_F16_SkColorType'>kRGBA_F16_SkColorType</a> and is built
with SK_DEBUG defined.
### Parameters
@@ -1287,7 +1287,7 @@
### Return Value
-readable unsigned 64-bit pointer to <a href='undocumented#Pixel'>pixel</a> <a href='undocumented#Pixel'>at</a> (<a href='#SkPixmap_addr64_2_x'>x</a>, <a href='#SkPixmap_addr64_2_y'>y</a>)
+readable unsigned 64-bit pointer to <a href='undocumented#Pixel'>pixel</a> at (<a href='#SkPixmap_addr64_2_x'>x</a>, <a href='#SkPixmap_addr64_2_y'>y</a>)
### Example
@@ -1310,18 +1310,18 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-const uint16_t* <a href='#SkPixmap_addrF16'>addrF16</a>(<a href='#SkPixmap_addrF16'>int</a> <a href='#SkPixmap_addrF16'>x</a>, <a href='#SkPixmap_addrF16'>int</a> <a href='#SkPixmap_addrF16'>y</a>) <a href='#SkPixmap_addrF16'>const</a>
+const uint16_t* <a href='#SkPixmap_addrF16'>addrF16</a>(int x, int y) const
</pre>
-Returns readable <a href='undocumented#Pixel'>pixel</a> <a href='undocumented#Pixel'>address</a> <a href='undocumented#Pixel'>at</a> (<a href='#SkPixmap_addrF16_2_x'>x</a>, <a href='#SkPixmap_addrF16_2_y'>y</a>).
+Returns readable <a href='undocumented#Pixel'>pixel</a> address at (<a href='#SkPixmap_addrF16_2_x'>x</a>, <a href='#SkPixmap_addrF16_2_y'>y</a>).
-Input is not validated: out of bounds values of <a href='#SkPixmap_addrF16_2_x'>x</a> <a href='#SkPixmap_addrF16_2_x'>or</a> <a href='#SkPixmap_addrF16_2_y'>y</a> <a href='#SkPixmap_addrF16_2_y'>trigger</a> <a href='#SkPixmap_addrF16_2_y'>an</a> <a href='#SkPixmap_addrF16_2_y'>assert()</a> <a href='#SkPixmap_addrF16_2_y'>if</a>
+Input is not validated: out of bounds values of <a href='#SkPixmap_addrF16_2_x'>x</a> or <a href='#SkPixmap_addrF16_2_y'>y</a> trigger an assert() if
built with SK_DEBUG defined.
-Will trigger an assert() if <a href='SkImageInfo_Reference#SkColorType'>SkColorType</a> <a href='SkImageInfo_Reference#SkColorType'>is</a> <a href='SkImageInfo_Reference#SkColorType'>not</a> <a href='SkImageInfo_Reference#kRGBA_F16_SkColorType'>kRGBA_F16_SkColorType</a> <a href='SkImageInfo_Reference#kRGBA_F16_SkColorType'>and</a> <a href='SkImageInfo_Reference#kRGBA_F16_SkColorType'>is</a> <a href='SkImageInfo_Reference#kRGBA_F16_SkColorType'>built</a>
+Will trigger an assert() if <a href='SkImageInfo_Reference#SkColorType'>SkColorType</a> is not <a href='SkImageInfo_Reference#kRGBA_F16_SkColorType'>kRGBA_F16_SkColorType</a> and is built
with SK_DEBUG defined.
-Each unsigned 16-bit word represents one <a href='SkColor_Reference#Color'>color</a> <a href='SkColor_Reference#Color'>component</a> <a href='SkColor_Reference#Color'>encoded</a> <a href='SkColor_Reference#Color'>as</a> <a href='SkColor_Reference#Color'>a</a> <a href='SkColor_Reference#Color'>half</a> <a href='SkColor_Reference#Color'>float</a>.
+Each unsigned 16-bit word represents one <a href='SkColor_Reference#Color'>color</a> component encoded as a half float.
Four words correspond to one <a href='undocumented#Pixel'>pixel</a>.
### Parameters
@@ -1336,7 +1336,7 @@
### Return Value
-readable unsigned 16-bit pointer to <a href='undocumented#Pixel'>pixel</a> <a href='undocumented#Pixel'>component</a> <a href='undocumented#Pixel'>at</a> (<a href='#SkPixmap_addrF16_2_x'>x</a>, <a href='#SkPixmap_addrF16_2_y'>y</a>)
+readable unsigned 16-bit pointer to <a href='undocumented#Pixel'>pixel</a> component at (<a href='#SkPixmap_addrF16_2_x'>x</a>, <a href='#SkPixmap_addrF16_2_y'>y</a>)
### Example
@@ -1361,10 +1361,10 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-void* <a href='#SkPixmap_writable_addr'>writable_addr</a>() <a href='#SkPixmap_writable_addr'>const</a>
+void* <a href='#SkPixmap_writable_addr'>writable_addr</a>() const
</pre>
-Returns writable base <a href='undocumented#Pixel'>pixel</a> <a href='undocumented#Pixel'>address</a>.
+Returns writable base <a href='undocumented#Pixel'>pixel</a> address.
### Return Value
@@ -1393,13 +1393,13 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-void* <a href='#SkPixmap_writable_addr'>writable_addr</a>(<a href='#SkPixmap_writable_addr'>int</a> <a href='#SkPixmap_writable_addr'>x</a>, <a href='#SkPixmap_writable_addr'>int</a> <a href='#SkPixmap_writable_addr'>y</a>) <a href='#SkPixmap_writable_addr'>const</a>
+void* <a href='#SkPixmap_writable_addr'>writable_addr</a>(int x, int y) const
</pre>
-Returns writable <a href='undocumented#Pixel'>pixel</a> <a href='undocumented#Pixel'>address</a> <a href='undocumented#Pixel'>at</a> (<a href='#SkPixmap_writable_addr_2_x'>x</a>, <a href='#SkPixmap_writable_addr_2_y'>y</a>).
+Returns writable <a href='undocumented#Pixel'>pixel</a> address at (<a href='#SkPixmap_writable_addr_2_x'>x</a>, <a href='#SkPixmap_writable_addr_2_y'>y</a>).
-Input is not validated: out of bounds values of <a href='#SkPixmap_writable_addr_2_x'>x</a> <a href='#SkPixmap_writable_addr_2_x'>or</a> <a href='#SkPixmap_writable_addr_2_y'>y</a> <a href='#SkPixmap_writable_addr_2_y'>trigger</a> <a href='#SkPixmap_writable_addr_2_y'>an</a> <a href='#SkPixmap_writable_addr_2_y'>assert()</a> <a href='#SkPixmap_writable_addr_2_y'>if</a>
-built with SK_DEBUG defined. Returns zero if <a href='SkImageInfo_Reference#SkColorType'>SkColorType</a> <a href='SkImageInfo_Reference#SkColorType'>is</a> <a href='SkImageInfo_Reference#kUnknown_SkColorType'>kUnknown_SkColorType</a>.
+Input is not validated: out of bounds values of <a href='#SkPixmap_writable_addr_2_x'>x</a> or <a href='#SkPixmap_writable_addr_2_y'>y</a> trigger an assert() if
+built with SK_DEBUG defined. Returns zero if <a href='SkImageInfo_Reference#SkColorType'>SkColorType</a> is <a href='SkImageInfo_Reference#kUnknown_SkColorType'>kUnknown_SkColorType</a>.
### Parameters
@@ -1438,12 +1438,12 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-uint8_t* <a href='#SkPixmap_writable_addr8'>writable_addr8</a>(<a href='#SkPixmap_writable_addr8'>int</a> <a href='#SkPixmap_writable_addr8'>x</a>, <a href='#SkPixmap_writable_addr8'>int</a> <a href='#SkPixmap_writable_addr8'>y</a>) <a href='#SkPixmap_writable_addr8'>const</a>
+uint8_t* <a href='#SkPixmap_writable_addr8'>writable_addr8</a>(int x, int y) const
</pre>
-Returns writable <a href='undocumented#Pixel'>pixel</a> <a href='undocumented#Pixel'>address</a> <a href='undocumented#Pixel'>at</a> (<a href='#SkPixmap_writable_addr8_x'>x</a>, <a href='#SkPixmap_writable_addr8_y'>y</a>). <a href='#SkPixmap_writable_addr8_y'>Result</a> <a href='#SkPixmap_writable_addr8_y'>is</a> <a href='#SkPixmap_writable_addr8_y'>addressable</a> <a href='#SkPixmap_writable_addr8_y'>as</a> <a href='#SkPixmap_writable_addr8_y'>unsigned</a>
-8-bit bytes. Will trigger an assert() if <a href='SkImageInfo_Reference#SkColorType'>SkColorType</a> <a href='SkImageInfo_Reference#SkColorType'>is</a> <a href='SkImageInfo_Reference#SkColorType'>not</a> <a href='SkImageInfo_Reference#kAlpha_8_SkColorType'>kAlpha_8_SkColorType</a>
-or <a href='SkImageInfo_Reference#kGray_8_SkColorType'>kGray_8_SkColorType</a>, <a href='SkImageInfo_Reference#kGray_8_SkColorType'>and</a> <a href='SkImageInfo_Reference#kGray_8_SkColorType'>is</a> <a href='SkImageInfo_Reference#kGray_8_SkColorType'>built</a> <a href='SkImageInfo_Reference#kGray_8_SkColorType'>with</a> <a href='SkImageInfo_Reference#kGray_8_SkColorType'>SK_DEBUG</a> <a href='SkImageInfo_Reference#kGray_8_SkColorType'>defined</a>.
+Returns writable <a href='undocumented#Pixel'>pixel</a> address at (<a href='#SkPixmap_writable_addr8_x'>x</a>, <a href='#SkPixmap_writable_addr8_y'>y</a>). Result is addressable as unsigned
+8-bit bytes. Will trigger an assert() if <a href='SkImageInfo_Reference#SkColorType'>SkColorType</a> is not <a href='SkImageInfo_Reference#kAlpha_8_SkColorType'>kAlpha_8_SkColorType</a>
+or <a href='SkImageInfo_Reference#kGray_8_SkColorType'>kGray_8_SkColorType</a>, and is built with SK_DEBUG defined.
One byte corresponds to one <a href='undocumented#Pixel'>pixel</a>.
@@ -1463,9 +1463,9 @@
### Example
-<div><fiddle-embed name="809284db136748208b3efc31cd89de29"><div>Altering pixels after drawing <a href='SkBitmap_Reference#Bitmap'>Bitmap</a> <a href='SkBitmap_Reference#Bitmap'>is</a> <a href='SkBitmap_Reference#Bitmap'>not</a> <a href='SkBitmap_Reference#Bitmap'>guaranteed</a> <a href='SkBitmap_Reference#Bitmap'>to</a> <a href='SkBitmap_Reference#Bitmap'>affect</a> <a href='SkBitmap_Reference#Bitmap'>subsequent</a>
-<a href='SkBitmap_Reference#Bitmap'>drawing</a> <a href='SkBitmap_Reference#Bitmap'>on</a> <a href='SkBitmap_Reference#Bitmap'>all</a> <a href='SkBitmap_Reference#Bitmap'>platforms</a>. <a href='SkBitmap_Reference#Bitmap'>Adding</a> <a href='SkBitmap_Reference#Bitmap'>a</a> <a href='SkBitmap_Reference#Bitmap'>second</a> <a href='SkBitmap_Reference#SkBitmap'>SkBitmap</a>::<a href='#SkBitmap_installPixels'>installPixels</a> <a href='#SkBitmap_installPixels'>after</a> <a href='#SkBitmap_installPixels'>editing</a>
-<a href='undocumented#Pixel'>pixel</a> <a href='undocumented#Pixel'>memory</a> <a href='undocumented#Pixel'>is</a> <a href='undocumented#Pixel'>safer</a>.
+<div><fiddle-embed name="809284db136748208b3efc31cd89de29"><div>Altering pixels after drawing <a href='SkBitmap_Reference#Bitmap'>Bitmap</a> is not guaranteed to affect subsequent
+drawing on all platforms. Adding a second <a href='SkBitmap_Reference#SkBitmap'>SkBitmap</a>::<a href='#SkBitmap_installPixels'>installPixels</a> after editing
+<a href='undocumented#Pixel'>pixel</a> memory is safer.
</div></fiddle-embed></div>
### See Also
@@ -1477,12 +1477,12 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-uint16_t* <a href='#SkPixmap_writable_addr16'>writable_addr16</a>(<a href='#SkPixmap_writable_addr16'>int</a> <a href='#SkPixmap_writable_addr16'>x</a>, <a href='#SkPixmap_writable_addr16'>int</a> <a href='#SkPixmap_writable_addr16'>y</a>) <a href='#SkPixmap_writable_addr16'>const</a>
+uint16_t* <a href='#SkPixmap_writable_addr16'>writable_addr16</a>(int x, int y) const
</pre>
-Returns <a href='#SkPixmap_writable_addr'>writable_addr</a> <a href='undocumented#Pixel'>pixel</a> <a href='undocumented#Pixel'>address</a> <a href='undocumented#Pixel'>at</a> (<a href='#SkPixmap_writable_addr16_x'>x</a>, <a href='#SkPixmap_writable_addr16_y'>y</a>). <a href='#SkPixmap_writable_addr16_y'>Result</a> <a href='#SkPixmap_writable_addr16_y'>is</a> <a href='#SkPixmap_writable_addr16_y'>addressable</a> <a href='#SkPixmap_writable_addr16_y'>as</a> <a href='#SkPixmap_writable_addr16_y'>unsigned</a>
-16-bit words. Will trigger an assert() if <a href='SkImageInfo_Reference#SkColorType'>SkColorType</a> <a href='SkImageInfo_Reference#SkColorType'>is</a> <a href='SkImageInfo_Reference#SkColorType'>not</a> <a href='SkImageInfo_Reference#kRGB_565_SkColorType'>kRGB_565_SkColorType</a>
-or <a href='SkImageInfo_Reference#kARGB_4444_SkColorType'>kARGB_4444_SkColorType</a>, <a href='SkImageInfo_Reference#kARGB_4444_SkColorType'>and</a> <a href='SkImageInfo_Reference#kARGB_4444_SkColorType'>is</a> <a href='SkImageInfo_Reference#kARGB_4444_SkColorType'>built</a> <a href='SkImageInfo_Reference#kARGB_4444_SkColorType'>with</a> <a href='SkImageInfo_Reference#kARGB_4444_SkColorType'>SK_DEBUG</a> <a href='SkImageInfo_Reference#kARGB_4444_SkColorType'>defined</a>.
+Returns <a href='#SkPixmap_writable_addr'>writable_addr</a> <a href='undocumented#Pixel'>pixel</a> address at (<a href='#SkPixmap_writable_addr16_x'>x</a>, <a href='#SkPixmap_writable_addr16_y'>y</a>). Result is addressable as unsigned
+16-bit words. Will trigger an assert() if <a href='SkImageInfo_Reference#SkColorType'>SkColorType</a> is not <a href='SkImageInfo_Reference#kRGB_565_SkColorType'>kRGB_565_SkColorType</a>
+or <a href='SkImageInfo_Reference#kARGB_4444_SkColorType'>kARGB_4444_SkColorType</a>, and is built with SK_DEBUG defined.
One word corresponds to one <a href='undocumented#Pixel'>pixel</a>.
@@ -1502,8 +1502,8 @@
### Example
-<div><fiddle-embed name="6da54774f6432b46b47ea9013c15f280"><div>Draw a five by five <a href='SkBitmap_Reference#Bitmap'>bitmap</a>, <a href='SkBitmap_Reference#Bitmap'>and</a> <a href='SkBitmap_Reference#Bitmap'>draw</a> <a href='SkBitmap_Reference#Bitmap'>it</a> <a href='SkBitmap_Reference#Bitmap'>again</a> <a href='SkBitmap_Reference#Bitmap'>with</a> <a href='SkBitmap_Reference#Bitmap'>a</a> <a href='SkBitmap_Reference#Bitmap'>center</a> <a href='SkBitmap_Reference#Bitmap'>black</a> <a href='undocumented#Pixel'>pixel</a>.
-<a href='undocumented#Pixel'>The</a> <a href='undocumented#Pixel'>low</a> <a href='undocumented#Pixel'>nibble</a> <a href='undocumented#Pixel'>of</a> <a href='undocumented#Pixel'>the</a> 16-<a href='undocumented#Pixel'>bit</a> <a href='undocumented#Pixel'>word</a> <a href='undocumented#Pixel'>is</a> <a href='SkColor_Reference#Alpha'>Alpha</a>.
+<div><fiddle-embed name="6da54774f6432b46b47ea9013c15f280"><div>Draw a five by five <a href='SkBitmap_Reference#Bitmap'>bitmap</a>, and draw it again with a center black <a href='undocumented#Pixel'>pixel</a>.
+The low nibble of the 16-bit word is <a href='SkColor_Reference#Alpha'>Alpha</a>.
</div></fiddle-embed></div>
### See Also
@@ -1515,12 +1515,12 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-uint32_t* <a href='#SkPixmap_writable_addr32'>writable_addr32</a>(<a href='#SkPixmap_writable_addr32'>int</a> <a href='#SkPixmap_writable_addr32'>x</a>, <a href='#SkPixmap_writable_addr32'>int</a> <a href='#SkPixmap_writable_addr32'>y</a>) <a href='#SkPixmap_writable_addr32'>const</a>
+uint32_t* <a href='#SkPixmap_writable_addr32'>writable_addr32</a>(int x, int y) const
</pre>
-Returns writable <a href='undocumented#Pixel'>pixel</a> <a href='undocumented#Pixel'>address</a> <a href='undocumented#Pixel'>at</a> (<a href='#SkPixmap_writable_addr32_x'>x</a>, <a href='#SkPixmap_writable_addr32_y'>y</a>). <a href='#SkPixmap_writable_addr32_y'>Result</a> <a href='#SkPixmap_writable_addr32_y'>is</a> <a href='#SkPixmap_writable_addr32_y'>addressable</a> <a href='#SkPixmap_writable_addr32_y'>as</a> <a href='#SkPixmap_writable_addr32_y'>unsigned</a>
-32-bit words. Will trigger an assert() if <a href='SkImageInfo_Reference#SkColorType'>SkColorType</a> <a href='SkImageInfo_Reference#SkColorType'>is</a> <a href='SkImageInfo_Reference#SkColorType'>not</a>
-<a href='SkImageInfo_Reference#kRGBA_8888_SkColorType'>kRGBA_8888_SkColorType</a> <a href='SkImageInfo_Reference#kRGBA_8888_SkColorType'>or</a> <a href='SkImageInfo_Reference#kBGRA_8888_SkColorType'>kBGRA_8888_SkColorType</a>, <a href='SkImageInfo_Reference#kBGRA_8888_SkColorType'>and</a> <a href='SkImageInfo_Reference#kBGRA_8888_SkColorType'>is</a> <a href='SkImageInfo_Reference#kBGRA_8888_SkColorType'>built</a> <a href='SkImageInfo_Reference#kBGRA_8888_SkColorType'>with</a> <a href='SkImageInfo_Reference#kBGRA_8888_SkColorType'>SK_DEBUG</a>
+Returns writable <a href='undocumented#Pixel'>pixel</a> address at (<a href='#SkPixmap_writable_addr32_x'>x</a>, <a href='#SkPixmap_writable_addr32_y'>y</a>). Result is addressable as unsigned
+32-bit words. Will trigger an assert() if <a href='SkImageInfo_Reference#SkColorType'>SkColorType</a> is not
+<a href='SkImageInfo_Reference#kRGBA_8888_SkColorType'>kRGBA_8888_SkColorType</a> or <a href='SkImageInfo_Reference#kBGRA_8888_SkColorType'>kBGRA_8888_SkColorType</a>, and is built with SK_DEBUG
defined.
One word corresponds to one <a href='undocumented#Pixel'>pixel</a>.
@@ -1552,12 +1552,12 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-uint64_t* <a href='#SkPixmap_writable_addr64'>writable_addr64</a>(<a href='#SkPixmap_writable_addr64'>int</a> <a href='#SkPixmap_writable_addr64'>x</a>, <a href='#SkPixmap_writable_addr64'>int</a> <a href='#SkPixmap_writable_addr64'>y</a>) <a href='#SkPixmap_writable_addr64'>const</a>
+uint64_t* <a href='#SkPixmap_writable_addr64'>writable_addr64</a>(int x, int y) const
</pre>
-Returns writable <a href='undocumented#Pixel'>pixel</a> <a href='undocumented#Pixel'>address</a> <a href='undocumented#Pixel'>at</a> (<a href='#SkPixmap_writable_addr64_x'>x</a>, <a href='#SkPixmap_writable_addr64_y'>y</a>). <a href='#SkPixmap_writable_addr64_y'>Result</a> <a href='#SkPixmap_writable_addr64_y'>is</a> <a href='#SkPixmap_writable_addr64_y'>addressable</a> <a href='#SkPixmap_writable_addr64_y'>as</a> <a href='#SkPixmap_writable_addr64_y'>unsigned</a>
-64-bit words. Will trigger an assert() if <a href='SkImageInfo_Reference#SkColorType'>SkColorType</a> <a href='SkImageInfo_Reference#SkColorType'>is</a> <a href='SkImageInfo_Reference#SkColorType'>not</a>
-<a href='SkImageInfo_Reference#kRGBA_F16_SkColorType'>kRGBA_F16_SkColorType</a> <a href='SkImageInfo_Reference#kRGBA_F16_SkColorType'>and</a> <a href='SkImageInfo_Reference#kRGBA_F16_SkColorType'>is</a> <a href='SkImageInfo_Reference#kRGBA_F16_SkColorType'>built</a> <a href='SkImageInfo_Reference#kRGBA_F16_SkColorType'>with</a> <a href='SkImageInfo_Reference#kRGBA_F16_SkColorType'>SK_DEBUG</a> <a href='SkImageInfo_Reference#kRGBA_F16_SkColorType'>defined</a>.
+Returns writable <a href='undocumented#Pixel'>pixel</a> address at (<a href='#SkPixmap_writable_addr64_x'>x</a>, <a href='#SkPixmap_writable_addr64_y'>y</a>). Result is addressable as unsigned
+64-bit words. Will trigger an assert() if <a href='SkImageInfo_Reference#SkColorType'>SkColorType</a> is not
+<a href='SkImageInfo_Reference#kRGBA_F16_SkColorType'>kRGBA_F16_SkColorType</a> and is built with SK_DEBUG defined.
One word corresponds to one <a href='undocumented#Pixel'>pixel</a>.
@@ -1588,14 +1588,14 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-uint16_t* <a href='#SkPixmap_writable_addrF16'>writable_addrF16</a>(<a href='#SkPixmap_writable_addrF16'>int</a> <a href='#SkPixmap_writable_addrF16'>x</a>, <a href='#SkPixmap_writable_addrF16'>int</a> <a href='#SkPixmap_writable_addrF16'>y</a>) <a href='#SkPixmap_writable_addrF16'>const</a>
+uint16_t* <a href='#SkPixmap_writable_addrF16'>writable_addrF16</a>(int x, int y) const
</pre>
-Returns writable <a href='undocumented#Pixel'>pixel</a> <a href='undocumented#Pixel'>address</a> <a href='undocumented#Pixel'>at</a> (<a href='#SkPixmap_writable_addrF16_x'>x</a>, <a href='#SkPixmap_writable_addrF16_y'>y</a>). <a href='#SkPixmap_writable_addrF16_y'>Result</a> <a href='#SkPixmap_writable_addrF16_y'>is</a> <a href='#SkPixmap_writable_addrF16_y'>addressable</a> <a href='#SkPixmap_writable_addrF16_y'>as</a> <a href='#SkPixmap_writable_addrF16_y'>unsigned</a>
-16-bit words. Will trigger an assert() if <a href='SkImageInfo_Reference#SkColorType'>SkColorType</a> <a href='SkImageInfo_Reference#SkColorType'>is</a> <a href='SkImageInfo_Reference#SkColorType'>not</a>
-<a href='SkImageInfo_Reference#kRGBA_F16_SkColorType'>kRGBA_F16_SkColorType</a> <a href='SkImageInfo_Reference#kRGBA_F16_SkColorType'>and</a> <a href='SkImageInfo_Reference#kRGBA_F16_SkColorType'>is</a> <a href='SkImageInfo_Reference#kRGBA_F16_SkColorType'>built</a> <a href='SkImageInfo_Reference#kRGBA_F16_SkColorType'>with</a> <a href='SkImageInfo_Reference#kRGBA_F16_SkColorType'>SK_DEBUG</a> <a href='SkImageInfo_Reference#kRGBA_F16_SkColorType'>defined</a>.
+Returns writable <a href='undocumented#Pixel'>pixel</a> address at (<a href='#SkPixmap_writable_addrF16_x'>x</a>, <a href='#SkPixmap_writable_addrF16_y'>y</a>). Result is addressable as unsigned
+16-bit words. Will trigger an assert() if <a href='SkImageInfo_Reference#SkColorType'>SkColorType</a> is not
+<a href='SkImageInfo_Reference#kRGBA_F16_SkColorType'>kRGBA_F16_SkColorType</a> and is built with SK_DEBUG defined.
-Each word represents one <a href='SkColor_Reference#Color'>color</a> <a href='SkColor_Reference#Color'>component</a> <a href='SkColor_Reference#Color'>encoded</a> <a href='SkColor_Reference#Color'>as</a> <a href='SkColor_Reference#Color'>a</a> <a href='SkColor_Reference#Color'>half</a> <a href='SkColor_Reference#Color'>float</a>.
+Each word represents one <a href='SkColor_Reference#Color'>color</a> component encoded as a half float.
Four words correspond to one <a href='undocumented#Pixel'>pixel</a>.
### Parameters
@@ -1614,8 +1614,8 @@
### Example
-<div><fiddle-embed name="7822d78f5cacf5c04267cbbc6c6d0b80"><div>Left <a href='SkBitmap_Reference#Bitmap'>bitmap</a> <a href='SkBitmap_Reference#Bitmap'>is</a> <a href='SkBitmap_Reference#Bitmap'>drawn</a> <a href='SkBitmap_Reference#Bitmap'>with</a> <a href='SkBitmap_Reference#Bitmap'>two</a> <a href='SkBitmap_Reference#Bitmap'>pixels</a> <a href='SkBitmap_Reference#Bitmap'>defined</a> <a href='SkBitmap_Reference#Bitmap'>in</a> <a href='SkBitmap_Reference#Bitmap'>half</a> <a href='SkBitmap_Reference#Bitmap'>float</a> <a href='SkBitmap_Reference#Bitmap'>format</a>. <a href='SkBitmap_Reference#Bitmap'>Right</a> <a href='SkBitmap_Reference#Bitmap'>bitmap</a>
-<a href='SkBitmap_Reference#Bitmap'>is</a> <a href='SkBitmap_Reference#Bitmap'>drawn</a> <a href='SkBitmap_Reference#Bitmap'>after</a> <a href='SkBitmap_Reference#Bitmap'>overwriting</a> <a href='SkBitmap_Reference#Bitmap'>bottom</a> <a href='SkBitmap_Reference#Bitmap'>half</a> <a href='SkBitmap_Reference#Bitmap'>float</a> <a href='SkColor_Reference#Color'>color</a> <a href='SkColor_Reference#Color'>with</a> <a href='SkColor_Reference#Color'>top</a> <a href='SkColor_Reference#Color'>half</a> <a href='SkColor_Reference#Color'>float</a> <a href='SkColor_Reference#Color'>color</a>.
+<div><fiddle-embed name="7822d78f5cacf5c04267cbbc6c6d0b80"><div>Left <a href='SkBitmap_Reference#Bitmap'>bitmap</a> is drawn with two pixels defined in half float format. Right <a href='SkBitmap_Reference#Bitmap'>bitmap</a>
+is drawn after overwriting bottom half float <a href='SkColor_Reference#Color'>color</a> with top half float <a href='SkColor_Reference#Color'>color</a>.
</div></fiddle-embed></div>
### See Also
@@ -1629,25 +1629,25 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-bool <a href='#SkPixmap_readPixels'>readPixels</a>(<a href='#SkPixmap_readPixels'>const</a> <a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a>& <a href='SkImageInfo_Reference#SkImageInfo'>dstInfo</a>, <a href='SkImageInfo_Reference#SkImageInfo'>void</a>* <a href='SkImageInfo_Reference#SkImageInfo'>dstPixels</a>, <a href='SkImageInfo_Reference#SkImageInfo'>size_t</a> <a href='SkImageInfo_Reference#SkImageInfo'>dstRowBytes</a>) <a href='SkImageInfo_Reference#SkImageInfo'>const</a>
+bool <a href='#SkPixmap_readPixels'>readPixels</a>(const <a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a>& dstInfo, void* dstPixels, size_t dstRowBytes) const
</pre>
-Copies a <a href='SkRect_Reference#SkRect'>SkRect</a> <a href='SkRect_Reference#SkRect'>of</a> <a href='SkRect_Reference#SkRect'>pixels</a> <a href='SkRect_Reference#SkRect'>to</a> <a href='#SkPixmap_readPixels_dstPixels'>dstPixels</a>. <a href='#SkPixmap_readPixels_dstPixels'>Copy</a> <a href='#SkPixmap_readPixels_dstPixels'>starts</a> <a href='#SkPixmap_readPixels_dstPixels'>at</a> (0, 0), <a href='#SkPixmap_readPixels_dstPixels'>and</a> <a href='#SkPixmap_readPixels_dstPixels'>does</a> <a href='#SkPixmap_readPixels_dstPixels'>not</a>
+Copies a <a href='SkRect_Reference#SkRect'>SkRect</a> of pixels to <a href='#SkPixmap_readPixels_dstPixels'>dstPixels</a>. Copy starts at (0, 0), and does not
exceed <a href='SkPixmap_Reference#SkPixmap'>SkPixmap</a> (<a href='#SkPixmap_width'>width()</a>, <a href='#SkPixmap_height'>height()</a>).
-<a href='#SkPixmap_readPixels_dstInfo'>dstInfo</a> <a href='#SkPixmap_readPixels_dstInfo'>specifies</a> <a href='#SkPixmap_readPixels_dstInfo'>width</a>, <a href='#SkPixmap_readPixels_dstInfo'>height</a>, <a href='SkImageInfo_Reference#SkColorType'>SkColorType</a>, <a href='SkImageInfo_Reference#SkAlphaType'>SkAlphaType</a>, <a href='SkImageInfo_Reference#SkAlphaType'>and</a>
-<a href='undocumented#SkColorSpace'>SkColorSpace</a> <a href='undocumented#SkColorSpace'>of</a> <a href='undocumented#SkColorSpace'>destination</a>. <a href='#SkPixmap_readPixels_dstRowBytes'>dstRowBytes</a> <a href='#SkPixmap_readPixels_dstRowBytes'>specifics</a> <a href='#SkPixmap_readPixels_dstRowBytes'>the</a> <a href='#SkPixmap_readPixels_dstRowBytes'>gap</a> <a href='#SkPixmap_readPixels_dstRowBytes'>from</a> <a href='#SkPixmap_readPixels_dstRowBytes'>one</a> <a href='#SkPixmap_readPixels_dstRowBytes'>destination</a>
+<a href='#SkPixmap_readPixels_dstInfo'>dstInfo</a> specifies width, height, <a href='SkImageInfo_Reference#SkColorType'>SkColorType</a>, <a href='SkImageInfo_Reference#SkAlphaType'>SkAlphaType</a>, and
+<a href='undocumented#SkColorSpace'>SkColorSpace</a> of destination. <a href='#SkPixmap_readPixels_dstRowBytes'>dstRowBytes</a> specifics the gap from one destination
row to the next. Returns true if pixels are copied. Returns false if
-<a href='#SkPixmap_readPixels_dstInfo'>dstInfo</a> <a href='#SkPixmap_readPixels_dstInfo'>address</a> <a href='#SkPixmap_readPixels_dstInfo'>equals</a> <a href='#SkPixmap_readPixels_dstInfo'>nullptr</a>, <a href='#SkPixmap_readPixels_dstInfo'>or</a> <a href='#SkPixmap_readPixels_dstRowBytes'>dstRowBytes</a> <a href='#SkPixmap_readPixels_dstRowBytes'>is</a> <a href='#SkPixmap_readPixels_dstRowBytes'>less</a> <a href='#SkPixmap_readPixels_dstRowBytes'>than</a> <a href='#SkPixmap_readPixels_dstInfo'>dstInfo</a>.<a href='#SkImageInfo_minRowBytes'>minRowBytes</a>().
+<a href='#SkPixmap_readPixels_dstInfo'>dstInfo</a> address equals nullptr, or <a href='#SkPixmap_readPixels_dstRowBytes'>dstRowBytes</a> is less than <a href='#SkPixmap_readPixels_dstInfo'>dstInfo</a>.<a href='#SkImageInfo_minRowBytes'>minRowBytes</a>().
-Pixels are copied only if <a href='undocumented#Pixel'>pixel</a> <a href='undocumented#Pixel'>conversion</a> <a href='undocumented#Pixel'>is</a> <a href='undocumented#Pixel'>possible</a>. <a href='undocumented#Pixel'>If</a> <a href='SkPixmap_Reference#SkPixmap'>SkPixmap</a> <a href='#SkPixmap_colorType'>colorType</a>() <a href='#SkPixmap_colorType'>is</a>
-<a href='SkImageInfo_Reference#kGray_8_SkColorType'>kGray_8_SkColorType</a>, <a href='SkImageInfo_Reference#kGray_8_SkColorType'>or</a> <a href='SkImageInfo_Reference#kAlpha_8_SkColorType'>kAlpha_8_SkColorType</a>; <a href='#SkPixmap_readPixels_dstInfo'>dstInfo</a>.<a href='#SkImageInfo_colorType'>colorType</a>() <a href='#SkImageInfo_colorType'>must</a> <a href='#SkImageInfo_colorType'>match</a>.
-If <a href='SkPixmap_Reference#SkPixmap'>SkPixmap</a> <a href='#SkPixmap_colorType'>colorType</a>() <a href='#SkPixmap_colorType'>is</a> <a href='SkImageInfo_Reference#kGray_8_SkColorType'>kGray_8_SkColorType</a>, <a href='#SkPixmap_readPixels_dstInfo'>dstInfo</a>.<a href='#SkImageInfo_colorSpace'>colorSpace</a>() <a href='#SkImageInfo_colorSpace'>must</a> <a href='#SkImageInfo_colorSpace'>match</a>.
-If <a href='SkPixmap_Reference#SkPixmap'>SkPixmap</a> <a href='#SkPixmap_alphaType'>alphaType</a>() <a href='#SkPixmap_alphaType'>is</a> <a href='SkImageInfo_Reference#kOpaque_SkAlphaType'>kOpaque_SkAlphaType</a>, <a href='#SkPixmap_readPixels_dstInfo'>dstInfo</a>.<a href='#SkImageInfo_alphaType'>alphaType</a>() <a href='#SkImageInfo_alphaType'>must</a>
-match. If <a href='SkPixmap_Reference#SkPixmap'>SkPixmap</a> <a href='#SkPixmap_colorSpace'>colorSpace</a>() <a href='#SkPixmap_colorSpace'>is</a> <a href='#SkPixmap_colorSpace'>nullptr</a>, <a href='#SkPixmap_readPixels_dstInfo'>dstInfo</a>.<a href='#SkImageInfo_colorSpace'>colorSpace</a>() <a href='#SkImageInfo_colorSpace'>must</a> <a href='#SkImageInfo_colorSpace'>match</a>. <a href='#SkImageInfo_colorSpace'>Returns</a>
-false if <a href='undocumented#Pixel'>pixel</a> <a href='undocumented#Pixel'>conversion</a> <a href='undocumented#Pixel'>is</a> <a href='undocumented#Pixel'>not</a> <a href='undocumented#Pixel'>possible</a>.
+Pixels are copied only if <a href='undocumented#Pixel'>pixel</a> conversion is possible. If <a href='SkPixmap_Reference#SkPixmap'>SkPixmap</a> <a href='#SkPixmap_colorType'>colorType</a>() is
+<a href='SkImageInfo_Reference#kGray_8_SkColorType'>kGray_8_SkColorType</a>, or <a href='SkImageInfo_Reference#kAlpha_8_SkColorType'>kAlpha_8_SkColorType</a>; <a href='#SkPixmap_readPixels_dstInfo'>dstInfo</a>.<a href='#SkImageInfo_colorType'>colorType</a>() must match.
+If <a href='SkPixmap_Reference#SkPixmap'>SkPixmap</a> <a href='#SkPixmap_colorType'>colorType</a>() is <a href='SkImageInfo_Reference#kGray_8_SkColorType'>kGray_8_SkColorType</a>, <a href='#SkPixmap_readPixels_dstInfo'>dstInfo</a>.<a href='#SkImageInfo_colorSpace'>colorSpace</a>() must match.
+If <a href='SkPixmap_Reference#SkPixmap'>SkPixmap</a> <a href='#SkPixmap_alphaType'>alphaType</a>() is <a href='SkImageInfo_Reference#kOpaque_SkAlphaType'>kOpaque_SkAlphaType</a>, <a href='#SkPixmap_readPixels_dstInfo'>dstInfo</a>.<a href='#SkImageInfo_alphaType'>alphaType</a>() must
+match. If <a href='SkPixmap_Reference#SkPixmap'>SkPixmap</a> <a href='#SkPixmap_colorSpace'>colorSpace</a>() is nullptr, <a href='#SkPixmap_readPixels_dstInfo'>dstInfo</a>.<a href='#SkImageInfo_colorSpace'>colorSpace</a>() must match. Returns
+false if <a href='undocumented#Pixel'>pixel</a> conversion is not possible.
-Returns false if <a href='SkPixmap_Reference#SkPixmap'>SkPixmap</a> <a href='#SkPixmap_width'>width()</a> <a href='#SkPixmap_width'>or</a> <a href='#SkPixmap_height'>height()</a> <a href='#SkPixmap_height'>is</a> <a href='#SkPixmap_height'>zero</a> <a href='#SkPixmap_height'>or</a> <a href='#SkPixmap_height'>negative</a>.
+Returns false if <a href='SkPixmap_Reference#SkPixmap'>SkPixmap</a> <a href='#SkPixmap_width'>width()</a> or <a href='#SkPixmap_height'>height()</a> is zero or negative.
### Parameters
@@ -1681,26 +1681,26 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-bool <a href='#SkPixmap_readPixels'>readPixels</a>(<a href='#SkPixmap_readPixels'>const</a> <a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a>& <a href='SkImageInfo_Reference#SkImageInfo'>dstInfo</a>, <a href='SkImageInfo_Reference#SkImageInfo'>void</a>* <a href='SkImageInfo_Reference#SkImageInfo'>dstPixels</a>, <a href='SkImageInfo_Reference#SkImageInfo'>size_t</a> <a href='SkImageInfo_Reference#SkImageInfo'>dstRowBytes</a>, <a href='SkImageInfo_Reference#SkImageInfo'>int</a> <a href='SkImageInfo_Reference#SkImageInfo'>srcX</a>, <a href='SkImageInfo_Reference#SkImageInfo'>int</a> <a href='SkImageInfo_Reference#SkImageInfo'>srcY</a>) <a href='SkImageInfo_Reference#SkImageInfo'>const</a>
+bool <a href='#SkPixmap_readPixels'>readPixels</a>(const <a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a>& dstInfo, void* dstPixels, size_t dstRowBytes, int srcX, int srcY) const
</pre>
-Copies a <a href='SkRect_Reference#Rect'>Rect</a> <a href='SkRect_Reference#Rect'>of</a> <a href='SkRect_Reference#Rect'>pixels</a> <a href='SkRect_Reference#Rect'>to</a> <a href='#SkPixmap_readPixels_2_dstPixels'>dstPixels</a>. <a href='#SkPixmap_readPixels_2_dstPixels'>Copy</a> <a href='#SkPixmap_readPixels_2_dstPixels'>starts</a> <a href='#SkPixmap_readPixels_2_dstPixels'>at</a> (<a href='#SkPixmap_readPixels_2_srcX'>srcX</a>, <a href='#SkPixmap_readPixels_2_srcY'>srcY</a>), <a href='#SkPixmap_readPixels_2_srcY'>and</a> <a href='#SkPixmap_readPixels_2_srcY'>does</a> <a href='#SkPixmap_readPixels_2_srcY'>not</a>
-<a href='#SkPixmap_readPixels_2_srcY'>exceed</a> <a href='SkPixmap_Reference#Pixmap'>Pixmap</a> (<a href='#SkPixmap_width'>width()</a>, <a href='#SkPixmap_height'>height()</a>).
+Copies a <a href='SkRect_Reference#Rect'>Rect</a> of pixels to <a href='#SkPixmap_readPixels_2_dstPixels'>dstPixels</a>. Copy starts at (<a href='#SkPixmap_readPixels_2_srcX'>srcX</a>, <a href='#SkPixmap_readPixels_2_srcY'>srcY</a>), and does not
+exceed <a href='SkPixmap_Reference#Pixmap'>Pixmap</a> (<a href='#SkPixmap_width'>width()</a>, <a href='#SkPixmap_height'>height()</a>).
-<a href='#SkPixmap_readPixels_2_dstInfo'>dstInfo</a> <a href='#SkPixmap_readPixels_2_dstInfo'>specifies</a> <a href='#SkPixmap_readPixels_2_dstInfo'>width</a>, <a href='#SkPixmap_readPixels_2_dstInfo'>height</a>, <a href='#Image_Info_Color_Type'>Color_Type</a>, <a href='#Image_Info_Alpha_Type'>Alpha_Type</a>, <a href='#Image_Info_Alpha_Type'>and</a>
-<a href='#Color_Space'>Color_Space</a> <a href='#Color_Space'>of</a> <a href='#Color_Space'>destination</a>. <a href='#SkPixmap_readPixels_2_dstRowBytes'>dstRowBytes</a> <a href='#SkPixmap_readPixels_2_dstRowBytes'>specifics</a> <a href='#SkPixmap_readPixels_2_dstRowBytes'>the</a> <a href='#SkPixmap_readPixels_2_dstRowBytes'>gap</a> <a href='#SkPixmap_readPixels_2_dstRowBytes'>from</a> <a href='#SkPixmap_readPixels_2_dstRowBytes'>one</a> <a href='#SkPixmap_readPixels_2_dstRowBytes'>destination</a>
-<a href='#SkPixmap_readPixels_2_dstRowBytes'>row</a> <a href='#SkPixmap_readPixels_2_dstRowBytes'>to</a> <a href='#SkPixmap_readPixels_2_dstRowBytes'>the</a> <a href='#SkPixmap_readPixels_2_dstRowBytes'>next</a>. <a href='#SkPixmap_readPixels_2_dstRowBytes'>Returns</a> <a href='#SkPixmap_readPixels_2_dstRowBytes'>true</a> <a href='#SkPixmap_readPixels_2_dstRowBytes'>if</a> <a href='#SkPixmap_readPixels_2_dstRowBytes'>pixels</a> <a href='#SkPixmap_readPixels_2_dstRowBytes'>are</a> <a href='#SkPixmap_readPixels_2_dstRowBytes'>copied</a>. <a href='#SkPixmap_readPixels_2_dstRowBytes'>Returns</a> <a href='#SkPixmap_readPixels_2_dstRowBytes'>false</a> <a href='#SkPixmap_readPixels_2_dstRowBytes'>if</a>
-<a href='#SkPixmap_readPixels_2_dstInfo'>dstInfo</a> <a href='#SkPixmap_readPixels_2_dstInfo'>has</a> <a href='#SkPixmap_readPixels_2_dstInfo'>no</a> <a href='#SkPixmap_readPixels_2_dstInfo'>address</a>, <a href='#SkPixmap_readPixels_2_dstInfo'>or</a> <a href='#SkPixmap_readPixels_2_dstRowBytes'>dstRowBytes</a> <a href='#SkPixmap_readPixels_2_dstRowBytes'>is</a> <a href='#SkPixmap_readPixels_2_dstRowBytes'>less</a> <a href='#SkPixmap_readPixels_2_dstRowBytes'>than</a> <a href='#SkPixmap_readPixels_2_dstInfo'>dstInfo</a>.<a href='#SkImageInfo_minRowBytes'>minRowBytes</a>().
+<a href='#SkPixmap_readPixels_2_dstInfo'>dstInfo</a> specifies width, height, <a href='#Image_Info_Color_Type'>Color_Type</a>, <a href='#Image_Info_Alpha_Type'>Alpha_Type</a>, and
+<a href='#Color_Space'>Color_Space</a> of destination. <a href='#SkPixmap_readPixels_2_dstRowBytes'>dstRowBytes</a> specifics the gap from one destination
+row to the next. Returns true if pixels are copied. Returns false if
+<a href='#SkPixmap_readPixels_2_dstInfo'>dstInfo</a> has no address, or <a href='#SkPixmap_readPixels_2_dstRowBytes'>dstRowBytes</a> is less than <a href='#SkPixmap_readPixels_2_dstInfo'>dstInfo</a>.<a href='#SkImageInfo_minRowBytes'>minRowBytes</a>().
-<a href='#SkImageInfo_minRowBytes'>Pixels</a> <a href='#SkImageInfo_minRowBytes'>are</a> <a href='#SkImageInfo_minRowBytes'>copied</a> <a href='#SkImageInfo_minRowBytes'>only</a> <a href='#SkImageInfo_minRowBytes'>if</a> <a href='undocumented#Pixel'>pixel</a> <a href='undocumented#Pixel'>conversion</a> <a href='undocumented#Pixel'>is</a> <a href='undocumented#Pixel'>possible</a>. <a href='undocumented#Pixel'>If</a> <a href='SkPixmap_Reference#Pixmap'>Pixmap</a> <a href='#SkPixmap_colorType'>colorType</a> <a href='#SkPixmap_colorType'>is</a>
-<a href='SkImageInfo_Reference#kGray_8_SkColorType'>kGray_8_SkColorType</a>, <a href='SkImageInfo_Reference#kGray_8_SkColorType'>or</a> <a href='SkImageInfo_Reference#kAlpha_8_SkColorType'>kAlpha_8_SkColorType</a>; <a href='#SkPixmap_readPixels_2_dstInfo'>dstInfo</a>.<a href='#SkImageInfo_colorType'>colorType</a>() <a href='#SkImageInfo_colorType'>must</a> <a href='#SkImageInfo_colorType'>match</a>.
-<a href='#SkImageInfo_colorType'>If</a> <a href='SkPixmap_Reference#Pixmap'>Pixmap</a> <a href='#SkPixmap_colorType'>colorType</a> <a href='#SkPixmap_colorType'>is</a> <a href='SkImageInfo_Reference#kGray_8_SkColorType'>kGray_8_SkColorType</a>, <a href='#SkPixmap_readPixels_2_dstInfo'>dstInfo</a>.<a href='#SkImageInfo_colorSpace'>colorSpace</a>() <a href='#SkImageInfo_colorSpace'>must</a> <a href='#SkImageInfo_colorSpace'>match</a>.
-<a href='#SkImageInfo_colorSpace'>If</a> <a href='SkPixmap_Reference#Pixmap'>Pixmap</a> <a href='#SkPixmap_alphaType'>alphaType</a> <a href='#SkPixmap_alphaType'>is</a> <a href='SkImageInfo_Reference#kOpaque_SkAlphaType'>kOpaque_SkAlphaType</a>, <a href='#SkPixmap_readPixels_2_dstInfo'>dstInfo</a>.<a href='#SkImageInfo_alphaType'>alphaType</a>() <a href='#SkImageInfo_alphaType'>must</a>
-<a href='#SkImageInfo_alphaType'>match</a>. <a href='#SkImageInfo_alphaType'>If</a> <a href='SkPixmap_Reference#Pixmap'>Pixmap</a> <a href='#SkPixmap_colorSpace'>colorSpace</a> <a href='#SkPixmap_colorSpace'>is</a> <a href='#SkPixmap_colorSpace'>nullptr</a>, <a href='#SkPixmap_readPixels_2_dstInfo'>dstInfo</a>.<a href='#SkImageInfo_colorSpace'>colorSpace</a>() <a href='#SkImageInfo_colorSpace'>must</a> <a href='#SkImageInfo_colorSpace'>match</a>. <a href='#SkImageInfo_colorSpace'>Returns</a>
-<a href='#SkImageInfo_colorSpace'>false</a> <a href='#SkImageInfo_colorSpace'>if</a> <a href='undocumented#Pixel'>pixel</a> <a href='undocumented#Pixel'>conversion</a> <a href='undocumented#Pixel'>is</a> <a href='undocumented#Pixel'>not</a> <a href='undocumented#Pixel'>possible</a>.
+Pixels are copied only if <a href='undocumented#Pixel'>pixel</a> conversion is possible. If <a href='SkPixmap_Reference#Pixmap'>Pixmap</a> <a href='#SkPixmap_colorType'>colorType</a> is
+<a href='SkImageInfo_Reference#kGray_8_SkColorType'>kGray_8_SkColorType</a>, or <a href='SkImageInfo_Reference#kAlpha_8_SkColorType'>kAlpha_8_SkColorType</a>; <a href='#SkPixmap_readPixels_2_dstInfo'>dstInfo</a>.<a href='#SkImageInfo_colorType'>colorType</a>() must match.
+If <a href='SkPixmap_Reference#Pixmap'>Pixmap</a> <a href='#SkPixmap_colorType'>colorType</a> is <a href='SkImageInfo_Reference#kGray_8_SkColorType'>kGray_8_SkColorType</a>, <a href='#SkPixmap_readPixels_2_dstInfo'>dstInfo</a>.<a href='#SkImageInfo_colorSpace'>colorSpace</a>() must match.
+If <a href='SkPixmap_Reference#Pixmap'>Pixmap</a> <a href='#SkPixmap_alphaType'>alphaType</a> is <a href='SkImageInfo_Reference#kOpaque_SkAlphaType'>kOpaque_SkAlphaType</a>, <a href='#SkPixmap_readPixels_2_dstInfo'>dstInfo</a>.<a href='#SkImageInfo_alphaType'>alphaType</a>() must
+match. If <a href='SkPixmap_Reference#Pixmap'>Pixmap</a> <a href='#SkPixmap_colorSpace'>colorSpace</a> is nullptr, <a href='#SkPixmap_readPixels_2_dstInfo'>dstInfo</a>.<a href='#SkImageInfo_colorSpace'>colorSpace</a>() must match. Returns
+false if <a href='undocumented#Pixel'>pixel</a> conversion is not possible.
-<a href='#SkPixmap_readPixels_2_srcX'>srcX</a> <a href='#SkPixmap_readPixels_2_srcX'>and</a> <a href='#SkPixmap_readPixels_2_srcY'>srcY</a> <a href='#SkPixmap_readPixels_2_srcY'>may</a> <a href='#SkPixmap_readPixels_2_srcY'>be</a> <a href='#SkPixmap_readPixels_2_srcY'>negative</a> <a href='#SkPixmap_readPixels_2_srcY'>to</a> <a href='#SkPixmap_readPixels_2_srcY'>copy</a> <a href='#SkPixmap_readPixels_2_srcY'>only</a> <a href='#SkPixmap_readPixels_2_srcY'>top</a> <a href='#SkPixmap_readPixels_2_srcY'>or</a> <a href='#SkPixmap_readPixels_2_srcY'>left</a> <a href='#SkPixmap_readPixels_2_srcY'>of</a> <a href='#SkPixmap_readPixels_2_srcY'>source</a>. <a href='#SkPixmap_readPixels_2_srcY'>Returns</a>
-<a href='#SkPixmap_readPixels_2_srcY'>false</a> <a href='#SkPixmap_readPixels_2_srcY'>if</a> <a href='SkPixmap_Reference#Pixmap'>Pixmap</a> <a href='#SkPixmap_width'>width()</a> <a href='#SkPixmap_width'>or</a> <a href='#SkPixmap_height'>height()</a> <a href='#SkPixmap_height'>is</a> <a href='#SkPixmap_height'>zero</a> <a href='#SkPixmap_height'>or</a> <a href='#SkPixmap_height'>negative</a>. <a href='#SkPixmap_height'>Returns</a> <a href='#SkPixmap_height'>false</a> <a href='#SkPixmap_height'>if</a>:
+<a href='#SkPixmap_readPixels_2_srcX'>srcX</a> and <a href='#SkPixmap_readPixels_2_srcY'>srcY</a> may be negative to copy only top or left of source. Returns
+false if <a href='SkPixmap_Reference#Pixmap'>Pixmap</a> <a href='#SkPixmap_width'>width()</a> or <a href='#SkPixmap_height'>height()</a> is zero or negative. Returns false if:
<code><a href='undocumented#abs()'>abs</a>(<a href='#SkPixmap_readPixels_2_srcX'>srcX</a>) >= <a href='SkPixmap_Reference#Pixmap'>Pixmap</a> <a href='#SkPixmap_width'>width()</a></code>, or if <code><a href='undocumented#abs()'>abs</a>(<a href='#SkPixmap_readPixels_2_srcY'>srcY</a>) >= <a href='SkPixmap_Reference#Pixmap'>Pixmap</a> <a href='#SkPixmap_height'>height()</a></code>.
@@ -1740,31 +1740,31 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-bool <a href='#SkPixmap_readPixels'>readPixels</a>(<a href='#SkPixmap_readPixels'>const</a> <a href='SkPixmap_Reference#SkPixmap'>SkPixmap</a>& <a href='SkPixmap_Reference#SkPixmap'>dst</a>, <a href='SkPixmap_Reference#SkPixmap'>int</a> <a href='SkPixmap_Reference#SkPixmap'>srcX</a>, <a href='SkPixmap_Reference#SkPixmap'>int</a> <a href='SkPixmap_Reference#SkPixmap'>srcY</a>) <a href='SkPixmap_Reference#SkPixmap'>const</a>
+bool <a href='#SkPixmap_readPixels'>readPixels</a>(const <a href='SkPixmap_Reference#SkPixmap'>SkPixmap</a>& dst, int srcX, int srcY) const
</pre>
-Copies a <a href='SkRect_Reference#Rect'>Rect</a> <a href='SkRect_Reference#Rect'>of</a> <a href='SkRect_Reference#Rect'>pixels</a> <a href='SkRect_Reference#Rect'>to</a> <a href='#SkPixmap_readPixels_3_dst'>dst</a>. <a href='#SkPixmap_readPixels_3_dst'>Copy</a> <a href='#SkPixmap_readPixels_3_dst'>starts</a> <a href='#SkPixmap_readPixels_3_dst'>at</a> (<a href='#SkPixmap_readPixels_3_srcX'>srcX</a>, <a href='#SkPixmap_readPixels_3_srcY'>srcY</a>), <a href='#SkPixmap_readPixels_3_srcY'>and</a> <a href='#SkPixmap_readPixels_3_srcY'>does</a> <a href='#SkPixmap_readPixels_3_srcY'>not</a>
-<a href='#SkPixmap_readPixels_3_srcY'>exceed</a> <a href='SkPixmap_Reference#Pixmap'>Pixmap</a> (<a href='#SkPixmap_width'>width()</a>, <a href='#SkPixmap_height'>height()</a>). <a href='#SkPixmap_readPixels_3_dst'>dst</a> <a href='#SkPixmap_readPixels_3_dst'>specifies</a> <a href='#SkPixmap_readPixels_3_dst'>width</a>, <a href='#SkPixmap_readPixels_3_dst'>height</a>, <a href='#Image_Info_Color_Type'>Color_Type</a>,
-<a href='#Image_Info_Alpha_Type'>Alpha_Type</a>, <a href='#Image_Info_Alpha_Type'>and</a> <a href='#Color_Space'>Color_Space</a> <a href='#Color_Space'>of</a> <a href='#Color_Space'>destination</a>. <a href='#Color_Space'>Returns</a> <a href='#Color_Space'>true</a> <a href='#Color_Space'>if</a> <a href='#Color_Space'>pixels</a> <a href='#Color_Space'>are</a> <a href='#Color_Space'>copied</a>.
-<a href='#Color_Space'>Returns</a> <a href='#Color_Space'>false</a> <a href='#Color_Space'>if</a> <a href='#SkPixmap_readPixels_3_dst'>dst</a>.<a href='#SkPixmap_addr'>addr()</a> <a href='#SkPixmap_addr'>equals</a> <a href='#SkPixmap_addr'>nullptr</a>, <a href='#SkPixmap_addr'>or</a> <a href='#SkPixmap_readPixels_3_dst'>dst</a>.<a href='#SkPixmap_rowBytes'>rowBytes</a>() <a href='#SkPixmap_rowBytes'>is</a> <a href='#SkPixmap_rowBytes'>less</a> <a href='#SkPixmap_rowBytes'>than</a>
+Copies a <a href='SkRect_Reference#Rect'>Rect</a> of pixels to <a href='#SkPixmap_readPixels_3_dst'>dst</a>. Copy starts at (<a href='#SkPixmap_readPixels_3_srcX'>srcX</a>, <a href='#SkPixmap_readPixels_3_srcY'>srcY</a>), and does not
+exceed <a href='SkPixmap_Reference#Pixmap'>Pixmap</a> (<a href='#SkPixmap_width'>width()</a>, <a href='#SkPixmap_height'>height()</a>). <a href='#SkPixmap_readPixels_3_dst'>dst</a> specifies width, height, <a href='#Image_Info_Color_Type'>Color_Type</a>,
+<a href='#Image_Info_Alpha_Type'>Alpha_Type</a>, and <a href='#Color_Space'>Color_Space</a> of destination. Returns true if pixels are copied.
+Returns false if <a href='#SkPixmap_readPixels_3_dst'>dst</a>.<a href='#SkPixmap_addr'>addr()</a> equals nullptr, or <a href='#SkPixmap_readPixels_3_dst'>dst</a>.<a href='#SkPixmap_rowBytes'>rowBytes</a>() is less than
<a href='#SkPixmap_readPixels_3_dst'>dst</a> <a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a>::<a href='#SkImageInfo_minRowBytes'>minRowBytes</a>.
-<a href='#SkImageInfo_minRowBytes'>Pixels</a> <a href='#SkImageInfo_minRowBytes'>are</a> <a href='#SkImageInfo_minRowBytes'>copied</a> <a href='#SkImageInfo_minRowBytes'>only</a> <a href='#SkImageInfo_minRowBytes'>if</a> <a href='undocumented#Pixel'>pixel</a> <a href='undocumented#Pixel'>conversion</a> <a href='undocumented#Pixel'>is</a> <a href='undocumented#Pixel'>possible</a>. <a href='undocumented#Pixel'>If</a> <a href='SkPixmap_Reference#Pixmap'>Pixmap</a> <a href='#SkPixmap_colorType'>colorType</a> <a href='#SkPixmap_colorType'>is</a>
-<a href='SkImageInfo_Reference#kGray_8_SkColorType'>kGray_8_SkColorType</a>, <a href='SkImageInfo_Reference#kGray_8_SkColorType'>or</a> <a href='SkImageInfo_Reference#kAlpha_8_SkColorType'>kAlpha_8_SkColorType</a>; <a href='#SkPixmap_readPixels_3_dst'>dst</a>.<a href='#SkPixmap_info'>info()</a>.<a href='#SkImageInfo_colorType'>colorType</a>() <a href='#SkImageInfo_colorType'>must</a> <a href='#SkImageInfo_colorType'>match</a>.
-<a href='#SkImageInfo_colorType'>If</a> <a href='SkPixmap_Reference#Pixmap'>Pixmap</a> <a href='#SkPixmap_colorType'>colorType</a> <a href='#SkPixmap_colorType'>is</a> <a href='SkImageInfo_Reference#kGray_8_SkColorType'>kGray_8_SkColorType</a>, <a href='#SkPixmap_readPixels_3_dst'>dst</a>.<a href='#SkPixmap_info'>info()</a>.<a href='#SkImageInfo_colorSpace'>colorSpace</a>() <a href='#SkImageInfo_colorSpace'>must</a> <a href='#SkImageInfo_colorSpace'>match</a>.
-<a href='#SkImageInfo_colorSpace'>If</a> <a href='SkPixmap_Reference#Pixmap'>Pixmap</a> <a href='#SkPixmap_alphaType'>alphaType</a> <a href='#SkPixmap_alphaType'>is</a> <a href='SkImageInfo_Reference#kOpaque_SkAlphaType'>kOpaque_SkAlphaType</a>, <a href='#SkPixmap_readPixels_3_dst'>dst</a>.<a href='#SkPixmap_info'>info()</a>.<a href='#SkImageInfo_alphaType'>alphaType</a>() <a href='#SkImageInfo_alphaType'>must</a>
-<a href='#SkImageInfo_alphaType'>match</a>. <a href='#SkImageInfo_alphaType'>If</a> <a href='SkPixmap_Reference#Pixmap'>Pixmap</a> <a href='#SkPixmap_colorSpace'>colorSpace</a> <a href='#SkPixmap_colorSpace'>is</a> <a href='#SkPixmap_colorSpace'>nullptr</a>, <a href='#SkPixmap_readPixels_3_dst'>dst</a>.<a href='#SkPixmap_info'>info()</a>.<a href='#SkImageInfo_colorSpace'>colorSpace</a>() <a href='#SkImageInfo_colorSpace'>must</a> <a href='#SkImageInfo_colorSpace'>match</a>. <a href='#SkImageInfo_colorSpace'>Returns</a>
-<a href='#SkImageInfo_colorSpace'>false</a> <a href='#SkImageInfo_colorSpace'>if</a> <a href='undocumented#Pixel'>pixel</a> <a href='undocumented#Pixel'>conversion</a> <a href='undocumented#Pixel'>is</a> <a href='undocumented#Pixel'>not</a> <a href='undocumented#Pixel'>possible</a>.
+Pixels are copied only if <a href='undocumented#Pixel'>pixel</a> conversion is possible. If <a href='SkPixmap_Reference#Pixmap'>Pixmap</a> <a href='#SkPixmap_colorType'>colorType</a> is
+<a href='SkImageInfo_Reference#kGray_8_SkColorType'>kGray_8_SkColorType</a>, or <a href='SkImageInfo_Reference#kAlpha_8_SkColorType'>kAlpha_8_SkColorType</a>; <a href='#SkPixmap_readPixels_3_dst'>dst</a>.<a href='#SkPixmap_info'>info()</a>.<a href='#SkImageInfo_colorType'>colorType</a>() must match.
+If <a href='SkPixmap_Reference#Pixmap'>Pixmap</a> <a href='#SkPixmap_colorType'>colorType</a> is <a href='SkImageInfo_Reference#kGray_8_SkColorType'>kGray_8_SkColorType</a>, <a href='#SkPixmap_readPixels_3_dst'>dst</a>.<a href='#SkPixmap_info'>info()</a>.<a href='#SkImageInfo_colorSpace'>colorSpace</a>() must match.
+If <a href='SkPixmap_Reference#Pixmap'>Pixmap</a> <a href='#SkPixmap_alphaType'>alphaType</a> is <a href='SkImageInfo_Reference#kOpaque_SkAlphaType'>kOpaque_SkAlphaType</a>, <a href='#SkPixmap_readPixels_3_dst'>dst</a>.<a href='#SkPixmap_info'>info()</a>.<a href='#SkImageInfo_alphaType'>alphaType</a>() must
+match. If <a href='SkPixmap_Reference#Pixmap'>Pixmap</a> <a href='#SkPixmap_colorSpace'>colorSpace</a> is nullptr, <a href='#SkPixmap_readPixels_3_dst'>dst</a>.<a href='#SkPixmap_info'>info()</a>.<a href='#SkImageInfo_colorSpace'>colorSpace</a>() must match. Returns
+false if <a href='undocumented#Pixel'>pixel</a> conversion is not possible.
-<a href='#SkPixmap_readPixels_3_srcX'>srcX</a> <a href='#SkPixmap_readPixels_3_srcX'>and</a> <a href='#SkPixmap_readPixels_3_srcY'>srcY</a> <a href='#SkPixmap_readPixels_3_srcY'>may</a> <a href='#SkPixmap_readPixels_3_srcY'>be</a> <a href='#SkPixmap_readPixels_3_srcY'>negative</a> <a href='#SkPixmap_readPixels_3_srcY'>to</a> <a href='#SkPixmap_readPixels_3_srcY'>copy</a> <a href='#SkPixmap_readPixels_3_srcY'>only</a> <a href='#SkPixmap_readPixels_3_srcY'>top</a> <a href='#SkPixmap_readPixels_3_srcY'>or</a> <a href='#SkPixmap_readPixels_3_srcY'>left</a> <a href='#SkPixmap_readPixels_3_srcY'>of</a> <a href='#SkPixmap_readPixels_3_srcY'>source</a>. <a href='#SkPixmap_readPixels_3_srcY'>Returns</a>
-<a href='#SkPixmap_readPixels_3_srcY'>false</a> <a href='SkPixmap_Reference#Pixmap'>Pixmap</a> <a href='#SkPixmap_width'>width()</a> <a href='#SkPixmap_width'>or</a> <a href='#SkPixmap_height'>height()</a> <a href='#SkPixmap_height'>is</a> <a href='#SkPixmap_height'>zero</a> <a href='#SkPixmap_height'>or</a> <a href='#SkPixmap_height'>negative</a>. <a href='#SkPixmap_height'>Returns</a> <a href='#SkPixmap_height'>false</a> <a href='#SkPixmap_height'>if</a>:
+<a href='#SkPixmap_readPixels_3_srcX'>srcX</a> and <a href='#SkPixmap_readPixels_3_srcY'>srcY</a> may be negative to copy only top or left of source. Returns
+false <a href='SkPixmap_Reference#Pixmap'>Pixmap</a> <a href='#SkPixmap_width'>width()</a> or <a href='#SkPixmap_height'>height()</a> is zero or negative. Returns false if:
<code><a href='undocumented#abs()'>abs</a>(<a href='#SkPixmap_readPixels_3_srcX'>srcX</a>) >= <a href='SkPixmap_Reference#Pixmap'>Pixmap</a> <a href='#SkPixmap_width'>width()</a></code>, or if <code><a href='undocumented#abs()'>abs</a>(<a href='#SkPixmap_readPixels_3_srcY'>srcY</a>) >= <a href='SkPixmap_Reference#Pixmap'>Pixmap</a> <a href='#SkPixmap_height'>height()</a></code>.
### Parameters
<table> <tr> <td><a name='SkPixmap_readPixels_3_dst'><code><strong>dst</strong></code></a></td>
- <td><a href='#Image_Info'>Image_Info</a> <a href='#Image_Info'>and</a> <a href='undocumented#Pixel'>pixel</a> <a href='undocumented#Pixel'>address</a> <a href='undocumented#Pixel'>to</a> <a href='undocumented#Pixel'>write</a> <a href='undocumented#Pixel'>to</a></td>
+ <td><a href='#Image_Info'>Image_Info</a> and <a href='undocumented#Pixel'>pixel</a> address to write to</td>
</tr>
<tr> <td><a name='SkPixmap_readPixels_3_srcX'><code><strong>srcX</strong></code></a></td>
<td>column index whose absolute value is less than <a href='#SkPixmap_width'>width()</a></td>
@@ -1791,27 +1791,27 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-bool <a href='#SkPixmap_readPixels'>readPixels</a>(<a href='#SkPixmap_readPixels'>const</a> <a href='SkPixmap_Reference#SkPixmap'>SkPixmap</a>& <a href='SkPixmap_Reference#SkPixmap'>dst</a>) <a href='SkPixmap_Reference#SkPixmap'>const</a>
+bool <a href='#SkPixmap_readPixels'>readPixels</a>(const <a href='SkPixmap_Reference#SkPixmap'>SkPixmap</a>& dst) const
</pre>
-Copies pixels inside <a href='#SkPixmap_bounds'>bounds()</a> <a href='#SkPixmap_bounds'>to</a> <a href='#SkPixmap_readPixels_4_dst'>dst</a>. <a href='#SkPixmap_readPixels_4_dst'>dst</a> <a href='#SkPixmap_readPixels_4_dst'>specifies</a> <a href='#SkPixmap_readPixels_4_dst'>width</a>, <a href='#SkPixmap_readPixels_4_dst'>height</a>, <a href='SkImageInfo_Reference#SkColorType'>SkColorType</a>,
-<a href='SkImageInfo_Reference#SkAlphaType'>SkAlphaType</a>, <a href='SkImageInfo_Reference#SkAlphaType'>and</a> <a href='undocumented#SkColorSpace'>SkColorSpace</a> <a href='undocumented#SkColorSpace'>of</a> <a href='undocumented#SkColorSpace'>destination</a>. <a href='undocumented#SkColorSpace'>Returns</a> <a href='undocumented#SkColorSpace'>true</a> <a href='undocumented#SkColorSpace'>if</a> <a href='undocumented#SkColorSpace'>pixels</a> <a href='undocumented#SkColorSpace'>are</a> <a href='undocumented#SkColorSpace'>copied</a>.
-Returns false if <a href='#SkPixmap_readPixels_4_dst'>dst</a> <a href='#SkPixmap_readPixels_4_dst'>address</a> <a href='#SkPixmap_readPixels_4_dst'>equals</a> <a href='#SkPixmap_readPixels_4_dst'>nullptr</a>, <a href='#SkPixmap_readPixels_4_dst'>or</a> <a href='#SkPixmap_readPixels_4_dst'>dst</a>.<a href='#SkPixmap_rowBytes'>rowBytes</a>() <a href='#SkPixmap_rowBytes'>is</a> <a href='#SkPixmap_rowBytes'>less</a> <a href='#SkPixmap_rowBytes'>than</a>
+Copies pixels inside <a href='#SkPixmap_bounds'>bounds()</a> to <a href='#SkPixmap_readPixels_4_dst'>dst</a>. <a href='#SkPixmap_readPixels_4_dst'>dst</a> specifies width, height, <a href='SkImageInfo_Reference#SkColorType'>SkColorType</a>,
+<a href='SkImageInfo_Reference#SkAlphaType'>SkAlphaType</a>, and <a href='undocumented#SkColorSpace'>SkColorSpace</a> of destination. Returns true if pixels are copied.
+Returns false if <a href='#SkPixmap_readPixels_4_dst'>dst</a> address equals nullptr, or <a href='#SkPixmap_readPixels_4_dst'>dst</a>.<a href='#SkPixmap_rowBytes'>rowBytes</a>() is less than
<a href='#SkPixmap_readPixels_4_dst'>dst</a> <a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a>::<a href='#SkImageInfo_minRowBytes'>minRowBytes</a>.
-Pixels are copied only if <a href='undocumented#Pixel'>pixel</a> <a href='undocumented#Pixel'>conversion</a> <a href='undocumented#Pixel'>is</a> <a href='undocumented#Pixel'>possible</a>. <a href='undocumented#Pixel'>If</a> <a href='SkPixmap_Reference#SkPixmap'>SkPixmap</a> <a href='#SkPixmap_colorType'>colorType</a>() <a href='#SkPixmap_colorType'>is</a>
-<a href='SkImageInfo_Reference#kGray_8_SkColorType'>kGray_8_SkColorType</a>, <a href='SkImageInfo_Reference#kGray_8_SkColorType'>or</a> <a href='SkImageInfo_Reference#kAlpha_8_SkColorType'>kAlpha_8_SkColorType</a>; <a href='#SkPixmap_readPixels_4_dst'>dst</a> <a href='SkImageInfo_Reference#SkColorType'>SkColorType</a> <a href='SkImageInfo_Reference#SkColorType'>must</a> <a href='SkImageInfo_Reference#SkColorType'>match</a>.
-If <a href='SkPixmap_Reference#SkPixmap'>SkPixmap</a> <a href='#SkPixmap_colorType'>colorType</a>() <a href='#SkPixmap_colorType'>is</a> <a href='SkImageInfo_Reference#kGray_8_SkColorType'>kGray_8_SkColorType</a>, <a href='#SkPixmap_readPixels_4_dst'>dst</a> <a href='undocumented#SkColorSpace'>SkColorSpace</a> <a href='undocumented#SkColorSpace'>must</a> <a href='undocumented#SkColorSpace'>match</a>.
-If <a href='SkPixmap_Reference#SkPixmap'>SkPixmap</a> <a href='#SkPixmap_alphaType'>alphaType</a>() <a href='#SkPixmap_alphaType'>is</a> <a href='SkImageInfo_Reference#kOpaque_SkAlphaType'>kOpaque_SkAlphaType</a>, <a href='#SkPixmap_readPixels_4_dst'>dst</a> <a href='SkImageInfo_Reference#SkAlphaType'>SkAlphaType</a> <a href='SkImageInfo_Reference#SkAlphaType'>must</a>
-match. If <a href='SkPixmap_Reference#SkPixmap'>SkPixmap</a> <a href='#SkPixmap_colorSpace'>colorSpace</a>() <a href='#SkPixmap_colorSpace'>is</a> <a href='#SkPixmap_colorSpace'>nullptr</a>, <a href='#SkPixmap_readPixels_4_dst'>dst</a> <a href='undocumented#SkColorSpace'>SkColorSpace</a> <a href='undocumented#SkColorSpace'>must</a> <a href='undocumented#SkColorSpace'>match</a>. <a href='undocumented#SkColorSpace'>Returns</a>
-false if <a href='undocumented#Pixel'>pixel</a> <a href='undocumented#Pixel'>conversion</a> <a href='undocumented#Pixel'>is</a> <a href='undocumented#Pixel'>not</a> <a href='undocumented#Pixel'>possible</a>.
+Pixels are copied only if <a href='undocumented#Pixel'>pixel</a> conversion is possible. If <a href='SkPixmap_Reference#SkPixmap'>SkPixmap</a> <a href='#SkPixmap_colorType'>colorType</a>() is
+<a href='SkImageInfo_Reference#kGray_8_SkColorType'>kGray_8_SkColorType</a>, or <a href='SkImageInfo_Reference#kAlpha_8_SkColorType'>kAlpha_8_SkColorType</a>; <a href='#SkPixmap_readPixels_4_dst'>dst</a> <a href='SkImageInfo_Reference#SkColorType'>SkColorType</a> must match.
+If <a href='SkPixmap_Reference#SkPixmap'>SkPixmap</a> <a href='#SkPixmap_colorType'>colorType</a>() is <a href='SkImageInfo_Reference#kGray_8_SkColorType'>kGray_8_SkColorType</a>, <a href='#SkPixmap_readPixels_4_dst'>dst</a> <a href='undocumented#SkColorSpace'>SkColorSpace</a> must match.
+If <a href='SkPixmap_Reference#SkPixmap'>SkPixmap</a> <a href='#SkPixmap_alphaType'>alphaType</a>() is <a href='SkImageInfo_Reference#kOpaque_SkAlphaType'>kOpaque_SkAlphaType</a>, <a href='#SkPixmap_readPixels_4_dst'>dst</a> <a href='SkImageInfo_Reference#SkAlphaType'>SkAlphaType</a> must
+match. If <a href='SkPixmap_Reference#SkPixmap'>SkPixmap</a> <a href='#SkPixmap_colorSpace'>colorSpace</a>() is nullptr, <a href='#SkPixmap_readPixels_4_dst'>dst</a> <a href='undocumented#SkColorSpace'>SkColorSpace</a> must match. Returns
+false if <a href='undocumented#Pixel'>pixel</a> conversion is not possible.
-Returns false if <a href='SkPixmap_Reference#SkPixmap'>SkPixmap</a> <a href='#SkPixmap_width'>width()</a> <a href='#SkPixmap_width'>or</a> <a href='#SkPixmap_height'>height()</a> <a href='#SkPixmap_height'>is</a> <a href='#SkPixmap_height'>zero</a> <a href='#SkPixmap_height'>or</a> <a href='#SkPixmap_height'>negative</a>.
+Returns false if <a href='SkPixmap_Reference#SkPixmap'>SkPixmap</a> <a href='#SkPixmap_width'>width()</a> or <a href='#SkPixmap_height'>height()</a> is zero or negative.
### Parameters
<table> <tr> <td><a name='SkPixmap_readPixels_4_dst'><code><strong>dst</strong></code></a></td>
- <td><a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a> <a href='SkImageInfo_Reference#SkImageInfo'>and</a> <a href='undocumented#Pixel'>pixel</a> <a href='undocumented#Pixel'>address</a> <a href='undocumented#Pixel'>to</a> <a href='undocumented#Pixel'>write</a> <a href='undocumented#Pixel'>to</a></td>
+ <td><a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a> and <a href='undocumented#Pixel'>pixel</a> address to write to</td>
</tr>
</table>
@@ -1832,34 +1832,34 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-bool <a href='#SkPixmap_scalePixels'>scalePixels</a>(<a href='#SkPixmap_scalePixels'>const</a> <a href='SkPixmap_Reference#SkPixmap'>SkPixmap</a>& <a href='SkPixmap_Reference#SkPixmap'>dst</a>, <a href='undocumented#SkFilterQuality'>SkFilterQuality</a> <a href='undocumented#SkFilterQuality'>filterQuality</a>) <a href='undocumented#SkFilterQuality'>const</a>
+bool <a href='#SkPixmap_scalePixels'>scalePixels</a>(const <a href='SkPixmap_Reference#SkPixmap'>SkPixmap</a>& dst, <a href='undocumented#SkFilterQuality'>SkFilterQuality</a> filterQuality) const
</pre>
-Copies <a href='SkBitmap_Reference#SkBitmap'>SkBitmap</a> <a href='SkBitmap_Reference#SkBitmap'>to</a> <a href='#SkPixmap_scalePixels_dst'>dst</a>, <a href='#SkPixmap_scalePixels_dst'>scaling</a> <a href='#SkPixmap_scalePixels_dst'>pixels</a> <a href='#SkPixmap_scalePixels_dst'>to</a> <a href='#SkPixmap_scalePixels_dst'>fit</a> <a href='#SkPixmap_scalePixels_dst'>dst</a>.<a href='#SkPixmap_width'>width()</a> <a href='#SkPixmap_width'>and</a> <a href='#SkPixmap_scalePixels_dst'>dst</a>.<a href='#SkPixmap_height'>height()</a>, <a href='#SkPixmap_height'>and</a>
-converting pixels to match <a href='#SkPixmap_scalePixels_dst'>dst</a>.<a href='#SkPixmap_colorType'>colorType</a>() <a href='#SkPixmap_colorType'>and</a> <a href='#SkPixmap_scalePixels_dst'>dst</a>.<a href='#SkPixmap_alphaType'>alphaType</a>(). <a href='#SkPixmap_alphaType'>Returns</a> <a href='#SkPixmap_alphaType'>true</a> <a href='#SkPixmap_alphaType'>if</a>
-pixels are copied. Returns false if <a href='#SkPixmap_scalePixels_dst'>dst</a> <a href='#SkPixmap_scalePixels_dst'>address</a> <a href='#SkPixmap_scalePixels_dst'>is</a> <a href='#SkPixmap_scalePixels_dst'>nullptr</a>, <a href='#SkPixmap_scalePixels_dst'>or</a> <a href='#SkPixmap_scalePixels_dst'>dst</a>.<a href='#SkPixmap_rowBytes'>rowBytes</a>() <a href='#SkPixmap_rowBytes'>is</a>
+Copies <a href='SkBitmap_Reference#SkBitmap'>SkBitmap</a> to <a href='#SkPixmap_scalePixels_dst'>dst</a>, scaling pixels to fit <a href='#SkPixmap_scalePixels_dst'>dst</a>.<a href='#SkPixmap_width'>width()</a> and <a href='#SkPixmap_scalePixels_dst'>dst</a>.<a href='#SkPixmap_height'>height()</a>, and
+converting pixels to match <a href='#SkPixmap_scalePixels_dst'>dst</a>.<a href='#SkPixmap_colorType'>colorType</a>() and <a href='#SkPixmap_scalePixels_dst'>dst</a>.<a href='#SkPixmap_alphaType'>alphaType</a>(). Returns true if
+pixels are copied. Returns false if <a href='#SkPixmap_scalePixels_dst'>dst</a> address is nullptr, or <a href='#SkPixmap_scalePixels_dst'>dst</a>.<a href='#SkPixmap_rowBytes'>rowBytes</a>() is
less than <a href='#SkPixmap_scalePixels_dst'>dst</a> <a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a>::<a href='#SkImageInfo_minRowBytes'>minRowBytes</a>.
-Pixels are copied only if <a href='undocumented#Pixel'>pixel</a> <a href='undocumented#Pixel'>conversion</a> <a href='undocumented#Pixel'>is</a> <a href='undocumented#Pixel'>possible</a>. <a href='undocumented#Pixel'>If</a> <a href='SkPixmap_Reference#SkPixmap'>SkPixmap</a> <a href='#SkPixmap_colorType'>colorType</a>() <a href='#SkPixmap_colorType'>is</a>
-<a href='SkImageInfo_Reference#kGray_8_SkColorType'>kGray_8_SkColorType</a>, <a href='SkImageInfo_Reference#kGray_8_SkColorType'>or</a> <a href='SkImageInfo_Reference#kAlpha_8_SkColorType'>kAlpha_8_SkColorType</a>; <a href='#SkPixmap_scalePixels_dst'>dst</a> <a href='SkImageInfo_Reference#SkColorType'>SkColorType</a> <a href='SkImageInfo_Reference#SkColorType'>must</a> <a href='SkImageInfo_Reference#SkColorType'>match</a>.
-If <a href='SkPixmap_Reference#SkPixmap'>SkPixmap</a> <a href='#SkPixmap_colorType'>colorType</a>() <a href='#SkPixmap_colorType'>is</a> <a href='SkImageInfo_Reference#kGray_8_SkColorType'>kGray_8_SkColorType</a>, <a href='#SkPixmap_scalePixels_dst'>dst</a> <a href='undocumented#SkColorSpace'>SkColorSpace</a> <a href='undocumented#SkColorSpace'>must</a> <a href='undocumented#SkColorSpace'>match</a>.
-If <a href='SkPixmap_Reference#SkPixmap'>SkPixmap</a> <a href='#SkPixmap_alphaType'>alphaType</a>() <a href='#SkPixmap_alphaType'>is</a> <a href='SkImageInfo_Reference#kOpaque_SkAlphaType'>kOpaque_SkAlphaType</a>, <a href='#SkPixmap_scalePixels_dst'>dst</a> <a href='SkImageInfo_Reference#SkAlphaType'>SkAlphaType</a> <a href='SkImageInfo_Reference#SkAlphaType'>must</a>
-match. If <a href='SkPixmap_Reference#SkPixmap'>SkPixmap</a> <a href='#SkPixmap_colorSpace'>colorSpace</a>() <a href='#SkPixmap_colorSpace'>is</a> <a href='#SkPixmap_colorSpace'>nullptr</a>, <a href='#SkPixmap_scalePixels_dst'>dst</a> <a href='undocumented#SkColorSpace'>SkColorSpace</a> <a href='undocumented#SkColorSpace'>must</a> <a href='undocumented#SkColorSpace'>match</a>. <a href='undocumented#SkColorSpace'>Returns</a>
-false if <a href='undocumented#Pixel'>pixel</a> <a href='undocumented#Pixel'>conversion</a> <a href='undocumented#Pixel'>is</a> <a href='undocumented#Pixel'>not</a> <a href='undocumented#Pixel'>possible</a>.
+Pixels are copied only if <a href='undocumented#Pixel'>pixel</a> conversion is possible. If <a href='SkPixmap_Reference#SkPixmap'>SkPixmap</a> <a href='#SkPixmap_colorType'>colorType</a>() is
+<a href='SkImageInfo_Reference#kGray_8_SkColorType'>kGray_8_SkColorType</a>, or <a href='SkImageInfo_Reference#kAlpha_8_SkColorType'>kAlpha_8_SkColorType</a>; <a href='#SkPixmap_scalePixels_dst'>dst</a> <a href='SkImageInfo_Reference#SkColorType'>SkColorType</a> must match.
+If <a href='SkPixmap_Reference#SkPixmap'>SkPixmap</a> <a href='#SkPixmap_colorType'>colorType</a>() is <a href='SkImageInfo_Reference#kGray_8_SkColorType'>kGray_8_SkColorType</a>, <a href='#SkPixmap_scalePixels_dst'>dst</a> <a href='undocumented#SkColorSpace'>SkColorSpace</a> must match.
+If <a href='SkPixmap_Reference#SkPixmap'>SkPixmap</a> <a href='#SkPixmap_alphaType'>alphaType</a>() is <a href='SkImageInfo_Reference#kOpaque_SkAlphaType'>kOpaque_SkAlphaType</a>, <a href='#SkPixmap_scalePixels_dst'>dst</a> <a href='SkImageInfo_Reference#SkAlphaType'>SkAlphaType</a> must
+match. If <a href='SkPixmap_Reference#SkPixmap'>SkPixmap</a> <a href='#SkPixmap_colorSpace'>colorSpace</a>() is nullptr, <a href='#SkPixmap_scalePixels_dst'>dst</a> <a href='undocumented#SkColorSpace'>SkColorSpace</a> must match. Returns
+false if <a href='undocumented#Pixel'>pixel</a> conversion is not possible.
-Returns false if <a href='SkBitmap_Reference#SkBitmap'>SkBitmap</a> <a href='#SkPixmap_width'>width()</a> <a href='#SkPixmap_width'>or</a> <a href='#SkPixmap_height'>height()</a> <a href='#SkPixmap_height'>is</a> <a href='#SkPixmap_height'>zero</a> <a href='#SkPixmap_height'>or</a> <a href='#SkPixmap_height'>negative</a>.
+Returns false if <a href='SkBitmap_Reference#SkBitmap'>SkBitmap</a> <a href='#SkPixmap_width'>width()</a> or <a href='#SkPixmap_height'>height()</a> is zero or negative.
-Scales the <a href='SkImage_Reference#Image'>image</a>, <a href='SkImage_Reference#Image'>with</a> <a href='#SkPixmap_scalePixels_filterQuality'>filterQuality</a>, <a href='#SkPixmap_scalePixels_filterQuality'>to</a> <a href='#SkPixmap_scalePixels_filterQuality'>match</a> <a href='#SkPixmap_scalePixels_dst'>dst</a>.<a href='#SkPixmap_width'>width()</a> <a href='#SkPixmap_width'>and</a> <a href='#SkPixmap_scalePixels_dst'>dst</a>.<a href='#SkPixmap_height'>height()</a>.
-<a href='#SkPixmap_scalePixels_filterQuality'>filterQuality</a> <a href='undocumented#kNone_SkFilterQuality'>kNone_SkFilterQuality</a> <a href='undocumented#kNone_SkFilterQuality'>is</a> <a href='undocumented#kNone_SkFilterQuality'>fastest</a>, <a href='undocumented#kNone_SkFilterQuality'>typically</a> <a href='undocumented#kNone_SkFilterQuality'>implemented</a> <a href='undocumented#kNone_SkFilterQuality'>with</a>
-<a href='undocumented#Nearest_Neighbor'>nearest neighbor filter</a>. <a href='undocumented#kLow_SkFilterQuality'>kLow_SkFilterQuality</a> <a href='undocumented#kLow_SkFilterQuality'>is</a> <a href='undocumented#kLow_SkFilterQuality'>typically</a> <a href='undocumented#kLow_SkFilterQuality'>implemented</a> <a href='undocumented#kLow_SkFilterQuality'>with</a>
-<a href='undocumented#Bilerp'>bilerp filter</a>. <a href='undocumented#kMedium_SkFilterQuality'>kMedium_SkFilterQuality</a> <a href='undocumented#kMedium_SkFilterQuality'>is</a> <a href='undocumented#kMedium_SkFilterQuality'>typically</a> <a href='undocumented#kMedium_SkFilterQuality'>implemented</a> <a href='undocumented#kMedium_SkFilterQuality'>with</a>
-<a href='undocumented#Bilerp'>bilerp filter</a>, and <a href='undocumented#MipMap'>mip-map filter</a> when <a href='undocumented#Size'>size</a> <a href='undocumented#Size'>is</a> <a href='undocumented#Size'>reduced</a>.
-<a href='undocumented#kHigh_SkFilterQuality'>kHigh_SkFilterQuality</a> <a href='undocumented#kHigh_SkFilterQuality'>is</a> <a href='undocumented#kHigh_SkFilterQuality'>slowest</a>, <a href='undocumented#kHigh_SkFilterQuality'>typically</a> <a href='undocumented#kHigh_SkFilterQuality'>implemented</a> <a href='undocumented#kHigh_SkFilterQuality'>with</a> <a href='undocumented#BiCubic'>bicubic filter</a>.
+Scales the <a href='SkImage_Reference#Image'>image</a>, with <a href='#SkPixmap_scalePixels_filterQuality'>filterQuality</a>, to match <a href='#SkPixmap_scalePixels_dst'>dst</a>.<a href='#SkPixmap_width'>width()</a> and <a href='#SkPixmap_scalePixels_dst'>dst</a>.<a href='#SkPixmap_height'>height()</a>.
+<a href='#SkPixmap_scalePixels_filterQuality'>filterQuality</a> <a href='undocumented#kNone_SkFilterQuality'>kNone_SkFilterQuality</a> is fastest, typically implemented with
+<a href='undocumented#Nearest_Neighbor'>nearest neighbor filter</a>. <a href='undocumented#kLow_SkFilterQuality'>kLow_SkFilterQuality</a> is typically implemented with
+<a href='undocumented#Bilerp'>bilerp filter</a>. <a href='undocumented#kMedium_SkFilterQuality'>kMedium_SkFilterQuality</a> is typically implemented with
+<a href='undocumented#Bilerp'>bilerp filter</a>, and <a href='undocumented#MipMap'>mip-map filter</a> when <a href='undocumented#Size'>size</a> is reduced.
+<a href='undocumented#kHigh_SkFilterQuality'>kHigh_SkFilterQuality</a> is slowest, typically implemented with <a href='undocumented#BiCubic'>bicubic filter</a>.
### Parameters
<table> <tr> <td><a name='SkPixmap_scalePixels_dst'><code><strong>dst</strong></code></a></td>
- <td><a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a> <a href='SkImageInfo_Reference#SkImageInfo'>and</a> <a href='undocumented#Pixel'>pixel</a> <a href='undocumented#Pixel'>address</a> <a href='undocumented#Pixel'>to</a> <a href='undocumented#Pixel'>write</a> <a href='undocumented#Pixel'>to</a></td>
+ <td><a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a> and <a href='undocumented#Pixel'>pixel</a> address to write to</td>
</tr>
<tr> <td><a name='SkPixmap_scalePixels_filterQuality'><code><strong>filterQuality</strong></code></a></td>
<td>one of: <a href='undocumented#kNone_SkFilterQuality'>kNone_SkFilterQuality</a>, <a href='undocumented#kLow_SkFilterQuality'>kLow_SkFilterQuality</a>,</td>
@@ -1885,20 +1885,20 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-bool <a href='#SkPixmap_erase'>erase</a>(<a href='SkColor_Reference#SkColor'>SkColor</a> <a href='SkColor_Reference#Color'>color</a>, <a href='SkColor_Reference#Color'>const</a> <a href='SkIRect_Reference#SkIRect'>SkIRect</a>& <a href='SkIRect_Reference#SkIRect'>subset</a>) <a href='SkIRect_Reference#SkIRect'>const</a>
+bool <a href='#SkPixmap_erase'>erase</a>(<a href='SkColor_Reference#SkColor'>SkColor</a> <a href='SkColor_Reference#Color'>color</a>, const <a href='SkIRect_Reference#SkIRect'>SkIRect</a>& subset) const
</pre>
-Writes <a href='#SkPixmap_erase_color'>color</a> <a href='#SkPixmap_erase_color'>to</a> <a href='#SkPixmap_erase_color'>pixels</a> <a href='#SkPixmap_erase_color'>bounded</a> <a href='#SkPixmap_erase_color'>by</a> <a href='#SkPixmap_erase_subset'>subset</a>; <a href='#SkPixmap_erase_subset'>returns</a> <a href='#SkPixmap_erase_subset'>true</a> <a href='#SkPixmap_erase_subset'>on</a> <a href='#SkPixmap_erase_subset'>success</a>.
-Returns false if <a href='#SkPixmap_colorType'>colorType</a>() <a href='#SkPixmap_colorType'>is</a> <a href='SkImageInfo_Reference#kUnknown_SkColorType'>kUnknown_SkColorType</a>, <a href='SkImageInfo_Reference#kUnknown_SkColorType'>or</a> <a href='SkImageInfo_Reference#kUnknown_SkColorType'>if</a> <a href='#SkPixmap_erase_subset'>subset</a> <a href='#SkPixmap_erase_subset'>does</a>
+Writes <a href='#SkPixmap_erase_color'>color</a> to pixels bounded by <a href='#SkPixmap_erase_subset'>subset</a>; returns true on success.
+Returns false if <a href='#SkPixmap_colorType'>colorType</a>() is <a href='SkImageInfo_Reference#kUnknown_SkColorType'>kUnknown_SkColorType</a>, or if <a href='#SkPixmap_erase_subset'>subset</a> does
not intersect <a href='#SkPixmap_bounds'>bounds()</a>.
### Parameters
<table> <tr> <td><a name='SkPixmap_erase_color'><code><strong>color</strong></code></a></td>
- <td><a href='undocumented#Unpremultiply'>unpremultiplied</a> <a href='#SkPixmap_erase_color'>color</a> <a href='#SkPixmap_erase_color'>to</a> <a href='#SkPixmap_erase_color'>write</a></td>
+ <td><a href='undocumented#Unpremultiply'>unpremultiplied</a> <a href='#SkPixmap_erase_color'>color</a> to write</td>
</tr>
<tr> <td><a name='SkPixmap_erase_subset'><code><strong>subset</strong></code></a></td>
- <td>bounding integer <a href='SkRect_Reference#SkRect'>SkRect</a> <a href='SkRect_Reference#SkRect'>of</a> <a href='SkRect_Reference#SkRect'>written</a> <a href='SkRect_Reference#SkRect'>pixels</a></td>
+ <td>bounding integer <a href='SkRect_Reference#SkRect'>SkRect</a> of written pixels</td>
</tr>
</table>
@@ -1919,17 +1919,17 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-bool <a href='#SkPixmap_erase'>erase</a>(<a href='SkColor_Reference#SkColor'>SkColor</a> <a href='SkColor_Reference#Color'>color</a>) <a href='SkColor_Reference#Color'>const</a>
+bool <a href='#SkPixmap_erase'>erase</a>(<a href='SkColor_Reference#SkColor'>SkColor</a> <a href='SkColor_Reference#Color'>color</a>) const
</pre>
-Writes <a href='#SkPixmap_erase_2_color'>color</a> <a href='#SkPixmap_erase_2_color'>to</a> <a href='#SkPixmap_erase_2_color'>pixels</a> <a href='#SkPixmap_erase_2_color'>inside</a> <a href='#SkPixmap_bounds'>bounds()</a>; <a href='#SkPixmap_bounds'>returns</a> <a href='#SkPixmap_bounds'>true</a> <a href='#SkPixmap_bounds'>on</a> <a href='#SkPixmap_bounds'>success</a>.
-Returns false if <a href='#SkPixmap_colorType'>colorType</a>() <a href='#SkPixmap_colorType'>is</a> <a href='SkImageInfo_Reference#kUnknown_SkColorType'>kUnknown_SkColorType</a>, <a href='SkImageInfo_Reference#kUnknown_SkColorType'>or</a> <a href='SkImageInfo_Reference#kUnknown_SkColorType'>if</a> <a href='#SkPixmap_bounds'>bounds()</a>
+Writes <a href='#SkPixmap_erase_2_color'>color</a> to pixels inside <a href='#SkPixmap_bounds'>bounds()</a>; returns true on success.
+Returns false if <a href='#SkPixmap_colorType'>colorType</a>() is <a href='SkImageInfo_Reference#kUnknown_SkColorType'>kUnknown_SkColorType</a>, or if <a href='#SkPixmap_bounds'>bounds()</a>
is empty.
### Parameters
<table> <tr> <td><a name='SkPixmap_erase_2_color'><code><strong>color</strong></code></a></td>
- <td><a href='undocumented#Unpremultiply'>unpremultiplied</a> <a href='#SkPixmap_erase_2_color'>color</a> <a href='#SkPixmap_erase_2_color'>to</a> <a href='#SkPixmap_erase_2_color'>write</a></td>
+ <td><a href='undocumented#Unpremultiply'>unpremultiplied</a> <a href='#SkPixmap_erase_2_color'>color</a> to write</td>
</tr>
</table>
@@ -1950,21 +1950,21 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-bool <a href='#SkPixmap_erase'>erase</a>(<a href='#SkPixmap_erase'>const</a> <a href='SkColor4f_Reference#SkColor4f'>SkColor4f</a>& <a href='SkColor_Reference#Color'>color</a>, <a href='SkColor_Reference#Color'>const</a> <a href='SkIRect_Reference#SkIRect'>SkIRect</a>* <a href='SkIRect_Reference#SkIRect'>subset</a> = <a href='SkIRect_Reference#SkIRect'>nullptr</a>) <a href='SkIRect_Reference#SkIRect'>const</a>
+bool <a href='#SkPixmap_erase'>erase</a>(const <a href='SkColor4f_Reference#SkColor4f'>SkColor4f</a>& <a href='SkColor_Reference#Color'>color</a>, const <a href='SkIRect_Reference#SkIRect'>SkIRect</a>* subset = nullptr) const
</pre>
-Writes <a href='#SkPixmap_erase_3_color'>color</a> <a href='#SkPixmap_erase_3_color'>to</a> <a href='#SkPixmap_erase_3_color'>pixels</a> <a href='#SkPixmap_erase_3_color'>bounded</a> <a href='#SkPixmap_erase_3_color'>by</a> <a href='#SkPixmap_erase_3_subset'>subset</a>; <a href='#SkPixmap_erase_3_subset'>returns</a> <a href='#SkPixmap_erase_3_subset'>true</a> <a href='#SkPixmap_erase_3_subset'>on</a> <a href='#SkPixmap_erase_3_subset'>success</a>.
-if <a href='#SkPixmap_erase_3_subset'>subset</a> <a href='#SkPixmap_erase_3_subset'>is</a> <a href='#SkPixmap_erase_3_subset'>nullptr</a>, <a href='#SkPixmap_erase_3_subset'>writes</a> <a href='#SkPixmap_erase_3_subset'>colors</a> <a href='#SkPixmap_erase_3_subset'>pixels</a> <a href='#SkPixmap_erase_3_subset'>inside</a> <a href='#SkPixmap_bounds'>bounds()</a>. <a href='#SkPixmap_bounds'>Returns</a> <a href='#SkPixmap_bounds'>false</a> <a href='#SkPixmap_bounds'>if</a>
-<a href='#SkPixmap_colorType'>colorType</a>() <a href='#SkPixmap_colorType'>is</a> <a href='SkImageInfo_Reference#kUnknown_SkColorType'>kUnknown_SkColorType</a>, <a href='SkImageInfo_Reference#kUnknown_SkColorType'>if</a> <a href='#SkPixmap_erase_3_subset'>subset</a> <a href='#SkPixmap_erase_3_subset'>is</a> <a href='#SkPixmap_erase_3_subset'>not</a> <a href='#SkPixmap_erase_3_subset'>nullptr</a> <a href='#SkPixmap_erase_3_subset'>and</a> <a href='#SkPixmap_erase_3_subset'>does</a>
-not intersect <a href='#SkPixmap_bounds'>bounds()</a>, <a href='#SkPixmap_bounds'>or</a> <a href='#SkPixmap_bounds'>if</a> <a href='#SkPixmap_erase_3_subset'>subset</a> <a href='#SkPixmap_erase_3_subset'>is</a> <a href='#SkPixmap_erase_3_subset'>nullptr</a> <a href='#SkPixmap_erase_3_subset'>and</a> <a href='#SkPixmap_bounds'>bounds()</a> <a href='#SkPixmap_bounds'>is</a> <a href='#SkPixmap_bounds'>empty</a>.
+Writes <a href='#SkPixmap_erase_3_color'>color</a> to pixels bounded by <a href='#SkPixmap_erase_3_subset'>subset</a>; returns true on success.
+if <a href='#SkPixmap_erase_3_subset'>subset</a> is nullptr, writes colors pixels inside <a href='#SkPixmap_bounds'>bounds()</a>. Returns false if
+<a href='#SkPixmap_colorType'>colorType</a>() is <a href='SkImageInfo_Reference#kUnknown_SkColorType'>kUnknown_SkColorType</a>, if <a href='#SkPixmap_erase_3_subset'>subset</a> is not nullptr and does
+not intersect <a href='#SkPixmap_bounds'>bounds()</a>, or if <a href='#SkPixmap_erase_3_subset'>subset</a> is nullptr and <a href='#SkPixmap_bounds'>bounds()</a> is empty.
### Parameters
<table> <tr> <td><a name='SkPixmap_erase_3_color'><code><strong>color</strong></code></a></td>
- <td><a href='undocumented#Unpremultiply'>unpremultiplied</a> <a href='#SkPixmap_erase_3_color'>color</a> <a href='#SkPixmap_erase_3_color'>to</a> <a href='#SkPixmap_erase_3_color'>write</a></td>
+ <td><a href='undocumented#Unpremultiply'>unpremultiplied</a> <a href='#SkPixmap_erase_3_color'>color</a> to write</td>
</tr>
<tr> <td><a name='SkPixmap_erase_3_subset'><code><strong>subset</strong></code></a></td>
- <td>bounding integer <a href='SkRect_Reference#SkRect'>SkRect</a> <a href='SkRect_Reference#SkRect'>of</a> <a href='SkRect_Reference#SkRect'>pixels</a> <a href='SkRect_Reference#SkRect'>to</a> <a href='SkRect_Reference#SkRect'>write</a>; <a href='SkRect_Reference#SkRect'>may</a> <a href='SkRect_Reference#SkRect'>be</a> <a href='SkRect_Reference#SkRect'>nullptr</a></td>
+ <td>bounding integer <a href='SkRect_Reference#SkRect'>SkRect</a> of pixels to write; may be nullptr</td>
</tr>
</table>
diff --git a/site/user/api/SkPoint_Reference.md b/site/user/api/SkPoint_Reference.md
index b3435cf..332e3ea 100644
--- a/site/user/api/SkPoint_Reference.md
+++ b/site/user/api/SkPoint_Reference.md
@@ -11,48 +11,48 @@
<a href='undocumented#SkScalar'>SkScalar</a> <a href='#SkPoint_fX'>fX</a>;
<a href='undocumented#SkScalar'>SkScalar</a> <a href='#SkPoint_fY'>fY</a>;
- <a href='#SkPoint_fY'>static</a> <a href='#SkPoint_fY'>constexpr</a> <a href='SkPoint_Reference#SkPoint'>SkPoint</a> <a href='#SkPoint_Make'>Make</a>(<a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>x</a>, <a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>y</a>);
- <a href='undocumented#SkScalar'>SkScalar</a> <a href='#SkPoint_x'>x()</a> <a href='#SkPoint_x'>const</a>;
- <a href='undocumented#SkScalar'>SkScalar</a> <a href='#SkPoint_y'>y()</a> <a href='#SkPoint_y'>const</a>;
- <a href='#SkPoint_y'>bool</a> <a href='#SkPoint_isZero'>isZero</a>() <a href='#SkPoint_isZero'>const</a>;
- <a href='#SkPoint_isZero'>void</a> <a href='#SkPoint_isZero'>set</a>(<a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>x</a>, <a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>y</a>);
- <a href='undocumented#SkScalar'>void</a> <a href='#SkPoint_iset'>iset</a>(<a href='#SkPoint_iset'>int32_t</a> <a href='#SkPoint_iset'>x</a>, <a href='#SkPoint_iset'>int32_t</a> <a href='#SkPoint_iset'>y</a>);
- <a href='#SkPoint_iset'>void</a> <a href='#SkPoint_iset'>iset</a>(<a href='#SkPoint_iset'>const</a> <a href='SkIPoint_Reference#SkIPoint'>SkIPoint</a>& <a href='SkIPoint_Reference#SkIPoint'>p</a>);
- <a href='SkIPoint_Reference#SkIPoint'>void</a> <a href='#SkPoint_setAbs'>setAbs</a>(<a href='#SkPoint_setAbs'>const</a> <a href='SkPoint_Reference#SkPoint'>SkPoint</a>& <a href='SkPoint_Reference#SkPoint'>pt</a>);
- <a href='SkPoint_Reference#SkPoint'>static</a> <a href='SkPoint_Reference#SkPoint'>void</a> <a href='#SkPoint_Offset'>Offset</a>(<a href='SkPoint_Reference#SkPoint'>SkPoint</a> <a href='SkPoint_Reference#Point'>points</a>[], <a href='SkPoint_Reference#Point'>int</a> <a href='SkPoint_Reference#Point'>count</a>, <a href='SkPoint_Reference#Point'>const</a> <a href='SkPoint_Reference#SkVector'>SkVector</a>& <a href='SkPoint_Reference#SkVector'>offset</a>);
- <a href='SkPoint_Reference#SkVector'>static</a> <a href='SkPoint_Reference#SkVector'>void</a> <a href='#SkPoint_Offset'>Offset</a>(<a href='SkPoint_Reference#SkPoint'>SkPoint</a> <a href='SkPoint_Reference#Point'>points</a>[], <a href='SkPoint_Reference#Point'>int</a> <a href='SkPoint_Reference#Point'>count</a>, <a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>dx</a>, <a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>dy</a>);
- <a href='undocumented#SkScalar'>void</a> <a href='undocumented#SkScalar'>offset</a>(<a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>dx</a>, <a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>dy</a>);
- <a href='undocumented#SkScalar'>SkScalar</a> <a href='#SkPoint_length'>length()</a> <a href='#SkPoint_length'>const</a>;
- <a href='undocumented#SkScalar'>SkScalar</a> <a href='#SkPoint_distanceToOrigin'>distanceToOrigin</a>() <a href='#SkPoint_distanceToOrigin'>const</a>;
- <a href='#SkPoint_distanceToOrigin'>bool</a> <a href='#SkPoint_normalize'>normalize()</a>;
- <a href='#SkPoint_normalize'>bool</a> <a href='#SkPoint_setNormalize'>setNormalize</a>(<a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>x</a>, <a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>y</a>);
- <a href='undocumented#SkScalar'>bool</a> <a href='#SkPoint_setLength'>setLength</a>(<a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>length</a>);
- <a href='undocumented#SkScalar'>bool</a> <a href='#SkPoint_setLength'>setLength</a>(<a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>x</a>, <a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>y</a>, <a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>length</a>);
- <a href='undocumented#SkScalar'>void</a> <a href='undocumented#SkScalar'>scale</a>(<a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>scale</a>, <a href='SkPoint_Reference#SkPoint'>SkPoint</a>* <a href='SkPoint_Reference#SkPoint'>dst</a>) <a href='SkPoint_Reference#SkPoint'>const</a>;
- <a href='SkPoint_Reference#SkPoint'>void</a> <a href='SkPoint_Reference#SkPoint'>scale</a>(<a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>value</a>);
- <a href='undocumented#SkScalar'>void</a> <a href='#SkPoint_negate'>negate()</a>;
- <a href='SkPoint_Reference#SkPoint'>SkPoint</a> <a href='SkPoint_Reference#SkPoint'>operator</a>-() <a href='SkPoint_Reference#SkPoint'>const</a>;
- <a href='SkPoint_Reference#SkPoint'>void</a> <a href='SkPoint_Reference#SkPoint'>operator</a>+=(<a href='SkPoint_Reference#SkPoint'>const</a> <a href='SkPoint_Reference#SkVector'>SkVector</a>& <a href='SkPoint_Reference#SkVector'>v</a>);
- <a href='SkPoint_Reference#SkVector'>void</a> <a href='SkPoint_Reference#SkVector'>operator</a>-=(<a href='SkPoint_Reference#SkVector'>const</a> <a href='SkPoint_Reference#SkVector'>SkVector</a>& <a href='SkPoint_Reference#SkVector'>v</a>);
- <a href='SkPoint_Reference#SkPoint'>SkPoint</a> <a href='SkPoint_Reference#SkPoint'>operator</a>*(<a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>scale</a>) <a href='undocumented#SkScalar'>const</a>;
- <a href='SkPoint_Reference#SkPoint'>SkPoint</a>& <a href='SkPoint_Reference#SkPoint'>operator</a>*=(<a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>scale</a>);
- <a href='undocumented#SkScalar'>bool</a> <a href='#SkPoint_isFinite'>isFinite</a>() <a href='#SkPoint_isFinite'>const</a>;
- <a href='#SkPoint_isFinite'>bool</a> <a href='#SkPoint_isFinite'>equals</a>(<a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>x</a>, <a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>y</a>) <a href='undocumented#SkScalar'>const</a>;
- <a href='undocumented#SkScalar'>friend</a> <a href='undocumented#SkScalar'>bool</a> <a href='undocumented#SkScalar'>operator</a>==(<a href='undocumented#SkScalar'>const</a> <a href='SkPoint_Reference#SkPoint'>SkPoint</a>& <a href='SkPoint_Reference#SkPoint'>a</a>, <a href='SkPoint_Reference#SkPoint'>const</a> <a href='SkPoint_Reference#SkPoint'>SkPoint</a>& <a href='SkPoint_Reference#SkPoint'>b</a>);
- <a href='SkPoint_Reference#SkPoint'>friend</a> <a href='SkPoint_Reference#SkPoint'>bool</a> <a href='SkPoint_Reference#SkPoint'>operator</a>!=(<a href='SkPoint_Reference#SkPoint'>const</a> <a href='SkPoint_Reference#SkPoint'>SkPoint</a>& <a href='SkPoint_Reference#SkPoint'>a</a>, <a href='SkPoint_Reference#SkPoint'>const</a> <a href='SkPoint_Reference#SkPoint'>SkPoint</a>& <a href='SkPoint_Reference#SkPoint'>b</a>);
- <a href='SkPoint_Reference#SkPoint'>friend</a> <a href='SkPoint_Reference#SkVector'>SkVector</a> <a href='SkPoint_Reference#SkVector'>operator</a>-(<a href='SkPoint_Reference#SkVector'>const</a> <a href='SkPoint_Reference#SkPoint'>SkPoint</a>& <a href='SkPoint_Reference#SkPoint'>a</a>, <a href='SkPoint_Reference#SkPoint'>const</a> <a href='SkPoint_Reference#SkPoint'>SkPoint</a>& <a href='SkPoint_Reference#SkPoint'>b</a>);
- <a href='SkPoint_Reference#SkPoint'>friend</a> <a href='SkPoint_Reference#SkPoint'>SkPoint</a> <a href='SkPoint_Reference#SkPoint'>operator</a>+(<a href='SkPoint_Reference#SkPoint'>const</a> <a href='SkPoint_Reference#SkPoint'>SkPoint</a>& <a href='SkPoint_Reference#SkPoint'>a</a>, <a href='SkPoint_Reference#SkPoint'>const</a> <a href='SkPoint_Reference#SkVector'>SkVector</a>& <a href='SkPoint_Reference#SkVector'>b</a>);
- <a href='SkPoint_Reference#SkVector'>static</a> <a href='undocumented#SkScalar'>SkScalar</a> <a href='#SkPoint_Length'>Length</a>(<a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>x</a>, <a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>y</a>);
- <a href='undocumented#SkScalar'>static</a> <a href='undocumented#SkScalar'>SkScalar</a> <a href='#SkPoint_Normalize'>Normalize</a>(<a href='SkPoint_Reference#SkVector'>SkVector</a>* <a href='SkPoint_Reference#SkVector'>vec</a>);
- <a href='SkPoint_Reference#SkVector'>static</a> <a href='undocumented#SkScalar'>SkScalar</a> <a href='#SkPoint_Distance'>Distance</a>(<a href='#SkPoint_Distance'>const</a> <a href='SkPoint_Reference#SkPoint'>SkPoint</a>& <a href='SkPoint_Reference#SkPoint'>a</a>, <a href='SkPoint_Reference#SkPoint'>const</a> <a href='SkPoint_Reference#SkPoint'>SkPoint</a>& <a href='SkPoint_Reference#SkPoint'>b</a>);
- <a href='SkPoint_Reference#SkPoint'>static</a> <a href='undocumented#SkScalar'>SkScalar</a> <a href='#SkPoint_DotProduct'>DotProduct</a>(<a href='#SkPoint_DotProduct'>const</a> <a href='SkPoint_Reference#SkVector'>SkVector</a>& <a href='SkPoint_Reference#SkVector'>a</a>, <a href='SkPoint_Reference#SkVector'>const</a> <a href='SkPoint_Reference#SkVector'>SkVector</a>& <a href='SkPoint_Reference#SkVector'>b</a>);
- <a href='SkPoint_Reference#SkVector'>static</a> <a href='undocumented#SkScalar'>SkScalar</a> <a href='#SkPoint_CrossProduct'>CrossProduct</a>(<a href='#SkPoint_CrossProduct'>const</a> <a href='SkPoint_Reference#SkVector'>SkVector</a>& <a href='SkPoint_Reference#SkVector'>a</a>, <a href='SkPoint_Reference#SkVector'>const</a> <a href='SkPoint_Reference#SkVector'>SkVector</a>& <a href='SkPoint_Reference#SkVector'>b</a>);
- <a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>cross</a>(<a href='undocumented#SkScalar'>const</a> <a href='SkPoint_Reference#SkVector'>SkVector</a>& <a href='SkPoint_Reference#SkVector'>vec</a>) <a href='SkPoint_Reference#SkVector'>const</a>;
- <a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>dot</a>(<a href='undocumented#SkScalar'>const</a> <a href='SkPoint_Reference#SkVector'>SkVector</a>& <a href='SkPoint_Reference#SkVector'>vec</a>) <a href='SkPoint_Reference#SkVector'>const</a>;
+ static constexpr <a href='SkPoint_Reference#SkPoint'>SkPoint</a> <a href='#SkPoint_Make'>Make</a>(<a href='undocumented#SkScalar'>SkScalar</a> x, <a href='undocumented#SkScalar'>SkScalar</a> y);
+ <a href='undocumented#SkScalar'>SkScalar</a> <a href='#SkPoint_x'>x()</a> const;
+ <a href='undocumented#SkScalar'>SkScalar</a> <a href='#SkPoint_y'>y()</a> const;
+ bool <a href='#SkPoint_isZero'>isZero</a>() const;
+ void set(<a href='undocumented#SkScalar'>SkScalar</a> x, <a href='undocumented#SkScalar'>SkScalar</a> y);
+ void <a href='#SkPoint_iset'>iset</a>(int32_t x, int32_t y);
+ void <a href='#SkPoint_iset'>iset</a>(const <a href='SkIPoint_Reference#SkIPoint'>SkIPoint</a>& p);
+ void <a href='#SkPoint_setAbs'>setAbs</a>(const <a href='SkPoint_Reference#SkPoint'>SkPoint</a>& pt);
+ static void <a href='#SkPoint_Offset'>Offset</a>(<a href='SkPoint_Reference#SkPoint'>SkPoint</a> <a href='SkPoint_Reference#Point'>points</a>[], int count, const <a href='SkPoint_Reference#SkVector'>SkVector</a>& offset);
+ static void <a href='#SkPoint_Offset'>Offset</a>(<a href='SkPoint_Reference#SkPoint'>SkPoint</a> <a href='SkPoint_Reference#Point'>points</a>[], int count, <a href='undocumented#SkScalar'>SkScalar</a> dx, <a href='undocumented#SkScalar'>SkScalar</a> dy);
+ void offset(<a href='undocumented#SkScalar'>SkScalar</a> dx, <a href='undocumented#SkScalar'>SkScalar</a> dy);
+ <a href='undocumented#SkScalar'>SkScalar</a> <a href='#SkPoint_length'>length()</a> const;
+ <a href='undocumented#SkScalar'>SkScalar</a> <a href='#SkPoint_distanceToOrigin'>distanceToOrigin</a>() const;
+ bool <a href='#SkPoint_normalize'>normalize()</a>;
+ bool <a href='#SkPoint_setNormalize'>setNormalize</a>(<a href='undocumented#SkScalar'>SkScalar</a> x, <a href='undocumented#SkScalar'>SkScalar</a> y);
+ bool <a href='#SkPoint_setLength'>setLength</a>(<a href='undocumented#SkScalar'>SkScalar</a> length);
+ bool <a href='#SkPoint_setLength'>setLength</a>(<a href='undocumented#SkScalar'>SkScalar</a> x, <a href='undocumented#SkScalar'>SkScalar</a> y, <a href='undocumented#SkScalar'>SkScalar</a> length);
+ void scale(<a href='undocumented#SkScalar'>SkScalar</a> scale, <a href='SkPoint_Reference#SkPoint'>SkPoint</a>* dst) const;
+ void scale(<a href='undocumented#SkScalar'>SkScalar</a> value);
+ void <a href='#SkPoint_negate'>negate()</a>;
+ <a href='SkPoint_Reference#SkPoint'>SkPoint</a> operator-() const;
+ void operator+=(const <a href='SkPoint_Reference#SkVector'>SkVector</a>& v);
+ void operator-=(const <a href='SkPoint_Reference#SkVector'>SkVector</a>& v);
+ <a href='SkPoint_Reference#SkPoint'>SkPoint</a> operator*(<a href='undocumented#SkScalar'>SkScalar</a> scale) const;
+ <a href='SkPoint_Reference#SkPoint'>SkPoint</a>& operator*=(<a href='undocumented#SkScalar'>SkScalar</a> scale);
+ bool <a href='#SkPoint_isFinite'>isFinite</a>() const;
+ bool equals(<a href='undocumented#SkScalar'>SkScalar</a> x, <a href='undocumented#SkScalar'>SkScalar</a> y) const;
+ friend bool operator==(const <a href='SkPoint_Reference#SkPoint'>SkPoint</a>& a, const <a href='SkPoint_Reference#SkPoint'>SkPoint</a>& b);
+ friend bool operator!=(const <a href='SkPoint_Reference#SkPoint'>SkPoint</a>& a, const <a href='SkPoint_Reference#SkPoint'>SkPoint</a>& b);
+ friend <a href='SkPoint_Reference#SkVector'>SkVector</a> operator-(const <a href='SkPoint_Reference#SkPoint'>SkPoint</a>& a, const <a href='SkPoint_Reference#SkPoint'>SkPoint</a>& b);
+ friend <a href='SkPoint_Reference#SkPoint'>SkPoint</a> operator+(const <a href='SkPoint_Reference#SkPoint'>SkPoint</a>& a, const <a href='SkPoint_Reference#SkVector'>SkVector</a>& b);
+ static <a href='undocumented#SkScalar'>SkScalar</a> <a href='#SkPoint_Length'>Length</a>(<a href='undocumented#SkScalar'>SkScalar</a> x, <a href='undocumented#SkScalar'>SkScalar</a> y);
+ static <a href='undocumented#SkScalar'>SkScalar</a> <a href='#SkPoint_Normalize'>Normalize</a>(<a href='SkPoint_Reference#SkVector'>SkVector</a>* vec);
+ static <a href='undocumented#SkScalar'>SkScalar</a> <a href='#SkPoint_Distance'>Distance</a>(const <a href='SkPoint_Reference#SkPoint'>SkPoint</a>& a, const <a href='SkPoint_Reference#SkPoint'>SkPoint</a>& b);
+ static <a href='undocumented#SkScalar'>SkScalar</a> <a href='#SkPoint_DotProduct'>DotProduct</a>(const <a href='SkPoint_Reference#SkVector'>SkVector</a>& a, const <a href='SkPoint_Reference#SkVector'>SkVector</a>& b);
+ static <a href='undocumented#SkScalar'>SkScalar</a> <a href='#SkPoint_CrossProduct'>CrossProduct</a>(const <a href='SkPoint_Reference#SkVector'>SkVector</a>& a, const <a href='SkPoint_Reference#SkVector'>SkVector</a>& b);
+ <a href='undocumented#SkScalar'>SkScalar</a> cross(const <a href='SkPoint_Reference#SkVector'>SkVector</a>& vec) const;
+ <a href='undocumented#SkScalar'>SkScalar</a> dot(const <a href='SkPoint_Reference#SkVector'>SkVector</a>& vec) const;
};
</pre>
-<a href='SkPoint_Reference#SkPoint'>SkPoint</a> <a href='SkPoint_Reference#SkPoint'>holds</a> <a href='SkPoint_Reference#SkPoint'>two</a> 32-<a href='SkPoint_Reference#SkPoint'>bit</a> <a href='SkPoint_Reference#SkPoint'>floating</a> <a href='SkPoint_Reference#Point'>point</a> <a href='SkPoint_Reference#Point'>coordinates</a>.<table style='border-collapse: collapse; width: 62.5em'>
+<a href='SkPoint_Reference#SkPoint'>SkPoint</a> holds two 32-bit floating <a href='SkPoint_Reference#Point'>point</a> coordinates.<table style='border-collapse: collapse; width: 62.5em'>
<tr><th style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>Type</th>
<th style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>Member</th>
@@ -61,16 +61,16 @@
<td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>SkScalar</td>
<td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a name='SkPoint_fX'><code>fX</code></a></td>
<td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>
-x-axis value used by both <a href='SkPoint_Reference#Point'>Point</a> <a href='SkPoint_Reference#Point'>and</a> <a href='SkPoint_Reference#Vector'>Vector</a>. <a href='SkPoint_Reference#Vector'>May</a> <a href='SkPoint_Reference#Vector'>contain</a> <a href='SkPoint_Reference#Vector'>any</a> <a href='SkPoint_Reference#Vector'>value</a>, <a href='SkPoint_Reference#Vector'>including</a>
-<a href='SkPoint_Reference#Vector'>infinities</a> <a href='SkPoint_Reference#Vector'>and</a> <a href='SkPoint_Reference#Vector'>NaN</a>.
+x-axis value used by both <a href='SkPoint_Reference#Point'>Point</a> and <a href='SkPoint_Reference#Vector'>Vector</a>. May contain any value, including
+infinities and NaN.
</td>
</tr>
<tr>
<td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>SkScalar</td>
<td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a name='SkPoint_fY'><code>fY</code></a></td>
<td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>
-y-axis value used by both <a href='SkPoint_Reference#Point'>Point</a> <a href='SkPoint_Reference#Point'>and</a> <a href='SkPoint_Reference#Vector'>Vector</a>. <a href='SkPoint_Reference#Vector'>May</a> <a href='SkPoint_Reference#Vector'>contain</a> <a href='SkPoint_Reference#Vector'>any</a> <a href='SkPoint_Reference#Vector'>value</a>, <a href='SkPoint_Reference#Vector'>including</a>
-<a href='SkPoint_Reference#Vector'>infinities</a> <a href='SkPoint_Reference#Vector'>and</a> <a href='SkPoint_Reference#Vector'>NaN</a>.
+y-axis value used by both <a href='SkPoint_Reference#Point'>Point</a> and <a href='SkPoint_Reference#Vector'>Vector</a>. May contain any value, including
+infinities and NaN.
</td>
</tr>
</table>
@@ -80,18 +80,18 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-static constexpr <a href='SkPoint_Reference#SkPoint'>SkPoint</a> <a href='#SkPoint_Make'>Make</a>(<a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>x</a>, <a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>y</a>)
+static constexpr <a href='SkPoint_Reference#SkPoint'>SkPoint</a> <a href='#SkPoint_Make'>Make</a>(<a href='undocumented#SkScalar'>SkScalar</a> x, <a href='undocumented#SkScalar'>SkScalar</a> y)
</pre>
-Sets <a href='#SkPoint_fX'>fX</a> <a href='#SkPoint_fX'>to</a> <a href='#SkPoint_Make_x'>x</a>, <a href='#SkPoint_fY'>fY</a> <a href='#SkPoint_fY'>to</a> <a href='#SkPoint_Make_y'>y</a>. <a href='#SkPoint_Make_y'>Used</a> <a href='#SkPoint_Make_y'>both</a> <a href='#SkPoint_Make_y'>to</a> <a href='#SkPoint_Make_y'>set</a> <a href='SkPoint_Reference#SkPoint'>SkPoint</a> <a href='SkPoint_Reference#SkPoint'>and</a> <a href='SkPoint_Reference#Vector'>vector</a>.
+Sets <a href='#SkPoint_fX'>fX</a> to <a href='#SkPoint_Make_x'>x</a>, <a href='#SkPoint_fY'>fY</a> to <a href='#SkPoint_Make_y'>y</a>. Used both to set <a href='SkPoint_Reference#SkPoint'>SkPoint</a> and <a href='SkPoint_Reference#Vector'>vector</a>.
### Parameters
<table> <tr> <td><a name='SkPoint_Make_x'><code><strong>x</strong></code></a></td>
- <td><a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>x-axis</a> <a href='undocumented#SkScalar'>value</a> <a href='undocumented#SkScalar'>of</a> <a href='undocumented#SkScalar'>constructed</a> <a href='SkPoint_Reference#SkPoint'>SkPoint</a> <a href='SkPoint_Reference#SkPoint'>or</a> <a href='SkPoint_Reference#Vector'>vector</a></td>
+ <td><a href='undocumented#SkScalar'>SkScalar</a> x-axis value of constructed <a href='SkPoint_Reference#SkPoint'>SkPoint</a> or <a href='SkPoint_Reference#Vector'>vector</a></td>
</tr>
<tr> <td><a name='SkPoint_Make_y'><code><strong>y</strong></code></a></td>
- <td><a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>y-axis</a> <a href='undocumented#SkScalar'>value</a> <a href='undocumented#SkScalar'>of</a> <a href='undocumented#SkScalar'>constructed</a> <a href='SkPoint_Reference#SkPoint'>SkPoint</a> <a href='SkPoint_Reference#SkPoint'>or</a> <a href='SkPoint_Reference#Vector'>vector</a></td>
+ <td><a href='undocumented#SkScalar'>SkScalar</a> y-axis value of constructed <a href='SkPoint_Reference#SkPoint'>SkPoint</a> or <a href='SkPoint_Reference#Vector'>vector</a></td>
</tr>
</table>
@@ -122,10 +122,10 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-<a href='undocumented#SkScalar'>SkScalar</a> <a href='#SkPoint_x'>x()</a> <a href='#SkPoint_x'>const</a>
+<a href='undocumented#SkScalar'>SkScalar</a> <a href='#SkPoint_x'>x()</a> const
</pre>
-Returns x-axis value of <a href='SkPoint_Reference#SkPoint'>SkPoint</a> <a href='SkPoint_Reference#SkPoint'>or</a> <a href='SkPoint_Reference#Vector'>vector</a>.
+Returns x-axis value of <a href='SkPoint_Reference#SkPoint'>SkPoint</a> or <a href='SkPoint_Reference#Vector'>vector</a>.
### Return Value
@@ -152,10 +152,10 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-<a href='undocumented#SkScalar'>SkScalar</a> <a href='#SkPoint_y'>y()</a> <a href='#SkPoint_y'>const</a>
+<a href='undocumented#SkScalar'>SkScalar</a> <a href='#SkPoint_y'>y()</a> const
</pre>
-Returns y-axis value of <a href='SkPoint_Reference#SkPoint'>SkPoint</a> <a href='SkPoint_Reference#SkPoint'>or</a> <a href='SkPoint_Reference#Vector'>vector</a>.
+Returns y-axis value of <a href='SkPoint_Reference#SkPoint'>SkPoint</a> or <a href='SkPoint_Reference#Vector'>vector</a>.
### Return Value
@@ -182,14 +182,14 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-bool <a href='#SkPoint_isZero'>isZero</a>() <a href='#SkPoint_isZero'>const</a>
+bool <a href='#SkPoint_isZero'>isZero</a>() const
</pre>
-Returns true if <a href='#SkPoint_fX'>fX</a> <a href='#SkPoint_fX'>and</a> <a href='#SkPoint_fY'>fY</a> <a href='#SkPoint_fY'>are</a> <a href='#SkPoint_fY'>both</a> <a href='#SkPoint_fY'>zero</a>.
+Returns true if <a href='#SkPoint_fX'>fX</a> and <a href='#SkPoint_fY'>fY</a> are both zero.
### Return Value
-true if <a href='#SkPoint_fX'>fX</a> <a href='#SkPoint_fX'>is</a> <a href='#SkPoint_fX'>zero</a> <a href='#SkPoint_fX'>and</a> <a href='#SkPoint_fY'>fY</a> <a href='#SkPoint_fY'>is</a> <a href='#SkPoint_fY'>zero</a>
+true if <a href='#SkPoint_fX'>fX</a> is zero and <a href='#SkPoint_fY'>fY</a> is zero
### Example
@@ -215,10 +215,10 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-void set(<a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>x</a>, <a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>y</a>)
+void set(<a href='undocumented#SkScalar'>SkScalar</a> x, <a href='undocumented#SkScalar'>SkScalar</a> y)
</pre>
-Sets <a href='#SkPoint_fX'>fX</a> <a href='#SkPoint_fX'>to</a> <a href='#SkPoint_set_x'>x</a> <a href='#SkPoint_set_x'>and</a> <a href='#SkPoint_fY'>fY</a> <a href='#SkPoint_fY'>to</a> <a href='#SkPoint_set_y'>y</a>.
+Sets <a href='#SkPoint_fX'>fX</a> to <a href='#SkPoint_set_x'>x</a> and <a href='#SkPoint_fY'>fY</a> to <a href='#SkPoint_set_y'>y</a>.
### Parameters
@@ -251,14 +251,14 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-void <a href='#SkPoint_iset'>iset</a>(<a href='#SkPoint_iset'>int32_t</a> <a href='#SkPoint_iset'>x</a>, <a href='#SkPoint_iset'>int32_t</a> <a href='#SkPoint_iset'>y</a>)
+void <a href='#SkPoint_iset'>iset</a>(int32_t x, int32_t y)
</pre>
-Sets <a href='#SkPoint_fX'>fX</a> <a href='#SkPoint_fX'>to</a> <a href='#SkPoint_iset_x'>x</a> <a href='#SkPoint_iset_x'>and</a> <a href='#SkPoint_fY'>fY</a> <a href='#SkPoint_fY'>to</a> <a href='#SkPoint_iset_y'>y</a>, <a href='#SkPoint_iset_y'>promoting</a> <a href='#SkPoint_iset_y'>integers</a> <a href='#SkPoint_iset_y'>to</a> <a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>values</a>.
+Sets <a href='#SkPoint_fX'>fX</a> to <a href='#SkPoint_iset_x'>x</a> and <a href='#SkPoint_fY'>fY</a> to <a href='#SkPoint_iset_y'>y</a>, promoting integers to <a href='undocumented#SkScalar'>SkScalar</a> values.
-Assigning a large integer value directly to <a href='#SkPoint_fX'>fX</a> <a href='#SkPoint_fX'>or</a> <a href='#SkPoint_fY'>fY</a> <a href='#SkPoint_fY'>may</a> <a href='#SkPoint_fY'>cause</a> <a href='#SkPoint_fY'>a</a> <a href='#SkPoint_fY'>compiler</a>
-error, triggered by narrowing conversion of int to <a href='undocumented#SkScalar'>SkScalar</a>. <a href='undocumented#SkScalar'>This</a> <a href='undocumented#SkScalar'>safely</a>
-casts <a href='#SkPoint_iset_x'>x</a> <a href='#SkPoint_iset_x'>and</a> <a href='#SkPoint_iset_y'>y</a> <a href='#SkPoint_iset_y'>to</a> <a href='#SkPoint_iset_y'>avoid</a> <a href='#SkPoint_iset_y'>the</a> <a href='#SkPoint_iset_y'>error</a>.
+Assigning a large integer value directly to <a href='#SkPoint_fX'>fX</a> or <a href='#SkPoint_fY'>fY</a> may cause a compiler
+error, triggered by narrowing conversion of int to <a href='undocumented#SkScalar'>SkScalar</a>. This safely
+casts <a href='#SkPoint_iset_x'>x</a> and <a href='#SkPoint_iset_y'>y</a> to avoid the error.
### Parameters
@@ -283,19 +283,19 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-void <a href='#SkPoint_iset'>iset</a>(<a href='#SkPoint_iset'>const</a> <a href='SkIPoint_Reference#SkIPoint'>SkIPoint</a>& <a href='SkIPoint_Reference#SkIPoint'>p</a>)
+void <a href='#SkPoint_iset'>iset</a>(const <a href='SkIPoint_Reference#SkIPoint'>SkIPoint</a>& p)
</pre>
-Sets <a href='#SkPoint_fX'>fX</a> <a href='#SkPoint_fX'>to</a> <a href='#SkPoint_iset_2_p'>p</a>.<a href='#SkIPoint_fX'>fX</a> <a href='#SkIPoint_fX'>and</a> <a href='#SkPoint_fY'>fY</a> <a href='#SkPoint_fY'>to</a> <a href='#SkPoint_iset_2_p'>p</a>.<a href='#SkIPoint_fY'>fY</a>, <a href='#SkIPoint_fY'>promoting</a> <a href='#SkIPoint_fY'>integers</a> <a href='#SkIPoint_fY'>to</a> <a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>values</a>.
+Sets <a href='#SkPoint_fX'>fX</a> to <a href='#SkPoint_iset_2_p'>p</a>.<a href='#SkIPoint_fX'>fX</a> and <a href='#SkPoint_fY'>fY</a> to <a href='#SkPoint_iset_2_p'>p</a>.<a href='#SkIPoint_fY'>fY</a>, promoting integers to <a href='undocumented#SkScalar'>SkScalar</a> values.
-Assigning an <a href='SkIPoint_Reference#SkIPoint'>SkIPoint</a> <a href='SkIPoint_Reference#SkIPoint'>containing</a> <a href='SkIPoint_Reference#SkIPoint'>a</a> <a href='SkIPoint_Reference#SkIPoint'>large</a> <a href='SkIPoint_Reference#SkIPoint'>integer</a> <a href='SkIPoint_Reference#SkIPoint'>value</a> <a href='SkIPoint_Reference#SkIPoint'>directly</a> <a href='SkIPoint_Reference#SkIPoint'>to</a> <a href='#SkPoint_fX'>fX</a> <a href='#SkPoint_fX'>or</a> <a href='#SkPoint_fY'>fY</a> <a href='#SkPoint_fY'>may</a>
+Assigning an <a href='SkIPoint_Reference#SkIPoint'>SkIPoint</a> containing a large integer value directly to <a href='#SkPoint_fX'>fX</a> or <a href='#SkPoint_fY'>fY</a> may
cause a compiler error, triggered by narrowing conversion of int to <a href='undocumented#SkScalar'>SkScalar</a>.
-This safely casts <a href='#SkPoint_iset_2_p'>p</a>.<a href='#SkIPoint_fX'>fX</a> <a href='#SkIPoint_fX'>and</a> <a href='#SkPoint_iset_2_p'>p</a>.<a href='#SkIPoint_fY'>fY</a> <a href='#SkIPoint_fY'>to</a> <a href='#SkIPoint_fY'>avoid</a> <a href='#SkIPoint_fY'>the</a> <a href='#SkIPoint_fY'>error</a>.
+This safely casts <a href='#SkPoint_iset_2_p'>p</a>.<a href='#SkIPoint_fX'>fX</a> and <a href='#SkPoint_iset_2_p'>p</a>.<a href='#SkIPoint_fY'>fY</a> to avoid the error.
### Parameters
<table> <tr> <td><a name='SkPoint_iset_2_p'><code><strong>p</strong></code></a></td>
- <td><a href='SkIPoint_Reference#SkIPoint'>SkIPoint</a> <a href='SkIPoint_Reference#SkIPoint'>members</a> <a href='SkIPoint_Reference#SkIPoint'>promoted</a> <a href='SkIPoint_Reference#SkIPoint'>to</a> <a href='undocumented#SkScalar'>SkScalar</a></td>
+ <td><a href='SkIPoint_Reference#SkIPoint'>SkIPoint</a> members promoted to <a href='undocumented#SkScalar'>SkScalar</a></td>
</tr>
</table>
@@ -321,15 +321,15 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-void <a href='#SkPoint_setAbs'>setAbs</a>(<a href='#SkPoint_setAbs'>const</a> <a href='SkPoint_Reference#SkPoint'>SkPoint</a>& <a href='SkPoint_Reference#SkPoint'>pt</a>)
+void <a href='#SkPoint_setAbs'>setAbs</a>(const <a href='SkPoint_Reference#SkPoint'>SkPoint</a>& pt)
</pre>
-Sets <a href='#SkPoint_fX'>fX</a> <a href='#SkPoint_fX'>to</a> <a href='#SkPoint_fX'>absolute</a> <a href='#SkPoint_fX'>value</a> <a href='#SkPoint_fX'>of</a> <a href='#SkPoint_setAbs_pt'>pt</a>.<a href='#SkPoint_fX'>fX</a>; <a href='#SkPoint_fX'>and</a> <a href='#SkPoint_fY'>fY</a> <a href='#SkPoint_fY'>to</a> <a href='#SkPoint_fY'>absolute</a> <a href='#SkPoint_fY'>value</a> <a href='#SkPoint_fY'>of</a> <a href='#SkPoint_setAbs_pt'>pt</a>.<a href='#SkPoint_fY'>fY</a>.
+Sets <a href='#SkPoint_fX'>fX</a> to absolute value of <a href='#SkPoint_setAbs_pt'>pt</a>.<a href='#SkPoint_fX'>fX</a>; and <a href='#SkPoint_fY'>fY</a> to absolute value of <a href='#SkPoint_setAbs_pt'>pt</a>.<a href='#SkPoint_fY'>fY</a>.
### Parameters
<table> <tr> <td><a name='SkPoint_setAbs_pt'><code><strong>pt</strong></code></a></td>
- <td>members providing magnitude for <a href='#SkPoint_fX'>fX</a> <a href='#SkPoint_fX'>and</a> <a href='#SkPoint_fY'>fY</a></td>
+ <td>members providing magnitude for <a href='#SkPoint_fX'>fX</a> and <a href='#SkPoint_fY'>fY</a></td>
</tr>
</table>
@@ -359,10 +359,10 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-static void <a href='#SkPoint_Offset'>Offset</a>(<a href='SkPoint_Reference#SkPoint'>SkPoint</a> <a href='SkPoint_Reference#Point'>points</a>[], <a href='SkPoint_Reference#Point'>int</a> <a href='SkPoint_Reference#Point'>count</a>, <a href='SkPoint_Reference#Point'>const</a> <a href='SkPoint_Reference#SkVector'>SkVector</a>& <a href='SkPoint_Reference#SkVector'>offset</a>)
+static void <a href='#SkPoint_Offset'>Offset</a>(<a href='SkPoint_Reference#SkPoint'>SkPoint</a> <a href='SkPoint_Reference#Point'>points</a>[], int count, const <a href='SkPoint_Reference#SkVector'>SkVector</a>& offset)
</pre>
-Adds <a href='#SkPoint_Offset_offset'>offset</a> <a href='#SkPoint_Offset_offset'>to</a> <a href='#SkPoint_Offset_offset'>each</a> <a href='SkPoint_Reference#SkPoint'>SkPoint</a> <a href='SkPoint_Reference#SkPoint'>in</a> <a href='#SkPoint_Offset_points'>points</a> <a href='#SkPoint_Offset_points'>array</a> <a href='#SkPoint_Offset_points'>with</a> <a href='#SkPoint_Offset_count'>count</a> <a href='#SkPoint_Offset_count'>entries</a>.
+Adds <a href='#SkPoint_Offset_offset'>offset</a> to each <a href='SkPoint_Reference#SkPoint'>SkPoint</a> in <a href='#SkPoint_Offset_points'>points</a> array with <a href='#SkPoint_Offset_count'>count</a> entries.
### Parameters
@@ -373,7 +373,7 @@
<td>entries in array</td>
</tr>
<tr> <td><a name='SkPoint_Offset_offset'><code><strong>offset</strong></code></a></td>
- <td><a href='SkPoint_Reference#Vector'>vector</a> <a href='SkPoint_Reference#Vector'>added</a> <a href='SkPoint_Reference#Vector'>to</a> <a href='#SkPoint_Offset_points'>points</a></td>
+ <td><a href='SkPoint_Reference#Vector'>vector</a> added to <a href='#SkPoint_Offset_points'>points</a></td>
</tr>
</table>
@@ -390,10 +390,10 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-static void <a href='#SkPoint_Offset'>Offset</a>(<a href='SkPoint_Reference#SkPoint'>SkPoint</a> <a href='SkPoint_Reference#Point'>points</a>[], <a href='SkPoint_Reference#Point'>int</a> <a href='SkPoint_Reference#Point'>count</a>, <a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>dx</a>, <a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>dy</a>)
+static void <a href='#SkPoint_Offset'>Offset</a>(<a href='SkPoint_Reference#SkPoint'>SkPoint</a> <a href='SkPoint_Reference#Point'>points</a>[], int count, <a href='undocumented#SkScalar'>SkScalar</a> dx, <a href='undocumented#SkScalar'>SkScalar</a> dy)
</pre>
-Adds offset (<a href='#SkPoint_Offset_2_dx'>dx</a>, <a href='#SkPoint_Offset_2_dy'>dy</a>) <a href='#SkPoint_Offset_2_dy'>to</a> <a href='#SkPoint_Offset_2_dy'>each</a> <a href='SkPoint_Reference#SkPoint'>SkPoint</a> <a href='SkPoint_Reference#SkPoint'>in</a> <a href='#SkPoint_Offset_2_points'>points</a> <a href='#SkPoint_Offset_2_points'>array</a> <a href='#SkPoint_Offset_2_points'>of</a> <a href='#SkPoint_Offset_2_points'>length</a> <a href='#SkPoint_Offset_2_count'>count</a>.
+Adds offset (<a href='#SkPoint_Offset_2_dx'>dx</a>, <a href='#SkPoint_Offset_2_dy'>dy</a>) to each <a href='SkPoint_Reference#SkPoint'>SkPoint</a> in <a href='#SkPoint_Offset_2_points'>points</a> array of length <a href='#SkPoint_Offset_2_count'>count</a>.
### Parameters
@@ -404,10 +404,10 @@
<td>entries in array</td>
</tr>
<tr> <td><a name='SkPoint_Offset_2_dx'><code><strong>dx</strong></code></a></td>
- <td>added to <a href='#SkPoint_fX'>fX</a> <a href='#SkPoint_fX'>in</a> <a href='#SkPoint_Offset_2_points'>points</a></td>
+ <td>added to <a href='#SkPoint_fX'>fX</a> in <a href='#SkPoint_Offset_2_points'>points</a></td>
</tr>
<tr> <td><a name='SkPoint_Offset_2_dy'><code><strong>dy</strong></code></a></td>
- <td>added to <a href='#SkPoint_fY'>fY</a> <a href='#SkPoint_fY'>in</a> <a href='#SkPoint_Offset_2_points'>points</a></td>
+ <td>added to <a href='#SkPoint_fY'>fY</a> in <a href='#SkPoint_Offset_2_points'>points</a></td>
</tr>
</table>
@@ -424,10 +424,10 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-void offset(<a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>dx</a>, <a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>dy</a>)
+void offset(<a href='undocumented#SkScalar'>SkScalar</a> dx, <a href='undocumented#SkScalar'>SkScalar</a> dy)
</pre>
-Adds offset (<a href='#SkPoint_offset_dx'>dx</a>, <a href='#SkPoint_offset_dy'>dy</a>) <a href='#SkPoint_offset_dy'>to</a> <a href='SkPoint_Reference#SkPoint'>SkPoint</a>.
+Adds offset (<a href='#SkPoint_offset_dx'>dx</a>, <a href='#SkPoint_offset_dy'>dy</a>) to <a href='SkPoint_Reference#SkPoint'>SkPoint</a>.
### Parameters
@@ -452,7 +452,7 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-<a href='undocumented#SkScalar'>SkScalar</a> <a href='#SkPoint_length'>length()</a> <a href='#SkPoint_length'>const</a>
+<a href='undocumented#SkScalar'>SkScalar</a> <a href='#SkPoint_length'>length()</a> const
</pre>
Returns the Euclidean distance from origin, computed as:
@@ -478,7 +478,7 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-<a href='undocumented#SkScalar'>SkScalar</a> <a href='#SkPoint_distanceToOrigin'>distanceToOrigin</a>() <a href='#SkPoint_distanceToOrigin'>const</a>
+<a href='undocumented#SkScalar'>SkScalar</a> <a href='#SkPoint_distanceToOrigin'>distanceToOrigin</a>() const
</pre>
Returns the Euclidean distance from origin, computed as:
@@ -507,8 +507,8 @@
bool <a href='#SkPoint_normalize'>normalize()</a>
</pre>
-Scales (<a href='#SkPoint_fX'>fX</a>, <a href='#SkPoint_fY'>fY</a>) <a href='#SkPoint_fY'>so</a> <a href='#SkPoint_fY'>that</a> <a href='#SkPoint_length'>length()</a> <a href='#SkPoint_length'>returns</a> <a href='#SkPoint_length'>one</a>, <a href='#SkPoint_length'>while</a> <a href='#SkPoint_length'>preserving</a> <a href='#SkPoint_length'>ratio</a> <a href='#SkPoint_length'>of</a> <a href='#SkPoint_fX'>fX</a> <a href='#SkPoint_fX'>to</a> <a href='#SkPoint_fY'>fY</a>,
-if possible. If prior length is nearly zero, sets <a href='SkPoint_Reference#Vector'>vector</a> <a href='SkPoint_Reference#Vector'>to</a> (0, 0) <a href='SkPoint_Reference#Vector'>and</a> <a href='SkPoint_Reference#Vector'>returns</a>
+Scales (<a href='#SkPoint_fX'>fX</a>, <a href='#SkPoint_fY'>fY</a>) so that <a href='#SkPoint_length'>length()</a> returns one, while preserving ratio of <a href='#SkPoint_fX'>fX</a> to <a href='#SkPoint_fY'>fY</a>,
+if possible. If prior length is nearly zero, sets <a href='SkPoint_Reference#Vector'>vector</a> to (0, 0) and returns
false; otherwise returns true.
### Return Value
@@ -528,12 +528,12 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-bool <a href='#SkPoint_setNormalize'>setNormalize</a>(<a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>x</a>, <a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>y</a>)
+bool <a href='#SkPoint_setNormalize'>setNormalize</a>(<a href='undocumented#SkScalar'>SkScalar</a> x, <a href='undocumented#SkScalar'>SkScalar</a> y)
</pre>
-Sets <a href='SkPoint_Reference#Vector'>vector</a> <a href='SkPoint_Reference#Vector'>to</a> (<a href='#SkPoint_setNormalize_x'>x</a>, <a href='#SkPoint_setNormalize_y'>y</a>) <a href='#SkPoint_setNormalize_y'>scaled</a> <a href='#SkPoint_setNormalize_y'>so</a> <a href='#SkPoint_length'>length()</a> <a href='#SkPoint_length'>returns</a> <a href='#SkPoint_length'>one</a>, <a href='#SkPoint_length'>and</a> <a href='#SkPoint_length'>so</a> <a href='#SkPoint_length'>that</a>
-(<a href='#SkPoint_fX'>fX</a>, <a href='#SkPoint_fY'>fY</a>) <a href='#SkPoint_fY'>is</a> <a href='#SkPoint_fY'>proportional</a> <a href='#SkPoint_fY'>to</a> (<a href='#SkPoint_setNormalize_x'>x</a>, <a href='#SkPoint_setNormalize_y'>y</a>). <a href='#SkPoint_setNormalize_y'>If</a> (<a href='#SkPoint_setNormalize_x'>x</a>, <a href='#SkPoint_setNormalize_y'>y</a>) <a href='#SkPoint_setNormalize_y'>length</a> <a href='#SkPoint_setNormalize_y'>is</a> <a href='#SkPoint_setNormalize_y'>nearly</a> <a href='#SkPoint_setNormalize_y'>zero</a>,
-sets <a href='SkPoint_Reference#Vector'>vector</a> <a href='SkPoint_Reference#Vector'>to</a> (0, 0) <a href='SkPoint_Reference#Vector'>and</a> <a href='SkPoint_Reference#Vector'>returns</a> <a href='SkPoint_Reference#Vector'>false</a>; <a href='SkPoint_Reference#Vector'>otherwise</a> <a href='SkPoint_Reference#Vector'>returns</a> <a href='SkPoint_Reference#Vector'>true</a>.
+Sets <a href='SkPoint_Reference#Vector'>vector</a> to (<a href='#SkPoint_setNormalize_x'>x</a>, <a href='#SkPoint_setNormalize_y'>y</a>) scaled so <a href='#SkPoint_length'>length()</a> returns one, and so that
+(<a href='#SkPoint_fX'>fX</a>, <a href='#SkPoint_fY'>fY</a>) is proportional to (<a href='#SkPoint_setNormalize_x'>x</a>, <a href='#SkPoint_setNormalize_y'>y</a>). If (<a href='#SkPoint_setNormalize_x'>x</a>, <a href='#SkPoint_setNormalize_y'>y</a>) length is nearly zero,
+sets <a href='SkPoint_Reference#Vector'>vector</a> to (0, 0) and returns false; otherwise returns true.
### Parameters
@@ -547,7 +547,7 @@
### Return Value
-true if (<a href='#SkPoint_setNormalize_x'>x</a>, <a href='#SkPoint_setNormalize_y'>y</a>) <a href='#SkPoint_setNormalize_y'>length</a> <a href='#SkPoint_setNormalize_y'>is</a> <a href='#SkPoint_setNormalize_y'>not</a> <a href='#SkPoint_setNormalize_y'>zero</a> <a href='#SkPoint_setNormalize_y'>or</a> <a href='#SkPoint_setNormalize_y'>nearly</a> <a href='#SkPoint_setNormalize_y'>zero</a>
+true if (<a href='#SkPoint_setNormalize_x'>x</a>, <a href='#SkPoint_setNormalize_y'>y</a>) length is not zero or nearly zero
### Example
@@ -562,11 +562,11 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-bool <a href='#SkPoint_setLength'>setLength</a>(<a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>length</a>)
+bool <a href='#SkPoint_setLength'>setLength</a>(<a href='undocumented#SkScalar'>SkScalar</a> length)
</pre>
-Scales <a href='SkPoint_Reference#Vector'>vector</a> <a href='SkPoint_Reference#Vector'>so</a> <a href='SkPoint_Reference#Vector'>that</a> <a href='#SkPoint_distanceToOrigin'>distanceToOrigin</a>() <a href='#SkPoint_distanceToOrigin'>returns</a> <a href='#SkPoint_setLength_length'>length</a>, <a href='#SkPoint_setLength_length'>if</a> <a href='#SkPoint_setLength_length'>possible</a>. <a href='#SkPoint_setLength_length'>If</a> <a href='#SkPoint_setLength_length'>former</a>
-<a href='#SkPoint_setLength_length'>length</a> <a href='#SkPoint_setLength_length'>is</a> <a href='#SkPoint_setLength_length'>nearly</a> <a href='#SkPoint_setLength_length'>zero</a>, <a href='#SkPoint_setLength_length'>sets</a> <a href='SkPoint_Reference#Vector'>vector</a> <a href='SkPoint_Reference#Vector'>to</a> (0, 0) <a href='SkPoint_Reference#Vector'>and</a> <a href='SkPoint_Reference#Vector'>return</a> <a href='SkPoint_Reference#Vector'>false</a>; <a href='SkPoint_Reference#Vector'>otherwise</a> <a href='SkPoint_Reference#Vector'>returns</a>
+Scales <a href='SkPoint_Reference#Vector'>vector</a> so that <a href='#SkPoint_distanceToOrigin'>distanceToOrigin</a>() returns <a href='#SkPoint_setLength_length'>length</a>, if possible. If former
+<a href='#SkPoint_setLength_length'>length</a> is nearly zero, sets <a href='SkPoint_Reference#Vector'>vector</a> to (0, 0) and return false; otherwise returns
true.
### Parameters
@@ -578,7 +578,7 @@
### Return Value
-true if former <a href='#SkPoint_setLength_length'>length</a> <a href='#SkPoint_setLength_length'>is</a> <a href='#SkPoint_setLength_length'>not</a> <a href='#SkPoint_setLength_length'>zero</a> <a href='#SkPoint_setLength_length'>or</a> <a href='#SkPoint_setLength_length'>nearly</a> <a href='#SkPoint_setLength_length'>zero</a>
+true if former <a href='#SkPoint_setLength_length'>length</a> is not zero or nearly zero
### Example
@@ -593,11 +593,11 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-bool <a href='#SkPoint_setLength'>setLength</a>(<a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>x</a>, <a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>y</a>, <a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>length</a>)
+bool <a href='#SkPoint_setLength'>setLength</a>(<a href='undocumented#SkScalar'>SkScalar</a> x, <a href='undocumented#SkScalar'>SkScalar</a> y, <a href='undocumented#SkScalar'>SkScalar</a> length)
</pre>
-Sets <a href='SkPoint_Reference#Vector'>vector</a> <a href='SkPoint_Reference#Vector'>to</a> (<a href='#SkPoint_setLength_2_x'>x</a>, <a href='#SkPoint_setLength_2_y'>y</a>) <a href='#SkPoint_setLength_2_y'>scaled</a> <a href='#SkPoint_setLength_2_y'>to</a> <a href='#SkPoint_setLength_2_length'>length</a>, <a href='#SkPoint_setLength_2_length'>if</a> <a href='#SkPoint_setLength_2_length'>possible</a>. <a href='#SkPoint_setLength_2_length'>If</a> <a href='#SkPoint_setLength_2_length'>former</a>
-<a href='#SkPoint_setLength_2_length'>length</a> <a href='#SkPoint_setLength_2_length'>is</a> <a href='#SkPoint_setLength_2_length'>nearly</a> <a href='#SkPoint_setLength_2_length'>zero</a>, <a href='#SkPoint_setLength_2_length'>sets</a> <a href='SkPoint_Reference#Vector'>vector</a> <a href='SkPoint_Reference#Vector'>to</a> (0, 0) <a href='SkPoint_Reference#Vector'>and</a> <a href='SkPoint_Reference#Vector'>return</a> <a href='SkPoint_Reference#Vector'>false</a>; <a href='SkPoint_Reference#Vector'>otherwise</a> <a href='SkPoint_Reference#Vector'>returns</a>
+Sets <a href='SkPoint_Reference#Vector'>vector</a> to (<a href='#SkPoint_setLength_2_x'>x</a>, <a href='#SkPoint_setLength_2_y'>y</a>) scaled to <a href='#SkPoint_setLength_2_length'>length</a>, if possible. If former
+<a href='#SkPoint_setLength_2_length'>length</a> is nearly zero, sets <a href='SkPoint_Reference#Vector'>vector</a> to (0, 0) and return false; otherwise returns
true.
### Parameters
@@ -615,7 +615,7 @@
### Return Value
-true if (<a href='#SkPoint_setLength_2_x'>x</a>, <a href='#SkPoint_setLength_2_y'>y</a>) <a href='#SkPoint_setLength_2_length'>length</a> <a href='#SkPoint_setLength_2_length'>is</a> <a href='#SkPoint_setLength_2_length'>not</a> <a href='#SkPoint_setLength_2_length'>zero</a> <a href='#SkPoint_setLength_2_length'>or</a> <a href='#SkPoint_setLength_2_length'>nearly</a> <a href='#SkPoint_setLength_2_length'>zero</a>
+true if (<a href='#SkPoint_setLength_2_x'>x</a>, <a href='#SkPoint_setLength_2_y'>y</a>) <a href='#SkPoint_setLength_2_length'>length</a> is not zero or nearly zero
### Example
@@ -630,15 +630,15 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-void scale(<a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>scale</a>, <a href='SkPoint_Reference#SkPoint'>SkPoint</a>* <a href='SkPoint_Reference#SkPoint'>dst</a>) <a href='SkPoint_Reference#SkPoint'>const</a>
+void scale(<a href='undocumented#SkScalar'>SkScalar</a> scale, <a href='SkPoint_Reference#SkPoint'>SkPoint</a>* dst) const
</pre>
-Sets <a href='#SkPoint_scale_dst'>dst</a> <a href='#SkPoint_scale_dst'>to</a> <a href='SkPoint_Reference#SkPoint'>SkPoint</a> <a href='SkPoint_Reference#SkPoint'>times</a> <a href='#SkPoint_scale_scale'>scale</a>. <a href='#SkPoint_scale_dst'>dst</a> <a href='#SkPoint_scale_dst'>may</a> <a href='#SkPoint_scale_dst'>be</a> <a href='SkPoint_Reference#SkPoint'>SkPoint</a> <a href='SkPoint_Reference#SkPoint'>to</a> <a href='SkPoint_Reference#SkPoint'>modify</a> <a href='SkPoint_Reference#SkPoint'>SkPoint</a> <a href='SkPoint_Reference#SkPoint'>in</a> <a href='SkPoint_Reference#SkPoint'>place</a>.
+Sets <a href='#SkPoint_scale_dst'>dst</a> to <a href='SkPoint_Reference#SkPoint'>SkPoint</a> times <a href='#SkPoint_scale_scale'>scale</a>. <a href='#SkPoint_scale_dst'>dst</a> may be <a href='SkPoint_Reference#SkPoint'>SkPoint</a> to modify <a href='SkPoint_Reference#SkPoint'>SkPoint</a> in place.
### Parameters
<table> <tr> <td><a name='SkPoint_scale_scale'><code><strong>scale</strong></code></a></td>
- <td>factor to multiply <a href='SkPoint_Reference#SkPoint'>SkPoint</a> <a href='SkPoint_Reference#SkPoint'>by</a></td>
+ <td>factor to multiply <a href='SkPoint_Reference#SkPoint'>SkPoint</a> by</td>
</tr>
<tr> <td><a name='SkPoint_scale_dst'><code><strong>dst</strong></code></a></td>
<td>storage for scaled <a href='SkPoint_Reference#SkPoint'>SkPoint</a></td>
@@ -658,15 +658,15 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-void scale(<a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>value</a>)
+void scale(<a href='undocumented#SkScalar'>SkScalar</a> value)
</pre>
-Scales <a href='SkPoint_Reference#SkPoint'>SkPoint</a> <a href='SkPoint_Reference#SkPoint'>in</a> <a href='SkPoint_Reference#SkPoint'>place</a> <a href='SkPoint_Reference#SkPoint'>by</a> <a href='SkPoint_Reference#SkPoint'>scale</a>.
+Scales <a href='SkPoint_Reference#SkPoint'>SkPoint</a> in place by scale.
### Parameters
<table> <tr> <td><a name='SkPoint_scale_2_value'><code><strong>value</strong></code></a></td>
- <td>factor to multiply <a href='SkPoint_Reference#SkPoint'>SkPoint</a> <a href='SkPoint_Reference#SkPoint'>by</a></td>
+ <td>factor to multiply <a href='SkPoint_Reference#SkPoint'>SkPoint</a> by</td>
</tr>
</table>
@@ -686,7 +686,7 @@
void <a href='#SkPoint_negate'>negate()</a>
</pre>
-Changes the sign of <a href='#SkPoint_fX'>fX</a> <a href='#SkPoint_fX'>and</a> <a href='#SkPoint_fY'>fY</a>.
+Changes the sign of <a href='#SkPoint_fX'>fX</a> and <a href='#SkPoint_fY'>fY</a>.
### Example
@@ -712,14 +712,14 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-<a href='SkPoint_Reference#SkPoint'>SkPoint</a> <a href='SkPoint_Reference#SkPoint'>operator</a>-() <a href='SkPoint_Reference#SkPoint'>const</a>
+<a href='SkPoint_Reference#SkPoint'>SkPoint</a> operator-() const
</pre>
-Returns <a href='SkPoint_Reference#SkPoint'>SkPoint</a> <a href='SkPoint_Reference#SkPoint'>changing</a> <a href='SkPoint_Reference#SkPoint'>the</a> <a href='SkPoint_Reference#SkPoint'>signs</a> <a href='SkPoint_Reference#SkPoint'>of</a> <a href='#SkPoint_fX'>fX</a> <a href='#SkPoint_fX'>and</a> <a href='#SkPoint_fY'>fY</a>.
+Returns <a href='SkPoint_Reference#SkPoint'>SkPoint</a> changing the signs of <a href='#SkPoint_fX'>fX</a> and <a href='#SkPoint_fY'>fY</a>.
### Return Value
-<a href='SkPoint_Reference#SkPoint'>SkPoint</a> <a href='SkPoint_Reference#SkPoint'>as</a> (-<a href='#SkPoint_fX'>fX</a>, -<a href='#SkPoint_fY'>fY</a>)
+<a href='SkPoint_Reference#SkPoint'>SkPoint</a> as (-<a href='#SkPoint_fX'>fX</a>, -<a href='#SkPoint_fY'>fY</a>)
### Example
@@ -738,22 +738,22 @@
### See Also
-<a href='#SkPoint_negate'>negate</a> negate<a href='#SkPoint_subtract_operator'>operator-(const SkPoint& a, const SkPoint& b)</a> operator-(const SkPoint& a, const SkPoint& b)<a href='#SkPoint_subtractfrom_operator'>operator-=(const SkVector& v)</a> <a href='SkIPoint_Reference#SkIPoint'>SkIPoint</a>::<a href='SkIPoint_Reference#SkIPoint'>operator</a>-()_<a href='SkIPoint_Reference#SkIPoint'>const</a>
+<a href='#SkPoint_negate'>negate</a> negate<a href='#SkPoint_subtract_operator'>operator-(const SkPoint& a, const SkPoint& b)</a> operator-(const SkPoint& a, const SkPoint& b)<a href='#SkPoint_subtractfrom_operator'>operator-=(const SkVector& v)</a> <a href='SkIPoint_Reference#SkIPoint'>SkIPoint</a>::operator-()_const
<a name='SkPoint_addto_operator'></a>
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-void operator+=(const <a href='SkPoint_Reference#SkVector'>SkVector</a>& <a href='SkPoint_Reference#SkVector'>v</a>)
+void operator+=(const <a href='SkPoint_Reference#SkVector'>SkVector</a>& v)
</pre>
-Adds <a href='SkPoint_Reference#Vector'>Vector</a> <a href='#SkPoint_addto_operator_v'>v</a> <a href='#SkPoint_addto_operator_v'>to</a> <a href='SkPoint_Reference#Point'>Point</a>. <a href='SkPoint_Reference#Point'>Sets</a> <a href='SkPoint_Reference#Point'>Point</a> <a href='SkPoint_Reference#Point'>to</a>: <code>(<a href='#SkPoint_fX'>fX</a> + <a href='#SkPoint_addto_operator_v'>v</a>.<a href='#SkPoint_fX'>fX</a>, <a href='#SkPoint_fY'>fY</a> + <a href='#SkPoint_addto_operator_v'>v</a>.<a href='#SkPoint_fY'>fY</a>)</code>.
+Adds <a href='SkPoint_Reference#Vector'>Vector</a> <a href='#SkPoint_addto_operator_v'>v</a> to <a href='SkPoint_Reference#Point'>Point</a>. Sets <a href='SkPoint_Reference#Point'>Point</a> to: <code>(<a href='#SkPoint_fX'>fX</a> + <a href='#SkPoint_addto_operator_v'>v</a>.<a href='#SkPoint_fX'>fX</a>, <a href='#SkPoint_fY'>fY</a> + <a href='#SkPoint_addto_operator_v'>v</a>.<a href='#SkPoint_fY'>fY</a>)</code>.
### Parameters
<table> <tr> <td><a name='SkPoint_addto_operator_v'><code><strong>v</strong></code></a></td>
- <td><a href='SkPoint_Reference#Vector'>Vector</a> <a href='SkPoint_Reference#Vector'>to</a> <a href='SkPoint_Reference#Vector'>add</a></td>
+ <td><a href='SkPoint_Reference#Vector'>Vector</a> to add</td>
</tr>
</table>
@@ -770,15 +770,15 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-void operator-=(const <a href='SkPoint_Reference#SkVector'>SkVector</a>& <a href='SkPoint_Reference#SkVector'>v</a>)
+void operator-=(const <a href='SkPoint_Reference#SkVector'>SkVector</a>& v)
</pre>
-Subtracts <a href='SkPoint_Reference#Vector'>Vector</a> <a href='#SkPoint_subtractfrom_operator_v'>v</a> <a href='#SkPoint_subtractfrom_operator_v'>from</a> <a href='SkPoint_Reference#Point'>Point</a>. <a href='SkPoint_Reference#Point'>Sets</a> <a href='SkPoint_Reference#Point'>Point</a> <a href='SkPoint_Reference#Point'>to</a>: <code>(<a href='#SkPoint_fX'>fX</a> - <a href='#SkPoint_subtractfrom_operator_v'>v</a>.<a href='#SkPoint_fX'>fX</a>, <a href='#SkPoint_fY'>fY</a> - <a href='#SkPoint_subtractfrom_operator_v'>v</a>.<a href='#SkPoint_fY'>fY</a>)</code>.
+Subtracts <a href='SkPoint_Reference#Vector'>Vector</a> <a href='#SkPoint_subtractfrom_operator_v'>v</a> from <a href='SkPoint_Reference#Point'>Point</a>. Sets <a href='SkPoint_Reference#Point'>Point</a> to: <code>(<a href='#SkPoint_fX'>fX</a> - <a href='#SkPoint_subtractfrom_operator_v'>v</a>.<a href='#SkPoint_fX'>fX</a>, <a href='#SkPoint_fY'>fY</a> - <a href='#SkPoint_subtractfrom_operator_v'>v</a>.<a href='#SkPoint_fY'>fY</a>)</code>.
### Parameters
<table> <tr> <td><a name='SkPoint_subtractfrom_operator_v'><code><strong>v</strong></code></a></td>
- <td><a href='SkPoint_Reference#Vector'>Vector</a> <a href='SkPoint_Reference#Vector'>to</a> <a href='SkPoint_Reference#Vector'>subtract</a></td>
+ <td><a href='SkPoint_Reference#Vector'>Vector</a> to subtract</td>
</tr>
</table>
@@ -795,21 +795,21 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-<a href='SkPoint_Reference#SkPoint'>SkPoint</a> <a href='SkPoint_Reference#SkPoint'>operator</a>*(<a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>scale</a>) <a href='undocumented#SkScalar'>const</a>
+<a href='SkPoint_Reference#SkPoint'>SkPoint</a> operator*(<a href='undocumented#SkScalar'>SkScalar</a> scale) const
</pre>
-Returns <a href='SkPoint_Reference#SkPoint'>SkPoint</a> <a href='SkPoint_Reference#SkPoint'>multiplied</a> <a href='SkPoint_Reference#SkPoint'>by</a> <a href='#SkPoint_multiply_operator_scale'>scale</a>.
+Returns <a href='SkPoint_Reference#SkPoint'>SkPoint</a> multiplied by <a href='#SkPoint_multiply_operator_scale'>scale</a>.
### Parameters
<table> <tr> <td><a name='SkPoint_multiply_operator_scale'><code><strong>scale</strong></code></a></td>
- <td><a href='undocumented#Scalar'>scalar</a> <a href='undocumented#Scalar'>to</a> <a href='undocumented#Scalar'>multiply</a> <a href='undocumented#Scalar'>by</a></td>
+ <td><a href='undocumented#Scalar'>scalar</a> to multiply by</td>
</tr>
</table>
### Return Value
-<a href='SkPoint_Reference#SkPoint'>SkPoint</a> <a href='SkPoint_Reference#SkPoint'>as</a> (<a href='#SkPoint_fX'>fX</a> * <a href='#SkPoint_multiply_operator_scale'>scale</a>, <a href='#SkPoint_fY'>fY</a> * <a href='#SkPoint_multiply_operator_scale'>scale</a>)
+<a href='SkPoint_Reference#SkPoint'>SkPoint</a> as (<a href='#SkPoint_fX'>fX</a> * <a href='#SkPoint_multiply_operator_scale'>scale</a>, <a href='#SkPoint_fY'>fY</a> * <a href='#SkPoint_multiply_operator_scale'>scale</a>)
### Example
@@ -824,15 +824,15 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-<a href='SkPoint_Reference#SkPoint'>SkPoint</a>& <a href='SkPoint_Reference#SkPoint'>operator</a>*=(<a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>scale</a>)
+<a href='SkPoint_Reference#SkPoint'>SkPoint</a>& operator*=(<a href='undocumented#SkScalar'>SkScalar</a> scale)
</pre>
-Multiplies <a href='SkPoint_Reference#Point'>Point</a> <a href='SkPoint_Reference#Point'>by</a> <a href='#SkPoint_multiplyby_operator_scale'>scale</a>. <a href='#SkPoint_multiplyby_operator_scale'>Sets</a> <a href='SkPoint_Reference#Point'>Point</a> <a href='SkPoint_Reference#Point'>to</a>: <code>(<a href='#SkPoint_fX'>fX</a> * <a href='#SkPoint_multiplyby_operator_scale'>scale</a>, <a href='#SkPoint_fY'>fY</a> * <a href='#SkPoint_multiplyby_operator_scale'>scale</a>)</code>.
+Multiplies <a href='SkPoint_Reference#Point'>Point</a> by <a href='#SkPoint_multiplyby_operator_scale'>scale</a>. Sets <a href='SkPoint_Reference#Point'>Point</a> to: <code>(<a href='#SkPoint_fX'>fX</a> * <a href='#SkPoint_multiplyby_operator_scale'>scale</a>, <a href='#SkPoint_fY'>fY</a> * <a href='#SkPoint_multiplyby_operator_scale'>scale</a>)</code>.
### Parameters
<table> <tr> <td><a name='SkPoint_multiplyby_operator_scale'><code><strong>scale</strong></code></a></td>
- <td><a href='undocumented#Scalar'>Scalar</a> <a href='undocumented#Scalar'>to</a> <a href='undocumented#Scalar'>multiply</a> <a href='undocumented#Scalar'>by</a></td>
+ <td><a href='undocumented#Scalar'>Scalar</a> to multiply by</td>
</tr>
</table>
@@ -853,10 +853,10 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-bool <a href='#SkPoint_isFinite'>isFinite</a>() <a href='#SkPoint_isFinite'>const</a>
+bool <a href='#SkPoint_isFinite'>isFinite</a>() const
</pre>
-Returns true if both <a href='#SkPoint_fX'>fX</a> <a href='#SkPoint_fX'>and</a> <a href='#SkPoint_fY'>fY</a> <a href='#SkPoint_fY'>are</a> <a href='#SkPoint_fY'>measurable</a> <a href='#SkPoint_fY'>values</a>.
+Returns true if both <a href='#SkPoint_fX'>fX</a> and <a href='#SkPoint_fY'>fY</a> are measurable values.
### Return Value
@@ -886,10 +886,10 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-bool equals(<a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>x</a>, <a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>y</a>) <a href='undocumented#SkScalar'>const</a>
+bool equals(<a href='undocumented#SkScalar'>SkScalar</a> x, <a href='undocumented#SkScalar'>SkScalar</a> y) const
</pre>
-Returns true if <a href='SkPoint_Reference#SkPoint'>SkPoint</a> <a href='SkPoint_Reference#SkPoint'>is</a> <a href='SkPoint_Reference#SkPoint'>equivalent</a> <a href='SkPoint_Reference#SkPoint'>to</a> <a href='SkPoint_Reference#SkPoint'>SkPoint</a> <a href='SkPoint_Reference#SkPoint'>constructed</a> <a href='SkPoint_Reference#SkPoint'>from</a> (<a href='#SkPoint_equals_x'>x</a>, <a href='#SkPoint_equals_y'>y</a>).
+Returns true if <a href='SkPoint_Reference#SkPoint'>SkPoint</a> is equivalent to <a href='SkPoint_Reference#SkPoint'>SkPoint</a> constructed from (<a href='#SkPoint_equals_x'>x</a>, <a href='#SkPoint_equals_y'>y</a>).
### Parameters
@@ -903,7 +903,7 @@
### Return Value
-true if <a href='SkPoint_Reference#SkPoint'>SkPoint</a> <a href='SkPoint_Reference#SkPoint'>equals</a> (<a href='#SkPoint_equals_x'>x</a>, <a href='#SkPoint_equals_y'>y</a>)
+true if <a href='SkPoint_Reference#SkPoint'>SkPoint</a> equals (<a href='#SkPoint_equals_x'>x</a>, <a href='#SkPoint_equals_y'>y</a>)
### Example
@@ -929,24 +929,24 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-bool operator==(const <a href='SkPoint_Reference#SkPoint'>SkPoint</a>& <a href='SkPoint_Reference#SkPoint'>a</a>, <a href='SkPoint_Reference#SkPoint'>const</a> <a href='SkPoint_Reference#SkPoint'>SkPoint</a>& <a href='SkPoint_Reference#SkPoint'>b</a>)
+bool operator==(const <a href='SkPoint_Reference#SkPoint'>SkPoint</a>& a, const <a href='SkPoint_Reference#SkPoint'>SkPoint</a>& b)
</pre>
-Returns true if <a href='#SkPoint_equal_operator_a'>a</a> <a href='#SkPoint_equal_operator_a'>is</a> <a href='#SkPoint_equal_operator_a'>equivalent</a> <a href='#SkPoint_equal_operator_a'>to</a> <a href='#SkPoint_equal_operator_b'>b</a>.
+Returns true if <a href='#SkPoint_equal_operator_a'>a</a> is equivalent to <a href='#SkPoint_equal_operator_b'>b</a>.
### Parameters
<table> <tr> <td><a name='SkPoint_equal_operator_a'><code><strong>a</strong></code></a></td>
- <td><a href='SkPoint_Reference#SkPoint'>SkPoint</a> <a href='SkPoint_Reference#SkPoint'>to</a> <a href='SkPoint_Reference#SkPoint'>compare</a></td>
+ <td><a href='SkPoint_Reference#SkPoint'>SkPoint</a> to compare</td>
</tr>
<tr> <td><a name='SkPoint_equal_operator_b'><code><strong>b</strong></code></a></td>
- <td><a href='SkPoint_Reference#SkPoint'>SkPoint</a> <a href='SkPoint_Reference#SkPoint'>to</a> <a href='SkPoint_Reference#SkPoint'>compare</a></td>
+ <td><a href='SkPoint_Reference#SkPoint'>SkPoint</a> to compare</td>
</tr>
</table>
### Return Value
-true if <a href='#SkPoint_equal_operator_a'>a</a>.<a href='#SkPoint_fX'>fX</a> == <a href='#SkPoint_equal_operator_b'>b</a>.<a href='#SkPoint_fX'>fX</a> <a href='#SkPoint_fX'>and</a> <a href='#SkPoint_equal_operator_a'>a</a>.<a href='#SkPoint_fY'>fY</a> == <a href='#SkPoint_equal_operator_b'>b</a>.<a href='#SkPoint_fY'>fY</a>
+true if <a href='#SkPoint_equal_operator_a'>a</a>.<a href='#SkPoint_fX'>fX</a> == <a href='#SkPoint_equal_operator_b'>b</a>.<a href='#SkPoint_fX'>fX</a> and <a href='#SkPoint_equal_operator_a'>a</a>.<a href='#SkPoint_fY'>fY</a> == <a href='#SkPoint_equal_operator_b'>b</a>.<a href='#SkPoint_fY'>fY</a>
### Example
@@ -972,24 +972,24 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-bool operator!=(const <a href='SkPoint_Reference#SkPoint'>SkPoint</a>& <a href='SkPoint_Reference#SkPoint'>a</a>, <a href='SkPoint_Reference#SkPoint'>const</a> <a href='SkPoint_Reference#SkPoint'>SkPoint</a>& <a href='SkPoint_Reference#SkPoint'>b</a>)
+bool operator!=(const <a href='SkPoint_Reference#SkPoint'>SkPoint</a>& a, const <a href='SkPoint_Reference#SkPoint'>SkPoint</a>& b)
</pre>
-Returns true if <a href='#SkPoint_notequal_operator_a'>a</a> <a href='#SkPoint_notequal_operator_a'>is</a> <a href='#SkPoint_notequal_operator_a'>not</a> <a href='#SkPoint_notequal_operator_a'>equivalent</a> <a href='#SkPoint_notequal_operator_a'>to</a> <a href='#SkPoint_notequal_operator_b'>b</a>.
+Returns true if <a href='#SkPoint_notequal_operator_a'>a</a> is not equivalent to <a href='#SkPoint_notequal_operator_b'>b</a>.
### Parameters
<table> <tr> <td><a name='SkPoint_notequal_operator_a'><code><strong>a</strong></code></a></td>
- <td><a href='SkPoint_Reference#SkPoint'>SkPoint</a> <a href='SkPoint_Reference#SkPoint'>to</a> <a href='SkPoint_Reference#SkPoint'>compare</a></td>
+ <td><a href='SkPoint_Reference#SkPoint'>SkPoint</a> to compare</td>
</tr>
<tr> <td><a name='SkPoint_notequal_operator_b'><code><strong>b</strong></code></a></td>
- <td><a href='SkPoint_Reference#SkPoint'>SkPoint</a> <a href='SkPoint_Reference#SkPoint'>to</a> <a href='SkPoint_Reference#SkPoint'>compare</a></td>
+ <td><a href='SkPoint_Reference#SkPoint'>SkPoint</a> to compare</td>
</tr>
</table>
### Return Value
-true if <a href='#SkPoint_notequal_operator_a'>a</a>.<a href='#SkPoint_fX'>fX</a> != <a href='#SkPoint_notequal_operator_b'>b</a>.<a href='#SkPoint_fX'>fX</a> <a href='#SkPoint_fX'>or</a> <a href='#SkPoint_notequal_operator_a'>a</a>.<a href='#SkPoint_fY'>fY</a> != <a href='#SkPoint_notequal_operator_b'>b</a>.<a href='#SkPoint_fY'>fY</a>
+true if <a href='#SkPoint_notequal_operator_a'>a</a>.<a href='#SkPoint_fX'>fX</a> != <a href='#SkPoint_notequal_operator_b'>b</a>.<a href='#SkPoint_fX'>fX</a> or <a href='#SkPoint_notequal_operator_a'>a</a>.<a href='#SkPoint_fY'>fY</a> != <a href='#SkPoint_notequal_operator_b'>b</a>.<a href='#SkPoint_fY'>fY</a>
### Example
@@ -1015,27 +1015,27 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-<a href='SkPoint_Reference#SkVector'>SkVector</a> <a href='SkPoint_Reference#SkVector'>operator</a>-(<a href='SkPoint_Reference#SkVector'>const</a> <a href='SkPoint_Reference#SkPoint'>SkPoint</a>& <a href='SkPoint_Reference#SkPoint'>a</a>, <a href='SkPoint_Reference#SkPoint'>const</a> <a href='SkPoint_Reference#SkPoint'>SkPoint</a>& <a href='SkPoint_Reference#SkPoint'>b</a>)
+<a href='SkPoint_Reference#SkVector'>SkVector</a> operator-(const <a href='SkPoint_Reference#SkPoint'>SkPoint</a>& a, const <a href='SkPoint_Reference#SkPoint'>SkPoint</a>& b)
</pre>
-Returns <a href='SkPoint_Reference#Vector'>Vector</a> <a href='SkPoint_Reference#Vector'>from</a> <a href='#SkPoint_subtract_operator_b'>b</a> <a href='#SkPoint_subtract_operator_b'>to</a> <a href='#SkPoint_subtract_operator_a'>a</a>, <a href='#SkPoint_subtract_operator_a'>computed</a> <a href='#SkPoint_subtract_operator_a'>as </a> <code>(<a href='#SkPoint_subtract_operator_a'>a</a>.<a href='#SkPoint_fX'>fX</a> - <a href='#SkPoint_subtract_operator_b'>b</a>.<a href='#SkPoint_fX'>fX</a>, <a href='#SkPoint_subtract_operator_a'>a</a>.<a href='#SkPoint_fY'>fY</a> - <a href='#SkPoint_subtract_operator_b'>b</a>.<a href='#SkPoint_fY'>fY</a>)</code>.
+Returns <a href='SkPoint_Reference#Vector'>Vector</a> from <a href='#SkPoint_subtract_operator_b'>b</a> to <a href='#SkPoint_subtract_operator_a'>a</a>, computed as <code>(<a href='#SkPoint_subtract_operator_a'>a</a>.<a href='#SkPoint_fX'>fX</a> - <a href='#SkPoint_subtract_operator_b'>b</a>.<a href='#SkPoint_fX'>fX</a>, <a href='#SkPoint_subtract_operator_a'>a</a>.<a href='#SkPoint_fY'>fY</a> - <a href='#SkPoint_subtract_operator_b'>b</a>.<a href='#SkPoint_fY'>fY</a>)</code>.
-Can also be used to subtract <a href='SkPoint_Reference#Vector'>Vector</a> <a href='SkPoint_Reference#Vector'>from</a> <a href='SkPoint_Reference#Point'>Point</a>, <a href='SkPoint_Reference#Point'>returning</a> <a href='SkPoint_Reference#Point'>Point</a>.
-<a href='SkPoint_Reference#Point'>Can</a> <a href='SkPoint_Reference#Point'>also</a> <a href='SkPoint_Reference#Point'>be</a> <a href='SkPoint_Reference#Point'>used</a> <a href='SkPoint_Reference#Point'>to</a> <a href='SkPoint_Reference#Point'>subtract</a> <a href='SkPoint_Reference#Vector'>Vector</a> <a href='SkPoint_Reference#Vector'>from</a> <a href='SkPoint_Reference#Vector'>Vector</a>, <a href='SkPoint_Reference#Vector'>returning</a> <a href='SkPoint_Reference#Vector'>Vector</a>.
+Can also be used to subtract <a href='SkPoint_Reference#Vector'>Vector</a> from <a href='SkPoint_Reference#Point'>Point</a>, returning <a href='SkPoint_Reference#Point'>Point</a>.
+Can also be used to subtract <a href='SkPoint_Reference#Vector'>Vector</a> from <a href='SkPoint_Reference#Vector'>Vector</a>, returning <a href='SkPoint_Reference#Vector'>Vector</a>.
### Parameters
<table> <tr> <td><a name='SkPoint_subtract_operator_a'><code><strong>a</strong></code></a></td>
- <td><a href='SkPoint_Reference#Point'>Point</a> <a href='SkPoint_Reference#Point'>to</a> <a href='SkPoint_Reference#Point'>subtract</a> <a href='SkPoint_Reference#Point'>from</a></td>
+ <td><a href='SkPoint_Reference#Point'>Point</a> to subtract from</td>
</tr>
<tr> <td><a name='SkPoint_subtract_operator_b'><code><strong>b</strong></code></a></td>
- <td><a href='SkPoint_Reference#Point'>Point</a> <a href='SkPoint_Reference#Point'>to</a> <a href='SkPoint_Reference#Point'>subtract</a></td>
+ <td><a href='SkPoint_Reference#Point'>Point</a> to subtract</td>
</tr>
</table>
### Return Value
-<a href='SkPoint_Reference#Vector'>Vector</a> <a href='SkPoint_Reference#Vector'>from</a> <a href='#SkPoint_subtract_operator_b'>b</a> <a href='#SkPoint_subtract_operator_b'>to</a> <a href='#SkPoint_subtract_operator_a'>a</a>
+<a href='SkPoint_Reference#Vector'>Vector</a> from <a href='#SkPoint_subtract_operator_b'>b</a> to <a href='#SkPoint_subtract_operator_a'>a</a>
### Example
@@ -1050,28 +1050,28 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-<a href='SkPoint_Reference#SkPoint'>SkPoint</a> <a href='SkPoint_Reference#SkPoint'>operator</a>+(<a href='SkPoint_Reference#SkPoint'>const</a> <a href='SkPoint_Reference#SkPoint'>SkPoint</a>& <a href='SkPoint_Reference#SkPoint'>a</a>, <a href='SkPoint_Reference#SkPoint'>const</a> <a href='SkPoint_Reference#SkVector'>SkVector</a>& <a href='SkPoint_Reference#SkVector'>b</a>)
+<a href='SkPoint_Reference#SkPoint'>SkPoint</a> operator+(const <a href='SkPoint_Reference#SkPoint'>SkPoint</a>& a, const <a href='SkPoint_Reference#SkVector'>SkVector</a>& b)
</pre>
-Returns <a href='SkPoint_Reference#Point'>Point</a> <a href='SkPoint_Reference#Point'>resulting</a> <a href='SkPoint_Reference#Point'>from</a> <a href='SkPoint_Reference#Point'>Point</a> <a href='#SkPoint_add_operator_a'>a</a> <a href='#SkPoint_add_operator_a'>offset</a> <a href='#SkPoint_add_operator_a'>by</a> <a href='SkPoint_Reference#Vector'>Vector</a> <a href='#SkPoint_add_operator_b'>b</a>, <a href='#SkPoint_add_operator_b'>computed</a> <a href='#SkPoint_add_operator_b'>as</a>:
+Returns <a href='SkPoint_Reference#Point'>Point</a> resulting from <a href='SkPoint_Reference#Point'>Point</a> <a href='#SkPoint_add_operator_a'>a</a> offset by <a href='SkPoint_Reference#Vector'>Vector</a> <a href='#SkPoint_add_operator_b'>b</a>, computed as:
<code>(<a href='#SkPoint_add_operator_a'>a</a>.<a href='#SkPoint_fX'>fX</a> + <a href='#SkPoint_add_operator_b'>b</a>.<a href='#SkPoint_fX'>fX</a>, <a href='#SkPoint_add_operator_a'>a</a>.<a href='#SkPoint_fY'>fY</a> + <a href='#SkPoint_add_operator_b'>b</a>.<a href='#SkPoint_fY'>fY</a>)</code>.
-Can also be used to offset <a href='SkPoint_Reference#Point'>Point</a> <a href='#SkPoint_add_operator_b'>b</a> <a href='#SkPoint_add_operator_b'>by</a> <a href='SkPoint_Reference#Vector'>Vector</a> <a href='#SkPoint_add_operator_a'>a</a>, <a href='#SkPoint_add_operator_a'>returning</a> <a href='SkPoint_Reference#Point'>Point</a>.
-<a href='SkPoint_Reference#Point'>Can</a> <a href='SkPoint_Reference#Point'>also</a> <a href='SkPoint_Reference#Point'>be</a> <a href='SkPoint_Reference#Point'>used</a> <a href='SkPoint_Reference#Point'>to</a> <a href='SkPoint_Reference#Point'>add</a> <a href='SkPoint_Reference#Vector'>Vector</a> <a href='SkPoint_Reference#Vector'>to</a> <a href='SkPoint_Reference#Vector'>Vector</a>, <a href='SkPoint_Reference#Vector'>returning</a> <a href='SkPoint_Reference#Vector'>Vector</a>.
+Can also be used to offset <a href='SkPoint_Reference#Point'>Point</a> <a href='#SkPoint_add_operator_b'>b</a> by <a href='SkPoint_Reference#Vector'>Vector</a> <a href='#SkPoint_add_operator_a'>a</a>, returning <a href='SkPoint_Reference#Point'>Point</a>.
+Can also be used to add <a href='SkPoint_Reference#Vector'>Vector</a> to <a href='SkPoint_Reference#Vector'>Vector</a>, returning <a href='SkPoint_Reference#Vector'>Vector</a>.
### Parameters
<table> <tr> <td><a name='SkPoint_add_operator_a'><code><strong>a</strong></code></a></td>
- <td><a href='SkPoint_Reference#Point'>Point</a> <a href='SkPoint_Reference#Point'>or</a> <a href='SkPoint_Reference#Vector'>Vector</a> <a href='SkPoint_Reference#Vector'>to</a> <a href='SkPoint_Reference#Vector'>add</a> <a href='SkPoint_Reference#Vector'>to</a></td>
+ <td><a href='SkPoint_Reference#Point'>Point</a> or <a href='SkPoint_Reference#Vector'>Vector</a> to add to</td>
</tr>
<tr> <td><a name='SkPoint_add_operator_b'><code><strong>b</strong></code></a></td>
- <td><a href='SkPoint_Reference#Point'>Point</a> <a href='SkPoint_Reference#Point'>or</a> <a href='SkPoint_Reference#Vector'>Vector</a> <a href='SkPoint_Reference#Vector'>to</a> <a href='SkPoint_Reference#Vector'>add</a></td>
+ <td><a href='SkPoint_Reference#Point'>Point</a> or <a href='SkPoint_Reference#Vector'>Vector</a> to add</td>
</tr>
</table>
### Return Value
-<a href='SkPoint_Reference#Point'>Point</a> <a href='SkPoint_Reference#Point'>equal</a> <a href='SkPoint_Reference#Point'>to</a> <a href='#SkPoint_add_operator_a'>a</a> <a href='#SkPoint_add_operator_a'>offset</a> <a href='#SkPoint_add_operator_a'>by</a> <a href='#SkPoint_add_operator_b'>b</a>
+<a href='SkPoint_Reference#Point'>Point</a> equal to <a href='#SkPoint_add_operator_a'>a</a> offset by <a href='#SkPoint_add_operator_b'>b</a>
### Example
@@ -1086,7 +1086,7 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-static <a href='undocumented#SkScalar'>SkScalar</a> <a href='#SkPoint_Length'>Length</a>(<a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>x</a>, <a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>y</a>)
+static <a href='undocumented#SkScalar'>SkScalar</a> <a href='#SkPoint_Length'>Length</a>(<a href='undocumented#SkScalar'>SkScalar</a> x, <a href='undocumented#SkScalar'>SkScalar</a> y)
</pre>
Returns the <a href='undocumented#Euclidean_Distance'>Euclidean distance</a> from origin, computed as:
@@ -1122,16 +1122,16 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-static <a href='undocumented#SkScalar'>SkScalar</a> <a href='#SkPoint_Normalize'>Normalize</a>(<a href='SkPoint_Reference#SkVector'>SkVector</a>* <a href='SkPoint_Reference#SkVector'>vec</a>)
+static <a href='undocumented#SkScalar'>SkScalar</a> <a href='#SkPoint_Normalize'>Normalize</a>(<a href='SkPoint_Reference#SkVector'>SkVector</a>* vec)
</pre>
-Scales (<a href='#SkPoint_Normalize_vec'>vec</a>-><a href='#SkPoint_fX'>fX</a>, <a href='#SkPoint_Normalize_vec'>vec</a>-><a href='#SkPoint_fY'>fY</a>) <a href='#SkPoint_fY'>so</a> <a href='#SkPoint_fY'>that</a> <a href='#SkPoint_length'>length()</a> <a href='#SkPoint_length'>returns</a> <a href='#SkPoint_length'>one</a>, <a href='#SkPoint_length'>while</a> <a href='#SkPoint_length'>preserving</a> <a href='#SkPoint_length'>ratio</a> <a href='#SkPoint_length'>of</a> <a href='#SkPoint_Normalize_vec'>vec</a>-><a href='#SkPoint_fX'>fX</a>
-to <a href='#SkPoint_Normalize_vec'>vec</a>-><a href='#SkPoint_fY'>fY</a>, <a href='#SkPoint_fY'>if</a> <a href='#SkPoint_fY'>possible</a>. <a href='#SkPoint_fY'>If</a> <a href='#SkPoint_fY'>original</a> <a href='#SkPoint_fY'>length</a> <a href='#SkPoint_fY'>is</a> <a href='#SkPoint_fY'>nearly</a> <a href='#SkPoint_fY'>zero</a>, <a href='#SkPoint_fY'>sets</a> <a href='#SkPoint_Normalize_vec'>vec</a> <a href='#SkPoint_Normalize_vec'>to</a> (0, 0) <a href='#SkPoint_Normalize_vec'>and</a> <a href='#SkPoint_Normalize_vec'>returns</a>
-zero; otherwise, returns length of <a href='#SkPoint_Normalize_vec'>vec</a> <a href='#SkPoint_Normalize_vec'>before</a> <a href='#SkPoint_Normalize_vec'>vec</a> <a href='#SkPoint_Normalize_vec'>is</a> <a href='#SkPoint_Normalize_vec'>scaled</a>.
+Scales (<a href='#SkPoint_Normalize_vec'>vec</a>-><a href='#SkPoint_fX'>fX</a>, <a href='#SkPoint_Normalize_vec'>vec</a>-><a href='#SkPoint_fY'>fY</a>) so that <a href='#SkPoint_length'>length()</a> returns one, while preserving ratio of <a href='#SkPoint_Normalize_vec'>vec</a>-><a href='#SkPoint_fX'>fX</a>
+to <a href='#SkPoint_Normalize_vec'>vec</a>-><a href='#SkPoint_fY'>fY</a>, if possible. If original length is nearly zero, sets <a href='#SkPoint_Normalize_vec'>vec</a> to (0, 0) and returns
+zero; otherwise, returns length of <a href='#SkPoint_Normalize_vec'>vec</a> before <a href='#SkPoint_Normalize_vec'>vec</a> is scaled.
-Returned prior length may be <a href='undocumented#SK_ScalarInfinity'>SK_ScalarInfinity</a> <a href='undocumented#SK_ScalarInfinity'>if</a> <a href='undocumented#SK_ScalarInfinity'>it</a> <a href='undocumented#SK_ScalarInfinity'>can</a> <a href='undocumented#SK_ScalarInfinity'>not</a> <a href='undocumented#SK_ScalarInfinity'>be</a> <a href='undocumented#SK_ScalarInfinity'>represented</a> <a href='undocumented#SK_ScalarInfinity'>by</a> <a href='undocumented#SkScalar'>SkScalar</a>.
+Returned prior length may be <a href='undocumented#SK_ScalarInfinity'>SK_ScalarInfinity</a> if it can not be represented by <a href='undocumented#SkScalar'>SkScalar</a>.
-Note that <a href='#SkPoint_normalize'>normalize()</a> <a href='#SkPoint_normalize'>is</a> <a href='#SkPoint_normalize'>faster</a> <a href='#SkPoint_normalize'>if</a> <a href='#SkPoint_normalize'>prior</a> <a href='#SkPoint_normalize'>length</a> <a href='#SkPoint_normalize'>is</a> <a href='#SkPoint_normalize'>not</a> <a href='#SkPoint_normalize'>required</a>.
+Note that <a href='#SkPoint_normalize'>normalize()</a> is faster if prior length is not required.
### Parameters
@@ -1142,7 +1142,7 @@
### Return Value
-original <a href='#SkPoint_Normalize_vec'>vec</a> <a href='#SkPoint_Normalize_vec'>length</a>
+original <a href='#SkPoint_Normalize_vec'>vec</a> length
### Example
@@ -1157,24 +1157,24 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-static <a href='undocumented#SkScalar'>SkScalar</a> <a href='#SkPoint_Distance'>Distance</a>(<a href='#SkPoint_Distance'>const</a> <a href='SkPoint_Reference#SkPoint'>SkPoint</a>& <a href='SkPoint_Reference#SkPoint'>a</a>, <a href='SkPoint_Reference#SkPoint'>const</a> <a href='SkPoint_Reference#SkPoint'>SkPoint</a>& <a href='SkPoint_Reference#SkPoint'>b</a>)
+static <a href='undocumented#SkScalar'>SkScalar</a> <a href='#SkPoint_Distance'>Distance</a>(const <a href='SkPoint_Reference#SkPoint'>SkPoint</a>& a, const <a href='SkPoint_Reference#SkPoint'>SkPoint</a>& b)
</pre>
-Returns the <a href='undocumented#Euclidean_Distance'>Euclidean distance</a> between <a href='#SkPoint_Distance_a'>a</a> <a href='#SkPoint_Distance_a'>and</a> <a href='#SkPoint_Distance_b'>b</a>.
+Returns the <a href='undocumented#Euclidean_Distance'>Euclidean distance</a> between <a href='#SkPoint_Distance_a'>a</a> and <a href='#SkPoint_Distance_b'>b</a>.
### Parameters
<table> <tr> <td><a name='SkPoint_Distance_a'><code><strong>a</strong></code></a></td>
- <td><a href='undocumented#Line'>line</a> <a href='undocumented#Line'>end</a> <a href='SkPoint_Reference#Point'>point</a></td>
+ <td><a href='undocumented#Line'>line</a> end <a href='SkPoint_Reference#Point'>point</a></td>
</tr>
<tr> <td><a name='SkPoint_Distance_b'><code><strong>b</strong></code></a></td>
- <td><a href='undocumented#Line'>line</a> <a href='undocumented#Line'>end</a> <a href='SkPoint_Reference#Point'>point</a></td>
+ <td><a href='undocumented#Line'>line</a> end <a href='SkPoint_Reference#Point'>point</a></td>
</tr>
</table>
### Return Value
-straight-line distance from <a href='#SkPoint_Distance_a'>a</a> <a href='#SkPoint_Distance_a'>to</a> <a href='#SkPoint_Distance_b'>b</a>
+straight-line distance from <a href='#SkPoint_Distance_a'>a</a> to <a href='#SkPoint_Distance_b'>b</a>
### Example
@@ -1189,10 +1189,10 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-static <a href='undocumented#SkScalar'>SkScalar</a> <a href='#SkPoint_DotProduct'>DotProduct</a>(<a href='#SkPoint_DotProduct'>const</a> <a href='SkPoint_Reference#SkVector'>SkVector</a>& <a href='SkPoint_Reference#SkVector'>a</a>, <a href='SkPoint_Reference#SkVector'>const</a> <a href='SkPoint_Reference#SkVector'>SkVector</a>& <a href='SkPoint_Reference#SkVector'>b</a>)
+static <a href='undocumented#SkScalar'>SkScalar</a> <a href='#SkPoint_DotProduct'>DotProduct</a>(const <a href='SkPoint_Reference#SkVector'>SkVector</a>& a, const <a href='SkPoint_Reference#SkVector'>SkVector</a>& b)
</pre>
-Returns the dot product of <a href='SkPoint_Reference#Vector'>vector</a> <a href='#SkPoint_DotProduct_a'>a</a> <a href='#SkPoint_DotProduct_a'>and</a> <a href='SkPoint_Reference#Vector'>vector</a> <a href='#SkPoint_DotProduct_b'>b</a>.
+Returns the dot product of <a href='SkPoint_Reference#Vector'>vector</a> <a href='#SkPoint_DotProduct_a'>a</a> and <a href='SkPoint_Reference#Vector'>vector</a> <a href='#SkPoint_DotProduct_b'>b</a>.
### Parameters
@@ -1221,13 +1221,13 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-static <a href='undocumented#SkScalar'>SkScalar</a> <a href='#SkPoint_CrossProduct'>CrossProduct</a>(<a href='#SkPoint_CrossProduct'>const</a> <a href='SkPoint_Reference#SkVector'>SkVector</a>& <a href='SkPoint_Reference#SkVector'>a</a>, <a href='SkPoint_Reference#SkVector'>const</a> <a href='SkPoint_Reference#SkVector'>SkVector</a>& <a href='SkPoint_Reference#SkVector'>b</a>)
+static <a href='undocumented#SkScalar'>SkScalar</a> <a href='#SkPoint_CrossProduct'>CrossProduct</a>(const <a href='SkPoint_Reference#SkVector'>SkVector</a>& a, const <a href='SkPoint_Reference#SkVector'>SkVector</a>& b)
</pre>
-Returns the cross product of <a href='SkPoint_Reference#Vector'>vector</a> <a href='#SkPoint_CrossProduct_a'>a</a> <a href='#SkPoint_CrossProduct_a'>and</a> <a href='SkPoint_Reference#Vector'>vector</a> <a href='#SkPoint_CrossProduct_b'>b</a>.
+Returns the cross product of <a href='SkPoint_Reference#Vector'>vector</a> <a href='#SkPoint_CrossProduct_a'>a</a> and <a href='SkPoint_Reference#Vector'>vector</a> <a href='#SkPoint_CrossProduct_b'>b</a>.
-<a href='#SkPoint_CrossProduct_a'>a</a> <a href='#SkPoint_CrossProduct_a'>and</a> <a href='#SkPoint_CrossProduct_b'>b</a> <a href='#SkPoint_CrossProduct_b'>form</a> <a href='#SkPoint_CrossProduct_b'>three-dimensional</a> <a href='SkPoint_Reference#Vector'>vectors</a> <a href='SkPoint_Reference#Vector'>with</a> <a href='SkPoint_Reference#Vector'>z-axis</a> <a href='SkPoint_Reference#Vector'>value</a> <a href='SkPoint_Reference#Vector'>equal</a> <a href='SkPoint_Reference#Vector'>to</a> <a href='SkPoint_Reference#Vector'>zero</a>. <a href='SkPoint_Reference#Vector'>The</a>
-cross product is <a href='#SkPoint_CrossProduct_a'>a</a> <a href='#SkPoint_CrossProduct_a'>three-dimensional</a> <a href='SkPoint_Reference#Vector'>vector</a> <a href='SkPoint_Reference#Vector'>with</a> <a href='SkPoint_Reference#Vector'>x-axis</a> <a href='SkPoint_Reference#Vector'>and</a> <a href='SkPoint_Reference#Vector'>y-axis</a> <a href='SkPoint_Reference#Vector'>values</a> <a href='SkPoint_Reference#Vector'>equal</a>
+<a href='#SkPoint_CrossProduct_a'>a</a> and <a href='#SkPoint_CrossProduct_b'>b</a> form three-dimensional <a href='SkPoint_Reference#Vector'>vectors</a> with z-axis value equal to zero. The
+cross product is <a href='#SkPoint_CrossProduct_a'>a</a> three-dimensional <a href='SkPoint_Reference#Vector'>vector</a> with x-axis and y-axis values equal
to zero. The cross product z-axis component is returned.
### Parameters
@@ -1242,7 +1242,7 @@
### Return Value
-area spanned by <a href='SkPoint_Reference#Vector'>vectors</a> <a href='SkPoint_Reference#Vector'>signed</a> <a href='SkPoint_Reference#Vector'>by</a> <a href='SkPoint_Reference#Vector'>angle</a> <a href='SkPoint_Reference#Vector'>direction</a>
+area spanned by <a href='SkPoint_Reference#Vector'>vectors</a> signed by angle direction
### Example
@@ -1257,13 +1257,13 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-<a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>cross</a>(<a href='undocumented#SkScalar'>const</a> <a href='SkPoint_Reference#SkVector'>SkVector</a>& <a href='SkPoint_Reference#SkVector'>vec</a>) <a href='SkPoint_Reference#SkVector'>const</a>
+<a href='undocumented#SkScalar'>SkScalar</a> cross(const <a href='SkPoint_Reference#SkVector'>SkVector</a>& vec) const
</pre>
-Returns the cross product of <a href='SkPoint_Reference#Vector'>vector</a> <a href='SkPoint_Reference#Vector'>and</a> <a href='#SkPoint_cross_vec'>vec</a>.
+Returns the cross product of <a href='SkPoint_Reference#Vector'>vector</a> and <a href='#SkPoint_cross_vec'>vec</a>.
-<a href='SkPoint_Reference#Vector'>Vector</a> <a href='SkPoint_Reference#Vector'>and</a> <a href='#SkPoint_cross_vec'>vec</a> <a href='#SkPoint_cross_vec'>form</a> <a href='#SkPoint_cross_vec'>three-dimensional</a> <a href='SkPoint_Reference#Vector'>vectors</a> <a href='SkPoint_Reference#Vector'>with</a> <a href='SkPoint_Reference#Vector'>z-axis</a> <a href='SkPoint_Reference#Vector'>value</a> <a href='SkPoint_Reference#Vector'>equal</a> <a href='SkPoint_Reference#Vector'>to</a> <a href='SkPoint_Reference#Vector'>zero</a>.
-The cross product is a three-dimensional <a href='SkPoint_Reference#Vector'>vector</a> <a href='SkPoint_Reference#Vector'>with</a> <a href='SkPoint_Reference#Vector'>x-axis</a> <a href='SkPoint_Reference#Vector'>and</a> <a href='SkPoint_Reference#Vector'>y-axis</a> <a href='SkPoint_Reference#Vector'>values</a>
+<a href='SkPoint_Reference#Vector'>Vector</a> and <a href='#SkPoint_cross_vec'>vec</a> form three-dimensional <a href='SkPoint_Reference#Vector'>vectors</a> with z-axis value equal to zero.
+The cross product is a three-dimensional <a href='SkPoint_Reference#Vector'>vector</a> with x-axis and y-axis values
equal to zero. The cross product z-axis component is returned.
### Parameters
@@ -1275,7 +1275,7 @@
### Return Value
-area spanned by <a href='SkPoint_Reference#Vector'>vectors</a> <a href='SkPoint_Reference#Vector'>signed</a> <a href='SkPoint_Reference#Vector'>by</a> <a href='SkPoint_Reference#Vector'>angle</a> <a href='SkPoint_Reference#Vector'>direction</a>
+area spanned by <a href='SkPoint_Reference#Vector'>vectors</a> signed by angle direction
### Example
@@ -1290,10 +1290,10 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-<a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>dot</a>(<a href='undocumented#SkScalar'>const</a> <a href='SkPoint_Reference#SkVector'>SkVector</a>& <a href='SkPoint_Reference#SkVector'>vec</a>) <a href='SkPoint_Reference#SkVector'>const</a>
+<a href='undocumented#SkScalar'>SkScalar</a> dot(const <a href='SkPoint_Reference#SkVector'>SkVector</a>& vec) const
</pre>
-Returns the dot product of <a href='SkPoint_Reference#Vector'>vector</a> <a href='SkPoint_Reference#Vector'>and</a> <a href='SkPoint_Reference#Vector'>vector</a> <a href='#SkPoint_dot_vec'>vec</a>.
+Returns the dot product of <a href='SkPoint_Reference#Vector'>vector</a> and <a href='SkPoint_Reference#Vector'>vector</a> <a href='#SkPoint_dot_vec'>vec</a>.
### Parameters
@@ -1324,5 +1324,5 @@
typedef <a href='SkPoint_Reference#SkPoint'>SkPoint</a> <a href='SkPoint_Reference#SkVector'>SkVector</a>;
</pre>
-<a href='SkPoint_Reference#SkVector'>SkVector</a> <a href='SkPoint_Reference#SkVector'>provides</a> <a href='SkPoint_Reference#SkVector'>an</a> <a href='SkPoint_Reference#SkVector'>alternative</a> <a href='SkPoint_Reference#SkVector'>name</a> <a href='SkPoint_Reference#SkVector'>for</a> <a href='SkPoint_Reference#SkPoint'>SkPoint</a>. <a href='SkPoint_Reference#SkVector'>SkVector</a> <a href='SkPoint_Reference#SkVector'>and</a> <a href='SkPoint_Reference#SkPoint'>SkPoint</a> <a href='SkPoint_Reference#SkPoint'>can</a>
-<a href='SkPoint_Reference#SkPoint'>be</a> <a href='SkPoint_Reference#SkPoint'>used</a> <a href='SkPoint_Reference#SkPoint'>interchangeably</a> <a href='SkPoint_Reference#SkPoint'>for</a> <a href='SkPoint_Reference#SkPoint'>all</a> <a href='SkPoint_Reference#SkPoint'>purposes</a>.
\ No newline at end of file
+<a href='SkPoint_Reference#SkVector'>SkVector</a> provides an alternative name for <a href='SkPoint_Reference#SkPoint'>SkPoint</a>. <a href='SkPoint_Reference#SkVector'>SkVector</a> and <a href='SkPoint_Reference#SkPoint'>SkPoint</a> can
+be used interchangeably for all purposes.
\ No newline at end of file
diff --git a/site/user/api/SkRRect_Reference.md b/site/user/api/SkRRect_Reference.md
index ae27939..08d09ec 100644
--- a/site/user/api/SkRRect_Reference.md
+++ b/site/user/api/SkRRect_Reference.md
@@ -8,12 +8,12 @@
<pre style="padding: 1em 1em 1em 1em;width: 62.5em; background-color: #f0f0f0">
class <a href='SkRRect_Reference#SkRRect'>SkRRect</a> {
-<a href='SkRRect_Reference#SkRRect'>public</a>:
- <a href='#SkRRect_empty_constructor'>SkRRect()</a> = <a href='SkRRect_Reference#SkRRect'>default</a>;
- <a href='SkRRect_Reference#SkRRect'>SkRRect</a>(<a href='SkRRect_Reference#SkRRect'>const</a> <a href='SkRRect_Reference#SkRRect'>SkRRect</a>& <a href='SkRRect_Reference#SkRRect'>rrect</a>) = <a href='SkRRect_Reference#SkRRect'>default</a>;
- <a href='SkRRect_Reference#SkRRect'>SkRRect</a>& <a href='SkRRect_Reference#SkRRect'>operator</a>=(<a href='SkRRect_Reference#SkRRect'>const</a> <a href='SkRRect_Reference#SkRRect'>SkRRect</a>& <a href='SkRRect_Reference#SkRRect'>rrect</a>) = <a href='SkRRect_Reference#SkRRect'>default</a>;
+public:
+ <a href='#SkRRect_empty_constructor'>SkRRect()</a> = default;
+ <a href='SkRRect_Reference#SkRRect'>SkRRect</a>(const <a href='SkRRect_Reference#SkRRect'>SkRRect</a>& rrect) = default;
+ <a href='SkRRect_Reference#SkRRect'>SkRRect</a>& operator=(const <a href='SkRRect_Reference#SkRRect'>SkRRect</a>& rrect) = default;
- <a href='SkRRect_Reference#SkRRect'>enum</a> <a href='#SkRRect_Type'>Type</a> {
+ enum <a href='#SkRRect_Type'>Type</a> {
<a href='#SkRRect_kEmpty_Type'>kEmpty_Type</a>,
<a href='#SkRRect_kRect_Type'>kRect_Type</a>,
<a href='#SkRRect_kOval_Type'>kOval_Type</a>,
@@ -23,72 +23,72 @@
<a href='#SkRRect_kLastType'>kLastType</a> = <a href='#SkRRect_kComplex_Type'>kComplex_Type</a>,
};
- <a href='#SkRRect_Type'>Type</a> <a href='#SkRRect_getType'>getType</a>() <a href='#SkRRect_getType'>const</a>;
- <a href='#SkRRect_Type'>Type</a> <a href='#SkRRect_type'>type()</a> <a href='#SkRRect_type'>const</a>;
- <a href='#SkRRect_type'>bool</a> <a href='#SkRRect_isEmpty'>isEmpty</a>() <a href='#SkRRect_isEmpty'>const</a>;
- <a href='#SkRRect_isEmpty'>bool</a> <a href='#SkRRect_isRect'>isRect</a>() <a href='#SkRRect_isRect'>const</a>;
- <a href='#SkRRect_isRect'>bool</a> <a href='#SkRRect_isOval'>isOval</a>() <a href='#SkRRect_isOval'>const</a>;
- <a href='#SkRRect_isOval'>bool</a> <a href='#SkRRect_isSimple'>isSimple</a>() <a href='#SkRRect_isSimple'>const</a>;
- <a href='#SkRRect_isSimple'>bool</a> <a href='#SkRRect_isNinePatch'>isNinePatch</a>() <a href='#SkRRect_isNinePatch'>const</a>;
- <a href='#SkRRect_isNinePatch'>bool</a> <a href='#SkRRect_isComplex'>isComplex</a>() <a href='#SkRRect_isComplex'>const</a>;
- <a href='undocumented#SkScalar'>SkScalar</a> <a href='#SkRRect_width'>width()</a> <a href='#SkRRect_width'>const</a>;
- <a href='undocumented#SkScalar'>SkScalar</a> <a href='#SkRRect_height'>height()</a> <a href='#SkRRect_height'>const</a>;
- <a href='SkPoint_Reference#SkVector'>SkVector</a> <a href='#SkRRect_getSimpleRadii'>getSimpleRadii</a>() <a href='#SkRRect_getSimpleRadii'>const</a>;
- <a href='#SkRRect_getSimpleRadii'>void</a> <a href='#SkRRect_setEmpty'>setEmpty</a>();
- <a href='#SkRRect_setEmpty'>void</a> <a href='#SkRRect_setRect'>setRect</a>(<a href='#SkRRect_setRect'>const</a> <a href='SkRect_Reference#SkRect'>SkRect</a>& <a href='SkRect_Reference#Rect'>rect</a>);
- <a href='SkRect_Reference#Rect'>static</a> <a href='SkRRect_Reference#SkRRect'>SkRRect</a> <a href='#SkRRect_MakeEmpty'>MakeEmpty</a>();
- <a href='#SkRRect_MakeEmpty'>static</a> <a href='SkRRect_Reference#SkRRect'>SkRRect</a> <a href='#SkRRect_MakeRect'>MakeRect</a>(<a href='#SkRRect_MakeRect'>const</a> <a href='SkRect_Reference#SkRect'>SkRect</a>& <a href='SkRect_Reference#SkRect'>r</a>);
- <a href='SkRect_Reference#SkRect'>static</a> <a href='SkRRect_Reference#SkRRect'>SkRRect</a> <a href='#SkRRect_MakeOval'>MakeOval</a>(<a href='#SkRRect_MakeOval'>const</a> <a href='SkRect_Reference#SkRect'>SkRect</a>& <a href='undocumented#Oval'>oval</a>);
- <a href='undocumented#Oval'>static</a> <a href='SkRRect_Reference#SkRRect'>SkRRect</a> <a href='#SkRRect_MakeRectXY'>MakeRectXY</a>(<a href='#SkRRect_MakeRectXY'>const</a> <a href='SkRect_Reference#SkRect'>SkRect</a>& <a href='SkRect_Reference#Rect'>rect</a>, <a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>xRad</a>, <a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>yRad</a>);
- <a href='undocumented#SkScalar'>void</a> <a href='#SkRRect_setOval'>setOval</a>(<a href='#SkRRect_setOval'>const</a> <a href='SkRect_Reference#SkRect'>SkRect</a>& <a href='undocumented#Oval'>oval</a>);
- <a href='undocumented#Oval'>void</a> <a href='#SkRRect_setRectXY'>setRectXY</a>(<a href='#SkRRect_setRectXY'>const</a> <a href='SkRect_Reference#SkRect'>SkRect</a>& <a href='SkRect_Reference#Rect'>rect</a>, <a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>xRad</a>, <a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>yRad</a>);
- <a href='undocumented#SkScalar'>void</a> <a href='#SkRRect_setNinePatch'>setNinePatch</a>(<a href='#SkRRect_setNinePatch'>const</a> <a href='SkRect_Reference#SkRect'>SkRect</a>& <a href='SkRect_Reference#Rect'>rect</a>, <a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>leftRad</a>, <a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>topRad</a>,
- <a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>rightRad</a>, <a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>bottomRad</a>);
- <a href='undocumented#SkScalar'>void</a> <a href='#SkRRect_setRectRadii'>setRectRadii</a>(<a href='#SkRRect_setRectRadii'>const</a> <a href='SkRect_Reference#SkRect'>SkRect</a>& <a href='SkRect_Reference#Rect'>rect</a>, <a href='SkRect_Reference#Rect'>const</a> <a href='SkPoint_Reference#SkVector'>SkVector</a> <a href='SkPoint_Reference#SkVector'>radii</a>[4]);
+ <a href='#SkRRect_Type'>Type</a> <a href='#SkRRect_getType'>getType</a>() const;
+ <a href='#SkRRect_Type'>Type</a> <a href='#SkRRect_type'>type()</a> const;
+ bool <a href='#SkRRect_isEmpty'>isEmpty</a>() const;
+ bool <a href='#SkRRect_isRect'>isRect</a>() const;
+ bool <a href='#SkRRect_isOval'>isOval</a>() const;
+ bool <a href='#SkRRect_isSimple'>isSimple</a>() const;
+ bool <a href='#SkRRect_isNinePatch'>isNinePatch</a>() const;
+ bool <a href='#SkRRect_isComplex'>isComplex</a>() const;
+ <a href='undocumented#SkScalar'>SkScalar</a> <a href='#SkRRect_width'>width()</a> const;
+ <a href='undocumented#SkScalar'>SkScalar</a> <a href='#SkRRect_height'>height()</a> const;
+ <a href='SkPoint_Reference#SkVector'>SkVector</a> <a href='#SkRRect_getSimpleRadii'>getSimpleRadii</a>() const;
+ void <a href='#SkRRect_setEmpty'>setEmpty</a>();
+ void <a href='#SkRRect_setRect'>setRect</a>(const <a href='SkRect_Reference#SkRect'>SkRect</a>& <a href='SkRect_Reference#Rect'>rect</a>);
+ static <a href='SkRRect_Reference#SkRRect'>SkRRect</a> <a href='#SkRRect_MakeEmpty'>MakeEmpty</a>();
+ static <a href='SkRRect_Reference#SkRRect'>SkRRect</a> <a href='#SkRRect_MakeRect'>MakeRect</a>(const <a href='SkRect_Reference#SkRect'>SkRect</a>& r);
+ static <a href='SkRRect_Reference#SkRRect'>SkRRect</a> <a href='#SkRRect_MakeOval'>MakeOval</a>(const <a href='SkRect_Reference#SkRect'>SkRect</a>& <a href='undocumented#Oval'>oval</a>);
+ static <a href='SkRRect_Reference#SkRRect'>SkRRect</a> <a href='#SkRRect_MakeRectXY'>MakeRectXY</a>(const <a href='SkRect_Reference#SkRect'>SkRect</a>& <a href='SkRect_Reference#Rect'>rect</a>, <a href='undocumented#SkScalar'>SkScalar</a> xRad, <a href='undocumented#SkScalar'>SkScalar</a> yRad);
+ void <a href='#SkRRect_setOval'>setOval</a>(const <a href='SkRect_Reference#SkRect'>SkRect</a>& <a href='undocumented#Oval'>oval</a>);
+ void <a href='#SkRRect_setRectXY'>setRectXY</a>(const <a href='SkRect_Reference#SkRect'>SkRect</a>& <a href='SkRect_Reference#Rect'>rect</a>, <a href='undocumented#SkScalar'>SkScalar</a> xRad, <a href='undocumented#SkScalar'>SkScalar</a> yRad);
+ void <a href='#SkRRect_setNinePatch'>setNinePatch</a>(const <a href='SkRect_Reference#SkRect'>SkRect</a>& <a href='SkRect_Reference#Rect'>rect</a>, <a href='undocumented#SkScalar'>SkScalar</a> leftRad, <a href='undocumented#SkScalar'>SkScalar</a> topRad,
+ <a href='undocumented#SkScalar'>SkScalar</a> rightRad, <a href='undocumented#SkScalar'>SkScalar</a> bottomRad);
+ void <a href='#SkRRect_setRectRadii'>setRectRadii</a>(const <a href='SkRect_Reference#SkRect'>SkRect</a>& <a href='SkRect_Reference#Rect'>rect</a>, const <a href='SkPoint_Reference#SkVector'>SkVector</a> radii[4]);
- <a href='SkPoint_Reference#SkVector'>enum</a> <a href='#SkRRect_Corner'>Corner</a> {
+ enum <a href='#SkRRect_Corner'>Corner</a> {
<a href='#SkRRect_kUpperLeft_Corner'>kUpperLeft_Corner</a>,
<a href='#SkRRect_kUpperRight_Corner'>kUpperRight_Corner</a>,
<a href='#SkRRect_kLowerRight_Corner'>kLowerRight_Corner</a>,
<a href='#SkRRect_kLowerLeft_Corner'>kLowerLeft_Corner</a>,
};
- <a href='#SkRRect_kLowerLeft_Corner'>const</a> <a href='SkRect_Reference#SkRect'>SkRect</a>& <a href='#SkRRect_rect'>rect()</a> <a href='#SkRRect_rect'>const</a>;
- <a href='SkPoint_Reference#SkVector'>SkVector</a> <a href='SkPoint_Reference#SkVector'>radii</a>(<a href='#SkRRect_Corner'>Corner</a> <a href='#SkRRect_Corner'>corner</a>) <a href='#SkRRect_Corner'>const</a>;
- <a href='#SkRRect_Corner'>const</a> <a href='SkRect_Reference#SkRect'>SkRect</a>& <a href='#SkRRect_getBounds'>getBounds</a>() <a href='#SkRRect_getBounds'>const</a>;
- <a href='#SkRRect_getBounds'>friend</a> <a href='#SkRRect_getBounds'>bool</a> <a href='#SkRRect_getBounds'>operator</a>==(<a href='#SkRRect_getBounds'>const</a> <a href='SkRRect_Reference#SkRRect'>SkRRect</a>& <a href='SkRRect_Reference#SkRRect'>a</a>, <a href='SkRRect_Reference#SkRRect'>const</a> <a href='SkRRect_Reference#SkRRect'>SkRRect</a>& <a href='SkRRect_Reference#SkRRect'>b</a>);
- <a href='SkRRect_Reference#SkRRect'>friend</a> <a href='SkRRect_Reference#SkRRect'>bool</a> <a href='SkRRect_Reference#SkRRect'>operator</a>!=(<a href='SkRRect_Reference#SkRRect'>const</a> <a href='SkRRect_Reference#SkRRect'>SkRRect</a>& <a href='SkRRect_Reference#SkRRect'>a</a>, <a href='SkRRect_Reference#SkRRect'>const</a> <a href='SkRRect_Reference#SkRRect'>SkRRect</a>& <a href='SkRRect_Reference#SkRRect'>b</a>);
- <a href='SkRRect_Reference#SkRRect'>void</a> <a href='SkRRect_Reference#SkRRect'>inset</a>(<a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>dx</a>, <a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>dy</a>, <a href='SkRRect_Reference#SkRRect'>SkRRect</a>* <a href='SkRRect_Reference#SkRRect'>dst</a>) <a href='SkRRect_Reference#SkRRect'>const</a>;
- <a href='SkRRect_Reference#SkRRect'>void</a> <a href='SkRRect_Reference#SkRRect'>inset</a>(<a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>dx</a>, <a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>dy</a>);
- <a href='undocumented#SkScalar'>void</a> <a href='undocumented#SkScalar'>outset</a>(<a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>dx</a>, <a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>dy</a>, <a href='SkRRect_Reference#SkRRect'>SkRRect</a>* <a href='SkRRect_Reference#SkRRect'>dst</a>) <a href='SkRRect_Reference#SkRRect'>const</a>;
- <a href='SkRRect_Reference#SkRRect'>void</a> <a href='SkRRect_Reference#SkRRect'>outset</a>(<a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>dx</a>, <a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>dy</a>);
- <a href='undocumented#SkScalar'>void</a> <a href='undocumented#SkScalar'>offset</a>(<a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>dx</a>, <a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>dy</a>);
- <a href='SkRRect_Reference#SkRRect'>SkRRect</a> <a href='#SkRRect_makeOffset'>makeOffset</a>(<a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>dx</a>, <a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>dy</a>) <a href='undocumented#SkScalar'>const</a>;
- <a href='undocumented#SkScalar'>bool</a> <a href='undocumented#SkScalar'>contains</a>(<a href='undocumented#SkScalar'>const</a> <a href='SkRect_Reference#SkRect'>SkRect</a>& <a href='SkRect_Reference#Rect'>rect</a>) <a href='SkRect_Reference#Rect'>const</a>;
- <a href='SkRect_Reference#Rect'>bool</a> <a href='#SkRRect_isValid'>isValid</a>() <a href='#SkRRect_isValid'>const</a>;
+ const <a href='SkRect_Reference#SkRect'>SkRect</a>& <a href='#SkRRect_rect'>rect()</a> const;
+ <a href='SkPoint_Reference#SkVector'>SkVector</a> radii(<a href='#SkRRect_Corner'>Corner</a> corner) const;
+ const <a href='SkRect_Reference#SkRect'>SkRect</a>& <a href='#SkRRect_getBounds'>getBounds</a>() const;
+ friend bool operator==(const <a href='SkRRect_Reference#SkRRect'>SkRRect</a>& a, const <a href='SkRRect_Reference#SkRRect'>SkRRect</a>& b);
+ friend bool operator!=(const <a href='SkRRect_Reference#SkRRect'>SkRRect</a>& a, const <a href='SkRRect_Reference#SkRRect'>SkRRect</a>& b);
+ void inset(<a href='undocumented#SkScalar'>SkScalar</a> dx, <a href='undocumented#SkScalar'>SkScalar</a> dy, <a href='SkRRect_Reference#SkRRect'>SkRRect</a>* dst) const;
+ void inset(<a href='undocumented#SkScalar'>SkScalar</a> dx, <a href='undocumented#SkScalar'>SkScalar</a> dy);
+ void outset(<a href='undocumented#SkScalar'>SkScalar</a> dx, <a href='undocumented#SkScalar'>SkScalar</a> dy, <a href='SkRRect_Reference#SkRRect'>SkRRect</a>* dst) const;
+ void outset(<a href='undocumented#SkScalar'>SkScalar</a> dx, <a href='undocumented#SkScalar'>SkScalar</a> dy);
+ void offset(<a href='undocumented#SkScalar'>SkScalar</a> dx, <a href='undocumented#SkScalar'>SkScalar</a> dy);
+ <a href='SkRRect_Reference#SkRRect'>SkRRect</a> <a href='#SkRRect_makeOffset'>makeOffset</a>(<a href='undocumented#SkScalar'>SkScalar</a> dx, <a href='undocumented#SkScalar'>SkScalar</a> dy) const;
+ bool contains(const <a href='SkRect_Reference#SkRect'>SkRect</a>& <a href='SkRect_Reference#Rect'>rect</a>) const;
+ bool <a href='#SkRRect_isValid'>isValid</a>() const;
- <a href='#SkRRect_isValid'>static</a> <a href='#SkRRect_isValid'>constexpr</a> <a href='#SkRRect_isValid'>size_t</a> <a href='#SkRRect_kSizeInMemory'>kSizeInMemory</a> = 12 * <a href='undocumented#sizeof()'>sizeof</a>(<a href='undocumented#SkScalar'>SkScalar</a>);
+ static constexpr size_t <a href='#SkRRect_kSizeInMemory'>kSizeInMemory</a> = 12 * <a href='undocumented#sizeof()'>sizeof</a>(<a href='undocumented#SkScalar'>SkScalar</a>);
- <a href='undocumented#SkScalar'>size_t</a> <a href='#SkRRect_writeToMemory'>writeToMemory</a>(<a href='#SkRRect_writeToMemory'>void</a>* <a href='#SkRRect_writeToMemory'>buffer</a>) <a href='#SkRRect_writeToMemory'>const</a>;
- <a href='#SkRRect_writeToMemory'>size_t</a> <a href='#SkRRect_readFromMemory'>readFromMemory</a>(<a href='#SkRRect_readFromMemory'>const</a> <a href='#SkRRect_readFromMemory'>void</a>* <a href='#SkRRect_readFromMemory'>buffer</a>, <a href='#SkRRect_readFromMemory'>size_t</a> <a href='#SkRRect_readFromMemory'>length</a>);
- <a href='#SkRRect_readFromMemory'>bool</a> <a href='#SkRRect_readFromMemory'>transform</a>(<a href='#SkRRect_readFromMemory'>const</a> <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a>& <a href='SkMatrix_Reference#Matrix'>matrix</a>, <a href='SkRRect_Reference#SkRRect'>SkRRect</a>* <a href='SkRRect_Reference#SkRRect'>dst</a>) <a href='SkRRect_Reference#SkRRect'>const</a>;
- <a href='SkRRect_Reference#SkRRect'>void</a> <a href='#SkRRect_dump'>dump</a>(<a href='#SkRRect_dump'>bool</a> <a href='#SkRRect_dump'>asHex</a>) <a href='#SkRRect_dump'>const</a>;
- <a href='#SkRRect_dump'>void</a> <a href='#SkRRect_dump'>dump()</a> <a href='#SkRRect_dump'>const</a>;
- <a href='#SkRRect_dump'>void</a> <a href='#SkRRect_dumpHex'>dumpHex</a>() <a href='#SkRRect_dumpHex'>const</a>;
+ size_t <a href='#SkRRect_writeToMemory'>writeToMemory</a>(void* buffer) const;
+ size_t <a href='#SkRRect_readFromMemory'>readFromMemory</a>(const void* buffer, size_t length);
+ bool transform(const <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a>& <a href='SkMatrix_Reference#Matrix'>matrix</a>, <a href='SkRRect_Reference#SkRRect'>SkRRect</a>* dst) const;
+ void <a href='#SkRRect_dump'>dump</a>(bool asHex) const;
+ void <a href='#SkRRect_dump'>dump()</a> const;
+ void <a href='#SkRRect_dumpHex'>dumpHex</a>() const;
};
</pre>
-<a href='SkRRect_Reference#SkRRect'>SkRRect</a> <a href='SkRRect_Reference#SkRRect'>describes</a> <a href='SkRRect_Reference#SkRRect'>a</a> <a href='SkRRect_Reference#SkRRect'>rounded</a> <a href='SkRRect_Reference#SkRRect'>rectangle</a> <a href='SkRRect_Reference#SkRRect'>with</a> <a href='SkRRect_Reference#SkRRect'>a</a> <a href='SkRRect_Reference#SkRRect'>bounds</a> <a href='SkRRect_Reference#SkRRect'>and</a> <a href='SkRRect_Reference#SkRRect'>a</a> <a href='SkRRect_Reference#SkRRect'>pair</a> <a href='SkRRect_Reference#SkRRect'>of</a> <a href='SkRRect_Reference#SkRRect'>radii</a> <a href='SkRRect_Reference#SkRRect'>for</a> <a href='SkRRect_Reference#SkRRect'>each</a> <a href='SkRRect_Reference#SkRRect'>corner</a>.
-<a href='SkRRect_Reference#SkRRect'>The</a> <a href='SkRRect_Reference#SkRRect'>bounds</a> <a href='SkRRect_Reference#SkRRect'>and</a> <a href='SkRRect_Reference#SkRRect'>radii</a> <a href='SkRRect_Reference#SkRRect'>can</a> <a href='SkRRect_Reference#SkRRect'>be</a> <a href='SkRRect_Reference#SkRRect'>set</a> <a href='SkRRect_Reference#SkRRect'>so</a> <a href='SkRRect_Reference#SkRRect'>that</a> <a href='SkRRect_Reference#SkRRect'>SkRRect</a> <a href='SkRRect_Reference#SkRRect'>describes</a>: <a href='SkRRect_Reference#SkRRect'>a</a> <a href='SkRRect_Reference#SkRRect'>rectangle</a> <a href='SkRRect_Reference#SkRRect'>with</a> <a href='SkRRect_Reference#SkRRect'>sharp</a> <a href='SkRRect_Reference#SkRRect'>corners</a>;
-<a href='SkRRect_Reference#SkRRect'>a</a> <a href='undocumented#Circle'>Circle</a>; <a href='undocumented#Circle'>an</a> <a href='undocumented#Oval'>Oval</a>; <a href='undocumented#Oval'>or</a> <a href='undocumented#Oval'>a</a> <a href='undocumented#Oval'>rectangle</a> <a href='undocumented#Oval'>with</a> <a href='undocumented#Oval'>one</a> <a href='undocumented#Oval'>or</a> <a href='undocumented#Oval'>more</a> <a href='undocumented#Oval'>rounded</a> <a href='undocumented#Oval'>corners</a>.
+<a href='SkRRect_Reference#SkRRect'>SkRRect</a> describes a rounded rectangle with a bounds and a pair of radii for each corner.
+The bounds and radii can be set so that <a href='SkRRect_Reference#SkRRect'>SkRRect</a> describes: a rectangle with sharp corners;
+a <a href='undocumented#Circle'>Circle</a>; an <a href='undocumented#Oval'>Oval</a>; or a rectangle with one or more rounded corners.
-<a href='SkRRect_Reference#SkRRect'>SkRRect</a> <a href='SkRRect_Reference#SkRRect'>allows</a> <a href='SkRRect_Reference#SkRRect'>implementing</a> <a href='SkRRect_Reference#SkRRect'>CSS</a> <a href='SkRRect_Reference#SkRRect'>properties</a> <a href='SkRRect_Reference#SkRRect'>that</a> <a href='SkRRect_Reference#SkRRect'>describe</a> <a href='SkRRect_Reference#SkRRect'>rounded</a> <a href='SkRRect_Reference#SkRRect'>corners</a>.
-<a href='SkRRect_Reference#SkRRect'>SkRRect</a> <a href='SkRRect_Reference#SkRRect'>may</a> <a href='SkRRect_Reference#SkRRect'>have</a> <a href='SkRRect_Reference#SkRRect'>up</a> <a href='SkRRect_Reference#SkRRect'>to</a> <a href='SkRRect_Reference#SkRRect'>eight</a> <a href='SkRRect_Reference#SkRRect'>different</a> <a href='SkRRect_Reference#SkRRect'>radii</a>, <a href='SkRRect_Reference#SkRRect'>one</a> <a href='SkRRect_Reference#SkRRect'>for</a> <a href='SkRRect_Reference#SkRRect'>each</a> <a href='SkRRect_Reference#SkRRect'>axis</a> <a href='SkRRect_Reference#SkRRect'>on</a> <a href='SkRRect_Reference#SkRRect'>each</a> <a href='SkRRect_Reference#SkRRect'>of</a> <a href='SkRRect_Reference#SkRRect'>its</a> <a href='SkRRect_Reference#SkRRect'>four</a>
-<a href='SkRRect_Reference#SkRRect'>corners</a>.
+<a href='SkRRect_Reference#SkRRect'>SkRRect</a> allows implementing CSS properties that describe rounded corners.
+<a href='SkRRect_Reference#SkRRect'>SkRRect</a> may have up to eight different radii, one for each axis on each of its four
+corners.
-<a href='SkRRect_Reference#SkRRect'>SkRRect</a> <a href='SkRRect_Reference#SkRRect'>may</a> <a href='SkRRect_Reference#SkRRect'>modify</a> <a href='SkRRect_Reference#SkRRect'>the</a> <a href='SkRRect_Reference#SkRRect'>provided</a> <a href='SkRRect_Reference#SkRRect'>parameters</a> <a href='SkRRect_Reference#SkRRect'>when</a> <a href='SkRRect_Reference#SkRRect'>initializing</a> <a href='SkRRect_Reference#SkRRect'>bounds</a> <a href='SkRRect_Reference#SkRRect'>and</a> <a href='SkRRect_Reference#SkRRect'>radii</a>.
-<a href='SkRRect_Reference#SkRRect'>If</a> <a href='SkRRect_Reference#SkRRect'>either</a> <a href='SkRRect_Reference#SkRRect'>axis</a> <a href='SkRRect_Reference#SkRRect'>radii</a> <a href='SkRRect_Reference#SkRRect'>is</a> <a href='SkRRect_Reference#SkRRect'>zero</a> <a href='SkRRect_Reference#SkRRect'>or</a> <a href='SkRRect_Reference#SkRRect'>less</a>: <a href='SkRRect_Reference#SkRRect'>radii</a> <a href='SkRRect_Reference#SkRRect'>are</a> <a href='SkRRect_Reference#SkRRect'>stored</a> <a href='SkRRect_Reference#SkRRect'>as</a> <a href='SkRRect_Reference#SkRRect'>zero</a>; <a href='SkRRect_Reference#SkRRect'>corner</a> <a href='SkRRect_Reference#SkRRect'>is</a> <a href='SkRRect_Reference#SkRRect'>square</a>.
-<a href='SkRRect_Reference#SkRRect'>If</a> <a href='SkRRect_Reference#SkRRect'>corner</a> <a href='undocumented#Curve'>curves</a> <a href='undocumented#Curve'>overlap</a>, <a href='undocumented#Curve'>radii</a> <a href='undocumented#Curve'>are</a> <a href='undocumented#Curve'>proportionally</a> <a href='undocumented#Curve'>reduced</a> <a href='undocumented#Curve'>to</a> <a href='undocumented#Curve'>fit</a> <a href='undocumented#Curve'>within</a> <a href='undocumented#Curve'>bounds</a>.
+<a href='SkRRect_Reference#SkRRect'>SkRRect</a> may modify the provided parameters when initializing bounds and radii.
+If either axis radii is zero or less: radii are stored as zero; corner is square.
+If corner <a href='undocumented#Curve'>curves</a> overlap, radii are proportionally reduced to fit within bounds.
<a name='SkRRect_empty_constructor'></a>
@@ -118,10 +118,10 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-<a href='SkRRect_Reference#SkRRect'>SkRRect</a>(<a href='SkRRect_Reference#SkRRect'>const</a> <a href='SkRRect_Reference#SkRRect'>SkRRect</a>& <a href='SkRRect_Reference#SkRRect'>rrect</a>)
+<a href='SkRRect_Reference#SkRRect'>SkRRect</a>(const <a href='SkRRect_Reference#SkRRect'>SkRRect</a>& rrect)
</pre>
-Initializes to copy of <a href='#SkRRect_copy_const_SkRRect_rrect'>rrect</a> <a href='#SkRRect_copy_const_SkRRect_rrect'>bounds</a> <a href='#SkRRect_copy_const_SkRRect_rrect'>and</a> <a href='#SkRRect_copy_const_SkRRect_rrect'>corner</a> <a href='#SkRRect_copy_const_SkRRect_rrect'>radii</a>.
+Initializes to copy of <a href='#SkRRect_copy_const_SkRRect_rrect'>rrect</a> bounds and corner radii.
### Parameters
@@ -147,10 +147,10 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-<a href='SkRRect_Reference#SkRRect'>SkRRect</a>& <a href='SkRRect_Reference#SkRRect'>operator</a>=(<a href='SkRRect_Reference#SkRRect'>const</a> <a href='SkRRect_Reference#SkRRect'>SkRRect</a>& <a href='SkRRect_Reference#SkRRect'>rrect</a>)
+<a href='SkRRect_Reference#SkRRect'>SkRRect</a>& operator=(const <a href='SkRRect_Reference#SkRRect'>SkRRect</a>& rrect)
</pre>
-Copies <a href='#SkRRect_copy_operator_rrect'>rrect</a> <a href='#SkRRect_copy_operator_rrect'>bounds</a> <a href='#SkRRect_copy_operator_rrect'>and</a> <a href='#SkRRect_copy_operator_rrect'>corner</a> <a href='#SkRRect_copy_operator_rrect'>radii</a>.
+Copies <a href='#SkRRect_copy_operator_rrect'>rrect</a> bounds and corner radii.
### Parameters
@@ -189,11 +189,11 @@
};
</pre>
-<a href='#SkRRect_Type'>Type</a> <a href='#SkRRect_Type'>describes</a> <a href='#SkRRect_Type'>possible</a> <a href='#SkRRect_Type'>specializations</a> <a href='#SkRRect_Type'>of</a> <a href='#RRect'>Round_Rect</a>. <a href='#RRect'>Each</a> <a href='#SkRRect_Type'>Type</a> <a href='#SkRRect_Type'>is</a>
-<a href='#SkRRect_Type'>exclusive</a>; <a href='#SkRRect_Type'>a</a> <a href='#RRect'>Round_Rect</a> <a href='#RRect'>may</a> <a href='#RRect'>only</a> <a href='#RRect'>have</a> <a href='#RRect'>one</a> <a href='#RRect'>type</a>.
+<a href='#SkRRect_Type'>Type</a> describes possible specializations of <a href='#RRect'>Round_Rect</a>. Each <a href='#SkRRect_Type'>Type</a> is
+exclusive; a <a href='#RRect'>Round_Rect</a> may only have one type.
-<a href='#SkRRect_Type'>Type</a> <a href='#SkRRect_Type'>members</a> <a href='#SkRRect_Type'>become</a> <a href='#SkRRect_Type'>progressively</a> <a href='#SkRRect_Type'>less</a> <a href='#SkRRect_Type'>restrictive</a>; <a href='#SkRRect_Type'>larger</a> <a href='#SkRRect_Type'>values</a> <a href='#SkRRect_Type'>of</a>
-<a href='#SkRRect_Type'>Type</a> <a href='#SkRRect_Type'>have</a> <a href='#SkRRect_Type'>more</a> <a href='#SkRRect_Type'>degrees</a> <a href='#SkRRect_Type'>of</a> <a href='#SkRRect_Type'>freedom</a> <a href='#SkRRect_Type'>than</a> <a href='#SkRRect_Type'>smaller</a> <a href='#SkRRect_Type'>values</a>.
+<a href='#SkRRect_Type'>Type</a> members become progressively less restrictive; larger values of
+<a href='#SkRRect_Type'>Type</a> have more degrees of freedom than smaller values.
### Constants
@@ -205,46 +205,46 @@
<td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a name='SkRRect_kEmpty_Type'><code>SkRRect::kEmpty_Type</code></a></td>
<td style='text-align: center; border: 2px solid #dddddd; padding: 8px; '>0</td>
<td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>
-<a href='#RRect'>Round_Rect</a> <a href='#RRect'>has</a> <a href='#RRect'>zero</a> <a href='#RRect'>width</a> <a href='#RRect'>or</a> <a href='#RRect'>height</a>. <a href='#RRect'>All</a> <a href='#RRect'>radii</a> <a href='#RRect'>are</a> <a href='#RRect'>zero</a>.
+<a href='#RRect'>Round_Rect</a> has zero width or height. All radii are zero.
</td>
</tr>
<tr>
<td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a name='SkRRect_kRect_Type'><code>SkRRect::kRect_Type</code></a></td>
<td style='text-align: center; border: 2px solid #dddddd; padding: 8px; '>1</td>
<td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>
-<a href='#RRect'>Round_Rect</a> <a href='#RRect'>has</a> <a href='#RRect'>width</a> <a href='#RRect'>and</a> <a href='#RRect'>height</a>. <a href='#RRect'>All</a> <a href='#RRect'>radii</a> <a href='#RRect'>are</a> <a href='#RRect'>zero</a>.
+<a href='#RRect'>Round_Rect</a> has width and height. All radii are zero.
</td>
</tr>
<tr style='background-color: #f0f0f0; '>
<td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a name='SkRRect_kOval_Type'><code>SkRRect::kOval_Type</code></a></td>
<td style='text-align: center; border: 2px solid #dddddd; padding: 8px; '>2</td>
<td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>
-<a href='#RRect'>Round_Rect</a> <a href='#RRect'>has</a> <a href='#RRect'>width</a> <a href='#RRect'>and</a> <a href='#RRect'>height</a>. <a href='#RRect'>All</a> <a href='#RRect'>four</a> <a href='#RRect'>x-radii</a> <a href='#RRect'>are</a> <a href='#RRect'>equal</a>,
-<a href='#RRect'>and</a> <a href='#RRect'>at</a> <a href='#RRect'>least</a> <a href='#RRect'>half</a> <a href='#RRect'>the</a> <a href='#RRect'>width</a>. <a href='#RRect'>All</a> <a href='#RRect'>four</a> <a href='#RRect'>y-radii</a> <a href='#RRect'>are</a> <a href='#RRect'>equal</a>,
-<a href='#RRect'>and</a> <a href='#RRect'>at</a> <a href='#RRect'>least</a> <a href='#RRect'>half</a> <a href='#RRect'>the</a> <a href='#RRect'>height</a>.
+<a href='#RRect'>Round_Rect</a> has width and height. All four x-radii are equal,
+and at least half the width. All four y-radii are equal,
+and at least half the height.
</td>
</tr>
<tr>
<td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a name='SkRRect_kSimple_Type'><code>SkRRect::kSimple_Type</code></a></td>
<td style='text-align: center; border: 2px solid #dddddd; padding: 8px; '>3</td>
<td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>
-<a href='#RRect'>Round_Rect</a> <a href='#RRect'>has</a> <a href='#RRect'>width</a> <a href='#RRect'>and</a> <a href='#RRect'>height</a>. <a href='#RRect'>All</a> <a href='#RRect'>four</a> <a href='#RRect'>x-radii</a> <a href='#RRect'>are</a> <a href='#RRect'>equal</a> <a href='#RRect'>and</a>
-<a href='#RRect'>greater</a> <a href='#RRect'>than</a> <a href='#RRect'>zero</a>, <a href='#RRect'>and</a> <a href='#RRect'>all</a> <a href='#RRect'>four</a> <a href='#RRect'>y-radii</a> <a href='#RRect'>are</a> <a href='#RRect'>equal</a> <a href='#RRect'>and</a> <a href='#RRect'>greater</a> <a href='#RRect'>than</a>
-<a href='#RRect'>zero</a>. <a href='#RRect'>Either</a> <a href='#RRect'>x-radii</a> <a href='#RRect'>are</a> <a href='#RRect'>less</a> <a href='#RRect'>than</a> <a href='#RRect'>half</a> <a href='#RRect'>the</a> <a href='#RRect'>width</a>, <a href='#RRect'>or</a> <a href='#RRect'>y-radii</a> <a href='#RRect'>is</a>
-<a href='#RRect'>less</a> <a href='#RRect'>than</a> <a href='#RRect'>half</a> <a href='#RRect'>the</a> <a href='#RRect'>height</a>, <a href='#RRect'>or</a> <a href='#RRect'>both</a>.
+<a href='#RRect'>Round_Rect</a> has width and height. All four x-radii are equal and
+greater than zero, and all four y-radii are equal and greater than
+zero. Either x-radii are less than half the width, or y-radii is
+less than half the height, or both.
</td>
</tr>
<tr style='background-color: #f0f0f0; '>
<td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a name='SkRRect_kNinePatch_Type'><code>SkRRect::kNinePatch_Type</code></a></td>
<td style='text-align: center; border: 2px solid #dddddd; padding: 8px; '>4</td>
<td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>
-<a href='#RRect'>Round_Rect</a> <a href='#RRect'>has</a> <a href='#RRect'>width</a> <a href='#RRect'>and</a> <a href='#RRect'>height</a>. <a href='#RRect'>Left</a> <a href='#RRect'>x-radii</a> <a href='#RRect'>are</a> <a href='#RRect'>equal</a>, <a href='#RRect'>top</a>
-<a href='#RRect'>y-radii</a> <a href='#RRect'>are</a> <a href='#RRect'>equal</a>, <a href='#RRect'>right</a> <a href='#RRect'>x-radii</a> <a href='#RRect'>are</a> <a href='#RRect'>equal</a>, <a href='#RRect'>and</a> <a href='#RRect'>bottom</a> <a href='#RRect'>y-radii</a>
-<a href='#RRect'>are</a> <a href='#RRect'>equal</a>. <a href='#RRect'>The</a> <a href='#RRect'>radii</a> <a href='#RRect'>do</a> <a href='#RRect'>not</a> <a href='#RRect'>describe</a> <a href='SkRect_Reference#Rect'>Rect</a>, <a href='undocumented#Oval'>Oval</a>, <a href='undocumented#Oval'>or</a> <a href='undocumented#Oval'>simple</a> <a href='undocumented#Oval'>type</a>.
+<a href='#RRect'>Round_Rect</a> has width and height. Left x-radii are equal, top
+y-radii are equal, right x-radii are equal, and bottom y-radii
+are equal. The radii do not describe <a href='SkRect_Reference#Rect'>Rect</a>, <a href='undocumented#Oval'>Oval</a>, or simple type.
-<a href='undocumented#Oval'>The</a> <a href='undocumented#Oval'>centers</a> <a href='undocumented#Oval'>of</a> <a href='undocumented#Oval'>the</a> <a href='undocumented#Oval'>corner</a> <a href='undocumented#Oval'>ellipses</a> <a href='undocumented#Oval'>form</a> <a href='undocumented#Oval'>an</a> <a href='undocumented#Oval'>axis-aligned</a> <a href='undocumented#Oval'>rectangle</a>
-<a href='undocumented#Oval'>that</a> <a href='undocumented#Oval'>divides</a> <a href='undocumented#Oval'>the</a> <a href='#RRect'>Round_Rect</a> <a href='#RRect'>into</a> <a href='#RRect'>nine</a> <a href='#RRect'>rectangular</a> <a href='undocumented#Patch'>patches</a>; <a href='undocumented#Patch'>an</a>
-<a href='undocumented#Patch'>interior</a> <a href='undocumented#Patch'>rectangle</a>, <a href='undocumented#Patch'>four</a> <a href='undocumented#Patch'>edges</a>, <a href='undocumented#Patch'>and</a> <a href='undocumented#Patch'>four</a> <a href='undocumented#Patch'>corners</a>.
+The centers of the corner ellipses form an axis-aligned rectangle
+that divides the <a href='#RRect'>Round_Rect</a> into nine rectangular <a href='undocumented#Patch'>patches</a>; an
+interior rectangle, four edges, and four corners.
</td>
</tr>
<tr>
@@ -275,10 +275,10 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-<a href='#SkRRect_Type'>Type</a> <a href='#SkRRect_getType'>getType</a>() <a href='#SkRRect_getType'>const</a>
+<a href='#SkRRect_Type'>Type</a> <a href='#SkRRect_getType'>getType</a>() const
</pre>
-Returns <a href='#SkRRect_Type'>Type</a>, <a href='#SkRRect_Type'>one</a> <a href='#SkRRect_Type'>of</a>: <a href='#SkRRect_kEmpty_Type'>kEmpty_Type</a>, <a href='#SkRRect_kRect_Type'>kRect_Type</a>, <a href='#SkRRect_kOval_Type'>kOval_Type</a>, <a href='#SkRRect_kSimple_Type'>kSimple_Type</a>, <a href='#SkRRect_kNinePatch_Type'>kNinePatch_Type</a>,
+Returns <a href='#SkRRect_Type'>Type</a>, one of: <a href='#SkRRect_kEmpty_Type'>kEmpty_Type</a>, <a href='#SkRRect_kRect_Type'>kRect_Type</a>, <a href='#SkRRect_kOval_Type'>kOval_Type</a>, <a href='#SkRRect_kSimple_Type'>kSimple_Type</a>, <a href='#SkRRect_kNinePatch_Type'>kNinePatch_Type</a>,
<a href='#SkRRect_kComplex_Type'>kComplex_Type</a>
.
@@ -288,7 +288,7 @@
### Example
-<div><fiddle-embed name="ace8f4aebf90527d43e4b7291375c9ad"><div>rrect2 is not a <a href='SkRect_Reference#Rect'>Rect</a>; <a href='#SkRRect_inset'>inset()</a> <a href='#SkRRect_inset'>has</a> <a href='#SkRRect_inset'>made</a> <a href='#SkRRect_inset'>it</a> <a href='#SkRRect_inset'>empty</a>.
+<div><fiddle-embed name="ace8f4aebf90527d43e4b7291375c9ad"><div>rrect2 is not a <a href='SkRect_Reference#Rect'>Rect</a>; <a href='#SkRRect_inset'>inset()</a> has made it empty.
</div></fiddle-embed></div>
### See Also
@@ -300,10 +300,10 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-<a href='#SkRRect_Type'>Type</a> <a href='#SkRRect_type'>type()</a> <a href='#SkRRect_type'>const</a>
+<a href='#SkRRect_Type'>Type</a> <a href='#SkRRect_type'>type()</a> const
</pre>
-Returns <a href='#SkRRect_Type'>Type</a>, <a href='#SkRRect_Type'>one</a> <a href='#SkRRect_Type'>of</a>: <a href='#SkRRect_kEmpty_Type'>kEmpty_Type</a>, <a href='#SkRRect_kRect_Type'>kRect_Type</a>, <a href='#SkRRect_kOval_Type'>kOval_Type</a>, <a href='#SkRRect_kSimple_Type'>kSimple_Type</a>, <a href='#SkRRect_kNinePatch_Type'>kNinePatch_Type</a>,
+Returns <a href='#SkRRect_Type'>Type</a>, one of: <a href='#SkRRect_kEmpty_Type'>kEmpty_Type</a>, <a href='#SkRRect_kRect_Type'>kRect_Type</a>, <a href='#SkRRect_kOval_Type'>kOval_Type</a>, <a href='#SkRRect_kSimple_Type'>kSimple_Type</a>, <a href='#SkRRect_kNinePatch_Type'>kNinePatch_Type</a>,
<a href='#SkRRect_kComplex_Type'>kComplex_Type</a>
.
@@ -313,7 +313,7 @@
### Example
-<div><fiddle-embed name="1080805c8449406a4e26d694bc56d2dc"><div><a href='#SkRRect_inset'>inset()</a> <a href='#SkRRect_inset'>has</a> <a href='#SkRRect_inset'>made</a> <a href='#SkRRect_inset'>rrect2</a> <a href='#SkRRect_inset'>empty</a>.
+<div><fiddle-embed name="1080805c8449406a4e26d694bc56d2dc"><div><a href='#SkRRect_inset'>inset()</a> has made rrect2 empty.
</div></fiddle-embed></div>
### See Also
@@ -325,7 +325,7 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-bool <a href='#SkRRect_isEmpty'>isEmpty</a>() <a href='#SkRRect_isEmpty'>const</a>
+bool <a href='#SkRRect_isEmpty'>isEmpty</a>() const
</pre>
### Example
@@ -341,7 +341,7 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-bool <a href='#SkRRect_isRect'>isRect</a>() <a href='#SkRRect_isRect'>const</a>
+bool <a href='#SkRRect_isRect'>isRect</a>() const
</pre>
### Example
@@ -357,15 +357,15 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-bool <a href='#SkRRect_isOval'>isOval</a>() <a href='#SkRRect_isOval'>const</a>
+bool <a href='#SkRRect_isOval'>isOval</a>() const
</pre>
### Example
<div><fiddle-embed name="4dfdb28d8343958425f2c1323fe8170d"><div>The first radii are scaled down proportionately until both x-axis and y-axis fit
within the bounds. After scaling, x-axis radius is smaller than half the width;
-left <a href='#RRect'>Round_Rect</a> <a href='#RRect'>is</a> <a href='#RRect'>not</a> <a href='#RRect'>an</a> <a href='undocumented#Oval'>oval</a>. <a href='undocumented#Oval'>The</a> <a href='undocumented#Oval'>second</a> <a href='undocumented#Oval'>radii</a> <a href='undocumented#Oval'>are</a> <a href='undocumented#Oval'>equal</a> <a href='undocumented#Oval'>to</a> <a href='undocumented#Oval'>half</a> <a href='undocumented#Oval'>the</a>
-<a href='undocumented#Oval'>dimensions</a>; <a href='undocumented#Oval'>right</a> <a href='#RRect'>Round_Rect</a> <a href='#RRect'>is</a> <a href='#RRect'>an</a> <a href='undocumented#Oval'>oval</a>.
+left <a href='#RRect'>Round_Rect</a> is not an <a href='undocumented#Oval'>oval</a>. The second radii are equal to half the
+dimensions; right <a href='#RRect'>Round_Rect</a> is an <a href='undocumented#Oval'>oval</a>.
</div></fiddle-embed></div>
### See Also
@@ -377,7 +377,7 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-bool <a href='#SkRRect_isSimple'>isSimple</a>() <a href='#SkRRect_isSimple'>const</a>
+bool <a href='#SkRRect_isSimple'>isSimple</a>() const
</pre>
### Example
@@ -393,7 +393,7 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-bool <a href='#SkRRect_isNinePatch'>isNinePatch</a>() <a href='#SkRRect_isNinePatch'>const</a>
+bool <a href='#SkRRect_isNinePatch'>isNinePatch</a>() const
</pre>
### Example
@@ -409,7 +409,7 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-bool <a href='#SkRRect_isComplex'>isComplex</a>() <a href='#SkRRect_isComplex'>const</a>
+bool <a href='#SkRRect_isComplex'>isComplex</a>() const
</pre>
### Example
@@ -425,7 +425,7 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-<a href='undocumented#SkScalar'>SkScalar</a> <a href='#SkRRect_width'>width()</a> <a href='#SkRRect_width'>const</a>
+<a href='undocumented#SkScalar'>SkScalar</a> <a href='#SkRRect_width'>width()</a> const
</pre>
Returns span on the x-axis. This does not check if result fits in 32-bit float;
@@ -433,11 +433,11 @@
### Return Value
-<a href='#SkRRect_rect'>rect()</a>.<a href='#SkRect_fRight'>fRight</a> <a href='#SkRect_fRight'>minus</a> <a href='#SkRRect_rect'>rect()</a>.<a href='#SkRect_fLeft'>fLeft</a>
+<a href='#SkRRect_rect'>rect()</a>.<a href='#SkRect_fRight'>fRight</a> minus <a href='#SkRRect_rect'>rect()</a>.<a href='#SkRect_fLeft'>fLeft</a>
### Example
-<div><fiddle-embed name="c675a480b41dee157f84fa2550a2a53c"><div><a href='SkRRect_Reference#SkRRect'>SkRRect</a>::<a href='#SkRRect_MakeRect'>MakeRect</a> <a href='#SkRRect_MakeRect'>sorts</a> <a href='#SkRRect_MakeRect'>its</a> <a href='#SkRRect_MakeRect'>input</a>, <a href='#SkRRect_MakeRect'>so</a> <a href='#SkRRect_width'>width()</a> <a href='#SkRRect_width'>is</a> <a href='#SkRRect_width'>always</a> <a href='#SkRRect_width'>zero</a> <a href='#SkRRect_width'>or</a> <a href='#SkRRect_width'>larger</a>.
+<div><fiddle-embed name="c675a480b41dee157f84fa2550a2a53c"><div><a href='SkRRect_Reference#SkRRect'>SkRRect</a>::<a href='#SkRRect_MakeRect'>MakeRect</a> sorts its input, so <a href='#SkRRect_width'>width()</a> is always zero or larger.
</div>
#### Example Output
@@ -458,7 +458,7 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-<a href='undocumented#SkScalar'>SkScalar</a> <a href='#SkRRect_height'>height()</a> <a href='#SkRRect_height'>const</a>
+<a href='undocumented#SkScalar'>SkScalar</a> <a href='#SkRRect_height'>height()</a> const
</pre>
Returns span on the y-axis. This does not check if result fits in 32-bit float;
@@ -466,11 +466,11 @@
### Return Value
-<a href='#SkRRect_rect'>rect()</a>.<a href='#SkRect_fBottom'>fBottom</a> <a href='#SkRect_fBottom'>minus</a> <a href='#SkRRect_rect'>rect()</a>.<a href='#SkRect_fTop'>fTop</a>
+<a href='#SkRRect_rect'>rect()</a>.<a href='#SkRect_fBottom'>fBottom</a> minus <a href='#SkRRect_rect'>rect()</a>.<a href='#SkRect_fTop'>fTop</a>
### Example
-<div><fiddle-embed name="5a3eb1755164a7becec33cec6e6eca31"><div><a href='SkRRect_Reference#SkRRect'>SkRRect</a>::<a href='#SkRRect_MakeRect'>MakeRect</a> <a href='#SkRRect_MakeRect'>sorts</a> <a href='#SkRRect_MakeRect'>its</a> <a href='#SkRRect_MakeRect'>input</a>, <a href='#SkRRect_MakeRect'>so</a> <a href='#SkRRect_height'>height()</a> <a href='#SkRRect_height'>is</a> <a href='#SkRRect_height'>always</a> <a href='#SkRRect_height'>zero</a> <a href='#SkRRect_height'>or</a> <a href='#SkRRect_height'>larger</a>.
+<div><fiddle-embed name="5a3eb1755164a7becec33cec6e6eca31"><div><a href='SkRRect_Reference#SkRRect'>SkRRect</a>::<a href='#SkRRect_MakeRect'>MakeRect</a> sorts its input, so <a href='#SkRRect_height'>height()</a> is always zero or larger.
</div>
#### Example Output
@@ -491,12 +491,12 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-<a href='SkPoint_Reference#SkVector'>SkVector</a> <a href='#SkRRect_getSimpleRadii'>getSimpleRadii</a>() <a href='#SkRRect_getSimpleRadii'>const</a>
+<a href='SkPoint_Reference#SkVector'>SkVector</a> <a href='#SkRRect_getSimpleRadii'>getSimpleRadii</a>() const
</pre>
-Returns top-left corner radii. If <a href='#SkRRect_type'>type()</a> <a href='#SkRRect_type'>returns</a> <a href='#SkRRect_kEmpty_Type'>kEmpty_Type</a>, <a href='#SkRRect_kRect_Type'>kRect_Type</a>,
-<a href='#SkRRect_kOval_Type'>kOval_Type</a>, <a href='#SkRRect_kOval_Type'>or</a> <a href='#SkRRect_kSimple_Type'>kSimple_Type</a>, <a href='#SkRRect_kSimple_Type'>returns</a> <a href='#SkRRect_kSimple_Type'>a</a> <a href='#SkRRect_kSimple_Type'>value</a> <a href='#SkRRect_kSimple_Type'>representative</a> <a href='#SkRRect_kSimple_Type'>of</a> <a href='#SkRRect_kSimple_Type'>all</a> <a href='#SkRRect_kSimple_Type'>corner</a> <a href='#SkRRect_kSimple_Type'>radii</a>.
-If <a href='#SkRRect_type'>type()</a> <a href='#SkRRect_type'>returns</a> <a href='#SkRRect_kNinePatch_Type'>kNinePatch_Type</a> <a href='#SkRRect_kNinePatch_Type'>or</a> <a href='#SkRRect_kComplex_Type'>kComplex_Type</a>, <a href='#SkRRect_kComplex_Type'>at</a> <a href='#SkRRect_kComplex_Type'>least</a> <a href='#SkRRect_kComplex_Type'>one</a> <a href='#SkRRect_kComplex_Type'>of</a> <a href='#SkRRect_kComplex_Type'>the</a>
+Returns top-left corner radii. If <a href='#SkRRect_type'>type()</a> returns <a href='#SkRRect_kEmpty_Type'>kEmpty_Type</a>, <a href='#SkRRect_kRect_Type'>kRect_Type</a>,
+<a href='#SkRRect_kOval_Type'>kOval_Type</a>, or <a href='#SkRRect_kSimple_Type'>kSimple_Type</a>, returns a value representative of all corner radii.
+If <a href='#SkRRect_type'>type()</a> returns <a href='#SkRRect_kNinePatch_Type'>kNinePatch_Type</a> or <a href='#SkRRect_kComplex_Type'>kComplex_Type</a>, at least one of the
remaining three corners has a different value.
### Return Value
@@ -524,7 +524,7 @@
### Example
-<div><fiddle-embed name="44e9a9c2c5ef1af2a616086ff46a9037"><div>Nothing blue is drawn because <a href='#RRect'>Round_Rect</a> <a href='#RRect'>is</a> <a href='#RRect'>set</a> <a href='#RRect'>to</a> <a href='#RRect'>empty</a>.
+<div><fiddle-embed name="44e9a9c2c5ef1af2a616086ff46a9037"><div>Nothing blue is drawn because <a href='#RRect'>Round_Rect</a> is set to empty.
</div></fiddle-embed></div>
### See Also
@@ -536,10 +536,10 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-void <a href='#SkRRect_setRect'>setRect</a>(<a href='#SkRRect_setRect'>const</a> <a href='SkRect_Reference#SkRect'>SkRect</a>& <a href='SkRect_Reference#Rect'>rect</a>)
+void <a href='#SkRRect_setRect'>setRect</a>(const <a href='SkRect_Reference#SkRect'>SkRect</a>& <a href='SkRect_Reference#Rect'>rect</a>)
</pre>
-Sets bounds to sorted <a href='#SkRRect_setRect_rect'>rect</a>, <a href='#SkRRect_setRect_rect'>and</a> <a href='#SkRRect_setRect_rect'>sets</a> <a href='#SkRRect_setRect_rect'>corner</a> <a href='#SkRRect_setRect_rect'>radii</a> <a href='#SkRRect_setRect_rect'>to</a> <a href='#SkRRect_setRect_rect'>zero</a>.
+Sets bounds to sorted <a href='#SkRRect_setRect_rect'>rect</a>, and sets corner radii to zero.
If set bounds has width and height, and sets type to <a href='#SkRRect_kRect_Type'>kRect_Type</a>;
otherwise, sets type to <a href='#SkRRect_kEmpty_Type'>kEmpty_Type</a>.
@@ -586,10 +586,10 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-static <a href='SkRRect_Reference#SkRRect'>SkRRect</a> <a href='#SkRRect_MakeRect'>MakeRect</a>(<a href='#SkRRect_MakeRect'>const</a> <a href='SkRect_Reference#SkRect'>SkRect</a>& <a href='SkRect_Reference#SkRect'>r</a>)
+static <a href='SkRRect_Reference#SkRRect'>SkRRect</a> <a href='#SkRRect_MakeRect'>MakeRect</a>(const <a href='SkRect_Reference#SkRect'>SkRect</a>& r)
</pre>
-Initializes to copy of <a href='#SkRRect_MakeRect_r'>r</a> <a href='#SkRRect_MakeRect_r'>bounds</a> <a href='#SkRRect_MakeRect_r'>and</a> <a href='#SkRRect_MakeRect_r'>zeroes</a> <a href='#SkRRect_MakeRect_r'>corner</a> <a href='#SkRRect_MakeRect_r'>radii</a>.
+Initializes to copy of <a href='#SkRRect_MakeRect_r'>r</a> bounds and zeroes corner radii.
### Parameters
@@ -615,11 +615,11 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-static <a href='SkRRect_Reference#SkRRect'>SkRRect</a> <a href='#SkRRect_MakeOval'>MakeOval</a>(<a href='#SkRRect_MakeOval'>const</a> <a href='SkRect_Reference#SkRect'>SkRect</a>& <a href='undocumented#Oval'>oval</a>)
+static <a href='SkRRect_Reference#SkRRect'>SkRRect</a> <a href='#SkRRect_MakeOval'>MakeOval</a>(const <a href='SkRect_Reference#SkRect'>SkRect</a>& <a href='undocumented#Oval'>oval</a>)
</pre>
-Sets bounds to <a href='#SkRRect_MakeOval_oval'>oval</a>, <a href='#SkRRect_MakeOval_oval'>x-axis</a> <a href='#SkRRect_MakeOval_oval'>radii</a> <a href='#SkRRect_MakeOval_oval'>to</a> <a href='#SkRRect_MakeOval_oval'>half</a> <a href='#SkRRect_MakeOval_oval'>oval</a>.<a href='#SkRect_width'>width()</a>, <a href='#SkRect_width'>and</a> <a href='#SkRect_width'>all</a> <a href='#SkRect_width'>y-axis</a> <a href='#SkRect_width'>radii</a>
-to half <a href='#SkRRect_MakeOval_oval'>oval</a>.<a href='#SkRect_height'>height()</a>. <a href='#SkRect_height'>If</a> <a href='#SkRRect_MakeOval_oval'>oval</a> <a href='#SkRRect_MakeOval_oval'>bounds</a> <a href='#SkRRect_MakeOval_oval'>is</a> <a href='#SkRRect_MakeOval_oval'>empty</a>, <a href='#SkRRect_MakeOval_oval'>sets</a> <a href='#SkRRect_MakeOval_oval'>to</a> <a href='#SkRRect_kEmpty_Type'>kEmpty_Type</a>.
+Sets bounds to <a href='#SkRRect_MakeOval_oval'>oval</a>, x-axis radii to half <a href='#SkRRect_MakeOval_oval'>oval</a>.<a href='#SkRect_width'>width()</a>, and all y-axis radii
+to half <a href='#SkRRect_MakeOval_oval'>oval</a>.<a href='#SkRect_height'>height()</a>. If <a href='#SkRRect_MakeOval_oval'>oval</a> bounds is empty, sets to <a href='#SkRRect_kEmpty_Type'>kEmpty_Type</a>.
Otherwise, sets to <a href='#SkRRect_kOval_Type'>kOval_Type</a>.
### Parameters
@@ -646,14 +646,14 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-static <a href='SkRRect_Reference#SkRRect'>SkRRect</a> <a href='#SkRRect_MakeRectXY'>MakeRectXY</a>(<a href='#SkRRect_MakeRectXY'>const</a> <a href='SkRect_Reference#SkRect'>SkRect</a>& <a href='SkRect_Reference#Rect'>rect</a>, <a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>xRad</a>, <a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>yRad</a>)
+static <a href='SkRRect_Reference#SkRRect'>SkRRect</a> <a href='#SkRRect_MakeRectXY'>MakeRectXY</a>(const <a href='SkRect_Reference#SkRect'>SkRect</a>& <a href='SkRect_Reference#Rect'>rect</a>, <a href='undocumented#SkScalar'>SkScalar</a> xRad, <a href='undocumented#SkScalar'>SkScalar</a> yRad)
</pre>
Sets to rounded rectangle with the same radii for all four corners.
-If <a href='#SkRRect_MakeRectXY_rect'>rect</a> <a href='#SkRRect_MakeRectXY_rect'>is</a> <a href='#SkRRect_MakeRectXY_rect'>empty</a>, <a href='#SkRRect_MakeRectXY_rect'>sets</a> <a href='#SkRRect_MakeRectXY_rect'>to</a> <a href='#SkRRect_kEmpty_Type'>kEmpty_Type</a>.
-Otherwise, if <a href='#SkRRect_MakeRectXY_xRad'>xRad</a> <a href='#SkRRect_MakeRectXY_xRad'>and</a> <a href='#SkRRect_MakeRectXY_yRad'>yRad</a> <a href='#SkRRect_MakeRectXY_yRad'>are</a> <a href='#SkRRect_MakeRectXY_yRad'>zero</a>, <a href='#SkRRect_MakeRectXY_yRad'>sets</a> <a href='#SkRRect_MakeRectXY_yRad'>to</a> <a href='#SkRRect_kRect_Type'>kRect_Type</a>.
-Otherwise, if <a href='#SkRRect_MakeRectXY_xRad'>xRad</a> <a href='#SkRRect_MakeRectXY_xRad'>is</a> <a href='#SkRRect_MakeRectXY_xRad'>at</a> <a href='#SkRRect_MakeRectXY_xRad'>least</a> <a href='#SkRRect_MakeRectXY_xRad'>half</a> <a href='#SkRRect_MakeRectXY_rect'>rect</a>.<a href='#SkRect_width'>width()</a> <a href='#SkRect_width'>and</a> <a href='#SkRRect_MakeRectXY_yRad'>yRad</a> <a href='#SkRRect_MakeRectXY_yRad'>is</a> <a href='#SkRRect_MakeRectXY_yRad'>at</a> <a href='#SkRRect_MakeRectXY_yRad'>least</a> <a href='#SkRRect_MakeRectXY_yRad'>half</a>
-<a href='#SkRRect_MakeRectXY_rect'>rect</a>.<a href='#SkRect_height'>height()</a>, <a href='#SkRect_height'>sets</a> <a href='#SkRect_height'>to</a> <a href='#SkRRect_kOval_Type'>kOval_Type</a>.
+If <a href='#SkRRect_MakeRectXY_rect'>rect</a> is empty, sets to <a href='#SkRRect_kEmpty_Type'>kEmpty_Type</a>.
+Otherwise, if <a href='#SkRRect_MakeRectXY_xRad'>xRad</a> and <a href='#SkRRect_MakeRectXY_yRad'>yRad</a> are zero, sets to <a href='#SkRRect_kRect_Type'>kRect_Type</a>.
+Otherwise, if <a href='#SkRRect_MakeRectXY_xRad'>xRad</a> is at least half <a href='#SkRRect_MakeRectXY_rect'>rect</a>.<a href='#SkRect_width'>width()</a> and <a href='#SkRRect_MakeRectXY_yRad'>yRad</a> is at least half
+<a href='#SkRRect_MakeRectXY_rect'>rect</a>.<a href='#SkRect_height'>height()</a>, sets to <a href='#SkRRect_kOval_Type'>kOval_Type</a>.
Otherwise, sets to <a href='#SkRRect_kSimple_Type'>kSimple_Type</a>.
### Parameters
@@ -686,11 +686,11 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-void <a href='#SkRRect_setOval'>setOval</a>(<a href='#SkRRect_setOval'>const</a> <a href='SkRect_Reference#SkRect'>SkRect</a>& <a href='undocumented#Oval'>oval</a>)
+void <a href='#SkRRect_setOval'>setOval</a>(const <a href='SkRect_Reference#SkRect'>SkRect</a>& <a href='undocumented#Oval'>oval</a>)
</pre>
-Sets bounds to <a href='#SkRRect_setOval_oval'>oval</a>, <a href='#SkRRect_setOval_oval'>x-axis</a> <a href='#SkRRect_setOval_oval'>radii</a> <a href='#SkRRect_setOval_oval'>to</a> <a href='#SkRRect_setOval_oval'>half</a> <a href='#SkRRect_setOval_oval'>oval</a>.<a href='#SkRect_width'>width()</a>, <a href='#SkRect_width'>and</a> <a href='#SkRect_width'>all</a> <a href='#SkRect_width'>y-axis</a> <a href='#SkRect_width'>radii</a>
-to half <a href='#SkRRect_setOval_oval'>oval</a>.<a href='#SkRect_height'>height()</a>. <a href='#SkRect_height'>If</a> <a href='#SkRRect_setOval_oval'>oval</a> <a href='#SkRRect_setOval_oval'>bounds</a> <a href='#SkRRect_setOval_oval'>is</a> <a href='#SkRRect_setOval_oval'>empty</a>, <a href='#SkRRect_setOval_oval'>sets</a> <a href='#SkRRect_setOval_oval'>to</a> <a href='#SkRRect_kEmpty_Type'>kEmpty_Type</a>.
+Sets bounds to <a href='#SkRRect_setOval_oval'>oval</a>, x-axis radii to half <a href='#SkRRect_setOval_oval'>oval</a>.<a href='#SkRect_width'>width()</a>, and all y-axis radii
+to half <a href='#SkRRect_setOval_oval'>oval</a>.<a href='#SkRect_height'>height()</a>. If <a href='#SkRRect_setOval_oval'>oval</a> bounds is empty, sets to <a href='#SkRRect_kEmpty_Type'>kEmpty_Type</a>.
Otherwise, sets to <a href='#SkRRect_kOval_Type'>kOval_Type</a>.
### Parameters
@@ -713,14 +713,14 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-void <a href='#SkRRect_setRectXY'>setRectXY</a>(<a href='#SkRRect_setRectXY'>const</a> <a href='SkRect_Reference#SkRect'>SkRect</a>& <a href='SkRect_Reference#Rect'>rect</a>, <a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>xRad</a>, <a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>yRad</a>)
+void <a href='#SkRRect_setRectXY'>setRectXY</a>(const <a href='SkRect_Reference#SkRect'>SkRect</a>& <a href='SkRect_Reference#Rect'>rect</a>, <a href='undocumented#SkScalar'>SkScalar</a> xRad, <a href='undocumented#SkScalar'>SkScalar</a> yRad)
</pre>
Sets to rounded rectangle with the same radii for all four corners.
-If <a href='#SkRRect_setRectXY_rect'>rect</a> <a href='#SkRRect_setRectXY_rect'>is</a> <a href='#SkRRect_setRectXY_rect'>empty</a>, <a href='#SkRRect_setRectXY_rect'>sets</a> <a href='#SkRRect_setRectXY_rect'>to</a> <a href='#SkRRect_kEmpty_Type'>kEmpty_Type</a>.
-Otherwise, if <a href='#SkRRect_setRectXY_xRad'>xRad</a> <a href='#SkRRect_setRectXY_xRad'>or</a> <a href='#SkRRect_setRectXY_yRad'>yRad</a> <a href='#SkRRect_setRectXY_yRad'>is</a> <a href='#SkRRect_setRectXY_yRad'>zero</a>, <a href='#SkRRect_setRectXY_yRad'>sets</a> <a href='#SkRRect_setRectXY_yRad'>to</a> <a href='#SkRRect_kRect_Type'>kRect_Type</a>.
-Otherwise, if <a href='#SkRRect_setRectXY_xRad'>xRad</a> <a href='#SkRRect_setRectXY_xRad'>is</a> <a href='#SkRRect_setRectXY_xRad'>at</a> <a href='#SkRRect_setRectXY_xRad'>least</a> <a href='#SkRRect_setRectXY_xRad'>half</a> <a href='#SkRRect_setRectXY_rect'>rect</a>.<a href='#SkRect_width'>width()</a> <a href='#SkRect_width'>and</a> <a href='#SkRRect_setRectXY_yRad'>yRad</a> <a href='#SkRRect_setRectXY_yRad'>is</a> <a href='#SkRRect_setRectXY_yRad'>at</a> <a href='#SkRRect_setRectXY_yRad'>least</a> <a href='#SkRRect_setRectXY_yRad'>half</a>
-<a href='#SkRRect_setRectXY_rect'>rect</a>.<a href='#SkRect_height'>height()</a>, <a href='#SkRect_height'>sets</a> <a href='#SkRect_height'>to</a> <a href='#SkRRect_kOval_Type'>kOval_Type</a>.
+If <a href='#SkRRect_setRectXY_rect'>rect</a> is empty, sets to <a href='#SkRRect_kEmpty_Type'>kEmpty_Type</a>.
+Otherwise, if <a href='#SkRRect_setRectXY_xRad'>xRad</a> or <a href='#SkRRect_setRectXY_yRad'>yRad</a> is zero, sets to <a href='#SkRRect_kRect_Type'>kRect_Type</a>.
+Otherwise, if <a href='#SkRRect_setRectXY_xRad'>xRad</a> is at least half <a href='#SkRRect_setRectXY_rect'>rect</a>.<a href='#SkRect_width'>width()</a> and <a href='#SkRRect_setRectXY_yRad'>yRad</a> is at least half
+<a href='#SkRRect_setRectXY_rect'>rect</a>.<a href='#SkRect_height'>height()</a>, sets to <a href='#SkRRect_kOval_Type'>kOval_Type</a>.
Otherwise, sets to <a href='#SkRRect_kSimple_Type'>kSimple_Type</a>.
### Parameters
@@ -749,23 +749,23 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-void <a href='#SkRRect_setNinePatch'>setNinePatch</a>(<a href='#SkRRect_setNinePatch'>const</a> <a href='SkRect_Reference#SkRect'>SkRect</a>& <a href='SkRect_Reference#Rect'>rect</a>, <a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>leftRad</a>, <a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>topRad</a>, <a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>rightRad</a>,
- <a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>bottomRad</a>)
+void <a href='#SkRRect_setNinePatch'>setNinePatch</a>(const <a href='SkRect_Reference#SkRect'>SkRect</a>& <a href='SkRect_Reference#Rect'>rect</a>, <a href='undocumented#SkScalar'>SkScalar</a> leftRad, <a href='undocumented#SkScalar'>SkScalar</a> topRad, <a href='undocumented#SkScalar'>SkScalar</a> rightRad,
+ <a href='undocumented#SkScalar'>SkScalar</a> bottomRad)
</pre>
-Sets bounds to <a href='#SkRRect_setNinePatch_rect'>rect</a>. <a href='#SkRRect_setNinePatch_rect'>Sets</a> <a href='#SkRRect_setNinePatch_rect'>radii</a> <a href='#SkRRect_setNinePatch_rect'>to</a> (<a href='#SkRRect_setNinePatch_leftRad'>leftRad</a>, <a href='#SkRRect_setNinePatch_topRad'>topRad</a>), (<a href='#SkRRect_setNinePatch_rightRad'>rightRad</a>, <a href='#SkRRect_setNinePatch_topRad'>topRad</a>),
+Sets bounds to <a href='#SkRRect_setNinePatch_rect'>rect</a>. Sets radii to (<a href='#SkRRect_setNinePatch_leftRad'>leftRad</a>, <a href='#SkRRect_setNinePatch_topRad'>topRad</a>), (<a href='#SkRRect_setNinePatch_rightRad'>rightRad</a>, <a href='#SkRRect_setNinePatch_topRad'>topRad</a>),
(<a href='#SkRRect_setNinePatch_rightRad'>rightRad</a>, <a href='#SkRRect_setNinePatch_bottomRad'>bottomRad</a>), (<a href='#SkRRect_setNinePatch_leftRad'>leftRad</a>, <a href='#SkRRect_setNinePatch_bottomRad'>bottomRad</a>).
-If <a href='#SkRRect_setNinePatch_rect'>rect</a> <a href='#SkRRect_setNinePatch_rect'>is</a> <a href='#SkRRect_setNinePatch_rect'>empty</a>, <a href='#SkRRect_setNinePatch_rect'>sets</a> <a href='#SkRRect_setNinePatch_rect'>to</a> <a href='#SkRRect_kEmpty_Type'>kEmpty_Type</a>.
-Otherwise, if <a href='#SkRRect_setNinePatch_leftRad'>leftRad</a> <a href='#SkRRect_setNinePatch_leftRad'>and</a> <a href='#SkRRect_setNinePatch_rightRad'>rightRad</a> <a href='#SkRRect_setNinePatch_rightRad'>are</a> <a href='#SkRRect_setNinePatch_rightRad'>zero</a>, <a href='#SkRRect_setNinePatch_rightRad'>sets</a> <a href='#SkRRect_setNinePatch_rightRad'>to</a> <a href='#SkRRect_kRect_Type'>kRect_Type</a>.
-Otherwise, if <a href='#SkRRect_setNinePatch_topRad'>topRad</a> <a href='#SkRRect_setNinePatch_topRad'>and</a> <a href='#SkRRect_setNinePatch_bottomRad'>bottomRad</a> <a href='#SkRRect_setNinePatch_bottomRad'>are</a> <a href='#SkRRect_setNinePatch_bottomRad'>zero</a>, <a href='#SkRRect_setNinePatch_bottomRad'>sets</a> <a href='#SkRRect_setNinePatch_bottomRad'>to</a> <a href='#SkRRect_kRect_Type'>kRect_Type</a>.
-Otherwise, if <a href='#SkRRect_setNinePatch_leftRad'>leftRad</a> <a href='#SkRRect_setNinePatch_leftRad'>and</a> <a href='#SkRRect_setNinePatch_rightRad'>rightRad</a> <a href='#SkRRect_setNinePatch_rightRad'>are</a> <a href='#SkRRect_setNinePatch_rightRad'>equal</a> <a href='#SkRRect_setNinePatch_rightRad'>and</a> <a href='#SkRRect_setNinePatch_rightRad'>at</a> <a href='#SkRRect_setNinePatch_rightRad'>least</a> <a href='#SkRRect_setNinePatch_rightRad'>half</a> <a href='#SkRRect_setNinePatch_rect'>rect</a>.<a href='#SkRect_width'>width()</a>, <a href='#SkRect_width'>and</a>
-<a href='#SkRRect_setNinePatch_topRad'>topRad</a> <a href='#SkRRect_setNinePatch_topRad'>and</a> <a href='#SkRRect_setNinePatch_bottomRad'>bottomRad</a> <a href='#SkRRect_setNinePatch_bottomRad'>are</a> <a href='#SkRRect_setNinePatch_bottomRad'>equal</a> <a href='#SkRRect_setNinePatch_bottomRad'>at</a> <a href='#SkRRect_setNinePatch_bottomRad'>least</a> <a href='#SkRRect_setNinePatch_bottomRad'>half</a> <a href='#SkRRect_setNinePatch_rect'>rect</a>.<a href='#SkRect_height'>height()</a>, <a href='#SkRect_height'>sets</a> <a href='#SkRect_height'>to</a> <a href='#SkRRect_kOval_Type'>kOval_Type</a>.
-Otherwise, if <a href='#SkRRect_setNinePatch_leftRad'>leftRad</a> <a href='#SkRRect_setNinePatch_leftRad'>and</a> <a href='#SkRRect_setNinePatch_rightRad'>rightRad</a> <a href='#SkRRect_setNinePatch_rightRad'>are</a> <a href='#SkRRect_setNinePatch_rightRad'>equal</a>, <a href='#SkRRect_setNinePatch_rightRad'>and</a> <a href='#SkRRect_setNinePatch_topRad'>topRad</a> <a href='#SkRRect_setNinePatch_topRad'>and</a> <a href='#SkRRect_setNinePatch_bottomRad'>bottomRad</a> <a href='#SkRRect_setNinePatch_bottomRad'>are</a> <a href='#SkRRect_setNinePatch_bottomRad'>equal</a>,
-sets to <a href='#SkRRect_kSimple_Type'>kSimple_Type</a>. <a href='#SkRRect_kSimple_Type'>Otherwise</a>, <a href='#SkRRect_kSimple_Type'>sets</a> <a href='#SkRRect_kSimple_Type'>to</a> <a href='#SkRRect_kNinePatch_Type'>kNinePatch_Type</a>.
+If <a href='#SkRRect_setNinePatch_rect'>rect</a> is empty, sets to <a href='#SkRRect_kEmpty_Type'>kEmpty_Type</a>.
+Otherwise, if <a href='#SkRRect_setNinePatch_leftRad'>leftRad</a> and <a href='#SkRRect_setNinePatch_rightRad'>rightRad</a> are zero, sets to <a href='#SkRRect_kRect_Type'>kRect_Type</a>.
+Otherwise, if <a href='#SkRRect_setNinePatch_topRad'>topRad</a> and <a href='#SkRRect_setNinePatch_bottomRad'>bottomRad</a> are zero, sets to <a href='#SkRRect_kRect_Type'>kRect_Type</a>.
+Otherwise, if <a href='#SkRRect_setNinePatch_leftRad'>leftRad</a> and <a href='#SkRRect_setNinePatch_rightRad'>rightRad</a> are equal and at least half <a href='#SkRRect_setNinePatch_rect'>rect</a>.<a href='#SkRect_width'>width()</a>, and
+<a href='#SkRRect_setNinePatch_topRad'>topRad</a> and <a href='#SkRRect_setNinePatch_bottomRad'>bottomRad</a> are equal at least half <a href='#SkRRect_setNinePatch_rect'>rect</a>.<a href='#SkRect_height'>height()</a>, sets to <a href='#SkRRect_kOval_Type'>kOval_Type</a>.
+Otherwise, if <a href='#SkRRect_setNinePatch_leftRad'>leftRad</a> and <a href='#SkRRect_setNinePatch_rightRad'>rightRad</a> are equal, and <a href='#SkRRect_setNinePatch_topRad'>topRad</a> and <a href='#SkRRect_setNinePatch_bottomRad'>bottomRad</a> are equal,
+sets to <a href='#SkRRect_kSimple_Type'>kSimple_Type</a>. Otherwise, sets to <a href='#SkRRect_kNinePatch_Type'>kNinePatch_Type</a>.
-Nine <a href='undocumented#Patch'>patch</a> <a href='undocumented#Patch'>refers</a> <a href='undocumented#Patch'>to</a> <a href='undocumented#Patch'>the</a> <a href='undocumented#Patch'>nine</a> <a href='undocumented#Patch'>parts</a> <a href='undocumented#Patch'>defined</a> <a href='undocumented#Patch'>by</a> <a href='undocumented#Patch'>the</a> <a href='undocumented#Patch'>radii</a>: <a href='undocumented#Patch'>one</a> <a href='undocumented#Patch'>center</a> <a href='undocumented#Patch'>rectangle</a>,
-four edge <a href='undocumented#Patch'>patches</a>, <a href='undocumented#Patch'>and</a> <a href='undocumented#Patch'>four</a> <a href='undocumented#Patch'>corner</a> <a href='undocumented#Patch'>patches</a>.
+Nine <a href='undocumented#Patch'>patch</a> refers to the nine parts defined by the radii: one center rectangle,
+four edge <a href='undocumented#Patch'>patches</a>, and four corner <a href='undocumented#Patch'>patches</a>.
### Parameters
@@ -799,17 +799,17 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-void <a href='#SkRRect_setRectRadii'>setRectRadii</a>(<a href='#SkRRect_setRectRadii'>const</a> <a href='SkRect_Reference#SkRect'>SkRect</a>& <a href='SkRect_Reference#Rect'>rect</a>, <a href='SkRect_Reference#Rect'>const</a> <a href='SkPoint_Reference#SkVector'>SkVector</a> <a href='SkPoint_Reference#SkVector'>radii</a>[4])
+void <a href='#SkRRect_setRectRadii'>setRectRadii</a>(const <a href='SkRect_Reference#SkRect'>SkRect</a>& <a href='SkRect_Reference#Rect'>rect</a>, const <a href='SkPoint_Reference#SkVector'>SkVector</a> radii[4])
</pre>
-Sets bounds to <a href='#SkRRect_setRectRadii_rect'>rect</a>. <a href='#SkRRect_setRectRadii_rect'>Sets</a> <a href='#SkRRect_setRectRadii_radii'>radii</a> <a href='#SkRRect_setRectRadii_radii'>array</a> <a href='#SkRRect_setRectRadii_radii'>for</a> <a href='#SkRRect_setRectRadii_radii'>individual</a> <a href='#SkRRect_setRectRadii_radii'>control</a> <a href='#SkRRect_setRectRadii_radii'>of</a> <a href='#SkRRect_setRectRadii_radii'>all</a> <a href='#SkRRect_setRectRadii_radii'>for</a> <a href='#SkRRect_setRectRadii_radii'>corners</a>.
+Sets bounds to <a href='#SkRRect_setRectRadii_rect'>rect</a>. Sets <a href='#SkRRect_setRectRadii_radii'>radii</a> array for individual control of all for corners.
-If <a href='#SkRRect_setRectRadii_rect'>rect</a> <a href='#SkRRect_setRectRadii_rect'>is</a> <a href='#SkRRect_setRectRadii_rect'>empty</a>, <a href='#SkRRect_setRectRadii_rect'>sets</a> <a href='#SkRRect_setRectRadii_rect'>to</a> <a href='#SkRRect_kEmpty_Type'>kEmpty_Type</a>.
-Otherwise, if one of each corner <a href='#SkRRect_setRectRadii_radii'>radii</a> <a href='#SkRRect_setRectRadii_radii'>are</a> <a href='#SkRRect_setRectRadii_radii'>zero</a>, <a href='#SkRRect_setRectRadii_radii'>sets</a> <a href='#SkRRect_setRectRadii_radii'>to</a> <a href='#SkRRect_kRect_Type'>kRect_Type</a>.
-Otherwise, if all x-axis <a href='#SkRRect_setRectRadii_radii'>radii</a> <a href='#SkRRect_setRectRadii_radii'>are</a> <a href='#SkRRect_setRectRadii_radii'>equal</a> <a href='#SkRRect_setRectRadii_radii'>and</a> <a href='#SkRRect_setRectRadii_radii'>at</a> <a href='#SkRRect_setRectRadii_radii'>least</a> <a href='#SkRRect_setRectRadii_radii'>half</a> <a href='#SkRRect_setRectRadii_rect'>rect</a>.<a href='#SkRect_width'>width()</a>, <a href='#SkRect_width'>and</a>
-all y-axis <a href='#SkRRect_setRectRadii_radii'>radii</a> <a href='#SkRRect_setRectRadii_radii'>are</a> <a href='#SkRRect_setRectRadii_radii'>equal</a> <a href='#SkRRect_setRectRadii_radii'>at</a> <a href='#SkRRect_setRectRadii_radii'>least</a> <a href='#SkRRect_setRectRadii_radii'>half</a> <a href='#SkRRect_setRectRadii_rect'>rect</a>.<a href='#SkRect_height'>height()</a>, <a href='#SkRect_height'>sets</a> <a href='#SkRect_height'>to</a> <a href='#SkRRect_kOval_Type'>kOval_Type</a>.
-Otherwise, if all x-axis <a href='#SkRRect_setRectRadii_radii'>radii</a> <a href='#SkRRect_setRectRadii_radii'>are</a> <a href='#SkRRect_setRectRadii_radii'>equal</a>, <a href='#SkRRect_setRectRadii_radii'>and</a> <a href='#SkRRect_setRectRadii_radii'>all</a> <a href='#SkRRect_setRectRadii_radii'>y-axis</a> <a href='#SkRRect_setRectRadii_radii'>radii</a> <a href='#SkRRect_setRectRadii_radii'>are</a> <a href='#SkRRect_setRectRadii_radii'>equal</a>,
-sets to <a href='#SkRRect_kSimple_Type'>kSimple_Type</a>. <a href='#SkRRect_kSimple_Type'>Otherwise</a>, <a href='#SkRRect_kSimple_Type'>sets</a> <a href='#SkRRect_kSimple_Type'>to</a> <a href='#SkRRect_kNinePatch_Type'>kNinePatch_Type</a>.
+If <a href='#SkRRect_setRectRadii_rect'>rect</a> is empty, sets to <a href='#SkRRect_kEmpty_Type'>kEmpty_Type</a>.
+Otherwise, if one of each corner <a href='#SkRRect_setRectRadii_radii'>radii</a> are zero, sets to <a href='#SkRRect_kRect_Type'>kRect_Type</a>.
+Otherwise, if all x-axis <a href='#SkRRect_setRectRadii_radii'>radii</a> are equal and at least half <a href='#SkRRect_setRectRadii_rect'>rect</a>.<a href='#SkRect_width'>width()</a>, and
+all y-axis <a href='#SkRRect_setRectRadii_radii'>radii</a> are equal at least half <a href='#SkRRect_setRectRadii_rect'>rect</a>.<a href='#SkRect_height'>height()</a>, sets to <a href='#SkRRect_kOval_Type'>kOval_Type</a>.
+Otherwise, if all x-axis <a href='#SkRRect_setRectRadii_radii'>radii</a> are equal, and all y-axis <a href='#SkRRect_setRectRadii_radii'>radii</a> are equal,
+sets to <a href='#SkRRect_kSimple_Type'>kSimple_Type</a>. Otherwise, sets to <a href='#SkRRect_kNinePatch_Type'>kNinePatch_Type</a>.
### Parameters
@@ -889,7 +889,7 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-const <a href='SkRect_Reference#SkRect'>SkRect</a>& <a href='#SkRRect_rect'>rect()</a> <a href='#SkRRect_rect'>const</a>
+const <a href='SkRect_Reference#SkRect'>SkRect</a>& <a href='#SkRRect_rect'>rect()</a> const
</pre>
Returns bounds. Bounds may have zero width or zero height. Bounds right is
@@ -925,10 +925,10 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-<a href='SkPoint_Reference#SkVector'>SkVector</a> <a href='SkPoint_Reference#SkVector'>radii</a>(<a href='#SkRRect_Corner'>Corner</a> <a href='#SkRRect_Corner'>corner</a>) <a href='#SkRRect_Corner'>const</a>
+<a href='SkPoint_Reference#SkVector'>SkVector</a> radii(<a href='#SkRRect_Corner'>Corner</a> corner) const
</pre>
-Returns <a href='undocumented#Scalar'>scalar</a> <a href='undocumented#Scalar'>pair</a> <a href='undocumented#Scalar'>for</a> <a href='undocumented#Scalar'>radius</a> <a href='undocumented#Scalar'>of</a> <a href='undocumented#Curve'>curve</a> <a href='undocumented#Curve'>on</a> <a href='undocumented#Curve'>x-axis</a> <a href='undocumented#Curve'>and</a> <a href='undocumented#Curve'>y-axis</a> <a href='undocumented#Curve'>for</a> <a href='undocumented#Curve'>one</a> <a href='#SkRRect_radii_corner'>corner</a>.
+Returns <a href='undocumented#Scalar'>scalar</a> pair for radius of <a href='undocumented#Curve'>curve</a> on x-axis and y-axis for one <a href='#SkRRect_radii_corner'>corner</a>.
Both radii may be zero. If not zero, both are positive and finite.
### Parameters
@@ -947,9 +947,9 @@
### Example
<div><fiddle-embed name="8d5c88478528584913867ada423e0d59"><div>Finite values are scaled proportionately to fit; other values are set to zero.
-Scaled values cannot be larger than 25, half the bounding <a href='#RRect'>Round_Rect</a> <a href='#RRect'>width</a>.
-<a href='#RRect'>Small</a> <a href='#RRect'>scaled</a> <a href='#RRect'>values</a> <a href='#RRect'>are</a> <a href='#RRect'>halved</a> <a href='#RRect'>to</a> <a href='#RRect'>scale</a> <a href='#RRect'>in</a> <a href='#RRect'>proportion</a> <a href='#RRect'>to</a> <a href='#RRect'>the</a> <a href='#RRect'>y-axis</a> <a href='#SkRRect_radii_corner'>corner</a>
-<a href='#SkRRect_radii_corner'>radius</a>, <a href='#SkRRect_radii_corner'>which</a> <a href='#SkRRect_radii_corner'>is</a> <a href='#SkRRect_radii_corner'>twice</a> <a href='#SkRRect_radii_corner'>the</a> <a href='#SkRRect_radii_corner'>bounds</a> <a href='#SkRRect_radii_corner'>height</a>.
+Scaled values cannot be larger than 25, half the bounding <a href='#RRect'>Round_Rect</a> width.
+Small scaled values are halved to scale in proportion to the y-axis <a href='#SkRRect_radii_corner'>corner</a>
+radius, which is twice the bounds height.
</div>
#### Example Output
@@ -973,7 +973,7 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-const <a href='SkRect_Reference#SkRect'>SkRect</a>& <a href='#SkRRect_getBounds'>getBounds</a>() <a href='#SkRRect_getBounds'>const</a>
+const <a href='SkRect_Reference#SkRect'>SkRect</a>& <a href='#SkRRect_getBounds'>getBounds</a>() const
</pre>
Returns bounds. Bounds may have zero width or zero height. Bounds right is
@@ -997,21 +997,21 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-bool operator==(const <a href='SkRRect_Reference#SkRRect'>SkRRect</a>& <a href='SkRRect_Reference#SkRRect'>a</a>, <a href='SkRRect_Reference#SkRRect'>const</a> <a href='SkRRect_Reference#SkRRect'>SkRRect</a>& <a href='SkRRect_Reference#SkRRect'>b</a>)
+bool operator==(const <a href='SkRRect_Reference#SkRRect'>SkRRect</a>& a, const <a href='SkRRect_Reference#SkRRect'>SkRRect</a>& b)
</pre>
-Returns true if bounds and radii in <a href='#SkRRect_equal_operator_a'>a</a> <a href='#SkRRect_equal_operator_a'>are</a> <a href='#SkRRect_equal_operator_a'>equal</a> <a href='#SkRRect_equal_operator_a'>to</a> <a href='#SkRRect_equal_operator_a'>bounds</a> <a href='#SkRRect_equal_operator_a'>and</a> <a href='#SkRRect_equal_operator_a'>radii</a> <a href='#SkRRect_equal_operator_a'>in</a> <a href='#SkRRect_equal_operator_b'>b</a>.
+Returns true if bounds and radii in <a href='#SkRRect_equal_operator_a'>a</a> are equal to bounds and radii in <a href='#SkRRect_equal_operator_b'>b</a>.
-<a href='#SkRRect_equal_operator_a'>a</a> <a href='#SkRRect_equal_operator_a'>and</a> <a href='#SkRRect_equal_operator_b'>b</a> <a href='#SkRRect_equal_operator_b'>are</a> <a href='#SkRRect_equal_operator_b'>not</a> <a href='#SkRRect_equal_operator_b'>equal</a> <a href='#SkRRect_equal_operator_b'>if</a> <a href='#SkRRect_equal_operator_b'>either</a> <a href='#SkRRect_equal_operator_b'>contain</a> <a href='#SkRRect_equal_operator_b'>NaN</a>. <a href='#SkRRect_equal_operator_a'>a</a> <a href='#SkRRect_equal_operator_a'>and</a> <a href='#SkRRect_equal_operator_b'>b</a> <a href='#SkRRect_equal_operator_b'>are</a> <a href='#SkRRect_equal_operator_b'>equal</a> <a href='#SkRRect_equal_operator_b'>if</a> <a href='#SkRRect_equal_operator_b'>members</a>
+<a href='#SkRRect_equal_operator_a'>a</a> and <a href='#SkRRect_equal_operator_b'>b</a> are not equal if either contain NaN. <a href='#SkRRect_equal_operator_a'>a</a> and <a href='#SkRRect_equal_operator_b'>b</a> are equal if members
contain zeroes with different signs.
### Parameters
<table> <tr> <td><a name='SkRRect_equal_operator_a'><code><strong>a</strong></code></a></td>
- <td><a href='SkRect_Reference#SkRect'>SkRect</a> <a href='SkRect_Reference#SkRect'>bounds</a> <a href='SkRect_Reference#SkRect'>and</a> <a href='SkRect_Reference#SkRect'>radii</a> <a href='SkRect_Reference#SkRect'>to</a> <a href='SkRect_Reference#SkRect'>compare</a></td>
+ <td><a href='SkRect_Reference#SkRect'>SkRect</a> bounds and radii to compare</td>
</tr>
<tr> <td><a name='SkRRect_equal_operator_b'><code><strong>b</strong></code></a></td>
- <td><a href='SkRect_Reference#SkRect'>SkRect</a> <a href='SkRect_Reference#SkRect'>bounds</a> <a href='SkRect_Reference#SkRect'>and</a> <a href='SkRect_Reference#SkRect'>radii</a> <a href='SkRect_Reference#SkRect'>to</a> <a href='SkRect_Reference#SkRect'>compare</a></td>
+ <td><a href='SkRect_Reference#SkRect'>SkRect</a> bounds and radii to compare</td>
</tr>
</table>
@@ -1032,21 +1032,21 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-bool operator!=(const <a href='SkRRect_Reference#SkRRect'>SkRRect</a>& <a href='SkRRect_Reference#SkRRect'>a</a>, <a href='SkRRect_Reference#SkRRect'>const</a> <a href='SkRRect_Reference#SkRRect'>SkRRect</a>& <a href='SkRRect_Reference#SkRRect'>b</a>)
+bool operator!=(const <a href='SkRRect_Reference#SkRRect'>SkRRect</a>& a, const <a href='SkRRect_Reference#SkRRect'>SkRRect</a>& b)
</pre>
-Returns true if bounds and radii in <a href='#SkRRect_notequal_operator_a'>a</a> <a href='#SkRRect_notequal_operator_a'>are</a> <a href='#SkRRect_notequal_operator_a'>not</a> <a href='#SkRRect_notequal_operator_a'>equal</a> <a href='#SkRRect_notequal_operator_a'>to</a> <a href='#SkRRect_notequal_operator_a'>bounds</a> <a href='#SkRRect_notequal_operator_a'>and</a> <a href='#SkRRect_notequal_operator_a'>radii</a> <a href='#SkRRect_notequal_operator_a'>in</a> <a href='#SkRRect_notequal_operator_b'>b</a>.
+Returns true if bounds and radii in <a href='#SkRRect_notequal_operator_a'>a</a> are not equal to bounds and radii in <a href='#SkRRect_notequal_operator_b'>b</a>.
-<a href='#SkRRect_notequal_operator_a'>a</a> <a href='#SkRRect_notequal_operator_a'>and</a> <a href='#SkRRect_notequal_operator_b'>b</a> <a href='#SkRRect_notequal_operator_b'>are</a> <a href='#SkRRect_notequal_operator_b'>not</a> <a href='#SkRRect_notequal_operator_b'>equal</a> <a href='#SkRRect_notequal_operator_b'>if</a> <a href='#SkRRect_notequal_operator_b'>either</a> <a href='#SkRRect_notequal_operator_b'>contain</a> <a href='#SkRRect_notequal_operator_b'>NaN</a>. <a href='#SkRRect_notequal_operator_a'>a</a> <a href='#SkRRect_notequal_operator_a'>and</a> <a href='#SkRRect_notequal_operator_b'>b</a> <a href='#SkRRect_notequal_operator_b'>are</a> <a href='#SkRRect_notequal_operator_b'>equal</a> <a href='#SkRRect_notequal_operator_b'>if</a> <a href='#SkRRect_notequal_operator_b'>members</a>
+<a href='#SkRRect_notequal_operator_a'>a</a> and <a href='#SkRRect_notequal_operator_b'>b</a> are not equal if either contain NaN. <a href='#SkRRect_notequal_operator_a'>a</a> and <a href='#SkRRect_notequal_operator_b'>b</a> are equal if members
contain zeroes with different signs.
### Parameters
<table> <tr> <td><a name='SkRRect_notequal_operator_a'><code><strong>a</strong></code></a></td>
- <td><a href='SkRect_Reference#SkRect'>SkRect</a> <a href='SkRect_Reference#SkRect'>bounds</a> <a href='SkRect_Reference#SkRect'>and</a> <a href='SkRect_Reference#SkRect'>radii</a> <a href='SkRect_Reference#SkRect'>to</a> <a href='SkRect_Reference#SkRect'>compare</a></td>
+ <td><a href='SkRect_Reference#SkRect'>SkRect</a> bounds and radii to compare</td>
</tr>
<tr> <td><a name='SkRRect_notequal_operator_b'><code><strong>b</strong></code></a></td>
- <td><a href='SkRect_Reference#SkRect'>SkRect</a> <a href='SkRect_Reference#SkRect'>bounds</a> <a href='SkRect_Reference#SkRect'>and</a> <a href='SkRect_Reference#SkRect'>radii</a> <a href='SkRect_Reference#SkRect'>to</a> <a href='SkRect_Reference#SkRect'>compare</a></td>
+ <td><a href='SkRect_Reference#SkRect'>SkRect</a> bounds and radii to compare</td>
</tr>
</table>
@@ -1067,28 +1067,28 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-void inset(<a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>dx</a>, <a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>dy</a>, <a href='SkRRect_Reference#SkRRect'>SkRRect</a>* <a href='SkRRect_Reference#SkRRect'>dst</a>) <a href='SkRRect_Reference#SkRRect'>const</a>
+void inset(<a href='undocumented#SkScalar'>SkScalar</a> dx, <a href='undocumented#SkScalar'>SkScalar</a> dy, <a href='SkRRect_Reference#SkRRect'>SkRRect</a>* dst) const
</pre>
-Copies <a href='SkRRect_Reference#SkRRect'>SkRRect</a> <a href='SkRRect_Reference#SkRRect'>to</a> <a href='#SkRRect_inset_dst'>dst</a>, <a href='#SkRRect_inset_dst'>then</a> <a href='#SkRRect_inset_dst'>insets</a> <a href='#SkRRect_inset_dst'>dst</a> <a href='#SkRRect_inset_dst'>bounds</a> <a href='#SkRRect_inset_dst'>by</a> <a href='#SkRRect_inset_dx'>dx</a> <a href='#SkRRect_inset_dx'>and</a> <a href='#SkRRect_inset_dy'>dy</a>, <a href='#SkRRect_inset_dy'>and</a> <a href='#SkRRect_inset_dy'>adjusts</a> <a href='#SkRRect_inset_dst'>dst</a>
-radii by <a href='#SkRRect_inset_dx'>dx</a> <a href='#SkRRect_inset_dx'>and</a> <a href='#SkRRect_inset_dy'>dy</a>. <a href='#SkRRect_inset_dx'>dx</a> <a href='#SkRRect_inset_dx'>and</a> <a href='#SkRRect_inset_dy'>dy</a> <a href='#SkRRect_inset_dy'>may</a> <a href='#SkRRect_inset_dy'>be</a> <a href='#SkRRect_inset_dy'>positive</a>, <a href='#SkRRect_inset_dy'>negative</a>, <a href='#SkRRect_inset_dy'>or</a> <a href='#SkRRect_inset_dy'>zero</a>. <a href='#SkRRect_inset_dst'>dst</a> <a href='#SkRRect_inset_dst'>may</a> <a href='#SkRRect_inset_dst'>be</a>
+Copies <a href='SkRRect_Reference#SkRRect'>SkRRect</a> to <a href='#SkRRect_inset_dst'>dst</a>, then insets <a href='#SkRRect_inset_dst'>dst</a> bounds by <a href='#SkRRect_inset_dx'>dx</a> and <a href='#SkRRect_inset_dy'>dy</a>, and adjusts <a href='#SkRRect_inset_dst'>dst</a>
+radii by <a href='#SkRRect_inset_dx'>dx</a> and <a href='#SkRRect_inset_dy'>dy</a>. <a href='#SkRRect_inset_dx'>dx</a> and <a href='#SkRRect_inset_dy'>dy</a> may be positive, negative, or zero. <a href='#SkRRect_inset_dst'>dst</a> may be
<a href='SkRRect_Reference#SkRRect'>SkRRect</a>.
If either corner radius is zero, the corner has no curvature and is unchanged.
Otherwise, if adjusted radius becomes negative, pins radius to zero.
-If <a href='#SkRRect_inset_dx'>dx</a> <a href='#SkRRect_inset_dx'>exceeds</a> <a href='#SkRRect_inset_dx'>half</a> <a href='#SkRRect_inset_dst'>dst</a> <a href='#SkRRect_inset_dst'>bounds</a> <a href='#SkRRect_inset_dst'>width</a>, <a href='#SkRRect_inset_dst'>dst</a> <a href='#SkRRect_inset_dst'>bounds</a> <a href='#SkRRect_inset_dst'>left</a> <a href='#SkRRect_inset_dst'>and</a> <a href='#SkRRect_inset_dst'>right</a> <a href='#SkRRect_inset_dst'>are</a> <a href='#SkRRect_inset_dst'>set</a> <a href='#SkRRect_inset_dst'>to</a>
-bounds x-axis center. If <a href='#SkRRect_inset_dy'>dy</a> <a href='#SkRRect_inset_dy'>exceeds</a> <a href='#SkRRect_inset_dy'>half</a> <a href='#SkRRect_inset_dst'>dst</a> <a href='#SkRRect_inset_dst'>bounds</a> <a href='#SkRRect_inset_dst'>height</a>, <a href='#SkRRect_inset_dst'>dst</a> <a href='#SkRRect_inset_dst'>bounds</a> <a href='#SkRRect_inset_dst'>top</a> <a href='#SkRRect_inset_dst'>and</a>
+If <a href='#SkRRect_inset_dx'>dx</a> exceeds half <a href='#SkRRect_inset_dst'>dst</a> bounds width, <a href='#SkRRect_inset_dst'>dst</a> bounds left and right are set to
+bounds x-axis center. If <a href='#SkRRect_inset_dy'>dy</a> exceeds half <a href='#SkRRect_inset_dst'>dst</a> bounds height, <a href='#SkRRect_inset_dst'>dst</a> bounds top and
bottom are set to bounds y-axis center.
-If <a href='#SkRRect_inset_dx'>dx</a> <a href='#SkRRect_inset_dx'>or</a> <a href='#SkRRect_inset_dy'>dy</a> <a href='#SkRRect_inset_dy'>cause</a> <a href='#SkRRect_inset_dy'>the</a> <a href='#SkRRect_inset_dy'>bounds</a> <a href='#SkRRect_inset_dy'>to</a> <a href='#SkRRect_inset_dy'>become</a> <a href='#SkRRect_inset_dy'>infinite</a>, <a href='#SkRRect_inset_dst'>dst</a> <a href='#SkRRect_inset_dst'>bounds</a> <a href='#SkRRect_inset_dst'>is</a> <a href='#SkRRect_inset_dst'>zeroed</a>.
+If <a href='#SkRRect_inset_dx'>dx</a> or <a href='#SkRRect_inset_dy'>dy</a> cause the bounds to become infinite, <a href='#SkRRect_inset_dst'>dst</a> bounds is zeroed.
### Parameters
<table> <tr> <td><a name='SkRRect_inset_dx'><code><strong>dx</strong></code></a></td>
- <td>added to <a href='#SkRRect_rect'>rect()</a>.<a href='#SkRect_fLeft'>fLeft</a>, <a href='#SkRect_fLeft'>and</a> <a href='#SkRect_fLeft'>subtracted</a> <a href='#SkRect_fLeft'>from</a> <a href='#SkRRect_rect'>rect()</a>.<a href='#SkRect_fRight'>fRight</a></td>
+ <td>added to <a href='#SkRRect_rect'>rect()</a>.<a href='#SkRect_fLeft'>fLeft</a>, and subtracted from <a href='#SkRRect_rect'>rect()</a>.<a href='#SkRect_fRight'>fRight</a></td>
</tr>
<tr> <td><a name='SkRRect_inset_dy'><code><strong>dy</strong></code></a></td>
- <td>added to <a href='#SkRRect_rect'>rect()</a>.<a href='#SkRect_fTop'>fTop</a>, <a href='#SkRect_fTop'>and</a> <a href='#SkRect_fTop'>subtracted</a> <a href='#SkRect_fTop'>from</a> <a href='#SkRRect_rect'>rect()</a>.<a href='#SkRect_fBottom'>fBottom</a></td>
+ <td>added to <a href='#SkRRect_rect'>rect()</a>.<a href='#SkRect_fTop'>fTop</a>, and subtracted from <a href='#SkRRect_rect'>rect()</a>.<a href='#SkRect_fBottom'>fBottom</a></td>
</tr>
<tr> <td><a name='SkRRect_inset_dst'><code><strong>dst</strong></code></a></td>
<td>insets bounds and radii</td>
@@ -1108,27 +1108,27 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-void inset(<a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>dx</a>, <a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>dy</a>)
+void inset(<a href='undocumented#SkScalar'>SkScalar</a> dx, <a href='undocumented#SkScalar'>SkScalar</a> dy)
</pre>
-Insets bounds by <a href='#SkRRect_inset_2_dx'>dx</a> <a href='#SkRRect_inset_2_dx'>and</a> <a href='#SkRRect_inset_2_dy'>dy</a>, <a href='#SkRRect_inset_2_dy'>and</a> <a href='#SkRRect_inset_2_dy'>adjusts</a> <a href='#SkRRect_inset_2_dy'>radii</a> <a href='#SkRRect_inset_2_dy'>by</a> <a href='#SkRRect_inset_2_dx'>dx</a> <a href='#SkRRect_inset_2_dx'>and</a> <a href='#SkRRect_inset_2_dy'>dy</a>. <a href='#SkRRect_inset_2_dx'>dx</a> <a href='#SkRRect_inset_2_dx'>and</a> <a href='#SkRRect_inset_2_dy'>dy</a> <a href='#SkRRect_inset_2_dy'>may</a> <a href='#SkRRect_inset_2_dy'>be</a>
+Insets bounds by <a href='#SkRRect_inset_2_dx'>dx</a> and <a href='#SkRRect_inset_2_dy'>dy</a>, and adjusts radii by <a href='#SkRRect_inset_2_dx'>dx</a> and <a href='#SkRRect_inset_2_dy'>dy</a>. <a href='#SkRRect_inset_2_dx'>dx</a> and <a href='#SkRRect_inset_2_dy'>dy</a> may be
positive, negative, or zero.
If either corner radius is zero, the corner has no curvature and is unchanged.
Otherwise, if adjusted radius becomes negative, pins radius to zero.
-If <a href='#SkRRect_inset_2_dx'>dx</a> <a href='#SkRRect_inset_2_dx'>exceeds</a> <a href='#SkRRect_inset_2_dx'>half</a> <a href='#SkRRect_inset_2_dx'>bounds</a> <a href='#SkRRect_inset_2_dx'>width</a>, <a href='#SkRRect_inset_2_dx'>bounds</a> <a href='#SkRRect_inset_2_dx'>left</a> <a href='#SkRRect_inset_2_dx'>and</a> <a href='#SkRRect_inset_2_dx'>right</a> <a href='#SkRRect_inset_2_dx'>are</a> <a href='#SkRRect_inset_2_dx'>set</a> <a href='#SkRRect_inset_2_dx'>to</a>
-bounds x-axis center. If <a href='#SkRRect_inset_2_dy'>dy</a> <a href='#SkRRect_inset_2_dy'>exceeds</a> <a href='#SkRRect_inset_2_dy'>half</a> <a href='#SkRRect_inset_2_dy'>bounds</a> <a href='#SkRRect_inset_2_dy'>height</a>, <a href='#SkRRect_inset_2_dy'>bounds</a> <a href='#SkRRect_inset_2_dy'>top</a> <a href='#SkRRect_inset_2_dy'>and</a>
+If <a href='#SkRRect_inset_2_dx'>dx</a> exceeds half bounds width, bounds left and right are set to
+bounds x-axis center. If <a href='#SkRRect_inset_2_dy'>dy</a> exceeds half bounds height, bounds top and
bottom are set to bounds y-axis center.
-If <a href='#SkRRect_inset_2_dx'>dx</a> <a href='#SkRRect_inset_2_dx'>or</a> <a href='#SkRRect_inset_2_dy'>dy</a> <a href='#SkRRect_inset_2_dy'>cause</a> <a href='#SkRRect_inset_2_dy'>the</a> <a href='#SkRRect_inset_2_dy'>bounds</a> <a href='#SkRRect_inset_2_dy'>to</a> <a href='#SkRRect_inset_2_dy'>become</a> <a href='#SkRRect_inset_2_dy'>infinite</a>, <a href='#SkRRect_inset_2_dy'>bounds</a> <a href='#SkRRect_inset_2_dy'>is</a> <a href='#SkRRect_inset_2_dy'>zeroed</a>.
+If <a href='#SkRRect_inset_2_dx'>dx</a> or <a href='#SkRRect_inset_2_dy'>dy</a> cause the bounds to become infinite, bounds is zeroed.
### Parameters
<table> <tr> <td><a name='SkRRect_inset_2_dx'><code><strong>dx</strong></code></a></td>
- <td>added to <a href='#SkRRect_rect'>rect()</a>.<a href='#SkRect_fLeft'>fLeft</a>, <a href='#SkRect_fLeft'>and</a> <a href='#SkRect_fLeft'>subtracted</a> <a href='#SkRect_fLeft'>from</a> <a href='#SkRRect_rect'>rect()</a>.<a href='#SkRect_fRight'>fRight</a></td>
+ <td>added to <a href='#SkRRect_rect'>rect()</a>.<a href='#SkRect_fLeft'>fLeft</a>, and subtracted from <a href='#SkRRect_rect'>rect()</a>.<a href='#SkRect_fRight'>fRight</a></td>
</tr>
<tr> <td><a name='SkRRect_inset_2_dy'><code><strong>dy</strong></code></a></td>
- <td>added to <a href='#SkRRect_rect'>rect()</a>.<a href='#SkRect_fTop'>fTop</a>, <a href='#SkRect_fTop'>and</a> <a href='#SkRect_fTop'>subtracted</a> <a href='#SkRect_fTop'>from</a> <a href='#SkRRect_rect'>rect()</a>.<a href='#SkRect_fBottom'>fBottom</a></td>
+ <td>added to <a href='#SkRRect_rect'>rect()</a>.<a href='#SkRect_fTop'>fTop</a>, and subtracted from <a href='#SkRRect_rect'>rect()</a>.<a href='#SkRect_fBottom'>fBottom</a></td>
</tr>
</table>
@@ -1145,27 +1145,27 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-void outset(<a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>dx</a>, <a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>dy</a>, <a href='SkRRect_Reference#SkRRect'>SkRRect</a>* <a href='SkRRect_Reference#SkRRect'>dst</a>) <a href='SkRRect_Reference#SkRRect'>const</a>
+void outset(<a href='undocumented#SkScalar'>SkScalar</a> dx, <a href='undocumented#SkScalar'>SkScalar</a> dy, <a href='SkRRect_Reference#SkRRect'>SkRRect</a>* dst) const
</pre>
-Outsets <a href='#SkRRect_outset_dst'>dst</a> <a href='#SkRRect_outset_dst'>bounds</a> <a href='#SkRRect_outset_dst'>by</a> <a href='#SkRRect_outset_dx'>dx</a> <a href='#SkRRect_outset_dx'>and</a> <a href='#SkRRect_outset_dy'>dy</a>, <a href='#SkRRect_outset_dy'>and</a> <a href='#SkRRect_outset_dy'>adjusts</a> <a href='#SkRRect_outset_dy'>radii</a> <a href='#SkRRect_outset_dy'>by</a> <a href='#SkRRect_outset_dx'>dx</a> <a href='#SkRRect_outset_dx'>and</a> <a href='#SkRRect_outset_dy'>dy</a>. <a href='#SkRRect_outset_dx'>dx</a> <a href='#SkRRect_outset_dx'>and</a> <a href='#SkRRect_outset_dy'>dy</a> <a href='#SkRRect_outset_dy'>may</a> <a href='#SkRRect_outset_dy'>be</a>
+Outsets <a href='#SkRRect_outset_dst'>dst</a> bounds by <a href='#SkRRect_outset_dx'>dx</a> and <a href='#SkRRect_outset_dy'>dy</a>, and adjusts radii by <a href='#SkRRect_outset_dx'>dx</a> and <a href='#SkRRect_outset_dy'>dy</a>. <a href='#SkRRect_outset_dx'>dx</a> and <a href='#SkRRect_outset_dy'>dy</a> may be
positive, negative, or zero.
If either corner radius is zero, the corner has no curvature and is unchanged.
Otherwise, if adjusted radius becomes negative, pins radius to zero.
-If <a href='#SkRRect_outset_dx'>dx</a> <a href='#SkRRect_outset_dx'>exceeds</a> <a href='#SkRRect_outset_dx'>half</a> <a href='#SkRRect_outset_dst'>dst</a> <a href='#SkRRect_outset_dst'>bounds</a> <a href='#SkRRect_outset_dst'>width</a>, <a href='#SkRRect_outset_dst'>dst</a> <a href='#SkRRect_outset_dst'>bounds</a> <a href='#SkRRect_outset_dst'>left</a> <a href='#SkRRect_outset_dst'>and</a> <a href='#SkRRect_outset_dst'>right</a> <a href='#SkRRect_outset_dst'>are</a> <a href='#SkRRect_outset_dst'>set</a> <a href='#SkRRect_outset_dst'>to</a>
-bounds x-axis center. If <a href='#SkRRect_outset_dy'>dy</a> <a href='#SkRRect_outset_dy'>exceeds</a> <a href='#SkRRect_outset_dy'>half</a> <a href='#SkRRect_outset_dst'>dst</a> <a href='#SkRRect_outset_dst'>bounds</a> <a href='#SkRRect_outset_dst'>height</a>, <a href='#SkRRect_outset_dst'>dst</a> <a href='#SkRRect_outset_dst'>bounds</a> <a href='#SkRRect_outset_dst'>top</a> <a href='#SkRRect_outset_dst'>and</a>
+If <a href='#SkRRect_outset_dx'>dx</a> exceeds half <a href='#SkRRect_outset_dst'>dst</a> bounds width, <a href='#SkRRect_outset_dst'>dst</a> bounds left and right are set to
+bounds x-axis center. If <a href='#SkRRect_outset_dy'>dy</a> exceeds half <a href='#SkRRect_outset_dst'>dst</a> bounds height, <a href='#SkRRect_outset_dst'>dst</a> bounds top and
bottom are set to bounds y-axis center.
-If <a href='#SkRRect_outset_dx'>dx</a> <a href='#SkRRect_outset_dx'>or</a> <a href='#SkRRect_outset_dy'>dy</a> <a href='#SkRRect_outset_dy'>cause</a> <a href='#SkRRect_outset_dy'>the</a> <a href='#SkRRect_outset_dy'>bounds</a> <a href='#SkRRect_outset_dy'>to</a> <a href='#SkRRect_outset_dy'>become</a> <a href='#SkRRect_outset_dy'>infinite</a>, <a href='#SkRRect_outset_dst'>dst</a> <a href='#SkRRect_outset_dst'>bounds</a> <a href='#SkRRect_outset_dst'>is</a> <a href='#SkRRect_outset_dst'>zeroed</a>.
+If <a href='#SkRRect_outset_dx'>dx</a> or <a href='#SkRRect_outset_dy'>dy</a> cause the bounds to become infinite, <a href='#SkRRect_outset_dst'>dst</a> bounds is zeroed.
### Parameters
<table> <tr> <td><a name='SkRRect_outset_dx'><code><strong>dx</strong></code></a></td>
- <td>subtracted from <a href='#SkRRect_rect'>rect()</a>.<a href='#SkRect_fLeft'>fLeft</a>, <a href='#SkRect_fLeft'>and</a> <a href='#SkRect_fLeft'>added</a> <a href='#SkRect_fLeft'>to</a> <a href='#SkRRect_rect'>rect()</a>.<a href='#SkRect_fRight'>fRight</a></td>
+ <td>subtracted from <a href='#SkRRect_rect'>rect()</a>.<a href='#SkRect_fLeft'>fLeft</a>, and added to <a href='#SkRRect_rect'>rect()</a>.<a href='#SkRect_fRight'>fRight</a></td>
</tr>
<tr> <td><a name='SkRRect_outset_dy'><code><strong>dy</strong></code></a></td>
- <td>subtracted from <a href='#SkRRect_rect'>rect()</a>.<a href='#SkRect_fTop'>fTop</a>, <a href='#SkRect_fTop'>and</a> <a href='#SkRect_fTop'>added</a> <a href='#SkRect_fTop'>to</a> <a href='#SkRRect_rect'>rect()</a>.<a href='#SkRect_fBottom'>fBottom</a></td>
+ <td>subtracted from <a href='#SkRRect_rect'>rect()</a>.<a href='#SkRect_fTop'>fTop</a>, and added to <a href='#SkRRect_rect'>rect()</a>.<a href='#SkRect_fBottom'>fBottom</a></td>
</tr>
<tr> <td><a name='SkRRect_outset_dst'><code><strong>dst</strong></code></a></td>
<td>outset bounds and radii</td>
@@ -1185,27 +1185,27 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-void outset(<a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>dx</a>, <a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>dy</a>)
+void outset(<a href='undocumented#SkScalar'>SkScalar</a> dx, <a href='undocumented#SkScalar'>SkScalar</a> dy)
</pre>
-Outsets bounds by <a href='#SkRRect_outset_2_dx'>dx</a> <a href='#SkRRect_outset_2_dx'>and</a> <a href='#SkRRect_outset_2_dy'>dy</a>, <a href='#SkRRect_outset_2_dy'>and</a> <a href='#SkRRect_outset_2_dy'>adjusts</a> <a href='#SkRRect_outset_2_dy'>radii</a> <a href='#SkRRect_outset_2_dy'>by</a> <a href='#SkRRect_outset_2_dx'>dx</a> <a href='#SkRRect_outset_2_dx'>and</a> <a href='#SkRRect_outset_2_dy'>dy</a>. <a href='#SkRRect_outset_2_dx'>dx</a> <a href='#SkRRect_outset_2_dx'>and</a> <a href='#SkRRect_outset_2_dy'>dy</a> <a href='#SkRRect_outset_2_dy'>may</a> <a href='#SkRRect_outset_2_dy'>be</a>
+Outsets bounds by <a href='#SkRRect_outset_2_dx'>dx</a> and <a href='#SkRRect_outset_2_dy'>dy</a>, and adjusts radii by <a href='#SkRRect_outset_2_dx'>dx</a> and <a href='#SkRRect_outset_2_dy'>dy</a>. <a href='#SkRRect_outset_2_dx'>dx</a> and <a href='#SkRRect_outset_2_dy'>dy</a> may be
positive, negative, or zero.
If either corner radius is zero, the corner has no curvature and is unchanged.
Otherwise, if adjusted radius becomes negative, pins radius to zero.
-If <a href='#SkRRect_outset_2_dx'>dx</a> <a href='#SkRRect_outset_2_dx'>exceeds</a> <a href='#SkRRect_outset_2_dx'>half</a> <a href='#SkRRect_outset_2_dx'>bounds</a> <a href='#SkRRect_outset_2_dx'>width</a>, <a href='#SkRRect_outset_2_dx'>bounds</a> <a href='#SkRRect_outset_2_dx'>left</a> <a href='#SkRRect_outset_2_dx'>and</a> <a href='#SkRRect_outset_2_dx'>right</a> <a href='#SkRRect_outset_2_dx'>are</a> <a href='#SkRRect_outset_2_dx'>set</a> <a href='#SkRRect_outset_2_dx'>to</a>
-bounds x-axis center. If <a href='#SkRRect_outset_2_dy'>dy</a> <a href='#SkRRect_outset_2_dy'>exceeds</a> <a href='#SkRRect_outset_2_dy'>half</a> <a href='#SkRRect_outset_2_dy'>bounds</a> <a href='#SkRRect_outset_2_dy'>height</a>, <a href='#SkRRect_outset_2_dy'>bounds</a> <a href='#SkRRect_outset_2_dy'>top</a> <a href='#SkRRect_outset_2_dy'>and</a>
+If <a href='#SkRRect_outset_2_dx'>dx</a> exceeds half bounds width, bounds left and right are set to
+bounds x-axis center. If <a href='#SkRRect_outset_2_dy'>dy</a> exceeds half bounds height, bounds top and
bottom are set to bounds y-axis center.
-If <a href='#SkRRect_outset_2_dx'>dx</a> <a href='#SkRRect_outset_2_dx'>or</a> <a href='#SkRRect_outset_2_dy'>dy</a> <a href='#SkRRect_outset_2_dy'>cause</a> <a href='#SkRRect_outset_2_dy'>the</a> <a href='#SkRRect_outset_2_dy'>bounds</a> <a href='#SkRRect_outset_2_dy'>to</a> <a href='#SkRRect_outset_2_dy'>become</a> <a href='#SkRRect_outset_2_dy'>infinite</a>, <a href='#SkRRect_outset_2_dy'>bounds</a> <a href='#SkRRect_outset_2_dy'>is</a> <a href='#SkRRect_outset_2_dy'>zeroed</a>.
+If <a href='#SkRRect_outset_2_dx'>dx</a> or <a href='#SkRRect_outset_2_dy'>dy</a> cause the bounds to become infinite, bounds is zeroed.
### Parameters
<table> <tr> <td><a name='SkRRect_outset_2_dx'><code><strong>dx</strong></code></a></td>
- <td>subtracted from <a href='#SkRRect_rect'>rect()</a>.<a href='#SkRect_fLeft'>fLeft</a>, <a href='#SkRect_fLeft'>and</a> <a href='#SkRect_fLeft'>added</a> <a href='#SkRect_fLeft'>to</a> <a href='#SkRRect_rect'>rect()</a>.<a href='#SkRect_fRight'>fRight</a></td>
+ <td>subtracted from <a href='#SkRRect_rect'>rect()</a>.<a href='#SkRect_fLeft'>fLeft</a>, and added to <a href='#SkRRect_rect'>rect()</a>.<a href='#SkRect_fRight'>fRight</a></td>
</tr>
<tr> <td><a name='SkRRect_outset_2_dy'><code><strong>dy</strong></code></a></td>
- <td>subtracted from <a href='#SkRRect_rect'>rect()</a>.<a href='#SkRect_fTop'>fTop</a>, <a href='#SkRect_fTop'>and</a> <a href='#SkRect_fTop'>added</a> <a href='#SkRect_fTop'>to</a> <a href='#SkRRect_rect'>rect()</a>.<a href='#SkRect_fBottom'>fBottom</a></td>
+ <td>subtracted from <a href='#SkRRect_rect'>rect()</a>.<a href='#SkRect_fTop'>fTop</a>, and added to <a href='#SkRRect_rect'>rect()</a>.<a href='#SkRect_fBottom'>fBottom</a></td>
</tr>
</table>
@@ -1222,18 +1222,18 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-void offset(<a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>dx</a>, <a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>dy</a>)
+void offset(<a href='undocumented#SkScalar'>SkScalar</a> dx, <a href='undocumented#SkScalar'>SkScalar</a> dy)
</pre>
-Translates <a href='SkRRect_Reference#SkRRect'>SkRRect</a> <a href='SkRRect_Reference#SkRRect'>by</a> (<a href='#SkRRect_offset_dx'>dx</a>, <a href='#SkRRect_offset_dy'>dy</a>).
+Translates <a href='SkRRect_Reference#SkRRect'>SkRRect</a> by (<a href='#SkRRect_offset_dx'>dx</a>, <a href='#SkRRect_offset_dy'>dy</a>).
### Parameters
<table> <tr> <td><a name='SkRRect_offset_dx'><code><strong>dx</strong></code></a></td>
- <td>offset added to <a href='#SkRRect_rect'>rect()</a>.<a href='#SkRect_fLeft'>fLeft</a> <a href='#SkRect_fLeft'>and</a> <a href='#SkRRect_rect'>rect()</a>.<a href='#SkRect_fRight'>fRight</a></td>
+ <td>offset added to <a href='#SkRRect_rect'>rect()</a>.<a href='#SkRect_fLeft'>fLeft</a> and <a href='#SkRRect_rect'>rect()</a>.<a href='#SkRect_fRight'>fRight</a></td>
</tr>
<tr> <td><a name='SkRRect_offset_dy'><code><strong>dy</strong></code></a></td>
- <td>offset added to <a href='#SkRRect_rect'>rect()</a>.<a href='#SkRect_fTop'>fTop</a> <a href='#SkRect_fTop'>and</a> <a href='#SkRRect_rect'>rect()</a>.<a href='#SkRect_fBottom'>fBottom</a></td>
+ <td>offset added to <a href='#SkRRect_rect'>rect()</a>.<a href='#SkRect_fTop'>fTop</a> and <a href='#SkRRect_rect'>rect()</a>.<a href='#SkRect_fBottom'>fBottom</a></td>
</tr>
</table>
@@ -1250,24 +1250,24 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-<a href='SkRRect_Reference#SkRRect'>SkRRect</a> <a href='#SkRRect_makeOffset'>makeOffset</a>(<a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>dx</a>, <a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>dy</a>) <a href='undocumented#SkScalar'>const</a>
+<a href='SkRRect_Reference#SkRRect'>SkRRect</a> <a href='#SkRRect_makeOffset'>makeOffset</a>(<a href='undocumented#SkScalar'>SkScalar</a> dx, <a href='undocumented#SkScalar'>SkScalar</a> dy) const
</pre>
-Returns <a href='SkRRect_Reference#SkRRect'>SkRRect</a> <a href='SkRRect_Reference#SkRRect'>translated</a> <a href='SkRRect_Reference#SkRRect'>by</a> (<a href='#SkRRect_makeOffset_dx'>dx</a>, <a href='#SkRRect_makeOffset_dy'>dy</a>).
+Returns <a href='SkRRect_Reference#SkRRect'>SkRRect</a> translated by (<a href='#SkRRect_makeOffset_dx'>dx</a>, <a href='#SkRRect_makeOffset_dy'>dy</a>).
### Parameters
<table> <tr> <td><a name='SkRRect_makeOffset_dx'><code><strong>dx</strong></code></a></td>
- <td>offset added to <a href='#SkRRect_rect'>rect()</a>.<a href='#SkRect_fLeft'>fLeft</a> <a href='#SkRect_fLeft'>and</a> <a href='#SkRRect_rect'>rect()</a>.<a href='#SkRect_fRight'>fRight</a></td>
+ <td>offset added to <a href='#SkRRect_rect'>rect()</a>.<a href='#SkRect_fLeft'>fLeft</a> and <a href='#SkRRect_rect'>rect()</a>.<a href='#SkRect_fRight'>fRight</a></td>
</tr>
<tr> <td><a name='SkRRect_makeOffset_dy'><code><strong>dy</strong></code></a></td>
- <td>offset added to <a href='#SkRRect_rect'>rect()</a>.<a href='#SkRect_fTop'>fTop</a> <a href='#SkRect_fTop'>and</a> <a href='#SkRRect_rect'>rect()</a>.<a href='#SkRect_fBottom'>fBottom</a></td>
+ <td>offset added to <a href='#SkRRect_rect'>rect()</a>.<a href='#SkRect_fTop'>fTop</a> and <a href='#SkRRect_rect'>rect()</a>.<a href='#SkRect_fBottom'>fBottom</a></td>
</tr>
</table>
### Return Value
-<a href='SkRRect_Reference#SkRRect'>SkRRect</a> <a href='SkRRect_Reference#SkRRect'>bounds</a> <a href='SkRRect_Reference#SkRRect'>offset</a> <a href='SkRRect_Reference#SkRRect'>by</a> (<a href='#SkRRect_makeOffset_dx'>dx</a>, <a href='#SkRRect_makeOffset_dy'>dy</a>), <a href='#SkRRect_makeOffset_dy'>with</a> <a href='#SkRRect_makeOffset_dy'>unchanged</a> <a href='#SkRRect_makeOffset_dy'>corner</a> <a href='#SkRRect_makeOffset_dy'>radii</a>
+<a href='SkRRect_Reference#SkRRect'>SkRRect</a> bounds offset by (<a href='#SkRRect_makeOffset_dx'>dx</a>, <a href='#SkRRect_makeOffset_dy'>dy</a>), with unchanged corner radii
### Example
@@ -1282,11 +1282,11 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-bool contains(const <a href='SkRect_Reference#SkRect'>SkRect</a>& <a href='SkRect_Reference#Rect'>rect</a>) <a href='SkRect_Reference#Rect'>const</a>
+bool contains(const <a href='SkRect_Reference#SkRect'>SkRect</a>& <a href='SkRect_Reference#Rect'>rect</a>) const
</pre>
-Returns true if <a href='#SkRRect_contains_rect'>rect</a> <a href='#SkRRect_contains_rect'>is</a> <a href='#SkRRect_contains_rect'>inside</a> <a href='#SkRRect_contains_rect'>the</a> <a href='#SkRRect_contains_rect'>bounds</a> <a href='#SkRRect_contains_rect'>and</a> <a href='#SkRRect_contains_rect'>corner</a> <a href='#SkRRect_contains_rect'>radii</a>, <a href='#SkRRect_contains_rect'>and</a> <a href='#SkRRect_contains_rect'>if</a>
-<a href='SkRRect_Reference#SkRRect'>SkRRect</a> <a href='SkRRect_Reference#SkRRect'>and</a> <a href='#SkRRect_contains_rect'>rect</a> <a href='#SkRRect_contains_rect'>are</a> <a href='#SkRRect_contains_rect'>not</a> <a href='#SkRRect_contains_rect'>empty</a>.
+Returns true if <a href='#SkRRect_contains_rect'>rect</a> is inside the bounds and corner radii, and if
+<a href='SkRRect_Reference#SkRRect'>SkRRect</a> and <a href='#SkRRect_contains_rect'>rect</a> are not empty.
### Parameters
@@ -1297,7 +1297,7 @@
### Return Value
-true if <a href='SkRRect_Reference#SkRRect'>SkRRect</a> <a href='SkRRect_Reference#SkRRect'>contains</a> <a href='#SkRRect_contains_rect'>rect</a>
+true if <a href='SkRRect_Reference#SkRRect'>SkRRect</a> contains <a href='#SkRRect_contains_rect'>rect</a>
### Example
@@ -1312,12 +1312,12 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-bool <a href='#SkRRect_isValid'>isValid</a>() <a href='#SkRRect_isValid'>const</a>
+bool <a href='#SkRRect_isValid'>isValid</a>() const
</pre>
Returns true if bounds and radii values are finite and describe a <a href='SkRRect_Reference#SkRRect'>SkRRect</a>
-<a href='SkRRect_Reference#SkRRect'>SkRRect</a>::<a href='#SkRRect_Type'>Type</a> <a href='#SkRRect_Type'>that</a> <a href='#SkRRect_Type'>matches</a> <a href='#SkRRect_getType'>getType</a>(). <a href='#SkRRect_getType'>All</a> <a href='SkRRect_Reference#SkRRect'>SkRRect</a> <a href='SkRRect_Reference#SkRRect'>methods</a> <a href='SkRRect_Reference#SkRRect'>construct</a> <a href='SkRRect_Reference#SkRRect'>valid</a> <a href='SkRRect_Reference#SkRRect'>types</a>,
-even if the input values are not valid. Invalid <a href='SkRRect_Reference#SkRRect'>SkRRect</a> <a href='undocumented#Data'>data</a> <a href='undocumented#Data'>can</a> <a href='undocumented#Data'>only</a>
+<a href='SkRRect_Reference#SkRRect'>SkRRect</a>::<a href='#SkRRect_Type'>Type</a> that matches <a href='#SkRRect_getType'>getType</a>(). All <a href='SkRRect_Reference#SkRRect'>SkRRect</a> methods construct valid types,
+even if the input values are not valid. Invalid <a href='SkRRect_Reference#SkRRect'>SkRRect</a> <a href='undocumented#Data'>data</a> can only
be generated by corrupting memory.
### Return Value
@@ -1342,7 +1342,7 @@
<td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a name='SkRRect_kSizeInMemory'><code>SkRRect::kSizeInMemory</code></a></td>
<td style='text-align: center; border: 2px solid #dddddd; padding: 8px; '>48</td>
<td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>
-Space required to write the contents of <a href='SkRRect_Reference#SkRRect'>SkRRect</a> <a href='SkRRect_Reference#SkRRect'>into</a> <a href='SkRRect_Reference#SkRRect'>a</a> <a href='SkRRect_Reference#SkRRect'>buffer</a>; <a href='SkRRect_Reference#SkRRect'>always</a> <a href='SkRRect_Reference#SkRRect'>a</a> <a href='SkRRect_Reference#SkRRect'>multiple</a> <a href='SkRRect_Reference#SkRRect'>of</a> <a href='SkRRect_Reference#SkRRect'>four</a>.
+Space required to write the contents of <a href='SkRRect_Reference#SkRRect'>SkRRect</a> into a buffer; always a multiple of four.
</td>
</tr>
</table>
@@ -1352,11 +1352,11 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-size_t <a href='#SkRRect_writeToMemory'>writeToMemory</a>(<a href='#SkRRect_writeToMemory'>void</a>* <a href='#SkRRect_writeToMemory'>buffer</a>) <a href='#SkRRect_writeToMemory'>const</a>
+size_t <a href='#SkRRect_writeToMemory'>writeToMemory</a>(void* buffer) const
</pre>
-Writes <a href='SkRRect_Reference#SkRRect'>SkRRect</a> <a href='SkRRect_Reference#SkRRect'>to</a> <a href='#SkRRect_writeToMemory_buffer'>buffer</a>. <a href='#SkRRect_writeToMemory_buffer'>Writes</a> <a href='#SkRRect_kSizeInMemory'>kSizeInMemory</a> <a href='#SkRRect_kSizeInMemory'>bytes</a>, <a href='#SkRRect_kSizeInMemory'>and</a> <a href='#SkRRect_kSizeInMemory'>returns</a>
-<a href='#SkRRect_kSizeInMemory'>kSizeInMemory</a>, <a href='#SkRRect_kSizeInMemory'>the</a> <a href='#SkRRect_kSizeInMemory'>number</a> <a href='#SkRRect_kSizeInMemory'>of</a> <a href='#SkRRect_kSizeInMemory'>bytes</a> <a href='#SkRRect_kSizeInMemory'>written</a>.
+Writes <a href='SkRRect_Reference#SkRRect'>SkRRect</a> to <a href='#SkRRect_writeToMemory_buffer'>buffer</a>. Writes <a href='#SkRRect_kSizeInMemory'>kSizeInMemory</a> bytes, and returns
+<a href='#SkRRect_kSizeInMemory'>kSizeInMemory</a>, the number of bytes written.
### Parameters
@@ -1382,11 +1382,11 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-size_t <a href='#SkRRect_readFromMemory'>readFromMemory</a>(<a href='#SkRRect_readFromMemory'>const</a> <a href='#SkRRect_readFromMemory'>void</a>* <a href='#SkRRect_readFromMemory'>buffer</a>, <a href='#SkRRect_readFromMemory'>size_t</a> <a href='#SkRRect_readFromMemory'>length</a>)
+size_t <a href='#SkRRect_readFromMemory'>readFromMemory</a>(const void* buffer, size_t length)
</pre>
-Reads <a href='SkRRect_Reference#SkRRect'>SkRRect</a> <a href='SkRRect_Reference#SkRRect'>from</a> <a href='#SkRRect_readFromMemory_buffer'>buffer</a>, <a href='#SkRRect_readFromMemory_buffer'>reading</a> <a href='#SkRRect_kSizeInMemory'>kSizeInMemory</a> <a href='#SkRRect_kSizeInMemory'>bytes</a>.
-Returns <a href='#SkRRect_kSizeInMemory'>kSizeInMemory</a>, <a href='#SkRRect_kSizeInMemory'>bytes</a> <a href='#SkRRect_kSizeInMemory'>read</a> <a href='#SkRRect_kSizeInMemory'>if</a> <a href='#SkRRect_readFromMemory_length'>length</a> <a href='#SkRRect_readFromMemory_length'>is</a> <a href='#SkRRect_readFromMemory_length'>at</a> <a href='#SkRRect_readFromMemory_length'>least</a> <a href='#SkRRect_kSizeInMemory'>kSizeInMemory</a>.
+Reads <a href='SkRRect_Reference#SkRRect'>SkRRect</a> from <a href='#SkRRect_readFromMemory_buffer'>buffer</a>, reading <a href='#SkRRect_kSizeInMemory'>kSizeInMemory</a> bytes.
+Returns <a href='#SkRRect_kSizeInMemory'>kSizeInMemory</a>, bytes read if <a href='#SkRRect_readFromMemory_length'>length</a> is at least <a href='#SkRRect_kSizeInMemory'>kSizeInMemory</a>.
Otherwise, returns zero.
### Parameters
@@ -1395,13 +1395,13 @@
<td>memory to read from</td>
</tr>
<tr> <td><a name='SkRRect_readFromMemory_length'><code><strong>length</strong></code></a></td>
- <td><a href='undocumented#Size'>size</a> <a href='undocumented#Size'>of</a> <a href='#SkRRect_readFromMemory_buffer'>buffer</a></td>
+ <td><a href='undocumented#Size'>size</a> of <a href='#SkRRect_readFromMemory_buffer'>buffer</a></td>
</tr>
</table>
### Return Value
-bytes read, or 0 if <a href='#SkRRect_readFromMemory_length'>length</a> <a href='#SkRRect_readFromMemory_length'>is</a> <a href='#SkRRect_readFromMemory_length'>less</a> <a href='#SkRRect_readFromMemory_length'>than</a> <a href='#SkRRect_kSizeInMemory'>kSizeInMemory</a>
+bytes read, or 0 if <a href='#SkRRect_readFromMemory_length'>length</a> is less than <a href='#SkRRect_kSizeInMemory'>kSizeInMemory</a>
### Example
@@ -1416,22 +1416,22 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-bool transform(const <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a>& <a href='SkMatrix_Reference#Matrix'>matrix</a>, <a href='SkRRect_Reference#SkRRect'>SkRRect</a>* <a href='SkRRect_Reference#SkRRect'>dst</a>) <a href='SkRRect_Reference#SkRRect'>const</a>
+bool transform(const <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a>& <a href='SkMatrix_Reference#Matrix'>matrix</a>, <a href='SkRRect_Reference#SkRRect'>SkRRect</a>* dst) const
</pre>
-Transforms by <a href='SkRRect_Reference#SkRRect'>SkRRect</a> <a href='SkRRect_Reference#SkRRect'>by</a> <a href='#SkRRect_transform_matrix'>matrix</a>, <a href='#SkRRect_transform_matrix'>storing</a> <a href='#SkRRect_transform_matrix'>result</a> <a href='#SkRRect_transform_matrix'>in</a> <a href='#SkRRect_transform_dst'>dst</a>.
-Returns true if <a href='SkRRect_Reference#SkRRect'>SkRRect</a> <a href='SkRRect_Reference#SkRRect'>transformed</a> <a href='SkRRect_Reference#SkRRect'>can</a> <a href='SkRRect_Reference#SkRRect'>be</a> <a href='SkRRect_Reference#SkRRect'>represented</a> <a href='SkRRect_Reference#SkRRect'>by</a> <a href='SkRRect_Reference#SkRRect'>another</a> <a href='SkRRect_Reference#SkRRect'>SkRRect</a>.
-Returns false if <a href='#SkRRect_transform_matrix'>matrix</a> <a href='#SkRRect_transform_matrix'>contains</a> <a href='#SkRRect_transform_matrix'>transformations</a> <a href='#SkRRect_transform_matrix'>other</a> <a href='#SkRRect_transform_matrix'>than</a> <a href='#SkRRect_transform_matrix'>scale</a> <a href='#SkRRect_transform_matrix'>and</a> <a href='#SkRRect_transform_matrix'>translate</a>.
+Transforms by <a href='SkRRect_Reference#SkRRect'>SkRRect</a> by <a href='#SkRRect_transform_matrix'>matrix</a>, storing result in <a href='#SkRRect_transform_dst'>dst</a>.
+Returns true if <a href='SkRRect_Reference#SkRRect'>SkRRect</a> transformed can be represented by another <a href='SkRRect_Reference#SkRRect'>SkRRect</a>.
+Returns false if <a href='#SkRRect_transform_matrix'>matrix</a> contains transformations other than scale and translate.
-Asserts in debug builds if <a href='SkRRect_Reference#SkRRect'>SkRRect</a> <a href='SkRRect_Reference#SkRRect'>equals</a> <a href='#SkRRect_transform_dst'>dst</a>.
+Asserts in debug builds if <a href='SkRRect_Reference#SkRRect'>SkRRect</a> equals <a href='#SkRRect_transform_dst'>dst</a>.
### Parameters
<table> <tr> <td><a name='SkRRect_transform_matrix'><code><strong>matrix</strong></code></a></td>
- <td><a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> <a href='SkMatrix_Reference#SkMatrix'>specifying</a> <a href='SkMatrix_Reference#SkMatrix'>the</a> <a href='SkMatrix_Reference#SkMatrix'>transform</a></td>
+ <td><a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> specifying the transform</td>
</tr>
<tr> <td><a name='SkRRect_transform_dst'><code><strong>dst</strong></code></a></td>
- <td><a href='SkRRect_Reference#SkRRect'>SkRRect</a> <a href='SkRRect_Reference#SkRRect'>to</a> <a href='SkRRect_Reference#SkRRect'>store</a> <a href='SkRRect_Reference#SkRRect'>the</a> <a href='SkRRect_Reference#SkRRect'>result</a></td>
+ <td><a href='SkRRect_Reference#SkRRect'>SkRRect</a> to store the result</td>
</tr>
</table>
@@ -1452,17 +1452,17 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-void <a href='#SkRRect_dump'>dump</a>(<a href='#SkRRect_dump'>bool</a> <a href='#SkRRect_dump'>asHex</a>) <a href='#SkRRect_dump'>const</a>
+void <a href='#SkRRect_dump'>dump</a>(bool asHex) const
</pre>
-Writes <a href='undocumented#Text'>text</a> <a href='undocumented#Text'>representation</a> <a href='undocumented#Text'>of</a> <a href='SkRRect_Reference#SkRRect'>SkRRect</a> <a href='SkRRect_Reference#SkRRect'>to</a> <a href='SkRRect_Reference#SkRRect'>standard</a> <a href='SkRRect_Reference#SkRRect'>output</a>.
-Set <a href='#SkRRect_dump_asHex'>asHex</a> <a href='#SkRRect_dump_asHex'>true</a> <a href='#SkRRect_dump_asHex'>to</a> <a href='#SkRRect_dump_asHex'>generate</a> <a href='#SkRRect_dump_asHex'>exact</a> <a href='#SkRRect_dump_asHex'>binary</a> <a href='#SkRRect_dump_asHex'>representations</a>
-of floating <a href='SkPoint_Reference#Point'>point</a> <a href='SkPoint_Reference#Point'>numbers</a>.
+Writes <a href='undocumented#Text'>text</a> representation of <a href='SkRRect_Reference#SkRRect'>SkRRect</a> to standard output.
+Set <a href='#SkRRect_dump_asHex'>asHex</a> true to generate exact binary representations
+of floating <a href='SkPoint_Reference#Point'>point</a> numbers.
### Parameters
<table> <tr> <td><a name='SkRRect_dump_asHex'><code><strong>asHex</strong></code></a></td>
- <td>true if <a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>values</a> <a href='undocumented#SkScalar'>are</a> <a href='undocumented#SkScalar'>written</a> <a href='undocumented#SkScalar'>as</a> <a href='undocumented#SkScalar'>hexadecimal</a></td>
+ <td>true if <a href='undocumented#SkScalar'>SkScalar</a> values are written as hexadecimal</td>
</tr>
</table>
@@ -1503,13 +1503,13 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-void <a href='#SkRRect_dump'>dump()</a> <a href='#SkRRect_dump'>const</a>
+void <a href='#SkRRect_dump'>dump()</a> const
</pre>
-Writes <a href='undocumented#Text'>text</a> <a href='undocumented#Text'>representation</a> <a href='undocumented#Text'>of</a> <a href='SkRRect_Reference#SkRRect'>SkRRect</a> <a href='SkRRect_Reference#SkRRect'>to</a> <a href='SkRRect_Reference#SkRRect'>standard</a> <a href='SkRRect_Reference#SkRRect'>output</a>. <a href='SkRRect_Reference#SkRRect'>The</a> <a href='SkRRect_Reference#SkRRect'>representation</a>
-may be directly compiled as C++ code. Floating <a href='SkPoint_Reference#Point'>point</a> <a href='SkPoint_Reference#Point'>values</a> <a href='SkPoint_Reference#Point'>are</a> <a href='SkPoint_Reference#Point'>written</a>
+Writes <a href='undocumented#Text'>text</a> representation of <a href='SkRRect_Reference#SkRRect'>SkRRect</a> to standard output. The representation
+may be directly compiled as C++ code. Floating <a href='SkPoint_Reference#Point'>point</a> values are written
with limited precision; it may not be possible to reconstruct original
-<a href='SkRRect_Reference#SkRRect'>SkRRect</a> <a href='SkRRect_Reference#SkRRect'>from</a> <a href='SkRRect_Reference#SkRRect'>output</a>.
+<a href='SkRRect_Reference#SkRRect'>SkRRect</a> from output.
### Example
@@ -1539,11 +1539,11 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-void <a href='#SkRRect_dumpHex'>dumpHex</a>() <a href='#SkRRect_dumpHex'>const</a>
+void <a href='#SkRRect_dumpHex'>dumpHex</a>() const
</pre>
-Writes <a href='undocumented#Text'>text</a> <a href='undocumented#Text'>representation</a> <a href='undocumented#Text'>of</a> <a href='SkRRect_Reference#SkRRect'>SkRRect</a> <a href='SkRRect_Reference#SkRRect'>to</a> <a href='SkRRect_Reference#SkRRect'>standard</a> <a href='SkRRect_Reference#SkRRect'>output</a>. <a href='SkRRect_Reference#SkRRect'>The</a> <a href='SkRRect_Reference#SkRRect'>representation</a>
-may be directly compiled as C++ code. Floating <a href='SkPoint_Reference#Point'>point</a> <a href='SkPoint_Reference#Point'>values</a> <a href='SkPoint_Reference#Point'>are</a> <a href='SkPoint_Reference#Point'>written</a>
+Writes <a href='undocumented#Text'>text</a> representation of <a href='SkRRect_Reference#SkRRect'>SkRRect</a> to standard output. The representation
+may be directly compiled as C++ code. Floating <a href='SkPoint_Reference#Point'>point</a> values are written
in hexadecimal to preserve their exact bit pattern. The output reconstructs the
original <a href='SkRRect_Reference#SkRRect'>SkRRect</a>.
diff --git a/site/user/api/SkRect_Reference.md b/site/user/api/SkRect_Reference.md
index d819a9d..fced84f 100644
--- a/site/user/api/SkRect_Reference.md
+++ b/site/user/api/SkRect_Reference.md
@@ -13,89 +13,89 @@
<a href='undocumented#SkScalar'>SkScalar</a> <a href='#SkRect_fRight'>fRight</a>;
<a href='undocumented#SkScalar'>SkScalar</a> <a href='#SkRect_fBottom'>fBottom</a>;
- <a href='#SkRect_fBottom'>static</a> <a href='#SkRect_fBottom'>constexpr</a> <a href='SkRect_Reference#SkRect'>SkRect</a> <a href='#SkRect_MakeEmpty'>MakeEmpty</a>();
- <a href='#SkRect_MakeEmpty'>static</a> <a href='#SkRect_MakeEmpty'>constexpr</a> <a href='SkRect_Reference#SkRect'>SkRect</a> <a href='#SkRect_MakeWH'>MakeWH</a>(<a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>w</a>, <a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>h</a>);
- <a href='undocumented#SkScalar'>static</a> <a href='SkRect_Reference#SkRect'>SkRect</a> <a href='#SkRect_MakeIWH'>MakeIWH</a>(<a href='#SkRect_MakeIWH'>int</a> <a href='#SkRect_MakeIWH'>w</a>, <a href='#SkRect_MakeIWH'>int</a> <a href='#SkRect_MakeIWH'>h</a>);
- <a href='#SkRect_MakeIWH'>static</a> <a href='#SkRect_MakeIWH'>constexpr</a> <a href='SkRect_Reference#SkRect'>SkRect</a> <a href='#SkRect_MakeSize'>MakeSize</a>(<a href='#SkRect_MakeSize'>const</a> <a href='undocumented#SkSize'>SkSize</a>& <a href='undocumented#Size'>size</a>);
- <a href='undocumented#Size'>static</a> <a href='undocumented#Size'>constexpr</a> <a href='SkRect_Reference#SkRect'>SkRect</a> <a href='#SkRect_MakeLTRB'>MakeLTRB</a>(<a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>l</a>, <a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>t</a>, <a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>r</a>,
- <a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>b</a>);
- <a href='undocumented#SkScalar'>static</a> <a href='undocumented#SkScalar'>constexpr</a> <a href='SkRect_Reference#SkRect'>SkRect</a> <a href='#SkRect_MakeXYWH'>MakeXYWH</a>(<a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>x</a>, <a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>y</a>, <a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>w</a>,
- <a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>h</a>);
- <a href='undocumented#SkScalar'>static</a> <a href='SkRect_Reference#SkRect'>SkRect</a> <a href='#SkRect_Make'>Make</a>(<a href='#SkRect_Make'>const</a> <a href='undocumented#SkISize'>SkISize</a>& <a href='undocumented#Size'>size</a>);
- <a href='undocumented#Size'>static</a> <a href='SkRect_Reference#SkRect'>SkRect</a> <a href='#SkRect_Make'>Make</a>(<a href='#SkRect_Make'>const</a> <a href='SkIRect_Reference#SkIRect'>SkIRect</a>& <a href='SkIRect_Reference#SkIRect'>irect</a>);
- <a href='SkIRect_Reference#SkIRect'>bool</a> <a href='#SkRect_isEmpty'>isEmpty</a>() <a href='#SkRect_isEmpty'>const</a>;
- <a href='#SkRect_isEmpty'>bool</a> <a href='#SkRect_isSorted'>isSorted</a>() <a href='#SkRect_isSorted'>const</a>;
- <a href='#SkRect_isSorted'>bool</a> <a href='#SkRect_isFinite'>isFinite</a>() <a href='#SkRect_isFinite'>const</a>;
- <a href='undocumented#SkScalar'>SkScalar</a> <a href='#SkRect_x'>x()</a> <a href='#SkRect_x'>const</a>;
- <a href='undocumented#SkScalar'>SkScalar</a> <a href='#SkRect_y'>y()</a> <a href='#SkRect_y'>const</a>;
- <a href='undocumented#SkScalar'>SkScalar</a> <a href='#SkRect_left'>left()</a> <a href='#SkRect_left'>const</a>;
- <a href='undocumented#SkScalar'>SkScalar</a> <a href='#SkRect_top'>top()</a> <a href='#SkRect_top'>const</a>;
- <a href='undocumented#SkScalar'>SkScalar</a> <a href='#SkRect_right'>right()</a> <a href='#SkRect_right'>const</a>;
- <a href='undocumented#SkScalar'>SkScalar</a> <a href='#SkRect_bottom'>bottom()</a> <a href='#SkRect_bottom'>const</a>;
- <a href='undocumented#SkScalar'>SkScalar</a> <a href='#SkRect_width'>width()</a> <a href='#SkRect_width'>const</a>;
- <a href='undocumented#SkScalar'>SkScalar</a> <a href='#SkRect_height'>height()</a> <a href='#SkRect_height'>const</a>;
- <a href='undocumented#SkScalar'>SkScalar</a> <a href='#SkRect_centerX'>centerX</a>() <a href='#SkRect_centerX'>const</a>;
- <a href='undocumented#SkScalar'>SkScalar</a> <a href='#SkRect_centerY'>centerY</a>() <a href='#SkRect_centerY'>const</a>;
- <a href='#SkRect_centerY'>friend</a> <a href='#SkRect_centerY'>bool</a> <a href='#SkRect_centerY'>operator</a>==(<a href='#SkRect_centerY'>const</a> <a href='SkRect_Reference#SkRect'>SkRect</a>& <a href='SkRect_Reference#SkRect'>a</a>, <a href='SkRect_Reference#SkRect'>const</a> <a href='SkRect_Reference#SkRect'>SkRect</a>& <a href='SkRect_Reference#SkRect'>b</a>);
- <a href='SkRect_Reference#SkRect'>friend</a> <a href='SkRect_Reference#SkRect'>bool</a> <a href='SkRect_Reference#SkRect'>operator</a>!=(<a href='SkRect_Reference#SkRect'>const</a> <a href='SkRect_Reference#SkRect'>SkRect</a>& <a href='SkRect_Reference#SkRect'>a</a>, <a href='SkRect_Reference#SkRect'>const</a> <a href='SkRect_Reference#SkRect'>SkRect</a>& <a href='SkRect_Reference#SkRect'>b</a>);
- <a href='SkRect_Reference#SkRect'>void</a> <a href='#SkRect_toQuad'>toQuad</a>(<a href='SkPoint_Reference#SkPoint'>SkPoint</a> <a href='SkPath_Reference#Quad'>quad</a>[4]) <a href='SkPath_Reference#Quad'>const</a>;
- <a href='SkPath_Reference#Quad'>void</a> <a href='#SkRect_setEmpty'>setEmpty</a>();
- <a href='#SkRect_setEmpty'>void</a> <a href='#SkRect_setEmpty'>set</a>(<a href='#SkRect_setEmpty'>const</a> <a href='SkIRect_Reference#SkIRect'>SkIRect</a>& <a href='SkIRect_Reference#SkIRect'>src</a>);
- <a href='SkIRect_Reference#SkIRect'>void</a> <a href='SkIRect_Reference#SkIRect'>set</a>(<a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>left</a>, <a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>top</a>, <a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>right</a>, <a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>bottom</a>);
- <a href='undocumented#SkScalar'>void</a> <a href='#SkRect_setLTRB'>setLTRB</a>(<a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>left</a>, <a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>top</a>, <a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>right</a>, <a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>bottom</a>);
- <a href='undocumented#SkScalar'>void</a> <a href='#SkRect_iset'>iset</a>(<a href='#SkRect_iset'>int</a> <a href='#SkRect_iset'>left</a>, <a href='#SkRect_iset'>int</a> <a href='#SkRect_iset'>top</a>, <a href='#SkRect_iset'>int</a> <a href='#SkRect_iset'>right</a>, <a href='#SkRect_iset'>int</a> <a href='#SkRect_iset'>bottom</a>);
- <a href='#SkRect_iset'>void</a> <a href='#SkRect_isetWH'>isetWH</a>(<a href='#SkRect_isetWH'>int</a> <a href='#SkRect_isetWH'>width</a>, <a href='#SkRect_isetWH'>int</a> <a href='#SkRect_isetWH'>height</a>);
- <a href='#SkRect_isetWH'>void</a> <a href='#SkRect_isetWH'>set</a>(<a href='#SkRect_isetWH'>const</a> <a href='SkPoint_Reference#SkPoint'>SkPoint</a> <a href='SkPoint_Reference#SkPoint'>pts</a>[], <a href='SkPoint_Reference#SkPoint'>int</a> <a href='SkPoint_Reference#SkPoint'>count</a>);
- <a href='SkPoint_Reference#SkPoint'>void</a> <a href='#SkRect_setBounds'>setBounds</a>(<a href='#SkRect_setBounds'>const</a> <a href='SkPoint_Reference#SkPoint'>SkPoint</a> <a href='SkPoint_Reference#SkPoint'>pts</a>[], <a href='SkPoint_Reference#SkPoint'>int</a> <a href='SkPoint_Reference#SkPoint'>count</a>);
- <a href='SkPoint_Reference#SkPoint'>bool</a> <a href='#SkRect_setBoundsCheck'>setBoundsCheck</a>(<a href='#SkRect_setBoundsCheck'>const</a> <a href='SkPoint_Reference#SkPoint'>SkPoint</a> <a href='SkPoint_Reference#SkPoint'>pts</a>[], <a href='SkPoint_Reference#SkPoint'>int</a> <a href='SkPoint_Reference#SkPoint'>count</a>);
- <a href='SkPoint_Reference#SkPoint'>void</a> <a href='#SkRect_setBoundsNoCheck'>setBoundsNoCheck</a>(<a href='#SkRect_setBoundsNoCheck'>const</a> <a href='SkPoint_Reference#SkPoint'>SkPoint</a> <a href='SkPoint_Reference#SkPoint'>pts</a>[], <a href='SkPoint_Reference#SkPoint'>int</a> <a href='SkPoint_Reference#SkPoint'>count</a>);
- <a href='SkPoint_Reference#SkPoint'>void</a> <a href='SkPoint_Reference#SkPoint'>set</a>(<a href='SkPoint_Reference#SkPoint'>const</a> <a href='SkPoint_Reference#SkPoint'>SkPoint</a>& <a href='SkPoint_Reference#SkPoint'>p0</a>, <a href='SkPoint_Reference#SkPoint'>const</a> <a href='SkPoint_Reference#SkPoint'>SkPoint</a>& <a href='SkPoint_Reference#SkPoint'>p1</a>);
- <a href='SkPoint_Reference#SkPoint'>void</a> <a href='#SkRect_setXYWH'>setXYWH</a>(<a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>x</a>, <a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>y</a>, <a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>width</a>, <a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>height</a>);
- <a href='undocumented#SkScalar'>void</a> <a href='#SkRect_setWH'>setWH</a>(<a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>width</a>, <a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>height</a>);
- <a href='SkRect_Reference#SkRect'>SkRect</a> <a href='#SkRect_makeOffset'>makeOffset</a>(<a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>dx</a>, <a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>dy</a>) <a href='undocumented#SkScalar'>const</a>;
- <a href='SkRect_Reference#SkRect'>SkRect</a> <a href='#SkRect_makeInset'>makeInset</a>(<a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>dx</a>, <a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>dy</a>) <a href='undocumented#SkScalar'>const</a>;
- <a href='SkRect_Reference#SkRect'>SkRect</a> <a href='#SkRect_makeOutset'>makeOutset</a>(<a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>dx</a>, <a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>dy</a>) <a href='undocumented#SkScalar'>const</a>;
- <a href='undocumented#SkScalar'>void</a> <a href='undocumented#SkScalar'>offset</a>(<a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>dx</a>, <a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>dy</a>);
- <a href='undocumented#SkScalar'>void</a> <a href='undocumented#SkScalar'>offset</a>(<a href='undocumented#SkScalar'>const</a> <a href='SkPoint_Reference#SkPoint'>SkPoint</a>& <a href='SkPoint_Reference#SkPoint'>delta</a>);
- <a href='SkPoint_Reference#SkPoint'>void</a> <a href='#SkRect_offsetTo'>offsetTo</a>(<a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>newX</a>, <a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>newY</a>);
- <a href='undocumented#SkScalar'>void</a> <a href='undocumented#SkScalar'>inset</a>(<a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>dx</a>, <a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>dy</a>);
- <a href='undocumented#SkScalar'>void</a> <a href='undocumented#SkScalar'>outset</a>(<a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>dx</a>, <a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>dy</a>);
- <a href='undocumented#SkScalar'>bool</a> <a href='undocumented#SkScalar'>intersect</a>(<a href='undocumented#SkScalar'>const</a> <a href='SkRect_Reference#SkRect'>SkRect</a>& <a href='SkRect_Reference#SkRect'>r</a>);
- <a href='SkRect_Reference#SkRect'>bool</a> <a href='SkRect_Reference#SkRect'>intersect</a>(<a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>left</a>, <a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>top</a>, <a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>right</a>, <a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>bottom</a>);
- <a href='undocumented#SkScalar'>bool</a> <a href='undocumented#SkScalar'>intersect</a>(<a href='undocumented#SkScalar'>const</a> <a href='SkRect_Reference#SkRect'>SkRect</a>& <a href='SkRect_Reference#SkRect'>a</a>, <a href='SkRect_Reference#SkRect'>const</a> <a href='SkRect_Reference#SkRect'>SkRect</a>& <a href='SkRect_Reference#SkRect'>b</a>);
- <a href='SkRect_Reference#SkRect'>bool</a> <a href='SkRect_Reference#SkRect'>intersects</a>(<a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>left</a>, <a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>top</a>, <a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>right</a>, <a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>bottom</a>) <a href='undocumented#SkScalar'>const</a>;
- <a href='undocumented#SkScalar'>bool</a> <a href='undocumented#SkScalar'>intersects</a>(<a href='undocumented#SkScalar'>const</a> <a href='SkRect_Reference#SkRect'>SkRect</a>& <a href='SkRect_Reference#SkRect'>r</a>) <a href='SkRect_Reference#SkRect'>const</a>;
- <a href='SkRect_Reference#SkRect'>static</a> <a href='SkRect_Reference#SkRect'>bool</a> <a href='#SkRect_Intersects'>Intersects</a>(<a href='#SkRect_Intersects'>const</a> <a href='SkRect_Reference#SkRect'>SkRect</a>& <a href='SkRect_Reference#SkRect'>a</a>, <a href='SkRect_Reference#SkRect'>const</a> <a href='SkRect_Reference#SkRect'>SkRect</a>& <a href='SkRect_Reference#SkRect'>b</a>);
- <a href='SkRect_Reference#SkRect'>void</a> <a href='SkRect_Reference#SkRect'>join</a>(<a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>left</a>, <a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>top</a>, <a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>right</a>, <a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>bottom</a>);
- <a href='undocumented#SkScalar'>void</a> <a href='undocumented#SkScalar'>join</a>(<a href='undocumented#SkScalar'>const</a> <a href='SkRect_Reference#SkRect'>SkRect</a>& <a href='SkRect_Reference#SkRect'>r</a>);
- <a href='SkRect_Reference#SkRect'>void</a> <a href='#SkRect_joinNonEmptyArg'>joinNonEmptyArg</a>(<a href='#SkRect_joinNonEmptyArg'>const</a> <a href='SkRect_Reference#SkRect'>SkRect</a>& <a href='SkRect_Reference#SkRect'>r</a>);
- <a href='SkRect_Reference#SkRect'>void</a> <a href='#SkRect_joinPossiblyEmptyRect'>joinPossiblyEmptyRect</a>(<a href='#SkRect_joinPossiblyEmptyRect'>const</a> <a href='SkRect_Reference#SkRect'>SkRect</a>& <a href='SkRect_Reference#SkRect'>r</a>);
- <a href='SkRect_Reference#SkRect'>bool</a> <a href='SkRect_Reference#SkRect'>contains</a>(<a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>x</a>, <a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>y</a>) <a href='undocumented#SkScalar'>const</a>;
- <a href='undocumented#SkScalar'>bool</a> <a href='undocumented#SkScalar'>contains</a>(<a href='undocumented#SkScalar'>const</a> <a href='SkRect_Reference#SkRect'>SkRect</a>& <a href='SkRect_Reference#SkRect'>r</a>) <a href='SkRect_Reference#SkRect'>const</a>;
- <a href='SkRect_Reference#SkRect'>bool</a> <a href='SkRect_Reference#SkRect'>contains</a>(<a href='SkRect_Reference#SkRect'>const</a> <a href='SkIRect_Reference#SkIRect'>SkIRect</a>& <a href='SkIRect_Reference#SkIRect'>r</a>) <a href='SkIRect_Reference#SkIRect'>const</a>;
- <a href='SkIRect_Reference#SkIRect'>void</a> <a href='SkIRect_Reference#SkIRect'>round</a>(<a href='SkIRect_Reference#SkIRect'>SkIRect</a>* <a href='SkIRect_Reference#SkIRect'>dst</a>) <a href='SkIRect_Reference#SkIRect'>const</a>;
- <a href='SkIRect_Reference#SkIRect'>void</a> <a href='#SkRect_roundOut'>roundOut</a>(<a href='SkIRect_Reference#SkIRect'>SkIRect</a>* <a href='SkIRect_Reference#SkIRect'>dst</a>) <a href='SkIRect_Reference#SkIRect'>const</a>;
- <a href='SkIRect_Reference#SkIRect'>void</a> <a href='#SkRect_roundOut'>roundOut</a>(<a href='SkRect_Reference#SkRect'>SkRect</a>* <a href='SkRect_Reference#SkRect'>dst</a>) <a href='SkRect_Reference#SkRect'>const</a>;
- <a href='SkRect_Reference#SkRect'>void</a> <a href='#SkRect_roundIn'>roundIn</a>(<a href='SkIRect_Reference#SkIRect'>SkIRect</a>* <a href='SkIRect_Reference#SkIRect'>dst</a>) <a href='SkIRect_Reference#SkIRect'>const</a>;
- <a href='SkIRect_Reference#SkIRect'>SkIRect</a> <a href='#SkRect_round'>round()</a> <a href='#SkRect_round'>const</a>;
- <a href='SkIRect_Reference#SkIRect'>SkIRect</a> <a href='#SkRect_roundOut'>roundOut</a>() <a href='#SkRect_roundOut'>const</a>;
- <a href='#SkRect_roundOut'>void</a> <a href='#SkRect_sort'>sort()</a>;
- <a href='SkRect_Reference#SkRect'>SkRect</a> <a href='#SkRect_makeSorted'>makeSorted</a>() <a href='#SkRect_makeSorted'>const</a>;
- <a href='#SkRect_makeSorted'>const</a> <a href='undocumented#SkScalar'>SkScalar</a>* <a href='#SkRect_asScalars'>asScalars</a>() <a href='#SkRect_asScalars'>const</a>;
- <a href='#SkRect_asScalars'>void</a> <a href='#SkRect_dump'>dump</a>(<a href='#SkRect_dump'>bool</a> <a href='#SkRect_dump'>asHex</a>) <a href='#SkRect_dump'>const</a>;
- <a href='#SkRect_dump'>void</a> <a href='#SkRect_dump'>dump()</a> <a href='#SkRect_dump'>const</a>;
- <a href='#SkRect_dump'>void</a> <a href='#SkRect_dumpHex'>dumpHex</a>() <a href='#SkRect_dumpHex'>const</a>;
+ static constexpr <a href='SkRect_Reference#SkRect'>SkRect</a> <a href='#SkRect_MakeEmpty'>MakeEmpty</a>();
+ static constexpr <a href='SkRect_Reference#SkRect'>SkRect</a> <a href='#SkRect_MakeWH'>MakeWH</a>(<a href='undocumented#SkScalar'>SkScalar</a> w, <a href='undocumented#SkScalar'>SkScalar</a> h);
+ static <a href='SkRect_Reference#SkRect'>SkRect</a> <a href='#SkRect_MakeIWH'>MakeIWH</a>(int w, int h);
+ static constexpr <a href='SkRect_Reference#SkRect'>SkRect</a> <a href='#SkRect_MakeSize'>MakeSize</a>(const <a href='undocumented#SkSize'>SkSize</a>& <a href='undocumented#Size'>size</a>);
+ static constexpr <a href='SkRect_Reference#SkRect'>SkRect</a> <a href='#SkRect_MakeLTRB'>MakeLTRB</a>(<a href='undocumented#SkScalar'>SkScalar</a> l, <a href='undocumented#SkScalar'>SkScalar</a> t, <a href='undocumented#SkScalar'>SkScalar</a> r,
+ <a href='undocumented#SkScalar'>SkScalar</a> b);
+ static constexpr <a href='SkRect_Reference#SkRect'>SkRect</a> <a href='#SkRect_MakeXYWH'>MakeXYWH</a>(<a href='undocumented#SkScalar'>SkScalar</a> x, <a href='undocumented#SkScalar'>SkScalar</a> y, <a href='undocumented#SkScalar'>SkScalar</a> w,
+ <a href='undocumented#SkScalar'>SkScalar</a> h);
+ static <a href='SkRect_Reference#SkRect'>SkRect</a> <a href='#SkRect_Make'>Make</a>(const <a href='undocumented#SkISize'>SkISize</a>& <a href='undocumented#Size'>size</a>);
+ static <a href='SkRect_Reference#SkRect'>SkRect</a> <a href='#SkRect_Make'>Make</a>(const <a href='SkIRect_Reference#SkIRect'>SkIRect</a>& irect);
+ bool <a href='#SkRect_isEmpty'>isEmpty</a>() const;
+ bool <a href='#SkRect_isSorted'>isSorted</a>() const;
+ bool <a href='#SkRect_isFinite'>isFinite</a>() const;
+ <a href='undocumented#SkScalar'>SkScalar</a> <a href='#SkRect_x'>x()</a> const;
+ <a href='undocumented#SkScalar'>SkScalar</a> <a href='#SkRect_y'>y()</a> const;
+ <a href='undocumented#SkScalar'>SkScalar</a> <a href='#SkRect_left'>left()</a> const;
+ <a href='undocumented#SkScalar'>SkScalar</a> <a href='#SkRect_top'>top()</a> const;
+ <a href='undocumented#SkScalar'>SkScalar</a> <a href='#SkRect_right'>right()</a> const;
+ <a href='undocumented#SkScalar'>SkScalar</a> <a href='#SkRect_bottom'>bottom()</a> const;
+ <a href='undocumented#SkScalar'>SkScalar</a> <a href='#SkRect_width'>width()</a> const;
+ <a href='undocumented#SkScalar'>SkScalar</a> <a href='#SkRect_height'>height()</a> const;
+ <a href='undocumented#SkScalar'>SkScalar</a> <a href='#SkRect_centerX'>centerX</a>() const;
+ <a href='undocumented#SkScalar'>SkScalar</a> <a href='#SkRect_centerY'>centerY</a>() const;
+ friend bool operator==(const <a href='SkRect_Reference#SkRect'>SkRect</a>& a, const <a href='SkRect_Reference#SkRect'>SkRect</a>& b);
+ friend bool operator!=(const <a href='SkRect_Reference#SkRect'>SkRect</a>& a, const <a href='SkRect_Reference#SkRect'>SkRect</a>& b);
+ void <a href='#SkRect_toQuad'>toQuad</a>(<a href='SkPoint_Reference#SkPoint'>SkPoint</a> <a href='SkPath_Reference#Quad'>quad</a>[4]) const;
+ void <a href='#SkRect_setEmpty'>setEmpty</a>();
+ void set(const <a href='SkIRect_Reference#SkIRect'>SkIRect</a>& src);
+ void set(<a href='undocumented#SkScalar'>SkScalar</a> left, <a href='undocumented#SkScalar'>SkScalar</a> top, <a href='undocumented#SkScalar'>SkScalar</a> right, <a href='undocumented#SkScalar'>SkScalar</a> bottom);
+ void <a href='#SkRect_setLTRB'>setLTRB</a>(<a href='undocumented#SkScalar'>SkScalar</a> left, <a href='undocumented#SkScalar'>SkScalar</a> top, <a href='undocumented#SkScalar'>SkScalar</a> right, <a href='undocumented#SkScalar'>SkScalar</a> bottom);
+ void <a href='#SkRect_iset'>iset</a>(int left, int top, int right, int bottom);
+ void <a href='#SkRect_isetWH'>isetWH</a>(int width, int height);
+ void set(const <a href='SkPoint_Reference#SkPoint'>SkPoint</a> pts[], int count);
+ void <a href='#SkRect_setBounds'>setBounds</a>(const <a href='SkPoint_Reference#SkPoint'>SkPoint</a> pts[], int count);
+ bool <a href='#SkRect_setBoundsCheck'>setBoundsCheck</a>(const <a href='SkPoint_Reference#SkPoint'>SkPoint</a> pts[], int count);
+ void <a href='#SkRect_setBoundsNoCheck'>setBoundsNoCheck</a>(const <a href='SkPoint_Reference#SkPoint'>SkPoint</a> pts[], int count);
+ void set(const <a href='SkPoint_Reference#SkPoint'>SkPoint</a>& p0, const <a href='SkPoint_Reference#SkPoint'>SkPoint</a>& p1);
+ void <a href='#SkRect_setXYWH'>setXYWH</a>(<a href='undocumented#SkScalar'>SkScalar</a> x, <a href='undocumented#SkScalar'>SkScalar</a> y, <a href='undocumented#SkScalar'>SkScalar</a> width, <a href='undocumented#SkScalar'>SkScalar</a> height);
+ void <a href='#SkRect_setWH'>setWH</a>(<a href='undocumented#SkScalar'>SkScalar</a> width, <a href='undocumented#SkScalar'>SkScalar</a> height);
+ <a href='SkRect_Reference#SkRect'>SkRect</a> <a href='#SkRect_makeOffset'>makeOffset</a>(<a href='undocumented#SkScalar'>SkScalar</a> dx, <a href='undocumented#SkScalar'>SkScalar</a> dy) const;
+ <a href='SkRect_Reference#SkRect'>SkRect</a> <a href='#SkRect_makeInset'>makeInset</a>(<a href='undocumented#SkScalar'>SkScalar</a> dx, <a href='undocumented#SkScalar'>SkScalar</a> dy) const;
+ <a href='SkRect_Reference#SkRect'>SkRect</a> <a href='#SkRect_makeOutset'>makeOutset</a>(<a href='undocumented#SkScalar'>SkScalar</a> dx, <a href='undocumented#SkScalar'>SkScalar</a> dy) const;
+ void offset(<a href='undocumented#SkScalar'>SkScalar</a> dx, <a href='undocumented#SkScalar'>SkScalar</a> dy);
+ void offset(const <a href='SkPoint_Reference#SkPoint'>SkPoint</a>& delta);
+ void <a href='#SkRect_offsetTo'>offsetTo</a>(<a href='undocumented#SkScalar'>SkScalar</a> newX, <a href='undocumented#SkScalar'>SkScalar</a> newY);
+ void inset(<a href='undocumented#SkScalar'>SkScalar</a> dx, <a href='undocumented#SkScalar'>SkScalar</a> dy);
+ void outset(<a href='undocumented#SkScalar'>SkScalar</a> dx, <a href='undocumented#SkScalar'>SkScalar</a> dy);
+ bool intersect(const <a href='SkRect_Reference#SkRect'>SkRect</a>& r);
+ bool intersect(<a href='undocumented#SkScalar'>SkScalar</a> left, <a href='undocumented#SkScalar'>SkScalar</a> top, <a href='undocumented#SkScalar'>SkScalar</a> right, <a href='undocumented#SkScalar'>SkScalar</a> bottom);
+ bool intersect(const <a href='SkRect_Reference#SkRect'>SkRect</a>& a, const <a href='SkRect_Reference#SkRect'>SkRect</a>& b);
+ bool intersects(<a href='undocumented#SkScalar'>SkScalar</a> left, <a href='undocumented#SkScalar'>SkScalar</a> top, <a href='undocumented#SkScalar'>SkScalar</a> right, <a href='undocumented#SkScalar'>SkScalar</a> bottom) const;
+ bool intersects(const <a href='SkRect_Reference#SkRect'>SkRect</a>& r) const;
+ static bool <a href='#SkRect_Intersects'>Intersects</a>(const <a href='SkRect_Reference#SkRect'>SkRect</a>& a, const <a href='SkRect_Reference#SkRect'>SkRect</a>& b);
+ void join(<a href='undocumented#SkScalar'>SkScalar</a> left, <a href='undocumented#SkScalar'>SkScalar</a> top, <a href='undocumented#SkScalar'>SkScalar</a> right, <a href='undocumented#SkScalar'>SkScalar</a> bottom);
+ void join(const <a href='SkRect_Reference#SkRect'>SkRect</a>& r);
+ void <a href='#SkRect_joinNonEmptyArg'>joinNonEmptyArg</a>(const <a href='SkRect_Reference#SkRect'>SkRect</a>& r);
+ void <a href='#SkRect_joinPossiblyEmptyRect'>joinPossiblyEmptyRect</a>(const <a href='SkRect_Reference#SkRect'>SkRect</a>& r);
+ bool contains(<a href='undocumented#SkScalar'>SkScalar</a> x, <a href='undocumented#SkScalar'>SkScalar</a> y) const;
+ bool contains(const <a href='SkRect_Reference#SkRect'>SkRect</a>& r) const;
+ bool contains(const <a href='SkIRect_Reference#SkIRect'>SkIRect</a>& r) const;
+ void round(<a href='SkIRect_Reference#SkIRect'>SkIRect</a>* dst) const;
+ void <a href='#SkRect_roundOut'>roundOut</a>(<a href='SkIRect_Reference#SkIRect'>SkIRect</a>* dst) const;
+ void <a href='#SkRect_roundOut'>roundOut</a>(<a href='SkRect_Reference#SkRect'>SkRect</a>* dst) const;
+ void <a href='#SkRect_roundIn'>roundIn</a>(<a href='SkIRect_Reference#SkIRect'>SkIRect</a>* dst) const;
+ <a href='SkIRect_Reference#SkIRect'>SkIRect</a> <a href='#SkRect_round'>round()</a> const;
+ <a href='SkIRect_Reference#SkIRect'>SkIRect</a> <a href='#SkRect_roundOut'>roundOut</a>() const;
+ void <a href='#SkRect_sort'>sort()</a>;
+ <a href='SkRect_Reference#SkRect'>SkRect</a> <a href='#SkRect_makeSorted'>makeSorted</a>() const;
+ const <a href='undocumented#SkScalar'>SkScalar</a>* <a href='#SkRect_asScalars'>asScalars</a>() const;
+ void <a href='#SkRect_dump'>dump</a>(bool asHex) const;
+ void <a href='#SkRect_dump'>dump()</a> const;
+ void <a href='#SkRect_dumpHex'>dumpHex</a>() const;
};
</pre>
-<a href='SkRect_Reference#SkRect'>SkRect</a> <a href='SkRect_Reference#SkRect'>holds</a> <a href='SkRect_Reference#SkRect'>four</a> <a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>coordinates</a> <a href='undocumented#SkScalar'>describing</a> <a href='undocumented#SkScalar'>the</a> <a href='undocumented#SkScalar'>upper</a> <a href='undocumented#SkScalar'>and</a>
-<a href='undocumented#SkScalar'>lower</a> <a href='undocumented#SkScalar'>bounds</a> <a href='undocumented#SkScalar'>of</a> <a href='undocumented#SkScalar'>a</a> <a href='undocumented#SkScalar'>rectangle</a>. <a href='SkRect_Reference#SkRect'>SkRect</a> <a href='SkRect_Reference#SkRect'>may</a> <a href='SkRect_Reference#SkRect'>be</a> <a href='SkRect_Reference#SkRect'>created</a> <a href='SkRect_Reference#SkRect'>from</a> <a href='SkRect_Reference#SkRect'>outer</a> <a href='SkRect_Reference#SkRect'>bounds</a> <a href='SkRect_Reference#SkRect'>or</a>
-<a href='SkRect_Reference#SkRect'>from</a> <a href='SkRect_Reference#SkRect'>position</a>, <a href='SkRect_Reference#SkRect'>width</a>, <a href='SkRect_Reference#SkRect'>and</a> <a href='SkRect_Reference#SkRect'>height</a>. <a href='SkRect_Reference#SkRect'>SkRect</a> <a href='SkRect_Reference#SkRect'>describes</a> <a href='SkRect_Reference#SkRect'>an</a> <a href='SkRect_Reference#SkRect'>area</a>; <a href='SkRect_Reference#SkRect'>if</a> <a href='SkRect_Reference#SkRect'>its</a> <a href='SkRect_Reference#SkRect'>right</a>
-<a href='SkRect_Reference#SkRect'>is</a> <a href='SkRect_Reference#SkRect'>less</a> <a href='SkRect_Reference#SkRect'>than</a> <a href='SkRect_Reference#SkRect'>or</a> <a href='SkRect_Reference#SkRect'>equal</a> <a href='SkRect_Reference#SkRect'>to</a> <a href='SkRect_Reference#SkRect'>its</a> <a href='SkRect_Reference#SkRect'>left</a>, <a href='SkRect_Reference#SkRect'>or</a> <a href='SkRect_Reference#SkRect'>if</a> <a href='SkRect_Reference#SkRect'>its</a> <a href='SkRect_Reference#SkRect'>bottom</a> <a href='SkRect_Reference#SkRect'>is</a> <a href='SkRect_Reference#SkRect'>less</a> <a href='SkRect_Reference#SkRect'>than</a> <a href='SkRect_Reference#SkRect'>or</a> <a href='SkRect_Reference#SkRect'>equal</a> <a href='SkRect_Reference#SkRect'>to</a>
-<a href='SkRect_Reference#SkRect'>its</a> <a href='SkRect_Reference#SkRect'>top</a>, <a href='SkRect_Reference#SkRect'>it</a> <a href='SkRect_Reference#SkRect'>is</a> <a href='SkRect_Reference#SkRect'>considered</a> <a href='SkRect_Reference#SkRect'>empty</a>.
+<a href='SkRect_Reference#SkRect'>SkRect</a> holds four <a href='undocumented#SkScalar'>SkScalar</a> coordinates describing the upper and
+lower bounds of a rectangle. <a href='SkRect_Reference#SkRect'>SkRect</a> may be created from outer bounds or
+from position, width, and height. <a href='SkRect_Reference#SkRect'>SkRect</a> describes an area; if its right
+is less than or equal to its left, or if its bottom is less than or equal to
+its top, it is considered empty.
-<a href='SkRect_Reference#SkRect'>SkRect</a> <a href='SkRect_Reference#SkRect'>can</a> <a href='SkRect_Reference#SkRect'>be</a> <a href='SkRect_Reference#SkRect'>constructed</a> <a href='SkRect_Reference#SkRect'>from</a> <a href='SkRect_Reference#SkRect'>int</a> <a href='SkRect_Reference#SkRect'>values</a> <a href='SkRect_Reference#SkRect'>to</a> <a href='SkRect_Reference#SkRect'>avoid</a> <a href='SkRect_Reference#SkRect'>compiler</a> <a href='SkRect_Reference#SkRect'>warnings</a> <a href='SkRect_Reference#SkRect'>that</a>
-<a href='SkRect_Reference#SkRect'>integer</a> <a href='SkRect_Reference#SkRect'>input</a> <a href='SkRect_Reference#SkRect'>cannot</a> <a href='SkRect_Reference#SkRect'>convert</a> <a href='SkRect_Reference#SkRect'>to</a> <a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>without</a> <a href='undocumented#SkScalar'>loss</a> <a href='undocumented#SkScalar'>of</a> <a href='undocumented#SkScalar'>precision</a>.<table style='border-collapse: collapse; width: 62.5em'>
+<a href='SkRect_Reference#SkRect'>SkRect</a> can be constructed from int values to avoid compiler warnings that
+integer input cannot convert to <a href='undocumented#SkScalar'>SkScalar</a> without loss of precision.<table style='border-collapse: collapse; width: 62.5em'>
<tr><th style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>Type</th>
<th style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>Member</th>
@@ -105,7 +105,7 @@
<td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a name='SkRect_fLeft'><code>fLeft</code></a></td>
<td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>
May contain any value, including infinities and NaN. The smaller of the
-horizontal values when sorted. When equal to or greater than <a href='#SkRect_fRight'>fRight</a>, <a href='SkRect_Reference#Rect'>Rect</a> <a href='SkRect_Reference#Rect'>is</a> <a href='SkRect_Reference#Rect'>empty</a>.
+horizontal values when sorted. When equal to or greater than <a href='#SkRect_fRight'>fRight</a>, <a href='SkRect_Reference#Rect'>Rect</a> is empty.
</td>
</tr>
<tr>
@@ -113,7 +113,7 @@
<td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a name='SkRect_fTop'><code>fTop</code></a></td>
<td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>
May contain any value, including infinities and NaN. The smaller of the
-vertical values when sorted. When equal to or greater than <a href='#SkRect_fBottom'>fBottom</a>, <a href='SkRect_Reference#Rect'>Rect</a> <a href='SkRect_Reference#Rect'>is</a> <a href='SkRect_Reference#Rect'>empty</a>.
+vertical values when sorted. When equal to or greater than <a href='#SkRect_fBottom'>fBottom</a>, <a href='SkRect_Reference#Rect'>Rect</a> is empty.
</td>
</tr>
<tr style='background-color: #f0f0f0; '>
@@ -121,7 +121,7 @@
<td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a name='SkRect_fRight'><code>fRight</code></a></td>
<td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>
May contain any value, including infinities and NaN. The larger of the
-horizontal values when sorted. When equal to or less than <a href='#SkRect_fLeft'>fLeft</a>, <a href='SkRect_Reference#Rect'>Rect</a> <a href='SkRect_Reference#Rect'>is</a> <a href='SkRect_Reference#Rect'>empty</a>.
+horizontal values when sorted. When equal to or less than <a href='#SkRect_fLeft'>fLeft</a>, <a href='SkRect_Reference#Rect'>Rect</a> is empty.
</td>
</tr>
<tr>
@@ -129,7 +129,7 @@
<td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a name='SkRect_fBottom'><code>fBottom</code></a></td>
<td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>
May contain any value, including infinities and NaN. The larger of the
-vertical values when sorted. When equal to or less than <a href='#SkRect_fTop'>fTop</a>, <a href='SkRect_Reference#Rect'>Rect</a> <a href='SkRect_Reference#Rect'>is</a> <a href='SkRect_Reference#Rect'>empty</a>.
+vertical values when sorted. When equal to or less than <a href='#SkRect_fTop'>fTop</a>, <a href='SkRect_Reference#Rect'>Rect</a> is empty.
</td>
</tr>
</table>
@@ -142,7 +142,7 @@
static constexpr <a href='SkRect_Reference#SkRect'>SkRect</a> <a href='#SkRect_MakeEmpty'>MakeEmpty</a>()
</pre>
-Returns constructed <a href='SkRect_Reference#SkRect'>SkRect</a> <a href='SkRect_Reference#SkRect'>set</a> <a href='SkRect_Reference#SkRect'>to</a> (0, 0, 0, 0).
+Returns constructed <a href='SkRect_Reference#SkRect'>SkRect</a> set to (0, 0, 0, 0).
Many other rectangles are empty; if left is equal to or greater than right,
or if top is equal to or greater than bottom. Setting all members to zero
is a convenience, but does not designate a special empty rectangle.
@@ -175,22 +175,22 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-static constexpr <a href='SkRect_Reference#SkRect'>SkRect</a> <a href='#SkRect_MakeWH'>MakeWH</a>(<a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>w</a>, <a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>h</a>)
+static constexpr <a href='SkRect_Reference#SkRect'>SkRect</a> <a href='#SkRect_MakeWH'>MakeWH</a>(<a href='undocumented#SkScalar'>SkScalar</a> w, <a href='undocumented#SkScalar'>SkScalar</a> h)
</pre>
-Returns constructed <a href='SkRect_Reference#SkRect'>SkRect</a> <a href='SkRect_Reference#SkRect'>set</a> <a href='SkRect_Reference#SkRect'>to</a> <a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>values</a> (0, 0, <a href='#SkRect_MakeWH_w'>w</a>, <a href='#SkRect_MakeWH_h'>h</a>). <a href='#SkRect_MakeWH_h'>Does</a> <a href='#SkRect_MakeWH_h'>not</a>
-validate input; <a href='#SkRect_MakeWH_w'>w</a> <a href='#SkRect_MakeWH_w'>or</a> <a href='#SkRect_MakeWH_h'>h</a> <a href='#SkRect_MakeWH_h'>may</a> <a href='#SkRect_MakeWH_h'>be</a> <a href='#SkRect_MakeWH_h'>negative</a>.
+Returns constructed <a href='SkRect_Reference#SkRect'>SkRect</a> set to <a href='undocumented#SkScalar'>SkScalar</a> values (0, 0, <a href='#SkRect_MakeWH_w'>w</a>, <a href='#SkRect_MakeWH_h'>h</a>). Does not
+validate input; <a href='#SkRect_MakeWH_w'>w</a> or <a href='#SkRect_MakeWH_h'>h</a> may be negative.
-Passing integer values may generate a compiler warning since <a href='SkRect_Reference#SkRect'>SkRect</a> <a href='SkRect_Reference#SkRect'>cannot</a>
-represent 32-bit integers exactly. Use <a href='SkIRect_Reference#SkIRect'>SkIRect</a> <a href='SkIRect_Reference#SkIRect'>for</a> <a href='SkIRect_Reference#SkIRect'>an</a> <a href='SkIRect_Reference#SkIRect'>exact</a> <a href='SkIRect_Reference#SkIRect'>integer</a> <a href='SkIRect_Reference#SkIRect'>rectangle</a>.
+Passing integer values may generate a compiler warning since <a href='SkRect_Reference#SkRect'>SkRect</a> cannot
+represent 32-bit integers exactly. Use <a href='SkIRect_Reference#SkIRect'>SkIRect</a> for an exact integer rectangle.
### Parameters
<table> <tr> <td><a name='SkRect_MakeWH_w'><code><strong>w</strong></code></a></td>
- <td><a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>width</a> <a href='undocumented#SkScalar'>of</a> <a href='undocumented#SkScalar'>constructed</a> <a href='SkRect_Reference#SkRect'>SkRect</a></td>
+ <td><a href='undocumented#SkScalar'>SkScalar</a> width of constructed <a href='SkRect_Reference#SkRect'>SkRect</a></td>
</tr>
<tr> <td><a name='SkRect_MakeWH_h'><code><strong>h</strong></code></a></td>
- <td><a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>height</a> <a href='undocumented#SkScalar'>of</a> <a href='undocumented#SkScalar'>constructed</a> <a href='SkRect_Reference#SkRect'>SkRect</a></td>
+ <td><a href='undocumented#SkScalar'>SkScalar</a> height of constructed <a href='SkRect_Reference#SkRect'>SkRect</a></td>
</tr>
</table>
@@ -219,14 +219,14 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-static <a href='SkRect_Reference#SkRect'>SkRect</a> <a href='#SkRect_MakeIWH'>MakeIWH</a>(<a href='#SkRect_MakeIWH'>int</a> <a href='#SkRect_MakeIWH'>w</a>, <a href='#SkRect_MakeIWH'>int</a> <a href='#SkRect_MakeIWH'>h</a>)
+static <a href='SkRect_Reference#SkRect'>SkRect</a> <a href='#SkRect_MakeIWH'>MakeIWH</a>(int w, int h)
</pre>
-Returns constructed <a href='SkRect_Reference#SkRect'>SkRect</a> <a href='SkRect_Reference#SkRect'>set</a> <a href='SkRect_Reference#SkRect'>to</a> <a href='SkRect_Reference#SkRect'>integer</a> <a href='SkRect_Reference#SkRect'>values</a> (0, 0, <a href='#SkRect_MakeIWH_w'>w</a>, <a href='#SkRect_MakeIWH_h'>h</a>). <a href='#SkRect_MakeIWH_h'>Does</a> <a href='#SkRect_MakeIWH_h'>not</a> <a href='#SkRect_MakeIWH_h'>validate</a>
-input; <a href='#SkRect_MakeIWH_w'>w</a> <a href='#SkRect_MakeIWH_w'>or</a> <a href='#SkRect_MakeIWH_h'>h</a> <a href='#SkRect_MakeIWH_h'>may</a> <a href='#SkRect_MakeIWH_h'>be</a> <a href='#SkRect_MakeIWH_h'>negative</a>.
+Returns constructed <a href='SkRect_Reference#SkRect'>SkRect</a> set to integer values (0, 0, <a href='#SkRect_MakeIWH_w'>w</a>, <a href='#SkRect_MakeIWH_h'>h</a>). Does not validate
+input; <a href='#SkRect_MakeIWH_w'>w</a> or <a href='#SkRect_MakeIWH_h'>h</a> may be negative.
Use to avoid a compiler warning that input may lose precision when stored.
-Use <a href='SkIRect_Reference#SkIRect'>SkIRect</a> <a href='SkIRect_Reference#SkIRect'>for</a> <a href='SkIRect_Reference#SkIRect'>an</a> <a href='SkIRect_Reference#SkIRect'>exact</a> <a href='SkIRect_Reference#SkIRect'>integer</a> <a href='SkIRect_Reference#SkIRect'>rectangle</a>.
+Use <a href='SkIRect_Reference#SkIRect'>SkIRect</a> for an exact integer rectangle.
### Parameters
@@ -264,16 +264,16 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-static constexpr <a href='SkRect_Reference#SkRect'>SkRect</a> <a href='#SkRect_MakeSize'>MakeSize</a>(<a href='#SkRect_MakeSize'>const</a> <a href='undocumented#SkSize'>SkSize</a>& <a href='undocumented#Size'>size</a>)
+static constexpr <a href='SkRect_Reference#SkRect'>SkRect</a> <a href='#SkRect_MakeSize'>MakeSize</a>(const <a href='undocumented#SkSize'>SkSize</a>& <a href='undocumented#Size'>size</a>)
</pre>
-Returns constructed <a href='SkRect_Reference#SkRect'>SkRect</a> <a href='SkRect_Reference#SkRect'>set</a> <a href='SkRect_Reference#SkRect'>to</a> (0, 0, <a href='#SkRect_MakeSize_size'>size</a>.<a href='#SkSize_width'>width()</a>, <a href='#SkRect_MakeSize_size'>size</a>.<a href='#SkSize_height'>height()</a>). <a href='#SkSize_height'>Does</a> <a href='#SkSize_height'>not</a>
-validate input; <a href='#SkRect_MakeSize_size'>size</a>.<a href='#SkSize_width'>width()</a> <a href='#SkSize_width'>or</a> <a href='#SkRect_MakeSize_size'>size</a>.<a href='#SkSize_height'>height()</a> <a href='#SkSize_height'>may</a> <a href='#SkSize_height'>be</a> <a href='#SkSize_height'>negative</a>.
+Returns constructed <a href='SkRect_Reference#SkRect'>SkRect</a> set to (0, 0, <a href='#SkRect_MakeSize_size'>size</a>.<a href='#SkSize_width'>width()</a>, <a href='#SkRect_MakeSize_size'>size</a>.<a href='#SkSize_height'>height()</a>). Does not
+validate input; <a href='#SkRect_MakeSize_size'>size</a>.<a href='#SkSize_width'>width()</a> or <a href='#SkRect_MakeSize_size'>size</a>.<a href='#SkSize_height'>height()</a> may be negative.
### Parameters
<table> <tr> <td><a name='SkRect_MakeSize_size'><code><strong>size</strong></code></a></td>
- <td><a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>values</a> <a href='undocumented#SkScalar'>for</a> <a href='SkRect_Reference#SkRect'>SkRect</a> <a href='SkRect_Reference#SkRect'>width</a> <a href='SkRect_Reference#SkRect'>and</a> <a href='SkRect_Reference#SkRect'>height</a></td>
+ <td><a href='undocumented#SkScalar'>SkScalar</a> values for <a href='SkRect_Reference#SkRect'>SkRect</a> width and height</td>
</tr>
</table>
@@ -303,25 +303,25 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-static constexpr <a href='SkRect_Reference#SkRect'>SkRect</a> <a href='#SkRect_MakeLTRB'>MakeLTRB</a>(<a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>l</a>, <a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>t</a>, <a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>r</a>, <a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>b</a>)
+static constexpr <a href='SkRect_Reference#SkRect'>SkRect</a> <a href='#SkRect_MakeLTRB'>MakeLTRB</a>(<a href='undocumented#SkScalar'>SkScalar</a> l, <a href='undocumented#SkScalar'>SkScalar</a> t, <a href='undocumented#SkScalar'>SkScalar</a> r, <a href='undocumented#SkScalar'>SkScalar</a> b)
</pre>
-Returns constructed <a href='SkRect_Reference#SkRect'>SkRect</a> <a href='SkRect_Reference#SkRect'>set</a> <a href='SkRect_Reference#SkRect'>to</a> (<a href='#SkRect_MakeLTRB_l'>l</a>, <a href='#SkRect_MakeLTRB_t'>t</a>, <a href='#SkRect_MakeLTRB_r'>r</a>, <a href='#SkRect_MakeLTRB_b'>b</a>). <a href='#SkRect_MakeLTRB_b'>Does</a> <a href='#SkRect_MakeLTRB_b'>not</a> <a href='#SkRect_MakeLTRB_b'>sort</a> <a href='#SkRect_MakeLTRB_b'>input</a>; <a href='SkRect_Reference#SkRect'>SkRect</a> <a href='SkRect_Reference#SkRect'>may</a>
-result in <a href='#SkRect_fLeft'>fLeft</a> <a href='#SkRect_fLeft'>greater</a> <a href='#SkRect_fLeft'>than</a> <a href='#SkRect_fRight'>fRight</a>, <a href='#SkRect_fRight'>or</a> <a href='#SkRect_fTop'>fTop</a> <a href='#SkRect_fTop'>greater</a> <a href='#SkRect_fTop'>than</a> <a href='#SkRect_fBottom'>fBottom</a>.
+Returns constructed <a href='SkRect_Reference#SkRect'>SkRect</a> set to (<a href='#SkRect_MakeLTRB_l'>l</a>, <a href='#SkRect_MakeLTRB_t'>t</a>, <a href='#SkRect_MakeLTRB_r'>r</a>, <a href='#SkRect_MakeLTRB_b'>b</a>). Does not sort input; <a href='SkRect_Reference#SkRect'>SkRect</a> may
+result in <a href='#SkRect_fLeft'>fLeft</a> greater than <a href='#SkRect_fRight'>fRight</a>, or <a href='#SkRect_fTop'>fTop</a> greater than <a href='#SkRect_fBottom'>fBottom</a>.
### Parameters
<table> <tr> <td><a name='SkRect_MakeLTRB_l'><code><strong>l</strong></code></a></td>
- <td><a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>stored</a> <a href='undocumented#SkScalar'>in</a> <a href='#SkRect_fLeft'>fLeft</a></td>
+ <td><a href='undocumented#SkScalar'>SkScalar</a> stored in <a href='#SkRect_fLeft'>fLeft</a></td>
</tr>
<tr> <td><a name='SkRect_MakeLTRB_t'><code><strong>t</strong></code></a></td>
- <td><a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>stored</a> <a href='undocumented#SkScalar'>in</a> <a href='#SkRect_fTop'>fTop</a></td>
+ <td><a href='undocumented#SkScalar'>SkScalar</a> stored in <a href='#SkRect_fTop'>fTop</a></td>
</tr>
<tr> <td><a name='SkRect_MakeLTRB_r'><code><strong>r</strong></code></a></td>
- <td><a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>stored</a> <a href='undocumented#SkScalar'>in</a> <a href='#SkRect_fRight'>fRight</a></td>
+ <td><a href='undocumented#SkScalar'>SkScalar</a> stored in <a href='#SkRect_fRight'>fRight</a></td>
</tr>
<tr> <td><a name='SkRect_MakeLTRB_b'><code><strong>b</strong></code></a></td>
- <td><a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>stored</a> <a href='undocumented#SkScalar'>in</a> <a href='#SkRect_fBottom'>fBottom</a></td>
+ <td><a href='undocumented#SkScalar'>SkScalar</a> stored in <a href='#SkRect_fBottom'>fBottom</a></td>
</tr>
</table>
@@ -351,11 +351,11 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-static constexpr <a href='SkRect_Reference#SkRect'>SkRect</a> <a href='#SkRect_MakeXYWH'>MakeXYWH</a>(<a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>x</a>, <a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>y</a>, <a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>w</a>, <a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>h</a>)
+static constexpr <a href='SkRect_Reference#SkRect'>SkRect</a> <a href='#SkRect_MakeXYWH'>MakeXYWH</a>(<a href='undocumented#SkScalar'>SkScalar</a> x, <a href='undocumented#SkScalar'>SkScalar</a> y, <a href='undocumented#SkScalar'>SkScalar</a> w, <a href='undocumented#SkScalar'>SkScalar</a> h)
</pre>
-Returns constructed <a href='SkRect_Reference#Rect'>Rect</a> <a href='SkRect_Reference#Rect'>set</a> <a href='SkRect_Reference#Rect'>to</a> <code>(<a href='#SkRect_MakeXYWH_x'>x</a>, <a href='#SkRect_MakeXYWH_y'>y</a>, <a href='#SkRect_MakeXYWH_x'>x</a> + <a href='#SkRect_MakeXYWH_w'>w</a>, <a href='#SkRect_MakeXYWH_y'>y</a> + <a href='#SkRect_MakeXYWH_h'>h</a>)</code>.
-Does not validate input; <a href='#SkRect_MakeXYWH_w'>w</a> <a href='#SkRect_MakeXYWH_w'>or</a> <a href='#SkRect_MakeXYWH_h'>h</a> <a href='#SkRect_MakeXYWH_h'>may</a> <a href='#SkRect_MakeXYWH_h'>be</a> <a href='#SkRect_MakeXYWH_h'>negative</a>.
+Returns constructed <a href='SkRect_Reference#Rect'>Rect</a> set to <code>(<a href='#SkRect_MakeXYWH_x'>x</a>, <a href='#SkRect_MakeXYWH_y'>y</a>, <a href='#SkRect_MakeXYWH_x'>x</a> + <a href='#SkRect_MakeXYWH_w'>w</a>, <a href='#SkRect_MakeXYWH_y'>y</a> + <a href='#SkRect_MakeXYWH_h'>h</a>)</code>.
+Does not validate input; <a href='#SkRect_MakeXYWH_w'>w</a> or <a href='#SkRect_MakeXYWH_h'>h</a> may be negative.
### Parameters
@@ -366,16 +366,16 @@
<td>stored in <a href='#SkRect_fTop'>fTop</a></td>
</tr>
<tr> <td><a name='SkRect_MakeXYWH_w'><code><strong>w</strong></code></a></td>
- <td>added to <a href='#SkRect_MakeXYWH_x'>x</a> <a href='#SkRect_MakeXYWH_x'>and</a> <a href='#SkRect_MakeXYWH_x'>stored</a> <a href='#SkRect_MakeXYWH_x'>in</a> <a href='#SkRect_fRight'>fRight</a></td>
+ <td>added to <a href='#SkRect_MakeXYWH_x'>x</a> and stored in <a href='#SkRect_fRight'>fRight</a></td>
</tr>
<tr> <td><a name='SkRect_MakeXYWH_h'><code><strong>h</strong></code></a></td>
- <td>added to <a href='#SkRect_MakeXYWH_y'>y</a> <a href='#SkRect_MakeXYWH_y'>and</a> <a href='#SkRect_MakeXYWH_y'>stored</a> <a href='#SkRect_MakeXYWH_y'>in</a> <a href='#SkRect_fBottom'>fBottom</a></td>
+ <td>added to <a href='#SkRect_MakeXYWH_y'>y</a> and stored in <a href='#SkRect_fBottom'>fBottom</a></td>
</tr>
</table>
### Return Value
-bounds at (<a href='#SkRect_MakeXYWH_x'>x</a>, <a href='#SkRect_MakeXYWH_y'>y</a>) <a href='#SkRect_MakeXYWH_y'>with</a> <a href='#SkRect_MakeXYWH_y'>width</a> <a href='#SkRect_MakeXYWH_w'>w</a> <a href='#SkRect_MakeXYWH_w'>and</a> <a href='#SkRect_MakeXYWH_w'>height</a> <a href='#SkRect_MakeXYWH_h'>h</a>
+bounds at (<a href='#SkRect_MakeXYWH_x'>x</a>, <a href='#SkRect_MakeXYWH_y'>y</a>) with width <a href='#SkRect_MakeXYWH_w'>w</a> and height <a href='#SkRect_MakeXYWH_h'>h</a>
### Example
@@ -399,16 +399,16 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-static <a href='SkRect_Reference#SkRect'>SkRect</a> <a href='#SkRect_Make'>Make</a>(<a href='#SkRect_Make'>const</a> <a href='undocumented#SkISize'>SkISize</a>& <a href='undocumented#Size'>size</a>)
+static <a href='SkRect_Reference#SkRect'>SkRect</a> <a href='#SkRect_Make'>Make</a>(const <a href='undocumented#SkISize'>SkISize</a>& <a href='undocumented#Size'>size</a>)
</pre>
-Returns constructed <a href='SkIRect_Reference#SkIRect'>SkIRect</a> <a href='SkIRect_Reference#SkIRect'>set</a> <a href='SkIRect_Reference#SkIRect'>to</a> (0, 0, <a href='#SkRect_Make_size'>size</a>.<a href='#SkISize_width'>width()</a>, <a href='#SkRect_Make_size'>size</a>.<a href='#SkISize_height'>height()</a>).
-Does not validate input; <a href='#SkRect_Make_size'>size</a>.<a href='#SkISize_width'>width()</a> <a href='#SkISize_width'>or</a> <a href='#SkRect_Make_size'>size</a>.<a href='#SkISize_height'>height()</a> <a href='#SkISize_height'>may</a> <a href='#SkISize_height'>be</a> <a href='#SkISize_height'>negative</a>.
+Returns constructed <a href='SkIRect_Reference#SkIRect'>SkIRect</a> set to (0, 0, <a href='#SkRect_Make_size'>size</a>.<a href='#SkISize_width'>width()</a>, <a href='#SkRect_Make_size'>size</a>.<a href='#SkISize_height'>height()</a>).
+Does not validate input; <a href='#SkRect_Make_size'>size</a>.<a href='#SkISize_width'>width()</a> or <a href='#SkRect_Make_size'>size</a>.<a href='#SkISize_height'>height()</a> may be negative.
### Parameters
<table> <tr> <td><a name='SkRect_Make_size'><code><strong>size</strong></code></a></td>
- <td>integer values for <a href='SkRect_Reference#SkRect'>SkRect</a> <a href='SkRect_Reference#SkRect'>width</a> <a href='SkRect_Reference#SkRect'>and</a> <a href='SkRect_Reference#SkRect'>height</a></td>
+ <td>integer values for <a href='SkRect_Reference#SkRect'>SkRect</a> width and height</td>
</tr>
</table>
@@ -437,11 +437,11 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-static <a href='SkRect_Reference#SkRect'>SkRect</a> <a href='#SkRect_Make'>Make</a>(<a href='#SkRect_Make'>const</a> <a href='SkIRect_Reference#SkIRect'>SkIRect</a>& <a href='SkIRect_Reference#SkIRect'>irect</a>)
+static <a href='SkRect_Reference#SkRect'>SkRect</a> <a href='#SkRect_Make'>Make</a>(const <a href='SkIRect_Reference#SkIRect'>SkIRect</a>& irect)
</pre>
-Returns constructed <a href='SkIRect_Reference#SkIRect'>SkIRect</a> <a href='SkIRect_Reference#SkIRect'>set</a> <a href='SkIRect_Reference#SkIRect'>to</a> <a href='#SkRect_Make_2_irect'>irect</a>, <a href='#SkRect_Make_2_irect'>promoting</a> <a href='#SkRect_Make_2_irect'>integers</a> <a href='#SkRect_Make_2_irect'>to</a> <a href='undocumented#Scalar'>scalar</a>.
-Does not validate input; <a href='#SkRect_fLeft'>fLeft</a> <a href='#SkRect_fLeft'>may</a> <a href='#SkRect_fLeft'>be</a> <a href='#SkRect_fLeft'>greater</a> <a href='#SkRect_fLeft'>than</a> <a href='#SkRect_fRight'>fRight</a>, <a href='#SkRect_fTop'>fTop</a> <a href='#SkRect_fTop'>may</a> <a href='#SkRect_fTop'>be</a> <a href='#SkRect_fTop'>greater</a>
+Returns constructed <a href='SkIRect_Reference#SkIRect'>SkIRect</a> set to <a href='#SkRect_Make_2_irect'>irect</a>, promoting integers to <a href='undocumented#Scalar'>scalar</a>.
+Does not validate input; <a href='#SkRect_fLeft'>fLeft</a> may be greater than <a href='#SkRect_fRight'>fRight</a>, <a href='#SkRect_fTop'>fTop</a> may be greater
than <a href='#SkRect_fBottom'>fBottom</a>.
### Parameters
@@ -453,7 +453,7 @@
### Return Value
-<a href='#SkRect_Make_2_irect'>irect</a> <a href='#SkRect_Make_2_irect'>members</a> <a href='#SkRect_Make_2_irect'>converted</a> <a href='#SkRect_Make_2_irect'>to</a> <a href='undocumented#SkScalar'>SkScalar</a>
+<a href='#SkRect_Make_2_irect'>irect</a> members converted to <a href='undocumented#SkScalar'>SkScalar</a>
### Example
@@ -470,16 +470,16 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-bool <a href='#SkRect_isEmpty'>isEmpty</a>() <a href='#SkRect_isEmpty'>const</a>
+bool <a href='#SkRect_isEmpty'>isEmpty</a>() const
</pre>
-Returns true if <a href='#SkRect_fLeft'>fLeft</a> <a href='#SkRect_fLeft'>is</a> <a href='#SkRect_fLeft'>equal</a> <a href='#SkRect_fLeft'>to</a> <a href='#SkRect_fLeft'>or</a> <a href='#SkRect_fLeft'>greater</a> <a href='#SkRect_fLeft'>than</a> <a href='#SkRect_fRight'>fRight</a>, <a href='#SkRect_fRight'>or</a> <a href='#SkRect_fRight'>if</a> <a href='#SkRect_fTop'>fTop</a> <a href='#SkRect_fTop'>is</a> <a href='#SkRect_fTop'>equal</a>
-to or greater than <a href='#SkRect_fBottom'>fBottom</a>. <a href='#SkRect_fBottom'>Call</a> <a href='#SkRect_sort'>sort()</a> <a href='#SkRect_sort'>to</a> <a href='#SkRect_sort'>reverse</a> <a href='#SkRect_sort'>rectangles</a> <a href='#SkRect_sort'>with</a> <a href='#SkRect_sort'>negative</a>
-<a href='#SkRect_width'>width()</a> <a href='#SkRect_width'>or</a> <a href='#SkRect_height'>height()</a>.
+Returns true if <a href='#SkRect_fLeft'>fLeft</a> is equal to or greater than <a href='#SkRect_fRight'>fRight</a>, or if <a href='#SkRect_fTop'>fTop</a> is equal
+to or greater than <a href='#SkRect_fBottom'>fBottom</a>. Call <a href='#SkRect_sort'>sort()</a> to reverse rectangles with negative
+<a href='#SkRect_width'>width()</a> or <a href='#SkRect_height'>height()</a>.
### Return Value
-true if <a href='#SkRect_width'>width()</a> <a href='#SkRect_width'>or</a> <a href='#SkRect_height'>height()</a> <a href='#SkRect_height'>are</a> <a href='#SkRect_height'>zero</a> <a href='#SkRect_height'>or</a> <a href='#SkRect_height'>negative</a>
+true if <a href='#SkRect_width'>width()</a> or <a href='#SkRect_height'>height()</a> are zero or negative
### Example
@@ -505,16 +505,16 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-bool <a href='#SkRect_isSorted'>isSorted</a>() <a href='#SkRect_isSorted'>const</a>
+bool <a href='#SkRect_isSorted'>isSorted</a>() const
</pre>
-Returns true if <a href='#SkRect_fLeft'>fLeft</a> <a href='#SkRect_fLeft'>is</a> <a href='#SkRect_fLeft'>equal</a> <a href='#SkRect_fLeft'>to</a> <a href='#SkRect_fLeft'>or</a> <a href='#SkRect_fLeft'>less</a> <a href='#SkRect_fLeft'>than</a> <a href='#SkRect_fRight'>fRight</a>, <a href='#SkRect_fRight'>or</a> <a href='#SkRect_fRight'>if</a> <a href='#SkRect_fTop'>fTop</a> <a href='#SkRect_fTop'>is</a> <a href='#SkRect_fTop'>equal</a>
-to or less than <a href='#SkRect_fBottom'>fBottom</a>. <a href='#SkRect_fBottom'>Call</a> <a href='#SkRect_sort'>sort()</a> <a href='#SkRect_sort'>to</a> <a href='#SkRect_sort'>reverse</a> <a href='#SkRect_sort'>rectangles</a> <a href='#SkRect_sort'>with</a> <a href='#SkRect_sort'>negative</a>
-<a href='#SkRect_width'>width()</a> <a href='#SkRect_width'>or</a> <a href='#SkRect_height'>height()</a>.
+Returns true if <a href='#SkRect_fLeft'>fLeft</a> is equal to or less than <a href='#SkRect_fRight'>fRight</a>, or if <a href='#SkRect_fTop'>fTop</a> is equal
+to or less than <a href='#SkRect_fBottom'>fBottom</a>. Call <a href='#SkRect_sort'>sort()</a> to reverse rectangles with negative
+<a href='#SkRect_width'>width()</a> or <a href='#SkRect_height'>height()</a>.
### Return Value
-true if <a href='#SkRect_width'>width()</a> <a href='#SkRect_width'>or</a> <a href='#SkRect_height'>height()</a> <a href='#SkRect_height'>are</a> <a href='#SkRect_height'>zero</a> <a href='#SkRect_height'>or</a> <a href='#SkRect_height'>positive</a>
+true if <a href='#SkRect_width'>width()</a> or <a href='#SkRect_height'>height()</a> are zero or positive
### Example
@@ -540,11 +540,11 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-bool <a href='#SkRect_isFinite'>isFinite</a>() <a href='#SkRect_isFinite'>const</a>
+bool <a href='#SkRect_isFinite'>isFinite</a>() const
</pre>
-Returns true if all values in the rectangle are finite: <a href='undocumented#SK_ScalarMin'>SK_ScalarMin</a> <a href='undocumented#SK_ScalarMin'>or</a> <a href='undocumented#SK_ScalarMin'>larger</a>,
-and <a href='undocumented#SK_ScalarMax'>SK_ScalarMax</a> <a href='undocumented#SK_ScalarMax'>or</a> <a href='undocumented#SK_ScalarMax'>smaller</a>.
+Returns true if all values in the rectangle are finite: <a href='undocumented#SK_ScalarMin'>SK_ScalarMin</a> or larger,
+and <a href='undocumented#SK_ScalarMax'>SK_ScalarMax</a> or smaller.
### Return Value
@@ -573,11 +573,11 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-<a href='undocumented#SkScalar'>SkScalar</a> <a href='#SkRect_x'>x()</a> <a href='#SkRect_x'>const</a>
+<a href='undocumented#SkScalar'>SkScalar</a> <a href='#SkRect_x'>x()</a> const
</pre>
-Returns left edge of <a href='SkRect_Reference#SkRect'>SkRect</a>, <a href='SkRect_Reference#SkRect'>if</a> <a href='SkRect_Reference#SkRect'>sorted</a>. <a href='SkRect_Reference#SkRect'>Call</a> <a href='#SkRect_isSorted'>isSorted</a>() <a href='#SkRect_isSorted'>to</a> <a href='#SkRect_isSorted'>see</a> <a href='#SkRect_isSorted'>if</a> <a href='SkRect_Reference#SkRect'>SkRect</a> <a href='SkRect_Reference#SkRect'>is</a> <a href='SkRect_Reference#SkRect'>valid</a>.
-Call <a href='#SkRect_sort'>sort()</a> <a href='#SkRect_sort'>to</a> <a href='#SkRect_sort'>reverse</a> <a href='#SkRect_fLeft'>fLeft</a> <a href='#SkRect_fLeft'>and</a> <a href='#SkRect_fRight'>fRight</a> <a href='#SkRect_fRight'>if</a> <a href='#SkRect_fRight'>needed</a>.
+Returns left edge of <a href='SkRect_Reference#SkRect'>SkRect</a>, if sorted. Call <a href='#SkRect_isSorted'>isSorted</a>() to see if <a href='SkRect_Reference#SkRect'>SkRect</a> is valid.
+Call <a href='#SkRect_sort'>sort()</a> to reverse <a href='#SkRect_fLeft'>fLeft</a> and <a href='#SkRect_fRight'>fRight</a> if needed.
### Return Value
@@ -605,11 +605,11 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-<a href='undocumented#SkScalar'>SkScalar</a> <a href='#SkRect_y'>y()</a> <a href='#SkRect_y'>const</a>
+<a href='undocumented#SkScalar'>SkScalar</a> <a href='#SkRect_y'>y()</a> const
</pre>
-Returns top edge of <a href='SkRect_Reference#SkRect'>SkRect</a>, <a href='SkRect_Reference#SkRect'>if</a> <a href='SkRect_Reference#SkRect'>sorted</a>. <a href='SkRect_Reference#SkRect'>Call</a> <a href='#SkRect_isEmpty'>isEmpty</a>() <a href='#SkRect_isEmpty'>to</a> <a href='#SkRect_isEmpty'>see</a> <a href='#SkRect_isEmpty'>if</a> <a href='SkRect_Reference#SkRect'>SkRect</a> <a href='SkRect_Reference#SkRect'>may</a> <a href='SkRect_Reference#SkRect'>be</a> <a href='SkRect_Reference#SkRect'>invalid</a>,
-and <a href='#SkRect_sort'>sort()</a> <a href='#SkRect_sort'>to</a> <a href='#SkRect_sort'>reverse</a> <a href='#SkRect_fTop'>fTop</a> <a href='#SkRect_fTop'>and</a> <a href='#SkRect_fBottom'>fBottom</a> <a href='#SkRect_fBottom'>if</a> <a href='#SkRect_fBottom'>needed</a>.
+Returns top edge of <a href='SkRect_Reference#SkRect'>SkRect</a>, if sorted. Call <a href='#SkRect_isEmpty'>isEmpty</a>() to see if <a href='SkRect_Reference#SkRect'>SkRect</a> may be invalid,
+and <a href='#SkRect_sort'>sort()</a> to reverse <a href='#SkRect_fTop'>fTop</a> and <a href='#SkRect_fBottom'>fBottom</a> if needed.
### Return Value
@@ -637,11 +637,11 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-<a href='undocumented#SkScalar'>SkScalar</a> <a href='#SkRect_left'>left()</a> <a href='#SkRect_left'>const</a>
+<a href='undocumented#SkScalar'>SkScalar</a> <a href='#SkRect_left'>left()</a> const
</pre>
-Returns left edge of <a href='SkRect_Reference#SkRect'>SkRect</a>, <a href='SkRect_Reference#SkRect'>if</a> <a href='SkRect_Reference#SkRect'>sorted</a>. <a href='SkRect_Reference#SkRect'>Call</a> <a href='#SkRect_isSorted'>isSorted</a>() <a href='#SkRect_isSorted'>to</a> <a href='#SkRect_isSorted'>see</a> <a href='#SkRect_isSorted'>if</a> <a href='SkRect_Reference#SkRect'>SkRect</a> <a href='SkRect_Reference#SkRect'>is</a> <a href='SkRect_Reference#SkRect'>valid</a>.
-Call <a href='#SkRect_sort'>sort()</a> <a href='#SkRect_sort'>to</a> <a href='#SkRect_sort'>reverse</a> <a href='#SkRect_fLeft'>fLeft</a> <a href='#SkRect_fLeft'>and</a> <a href='#SkRect_fRight'>fRight</a> <a href='#SkRect_fRight'>if</a> <a href='#SkRect_fRight'>needed</a>.
+Returns left edge of <a href='SkRect_Reference#SkRect'>SkRect</a>, if sorted. Call <a href='#SkRect_isSorted'>isSorted</a>() to see if <a href='SkRect_Reference#SkRect'>SkRect</a> is valid.
+Call <a href='#SkRect_sort'>sort()</a> to reverse <a href='#SkRect_fLeft'>fLeft</a> and <a href='#SkRect_fRight'>fRight</a> if needed.
### Return Value
@@ -669,11 +669,11 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-<a href='undocumented#SkScalar'>SkScalar</a> <a href='#SkRect_top'>top()</a> <a href='#SkRect_top'>const</a>
+<a href='undocumented#SkScalar'>SkScalar</a> <a href='#SkRect_top'>top()</a> const
</pre>
-Returns top edge of <a href='SkRect_Reference#SkRect'>SkRect</a>, <a href='SkRect_Reference#SkRect'>if</a> <a href='SkRect_Reference#SkRect'>sorted</a>. <a href='SkRect_Reference#SkRect'>Call</a> <a href='#SkRect_isEmpty'>isEmpty</a>() <a href='#SkRect_isEmpty'>to</a> <a href='#SkRect_isEmpty'>see</a> <a href='#SkRect_isEmpty'>if</a> <a href='SkRect_Reference#SkRect'>SkRect</a> <a href='SkRect_Reference#SkRect'>may</a> <a href='SkRect_Reference#SkRect'>be</a> <a href='SkRect_Reference#SkRect'>invalid</a>,
-and <a href='#SkRect_sort'>sort()</a> <a href='#SkRect_sort'>to</a> <a href='#SkRect_sort'>reverse</a> <a href='#SkRect_fTop'>fTop</a> <a href='#SkRect_fTop'>and</a> <a href='#SkRect_fBottom'>fBottom</a> <a href='#SkRect_fBottom'>if</a> <a href='#SkRect_fBottom'>needed</a>.
+Returns top edge of <a href='SkRect_Reference#SkRect'>SkRect</a>, if sorted. Call <a href='#SkRect_isEmpty'>isEmpty</a>() to see if <a href='SkRect_Reference#SkRect'>SkRect</a> may be invalid,
+and <a href='#SkRect_sort'>sort()</a> to reverse <a href='#SkRect_fTop'>fTop</a> and <a href='#SkRect_fBottom'>fBottom</a> if needed.
### Return Value
@@ -701,11 +701,11 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-<a href='undocumented#SkScalar'>SkScalar</a> <a href='#SkRect_right'>right()</a> <a href='#SkRect_right'>const</a>
+<a href='undocumented#SkScalar'>SkScalar</a> <a href='#SkRect_right'>right()</a> const
</pre>
-Returns right edge of <a href='SkRect_Reference#SkRect'>SkRect</a>, <a href='SkRect_Reference#SkRect'>if</a> <a href='SkRect_Reference#SkRect'>sorted</a>. <a href='SkRect_Reference#SkRect'>Call</a> <a href='#SkRect_isSorted'>isSorted</a>() <a href='#SkRect_isSorted'>to</a> <a href='#SkRect_isSorted'>see</a> <a href='#SkRect_isSorted'>if</a> <a href='SkRect_Reference#SkRect'>SkRect</a> <a href='SkRect_Reference#SkRect'>is</a> <a href='SkRect_Reference#SkRect'>valid</a>.
-Call <a href='#SkRect_sort'>sort()</a> <a href='#SkRect_sort'>to</a> <a href='#SkRect_sort'>reverse</a> <a href='#SkRect_fLeft'>fLeft</a> <a href='#SkRect_fLeft'>and</a> <a href='#SkRect_fRight'>fRight</a> <a href='#SkRect_fRight'>if</a> <a href='#SkRect_fRight'>needed</a>.
+Returns right edge of <a href='SkRect_Reference#SkRect'>SkRect</a>, if sorted. Call <a href='#SkRect_isSorted'>isSorted</a>() to see if <a href='SkRect_Reference#SkRect'>SkRect</a> is valid.
+Call <a href='#SkRect_sort'>sort()</a> to reverse <a href='#SkRect_fLeft'>fLeft</a> and <a href='#SkRect_fRight'>fRight</a> if needed.
### Return Value
@@ -733,11 +733,11 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-<a href='undocumented#SkScalar'>SkScalar</a> <a href='#SkRect_bottom'>bottom()</a> <a href='#SkRect_bottom'>const</a>
+<a href='undocumented#SkScalar'>SkScalar</a> <a href='#SkRect_bottom'>bottom()</a> const
</pre>
-Returns bottom edge of <a href='SkRect_Reference#SkRect'>SkRect</a>, <a href='SkRect_Reference#SkRect'>if</a> <a href='SkRect_Reference#SkRect'>sorted</a>. <a href='SkRect_Reference#SkRect'>Call</a> <a href='#SkRect_isEmpty'>isEmpty</a>() <a href='#SkRect_isEmpty'>to</a> <a href='#SkRect_isEmpty'>see</a> <a href='#SkRect_isEmpty'>if</a> <a href='SkRect_Reference#SkRect'>SkRect</a> <a href='SkRect_Reference#SkRect'>may</a> <a href='SkRect_Reference#SkRect'>be</a> <a href='SkRect_Reference#SkRect'>invalid</a>,
-and <a href='#SkRect_sort'>sort()</a> <a href='#SkRect_sort'>to</a> <a href='#SkRect_sort'>reverse</a> <a href='#SkRect_fTop'>fTop</a> <a href='#SkRect_fTop'>and</a> <a href='#SkRect_fBottom'>fBottom</a> <a href='#SkRect_fBottom'>if</a> <a href='#SkRect_fBottom'>needed</a>.
+Returns bottom edge of <a href='SkRect_Reference#SkRect'>SkRect</a>, if sorted. Call <a href='#SkRect_isEmpty'>isEmpty</a>() to see if <a href='SkRect_Reference#SkRect'>SkRect</a> may be invalid,
+and <a href='#SkRect_sort'>sort()</a> to reverse <a href='#SkRect_fTop'>fTop</a> and <a href='#SkRect_fBottom'>fBottom</a> if needed.
### Return Value
@@ -765,19 +765,19 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-<a href='undocumented#SkScalar'>SkScalar</a> <a href='#SkRect_width'>width()</a> <a href='#SkRect_width'>const</a>
+<a href='undocumented#SkScalar'>SkScalar</a> <a href='#SkRect_width'>width()</a> const
</pre>
-Returns span on the x-axis. This does not check if <a href='SkRect_Reference#SkRect'>SkRect</a> <a href='SkRect_Reference#SkRect'>is</a> <a href='SkRect_Reference#SkRect'>sorted</a>, <a href='SkRect_Reference#SkRect'>or</a> <a href='SkRect_Reference#SkRect'>if</a>
+Returns span on the x-axis. This does not check if <a href='SkRect_Reference#SkRect'>SkRect</a> is sorted, or if
result fits in 32-bit float; result may be negative or infinity.
### Return Value
-<a href='#SkRect_fRight'>fRight</a> <a href='#SkRect_fRight'>minus</a> <a href='#SkRect_fLeft'>fLeft</a>
+<a href='#SkRect_fRight'>fRight</a> minus <a href='#SkRect_fLeft'>fLeft</a>
### Example
-<div><fiddle-embed name="11f8f0efe6291019fee0ac17844f6c1a"><div>Compare with <a href='SkIRect_Reference#SkIRect'>SkIRect</a>::<a href='#SkIRect_width'>width()</a> <a href='#SkIRect_width'>example</a>.
+<div><fiddle-embed name="11f8f0efe6291019fee0ac17844f6c1a"><div>Compare with <a href='SkIRect_Reference#SkIRect'>SkIRect</a>::<a href='#SkIRect_width'>width()</a> example.
</div>
#### Example Output
@@ -798,19 +798,19 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-<a href='undocumented#SkScalar'>SkScalar</a> <a href='#SkRect_height'>height()</a> <a href='#SkRect_height'>const</a>
+<a href='undocumented#SkScalar'>SkScalar</a> <a href='#SkRect_height'>height()</a> const
</pre>
-Returns span on the y-axis. This does not check if <a href='SkRect_Reference#SkRect'>SkRect</a> <a href='SkRect_Reference#SkRect'>is</a> <a href='SkRect_Reference#SkRect'>sorted</a>, <a href='SkRect_Reference#SkRect'>or</a> <a href='SkRect_Reference#SkRect'>if</a>
+Returns span on the y-axis. This does not check if <a href='SkRect_Reference#SkRect'>SkRect</a> is sorted, or if
result fits in 32-bit float; result may be negative or infinity.
### Return Value
-<a href='#SkRect_fBottom'>fBottom</a> <a href='#SkRect_fBottom'>minus</a> <a href='#SkRect_fTop'>fTop</a>
+<a href='#SkRect_fBottom'>fBottom</a> minus <a href='#SkRect_fTop'>fTop</a>
### Example
-<div><fiddle-embed name="39429e45f05240218ecd511443ab3e44"><div>Compare with <a href='SkIRect_Reference#SkIRect'>SkIRect</a>::<a href='#SkIRect_height'>height()</a> <a href='#SkIRect_height'>example</a>.
+<div><fiddle-embed name="39429e45f05240218ecd511443ab3e44"><div>Compare with <a href='SkIRect_Reference#SkIRect'>SkIRect</a>::<a href='#SkIRect_height'>height()</a> example.
</div>
#### Example Output
@@ -831,11 +831,11 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-<a href='undocumented#SkScalar'>SkScalar</a> <a href='#SkRect_centerX'>centerX</a>() <a href='#SkRect_centerX'>const</a>
+<a href='undocumented#SkScalar'>SkScalar</a> <a href='#SkRect_centerX'>centerX</a>() const
</pre>
Returns average of left edge and right edge. Result does not change if <a href='SkRect_Reference#SkRect'>SkRect</a>
-is sorted. Result may overflow to infinity if <a href='SkRect_Reference#SkRect'>SkRect</a> <a href='SkRect_Reference#SkRect'>is</a> <a href='SkRect_Reference#SkRect'>far</a> <a href='SkRect_Reference#SkRect'>from</a> <a href='SkRect_Reference#SkRect'>the</a> <a href='SkRect_Reference#SkRect'>origin</a>.
+is sorted. Result may overflow to infinity if <a href='SkRect_Reference#SkRect'>SkRect</a> is far from the origin.
### Return Value
@@ -865,7 +865,7 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-<a href='undocumented#SkScalar'>SkScalar</a> <a href='#SkRect_centerY'>centerY</a>() <a href='#SkRect_centerY'>const</a>
+<a href='undocumented#SkScalar'>SkScalar</a> <a href='#SkRect_centerY'>centerY</a>() const
</pre>
Returns average of top edge and bottom edge. Result does not change if <a href='SkRect_Reference#SkRect'>SkRect</a>
@@ -898,22 +898,22 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-bool operator==(const <a href='SkRect_Reference#SkRect'>SkRect</a>& <a href='SkRect_Reference#SkRect'>a</a>, <a href='SkRect_Reference#SkRect'>const</a> <a href='SkRect_Reference#SkRect'>SkRect</a>& <a href='SkRect_Reference#SkRect'>b</a>)
+bool operator==(const <a href='SkRect_Reference#SkRect'>SkRect</a>& a, const <a href='SkRect_Reference#SkRect'>SkRect</a>& b)
</pre>
-Returns true if all members in <a href='#SkRect_equal_operator_a'>a</a>: <a href='#SkRect_fLeft'>fLeft</a>, <a href='#SkRect_fTop'>fTop</a>, <a href='#SkRect_fRight'>fRight</a>, <a href='#SkRect_fRight'>and</a> <a href='#SkRect_fBottom'>fBottom</a>; <a href='#SkRect_fBottom'>are</a>
+Returns true if all members in <a href='#SkRect_equal_operator_a'>a</a>: <a href='#SkRect_fLeft'>fLeft</a>, <a href='#SkRect_fTop'>fTop</a>, <a href='#SkRect_fRight'>fRight</a>, and <a href='#SkRect_fBottom'>fBottom</a>; are
equal to the corresponding members in <a href='#SkRect_equal_operator_b'>b</a>.
-<a href='#SkRect_equal_operator_a'>a</a> <a href='#SkRect_equal_operator_a'>and</a> <a href='#SkRect_equal_operator_b'>b</a> <a href='#SkRect_equal_operator_b'>are</a> <a href='#SkRect_equal_operator_b'>not</a> <a href='#SkRect_equal_operator_b'>equal</a> <a href='#SkRect_equal_operator_b'>if</a> <a href='#SkRect_equal_operator_b'>either</a> <a href='#SkRect_equal_operator_b'>contain</a> <a href='#SkRect_equal_operator_b'>NaN</a>. <a href='#SkRect_equal_operator_a'>a</a> <a href='#SkRect_equal_operator_a'>and</a> <a href='#SkRect_equal_operator_b'>b</a> <a href='#SkRect_equal_operator_b'>are</a> <a href='#SkRect_equal_operator_b'>equal</a> <a href='#SkRect_equal_operator_b'>if</a> <a href='#SkRect_equal_operator_b'>members</a>
+<a href='#SkRect_equal_operator_a'>a</a> and <a href='#SkRect_equal_operator_b'>b</a> are not equal if either contain NaN. <a href='#SkRect_equal_operator_a'>a</a> and <a href='#SkRect_equal_operator_b'>b</a> are equal if members
contain zeroes with different signs.
### Parameters
<table> <tr> <td><a name='SkRect_equal_operator_a'><code><strong>a</strong></code></a></td>
- <td><a href='SkRect_Reference#SkRect'>SkRect</a> <a href='SkRect_Reference#SkRect'>to</a> <a href='SkRect_Reference#SkRect'>compare</a></td>
+ <td><a href='SkRect_Reference#SkRect'>SkRect</a> to compare</td>
</tr>
<tr> <td><a name='SkRect_equal_operator_b'><code><strong>b</strong></code></a></td>
- <td><a href='SkRect_Reference#SkRect'>SkRect</a> <a href='SkRect_Reference#SkRect'>to</a> <a href='SkRect_Reference#SkRect'>compare</a></td>
+ <td><a href='SkRect_Reference#SkRect'>SkRect</a> to compare</td>
</tr>
</table>
@@ -945,22 +945,22 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-bool operator!=(const <a href='SkRect_Reference#SkRect'>SkRect</a>& <a href='SkRect_Reference#SkRect'>a</a>, <a href='SkRect_Reference#SkRect'>const</a> <a href='SkRect_Reference#SkRect'>SkRect</a>& <a href='SkRect_Reference#SkRect'>b</a>)
+bool operator!=(const <a href='SkRect_Reference#SkRect'>SkRect</a>& a, const <a href='SkRect_Reference#SkRect'>SkRect</a>& b)
</pre>
-Returns true if any in <a href='#SkRect_notequal_operator_a'>a</a>: <a href='#SkRect_fLeft'>fLeft</a>, <a href='#SkRect_fTop'>fTop</a>, <a href='#SkRect_fRight'>fRight</a>, <a href='#SkRect_fRight'>and</a> <a href='#SkRect_fBottom'>fBottom</a>; <a href='#SkRect_fBottom'>does</a> <a href='#SkRect_fBottom'>not</a>
+Returns true if any in <a href='#SkRect_notequal_operator_a'>a</a>: <a href='#SkRect_fLeft'>fLeft</a>, <a href='#SkRect_fTop'>fTop</a>, <a href='#SkRect_fRight'>fRight</a>, and <a href='#SkRect_fBottom'>fBottom</a>; does not
equal the corresponding members in <a href='#SkRect_notequal_operator_b'>b</a>.
-<a href='#SkRect_notequal_operator_a'>a</a> <a href='#SkRect_notequal_operator_a'>and</a> <a href='#SkRect_notequal_operator_b'>b</a> <a href='#SkRect_notequal_operator_b'>are</a> <a href='#SkRect_notequal_operator_b'>not</a> <a href='#SkRect_notequal_operator_b'>equal</a> <a href='#SkRect_notequal_operator_b'>if</a> <a href='#SkRect_notequal_operator_b'>either</a> <a href='#SkRect_notequal_operator_b'>contain</a> <a href='#SkRect_notequal_operator_b'>NaN</a>. <a href='#SkRect_notequal_operator_a'>a</a> <a href='#SkRect_notequal_operator_a'>and</a> <a href='#SkRect_notequal_operator_b'>b</a> <a href='#SkRect_notequal_operator_b'>are</a> <a href='#SkRect_notequal_operator_b'>equal</a> <a href='#SkRect_notequal_operator_b'>if</a> <a href='#SkRect_notequal_operator_b'>members</a>
+<a href='#SkRect_notequal_operator_a'>a</a> and <a href='#SkRect_notequal_operator_b'>b</a> are not equal if either contain NaN. <a href='#SkRect_notequal_operator_a'>a</a> and <a href='#SkRect_notequal_operator_b'>b</a> are equal if members
contain zeroes with different signs.
### Parameters
<table> <tr> <td><a name='SkRect_notequal_operator_a'><code><strong>a</strong></code></a></td>
- <td><a href='SkRect_Reference#SkRect'>SkRect</a> <a href='SkRect_Reference#SkRect'>to</a> <a href='SkRect_Reference#SkRect'>compare</a></td>
+ <td><a href='SkRect_Reference#SkRect'>SkRect</a> to compare</td>
</tr>
<tr> <td><a name='SkRect_notequal_operator_b'><code><strong>b</strong></code></a></td>
- <td><a href='SkRect_Reference#SkRect'>SkRect</a> <a href='SkRect_Reference#SkRect'>to</a> <a href='SkRect_Reference#SkRect'>compare</a></td>
+ <td><a href='SkRect_Reference#SkRect'>SkRect</a> to compare</td>
</tr>
</table>
@@ -991,11 +991,11 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-void <a href='#SkRect_toQuad'>toQuad</a>(<a href='SkPoint_Reference#SkPoint'>SkPoint</a> <a href='SkPath_Reference#Quad'>quad</a>[4]) <a href='SkPath_Reference#Quad'>const</a>
+void <a href='#SkRect_toQuad'>toQuad</a>(<a href='SkPoint_Reference#SkPoint'>SkPoint</a> <a href='SkPath_Reference#Quad'>quad</a>[4]) const
</pre>
-Returns four <a href='SkPoint_Reference#Point'>points</a> <a href='SkPoint_Reference#Point'>in</a> <a href='#SkRect_toQuad_quad'>quad</a> <a href='#SkRect_toQuad_quad'>that</a> <a href='#SkRect_toQuad_quad'>enclose</a> <a href='SkRect_Reference#Rect'>Rect</a> <a href='SkRect_Reference#Rect'>ordered</a> <a href='SkRect_Reference#Rect'>as</a>: <a href='SkRect_Reference#Rect'>top-left</a>, <a href='SkRect_Reference#Rect'>top-right</a>,
-<a href='SkRect_Reference#Rect'>bottom-right</a>, <a href='SkRect_Reference#Rect'>bottom-left</a>.
+Returns four <a href='SkPoint_Reference#Point'>points</a> in <a href='#SkRect_toQuad_quad'>quad</a> that enclose <a href='SkRect_Reference#Rect'>Rect</a> ordered as: top-left, top-right,
+bottom-right, bottom-left.
Private: Consider adding param to control whether quad is clockwise or counterclockwise.
@@ -1028,14 +1028,14 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-void <a href='#SkRect_setBounds'>setBounds</a>(<a href='#SkRect_setBounds'>const</a> <a href='SkPoint_Reference#SkPoint'>SkPoint</a> <a href='SkPoint_Reference#SkPoint'>pts</a>[], <a href='SkPoint_Reference#SkPoint'>int</a> <a href='SkPoint_Reference#SkPoint'>count</a>)
+void <a href='#SkRect_setBounds'>setBounds</a>(const <a href='SkPoint_Reference#SkPoint'>SkPoint</a> pts[], int count)
</pre>
-Sets to bounds of <a href='SkPath_Reference#Point_Array'>SkPoint array</a> <a href='SkPoint_Reference#SkPoint'>with</a> <a href='#SkRect_setBounds_count'>count</a> <a href='#SkRect_setBounds_count'>entries</a>. <a href='#SkRect_setBounds_count'>If</a> <a href='#SkRect_setBounds_count'>count</a> <a href='#SkRect_setBounds_count'>is</a> <a href='#SkRect_setBounds_count'>zero</a> <a href='#SkRect_setBounds_count'>or</a> <a href='#SkRect_setBounds_count'>smaller</a>,
-or if <a href='SkPath_Reference#Point_Array'>SkPoint array</a> <a href='SkPoint_Reference#SkPoint'>contains</a> <a href='SkPoint_Reference#SkPoint'>an</a> <a href='SkPoint_Reference#SkPoint'>infinity</a> <a href='SkPoint_Reference#SkPoint'>or</a> <a href='SkPoint_Reference#SkPoint'>NaN</a>, <a href='SkPoint_Reference#SkPoint'>sets</a> <a href='SkPoint_Reference#SkPoint'>to</a> (0, 0, 0, 0).
+Sets to bounds of <a href='SkPath_Reference#Point_Array'>SkPoint array</a> with <a href='#SkRect_setBounds_count'>count</a> entries. If <a href='#SkRect_setBounds_count'>count</a> is zero or smaller,
+or if <a href='SkPath_Reference#Point_Array'>SkPoint array</a> contains an infinity or NaN, sets to (0, 0, 0, 0).
-Result is either empty or sorted: <a href='#SkRect_fLeft'>fLeft</a> <a href='#SkRect_fLeft'>is</a> <a href='#SkRect_fLeft'>less</a> <a href='#SkRect_fLeft'>than</a> <a href='#SkRect_fLeft'>or</a> <a href='#SkRect_fLeft'>equal</a> <a href='#SkRect_fLeft'>to</a> <a href='#SkRect_fRight'>fRight</a>, <a href='#SkRect_fRight'>and</a>
-<a href='#SkRect_fTop'>fTop</a> <a href='#SkRect_fTop'>is</a> <a href='#SkRect_fTop'>less</a> <a href='#SkRect_fTop'>than</a> <a href='#SkRect_fTop'>or</a> <a href='#SkRect_fTop'>equal</a> <a href='#SkRect_fTop'>to</a> <a href='#SkRect_fBottom'>fBottom</a>.
+Result is either empty or sorted: <a href='#SkRect_fLeft'>fLeft</a> is less than or equal to <a href='#SkRect_fRight'>fRight</a>, and
+<a href='#SkRect_fTop'>fTop</a> is less than or equal to <a href='#SkRect_fBottom'>fBottom</a>.
### Parameters
@@ -1072,15 +1072,15 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-bool <a href='#SkRect_setBoundsCheck'>setBoundsCheck</a>(<a href='#SkRect_setBoundsCheck'>const</a> <a href='SkPoint_Reference#SkPoint'>SkPoint</a> <a href='SkPoint_Reference#SkPoint'>pts</a>[], <a href='SkPoint_Reference#SkPoint'>int</a> <a href='SkPoint_Reference#SkPoint'>count</a>)
+bool <a href='#SkRect_setBoundsCheck'>setBoundsCheck</a>(const <a href='SkPoint_Reference#SkPoint'>SkPoint</a> pts[], int count)
</pre>
-Sets to bounds of <a href='SkPath_Reference#Point_Array'>SkPoint array</a> <a href='SkPoint_Reference#SkPoint'>with</a> <a href='#SkRect_setBoundsCheck_count'>count</a> <a href='#SkRect_setBoundsCheck_count'>entries</a>. <a href='#SkRect_setBoundsCheck_count'>Returns</a> <a href='#SkRect_setBoundsCheck_count'>false</a> <a href='#SkRect_setBoundsCheck_count'>if</a> <a href='#SkRect_setBoundsCheck_count'>count</a> <a href='#SkRect_setBoundsCheck_count'>is</a>
-zero or smaller, or if <a href='SkPath_Reference#Point_Array'>SkPoint array</a> <a href='SkPoint_Reference#SkPoint'>contains</a> <a href='SkPoint_Reference#SkPoint'>an</a> <a href='SkPoint_Reference#SkPoint'>infinity</a> <a href='SkPoint_Reference#SkPoint'>or</a> <a href='SkPoint_Reference#SkPoint'>NaN</a>; <a href='SkPoint_Reference#SkPoint'>in</a> <a href='SkPoint_Reference#SkPoint'>these</a> <a href='SkPoint_Reference#SkPoint'>cases</a>
-sets <a href='SkRect_Reference#SkRect'>SkRect</a> <a href='SkRect_Reference#SkRect'>to</a> (0, 0, 0, 0).
+Sets to bounds of <a href='SkPath_Reference#Point_Array'>SkPoint array</a> with <a href='#SkRect_setBoundsCheck_count'>count</a> entries. Returns false if <a href='#SkRect_setBoundsCheck_count'>count</a> is
+zero or smaller, or if <a href='SkPath_Reference#Point_Array'>SkPoint array</a> contains an infinity or NaN; in these cases
+sets <a href='SkRect_Reference#SkRect'>SkRect</a> to (0, 0, 0, 0).
-Result is either empty or sorted: <a href='#SkRect_fLeft'>fLeft</a> <a href='#SkRect_fLeft'>is</a> <a href='#SkRect_fLeft'>less</a> <a href='#SkRect_fLeft'>than</a> <a href='#SkRect_fLeft'>or</a> <a href='#SkRect_fLeft'>equal</a> <a href='#SkRect_fLeft'>to</a> <a href='#SkRect_fRight'>fRight</a>, <a href='#SkRect_fRight'>and</a>
-<a href='#SkRect_fTop'>fTop</a> <a href='#SkRect_fTop'>is</a> <a href='#SkRect_fTop'>less</a> <a href='#SkRect_fTop'>than</a> <a href='#SkRect_fTop'>or</a> <a href='#SkRect_fTop'>equal</a> <a href='#SkRect_fTop'>to</a> <a href='#SkRect_fBottom'>fBottom</a>.
+Result is either empty or sorted: <a href='#SkRect_fLeft'>fLeft</a> is less than or equal to <a href='#SkRect_fRight'>fRight</a>, and
+<a href='#SkRect_fTop'>fTop</a> is less than or equal to <a href='#SkRect_fBottom'>fBottom</a>.
### Parameters
@@ -1094,7 +1094,7 @@
### Return Value
-true if all <a href='SkPoint_Reference#SkPoint'>SkPoint</a> <a href='SkPoint_Reference#SkPoint'>values</a> <a href='SkPoint_Reference#SkPoint'>are</a> <a href='SkPoint_Reference#SkPoint'>finite</a>
+true if all <a href='SkPoint_Reference#SkPoint'>SkPoint</a> values are finite
### Example
@@ -1123,11 +1123,11 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-void <a href='#SkRect_setBoundsNoCheck'>setBoundsNoCheck</a>(<a href='#SkRect_setBoundsNoCheck'>const</a> <a href='SkPoint_Reference#SkPoint'>SkPoint</a> <a href='SkPoint_Reference#SkPoint'>pts</a>[], <a href='SkPoint_Reference#SkPoint'>int</a> <a href='SkPoint_Reference#SkPoint'>count</a>)
+void <a href='#SkRect_setBoundsNoCheck'>setBoundsNoCheck</a>(const <a href='SkPoint_Reference#SkPoint'>SkPoint</a> pts[], int count)
</pre>
-Sets to bounds of <a href='SkPoint_Reference#SkPoint'>SkPoint</a> <a href='#SkRect_setBoundsNoCheck_pts'>pts</a> <a href='#SkRect_setBoundsNoCheck_pts'>array</a> <a href='#SkRect_setBoundsNoCheck_pts'>with</a> <a href='#SkRect_setBoundsNoCheck_count'>count</a> <a href='#SkRect_setBoundsNoCheck_count'>entries</a>. <a href='#SkRect_setBoundsNoCheck_count'>If</a> <a href='#SkRect_setBoundsNoCheck_count'>any</a> <a href='SkPoint_Reference#SkPoint'>SkPoint</a> <a href='SkPoint_Reference#SkPoint'>in</a> <a href='#SkRect_setBoundsNoCheck_pts'>pts</a>
-contains infinity or NaN, all <a href='SkRect_Reference#SkRect'>SkRect</a> <a href='SkRect_Reference#SkRect'>dimensions</a> <a href='SkRect_Reference#SkRect'>are</a> <a href='SkRect_Reference#SkRect'>set</a> <a href='SkRect_Reference#SkRect'>to</a> <a href='SkRect_Reference#SkRect'>NaN</a>.
+Sets to bounds of <a href='SkPoint_Reference#SkPoint'>SkPoint</a> <a href='#SkRect_setBoundsNoCheck_pts'>pts</a> array with <a href='#SkRect_setBoundsNoCheck_count'>count</a> entries. If any <a href='SkPoint_Reference#SkPoint'>SkPoint</a> in <a href='#SkRect_setBoundsNoCheck_pts'>pts</a>
+contains infinity or NaN, all <a href='SkRect_Reference#SkRect'>SkRect</a> dimensions are set to NaN.
### Parameters
@@ -1155,7 +1155,7 @@
void <a href='#SkRect_setEmpty'>setEmpty</a>()
</pre>
-Sets <a href='SkRect_Reference#SkRect'>SkRect</a> <a href='SkRect_Reference#SkRect'>to</a> (0, 0, 0, 0).
+Sets <a href='SkRect_Reference#SkRect'>SkRect</a> to (0, 0, 0, 0).
Many other rectangles are empty; if left is equal to or greater than right,
or if top is equal to or greater than bottom. Setting all members to zero
@@ -1183,11 +1183,11 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-void set(const <a href='SkIRect_Reference#SkIRect'>SkIRect</a>& <a href='SkIRect_Reference#SkIRect'>src</a>)
+void set(const <a href='SkIRect_Reference#SkIRect'>SkIRect</a>& src)
</pre>
-Sets <a href='SkRect_Reference#SkRect'>SkRect</a> <a href='SkRect_Reference#SkRect'>to</a> <a href='#SkRect_set_src'>src</a>, <a href='#SkRect_set_src'>promoting</a> <a href='#SkRect_set_src'>src</a> <a href='#SkRect_set_src'>members</a> <a href='#SkRect_set_src'>from</a> <a href='#SkRect_set_src'>integer</a> <a href='#SkRect_set_src'>to</a> <a href='undocumented#Scalar'>scalar</a>.
-Very large values in <a href='#SkRect_set_src'>src</a> <a href='#SkRect_set_src'>may</a> <a href='#SkRect_set_src'>lose</a> <a href='#SkRect_set_src'>precision</a>.
+Sets <a href='SkRect_Reference#SkRect'>SkRect</a> to <a href='#SkRect_set_src'>src</a>, promoting <a href='#SkRect_set_src'>src</a> members from integer to <a href='undocumented#Scalar'>scalar</a>.
+Very large values in <a href='#SkRect_set_src'>src</a> may lose precision.
### Parameters
@@ -1218,12 +1218,12 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-void set(<a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>left</a>, <a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>top</a>, <a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>right</a>, <a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>bottom</a>)
+void set(<a href='undocumented#SkScalar'>SkScalar</a> left, <a href='undocumented#SkScalar'>SkScalar</a> top, <a href='undocumented#SkScalar'>SkScalar</a> right, <a href='undocumented#SkScalar'>SkScalar</a> bottom)
</pre>
-Sets <a href='SkRect_Reference#SkRect'>SkRect</a> <a href='SkRect_Reference#SkRect'>to</a> (<a href='#SkRect_set_2_left'>left</a>, <a href='#SkRect_set_2_top'>top</a>, <a href='#SkRect_set_2_right'>right</a>, <a href='#SkRect_set_2_bottom'>bottom</a>).
-<a href='#SkRect_set_2_left'>left</a> <a href='#SkRect_set_2_left'>and</a> <a href='#SkRect_set_2_right'>right</a> <a href='#SkRect_set_2_right'>are</a> <a href='#SkRect_set_2_right'>not</a> <a href='#SkRect_set_2_right'>sorted</a>; <a href='#SkRect_set_2_left'>left</a> <a href='#SkRect_set_2_left'>is</a> <a href='#SkRect_set_2_left'>not</a> <a href='#SkRect_set_2_left'>necessarily</a> <a href='#SkRect_set_2_left'>less</a> <a href='#SkRect_set_2_left'>than</a> <a href='#SkRect_set_2_right'>right</a>.
-<a href='#SkRect_set_2_top'>top</a> <a href='#SkRect_set_2_top'>and</a> <a href='#SkRect_set_2_bottom'>bottom</a> <a href='#SkRect_set_2_bottom'>are</a> <a href='#SkRect_set_2_bottom'>not</a> <a href='#SkRect_set_2_bottom'>sorted</a>; <a href='#SkRect_set_2_top'>top</a> <a href='#SkRect_set_2_top'>is</a> <a href='#SkRect_set_2_top'>not</a> <a href='#SkRect_set_2_top'>necessarily</a> <a href='#SkRect_set_2_top'>less</a> <a href='#SkRect_set_2_top'>than</a> <a href='#SkRect_set_2_bottom'>bottom</a>.
+Sets <a href='SkRect_Reference#SkRect'>SkRect</a> to (<a href='#SkRect_set_2_left'>left</a>, <a href='#SkRect_set_2_top'>top</a>, <a href='#SkRect_set_2_right'>right</a>, <a href='#SkRect_set_2_bottom'>bottom</a>).
+<a href='#SkRect_set_2_left'>left</a> and <a href='#SkRect_set_2_right'>right</a> are not sorted; <a href='#SkRect_set_2_left'>left</a> is not necessarily less than <a href='#SkRect_set_2_right'>right</a>.
+<a href='#SkRect_set_2_top'>top</a> and <a href='#SkRect_set_2_bottom'>bottom</a> are not sorted; <a href='#SkRect_set_2_top'>top</a> is not necessarily less than <a href='#SkRect_set_2_bottom'>bottom</a>.
### Parameters
@@ -1263,12 +1263,12 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-void <a href='#SkRect_setLTRB'>setLTRB</a>(<a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>left</a>, <a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>top</a>, <a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>right</a>, <a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>bottom</a>)
+void <a href='#SkRect_setLTRB'>setLTRB</a>(<a href='undocumented#SkScalar'>SkScalar</a> left, <a href='undocumented#SkScalar'>SkScalar</a> top, <a href='undocumented#SkScalar'>SkScalar</a> right, <a href='undocumented#SkScalar'>SkScalar</a> bottom)
</pre>
-Sets <a href='SkRect_Reference#SkRect'>SkRect</a> <a href='SkRect_Reference#SkRect'>to</a> (<a href='#SkRect_setLTRB_left'>left</a>, <a href='#SkRect_setLTRB_top'>top</a>, <a href='#SkRect_setLTRB_right'>right</a>, <a href='#SkRect_setLTRB_bottom'>bottom</a>).
-<a href='#SkRect_setLTRB_left'>left</a> <a href='#SkRect_setLTRB_left'>and</a> <a href='#SkRect_setLTRB_right'>right</a> <a href='#SkRect_setLTRB_right'>are</a> <a href='#SkRect_setLTRB_right'>not</a> <a href='#SkRect_setLTRB_right'>sorted</a>; <a href='#SkRect_setLTRB_left'>left</a> <a href='#SkRect_setLTRB_left'>is</a> <a href='#SkRect_setLTRB_left'>not</a> <a href='#SkRect_setLTRB_left'>necessarily</a> <a href='#SkRect_setLTRB_left'>less</a> <a href='#SkRect_setLTRB_left'>than</a> <a href='#SkRect_setLTRB_right'>right</a>.
-<a href='#SkRect_setLTRB_top'>top</a> <a href='#SkRect_setLTRB_top'>and</a> <a href='#SkRect_setLTRB_bottom'>bottom</a> <a href='#SkRect_setLTRB_bottom'>are</a> <a href='#SkRect_setLTRB_bottom'>not</a> <a href='#SkRect_setLTRB_bottom'>sorted</a>; <a href='#SkRect_setLTRB_top'>top</a> <a href='#SkRect_setLTRB_top'>is</a> <a href='#SkRect_setLTRB_top'>not</a> <a href='#SkRect_setLTRB_top'>necessarily</a> <a href='#SkRect_setLTRB_top'>less</a> <a href='#SkRect_setLTRB_top'>than</a> <a href='#SkRect_setLTRB_bottom'>bottom</a>.
+Sets <a href='SkRect_Reference#SkRect'>SkRect</a> to (<a href='#SkRect_setLTRB_left'>left</a>, <a href='#SkRect_setLTRB_top'>top</a>, <a href='#SkRect_setLTRB_right'>right</a>, <a href='#SkRect_setLTRB_bottom'>bottom</a>).
+<a href='#SkRect_setLTRB_left'>left</a> and <a href='#SkRect_setLTRB_right'>right</a> are not sorted; <a href='#SkRect_setLTRB_left'>left</a> is not necessarily less than <a href='#SkRect_setLTRB_right'>right</a>.
+<a href='#SkRect_setLTRB_top'>top</a> and <a href='#SkRect_setLTRB_bottom'>bottom</a> are not sorted; <a href='#SkRect_setLTRB_top'>top</a> is not necessarily less than <a href='#SkRect_setLTRB_bottom'>bottom</a>.
### Parameters
@@ -1308,14 +1308,14 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-void set(const <a href='SkPoint_Reference#SkPoint'>SkPoint</a> <a href='SkPoint_Reference#SkPoint'>pts</a>[], <a href='SkPoint_Reference#SkPoint'>int</a> <a href='SkPoint_Reference#SkPoint'>count</a>)
+void set(const <a href='SkPoint_Reference#SkPoint'>SkPoint</a> pts[], int count)
</pre>
-Sets to bounds of <a href='SkPath_Reference#Point_Array'>SkPoint array</a> <a href='SkPoint_Reference#SkPoint'>with</a> <a href='#SkRect_set_3_count'>count</a> <a href='#SkRect_set_3_count'>entries</a>. <a href='#SkRect_set_3_count'>If</a> <a href='#SkRect_set_3_count'>count</a> <a href='#SkRect_set_3_count'>is</a> <a href='#SkRect_set_3_count'>zero</a> <a href='#SkRect_set_3_count'>or</a> <a href='#SkRect_set_3_count'>smaller</a>,
-or if <a href='SkPath_Reference#Point_Array'>SkPoint array</a> <a href='SkPoint_Reference#SkPoint'>contains</a> <a href='SkPoint_Reference#SkPoint'>an</a> <a href='SkPoint_Reference#SkPoint'>infinity</a> <a href='SkPoint_Reference#SkPoint'>or</a> <a href='SkPoint_Reference#SkPoint'>NaN</a>, <a href='SkPoint_Reference#SkPoint'>sets</a> <a href='SkRect_Reference#SkRect'>SkRect</a> <a href='SkRect_Reference#SkRect'>to</a> (0, 0, 0, 0).
+Sets to bounds of <a href='SkPath_Reference#Point_Array'>SkPoint array</a> with <a href='#SkRect_set_3_count'>count</a> entries. If <a href='#SkRect_set_3_count'>count</a> is zero or smaller,
+or if <a href='SkPath_Reference#Point_Array'>SkPoint array</a> contains an infinity or NaN, sets <a href='SkRect_Reference#SkRect'>SkRect</a> to (0, 0, 0, 0).
-Result is either empty or sorted: <a href='#SkRect_fLeft'>fLeft</a> <a href='#SkRect_fLeft'>is</a> <a href='#SkRect_fLeft'>less</a> <a href='#SkRect_fLeft'>than</a> <a href='#SkRect_fLeft'>or</a> <a href='#SkRect_fLeft'>equal</a> <a href='#SkRect_fLeft'>to</a> <a href='#SkRect_fRight'>fRight</a>, <a href='#SkRect_fRight'>and</a>
-<a href='#SkRect_fTop'>fTop</a> <a href='#SkRect_fTop'>is</a> <a href='#SkRect_fTop'>less</a> <a href='#SkRect_fTop'>than</a> <a href='#SkRect_fTop'>or</a> <a href='#SkRect_fTop'>equal</a> <a href='#SkRect_fTop'>to</a> <a href='#SkRect_fBottom'>fBottom</a>.
+Result is either empty or sorted: <a href='#SkRect_fLeft'>fLeft</a> is less than or equal to <a href='#SkRect_fRight'>fRight</a>, and
+<a href='#SkRect_fTop'>fTop</a> is less than or equal to <a href='#SkRect_fBottom'>fBottom</a>.
### Parameters
@@ -1352,10 +1352,10 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-void set(const <a href='SkPoint_Reference#SkPoint'>SkPoint</a>& <a href='SkPoint_Reference#SkPoint'>p0</a>, <a href='SkPoint_Reference#SkPoint'>const</a> <a href='SkPoint_Reference#SkPoint'>SkPoint</a>& <a href='SkPoint_Reference#SkPoint'>p1</a>)
+void set(const <a href='SkPoint_Reference#SkPoint'>SkPoint</a>& p0, const <a href='SkPoint_Reference#SkPoint'>SkPoint</a>& p1)
</pre>
-Sets bounds to the smallest <a href='SkRect_Reference#SkRect'>SkRect</a> <a href='SkRect_Reference#SkRect'>enclosing</a> <a href='SkPoint_Reference#SkPoint'>SkPoint</a> <a href='#SkRect_set_4_p0'>p0</a> <a href='#SkRect_set_4_p0'>and</a> <a href='#SkRect_set_4_p1'>p1</a>. <a href='#SkRect_set_4_p1'>The</a> <a href='#SkRect_set_4_p1'>result</a> <a href='#SkRect_set_4_p1'>is</a>
+Sets bounds to the smallest <a href='SkRect_Reference#SkRect'>SkRect</a> enclosing <a href='SkPoint_Reference#SkPoint'>SkPoint</a> <a href='#SkRect_set_4_p0'>p0</a> and <a href='#SkRect_set_4_p1'>p1</a>. The result is
sorted and may be empty. Does not check to see if values are finite.
### Parameters
@@ -1370,7 +1370,7 @@
### Example
-<div><fiddle-embed name="ee72450381f768f3869153cdbeccdc3e"><div><a href='#SkRect_set_4_p0'>p0</a> <a href='#SkRect_set_4_p0'>and</a> <a href='#SkRect_set_4_p1'>p1</a> <a href='#SkRect_set_4_p1'>may</a> <a href='#SkRect_set_4_p1'>be</a> <a href='#SkRect_set_4_p1'>swapped</a> <a href='#SkRect_set_4_p1'>and</a> <a href='#SkRect_set_4_p1'>have</a> <a href='#SkRect_set_4_p1'>the</a> <a href='#SkRect_set_4_p1'>same</a> <a href='#SkRect_set_4_p1'>effect</a> <a href='#SkRect_set_4_p1'>unless</a> <a href='#SkRect_set_4_p1'>one</a> <a href='#SkRect_set_4_p1'>contains</a> <a href='#SkRect_set_4_p1'>NaN</a>.
+<div><fiddle-embed name="ee72450381f768f3869153cdbeccdc3e"><div><a href='#SkRect_set_4_p0'>p0</a> and <a href='#SkRect_set_4_p1'>p1</a> may be swapped and have the same effect unless one contains NaN.
</div></fiddle-embed></div>
### See Also
@@ -1382,11 +1382,11 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-void <a href='#SkRect_setXYWH'>setXYWH</a>(<a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>x</a>, <a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>y</a>, <a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>width</a>, <a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>height</a>)
+void <a href='#SkRect_setXYWH'>setXYWH</a>(<a href='undocumented#SkScalar'>SkScalar</a> x, <a href='undocumented#SkScalar'>SkScalar</a> y, <a href='undocumented#SkScalar'>SkScalar</a> width, <a href='undocumented#SkScalar'>SkScalar</a> height)
</pre>
-Sets <a href='SkRect_Reference#Rect'>Rect</a> <a href='SkRect_Reference#Rect'>to</a> <code>(<a href='#SkRect_setXYWH_x'>x</a>, <a href='#SkRect_setXYWH_y'>y</a>, <a href='#SkRect_setXYWH_x'>x</a> + <a href='#SkRect_setXYWH_width'>width</a>, <a href='#SkRect_setXYWH_y'>y</a> + <a href='#SkRect_setXYWH_height'>height</a>)</code>.
-Does not validate input; <a href='#SkRect_setXYWH_width'>width</a> <a href='#SkRect_setXYWH_width'>or</a> <a href='#SkRect_setXYWH_height'>height</a> <a href='#SkRect_setXYWH_height'>may</a> <a href='#SkRect_setXYWH_height'>be</a> <a href='#SkRect_setXYWH_height'>negative</a>.
+Sets <a href='SkRect_Reference#Rect'>Rect</a> to <code>(<a href='#SkRect_setXYWH_x'>x</a>, <a href='#SkRect_setXYWH_y'>y</a>, <a href='#SkRect_setXYWH_x'>x</a> + <a href='#SkRect_setXYWH_width'>width</a>, <a href='#SkRect_setXYWH_y'>y</a> + <a href='#SkRect_setXYWH_height'>height</a>)</code>.
+Does not validate input; <a href='#SkRect_setXYWH_width'>width</a> or <a href='#SkRect_setXYWH_height'>height</a> may be negative.
### Parameters
@@ -1397,10 +1397,10 @@
<td>stored in <a href='#SkRect_fTop'>fTop</a></td>
</tr>
<tr> <td><a name='SkRect_setXYWH_width'><code><strong>width</strong></code></a></td>
- <td>added to <a href='#SkRect_setXYWH_x'>x</a> <a href='#SkRect_setXYWH_x'>and</a> <a href='#SkRect_setXYWH_x'>stored</a> <a href='#SkRect_setXYWH_x'>in</a> <a href='#SkRect_fRight'>fRight</a></td>
+ <td>added to <a href='#SkRect_setXYWH_x'>x</a> and stored in <a href='#SkRect_fRight'>fRight</a></td>
</tr>
<tr> <td><a name='SkRect_setXYWH_height'><code><strong>height</strong></code></a></td>
- <td>added to <a href='#SkRect_setXYWH_y'>y</a> <a href='#SkRect_setXYWH_y'>and</a> <a href='#SkRect_setXYWH_y'>stored</a> <a href='#SkRect_setXYWH_y'>in</a> <a href='#SkRect_fBottom'>fBottom</a></td>
+ <td>added to <a href='#SkRect_setXYWH_y'>y</a> and stored in <a href='#SkRect_fBottom'>fBottom</a></td>
</tr>
</table>
@@ -1426,11 +1426,11 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-void <a href='#SkRect_setWH'>setWH</a>(<a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>width</a>, <a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>height</a>)
+void <a href='#SkRect_setWH'>setWH</a>(<a href='undocumented#SkScalar'>SkScalar</a> width, <a href='undocumented#SkScalar'>SkScalar</a> height)
</pre>
-Sets <a href='SkRect_Reference#SkRect'>SkRect</a> <a href='SkRect_Reference#SkRect'>to</a> (0, 0, <a href='#SkRect_setWH_width'>width</a>, <a href='#SkRect_setWH_height'>height</a>). <a href='#SkRect_setWH_height'>Does</a> <a href='#SkRect_setWH_height'>not</a> <a href='#SkRect_setWH_height'>validate</a> <a href='#SkRect_setWH_height'>input</a>;
-<a href='#SkRect_setWH_width'>width</a> <a href='#SkRect_setWH_width'>or</a> <a href='#SkRect_setWH_height'>height</a> <a href='#SkRect_setWH_height'>may</a> <a href='#SkRect_setWH_height'>be</a> <a href='#SkRect_setWH_height'>negative</a>.
+Sets <a href='SkRect_Reference#SkRect'>SkRect</a> to (0, 0, <a href='#SkRect_setWH_width'>width</a>, <a href='#SkRect_setWH_height'>height</a>). Does not validate input;
+<a href='#SkRect_setWH_width'>width</a> or <a href='#SkRect_setWH_height'>height</a> may be negative.
### Parameters
@@ -1466,27 +1466,27 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-void <a href='#SkRect_iset'>iset</a>(<a href='#SkRect_iset'>int</a> <a href='#SkRect_iset'>left</a>, <a href='#SkRect_iset'>int</a> <a href='#SkRect_iset'>top</a>, <a href='#SkRect_iset'>int</a> <a href='#SkRect_iset'>right</a>, <a href='#SkRect_iset'>int</a> <a href='#SkRect_iset'>bottom</a>)
+void <a href='#SkRect_iset'>iset</a>(int left, int top, int right, int bottom)
</pre>
-Sets <a href='SkRect_Reference#SkRect'>SkRect</a> <a href='SkRect_Reference#SkRect'>to</a> (<a href='#SkRect_iset_left'>left</a>, <a href='#SkRect_iset_top'>top</a>, <a href='#SkRect_iset_right'>right</a>, <a href='#SkRect_iset_bottom'>bottom</a>).
+Sets <a href='SkRect_Reference#SkRect'>SkRect</a> to (<a href='#SkRect_iset_left'>left</a>, <a href='#SkRect_iset_top'>top</a>, <a href='#SkRect_iset_right'>right</a>, <a href='#SkRect_iset_bottom'>bottom</a>).
All parameters are promoted from integer to <a href='undocumented#Scalar'>scalar</a>.
-<a href='#SkRect_iset_left'>left</a> <a href='#SkRect_iset_left'>and</a> <a href='#SkRect_iset_right'>right</a> <a href='#SkRect_iset_right'>are</a> <a href='#SkRect_iset_right'>not</a> <a href='#SkRect_iset_right'>sorted</a>; <a href='#SkRect_iset_left'>left</a> <a href='#SkRect_iset_left'>is</a> <a href='#SkRect_iset_left'>not</a> <a href='#SkRect_iset_left'>necessarily</a> <a href='#SkRect_iset_left'>less</a> <a href='#SkRect_iset_left'>than</a> <a href='#SkRect_iset_right'>right</a>.
-<a href='#SkRect_iset_top'>top</a> <a href='#SkRect_iset_top'>and</a> <a href='#SkRect_iset_bottom'>bottom</a> <a href='#SkRect_iset_bottom'>are</a> <a href='#SkRect_iset_bottom'>not</a> <a href='#SkRect_iset_bottom'>sorted</a>; <a href='#SkRect_iset_top'>top</a> <a href='#SkRect_iset_top'>is</a> <a href='#SkRect_iset_top'>not</a> <a href='#SkRect_iset_top'>necessarily</a> <a href='#SkRect_iset_top'>less</a> <a href='#SkRect_iset_top'>than</a> <a href='#SkRect_iset_bottom'>bottom</a>.
+<a href='#SkRect_iset_left'>left</a> and <a href='#SkRect_iset_right'>right</a> are not sorted; <a href='#SkRect_iset_left'>left</a> is not necessarily less than <a href='#SkRect_iset_right'>right</a>.
+<a href='#SkRect_iset_top'>top</a> and <a href='#SkRect_iset_bottom'>bottom</a> are not sorted; <a href='#SkRect_iset_top'>top</a> is not necessarily less than <a href='#SkRect_iset_bottom'>bottom</a>.
### Parameters
<table> <tr> <td><a name='SkRect_iset_left'><code><strong>left</strong></code></a></td>
- <td>promoted to <a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>and</a> <a href='undocumented#SkScalar'>stored</a> <a href='undocumented#SkScalar'>in</a> <a href='#SkRect_fLeft'>fLeft</a></td>
+ <td>promoted to <a href='undocumented#SkScalar'>SkScalar</a> and stored in <a href='#SkRect_fLeft'>fLeft</a></td>
</tr>
<tr> <td><a name='SkRect_iset_top'><code><strong>top</strong></code></a></td>
- <td>promoted to <a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>and</a> <a href='undocumented#SkScalar'>stored</a> <a href='undocumented#SkScalar'>in</a> <a href='#SkRect_fTop'>fTop</a></td>
+ <td>promoted to <a href='undocumented#SkScalar'>SkScalar</a> and stored in <a href='#SkRect_fTop'>fTop</a></td>
</tr>
<tr> <td><a name='SkRect_iset_right'><code><strong>right</strong></code></a></td>
- <td>promoted to <a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>and</a> <a href='undocumented#SkScalar'>stored</a> <a href='undocumented#SkScalar'>in</a> <a href='#SkRect_fRight'>fRight</a></td>
+ <td>promoted to <a href='undocumented#SkScalar'>SkScalar</a> and stored in <a href='#SkRect_fRight'>fRight</a></td>
</tr>
<tr> <td><a name='SkRect_iset_bottom'><code><strong>bottom</strong></code></a></td>
- <td>promoted to <a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>and</a> <a href='undocumented#SkScalar'>stored</a> <a href='undocumented#SkScalar'>in</a> <a href='#SkRect_fBottom'>fBottom</a></td>
+ <td>promoted to <a href='undocumented#SkScalar'>SkScalar</a> and stored in <a href='#SkRect_fBottom'>fBottom</a></td>
</tr>
</table>
@@ -1512,20 +1512,20 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-void <a href='#SkRect_isetWH'>isetWH</a>(<a href='#SkRect_isetWH'>int</a> <a href='#SkRect_isetWH'>width</a>, <a href='#SkRect_isetWH'>int</a> <a href='#SkRect_isetWH'>height</a>)
+void <a href='#SkRect_isetWH'>isetWH</a>(int width, int height)
</pre>
-Sets <a href='SkRect_Reference#SkRect'>SkRect</a> <a href='SkRect_Reference#SkRect'>to</a> (0, 0, <a href='#SkRect_isetWH_width'>width</a>, <a href='#SkRect_isetWH_height'>height</a>).
-<a href='#SkRect_isetWH_width'>width</a> <a href='#SkRect_isetWH_width'>and</a> <a href='#SkRect_isetWH_height'>height</a> <a href='#SkRect_isetWH_height'>may</a> <a href='#SkRect_isetWH_height'>be</a> <a href='#SkRect_isetWH_height'>zero</a> <a href='#SkRect_isetWH_height'>or</a> <a href='#SkRect_isetWH_height'>negative</a>. <a href='#SkRect_isetWH_width'>width</a> <a href='#SkRect_isetWH_width'>and</a> <a href='#SkRect_isetWH_height'>height</a> <a href='#SkRect_isetWH_height'>are</a> <a href='#SkRect_isetWH_height'>promoted</a> <a href='#SkRect_isetWH_height'>from</a>
-integer to <a href='undocumented#SkScalar'>SkScalar</a>, <a href='undocumented#SkScalar'>large</a> <a href='undocumented#SkScalar'>values</a> <a href='undocumented#SkScalar'>may</a> <a href='undocumented#SkScalar'>lose</a> <a href='undocumented#SkScalar'>precision</a>.
+Sets <a href='SkRect_Reference#SkRect'>SkRect</a> to (0, 0, <a href='#SkRect_isetWH_width'>width</a>, <a href='#SkRect_isetWH_height'>height</a>).
+<a href='#SkRect_isetWH_width'>width</a> and <a href='#SkRect_isetWH_height'>height</a> may be zero or negative. <a href='#SkRect_isetWH_width'>width</a> and <a href='#SkRect_isetWH_height'>height</a> are promoted from
+integer to <a href='undocumented#SkScalar'>SkScalar</a>, large values may lose precision.
### Parameters
<table> <tr> <td><a name='SkRect_isetWH_width'><code><strong>width</strong></code></a></td>
- <td>promoted to <a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>and</a> <a href='undocumented#SkScalar'>stored</a> <a href='undocumented#SkScalar'>in</a> <a href='#SkRect_fRight'>fRight</a></td>
+ <td>promoted to <a href='undocumented#SkScalar'>SkScalar</a> and stored in <a href='#SkRect_fRight'>fRight</a></td>
</tr>
<tr> <td><a name='SkRect_isetWH_height'><code><strong>height</strong></code></a></td>
- <td>promoted to <a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>and</a> <a href='undocumented#SkScalar'>stored</a> <a href='undocumented#SkScalar'>in</a> <a href='#SkRect_fBottom'>fBottom</a></td>
+ <td>promoted to <a href='undocumented#SkScalar'>SkScalar</a> and stored in <a href='#SkRect_fBottom'>fBottom</a></td>
</tr>
</table>
@@ -1553,29 +1553,29 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-<a href='SkRect_Reference#SkRect'>SkRect</a> <a href='#SkRect_makeOffset'>makeOffset</a>(<a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>dx</a>, <a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>dy</a>) <a href='undocumented#SkScalar'>const</a>
+<a href='SkRect_Reference#SkRect'>SkRect</a> <a href='#SkRect_makeOffset'>makeOffset</a>(<a href='undocumented#SkScalar'>SkScalar</a> dx, <a href='undocumented#SkScalar'>SkScalar</a> dy) const
</pre>
-Returns <a href='SkRect_Reference#SkRect'>SkRect</a> <a href='SkRect_Reference#SkRect'>offset</a> <a href='SkRect_Reference#SkRect'>by</a> (<a href='#SkRect_makeOffset_dx'>dx</a>, <a href='#SkRect_makeOffset_dy'>dy</a>).
+Returns <a href='SkRect_Reference#SkRect'>SkRect</a> offset by (<a href='#SkRect_makeOffset_dx'>dx</a>, <a href='#SkRect_makeOffset_dy'>dy</a>).
-If <a href='#SkRect_makeOffset_dx'>dx</a> <a href='#SkRect_makeOffset_dx'>is</a> <a href='#SkRect_makeOffset_dx'>negative</a>, <a href='SkRect_Reference#SkRect'>SkRect</a> <a href='SkRect_Reference#SkRect'>returned</a> <a href='SkRect_Reference#SkRect'>is</a> <a href='SkRect_Reference#SkRect'>moved</a> <a href='SkRect_Reference#SkRect'>to</a> <a href='SkRect_Reference#SkRect'>the</a> <a href='SkRect_Reference#SkRect'>left</a>.
-If <a href='#SkRect_makeOffset_dx'>dx</a> <a href='#SkRect_makeOffset_dx'>is</a> <a href='#SkRect_makeOffset_dx'>positive</a>, <a href='SkRect_Reference#SkRect'>SkRect</a> <a href='SkRect_Reference#SkRect'>returned</a> <a href='SkRect_Reference#SkRect'>is</a> <a href='SkRect_Reference#SkRect'>moved</a> <a href='SkRect_Reference#SkRect'>to</a> <a href='SkRect_Reference#SkRect'>the</a> <a href='SkRect_Reference#SkRect'>right</a>.
-If <a href='#SkRect_makeOffset_dy'>dy</a> <a href='#SkRect_makeOffset_dy'>is</a> <a href='#SkRect_makeOffset_dy'>negative</a>, <a href='SkRect_Reference#SkRect'>SkRect</a> <a href='SkRect_Reference#SkRect'>returned</a> <a href='SkRect_Reference#SkRect'>is</a> <a href='SkRect_Reference#SkRect'>moved</a> <a href='SkRect_Reference#SkRect'>upward</a>.
-If <a href='#SkRect_makeOffset_dy'>dy</a> <a href='#SkRect_makeOffset_dy'>is</a> <a href='#SkRect_makeOffset_dy'>positive</a>, <a href='SkRect_Reference#SkRect'>SkRect</a> <a href='SkRect_Reference#SkRect'>returned</a> <a href='SkRect_Reference#SkRect'>is</a> <a href='SkRect_Reference#SkRect'>moved</a> <a href='SkRect_Reference#SkRect'>downward</a>.
+If <a href='#SkRect_makeOffset_dx'>dx</a> is negative, <a href='SkRect_Reference#SkRect'>SkRect</a> returned is moved to the left.
+If <a href='#SkRect_makeOffset_dx'>dx</a> is positive, <a href='SkRect_Reference#SkRect'>SkRect</a> returned is moved to the right.
+If <a href='#SkRect_makeOffset_dy'>dy</a> is negative, <a href='SkRect_Reference#SkRect'>SkRect</a> returned is moved upward.
+If <a href='#SkRect_makeOffset_dy'>dy</a> is positive, <a href='SkRect_Reference#SkRect'>SkRect</a> returned is moved downward.
### Parameters
<table> <tr> <td><a name='SkRect_makeOffset_dx'><code><strong>dx</strong></code></a></td>
- <td>added to <a href='#SkRect_fLeft'>fLeft</a> <a href='#SkRect_fLeft'>and</a> <a href='#SkRect_fRight'>fRight</a></td>
+ <td>added to <a href='#SkRect_fLeft'>fLeft</a> and <a href='#SkRect_fRight'>fRight</a></td>
</tr>
<tr> <td><a name='SkRect_makeOffset_dy'><code><strong>dy</strong></code></a></td>
- <td>added to <a href='#SkRect_fTop'>fTop</a> <a href='#SkRect_fTop'>and</a> <a href='#SkRect_fBottom'>fBottom</a></td>
+ <td>added to <a href='#SkRect_fTop'>fTop</a> and <a href='#SkRect_fBottom'>fBottom</a></td>
</tr>
</table>
### Return Value
-<a href='SkRect_Reference#SkRect'>SkRect</a> <a href='SkRect_Reference#SkRect'>offset</a> <a href='SkRect_Reference#SkRect'>on</a> <a href='SkRect_Reference#SkRect'>axes</a>, <a href='SkRect_Reference#SkRect'>with</a> <a href='SkRect_Reference#SkRect'>original</a> <a href='SkRect_Reference#SkRect'>width</a> <a href='SkRect_Reference#SkRect'>and</a> <a href='SkRect_Reference#SkRect'>height</a>
+<a href='SkRect_Reference#SkRect'>SkRect</a> offset on axes, with original width and height
### Example
@@ -1599,29 +1599,29 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-<a href='SkRect_Reference#SkRect'>SkRect</a> <a href='#SkRect_makeInset'>makeInset</a>(<a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>dx</a>, <a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>dy</a>) <a href='undocumented#SkScalar'>const</a>
+<a href='SkRect_Reference#SkRect'>SkRect</a> <a href='#SkRect_makeInset'>makeInset</a>(<a href='undocumented#SkScalar'>SkScalar</a> dx, <a href='undocumented#SkScalar'>SkScalar</a> dy) const
</pre>
-Returns <a href='SkRect_Reference#SkRect'>SkRect</a>, <a href='SkRect_Reference#SkRect'>inset</a> <a href='SkRect_Reference#SkRect'>by</a> (<a href='#SkRect_makeInset_dx'>dx</a>, <a href='#SkRect_makeInset_dy'>dy</a>).
+Returns <a href='SkRect_Reference#SkRect'>SkRect</a>, inset by (<a href='#SkRect_makeInset_dx'>dx</a>, <a href='#SkRect_makeInset_dy'>dy</a>).
-If <a href='#SkRect_makeInset_dx'>dx</a> <a href='#SkRect_makeInset_dx'>is</a> <a href='#SkRect_makeInset_dx'>negative</a>, <a href='SkRect_Reference#SkRect'>SkRect</a> <a href='SkRect_Reference#SkRect'>returned</a> <a href='SkRect_Reference#SkRect'>is</a> <a href='SkRect_Reference#SkRect'>wider</a>.
-If <a href='#SkRect_makeInset_dx'>dx</a> <a href='#SkRect_makeInset_dx'>is</a> <a href='#SkRect_makeInset_dx'>positive</a>, <a href='SkRect_Reference#SkRect'>SkRect</a> <a href='SkRect_Reference#SkRect'>returned</a> <a href='SkRect_Reference#SkRect'>is</a> <a href='SkRect_Reference#SkRect'>narrower</a>.
-If <a href='#SkRect_makeInset_dy'>dy</a> <a href='#SkRect_makeInset_dy'>is</a> <a href='#SkRect_makeInset_dy'>negative</a>, <a href='SkRect_Reference#SkRect'>SkRect</a> <a href='SkRect_Reference#SkRect'>returned</a> <a href='SkRect_Reference#SkRect'>is</a> <a href='SkRect_Reference#SkRect'>taller</a>.
-If <a href='#SkRect_makeInset_dy'>dy</a> <a href='#SkRect_makeInset_dy'>is</a> <a href='#SkRect_makeInset_dy'>positive</a>, <a href='SkRect_Reference#SkRect'>SkRect</a> <a href='SkRect_Reference#SkRect'>returned</a> <a href='SkRect_Reference#SkRect'>is</a> <a href='SkRect_Reference#SkRect'>shorter</a>.
+If <a href='#SkRect_makeInset_dx'>dx</a> is negative, <a href='SkRect_Reference#SkRect'>SkRect</a> returned is wider.
+If <a href='#SkRect_makeInset_dx'>dx</a> is positive, <a href='SkRect_Reference#SkRect'>SkRect</a> returned is narrower.
+If <a href='#SkRect_makeInset_dy'>dy</a> is negative, <a href='SkRect_Reference#SkRect'>SkRect</a> returned is taller.
+If <a href='#SkRect_makeInset_dy'>dy</a> is positive, <a href='SkRect_Reference#SkRect'>SkRect</a> returned is shorter.
### Parameters
<table> <tr> <td><a name='SkRect_makeInset_dx'><code><strong>dx</strong></code></a></td>
- <td>added to <a href='#SkRect_fLeft'>fLeft</a> <a href='#SkRect_fLeft'>and</a> <a href='#SkRect_fLeft'>subtracted</a> <a href='#SkRect_fLeft'>from</a> <a href='#SkRect_fRight'>fRight</a></td>
+ <td>added to <a href='#SkRect_fLeft'>fLeft</a> and subtracted from <a href='#SkRect_fRight'>fRight</a></td>
</tr>
<tr> <td><a name='SkRect_makeInset_dy'><code><strong>dy</strong></code></a></td>
- <td>added to <a href='#SkRect_fTop'>fTop</a> <a href='#SkRect_fTop'>and</a> <a href='#SkRect_fTop'>subtracted</a> <a href='#SkRect_fTop'>from</a> <a href='#SkRect_fBottom'>fBottom</a></td>
+ <td>added to <a href='#SkRect_fTop'>fTop</a> and subtracted from <a href='#SkRect_fBottom'>fBottom</a></td>
</tr>
</table>
### Return Value
-<a href='SkRect_Reference#SkRect'>SkRect</a> <a href='SkRect_Reference#SkRect'>inset</a> <a href='SkRect_Reference#SkRect'>symmetrically</a> <a href='SkRect_Reference#SkRect'>left</a> <a href='SkRect_Reference#SkRect'>and</a> <a href='SkRect_Reference#SkRect'>right</a>, <a href='SkRect_Reference#SkRect'>top</a> <a href='SkRect_Reference#SkRect'>and</a> <a href='SkRect_Reference#SkRect'>bottom</a>
+<a href='SkRect_Reference#SkRect'>SkRect</a> inset symmetrically left and right, top and bottom
### Example
@@ -1645,29 +1645,29 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-<a href='SkRect_Reference#SkRect'>SkRect</a> <a href='#SkRect_makeOutset'>makeOutset</a>(<a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>dx</a>, <a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>dy</a>) <a href='undocumented#SkScalar'>const</a>
+<a href='SkRect_Reference#SkRect'>SkRect</a> <a href='#SkRect_makeOutset'>makeOutset</a>(<a href='undocumented#SkScalar'>SkScalar</a> dx, <a href='undocumented#SkScalar'>SkScalar</a> dy) const
</pre>
-Returns <a href='SkRect_Reference#SkRect'>SkRect</a>, <a href='SkRect_Reference#SkRect'>outset</a> <a href='SkRect_Reference#SkRect'>by</a> (<a href='#SkRect_makeOutset_dx'>dx</a>, <a href='#SkRect_makeOutset_dy'>dy</a>).
+Returns <a href='SkRect_Reference#SkRect'>SkRect</a>, outset by (<a href='#SkRect_makeOutset_dx'>dx</a>, <a href='#SkRect_makeOutset_dy'>dy</a>).
-If <a href='#SkRect_makeOutset_dx'>dx</a> <a href='#SkRect_makeOutset_dx'>is</a> <a href='#SkRect_makeOutset_dx'>negative</a>, <a href='SkRect_Reference#SkRect'>SkRect</a> <a href='SkRect_Reference#SkRect'>returned</a> <a href='SkRect_Reference#SkRect'>is</a> <a href='SkRect_Reference#SkRect'>narrower</a>.
-If <a href='#SkRect_makeOutset_dx'>dx</a> <a href='#SkRect_makeOutset_dx'>is</a> <a href='#SkRect_makeOutset_dx'>positive</a>, <a href='SkRect_Reference#SkRect'>SkRect</a> <a href='SkRect_Reference#SkRect'>returned</a> <a href='SkRect_Reference#SkRect'>is</a> <a href='SkRect_Reference#SkRect'>wider</a>.
-If <a href='#SkRect_makeOutset_dy'>dy</a> <a href='#SkRect_makeOutset_dy'>is</a> <a href='#SkRect_makeOutset_dy'>negative</a>, <a href='SkRect_Reference#SkRect'>SkRect</a> <a href='SkRect_Reference#SkRect'>returned</a> <a href='SkRect_Reference#SkRect'>is</a> <a href='SkRect_Reference#SkRect'>shorter</a>.
-If <a href='#SkRect_makeOutset_dy'>dy</a> <a href='#SkRect_makeOutset_dy'>is</a> <a href='#SkRect_makeOutset_dy'>positive</a>, <a href='SkRect_Reference#SkRect'>SkRect</a> <a href='SkRect_Reference#SkRect'>returned</a> <a href='SkRect_Reference#SkRect'>is</a> <a href='SkRect_Reference#SkRect'>taller</a>.
+If <a href='#SkRect_makeOutset_dx'>dx</a> is negative, <a href='SkRect_Reference#SkRect'>SkRect</a> returned is narrower.
+If <a href='#SkRect_makeOutset_dx'>dx</a> is positive, <a href='SkRect_Reference#SkRect'>SkRect</a> returned is wider.
+If <a href='#SkRect_makeOutset_dy'>dy</a> is negative, <a href='SkRect_Reference#SkRect'>SkRect</a> returned is shorter.
+If <a href='#SkRect_makeOutset_dy'>dy</a> is positive, <a href='SkRect_Reference#SkRect'>SkRect</a> returned is taller.
### Parameters
<table> <tr> <td><a name='SkRect_makeOutset_dx'><code><strong>dx</strong></code></a></td>
- <td>subtracted to <a href='#SkRect_fLeft'>fLeft</a> <a href='#SkRect_fLeft'>and</a> <a href='#SkRect_fLeft'>added</a> <a href='#SkRect_fLeft'>from</a> <a href='#SkRect_fRight'>fRight</a></td>
+ <td>subtracted to <a href='#SkRect_fLeft'>fLeft</a> and added from <a href='#SkRect_fRight'>fRight</a></td>
</tr>
<tr> <td><a name='SkRect_makeOutset_dy'><code><strong>dy</strong></code></a></td>
- <td>subtracted to <a href='#SkRect_fTop'>fTop</a> <a href='#SkRect_fTop'>and</a> <a href='#SkRect_fTop'>added</a> <a href='#SkRect_fTop'>from</a> <a href='#SkRect_fBottom'>fBottom</a></td>
+ <td>subtracted to <a href='#SkRect_fTop'>fTop</a> and added from <a href='#SkRect_fBottom'>fBottom</a></td>
</tr>
</table>
### Return Value
-<a href='SkRect_Reference#SkRect'>SkRect</a> <a href='SkRect_Reference#SkRect'>outset</a> <a href='SkRect_Reference#SkRect'>symmetrically</a> <a href='SkRect_Reference#SkRect'>left</a> <a href='SkRect_Reference#SkRect'>and</a> <a href='SkRect_Reference#SkRect'>right</a>, <a href='SkRect_Reference#SkRect'>top</a> <a href='SkRect_Reference#SkRect'>and</a> <a href='SkRect_Reference#SkRect'>bottom</a>
+<a href='SkRect_Reference#SkRect'>SkRect</a> outset symmetrically left and right, top and bottom
### Example
@@ -1691,23 +1691,23 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-void offset(<a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>dx</a>, <a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>dy</a>)
+void offset(<a href='undocumented#SkScalar'>SkScalar</a> dx, <a href='undocumented#SkScalar'>SkScalar</a> dy)
</pre>
-Offsets <a href='SkRect_Reference#SkRect'>SkRect</a> <a href='SkRect_Reference#SkRect'>by</a> <a href='SkRect_Reference#SkRect'>adding</a> <a href='#SkRect_offset_dx'>dx</a> <a href='#SkRect_offset_dx'>to</a> <a href='#SkRect_fLeft'>fLeft</a>, <a href='#SkRect_fRight'>fRight</a>; <a href='#SkRect_fRight'>and</a> <a href='#SkRect_fRight'>by</a> <a href='#SkRect_fRight'>adding</a> <a href='#SkRect_offset_dy'>dy</a> <a href='#SkRect_offset_dy'>to</a> <a href='#SkRect_fTop'>fTop</a>, <a href='#SkRect_fBottom'>fBottom</a>.
+Offsets <a href='SkRect_Reference#SkRect'>SkRect</a> by adding <a href='#SkRect_offset_dx'>dx</a> to <a href='#SkRect_fLeft'>fLeft</a>, <a href='#SkRect_fRight'>fRight</a>; and by adding <a href='#SkRect_offset_dy'>dy</a> to <a href='#SkRect_fTop'>fTop</a>, <a href='#SkRect_fBottom'>fBottom</a>.
-If <a href='#SkRect_offset_dx'>dx</a> <a href='#SkRect_offset_dx'>is</a> <a href='#SkRect_offset_dx'>negative</a>, <a href='#SkRect_offset_dx'>moves</a> <a href='SkRect_Reference#SkRect'>SkRect</a> <a href='SkRect_Reference#SkRect'>to</a> <a href='SkRect_Reference#SkRect'>the</a> <a href='SkRect_Reference#SkRect'>left</a>.
-If <a href='#SkRect_offset_dx'>dx</a> <a href='#SkRect_offset_dx'>is</a> <a href='#SkRect_offset_dx'>positive</a>, <a href='#SkRect_offset_dx'>moves</a> <a href='SkRect_Reference#SkRect'>SkRect</a> <a href='SkRect_Reference#SkRect'>to</a> <a href='SkRect_Reference#SkRect'>the</a> <a href='SkRect_Reference#SkRect'>right</a>.
-If <a href='#SkRect_offset_dy'>dy</a> <a href='#SkRect_offset_dy'>is</a> <a href='#SkRect_offset_dy'>negative</a>, <a href='#SkRect_offset_dy'>moves</a> <a href='SkRect_Reference#SkRect'>SkRect</a> <a href='SkRect_Reference#SkRect'>upward</a>.
-If <a href='#SkRect_offset_dy'>dy</a> <a href='#SkRect_offset_dy'>is</a> <a href='#SkRect_offset_dy'>positive</a>, <a href='#SkRect_offset_dy'>moves</a> <a href='SkRect_Reference#SkRect'>SkRect</a> <a href='SkRect_Reference#SkRect'>downward</a>.
+If <a href='#SkRect_offset_dx'>dx</a> is negative, moves <a href='SkRect_Reference#SkRect'>SkRect</a> to the left.
+If <a href='#SkRect_offset_dx'>dx</a> is positive, moves <a href='SkRect_Reference#SkRect'>SkRect</a> to the right.
+If <a href='#SkRect_offset_dy'>dy</a> is negative, moves <a href='SkRect_Reference#SkRect'>SkRect</a> upward.
+If <a href='#SkRect_offset_dy'>dy</a> is positive, moves <a href='SkRect_Reference#SkRect'>SkRect</a> downward.
### Parameters
<table> <tr> <td><a name='SkRect_offset_dx'><code><strong>dx</strong></code></a></td>
- <td>offset added to <a href='#SkRect_fLeft'>fLeft</a> <a href='#SkRect_fLeft'>and</a> <a href='#SkRect_fRight'>fRight</a></td>
+ <td>offset added to <a href='#SkRect_fLeft'>fLeft</a> and <a href='#SkRect_fRight'>fRight</a></td>
</tr>
<tr> <td><a name='SkRect_offset_dy'><code><strong>dy</strong></code></a></td>
- <td>offset added to <a href='#SkRect_fTop'>fTop</a> <a href='#SkRect_fTop'>and</a> <a href='#SkRect_fBottom'>fBottom</a></td>
+ <td>offset added to <a href='#SkRect_fTop'>fTop</a> and <a href='#SkRect_fBottom'>fBottom</a></td>
</tr>
</table>
@@ -1732,16 +1732,16 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-void offset(const <a href='SkPoint_Reference#SkPoint'>SkPoint</a>& <a href='SkPoint_Reference#SkPoint'>delta</a>)
+void offset(const <a href='SkPoint_Reference#SkPoint'>SkPoint</a>& delta)
</pre>
-Offsets <a href='SkRect_Reference#SkRect'>SkRect</a> <a href='SkRect_Reference#SkRect'>by</a> <a href='SkRect_Reference#SkRect'>adding</a> <a href='#SkRect_offset_2_delta'>delta</a>.<a href='#SkPoint_fX'>fX</a> <a href='#SkPoint_fX'>to</a> <a href='#SkRect_fLeft'>fLeft</a>, <a href='#SkRect_fRight'>fRight</a>; <a href='#SkRect_fRight'>and</a> <a href='#SkRect_fRight'>by</a> <a href='#SkRect_fRight'>adding</a> <a href='#SkRect_offset_2_delta'>delta</a>.<a href='#SkPoint_fY'>fY</a> <a href='#SkPoint_fY'>to</a>
+Offsets <a href='SkRect_Reference#SkRect'>SkRect</a> by adding <a href='#SkRect_offset_2_delta'>delta</a>.<a href='#SkPoint_fX'>fX</a> to <a href='#SkRect_fLeft'>fLeft</a>, <a href='#SkRect_fRight'>fRight</a>; and by adding <a href='#SkRect_offset_2_delta'>delta</a>.<a href='#SkPoint_fY'>fY</a> to
<a href='#SkRect_fTop'>fTop</a>, <a href='#SkRect_fBottom'>fBottom</a>.
-If <a href='#SkRect_offset_2_delta'>delta</a>.<a href='#SkPoint_fX'>fX</a> <a href='#SkPoint_fX'>is</a> <a href='#SkPoint_fX'>negative</a>, <a href='#SkPoint_fX'>moves</a> <a href='SkRect_Reference#SkRect'>SkRect</a> <a href='SkRect_Reference#SkRect'>to</a> <a href='SkRect_Reference#SkRect'>the</a> <a href='SkRect_Reference#SkRect'>left</a>.
-If <a href='#SkRect_offset_2_delta'>delta</a>.<a href='#SkPoint_fX'>fX</a> <a href='#SkPoint_fX'>is</a> <a href='#SkPoint_fX'>positive</a>, <a href='#SkPoint_fX'>moves</a> <a href='SkRect_Reference#SkRect'>SkRect</a> <a href='SkRect_Reference#SkRect'>to</a> <a href='SkRect_Reference#SkRect'>the</a> <a href='SkRect_Reference#SkRect'>right</a>.
-If <a href='#SkRect_offset_2_delta'>delta</a>.<a href='#SkPoint_fY'>fY</a> <a href='#SkPoint_fY'>is</a> <a href='#SkPoint_fY'>negative</a>, <a href='#SkPoint_fY'>moves</a> <a href='SkRect_Reference#SkRect'>SkRect</a> <a href='SkRect_Reference#SkRect'>upward</a>.
-If <a href='#SkRect_offset_2_delta'>delta</a>.<a href='#SkPoint_fY'>fY</a> <a href='#SkPoint_fY'>is</a> <a href='#SkPoint_fY'>positive</a>, <a href='#SkPoint_fY'>moves</a> <a href='SkRect_Reference#SkRect'>SkRect</a> <a href='SkRect_Reference#SkRect'>downward</a>.
+If <a href='#SkRect_offset_2_delta'>delta</a>.<a href='#SkPoint_fX'>fX</a> is negative, moves <a href='SkRect_Reference#SkRect'>SkRect</a> to the left.
+If <a href='#SkRect_offset_2_delta'>delta</a>.<a href='#SkPoint_fX'>fX</a> is positive, moves <a href='SkRect_Reference#SkRect'>SkRect</a> to the right.
+If <a href='#SkRect_offset_2_delta'>delta</a>.<a href='#SkPoint_fY'>fY</a> is negative, moves <a href='SkRect_Reference#SkRect'>SkRect</a> upward.
+If <a href='#SkRect_offset_2_delta'>delta</a>.<a href='#SkPoint_fY'>fY</a> is positive, moves <a href='SkRect_Reference#SkRect'>SkRect</a> downward.
### Parameters
@@ -1771,19 +1771,19 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-void <a href='#SkRect_offsetTo'>offsetTo</a>(<a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>newX</a>, <a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>newY</a>)
+void <a href='#SkRect_offsetTo'>offsetTo</a>(<a href='undocumented#SkScalar'>SkScalar</a> newX, <a href='undocumented#SkScalar'>SkScalar</a> newY)
</pre>
-Offsets <a href='SkRect_Reference#SkRect'>SkRect</a> <a href='SkRect_Reference#SkRect'>so</a> <a href='SkRect_Reference#SkRect'>that</a> <a href='#SkRect_fLeft'>fLeft</a> <a href='#SkRect_fLeft'>equals</a> <a href='#SkRect_offsetTo_newX'>newX</a>, <a href='#SkRect_offsetTo_newX'>and</a> <a href='#SkRect_fTop'>fTop</a> <a href='#SkRect_fTop'>equals</a> <a href='#SkRect_offsetTo_newY'>newY</a>. <a href='#SkRect_offsetTo_newY'>width</a> <a href='#SkRect_offsetTo_newY'>and</a> <a href='#SkRect_offsetTo_newY'>height</a>
+Offsets <a href='SkRect_Reference#SkRect'>SkRect</a> so that <a href='#SkRect_fLeft'>fLeft</a> equals <a href='#SkRect_offsetTo_newX'>newX</a>, and <a href='#SkRect_fTop'>fTop</a> equals <a href='#SkRect_offsetTo_newY'>newY</a>. width and height
are unchanged.
### Parameters
<table> <tr> <td><a name='SkRect_offsetTo_newX'><code><strong>newX</strong></code></a></td>
- <td>stored in <a href='#SkRect_fLeft'>fLeft</a>, <a href='#SkRect_fLeft'>preserving</a> <a href='#SkRect_width'>width()</a></td>
+ <td>stored in <a href='#SkRect_fLeft'>fLeft</a>, preserving <a href='#SkRect_width'>width()</a></td>
</tr>
<tr> <td><a name='SkRect_offsetTo_newY'><code><strong>newY</strong></code></a></td>
- <td>stored in <a href='#SkRect_fTop'>fTop</a>, <a href='#SkRect_fTop'>preserving</a> <a href='#SkRect_height'>height()</a></td>
+ <td>stored in <a href='#SkRect_fTop'>fTop</a>, preserving <a href='#SkRect_height'>height()</a></td>
</tr>
</table>
@@ -1808,23 +1808,23 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-void inset(<a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>dx</a>, <a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>dy</a>)
+void inset(<a href='undocumented#SkScalar'>SkScalar</a> dx, <a href='undocumented#SkScalar'>SkScalar</a> dy)
</pre>
-Insets <a href='SkRect_Reference#SkRect'>SkRect</a> <a href='SkRect_Reference#SkRect'>by</a> (<a href='#SkRect_inset_dx'>dx</a>, <a href='#SkRect_inset_dy'>dy</a>).
+Insets <a href='SkRect_Reference#SkRect'>SkRect</a> by (<a href='#SkRect_inset_dx'>dx</a>, <a href='#SkRect_inset_dy'>dy</a>).
-If <a href='#SkRect_inset_dx'>dx</a> <a href='#SkRect_inset_dx'>is</a> <a href='#SkRect_inset_dx'>positive</a>, <a href='#SkRect_inset_dx'>makes</a> <a href='SkRect_Reference#SkRect'>SkRect</a> <a href='SkRect_Reference#SkRect'>narrower</a>.
-If <a href='#SkRect_inset_dx'>dx</a> <a href='#SkRect_inset_dx'>is</a> <a href='#SkRect_inset_dx'>negative</a>, <a href='#SkRect_inset_dx'>makes</a> <a href='SkRect_Reference#SkRect'>SkRect</a> <a href='SkRect_Reference#SkRect'>wider</a>.
-If <a href='#SkRect_inset_dy'>dy</a> <a href='#SkRect_inset_dy'>is</a> <a href='#SkRect_inset_dy'>positive</a>, <a href='#SkRect_inset_dy'>makes</a> <a href='SkRect_Reference#SkRect'>SkRect</a> <a href='SkRect_Reference#SkRect'>shorter</a>.
-If <a href='#SkRect_inset_dy'>dy</a> <a href='#SkRect_inset_dy'>is</a> <a href='#SkRect_inset_dy'>negative</a>, <a href='#SkRect_inset_dy'>makes</a> <a href='SkRect_Reference#SkRect'>SkRect</a> <a href='SkRect_Reference#SkRect'>taller</a>.
+If <a href='#SkRect_inset_dx'>dx</a> is positive, makes <a href='SkRect_Reference#SkRect'>SkRect</a> narrower.
+If <a href='#SkRect_inset_dx'>dx</a> is negative, makes <a href='SkRect_Reference#SkRect'>SkRect</a> wider.
+If <a href='#SkRect_inset_dy'>dy</a> is positive, makes <a href='SkRect_Reference#SkRect'>SkRect</a> shorter.
+If <a href='#SkRect_inset_dy'>dy</a> is negative, makes <a href='SkRect_Reference#SkRect'>SkRect</a> taller.
### Parameters
<table> <tr> <td><a name='SkRect_inset_dx'><code><strong>dx</strong></code></a></td>
- <td>added to <a href='#SkRect_fLeft'>fLeft</a> <a href='#SkRect_fLeft'>and</a> <a href='#SkRect_fLeft'>subtracted</a> <a href='#SkRect_fLeft'>from</a> <a href='#SkRect_fRight'>fRight</a></td>
+ <td>added to <a href='#SkRect_fLeft'>fLeft</a> and subtracted from <a href='#SkRect_fRight'>fRight</a></td>
</tr>
<tr> <td><a name='SkRect_inset_dy'><code><strong>dy</strong></code></a></td>
- <td>added to <a href='#SkRect_fTop'>fTop</a> <a href='#SkRect_fTop'>and</a> <a href='#SkRect_fTop'>subtracted</a> <a href='#SkRect_fTop'>from</a> <a href='#SkRect_fBottom'>fBottom</a></td>
+ <td>added to <a href='#SkRect_fTop'>fTop</a> and subtracted from <a href='#SkRect_fBottom'>fBottom</a></td>
</tr>
</table>
@@ -1849,23 +1849,23 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-void outset(<a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>dx</a>, <a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>dy</a>)
+void outset(<a href='undocumented#SkScalar'>SkScalar</a> dx, <a href='undocumented#SkScalar'>SkScalar</a> dy)
</pre>
-Outsets <a href='SkRect_Reference#SkRect'>SkRect</a> <a href='SkRect_Reference#SkRect'>by</a> (<a href='#SkRect_outset_dx'>dx</a>, <a href='#SkRect_outset_dy'>dy</a>).
+Outsets <a href='SkRect_Reference#SkRect'>SkRect</a> by (<a href='#SkRect_outset_dx'>dx</a>, <a href='#SkRect_outset_dy'>dy</a>).
-If <a href='#SkRect_outset_dx'>dx</a> <a href='#SkRect_outset_dx'>is</a> <a href='#SkRect_outset_dx'>positive</a>, <a href='#SkRect_outset_dx'>makes</a> <a href='SkRect_Reference#SkRect'>SkRect</a> <a href='SkRect_Reference#SkRect'>wider</a>.
-If <a href='#SkRect_outset_dx'>dx</a> <a href='#SkRect_outset_dx'>is</a> <a href='#SkRect_outset_dx'>negative</a>, <a href='#SkRect_outset_dx'>makes</a> <a href='SkRect_Reference#SkRect'>SkRect</a> <a href='SkRect_Reference#SkRect'>narrower</a>.
-If <a href='#SkRect_outset_dy'>dy</a> <a href='#SkRect_outset_dy'>is</a> <a href='#SkRect_outset_dy'>positive</a>, <a href='#SkRect_outset_dy'>makes</a> <a href='SkRect_Reference#SkRect'>SkRect</a> <a href='SkRect_Reference#SkRect'>taller</a>.
-If <a href='#SkRect_outset_dy'>dy</a> <a href='#SkRect_outset_dy'>is</a> <a href='#SkRect_outset_dy'>negative</a>, <a href='#SkRect_outset_dy'>makes</a> <a href='SkRect_Reference#SkRect'>SkRect</a> <a href='SkRect_Reference#SkRect'>shorter</a>.
+If <a href='#SkRect_outset_dx'>dx</a> is positive, makes <a href='SkRect_Reference#SkRect'>SkRect</a> wider.
+If <a href='#SkRect_outset_dx'>dx</a> is negative, makes <a href='SkRect_Reference#SkRect'>SkRect</a> narrower.
+If <a href='#SkRect_outset_dy'>dy</a> is positive, makes <a href='SkRect_Reference#SkRect'>SkRect</a> taller.
+If <a href='#SkRect_outset_dy'>dy</a> is negative, makes <a href='SkRect_Reference#SkRect'>SkRect</a> shorter.
### Parameters
<table> <tr> <td><a name='SkRect_outset_dx'><code><strong>dx</strong></code></a></td>
- <td>subtracted to <a href='#SkRect_fLeft'>fLeft</a> <a href='#SkRect_fLeft'>and</a> <a href='#SkRect_fLeft'>added</a> <a href='#SkRect_fLeft'>from</a> <a href='#SkRect_fRight'>fRight</a></td>
+ <td>subtracted to <a href='#SkRect_fLeft'>fLeft</a> and added from <a href='#SkRect_fRight'>fRight</a></td>
</tr>
<tr> <td><a name='SkRect_outset_dy'><code><strong>dy</strong></code></a></td>
- <td>subtracted to <a href='#SkRect_fTop'>fTop</a> <a href='#SkRect_fTop'>and</a> <a href='#SkRect_fTop'>added</a> <a href='#SkRect_fTop'>from</a> <a href='#SkRect_fBottom'>fBottom</a></td>
+ <td>subtracted to <a href='#SkRect_fTop'>fTop</a> and added from <a href='#SkRect_fBottom'>fBottom</a></td>
</tr>
</table>
@@ -1887,39 +1887,39 @@
<a name='Intersection'></a>
-<a href='SkRect_Reference#Rect'>Rects</a> <a href='SkRect_Reference#Rect'>intersect</a> <a href='SkRect_Reference#Rect'>when</a> <a href='SkRect_Reference#Rect'>they</a> <a href='SkRect_Reference#Rect'>enclose</a> <a href='SkRect_Reference#Rect'>a</a> <a href='SkRect_Reference#Rect'>common</a> <a href='SkRect_Reference#Rect'>area</a>. <a href='SkRect_Reference#Rect'>To</a> <a href='SkRect_Reference#Rect'>intersect</a>, <a href='SkRect_Reference#Rect'>each</a> <a href='SkRect_Reference#Rect'>of</a> <a href='SkRect_Reference#Rect'>the</a> <a href='SkRect_Reference#Rect'>pair</a>
-<a href='SkRect_Reference#Rect'>must</a> <a href='SkRect_Reference#Rect'>describe</a> <a href='SkRect_Reference#Rect'>area</a>; <a href='#SkRect_fLeft'>fLeft</a> <a href='#SkRect_fLeft'>is</a> <a href='#SkRect_fLeft'>less</a> <a href='#SkRect_fLeft'>than</a> <a href='#SkRect_fRight'>fRight</a>, <a href='#SkRect_fRight'>and</a> <a href='#SkRect_fTop'>fTop</a> <a href='#SkRect_fTop'>is</a> <a href='#SkRect_fTop'>less</a> <a href='#SkRect_fTop'>than</a> <a href='#SkRect_fBottom'>fBottom</a>;
-<a href='#SkRect_isEmpty'>isEmpty</a>() <a href='#SkRect_isEmpty'>returns</a> <a href='#SkRect_isEmpty'>false</a>. <a href='#SkRect_isEmpty'>The</a> <a href='#SkRect_isEmpty'>intersection</a> <a href='#SkRect_isEmpty'>of</a> <a href='SkRect_Reference#Rect'>Rect</a> <a href='SkRect_Reference#Rect'>pair</a> <a href='SkRect_Reference#Rect'>can</a> <a href='SkRect_Reference#Rect'>be</a> <a href='SkRect_Reference#Rect'>described</a> <a href='SkRect_Reference#Rect'>by</a>:
-<code>(<a href='undocumented#max()'>max</a>(<a href='undocumented#max()'>a</a>.<a href='#SkRect_fLeft'>fLeft</a>, <a href='#SkRect_fLeft'>b</a>.<a href='#SkRect_fLeft'>fLeft</a>), <a href='undocumented#max()'>max</a>(<a href='undocumented#max()'>a</a>.<a href='#SkRect_fTop'>fTop</a>, <a href='#SkRect_fTop'>b</a>.<a href='#SkRect_fTop'>fTop</a>),
-<a href='undocumented#min()'>min</a>(<a href='undocumented#min()'>a</a>.<a href='#SkRect_fRight'>fRight</a>, <a href='#SkRect_fRight'>b</a>.<a href='#SkRect_fRight'>fRight</a>), <a href='undocumented#min()'>min</a>(<a href='undocumented#min()'>a</a>.<a href='#SkRect_fBottom'>fBottom</a>, <a href='#SkRect_fBottom'>b</a>.<a href='#SkRect_fBottom'>fBottom</a>))</code>.
+<a href='SkRect_Reference#Rect'>Rects</a> intersect when they enclose a common area. To intersect, each of the pair
+must describe area; <a href='#SkRect_fLeft'>fLeft</a> is less than <a href='#SkRect_fRight'>fRight</a>, and <a href='#SkRect_fTop'>fTop</a> is less than <a href='#SkRect_fBottom'>fBottom</a>;
+<a href='#SkRect_isEmpty'>isEmpty</a>() returns false. The intersection of <a href='SkRect_Reference#Rect'>Rect</a> pair can be described by:
+<code>(<a href='undocumented#max()'>max</a>(a.<a href='#SkRect_fLeft'>fLeft</a>, b.<a href='#SkRect_fLeft'>fLeft</a>), <a href='undocumented#max()'>max</a>(a.<a href='#SkRect_fTop'>fTop</a>, b.<a href='#SkRect_fTop'>fTop</a>),
+<a href='undocumented#min()'>min</a>(a.<a href='#SkRect_fRight'>fRight</a>, b.<a href='#SkRect_fRight'>fRight</a>), <a href='undocumented#min()'>min</a>(a.<a href='#SkRect_fBottom'>fBottom</a>, b.<a href='#SkRect_fBottom'>fBottom</a>))</code>.
-The intersection is only meaningful if the resulting <a href='SkRect_Reference#Rect'>Rect</a> <a href='SkRect_Reference#Rect'>is</a> <a href='SkRect_Reference#Rect'>not</a> <a href='SkRect_Reference#Rect'>empty</a> <a href='SkRect_Reference#Rect'>and</a>
-<a href='SkRect_Reference#Rect'>describes</a> <a href='SkRect_Reference#Rect'>an</a> <a href='SkRect_Reference#Rect'>area</a>: <a href='#SkRect_fLeft'>fLeft</a> <a href='#SkRect_fLeft'>is</a> <a href='#SkRect_fLeft'>less</a> <a href='#SkRect_fLeft'>than</a> <a href='#SkRect_fRight'>fRight</a>, <a href='#SkRect_fRight'>and</a> <a href='#SkRect_fTop'>fTop</a> <a href='#SkRect_fTop'>is</a> <a href='#SkRect_fTop'>less</a> <a href='#SkRect_fTop'>than</a> <a href='#SkRect_fBottom'>fBottom</a>.
+The intersection is only meaningful if the resulting <a href='SkRect_Reference#Rect'>Rect</a> is not empty and
+describes an area: <a href='#SkRect_fLeft'>fLeft</a> is less than <a href='#SkRect_fRight'>fRight</a>, and <a href='#SkRect_fTop'>fTop</a> is less than <a href='#SkRect_fBottom'>fBottom</a>.
<a name='SkRect_contains'></a>
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-bool contains(<a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>x</a>, <a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>y</a>) <a href='undocumented#SkScalar'>const</a>
+bool contains(<a href='undocumented#SkScalar'>SkScalar</a> x, <a href='undocumented#SkScalar'>SkScalar</a> y) const
</pre>
Returns true if: <a href='#SkRect_fLeft'>fLeft</a> <= <a href='#SkRect_contains_x'>x</a> < <a href='#SkRect_fRight'>fRight</a> && <a href='#SkRect_fTop'>fTop</a> <= <a href='#SkRect_contains_y'>y</a> < <a href='#SkRect_fBottom'>fBottom</a>.
-Returns false if <a href='SkRect_Reference#SkRect'>SkRect</a> <a href='SkRect_Reference#SkRect'>is</a> <a href='SkRect_Reference#SkRect'>empty</a>.
+Returns false if <a href='SkRect_Reference#SkRect'>SkRect</a> is empty.
### Parameters
<table> <tr> <td><a name='SkRect_contains_x'><code><strong>x</strong></code></a></td>
- <td>test <a href='SkPoint_Reference#SkPoint'>SkPoint</a> <a href='SkPoint_Reference#SkPoint'>x-coordinate</a></td>
+ <td>test <a href='SkPoint_Reference#SkPoint'>SkPoint</a> x-coordinate</td>
</tr>
<tr> <td><a name='SkRect_contains_y'><code><strong>y</strong></code></a></td>
- <td>test <a href='SkPoint_Reference#SkPoint'>SkPoint</a> <a href='SkPoint_Reference#SkPoint'>y-coordinate</a></td>
+ <td>test <a href='SkPoint_Reference#SkPoint'>SkPoint</a> y-coordinate</td>
</tr>
</table>
### Return Value
-true if (<a href='#SkRect_contains_x'>x</a>, <a href='#SkRect_contains_y'>y</a>) <a href='#SkRect_contains_y'>is</a> <a href='#SkRect_contains_y'>inside</a> <a href='SkRect_Reference#SkRect'>SkRect</a>
+true if (<a href='#SkRect_contains_x'>x</a>, <a href='#SkRect_contains_y'>y</a>) is inside <a href='SkRect_Reference#SkRect'>SkRect</a>
### Example
@@ -1944,24 +1944,24 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-bool contains(const <a href='SkRect_Reference#SkRect'>SkRect</a>& <a href='SkRect_Reference#SkRect'>r</a>) <a href='SkRect_Reference#SkRect'>const</a>
+bool contains(const <a href='SkRect_Reference#SkRect'>SkRect</a>& r) const
</pre>
-Returns true if <a href='SkRect_Reference#SkRect'>SkRect</a> <a href='SkRect_Reference#SkRect'>contains</a> <a href='#SkRect_contains_2_r'>r</a>.
-Returns false if <a href='SkRect_Reference#SkRect'>SkRect</a> <a href='SkRect_Reference#SkRect'>is</a> <a href='SkRect_Reference#SkRect'>empty</a> <a href='SkRect_Reference#SkRect'>or</a> <a href='#SkRect_contains_2_r'>r</a> <a href='#SkRect_contains_2_r'>is</a> <a href='#SkRect_contains_2_r'>empty</a>.
+Returns true if <a href='SkRect_Reference#SkRect'>SkRect</a> contains <a href='#SkRect_contains_2_r'>r</a>.
+Returns false if <a href='SkRect_Reference#SkRect'>SkRect</a> is empty or <a href='#SkRect_contains_2_r'>r</a> is empty.
-<a href='SkRect_Reference#SkRect'>SkRect</a> <a href='SkRect_Reference#SkRect'>contains</a> <a href='#SkRect_contains_2_r'>r</a> <a href='#SkRect_contains_2_r'>when</a> <a href='SkRect_Reference#SkRect'>SkRect</a> <a href='SkRect_Reference#SkRect'>area</a> <a href='SkRect_Reference#SkRect'>completely</a> <a href='SkRect_Reference#SkRect'>includes</a> <a href='#SkRect_contains_2_r'>r</a> <a href='#SkRect_contains_2_r'>area</a>.
+<a href='SkRect_Reference#SkRect'>SkRect</a> contains <a href='#SkRect_contains_2_r'>r</a> when <a href='SkRect_Reference#SkRect'>SkRect</a> area completely includes <a href='#SkRect_contains_2_r'>r</a> area.
### Parameters
<table> <tr> <td><a name='SkRect_contains_2_r'><code><strong>r</strong></code></a></td>
- <td><a href='SkRect_Reference#SkRect'>SkRect</a> <a href='SkRect_Reference#SkRect'>contained</a></td>
+ <td><a href='SkRect_Reference#SkRect'>SkRect</a> contained</td>
</tr>
</table>
### Return Value
-true if all sides of <a href='SkRect_Reference#SkRect'>SkRect</a> <a href='SkRect_Reference#SkRect'>are</a> <a href='SkRect_Reference#SkRect'>outside</a> <a href='#SkRect_contains_2_r'>r</a>
+true if all sides of <a href='SkRect_Reference#SkRect'>SkRect</a> are outside <a href='#SkRect_contains_2_r'>r</a>
### Example
@@ -1986,24 +1986,24 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-bool contains(const <a href='SkIRect_Reference#SkIRect'>SkIRect</a>& <a href='SkIRect_Reference#SkIRect'>r</a>) <a href='SkIRect_Reference#SkIRect'>const</a>
+bool contains(const <a href='SkIRect_Reference#SkIRect'>SkIRect</a>& r) const
</pre>
-Returns true if <a href='SkRect_Reference#SkRect'>SkRect</a> <a href='SkRect_Reference#SkRect'>contains</a> <a href='#SkRect_contains_3_r'>r</a>.
-Returns false if <a href='SkRect_Reference#SkRect'>SkRect</a> <a href='SkRect_Reference#SkRect'>is</a> <a href='SkRect_Reference#SkRect'>empty</a> <a href='SkRect_Reference#SkRect'>or</a> <a href='#SkRect_contains_3_r'>r</a> <a href='#SkRect_contains_3_r'>is</a> <a href='#SkRect_contains_3_r'>empty</a>.
+Returns true if <a href='SkRect_Reference#SkRect'>SkRect</a> contains <a href='#SkRect_contains_3_r'>r</a>.
+Returns false if <a href='SkRect_Reference#SkRect'>SkRect</a> is empty or <a href='#SkRect_contains_3_r'>r</a> is empty.
-<a href='SkRect_Reference#SkRect'>SkRect</a> <a href='SkRect_Reference#SkRect'>contains</a> <a href='#SkRect_contains_3_r'>r</a> <a href='#SkRect_contains_3_r'>when</a> <a href='SkRect_Reference#SkRect'>SkRect</a> <a href='SkRect_Reference#SkRect'>area</a> <a href='SkRect_Reference#SkRect'>completely</a> <a href='SkRect_Reference#SkRect'>includes</a> <a href='#SkRect_contains_3_r'>r</a> <a href='#SkRect_contains_3_r'>area</a>.
+<a href='SkRect_Reference#SkRect'>SkRect</a> contains <a href='#SkRect_contains_3_r'>r</a> when <a href='SkRect_Reference#SkRect'>SkRect</a> area completely includes <a href='#SkRect_contains_3_r'>r</a> area.
### Parameters
<table> <tr> <td><a name='SkRect_contains_3_r'><code><strong>r</strong></code></a></td>
- <td><a href='SkIRect_Reference#SkIRect'>SkIRect</a> <a href='SkIRect_Reference#SkIRect'>contained</a></td>
+ <td><a href='SkIRect_Reference#SkIRect'>SkIRect</a> contained</td>
</tr>
</table>
### Return Value
-true if all sides of <a href='SkRect_Reference#SkRect'>SkRect</a> <a href='SkRect_Reference#SkRect'>are</a> <a href='SkRect_Reference#SkRect'>outside</a> <a href='#SkRect_contains_3_r'>r</a>
+true if all sides of <a href='SkRect_Reference#SkRect'>SkRect</a> are outside <a href='#SkRect_contains_3_r'>r</a>
### Example
@@ -2028,13 +2028,13 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-bool intersect(const <a href='SkRect_Reference#SkRect'>SkRect</a>& <a href='SkRect_Reference#SkRect'>r</a>)
+bool intersect(const <a href='SkRect_Reference#SkRect'>SkRect</a>& r)
</pre>
-Returns true if <a href='SkRect_Reference#SkRect'>SkRect</a> <a href='SkRect_Reference#SkRect'>intersects</a> <a href='#SkRect_intersect_r'>r</a>, <a href='#SkRect_intersect_r'>and</a> <a href='#SkRect_intersect_r'>sets</a> <a href='SkRect_Reference#SkRect'>SkRect</a> <a href='SkRect_Reference#SkRect'>to</a> <a href='SkRect_Reference#SkRect'>intersection</a>.
-Returns false if <a href='SkRect_Reference#SkRect'>SkRect</a> <a href='SkRect_Reference#SkRect'>does</a> <a href='SkRect_Reference#SkRect'>not</a> <a href='SkRect_Reference#SkRect'>intersect</a> <a href='#SkRect_intersect_r'>r</a>, <a href='#SkRect_intersect_r'>and</a> <a href='#SkRect_intersect_r'>leaves</a> <a href='SkRect_Reference#SkRect'>SkRect</a> <a href='SkRect_Reference#SkRect'>unchanged</a>.
+Returns true if <a href='SkRect_Reference#SkRect'>SkRect</a> intersects <a href='#SkRect_intersect_r'>r</a>, and sets <a href='SkRect_Reference#SkRect'>SkRect</a> to intersection.
+Returns false if <a href='SkRect_Reference#SkRect'>SkRect</a> does not intersect <a href='#SkRect_intersect_r'>r</a>, and leaves <a href='SkRect_Reference#SkRect'>SkRect</a> unchanged.
-Returns false if either <a href='#SkRect_intersect_r'>r</a> <a href='#SkRect_intersect_r'>or</a> <a href='SkRect_Reference#SkRect'>SkRect</a> <a href='SkRect_Reference#SkRect'>is</a> <a href='SkRect_Reference#SkRect'>empty</a>, <a href='SkRect_Reference#SkRect'>leaving</a> <a href='SkRect_Reference#SkRect'>SkRect</a> <a href='SkRect_Reference#SkRect'>unchanged</a>.
+Returns false if either <a href='#SkRect_intersect_r'>r</a> or <a href='SkRect_Reference#SkRect'>SkRect</a> is empty, leaving <a href='SkRect_Reference#SkRect'>SkRect</a> unchanged.
### Parameters
@@ -2045,13 +2045,13 @@
### Return Value
-true if <a href='#SkRect_intersect_r'>r</a> <a href='#SkRect_intersect_r'>and</a> <a href='SkRect_Reference#SkRect'>SkRect</a> <a href='SkRect_Reference#SkRect'>have</a> <a href='SkRect_Reference#SkRect'>area</a> <a href='SkRect_Reference#SkRect'>in</a> <a href='SkRect_Reference#SkRect'>common</a>
+true if <a href='#SkRect_intersect_r'>r</a> and <a href='SkRect_Reference#SkRect'>SkRect</a> have area in common
### Example
-<div><fiddle-embed name="5d0b12e0ef6f1c181dddded4274230ca"><div>Two <a href='undocumented#SkDebugf'>SkDebugf</a> <a href='undocumented#SkDebugf'>calls</a> <a href='undocumented#SkDebugf'>are</a> <a href='undocumented#SkDebugf'>required</a>. <a href='undocumented#SkDebugf'>If</a> <a href='undocumented#SkDebugf'>the</a> <a href='undocumented#SkDebugf'>calls</a> <a href='undocumented#SkDebugf'>are</a> <a href='undocumented#SkDebugf'>combined</a>, <a href='undocumented#SkDebugf'>their</a> <a href='undocumented#SkDebugf'>arguments</a>
-<a href='undocumented#SkDebugf'>may</a> <a href='undocumented#SkDebugf'>not</a> <a href='undocumented#SkDebugf'>be</a> <a href='undocumented#SkDebugf'>evaluated</a> <a href='undocumented#SkDebugf'>in</a> <a href='undocumented#SkDebugf'>left</a> <a href='undocumented#SkDebugf'>to</a> <a href='undocumented#SkDebugf'>right</a> <a href='undocumented#SkDebugf'>order</a>: <a href='undocumented#SkDebugf'>the</a> <a href='undocumented#SkDebugf'>printed</a> <a href='undocumented#SkDebugf'>intersection</a> <a href='undocumented#SkDebugf'>may</a>
-<a href='undocumented#SkDebugf'>be</a> <a href='undocumented#SkDebugf'>before</a> <a href='undocumented#SkDebugf'>or</a> <a href='undocumented#SkDebugf'>after</a> <a href='undocumented#SkDebugf'>the</a> <a href='undocumented#SkDebugf'>call</a> <a href='undocumented#SkDebugf'>to</a> <a href='undocumented#SkDebugf'>intersect</a>.
+<div><fiddle-embed name="5d0b12e0ef6f1c181dddded4274230ca"><div>Two <a href='undocumented#SkDebugf'>SkDebugf</a> calls are required. If the calls are combined, their arguments
+may not be evaluated in left to right order: the printed intersection may
+be before or after the call to intersect.
</div>
#### Example Output
@@ -2071,16 +2071,16 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-bool intersect(<a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>left</a>, <a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>top</a>, <a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>right</a>, <a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>bottom</a>)
+bool intersect(<a href='undocumented#SkScalar'>SkScalar</a> left, <a href='undocumented#SkScalar'>SkScalar</a> top, <a href='undocumented#SkScalar'>SkScalar</a> right, <a href='undocumented#SkScalar'>SkScalar</a> bottom)
</pre>
-Constructs <a href='SkRect_Reference#SkRect'>SkRect</a> <a href='SkRect_Reference#SkRect'>to</a> <a href='SkRect_Reference#SkRect'>intersect</a> <a href='SkRect_Reference#SkRect'>from</a> (<a href='#SkRect_intersect_2_left'>left</a>, <a href='#SkRect_intersect_2_top'>top</a>, <a href='#SkRect_intersect_2_right'>right</a>, <a href='#SkRect_intersect_2_bottom'>bottom</a>). <a href='#SkRect_intersect_2_bottom'>Does</a> <a href='#SkRect_intersect_2_bottom'>not</a> <a href='#SkRect_intersect_2_bottom'>sort</a>
+Constructs <a href='SkRect_Reference#SkRect'>SkRect</a> to intersect from (<a href='#SkRect_intersect_2_left'>left</a>, <a href='#SkRect_intersect_2_top'>top</a>, <a href='#SkRect_intersect_2_right'>right</a>, <a href='#SkRect_intersect_2_bottom'>bottom</a>). Does not sort
construction.
-Returns true if <a href='SkRect_Reference#SkRect'>SkRect</a> <a href='SkRect_Reference#SkRect'>intersects</a> <a href='SkRect_Reference#SkRect'>construction</a>, <a href='SkRect_Reference#SkRect'>and</a> <a href='SkRect_Reference#SkRect'>sets</a> <a href='SkRect_Reference#SkRect'>SkRect</a> <a href='SkRect_Reference#SkRect'>to</a> <a href='SkRect_Reference#SkRect'>intersection</a>.
-Returns false if <a href='SkRect_Reference#SkRect'>SkRect</a> <a href='SkRect_Reference#SkRect'>does</a> <a href='SkRect_Reference#SkRect'>not</a> <a href='SkRect_Reference#SkRect'>intersect</a> <a href='SkRect_Reference#SkRect'>construction</a>, <a href='SkRect_Reference#SkRect'>and</a> <a href='SkRect_Reference#SkRect'>leaves</a> <a href='SkRect_Reference#SkRect'>SkRect</a> <a href='SkRect_Reference#SkRect'>unchanged</a>.
+Returns true if <a href='SkRect_Reference#SkRect'>SkRect</a> intersects construction, and sets <a href='SkRect_Reference#SkRect'>SkRect</a> to intersection.
+Returns false if <a href='SkRect_Reference#SkRect'>SkRect</a> does not intersect construction, and leaves <a href='SkRect_Reference#SkRect'>SkRect</a> unchanged.
-Returns false if either construction or <a href='SkRect_Reference#SkRect'>SkRect</a> <a href='SkRect_Reference#SkRect'>is</a> <a href='SkRect_Reference#SkRect'>empty</a>, <a href='SkRect_Reference#SkRect'>leaving</a> <a href='SkRect_Reference#SkRect'>SkRect</a> <a href='SkRect_Reference#SkRect'>unchanged</a>.
+Returns false if either construction or <a href='SkRect_Reference#SkRect'>SkRect</a> is empty, leaving <a href='SkRect_Reference#SkRect'>SkRect</a> unchanged.
### Parameters
@@ -2100,13 +2100,13 @@
### Return Value
-true if construction and <a href='SkRect_Reference#SkRect'>SkRect</a> <a href='SkRect_Reference#SkRect'>have</a> <a href='SkRect_Reference#SkRect'>area</a> <a href='SkRect_Reference#SkRect'>in</a> <a href='SkRect_Reference#SkRect'>common</a>
+true if construction and <a href='SkRect_Reference#SkRect'>SkRect</a> have area in common
### Example
-<div><fiddle-embed name="5002f65a72def2787086a33131933e70"><div>Two <a href='undocumented#SkDebugf'>SkDebugf</a> <a href='undocumented#SkDebugf'>calls</a> <a href='undocumented#SkDebugf'>are</a> <a href='undocumented#SkDebugf'>required</a>. <a href='undocumented#SkDebugf'>If</a> <a href='undocumented#SkDebugf'>the</a> <a href='undocumented#SkDebugf'>calls</a> <a href='undocumented#SkDebugf'>are</a> <a href='undocumented#SkDebugf'>combined</a>, <a href='undocumented#SkDebugf'>their</a> <a href='undocumented#SkDebugf'>arguments</a>
-<a href='undocumented#SkDebugf'>may</a> <a href='undocumented#SkDebugf'>not</a> <a href='undocumented#SkDebugf'>be</a> <a href='undocumented#SkDebugf'>evaluated</a> <a href='undocumented#SkDebugf'>in</a> <a href='#SkRect_intersect_2_left'>left</a> <a href='#SkRect_intersect_2_left'>to</a> <a href='#SkRect_intersect_2_right'>right</a> <a href='#SkRect_intersect_2_right'>order</a>: <a href='#SkRect_intersect_2_right'>the</a> <a href='#SkRect_intersect_2_right'>printed</a> <a href='#SkRect_intersect_2_right'>intersection</a> <a href='#SkRect_intersect_2_right'>may</a>
-<a href='#SkRect_intersect_2_right'>be</a> <a href='#SkRect_intersect_2_right'>before</a> <a href='#SkRect_intersect_2_right'>or</a> <a href='#SkRect_intersect_2_right'>after</a> <a href='#SkRect_intersect_2_right'>the</a> <a href='#SkRect_intersect_2_right'>call</a> <a href='#SkRect_intersect_2_right'>to</a> <a href='#SkRect_intersect_2_right'>intersect</a>.
+<div><fiddle-embed name="5002f65a72def2787086a33131933e70"><div>Two <a href='undocumented#SkDebugf'>SkDebugf</a> calls are required. If the calls are combined, their arguments
+may not be evaluated in <a href='#SkRect_intersect_2_left'>left</a> to <a href='#SkRect_intersect_2_right'>right</a> order: the printed intersection may
+be before or after the call to intersect.
</div>
#### Example Output
@@ -2126,27 +2126,27 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-bool intersect(const <a href='SkRect_Reference#SkRect'>SkRect</a>& <a href='SkRect_Reference#SkRect'>a</a>, <a href='SkRect_Reference#SkRect'>const</a> <a href='SkRect_Reference#SkRect'>SkRect</a>& <a href='SkRect_Reference#SkRect'>b</a>)
+bool intersect(const <a href='SkRect_Reference#SkRect'>SkRect</a>& a, const <a href='SkRect_Reference#SkRect'>SkRect</a>& b)
</pre>
-Returns true if <a href='#SkRect_intersect_3_a'>a</a> <a href='#SkRect_intersect_3_a'>intersects</a> <a href='#SkRect_intersect_3_b'>b</a>, <a href='#SkRect_intersect_3_b'>and</a> <a href='#SkRect_intersect_3_b'>sets</a> <a href='SkRect_Reference#SkRect'>SkRect</a> <a href='SkRect_Reference#SkRect'>to</a> <a href='SkRect_Reference#SkRect'>intersection</a>.
-Returns false if <a href='#SkRect_intersect_3_a'>a</a> <a href='#SkRect_intersect_3_a'>does</a> <a href='#SkRect_intersect_3_a'>not</a> <a href='#SkRect_intersect_3_a'>intersect</a> <a href='#SkRect_intersect_3_b'>b</a>, <a href='#SkRect_intersect_3_b'>and</a> <a href='#SkRect_intersect_3_b'>leaves</a> <a href='SkRect_Reference#SkRect'>SkRect</a> <a href='SkRect_Reference#SkRect'>unchanged</a>.
+Returns true if <a href='#SkRect_intersect_3_a'>a</a> intersects <a href='#SkRect_intersect_3_b'>b</a>, and sets <a href='SkRect_Reference#SkRect'>SkRect</a> to intersection.
+Returns false if <a href='#SkRect_intersect_3_a'>a</a> does not intersect <a href='#SkRect_intersect_3_b'>b</a>, and leaves <a href='SkRect_Reference#SkRect'>SkRect</a> unchanged.
-Returns false if either <a href='#SkRect_intersect_3_a'>a</a> <a href='#SkRect_intersect_3_a'>or</a> <a href='#SkRect_intersect_3_b'>b</a> <a href='#SkRect_intersect_3_b'>is</a> <a href='#SkRect_intersect_3_b'>empty</a>, <a href='#SkRect_intersect_3_b'>leaving</a> <a href='SkRect_Reference#SkRect'>SkRect</a> <a href='SkRect_Reference#SkRect'>unchanged</a>.
+Returns false if either <a href='#SkRect_intersect_3_a'>a</a> or <a href='#SkRect_intersect_3_b'>b</a> is empty, leaving <a href='SkRect_Reference#SkRect'>SkRect</a> unchanged.
### Parameters
<table> <tr> <td><a name='SkRect_intersect_3_a'><code><strong>a</strong></code></a></td>
- <td><a href='SkRect_Reference#SkRect'>SkRect</a> <a href='SkRect_Reference#SkRect'>to</a> <a href='SkRect_Reference#SkRect'>intersect</a></td>
+ <td><a href='SkRect_Reference#SkRect'>SkRect</a> to intersect</td>
</tr>
<tr> <td><a name='SkRect_intersect_3_b'><code><strong>b</strong></code></a></td>
- <td><a href='SkRect_Reference#SkRect'>SkRect</a> <a href='SkRect_Reference#SkRect'>to</a> <a href='SkRect_Reference#SkRect'>intersect</a></td>
+ <td><a href='SkRect_Reference#SkRect'>SkRect</a> to intersect</td>
</tr>
</table>
### Return Value
-true if <a href='#SkRect_intersect_3_a'>a</a> <a href='#SkRect_intersect_3_a'>and</a> <a href='#SkRect_intersect_3_b'>b</a> <a href='#SkRect_intersect_3_b'>have</a> <a href='#SkRect_intersect_3_b'>area</a> <a href='#SkRect_intersect_3_b'>in</a> <a href='#SkRect_intersect_3_b'>common</a>
+true if <a href='#SkRect_intersect_3_a'>a</a> and <a href='#SkRect_intersect_3_b'>b</a> have area in common
### Example
@@ -2169,14 +2169,14 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-bool intersects(<a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>left</a>, <a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>top</a>, <a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>right</a>, <a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>bottom</a>) <a href='undocumented#SkScalar'>const</a>
+bool intersects(<a href='undocumented#SkScalar'>SkScalar</a> left, <a href='undocumented#SkScalar'>SkScalar</a> top, <a href='undocumented#SkScalar'>SkScalar</a> right, <a href='undocumented#SkScalar'>SkScalar</a> bottom) const
</pre>
-Constructs <a href='SkRect_Reference#SkRect'>SkRect</a> <a href='SkRect_Reference#SkRect'>to</a> <a href='SkRect_Reference#SkRect'>intersect</a> <a href='SkRect_Reference#SkRect'>from</a> (<a href='#SkRect_intersects_left'>left</a>, <a href='#SkRect_intersects_top'>top</a>, <a href='#SkRect_intersects_right'>right</a>, <a href='#SkRect_intersects_bottom'>bottom</a>). <a href='#SkRect_intersects_bottom'>Does</a> <a href='#SkRect_intersects_bottom'>not</a> <a href='#SkRect_intersects_bottom'>sort</a>
+Constructs <a href='SkRect_Reference#SkRect'>SkRect</a> to intersect from (<a href='#SkRect_intersects_left'>left</a>, <a href='#SkRect_intersects_top'>top</a>, <a href='#SkRect_intersects_right'>right</a>, <a href='#SkRect_intersects_bottom'>bottom</a>). Does not sort
construction.
-Returns true if <a href='SkRect_Reference#SkRect'>SkRect</a> <a href='SkRect_Reference#SkRect'>intersects</a> <a href='SkRect_Reference#SkRect'>construction</a>.
-Returns false if either construction or <a href='SkRect_Reference#SkRect'>SkRect</a> <a href='SkRect_Reference#SkRect'>is</a> <a href='SkRect_Reference#SkRect'>empty</a>, <a href='SkRect_Reference#SkRect'>or</a> <a href='SkRect_Reference#SkRect'>do</a> <a href='SkRect_Reference#SkRect'>not</a> <a href='SkRect_Reference#SkRect'>intersect</a>.
+Returns true if <a href='SkRect_Reference#SkRect'>SkRect</a> intersects construction.
+Returns false if either construction or <a href='SkRect_Reference#SkRect'>SkRect</a> is empty, or do not intersect.
### Parameters
@@ -2196,7 +2196,7 @@
### Return Value
-true if construction and <a href='SkRect_Reference#SkRect'>SkRect</a> <a href='SkRect_Reference#SkRect'>have</a> <a href='SkRect_Reference#SkRect'>area</a> <a href='SkRect_Reference#SkRect'>in</a> <a href='SkRect_Reference#SkRect'>common</a>
+true if construction and <a href='SkRect_Reference#SkRect'>SkRect</a> have area in common
### Example
@@ -2219,22 +2219,22 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-bool intersects(const <a href='SkRect_Reference#SkRect'>SkRect</a>& <a href='SkRect_Reference#SkRect'>r</a>) <a href='SkRect_Reference#SkRect'>const</a>
+bool intersects(const <a href='SkRect_Reference#SkRect'>SkRect</a>& r) const
</pre>
-Returns true if <a href='SkRect_Reference#SkRect'>SkRect</a> <a href='SkRect_Reference#SkRect'>intersects</a> <a href='#SkRect_intersects_2_r'>r</a>.
-Returns false if either <a href='#SkRect_intersects_2_r'>r</a> <a href='#SkRect_intersects_2_r'>or</a> <a href='SkRect_Reference#SkRect'>SkRect</a> <a href='SkRect_Reference#SkRect'>is</a> <a href='SkRect_Reference#SkRect'>empty</a>, <a href='SkRect_Reference#SkRect'>or</a> <a href='SkRect_Reference#SkRect'>do</a> <a href='SkRect_Reference#SkRect'>not</a> <a href='SkRect_Reference#SkRect'>intersect</a>.
+Returns true if <a href='SkRect_Reference#SkRect'>SkRect</a> intersects <a href='#SkRect_intersects_2_r'>r</a>.
+Returns false if either <a href='#SkRect_intersects_2_r'>r</a> or <a href='SkRect_Reference#SkRect'>SkRect</a> is empty, or do not intersect.
### Parameters
<table> <tr> <td><a name='SkRect_intersects_2_r'><code><strong>r</strong></code></a></td>
- <td><a href='SkRect_Reference#SkRect'>SkRect</a> <a href='SkRect_Reference#SkRect'>to</a> <a href='SkRect_Reference#SkRect'>intersect</a></td>
+ <td><a href='SkRect_Reference#SkRect'>SkRect</a> to intersect</td>
</tr>
</table>
### Return Value
-true if <a href='#SkRect_intersects_2_r'>r</a> <a href='#SkRect_intersects_2_r'>and</a> <a href='SkRect_Reference#SkRect'>SkRect</a> <a href='SkRect_Reference#SkRect'>have</a> <a href='SkRect_Reference#SkRect'>area</a> <a href='SkRect_Reference#SkRect'>in</a> <a href='SkRect_Reference#SkRect'>common</a>
+true if <a href='#SkRect_intersects_2_r'>r</a> and <a href='SkRect_Reference#SkRect'>SkRect</a> have area in common
### Example
@@ -2257,25 +2257,25 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-static bool <a href='#SkRect_Intersects'>Intersects</a>(<a href='#SkRect_Intersects'>const</a> <a href='SkRect_Reference#SkRect'>SkRect</a>& <a href='SkRect_Reference#SkRect'>a</a>, <a href='SkRect_Reference#SkRect'>const</a> <a href='SkRect_Reference#SkRect'>SkRect</a>& <a href='SkRect_Reference#SkRect'>b</a>)
+static bool <a href='#SkRect_Intersects'>Intersects</a>(const <a href='SkRect_Reference#SkRect'>SkRect</a>& a, const <a href='SkRect_Reference#SkRect'>SkRect</a>& b)
</pre>
-Returns true if <a href='#SkRect_Intersects_a'>a</a> <a href='#SkRect_Intersects_a'>intersects</a> <a href='#SkRect_Intersects_b'>b</a>.
-Returns false if either <a href='#SkRect_Intersects_a'>a</a> <a href='#SkRect_Intersects_a'>or</a> <a href='#SkRect_Intersects_b'>b</a> <a href='#SkRect_Intersects_b'>is</a> <a href='#SkRect_Intersects_b'>empty</a>, <a href='#SkRect_Intersects_b'>or</a> <a href='#SkRect_Intersects_b'>do</a> <a href='#SkRect_Intersects_b'>not</a> <a href='#SkRect_Intersects_b'>intersect</a>.
+Returns true if <a href='#SkRect_Intersects_a'>a</a> intersects <a href='#SkRect_Intersects_b'>b</a>.
+Returns false if either <a href='#SkRect_Intersects_a'>a</a> or <a href='#SkRect_Intersects_b'>b</a> is empty, or do not intersect.
### Parameters
<table> <tr> <td><a name='SkRect_Intersects_a'><code><strong>a</strong></code></a></td>
- <td><a href='SkRect_Reference#SkRect'>SkRect</a> <a href='SkRect_Reference#SkRect'>to</a> <a href='SkRect_Reference#SkRect'>intersect</a></td>
+ <td><a href='SkRect_Reference#SkRect'>SkRect</a> to intersect</td>
</tr>
<tr> <td><a name='SkRect_Intersects_b'><code><strong>b</strong></code></a></td>
- <td><a href='SkRect_Reference#SkRect'>SkRect</a> <a href='SkRect_Reference#SkRect'>to</a> <a href='SkRect_Reference#SkRect'>intersect</a></td>
+ <td><a href='SkRect_Reference#SkRect'>SkRect</a> to intersect</td>
</tr>
</table>
### Return Value
-true if <a href='#SkRect_Intersects_a'>a</a> <a href='#SkRect_Intersects_a'>and</a> <a href='#SkRect_Intersects_b'>b</a> <a href='#SkRect_Intersects_b'>have</a> <a href='#SkRect_Intersects_b'>area</a> <a href='#SkRect_Intersects_b'>in</a> <a href='#SkRect_Intersects_b'>common</a>
+true if <a href='#SkRect_Intersects_a'>a</a> and <a href='#SkRect_Intersects_b'>b</a> have area in common
### Example
@@ -2300,16 +2300,16 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-void join(<a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>left</a>, <a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>top</a>, <a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>right</a>, <a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>bottom</a>)
+void join(<a href='undocumented#SkScalar'>SkScalar</a> left, <a href='undocumented#SkScalar'>SkScalar</a> top, <a href='undocumented#SkScalar'>SkScalar</a> right, <a href='undocumented#SkScalar'>SkScalar</a> bottom)
</pre>
-Constructs <a href='SkRect_Reference#SkRect'>SkRect</a> <a href='SkRect_Reference#SkRect'>to</a> <a href='SkRect_Reference#SkRect'>intersect</a> <a href='SkRect_Reference#SkRect'>from</a> (<a href='#SkRect_join_left'>left</a>, <a href='#SkRect_join_top'>top</a>, <a href='#SkRect_join_right'>right</a>, <a href='#SkRect_join_bottom'>bottom</a>). <a href='#SkRect_join_bottom'>Does</a> <a href='#SkRect_join_bottom'>not</a> <a href='#SkRect_join_bottom'>sort</a>
+Constructs <a href='SkRect_Reference#SkRect'>SkRect</a> to intersect from (<a href='#SkRect_join_left'>left</a>, <a href='#SkRect_join_top'>top</a>, <a href='#SkRect_join_right'>right</a>, <a href='#SkRect_join_bottom'>bottom</a>). Does not sort
construction.
-Sets <a href='SkRect_Reference#SkRect'>SkRect</a> <a href='SkRect_Reference#SkRect'>to</a> <a href='SkRect_Reference#SkRect'>the</a> <a href='SkRect_Reference#SkRect'>union</a> <a href='SkRect_Reference#SkRect'>of</a> <a href='SkRect_Reference#SkRect'>itself</a> <a href='SkRect_Reference#SkRect'>and</a> <a href='SkRect_Reference#SkRect'>the</a> <a href='SkRect_Reference#SkRect'>construction</a>.
+Sets <a href='SkRect_Reference#SkRect'>SkRect</a> to the union of itself and the construction.
-Has no effect if construction is empty. Otherwise, if <a href='SkRect_Reference#SkRect'>SkRect</a> <a href='SkRect_Reference#SkRect'>is</a> <a href='SkRect_Reference#SkRect'>empty</a>, <a href='SkRect_Reference#SkRect'>sets</a>
-<a href='SkRect_Reference#SkRect'>SkRect</a> <a href='SkRect_Reference#SkRect'>to</a> <a href='SkRect_Reference#SkRect'>construction</a>.
+Has no effect if construction is empty. Otherwise, if <a href='SkRect_Reference#SkRect'>SkRect</a> is empty, sets
+<a href='SkRect_Reference#SkRect'>SkRect</a> to construction.
### Parameters
@@ -2348,13 +2348,13 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-void join(const <a href='SkRect_Reference#SkRect'>SkRect</a>& <a href='SkRect_Reference#SkRect'>r</a>)
+void join(const <a href='SkRect_Reference#SkRect'>SkRect</a>& r)
</pre>
-Sets <a href='SkRect_Reference#SkRect'>SkRect</a> <a href='SkRect_Reference#SkRect'>to</a> <a href='SkRect_Reference#SkRect'>the</a> <a href='SkRect_Reference#SkRect'>union</a> <a href='SkRect_Reference#SkRect'>of</a> <a href='SkRect_Reference#SkRect'>itself</a> <a href='SkRect_Reference#SkRect'>and</a> <a href='#SkRect_join_2_r'>r</a>.
+Sets <a href='SkRect_Reference#SkRect'>SkRect</a> to the union of itself and <a href='#SkRect_join_2_r'>r</a>.
-Has no effect if <a href='#SkRect_join_2_r'>r</a> <a href='#SkRect_join_2_r'>is</a> <a href='#SkRect_join_2_r'>empty</a>. <a href='#SkRect_join_2_r'>Otherwise</a>, <a href='#SkRect_join_2_r'>if</a> <a href='SkRect_Reference#SkRect'>SkRect</a> <a href='SkRect_Reference#SkRect'>is</a> <a href='SkRect_Reference#SkRect'>empty</a>, <a href='SkRect_Reference#SkRect'>sets</a>
-<a href='SkRect_Reference#SkRect'>SkRect</a> <a href='SkRect_Reference#SkRect'>to</a> <a href='#SkRect_join_2_r'>r</a>.
+Has no effect if <a href='#SkRect_join_2_r'>r</a> is empty. Otherwise, if <a href='SkRect_Reference#SkRect'>SkRect</a> is empty, sets
+<a href='SkRect_Reference#SkRect'>SkRect</a> to <a href='#SkRect_join_2_r'>r</a>.
### Parameters
@@ -2384,15 +2384,15 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-void <a href='#SkRect_joinNonEmptyArg'>joinNonEmptyArg</a>(<a href='#SkRect_joinNonEmptyArg'>const</a> <a href='SkRect_Reference#SkRect'>SkRect</a>& <a href='SkRect_Reference#SkRect'>r</a>)
+void <a href='#SkRect_joinNonEmptyArg'>joinNonEmptyArg</a>(const <a href='SkRect_Reference#SkRect'>SkRect</a>& r)
</pre>
-Sets <a href='SkRect_Reference#SkRect'>SkRect</a> <a href='SkRect_Reference#SkRect'>to</a> <a href='SkRect_Reference#SkRect'>the</a> <a href='SkRect_Reference#SkRect'>union</a> <a href='SkRect_Reference#SkRect'>of</a> <a href='SkRect_Reference#SkRect'>itself</a> <a href='SkRect_Reference#SkRect'>and</a> <a href='#SkRect_joinNonEmptyArg_r'>r</a>.
+Sets <a href='SkRect_Reference#SkRect'>SkRect</a> to the union of itself and <a href='#SkRect_joinNonEmptyArg_r'>r</a>.
-Asserts if <a href='#SkRect_joinNonEmptyArg_r'>r</a> <a href='#SkRect_joinNonEmptyArg_r'>is</a> <a href='#SkRect_joinNonEmptyArg_r'>empty</a> <a href='#SkRect_joinNonEmptyArg_r'>and</a> <a href='#SkRect_joinNonEmptyArg_r'>SK_DEBUG</a> <a href='#SkRect_joinNonEmptyArg_r'>is</a> <a href='#SkRect_joinNonEmptyArg_r'>defined</a>.
-If <a href='SkRect_Reference#SkRect'>SkRect</a> <a href='SkRect_Reference#SkRect'>is</a> <a href='SkRect_Reference#SkRect'>empty</a>, <a href='SkRect_Reference#SkRect'>sets</a> <a href='SkRect_Reference#SkRect'>SkRect</a> <a href='SkRect_Reference#SkRect'>to</a> <a href='#SkRect_joinNonEmptyArg_r'>r</a>.
+Asserts if <a href='#SkRect_joinNonEmptyArg_r'>r</a> is empty and SK_DEBUG is defined.
+If <a href='SkRect_Reference#SkRect'>SkRect</a> is empty, sets <a href='SkRect_Reference#SkRect'>SkRect</a> to <a href='#SkRect_joinNonEmptyArg_r'>r</a>.
-May produce incorrect results if <a href='#SkRect_joinNonEmptyArg_r'>r</a> <a href='#SkRect_joinNonEmptyArg_r'>is</a> <a href='#SkRect_joinNonEmptyArg_r'>empty</a>.
+May produce incorrect results if <a href='#SkRect_joinNonEmptyArg_r'>r</a> is empty.
### Parameters
@@ -2403,7 +2403,7 @@
### Example
-<div><fiddle-embed name="88439de2aa0911262c60c0eb506396cb"><div>Since <a href='SkRect_Reference#Rect'>Rect</a> <a href='SkRect_Reference#Rect'>is</a> <a href='SkRect_Reference#Rect'>not</a> <a href='SkRect_Reference#Rect'>sorted</a>, <a href='SkRect_Reference#Rect'>first</a> <a href='SkRect_Reference#Rect'>result</a> <a href='SkRect_Reference#Rect'>is</a> <a href='SkRect_Reference#Rect'>copy</a> <a href='SkRect_Reference#Rect'>of</a> <a href='SkRect_Reference#Rect'>toJoin</a>.
+<div><fiddle-embed name="88439de2aa0911262c60c0eb506396cb"><div>Since <a href='SkRect_Reference#Rect'>Rect</a> is not sorted, first result is copy of toJoin.
</div>
#### Example Output
@@ -2424,12 +2424,12 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-void <a href='#SkRect_joinPossiblyEmptyRect'>joinPossiblyEmptyRect</a>(<a href='#SkRect_joinPossiblyEmptyRect'>const</a> <a href='SkRect_Reference#SkRect'>SkRect</a>& <a href='SkRect_Reference#SkRect'>r</a>)
+void <a href='#SkRect_joinPossiblyEmptyRect'>joinPossiblyEmptyRect</a>(const <a href='SkRect_Reference#SkRect'>SkRect</a>& r)
</pre>
-Sets <a href='SkRect_Reference#SkRect'>SkRect</a> <a href='SkRect_Reference#SkRect'>to</a> <a href='SkRect_Reference#SkRect'>the</a> <a href='SkRect_Reference#SkRect'>union</a> <a href='SkRect_Reference#SkRect'>of</a> <a href='SkRect_Reference#SkRect'>itself</a> <a href='SkRect_Reference#SkRect'>and</a> <a href='SkRect_Reference#SkRect'>the</a> <a href='SkRect_Reference#SkRect'>construction</a>.
+Sets <a href='SkRect_Reference#SkRect'>SkRect</a> to the union of itself and the construction.
-May produce incorrect results if <a href='SkRect_Reference#SkRect'>SkRect</a> <a href='SkRect_Reference#SkRect'>or</a> <a href='#SkRect_joinPossiblyEmptyRect_r'>r</a> <a href='#SkRect_joinPossiblyEmptyRect_r'>is</a> <a href='#SkRect_joinPossiblyEmptyRect_r'>empty</a>.
+May produce incorrect results if <a href='SkRect_Reference#SkRect'>SkRect</a> or <a href='#SkRect_joinPossiblyEmptyRect_r'>r</a> is empty.
### Parameters
@@ -2440,7 +2440,7 @@
### Example
-<div><fiddle-embed name="a476548d0001296afd8e58c1eba1b70b"><div>Since <a href='SkRect_Reference#Rect'>Rect</a> <a href='SkRect_Reference#Rect'>is</a> <a href='SkRect_Reference#Rect'>not</a> <a href='SkRect_Reference#Rect'>sorted</a>, <a href='SkRect_Reference#Rect'>first</a> <a href='SkRect_Reference#Rect'>result</a> <a href='SkRect_Reference#Rect'>is</a> <a href='SkRect_Reference#Rect'>not</a> <a href='SkRect_Reference#Rect'>useful</a>.
+<div><fiddle-embed name="a476548d0001296afd8e58c1eba1b70b"><div>Since <a href='SkRect_Reference#Rect'>Rect</a> is not sorted, first result is not useful.
</div>
#### Example Output
@@ -2463,11 +2463,11 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-void round(<a href='SkIRect_Reference#SkIRect'>SkIRect</a>* <a href='SkIRect_Reference#SkIRect'>dst</a>) <a href='SkIRect_Reference#SkIRect'>const</a>
+void round(<a href='SkIRect_Reference#SkIRect'>SkIRect</a>* dst) const
</pre>
-Sets <a href='SkIRect_Reference#IRect'>IRect</a> <a href='SkIRect_Reference#IRect'>by</a> <a href='SkIRect_Reference#IRect'>adding</a> 0.5 <a href='SkIRect_Reference#IRect'>and</a> <a href='SkIRect_Reference#IRect'>discarding</a> <a href='SkIRect_Reference#IRect'>the</a> <a href='SkIRect_Reference#IRect'>fractional</a> <a href='SkIRect_Reference#IRect'>portion</a> <a href='SkIRect_Reference#IRect'>of</a> <a href='SkRect_Reference#Rect'>Rect</a>
-<a href='SkRect_Reference#Rect'>members</a>, <a href='SkRect_Reference#Rect'>using</a> <code>(<a href='undocumented#SkScalarRoundToInt'>SkScalarRoundToInt</a>(<a href='#SkRect_fLeft'>fLeft</a>), <a href='undocumented#SkScalarRoundToInt'>SkScalarRoundToInt</a>(<a href='#SkRect_fTop'>fTop</a>),
+Sets <a href='SkIRect_Reference#IRect'>IRect</a> by adding 0.5 and discarding the fractional portion of <a href='SkRect_Reference#Rect'>Rect</a>
+members, using <code>(<a href='undocumented#SkScalarRoundToInt'>SkScalarRoundToInt</a>(<a href='#SkRect_fLeft'>fLeft</a>), <a href='undocumented#SkScalarRoundToInt'>SkScalarRoundToInt</a>(<a href='#SkRect_fTop'>fTop</a>),
<a href='undocumented#SkScalarRoundToInt'>SkScalarRoundToInt</a>(<a href='#SkRect_fRight'>fRight</a>), <a href='undocumented#SkScalarRoundToInt'>SkScalarRoundToInt</a>(<a href='#SkRect_fBottom'>fBottom</a>))</code>.
### Parameters
@@ -2498,11 +2498,11 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-void <a href='#SkRect_roundOut'>roundOut</a>(<a href='SkIRect_Reference#SkIRect'>SkIRect</a>* <a href='SkIRect_Reference#SkIRect'>dst</a>) <a href='SkIRect_Reference#SkIRect'>const</a>
+void <a href='#SkRect_roundOut'>roundOut</a>(<a href='SkIRect_Reference#SkIRect'>SkIRect</a>* dst) const
</pre>
-Sets <a href='SkIRect_Reference#IRect'>IRect</a> <a href='SkIRect_Reference#IRect'>by</a> <a href='SkIRect_Reference#IRect'>discarding</a> <a href='SkIRect_Reference#IRect'>the</a> <a href='SkIRect_Reference#IRect'>fractional</a> <a href='SkIRect_Reference#IRect'>portion</a> <a href='SkIRect_Reference#IRect'>of</a> <a href='#SkRect_fLeft'>fLeft</a> <a href='#SkRect_fLeft'>and</a> <a href='#SkRect_fTop'>fTop</a>; <a href='#SkRect_fTop'>and</a> <a href='#SkRect_fTop'>rounding</a>
-<a href='#SkRect_fTop'>up</a> <a href='#SkRect_fRight'>fRight</a> <a href='#SkRect_fRight'>and</a> <a href='#SkRect_fBottom'>fBottom</a>, <a href='#SkRect_fBottom'>using</a>
+Sets <a href='SkIRect_Reference#IRect'>IRect</a> by discarding the fractional portion of <a href='#SkRect_fLeft'>fLeft</a> and <a href='#SkRect_fTop'>fTop</a>; and rounding
+up <a href='#SkRect_fRight'>fRight</a> and <a href='#SkRect_fBottom'>fBottom</a>, using
<code>(<a href='undocumented#SkScalarFloorToInt'>SkScalarFloorToInt</a>(<a href='#SkRect_fLeft'>fLeft</a>), <a href='undocumented#SkScalarFloorToInt'>SkScalarFloorToInt</a>(<a href='#SkRect_fTop'>fTop</a>),
<a href='undocumented#SkScalarCeilToInt'>SkScalarCeilToInt</a>(<a href='#SkRect_fRight'>fRight</a>), <a href='undocumented#SkScalarCeilToInt'>SkScalarCeilToInt</a>(<a href='#SkRect_fBottom'>fBottom</a>))</code>.
@@ -2534,11 +2534,11 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-void <a href='#SkRect_roundOut'>roundOut</a>(<a href='SkRect_Reference#SkRect'>SkRect</a>* <a href='SkRect_Reference#SkRect'>dst</a>) <a href='SkRect_Reference#SkRect'>const</a>
+void <a href='#SkRect_roundOut'>roundOut</a>(<a href='SkRect_Reference#SkRect'>SkRect</a>* dst) const
</pre>
-Sets <a href='SkRect_Reference#Rect'>Rect</a> <a href='SkRect_Reference#Rect'>by</a> <a href='SkRect_Reference#Rect'>discarding</a> <a href='SkRect_Reference#Rect'>the</a> <a href='SkRect_Reference#Rect'>fractional</a> <a href='SkRect_Reference#Rect'>portion</a> <a href='SkRect_Reference#Rect'>of</a> <a href='#SkRect_fLeft'>fLeft</a> <a href='#SkRect_fLeft'>and</a> <a href='#SkRect_fTop'>fTop</a>; <a href='#SkRect_fTop'>and</a> <a href='#SkRect_fTop'>rounding</a>
-<a href='#SkRect_fTop'>up</a> <a href='#SkRect_fRight'>fRight</a> <a href='#SkRect_fRight'>and</a> <a href='#SkRect_fBottom'>fBottom</a>, <a href='#SkRect_fBottom'>using</a>
+Sets <a href='SkRect_Reference#Rect'>Rect</a> by discarding the fractional portion of <a href='#SkRect_fLeft'>fLeft</a> and <a href='#SkRect_fTop'>fTop</a>; and rounding
+up <a href='#SkRect_fRight'>fRight</a> and <a href='#SkRect_fBottom'>fBottom</a>, using
<code>(<a href='undocumented#SkScalarFloorToInt'>SkScalarFloorToInt</a>(<a href='#SkRect_fLeft'>fLeft</a>), <a href='undocumented#SkScalarFloorToInt'>SkScalarFloorToInt</a>(<a href='#SkRect_fTop'>fTop</a>),
<a href='undocumented#SkScalarCeilToInt'>SkScalarCeilToInt</a>(<a href='#SkRect_fRight'>fRight</a>), <a href='undocumented#SkScalarCeilToInt'>SkScalarCeilToInt</a>(<a href='#SkRect_fBottom'>fBottom</a>))</code>.
@@ -2570,11 +2570,11 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-void <a href='#SkRect_roundIn'>roundIn</a>(<a href='SkIRect_Reference#SkIRect'>SkIRect</a>* <a href='SkIRect_Reference#SkIRect'>dst</a>) <a href='SkIRect_Reference#SkIRect'>const</a>
+void <a href='#SkRect_roundIn'>roundIn</a>(<a href='SkIRect_Reference#SkIRect'>SkIRect</a>* dst) const
</pre>
-Sets <a href='SkRect_Reference#Rect'>Rect</a> <a href='SkRect_Reference#Rect'>by</a> <a href='SkRect_Reference#Rect'>rounding</a> <a href='SkRect_Reference#Rect'>up</a> <a href='#SkRect_fLeft'>fLeft</a> <a href='#SkRect_fLeft'>and</a> <a href='#SkRect_fTop'>fTop</a>; <a href='#SkRect_fTop'>and</a> <a href='#SkRect_fTop'>discarding</a> <a href='#SkRect_fTop'>the</a> <a href='#SkRect_fTop'>fractional</a> <a href='#SkRect_fTop'>portion</a>
-<a href='#SkRect_fTop'>of</a> <a href='#SkRect_fRight'>fRight</a> <a href='#SkRect_fRight'>and</a> <a href='#SkRect_fBottom'>fBottom</a>, <a href='#SkRect_fBottom'>using</a>
+Sets <a href='SkRect_Reference#Rect'>Rect</a> by rounding up <a href='#SkRect_fLeft'>fLeft</a> and <a href='#SkRect_fTop'>fTop</a>; and discarding the fractional portion
+of <a href='#SkRect_fRight'>fRight</a> and <a href='#SkRect_fBottom'>fBottom</a>, using
<code>(<a href='undocumented#SkScalarCeilToInt'>SkScalarCeilToInt</a>(<a href='#SkRect_fLeft'>fLeft</a>), <a href='undocumented#SkScalarCeilToInt'>SkScalarCeilToInt</a>(<a href='#SkRect_fTop'>fTop</a>),
<a href='undocumented#SkScalarFloorToInt'>SkScalarFloorToInt</a>(<a href='#SkRect_fRight'>fRight</a>), <a href='undocumented#SkScalarFloorToInt'>SkScalarFloorToInt</a>(<a href='#SkRect_fBottom'>fBottom</a>))</code>.
@@ -2606,11 +2606,11 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-<a href='SkIRect_Reference#SkIRect'>SkIRect</a> <a href='#SkRect_round'>round()</a> <a href='#SkRect_round'>const</a>
+<a href='SkIRect_Reference#SkIRect'>SkIRect</a> <a href='#SkRect_round'>round()</a> const
</pre>
-Returns <a href='SkIRect_Reference#IRect'>IRect</a> <a href='SkIRect_Reference#IRect'>by</a> <a href='SkIRect_Reference#IRect'>adding</a> 0.5 <a href='SkIRect_Reference#IRect'>and</a> <a href='SkIRect_Reference#IRect'>discarding</a> <a href='SkIRect_Reference#IRect'>the</a> <a href='SkIRect_Reference#IRect'>fractional</a> <a href='SkIRect_Reference#IRect'>portion</a> <a href='SkIRect_Reference#IRect'>of</a> <a href='SkRect_Reference#Rect'>Rect</a>
-<a href='SkRect_Reference#Rect'>members</a>, <a href='SkRect_Reference#Rect'>using</a> <code>(<a href='undocumented#SkScalarRoundToInt'>SkScalarRoundToInt</a>(<a href='#SkRect_fLeft'>fLeft</a>), <a href='undocumented#SkScalarRoundToInt'>SkScalarRoundToInt</a>(<a href='#SkRect_fTop'>fTop</a>),
+Returns <a href='SkIRect_Reference#IRect'>IRect</a> by adding 0.5 and discarding the fractional portion of <a href='SkRect_Reference#Rect'>Rect</a>
+members, using <code>(<a href='undocumented#SkScalarRoundToInt'>SkScalarRoundToInt</a>(<a href='#SkRect_fLeft'>fLeft</a>), <a href='undocumented#SkScalarRoundToInt'>SkScalarRoundToInt</a>(<a href='#SkRect_fTop'>fTop</a>),
<a href='undocumented#SkScalarRoundToInt'>SkScalarRoundToInt</a>(<a href='#SkRect_fRight'>fRight</a>), <a href='undocumented#SkScalarRoundToInt'>SkScalarRoundToInt</a>(<a href='#SkRect_fBottom'>fBottom</a>))</code>.
### Return Value
@@ -2638,11 +2638,11 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-<a href='SkIRect_Reference#SkIRect'>SkIRect</a> <a href='#SkRect_roundOut'>roundOut</a>() <a href='#SkRect_roundOut'>const</a>
+<a href='SkIRect_Reference#SkIRect'>SkIRect</a> <a href='#SkRect_roundOut'>roundOut</a>() const
</pre>
-Sets <a href='SkIRect_Reference#IRect'>IRect</a> <a href='SkIRect_Reference#IRect'>by</a> <a href='SkIRect_Reference#IRect'>discarding</a> <a href='SkIRect_Reference#IRect'>the</a> <a href='SkIRect_Reference#IRect'>fractional</a> <a href='SkIRect_Reference#IRect'>portion</a> <a href='SkIRect_Reference#IRect'>of</a> <a href='#SkRect_fLeft'>fLeft</a> <a href='#SkRect_fLeft'>and</a> <a href='#SkRect_fTop'>fTop</a>; <a href='#SkRect_fTop'>and</a> <a href='#SkRect_fTop'>rounding</a>
-<a href='#SkRect_fTop'>up</a> <a href='#SkRect_fRight'>fRight</a> <a href='#SkRect_fRight'>and</a> <a href='#SkRect_fBottom'>fBottom</a>, <a href='#SkRect_fBottom'>using</a>
+Sets <a href='SkIRect_Reference#IRect'>IRect</a> by discarding the fractional portion of <a href='#SkRect_fLeft'>fLeft</a> and <a href='#SkRect_fTop'>fTop</a>; and rounding
+up <a href='#SkRect_fRight'>fRight</a> and <a href='#SkRect_fBottom'>fBottom</a>, using
<code>(<a href='undocumented#SkScalarFloorToInt'>SkScalarFloorToInt</a>(<a href='#SkRect_fLeft'>fLeft</a>), <a href='undocumented#SkScalarFloorToInt'>SkScalarFloorToInt</a>(<a href='#SkRect_fTop'>fTop</a>),
<a href='undocumented#SkScalarCeilToInt'>SkScalarCeilToInt</a>(<a href='#SkRect_fRight'>fRight</a>), <a href='undocumented#SkScalarCeilToInt'>SkScalarCeilToInt</a>(<a href='#SkRect_fBottom'>fBottom</a>))</code>.
@@ -2676,9 +2676,9 @@
void <a href='#SkRect_sort'>sort()</a>
</pre>
-Swaps <a href='#SkRect_fLeft'>fLeft</a> <a href='#SkRect_fLeft'>and</a> <a href='#SkRect_fRight'>fRight</a> <a href='#SkRect_fRight'>if</a> <a href='#SkRect_fLeft'>fLeft</a> <a href='#SkRect_fLeft'>is</a> <a href='#SkRect_fLeft'>greater</a> <a href='#SkRect_fLeft'>than</a> <a href='#SkRect_fRight'>fRight</a>; <a href='#SkRect_fRight'>and</a> <a href='#SkRect_fRight'>swaps</a>
-<a href='#SkRect_fTop'>fTop</a> <a href='#SkRect_fTop'>and</a> <a href='#SkRect_fBottom'>fBottom</a> <a href='#SkRect_fBottom'>if</a> <a href='#SkRect_fTop'>fTop</a> <a href='#SkRect_fTop'>is</a> <a href='#SkRect_fTop'>greater</a> <a href='#SkRect_fTop'>than</a> <a href='#SkRect_fBottom'>fBottom</a>. <a href='#SkRect_fBottom'>Result</a> <a href='#SkRect_fBottom'>may</a> <a href='#SkRect_fBottom'>be</a> <a href='#SkRect_fBottom'>empty</a>;
-and <a href='#SkRect_width'>width()</a> <a href='#SkRect_width'>and</a> <a href='#SkRect_height'>height()</a> <a href='#SkRect_height'>will</a> <a href='#SkRect_height'>be</a> <a href='#SkRect_height'>zero</a> <a href='#SkRect_height'>or</a> <a href='#SkRect_height'>positive</a>.
+Swaps <a href='#SkRect_fLeft'>fLeft</a> and <a href='#SkRect_fRight'>fRight</a> if <a href='#SkRect_fLeft'>fLeft</a> is greater than <a href='#SkRect_fRight'>fRight</a>; and swaps
+<a href='#SkRect_fTop'>fTop</a> and <a href='#SkRect_fBottom'>fBottom</a> if <a href='#SkRect_fTop'>fTop</a> is greater than <a href='#SkRect_fBottom'>fBottom</a>. Result may be empty;
+and <a href='#SkRect_width'>width()</a> and <a href='#SkRect_height'>height()</a> will be zero or positive.
### Example
@@ -2702,12 +2702,12 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-<a href='SkRect_Reference#SkRect'>SkRect</a> <a href='#SkRect_makeSorted'>makeSorted</a>() <a href='#SkRect_makeSorted'>const</a>
+<a href='SkRect_Reference#SkRect'>SkRect</a> <a href='#SkRect_makeSorted'>makeSorted</a>() const
</pre>
-Returns <a href='SkRect_Reference#SkRect'>SkRect</a> <a href='SkRect_Reference#SkRect'>with</a> <a href='#SkRect_fLeft'>fLeft</a> <a href='#SkRect_fLeft'>and</a> <a href='#SkRect_fRight'>fRight</a> <a href='#SkRect_fRight'>swapped</a> <a href='#SkRect_fRight'>if</a> <a href='#SkRect_fLeft'>fLeft</a> <a href='#SkRect_fLeft'>is</a> <a href='#SkRect_fLeft'>greater</a> <a href='#SkRect_fLeft'>than</a> <a href='#SkRect_fRight'>fRight</a>; <a href='#SkRect_fRight'>and</a>
-with <a href='#SkRect_fTop'>fTop</a> <a href='#SkRect_fTop'>and</a> <a href='#SkRect_fBottom'>fBottom</a> <a href='#SkRect_fBottom'>swapped</a> <a href='#SkRect_fBottom'>if</a> <a href='#SkRect_fTop'>fTop</a> <a href='#SkRect_fTop'>is</a> <a href='#SkRect_fTop'>greater</a> <a href='#SkRect_fTop'>than</a> <a href='#SkRect_fBottom'>fBottom</a>. <a href='#SkRect_fBottom'>Result</a> <a href='#SkRect_fBottom'>may</a> <a href='#SkRect_fBottom'>be</a> <a href='#SkRect_fBottom'>empty</a>;
-and <a href='#SkRect_width'>width()</a> <a href='#SkRect_width'>and</a> <a href='#SkRect_height'>height()</a> <a href='#SkRect_height'>will</a> <a href='#SkRect_height'>be</a> <a href='#SkRect_height'>zero</a> <a href='#SkRect_height'>or</a> <a href='#SkRect_height'>positive</a>.
+Returns <a href='SkRect_Reference#SkRect'>SkRect</a> with <a href='#SkRect_fLeft'>fLeft</a> and <a href='#SkRect_fRight'>fRight</a> swapped if <a href='#SkRect_fLeft'>fLeft</a> is greater than <a href='#SkRect_fRight'>fRight</a>; and
+with <a href='#SkRect_fTop'>fTop</a> and <a href='#SkRect_fBottom'>fBottom</a> swapped if <a href='#SkRect_fTop'>fTop</a> is greater than <a href='#SkRect_fBottom'>fBottom</a>. Result may be empty;
+and <a href='#SkRect_width'>width()</a> and <a href='#SkRect_height'>height()</a> will be zero or positive.
### Return Value
@@ -2735,10 +2735,10 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-const <a href='undocumented#SkScalar'>SkScalar</a>* <a href='#SkRect_asScalars'>asScalars</a>() <a href='#SkRect_asScalars'>const</a>
+const <a href='undocumented#SkScalar'>SkScalar</a>* <a href='#SkRect_asScalars'>asScalars</a>() const
</pre>
-Returns pointer to first <a href='undocumented#Scalar'>scalar</a> <a href='undocumented#Scalar'>in</a> <a href='SkRect_Reference#SkRect'>SkRect</a>, <a href='SkRect_Reference#SkRect'>to</a> <a href='SkRect_Reference#SkRect'>treat</a> <a href='SkRect_Reference#SkRect'>it</a> <a href='SkRect_Reference#SkRect'>as</a> <a href='SkRect_Reference#SkRect'>an</a> <a href='SkRect_Reference#SkRect'>array</a> <a href='SkRect_Reference#SkRect'>with</a> <a href='SkRect_Reference#SkRect'>four</a>
+Returns pointer to first <a href='undocumented#Scalar'>scalar</a> in <a href='SkRect_Reference#SkRect'>SkRect</a>, to treat it as an array with four
entries.
### Return Value
@@ -2766,16 +2766,16 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-void <a href='#SkRect_dump'>dump</a>(<a href='#SkRect_dump'>bool</a> <a href='#SkRect_dump'>asHex</a>) <a href='#SkRect_dump'>const</a>
+void <a href='#SkRect_dump'>dump</a>(bool asHex) const
</pre>
-Writes <a href='undocumented#Text'>text</a> <a href='undocumented#Text'>representation</a> <a href='undocumented#Text'>of</a> <a href='SkRect_Reference#SkRect'>SkRect</a> <a href='SkRect_Reference#SkRect'>to</a> <a href='SkRect_Reference#SkRect'>standard</a> <a href='SkRect_Reference#SkRect'>output</a>. <a href='SkRect_Reference#SkRect'>Set</a> <a href='#SkRect_dump_asHex'>asHex</a> <a href='#SkRect_dump_asHex'>to</a> <a href='#SkRect_dump_asHex'>true</a> <a href='#SkRect_dump_asHex'>to</a>
-generate exact binary representations of floating <a href='SkPoint_Reference#Point'>point</a> <a href='SkPoint_Reference#Point'>numbers</a>.
+Writes <a href='undocumented#Text'>text</a> representation of <a href='SkRect_Reference#SkRect'>SkRect</a> to standard output. Set <a href='#SkRect_dump_asHex'>asHex</a> to true to
+generate exact binary representations of floating <a href='SkPoint_Reference#Point'>point</a> numbers.
### Parameters
<table> <tr> <td><a name='SkRect_dump_asHex'><code><strong>asHex</strong></code></a></td>
- <td>true if <a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>values</a> <a href='undocumented#SkScalar'>are</a> <a href='undocumented#SkScalar'>written</a> <a href='undocumented#SkScalar'>as</a> <a href='undocumented#SkScalar'>hexadecimal</a></td>
+ <td>true if <a href='undocumented#SkScalar'>SkScalar</a> values are written as hexadecimal</td>
</tr>
</table>
@@ -2804,11 +2804,11 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-void <a href='#SkRect_dump'>dump()</a> <a href='#SkRect_dump'>const</a>
+void <a href='#SkRect_dump'>dump()</a> const
</pre>
-Writes <a href='undocumented#Text'>text</a> <a href='undocumented#Text'>representation</a> <a href='undocumented#Text'>of</a> <a href='SkRect_Reference#SkRect'>SkRect</a> <a href='SkRect_Reference#SkRect'>to</a> <a href='SkRect_Reference#SkRect'>standard</a> <a href='SkRect_Reference#SkRect'>output</a>. <a href='SkRect_Reference#SkRect'>The</a> <a href='SkRect_Reference#SkRect'>representation</a> <a href='SkRect_Reference#SkRect'>may</a> <a href='SkRect_Reference#SkRect'>be</a>
-directly compiled as C++ code. Floating <a href='SkPoint_Reference#Point'>point</a> <a href='SkPoint_Reference#Point'>values</a> <a href='SkPoint_Reference#Point'>are</a> <a href='SkPoint_Reference#Point'>written</a>
+Writes <a href='undocumented#Text'>text</a> representation of <a href='SkRect_Reference#SkRect'>SkRect</a> to standard output. The representation may be
+directly compiled as C++ code. Floating <a href='SkPoint_Reference#Point'>point</a> values are written
with limited precision; it may not be possible to reconstruct original <a href='SkRect_Reference#SkRect'>SkRect</a>
from output.
@@ -2834,15 +2834,15 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-void <a href='#SkRect_dumpHex'>dumpHex</a>() <a href='#SkRect_dumpHex'>const</a>
+void <a href='#SkRect_dumpHex'>dumpHex</a>() const
</pre>
-Writes <a href='undocumented#Text'>text</a> <a href='undocumented#Text'>representation</a> <a href='undocumented#Text'>of</a> <a href='SkRect_Reference#Rect'>Rect</a> <a href='SkRect_Reference#Rect'>to</a> <a href='SkRect_Reference#Rect'>standard</a> <a href='SkRect_Reference#Rect'>output</a>. <a href='SkRect_Reference#Rect'>The</a> <a href='SkRect_Reference#Rect'>representation</a> <a href='SkRect_Reference#Rect'>may</a> <a href='SkRect_Reference#Rect'>be</a>
-<a href='SkRect_Reference#Rect'>directly</a> <a href='SkRect_Reference#Rect'>compiled</a> <a href='SkRect_Reference#Rect'>as</a> <a href='SkRect_Reference#Rect'>C</a>++ <a href='SkRect_Reference#Rect'>code</a>. <a href='SkRect_Reference#Rect'>Floating</a> <a href='SkPoint_Reference#Point'>point</a> <a href='SkPoint_Reference#Point'>values</a> <a href='SkPoint_Reference#Point'>are</a> <a href='SkPoint_Reference#Point'>written</a>
-<a href='SkPoint_Reference#Point'>in</a> <a href='SkPoint_Reference#Point'>hexadecimal</a> <a href='SkPoint_Reference#Point'>to</a> <a href='SkPoint_Reference#Point'>preserve</a> <a href='SkPoint_Reference#Point'>their</a> <a href='SkPoint_Reference#Point'>exact</a> <a href='SkPoint_Reference#Point'>bit</a> <a href='SkPoint_Reference#Point'>pattern</a>. <a href='SkPoint_Reference#Point'>The</a> <a href='SkPoint_Reference#Point'>output</a> <a href='SkPoint_Reference#Point'>reconstructs</a> <a href='SkPoint_Reference#Point'>the</a>
-<a href='SkPoint_Reference#Point'>original</a> <a href='SkRect_Reference#Rect'>Rect</a>.
+Writes <a href='undocumented#Text'>text</a> representation of <a href='SkRect_Reference#Rect'>Rect</a> to standard output. The representation may be
+directly compiled as C++ code. Floating <a href='SkPoint_Reference#Point'>point</a> values are written
+in hexadecimal to preserve their exact bit pattern. The output reconstructs the
+original <a href='SkRect_Reference#Rect'>Rect</a>.
-<a href='SkRect_Reference#Rect'>Use</a> <a href='SkRect_Reference#Rect'>instead</a> <a href='SkRect_Reference#Rect'>of</a> <a href='#SkRect_dump'>dump()</a> <a href='#SkRect_dump'>when</a> <a href='#SkRect_dump'>submitting</a>
+Use instead of <a href='#SkRect_dump'>dump()</a> when submitting
<a href='https://bug.skia.org'>bug reports against Skia</a></a> .
### Example
diff --git a/site/user/api/SkRegion_Reference.md b/site/user/api/SkRegion_Reference.md
index e157fc6..12b28c2 100644
--- a/site/user/api/SkRegion_Reference.md
+++ b/site/user/api/SkRegion_Reference.md
@@ -1,15 +1,15 @@
SkRegion Reference
===
-<a href='SkRegion_Reference#Region'>Region</a> <a href='SkRegion_Reference#Region'>is</a> <a href='SkRegion_Reference#Region'>a</a> <a href='SkRegion_Reference#Region'>compressed</a> <a href='SkRegion_Reference#Region'>one</a> <a href='SkRegion_Reference#Region'>bit</a> <a href='SkRegion_Reference#Region'>mask</a>. <a href='SkRegion_Reference#Region'>Region</a> <a href='SkRegion_Reference#Region'>describes</a> <a href='SkRegion_Reference#Region'>an</a> <a href='undocumented#Alias'>aliased</a> <a href='undocumented#Alias'>clipping</a> <a href='undocumented#Alias'>area</a>
-<a href='undocumented#Alias'>on</a> <a href='undocumented#Alias'>integer</a> <a href='undocumented#Alias'>boundaries</a>. <a href='SkRegion_Reference#Region'>Region</a> <a href='SkRegion_Reference#Region'>can</a> <a href='SkRegion_Reference#Region'>also</a> <a href='SkRegion_Reference#Region'>describe</a> <a href='SkRegion_Reference#Region'>an</a> <a href='SkRegion_Reference#Region'>array</a> <a href='SkRegion_Reference#Region'>of</a> <a href='SkRegion_Reference#Region'>integer</a> <a href='SkRegion_Reference#Region'>rectangles</a>.
+<a href='SkRegion_Reference#Region'>Region</a> is a compressed one bit mask. <a href='SkRegion_Reference#Region'>Region</a> describes an <a href='undocumented#Alias'>aliased</a> clipping area
+on integer boundaries. <a href='SkRegion_Reference#Region'>Region</a> can also describe an array of integer rectangles.
-<a href='SkCanvas_Reference#Canvas'>Canvas</a> <a href='SkCanvas_Reference#Canvas'>uses</a> <a href='SkRegion_Reference#Region'>Region</a> <a href='SkRegion_Reference#Region'>to</a> <a href='SkRegion_Reference#Region'>reduce</a> <a href='SkRegion_Reference#Region'>the</a> <a href='SkRegion_Reference#Region'>current</a> <a href='SkRegion_Reference#Region'>clip</a>. <a href='SkRegion_Reference#Region'>Region</a> <a href='SkRegion_Reference#Region'>may</a> <a href='SkRegion_Reference#Region'>be</a> <a href='SkRegion_Reference#Region'>drawn</a> <a href='SkRegion_Reference#Region'>to</a> <a href='SkCanvas_Reference#Canvas'>Canvas</a>;
-<a href='SkPaint_Reference#Paint'>Paint</a> <a href='SkPaint_Reference#Paint'>determines</a> <a href='SkPaint_Reference#Paint'>if</a> <a href='SkRegion_Reference#Region'>Region</a> <a href='SkRegion_Reference#Region'>is</a> <a href='SkRegion_Reference#Region'>filled</a> <a href='SkRegion_Reference#Region'>or</a> <a href='SkRegion_Reference#Region'>stroked</a>, <a href='SkRegion_Reference#Region'>its</a> <a href='SkColor_Reference#Color'>Color</a>, <a href='SkColor_Reference#Color'>and</a> <a href='SkColor_Reference#Color'>so</a> <a href='SkColor_Reference#Color'>on</a>.
+<a href='SkCanvas_Reference#Canvas'>Canvas</a> uses <a href='SkRegion_Reference#Region'>Region</a> to reduce the current clip. <a href='SkRegion_Reference#Region'>Region</a> may be drawn to <a href='SkCanvas_Reference#Canvas'>Canvas</a>;
+<a href='SkPaint_Reference#Paint'>Paint</a> determines if <a href='SkRegion_Reference#Region'>Region</a> is filled or stroked, its <a href='SkColor_Reference#Color'>Color</a>, and so on.
-<a href='SkRegion_Reference#Region'>Region</a> <a href='SkRegion_Reference#Region'>may</a> <a href='SkRegion_Reference#Region'>be</a> <a href='SkRegion_Reference#Region'>constructed</a> <a href='SkRegion_Reference#Region'>from</a> <a href='SkIRect_Reference#IRect'>IRect</a> <a href='SkIRect_Reference#IRect'>array</a> <a href='SkIRect_Reference#IRect'>or</a> <a href='SkPath_Reference#Path'>Path</a>. <a href='SkPath_Reference#Path'>Diagonal</a> <a href='undocumented#Line'>lines</a> <a href='undocumented#Line'>and</a> <a href='undocumented#Curve'>curves</a>
-<a href='undocumented#Curve'>in</a> <a href='SkPath_Reference#Path'>Path</a> <a href='SkPath_Reference#Path'>become</a> <a href='SkPath_Reference#Path'>integer</a> <a href='SkPath_Reference#Path'>rectangle</a> <a href='SkPath_Reference#Path'>edges</a>. <a href='SkRegion_Reference#Region'>Regions</a> <a href='SkRegion_Reference#Region'>operators</a> <a href='SkRegion_Reference#Region'>compute</a> <a href='SkRegion_Reference#Region'>union</a>,
-<a href='SkRegion_Reference#Region'>intersection</a>, <a href='SkRegion_Reference#Region'>difference</a>, <a href='SkRegion_Reference#Region'>and</a> <a href='SkRegion_Reference#Region'>so</a> <a href='SkRegion_Reference#Region'>on</a>. <a href='SkCanvas_Reference#Canvas'>Canvas</a> <a href='SkCanvas_Reference#Canvas'>allows</a> <a href='SkCanvas_Reference#Canvas'>only</a> <a href='SkCanvas_Reference#Canvas'>intersection</a> <a href='SkCanvas_Reference#Canvas'>and</a>
-<a href='SkCanvas_Reference#Canvas'>difference</a>; <a href='SkCanvas_Reference#Canvas'>successive</a> <a href='SkCanvas_Reference#Canvas'>clips</a> <a href='SkCanvas_Reference#Canvas'>can</a> <a href='SkCanvas_Reference#Canvas'>only</a> <a href='SkCanvas_Reference#Canvas'>reduce</a> <a href='SkCanvas_Reference#Canvas'>available</a> <a href='SkCanvas_Reference#Canvas'>Canvas</a> <a href='SkCanvas_Reference#Canvas'>area</a>.
+<a href='SkRegion_Reference#Region'>Region</a> may be constructed from <a href='SkIRect_Reference#IRect'>IRect</a> array or <a href='SkPath_Reference#Path'>Path</a>. Diagonal <a href='undocumented#Line'>lines</a> and <a href='undocumented#Curve'>curves</a>
+in <a href='SkPath_Reference#Path'>Path</a> become integer rectangle edges. <a href='SkRegion_Reference#Region'>Regions</a> operators compute union,
+intersection, difference, and so on. <a href='SkCanvas_Reference#Canvas'>Canvas</a> allows only intersection and
+difference; successive clips can only reduce available <a href='SkCanvas_Reference#Canvas'>Canvas</a> area.
<a name='SkRegion'></a>
@@ -17,42 +17,42 @@
<pre style="padding: 1em 1em 1em 1em;width: 62.5em; background-color: #f0f0f0">
class <a href='SkRegion_Reference#SkRegion'>SkRegion</a> {
-<a href='SkRegion_Reference#SkRegion'>public</a>:
+public:
<a href='#SkRegion_empty_constructor'>SkRegion()</a>;
- <a href='SkRegion_Reference#SkRegion'>SkRegion</a>(<a href='SkRegion_Reference#SkRegion'>const</a> <a href='SkRegion_Reference#SkRegion'>SkRegion</a>& <a href='SkRegion_Reference#Region'>region</a>);
- <a href='SkRegion_Reference#Region'>explicit</a> <a href='SkRegion_Reference#SkRegion'>SkRegion</a>(<a href='SkRegion_Reference#SkRegion'>const</a> <a href='SkIRect_Reference#SkIRect'>SkIRect</a>& <a href='SkRect_Reference#Rect'>rect</a>);
+ <a href='SkRegion_Reference#SkRegion'>SkRegion</a>(const <a href='SkRegion_Reference#SkRegion'>SkRegion</a>& <a href='SkRegion_Reference#Region'>region</a>);
+ explicit <a href='SkRegion_Reference#SkRegion'>SkRegion</a>(const <a href='SkIRect_Reference#SkIRect'>SkIRect</a>& <a href='SkRect_Reference#Rect'>rect</a>);
~<a href='#SkRegion_empty_constructor'>SkRegion()</a>;
- <a href='SkRegion_Reference#SkRegion'>SkRegion</a>& <a href='SkRegion_Reference#SkRegion'>operator</a>=(<a href='SkRegion_Reference#SkRegion'>const</a> <a href='SkRegion_Reference#SkRegion'>SkRegion</a>& <a href='SkRegion_Reference#Region'>region</a>);
- <a href='SkRegion_Reference#Region'>bool</a> <a href='SkRegion_Reference#Region'>operator</a>==(<a href='SkRegion_Reference#Region'>const</a> <a href='SkRegion_Reference#SkRegion'>SkRegion</a>& <a href='SkRegion_Reference#SkRegion'>other</a>) <a href='SkRegion_Reference#SkRegion'>const</a>;
- <a href='SkRegion_Reference#SkRegion'>bool</a> <a href='SkRegion_Reference#SkRegion'>operator</a>!=(<a href='SkRegion_Reference#SkRegion'>const</a> <a href='SkRegion_Reference#SkRegion'>SkRegion</a>& <a href='SkRegion_Reference#SkRegion'>other</a>) <a href='SkRegion_Reference#SkRegion'>const</a>;
- <a href='SkRegion_Reference#SkRegion'>bool</a> <a href='SkRegion_Reference#SkRegion'>set</a>(<a href='SkRegion_Reference#SkRegion'>const</a> <a href='SkRegion_Reference#SkRegion'>SkRegion</a>& <a href='SkRegion_Reference#SkRegion'>src</a>);
- <a href='SkRegion_Reference#SkRegion'>void</a> <a href='#SkRegion_swap'>swap</a>(<a href='SkRegion_Reference#SkRegion'>SkRegion</a>& <a href='SkRegion_Reference#SkRegion'>other</a>);
- <a href='SkRegion_Reference#SkRegion'>bool</a> <a href='#SkRegion_isEmpty'>isEmpty</a>() <a href='#SkRegion_isEmpty'>const</a>;
- <a href='#SkRegion_isEmpty'>bool</a> <a href='#SkRegion_isRect'>isRect</a>() <a href='#SkRegion_isRect'>const</a>;
- <a href='#SkRegion_isRect'>bool</a> <a href='#SkRegion_isComplex'>isComplex</a>() <a href='#SkRegion_isComplex'>const</a>;
- <a href='#SkRegion_isComplex'>const</a> <a href='SkIRect_Reference#SkIRect'>SkIRect</a>& <a href='#SkRegion_getBounds'>getBounds</a>() <a href='#SkRegion_getBounds'>const</a>;
- <a href='#SkRegion_getBounds'>int</a> <a href='#SkRegion_computeRegionComplexity'>computeRegionComplexity</a>() <a href='#SkRegion_computeRegionComplexity'>const</a>;
- <a href='#SkRegion_computeRegionComplexity'>bool</a> <a href='#SkRegion_getBoundaryPath'>getBoundaryPath</a>(<a href='SkPath_Reference#SkPath'>SkPath</a>* <a href='SkPath_Reference#Path'>path</a>) <a href='SkPath_Reference#Path'>const</a>;
- <a href='SkPath_Reference#Path'>bool</a> <a href='#SkRegion_setEmpty'>setEmpty</a>();
- <a href='#SkRegion_setEmpty'>bool</a> <a href='#SkRegion_setRect'>setRect</a>(<a href='#SkRegion_setRect'>const</a> <a href='SkIRect_Reference#SkIRect'>SkIRect</a>& <a href='SkRect_Reference#Rect'>rect</a>);
- <a href='SkRect_Reference#Rect'>bool</a> <a href='#SkRegion_setRect'>setRect</a>(<a href='#SkRegion_setRect'>int32_t</a> <a href='#SkRegion_setRect'>left</a>, <a href='#SkRegion_setRect'>int32_t</a> <a href='#SkRegion_setRect'>top</a>, <a href='#SkRegion_setRect'>int32_t</a> <a href='#SkRegion_setRect'>right</a>, <a href='#SkRegion_setRect'>int32_t</a> <a href='#SkRegion_setRect'>bottom</a>);
- <a href='#SkRegion_setRect'>bool</a> <a href='#SkRegion_setRects'>setRects</a>(<a href='#SkRegion_setRects'>const</a> <a href='SkIRect_Reference#SkIRect'>SkIRect</a> <a href='SkRect_Reference#Rect'>rects</a>[], <a href='SkRect_Reference#Rect'>int</a> <a href='SkRect_Reference#Rect'>count</a>);
- <a href='SkRect_Reference#Rect'>bool</a> <a href='#SkRegion_setRegion'>setRegion</a>(<a href='#SkRegion_setRegion'>const</a> <a href='SkRegion_Reference#SkRegion'>SkRegion</a>& <a href='SkRegion_Reference#Region'>region</a>);
- <a href='SkRegion_Reference#Region'>bool</a> <a href='#SkRegion_setPath'>setPath</a>(<a href='#SkRegion_setPath'>const</a> <a href='SkPath_Reference#SkPath'>SkPath</a>& <a href='SkPath_Reference#Path'>path</a>, <a href='SkPath_Reference#Path'>const</a> <a href='SkRegion_Reference#SkRegion'>SkRegion</a>& <a href='SkRegion_Reference#SkRegion'>clip</a>);
- <a href='SkRegion_Reference#SkRegion'>bool</a> <a href='SkRegion_Reference#SkRegion'>intersects</a>(<a href='SkRegion_Reference#SkRegion'>const</a> <a href='SkIRect_Reference#SkIRect'>SkIRect</a>& <a href='SkRect_Reference#Rect'>rect</a>) <a href='SkRect_Reference#Rect'>const</a>;
- <a href='SkRect_Reference#Rect'>bool</a> <a href='SkRect_Reference#Rect'>intersects</a>(<a href='SkRect_Reference#Rect'>const</a> <a href='SkRegion_Reference#SkRegion'>SkRegion</a>& <a href='SkRegion_Reference#SkRegion'>other</a>) <a href='SkRegion_Reference#SkRegion'>const</a>;
- <a href='SkRegion_Reference#SkRegion'>bool</a> <a href='SkRegion_Reference#SkRegion'>contains</a>(<a href='SkRegion_Reference#SkRegion'>int32_t</a> <a href='SkRegion_Reference#SkRegion'>x</a>, <a href='SkRegion_Reference#SkRegion'>int32_t</a> <a href='SkRegion_Reference#SkRegion'>y</a>) <a href='SkRegion_Reference#SkRegion'>const</a>;
- <a href='SkRegion_Reference#SkRegion'>bool</a> <a href='SkRegion_Reference#SkRegion'>contains</a>(<a href='SkRegion_Reference#SkRegion'>const</a> <a href='SkIRect_Reference#SkIRect'>SkIRect</a>& <a href='SkIRect_Reference#SkIRect'>other</a>) <a href='SkIRect_Reference#SkIRect'>const</a>;
- <a href='SkIRect_Reference#SkIRect'>bool</a> <a href='SkIRect_Reference#SkIRect'>contains</a>(<a href='SkIRect_Reference#SkIRect'>const</a> <a href='SkRegion_Reference#SkRegion'>SkRegion</a>& <a href='SkRegion_Reference#SkRegion'>other</a>) <a href='SkRegion_Reference#SkRegion'>const</a>;
- <a href='SkRegion_Reference#SkRegion'>bool</a> <a href='#SkRegion_quickContains'>quickContains</a>(<a href='#SkRegion_quickContains'>const</a> <a href='SkIRect_Reference#SkIRect'>SkIRect</a>& <a href='SkIRect_Reference#SkIRect'>r</a>) <a href='SkIRect_Reference#SkIRect'>const</a>;
- <a href='SkIRect_Reference#SkIRect'>bool</a> <a href='#SkRegion_quickContains'>quickContains</a>(<a href='#SkRegion_quickContains'>int32_t</a> <a href='#SkRegion_quickContains'>left</a>, <a href='#SkRegion_quickContains'>int32_t</a> <a href='#SkRegion_quickContains'>top</a>, <a href='#SkRegion_quickContains'>int32_t</a> <a href='#SkRegion_quickContains'>right</a>,
- <a href='#SkRegion_quickContains'>int32_t</a> <a href='#SkRegion_quickContains'>bottom</a>) <a href='#SkRegion_quickContains'>const</a>;
- <a href='#SkRegion_quickContains'>bool</a> <a href='#SkRegion_quickReject'>quickReject</a>(<a href='#SkRegion_quickReject'>const</a> <a href='SkIRect_Reference#SkIRect'>SkIRect</a>& <a href='SkRect_Reference#Rect'>rect</a>) <a href='SkRect_Reference#Rect'>const</a>;
- <a href='SkRect_Reference#Rect'>bool</a> <a href='#SkRegion_quickReject'>quickReject</a>(<a href='#SkRegion_quickReject'>const</a> <a href='SkRegion_Reference#SkRegion'>SkRegion</a>& <a href='SkRegion_Reference#SkRegion'>rgn</a>) <a href='SkRegion_Reference#SkRegion'>const</a>;
- <a href='SkRegion_Reference#SkRegion'>void</a> <a href='SkRegion_Reference#SkRegion'>translate</a>(<a href='SkRegion_Reference#SkRegion'>int</a> <a href='SkRegion_Reference#SkRegion'>dx</a>, <a href='SkRegion_Reference#SkRegion'>int</a> <a href='SkRegion_Reference#SkRegion'>dy</a>);
- <a href='SkRegion_Reference#SkRegion'>void</a> <a href='SkRegion_Reference#SkRegion'>translate</a>(<a href='SkRegion_Reference#SkRegion'>int</a> <a href='SkRegion_Reference#SkRegion'>dx</a>, <a href='SkRegion_Reference#SkRegion'>int</a> <a href='SkRegion_Reference#SkRegion'>dy</a>, <a href='SkRegion_Reference#SkRegion'>SkRegion</a>* <a href='SkRegion_Reference#SkRegion'>dst</a>) <a href='SkRegion_Reference#SkRegion'>const</a>;
+ <a href='SkRegion_Reference#SkRegion'>SkRegion</a>& operator=(const <a href='SkRegion_Reference#SkRegion'>SkRegion</a>& <a href='SkRegion_Reference#Region'>region</a>);
+ bool operator==(const <a href='SkRegion_Reference#SkRegion'>SkRegion</a>& other) const;
+ bool operator!=(const <a href='SkRegion_Reference#SkRegion'>SkRegion</a>& other) const;
+ bool set(const <a href='SkRegion_Reference#SkRegion'>SkRegion</a>& src);
+ void <a href='#SkRegion_swap'>swap</a>(<a href='SkRegion_Reference#SkRegion'>SkRegion</a>& other);
+ bool <a href='#SkRegion_isEmpty'>isEmpty</a>() const;
+ bool <a href='#SkRegion_isRect'>isRect</a>() const;
+ bool <a href='#SkRegion_isComplex'>isComplex</a>() const;
+ const <a href='SkIRect_Reference#SkIRect'>SkIRect</a>& <a href='#SkRegion_getBounds'>getBounds</a>() const;
+ int <a href='#SkRegion_computeRegionComplexity'>computeRegionComplexity</a>() const;
+ bool <a href='#SkRegion_getBoundaryPath'>getBoundaryPath</a>(<a href='SkPath_Reference#SkPath'>SkPath</a>* <a href='SkPath_Reference#Path'>path</a>) const;
+ bool <a href='#SkRegion_setEmpty'>setEmpty</a>();
+ bool <a href='#SkRegion_setRect'>setRect</a>(const <a href='SkIRect_Reference#SkIRect'>SkIRect</a>& <a href='SkRect_Reference#Rect'>rect</a>);
+ bool <a href='#SkRegion_setRect'>setRect</a>(int32_t left, int32_t top, int32_t right, int32_t bottom);
+ bool <a href='#SkRegion_setRects'>setRects</a>(const <a href='SkIRect_Reference#SkIRect'>SkIRect</a> <a href='SkRect_Reference#Rect'>rects</a>[], int count);
+ bool <a href='#SkRegion_setRegion'>setRegion</a>(const <a href='SkRegion_Reference#SkRegion'>SkRegion</a>& <a href='SkRegion_Reference#Region'>region</a>);
+ bool <a href='#SkRegion_setPath'>setPath</a>(const <a href='SkPath_Reference#SkPath'>SkPath</a>& <a href='SkPath_Reference#Path'>path</a>, const <a href='SkRegion_Reference#SkRegion'>SkRegion</a>& clip);
+ bool intersects(const <a href='SkIRect_Reference#SkIRect'>SkIRect</a>& <a href='SkRect_Reference#Rect'>rect</a>) const;
+ bool intersects(const <a href='SkRegion_Reference#SkRegion'>SkRegion</a>& other) const;
+ bool contains(int32_t x, int32_t y) const;
+ bool contains(const <a href='SkIRect_Reference#SkIRect'>SkIRect</a>& other) const;
+ bool contains(const <a href='SkRegion_Reference#SkRegion'>SkRegion</a>& other) const;
+ bool <a href='#SkRegion_quickContains'>quickContains</a>(const <a href='SkIRect_Reference#SkIRect'>SkIRect</a>& r) const;
+ bool <a href='#SkRegion_quickContains'>quickContains</a>(int32_t left, int32_t top, int32_t right,
+ int32_t bottom) const;
+ bool <a href='#SkRegion_quickReject'>quickReject</a>(const <a href='SkIRect_Reference#SkIRect'>SkIRect</a>& <a href='SkRect_Reference#Rect'>rect</a>) const;
+ bool <a href='#SkRegion_quickReject'>quickReject</a>(const <a href='SkRegion_Reference#SkRegion'>SkRegion</a>& rgn) const;
+ void translate(int dx, int dy);
+ void translate(int dx, int dy, <a href='SkRegion_Reference#SkRegion'>SkRegion</a>* dst) const;
- <a href='SkRegion_Reference#SkRegion'>enum</a> <a href='#SkRegion_Op'>Op</a> {
+ enum <a href='#SkRegion_Op'>Op</a> {
<a href='#SkRegion_kDifference_Op'>kDifference_Op</a>,
<a href='#SkRegion_kIntersect_Op'>kIntersect_Op</a>,
<a href='#SkRegion_kUnion_Op'>kUnion_Op</a>,
@@ -62,51 +62,51 @@
<a href='#SkRegion_kLastOp'>kLastOp</a> = <a href='#SkRegion_kReplace_Op'>kReplace_Op</a>,
};
- <a href='#SkRegion_kReplace_Op'>static</a> <a href='#SkRegion_kReplace_Op'>const</a> <a href='#SkRegion_kReplace_Op'>int</a> <a href='#SkRegion_kOpCnt'>kOpCnt</a> = <a href='#SkRegion_kLastOp'>kLastOp</a> + 1;
- <a href='#SkRegion_kLastOp'>bool</a> <a href='#SkRegion_op'>op</a>(<a href='#SkRegion_op'>const</a> <a href='SkIRect_Reference#SkIRect'>SkIRect</a>& <a href='SkRect_Reference#Rect'>rect</a>, <a href='#SkRegion_Op'>Op</a> <a href='#SkRegion_Op'>op</a>);
- <a href='#SkRegion_Op'>bool</a> <a href='#SkRegion_op'>op</a>(<a href='#SkRegion_op'>int</a> <a href='#SkRegion_op'>left</a>, <a href='#SkRegion_op'>int</a> <a href='#SkRegion_op'>top</a>, <a href='#SkRegion_op'>int</a> <a href='#SkRegion_op'>right</a>, <a href='#SkRegion_op'>int</a> <a href='#SkRegion_op'>bottom</a>, <a href='#SkRegion_Op'>Op</a> <a href='#SkRegion_Op'>op</a>);
- <a href='#SkRegion_Op'>bool</a> <a href='#SkRegion_op'>op</a>(<a href='#SkRegion_op'>const</a> <a href='SkRegion_Reference#SkRegion'>SkRegion</a>& <a href='SkRegion_Reference#SkRegion'>rgn</a>, <a href='#SkRegion_Op'>Op</a> <a href='#SkRegion_Op'>op</a>);
- <a href='#SkRegion_Op'>bool</a> <a href='#SkRegion_op'>op</a>(<a href='#SkRegion_op'>const</a> <a href='SkIRect_Reference#SkIRect'>SkIRect</a>& <a href='SkRect_Reference#Rect'>rect</a>, <a href='SkRect_Reference#Rect'>const</a> <a href='SkRegion_Reference#SkRegion'>SkRegion</a>& <a href='SkRegion_Reference#SkRegion'>rgn</a>, <a href='#SkRegion_Op'>Op</a> <a href='#SkRegion_Op'>op</a>);
- <a href='#SkRegion_Op'>bool</a> <a href='#SkRegion_op'>op</a>(<a href='#SkRegion_op'>const</a> <a href='SkRegion_Reference#SkRegion'>SkRegion</a>& <a href='SkRegion_Reference#SkRegion'>rgn</a>, <a href='SkRegion_Reference#SkRegion'>const</a> <a href='SkIRect_Reference#SkIRect'>SkIRect</a>& <a href='SkRect_Reference#Rect'>rect</a>, <a href='#SkRegion_Op'>Op</a> <a href='#SkRegion_Op'>op</a>);
- <a href='#SkRegion_Op'>bool</a> <a href='#SkRegion_op'>op</a>(<a href='#SkRegion_op'>const</a> <a href='SkRegion_Reference#SkRegion'>SkRegion</a>& <a href='SkRegion_Reference#SkRegion'>rgna</a>, <a href='SkRegion_Reference#SkRegion'>const</a> <a href='SkRegion_Reference#SkRegion'>SkRegion</a>& <a href='SkRegion_Reference#SkRegion'>rgnb</a>, <a href='#SkRegion_Op'>Op</a> <a href='#SkRegion_Op'>op</a>);
- <a href='#SkRegion_Op'>char</a>* <a href='#SkRegion_toString'>toString</a>();
+ static const int <a href='#SkRegion_kOpCnt'>kOpCnt</a> = <a href='#SkRegion_kLastOp'>kLastOp</a> + 1;
+ bool <a href='#SkRegion_op'>op</a>(const <a href='SkIRect_Reference#SkIRect'>SkIRect</a>& <a href='SkRect_Reference#Rect'>rect</a>, <a href='#SkRegion_Op'>Op</a> op);
+ bool <a href='#SkRegion_op'>op</a>(int left, int top, int right, int bottom, <a href='#SkRegion_Op'>Op</a> op);
+ bool <a href='#SkRegion_op'>op</a>(const <a href='SkRegion_Reference#SkRegion'>SkRegion</a>& rgn, <a href='#SkRegion_Op'>Op</a> op);
+ bool <a href='#SkRegion_op'>op</a>(const <a href='SkIRect_Reference#SkIRect'>SkIRect</a>& <a href='SkRect_Reference#Rect'>rect</a>, const <a href='SkRegion_Reference#SkRegion'>SkRegion</a>& rgn, <a href='#SkRegion_Op'>Op</a> op);
+ bool <a href='#SkRegion_op'>op</a>(const <a href='SkRegion_Reference#SkRegion'>SkRegion</a>& rgn, const <a href='SkIRect_Reference#SkIRect'>SkIRect</a>& <a href='SkRect_Reference#Rect'>rect</a>, <a href='#SkRegion_Op'>Op</a> op);
+ bool <a href='#SkRegion_op'>op</a>(const <a href='SkRegion_Reference#SkRegion'>SkRegion</a>& rgna, const <a href='SkRegion_Reference#SkRegion'>SkRegion</a>& rgnb, <a href='#SkRegion_Op'>Op</a> op);
+ char* <a href='#SkRegion_toString'>toString</a>();
- <a href='#SkRegion_toString'>class</a> <a href='#SkRegion_Iterator'>Iterator</a> {
- <a href='#SkRegion_Iterator'>public</a>:
+ class <a href='#SkRegion_Iterator'>Iterator</a> {
+ public:
<a href='#SkRegion_Iterator'>Iterator</a>();
- <a href='#SkRegion_Iterator'>Iterator</a>(<a href='#SkRegion_Iterator'>const</a> <a href='SkRegion_Reference#SkRegion'>SkRegion</a>& <a href='SkRegion_Reference#Region'>region</a>);
- <a href='SkRegion_Reference#Region'>bool</a> <a href='SkRegion_Reference#Region'>rewind()</a>;
- <a href='SkRegion_Reference#Region'>void</a> <a href='SkRegion_Reference#Region'>reset</a>(<a href='SkRegion_Reference#Region'>const</a> <a href='SkRegion_Reference#SkRegion'>SkRegion</a>& <a href='SkRegion_Reference#Region'>region</a>);
- <a href='SkRegion_Reference#Region'>bool</a> <a href='SkRegion_Reference#Region'>done()</a> <a href='SkRegion_Reference#Region'>const</a>;
- <a href='SkRegion_Reference#Region'>void</a> <a href='SkRegion_Reference#Region'>next()</a>;
- <a href='SkRegion_Reference#Region'>const</a> <a href='SkIRect_Reference#SkIRect'>SkIRect</a>& <a href='SkIRect_Reference#SkIRect'>rect()</a> <a href='SkIRect_Reference#SkIRect'>const</a>;
- <a href='SkIRect_Reference#SkIRect'>const</a> <a href='SkRegion_Reference#SkRegion'>SkRegion</a>* <a href='SkRegion_Reference#SkRegion'>rgn()</a> <a href='SkRegion_Reference#SkRegion'>const</a>;
+ <a href='#SkRegion_Iterator'>Iterator</a>(const <a href='SkRegion_Reference#SkRegion'>SkRegion</a>& <a href='SkRegion_Reference#Region'>region</a>);
+ bool rewind();
+ void reset(const <a href='SkRegion_Reference#SkRegion'>SkRegion</a>& <a href='SkRegion_Reference#Region'>region</a>);
+ bool done() const;
+ void next();
+ const <a href='SkIRect_Reference#SkIRect'>SkIRect</a>& rect() const;
+ const <a href='SkRegion_Reference#SkRegion'>SkRegion</a>* rgn() const;
};
- <a href='SkRegion_Reference#SkRegion'>class</a> <a href='#SkRegion_Cliperator'>Cliperator</a> {
- <a href='#SkRegion_Cliperator'>public</a>:
- <a href='#SkRegion_Cliperator'>Cliperator</a>(<a href='#SkRegion_Cliperator'>const</a> <a href='SkRegion_Reference#SkRegion'>SkRegion</a>& <a href='SkRegion_Reference#Region'>region</a>, <a href='SkRegion_Reference#Region'>const</a> <a href='SkIRect_Reference#SkIRect'>SkIRect</a>& <a href='SkIRect_Reference#SkIRect'>clip</a>);
- <a href='SkIRect_Reference#SkIRect'>bool</a> <a href='SkIRect_Reference#SkIRect'>done()</a>;
- <a href='SkIRect_Reference#SkIRect'>void</a> <a href='SkIRect_Reference#SkIRect'>next()</a>;
- <a href='SkIRect_Reference#SkIRect'>const</a> <a href='SkIRect_Reference#SkIRect'>SkIRect</a>& <a href='SkIRect_Reference#SkIRect'>rect()</a> <a href='SkIRect_Reference#SkIRect'>const</a>;
+ class <a href='#SkRegion_Cliperator'>Cliperator</a> {
+ public:
+ <a href='#SkRegion_Cliperator'>Cliperator</a>(const <a href='SkRegion_Reference#SkRegion'>SkRegion</a>& <a href='SkRegion_Reference#Region'>region</a>, const <a href='SkIRect_Reference#SkIRect'>SkIRect</a>& clip);
+ bool done();
+ void next();
+ const <a href='SkIRect_Reference#SkIRect'>SkIRect</a>& rect() const;
};
- <a href='SkIRect_Reference#SkIRect'>class</a> <a href='#SkRegion_Spanerator'>Spanerator</a> {
- <a href='#SkRegion_Spanerator'>public</a>:
- <a href='#SkRegion_Spanerator'>Spanerator</a>(<a href='#SkRegion_Spanerator'>const</a> <a href='SkRegion_Reference#SkRegion'>SkRegion</a>& <a href='SkRegion_Reference#Region'>region</a>, <a href='SkRegion_Reference#Region'>int</a> <a href='SkRegion_Reference#Region'>y</a>, <a href='SkRegion_Reference#Region'>int</a> <a href='SkRegion_Reference#Region'>left</a>, <a href='SkRegion_Reference#Region'>int</a> <a href='SkRegion_Reference#Region'>right</a>);
- <a href='SkRegion_Reference#Region'>bool</a> <a href='SkRegion_Reference#Region'>next</a>(<a href='SkRegion_Reference#Region'>int</a>* <a href='SkRegion_Reference#Region'>left</a>, <a href='SkRegion_Reference#Region'>int</a>* <a href='SkRegion_Reference#Region'>right</a>);
+ class <a href='#SkRegion_Spanerator'>Spanerator</a> {
+ public:
+ <a href='#SkRegion_Spanerator'>Spanerator</a>(const <a href='SkRegion_Reference#SkRegion'>SkRegion</a>& <a href='SkRegion_Reference#Region'>region</a>, int y, int left, int right);
+ bool next(int* left, int* right);
};
- <a href='SkRegion_Reference#Region'>size_t</a> <a href='#SkRegion_writeToMemory'>writeToMemory</a>(<a href='#SkRegion_writeToMemory'>void</a>* <a href='#SkRegion_writeToMemory'>buffer</a>) <a href='#SkRegion_writeToMemory'>const</a>;
- <a href='#SkRegion_writeToMemory'>size_t</a> <a href='#SkRegion_readFromMemory'>readFromMemory</a>(<a href='#SkRegion_readFromMemory'>const</a> <a href='#SkRegion_readFromMemory'>void</a>* <a href='#SkRegion_readFromMemory'>buffer</a>, <a href='#SkRegion_readFromMemory'>size_t</a> <a href='#SkRegion_readFromMemory'>length</a>);
+ size_t <a href='#SkRegion_writeToMemory'>writeToMemory</a>(void* buffer) const;
+ size_t <a href='#SkRegion_readFromMemory'>readFromMemory</a>(const void* buffer, size_t length);
};
</pre>
-<a href='SkRegion_Reference#SkRegion'>SkRegion</a> <a href='SkRegion_Reference#SkRegion'>describes</a> <a href='SkRegion_Reference#SkRegion'>the</a> <a href='SkRegion_Reference#SkRegion'>set</a> <a href='SkRegion_Reference#SkRegion'>of</a> <a href='SkRegion_Reference#SkRegion'>pixels</a> <a href='SkRegion_Reference#SkRegion'>used</a> <a href='SkRegion_Reference#SkRegion'>to</a> <a href='SkRegion_Reference#SkRegion'>clip</a> <a href='SkCanvas_Reference#Canvas'>Canvas</a>. <a href='SkRegion_Reference#SkRegion'>SkRegion</a> <a href='SkRegion_Reference#SkRegion'>is</a> <a href='SkRegion_Reference#SkRegion'>compact</a>,
-<a href='SkRegion_Reference#SkRegion'>efficiently</a> <a href='SkRegion_Reference#SkRegion'>storing</a> <a href='SkRegion_Reference#SkRegion'>a</a> <a href='SkRegion_Reference#SkRegion'>single</a> <a href='SkRegion_Reference#SkRegion'>integer</a> <a href='SkRegion_Reference#SkRegion'>rectangle</a>, <a href='SkRegion_Reference#SkRegion'>or</a> <a href='SkRegion_Reference#SkRegion'>a</a> <a href='SkRegion_Reference#SkRegion'>run</a> <a href='SkRegion_Reference#SkRegion'>length</a> <a href='SkRegion_Reference#SkRegion'>encoded</a> <a href='SkRegion_Reference#SkRegion'>array</a>
-<a href='SkRegion_Reference#SkRegion'>of</a> <a href='SkRegion_Reference#SkRegion'>rectangles</a>. <a href='SkRegion_Reference#SkRegion'>SkRegion</a> <a href='SkRegion_Reference#SkRegion'>may</a> <a href='SkRegion_Reference#SkRegion'>reduce</a> <a href='SkRegion_Reference#SkRegion'>the</a> <a href='SkRegion_Reference#SkRegion'>current</a> <a href='#Canvas_Clip'>Canvas_Clip</a>, <a href='#Canvas_Clip'>or</a> <a href='#Canvas_Clip'>may</a> <a href='#Canvas_Clip'>be</a> <a href='#Canvas_Clip'>drawn</a> <a href='#Canvas_Clip'>as</a>
-<a href='#Canvas_Clip'>one</a> <a href='#Canvas_Clip'>or</a> <a href='#Canvas_Clip'>more</a> <a href='#Canvas_Clip'>integer</a> <a href='#Canvas_Clip'>rectangles</a>. <a href='SkRegion_Reference#SkRegion'>SkRegion</a> <a href='SkRegion_Reference#SkRegion'>iterator</a> <a href='SkRegion_Reference#SkRegion'>returns</a> <a href='SkRegion_Reference#SkRegion'>the</a> <a href='SkRegion_Reference#SkRegion'>scan</a> <a href='undocumented#Line'>lines</a> <a href='undocumented#Line'>or</a>
-<a href='undocumented#Line'>rectangles</a> <a href='undocumented#Line'>contained</a> <a href='undocumented#Line'>by</a> <a href='undocumented#Line'>it</a>, <a href='undocumented#Line'>optionally</a> <a href='undocumented#Line'>intersecting</a> <a href='undocumented#Line'>a</a> <a href='undocumented#Line'>bounding</a> <a href='undocumented#Line'>rectangle</a>.
+<a href='SkRegion_Reference#SkRegion'>SkRegion</a> describes the set of pixels used to clip <a href='SkCanvas_Reference#Canvas'>Canvas</a>. <a href='SkRegion_Reference#SkRegion'>SkRegion</a> is compact,
+efficiently storing a single integer rectangle, or a run length encoded array
+of rectangles. <a href='SkRegion_Reference#SkRegion'>SkRegion</a> may reduce the current <a href='#Canvas_Clip'>Canvas_Clip</a>, or may be drawn as
+one or more integer rectangles. <a href='SkRegion_Reference#SkRegion'>SkRegion</a> iterator returns the scan <a href='undocumented#Line'>lines</a> or
+rectangles contained by it, optionally intersecting a bounding rectangle.
<a name='SkRegion_Iterator'></a>
@@ -114,15 +114,15 @@
<pre style="padding: 1em 1em 1em 1em;width: 62.5em; background-color: #f0f0f0">
class <a href='#SkRegion_Iterator'>Iterator</a> {
- <a href='#SkRegion_Iterator'>public</a>:
+ public:
<a href='#SkRegion_Iterator_Iterator'>Iterator()</a>;
- <a href='#SkRegion_Iterator'>Iterator</a>(<a href='#SkRegion_Iterator'>const</a> <a href='SkRegion_Reference#SkRegion'>SkRegion</a>& <a href='SkRegion_Reference#Region'>region</a>);
- <a href='SkRegion_Reference#Region'>bool</a> <a href='#SkRegion_Iterator_rewind'>rewind()</a>;
- <a href='#SkRegion_Iterator_rewind'>void</a> <a href='#SkRegion_Iterator_rewind'>reset</a>(<a href='#SkRegion_Iterator_rewind'>const</a> <a href='SkRegion_Reference#SkRegion'>SkRegion</a>& <a href='SkRegion_Reference#Region'>region</a>);
- <a href='SkRegion_Reference#Region'>bool</a> <a href='#SkRegion_Iterator_done'>done()</a> <a href='#SkRegion_Iterator_done'>const</a>;
- <a href='#SkRegion_Iterator_done'>void</a> <a href='#SkRegion_Iterator_next'>next()</a>;
- <a href='#SkRegion_Iterator_next'>const</a> <a href='SkIRect_Reference#SkIRect'>SkIRect</a>& <a href='#SkRegion_Iterator_rect'>rect()</a>;
- <a href='#SkRegion_Iterator_rect'>const</a> <a href='SkRegion_Reference#SkRegion'>SkRegion</a>* <a href='#SkRegion_Iterator_rgn'>rgn()</a>;
+ <a href='#SkRegion_Iterator'>Iterator</a>(const <a href='SkRegion_Reference#SkRegion'>SkRegion</a>& <a href='SkRegion_Reference#Region'>region</a>);
+ bool <a href='#SkRegion_Iterator_rewind'>rewind()</a>;
+ void reset(const <a href='SkRegion_Reference#SkRegion'>SkRegion</a>& <a href='SkRegion_Reference#Region'>region</a>);
+ bool <a href='#SkRegion_Iterator_done'>done()</a> const;
+ void <a href='#SkRegion_Iterator_next'>next()</a>;
+ const <a href='SkIRect_Reference#SkIRect'>SkIRect</a>& <a href='#SkRegion_Iterator_rect'>rect()</a>;
+ const <a href='SkRegion_Reference#SkRegion'>SkRegion</a>* <a href='#SkRegion_Iterator_rgn'>rgn()</a>;
};
</pre>
@@ -137,13 +137,13 @@
<a href='#SkRegion_Iterator_Iterator'>Iterator()</a>
</pre>
-Initializes <a href='SkRegion_Reference#SkRegion'>SkRegion</a>::<a href='#SkRegion_Iterator'>Iterator</a> <a href='#SkRegion_Iterator'>with</a> <a href='#SkRegion_Iterator'>an</a> <a href='#SkRegion_Iterator'>empty</a> <a href='SkRegion_Reference#SkRegion'>SkRegion</a>. <a href='#SkRegion_Iterator_done'>done()</a> <a href='#SkRegion_Iterator_done'>on</a> <a href='SkRegion_Reference#SkRegion'>SkRegion</a>::<a href='#SkRegion_Iterator'>Iterator</a>
+Initializes <a href='SkRegion_Reference#SkRegion'>SkRegion</a>::<a href='#SkRegion_Iterator'>Iterator</a> with an empty <a href='SkRegion_Reference#SkRegion'>SkRegion</a>. <a href='#SkRegion_Iterator_done'>done()</a> on <a href='SkRegion_Reference#SkRegion'>SkRegion</a>::<a href='#SkRegion_Iterator'>Iterator</a>
returns true.
-Call <a href='#SkRegion_Iterator_reset'>reset()</a> <a href='#SkRegion_Iterator_reset'>to</a> <a href='#SkRegion_Iterator_reset'>initialized</a> <a href='SkRegion_Reference#SkRegion'>SkRegion</a>::<a href='#SkRegion_Iterator'>Iterator</a> <a href='#SkRegion_Iterator'>at</a> <a href='#SkRegion_Iterator'>a</a> <a href='#SkRegion_Iterator'>later</a> <a href='#SkRegion_Iterator'>time</a>.
+Call <a href='#SkRegion_Iterator_reset'>reset()</a> to initialized <a href='SkRegion_Reference#SkRegion'>SkRegion</a>::<a href='#SkRegion_Iterator'>Iterator</a> at a later time.
### Return Value
-empty <a href='SkRegion_Reference#SkRegion'>SkRegion</a> <a href='SkRegion_Reference#SkRegion'>iterator</a>
+empty <a href='SkRegion_Reference#SkRegion'>SkRegion</a> iterator
### Example
@@ -166,21 +166,21 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-<a href='#SkRegion_Iterator'>Iterator</a>(<a href='#SkRegion_Iterator'>const</a> <a href='SkRegion_Reference#SkRegion'>SkRegion</a>& <a href='SkRegion_Reference#Region'>region</a>)
+<a href='#SkRegion_Iterator'>Iterator</a>(const <a href='SkRegion_Reference#SkRegion'>SkRegion</a>& <a href='SkRegion_Reference#Region'>region</a>)
</pre>
-Sets <a href='SkRegion_Reference#SkRegion'>SkRegion</a>::<a href='#SkRegion_Iterator'>Iterator</a> <a href='#SkRegion_Iterator'>to</a> <a href='#SkRegion_Iterator'>return</a> <a href='#SkRegion_Iterator'>elements</a> <a href='#SkRegion_Iterator'>of</a> <a href='SkIRect_Reference#SkIRect'>SkIRect</a> <a href='SkIRect_Reference#SkIRect'>array</a> <a href='SkIRect_Reference#SkIRect'>in</a> <a href='#SkRegion_Iterator_copy_const_SkRegion_region'>region</a>.
+Sets <a href='SkRegion_Reference#SkRegion'>SkRegion</a>::<a href='#SkRegion_Iterator'>Iterator</a> to return elements of <a href='SkIRect_Reference#SkIRect'>SkIRect</a> array in <a href='#SkRegion_Iterator_copy_const_SkRegion_region'>region</a>.
### Parameters
<table> <tr> <td><a name='SkRegion_Iterator_copy_const_SkRegion_region'><code><strong>region</strong></code></a></td>
- <td><a href='SkRegion_Reference#SkRegion'>SkRegion</a> <a href='SkRegion_Reference#SkRegion'>to</a> <a href='SkRegion_Reference#SkRegion'>iterate</a></td>
+ <td><a href='SkRegion_Reference#SkRegion'>SkRegion</a> to iterate</td>
</tr>
</table>
### Return Value
-<a href='SkRegion_Reference#SkRegion'>SkRegion</a> <a href='SkRegion_Reference#SkRegion'>iterator</a>
+<a href='SkRegion_Reference#SkRegion'>SkRegion</a> iterator
### Example
@@ -206,12 +206,12 @@
bool <a href='#SkRegion_Iterator_rewind'>rewind()</a>
</pre>
-<a href='SkPoint_Reference#SkPoint'>SkPoint</a> <a href='SkRegion_Reference#SkRegion'>SkRegion</a>::<a href='#SkRegion_Iterator'>Iterator</a> <a href='#SkRegion_Iterator'>to</a> <a href='#SkRegion_Iterator'>start</a> <a href='#SkRegion_Iterator'>of</a> <a href='SkRegion_Reference#SkRegion'>SkRegion</a>.
-Returns true if <a href='SkRegion_Reference#SkRegion'>SkRegion</a> <a href='SkRegion_Reference#SkRegion'>was</a> <a href='SkRegion_Reference#SkRegion'>set</a>; <a href='SkRegion_Reference#SkRegion'>otherwise</a>, <a href='SkRegion_Reference#SkRegion'>returns</a> <a href='SkRegion_Reference#SkRegion'>false</a>.
+<a href='SkPoint_Reference#SkPoint'>SkPoint</a> <a href='SkRegion_Reference#SkRegion'>SkRegion</a>::<a href='#SkRegion_Iterator'>Iterator</a> to start of <a href='SkRegion_Reference#SkRegion'>SkRegion</a>.
+Returns true if <a href='SkRegion_Reference#SkRegion'>SkRegion</a> was set; otherwise, returns false.
### Return Value
-true if <a href='SkRegion_Reference#SkRegion'>SkRegion</a> <a href='SkRegion_Reference#SkRegion'>was</a> <a href='SkRegion_Reference#SkRegion'>set</a>
+true if <a href='SkRegion_Reference#SkRegion'>SkRegion</a> was set
### Example
@@ -249,7 +249,7 @@
### Parameters
<table> <tr> <td><a name='SkRegion_Iterator_reset_region'><code><strong>region</strong></code></a></td>
- <td><a href='SkRegion_Reference#SkRegion'>SkRegion</a> <a href='SkRegion_Reference#SkRegion'>to</a> <a href='SkRegion_Reference#SkRegion'>iterate</a></td>
+ <td><a href='SkRegion_Reference#SkRegion'>SkRegion</a> to iterate</td>
</tr>
</table>
@@ -276,14 +276,14 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-bool <a href='#SkRegion_Iterator_done'>done()</a> <a href='#SkRegion_Iterator_done'>const</a>
+bool <a href='#SkRegion_Iterator_done'>done()</a> const
</pre>
-Returns true if <a href='SkRegion_Reference#SkRegion'>SkRegion</a>::<a href='#SkRegion_Iterator'>Iterator</a> <a href='#SkRegion_Iterator'>is</a> <a href='#SkRegion_Iterator'>pointing</a> <a href='#SkRegion_Iterator'>to</a> <a href='#SkRegion_Iterator'>final</a> <a href='SkIRect_Reference#SkIRect'>SkIRect</a> <a href='SkIRect_Reference#SkIRect'>in</a> <a href='SkRegion_Reference#SkRegion'>SkRegion</a>.
+Returns true if <a href='SkRegion_Reference#SkRegion'>SkRegion</a>::<a href='#SkRegion_Iterator'>Iterator</a> is pointing to final <a href='SkIRect_Reference#SkIRect'>SkIRect</a> in <a href='SkRegion_Reference#SkRegion'>SkRegion</a>.
### Return Value
-true if <a href='undocumented#Data'>data</a> <a href='undocumented#Data'>parsing</a> <a href='undocumented#Data'>is</a> <a href='undocumented#Data'>complete</a>
+true if <a href='undocumented#Data'>data</a> parsing is complete
### Example
@@ -310,7 +310,7 @@
void <a href='#SkRegion_Iterator_next'>next()</a>
</pre>
-Advances <a href='SkRegion_Reference#SkRegion'>SkRegion</a>::<a href='#SkRegion_Iterator'>Iterator</a> <a href='#SkRegion_Iterator'>to</a> <a href='#SkRegion_Iterator'>next</a> <a href='SkIRect_Reference#SkIRect'>SkIRect</a> <a href='SkIRect_Reference#SkIRect'>in</a> <a href='SkRegion_Reference#SkRegion'>SkRegion</a> <a href='SkRegion_Reference#SkRegion'>if</a> <a href='SkRegion_Reference#SkRegion'>it</a> <a href='SkRegion_Reference#SkRegion'>is</a> <a href='SkRegion_Reference#SkRegion'>not</a> <a href='SkRegion_Reference#SkRegion'>done</a>.
+Advances <a href='SkRegion_Reference#SkRegion'>SkRegion</a>::<a href='#SkRegion_Iterator'>Iterator</a> to next <a href='SkIRect_Reference#SkIRect'>SkIRect</a> in <a href='SkRegion_Reference#SkRegion'>SkRegion</a> if it is not done.
### Example
@@ -334,15 +334,15 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-const <a href='SkIRect_Reference#SkIRect'>SkIRect</a>& <a href='#SkRegion_Iterator_rect'>rect()</a> <a href='#SkRegion_Iterator_rect'>const</a>
+const <a href='SkIRect_Reference#SkIRect'>SkIRect</a>& <a href='#SkRegion_Iterator_rect'>rect()</a> const
</pre>
-Returns <a href='SkIRect_Reference#SkIRect'>SkIRect</a> <a href='SkIRect_Reference#SkIRect'>element</a> <a href='SkIRect_Reference#SkIRect'>in</a> <a href='SkRegion_Reference#SkRegion'>SkRegion</a>. <a href='SkRegion_Reference#SkRegion'>Does</a> <a href='SkRegion_Reference#SkRegion'>not</a> <a href='SkRegion_Reference#SkRegion'>return</a> <a href='SkRegion_Reference#SkRegion'>predictable</a> <a href='SkRegion_Reference#SkRegion'>results</a> <a href='SkRegion_Reference#SkRegion'>if</a> <a href='SkRegion_Reference#SkRegion'>SkRegion</a>
+Returns <a href='SkIRect_Reference#SkIRect'>SkIRect</a> element in <a href='SkRegion_Reference#SkRegion'>SkRegion</a>. Does not return predictable results if <a href='SkRegion_Reference#SkRegion'>SkRegion</a>
is empty.
### Return Value
-part of <a href='SkRegion_Reference#SkRegion'>SkRegion</a> <a href='SkRegion_Reference#SkRegion'>as</a> <a href='SkIRect_Reference#SkIRect'>SkIRect</a>
+part of <a href='SkRegion_Reference#SkRegion'>SkRegion</a> as <a href='SkIRect_Reference#SkIRect'>SkIRect</a>
### Example
@@ -367,10 +367,10 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-const <a href='SkRegion_Reference#SkRegion'>SkRegion</a>* <a href='#SkRegion_Iterator_rgn'>rgn()</a> <a href='#SkRegion_Iterator_rgn'>const</a>
+const <a href='SkRegion_Reference#SkRegion'>SkRegion</a>* <a href='#SkRegion_Iterator_rgn'>rgn()</a> const
</pre>
-Returns <a href='SkRegion_Reference#SkRegion'>SkRegion</a> <a href='SkRegion_Reference#SkRegion'>if</a> <a href='SkRegion_Reference#SkRegion'>set</a>; <a href='SkRegion_Reference#SkRegion'>otherwise</a>, <a href='SkRegion_Reference#SkRegion'>returns</a> <a href='SkRegion_Reference#SkRegion'>nullptr</a>.
+Returns <a href='SkRegion_Reference#SkRegion'>SkRegion</a> if set; otherwise, returns nullptr.
### Return Value
@@ -390,31 +390,31 @@
<pre style="padding: 1em 1em 1em 1em;width: 62.5em; background-color: #f0f0f0">
class SK_API <a href='#SkRegion_Cliperator'>Cliperator</a> {
- <a href='#SkRegion_Cliperator'>public</a>:
- <a href='#SkRegion_Cliperator'>Cliperator</a>(<a href='#SkRegion_Cliperator'>const</a> <a href='SkRegion_Reference#SkRegion'>SkRegion</a>& <a href='SkRegion_Reference#Region'>region</a>, <a href='SkRegion_Reference#Region'>const</a> <a href='SkIRect_Reference#SkIRect'>SkIRect</a>& <a href='SkIRect_Reference#SkIRect'>clip</a>);
- <a href='SkIRect_Reference#SkIRect'>bool</a> <a href='#SkRegion_Cliperator_done'>done()</a>;
- <a href='#SkRegion_Cliperator_done'>void</a> <a href='#SkRegion_Cliperator_next'>next()</a>;
- <a href='#SkRegion_Cliperator_next'>const</a> <a href='SkIRect_Reference#SkIRect'>SkIRect</a>& <a href='#SkRegion_Cliperator_rect'>rect()</a> <a href='#SkRegion_Cliperator_rect'>const</a>;
+ public:
+ <a href='#SkRegion_Cliperator'>Cliperator</a>(const <a href='SkRegion_Reference#SkRegion'>SkRegion</a>& <a href='SkRegion_Reference#Region'>region</a>, const <a href='SkIRect_Reference#SkIRect'>SkIRect</a>& clip);
+ bool <a href='#SkRegion_Cliperator_done'>done()</a>;
+ void <a href='#SkRegion_Cliperator_next'>next()</a>;
+ const <a href='SkIRect_Reference#SkIRect'>SkIRect</a>& <a href='#SkRegion_Cliperator_rect'>rect()</a> const;
};
</pre>
Returns the sequence of rectangles, sorted along y-axis, then x-axis, that make
-up <a href='SkRegion_Reference#Region'>Region</a> <a href='SkRegion_Reference#Region'>intersected</a> <a href='SkRegion_Reference#Region'>with</a> <a href='SkRegion_Reference#Region'>the</a> <a href='SkRegion_Reference#Region'>specified</a> <a href='SkRegion_Reference#Region'>clip</a> <a href='SkRegion_Reference#Region'>rectangle</a>.
+up <a href='SkRegion_Reference#Region'>Region</a> intersected with the specified clip rectangle.
<a name='SkRegion_Cliperator_const_SkRegion_const_SkIRect'></a>
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-<a href='#SkRegion_Cliperator'>Cliperator</a>(<a href='#SkRegion_Cliperator'>const</a> <a href='SkRegion_Reference#SkRegion'>SkRegion</a>& <a href='SkRegion_Reference#Region'>region</a>, <a href='SkRegion_Reference#Region'>const</a> <a href='SkIRect_Reference#SkIRect'>SkIRect</a>& <a href='SkIRect_Reference#SkIRect'>clip</a>)
+<a href='#SkRegion_Cliperator'>Cliperator</a>(const <a href='SkRegion_Reference#SkRegion'>SkRegion</a>& <a href='SkRegion_Reference#Region'>region</a>, const <a href='SkIRect_Reference#SkIRect'>SkIRect</a>& clip)
</pre>
-Sets <a href='SkRegion_Reference#SkRegion'>SkRegion</a>::<a href='#SkRegion_Cliperator'>Cliperator</a> <a href='#SkRegion_Cliperator'>to</a> <a href='#SkRegion_Cliperator'>return</a> <a href='#SkRegion_Cliperator'>elements</a> <a href='#SkRegion_Cliperator'>of</a> <a href='SkIRect_Reference#SkIRect'>SkIRect</a> <a href='SkIRect_Reference#SkIRect'>array</a> <a href='SkIRect_Reference#SkIRect'>in</a> <a href='SkRegion_Reference#SkRegion'>SkRegion</a> <a href='SkRegion_Reference#SkRegion'>within</a> <a href='#SkRegion_Cliperator_const_SkRegion_const_SkIRect_clip'>clip</a>.
+Sets <a href='SkRegion_Reference#SkRegion'>SkRegion</a>::<a href='#SkRegion_Cliperator'>Cliperator</a> to return elements of <a href='SkIRect_Reference#SkIRect'>SkIRect</a> array in <a href='SkRegion_Reference#SkRegion'>SkRegion</a> within <a href='#SkRegion_Cliperator_const_SkRegion_const_SkIRect_clip'>clip</a>.
### Parameters
<table> <tr> <td><a name='SkRegion_Cliperator_const_SkRegion_const_SkIRect_region'><code><strong>region</strong></code></a></td>
- <td><a href='SkRegion_Reference#SkRegion'>SkRegion</a> <a href='SkRegion_Reference#SkRegion'>to</a> <a href='SkRegion_Reference#SkRegion'>iterate</a></td>
+ <td><a href='SkRegion_Reference#SkRegion'>SkRegion</a> to iterate</td>
</tr>
<tr> <td><a name='SkRegion_Cliperator_const_SkRegion_const_SkIRect_clip'><code><strong>clip</strong></code></a></td>
<td>bounds of iteration</td>
@@ -423,7 +423,7 @@
### Return Value
-<a href='SkRegion_Reference#SkRegion'>SkRegion</a> <a href='SkRegion_Reference#SkRegion'>iterator</a>
+<a href='SkRegion_Reference#SkRegion'>SkRegion</a> iterator
### Example
@@ -449,11 +449,11 @@
bool <a href='#SkRegion_Cliperator_done'>done()</a>
</pre>
-Returns true if <a href='SkRegion_Reference#SkRegion'>SkRegion</a>::<a href='#SkRegion_Cliperator'>Cliperator</a> <a href='#SkRegion_Cliperator'>is</a> <a href='#SkRegion_Cliperator'>pointing</a> <a href='#SkRegion_Cliperator'>to</a> <a href='#SkRegion_Cliperator'>final</a> <a href='SkIRect_Reference#SkIRect'>SkIRect</a> <a href='SkIRect_Reference#SkIRect'>in</a> <a href='SkRegion_Reference#SkRegion'>SkRegion</a>.
+Returns true if <a href='SkRegion_Reference#SkRegion'>SkRegion</a>::<a href='#SkRegion_Cliperator'>Cliperator</a> is pointing to final <a href='SkIRect_Reference#SkIRect'>SkIRect</a> in <a href='SkRegion_Reference#SkRegion'>SkRegion</a>.
### Return Value
-true if <a href='undocumented#Data'>data</a> <a href='undocumented#Data'>parsing</a> <a href='undocumented#Data'>is</a> <a href='undocumented#Data'>complete</a>
+true if <a href='undocumented#Data'>data</a> parsing is complete
### Example
@@ -480,7 +480,7 @@
void <a href='#SkRegion_Cliperator_next'>next()</a>
</pre>
-Advances iterator to next <a href='SkIRect_Reference#SkIRect'>SkIRect</a> <a href='SkIRect_Reference#SkIRect'>in</a> <a href='SkRegion_Reference#SkRegion'>SkRegion</a> <a href='SkRegion_Reference#SkRegion'>contained</a> <a href='SkRegion_Reference#SkRegion'>by</a> <a href='SkRegion_Reference#SkRegion'>clip</a>.
+Advances iterator to next <a href='SkIRect_Reference#SkIRect'>SkIRect</a> in <a href='SkRegion_Reference#SkRegion'>SkRegion</a> contained by clip.
### Example
@@ -504,16 +504,16 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-const <a href='SkIRect_Reference#SkIRect'>SkIRect</a>& <a href='#SkRegion_Cliperator_rect'>rect()</a> <a href='#SkRegion_Cliperator_rect'>const</a>
+const <a href='SkIRect_Reference#SkIRect'>SkIRect</a>& <a href='#SkRegion_Cliperator_rect'>rect()</a> const
</pre>
-Returns <a href='SkIRect_Reference#SkIRect'>SkIRect</a> <a href='SkIRect_Reference#SkIRect'>element</a> <a href='SkIRect_Reference#SkIRect'>in</a> <a href='SkRegion_Reference#SkRegion'>SkRegion</a>, <a href='SkRegion_Reference#SkRegion'>intersected</a> <a href='SkRegion_Reference#SkRegion'>with</a> <a href='SkRegion_Reference#SkRegion'>clip</a> <a href='SkRegion_Reference#SkRegion'>passed</a> <a href='SkRegion_Reference#SkRegion'>to</a>
-<a href='SkRegion_Reference#SkRegion'>SkRegion</a>::<a href='#SkRegion_Cliperator'>Cliperator</a> <a href='#SkRegion_Cliperator'>constructor</a>. <a href='#SkRegion_Cliperator'>Does</a> <a href='#SkRegion_Cliperator'>not</a> <a href='#SkRegion_Cliperator'>return</a> <a href='#SkRegion_Cliperator'>predictable</a> <a href='#SkRegion_Cliperator'>results</a> <a href='#SkRegion_Cliperator'>if</a> <a href='SkRegion_Reference#SkRegion'>SkRegion</a>
+Returns <a href='SkIRect_Reference#SkIRect'>SkIRect</a> element in <a href='SkRegion_Reference#SkRegion'>SkRegion</a>, intersected with clip passed to
+<a href='SkRegion_Reference#SkRegion'>SkRegion</a>::<a href='#SkRegion_Cliperator'>Cliperator</a> constructor. Does not return predictable results if <a href='SkRegion_Reference#SkRegion'>SkRegion</a>
is empty.
### Return Value
-part of <a href='SkRegion_Reference#SkRegion'>SkRegion</a> <a href='SkRegion_Reference#SkRegion'>inside</a> <a href='SkRegion_Reference#SkRegion'>clip</a> <a href='SkRegion_Reference#SkRegion'>as</a> <a href='SkIRect_Reference#SkIRect'>SkIRect</a>
+part of <a href='SkRegion_Reference#SkRegion'>SkRegion</a> inside clip as <a href='SkIRect_Reference#SkIRect'>SkIRect</a>
### Example
@@ -539,31 +539,31 @@
<pre style="padding: 1em 1em 1em 1em;width: 62.5em; background-color: #f0f0f0">
class <a href='#SkRegion_Spanerator'>Spanerator</a> {
- <a href='#SkRegion_Spanerator'>public</a>:
- <a href='#SkRegion_Spanerator'>Spanerator</a>(<a href='#SkRegion_Spanerator'>const</a> <a href='SkRegion_Reference#SkRegion'>SkRegion</a>& <a href='SkRegion_Reference#Region'>region</a>, <a href='SkRegion_Reference#Region'>int</a> <a href='SkRegion_Reference#Region'>y</a>, <a href='SkRegion_Reference#Region'>int</a> <a href='SkRegion_Reference#Region'>left</a>, <a href='SkRegion_Reference#Region'>int</a> <a href='SkRegion_Reference#Region'>right</a>);
- <a href='SkRegion_Reference#Region'>bool</a> <a href='SkRegion_Reference#Region'>next</a>(<a href='SkRegion_Reference#Region'>int</a>* <a href='SkRegion_Reference#Region'>left</a>, <a href='SkRegion_Reference#Region'>int</a>* <a href='SkRegion_Reference#Region'>right</a>);
+ public:
+ <a href='#SkRegion_Spanerator'>Spanerator</a>(const <a href='SkRegion_Reference#SkRegion'>SkRegion</a>& <a href='SkRegion_Reference#Region'>region</a>, int y, int left, int right);
+ bool next(int* left, int* right);
};
</pre>
-Returns the <a href='undocumented#Line'>line</a> <a href='undocumented#Line'>segment</a> <a href='undocumented#Line'>ends</a> <a href='undocumented#Line'>within</a> <a href='SkRegion_Reference#Region'>Region</a> <a href='SkRegion_Reference#Region'>that</a> <a href='SkRegion_Reference#Region'>intersect</a> <a href='SkRegion_Reference#Region'>a</a> <a href='SkRegion_Reference#Region'>horizontal</a> <a href='undocumented#Line'>line</a>.
+Returns the <a href='undocumented#Line'>line</a> segment ends within <a href='SkRegion_Reference#Region'>Region</a> that intersect a horizontal <a href='undocumented#Line'>line</a>.
<a name='SkRegion_Spanerator_const_SkRegion_int_int_int'></a>
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-<a href='#SkRegion_Spanerator'>Spanerator</a>(<a href='#SkRegion_Spanerator'>const</a> <a href='SkRegion_Reference#SkRegion'>SkRegion</a>& <a href='SkRegion_Reference#Region'>region</a>, <a href='SkRegion_Reference#Region'>int</a> <a href='SkRegion_Reference#Region'>y</a>, <a href='SkRegion_Reference#Region'>int</a> <a href='SkRegion_Reference#Region'>left</a>, <a href='SkRegion_Reference#Region'>int</a> <a href='SkRegion_Reference#Region'>right</a>)
+<a href='#SkRegion_Spanerator'>Spanerator</a>(const <a href='SkRegion_Reference#SkRegion'>SkRegion</a>& <a href='SkRegion_Reference#Region'>region</a>, int y, int left, int right)
</pre>
-Sets <a href='SkRegion_Reference#SkRegion'>SkRegion</a>::<a href='#SkRegion_Spanerator'>Spanerator</a> <a href='#SkRegion_Spanerator'>to</a> <a href='#SkRegion_Spanerator'>return</a> <a href='undocumented#Line'>line</a> <a href='undocumented#Line'>segments</a> <a href='undocumented#Line'>in</a> <a href='SkRegion_Reference#SkRegion'>SkRegion</a> <a href='SkRegion_Reference#SkRegion'>on</a> <a href='SkRegion_Reference#SkRegion'>scan</a> <a href='undocumented#Line'>line</a>.
+Sets <a href='SkRegion_Reference#SkRegion'>SkRegion</a>::<a href='#SkRegion_Spanerator'>Spanerator</a> to return <a href='undocumented#Line'>line</a> segments in <a href='SkRegion_Reference#SkRegion'>SkRegion</a> on scan <a href='undocumented#Line'>line</a>.
### Parameters
<table> <tr> <td><a name='SkRegion_Spanerator_const_SkRegion_int_int_int_region'><code><strong>region</strong></code></a></td>
- <td><a href='SkRegion_Reference#SkRegion'>SkRegion</a> <a href='SkRegion_Reference#SkRegion'>to</a> <a href='SkRegion_Reference#SkRegion'>iterate</a></td>
+ <td><a href='SkRegion_Reference#SkRegion'>SkRegion</a> to iterate</td>
</tr>
<tr> <td><a name='SkRegion_Spanerator_const_SkRegion_int_int_int_y'><code><strong>y</strong></code></a></td>
- <td>horizontal <a href='undocumented#Line'>line</a> <a href='undocumented#Line'>to</a> <a href='undocumented#Line'>intersect</a></td>
+ <td>horizontal <a href='undocumented#Line'>line</a> to intersect</td>
</tr>
<tr> <td><a name='SkRegion_Spanerator_const_SkRegion_int_int_int_left'><code><strong>left</strong></code></a></td>
<td>bounds of iteration</td>
@@ -575,7 +575,7 @@
### Return Value
-<a href='SkRegion_Reference#SkRegion'>SkRegion</a> <a href='SkRegion_Reference#SkRegion'>iterator</a>
+<a href='SkRegion_Reference#SkRegion'>SkRegion</a> iterator
### Example
@@ -593,7 +593,7 @@
bool next(int* left, int* right)
</pre>
-Advances iterator to next span intersecting <a href='SkRegion_Reference#SkRegion'>SkRegion</a> <a href='SkRegion_Reference#SkRegion'>within</a> <a href='undocumented#Line'>line</a> <a href='undocumented#Line'>segment</a> <a href='undocumented#Line'>provided</a>
+Advances iterator to next span intersecting <a href='SkRegion_Reference#SkRegion'>SkRegion</a> within <a href='undocumented#Line'>line</a> segment provided
in constructor. Returns true if interval was found.
### Parameters
@@ -635,7 +635,7 @@
<a href='#SkRegion_empty_constructor'>SkRegion()</a>
</pre>
-Constructs an empty <a href='SkRegion_Reference#SkRegion'>SkRegion</a>. <a href='SkRegion_Reference#SkRegion'>SkRegion</a> <a href='SkRegion_Reference#SkRegion'>is</a> <a href='SkRegion_Reference#SkRegion'>set</a> <a href='SkRegion_Reference#SkRegion'>to</a> <a href='SkRegion_Reference#SkRegion'>empty</a> <a href='SkRegion_Reference#SkRegion'>bounds</a>
+Constructs an empty <a href='SkRegion_Reference#SkRegion'>SkRegion</a>. <a href='SkRegion_Reference#SkRegion'>SkRegion</a> is set to empty bounds
at (0, 0) with zero width and height.
### Return Value
@@ -663,22 +663,22 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-<a href='SkRegion_Reference#SkRegion'>SkRegion</a>(<a href='SkRegion_Reference#SkRegion'>const</a> <a href='SkRegion_Reference#SkRegion'>SkRegion</a>& <a href='SkRegion_Reference#Region'>region</a>)
+<a href='SkRegion_Reference#SkRegion'>SkRegion</a>(const <a href='SkRegion_Reference#SkRegion'>SkRegion</a>& <a href='SkRegion_Reference#Region'>region</a>)
</pre>
Constructs a copy of an existing <a href='#SkRegion_copy_const_SkRegion_region'>region</a>.
-Copy constructor makes two <a href='SkRegion_Reference#Region'>regions</a> <a href='SkRegion_Reference#Region'>identical</a> <a href='SkRegion_Reference#Region'>by</a> <a href='SkRegion_Reference#Region'>value</a>. <a href='SkRegion_Reference#Region'>Internally</a>, <a href='#SkRegion_copy_const_SkRegion_region'>region</a> <a href='#SkRegion_copy_const_SkRegion_region'>and</a>
-the returned result share pointer values. The underlying <a href='SkRect_Reference#SkRect'>SkRect</a> <a href='SkRect_Reference#SkRect'>array</a> <a href='SkRect_Reference#SkRect'>is</a>
+Copy constructor makes two <a href='SkRegion_Reference#Region'>regions</a> identical by value. Internally, <a href='#SkRegion_copy_const_SkRegion_region'>region</a> and
+the returned result share pointer values. The underlying <a href='SkRect_Reference#SkRect'>SkRect</a> array is
copied when modified.
-Creating a <a href='SkRegion_Reference#SkRegion'>SkRegion</a> <a href='SkRegion_Reference#SkRegion'>copy</a> <a href='SkRegion_Reference#SkRegion'>is</a> <a href='SkRegion_Reference#SkRegion'>very</a> <a href='SkRegion_Reference#SkRegion'>efficient</a> <a href='SkRegion_Reference#SkRegion'>and</a> <a href='SkRegion_Reference#SkRegion'>never</a> <a href='SkRegion_Reference#SkRegion'>allocates</a> <a href='SkRegion_Reference#SkRegion'>memory</a>.
-<a href='SkRegion_Reference#SkRegion'>SkRegion</a> <a href='SkRegion_Reference#SkRegion'>are</a> <a href='SkRegion_Reference#SkRegion'>always</a> <a href='SkRegion_Reference#SkRegion'>copied</a> <a href='SkRegion_Reference#SkRegion'>by</a> <a href='SkRegion_Reference#SkRegion'>value</a> <a href='SkRegion_Reference#SkRegion'>from</a> <a href='SkRegion_Reference#SkRegion'>the</a> <a href='SkRegion_Reference#SkRegion'>interface</a>; <a href='SkRegion_Reference#SkRegion'>the</a> <a href='SkRegion_Reference#SkRegion'>underlying</a> <a href='SkRegion_Reference#SkRegion'>shared</a>
+Creating a <a href='SkRegion_Reference#SkRegion'>SkRegion</a> copy is very efficient and never allocates memory.
+<a href='SkRegion_Reference#SkRegion'>SkRegion</a> are always copied by value from the interface; the underlying shared
pointers are not exposed.
### Parameters
<table> <tr> <td><a name='SkRegion_copy_const_SkRegion_region'><code><strong>region</strong></code></a></td>
- <td><a href='SkRegion_Reference#SkRegion'>SkRegion</a> <a href='SkRegion_Reference#SkRegion'>to</a> <a href='SkRegion_Reference#SkRegion'>copy</a> <a href='SkRegion_Reference#SkRegion'>by</a> <a href='SkRegion_Reference#SkRegion'>value</a></td>
+ <td><a href='SkRegion_Reference#SkRegion'>SkRegion</a> to copy by value</td>
</tr>
</table>
@@ -711,10 +711,10 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-explicit <a href='SkRegion_Reference#SkRegion'>SkRegion</a>(<a href='SkRegion_Reference#SkRegion'>const</a> <a href='SkIRect_Reference#SkIRect'>SkIRect</a>& <a href='SkRect_Reference#Rect'>rect</a>)
+explicit <a href='SkRegion_Reference#SkRegion'>SkRegion</a>(const <a href='SkIRect_Reference#SkIRect'>SkIRect</a>& <a href='SkRect_Reference#Rect'>rect</a>)
</pre>
-Constructs a rectangular <a href='SkRegion_Reference#SkRegion'>SkRegion</a> <a href='SkRegion_Reference#SkRegion'>matching</a> <a href='SkRegion_Reference#SkRegion'>the</a> <a href='SkRegion_Reference#SkRegion'>bounds</a> <a href='SkRegion_Reference#SkRegion'>of</a> <a href='#SkRegion_copy_const_SkIRect_rect'>rect</a>.
+Constructs a rectangular <a href='SkRegion_Reference#SkRegion'>SkRegion</a> matching the bounds of <a href='#SkRegion_copy_const_SkIRect_rect'>rect</a>.
### Parameters
@@ -743,11 +743,11 @@
~<a href='#SkRegion_empty_constructor'>SkRegion()</a>
</pre>
-Releases ownership of any shared <a href='undocumented#Data'>data</a> <a href='undocumented#Data'>and</a> <a href='undocumented#Data'>deletes</a> <a href='undocumented#Data'>data</a> <a href='undocumented#Data'>if</a> <a href='SkRegion_Reference#SkRegion'>SkRegion</a> <a href='SkRegion_Reference#SkRegion'>is</a> <a href='SkRegion_Reference#SkRegion'>sole</a> <a href='SkRegion_Reference#SkRegion'>owner</a>.
+Releases ownership of any shared <a href='undocumented#Data'>data</a> and deletes <a href='undocumented#Data'>data</a> if <a href='SkRegion_Reference#SkRegion'>SkRegion</a> is sole owner.
### Example
-<div><fiddle-embed name="985ff654a6b67288d322c748132a088e"><div>delete calls <a href='SkRegion_Reference#Region'>Region</a> <a href='SkRegion_Reference#Region'>destructor</a>, <a href='SkRegion_Reference#Region'>but</a> <a href='SkRegion_Reference#Region'>copy</a> <a href='SkRegion_Reference#Region'>of</a> <a href='SkRegion_Reference#Region'>original</a> <a href='SkRegion_Reference#Region'>in</a> <a href='SkRegion_Reference#Region'>region2</a> <a href='SkRegion_Reference#Region'>is</a> <a href='SkRegion_Reference#Region'>unaffected</a>.
+<div><fiddle-embed name="985ff654a6b67288d322c748132a088e"><div>delete calls <a href='SkRegion_Reference#Region'>Region</a> destructor, but copy of original in region2 is unaffected.
</div>
#### Example Output
@@ -767,28 +767,28 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-<a href='SkRegion_Reference#SkRegion'>SkRegion</a>& <a href='SkRegion_Reference#SkRegion'>operator</a>=(<a href='SkRegion_Reference#SkRegion'>const</a> <a href='SkRegion_Reference#SkRegion'>SkRegion</a>& <a href='SkRegion_Reference#Region'>region</a>)
+<a href='SkRegion_Reference#SkRegion'>SkRegion</a>& operator=(const <a href='SkRegion_Reference#SkRegion'>SkRegion</a>& <a href='SkRegion_Reference#Region'>region</a>)
</pre>
Constructs a copy of an existing <a href='#SkRegion_copy_operator_region'>region</a>.
-Makes two <a href='SkRegion_Reference#Region'>regions</a> <a href='SkRegion_Reference#Region'>identical</a> <a href='SkRegion_Reference#Region'>by</a> <a href='SkRegion_Reference#Region'>value</a>. <a href='SkRegion_Reference#Region'>Internally</a>, <a href='#SkRegion_copy_operator_region'>region</a> <a href='#SkRegion_copy_operator_region'>and</a>
-the returned result share pointer values. The underlying <a href='SkRect_Reference#SkRect'>SkRect</a> <a href='SkRect_Reference#SkRect'>array</a> <a href='SkRect_Reference#SkRect'>is</a>
+Makes two <a href='SkRegion_Reference#Region'>regions</a> identical by value. Internally, <a href='#SkRegion_copy_operator_region'>region</a> and
+the returned result share pointer values. The underlying <a href='SkRect_Reference#SkRect'>SkRect</a> array is
copied when modified.
-Creating a <a href='SkRegion_Reference#SkRegion'>SkRegion</a> <a href='SkRegion_Reference#SkRegion'>copy</a> <a href='SkRegion_Reference#SkRegion'>is</a> <a href='SkRegion_Reference#SkRegion'>very</a> <a href='SkRegion_Reference#SkRegion'>efficient</a> <a href='SkRegion_Reference#SkRegion'>and</a> <a href='SkRegion_Reference#SkRegion'>never</a> <a href='SkRegion_Reference#SkRegion'>allocates</a> <a href='SkRegion_Reference#SkRegion'>memory</a>.
-<a href='SkRegion_Reference#SkRegion'>SkRegion</a> <a href='SkRegion_Reference#SkRegion'>are</a> <a href='SkRegion_Reference#SkRegion'>always</a> <a href='SkRegion_Reference#SkRegion'>copied</a> <a href='SkRegion_Reference#SkRegion'>by</a> <a href='SkRegion_Reference#SkRegion'>value</a> <a href='SkRegion_Reference#SkRegion'>from</a> <a href='SkRegion_Reference#SkRegion'>the</a> <a href='SkRegion_Reference#SkRegion'>interface</a>; <a href='SkRegion_Reference#SkRegion'>the</a> <a href='SkRegion_Reference#SkRegion'>underlying</a> <a href='SkRegion_Reference#SkRegion'>shared</a>
+Creating a <a href='SkRegion_Reference#SkRegion'>SkRegion</a> copy is very efficient and never allocates memory.
+<a href='SkRegion_Reference#SkRegion'>SkRegion</a> are always copied by value from the interface; the underlying shared
pointers are not exposed.
### Parameters
<table> <tr> <td><a name='SkRegion_copy_operator_region'><code><strong>region</strong></code></a></td>
- <td><a href='SkRegion_Reference#SkRegion'>SkRegion</a> <a href='SkRegion_Reference#SkRegion'>to</a> <a href='SkRegion_Reference#SkRegion'>copy</a> <a href='SkRegion_Reference#SkRegion'>by</a> <a href='SkRegion_Reference#SkRegion'>value</a></td>
+ <td><a href='SkRegion_Reference#SkRegion'>SkRegion</a> to copy by value</td>
</tr>
</table>
### Return Value
-<a href='SkRegion_Reference#SkRegion'>SkRegion</a> <a href='SkRegion_Reference#SkRegion'>to</a> <a href='SkRegion_Reference#SkRegion'>copy</a> <a href='SkRegion_Reference#SkRegion'>by</a> <a href='SkRegion_Reference#SkRegion'>value</a>
+<a href='SkRegion_Reference#SkRegion'>SkRegion</a> to copy by value
### Example
@@ -812,22 +812,22 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-bool operator==(const <a href='SkRegion_Reference#SkRegion'>SkRegion</a>& <a href='SkRegion_Reference#SkRegion'>other</a>) <a href='SkRegion_Reference#SkRegion'>const</a>
+bool operator==(const <a href='SkRegion_Reference#SkRegion'>SkRegion</a>& other) const
</pre>
-Compares <a href='SkRegion_Reference#SkRegion'>SkRegion</a> <a href='SkRegion_Reference#SkRegion'>and</a> <a href='#SkRegion_equal1_operator_other'>other</a>; <a href='#SkRegion_equal1_operator_other'>returns</a> <a href='#SkRegion_equal1_operator_other'>true</a> <a href='#SkRegion_equal1_operator_other'>if</a> <a href='#SkRegion_equal1_operator_other'>they</a> <a href='#SkRegion_equal1_operator_other'>enclose</a> <a href='#SkRegion_equal1_operator_other'>exactly</a>
+Compares <a href='SkRegion_Reference#SkRegion'>SkRegion</a> and <a href='#SkRegion_equal1_operator_other'>other</a>; returns true if they enclose exactly
the same area.
### Parameters
<table> <tr> <td><a name='SkRegion_equal1_operator_other'><code><strong>other</strong></code></a></td>
- <td><a href='SkRegion_Reference#SkRegion'>SkRegion</a> <a href='SkRegion_Reference#SkRegion'>to</a> <a href='SkRegion_Reference#SkRegion'>compare</a></td>
+ <td><a href='SkRegion_Reference#SkRegion'>SkRegion</a> to compare</td>
</tr>
</table>
### Return Value
-true if <a href='SkRegion_Reference#SkRegion'>SkRegion</a> <a href='SkRegion_Reference#SkRegion'>pair</a> <a href='SkRegion_Reference#SkRegion'>are</a> <a href='SkRegion_Reference#SkRegion'>equivalent</a>
+true if <a href='SkRegion_Reference#SkRegion'>SkRegion</a> pair are equivalent
### Example
@@ -852,21 +852,21 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-bool operator!=(const <a href='SkRegion_Reference#SkRegion'>SkRegion</a>& <a href='SkRegion_Reference#SkRegion'>other</a>) <a href='SkRegion_Reference#SkRegion'>const</a>
+bool operator!=(const <a href='SkRegion_Reference#SkRegion'>SkRegion</a>& other) const
</pre>
-Compares <a href='SkRegion_Reference#SkRegion'>SkRegion</a> <a href='SkRegion_Reference#SkRegion'>and</a> <a href='#SkRegion_notequal1_operator_other'>other</a>; <a href='#SkRegion_notequal1_operator_other'>returns</a> <a href='#SkRegion_notequal1_operator_other'>true</a> <a href='#SkRegion_notequal1_operator_other'>if</a> <a href='#SkRegion_notequal1_operator_other'>they</a> <a href='#SkRegion_notequal1_operator_other'>do</a> <a href='#SkRegion_notequal1_operator_other'>not</a> <a href='#SkRegion_notequal1_operator_other'>enclose</a> <a href='#SkRegion_notequal1_operator_other'>the</a> <a href='#SkRegion_notequal1_operator_other'>same</a> <a href='#SkRegion_notequal1_operator_other'>area</a>.
+Compares <a href='SkRegion_Reference#SkRegion'>SkRegion</a> and <a href='#SkRegion_notequal1_operator_other'>other</a>; returns true if they do not enclose the same area.
### Parameters
<table> <tr> <td><a name='SkRegion_notequal1_operator_other'><code><strong>other</strong></code></a></td>
- <td><a href='SkRegion_Reference#SkRegion'>SkRegion</a> <a href='SkRegion_Reference#SkRegion'>to</a> <a href='SkRegion_Reference#SkRegion'>compare</a></td>
+ <td><a href='SkRegion_Reference#SkRegion'>SkRegion</a> to compare</td>
</tr>
</table>
### Return Value
-true if <a href='SkRegion_Reference#SkRegion'>SkRegion</a> <a href='SkRegion_Reference#SkRegion'>pair</a> <a href='SkRegion_Reference#SkRegion'>are</a> <a href='SkRegion_Reference#SkRegion'>not</a> <a href='SkRegion_Reference#SkRegion'>equivalent</a>
+true if <a href='SkRegion_Reference#SkRegion'>SkRegion</a> pair are not equivalent
### Example
@@ -891,22 +891,22 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-bool set(const <a href='SkRegion_Reference#SkRegion'>SkRegion</a>& <a href='SkRegion_Reference#SkRegion'>src</a>)
+bool set(const <a href='SkRegion_Reference#SkRegion'>SkRegion</a>& src)
</pre>
-Sets <a href='SkRegion_Reference#SkRegion'>SkRegion</a> <a href='SkRegion_Reference#SkRegion'>to</a> <a href='#SkRegion_set_src'>src</a>, <a href='#SkRegion_set_src'>and</a> <a href='#SkRegion_set_src'>returns</a> <a href='#SkRegion_set_src'>true</a> <a href='#SkRegion_set_src'>if</a> <a href='#SkRegion_set_src'>src</a> <a href='#SkRegion_set_src'>bounds</a> <a href='#SkRegion_set_src'>is</a> <a href='#SkRegion_set_src'>not</a> <a href='#SkRegion_set_src'>empty</a>.
-This makes <a href='SkRegion_Reference#SkRegion'>SkRegion</a> <a href='SkRegion_Reference#SkRegion'>and</a> <a href='#SkRegion_set_src'>src</a> <a href='#SkRegion_set_src'>identical</a> <a href='#SkRegion_set_src'>by</a> <a href='#SkRegion_set_src'>value</a>. <a href='#SkRegion_set_src'>Internally</a>,
-<a href='SkRegion_Reference#SkRegion'>SkRegion</a> <a href='SkRegion_Reference#SkRegion'>and</a> <a href='#SkRegion_set_src'>src</a> <a href='#SkRegion_set_src'>share</a> <a href='#SkRegion_set_src'>pointer</a> <a href='#SkRegion_set_src'>values</a>. <a href='#SkRegion_set_src'>The</a> <a href='#SkRegion_set_src'>underlying</a> <a href='SkRect_Reference#SkRect'>SkRect</a> <a href='SkRect_Reference#SkRect'>array</a> <a href='SkRect_Reference#SkRect'>is</a>
+Sets <a href='SkRegion_Reference#SkRegion'>SkRegion</a> to <a href='#SkRegion_set_src'>src</a>, and returns true if <a href='#SkRegion_set_src'>src</a> bounds is not empty.
+This makes <a href='SkRegion_Reference#SkRegion'>SkRegion</a> and <a href='#SkRegion_set_src'>src</a> identical by value. Internally,
+<a href='SkRegion_Reference#SkRegion'>SkRegion</a> and <a href='#SkRegion_set_src'>src</a> share pointer values. The underlying <a href='SkRect_Reference#SkRect'>SkRect</a> array is
copied when modified.
-Creating a <a href='SkRegion_Reference#SkRegion'>SkRegion</a> <a href='SkRegion_Reference#SkRegion'>copy</a> <a href='SkRegion_Reference#SkRegion'>is</a> <a href='SkRegion_Reference#SkRegion'>very</a> <a href='SkRegion_Reference#SkRegion'>efficient</a> <a href='SkRegion_Reference#SkRegion'>and</a> <a href='SkRegion_Reference#SkRegion'>never</a> <a href='SkRegion_Reference#SkRegion'>allocates</a> <a href='SkRegion_Reference#SkRegion'>memory</a>.
-<a href='SkRegion_Reference#SkRegion'>SkRegion</a> <a href='SkRegion_Reference#SkRegion'>are</a> <a href='SkRegion_Reference#SkRegion'>always</a> <a href='SkRegion_Reference#SkRegion'>copied</a> <a href='SkRegion_Reference#SkRegion'>by</a> <a href='SkRegion_Reference#SkRegion'>value</a> <a href='SkRegion_Reference#SkRegion'>from</a> <a href='SkRegion_Reference#SkRegion'>the</a> <a href='SkRegion_Reference#SkRegion'>interface</a>; <a href='SkRegion_Reference#SkRegion'>the</a> <a href='SkRegion_Reference#SkRegion'>underlying</a> <a href='SkRegion_Reference#SkRegion'>shared</a>
+Creating a <a href='SkRegion_Reference#SkRegion'>SkRegion</a> copy is very efficient and never allocates memory.
+<a href='SkRegion_Reference#SkRegion'>SkRegion</a> are always copied by value from the interface; the underlying shared
pointers are not exposed.
### Parameters
<table> <tr> <td><a name='SkRegion_set_src'><code><strong>src</strong></code></a></td>
- <td><a href='SkRegion_Reference#SkRegion'>SkRegion</a> <a href='SkRegion_Reference#SkRegion'>to</a> <a href='SkRegion_Reference#SkRegion'>copy</a></td>
+ <td><a href='SkRegion_Reference#SkRegion'>SkRegion</a> to copy</td>
</tr>
</table>
@@ -936,20 +936,20 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-void <a href='#SkRegion_swap'>swap</a>(<a href='SkRegion_Reference#SkRegion'>SkRegion</a>& <a href='SkRegion_Reference#SkRegion'>other</a>)
+void <a href='#SkRegion_swap'>swap</a>(<a href='SkRegion_Reference#SkRegion'>SkRegion</a>& other)
</pre>
-Exchanges <a href='SkIRect_Reference#SkIRect'>SkIRect</a> <a href='SkIRect_Reference#SkIRect'>array</a> <a href='SkIRect_Reference#SkIRect'>of</a> <a href='SkRegion_Reference#SkRegion'>SkRegion</a> <a href='SkRegion_Reference#SkRegion'>and</a> <a href='#SkRegion_swap_other'>other</a>. <a href='#SkRegion_swap'>swap()</a> <a href='#SkRegion_swap'>internally</a> <a href='#SkRegion_swap'>exchanges</a> <a href='#SkRegion_swap'>pointers</a>,
+Exchanges <a href='SkIRect_Reference#SkIRect'>SkIRect</a> array of <a href='SkRegion_Reference#SkRegion'>SkRegion</a> and <a href='#SkRegion_swap_other'>other</a>. <a href='#SkRegion_swap'>swap()</a> internally exchanges pointers,
so it is lightweight and does not allocate memory.
-<a href='#SkRegion_swap'>swap()</a> <a href='#SkRegion_swap'>usage</a> <a href='#SkRegion_swap'>has</a> <a href='#SkRegion_swap'>largely</a> <a href='#SkRegion_swap'>been</a> <a href='#SkRegion_swap'>replaced</a> <a href='#SkRegion_swap'>by</a> by<a href='#SkRegion_copy_operator'>operator=(const SkRegion& region)</a>.
-<a href='SkPath_Reference#SkPath'>SkPath</a> <a href='SkPath_Reference#SkPath'>do</a> <a href='SkPath_Reference#SkPath'>not</a> <a href='SkPath_Reference#SkPath'>copy</a> <a href='SkPath_Reference#SkPath'>their</a> <a href='SkPath_Reference#SkPath'>content</a> <a href='SkPath_Reference#SkPath'>on</a> <a href='SkPath_Reference#SkPath'>assignment</a> <a href='SkPath_Reference#SkPath'>until</a> <a href='SkPath_Reference#SkPath'>they</a> <a href='SkPath_Reference#SkPath'>are</a> <a href='SkPath_Reference#SkPath'>written</a> <a href='SkPath_Reference#SkPath'>to</a>,
+<a href='#SkRegion_swap'>swap()</a> usage has largely been replaced by by<a href='#SkRegion_copy_operator'>operator=(const SkRegion& region)</a>.
+<a href='SkPath_Reference#SkPath'>SkPath</a> do not copy their content on assignment until they are written to,
making assignment as efficient as <a href='#SkRegion_swap'>swap()</a>.
### Parameters
<table> <tr> <td><a name='SkRegion_swap_other'><code><strong>other</strong></code></a></td>
- <td><a href='#SkRegion_copy_operator'>operator=(const SkRegion& region)</a> <a href='#SkRegion_copy_operator'>set</a></td>
+ <td><a href='#SkRegion_copy_operator'>operator=(const SkRegion& region)</a> set</td>
</tr>
</table>
@@ -975,13 +975,13 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-bool <a href='#SkRegion_isEmpty'>isEmpty</a>() <a href='#SkRegion_isEmpty'>const</a>
+bool <a href='#SkRegion_isEmpty'>isEmpty</a>() const
</pre>
-Returns true if <a href='SkRegion_Reference#SkRegion'>SkRegion</a> <a href='SkRegion_Reference#SkRegion'>is</a> <a href='SkRegion_Reference#SkRegion'>empty</a>.
-Empty <a href='SkRegion_Reference#SkRegion'>SkRegion</a> <a href='SkRegion_Reference#SkRegion'>has</a> <a href='SkRegion_Reference#SkRegion'>bounds</a> <a href='SkRegion_Reference#SkRegion'>width</a> <a href='SkRegion_Reference#SkRegion'>or</a> <a href='SkRegion_Reference#SkRegion'>height</a> <a href='SkRegion_Reference#SkRegion'>less</a> <a href='SkRegion_Reference#SkRegion'>than</a> <a href='SkRegion_Reference#SkRegion'>or</a> <a href='SkRegion_Reference#SkRegion'>equal</a> <a href='SkRegion_Reference#SkRegion'>to</a> <a href='SkRegion_Reference#SkRegion'>zero</a>.
-<a href='#SkRegion_empty_constructor'>SkRegion()</a> <a href='SkRegion_Reference#SkRegion'>constructs</a> <a href='SkRegion_Reference#SkRegion'>empty</a> <a href='SkRegion_Reference#SkRegion'>SkRegion</a>; <a href='#SkRegion_setEmpty'>setEmpty</a>()
-and <a href='#SkRegion_setRect'>setRect</a>() <a href='#SkRegion_setRect'>with</a> <a href='#SkRegion_setRect'>dimensionless</a> <a href='undocumented#Data'>data</a> <a href='undocumented#Data'>make</a> <a href='SkRegion_Reference#SkRegion'>SkRegion</a> <a href='SkRegion_Reference#SkRegion'>empty</a>.
+Returns true if <a href='SkRegion_Reference#SkRegion'>SkRegion</a> is empty.
+Empty <a href='SkRegion_Reference#SkRegion'>SkRegion</a> has bounds width or height less than or equal to zero.
+<a href='#SkRegion_empty_constructor'>SkRegion()</a> constructs empty <a href='SkRegion_Reference#SkRegion'>SkRegion</a>; <a href='#SkRegion_setEmpty'>setEmpty</a>()
+and <a href='#SkRegion_setRect'>setRect</a>() with dimensionless <a href='undocumented#Data'>data</a> make <a href='SkRegion_Reference#SkRegion'>SkRegion</a> empty.
### Return Value
@@ -1010,14 +1010,14 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-bool <a href='#SkRegion_isRect'>isRect</a>() <a href='#SkRegion_isRect'>const</a>
+bool <a href='#SkRegion_isRect'>isRect</a>() const
</pre>
-Returns true if <a href='SkRegion_Reference#SkRegion'>SkRegion</a> <a href='SkRegion_Reference#SkRegion'>is</a> <a href='SkRegion_Reference#SkRegion'>one</a> <a href='SkIRect_Reference#SkIRect'>SkIRect</a> <a href='SkIRect_Reference#SkIRect'>with</a> <a href='SkIRect_Reference#SkIRect'>positive</a> <a href='SkIRect_Reference#SkIRect'>dimensions</a>.
+Returns true if <a href='SkRegion_Reference#SkRegion'>SkRegion</a> is one <a href='SkIRect_Reference#SkIRect'>SkIRect</a> with positive dimensions.
### Return Value
-true if <a href='SkRegion_Reference#SkRegion'>SkRegion</a> <a href='SkRegion_Reference#SkRegion'>contains</a> <a href='SkRegion_Reference#SkRegion'>one</a> <a href='SkIRect_Reference#SkIRect'>SkIRect</a>
+true if <a href='SkRegion_Reference#SkRegion'>SkRegion</a> contains one <a href='SkIRect_Reference#SkIRect'>SkIRect</a>
### Example
@@ -1042,14 +1042,14 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-bool <a href='#SkRegion_isComplex'>isComplex</a>() <a href='#SkRegion_isComplex'>const</a>
+bool <a href='#SkRegion_isComplex'>isComplex</a>() const
</pre>
-Returns true if <a href='SkRegion_Reference#SkRegion'>SkRegion</a> <a href='SkRegion_Reference#SkRegion'>is</a> <a href='SkRegion_Reference#SkRegion'>described</a> <a href='SkRegion_Reference#SkRegion'>by</a> <a href='SkRegion_Reference#SkRegion'>more</a> <a href='SkRegion_Reference#SkRegion'>than</a> <a href='SkRegion_Reference#SkRegion'>one</a> <a href='SkRegion_Reference#SkRegion'>rectangle</a>.
+Returns true if <a href='SkRegion_Reference#SkRegion'>SkRegion</a> is described by more than one rectangle.
### Return Value
-true if <a href='SkRegion_Reference#SkRegion'>SkRegion</a> <a href='SkRegion_Reference#SkRegion'>contains</a> <a href='SkRegion_Reference#SkRegion'>more</a> <a href='SkRegion_Reference#SkRegion'>than</a> <a href='SkRegion_Reference#SkRegion'>one</a> <a href='SkIRect_Reference#SkIRect'>SkIRect</a>
+true if <a href='SkRegion_Reference#SkRegion'>SkRegion</a> contains more than one <a href='SkIRect_Reference#SkIRect'>SkIRect</a>
### Example
@@ -1074,15 +1074,15 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-const <a href='SkIRect_Reference#SkIRect'>SkIRect</a>& <a href='#SkRegion_getBounds'>getBounds</a>() <a href='#SkRegion_getBounds'>const</a>
+const <a href='SkIRect_Reference#SkIRect'>SkIRect</a>& <a href='#SkRegion_getBounds'>getBounds</a>() const
</pre>
-Returns minimum and maximum axes values of <a href='SkIRect_Reference#SkIRect'>SkIRect</a> <a href='SkIRect_Reference#SkIRect'>array</a>.
-Returns (0, 0, 0, 0) if <a href='SkRegion_Reference#SkRegion'>SkRegion</a> <a href='SkRegion_Reference#SkRegion'>is</a> <a href='SkRegion_Reference#SkRegion'>empty</a>.
+Returns minimum and maximum axes values of <a href='SkIRect_Reference#SkIRect'>SkIRect</a> array.
+Returns (0, 0, 0, 0) if <a href='SkRegion_Reference#SkRegion'>SkRegion</a> is empty.
### Return Value
-combined bounds of all <a href='SkIRect_Reference#SkIRect'>SkIRect</a> <a href='SkIRect_Reference#SkIRect'>elements</a>
+combined bounds of all <a href='SkIRect_Reference#SkIRect'>SkIRect</a> elements
### Example
@@ -1105,15 +1105,15 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-int <a href='#SkRegion_computeRegionComplexity'>computeRegionComplexity</a>() <a href='#SkRegion_computeRegionComplexity'>const</a>
+int <a href='#SkRegion_computeRegionComplexity'>computeRegionComplexity</a>() const
</pre>
Returns a value that increases with the number of
-elements in <a href='SkRegion_Reference#SkRegion'>SkRegion</a>. <a href='SkRegion_Reference#SkRegion'>Returns</a> <a href='SkRegion_Reference#SkRegion'>zero</a> <a href='SkRegion_Reference#SkRegion'>if</a> <a href='SkRegion_Reference#SkRegion'>SkRegion</a> <a href='SkRegion_Reference#SkRegion'>is</a> <a href='SkRegion_Reference#SkRegion'>empty</a>.
-Returns one if <a href='SkRegion_Reference#SkRegion'>SkRegion</a> <a href='SkRegion_Reference#SkRegion'>equals</a> <a href='SkIRect_Reference#SkIRect'>SkIRect</a>; <a href='SkIRect_Reference#SkIRect'>otherwise</a>, <a href='SkIRect_Reference#SkIRect'>returns</a>
-value greater than one indicating that <a href='SkRegion_Reference#SkRegion'>SkRegion</a> <a href='SkRegion_Reference#SkRegion'>is</a> <a href='SkRegion_Reference#SkRegion'>complex</a>.
+elements in <a href='SkRegion_Reference#SkRegion'>SkRegion</a>. Returns zero if <a href='SkRegion_Reference#SkRegion'>SkRegion</a> is empty.
+Returns one if <a href='SkRegion_Reference#SkRegion'>SkRegion</a> equals <a href='SkIRect_Reference#SkIRect'>SkIRect</a>; otherwise, returns
+value greater than one indicating that <a href='SkRegion_Reference#SkRegion'>SkRegion</a> is complex.
-Call to compare <a href='SkRegion_Reference#SkRegion'>SkRegion</a> <a href='SkRegion_Reference#SkRegion'>for</a> <a href='SkRegion_Reference#SkRegion'>relative</a> <a href='SkRegion_Reference#SkRegion'>complexity</a>.
+Call to compare <a href='SkRegion_Reference#SkRegion'>SkRegion</a> for relative complexity.
### Return Value
@@ -1142,23 +1142,23 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-bool <a href='#SkRegion_getBoundaryPath'>getBoundaryPath</a>(<a href='SkPath_Reference#SkPath'>SkPath</a>* <a href='SkPath_Reference#Path'>path</a>) <a href='SkPath_Reference#Path'>const</a>
+bool <a href='#SkRegion_getBoundaryPath'>getBoundaryPath</a>(<a href='SkPath_Reference#SkPath'>SkPath</a>* <a href='SkPath_Reference#Path'>path</a>) const
</pre>
-Appends outline of <a href='SkRegion_Reference#SkRegion'>SkRegion</a> <a href='SkRegion_Reference#SkRegion'>to</a> <a href='#SkRegion_getBoundaryPath_path'>path</a>.
-Returns true if <a href='SkRegion_Reference#SkRegion'>SkRegion</a> <a href='SkRegion_Reference#SkRegion'>is</a> <a href='SkRegion_Reference#SkRegion'>not</a> <a href='SkRegion_Reference#SkRegion'>empty</a>; <a href='SkRegion_Reference#SkRegion'>otherwise</a>, <a href='SkRegion_Reference#SkRegion'>returns</a> <a href='SkRegion_Reference#SkRegion'>false</a>, <a href='SkRegion_Reference#SkRegion'>and</a> <a href='SkRegion_Reference#SkRegion'>leaves</a> <a href='#SkRegion_getBoundaryPath_path'>path</a>
+Appends outline of <a href='SkRegion_Reference#SkRegion'>SkRegion</a> to <a href='#SkRegion_getBoundaryPath_path'>path</a>.
+Returns true if <a href='SkRegion_Reference#SkRegion'>SkRegion</a> is not empty; otherwise, returns false, and leaves <a href='#SkRegion_getBoundaryPath_path'>path</a>
unmodified.
### Parameters
<table> <tr> <td><a name='SkRegion_getBoundaryPath_path'><code><strong>path</strong></code></a></td>
- <td><a href='SkPath_Reference#SkPath'>SkPath</a> <a href='SkPath_Reference#SkPath'>to</a> <a href='SkPath_Reference#SkPath'>append</a> <a href='SkPath_Reference#SkPath'>to</a></td>
+ <td><a href='SkPath_Reference#SkPath'>SkPath</a> to append to</td>
</tr>
</table>
### Return Value
-true if <a href='#SkRegion_getBoundaryPath_path'>path</a> <a href='#SkRegion_getBoundaryPath_path'>changed</a>
+true if <a href='#SkRegion_getBoundaryPath_path'>path</a> changed
### Example
@@ -1176,7 +1176,7 @@
bool <a href='#SkRegion_setEmpty'>setEmpty</a>()
</pre>
-Constructs an empty <a href='SkRegion_Reference#SkRegion'>SkRegion</a>. <a href='SkRegion_Reference#SkRegion'>SkRegion</a> <a href='SkRegion_Reference#SkRegion'>is</a> <a href='SkRegion_Reference#SkRegion'>set</a> <a href='SkRegion_Reference#SkRegion'>to</a> <a href='SkRegion_Reference#SkRegion'>empty</a> <a href='SkRegion_Reference#SkRegion'>bounds</a>
+Constructs an empty <a href='SkRegion_Reference#SkRegion'>SkRegion</a>. <a href='SkRegion_Reference#SkRegion'>SkRegion</a> is set to empty bounds
at (0, 0) with zero width and height. Always returns false.
### Return Value
@@ -1206,11 +1206,11 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-bool <a href='#SkRegion_setRect'>setRect</a>(<a href='#SkRegion_setRect'>const</a> <a href='SkIRect_Reference#SkIRect'>SkIRect</a>& <a href='SkRect_Reference#Rect'>rect</a>)
+bool <a href='#SkRegion_setRect'>setRect</a>(const <a href='SkIRect_Reference#SkIRect'>SkIRect</a>& <a href='SkRect_Reference#Rect'>rect</a>)
</pre>
-Constructs a rectangular <a href='SkRegion_Reference#SkRegion'>SkRegion</a> <a href='SkRegion_Reference#SkRegion'>matching</a> <a href='SkRegion_Reference#SkRegion'>the</a> <a href='SkRegion_Reference#SkRegion'>bounds</a> <a href='SkRegion_Reference#SkRegion'>of</a> <a href='#SkRegion_setRect_rect'>rect</a>.
-If <a href='#SkRegion_setRect_rect'>rect</a> <a href='#SkRegion_setRect_rect'>is</a> <a href='#SkRegion_setRect_rect'>empty</a>, <a href='#SkRegion_setRect_rect'>constructs</a> <a href='#SkRegion_setRect_rect'>empty</a> <a href='#SkRegion_setRect_rect'>and</a> <a href='#SkRegion_setRect_rect'>returns</a> <a href='#SkRegion_setRect_rect'>false</a>.
+Constructs a rectangular <a href='SkRegion_Reference#SkRegion'>SkRegion</a> matching the bounds of <a href='#SkRegion_setRect_rect'>rect</a>.
+If <a href='#SkRegion_setRect_rect'>rect</a> is empty, constructs empty and returns false.
### Parameters
@@ -1221,7 +1221,7 @@
### Return Value
-true if <a href='#SkRegion_setRect_rect'>rect</a> <a href='#SkRegion_setRect_rect'>is</a> <a href='#SkRegion_setRect_rect'>not</a> <a href='#SkRegion_setRect_rect'>empty</a>
+true if <a href='#SkRegion_setRect_rect'>rect</a> is not empty
### Example
@@ -1246,12 +1246,12 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-bool <a href='#SkRegion_setRect'>setRect</a>(<a href='#SkRegion_setRect'>int32_t</a> <a href='#SkRegion_setRect'>left</a>, <a href='#SkRegion_setRect'>int32_t</a> <a href='#SkRegion_setRect'>top</a>, <a href='#SkRegion_setRect'>int32_t</a> <a href='#SkRegion_setRect'>right</a>, <a href='#SkRegion_setRect'>int32_t</a> <a href='#SkRegion_setRect'>bottom</a>)
+bool <a href='#SkRegion_setRect'>setRect</a>(int32_t left, int32_t top, int32_t right, int32_t bottom)
</pre>
-Constructs <a href='SkRegion_Reference#SkRegion'>SkRegion</a> <a href='SkRegion_Reference#SkRegion'>with</a> <a href='SkRegion_Reference#SkRegion'>bounds</a> (<a href='#SkRegion_setRect_2_left'>left</a>, <a href='#SkRegion_setRect_2_top'>top</a>, <a href='#SkRegion_setRect_2_right'>right</a>, <a href='#SkRegion_setRect_2_bottom'>bottom</a>).
-Returns true if <a href='#SkRegion_setRect_2_left'>left</a> <a href='#SkRegion_setRect_2_left'>is</a> <a href='#SkRegion_setRect_2_left'>less</a> <a href='#SkRegion_setRect_2_left'>than</a> <a href='#SkRegion_setRect_2_right'>right</a> <a href='#SkRegion_setRect_2_right'>and</a> <a href='#SkRegion_setRect_2_top'>top</a> <a href='#SkRegion_setRect_2_top'>is</a> <a href='#SkRegion_setRect_2_top'>less</a> <a href='#SkRegion_setRect_2_top'>than</a> <a href='#SkRegion_setRect_2_bottom'>bottom</a>; <a href='#SkRegion_setRect_2_bottom'>otherwise</a>,
-constructs empty <a href='SkRegion_Reference#SkRegion'>SkRegion</a> <a href='SkRegion_Reference#SkRegion'>and</a> <a href='SkRegion_Reference#SkRegion'>returns</a> <a href='SkRegion_Reference#SkRegion'>false</a>.
+Constructs <a href='SkRegion_Reference#SkRegion'>SkRegion</a> with bounds (<a href='#SkRegion_setRect_2_left'>left</a>, <a href='#SkRegion_setRect_2_top'>top</a>, <a href='#SkRegion_setRect_2_right'>right</a>, <a href='#SkRegion_setRect_2_bottom'>bottom</a>).
+Returns true if <a href='#SkRegion_setRect_2_left'>left</a> is less than <a href='#SkRegion_setRect_2_right'>right</a> and <a href='#SkRegion_setRect_2_top'>top</a> is less than <a href='#SkRegion_setRect_2_bottom'>bottom</a>; otherwise,
+constructs empty <a href='SkRegion_Reference#SkRegion'>SkRegion</a> and returns false.
### Parameters
@@ -1295,11 +1295,11 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-bool <a href='#SkRegion_setRects'>setRects</a>(<a href='#SkRegion_setRects'>const</a> <a href='SkIRect_Reference#SkIRect'>SkIRect</a> <a href='SkRect_Reference#Rect'>rects</a>[], <a href='SkRect_Reference#Rect'>int</a> <a href='SkRect_Reference#Rect'>count</a>)
+bool <a href='#SkRegion_setRects'>setRects</a>(const <a href='SkIRect_Reference#SkIRect'>SkIRect</a> <a href='SkRect_Reference#Rect'>rects</a>[], int count)
</pre>
-Constructs <a href='SkRegion_Reference#SkRegion'>SkRegion</a> <a href='SkRegion_Reference#SkRegion'>as</a> <a href='SkRegion_Reference#SkRegion'>the</a> <a href='SkRegion_Reference#SkRegion'>union</a> <a href='SkRegion_Reference#SkRegion'>of</a> <a href='SkIRect_Reference#SkIRect'>SkIRect</a> <a href='SkIRect_Reference#SkIRect'>in</a> <a href='#SkRegion_setRects_rects'>rects</a> <a href='#SkRegion_setRects_rects'>array</a>. <a href='#SkRegion_setRects_rects'>If</a> <a href='#SkRegion_setRects_count'>count</a> <a href='#SkRegion_setRects_count'>is</a>
-zero, constructs empty <a href='SkRegion_Reference#SkRegion'>SkRegion</a>. <a href='SkRegion_Reference#SkRegion'>Returns</a> <a href='SkRegion_Reference#SkRegion'>false</a> <a href='SkRegion_Reference#SkRegion'>if</a> <a href='SkRegion_Reference#SkRegion'>constructed</a> <a href='SkRegion_Reference#SkRegion'>SkRegion</a> <a href='SkRegion_Reference#SkRegion'>is</a> <a href='SkRegion_Reference#SkRegion'>empty</a>.
+Constructs <a href='SkRegion_Reference#SkRegion'>SkRegion</a> as the union of <a href='SkIRect_Reference#SkIRect'>SkIRect</a> in <a href='#SkRegion_setRects_rects'>rects</a> array. If <a href='#SkRegion_setRects_count'>count</a> is
+zero, constructs empty <a href='SkRegion_Reference#SkRegion'>SkRegion</a>. Returns false if constructed <a href='SkRegion_Reference#SkRegion'>SkRegion</a> is empty.
May be faster than repeated calls to <a href='#SkRegion_op'>op()</a>.
@@ -1315,7 +1315,7 @@
### Return Value
-true if constructed <a href='SkRegion_Reference#SkRegion'>SkRegion</a> <a href='SkRegion_Reference#SkRegion'>is</a> <a href='SkRegion_Reference#SkRegion'>not</a> <a href='SkRegion_Reference#SkRegion'>empty</a>
+true if constructed <a href='SkRegion_Reference#SkRegion'>SkRegion</a> is not empty
### Example
@@ -1330,28 +1330,28 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-bool <a href='#SkRegion_setRegion'>setRegion</a>(<a href='#SkRegion_setRegion'>const</a> <a href='SkRegion_Reference#SkRegion'>SkRegion</a>& <a href='SkRegion_Reference#Region'>region</a>)
+bool <a href='#SkRegion_setRegion'>setRegion</a>(const <a href='SkRegion_Reference#SkRegion'>SkRegion</a>& <a href='SkRegion_Reference#Region'>region</a>)
</pre>
Constructs a copy of an existing <a href='#SkRegion_setRegion_region'>region</a>.
-Makes two <a href='SkRegion_Reference#Region'>regions</a> <a href='SkRegion_Reference#Region'>identical</a> <a href='SkRegion_Reference#Region'>by</a> <a href='SkRegion_Reference#Region'>value</a>. <a href='SkRegion_Reference#Region'>Internally</a>, <a href='#SkRegion_setRegion_region'>region</a> <a href='#SkRegion_setRegion_region'>and</a>
-the returned result share pointer values. The underlying <a href='SkRect_Reference#SkRect'>SkRect</a> <a href='SkRect_Reference#SkRect'>array</a> <a href='SkRect_Reference#SkRect'>is</a>
+Makes two <a href='SkRegion_Reference#Region'>regions</a> identical by value. Internally, <a href='#SkRegion_setRegion_region'>region</a> and
+the returned result share pointer values. The underlying <a href='SkRect_Reference#SkRect'>SkRect</a> array is
copied when modified.
-Creating a <a href='SkRegion_Reference#SkRegion'>SkRegion</a> <a href='SkRegion_Reference#SkRegion'>copy</a> <a href='SkRegion_Reference#SkRegion'>is</a> <a href='SkRegion_Reference#SkRegion'>very</a> <a href='SkRegion_Reference#SkRegion'>efficient</a> <a href='SkRegion_Reference#SkRegion'>and</a> <a href='SkRegion_Reference#SkRegion'>never</a> <a href='SkRegion_Reference#SkRegion'>allocates</a> <a href='SkRegion_Reference#SkRegion'>memory</a>.
-<a href='SkRegion_Reference#SkRegion'>SkRegion</a> <a href='SkRegion_Reference#SkRegion'>are</a> <a href='SkRegion_Reference#SkRegion'>always</a> <a href='SkRegion_Reference#SkRegion'>copied</a> <a href='SkRegion_Reference#SkRegion'>by</a> <a href='SkRegion_Reference#SkRegion'>value</a> <a href='SkRegion_Reference#SkRegion'>from</a> <a href='SkRegion_Reference#SkRegion'>the</a> <a href='SkRegion_Reference#SkRegion'>interface</a>; <a href='SkRegion_Reference#SkRegion'>the</a> <a href='SkRegion_Reference#SkRegion'>underlying</a> <a href='SkRegion_Reference#SkRegion'>shared</a>
+Creating a <a href='SkRegion_Reference#SkRegion'>SkRegion</a> copy is very efficient and never allocates memory.
+<a href='SkRegion_Reference#SkRegion'>SkRegion</a> are always copied by value from the interface; the underlying shared
pointers are not exposed.
### Parameters
<table> <tr> <td><a name='SkRegion_setRegion_region'><code><strong>region</strong></code></a></td>
- <td><a href='SkRegion_Reference#SkRegion'>SkRegion</a> <a href='SkRegion_Reference#SkRegion'>to</a> <a href='SkRegion_Reference#SkRegion'>copy</a> <a href='SkRegion_Reference#SkRegion'>by</a> <a href='SkRegion_Reference#SkRegion'>value</a></td>
+ <td><a href='SkRegion_Reference#SkRegion'>SkRegion</a> to copy by value</td>
</tr>
</table>
### Return Value
-<a href='SkRegion_Reference#SkRegion'>SkRegion</a> <a href='SkRegion_Reference#SkRegion'>to</a> <a href='SkRegion_Reference#SkRegion'>copy</a> <a href='SkRegion_Reference#SkRegion'>by</a> <a href='SkRegion_Reference#SkRegion'>value</a>
+<a href='SkRegion_Reference#SkRegion'>SkRegion</a> to copy by value
### Example
@@ -1378,28 +1378,28 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-bool <a href='#SkRegion_setPath'>setPath</a>(<a href='#SkRegion_setPath'>const</a> <a href='SkPath_Reference#SkPath'>SkPath</a>& <a href='SkPath_Reference#Path'>path</a>, <a href='SkPath_Reference#Path'>const</a> <a href='SkRegion_Reference#SkRegion'>SkRegion</a>& <a href='SkRegion_Reference#SkRegion'>clip</a>)
+bool <a href='#SkRegion_setPath'>setPath</a>(const <a href='SkPath_Reference#SkPath'>SkPath</a>& <a href='SkPath_Reference#Path'>path</a>, const <a href='SkRegion_Reference#SkRegion'>SkRegion</a>& clip)
</pre>
-Constructs <a href='SkRegion_Reference#SkRegion'>SkRegion</a> <a href='SkRegion_Reference#SkRegion'>to</a> <a href='SkRegion_Reference#SkRegion'>match</a> <a href='SkRegion_Reference#SkRegion'>outline</a> <a href='SkRegion_Reference#SkRegion'>of</a> <a href='#SkRegion_setPath_path'>path</a> <a href='#SkRegion_setPath_path'>within</a> <a href='#SkRegion_setPath_clip'>clip</a>.
-Returns false if constructed <a href='SkRegion_Reference#SkRegion'>SkRegion</a> <a href='SkRegion_Reference#SkRegion'>is</a> <a href='SkRegion_Reference#SkRegion'>empty</a>.
+Constructs <a href='SkRegion_Reference#SkRegion'>SkRegion</a> to match outline of <a href='#SkRegion_setPath_path'>path</a> within <a href='#SkRegion_setPath_clip'>clip</a>.
+Returns false if constructed <a href='SkRegion_Reference#SkRegion'>SkRegion</a> is empty.
-Constructed <a href='SkRegion_Reference#SkRegion'>SkRegion</a> <a href='SkRegion_Reference#SkRegion'>draws</a> <a href='SkRegion_Reference#SkRegion'>the</a> <a href='SkRegion_Reference#SkRegion'>same</a> <a href='SkRegion_Reference#SkRegion'>pixels</a> <a href='SkRegion_Reference#SkRegion'>as</a> <a href='#SkRegion_setPath_path'>path</a> <a href='#SkRegion_setPath_path'>through</a> <a href='#SkRegion_setPath_clip'>clip</a> <a href='#SkRegion_setPath_clip'>when</a>
-<a href='SkPaint_Reference#Anti_Alias'>anti-aliasing</a> <a href='SkPaint_Reference#Anti_Alias'>is</a> <a href='SkPaint_Reference#Anti_Alias'>disabled</a>.
+Constructed <a href='SkRegion_Reference#SkRegion'>SkRegion</a> draws the same pixels as <a href='#SkRegion_setPath_path'>path</a> through <a href='#SkRegion_setPath_clip'>clip</a> when
+<a href='SkPaint_Reference#Anti_Alias'>anti-aliasing</a> is disabled.
### Parameters
<table> <tr> <td><a name='SkRegion_setPath_path'><code><strong>path</strong></code></a></td>
- <td><a href='SkPath_Reference#SkPath'>SkPath</a> <a href='SkPath_Reference#SkPath'>providing</a> <a href='SkPath_Reference#SkPath'>outline</a></td>
+ <td><a href='SkPath_Reference#SkPath'>SkPath</a> providing outline</td>
</tr>
<tr> <td><a name='SkRegion_setPath_clip'><code><strong>clip</strong></code></a></td>
- <td><a href='SkRegion_Reference#SkRegion'>SkRegion</a> <a href='SkRegion_Reference#SkRegion'>containing</a> <a href='#SkRegion_setPath_path'>path</a></td>
+ <td><a href='SkRegion_Reference#SkRegion'>SkRegion</a> containing <a href='#SkRegion_setPath_path'>path</a></td>
</tr>
</table>
### Return Value
-true if constructed <a href='SkRegion_Reference#SkRegion'>SkRegion</a> <a href='SkRegion_Reference#SkRegion'>is</a> <a href='SkRegion_Reference#SkRegion'>not</a> <a href='SkRegion_Reference#SkRegion'>empty</a>
+true if constructed <a href='SkRegion_Reference#SkRegion'>SkRegion</a> is not empty
### Example
@@ -1414,22 +1414,22 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-bool intersects(const <a href='SkIRect_Reference#SkIRect'>SkIRect</a>& <a href='SkRect_Reference#Rect'>rect</a>) <a href='SkRect_Reference#Rect'>const</a>
+bool intersects(const <a href='SkIRect_Reference#SkIRect'>SkIRect</a>& <a href='SkRect_Reference#Rect'>rect</a>) const
</pre>
-Returns true if <a href='SkRegion_Reference#SkRegion'>SkRegion</a> <a href='SkRegion_Reference#SkRegion'>intersects</a> <a href='#SkRegion_intersects_rect'>rect</a>.
-Returns false if either <a href='#SkRegion_intersects_rect'>rect</a> <a href='#SkRegion_intersects_rect'>or</a> <a href='SkRegion_Reference#SkRegion'>SkRegion</a> <a href='SkRegion_Reference#SkRegion'>is</a> <a href='SkRegion_Reference#SkRegion'>empty</a>, <a href='SkRegion_Reference#SkRegion'>or</a> <a href='SkRegion_Reference#SkRegion'>do</a> <a href='SkRegion_Reference#SkRegion'>not</a> <a href='SkRegion_Reference#SkRegion'>intersect</a>.
+Returns true if <a href='SkRegion_Reference#SkRegion'>SkRegion</a> intersects <a href='#SkRegion_intersects_rect'>rect</a>.
+Returns false if either <a href='#SkRegion_intersects_rect'>rect</a> or <a href='SkRegion_Reference#SkRegion'>SkRegion</a> is empty, or do not intersect.
### Parameters
<table> <tr> <td><a name='SkRegion_intersects_rect'><code><strong>rect</strong></code></a></td>
- <td><a href='SkIRect_Reference#SkIRect'>SkIRect</a> <a href='SkIRect_Reference#SkIRect'>to</a> <a href='SkIRect_Reference#SkIRect'>intersect</a></td>
+ <td><a href='SkIRect_Reference#SkIRect'>SkIRect</a> to intersect</td>
</tr>
</table>
### Return Value
-true if <a href='#SkRegion_intersects_rect'>rect</a> <a href='#SkRegion_intersects_rect'>and</a> <a href='SkRegion_Reference#SkRegion'>SkRegion</a> <a href='SkRegion_Reference#SkRegion'>have</a> <a href='SkRegion_Reference#SkRegion'>area</a> <a href='SkRegion_Reference#SkRegion'>in</a> <a href='SkRegion_Reference#SkRegion'>common</a>
+true if <a href='#SkRegion_intersects_rect'>rect</a> and <a href='SkRegion_Reference#SkRegion'>SkRegion</a> have area in common
### Example
@@ -1444,22 +1444,22 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-bool intersects(const <a href='SkRegion_Reference#SkRegion'>SkRegion</a>& <a href='SkRegion_Reference#SkRegion'>other</a>) <a href='SkRegion_Reference#SkRegion'>const</a>
+bool intersects(const <a href='SkRegion_Reference#SkRegion'>SkRegion</a>& other) const
</pre>
-Returns true if <a href='SkRegion_Reference#SkRegion'>SkRegion</a> <a href='SkRegion_Reference#SkRegion'>intersects</a> <a href='#SkRegion_intersects_2_other'>other</a>.
-Returns false if either <a href='#SkRegion_intersects_2_other'>other</a> <a href='#SkRegion_intersects_2_other'>or</a> <a href='SkRegion_Reference#SkRegion'>SkRegion</a> <a href='SkRegion_Reference#SkRegion'>is</a> <a href='SkRegion_Reference#SkRegion'>empty</a>, <a href='SkRegion_Reference#SkRegion'>or</a> <a href='SkRegion_Reference#SkRegion'>do</a> <a href='SkRegion_Reference#SkRegion'>not</a> <a href='SkRegion_Reference#SkRegion'>intersect</a>.
+Returns true if <a href='SkRegion_Reference#SkRegion'>SkRegion</a> intersects <a href='#SkRegion_intersects_2_other'>other</a>.
+Returns false if either <a href='#SkRegion_intersects_2_other'>other</a> or <a href='SkRegion_Reference#SkRegion'>SkRegion</a> is empty, or do not intersect.
### Parameters
<table> <tr> <td><a name='SkRegion_intersects_2_other'><code><strong>other</strong></code></a></td>
- <td><a href='SkRegion_Reference#SkRegion'>SkRegion</a> <a href='SkRegion_Reference#SkRegion'>to</a> <a href='SkRegion_Reference#SkRegion'>intersect</a></td>
+ <td><a href='SkRegion_Reference#SkRegion'>SkRegion</a> to intersect</td>
</tr>
</table>
### Return Value
-true if <a href='#SkRegion_intersects_2_other'>other</a> <a href='#SkRegion_intersects_2_other'>and</a> <a href='SkRegion_Reference#SkRegion'>SkRegion</a> <a href='SkRegion_Reference#SkRegion'>have</a> <a href='SkRegion_Reference#SkRegion'>area</a> <a href='SkRegion_Reference#SkRegion'>in</a> <a href='SkRegion_Reference#SkRegion'>common</a>
+true if <a href='#SkRegion_intersects_2_other'>other</a> and <a href='SkRegion_Reference#SkRegion'>SkRegion</a> have area in common
### Example
@@ -1477,22 +1477,22 @@
bool contains(int32_t x, int32_t y) const
</pre>
-Returns true if <a href='SkIPoint_Reference#SkIPoint'>SkIPoint</a> (<a href='#SkRegion_contains_x'>x</a>, <a href='#SkRegion_contains_y'>y</a>) <a href='#SkRegion_contains_y'>is</a> <a href='#SkRegion_contains_y'>inside</a> <a href='SkRegion_Reference#SkRegion'>SkRegion</a>.
-Returns false if <a href='SkRegion_Reference#SkRegion'>SkRegion</a> <a href='SkRegion_Reference#SkRegion'>is</a> <a href='SkRegion_Reference#SkRegion'>empty</a>.
+Returns true if <a href='SkIPoint_Reference#SkIPoint'>SkIPoint</a> (<a href='#SkRegion_contains_x'>x</a>, <a href='#SkRegion_contains_y'>y</a>) is inside <a href='SkRegion_Reference#SkRegion'>SkRegion</a>.
+Returns false if <a href='SkRegion_Reference#SkRegion'>SkRegion</a> is empty.
### Parameters
<table> <tr> <td><a name='SkRegion_contains_x'><code><strong>x</strong></code></a></td>
- <td>test <a href='SkIPoint_Reference#SkIPoint'>SkIPoint</a> <a href='SkIPoint_Reference#SkIPoint'>x-coordinate</a></td>
+ <td>test <a href='SkIPoint_Reference#SkIPoint'>SkIPoint</a> x-coordinate</td>
</tr>
<tr> <td><a name='SkRegion_contains_y'><code><strong>y</strong></code></a></td>
- <td>test <a href='SkIPoint_Reference#SkIPoint'>SkIPoint</a> <a href='SkIPoint_Reference#SkIPoint'>y-coordinate</a></td>
+ <td>test <a href='SkIPoint_Reference#SkIPoint'>SkIPoint</a> y-coordinate</td>
</tr>
</table>
### Return Value
-true if (<a href='#SkRegion_contains_x'>x</a>, <a href='#SkRegion_contains_y'>y</a>) <a href='#SkRegion_contains_y'>is</a> <a href='#SkRegion_contains_y'>inside</a> <a href='SkRegion_Reference#SkRegion'>SkRegion</a>
+true if (<a href='#SkRegion_contains_x'>x</a>, <a href='#SkRegion_contains_y'>y</a>) is inside <a href='SkRegion_Reference#SkRegion'>SkRegion</a>
### Example
@@ -1507,22 +1507,22 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-bool contains(const <a href='SkIRect_Reference#SkIRect'>SkIRect</a>& <a href='SkIRect_Reference#SkIRect'>other</a>) <a href='SkIRect_Reference#SkIRect'>const</a>
+bool contains(const <a href='SkIRect_Reference#SkIRect'>SkIRect</a>& other) const
</pre>
-Returns true if <a href='#SkRegion_contains_2_other'>other</a> <a href='#SkRegion_contains_2_other'>is</a> <a href='#SkRegion_contains_2_other'>completely</a> <a href='#SkRegion_contains_2_other'>inside</a> <a href='SkRegion_Reference#SkRegion'>SkRegion</a>.
-Returns false if <a href='SkRegion_Reference#SkRegion'>SkRegion</a> <a href='SkRegion_Reference#SkRegion'>or</a> <a href='#SkRegion_contains_2_other'>other</a> <a href='#SkRegion_contains_2_other'>is</a> <a href='#SkRegion_contains_2_other'>empty</a>.
+Returns true if <a href='#SkRegion_contains_2_other'>other</a> is completely inside <a href='SkRegion_Reference#SkRegion'>SkRegion</a>.
+Returns false if <a href='SkRegion_Reference#SkRegion'>SkRegion</a> or <a href='#SkRegion_contains_2_other'>other</a> is empty.
### Parameters
<table> <tr> <td><a name='SkRegion_contains_2_other'><code><strong>other</strong></code></a></td>
- <td><a href='SkIRect_Reference#SkIRect'>SkIRect</a> <a href='SkIRect_Reference#SkIRect'>to</a> <a href='SkIRect_Reference#SkIRect'>contain</a></td>
+ <td><a href='SkIRect_Reference#SkIRect'>SkIRect</a> to contain</td>
</tr>
</table>
### Return Value
-true if <a href='#SkRegion_contains_2_other'>other</a> <a href='#SkRegion_contains_2_other'>is</a> <a href='#SkRegion_contains_2_other'>inside</a> <a href='SkRegion_Reference#SkRegion'>SkRegion</a>
+true if <a href='#SkRegion_contains_2_other'>other</a> is inside <a href='SkRegion_Reference#SkRegion'>SkRegion</a>
### Example
@@ -1537,22 +1537,22 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-bool contains(const <a href='SkRegion_Reference#SkRegion'>SkRegion</a>& <a href='SkRegion_Reference#SkRegion'>other</a>) <a href='SkRegion_Reference#SkRegion'>const</a>
+bool contains(const <a href='SkRegion_Reference#SkRegion'>SkRegion</a>& other) const
</pre>
-Returns true if <a href='#SkRegion_contains_3_other'>other</a> <a href='#SkRegion_contains_3_other'>is</a> <a href='#SkRegion_contains_3_other'>completely</a> <a href='#SkRegion_contains_3_other'>inside</a> <a href='SkRegion_Reference#SkRegion'>SkRegion</a>.
-Returns false if <a href='SkRegion_Reference#SkRegion'>SkRegion</a> <a href='SkRegion_Reference#SkRegion'>or</a> <a href='#SkRegion_contains_3_other'>other</a> <a href='#SkRegion_contains_3_other'>is</a> <a href='#SkRegion_contains_3_other'>empty</a>.
+Returns true if <a href='#SkRegion_contains_3_other'>other</a> is completely inside <a href='SkRegion_Reference#SkRegion'>SkRegion</a>.
+Returns false if <a href='SkRegion_Reference#SkRegion'>SkRegion</a> or <a href='#SkRegion_contains_3_other'>other</a> is empty.
### Parameters
<table> <tr> <td><a name='SkRegion_contains_3_other'><code><strong>other</strong></code></a></td>
- <td><a href='SkRegion_Reference#SkRegion'>SkRegion</a> <a href='SkRegion_Reference#SkRegion'>to</a> <a href='SkRegion_Reference#SkRegion'>contain</a></td>
+ <td><a href='SkRegion_Reference#SkRegion'>SkRegion</a> to contain</td>
</tr>
</table>
### Return Value
-true if <a href='#SkRegion_contains_3_other'>other</a> <a href='#SkRegion_contains_3_other'>is</a> <a href='#SkRegion_contains_3_other'>inside</a> <a href='SkRegion_Reference#SkRegion'>SkRegion</a>
+true if <a href='#SkRegion_contains_3_other'>other</a> is inside <a href='SkRegion_Reference#SkRegion'>SkRegion</a>
### Example
@@ -1567,22 +1567,22 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-bool <a href='#SkRegion_quickContains'>quickContains</a>(<a href='#SkRegion_quickContains'>const</a> <a href='SkIRect_Reference#SkIRect'>SkIRect</a>& <a href='SkIRect_Reference#SkIRect'>r</a>) <a href='SkIRect_Reference#SkIRect'>const</a>
+bool <a href='#SkRegion_quickContains'>quickContains</a>(const <a href='SkIRect_Reference#SkIRect'>SkIRect</a>& r) const
</pre>
-Returns true if <a href='SkRegion_Reference#SkRegion'>SkRegion</a> <a href='SkRegion_Reference#SkRegion'>is</a> <a href='SkRegion_Reference#SkRegion'>a</a> <a href='SkRegion_Reference#SkRegion'>single</a> <a href='SkRegion_Reference#SkRegion'>rectangle</a> <a href='SkRegion_Reference#SkRegion'>and</a> <a href='SkRegion_Reference#SkRegion'>contains</a> <a href='#SkRegion_quickContains_r'>r</a>.
-May return false even though <a href='SkRegion_Reference#SkRegion'>SkRegion</a> <a href='SkRegion_Reference#SkRegion'>contains</a> <a href='#SkRegion_quickContains_r'>r</a>.
+Returns true if <a href='SkRegion_Reference#SkRegion'>SkRegion</a> is a single rectangle and contains <a href='#SkRegion_quickContains_r'>r</a>.
+May return false even though <a href='SkRegion_Reference#SkRegion'>SkRegion</a> contains <a href='#SkRegion_quickContains_r'>r</a>.
### Parameters
<table> <tr> <td><a name='SkRegion_quickContains_r'><code><strong>r</strong></code></a></td>
- <td><a href='SkIRect_Reference#SkIRect'>SkIRect</a> <a href='SkIRect_Reference#SkIRect'>to</a> <a href='SkIRect_Reference#SkIRect'>contain</a></td>
+ <td><a href='SkIRect_Reference#SkIRect'>SkIRect</a> to contain</td>
</tr>
</table>
### Return Value
-true quickly if <a href='#SkRegion_quickContains_r'>r</a> <a href='SkPoint_Reference#Point'>points</a> <a href='SkPoint_Reference#Point'>are</a> <a href='SkPoint_Reference#Point'>equal</a> <a href='SkPoint_Reference#Point'>or</a> <a href='SkPoint_Reference#Point'>inside</a>
+true quickly if <a href='#SkRegion_quickContains_r'>r</a> <a href='SkPoint_Reference#Point'>points</a> are equal or inside
### Example
@@ -1607,13 +1607,13 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-bool <a href='#SkRegion_quickContains'>quickContains</a>(<a href='#SkRegion_quickContains'>int32_t</a> <a href='#SkRegion_quickContains'>left</a>, <a href='#SkRegion_quickContains'>int32_t</a> <a href='#SkRegion_quickContains'>top</a>, <a href='#SkRegion_quickContains'>int32_t</a> <a href='#SkRegion_quickContains'>right</a>, <a href='#SkRegion_quickContains'>int32_t</a> <a href='#SkRegion_quickContains'>bottom</a>) <a href='#SkRegion_quickContains'>const</a>
+bool <a href='#SkRegion_quickContains'>quickContains</a>(int32_t left, int32_t top, int32_t right, int32_t bottom) const
</pre>
-Returns true if <a href='SkRegion_Reference#SkRegion'>SkRegion</a> <a href='SkRegion_Reference#SkRegion'>is</a> <a href='SkRegion_Reference#SkRegion'>a</a> <a href='SkRegion_Reference#SkRegion'>single</a> <a href='SkRegion_Reference#SkRegion'>rectangle</a> <a href='SkRegion_Reference#SkRegion'>and</a> <a href='SkRegion_Reference#SkRegion'>contains</a> <a href='SkIRect_Reference#SkIRect'>SkIRect</a>
+Returns true if <a href='SkRegion_Reference#SkRegion'>SkRegion</a> is a single rectangle and contains <a href='SkIRect_Reference#SkIRect'>SkIRect</a>
(<a href='#SkRegion_quickContains_2_left'>left</a>, <a href='#SkRegion_quickContains_2_top'>top</a>, <a href='#SkRegion_quickContains_2_right'>right</a>, <a href='#SkRegion_quickContains_2_bottom'>bottom</a>).
-Returns false if <a href='SkRegion_Reference#SkRegion'>SkRegion</a> <a href='SkRegion_Reference#SkRegion'>is</a> <a href='SkRegion_Reference#SkRegion'>empty</a> <a href='SkRegion_Reference#SkRegion'>or</a> <a href='SkIRect_Reference#SkIRect'>SkIRect</a> (<a href='#SkRegion_quickContains_2_left'>left</a>, <a href='#SkRegion_quickContains_2_top'>top</a>, <a href='#SkRegion_quickContains_2_right'>right</a>, <a href='#SkRegion_quickContains_2_bottom'>bottom</a>) <a href='#SkRegion_quickContains_2_bottom'>is</a> <a href='#SkRegion_quickContains_2_bottom'>empty</a>.
-May return false even though <a href='SkRegion_Reference#SkRegion'>SkRegion</a> <a href='SkRegion_Reference#SkRegion'>contains</a> (<a href='#SkRegion_quickContains_2_left'>left</a>, <a href='#SkRegion_quickContains_2_top'>top</a>, <a href='#SkRegion_quickContains_2_right'>right</a>, <a href='#SkRegion_quickContains_2_bottom'>bottom</a>).
+Returns false if <a href='SkRegion_Reference#SkRegion'>SkRegion</a> is empty or <a href='SkIRect_Reference#SkIRect'>SkIRect</a> (<a href='#SkRegion_quickContains_2_left'>left</a>, <a href='#SkRegion_quickContains_2_top'>top</a>, <a href='#SkRegion_quickContains_2_right'>right</a>, <a href='#SkRegion_quickContains_2_bottom'>bottom</a>) is empty.
+May return false even though <a href='SkRegion_Reference#SkRegion'>SkRegion</a> contains (<a href='#SkRegion_quickContains_2_left'>left</a>, <a href='#SkRegion_quickContains_2_top'>top</a>, <a href='#SkRegion_quickContains_2_right'>right</a>, <a href='#SkRegion_quickContains_2_bottom'>bottom</a>).
### Parameters
@@ -1633,7 +1633,7 @@
### Return Value
-true quickly if <a href='SkIRect_Reference#SkIRect'>SkIRect</a> <a href='SkIRect_Reference#SkIRect'>are</a> <a href='SkIRect_Reference#SkIRect'>equal</a> <a href='SkIRect_Reference#SkIRect'>or</a> <a href='SkIRect_Reference#SkIRect'>inside</a>
+true quickly if <a href='SkIRect_Reference#SkIRect'>SkIRect</a> are equal or inside
### Example
@@ -1658,23 +1658,23 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-bool <a href='#SkRegion_quickReject'>quickReject</a>(<a href='#SkRegion_quickReject'>const</a> <a href='SkIRect_Reference#SkIRect'>SkIRect</a>& <a href='SkRect_Reference#Rect'>rect</a>) <a href='SkRect_Reference#Rect'>const</a>
+bool <a href='#SkRegion_quickReject'>quickReject</a>(const <a href='SkIRect_Reference#SkIRect'>SkIRect</a>& <a href='SkRect_Reference#Rect'>rect</a>) const
</pre>
-Returns true if <a href='SkRegion_Reference#SkRegion'>SkRegion</a> <a href='SkRegion_Reference#SkRegion'>does</a> <a href='SkRegion_Reference#SkRegion'>not</a> <a href='SkRegion_Reference#SkRegion'>intersect</a> <a href='#SkRegion_quickReject_rect'>rect</a>.
-Returns true if <a href='#SkRegion_quickReject_rect'>rect</a> <a href='#SkRegion_quickReject_rect'>is</a> <a href='#SkRegion_quickReject_rect'>empty</a> <a href='#SkRegion_quickReject_rect'>or</a> <a href='SkRegion_Reference#SkRegion'>SkRegion</a> <a href='SkRegion_Reference#SkRegion'>is</a> <a href='SkRegion_Reference#SkRegion'>empty</a>.
-May return false even though <a href='SkRegion_Reference#SkRegion'>SkRegion</a> <a href='SkRegion_Reference#SkRegion'>does</a> <a href='SkRegion_Reference#SkRegion'>not</a> <a href='SkRegion_Reference#SkRegion'>intersect</a> <a href='#SkRegion_quickReject_rect'>rect</a>.
+Returns true if <a href='SkRegion_Reference#SkRegion'>SkRegion</a> does not intersect <a href='#SkRegion_quickReject_rect'>rect</a>.
+Returns true if <a href='#SkRegion_quickReject_rect'>rect</a> is empty or <a href='SkRegion_Reference#SkRegion'>SkRegion</a> is empty.
+May return false even though <a href='SkRegion_Reference#SkRegion'>SkRegion</a> does not intersect <a href='#SkRegion_quickReject_rect'>rect</a>.
### Parameters
<table> <tr> <td><a name='SkRegion_quickReject_rect'><code><strong>rect</strong></code></a></td>
- <td><a href='SkIRect_Reference#SkIRect'>SkIRect</a> <a href='SkIRect_Reference#SkIRect'>to</a> <a href='SkIRect_Reference#SkIRect'>intersect</a></td>
+ <td><a href='SkIRect_Reference#SkIRect'>SkIRect</a> to intersect</td>
</tr>
</table>
### Return Value
-true if <a href='#SkRegion_quickReject_rect'>rect</a> <a href='#SkRegion_quickReject_rect'>does</a> <a href='#SkRegion_quickReject_rect'>not</a> <a href='#SkRegion_quickReject_rect'>intersect</a>
+true if <a href='#SkRegion_quickReject_rect'>rect</a> does not intersect
### Example
@@ -1699,23 +1699,23 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-bool <a href='#SkRegion_quickReject'>quickReject</a>(<a href='#SkRegion_quickReject'>const</a> <a href='SkRegion_Reference#SkRegion'>SkRegion</a>& <a href='SkRegion_Reference#SkRegion'>rgn</a>) <a href='SkRegion_Reference#SkRegion'>const</a>
+bool <a href='#SkRegion_quickReject'>quickReject</a>(const <a href='SkRegion_Reference#SkRegion'>SkRegion</a>& rgn) const
</pre>
-Returns true if <a href='SkRegion_Reference#SkRegion'>SkRegion</a> <a href='SkRegion_Reference#SkRegion'>does</a> <a href='SkRegion_Reference#SkRegion'>not</a> <a href='SkRegion_Reference#SkRegion'>intersect</a> <a href='#SkRegion_quickReject_2_rgn'>rgn</a>.
-Returns true if <a href='#SkRegion_quickReject_2_rgn'>rgn</a> <a href='#SkRegion_quickReject_2_rgn'>is</a> <a href='#SkRegion_quickReject_2_rgn'>empty</a> <a href='#SkRegion_quickReject_2_rgn'>or</a> <a href='SkRegion_Reference#SkRegion'>SkRegion</a> <a href='SkRegion_Reference#SkRegion'>is</a> <a href='SkRegion_Reference#SkRegion'>empty</a>.
-May return false even though <a href='SkRegion_Reference#SkRegion'>SkRegion</a> <a href='SkRegion_Reference#SkRegion'>does</a> <a href='SkRegion_Reference#SkRegion'>not</a> <a href='SkRegion_Reference#SkRegion'>intersect</a> <a href='#SkRegion_quickReject_2_rgn'>rgn</a>.
+Returns true if <a href='SkRegion_Reference#SkRegion'>SkRegion</a> does not intersect <a href='#SkRegion_quickReject_2_rgn'>rgn</a>.
+Returns true if <a href='#SkRegion_quickReject_2_rgn'>rgn</a> is empty or <a href='SkRegion_Reference#SkRegion'>SkRegion</a> is empty.
+May return false even though <a href='SkRegion_Reference#SkRegion'>SkRegion</a> does not intersect <a href='#SkRegion_quickReject_2_rgn'>rgn</a>.
### Parameters
<table> <tr> <td><a name='SkRegion_quickReject_2_rgn'><code><strong>rgn</strong></code></a></td>
- <td><a href='SkRegion_Reference#SkRegion'>SkRegion</a> <a href='SkRegion_Reference#SkRegion'>to</a> <a href='SkRegion_Reference#SkRegion'>intersect</a></td>
+ <td><a href='SkRegion_Reference#SkRegion'>SkRegion</a> to intersect</td>
</tr>
</table>
### Return Value
-true if <a href='#SkRegion_quickReject_2_rgn'>rgn</a> <a href='#SkRegion_quickReject_2_rgn'>does</a> <a href='#SkRegion_quickReject_2_rgn'>not</a> <a href='#SkRegion_quickReject_2_rgn'>intersect</a>
+true if <a href='#SkRegion_quickReject_2_rgn'>rgn</a> does not intersect
### Example
@@ -1743,7 +1743,7 @@
void translate(int dx, int dy)
</pre>
-Offsets <a href='SkRegion_Reference#SkRegion'>SkRegion</a> <a href='SkRegion_Reference#SkRegion'>by</a> <a href='SkIPoint_Reference#IVector'>ivector</a> (<a href='#SkRegion_translate_dx'>dx</a>, <a href='#SkRegion_translate_dy'>dy</a>). <a href='#SkRegion_translate_dy'>Has</a> <a href='#SkRegion_translate_dy'>no</a> <a href='#SkRegion_translate_dy'>effect</a> <a href='#SkRegion_translate_dy'>if</a> <a href='SkRegion_Reference#SkRegion'>SkRegion</a> <a href='SkRegion_Reference#SkRegion'>is</a> <a href='SkRegion_Reference#SkRegion'>empty</a>.
+Offsets <a href='SkRegion_Reference#SkRegion'>SkRegion</a> by <a href='SkIPoint_Reference#IVector'>ivector</a> (<a href='#SkRegion_translate_dx'>dx</a>, <a href='#SkRegion_translate_dy'>dy</a>). Has no effect if <a href='SkRegion_Reference#SkRegion'>SkRegion</a> is empty.
### Parameters
@@ -1768,12 +1768,12 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-void translate(int dx, int dy, <a href='SkRegion_Reference#SkRegion'>SkRegion</a>* <a href='SkRegion_Reference#SkRegion'>dst</a>) <a href='SkRegion_Reference#SkRegion'>const</a>
+void translate(int dx, int dy, <a href='SkRegion_Reference#SkRegion'>SkRegion</a>* dst) const
</pre>
-Offsets <a href='SkRegion_Reference#SkRegion'>SkRegion</a> <a href='SkRegion_Reference#SkRegion'>by</a> <a href='SkIPoint_Reference#IVector'>ivector</a> (<a href='#SkRegion_translate_2_dx'>dx</a>, <a href='#SkRegion_translate_2_dy'>dy</a>), <a href='#SkRegion_translate_2_dy'>writing</a> <a href='#SkRegion_translate_2_dy'>result</a> <a href='#SkRegion_translate_2_dy'>to</a> <a href='#SkRegion_translate_2_dst'>dst</a>. <a href='SkRegion_Reference#SkRegion'>SkRegion</a> <a href='SkRegion_Reference#SkRegion'>may</a> <a href='SkRegion_Reference#SkRegion'>be</a> <a href='SkRegion_Reference#SkRegion'>passed</a>
-as <a href='#SkRegion_translate_2_dst'>dst</a> <a href='#SkRegion_translate_2_dst'>parameter</a>, <a href='#SkRegion_translate_2_dst'>translating</a> <a href='SkRegion_Reference#SkRegion'>SkRegion</a> <a href='SkRegion_Reference#SkRegion'>in</a> <a href='SkRegion_Reference#SkRegion'>place</a>. <a href='SkRegion_Reference#SkRegion'>Has</a> <a href='SkRegion_Reference#SkRegion'>no</a> <a href='SkRegion_Reference#SkRegion'>effect</a> <a href='SkRegion_Reference#SkRegion'>if</a> <a href='#SkRegion_translate_2_dst'>dst</a> <a href='#SkRegion_translate_2_dst'>is</a> <a href='#SkRegion_translate_2_dst'>nullptr</a>.
-If <a href='SkRegion_Reference#SkRegion'>SkRegion</a> <a href='SkRegion_Reference#SkRegion'>is</a> <a href='SkRegion_Reference#SkRegion'>empty</a>, <a href='SkRegion_Reference#SkRegion'>sets</a> <a href='#SkRegion_translate_2_dst'>dst</a> <a href='#SkRegion_translate_2_dst'>to</a> <a href='#SkRegion_translate_2_dst'>empty</a>.
+Offsets <a href='SkRegion_Reference#SkRegion'>SkRegion</a> by <a href='SkIPoint_Reference#IVector'>ivector</a> (<a href='#SkRegion_translate_2_dx'>dx</a>, <a href='#SkRegion_translate_2_dy'>dy</a>), writing result to <a href='#SkRegion_translate_2_dst'>dst</a>. <a href='SkRegion_Reference#SkRegion'>SkRegion</a> may be passed
+as <a href='#SkRegion_translate_2_dst'>dst</a> parameter, translating <a href='SkRegion_Reference#SkRegion'>SkRegion</a> in place. Has no effect if <a href='#SkRegion_translate_2_dst'>dst</a> is nullptr.
+If <a href='SkRegion_Reference#SkRegion'>SkRegion</a> is empty, sets <a href='#SkRegion_translate_2_dst'>dst</a> to empty.
### Parameters
@@ -1824,42 +1824,42 @@
<td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a name='SkRegion_kDifference_Op'><code>SkRegion::kDifference_Op</code></a></td>
<td style='text-align: center; border: 2px solid #dddddd; padding: 8px; '>0</td>
<td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>
-Subtracts operand <a href='SkRegion_Reference#Region'>Region</a> <a href='SkRegion_Reference#Region'>from</a> <a href='SkRegion_Reference#Region'>target</a> <a href='SkRegion_Reference#Region'>Region</a>.
+Subtracts operand <a href='SkRegion_Reference#Region'>Region</a> from target <a href='SkRegion_Reference#Region'>Region</a>.
</td>
</tr>
<tr>
<td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a name='SkRegion_kIntersect_Op'><code>SkRegion::kIntersect_Op</code></a></td>
<td style='text-align: center; border: 2px solid #dddddd; padding: 8px; '>1</td>
<td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>
-Intersects operand <a href='SkRegion_Reference#Region'>Region</a> <a href='SkRegion_Reference#Region'>and</a> <a href='SkRegion_Reference#Region'>target</a> <a href='SkRegion_Reference#Region'>Region</a>.
+Intersects operand <a href='SkRegion_Reference#Region'>Region</a> and target <a href='SkRegion_Reference#Region'>Region</a>.
</td>
</tr>
<tr style='background-color: #f0f0f0; '>
<td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a name='SkRegion_kUnion_Op'><code>SkRegion::kUnion_Op</code></a></td>
<td style='text-align: center; border: 2px solid #dddddd; padding: 8px; '>2</td>
<td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>
-Unions operand <a href='SkRegion_Reference#Region'>Region</a> <a href='SkRegion_Reference#Region'>and</a> <a href='SkRegion_Reference#Region'>target</a> <a href='SkRegion_Reference#Region'>Region</a>.
+Unions operand <a href='SkRegion_Reference#Region'>Region</a> and target <a href='SkRegion_Reference#Region'>Region</a>.
</td>
</tr>
<tr>
<td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a name='SkRegion_kXOR_Op'><code>SkRegion::kXOR_Op</code></a></td>
<td style='text-align: center; border: 2px solid #dddddd; padding: 8px; '>3</td>
<td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>
-Replaces target <a href='SkRegion_Reference#Region'>Region</a> <a href='SkRegion_Reference#Region'>with</a> <a href='SkRegion_Reference#Region'>area</a> <a href='SkRegion_Reference#Region'>exclusive</a> <a href='SkRegion_Reference#Region'>to</a> <a href='SkRegion_Reference#Region'>both</a> <a href='SkRegion_Reference#Region'>Regions</a>.
+Replaces target <a href='SkRegion_Reference#Region'>Region</a> with area exclusive to both <a href='SkRegion_Reference#Region'>Regions</a>.
</td>
</tr>
<tr style='background-color: #f0f0f0; '>
<td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a name='SkRegion_kReverseDifference_Op'><code>SkRegion::kReverseDifference_Op</code></a></td>
<td style='text-align: center; border: 2px solid #dddddd; padding: 8px; '>4</td>
<td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>
-Subtracts target <a href='SkRegion_Reference#Region'>Region</a> <a href='SkRegion_Reference#Region'>from</a> <a href='SkRegion_Reference#Region'>operand</a> <a href='SkRegion_Reference#Region'>Region</a>.
+Subtracts target <a href='SkRegion_Reference#Region'>Region</a> from operand <a href='SkRegion_Reference#Region'>Region</a>.
</td>
</tr>
<tr>
<td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a name='SkRegion_kReplace_Op'><code>SkRegion::kReplace_Op</code></a></td>
<td style='text-align: center; border: 2px solid #dddddd; padding: 8px; '>5</td>
<td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>
-Replaces target <a href='SkRegion_Reference#Region'>Region</a> <a href='SkRegion_Reference#Region'>with</a> <a href='SkRegion_Reference#Region'>operand</a> <a href='SkRegion_Reference#Region'>Region</a>.
+Replaces target <a href='SkRegion_Reference#Region'>Region</a> with operand <a href='SkRegion_Reference#Region'>Region</a>.
</td>
</tr>
<tr style='background-color: #f0f0f0; '>
@@ -1888,7 +1888,7 @@
<td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a name='SkRegion_kOpCnt'><code>SkRegion::kOpCnt</code></a></td>
<td style='text-align: center; border: 2px solid #dddddd; padding: 8px; '>6</td>
<td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>
-May be used to verify that <a href='#SkRegion_Op'>Op</a> <a href='#SkRegion_Op'>is</a> <a href='#SkRegion_Op'>a</a> <a href='#SkRegion_Op'>legal</a> <a href='#SkRegion_Op'>value</a>.</td>
+May be used to verify that <a href='#SkRegion_Op'>Op</a> is a legal value.</td>
</tr>
</table>
@@ -1897,16 +1897,16 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-bool <a href='#SkRegion_op'>op</a>(<a href='#SkRegion_op'>const</a> <a href='SkIRect_Reference#SkIRect'>SkIRect</a>& <a href='SkRect_Reference#Rect'>rect</a>, <a href='#SkRegion_Op'>Op</a> <a href='#SkRegion_Op'>op</a>)
+bool <a href='#SkRegion_op'>op</a>(const <a href='SkIRect_Reference#SkIRect'>SkIRect</a>& <a href='SkRect_Reference#Rect'>rect</a>, <a href='#SkRegion_Op'>Op</a> op)
</pre>
-Replaces <a href='SkRegion_Reference#SkRegion'>SkRegion</a> <a href='SkRegion_Reference#SkRegion'>with</a> <a href='SkRegion_Reference#SkRegion'>the</a> <a href='SkRegion_Reference#SkRegion'>result</a> <a href='SkRegion_Reference#SkRegion'>of</a> <a href='SkRegion_Reference#SkRegion'>SkRegion</a> <a href='#SkRegion_op_op'>op</a> <a href='#SkRegion_op_rect'>rect</a>.
-Returns true if replaced <a href='SkRegion_Reference#SkRegion'>SkRegion</a> <a href='SkRegion_Reference#SkRegion'>is</a> <a href='SkRegion_Reference#SkRegion'>not</a> <a href='SkRegion_Reference#SkRegion'>empty</a>.
+Replaces <a href='SkRegion_Reference#SkRegion'>SkRegion</a> with the result of <a href='SkRegion_Reference#SkRegion'>SkRegion</a> <a href='#SkRegion_op_op'>op</a> <a href='#SkRegion_op_rect'>rect</a>.
+Returns true if replaced <a href='SkRegion_Reference#SkRegion'>SkRegion</a> is not empty.
### Parameters
<table> <tr> <td><a name='SkRegion_op_rect'><code><strong>rect</strong></code></a></td>
- <td><a href='SkIRect_Reference#SkIRect'>SkIRect</a> <a href='SkIRect_Reference#SkIRect'>operand</a></td>
+ <td><a href='SkIRect_Reference#SkIRect'>SkIRect</a> operand</td>
</tr>
<tr> <td><a name='SkRegion_op_op'><code><strong>op</strong></code></a></td>
<td>operator, one of:</td>
@@ -1933,11 +1933,11 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-bool <a href='#SkRegion_op'>op</a>(<a href='#SkRegion_op'>int</a> <a href='#SkRegion_op'>left</a>, <a href='#SkRegion_op'>int</a> <a href='#SkRegion_op'>top</a>, <a href='#SkRegion_op'>int</a> <a href='#SkRegion_op'>right</a>, <a href='#SkRegion_op'>int</a> <a href='#SkRegion_op'>bottom</a>, <a href='#SkRegion_Op'>Op</a> <a href='#SkRegion_Op'>op</a>)
+bool <a href='#SkRegion_op'>op</a>(int left, int top, int right, int bottom, <a href='#SkRegion_Op'>Op</a> op)
</pre>
-Replaces <a href='SkRegion_Reference#SkRegion'>SkRegion</a> <a href='SkRegion_Reference#SkRegion'>with</a> <a href='SkRegion_Reference#SkRegion'>the</a> <a href='SkRegion_Reference#SkRegion'>result</a> <a href='SkRegion_Reference#SkRegion'>of</a> <a href='SkRegion_Reference#SkRegion'>SkRegion</a> <a href='#SkRegion_op_2_op'>op</a> <a href='SkIRect_Reference#SkIRect'>SkIRect</a> (<a href='#SkRegion_op_2_left'>left</a>, <a href='#SkRegion_op_2_top'>top</a>, <a href='#SkRegion_op_2_right'>right</a>, <a href='#SkRegion_op_2_bottom'>bottom</a>).
-Returns true if replaced <a href='SkRegion_Reference#SkRegion'>SkRegion</a> <a href='SkRegion_Reference#SkRegion'>is</a> <a href='SkRegion_Reference#SkRegion'>not</a> <a href='SkRegion_Reference#SkRegion'>empty</a>.
+Replaces <a href='SkRegion_Reference#SkRegion'>SkRegion</a> with the result of <a href='SkRegion_Reference#SkRegion'>SkRegion</a> <a href='#SkRegion_op_2_op'>op</a> <a href='SkIRect_Reference#SkIRect'>SkIRect</a> (<a href='#SkRegion_op_2_left'>left</a>, <a href='#SkRegion_op_2_top'>top</a>, <a href='#SkRegion_op_2_right'>right</a>, <a href='#SkRegion_op_2_bottom'>bottom</a>).
+Returns true if replaced <a href='SkRegion_Reference#SkRegion'>SkRegion</a> is not empty.
### Parameters
@@ -1978,16 +1978,16 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-bool <a href='#SkRegion_op'>op</a>(<a href='#SkRegion_op'>const</a> <a href='SkRegion_Reference#SkRegion'>SkRegion</a>& <a href='SkRegion_Reference#SkRegion'>rgn</a>, <a href='#SkRegion_Op'>Op</a> <a href='#SkRegion_Op'>op</a>)
+bool <a href='#SkRegion_op'>op</a>(const <a href='SkRegion_Reference#SkRegion'>SkRegion</a>& rgn, <a href='#SkRegion_Op'>Op</a> op)
</pre>
-Replaces <a href='SkRegion_Reference#SkRegion'>SkRegion</a> <a href='SkRegion_Reference#SkRegion'>with</a> <a href='SkRegion_Reference#SkRegion'>the</a> <a href='SkRegion_Reference#SkRegion'>result</a> <a href='SkRegion_Reference#SkRegion'>of</a> <a href='SkRegion_Reference#SkRegion'>SkRegion</a> <a href='#SkRegion_op_3_op'>op</a> <a href='#SkRegion_op_3_rgn'>rgn</a>.
-Returns true if replaced <a href='SkRegion_Reference#SkRegion'>SkRegion</a> <a href='SkRegion_Reference#SkRegion'>is</a> <a href='SkRegion_Reference#SkRegion'>not</a> <a href='SkRegion_Reference#SkRegion'>empty</a>.
+Replaces <a href='SkRegion_Reference#SkRegion'>SkRegion</a> with the result of <a href='SkRegion_Reference#SkRegion'>SkRegion</a> <a href='#SkRegion_op_3_op'>op</a> <a href='#SkRegion_op_3_rgn'>rgn</a>.
+Returns true if replaced <a href='SkRegion_Reference#SkRegion'>SkRegion</a> is not empty.
### Parameters
<table> <tr> <td><a name='SkRegion_op_3_rgn'><code><strong>rgn</strong></code></a></td>
- <td><a href='SkRegion_Reference#SkRegion'>SkRegion</a> <a href='SkRegion_Reference#SkRegion'>operand</a></td>
+ <td><a href='SkRegion_Reference#SkRegion'>SkRegion</a> operand</td>
</tr>
<tr> <td><a name='SkRegion_op_3_op'><code><strong>op</strong></code></a></td>
<td>operator, one of:</td>
@@ -2014,19 +2014,19 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-bool <a href='#SkRegion_op'>op</a>(<a href='#SkRegion_op'>const</a> <a href='SkIRect_Reference#SkIRect'>SkIRect</a>& <a href='SkRect_Reference#Rect'>rect</a>, <a href='SkRect_Reference#Rect'>const</a> <a href='SkRegion_Reference#SkRegion'>SkRegion</a>& <a href='SkRegion_Reference#SkRegion'>rgn</a>, <a href='#SkRegion_Op'>Op</a> <a href='#SkRegion_Op'>op</a>)
+bool <a href='#SkRegion_op'>op</a>(const <a href='SkIRect_Reference#SkIRect'>SkIRect</a>& <a href='SkRect_Reference#Rect'>rect</a>, const <a href='SkRegion_Reference#SkRegion'>SkRegion</a>& rgn, <a href='#SkRegion_Op'>Op</a> op)
</pre>
-Replaces <a href='SkRegion_Reference#SkRegion'>SkRegion</a> <a href='SkRegion_Reference#SkRegion'>with</a> <a href='SkRegion_Reference#SkRegion'>the</a> <a href='SkRegion_Reference#SkRegion'>result</a> <a href='SkRegion_Reference#SkRegion'>of</a> <a href='#SkRegion_op_4_rect'>rect</a> <a href='#SkRegion_op_4_op'>op</a> <a href='#SkRegion_op_4_rgn'>rgn</a>.
-Returns true if replaced <a href='SkRegion_Reference#SkRegion'>SkRegion</a> <a href='SkRegion_Reference#SkRegion'>is</a> <a href='SkRegion_Reference#SkRegion'>not</a> <a href='SkRegion_Reference#SkRegion'>empty</a>.
+Replaces <a href='SkRegion_Reference#SkRegion'>SkRegion</a> with the result of <a href='#SkRegion_op_4_rect'>rect</a> <a href='#SkRegion_op_4_op'>op</a> <a href='#SkRegion_op_4_rgn'>rgn</a>.
+Returns true if replaced <a href='SkRegion_Reference#SkRegion'>SkRegion</a> is not empty.
### Parameters
<table> <tr> <td><a name='SkRegion_op_4_rect'><code><strong>rect</strong></code></a></td>
- <td><a href='SkIRect_Reference#SkIRect'>SkIRect</a> <a href='SkIRect_Reference#SkIRect'>operand</a></td>
+ <td><a href='SkIRect_Reference#SkIRect'>SkIRect</a> operand</td>
</tr>
<tr> <td><a name='SkRegion_op_4_rgn'><code><strong>rgn</strong></code></a></td>
- <td><a href='SkRegion_Reference#SkRegion'>SkRegion</a> <a href='SkRegion_Reference#SkRegion'>operand</a></td>
+ <td><a href='SkRegion_Reference#SkRegion'>SkRegion</a> operand</td>
</tr>
<tr> <td><a name='SkRegion_op_4_op'><code><strong>op</strong></code></a></td>
<td>operator, one of:</td>
@@ -2053,19 +2053,19 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-bool <a href='#SkRegion_op'>op</a>(<a href='#SkRegion_op'>const</a> <a href='SkRegion_Reference#SkRegion'>SkRegion</a>& <a href='SkRegion_Reference#SkRegion'>rgn</a>, <a href='SkRegion_Reference#SkRegion'>const</a> <a href='SkIRect_Reference#SkIRect'>SkIRect</a>& <a href='SkRect_Reference#Rect'>rect</a>, <a href='#SkRegion_Op'>Op</a> <a href='#SkRegion_Op'>op</a>)
+bool <a href='#SkRegion_op'>op</a>(const <a href='SkRegion_Reference#SkRegion'>SkRegion</a>& rgn, const <a href='SkIRect_Reference#SkIRect'>SkIRect</a>& <a href='SkRect_Reference#Rect'>rect</a>, <a href='#SkRegion_Op'>Op</a> op)
</pre>
-Replaces <a href='SkRegion_Reference#SkRegion'>SkRegion</a> <a href='SkRegion_Reference#SkRegion'>with</a> <a href='SkRegion_Reference#SkRegion'>the</a> <a href='SkRegion_Reference#SkRegion'>result</a> <a href='SkRegion_Reference#SkRegion'>of</a> <a href='#SkRegion_op_5_rgn'>rgn</a> <a href='#SkRegion_op_5_op'>op</a> <a href='#SkRegion_op_5_rect'>rect</a>.
-Returns true if replaced <a href='SkRegion_Reference#SkRegion'>SkRegion</a> <a href='SkRegion_Reference#SkRegion'>is</a> <a href='SkRegion_Reference#SkRegion'>not</a> <a href='SkRegion_Reference#SkRegion'>empty</a>.
+Replaces <a href='SkRegion_Reference#SkRegion'>SkRegion</a> with the result of <a href='#SkRegion_op_5_rgn'>rgn</a> <a href='#SkRegion_op_5_op'>op</a> <a href='#SkRegion_op_5_rect'>rect</a>.
+Returns true if replaced <a href='SkRegion_Reference#SkRegion'>SkRegion</a> is not empty.
### Parameters
<table> <tr> <td><a name='SkRegion_op_5_rgn'><code><strong>rgn</strong></code></a></td>
- <td><a href='SkRegion_Reference#SkRegion'>SkRegion</a> <a href='SkRegion_Reference#SkRegion'>operand</a></td>
+ <td><a href='SkRegion_Reference#SkRegion'>SkRegion</a> operand</td>
</tr>
<tr> <td><a name='SkRegion_op_5_rect'><code><strong>rect</strong></code></a></td>
- <td><a href='SkIRect_Reference#SkIRect'>SkIRect</a> <a href='SkIRect_Reference#SkIRect'>operand</a></td>
+ <td><a href='SkIRect_Reference#SkIRect'>SkIRect</a> operand</td>
</tr>
<tr> <td><a name='SkRegion_op_5_op'><code><strong>op</strong></code></a></td>
<td>operator, one of:</td>
@@ -2092,19 +2092,19 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-bool <a href='#SkRegion_op'>op</a>(<a href='#SkRegion_op'>const</a> <a href='SkRegion_Reference#SkRegion'>SkRegion</a>& <a href='SkRegion_Reference#SkRegion'>rgna</a>, <a href='SkRegion_Reference#SkRegion'>const</a> <a href='SkRegion_Reference#SkRegion'>SkRegion</a>& <a href='SkRegion_Reference#SkRegion'>rgnb</a>, <a href='#SkRegion_Op'>Op</a> <a href='#SkRegion_Op'>op</a>)
+bool <a href='#SkRegion_op'>op</a>(const <a href='SkRegion_Reference#SkRegion'>SkRegion</a>& rgna, const <a href='SkRegion_Reference#SkRegion'>SkRegion</a>& rgnb, <a href='#SkRegion_Op'>Op</a> op)
</pre>
-Replaces <a href='SkRegion_Reference#SkRegion'>SkRegion</a> <a href='SkRegion_Reference#SkRegion'>with</a> <a href='SkRegion_Reference#SkRegion'>the</a> <a href='SkRegion_Reference#SkRegion'>result</a> <a href='SkRegion_Reference#SkRegion'>of</a> <a href='#SkRegion_op_6_rgna'>rgna</a> <a href='#SkRegion_op_6_op'>op</a> <a href='#SkRegion_op_6_rgnb'>rgnb</a>.
-Returns true if replaced <a href='SkRegion_Reference#SkRegion'>SkRegion</a> <a href='SkRegion_Reference#SkRegion'>is</a> <a href='SkRegion_Reference#SkRegion'>not</a> <a href='SkRegion_Reference#SkRegion'>empty</a>.
+Replaces <a href='SkRegion_Reference#SkRegion'>SkRegion</a> with the result of <a href='#SkRegion_op_6_rgna'>rgna</a> <a href='#SkRegion_op_6_op'>op</a> <a href='#SkRegion_op_6_rgnb'>rgnb</a>.
+Returns true if replaced <a href='SkRegion_Reference#SkRegion'>SkRegion</a> is not empty.
### Parameters
<table> <tr> <td><a name='SkRegion_op_6_rgna'><code><strong>rgna</strong></code></a></td>
- <td><a href='SkRegion_Reference#SkRegion'>SkRegion</a> <a href='SkRegion_Reference#SkRegion'>operand</a></td>
+ <td><a href='SkRegion_Reference#SkRegion'>SkRegion</a> operand</td>
</tr>
<tr> <td><a name='SkRegion_op_6_rgnb'><code><strong>rgnb</strong></code></a></td>
- <td><a href='SkRegion_Reference#SkRegion'>SkRegion</a> <a href='SkRegion_Reference#SkRegion'>operand</a></td>
+ <td><a href='SkRegion_Reference#SkRegion'>SkRegion</a> operand</td>
</tr>
<tr> <td><a name='SkRegion_op_6_op'><code><strong>op</strong></code></a></td>
<td>operator, one of:</td>
@@ -2138,18 +2138,18 @@
### Return Value
-<a href='undocumented#String'>string</a> <a href='undocumented#String'>representation</a> <a href='undocumented#String'>of</a> <a href='SkRegion_Reference#Region'>Region</a>
+<a href='undocumented#String'>string</a> representation of <a href='SkRegion_Reference#Region'>Region</a>
<a name='SkRegion_writeToMemory'></a>
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-size_t <a href='#SkRegion_writeToMemory'>writeToMemory</a>(<a href='#SkRegion_writeToMemory'>void</a>* <a href='#SkRegion_writeToMemory'>buffer</a>) <a href='#SkRegion_writeToMemory'>const</a>
+size_t <a href='#SkRegion_writeToMemory'>writeToMemory</a>(void* buffer) const
</pre>
-Writes <a href='SkRegion_Reference#SkRegion'>SkRegion</a> <a href='SkRegion_Reference#SkRegion'>to</a> <a href='#SkRegion_writeToMemory_buffer'>buffer</a>, <a href='#SkRegion_writeToMemory_buffer'>and</a> <a href='#SkRegion_writeToMemory_buffer'>returns</a> <a href='#SkRegion_writeToMemory_buffer'>number</a> <a href='#SkRegion_writeToMemory_buffer'>of</a> <a href='#SkRegion_writeToMemory_buffer'>bytes</a> <a href='#SkRegion_writeToMemory_buffer'>written</a>.
-If <a href='#SkRegion_writeToMemory_buffer'>buffer</a> <a href='#SkRegion_writeToMemory_buffer'>is</a> <a href='#SkRegion_writeToMemory_buffer'>nullptr</a>, <a href='#SkRegion_writeToMemory_buffer'>returns</a> <a href='#SkRegion_writeToMemory_buffer'>number</a> <a href='#SkRegion_writeToMemory_buffer'>number</a> <a href='#SkRegion_writeToMemory_buffer'>of</a> <a href='#SkRegion_writeToMemory_buffer'>bytes</a> <a href='#SkRegion_writeToMemory_buffer'>that</a> <a href='#SkRegion_writeToMemory_buffer'>would</a> <a href='#SkRegion_writeToMemory_buffer'>be</a> <a href='#SkRegion_writeToMemory_buffer'>written</a>.
+Writes <a href='SkRegion_Reference#SkRegion'>SkRegion</a> to <a href='#SkRegion_writeToMemory_buffer'>buffer</a>, and returns number of bytes written.
+If <a href='#SkRegion_writeToMemory_buffer'>buffer</a> is nullptr, returns number number of bytes that would be written.
### Parameters
@@ -2160,7 +2160,7 @@
### Return Value
-<a href='undocumented#Size'>size</a> <a href='undocumented#Size'>of</a> <a href='SkRegion_Reference#SkRegion'>SkRegion</a>
+<a href='undocumented#Size'>size</a> of <a href='SkRegion_Reference#SkRegion'>SkRegion</a>
### Example
@@ -2175,11 +2175,11 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-size_t <a href='#SkRegion_readFromMemory'>readFromMemory</a>(<a href='#SkRegion_readFromMemory'>const</a> <a href='#SkRegion_readFromMemory'>void</a>* <a href='#SkRegion_readFromMemory'>buffer</a>, <a href='#SkRegion_readFromMemory'>size_t</a> <a href='#SkRegion_readFromMemory'>length</a>)
+size_t <a href='#SkRegion_readFromMemory'>readFromMemory</a>(const void* buffer, size_t length)
</pre>
-Constructs <a href='SkRegion_Reference#SkRegion'>SkRegion</a> <a href='SkRegion_Reference#SkRegion'>from</a> <a href='#SkRegion_readFromMemory_buffer'>buffer</a> <a href='#SkRegion_readFromMemory_buffer'>of</a> <a href='undocumented#Size'>size</a> <a href='#SkRegion_readFromMemory_length'>length</a>. <a href='#SkRegion_readFromMemory_length'>Returns</a> <a href='#SkRegion_readFromMemory_length'>bytes</a> <a href='#SkRegion_readFromMemory_length'>read</a>.
-Returned value will be multiple of four or zero if <a href='#SkRegion_readFromMemory_length'>length</a> <a href='#SkRegion_readFromMemory_length'>was</a> <a href='#SkRegion_readFromMemory_length'>too</a> <a href='#SkRegion_readFromMemory_length'>small</a>.
+Constructs <a href='SkRegion_Reference#SkRegion'>SkRegion</a> from <a href='#SkRegion_readFromMemory_buffer'>buffer</a> of <a href='undocumented#Size'>size</a> <a href='#SkRegion_readFromMemory_length'>length</a>. Returns bytes read.
+Returned value will be multiple of four or zero if <a href='#SkRegion_readFromMemory_length'>length</a> was too small.
### Parameters
@@ -2187,7 +2187,7 @@
<td>storage for binary <a href='undocumented#Data'>data</a></td>
</tr>
<tr> <td><a name='SkRegion_readFromMemory_length'><code><strong>length</strong></code></a></td>
- <td><a href='undocumented#Size'>size</a> <a href='undocumented#Size'>of</a> <a href='#SkRegion_readFromMemory_buffer'>buffer</a></td>
+ <td><a href='undocumented#Size'>size</a> of <a href='#SkRegion_readFromMemory_buffer'>buffer</a></td>
</tr>
</table>
diff --git a/site/user/api/SkSurface_Reference.md b/site/user/api/SkSurface_Reference.md
index c70879d..39d4d74 100644
--- a/site/user/api/SkSurface_Reference.md
+++ b/site/user/api/SkSurface_Reference.md
@@ -7,131 +7,131 @@
---
<pre style="padding: 1em 1em 1em 1em;width: 62.5em; background-color: #f0f0f0">
-class <a href='SkSurface_Reference#SkSurface'>SkSurface</a> : <a href='SkSurface_Reference#SkSurface'>public</a> <a href='undocumented#SkRefCnt'>SkRefCnt</a> {
-<a href='undocumented#SkRefCnt'>public</a>:
- <a href='undocumented#SkRefCnt'>static</a> <a href='undocumented#sk_sp'>sk_sp</a><<a href='SkSurface_Reference#SkSurface'>SkSurface</a>> <a href='#SkSurface_MakeRasterDirect'>MakeRasterDirect</a>(<a href='#SkSurface_MakeRasterDirect'>const</a> <a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a>& <a href='SkImageInfo_Reference#SkImageInfo'>imageInfo</a>, <a href='SkImageInfo_Reference#SkImageInfo'>void</a>* <a href='SkImageInfo_Reference#SkImageInfo'>pixels</a>,
- <a href='SkImageInfo_Reference#SkImageInfo'>size_t</a> <a href='SkImageInfo_Reference#SkImageInfo'>rowBytes</a>,
- <a href='SkImageInfo_Reference#SkImageInfo'>const</a> <a href='undocumented#SkSurfaceProps'>SkSurfaceProps</a>* <a href='undocumented#SkSurfaceProps'>surfaceProps</a> = <a href='undocumented#SkSurfaceProps'>nullptr</a>);
- <a href='undocumented#SkSurfaceProps'>static</a> <a href='undocumented#sk_sp'>sk_sp</a><<a href='SkSurface_Reference#SkSurface'>SkSurface</a>> <a href='#SkSurface_MakeRasterDirectReleaseProc'>MakeRasterDirectReleaseProc</a>(<a href='#SkSurface_MakeRasterDirectReleaseProc'>const</a> <a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a>& <a href='SkImageInfo_Reference#SkImageInfo'>imageInfo</a>, <a href='SkImageInfo_Reference#SkImageInfo'>void</a>* <a href='SkImageInfo_Reference#SkImageInfo'>pixels</a>,
- <a href='SkImageInfo_Reference#SkImageInfo'>size_t</a> <a href='SkImageInfo_Reference#SkImageInfo'>rowBytes</a>,
- <a href='SkImageInfo_Reference#SkImageInfo'>void</a> (*<a href='SkImageInfo_Reference#SkImageInfo'>releaseProc</a>)(<a href='SkImageInfo_Reference#SkImageInfo'>void</a>* <a href='SkImageInfo_Reference#SkImageInfo'>pixels</a>, <a href='SkImageInfo_Reference#SkImageInfo'>void</a>* <a href='SkImageInfo_Reference#SkImageInfo'>context</a>),
- <a href='SkImageInfo_Reference#SkImageInfo'>void</a>* <a href='SkImageInfo_Reference#SkImageInfo'>context</a>, <a href='SkImageInfo_Reference#SkImageInfo'>const</a> <a href='undocumented#SkSurfaceProps'>SkSurfaceProps</a>* <a href='undocumented#SkSurfaceProps'>surfaceProps</a> = <a href='undocumented#SkSurfaceProps'>nullptr</a>);
- <a href='undocumented#SkSurfaceProps'>static</a> <a href='undocumented#sk_sp'>sk_sp</a><<a href='SkSurface_Reference#SkSurface'>SkSurface</a>> <a href='#SkSurface_MakeRaster'>MakeRaster</a>(<a href='#SkSurface_MakeRaster'>const</a> <a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a>& <a href='SkImageInfo_Reference#SkImageInfo'>imageInfo</a>, <a href='SkImageInfo_Reference#SkImageInfo'>size_t</a> <a href='SkImageInfo_Reference#SkImageInfo'>rowBytes</a>,
- <a href='SkImageInfo_Reference#SkImageInfo'>const</a> <a href='undocumented#SkSurfaceProps'>SkSurfaceProps</a>* <a href='undocumented#SkSurfaceProps'>surfaceProps</a>);
- <a href='undocumented#SkSurfaceProps'>static</a> <a href='undocumented#sk_sp'>sk_sp</a><<a href='SkSurface_Reference#SkSurface'>SkSurface</a>> <a href='#SkSurface_MakeRaster'>MakeRaster</a>(<a href='#SkSurface_MakeRaster'>const</a> <a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a>& <a href='SkImageInfo_Reference#SkImageInfo'>imageInfo</a>,
- <a href='SkImageInfo_Reference#SkImageInfo'>const</a> <a href='undocumented#SkSurfaceProps'>SkSurfaceProps</a>* <a href='undocumented#SkSurfaceProps'>props</a> = <a href='undocumented#SkSurfaceProps'>nullptr</a>);
- <a href='undocumented#SkSurfaceProps'>static</a> <a href='undocumented#sk_sp'>sk_sp</a><<a href='SkSurface_Reference#SkSurface'>SkSurface</a>> <a href='#SkSurface_MakeRasterN32Premul'>MakeRasterN32Premul</a>(<a href='#SkSurface_MakeRasterN32Premul'>int</a> <a href='#SkSurface_MakeRasterN32Premul'>width</a>, <a href='#SkSurface_MakeRasterN32Premul'>int</a> <a href='#SkSurface_MakeRasterN32Premul'>height</a>,
- <a href='#SkSurface_MakeRasterN32Premul'>const</a> <a href='undocumented#SkSurfaceProps'>SkSurfaceProps</a>* <a href='undocumented#SkSurfaceProps'>surfaceProps</a> = <a href='undocumented#SkSurfaceProps'>nullptr</a>);
- <a href='undocumented#SkSurfaceProps'>static</a> <a href='undocumented#sk_sp'>sk_sp</a><<a href='SkSurface_Reference#SkSurface'>SkSurface</a>> <a href='#SkSurface_MakeFromBackendTexture'>MakeFromBackendTexture</a>(<a href='undocumented#GrContext'>GrContext</a>* <a href='undocumented#GrContext'>context</a>,
- <a href='undocumented#GrContext'>const</a> <a href='undocumented#GrBackendTexture'>GrBackendTexture</a>& <a href='undocumented#GrBackendTexture'>backendTexture</a>,
- <a href='undocumented#GrSurfaceOrigin'>GrSurfaceOrigin</a> <a href='undocumented#GrSurfaceOrigin'>origin</a>, <a href='undocumented#GrSurfaceOrigin'>int</a> <a href='undocumented#GrSurfaceOrigin'>sampleCnt</a>,
- <a href='SkImageInfo_Reference#SkColorType'>SkColorType</a> <a href='SkImageInfo_Reference#SkColorType'>colorType</a>,
- <a href='undocumented#sk_sp'>sk_sp</a><<a href='undocumented#SkColorSpace'>SkColorSpace</a>> <a href='undocumented#SkColorSpace'>colorSpace</a>,
- <a href='undocumented#SkColorSpace'>const</a> <a href='undocumented#SkSurfaceProps'>SkSurfaceProps</a>* <a href='undocumented#SkSurfaceProps'>surfaceProps</a>);
- <a href='undocumented#SkSurfaceProps'>static</a> <a href='undocumented#sk_sp'>sk_sp</a><<a href='SkSurface_Reference#SkSurface'>SkSurface</a>> <a href='#SkSurface_MakeFromBackendRenderTarget'>MakeFromBackendRenderTarget</a>(<a href='undocumented#GrContext'>GrContext</a>* <a href='undocumented#GrContext'>context</a>,
- <a href='undocumented#GrContext'>const</a> <a href='undocumented#GrBackendRenderTarget'>GrBackendRenderTarget</a>& <a href='undocumented#GrBackendRenderTarget'>backendRenderTarget</a>,
- <a href='undocumented#GrSurfaceOrigin'>GrSurfaceOrigin</a> <a href='undocumented#GrSurfaceOrigin'>origin</a>,
- <a href='SkImageInfo_Reference#SkColorType'>SkColorType</a> <a href='SkImageInfo_Reference#SkColorType'>colorType</a>,
- <a href='undocumented#sk_sp'>sk_sp</a><<a href='undocumented#SkColorSpace'>SkColorSpace</a>> <a href='undocumented#SkColorSpace'>colorSpace</a>,
- <a href='undocumented#SkColorSpace'>const</a> <a href='undocumented#SkSurfaceProps'>SkSurfaceProps</a>* <a href='undocumented#SkSurfaceProps'>surfaceProps</a>);
- <a href='undocumented#SkSurfaceProps'>static</a> <a href='undocumented#sk_sp'>sk_sp</a><<a href='SkSurface_Reference#SkSurface'>SkSurface</a>> <a href='#SkSurface_MakeFromBackendTextureAsRenderTarget'>MakeFromBackendTextureAsRenderTarget</a>(<a href='undocumented#GrContext'>GrContext</a>* <a href='undocumented#GrContext'>context</a>,
- <a href='undocumented#GrContext'>const</a> <a href='undocumented#GrBackendTexture'>GrBackendTexture</a>& <a href='undocumented#GrBackendTexture'>backendTexture</a>,
- <a href='undocumented#GrSurfaceOrigin'>GrSurfaceOrigin</a> <a href='undocumented#GrSurfaceOrigin'>origin</a>,
- <a href='undocumented#GrSurfaceOrigin'>int</a> <a href='undocumented#GrSurfaceOrigin'>sampleCnt</a>,
- <a href='SkImageInfo_Reference#SkColorType'>SkColorType</a> <a href='SkImageInfo_Reference#SkColorType'>colorType</a>,
- <a href='undocumented#sk_sp'>sk_sp</a><<a href='undocumented#SkColorSpace'>SkColorSpace</a>> <a href='undocumented#SkColorSpace'>colorSpace</a>,
- <a href='undocumented#SkColorSpace'>const</a> <a href='undocumented#SkSurfaceProps'>SkSurfaceProps</a>* <a href='undocumented#SkSurfaceProps'>surfaceProps</a>);
- <a href='undocumented#SkSurfaceProps'>static</a> <a href='undocumented#sk_sp'>sk_sp</a><<a href='SkSurface_Reference#SkSurface'>SkSurface</a>> <a href='#SkSurface_MakeRenderTarget'>MakeRenderTarget</a>(<a href='undocumented#GrContext'>GrContext</a>* <a href='undocumented#GrContext'>context</a>, <a href='undocumented#SkBudgeted'>SkBudgeted</a> <a href='undocumented#SkBudgeted'>budgeted</a>,
- <a href='undocumented#SkBudgeted'>const</a> <a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a>& <a href='SkImageInfo_Reference#SkImageInfo'>imageInfo</a>,
- <a href='SkImageInfo_Reference#SkImageInfo'>int</a> <a href='SkImageInfo_Reference#SkImageInfo'>sampleCount</a>, <a href='undocumented#GrSurfaceOrigin'>GrSurfaceOrigin</a> <a href='undocumented#GrSurfaceOrigin'>surfaceOrigin</a>,
- <a href='undocumented#GrSurfaceOrigin'>const</a> <a href='undocumented#SkSurfaceProps'>SkSurfaceProps</a>* <a href='undocumented#SkSurfaceProps'>surfaceProps</a>,
- <a href='undocumented#SkSurfaceProps'>bool</a> <a href='undocumented#SkSurfaceProps'>shouldCreateWithMips</a> = <a href='undocumented#SkSurfaceProps'>false</a>);
- <a href='undocumented#SkSurfaceProps'>static</a> <a href='undocumented#sk_sp'>sk_sp</a><<a href='SkSurface_Reference#SkSurface'>SkSurface</a>> <a href='#SkSurface_MakeRenderTarget'>MakeRenderTarget</a>(<a href='undocumented#GrContext'>GrContext</a>* <a href='undocumented#GrContext'>context</a>, <a href='undocumented#SkBudgeted'>SkBudgeted</a> <a href='undocumented#SkBudgeted'>budgeted</a>,
- <a href='undocumented#SkBudgeted'>const</a> <a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a>& <a href='SkImageInfo_Reference#SkImageInfo'>imageInfo</a>, <a href='SkImageInfo_Reference#SkImageInfo'>int</a> <a href='SkImageInfo_Reference#SkImageInfo'>sampleCount</a>,
- <a href='SkImageInfo_Reference#SkImageInfo'>const</a> <a href='undocumented#SkSurfaceProps'>SkSurfaceProps</a>* <a href='undocumented#SkSurfaceProps'>props</a>);
- <a href='undocumented#SkSurfaceProps'>static</a> <a href='undocumented#sk_sp'>sk_sp</a><<a href='SkSurface_Reference#SkSurface'>SkSurface</a>> <a href='#SkSurface_MakeRenderTarget'>MakeRenderTarget</a>(<a href='undocumented#GrContext'>GrContext</a>* <a href='undocumented#GrContext'>context</a>, <a href='undocumented#SkBudgeted'>SkBudgeted</a> <a href='undocumented#SkBudgeted'>budgeted</a>,
- <a href='undocumented#SkBudgeted'>const</a> <a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a>& <a href='SkImageInfo_Reference#SkImageInfo'>imageInfo</a>);
- <a href='SkImageInfo_Reference#SkImageInfo'>static</a> <a href='undocumented#sk_sp'>sk_sp</a><<a href='SkSurface_Reference#SkSurface'>SkSurface</a>> <a href='#SkSurface_MakeRenderTarget'>MakeRenderTarget</a>(<a href='undocumented#GrContext'>GrContext</a>* <a href='undocumented#GrContext'>context</a>,
- <a href='undocumented#GrContext'>const</a> <a href='undocumented#SkSurfaceCharacterization'>SkSurfaceCharacterization</a>& <a href='undocumented#SkSurfaceCharacterization'>characterization</a>,
- <a href='undocumented#SkBudgeted'>SkBudgeted</a> <a href='undocumented#SkBudgeted'>budgeted</a>);
- <a href='undocumented#SkBudgeted'>static</a> <a href='undocumented#sk_sp'>sk_sp</a><<a href='SkSurface_Reference#SkSurface'>SkSurface</a>> <a href='#SkSurface_MakeNull'>MakeNull</a>(<a href='#SkSurface_MakeNull'>int</a> <a href='#SkSurface_MakeNull'>width</a>, <a href='#SkSurface_MakeNull'>int</a> <a href='#SkSurface_MakeNull'>height</a>);
- <a href='#SkSurface_MakeNull'>int</a> <a href='#SkSurface_width'>width()</a> <a href='#SkSurface_width'>const</a>;
- <a href='#SkSurface_width'>int</a> <a href='#SkSurface_height'>height()</a> <a href='#SkSurface_height'>const</a>;
- <a href='#SkSurface_height'>uint32_t</a> <a href='#SkSurface_generationID'>generationID</a>();
+class <a href='SkSurface_Reference#SkSurface'>SkSurface</a> : public <a href='undocumented#SkRefCnt'>SkRefCnt</a> {
+public:
+ static <a href='undocumented#sk_sp'>sk_sp</a><<a href='SkSurface_Reference#SkSurface'>SkSurface</a>> <a href='#SkSurface_MakeRasterDirect'>MakeRasterDirect</a>(const <a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a>& imageInfo, void* pixels,
+ size_t rowBytes,
+ const <a href='undocumented#SkSurfaceProps'>SkSurfaceProps</a>* surfaceProps = nullptr);
+ static <a href='undocumented#sk_sp'>sk_sp</a><<a href='SkSurface_Reference#SkSurface'>SkSurface</a>> <a href='#SkSurface_MakeRasterDirectReleaseProc'>MakeRasterDirectReleaseProc</a>(const <a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a>& imageInfo, void* pixels,
+ size_t rowBytes,
+ void (*releaseProc)(void* pixels, void* context),
+ void* context, const <a href='undocumented#SkSurfaceProps'>SkSurfaceProps</a>* surfaceProps = nullptr);
+ static <a href='undocumented#sk_sp'>sk_sp</a><<a href='SkSurface_Reference#SkSurface'>SkSurface</a>> <a href='#SkSurface_MakeRaster'>MakeRaster</a>(const <a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a>& imageInfo, size_t rowBytes,
+ const <a href='undocumented#SkSurfaceProps'>SkSurfaceProps</a>* surfaceProps);
+ static <a href='undocumented#sk_sp'>sk_sp</a><<a href='SkSurface_Reference#SkSurface'>SkSurface</a>> <a href='#SkSurface_MakeRaster'>MakeRaster</a>(const <a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a>& imageInfo,
+ const <a href='undocumented#SkSurfaceProps'>SkSurfaceProps</a>* props = nullptr);
+ static <a href='undocumented#sk_sp'>sk_sp</a><<a href='SkSurface_Reference#SkSurface'>SkSurface</a>> <a href='#SkSurface_MakeRasterN32Premul'>MakeRasterN32Premul</a>(int width, int height,
+ const <a href='undocumented#SkSurfaceProps'>SkSurfaceProps</a>* surfaceProps = nullptr);
+ static <a href='undocumented#sk_sp'>sk_sp</a><<a href='SkSurface_Reference#SkSurface'>SkSurface</a>> <a href='#SkSurface_MakeFromBackendTexture'>MakeFromBackendTexture</a>(<a href='undocumented#GrContext'>GrContext</a>* context,
+ const <a href='undocumented#GrBackendTexture'>GrBackendTexture</a>& backendTexture,
+ <a href='undocumented#GrSurfaceOrigin'>GrSurfaceOrigin</a> origin, int sampleCnt,
+ <a href='SkImageInfo_Reference#SkColorType'>SkColorType</a> colorType,
+ <a href='undocumented#sk_sp'>sk_sp</a><<a href='undocumented#SkColorSpace'>SkColorSpace</a>> colorSpace,
+ const <a href='undocumented#SkSurfaceProps'>SkSurfaceProps</a>* surfaceProps);
+ static <a href='undocumented#sk_sp'>sk_sp</a><<a href='SkSurface_Reference#SkSurface'>SkSurface</a>> <a href='#SkSurface_MakeFromBackendRenderTarget'>MakeFromBackendRenderTarget</a>(<a href='undocumented#GrContext'>GrContext</a>* context,
+ const <a href='undocumented#GrBackendRenderTarget'>GrBackendRenderTarget</a>& backendRenderTarget,
+ <a href='undocumented#GrSurfaceOrigin'>GrSurfaceOrigin</a> origin,
+ <a href='SkImageInfo_Reference#SkColorType'>SkColorType</a> colorType,
+ <a href='undocumented#sk_sp'>sk_sp</a><<a href='undocumented#SkColorSpace'>SkColorSpace</a>> colorSpace,
+ const <a href='undocumented#SkSurfaceProps'>SkSurfaceProps</a>* surfaceProps);
+ static <a href='undocumented#sk_sp'>sk_sp</a><<a href='SkSurface_Reference#SkSurface'>SkSurface</a>> <a href='#SkSurface_MakeFromBackendTextureAsRenderTarget'>MakeFromBackendTextureAsRenderTarget</a>(<a href='undocumented#GrContext'>GrContext</a>* context,
+ const <a href='undocumented#GrBackendTexture'>GrBackendTexture</a>& backendTexture,
+ <a href='undocumented#GrSurfaceOrigin'>GrSurfaceOrigin</a> origin,
+ int sampleCnt,
+ <a href='SkImageInfo_Reference#SkColorType'>SkColorType</a> colorType,
+ <a href='undocumented#sk_sp'>sk_sp</a><<a href='undocumented#SkColorSpace'>SkColorSpace</a>> colorSpace,
+ const <a href='undocumented#SkSurfaceProps'>SkSurfaceProps</a>* surfaceProps);
+ static <a href='undocumented#sk_sp'>sk_sp</a><<a href='SkSurface_Reference#SkSurface'>SkSurface</a>> <a href='#SkSurface_MakeRenderTarget'>MakeRenderTarget</a>(<a href='undocumented#GrContext'>GrContext</a>* context, <a href='undocumented#SkBudgeted'>SkBudgeted</a> budgeted,
+ const <a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a>& imageInfo,
+ int sampleCount, <a href='undocumented#GrSurfaceOrigin'>GrSurfaceOrigin</a> surfaceOrigin,
+ const <a href='undocumented#SkSurfaceProps'>SkSurfaceProps</a>* surfaceProps,
+ bool shouldCreateWithMips = false);
+ static <a href='undocumented#sk_sp'>sk_sp</a><<a href='SkSurface_Reference#SkSurface'>SkSurface</a>> <a href='#SkSurface_MakeRenderTarget'>MakeRenderTarget</a>(<a href='undocumented#GrContext'>GrContext</a>* context, <a href='undocumented#SkBudgeted'>SkBudgeted</a> budgeted,
+ const <a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a>& imageInfo, int sampleCount,
+ const <a href='undocumented#SkSurfaceProps'>SkSurfaceProps</a>* props);
+ static <a href='undocumented#sk_sp'>sk_sp</a><<a href='SkSurface_Reference#SkSurface'>SkSurface</a>> <a href='#SkSurface_MakeRenderTarget'>MakeRenderTarget</a>(<a href='undocumented#GrContext'>GrContext</a>* context, <a href='undocumented#SkBudgeted'>SkBudgeted</a> budgeted,
+ const <a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a>& imageInfo);
+ static <a href='undocumented#sk_sp'>sk_sp</a><<a href='SkSurface_Reference#SkSurface'>SkSurface</a>> <a href='#SkSurface_MakeRenderTarget'>MakeRenderTarget</a>(<a href='undocumented#GrContext'>GrContext</a>* context,
+ const <a href='undocumented#SkSurfaceCharacterization'>SkSurfaceCharacterization</a>& characterization,
+ <a href='undocumented#SkBudgeted'>SkBudgeted</a> budgeted);
+ static <a href='undocumented#sk_sp'>sk_sp</a><<a href='SkSurface_Reference#SkSurface'>SkSurface</a>> <a href='#SkSurface_MakeNull'>MakeNull</a>(int width, int height);
+ int <a href='#SkSurface_width'>width()</a> const;
+ int <a href='#SkSurface_height'>height()</a> const;
+ uint32_t <a href='#SkSurface_generationID'>generationID</a>();
- <a href='#SkSurface_generationID'>enum</a> <a href='#SkSurface_ContentChangeMode'>ContentChangeMode</a> {
+ enum <a href='#SkSurface_ContentChangeMode'>ContentChangeMode</a> {
<a href='#SkSurface_kDiscard_ContentChangeMode'>kDiscard_ContentChangeMode</a>,
<a href='#SkSurface_kRetain_ContentChangeMode'>kRetain_ContentChangeMode</a>,
};
- <a href='#SkSurface_kRetain_ContentChangeMode'>void</a> <a href='#SkSurface_notifyContentWillChange'>notifyContentWillChange</a>(<a href='#SkSurface_ContentChangeMode'>ContentChangeMode</a> <a href='#SkSurface_ContentChangeMode'>mode</a>);
+ void <a href='#SkSurface_notifyContentWillChange'>notifyContentWillChange</a>(<a href='#SkSurface_ContentChangeMode'>ContentChangeMode</a> mode);
- <a href='#SkSurface_ContentChangeMode'>enum</a> <a href='#SkSurface_BackendHandleAccess'>BackendHandleAccess</a> {
+ enum <a href='#SkSurface_BackendHandleAccess'>BackendHandleAccess</a> {
<a href='#SkSurface_kFlushRead_BackendHandleAccess'>kFlushRead_BackendHandleAccess</a>,
<a href='#SkSurface_kFlushWrite_BackendHandleAccess'>kFlushWrite_BackendHandleAccess</a>,
<a href='#SkSurface_kDiscardWrite_BackendHandleAccess'>kDiscardWrite_BackendHandleAccess</a>,
};
- <a href='#SkSurface_kDiscardWrite_BackendHandleAccess'>static</a> <a href='#SkSurface_kDiscardWrite_BackendHandleAccess'>const</a> <a href='#SkSurface_BackendHandleAccess'>BackendHandleAccess</a> <a href='#SkSurface_kFlushRead_TextureHandleAccess'>kFlushRead_TextureHandleAccess</a> =
+ static const <a href='#SkSurface_BackendHandleAccess'>BackendHandleAccess</a> <a href='#SkSurface_kFlushRead_TextureHandleAccess'>kFlushRead_TextureHandleAccess</a> =
<a href='#SkSurface_kFlushRead_BackendHandleAccess'>kFlushRead_BackendHandleAccess</a>;
- <a href='#SkSurface_kFlushRead_BackendHandleAccess'>static</a> <a href='#SkSurface_kFlushRead_BackendHandleAccess'>const</a> <a href='#SkSurface_BackendHandleAccess'>BackendHandleAccess</a> <a href='#SkSurface_kFlushWrite_TextureHandleAccess'>kFlushWrite_TextureHandleAccess</a> =
+ static const <a href='#SkSurface_BackendHandleAccess'>BackendHandleAccess</a> <a href='#SkSurface_kFlushWrite_TextureHandleAccess'>kFlushWrite_TextureHandleAccess</a> =
<a href='#SkSurface_kFlushWrite_BackendHandleAccess'>kFlushWrite_BackendHandleAccess</a>;
- <a href='#SkSurface_kFlushWrite_BackendHandleAccess'>static</a> <a href='#SkSurface_kFlushWrite_BackendHandleAccess'>const</a> <a href='#SkSurface_BackendHandleAccess'>BackendHandleAccess</a> <a href='#SkSurface_kDiscardWrite_TextureHandleAccess'>kDiscardWrite_TextureHandleAccess</a> =
+ static const <a href='#SkSurface_BackendHandleAccess'>BackendHandleAccess</a> <a href='#SkSurface_kDiscardWrite_TextureHandleAccess'>kDiscardWrite_TextureHandleAccess</a> =
<a href='#SkSurface_kDiscardWrite_BackendHandleAccess'>kDiscardWrite_BackendHandleAccess</a>;
- <a href='undocumented#GrBackendTexture'>GrBackendTexture</a> <a href='#SkSurface_getBackendTexture'>getBackendTexture</a>(<a href='#SkSurface_BackendHandleAccess'>BackendHandleAccess</a> <a href='#SkSurface_BackendHandleAccess'>backendHandleAccess</a>);
- <a href='undocumented#GrBackendRenderTarget'>GrBackendRenderTarget</a> <a href='#SkSurface_getBackendRenderTarget'>getBackendRenderTarget</a>(<a href='#SkSurface_BackendHandleAccess'>BackendHandleAccess</a> <a href='#SkSurface_BackendHandleAccess'>backendHandleAccess</a>);
+ <a href='undocumented#GrBackendTexture'>GrBackendTexture</a> <a href='#SkSurface_getBackendTexture'>getBackendTexture</a>(<a href='#SkSurface_BackendHandleAccess'>BackendHandleAccess</a> backendHandleAccess);
+ <a href='undocumented#GrBackendRenderTarget'>GrBackendRenderTarget</a> <a href='#SkSurface_getBackendRenderTarget'>getBackendRenderTarget</a>(<a href='#SkSurface_BackendHandleAccess'>BackendHandleAccess</a> backendHandleAccess);
<a href='SkCanvas_Reference#SkCanvas'>SkCanvas</a>* <a href='#SkSurface_getCanvas'>getCanvas</a>();
- <a href='undocumented#sk_sp'>sk_sp</a><<a href='SkSurface_Reference#SkSurface'>SkSurface</a>> <a href='#SkSurface_makeSurface'>makeSurface</a>(<a href='#SkSurface_makeSurface'>const</a> <a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a>& <a href='SkImageInfo_Reference#SkImageInfo'>imageInfo</a>);
+ <a href='undocumented#sk_sp'>sk_sp</a><<a href='SkSurface_Reference#SkSurface'>SkSurface</a>> <a href='#SkSurface_makeSurface'>makeSurface</a>(const <a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a>& imageInfo);
<a href='undocumented#sk_sp'>sk_sp</a><<a href='SkImage_Reference#SkImage'>SkImage</a>> <a href='#SkSurface_makeImageSnapshot'>makeImageSnapshot</a>();
- <a href='#SkSurface_makeImageSnapshot'>void</a> <a href='#SkSurface_makeImageSnapshot'>draw</a>(<a href='SkCanvas_Reference#SkCanvas'>SkCanvas</a>* <a href='SkCanvas_Reference#Canvas'>canvas</a>, <a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>x</a>, <a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>y</a>, <a href='undocumented#SkScalar'>const</a> <a href='SkPaint_Reference#SkPaint'>SkPaint</a>* <a href='SkPaint_Reference#Paint'>paint</a>);
- <a href='SkPaint_Reference#Paint'>bool</a> <a href='#SkSurface_peekPixels'>peekPixels</a>(<a href='SkPixmap_Reference#SkPixmap'>SkPixmap</a>* <a href='SkPixmap_Reference#Pixmap'>pixmap</a>);
- <a href='SkPixmap_Reference#Pixmap'>bool</a> <a href='#SkSurface_readPixels'>readPixels</a>(<a href='#SkSurface_readPixels'>const</a> <a href='SkPixmap_Reference#SkPixmap'>SkPixmap</a>& <a href='SkPixmap_Reference#SkPixmap'>dst</a>, <a href='SkPixmap_Reference#SkPixmap'>int</a> <a href='SkPixmap_Reference#SkPixmap'>srcX</a>, <a href='SkPixmap_Reference#SkPixmap'>int</a> <a href='SkPixmap_Reference#SkPixmap'>srcY</a>);
- <a href='SkPixmap_Reference#SkPixmap'>bool</a> <a href='#SkSurface_readPixels'>readPixels</a>(<a href='#SkSurface_readPixels'>const</a> <a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a>& <a href='SkImageInfo_Reference#SkImageInfo'>dstInfo</a>, <a href='SkImageInfo_Reference#SkImageInfo'>void</a>* <a href='SkImageInfo_Reference#SkImageInfo'>dstPixels</a>, <a href='SkImageInfo_Reference#SkImageInfo'>size_t</a> <a href='SkImageInfo_Reference#SkImageInfo'>dstRowBytes</a>,
- <a href='SkImageInfo_Reference#SkImageInfo'>int</a> <a href='SkImageInfo_Reference#SkImageInfo'>srcX</a>, <a href='SkImageInfo_Reference#SkImageInfo'>int</a> <a href='SkImageInfo_Reference#SkImageInfo'>srcY</a>);
- <a href='SkImageInfo_Reference#SkImageInfo'>bool</a> <a href='#SkSurface_readPixels'>readPixels</a>(<a href='#SkSurface_readPixels'>const</a> <a href='SkBitmap_Reference#SkBitmap'>SkBitmap</a>& <a href='SkBitmap_Reference#SkBitmap'>dst</a>, <a href='SkBitmap_Reference#SkBitmap'>int</a> <a href='SkBitmap_Reference#SkBitmap'>srcX</a>, <a href='SkBitmap_Reference#SkBitmap'>int</a> <a href='SkBitmap_Reference#SkBitmap'>srcY</a>);
- <a href='SkBitmap_Reference#SkBitmap'>void</a> <a href='#SkSurface_writePixels'>writePixels</a>(<a href='#SkSurface_writePixels'>const</a> <a href='SkPixmap_Reference#SkPixmap'>SkPixmap</a>& <a href='SkPixmap_Reference#SkPixmap'>src</a>, <a href='SkPixmap_Reference#SkPixmap'>int</a> <a href='SkPixmap_Reference#SkPixmap'>dstX</a>, <a href='SkPixmap_Reference#SkPixmap'>int</a> <a href='SkPixmap_Reference#SkPixmap'>dstY</a>);
- <a href='SkPixmap_Reference#SkPixmap'>void</a> <a href='#SkSurface_writePixels'>writePixels</a>(<a href='#SkSurface_writePixels'>const</a> <a href='SkBitmap_Reference#SkBitmap'>SkBitmap</a>& <a href='SkBitmap_Reference#SkBitmap'>src</a>, <a href='SkBitmap_Reference#SkBitmap'>int</a> <a href='SkBitmap_Reference#SkBitmap'>dstX</a>, <a href='SkBitmap_Reference#SkBitmap'>int</a> <a href='SkBitmap_Reference#SkBitmap'>dstY</a>);
- <a href='SkBitmap_Reference#SkBitmap'>const</a> <a href='undocumented#SkSurfaceProps'>SkSurfaceProps</a>& <a href='#SkSurface_props'>props()</a> <a href='#SkSurface_props'>const</a>;
- <a href='#SkSurface_props'>void</a> <a href='#SkSurface_prepareForExternalIO'>prepareForExternalIO</a>();
- <a href='#SkSurface_prepareForExternalIO'>void</a> <a href='#SkSurface_flush'>flush()</a>;
- <a href='undocumented#GrSemaphoresSubmitted'>GrSemaphoresSubmitted</a> <a href='#SkSurface_flushAndSignalSemaphores'>flushAndSignalSemaphores</a>(<a href='#SkSurface_flushAndSignalSemaphores'>int</a> <a href='#SkSurface_flushAndSignalSemaphores'>numSemaphores</a>,
- <a href='undocumented#GrBackendSemaphore'>GrBackendSemaphore</a> <a href='undocumented#GrBackendSemaphore'>signalSemaphores</a>[]);
- <a href='undocumented#GrBackendSemaphore'>bool</a> <a href='undocumented#GrBackendSemaphore'>wait</a>(<a href='undocumented#GrBackendSemaphore'>int</a> <a href='undocumented#GrBackendSemaphore'>numSemaphores</a>, <a href='undocumented#GrBackendSemaphore'>const</a> <a href='undocumented#GrBackendSemaphore'>GrBackendSemaphore</a>* <a href='undocumented#GrBackendSemaphore'>waitSemaphores</a>);
- <a href='undocumented#GrBackendSemaphore'>bool</a> <a href='#SkSurface_characterize'>characterize</a>(<a href='undocumented#SkSurfaceCharacterization'>SkSurfaceCharacterization</a>* <a href='undocumented#SkSurfaceCharacterization'>characterization</a>) <a href='undocumented#SkSurfaceCharacterization'>const</a>;
- <a href='undocumented#SkSurfaceCharacterization'>bool</a> <a href='undocumented#SkSurfaceCharacterization'>draw</a>(<a href='undocumented#SkDeferredDisplayList'>SkDeferredDisplayList</a>* <a href='undocumented#SkDeferredDisplayList'>deferredDisplayList</a>);
+ void draw(<a href='SkCanvas_Reference#SkCanvas'>SkCanvas</a>* <a href='SkCanvas_Reference#Canvas'>canvas</a>, <a href='undocumented#SkScalar'>SkScalar</a> x, <a href='undocumented#SkScalar'>SkScalar</a> y, const <a href='SkPaint_Reference#SkPaint'>SkPaint</a>* <a href='SkPaint_Reference#Paint'>paint</a>);
+ bool <a href='#SkSurface_peekPixels'>peekPixels</a>(<a href='SkPixmap_Reference#SkPixmap'>SkPixmap</a>* <a href='SkPixmap_Reference#Pixmap'>pixmap</a>);
+ bool <a href='#SkSurface_readPixels'>readPixels</a>(const <a href='SkPixmap_Reference#SkPixmap'>SkPixmap</a>& dst, int srcX, int srcY);
+ bool <a href='#SkSurface_readPixels'>readPixels</a>(const <a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a>& dstInfo, void* dstPixels, size_t dstRowBytes,
+ int srcX, int srcY);
+ bool <a href='#SkSurface_readPixels'>readPixels</a>(const <a href='SkBitmap_Reference#SkBitmap'>SkBitmap</a>& dst, int srcX, int srcY);
+ void <a href='#SkSurface_writePixels'>writePixels</a>(const <a href='SkPixmap_Reference#SkPixmap'>SkPixmap</a>& src, int dstX, int dstY);
+ void <a href='#SkSurface_writePixels'>writePixels</a>(const <a href='SkBitmap_Reference#SkBitmap'>SkBitmap</a>& src, int dstX, int dstY);
+ const <a href='undocumented#SkSurfaceProps'>SkSurfaceProps</a>& <a href='#SkSurface_props'>props()</a> const;
+ void <a href='#SkSurface_prepareForExternalIO'>prepareForExternalIO</a>();
+ void <a href='#SkSurface_flush'>flush()</a>;
+ <a href='undocumented#GrSemaphoresSubmitted'>GrSemaphoresSubmitted</a> <a href='#SkSurface_flushAndSignalSemaphores'>flushAndSignalSemaphores</a>(int numSemaphores,
+ <a href='undocumented#GrBackendSemaphore'>GrBackendSemaphore</a> signalSemaphores[]);
+ bool wait(int numSemaphores, const <a href='undocumented#GrBackendSemaphore'>GrBackendSemaphore</a>* waitSemaphores);
+ bool <a href='#SkSurface_characterize'>characterize</a>(<a href='undocumented#SkSurfaceCharacterization'>SkSurfaceCharacterization</a>* characterization) const;
+ bool draw(<a href='undocumented#SkDeferredDisplayList'>SkDeferredDisplayList</a>* deferredDisplayList);
};
</pre>
-<a href='SkSurface_Reference#SkSurface'>SkSurface</a> <a href='SkSurface_Reference#SkSurface'>is</a> <a href='SkSurface_Reference#SkSurface'>responsible</a> <a href='SkSurface_Reference#SkSurface'>for</a> <a href='SkSurface_Reference#SkSurface'>managing</a> <a href='SkSurface_Reference#SkSurface'>the</a> <a href='SkSurface_Reference#SkSurface'>pixels</a> <a href='SkSurface_Reference#SkSurface'>that</a> <a href='SkSurface_Reference#SkSurface'>a</a> <a href='SkCanvas_Reference#Canvas'>canvas</a> <a href='SkCanvas_Reference#Canvas'>draws</a> <a href='SkCanvas_Reference#Canvas'>into</a>. <a href='SkCanvas_Reference#Canvas'>The</a> <a href='SkCanvas_Reference#Canvas'>pixels</a> <a href='SkCanvas_Reference#Canvas'>can</a> <a href='SkCanvas_Reference#Canvas'>be</a>
-<a href='SkCanvas_Reference#Canvas'>allocated</a> <a href='SkCanvas_Reference#Canvas'>either</a> <a href='SkCanvas_Reference#Canvas'>in</a> <a href='SkCanvas_Reference#Canvas'>CPU</a> <a href='SkCanvas_Reference#Canvas'>memory</a>, <a href='SkCanvas_Reference#Canvas'>if</a> <a href='SkCanvas_Reference#Canvas'>a</a> <a href='undocumented#Raster_Surface'>raster surface</a>; <a href='SkCanvas_Reference#Canvas'>or</a> <a href='SkCanvas_Reference#Canvas'>on</a> <a href='SkCanvas_Reference#Canvas'>the</a> <a href='SkCanvas_Reference#Canvas'>GPU</a>, <a href='SkCanvas_Reference#Canvas'>for</a> <a href='SkCanvas_Reference#Canvas'>a</a> <a href='undocumented#GrRenderTarget'>GrRenderTarget</a> <a href='SkSurface_Reference#Surface'>surface</a>.
-<a href='SkSurface_Reference#SkSurface'>SkSurface</a> <a href='SkSurface_Reference#SkSurface'>takes</a> <a href='SkSurface_Reference#SkSurface'>care</a> <a href='SkSurface_Reference#SkSurface'>of</a> <a href='SkSurface_Reference#SkSurface'>allocating</a> <a href='SkSurface_Reference#SkSurface'>a</a> <a href='SkCanvas_Reference#SkCanvas'>SkCanvas</a> <a href='SkCanvas_Reference#SkCanvas'>that</a> <a href='SkCanvas_Reference#SkCanvas'>will</a> <a href='SkCanvas_Reference#SkCanvas'>draw</a> <a href='SkCanvas_Reference#SkCanvas'>into</a> <a href='SkCanvas_Reference#SkCanvas'>the</a> <a href='SkSurface_Reference#Surface'>surface</a>. <a href='SkSurface_Reference#Surface'>Call</a>
-<a href='SkSurface_Reference#Surface'>surface</a>-><a href='#SkSurface_getCanvas'>getCanvas</a>() <a href='#SkSurface_getCanvas'>to</a> <a href='#SkSurface_getCanvas'>use</a> <a href='#SkSurface_getCanvas'>that</a> <a href='SkCanvas_Reference#Canvas'>canvas</a>. <a href='SkCanvas_Reference#Canvas'>The</a> <a href='SkCanvas_Reference#Canvas'>caller</a> <a href='SkCanvas_Reference#Canvas'>should</a> <a href='SkCanvas_Reference#Canvas'>not</a> <a href='SkCanvas_Reference#Canvas'>delete</a> <a href='SkCanvas_Reference#Canvas'>the</a> <a href='SkCanvas_Reference#Canvas'>returned</a> <a href='SkCanvas_Reference#Canvas'>canvas</a>;
-<a href='SkCanvas_Reference#Canvas'>it</a> <a href='SkCanvas_Reference#Canvas'>is</a> <a href='SkCanvas_Reference#Canvas'>owned</a> <a href='SkCanvas_Reference#Canvas'>by</a> <a href='SkSurface_Reference#Surface'>surface</a>.
+<a href='SkSurface_Reference#SkSurface'>SkSurface</a> is responsible for managing the pixels that a <a href='SkCanvas_Reference#Canvas'>canvas</a> draws into. The pixels can be
+allocated either in CPU memory, if a <a href='undocumented#Raster_Surface'>raster surface</a>; or on the GPU, for a <a href='undocumented#GrRenderTarget'>GrRenderTarget</a> <a href='SkSurface_Reference#Surface'>surface</a>.
+<a href='SkSurface_Reference#SkSurface'>SkSurface</a> takes care of allocating a <a href='SkCanvas_Reference#SkCanvas'>SkCanvas</a> that will draw into the <a href='SkSurface_Reference#Surface'>surface</a>. Call
+<a href='SkSurface_Reference#Surface'>surface</a>-><a href='#SkSurface_getCanvas'>getCanvas</a>() to use that <a href='SkCanvas_Reference#Canvas'>canvas</a>. The caller should not delete the returned <a href='SkCanvas_Reference#Canvas'>canvas</a>;
+it is owned by <a href='SkSurface_Reference#Surface'>surface</a>.
-<a href='SkSurface_Reference#SkSurface'>SkSurface</a> <a href='SkSurface_Reference#SkSurface'>always</a> <a href='SkSurface_Reference#SkSurface'>has</a> <a href='SkSurface_Reference#SkSurface'>non-zero</a> <a href='SkSurface_Reference#SkSurface'>dimensions</a>. <a href='SkSurface_Reference#SkSurface'>If</a> <a href='SkSurface_Reference#SkSurface'>there</a> <a href='SkSurface_Reference#SkSurface'>is</a> <a href='SkSurface_Reference#SkSurface'>a</a> <a href='SkSurface_Reference#SkSurface'>request</a> <a href='SkSurface_Reference#SkSurface'>for</a> <a href='SkSurface_Reference#SkSurface'>a</a> <a href='SkSurface_Reference#SkSurface'>new</a> <a href='SkSurface_Reference#Surface'>surface</a>, <a href='SkSurface_Reference#Surface'>and</a> <a href='SkSurface_Reference#Surface'>either</a>
-<a href='SkSurface_Reference#Surface'>of</a> <a href='SkSurface_Reference#Surface'>the</a> <a href='SkSurface_Reference#Surface'>requested</a> <a href='SkSurface_Reference#Surface'>dimensions</a> <a href='SkSurface_Reference#Surface'>are</a> <a href='SkSurface_Reference#Surface'>zero</a>, <a href='SkSurface_Reference#Surface'>then</a> <a href='SkSurface_Reference#Surface'>nullptr</a> <a href='SkSurface_Reference#Surface'>will</a> <a href='SkSurface_Reference#Surface'>be</a> <a href='SkSurface_Reference#Surface'>returned</a>.
+<a href='SkSurface_Reference#SkSurface'>SkSurface</a> always has non-zero dimensions. If there is a request for a new <a href='SkSurface_Reference#Surface'>surface</a>, and either
+of the requested dimensions are zero, then nullptr will be returned.
<a name='SkSurface_MakeRasterDirect'></a>
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-static <a href='undocumented#sk_sp'>sk_sp</a>&<a href='undocumented#sk_sp'>lt</a>;<a href='SkSurface_Reference#SkSurface'>SkSurface</a>&<a href='SkSurface_Reference#SkSurface'>gt</a>; <a href='#SkSurface_MakeRasterDirect'>MakeRasterDirect</a>(<a href='#SkSurface_MakeRasterDirect'>const</a> <a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a>& <a href='SkImageInfo_Reference#SkImageInfo'>imageInfo</a>, <a href='SkImageInfo_Reference#SkImageInfo'>void</a>* <a href='SkImageInfo_Reference#SkImageInfo'>pixels</a>, <a href='SkImageInfo_Reference#SkImageInfo'>size_t</a> <a href='SkImageInfo_Reference#SkImageInfo'>rowBytes</a>,
- <a href='SkImageInfo_Reference#SkImageInfo'>const</a> <a href='undocumented#SkSurfaceProps'>SkSurfaceProps</a>* <a href='undocumented#SkSurfaceProps'>surfaceProps</a> = <a href='undocumented#SkSurfaceProps'>nullptr</a>)
+static <a href='undocumented#sk_sp'>sk_sp</a><<a href='SkSurface_Reference#SkSurface'>SkSurface</a>> <a href='#SkSurface_MakeRasterDirect'>MakeRasterDirect</a>(const <a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a>& imageInfo, void* pixels, size_t rowBytes,
+ const <a href='undocumented#SkSurfaceProps'>SkSurfaceProps</a>* surfaceProps = nullptr)
</pre>
-Allocates raster <a href='SkSurface_Reference#SkSurface'>SkSurface</a>. <a href='SkCanvas_Reference#SkCanvas'>SkCanvas</a> <a href='SkCanvas_Reference#SkCanvas'>returned</a> <a href='SkCanvas_Reference#SkCanvas'>by</a> <a href='SkSurface_Reference#SkSurface'>SkSurface</a> <a href='SkSurface_Reference#SkSurface'>draws</a> <a href='SkSurface_Reference#SkSurface'>directly</a> <a href='SkSurface_Reference#SkSurface'>into</a> <a href='#SkSurface_MakeRasterDirect_pixels'>pixels</a>.
+Allocates raster <a href='SkSurface_Reference#SkSurface'>SkSurface</a>. <a href='SkCanvas_Reference#SkCanvas'>SkCanvas</a> returned by <a href='SkSurface_Reference#SkSurface'>SkSurface</a> draws directly into <a href='#SkSurface_MakeRasterDirect_pixels'>pixels</a>.
-<a href='SkSurface_Reference#SkSurface'>SkSurface</a> <a href='SkSurface_Reference#SkSurface'>is</a> <a href='SkSurface_Reference#SkSurface'>returned</a> <a href='SkSurface_Reference#SkSurface'>if</a> <a href='SkSurface_Reference#SkSurface'>all</a> <a href='SkSurface_Reference#SkSurface'>parameters</a> <a href='SkSurface_Reference#SkSurface'>are</a> <a href='SkSurface_Reference#SkSurface'>valid</a>.
+<a href='SkSurface_Reference#SkSurface'>SkSurface</a> is returned if all parameters are valid.
Valid parameters include:
info dimensions are greater than zero;
-info contains <a href='SkImageInfo_Reference#SkColorType'>SkColorType</a> <a href='SkImageInfo_Reference#SkColorType'>and</a> <a href='SkImageInfo_Reference#SkAlphaType'>SkAlphaType</a> <a href='SkImageInfo_Reference#SkAlphaType'>supported</a> <a href='SkImageInfo_Reference#SkAlphaType'>by</a> <a href='undocumented#Raster_Surface'>raster surface</a>;
-<a href='#SkSurface_MakeRasterDirect_pixels'>pixels</a> <a href='#SkSurface_MakeRasterDirect_pixels'>is</a> <a href='#SkSurface_MakeRasterDirect_pixels'>not</a> <a href='#SkSurface_MakeRasterDirect_pixels'>nullptr</a>;
-<a href='#SkSurface_MakeRasterDirect_rowBytes'>rowBytes</a> <a href='#SkSurface_MakeRasterDirect_rowBytes'>is</a> <a href='#SkSurface_MakeRasterDirect_rowBytes'>large</a> <a href='#SkSurface_MakeRasterDirect_rowBytes'>enough</a> <a href='#SkSurface_MakeRasterDirect_rowBytes'>to</a> <a href='#SkSurface_MakeRasterDirect_rowBytes'>contain</a> <a href='#SkSurface_MakeRasterDirect_rowBytes'>info</a> <a href='#SkSurface_MakeRasterDirect_rowBytes'>width</a> <a href='#SkSurface_MakeRasterDirect_pixels'>pixels</a> <a href='#SkSurface_MakeRasterDirect_pixels'>of</a> <a href='SkImageInfo_Reference#SkColorType'>SkColorType</a>.
+info contains <a href='SkImageInfo_Reference#SkColorType'>SkColorType</a> and <a href='SkImageInfo_Reference#SkAlphaType'>SkAlphaType</a> supported by <a href='undocumented#Raster_Surface'>raster surface</a>;
+<a href='#SkSurface_MakeRasterDirect_pixels'>pixels</a> is not nullptr;
+<a href='#SkSurface_MakeRasterDirect_rowBytes'>rowBytes</a> is large enough to contain info width <a href='#SkSurface_MakeRasterDirect_pixels'>pixels</a> of <a href='SkImageInfo_Reference#SkColorType'>SkColorType</a>.
-<a href='undocumented#Pixel'>Pixel</a> <a href='undocumented#Pixel'>buffer</a> <a href='undocumented#Size'>size</a> <a href='undocumented#Size'>should</a> <a href='undocumented#Size'>be</a> <a href='undocumented#Size'>info</a> <a href='undocumented#Size'>height</a> <a href='undocumented#Size'>times</a> <a href='undocumented#Size'>computed</a> <a href='#SkSurface_MakeRasterDirect_rowBytes'>rowBytes</a>.
+<a href='undocumented#Pixel'>Pixel</a> buffer <a href='undocumented#Size'>size</a> should be info height times computed <a href='#SkSurface_MakeRasterDirect_rowBytes'>rowBytes</a>.
Pixels are not initialized.
-To access <a href='#SkSurface_MakeRasterDirect_pixels'>pixels</a> <a href='#SkSurface_MakeRasterDirect_pixels'>after</a> <a href='#SkSurface_MakeRasterDirect_pixels'>drawing</a>, <a href='#SkSurface_MakeRasterDirect_pixels'>call</a> <a href='#SkSurface_flush'>flush()</a> <a href='#SkSurface_flush'>or</a> <a href='#SkSurface_peekPixels'>peekPixels</a>().
+To access <a href='#SkSurface_MakeRasterDirect_pixels'>pixels</a> after drawing, call <a href='#SkSurface_flush'>flush()</a> or <a href='#SkSurface_peekPixels'>peekPixels</a>().
### Parameters
@@ -145,13 +145,13 @@
### Parameters
<table> <tr> <td><a name='SkSurface_MakeRasterDirect_pixels'><code><strong>pixels</strong></code></a></td>
- <td>pointer to destination <a href='#SkSurface_MakeRasterDirect_pixels'>pixels</a> <a href='#SkSurface_MakeRasterDirect_pixels'>buffer</a></td>
+ <td>pointer to destination <a href='#SkSurface_MakeRasterDirect_pixels'>pixels</a> buffer</td>
</tr>
<tr> <td><a name='SkSurface_MakeRasterDirect_rowBytes'><code><strong>rowBytes</strong></code></a></td>
- <td>interval from one <a href='SkSurface_Reference#SkSurface'>SkSurface</a> <a href='SkSurface_Reference#SkSurface'>row</a> <a href='SkSurface_Reference#SkSurface'>to</a> <a href='SkSurface_Reference#SkSurface'>the</a> <a href='SkSurface_Reference#SkSurface'>next</a></td>
+ <td>interval from one <a href='SkSurface_Reference#SkSurface'>SkSurface</a> row to the next</td>
</tr>
<tr> <td><a name='SkSurface_MakeRasterDirect_surfaceProps'><code><strong>surfaceProps</strong></code></a></td>
- <td>LCD striping orientation and setting for <a href='undocumented#Device'>device</a> <a href='undocumented#Device'>independent</a> <a href='undocumented#Device'>fonts</a>;</td>
+ <td>LCD striping orientation and setting for <a href='undocumented#Device'>device</a> independent fonts;</td>
</tr>
</table>
@@ -159,7 +159,7 @@
### Return Value
-<a href='SkSurface_Reference#SkSurface'>SkSurface</a> <a href='SkSurface_Reference#SkSurface'>if</a> <a href='SkSurface_Reference#SkSurface'>all</a> <a href='SkSurface_Reference#SkSurface'>parameters</a> <a href='SkSurface_Reference#SkSurface'>are</a> <a href='SkSurface_Reference#SkSurface'>valid</a>; <a href='SkSurface_Reference#SkSurface'>otherwise</a>, <a href='SkSurface_Reference#SkSurface'>nullptr</a>
+<a href='SkSurface_Reference#SkSurface'>SkSurface</a> if all parameters are valid; otherwise, nullptr
### Example
@@ -184,25 +184,25 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-static <a href='undocumented#sk_sp'>sk_sp</a>&<a href='undocumented#sk_sp'>lt</a>;<a href='SkSurface_Reference#SkSurface'>SkSurface</a>&<a href='SkSurface_Reference#SkSurface'>gt</a>; <a href='#SkSurface_MakeRasterDirectReleaseProc'>MakeRasterDirectReleaseProc</a>(<a href='#SkSurface_MakeRasterDirectReleaseProc'>const</a> <a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a>& <a href='SkImageInfo_Reference#SkImageInfo'>imageInfo</a>, <a href='SkImageInfo_Reference#SkImageInfo'>void</a>* <a href='SkImageInfo_Reference#SkImageInfo'>pixels</a>,
- <a href='SkImageInfo_Reference#SkImageInfo'>size_t</a> <a href='SkImageInfo_Reference#SkImageInfo'>rowBytes</a>, <a href='SkImageInfo_Reference#SkImageInfo'>void</a> (*<a href='SkImageInfo_Reference#SkImageInfo'>releaseProc</a>) (<a href='SkImageInfo_Reference#SkImageInfo'>void</a>* <a href='SkImageInfo_Reference#SkImageInfo'>pixels</a>,
- <a href='SkImageInfo_Reference#SkImageInfo'>void</a>* <a href='SkImageInfo_Reference#SkImageInfo'>context</a>) , <a href='SkImageInfo_Reference#SkImageInfo'>void</a>* <a href='SkImageInfo_Reference#SkImageInfo'>context</a>,
- <a href='SkImageInfo_Reference#SkImageInfo'>const</a> <a href='undocumented#SkSurfaceProps'>SkSurfaceProps</a>* <a href='undocumented#SkSurfaceProps'>surfaceProps</a> = <a href='undocumented#SkSurfaceProps'>nullptr</a>)
+static <a href='undocumented#sk_sp'>sk_sp</a><<a href='SkSurface_Reference#SkSurface'>SkSurface</a>> <a href='#SkSurface_MakeRasterDirectReleaseProc'>MakeRasterDirectReleaseProc</a>(const <a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a>& imageInfo, void* pixels,
+ size_t rowBytes, void (*releaseProc) (void* pixels,
+ void* context) , void* context,
+ const <a href='undocumented#SkSurfaceProps'>SkSurfaceProps</a>* surfaceProps = nullptr)
</pre>
-Allocates raster <a href='SkSurface_Reference#SkSurface'>SkSurface</a>. <a href='SkCanvas_Reference#SkCanvas'>SkCanvas</a> <a href='SkCanvas_Reference#SkCanvas'>returned</a> <a href='SkCanvas_Reference#SkCanvas'>by</a> <a href='SkSurface_Reference#SkSurface'>SkSurface</a> <a href='SkSurface_Reference#SkSurface'>draws</a> <a href='SkSurface_Reference#SkSurface'>directly</a> <a href='SkSurface_Reference#SkSurface'>into</a> <a href='#SkSurface_MakeRasterDirectReleaseProc_pixels'>pixels</a>.
-<a href='#SkSurface_MakeRasterDirectReleaseProc_releaseProc'>releaseProc</a> <a href='#SkSurface_MakeRasterDirectReleaseProc_releaseProc'>is</a> <a href='#SkSurface_MakeRasterDirectReleaseProc_releaseProc'>called</a> <a href='#SkSurface_MakeRasterDirectReleaseProc_releaseProc'>with</a> <a href='#SkSurface_MakeRasterDirectReleaseProc_pixels'>pixels</a> <a href='#SkSurface_MakeRasterDirectReleaseProc_pixels'>and</a> <a href='#SkSurface_MakeRasterDirectReleaseProc_context'>context</a> <a href='#SkSurface_MakeRasterDirectReleaseProc_context'>when</a> <a href='SkSurface_Reference#SkSurface'>SkSurface</a> <a href='SkSurface_Reference#SkSurface'>is</a> <a href='SkSurface_Reference#SkSurface'>deleted</a>.
+Allocates raster <a href='SkSurface_Reference#SkSurface'>SkSurface</a>. <a href='SkCanvas_Reference#SkCanvas'>SkCanvas</a> returned by <a href='SkSurface_Reference#SkSurface'>SkSurface</a> draws directly into <a href='#SkSurface_MakeRasterDirectReleaseProc_pixels'>pixels</a>.
+<a href='#SkSurface_MakeRasterDirectReleaseProc_releaseProc'>releaseProc</a> is called with <a href='#SkSurface_MakeRasterDirectReleaseProc_pixels'>pixels</a> and <a href='#SkSurface_MakeRasterDirectReleaseProc_context'>context</a> when <a href='SkSurface_Reference#SkSurface'>SkSurface</a> is deleted.
-<a href='SkSurface_Reference#SkSurface'>SkSurface</a> <a href='SkSurface_Reference#SkSurface'>is</a> <a href='SkSurface_Reference#SkSurface'>returned</a> <a href='SkSurface_Reference#SkSurface'>if</a> <a href='SkSurface_Reference#SkSurface'>all</a> <a href='SkSurface_Reference#SkSurface'>parameters</a> <a href='SkSurface_Reference#SkSurface'>are</a> <a href='SkSurface_Reference#SkSurface'>valid</a>.
+<a href='SkSurface_Reference#SkSurface'>SkSurface</a> is returned if all parameters are valid.
Valid parameters include:
info dimensions are greater than zero;
-info contains <a href='SkImageInfo_Reference#SkColorType'>SkColorType</a> <a href='SkImageInfo_Reference#SkColorType'>and</a> <a href='SkImageInfo_Reference#SkAlphaType'>SkAlphaType</a> <a href='SkImageInfo_Reference#SkAlphaType'>supported</a> <a href='SkImageInfo_Reference#SkAlphaType'>by</a> <a href='undocumented#Raster_Surface'>raster surface</a>;
-<a href='#SkSurface_MakeRasterDirectReleaseProc_pixels'>pixels</a> <a href='#SkSurface_MakeRasterDirectReleaseProc_pixels'>is</a> <a href='#SkSurface_MakeRasterDirectReleaseProc_pixels'>not</a> <a href='#SkSurface_MakeRasterDirectReleaseProc_pixels'>nullptr</a>;
-<a href='#SkSurface_MakeRasterDirectReleaseProc_rowBytes'>rowBytes</a> <a href='#SkSurface_MakeRasterDirectReleaseProc_rowBytes'>is</a> <a href='#SkSurface_MakeRasterDirectReleaseProc_rowBytes'>large</a> <a href='#SkSurface_MakeRasterDirectReleaseProc_rowBytes'>enough</a> <a href='#SkSurface_MakeRasterDirectReleaseProc_rowBytes'>to</a> <a href='#SkSurface_MakeRasterDirectReleaseProc_rowBytes'>contain</a> <a href='#SkSurface_MakeRasterDirectReleaseProc_rowBytes'>info</a> <a href='#SkSurface_MakeRasterDirectReleaseProc_rowBytes'>width</a> <a href='#SkSurface_MakeRasterDirectReleaseProc_pixels'>pixels</a> <a href='#SkSurface_MakeRasterDirectReleaseProc_pixels'>of</a> <a href='SkImageInfo_Reference#SkColorType'>SkColorType</a>.
+info contains <a href='SkImageInfo_Reference#SkColorType'>SkColorType</a> and <a href='SkImageInfo_Reference#SkAlphaType'>SkAlphaType</a> supported by <a href='undocumented#Raster_Surface'>raster surface</a>;
+<a href='#SkSurface_MakeRasterDirectReleaseProc_pixels'>pixels</a> is not nullptr;
+<a href='#SkSurface_MakeRasterDirectReleaseProc_rowBytes'>rowBytes</a> is large enough to contain info width <a href='#SkSurface_MakeRasterDirectReleaseProc_pixels'>pixels</a> of <a href='SkImageInfo_Reference#SkColorType'>SkColorType</a>.
-<a href='undocumented#Pixel'>Pixel</a> <a href='undocumented#Pixel'>buffer</a> <a href='undocumented#Size'>size</a> <a href='undocumented#Size'>should</a> <a href='undocumented#Size'>be</a> <a href='undocumented#Size'>info</a> <a href='undocumented#Size'>height</a> <a href='undocumented#Size'>times</a> <a href='undocumented#Size'>computed</a> <a href='#SkSurface_MakeRasterDirectReleaseProc_rowBytes'>rowBytes</a>.
+<a href='undocumented#Pixel'>Pixel</a> buffer <a href='undocumented#Size'>size</a> should be info height times computed <a href='#SkSurface_MakeRasterDirectReleaseProc_rowBytes'>rowBytes</a>.
Pixels are not initialized.
-To access <a href='#SkSurface_MakeRasterDirectReleaseProc_pixels'>pixels</a> <a href='#SkSurface_MakeRasterDirectReleaseProc_pixels'>after</a> <a href='#SkSurface_MakeRasterDirectReleaseProc_pixels'>drawing</a>, <a href='#SkSurface_MakeRasterDirectReleaseProc_pixels'>call</a> <a href='#SkSurface_flush'>flush()</a> <a href='#SkSurface_flush'>or</a> <a href='#SkSurface_peekPixels'>peekPixels</a>().
+To access <a href='#SkSurface_MakeRasterDirectReleaseProc_pixels'>pixels</a> after drawing, call <a href='#SkSurface_flush'>flush()</a> or <a href='#SkSurface_peekPixels'>peekPixels</a>().
### Parameters
@@ -216,19 +216,19 @@
### Parameters
<table> <tr> <td><a name='SkSurface_MakeRasterDirectReleaseProc_pixels'><code><strong>pixels</strong></code></a></td>
- <td>pointer to destination <a href='#SkSurface_MakeRasterDirectReleaseProc_pixels'>pixels</a> <a href='#SkSurface_MakeRasterDirectReleaseProc_pixels'>buffer</a></td>
+ <td>pointer to destination <a href='#SkSurface_MakeRasterDirectReleaseProc_pixels'>pixels</a> buffer</td>
</tr>
<tr> <td><a name='SkSurface_MakeRasterDirectReleaseProc_rowBytes'><code><strong>rowBytes</strong></code></a></td>
- <td>interval from one <a href='SkSurface_Reference#SkSurface'>SkSurface</a> <a href='SkSurface_Reference#SkSurface'>row</a> <a href='SkSurface_Reference#SkSurface'>to</a> <a href='SkSurface_Reference#SkSurface'>the</a> <a href='SkSurface_Reference#SkSurface'>next</a></td>
+ <td>interval from one <a href='SkSurface_Reference#SkSurface'>SkSurface</a> row to the next</td>
</tr>
<tr> <td><a name='SkSurface_MakeRasterDirectReleaseProc_releaseProc'><code><strong>releaseProc</strong></code></a></td>
- <td>called when <a href='SkSurface_Reference#SkSurface'>SkSurface</a> <a href='SkSurface_Reference#SkSurface'>is</a> <a href='SkSurface_Reference#SkSurface'>deleted</a>; <a href='SkSurface_Reference#SkSurface'>may</a> <a href='SkSurface_Reference#SkSurface'>be</a> <a href='SkSurface_Reference#SkSurface'>nullptr</a></td>
+ <td>called when <a href='SkSurface_Reference#SkSurface'>SkSurface</a> is deleted; may be nullptr</td>
</tr>
<tr> <td><a name='SkSurface_MakeRasterDirectReleaseProc_context'><code><strong>context</strong></code></a></td>
- <td>passed to <a href='#SkSurface_MakeRasterDirectReleaseProc_releaseProc'>releaseProc</a>; <a href='#SkSurface_MakeRasterDirectReleaseProc_releaseProc'>may</a> <a href='#SkSurface_MakeRasterDirectReleaseProc_releaseProc'>be</a> <a href='#SkSurface_MakeRasterDirectReleaseProc_releaseProc'>nullptr</a></td>
+ <td>passed to <a href='#SkSurface_MakeRasterDirectReleaseProc_releaseProc'>releaseProc</a>; may be nullptr</td>
</tr>
<tr> <td><a name='SkSurface_MakeRasterDirectReleaseProc_surfaceProps'><code><strong>surfaceProps</strong></code></a></td>
- <td>LCD striping orientation and setting for <a href='undocumented#Device'>device</a> <a href='undocumented#Device'>independent</a> <a href='undocumented#Device'>fonts</a>;</td>
+ <td>LCD striping orientation and setting for <a href='undocumented#Device'>device</a> independent fonts;</td>
</tr>
</table>
@@ -236,7 +236,7 @@
### Return Value
-<a href='SkSurface_Reference#SkSurface'>SkSurface</a> <a href='SkSurface_Reference#SkSurface'>if</a> <a href='SkSurface_Reference#SkSurface'>all</a> <a href='SkSurface_Reference#SkSurface'>parameters</a> <a href='SkSurface_Reference#SkSurface'>are</a> <a href='SkSurface_Reference#SkSurface'>valid</a>; <a href='SkSurface_Reference#SkSurface'>otherwise</a>, <a href='SkSurface_Reference#SkSurface'>nullptr</a>
+<a href='SkSurface_Reference#SkSurface'>SkSurface</a> if all parameters are valid; otherwise, nullptr
### Example
@@ -262,22 +262,22 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-static <a href='undocumented#sk_sp'>sk_sp</a>&<a href='undocumented#sk_sp'>lt</a>;<a href='SkSurface_Reference#SkSurface'>SkSurface</a>&<a href='SkSurface_Reference#SkSurface'>gt</a>; <a href='#SkSurface_MakeRaster'>MakeRaster</a>(<a href='#SkSurface_MakeRaster'>const</a> <a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a>& <a href='SkImageInfo_Reference#SkImageInfo'>imageInfo</a>, <a href='SkImageInfo_Reference#SkImageInfo'>size_t</a> <a href='SkImageInfo_Reference#SkImageInfo'>rowBytes</a>,
- <a href='SkImageInfo_Reference#SkImageInfo'>const</a> <a href='undocumented#SkSurfaceProps'>SkSurfaceProps</a>* <a href='undocumented#SkSurfaceProps'>surfaceProps</a>)
+static <a href='undocumented#sk_sp'>sk_sp</a><<a href='SkSurface_Reference#SkSurface'>SkSurface</a>> <a href='#SkSurface_MakeRaster'>MakeRaster</a>(const <a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a>& imageInfo, size_t rowBytes,
+ const <a href='undocumented#SkSurfaceProps'>SkSurfaceProps</a>* surfaceProps)
</pre>
-Allocates raster <a href='SkSurface_Reference#SkSurface'>SkSurface</a>. <a href='SkCanvas_Reference#SkCanvas'>SkCanvas</a> <a href='SkCanvas_Reference#SkCanvas'>returned</a> <a href='SkCanvas_Reference#SkCanvas'>by</a> <a href='SkSurface_Reference#SkSurface'>SkSurface</a> <a href='SkSurface_Reference#SkSurface'>draws</a> <a href='SkSurface_Reference#SkSurface'>directly</a> <a href='SkSurface_Reference#SkSurface'>into</a> <a href='SkSurface_Reference#SkSurface'>pixels</a>.
-Allocates and zeroes <a href='undocumented#Pixel'>pixel</a> <a href='undocumented#Pixel'>memory</a>. <a href='undocumented#Pixel'>Pixel</a> <a href='undocumented#Pixel'>memory</a> <a href='undocumented#Size'>size</a> <a href='undocumented#Size'>is</a> <a href='#SkSurface_MakeRaster_imageInfo'>imageInfo</a>.<a href='#SkImageInfo_height'>height()</a> <a href='#SkImageInfo_height'>times</a>
-<a href='#SkSurface_MakeRaster_rowBytes'>rowBytes</a>, <a href='#SkSurface_MakeRaster_rowBytes'>or</a> <a href='#SkSurface_MakeRaster_rowBytes'>times</a> <a href='#SkSurface_MakeRaster_imageInfo'>imageInfo</a>.<a href='#SkImageInfo_minRowBytes'>minRowBytes</a>() <a href='#SkImageInfo_minRowBytes'>if</a> <a href='#SkSurface_MakeRaster_rowBytes'>rowBytes</a> <a href='#SkSurface_MakeRaster_rowBytes'>is</a> <a href='#SkSurface_MakeRaster_rowBytes'>zero</a>.
-<a href='undocumented#Pixel'>Pixel</a> <a href='undocumented#Pixel'>memory</a> <a href='undocumented#Pixel'>is</a> <a href='undocumented#Pixel'>deleted</a> <a href='undocumented#Pixel'>when</a> <a href='SkSurface_Reference#SkSurface'>SkSurface</a> <a href='SkSurface_Reference#SkSurface'>is</a> <a href='SkSurface_Reference#SkSurface'>deleted</a>.
+Allocates raster <a href='SkSurface_Reference#SkSurface'>SkSurface</a>. <a href='SkCanvas_Reference#SkCanvas'>SkCanvas</a> returned by <a href='SkSurface_Reference#SkSurface'>SkSurface</a> draws directly into pixels.
+Allocates and zeroes <a href='undocumented#Pixel'>pixel</a> memory. <a href='undocumented#Pixel'>Pixel</a> memory <a href='undocumented#Size'>size</a> is <a href='#SkSurface_MakeRaster_imageInfo'>imageInfo</a>.<a href='#SkImageInfo_height'>height()</a> times
+<a href='#SkSurface_MakeRaster_rowBytes'>rowBytes</a>, or times <a href='#SkSurface_MakeRaster_imageInfo'>imageInfo</a>.<a href='#SkImageInfo_minRowBytes'>minRowBytes</a>() if <a href='#SkSurface_MakeRaster_rowBytes'>rowBytes</a> is zero.
+<a href='undocumented#Pixel'>Pixel</a> memory is deleted when <a href='SkSurface_Reference#SkSurface'>SkSurface</a> is deleted.
-<a href='SkSurface_Reference#SkSurface'>SkSurface</a> <a href='SkSurface_Reference#SkSurface'>is</a> <a href='SkSurface_Reference#SkSurface'>returned</a> <a href='SkSurface_Reference#SkSurface'>if</a> <a href='SkSurface_Reference#SkSurface'>all</a> <a href='SkSurface_Reference#SkSurface'>parameters</a> <a href='SkSurface_Reference#SkSurface'>are</a> <a href='SkSurface_Reference#SkSurface'>valid</a>.
+<a href='SkSurface_Reference#SkSurface'>SkSurface</a> is returned if all parameters are valid.
Valid parameters include:
info dimensions are greater than zero;
-info contains <a href='SkImageInfo_Reference#SkColorType'>SkColorType</a> <a href='SkImageInfo_Reference#SkColorType'>and</a> <a href='SkImageInfo_Reference#SkAlphaType'>SkAlphaType</a> <a href='SkImageInfo_Reference#SkAlphaType'>supported</a> <a href='SkImageInfo_Reference#SkAlphaType'>by</a> <a href='undocumented#Raster_Surface'>raster surface</a>;
-<a href='#SkSurface_MakeRaster_rowBytes'>rowBytes</a> <a href='#SkSurface_MakeRaster_rowBytes'>is</a> <a href='#SkSurface_MakeRaster_rowBytes'>large</a> <a href='#SkSurface_MakeRaster_rowBytes'>enough</a> <a href='#SkSurface_MakeRaster_rowBytes'>to</a> <a href='#SkSurface_MakeRaster_rowBytes'>contain</a> <a href='#SkSurface_MakeRaster_rowBytes'>info</a> <a href='#SkSurface_MakeRaster_rowBytes'>width</a> <a href='#SkSurface_MakeRaster_rowBytes'>pixels</a> <a href='#SkSurface_MakeRaster_rowBytes'>of</a> <a href='SkImageInfo_Reference#SkColorType'>SkColorType</a>, <a href='SkImageInfo_Reference#SkColorType'>or</a> <a href='SkImageInfo_Reference#SkColorType'>is</a> <a href='SkImageInfo_Reference#SkColorType'>zero</a>.
+info contains <a href='SkImageInfo_Reference#SkColorType'>SkColorType</a> and <a href='SkImageInfo_Reference#SkAlphaType'>SkAlphaType</a> supported by <a href='undocumented#Raster_Surface'>raster surface</a>;
+<a href='#SkSurface_MakeRaster_rowBytes'>rowBytes</a> is large enough to contain info width pixels of <a href='SkImageInfo_Reference#SkColorType'>SkColorType</a>, or is zero.
-If <a href='#SkSurface_MakeRaster_rowBytes'>rowBytes</a> <a href='#SkSurface_MakeRaster_rowBytes'>is</a> <a href='#SkSurface_MakeRaster_rowBytes'>not</a> <a href='#SkSurface_MakeRaster_rowBytes'>zero</a>, <a href='#SkSurface_MakeRaster_rowBytes'>subsequent</a> <a href='#SkSurface_MakeRaster_rowBytes'>images</a> <a href='#SkSurface_MakeRaster_rowBytes'>returned</a> <a href='#SkSurface_MakeRaster_rowBytes'>by</a> <a href='#SkSurface_makeImageSnapshot'>makeImageSnapshot</a>()
+If <a href='#SkSurface_MakeRaster_rowBytes'>rowBytes</a> is not zero, subsequent images returned by <a href='#SkSurface_makeImageSnapshot'>makeImageSnapshot</a>()
have the same <a href='#SkSurface_MakeRaster_rowBytes'>rowBytes</a>.
### Parameters
@@ -292,10 +292,10 @@
### Parameters
<table> <tr> <td><a name='SkSurface_MakeRaster_rowBytes'><code><strong>rowBytes</strong></code></a></td>
- <td>interval from one <a href='SkSurface_Reference#SkSurface'>SkSurface</a> <a href='SkSurface_Reference#SkSurface'>row</a> <a href='SkSurface_Reference#SkSurface'>to</a> <a href='SkSurface_Reference#SkSurface'>the</a> <a href='SkSurface_Reference#SkSurface'>next</a>; <a href='SkSurface_Reference#SkSurface'>may</a> <a href='SkSurface_Reference#SkSurface'>be</a> <a href='SkSurface_Reference#SkSurface'>zero</a></td>
+ <td>interval from one <a href='SkSurface_Reference#SkSurface'>SkSurface</a> row to the next; may be zero</td>
</tr>
<tr> <td><a name='SkSurface_MakeRaster_surfaceProps'><code><strong>surfaceProps</strong></code></a></td>
- <td>LCD striping orientation and setting for <a href='undocumented#Device'>device</a> <a href='undocumented#Device'>independent</a> <a href='undocumented#Device'>fonts</a>;</td>
+ <td>LCD striping orientation and setting for <a href='undocumented#Device'>device</a> independent fonts;</td>
</tr>
</table>
@@ -303,7 +303,7 @@
### Return Value
-<a href='SkSurface_Reference#SkSurface'>SkSurface</a> <a href='SkSurface_Reference#SkSurface'>if</a> <a href='SkSurface_Reference#SkSurface'>all</a> <a href='SkSurface_Reference#SkSurface'>parameters</a> <a href='SkSurface_Reference#SkSurface'>are</a> <a href='SkSurface_Reference#SkSurface'>valid</a>; <a href='SkSurface_Reference#SkSurface'>otherwise</a>, <a href='SkSurface_Reference#SkSurface'>nullptr</a>
+<a href='SkSurface_Reference#SkSurface'>SkSurface</a> if all parameters are valid; otherwise, nullptr
### Example
@@ -328,19 +328,19 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-static <a href='undocumented#sk_sp'>sk_sp</a>&<a href='undocumented#sk_sp'>lt</a>;<a href='SkSurface_Reference#SkSurface'>SkSurface</a>&<a href='SkSurface_Reference#SkSurface'>gt</a>; <a href='#SkSurface_MakeRaster'>MakeRaster</a>(<a href='#SkSurface_MakeRaster'>const</a> <a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a>& <a href='SkImageInfo_Reference#SkImageInfo'>imageInfo</a>,
- <a href='SkImageInfo_Reference#SkImageInfo'>const</a> <a href='undocumented#SkSurfaceProps'>SkSurfaceProps</a>* <a href='undocumented#SkSurfaceProps'>props</a> = <a href='undocumented#SkSurfaceProps'>nullptr</a>)
+static <a href='undocumented#sk_sp'>sk_sp</a><<a href='SkSurface_Reference#SkSurface'>SkSurface</a>> <a href='#SkSurface_MakeRaster'>MakeRaster</a>(const <a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a>& imageInfo,
+ const <a href='undocumented#SkSurfaceProps'>SkSurfaceProps</a>* props = nullptr)
</pre>
-Allocates raster <a href='SkSurface_Reference#SkSurface'>SkSurface</a>. <a href='SkCanvas_Reference#SkCanvas'>SkCanvas</a> <a href='SkCanvas_Reference#SkCanvas'>returned</a> <a href='SkCanvas_Reference#SkCanvas'>by</a> <a href='SkSurface_Reference#SkSurface'>SkSurface</a> <a href='SkSurface_Reference#SkSurface'>draws</a> <a href='SkSurface_Reference#SkSurface'>directly</a> <a href='SkSurface_Reference#SkSurface'>into</a> <a href='SkSurface_Reference#SkSurface'>pixels</a>.
-Allocates and zeroes <a href='undocumented#Pixel'>pixel</a> <a href='undocumented#Pixel'>memory</a>. <a href='undocumented#Pixel'>Pixel</a> <a href='undocumented#Pixel'>memory</a> <a href='undocumented#Size'>size</a> <a href='undocumented#Size'>is</a> <a href='#SkSurface_MakeRaster_2_imageInfo'>imageInfo</a>.<a href='#SkImageInfo_height'>height()</a> <a href='#SkImageInfo_height'>times</a>
+Allocates raster <a href='SkSurface_Reference#SkSurface'>SkSurface</a>. <a href='SkCanvas_Reference#SkCanvas'>SkCanvas</a> returned by <a href='SkSurface_Reference#SkSurface'>SkSurface</a> draws directly into pixels.
+Allocates and zeroes <a href='undocumented#Pixel'>pixel</a> memory. <a href='undocumented#Pixel'>Pixel</a> memory <a href='undocumented#Size'>size</a> is <a href='#SkSurface_MakeRaster_2_imageInfo'>imageInfo</a>.<a href='#SkImageInfo_height'>height()</a> times
<a href='#SkSurface_MakeRaster_2_imageInfo'>imageInfo</a>.<a href='#SkImageInfo_minRowBytes'>minRowBytes</a>().
-<a href='undocumented#Pixel'>Pixel</a> <a href='undocumented#Pixel'>memory</a> <a href='undocumented#Pixel'>is</a> <a href='undocumented#Pixel'>deleted</a> <a href='undocumented#Pixel'>when</a> <a href='SkSurface_Reference#SkSurface'>SkSurface</a> <a href='SkSurface_Reference#SkSurface'>is</a> <a href='SkSurface_Reference#SkSurface'>deleted</a>.
+<a href='undocumented#Pixel'>Pixel</a> memory is deleted when <a href='SkSurface_Reference#SkSurface'>SkSurface</a> is deleted.
-<a href='SkSurface_Reference#SkSurface'>SkSurface</a> <a href='SkSurface_Reference#SkSurface'>is</a> <a href='SkSurface_Reference#SkSurface'>returned</a> <a href='SkSurface_Reference#SkSurface'>if</a> <a href='SkSurface_Reference#SkSurface'>all</a> <a href='SkSurface_Reference#SkSurface'>parameters</a> <a href='SkSurface_Reference#SkSurface'>are</a> <a href='SkSurface_Reference#SkSurface'>valid</a>.
+<a href='SkSurface_Reference#SkSurface'>SkSurface</a> is returned if all parameters are valid.
Valid parameters include:
info dimensions are greater than zero;
-info contains <a href='SkImageInfo_Reference#SkColorType'>SkColorType</a> <a href='SkImageInfo_Reference#SkColorType'>and</a> <a href='SkImageInfo_Reference#SkAlphaType'>SkAlphaType</a> <a href='SkImageInfo_Reference#SkAlphaType'>supported</a> <a href='SkImageInfo_Reference#SkAlphaType'>by</a> <a href='undocumented#Raster_Surface'>raster surface</a>.
+info contains <a href='SkImageInfo_Reference#SkColorType'>SkColorType</a> and <a href='SkImageInfo_Reference#SkAlphaType'>SkAlphaType</a> supported by <a href='undocumented#Raster_Surface'>raster surface</a>.
### Parameters
@@ -354,7 +354,7 @@
### Parameters
<table> <tr> <td><a name='SkSurface_MakeRaster_2_props'><code><strong>props</strong></code></a></td>
- <td>LCD striping orientation and setting for <a href='undocumented#Device'>device</a> <a href='undocumented#Device'>independent</a> <a href='undocumented#Device'>fonts</a>;</td>
+ <td>LCD striping orientation and setting for <a href='undocumented#Device'>device</a> independent fonts;</td>
</tr>
</table>
@@ -362,7 +362,7 @@
### Return Value
-<a href='SkSurface_Reference#SkSurface'>SkSurface</a> <a href='SkSurface_Reference#SkSurface'>if</a> <a href='SkSurface_Reference#SkSurface'>all</a> <a href='SkSurface_Reference#SkSurface'>parameters</a> <a href='SkSurface_Reference#SkSurface'>are</a> <a href='SkSurface_Reference#SkSurface'>valid</a>; <a href='SkSurface_Reference#SkSurface'>otherwise</a>, <a href='SkSurface_Reference#SkSurface'>nullptr</a>
+<a href='SkSurface_Reference#SkSurface'>SkSurface</a> if all parameters are valid; otherwise, nullptr
### Example
@@ -377,32 +377,32 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-static <a href='undocumented#sk_sp'>sk_sp</a>&<a href='undocumented#sk_sp'>lt</a>;<a href='SkSurface_Reference#SkSurface'>SkSurface</a>&<a href='SkSurface_Reference#SkSurface'>gt</a>; <a href='#SkSurface_MakeRasterN32Premul'>MakeRasterN32Premul</a>(<a href='#SkSurface_MakeRasterN32Premul'>int</a> <a href='#SkSurface_MakeRasterN32Premul'>width</a>, <a href='#SkSurface_MakeRasterN32Premul'>int</a> <a href='#SkSurface_MakeRasterN32Premul'>height</a>,
- <a href='#SkSurface_MakeRasterN32Premul'>const</a> <a href='undocumented#SkSurfaceProps'>SkSurfaceProps</a>* <a href='undocumented#SkSurfaceProps'>surfaceProps</a> = <a href='undocumented#SkSurfaceProps'>nullptr</a>)
+static <a href='undocumented#sk_sp'>sk_sp</a><<a href='SkSurface_Reference#SkSurface'>SkSurface</a>> <a href='#SkSurface_MakeRasterN32Premul'>MakeRasterN32Premul</a>(int width, int height,
+ const <a href='undocumented#SkSurfaceProps'>SkSurfaceProps</a>* surfaceProps = nullptr)
</pre>
-Allocates raster <a href='SkSurface_Reference#SkSurface'>SkSurface</a>. <a href='SkCanvas_Reference#SkCanvas'>SkCanvas</a> <a href='SkCanvas_Reference#SkCanvas'>returned</a> <a href='SkCanvas_Reference#SkCanvas'>by</a> <a href='SkSurface_Reference#SkSurface'>SkSurface</a> <a href='SkSurface_Reference#SkSurface'>draws</a> <a href='SkSurface_Reference#SkSurface'>directly</a> <a href='SkSurface_Reference#SkSurface'>into</a> <a href='SkSurface_Reference#SkSurface'>pixels</a>.
-Allocates and zeroes <a href='undocumented#Pixel'>pixel</a> <a href='undocumented#Pixel'>memory</a>. <a href='undocumented#Pixel'>Pixel</a> <a href='undocumented#Pixel'>memory</a> <a href='undocumented#Size'>size</a> <a href='undocumented#Size'>is</a> <a href='#SkSurface_MakeRasterN32Premul_height'>height</a> <a href='#SkSurface_MakeRasterN32Premul_height'>times</a> <a href='#SkSurface_MakeRasterN32Premul_width'>width</a> <a href='#SkSurface_MakeRasterN32Premul_width'>times</a>
-four. <a href='undocumented#Pixel'>Pixel</a> <a href='undocumented#Pixel'>memory</a> <a href='undocumented#Pixel'>is</a> <a href='undocumented#Pixel'>deleted</a> <a href='undocumented#Pixel'>when</a> <a href='SkSurface_Reference#SkSurface'>SkSurface</a> <a href='SkSurface_Reference#SkSurface'>is</a> <a href='SkSurface_Reference#SkSurface'>deleted</a>.
+Allocates raster <a href='SkSurface_Reference#SkSurface'>SkSurface</a>. <a href='SkCanvas_Reference#SkCanvas'>SkCanvas</a> returned by <a href='SkSurface_Reference#SkSurface'>SkSurface</a> draws directly into pixels.
+Allocates and zeroes <a href='undocumented#Pixel'>pixel</a> memory. <a href='undocumented#Pixel'>Pixel</a> memory <a href='undocumented#Size'>size</a> is <a href='#SkSurface_MakeRasterN32Premul_height'>height</a> times <a href='#SkSurface_MakeRasterN32Premul_width'>width</a> times
+four. <a href='undocumented#Pixel'>Pixel</a> memory is deleted when <a href='SkSurface_Reference#SkSurface'>SkSurface</a> is deleted.
-Internally, sets <a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a> <a href='SkImageInfo_Reference#SkImageInfo'>to</a> <a href='#SkSurface_MakeRasterN32Premul_width'>width</a>, <a href='#SkSurface_MakeRasterN32Premul_height'>height</a>, <a href='#SkSurface_MakeRasterN32Premul_height'>native</a> <a href='SkImageInfo_Reference#Color_Type'>color type</a>, <a href='SkColor_Reference#Color'>and</a>
+Internally, sets <a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a> to <a href='#SkSurface_MakeRasterN32Premul_width'>width</a>, <a href='#SkSurface_MakeRasterN32Premul_height'>height</a>, native <a href='SkImageInfo_Reference#Color_Type'>color type</a>, and
<a href='SkImageInfo_Reference#kPremul_SkAlphaType'>kPremul_SkAlphaType</a>.
-<a href='SkSurface_Reference#SkSurface'>SkSurface</a> <a href='SkSurface_Reference#SkSurface'>is</a> <a href='SkSurface_Reference#SkSurface'>returned</a> <a href='SkSurface_Reference#SkSurface'>if</a> <a href='#SkSurface_MakeRasterN32Premul_width'>width</a> <a href='#SkSurface_MakeRasterN32Premul_width'>and</a> <a href='#SkSurface_MakeRasterN32Premul_height'>height</a> <a href='#SkSurface_MakeRasterN32Premul_height'>are</a> <a href='#SkSurface_MakeRasterN32Premul_height'>greater</a> <a href='#SkSurface_MakeRasterN32Premul_height'>than</a> <a href='#SkSurface_MakeRasterN32Premul_height'>zero</a>.
+<a href='SkSurface_Reference#SkSurface'>SkSurface</a> is returned if <a href='#SkSurface_MakeRasterN32Premul_width'>width</a> and <a href='#SkSurface_MakeRasterN32Premul_height'>height</a> are greater than zero.
-Use to create <a href='SkSurface_Reference#SkSurface'>SkSurface</a> <a href='SkSurface_Reference#SkSurface'>that</a> <a href='SkSurface_Reference#SkSurface'>matches</a> <a href='SkColor_Reference#SkPMColor'>SkPMColor</a>, <a href='SkColor_Reference#SkPMColor'>the</a> <a href='SkColor_Reference#SkPMColor'>native</a> <a href='undocumented#Pixel'>pixel</a> <a href='undocumented#Pixel'>arrangement</a> <a href='undocumented#Pixel'>on</a>
-the platform. <a href='SkSurface_Reference#SkSurface'>SkSurface</a> <a href='SkSurface_Reference#SkSurface'>drawn</a> <a href='SkSurface_Reference#SkSurface'>to</a> <a href='SkSurface_Reference#SkSurface'>output</a> <a href='undocumented#Device'>device</a> <a href='undocumented#Device'>skips</a> <a href='undocumented#Device'>converting</a> <a href='undocumented#Device'>its</a> <a href='undocumented#Pixel'>pixel</a> <a href='undocumented#Pixel'>format</a>.
+Use to create <a href='SkSurface_Reference#SkSurface'>SkSurface</a> that matches <a href='SkColor_Reference#SkPMColor'>SkPMColor</a>, the native <a href='undocumented#Pixel'>pixel</a> arrangement on
+the platform. <a href='SkSurface_Reference#SkSurface'>SkSurface</a> drawn to output <a href='undocumented#Device'>device</a> skips converting its <a href='undocumented#Pixel'>pixel</a> format.
### Parameters
<table> <tr> <td><a name='SkSurface_MakeRasterN32Premul_width'><code><strong>width</strong></code></a></td>
- <td><a href='undocumented#Pixel'>pixel</a> <a href='undocumented#Pixel'>column</a> <a href='undocumented#Pixel'>count</a>; <a href='undocumented#Pixel'>must</a> <a href='undocumented#Pixel'>be</a> <a href='undocumented#Pixel'>greater</a> <a href='undocumented#Pixel'>than</a> <a href='undocumented#Pixel'>zero</a></td>
+ <td><a href='undocumented#Pixel'>pixel</a> column count; must be greater than zero</td>
</tr>
<tr> <td><a name='SkSurface_MakeRasterN32Premul_height'><code><strong>height</strong></code></a></td>
- <td><a href='undocumented#Pixel'>pixel</a> <a href='undocumented#Pixel'>row</a> <a href='undocumented#Pixel'>count</a>; <a href='undocumented#Pixel'>must</a> <a href='undocumented#Pixel'>be</a> <a href='undocumented#Pixel'>greater</a> <a href='undocumented#Pixel'>than</a> <a href='undocumented#Pixel'>zero</a></td>
+ <td><a href='undocumented#Pixel'>pixel</a> row count; must be greater than zero</td>
</tr>
<tr> <td><a name='SkSurface_MakeRasterN32Premul_surfaceProps'><code><strong>surfaceProps</strong></code></a></td>
- <td>LCD striping orientation and setting for <a href='undocumented#Device'>device</a> <a href='undocumented#Device'>independent</a></td>
+ <td>LCD striping orientation and setting for <a href='undocumented#Device'>device</a> independent</td>
</tr>
</table>
@@ -410,7 +410,7 @@
### Return Value
-<a href='SkSurface_Reference#SkSurface'>SkSurface</a> <a href='SkSurface_Reference#SkSurface'>if</a> <a href='SkSurface_Reference#SkSurface'>all</a> <a href='SkSurface_Reference#SkSurface'>parameters</a> <a href='SkSurface_Reference#SkSurface'>are</a> <a href='SkSurface_Reference#SkSurface'>valid</a>; <a href='SkSurface_Reference#SkSurface'>otherwise</a>, <a href='SkSurface_Reference#SkSurface'>nullptr</a>
+<a href='SkSurface_Reference#SkSurface'>SkSurface</a> if all parameters are valid; otherwise, nullptr
### Example
@@ -435,23 +435,23 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-static <a href='undocumented#sk_sp'>sk_sp</a>&<a href='undocumented#sk_sp'>lt</a>;<a href='SkSurface_Reference#SkSurface'>SkSurface</a>&<a href='SkSurface_Reference#SkSurface'>gt</a>; <a href='#SkSurface_MakeFromBackendTexture'>MakeFromBackendTexture</a>(<a href='undocumented#GrContext'>GrContext</a>* <a href='undocumented#GrContext'>context</a>,
- <a href='undocumented#GrContext'>const</a> <a href='undocumented#GrBackendTexture'>GrBackendTexture</a>& <a href='undocumented#GrBackendTexture'>backendTexture</a>,
- <a href='undocumented#GrSurfaceOrigin'>GrSurfaceOrigin</a> <a href='undocumented#GrSurfaceOrigin'>origin</a>, <a href='undocumented#GrSurfaceOrigin'>int</a> <a href='undocumented#GrSurfaceOrigin'>sampleCnt</a>,
- <a href='SkImageInfo_Reference#SkColorType'>SkColorType</a> <a href='SkImageInfo_Reference#SkColorType'>colorType</a>,
- <a href='undocumented#sk_sp'>sk_sp</a>&<a href='undocumented#sk_sp'>lt</a>;<a href='undocumented#SkColorSpace'>SkColorSpace</a>&<a href='undocumented#SkColorSpace'>gt</a>; <a href='undocumented#SkColorSpace'>colorSpace</a>,
- <a href='undocumented#SkColorSpace'>const</a> <a href='undocumented#SkSurfaceProps'>SkSurfaceProps</a>* <a href='undocumented#SkSurfaceProps'>surfaceProps</a>)
+static <a href='undocumented#sk_sp'>sk_sp</a><<a href='SkSurface_Reference#SkSurface'>SkSurface</a>> <a href='#SkSurface_MakeFromBackendTexture'>MakeFromBackendTexture</a>(<a href='undocumented#GrContext'>GrContext</a>* context,
+ const <a href='undocumented#GrBackendTexture'>GrBackendTexture</a>& backendTexture,
+ <a href='undocumented#GrSurfaceOrigin'>GrSurfaceOrigin</a> origin, int sampleCnt,
+ <a href='SkImageInfo_Reference#SkColorType'>SkColorType</a> colorType,
+ <a href='undocumented#sk_sp'>sk_sp</a><<a href='undocumented#SkColorSpace'>SkColorSpace</a>> colorSpace,
+ const <a href='undocumented#SkSurfaceProps'>SkSurfaceProps</a>* surfaceProps)
</pre>
-Wraps a GPU-backed <a href='undocumented#Texture'>texture</a> <a href='undocumented#Texture'>into</a> <a href='SkSurface_Reference#SkSurface'>SkSurface</a>. <a href='SkSurface_Reference#SkSurface'>Caller</a> <a href='SkSurface_Reference#SkSurface'>must</a> <a href='SkSurface_Reference#SkSurface'>ensure</a> <a href='SkSurface_Reference#SkSurface'>the</a> <a href='undocumented#Texture'>texture</a> <a href='undocumented#Texture'>is</a>
-valid for the lifetime of returned <a href='SkSurface_Reference#SkSurface'>SkSurface</a>. <a href='SkSurface_Reference#SkSurface'>If</a> <a href='#SkSurface_MakeFromBackendTexture_sampleCnt'>sampleCnt</a> <a href='#SkSurface_MakeFromBackendTexture_sampleCnt'>greater</a> <a href='#SkSurface_MakeFromBackendTexture_sampleCnt'>than</a> <a href='#SkSurface_MakeFromBackendTexture_sampleCnt'>zero</a>,
-creates an intermediate MSAA <a href='SkSurface_Reference#SkSurface'>SkSurface</a> <a href='SkSurface_Reference#SkSurface'>which</a> <a href='SkSurface_Reference#SkSurface'>is</a> <a href='SkSurface_Reference#SkSurface'>used</a> <a href='SkSurface_Reference#SkSurface'>for</a> <a href='SkSurface_Reference#SkSurface'>drawing</a> <a href='#SkSurface_MakeFromBackendTexture_backendTexture'>backendTexture</a>.
+Wraps a GPU-backed <a href='undocumented#Texture'>texture</a> into <a href='SkSurface_Reference#SkSurface'>SkSurface</a>. Caller must ensure the <a href='undocumented#Texture'>texture</a> is
+valid for the lifetime of returned <a href='SkSurface_Reference#SkSurface'>SkSurface</a>. If <a href='#SkSurface_MakeFromBackendTexture_sampleCnt'>sampleCnt</a> greater than zero,
+creates an intermediate MSAA <a href='SkSurface_Reference#SkSurface'>SkSurface</a> which is used for drawing <a href='#SkSurface_MakeFromBackendTexture_backendTexture'>backendTexture</a>.
-<a href='SkSurface_Reference#SkSurface'>SkSurface</a> <a href='SkSurface_Reference#SkSurface'>is</a> <a href='SkSurface_Reference#SkSurface'>returned</a> <a href='SkSurface_Reference#SkSurface'>if</a> <a href='SkSurface_Reference#SkSurface'>all</a> <a href='SkSurface_Reference#SkSurface'>parameters</a> <a href='SkSurface_Reference#SkSurface'>are</a> <a href='SkSurface_Reference#SkSurface'>valid</a>. <a href='#SkSurface_MakeFromBackendTexture_backendTexture'>backendTexture</a> <a href='#SkSurface_MakeFromBackendTexture_backendTexture'>is</a> <a href='#SkSurface_MakeFromBackendTexture_backendTexture'>valid</a> <a href='#SkSurface_MakeFromBackendTexture_backendTexture'>if</a>
-its <a href='undocumented#Pixel'>pixel</a> <a href='undocumented#Pixel'>configuration</a> <a href='undocumented#Pixel'>agrees</a> <a href='undocumented#Pixel'>with</a> <a href='#SkSurface_MakeFromBackendTexture_colorSpace'>colorSpace</a> <a href='#SkSurface_MakeFromBackendTexture_colorSpace'>and</a> <a href='#SkSurface_MakeFromBackendTexture_context'>context</a>; <a href='#SkSurface_MakeFromBackendTexture_context'>for</a> <a href='#SkSurface_MakeFromBackendTexture_context'>instance</a>, <a href='#SkSurface_MakeFromBackendTexture_context'>if</a>
-<a href='#SkSurface_MakeFromBackendTexture_backendTexture'>backendTexture</a> <a href='#SkSurface_MakeFromBackendTexture_backendTexture'>has</a> <a href='#SkSurface_MakeFromBackendTexture_backendTexture'>an</a> <a href='#SkSurface_MakeFromBackendTexture_backendTexture'>sRGB</a> <a href='#SkSurface_MakeFromBackendTexture_backendTexture'>configuration</a>, <a href='#SkSurface_MakeFromBackendTexture_backendTexture'>then</a> <a href='#SkSurface_MakeFromBackendTexture_context'>context</a> <a href='#SkSurface_MakeFromBackendTexture_context'>must</a> <a href='#SkSurface_MakeFromBackendTexture_context'>support</a> <a href='#SkSurface_MakeFromBackendTexture_context'>sRGB</a>,
-and <a href='#SkSurface_MakeFromBackendTexture_colorSpace'>colorSpace</a> <a href='#SkSurface_MakeFromBackendTexture_colorSpace'>must</a> <a href='#SkSurface_MakeFromBackendTexture_colorSpace'>be</a> <a href='#SkSurface_MakeFromBackendTexture_colorSpace'>present</a>. <a href='#SkSurface_MakeFromBackendTexture_colorSpace'>Further</a>, <a href='#SkSurface_MakeFromBackendTexture_backendTexture'>backendTexture</a> <a href='#SkSurface_MakeFromBackendTexture_backendTexture'>width</a> <a href='#SkSurface_MakeFromBackendTexture_backendTexture'>and</a> <a href='#SkSurface_MakeFromBackendTexture_backendTexture'>height</a> <a href='#SkSurface_MakeFromBackendTexture_backendTexture'>must</a>
-not exceed <a href='#SkSurface_MakeFromBackendTexture_context'>context</a> <a href='#SkSurface_MakeFromBackendTexture_context'>capabilities</a>, <a href='#SkSurface_MakeFromBackendTexture_context'>and</a> <a href='#SkSurface_MakeFromBackendTexture_context'>the</a> <a href='#SkSurface_MakeFromBackendTexture_context'>context</a> <a href='#SkSurface_MakeFromBackendTexture_context'>must</a> <a href='#SkSurface_MakeFromBackendTexture_context'>be</a> <a href='#SkSurface_MakeFromBackendTexture_context'>able</a> <a href='#SkSurface_MakeFromBackendTexture_context'>to</a> <a href='#SkSurface_MakeFromBackendTexture_context'>support</a>
+<a href='SkSurface_Reference#SkSurface'>SkSurface</a> is returned if all parameters are valid. <a href='#SkSurface_MakeFromBackendTexture_backendTexture'>backendTexture</a> is valid if
+its <a href='undocumented#Pixel'>pixel</a> configuration agrees with <a href='#SkSurface_MakeFromBackendTexture_colorSpace'>colorSpace</a> and <a href='#SkSurface_MakeFromBackendTexture_context'>context</a>; for instance, if
+<a href='#SkSurface_MakeFromBackendTexture_backendTexture'>backendTexture</a> has an sRGB configuration, then <a href='#SkSurface_MakeFromBackendTexture_context'>context</a> must support sRGB,
+and <a href='#SkSurface_MakeFromBackendTexture_colorSpace'>colorSpace</a> must be present. Further, <a href='#SkSurface_MakeFromBackendTexture_backendTexture'>backendTexture</a> width and height must
+not exceed <a href='#SkSurface_MakeFromBackendTexture_context'>context</a> capabilities, and the <a href='#SkSurface_MakeFromBackendTexture_context'>context</a> must be able to support
back-end textures.
If SK_SUPPORT_GPU is defined as zero, has no effect and returns nullptr.
@@ -462,13 +462,13 @@
<td><a href='undocumented#GPU_Context'>GPU context</a></td>
</tr>
<tr> <td><a name='SkSurface_MakeFromBackendTexture_backendTexture'><code><strong>backendTexture</strong></code></a></td>
- <td><a href='undocumented#Texture'>texture</a> <a href='undocumented#Texture'>residing</a> <a href='undocumented#Texture'>on</a> <a href='undocumented#Texture'>GPU</a></td>
+ <td><a href='undocumented#Texture'>texture</a> residing on GPU</td>
</tr>
<tr> <td><a name='SkSurface_MakeFromBackendTexture_origin'><code><strong>origin</strong></code></a></td>
<td>one of: <a href='undocumented#kBottomLeft_GrSurfaceOrigin'>kBottomLeft_GrSurfaceOrigin</a>, <a href='undocumented#kTopLeft_GrSurfaceOrigin'>kTopLeft_GrSurfaceOrigin</a></td>
</tr>
<tr> <td><a name='SkSurface_MakeFromBackendTexture_sampleCnt'><code><strong>sampleCnt</strong></code></a></td>
- <td>samples per <a href='undocumented#Pixel'>pixel</a>, <a href='undocumented#Pixel'>or</a> 0 <a href='undocumented#Pixel'>to</a> <a href='undocumented#Pixel'>disable</a> <a href='undocumented#Pixel'>full</a> <a href='undocumented#Pixel'>scene</a> <a href='SkPaint_Reference#Anti_Alias'>anti-aliasing</a></td>
+ <td>samples per <a href='undocumented#Pixel'>pixel</a>, or 0 to disable full scene <a href='SkPaint_Reference#Anti_Alias'>anti-aliasing</a></td>
</tr>
<tr> <td><a name='SkSurface_MakeFromBackendTexture_colorType'><code><strong>colorType</strong></code></a></td>
<td>one of:</td>
@@ -487,7 +487,7 @@
<td>range of colors; may be nullptr</td>
</tr>
<tr> <td><a name='SkSurface_MakeFromBackendTexture_surfaceProps'><code><strong>surfaceProps</strong></code></a></td>
- <td>LCD striping orientation and setting for <a href='undocumented#Device'>device</a> <a href='undocumented#Device'>independent</a></td>
+ <td>LCD striping orientation and setting for <a href='undocumented#Device'>device</a> independent</td>
</tr>
</table>
@@ -495,7 +495,7 @@
### Return Value
-<a href='SkSurface_Reference#SkSurface'>SkSurface</a> <a href='SkSurface_Reference#SkSurface'>if</a> <a href='SkSurface_Reference#SkSurface'>all</a> <a href='SkSurface_Reference#SkSurface'>parameters</a> <a href='SkSurface_Reference#SkSurface'>are</a> <a href='SkSurface_Reference#SkSurface'>valid</a>; <a href='SkSurface_Reference#SkSurface'>otherwise</a>, <a href='SkSurface_Reference#SkSurface'>nullptr</a>
+<a href='SkSurface_Reference#SkSurface'>SkSurface</a> if all parameters are valid; otherwise, nullptr
### Example
@@ -510,21 +510,21 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-static <a href='undocumented#sk_sp'>sk_sp</a>&<a href='undocumented#sk_sp'>lt</a>;<a href='SkSurface_Reference#SkSurface'>SkSurface</a>&<a href='SkSurface_Reference#SkSurface'>gt</a>; <a href='#SkSurface_MakeFromBackendRenderTarget'>MakeFromBackendRenderTarget</a>(<a href='undocumented#GrContext'>GrContext</a>* <a href='undocumented#GrContext'>context</a>,
- <a href='undocumented#GrContext'>const</a> <a href='undocumented#GrBackendRenderTarget'>GrBackendRenderTarget</a>& <a href='undocumented#GrBackendRenderTarget'>backendRenderTarget</a>,
- <a href='undocumented#GrSurfaceOrigin'>GrSurfaceOrigin</a> <a href='undocumented#GrSurfaceOrigin'>origin</a>, <a href='SkImageInfo_Reference#SkColorType'>SkColorType</a> <a href='SkImageInfo_Reference#SkColorType'>colorType</a>,
- <a href='undocumented#sk_sp'>sk_sp</a>&<a href='undocumented#sk_sp'>lt</a>;<a href='undocumented#SkColorSpace'>SkColorSpace</a>&<a href='undocumented#SkColorSpace'>gt</a>; <a href='undocumented#SkColorSpace'>colorSpace</a>,
- <a href='undocumented#SkColorSpace'>const</a> <a href='undocumented#SkSurfaceProps'>SkSurfaceProps</a>* <a href='undocumented#SkSurfaceProps'>surfaceProps</a>)
+static <a href='undocumented#sk_sp'>sk_sp</a><<a href='SkSurface_Reference#SkSurface'>SkSurface</a>> <a href='#SkSurface_MakeFromBackendRenderTarget'>MakeFromBackendRenderTarget</a>(<a href='undocumented#GrContext'>GrContext</a>* context,
+ const <a href='undocumented#GrBackendRenderTarget'>GrBackendRenderTarget</a>& backendRenderTarget,
+ <a href='undocumented#GrSurfaceOrigin'>GrSurfaceOrigin</a> origin, <a href='SkImageInfo_Reference#SkColorType'>SkColorType</a> colorType,
+ <a href='undocumented#sk_sp'>sk_sp</a><<a href='undocumented#SkColorSpace'>SkColorSpace</a>> colorSpace,
+ const <a href='undocumented#SkSurfaceProps'>SkSurfaceProps</a>* surfaceProps)
</pre>
-Wraps a GPU-backed buffer into <a href='SkSurface_Reference#SkSurface'>SkSurface</a>. <a href='SkSurface_Reference#SkSurface'>Caller</a> <a href='SkSurface_Reference#SkSurface'>must</a> <a href='SkSurface_Reference#SkSurface'>ensure</a> <a href='#SkSurface_MakeFromBackendRenderTarget_backendRenderTarget'>backendRenderTarget</a>
+Wraps a GPU-backed buffer into <a href='SkSurface_Reference#SkSurface'>SkSurface</a>. Caller must ensure <a href='#SkSurface_MakeFromBackendRenderTarget_backendRenderTarget'>backendRenderTarget</a>
is valid for the lifetime of returned <a href='SkSurface_Reference#SkSurface'>SkSurface</a>.
-<a href='SkSurface_Reference#SkSurface'>SkSurface</a> <a href='SkSurface_Reference#SkSurface'>is</a> <a href='SkSurface_Reference#SkSurface'>returned</a> <a href='SkSurface_Reference#SkSurface'>if</a> <a href='SkSurface_Reference#SkSurface'>all</a> <a href='SkSurface_Reference#SkSurface'>parameters</a> <a href='SkSurface_Reference#SkSurface'>are</a> <a href='SkSurface_Reference#SkSurface'>valid</a>. <a href='#SkSurface_MakeFromBackendRenderTarget_backendRenderTarget'>backendRenderTarget</a> <a href='#SkSurface_MakeFromBackendRenderTarget_backendRenderTarget'>is</a> <a href='#SkSurface_MakeFromBackendRenderTarget_backendRenderTarget'>valid</a> <a href='#SkSurface_MakeFromBackendRenderTarget_backendRenderTarget'>if</a>
-its <a href='undocumented#Pixel'>pixel</a> <a href='undocumented#Pixel'>configuration</a> <a href='undocumented#Pixel'>agrees</a> <a href='undocumented#Pixel'>with</a> <a href='#SkSurface_MakeFromBackendRenderTarget_colorSpace'>colorSpace</a> <a href='#SkSurface_MakeFromBackendRenderTarget_colorSpace'>and</a> <a href='#SkSurface_MakeFromBackendRenderTarget_context'>context</a>; <a href='#SkSurface_MakeFromBackendRenderTarget_context'>for</a> <a href='#SkSurface_MakeFromBackendRenderTarget_context'>instance</a>, <a href='#SkSurface_MakeFromBackendRenderTarget_context'>if</a>
-<a href='#SkSurface_MakeFromBackendRenderTarget_backendRenderTarget'>backendRenderTarget</a> <a href='#SkSurface_MakeFromBackendRenderTarget_backendRenderTarget'>has</a> <a href='#SkSurface_MakeFromBackendRenderTarget_backendRenderTarget'>an</a> <a href='#SkSurface_MakeFromBackendRenderTarget_backendRenderTarget'>sRGB</a> <a href='#SkSurface_MakeFromBackendRenderTarget_backendRenderTarget'>configuration</a>, <a href='#SkSurface_MakeFromBackendRenderTarget_backendRenderTarget'>then</a> <a href='#SkSurface_MakeFromBackendRenderTarget_context'>context</a> <a href='#SkSurface_MakeFromBackendRenderTarget_context'>must</a> <a href='#SkSurface_MakeFromBackendRenderTarget_context'>support</a> <a href='#SkSurface_MakeFromBackendRenderTarget_context'>sRGB</a>,
-and <a href='#SkSurface_MakeFromBackendRenderTarget_colorSpace'>colorSpace</a> <a href='#SkSurface_MakeFromBackendRenderTarget_colorSpace'>must</a> <a href='#SkSurface_MakeFromBackendRenderTarget_colorSpace'>be</a> <a href='#SkSurface_MakeFromBackendRenderTarget_colorSpace'>present</a>. <a href='#SkSurface_MakeFromBackendRenderTarget_colorSpace'>Further</a>, <a href='#SkSurface_MakeFromBackendRenderTarget_backendRenderTarget'>backendRenderTarget</a> <a href='#SkSurface_MakeFromBackendRenderTarget_backendRenderTarget'>width</a> <a href='#SkSurface_MakeFromBackendRenderTarget_backendRenderTarget'>and</a> <a href='#SkSurface_MakeFromBackendRenderTarget_backendRenderTarget'>height</a> <a href='#SkSurface_MakeFromBackendRenderTarget_backendRenderTarget'>must</a>
-not exceed <a href='#SkSurface_MakeFromBackendRenderTarget_context'>context</a> <a href='#SkSurface_MakeFromBackendRenderTarget_context'>capabilities</a>, <a href='#SkSurface_MakeFromBackendRenderTarget_context'>and</a> <a href='#SkSurface_MakeFromBackendRenderTarget_context'>the</a> <a href='#SkSurface_MakeFromBackendRenderTarget_context'>context</a> <a href='#SkSurface_MakeFromBackendRenderTarget_context'>must</a> <a href='#SkSurface_MakeFromBackendRenderTarget_context'>be</a> <a href='#SkSurface_MakeFromBackendRenderTarget_context'>able</a> <a href='#SkSurface_MakeFromBackendRenderTarget_context'>to</a> <a href='#SkSurface_MakeFromBackendRenderTarget_context'>support</a>
+<a href='SkSurface_Reference#SkSurface'>SkSurface</a> is returned if all parameters are valid. <a href='#SkSurface_MakeFromBackendRenderTarget_backendRenderTarget'>backendRenderTarget</a> is valid if
+its <a href='undocumented#Pixel'>pixel</a> configuration agrees with <a href='#SkSurface_MakeFromBackendRenderTarget_colorSpace'>colorSpace</a> and <a href='#SkSurface_MakeFromBackendRenderTarget_context'>context</a>; for instance, if
+<a href='#SkSurface_MakeFromBackendRenderTarget_backendRenderTarget'>backendRenderTarget</a> has an sRGB configuration, then <a href='#SkSurface_MakeFromBackendRenderTarget_context'>context</a> must support sRGB,
+and <a href='#SkSurface_MakeFromBackendRenderTarget_colorSpace'>colorSpace</a> must be present. Further, <a href='#SkSurface_MakeFromBackendRenderTarget_backendRenderTarget'>backendRenderTarget</a> width and height must
+not exceed <a href='#SkSurface_MakeFromBackendRenderTarget_context'>context</a> capabilities, and the <a href='#SkSurface_MakeFromBackendRenderTarget_context'>context</a> must be able to support
back-end render targets.
If SK_SUPPORT_GPU is defined as zero, has no effect and returns nullptr.
@@ -558,7 +558,7 @@
<td>range of colors</td>
</tr>
<tr> <td><a name='SkSurface_MakeFromBackendRenderTarget_surfaceProps'><code><strong>surfaceProps</strong></code></a></td>
- <td>LCD striping orientation and setting for <a href='undocumented#Device'>device</a> <a href='undocumented#Device'>independent</a></td>
+ <td>LCD striping orientation and setting for <a href='undocumented#Device'>device</a> independent</td>
</tr>
</table>
@@ -566,7 +566,7 @@
### Return Value
-<a href='SkSurface_Reference#SkSurface'>SkSurface</a> <a href='SkSurface_Reference#SkSurface'>if</a> <a href='SkSurface_Reference#SkSurface'>all</a> <a href='SkSurface_Reference#SkSurface'>parameters</a> <a href='SkSurface_Reference#SkSurface'>are</a> <a href='SkSurface_Reference#SkSurface'>valid</a>; <a href='SkSurface_Reference#SkSurface'>otherwise</a>, <a href='SkSurface_Reference#SkSurface'>nullptr</a>
+<a href='SkSurface_Reference#SkSurface'>SkSurface</a> if all parameters are valid; otherwise, nullptr
### Example
@@ -598,24 +598,24 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-static <a href='undocumented#sk_sp'>sk_sp</a>&<a href='undocumented#sk_sp'>lt</a>;<a href='SkSurface_Reference#SkSurface'>SkSurface</a>&<a href='SkSurface_Reference#SkSurface'>gt</a>; <a href='#SkSurface_MakeFromBackendTextureAsRenderTarget'>MakeFromBackendTextureAsRenderTarget</a>(<a href='undocumented#GrContext'>GrContext</a>* <a href='undocumented#GrContext'>context</a>,
- <a href='undocumented#GrContext'>const</a> <a href='undocumented#GrBackendTexture'>GrBackendTexture</a>& <a href='undocumented#GrBackendTexture'>backendTexture</a>,
- <a href='undocumented#GrSurfaceOrigin'>GrSurfaceOrigin</a> <a href='undocumented#GrSurfaceOrigin'>origin</a>, <a href='undocumented#GrSurfaceOrigin'>int</a> <a href='undocumented#GrSurfaceOrigin'>sampleCnt</a>,
- <a href='SkImageInfo_Reference#SkColorType'>SkColorType</a> <a href='SkImageInfo_Reference#SkColorType'>colorType</a>, <a href='undocumented#sk_sp'>sk_sp</a>&<a href='undocumented#sk_sp'>lt</a>;<a href='undocumented#SkColorSpace'>SkColorSpace</a>&<a href='undocumented#SkColorSpace'>gt</a>; <a href='undocumented#SkColorSpace'>colorSpace</a>,
- <a href='undocumented#SkColorSpace'>const</a> <a href='undocumented#SkSurfaceProps'>SkSurfaceProps</a>* <a href='undocumented#SkSurfaceProps'>surfaceProps</a>)
+static <a href='undocumented#sk_sp'>sk_sp</a><<a href='SkSurface_Reference#SkSurface'>SkSurface</a>> <a href='#SkSurface_MakeFromBackendTextureAsRenderTarget'>MakeFromBackendTextureAsRenderTarget</a>(<a href='undocumented#GrContext'>GrContext</a>* context,
+ const <a href='undocumented#GrBackendTexture'>GrBackendTexture</a>& backendTexture,
+ <a href='undocumented#GrSurfaceOrigin'>GrSurfaceOrigin</a> origin, int sampleCnt,
+ <a href='SkImageInfo_Reference#SkColorType'>SkColorType</a> colorType, <a href='undocumented#sk_sp'>sk_sp</a><<a href='undocumented#SkColorSpace'>SkColorSpace</a>> colorSpace,
+ const <a href='undocumented#SkSurfaceProps'>SkSurfaceProps</a>* surfaceProps)
</pre>
-Wraps a GPU-backed <a href='undocumented#Texture'>texture</a> <a href='undocumented#Texture'>into</a> <a href='SkSurface_Reference#SkSurface'>SkSurface</a>. <a href='SkSurface_Reference#SkSurface'>Caller</a> <a href='SkSurface_Reference#SkSurface'>must</a> <a href='SkSurface_Reference#SkSurface'>ensure</a> <a href='#SkSurface_MakeFromBackendTextureAsRenderTarget_backendTexture'>backendTexture</a> <a href='#SkSurface_MakeFromBackendTextureAsRenderTarget_backendTexture'>is</a>
-valid for the lifetime of returned <a href='SkSurface_Reference#SkSurface'>SkSurface</a>. <a href='SkSurface_Reference#SkSurface'>If</a> <a href='#SkSurface_MakeFromBackendTextureAsRenderTarget_sampleCnt'>sampleCnt</a> <a href='#SkSurface_MakeFromBackendTextureAsRenderTarget_sampleCnt'>greater</a> <a href='#SkSurface_MakeFromBackendTextureAsRenderTarget_sampleCnt'>than</a> <a href='#SkSurface_MakeFromBackendTextureAsRenderTarget_sampleCnt'>zero</a>,
-creates an intermediate MSAA <a href='SkSurface_Reference#SkSurface'>SkSurface</a> <a href='SkSurface_Reference#SkSurface'>which</a> <a href='SkSurface_Reference#SkSurface'>is</a> <a href='SkSurface_Reference#SkSurface'>used</a> <a href='SkSurface_Reference#SkSurface'>for</a> <a href='SkSurface_Reference#SkSurface'>drawing</a> <a href='#SkSurface_MakeFromBackendTextureAsRenderTarget_backendTexture'>backendTexture</a>.
+Wraps a GPU-backed <a href='undocumented#Texture'>texture</a> into <a href='SkSurface_Reference#SkSurface'>SkSurface</a>. Caller must ensure <a href='#SkSurface_MakeFromBackendTextureAsRenderTarget_backendTexture'>backendTexture</a> is
+valid for the lifetime of returned <a href='SkSurface_Reference#SkSurface'>SkSurface</a>. If <a href='#SkSurface_MakeFromBackendTextureAsRenderTarget_sampleCnt'>sampleCnt</a> greater than zero,
+creates an intermediate MSAA <a href='SkSurface_Reference#SkSurface'>SkSurface</a> which is used for drawing <a href='#SkSurface_MakeFromBackendTextureAsRenderTarget_backendTexture'>backendTexture</a>.
-<a href='SkSurface_Reference#SkSurface'>SkSurface</a> <a href='SkSurface_Reference#SkSurface'>is</a> <a href='SkSurface_Reference#SkSurface'>returned</a> <a href='SkSurface_Reference#SkSurface'>if</a> <a href='SkSurface_Reference#SkSurface'>all</a> <a href='SkSurface_Reference#SkSurface'>parameters</a> <a href='SkSurface_Reference#SkSurface'>are</a> <a href='SkSurface_Reference#SkSurface'>valid</a>. <a href='#SkSurface_MakeFromBackendTextureAsRenderTarget_backendTexture'>backendTexture</a> <a href='#SkSurface_MakeFromBackendTextureAsRenderTarget_backendTexture'>is</a> <a href='#SkSurface_MakeFromBackendTextureAsRenderTarget_backendTexture'>valid</a> <a href='#SkSurface_MakeFromBackendTextureAsRenderTarget_backendTexture'>if</a>
-its <a href='undocumented#Pixel'>pixel</a> <a href='undocumented#Pixel'>configuration</a> <a href='undocumented#Pixel'>agrees</a> <a href='undocumented#Pixel'>with</a> <a href='#SkSurface_MakeFromBackendTextureAsRenderTarget_colorSpace'>colorSpace</a> <a href='#SkSurface_MakeFromBackendTextureAsRenderTarget_colorSpace'>and</a> <a href='#SkSurface_MakeFromBackendTextureAsRenderTarget_context'>context</a>; <a href='#SkSurface_MakeFromBackendTextureAsRenderTarget_context'>for</a> <a href='#SkSurface_MakeFromBackendTextureAsRenderTarget_context'>instance</a>, <a href='#SkSurface_MakeFromBackendTextureAsRenderTarget_context'>if</a>
-<a href='#SkSurface_MakeFromBackendTextureAsRenderTarget_backendTexture'>backendTexture</a> <a href='#SkSurface_MakeFromBackendTextureAsRenderTarget_backendTexture'>has</a> <a href='#SkSurface_MakeFromBackendTextureAsRenderTarget_backendTexture'>an</a> <a href='#SkSurface_MakeFromBackendTextureAsRenderTarget_backendTexture'>sRGB</a> <a href='#SkSurface_MakeFromBackendTextureAsRenderTarget_backendTexture'>configuration</a>, <a href='#SkSurface_MakeFromBackendTextureAsRenderTarget_backendTexture'>then</a> <a href='#SkSurface_MakeFromBackendTextureAsRenderTarget_context'>context</a> <a href='#SkSurface_MakeFromBackendTextureAsRenderTarget_context'>must</a> <a href='#SkSurface_MakeFromBackendTextureAsRenderTarget_context'>support</a> <a href='#SkSurface_MakeFromBackendTextureAsRenderTarget_context'>sRGB</a>,
-and <a href='#SkSurface_MakeFromBackendTextureAsRenderTarget_colorSpace'>colorSpace</a> <a href='#SkSurface_MakeFromBackendTextureAsRenderTarget_colorSpace'>must</a> <a href='#SkSurface_MakeFromBackendTextureAsRenderTarget_colorSpace'>be</a> <a href='#SkSurface_MakeFromBackendTextureAsRenderTarget_colorSpace'>present</a>. <a href='#SkSurface_MakeFromBackendTextureAsRenderTarget_colorSpace'>Further</a>, <a href='#SkSurface_MakeFromBackendTextureAsRenderTarget_backendTexture'>backendTexture</a> <a href='#SkSurface_MakeFromBackendTextureAsRenderTarget_backendTexture'>width</a> <a href='#SkSurface_MakeFromBackendTextureAsRenderTarget_backendTexture'>and</a> <a href='#SkSurface_MakeFromBackendTextureAsRenderTarget_backendTexture'>height</a> <a href='#SkSurface_MakeFromBackendTextureAsRenderTarget_backendTexture'>must</a>
-not exceed <a href='#SkSurface_MakeFromBackendTextureAsRenderTarget_context'>context</a> <a href='#SkSurface_MakeFromBackendTextureAsRenderTarget_context'>capabilities</a>.
+<a href='SkSurface_Reference#SkSurface'>SkSurface</a> is returned if all parameters are valid. <a href='#SkSurface_MakeFromBackendTextureAsRenderTarget_backendTexture'>backendTexture</a> is valid if
+its <a href='undocumented#Pixel'>pixel</a> configuration agrees with <a href='#SkSurface_MakeFromBackendTextureAsRenderTarget_colorSpace'>colorSpace</a> and <a href='#SkSurface_MakeFromBackendTextureAsRenderTarget_context'>context</a>; for instance, if
+<a href='#SkSurface_MakeFromBackendTextureAsRenderTarget_backendTexture'>backendTexture</a> has an sRGB configuration, then <a href='#SkSurface_MakeFromBackendTextureAsRenderTarget_context'>context</a> must support sRGB,
+and <a href='#SkSurface_MakeFromBackendTextureAsRenderTarget_colorSpace'>colorSpace</a> must be present. Further, <a href='#SkSurface_MakeFromBackendTextureAsRenderTarget_backendTexture'>backendTexture</a> width and height must
+not exceed <a href='#SkSurface_MakeFromBackendTextureAsRenderTarget_context'>context</a> capabilities.
-Returned <a href='SkSurface_Reference#SkSurface'>SkSurface</a> <a href='SkSurface_Reference#SkSurface'>is</a> <a href='SkSurface_Reference#SkSurface'>available</a> <a href='SkSurface_Reference#SkSurface'>only</a> <a href='SkSurface_Reference#SkSurface'>for</a> <a href='SkSurface_Reference#SkSurface'>drawing</a> <a href='SkSurface_Reference#SkSurface'>into</a>, <a href='SkSurface_Reference#SkSurface'>and</a> <a href='SkSurface_Reference#SkSurface'>cannot</a> <a href='SkSurface_Reference#SkSurface'>generate</a> <a href='SkSurface_Reference#SkSurface'>an</a>
+Returned <a href='SkSurface_Reference#SkSurface'>SkSurface</a> is available only for drawing into, and cannot generate an
<a href='SkImage_Reference#SkImage'>SkImage</a>.
If SK_SUPPORT_GPU is defined as zero, has no effect and returns nullptr.
@@ -626,13 +626,13 @@
<td><a href='undocumented#GPU_Context'>GPU context</a></td>
</tr>
<tr> <td><a name='SkSurface_MakeFromBackendTextureAsRenderTarget_backendTexture'><code><strong>backendTexture</strong></code></a></td>
- <td><a href='undocumented#Texture'>texture</a> <a href='undocumented#Texture'>residing</a> <a href='undocumented#Texture'>on</a> <a href='undocumented#Texture'>GPU</a></td>
+ <td><a href='undocumented#Texture'>texture</a> residing on GPU</td>
</tr>
<tr> <td><a name='SkSurface_MakeFromBackendTextureAsRenderTarget_origin'><code><strong>origin</strong></code></a></td>
<td>one of: <a href='undocumented#kBottomLeft_GrSurfaceOrigin'>kBottomLeft_GrSurfaceOrigin</a>, <a href='undocumented#kTopLeft_GrSurfaceOrigin'>kTopLeft_GrSurfaceOrigin</a></td>
</tr>
<tr> <td><a name='SkSurface_MakeFromBackendTextureAsRenderTarget_sampleCnt'><code><strong>sampleCnt</strong></code></a></td>
- <td>samples per <a href='undocumented#Pixel'>pixel</a>, <a href='undocumented#Pixel'>or</a> 0 <a href='undocumented#Pixel'>to</a> <a href='undocumented#Pixel'>disable</a> <a href='undocumented#Pixel'>full</a> <a href='undocumented#Pixel'>scene</a> <a href='SkPaint_Reference#Anti_Alias'>anti-aliasing</a></td>
+ <td>samples per <a href='undocumented#Pixel'>pixel</a>, or 0 to disable full scene <a href='SkPaint_Reference#Anti_Alias'>anti-aliasing</a></td>
</tr>
<tr> <td><a name='SkSurface_MakeFromBackendTextureAsRenderTarget_colorType'><code><strong>colorType</strong></code></a></td>
<td>one of:</td>
@@ -651,7 +651,7 @@
<td>range of colors; may be nullptr</td>
</tr>
<tr> <td><a name='SkSurface_MakeFromBackendTextureAsRenderTarget_surfaceProps'><code><strong>surfaceProps</strong></code></a></td>
- <td>LCD striping orientation and setting for <a href='undocumented#Device'>device</a> <a href='undocumented#Device'>independent</a></td>
+ <td>LCD striping orientation and setting for <a href='undocumented#Device'>device</a> independent</td>
</tr>
</table>
@@ -659,7 +659,7 @@
### Return Value
-<a href='SkSurface_Reference#SkSurface'>SkSurface</a> <a href='SkSurface_Reference#SkSurface'>if</a> <a href='SkSurface_Reference#SkSurface'>all</a> <a href='SkSurface_Reference#SkSurface'>parameters</a> <a href='SkSurface_Reference#SkSurface'>are</a> <a href='SkSurface_Reference#SkSurface'>valid</a>; <a href='SkSurface_Reference#SkSurface'>otherwise</a>, <a href='SkSurface_Reference#SkSurface'>nullptr</a>
+<a href='SkSurface_Reference#SkSurface'>SkSurface</a> if all parameters are valid; otherwise, nullptr
### Example
@@ -674,27 +674,27 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-static <a href='undocumented#sk_sp'>sk_sp</a>&<a href='undocumented#sk_sp'>lt</a>;<a href='SkSurface_Reference#SkSurface'>SkSurface</a>&<a href='SkSurface_Reference#SkSurface'>gt</a>; <a href='#SkSurface_MakeRenderTarget'>MakeRenderTarget</a>(<a href='undocumented#GrContext'>GrContext</a>* <a href='undocumented#GrContext'>context</a>, <a href='undocumented#SkBudgeted'>SkBudgeted</a> <a href='undocumented#SkBudgeted'>budgeted</a>,
- <a href='undocumented#SkBudgeted'>const</a> <a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a>& <a href='SkImageInfo_Reference#SkImageInfo'>imageInfo</a>, <a href='SkImageInfo_Reference#SkImageInfo'>int</a> <a href='SkImageInfo_Reference#SkImageInfo'>sampleCount</a>,
- <a href='undocumented#GrSurfaceOrigin'>GrSurfaceOrigin</a> <a href='undocumented#GrSurfaceOrigin'>surfaceOrigin</a>,
- <a href='undocumented#GrSurfaceOrigin'>const</a> <a href='undocumented#SkSurfaceProps'>SkSurfaceProps</a>* <a href='undocumented#SkSurfaceProps'>surfaceProps</a>,
- <a href='undocumented#SkSurfaceProps'>bool</a> <a href='undocumented#SkSurfaceProps'>shouldCreateWithMips</a> = <a href='undocumented#SkSurfaceProps'>false</a>)
+static <a href='undocumented#sk_sp'>sk_sp</a><<a href='SkSurface_Reference#SkSurface'>SkSurface</a>> <a href='#SkSurface_MakeRenderTarget'>MakeRenderTarget</a>(<a href='undocumented#GrContext'>GrContext</a>* context, <a href='undocumented#SkBudgeted'>SkBudgeted</a> budgeted,
+ const <a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a>& imageInfo, int sampleCount,
+ <a href='undocumented#GrSurfaceOrigin'>GrSurfaceOrigin</a> surfaceOrigin,
+ const <a href='undocumented#SkSurfaceProps'>SkSurfaceProps</a>* surfaceProps,
+ bool shouldCreateWithMips = false)
</pre>
-Returns <a href='SkSurface_Reference#SkSurface'>SkSurface</a> <a href='SkSurface_Reference#SkSurface'>on</a> <a href='SkSurface_Reference#SkSurface'>GPU</a> <a href='SkSurface_Reference#SkSurface'>indicated</a> <a href='SkSurface_Reference#SkSurface'>by</a> <a href='#SkSurface_MakeRenderTarget_context'>context</a>. <a href='#SkSurface_MakeRenderTarget_context'>Allocates</a> <a href='#SkSurface_MakeRenderTarget_context'>memory</a> <a href='#SkSurface_MakeRenderTarget_context'>for</a>
-pixels, based on the width, height, and <a href='SkImageInfo_Reference#SkColorType'>SkColorType</a> <a href='SkImageInfo_Reference#SkColorType'>in</a> <a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a>. <a href='#SkSurface_MakeRenderTarget_budgeted'>budgeted</a>
+Returns <a href='SkSurface_Reference#SkSurface'>SkSurface</a> on GPU indicated by <a href='#SkSurface_MakeRenderTarget_context'>context</a>. Allocates memory for
+pixels, based on the width, height, and <a href='SkImageInfo_Reference#SkColorType'>SkColorType</a> in <a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a>. <a href='#SkSurface_MakeRenderTarget_budgeted'>budgeted</a>
selects whether allocation for pixels is tracked by <a href='#SkSurface_MakeRenderTarget_context'>context</a>. <a href='#SkSurface_MakeRenderTarget_imageInfo'>imageInfo</a>
-describes the <a href='undocumented#Pixel'>pixel</a> <a href='undocumented#Pixel'>format</a> <a href='undocumented#Pixel'>in</a> <a href='SkImageInfo_Reference#SkColorType'>SkColorType</a>, <a href='SkImageInfo_Reference#SkColorType'>and</a> <a href='SkImageInfo_Reference#SkColorType'>transparency</a> <a href='SkImageInfo_Reference#SkColorType'>in</a>
-<a href='SkImageInfo_Reference#SkAlphaType'>SkAlphaType</a>, <a href='SkImageInfo_Reference#SkAlphaType'>and</a> <a href='SkColor_Reference#Color'>color</a> <a href='SkColor_Reference#Color'>matching</a> <a href='SkColor_Reference#Color'>in</a> <a href='undocumented#SkColorSpace'>SkColorSpace</a>.
+describes the <a href='undocumented#Pixel'>pixel</a> format in <a href='SkImageInfo_Reference#SkColorType'>SkColorType</a>, and transparency in
+<a href='SkImageInfo_Reference#SkAlphaType'>SkAlphaType</a>, and <a href='SkColor_Reference#Color'>color</a> matching in <a href='undocumented#SkColorSpace'>SkColorSpace</a>.
-<a href='#SkSurface_MakeRenderTarget_sampleCount'>sampleCount</a> <a href='#SkSurface_MakeRenderTarget_sampleCount'>requests</a> <a href='#SkSurface_MakeRenderTarget_sampleCount'>the</a> <a href='#SkSurface_MakeRenderTarget_sampleCount'>number</a> <a href='#SkSurface_MakeRenderTarget_sampleCount'>of</a> <a href='#SkSurface_MakeRenderTarget_sampleCount'>samples</a> <a href='#SkSurface_MakeRenderTarget_sampleCount'>per</a> <a href='undocumented#Pixel'>pixel</a>.
+<a href='#SkSurface_MakeRenderTarget_sampleCount'>sampleCount</a> requests the number of samples per <a href='undocumented#Pixel'>pixel</a>.
Pass zero to disable <a href='undocumented#Multi_Sample_Anti_Aliasing'>multi-sample anti-aliasing</a>. The request is rounded
up to the next supported count, or rounded down if it is larger than the
maximum supported count.
-<a href='#SkSurface_MakeRenderTarget_surfaceOrigin'>surfaceOrigin</a> <a href='#SkSurface_MakeRenderTarget_surfaceOrigin'>pins</a> <a href='#SkSurface_MakeRenderTarget_surfaceOrigin'>either</a> <a href='#SkSurface_MakeRenderTarget_surfaceOrigin'>the</a> <a href='#SkSurface_MakeRenderTarget_surfaceOrigin'>top-left</a> <a href='#SkSurface_MakeRenderTarget_surfaceOrigin'>or</a> <a href='#SkSurface_MakeRenderTarget_surfaceOrigin'>the</a> <a href='#SkSurface_MakeRenderTarget_surfaceOrigin'>bottom-left</a> <a href='#SkSurface_MakeRenderTarget_surfaceOrigin'>corner</a> <a href='#SkSurface_MakeRenderTarget_surfaceOrigin'>to</a> <a href='#SkSurface_MakeRenderTarget_surfaceOrigin'>the</a> <a href='#SkSurface_MakeRenderTarget_surfaceOrigin'>origin</a>.
+<a href='#SkSurface_MakeRenderTarget_surfaceOrigin'>surfaceOrigin</a> pins either the top-left or the bottom-left corner to the origin.
-<a href='#SkSurface_MakeRenderTarget_shouldCreateWithMips'>shouldCreateWithMips</a> <a href='#SkSurface_MakeRenderTarget_shouldCreateWithMips'>hints</a> <a href='#SkSurface_MakeRenderTarget_shouldCreateWithMips'>that</a> <a href='SkImage_Reference#SkImage'>SkImage</a> <a href='SkImage_Reference#SkImage'>returned</a> <a href='SkImage_Reference#SkImage'>by</a> <a href='#SkSurface_makeImageSnapshot'>makeImageSnapshot</a>() <a href='#SkSurface_makeImageSnapshot'>is</a> <a href='undocumented#Mip_Map'>mip map</a>.
+<a href='#SkSurface_MakeRenderTarget_shouldCreateWithMips'>shouldCreateWithMips</a> hints that <a href='SkImage_Reference#SkImage'>SkImage</a> returned by <a href='#SkSurface_makeImageSnapshot'>makeImageSnapshot</a>() is <a href='undocumented#Mip_Map'>mip map</a>.
If SK_SUPPORT_GPU is defined as zero, has no effect and returns nullptr.
@@ -716,13 +716,13 @@
### Parameters
<table> <tr> <td><a name='SkSurface_MakeRenderTarget_sampleCount'><code><strong>sampleCount</strong></code></a></td>
- <td>samples per <a href='undocumented#Pixel'>pixel</a>, <a href='undocumented#Pixel'>or</a> 0 <a href='undocumented#Pixel'>to</a> <a href='undocumented#Pixel'>disable</a> <a href='undocumented#Pixel'>full</a> <a href='undocumented#Pixel'>scene</a> <a href='SkPaint_Reference#Anti_Alias'>anti-aliasing</a></td>
+ <td>samples per <a href='undocumented#Pixel'>pixel</a>, or 0 to disable full scene <a href='SkPaint_Reference#Anti_Alias'>anti-aliasing</a></td>
</tr>
<tr> <td><a name='SkSurface_MakeRenderTarget_surfaceOrigin'><code><strong>surfaceOrigin</strong></code></a></td>
<td>one of: <a href='undocumented#kBottomLeft_GrSurfaceOrigin'>kBottomLeft_GrSurfaceOrigin</a>, <a href='undocumented#kTopLeft_GrSurfaceOrigin'>kTopLeft_GrSurfaceOrigin</a></td>
</tr>
<tr> <td><a name='SkSurface_MakeRenderTarget_surfaceProps'><code><strong>surfaceProps</strong></code></a></td>
- <td>LCD striping orientation and setting for <a href='undocumented#Device'>device</a> <a href='undocumented#Device'>independent</a></td>
+ <td>LCD striping orientation and setting for <a href='undocumented#Device'>device</a> independent</td>
</tr>
</table>
@@ -731,13 +731,13 @@
### Parameters
<table> <tr> <td><a name='SkSurface_MakeRenderTarget_shouldCreateWithMips'><code><strong>shouldCreateWithMips</strong></code></a></td>
- <td>hint that <a href='SkSurface_Reference#SkSurface'>SkSurface</a> <a href='SkSurface_Reference#SkSurface'>will</a> <a href='SkSurface_Reference#SkSurface'>host</a> <a href='undocumented#Mip_Map'>mip map</a> <a href='SkSurface_Reference#SkSurface'>images</a></td>
+ <td>hint that <a href='SkSurface_Reference#SkSurface'>SkSurface</a> will host <a href='undocumented#Mip_Map'>mip map</a> images</td>
</tr>
</table>
### Return Value
-<a href='SkSurface_Reference#SkSurface'>SkSurface</a> <a href='SkSurface_Reference#SkSurface'>if</a> <a href='SkSurface_Reference#SkSurface'>all</a> <a href='SkSurface_Reference#SkSurface'>parameters</a> <a href='SkSurface_Reference#SkSurface'>are</a> <a href='SkSurface_Reference#SkSurface'>valid</a>; <a href='SkSurface_Reference#SkSurface'>otherwise</a>, <a href='SkSurface_Reference#SkSurface'>nullptr</a>
+<a href='SkSurface_Reference#SkSurface'>SkSurface</a> if all parameters are valid; otherwise, nullptr
### Example
@@ -752,23 +752,23 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-static <a href='undocumented#sk_sp'>sk_sp</a>&<a href='undocumented#sk_sp'>lt</a>;<a href='SkSurface_Reference#SkSurface'>SkSurface</a>&<a href='SkSurface_Reference#SkSurface'>gt</a>; <a href='#SkSurface_MakeRenderTarget'>MakeRenderTarget</a>(<a href='undocumented#GrContext'>GrContext</a>* <a href='undocumented#GrContext'>context</a>, <a href='undocumented#SkBudgeted'>SkBudgeted</a> <a href='undocumented#SkBudgeted'>budgeted</a>,
- <a href='undocumented#SkBudgeted'>const</a> <a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a>& <a href='SkImageInfo_Reference#SkImageInfo'>imageInfo</a>, <a href='SkImageInfo_Reference#SkImageInfo'>int</a> <a href='SkImageInfo_Reference#SkImageInfo'>sampleCount</a>,
- <a href='SkImageInfo_Reference#SkImageInfo'>const</a> <a href='undocumented#SkSurfaceProps'>SkSurfaceProps</a>* <a href='undocumented#SkSurfaceProps'>props</a>)
+static <a href='undocumented#sk_sp'>sk_sp</a><<a href='SkSurface_Reference#SkSurface'>SkSurface</a>> <a href='#SkSurface_MakeRenderTarget'>MakeRenderTarget</a>(<a href='undocumented#GrContext'>GrContext</a>* context, <a href='undocumented#SkBudgeted'>SkBudgeted</a> budgeted,
+ const <a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a>& imageInfo, int sampleCount,
+ const <a href='undocumented#SkSurfaceProps'>SkSurfaceProps</a>* props)
</pre>
-Returns <a href='SkSurface_Reference#SkSurface'>SkSurface</a> <a href='SkSurface_Reference#SkSurface'>on</a> <a href='SkSurface_Reference#SkSurface'>GPU</a> <a href='SkSurface_Reference#SkSurface'>indicated</a> <a href='SkSurface_Reference#SkSurface'>by</a> <a href='#SkSurface_MakeRenderTarget_2_context'>context</a>. <a href='#SkSurface_MakeRenderTarget_2_context'>Allocates</a> <a href='#SkSurface_MakeRenderTarget_2_context'>memory</a> <a href='#SkSurface_MakeRenderTarget_2_context'>for</a>
-pixels, based on the width, height, and <a href='SkImageInfo_Reference#SkColorType'>SkColorType</a> <a href='SkImageInfo_Reference#SkColorType'>in</a> <a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a>. <a href='#SkSurface_MakeRenderTarget_2_budgeted'>budgeted</a>
+Returns <a href='SkSurface_Reference#SkSurface'>SkSurface</a> on GPU indicated by <a href='#SkSurface_MakeRenderTarget_2_context'>context</a>. Allocates memory for
+pixels, based on the width, height, and <a href='SkImageInfo_Reference#SkColorType'>SkColorType</a> in <a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a>. <a href='#SkSurface_MakeRenderTarget_2_budgeted'>budgeted</a>
selects whether allocation for pixels is tracked by <a href='#SkSurface_MakeRenderTarget_2_context'>context</a>. <a href='#SkSurface_MakeRenderTarget_2_imageInfo'>imageInfo</a>
-describes the <a href='undocumented#Pixel'>pixel</a> <a href='undocumented#Pixel'>format</a> <a href='undocumented#Pixel'>in</a> <a href='SkImageInfo_Reference#SkColorType'>SkColorType</a>, <a href='SkImageInfo_Reference#SkColorType'>and</a> <a href='SkImageInfo_Reference#SkColorType'>transparency</a> <a href='SkImageInfo_Reference#SkColorType'>in</a>
-<a href='SkImageInfo_Reference#SkAlphaType'>SkAlphaType</a>, <a href='SkImageInfo_Reference#SkAlphaType'>and</a> <a href='SkColor_Reference#Color'>color</a> <a href='SkColor_Reference#Color'>matching</a> <a href='SkColor_Reference#Color'>in</a> <a href='undocumented#SkColorSpace'>SkColorSpace</a>.
+describes the <a href='undocumented#Pixel'>pixel</a> format in <a href='SkImageInfo_Reference#SkColorType'>SkColorType</a>, and transparency in
+<a href='SkImageInfo_Reference#SkAlphaType'>SkAlphaType</a>, and <a href='SkColor_Reference#Color'>color</a> matching in <a href='undocumented#SkColorSpace'>SkColorSpace</a>.
-<a href='#SkSurface_MakeRenderTarget_2_sampleCount'>sampleCount</a> <a href='#SkSurface_MakeRenderTarget_2_sampleCount'>requests</a> <a href='#SkSurface_MakeRenderTarget_2_sampleCount'>the</a> <a href='#SkSurface_MakeRenderTarget_2_sampleCount'>number</a> <a href='#SkSurface_MakeRenderTarget_2_sampleCount'>of</a> <a href='#SkSurface_MakeRenderTarget_2_sampleCount'>samples</a> <a href='#SkSurface_MakeRenderTarget_2_sampleCount'>per</a> <a href='undocumented#Pixel'>pixel</a>.
+<a href='#SkSurface_MakeRenderTarget_2_sampleCount'>sampleCount</a> requests the number of samples per <a href='undocumented#Pixel'>pixel</a>.
Pass zero to disable <a href='undocumented#Multi_Sample_Anti_Aliasing'>multi-sample anti-aliasing</a>. The request is rounded
up to the next supported count, or rounded down if it is larger than the
maximum supported count.
-<a href='SkSurface_Reference#SkSurface'>SkSurface</a> <a href='SkSurface_Reference#SkSurface'>bottom-left</a> <a href='SkSurface_Reference#SkSurface'>corner</a> <a href='SkSurface_Reference#SkSurface'>is</a> <a href='SkSurface_Reference#SkSurface'>pinned</a> <a href='SkSurface_Reference#SkSurface'>to</a> <a href='SkSurface_Reference#SkSurface'>the</a> <a href='SkSurface_Reference#SkSurface'>origin</a>.
+<a href='SkSurface_Reference#SkSurface'>SkSurface</a> bottom-left corner is pinned to the origin.
### Parameters
@@ -788,10 +788,10 @@
### Parameters
<table> <tr> <td><a name='SkSurface_MakeRenderTarget_2_sampleCount'><code><strong>sampleCount</strong></code></a></td>
- <td>samples per <a href='undocumented#Pixel'>pixel</a>, <a href='undocumented#Pixel'>or</a> 0 <a href='undocumented#Pixel'>to</a> <a href='undocumented#Pixel'>disable</a> <a href='undocumented#Multi_Sample_Anti_Aliasing'>multi-sample anti-aliasing</a></td>
+ <td>samples per <a href='undocumented#Pixel'>pixel</a>, or 0 to disable <a href='undocumented#Multi_Sample_Anti_Aliasing'>multi-sample anti-aliasing</a></td>
</tr>
<tr> <td><a name='SkSurface_MakeRenderTarget_2_props'><code><strong>props</strong></code></a></td>
- <td>LCD striping orientation and setting for <a href='undocumented#Device'>device</a> <a href='undocumented#Device'>independent</a></td>
+ <td>LCD striping orientation and setting for <a href='undocumented#Device'>device</a> independent</td>
</tr>
</table>
@@ -799,7 +799,7 @@
### Return Value
-<a href='SkSurface_Reference#SkSurface'>SkSurface</a> <a href='SkSurface_Reference#SkSurface'>if</a> <a href='SkSurface_Reference#SkSurface'>all</a> <a href='SkSurface_Reference#SkSurface'>parameters</a> <a href='SkSurface_Reference#SkSurface'>are</a> <a href='SkSurface_Reference#SkSurface'>valid</a>; <a href='SkSurface_Reference#SkSurface'>otherwise</a>, <a href='SkSurface_Reference#SkSurface'>nullptr</a>
+<a href='SkSurface_Reference#SkSurface'>SkSurface</a> if all parameters are valid; otherwise, nullptr
### Example
@@ -818,17 +818,17 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-static <a href='undocumented#sk_sp'>sk_sp</a>&<a href='undocumented#sk_sp'>lt</a>;<a href='SkSurface_Reference#SkSurface'>SkSurface</a>&<a href='SkSurface_Reference#SkSurface'>gt</a>; <a href='#SkSurface_MakeRenderTarget'>MakeRenderTarget</a>(<a href='undocumented#GrContext'>GrContext</a>* <a href='undocumented#GrContext'>context</a>, <a href='undocumented#SkBudgeted'>SkBudgeted</a> <a href='undocumented#SkBudgeted'>budgeted</a>,
- <a href='undocumented#SkBudgeted'>const</a> <a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a>& <a href='SkImageInfo_Reference#SkImageInfo'>imageInfo</a>)
+static <a href='undocumented#sk_sp'>sk_sp</a><<a href='SkSurface_Reference#SkSurface'>SkSurface</a>> <a href='#SkSurface_MakeRenderTarget'>MakeRenderTarget</a>(<a href='undocumented#GrContext'>GrContext</a>* context, <a href='undocumented#SkBudgeted'>SkBudgeted</a> budgeted,
+ const <a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a>& imageInfo)
</pre>
-Returns <a href='SkSurface_Reference#SkSurface'>SkSurface</a> <a href='SkSurface_Reference#SkSurface'>on</a> <a href='SkSurface_Reference#SkSurface'>GPU</a> <a href='SkSurface_Reference#SkSurface'>indicated</a> <a href='SkSurface_Reference#SkSurface'>by</a> <a href='#SkSurface_MakeRenderTarget_3_context'>context</a>. <a href='#SkSurface_MakeRenderTarget_3_context'>Allocates</a> <a href='#SkSurface_MakeRenderTarget_3_context'>memory</a> <a href='#SkSurface_MakeRenderTarget_3_context'>for</a>
-pixels, based on the width, height, and <a href='SkImageInfo_Reference#SkColorType'>SkColorType</a> <a href='SkImageInfo_Reference#SkColorType'>in</a> <a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a>. <a href='#SkSurface_MakeRenderTarget_3_budgeted'>budgeted</a>
+Returns <a href='SkSurface_Reference#SkSurface'>SkSurface</a> on GPU indicated by <a href='#SkSurface_MakeRenderTarget_3_context'>context</a>. Allocates memory for
+pixels, based on the width, height, and <a href='SkImageInfo_Reference#SkColorType'>SkColorType</a> in <a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a>. <a href='#SkSurface_MakeRenderTarget_3_budgeted'>budgeted</a>
selects whether allocation for pixels is tracked by <a href='#SkSurface_MakeRenderTarget_3_context'>context</a>. <a href='#SkSurface_MakeRenderTarget_3_imageInfo'>imageInfo</a>
-describes the <a href='undocumented#Pixel'>pixel</a> <a href='undocumented#Pixel'>format</a> <a href='undocumented#Pixel'>in</a> <a href='SkImageInfo_Reference#SkColorType'>SkColorType</a>, <a href='SkImageInfo_Reference#SkColorType'>and</a> <a href='SkImageInfo_Reference#SkColorType'>transparency</a> <a href='SkImageInfo_Reference#SkColorType'>in</a>
-<a href='SkImageInfo_Reference#SkAlphaType'>SkAlphaType</a>, <a href='SkImageInfo_Reference#SkAlphaType'>and</a> <a href='SkColor_Reference#Color'>color</a> <a href='SkColor_Reference#Color'>matching</a> <a href='SkColor_Reference#Color'>in</a> <a href='undocumented#SkColorSpace'>SkColorSpace</a>.
+describes the <a href='undocumented#Pixel'>pixel</a> format in <a href='SkImageInfo_Reference#SkColorType'>SkColorType</a>, and transparency in
+<a href='SkImageInfo_Reference#SkAlphaType'>SkAlphaType</a>, and <a href='SkColor_Reference#Color'>color</a> matching in <a href='undocumented#SkColorSpace'>SkColorSpace</a>.
-<a href='SkSurface_Reference#SkSurface'>SkSurface</a> <a href='SkSurface_Reference#SkSurface'>bottom-left</a> <a href='SkSurface_Reference#SkSurface'>corner</a> <a href='SkSurface_Reference#SkSurface'>is</a> <a href='SkSurface_Reference#SkSurface'>pinned</a> <a href='SkSurface_Reference#SkSurface'>to</a> <a href='SkSurface_Reference#SkSurface'>the</a> <a href='SkSurface_Reference#SkSurface'>origin</a>.
+<a href='SkSurface_Reference#SkSurface'>SkSurface</a> bottom-left corner is pinned to the origin.
### Parameters
@@ -847,7 +847,7 @@
### Return Value
-<a href='SkSurface_Reference#SkSurface'>SkSurface</a> <a href='SkSurface_Reference#SkSurface'>if</a> <a href='SkSurface_Reference#SkSurface'>all</a> <a href='SkSurface_Reference#SkSurface'>parameters</a> <a href='SkSurface_Reference#SkSurface'>are</a> <a href='SkSurface_Reference#SkSurface'>valid</a>; <a href='SkSurface_Reference#SkSurface'>otherwise</a>, <a href='SkSurface_Reference#SkSurface'>nullptr</a>
+<a href='SkSurface_Reference#SkSurface'>SkSurface</a> if all parameters are valid; otherwise, nullptr
### Example
@@ -862,13 +862,13 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-static <a href='undocumented#sk_sp'>sk_sp</a>&<a href='undocumented#sk_sp'>lt</a>;<a href='SkSurface_Reference#SkSurface'>SkSurface</a>&<a href='SkSurface_Reference#SkSurface'>gt</a>; <a href='#SkSurface_MakeRenderTarget'>MakeRenderTarget</a>(<a href='undocumented#GrContext'>GrContext</a>* <a href='undocumented#GrContext'>context</a>,
- <a href='undocumented#GrContext'>const</a> <a href='undocumented#SkSurfaceCharacterization'>SkSurfaceCharacterization</a>& <a href='undocumented#SkSurfaceCharacterization'>characterization</a>,
- <a href='undocumented#SkBudgeted'>SkBudgeted</a> <a href='undocumented#SkBudgeted'>budgeted</a>)
+static <a href='undocumented#sk_sp'>sk_sp</a><<a href='SkSurface_Reference#SkSurface'>SkSurface</a>> <a href='#SkSurface_MakeRenderTarget'>MakeRenderTarget</a>(<a href='undocumented#GrContext'>GrContext</a>* context,
+ const <a href='undocumented#SkSurfaceCharacterization'>SkSurfaceCharacterization</a>& characterization,
+ <a href='undocumented#SkBudgeted'>SkBudgeted</a> budgeted)
</pre>
-Returns <a href='SkSurface_Reference#SkSurface'>SkSurface</a> <a href='SkSurface_Reference#SkSurface'>on</a> <a href='SkSurface_Reference#SkSurface'>GPU</a> <a href='SkSurface_Reference#SkSurface'>indicated</a> <a href='SkSurface_Reference#SkSurface'>by</a> <a href='#SkSurface_MakeRenderTarget_4_context'>context</a> <a href='#SkSurface_MakeRenderTarget_4_context'>that</a> <a href='#SkSurface_MakeRenderTarget_4_context'>is</a> <a href='#SkSurface_MakeRenderTarget_4_context'>compatible</a> <a href='#SkSurface_MakeRenderTarget_4_context'>with</a> <a href='#SkSurface_MakeRenderTarget_4_context'>the</a> <a href='#SkSurface_MakeRenderTarget_4_context'>provided</a>
-<a href='#SkSurface_MakeRenderTarget_4_characterization'>characterization</a>. <a href='#SkSurface_MakeRenderTarget_4_budgeted'>budgeted</a> <a href='#SkSurface_MakeRenderTarget_4_budgeted'>selects</a> <a href='#SkSurface_MakeRenderTarget_4_budgeted'>whether</a> <a href='#SkSurface_MakeRenderTarget_4_budgeted'>allocation</a> <a href='#SkSurface_MakeRenderTarget_4_budgeted'>for</a> <a href='#SkSurface_MakeRenderTarget_4_budgeted'>pixels</a> <a href='#SkSurface_MakeRenderTarget_4_budgeted'>is</a> <a href='#SkSurface_MakeRenderTarget_4_budgeted'>tracked</a> <a href='#SkSurface_MakeRenderTarget_4_budgeted'>by</a> <a href='#SkSurface_MakeRenderTarget_4_context'>context</a>.
+Returns <a href='SkSurface_Reference#SkSurface'>SkSurface</a> on GPU indicated by <a href='#SkSurface_MakeRenderTarget_4_context'>context</a> that is compatible with the provided
+<a href='#SkSurface_MakeRenderTarget_4_characterization'>characterization</a>. <a href='#SkSurface_MakeRenderTarget_4_budgeted'>budgeted</a> selects whether allocation for pixels is tracked by <a href='#SkSurface_MakeRenderTarget_4_context'>context</a>.
### Parameters
@@ -885,7 +885,7 @@
### Return Value
-<a href='SkSurface_Reference#SkSurface'>SkSurface</a> <a href='SkSurface_Reference#SkSurface'>if</a> <a href='SkSurface_Reference#SkSurface'>all</a> <a href='SkSurface_Reference#SkSurface'>parameters</a> <a href='SkSurface_Reference#SkSurface'>are</a> <a href='SkSurface_Reference#SkSurface'>valid</a>; <a href='SkSurface_Reference#SkSurface'>otherwise</a>, <a href='SkSurface_Reference#SkSurface'>nullptr</a>
+<a href='SkSurface_Reference#SkSurface'>SkSurface</a> if all parameters are valid; otherwise, nullptr
### See Also
@@ -896,11 +896,11 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-static <a href='undocumented#sk_sp'>sk_sp</a>&<a href='undocumented#sk_sp'>lt</a>;<a href='SkSurface_Reference#SkSurface'>SkSurface</a>&<a href='SkSurface_Reference#SkSurface'>gt</a>; <a href='#SkSurface_MakeNull'>MakeNull</a>(<a href='#SkSurface_MakeNull'>int</a> <a href='#SkSurface_MakeNull'>width</a>, <a href='#SkSurface_MakeNull'>int</a> <a href='#SkSurface_MakeNull'>height</a>)
+static <a href='undocumented#sk_sp'>sk_sp</a><<a href='SkSurface_Reference#SkSurface'>SkSurface</a>> <a href='#SkSurface_MakeNull'>MakeNull</a>(int width, int height)
</pre>
-Returns <a href='SkSurface_Reference#SkSurface'>SkSurface</a> <a href='SkSurface_Reference#SkSurface'>without</a> <a href='SkSurface_Reference#SkSurface'>backing</a> <a href='SkSurface_Reference#SkSurface'>pixels</a>. <a href='SkSurface_Reference#SkSurface'>Drawing</a> <a href='SkSurface_Reference#SkSurface'>to</a> <a href='SkCanvas_Reference#SkCanvas'>SkCanvas</a> <a href='SkCanvas_Reference#SkCanvas'>returned</a> <a href='SkCanvas_Reference#SkCanvas'>from</a> <a href='SkSurface_Reference#SkSurface'>SkSurface</a>
-has no effect. Calling <a href='#SkSurface_makeImageSnapshot'>makeImageSnapshot</a>() <a href='#SkSurface_makeImageSnapshot'>on</a> <a href='#SkSurface_makeImageSnapshot'>returned</a> <a href='SkSurface_Reference#SkSurface'>SkSurface</a> <a href='SkSurface_Reference#SkSurface'>returns</a> <a href='SkSurface_Reference#SkSurface'>nullptr</a>.
+Returns <a href='SkSurface_Reference#SkSurface'>SkSurface</a> without backing pixels. Drawing to <a href='SkCanvas_Reference#SkCanvas'>SkCanvas</a> returned from <a href='SkSurface_Reference#SkSurface'>SkSurface</a>
+has no effect. Calling <a href='#SkSurface_makeImageSnapshot'>makeImageSnapshot</a>() on returned <a href='SkSurface_Reference#SkSurface'>SkSurface</a> returns nullptr.
### Parameters
@@ -914,7 +914,7 @@
### Return Value
-<a href='SkSurface_Reference#SkSurface'>SkSurface</a> <a href='SkSurface_Reference#SkSurface'>if</a> <a href='#SkSurface_MakeNull_width'>width</a> <a href='#SkSurface_MakeNull_width'>and</a> <a href='#SkSurface_MakeNull_height'>height</a> <a href='#SkSurface_MakeNull_height'>are</a> <a href='#SkSurface_MakeNull_height'>positive</a>; <a href='#SkSurface_MakeNull_height'>otherwise</a>, <a href='#SkSurface_MakeNull_height'>nullptr</a>
+<a href='SkSurface_Reference#SkSurface'>SkSurface</a> if <a href='#SkSurface_MakeNull_width'>width</a> and <a href='#SkSurface_MakeNull_height'>height</a> are positive; otherwise, nullptr
### Example
@@ -940,14 +940,14 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-int <a href='#SkSurface_width'>width()</a> <a href='#SkSurface_width'>const</a>
+int <a href='#SkSurface_width'>width()</a> const
</pre>
-Returns <a href='undocumented#Pixel'>pixel</a> <a href='undocumented#Pixel'>count</a> <a href='undocumented#Pixel'>in</a> <a href='undocumented#Pixel'>each</a> <a href='undocumented#Pixel'>row</a>; <a href='undocumented#Pixel'>may</a> <a href='undocumented#Pixel'>be</a> <a href='undocumented#Pixel'>zero</a> <a href='undocumented#Pixel'>or</a> <a href='undocumented#Pixel'>greater</a>.
+Returns <a href='undocumented#Pixel'>pixel</a> count in each row; may be zero or greater.
### Return Value
-number of <a href='undocumented#Pixel'>pixel</a> <a href='undocumented#Pixel'>columns</a>
+number of <a href='undocumented#Pixel'>pixel</a> columns
### Example
@@ -970,14 +970,14 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-int <a href='#SkSurface_height'>height()</a> <a href='#SkSurface_height'>const</a>
+int <a href='#SkSurface_height'>height()</a> const
</pre>
-Returns <a href='undocumented#Pixel'>pixel</a> <a href='undocumented#Pixel'>row</a> <a href='undocumented#Pixel'>count</a>; <a href='undocumented#Pixel'>may</a> <a href='undocumented#Pixel'>be</a> <a href='undocumented#Pixel'>zero</a> <a href='undocumented#Pixel'>or</a> <a href='undocumented#Pixel'>greater</a>.
+Returns <a href='undocumented#Pixel'>pixel</a> row count; may be zero or greater.
### Return Value
-number of <a href='undocumented#Pixel'>pixel</a> <a href='undocumented#Pixel'>rows</a>
+number of <a href='undocumented#Pixel'>pixel</a> rows
### Example
@@ -1003,7 +1003,7 @@
uint32_t <a href='#SkSurface_generationID'>generationID</a>()
</pre>
-Returns unique value identifying the content of <a href='SkSurface_Reference#SkSurface'>SkSurface</a>. <a href='SkSurface_Reference#SkSurface'>Returned</a> <a href='SkSurface_Reference#SkSurface'>value</a> <a href='SkSurface_Reference#SkSurface'>changes</a>
+Returns unique value identifying the content of <a href='SkSurface_Reference#SkSurface'>SkSurface</a>. Returned value changes
each time the content changes. Content is changed by drawing, or by calling
<a href='#SkSurface_notifyContentWillChange'>notifyContentWillChange</a>().
@@ -1040,7 +1040,7 @@
};
</pre>
-<a href='#SkSurface_ContentChangeMode'>ContentChangeMode</a> <a href='#SkSurface_ContentChangeMode'>members</a> <a href='#SkSurface_ContentChangeMode'>are</a> <a href='#SkSurface_ContentChangeMode'>parameters</a> <a href='#SkSurface_ContentChangeMode'>to</a> <a href='#SkSurface_notifyContentWillChange'>notifyContentWillChange</a>.
+<a href='#SkSurface_ContentChangeMode'>ContentChangeMode</a> members are parameters to <a href='#SkSurface_notifyContentWillChange'>notifyContentWillChange</a>.
### Constants
@@ -1052,16 +1052,16 @@
<td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a name='SkSurface_kDiscard_ContentChangeMode'><code>SkSurface::kDiscard_ContentChangeMode</code></a></td>
<td style='text-align: center; border: 2px solid #dddddd; padding: 8px; '>#Line # discards surface on change ##</td>
<td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>
-Pass to <a href='#SkSurface_notifyContentWillChange'>notifyContentWillChange</a> <a href='#SkSurface_notifyContentWillChange'>to</a> <a href='#SkSurface_notifyContentWillChange'>discard</a> <a href='SkSurface_Reference#Surface'>surface</a> <a href='SkSurface_Reference#Surface'>contents</a> <a href='SkSurface_Reference#Surface'>when</a>
-<a href='SkSurface_Reference#Surface'>the</a> <a href='SkSurface_Reference#Surface'>surface</a> <a href='SkSurface_Reference#Surface'>is</a> <a href='SkSurface_Reference#Surface'>cleared</a> <a href='SkSurface_Reference#Surface'>or</a> <a href='SkSurface_Reference#Surface'>overwritten</a>.
+Pass to <a href='#SkSurface_notifyContentWillChange'>notifyContentWillChange</a> to discard <a href='SkSurface_Reference#Surface'>surface</a> contents when
+the <a href='SkSurface_Reference#Surface'>surface</a> is cleared or overwritten.
</td>
</tr>
<tr>
<td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a name='SkSurface_kRetain_ContentChangeMode'><code>SkSurface::kRetain_ContentChangeMode</code></a></td>
<td style='text-align: center; border: 2px solid #dddddd; padding: 8px; '>#Line # preserves surface on change ##</td>
<td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>
-Pass to <a href='#SkSurface_notifyContentWillChange'>notifyContentWillChange</a> <a href='#SkSurface_notifyContentWillChange'>when</a> <a href='#SkSurface_notifyContentWillChange'>to</a> <a href='#SkSurface_notifyContentWillChange'>preserve</a> <a href='SkSurface_Reference#Surface'>surface</a> <a href='SkSurface_Reference#Surface'>contents</a>.
-<a href='SkSurface_Reference#Surface'>If</a> <a href='SkSurface_Reference#Surface'>a</a> <a href='SkSurface_Reference#Surface'>snapshot</a> <a href='SkSurface_Reference#Surface'>has</a> <a href='SkSurface_Reference#Surface'>been</a> <a href='SkSurface_Reference#Surface'>generated</a>, <a href='SkSurface_Reference#Surface'>this</a> <a href='SkSurface_Reference#Surface'>copies</a> <a href='SkSurface_Reference#Surface'>the</a> <a href='SkSurface_Reference#Surface'>Surface</a> <a href='SkSurface_Reference#Surface'>contents</a>.
+Pass to <a href='#SkSurface_notifyContentWillChange'>notifyContentWillChange</a> when to preserve <a href='SkSurface_Reference#Surface'>surface</a> contents.
+If a snapshot has been generated, this copies the <a href='SkSurface_Reference#Surface'>Surface</a> contents.
</td>
</tr>
</table>
@@ -1077,13 +1077,13 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-void <a href='#SkSurface_notifyContentWillChange'>notifyContentWillChange</a>(<a href='#SkSurface_ContentChangeMode'>ContentChangeMode</a> <a href='#SkSurface_ContentChangeMode'>mode</a>)
+void <a href='#SkSurface_notifyContentWillChange'>notifyContentWillChange</a>(<a href='#SkSurface_ContentChangeMode'>ContentChangeMode</a> mode)
</pre>
-Notifies that <a href='SkSurface_Reference#Surface'>Surface</a> <a href='SkSurface_Reference#Surface'>contents</a> <a href='SkSurface_Reference#Surface'>will</a> <a href='SkSurface_Reference#Surface'>be</a> <a href='SkSurface_Reference#Surface'>changed</a> <a href='SkSurface_Reference#Surface'>by</a> <a href='SkSurface_Reference#Surface'>code</a> <a href='SkSurface_Reference#Surface'>outside</a> <a href='SkSurface_Reference#Surface'>of</a> <a href='SkSurface_Reference#Surface'>Skia</a>.
-<a href='SkSurface_Reference#Surface'>Subsequent</a> <a href='SkSurface_Reference#Surface'>calls</a> <a href='SkSurface_Reference#Surface'>to</a> <a href='#SkSurface_generationID'>generationID</a> <a href='#SkSurface_generationID'>return</a> <a href='#SkSurface_generationID'>a</a> <a href='#SkSurface_generationID'>different</a> <a href='#SkSurface_generationID'>value</a>.
+Notifies that <a href='SkSurface_Reference#Surface'>Surface</a> contents will be changed by code outside of Skia.
+Subsequent calls to <a href='#SkSurface_generationID'>generationID</a> return a different value.
-<a href='#SkSurface_notifyContentWillChange_mode'>mode</a> <a href='#SkSurface_notifyContentWillChange_mode'>is</a> <a href='#SkSurface_notifyContentWillChange_mode'>normally</a> <a href='#SkSurface_notifyContentWillChange_mode'>passed</a> <a href='#SkSurface_notifyContentWillChange_mode'>as</a> <a href='#SkSurface_kRetain_ContentChangeMode'>kRetain_ContentChangeMode</a>.
+<a href='#SkSurface_notifyContentWillChange_mode'>mode</a> is normally passed as <a href='#SkSurface_kRetain_ContentChangeMode'>kRetain_ContentChangeMode</a>.
Private: Can we deprecate this?
@@ -1113,11 +1113,11 @@
<a href='#SkSurface_kDiscardWrite_BackendHandleAccess'>kDiscardWrite_BackendHandleAccess</a>,
};
- <a href='#SkSurface_kDiscardWrite_BackendHandleAccess'>static</a> <a href='#SkSurface_kDiscardWrite_BackendHandleAccess'>const</a> <a href='#SkSurface_BackendHandleAccess'>BackendHandleAccess</a> <a href='#SkSurface_kFlushRead_TextureHandleAccess'>kFlushRead_TextureHandleAccess</a> =
+ static const <a href='#SkSurface_BackendHandleAccess'>BackendHandleAccess</a> <a href='#SkSurface_kFlushRead_TextureHandleAccess'>kFlushRead_TextureHandleAccess</a> =
<a href='#SkSurface_kFlushRead_BackendHandleAccess'>kFlushRead_BackendHandleAccess</a>;
- <a href='#SkSurface_kFlushRead_BackendHandleAccess'>static</a> <a href='#SkSurface_kFlushRead_BackendHandleAccess'>const</a> <a href='#SkSurface_BackendHandleAccess'>BackendHandleAccess</a> <a href='#SkSurface_kFlushWrite_TextureHandleAccess'>kFlushWrite_TextureHandleAccess</a> =
+ static const <a href='#SkSurface_BackendHandleAccess'>BackendHandleAccess</a> <a href='#SkSurface_kFlushWrite_TextureHandleAccess'>kFlushWrite_TextureHandleAccess</a> =
<a href='#SkSurface_kFlushWrite_BackendHandleAccess'>kFlushWrite_BackendHandleAccess</a>;
- <a href='#SkSurface_kFlushWrite_BackendHandleAccess'>static</a> <a href='#SkSurface_kFlushWrite_BackendHandleAccess'>const</a> <a href='#SkSurface_BackendHandleAccess'>BackendHandleAccess</a> <a href='#SkSurface_kDiscardWrite_TextureHandleAccess'>kDiscardWrite_TextureHandleAccess</a> =
+ static const <a href='#SkSurface_BackendHandleAccess'>BackendHandleAccess</a> <a href='#SkSurface_kDiscardWrite_TextureHandleAccess'>kDiscardWrite_TextureHandleAccess</a> =
<a href='#SkSurface_kDiscardWrite_BackendHandleAccess'>kDiscardWrite_BackendHandleAccess</a>;
</pre>
@@ -1183,14 +1183,14 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-<a href='undocumented#GrBackendTexture'>GrBackendTexture</a> <a href='#SkSurface_getBackendTexture'>getBackendTexture</a>(<a href='#SkSurface_BackendHandleAccess'>BackendHandleAccess</a> <a href='#SkSurface_BackendHandleAccess'>backendHandleAccess</a>)
+<a href='undocumented#GrBackendTexture'>GrBackendTexture</a> <a href='#SkSurface_getBackendTexture'>getBackendTexture</a>(<a href='#SkSurface_BackendHandleAccess'>BackendHandleAccess</a> backendHandleAccess)
</pre>
-Retrieves the back-end <a href='undocumented#Texture'>texture</a>. <a href='undocumented#Texture'>If</a> <a href='SkSurface_Reference#SkSurface'>SkSurface</a> <a href='SkSurface_Reference#SkSurface'>has</a> <a href='SkSurface_Reference#SkSurface'>no</a> <a href='SkSurface_Reference#SkSurface'>back-end</a> <a href='undocumented#Texture'>texture</a>, <a href='undocumented#Texture'>an</a> <a href='undocumented#Texture'>invalid</a>
-object is returned. Call <a href='undocumented#GrBackendTexture'>GrBackendTexture</a>::<a href='#GrBackendTexture_isValid'>isValid</a> <a href='#GrBackendTexture_isValid'>to</a> <a href='#GrBackendTexture_isValid'>determine</a> <a href='#GrBackendTexture_isValid'>if</a> <a href='#GrBackendTexture_isValid'>the</a> <a href='#GrBackendTexture_isValid'>result</a>
+Retrieves the back-end <a href='undocumented#Texture'>texture</a>. If <a href='SkSurface_Reference#SkSurface'>SkSurface</a> has no back-end <a href='undocumented#Texture'>texture</a>, an invalid
+object is returned. Call <a href='undocumented#GrBackendTexture'>GrBackendTexture</a>::<a href='#GrBackendTexture_isValid'>isValid</a> to determine if the result
is valid.
-The returned <a href='undocumented#GrBackendTexture'>GrBackendTexture</a> <a href='undocumented#GrBackendTexture'>should</a> <a href='undocumented#GrBackendTexture'>be</a> <a href='undocumented#GrBackendTexture'>discarded</a> <a href='undocumented#GrBackendTexture'>if</a> <a href='undocumented#GrBackendTexture'>the</a> <a href='SkSurface_Reference#SkSurface'>SkSurface</a> <a href='SkSurface_Reference#SkSurface'>is</a> <a href='SkSurface_Reference#SkSurface'>drawn</a> <a href='SkSurface_Reference#SkSurface'>to</a> <a href='SkSurface_Reference#SkSurface'>or</a> <a href='SkSurface_Reference#SkSurface'>deleted</a>.
+The returned <a href='undocumented#GrBackendTexture'>GrBackendTexture</a> should be discarded if the <a href='SkSurface_Reference#SkSurface'>SkSurface</a> is drawn to or deleted.
### Parameters
@@ -1215,14 +1215,14 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-<a href='undocumented#GrBackendRenderTarget'>GrBackendRenderTarget</a> <a href='#SkSurface_getBackendRenderTarget'>getBackendRenderTarget</a>(<a href='#SkSurface_BackendHandleAccess'>BackendHandleAccess</a> <a href='#SkSurface_BackendHandleAccess'>backendHandleAccess</a>)
+<a href='undocumented#GrBackendRenderTarget'>GrBackendRenderTarget</a> <a href='#SkSurface_getBackendRenderTarget'>getBackendRenderTarget</a>(<a href='#SkSurface_BackendHandleAccess'>BackendHandleAccess</a> backendHandleAccess)
</pre>
-Retrieves the back-end <a href='undocumented#Render_Target'>render target</a>. If <a href='SkSurface_Reference#SkSurface'>SkSurface</a> <a href='SkSurface_Reference#SkSurface'>has</a> <a href='SkSurface_Reference#SkSurface'>no</a> <a href='SkSurface_Reference#SkSurface'>back-end</a> <a href='undocumented#Render_Target'>render target</a>, <a href='SkSurface_Reference#SkSurface'>an</a> <a href='SkSurface_Reference#SkSurface'>invalid</a>
-object is returned. Call <a href='undocumented#GrBackendRenderTarget'>GrBackendRenderTarget</a>::<a href='#GrBackendRenderTarget_isValid'>isValid</a> <a href='#GrBackendRenderTarget_isValid'>to</a> <a href='#GrBackendRenderTarget_isValid'>determine</a> <a href='#GrBackendRenderTarget_isValid'>if</a> <a href='#GrBackendRenderTarget_isValid'>the</a> <a href='#GrBackendRenderTarget_isValid'>result</a>
+Retrieves the back-end <a href='undocumented#Render_Target'>render target</a>. If <a href='SkSurface_Reference#SkSurface'>SkSurface</a> has no back-end <a href='undocumented#Render_Target'>render target</a>, an invalid
+object is returned. Call <a href='undocumented#GrBackendRenderTarget'>GrBackendRenderTarget</a>::<a href='#GrBackendRenderTarget_isValid'>isValid</a> to determine if the result
is valid.
-The returned <a href='undocumented#GrBackendRenderTarget'>GrBackendRenderTarget</a> <a href='undocumented#GrBackendRenderTarget'>should</a> <a href='undocumented#GrBackendRenderTarget'>be</a> <a href='undocumented#GrBackendRenderTarget'>discarded</a> <a href='undocumented#GrBackendRenderTarget'>if</a> <a href='undocumented#GrBackendRenderTarget'>the</a> <a href='SkSurface_Reference#SkSurface'>SkSurface</a> <a href='SkSurface_Reference#SkSurface'>is</a> <a href='SkSurface_Reference#SkSurface'>drawn</a> <a href='SkSurface_Reference#SkSurface'>to</a>
+The returned <a href='undocumented#GrBackendRenderTarget'>GrBackendRenderTarget</a> should be discarded if the <a href='SkSurface_Reference#SkSurface'>SkSurface</a> is drawn to
or deleted.
### Parameters
@@ -1251,13 +1251,13 @@
<a href='SkCanvas_Reference#SkCanvas'>SkCanvas</a>* <a href='#SkSurface_getCanvas'>getCanvas</a>()
</pre>
-Returns <a href='SkCanvas_Reference#SkCanvas'>SkCanvas</a> <a href='SkCanvas_Reference#SkCanvas'>that</a> <a href='SkCanvas_Reference#SkCanvas'>draws</a> <a href='SkCanvas_Reference#SkCanvas'>into</a> <a href='SkSurface_Reference#SkSurface'>SkSurface</a>. <a href='SkSurface_Reference#SkSurface'>Subsequent</a> <a href='SkSurface_Reference#SkSurface'>calls</a> <a href='SkSurface_Reference#SkSurface'>return</a> <a href='SkSurface_Reference#SkSurface'>the</a> <a href='SkSurface_Reference#SkSurface'>same</a> <a href='SkCanvas_Reference#SkCanvas'>SkCanvas</a>.
-<a href='SkCanvas_Reference#SkCanvas'>SkCanvas</a> <a href='SkCanvas_Reference#SkCanvas'>returned</a> <a href='SkCanvas_Reference#SkCanvas'>is</a> <a href='SkCanvas_Reference#SkCanvas'>managed</a> <a href='SkCanvas_Reference#SkCanvas'>and</a> <a href='SkCanvas_Reference#SkCanvas'>owned</a> <a href='SkCanvas_Reference#SkCanvas'>by</a> <a href='SkSurface_Reference#SkSurface'>SkSurface</a>, <a href='SkSurface_Reference#SkSurface'>and</a> <a href='SkSurface_Reference#SkSurface'>is</a> <a href='SkSurface_Reference#SkSurface'>deleted</a> <a href='SkSurface_Reference#SkSurface'>when</a> <a href='SkSurface_Reference#SkSurface'>SkSurface</a>
+Returns <a href='SkCanvas_Reference#SkCanvas'>SkCanvas</a> that draws into <a href='SkSurface_Reference#SkSurface'>SkSurface</a>. Subsequent calls return the same <a href='SkCanvas_Reference#SkCanvas'>SkCanvas</a>.
+<a href='SkCanvas_Reference#SkCanvas'>SkCanvas</a> returned is managed and owned by <a href='SkSurface_Reference#SkSurface'>SkSurface</a>, and is deleted when <a href='SkSurface_Reference#SkSurface'>SkSurface</a>
is deleted.
### Return Value
-drawing <a href='SkCanvas_Reference#SkCanvas'>SkCanvas</a> <a href='SkCanvas_Reference#SkCanvas'>for</a> <a href='SkSurface_Reference#SkSurface'>SkSurface</a>
+drawing <a href='SkCanvas_Reference#SkCanvas'>SkCanvas</a> for <a href='SkSurface_Reference#SkSurface'>SkSurface</a>
### Example
@@ -1272,14 +1272,14 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-<a href='undocumented#sk_sp'>sk_sp</a>&<a href='undocumented#sk_sp'>lt</a>;<a href='SkSurface_Reference#SkSurface'>SkSurface</a>&<a href='SkSurface_Reference#SkSurface'>gt</a>; <a href='#SkSurface_makeSurface'>makeSurface</a>(<a href='#SkSurface_makeSurface'>const</a> <a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a>& <a href='SkImageInfo_Reference#SkImageInfo'>imageInfo</a>)
+<a href='undocumented#sk_sp'>sk_sp</a><<a href='SkSurface_Reference#SkSurface'>SkSurface</a>> <a href='#SkSurface_makeSurface'>makeSurface</a>(const <a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a>& imageInfo)
</pre>
-Returns a compatible <a href='SkSurface_Reference#SkSurface'>SkSurface</a>, <a href='SkSurface_Reference#SkSurface'>or</a> <a href='SkSurface_Reference#SkSurface'>nullptr</a>. <a href='SkSurface_Reference#SkSurface'>Returned</a> <a href='SkSurface_Reference#SkSurface'>SkSurface</a> <a href='SkSurface_Reference#SkSurface'>contains</a>
+Returns a compatible <a href='SkSurface_Reference#SkSurface'>SkSurface</a>, or nullptr. Returned <a href='SkSurface_Reference#SkSurface'>SkSurface</a> contains
the same raster, GPU, or null properties as the original. Returned <a href='SkSurface_Reference#SkSurface'>SkSurface</a>
does not share the same pixels.
-Returns nullptr if <a href='#SkSurface_makeSurface_imageInfo'>imageInfo</a> <a href='#SkSurface_makeSurface_imageInfo'>width</a> <a href='#SkSurface_makeSurface_imageInfo'>or</a> <a href='#SkSurface_makeSurface_imageInfo'>height</a> <a href='#SkSurface_makeSurface_imageInfo'>are</a> <a href='#SkSurface_makeSurface_imageInfo'>zero</a>, <a href='#SkSurface_makeSurface_imageInfo'>or</a> <a href='#SkSurface_makeSurface_imageInfo'>if</a> <a href='#SkSurface_makeSurface_imageInfo'>imageInfo</a>
+Returns nullptr if <a href='#SkSurface_makeSurface_imageInfo'>imageInfo</a> width or height are zero, or if <a href='#SkSurface_makeSurface_imageInfo'>imageInfo</a>
is incompatible with <a href='SkSurface_Reference#SkSurface'>SkSurface</a>.
### Parameters
@@ -1289,11 +1289,11 @@
</tr>
</table>
-of <a href='SkSurface_Reference#SkSurface'>SkSurface</a>; <a href='SkSurface_Reference#SkSurface'>width</a> <a href='SkSurface_Reference#SkSurface'>and</a> <a href='SkSurface_Reference#SkSurface'>height</a> <a href='SkSurface_Reference#SkSurface'>must</a> <a href='SkSurface_Reference#SkSurface'>be</a> <a href='SkSurface_Reference#SkSurface'>greater</a> <a href='SkSurface_Reference#SkSurface'>than</a> <a href='SkSurface_Reference#SkSurface'>zero</a>
+of <a href='SkSurface_Reference#SkSurface'>SkSurface</a>; width and height must be greater than zero
### Return Value
-compatible <a href='SkSurface_Reference#SkSurface'>SkSurface</a> <a href='SkSurface_Reference#SkSurface'>or</a> <a href='SkSurface_Reference#SkSurface'>nullptr</a>
+compatible <a href='SkSurface_Reference#SkSurface'>SkSurface</a> or nullptr
### Example
@@ -1308,16 +1308,16 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-<a href='undocumented#sk_sp'>sk_sp</a>&<a href='undocumented#sk_sp'>lt</a>;<a href='SkImage_Reference#SkImage'>SkImage</a>&<a href='SkImage_Reference#SkImage'>gt</a>; <a href='#SkSurface_makeImageSnapshot'>makeImageSnapshot</a>()
+<a href='undocumented#sk_sp'>sk_sp</a><<a href='SkImage_Reference#SkImage'>SkImage</a>> <a href='#SkSurface_makeImageSnapshot'>makeImageSnapshot</a>()
</pre>
-Returns <a href='SkImage_Reference#SkImage'>SkImage</a> <a href='SkImage_Reference#SkImage'>capturing</a> <a href='SkSurface_Reference#SkSurface'>SkSurface</a> <a href='SkSurface_Reference#SkSurface'>contents</a>. <a href='SkSurface_Reference#SkSurface'>Subsequent</a> <a href='SkSurface_Reference#SkSurface'>drawing</a> <a href='SkSurface_Reference#SkSurface'>to</a> <a href='SkSurface_Reference#SkSurface'>SkSurface</a> <a href='SkSurface_Reference#SkSurface'>contents</a>
-are not captured. <a href='SkImage_Reference#SkImage'>SkImage</a> <a href='SkImage_Reference#SkImage'>allocation</a> <a href='SkImage_Reference#SkImage'>is</a> <a href='SkImage_Reference#SkImage'>accounted</a> <a href='SkImage_Reference#SkImage'>for</a> <a href='SkImage_Reference#SkImage'>if</a> <a href='SkSurface_Reference#SkSurface'>SkSurface</a> <a href='SkSurface_Reference#SkSurface'>was</a> <a href='SkSurface_Reference#SkSurface'>created</a> <a href='SkSurface_Reference#SkSurface'>with</a>
+Returns <a href='SkImage_Reference#SkImage'>SkImage</a> capturing <a href='SkSurface_Reference#SkSurface'>SkSurface</a> contents. Subsequent drawing to <a href='SkSurface_Reference#SkSurface'>SkSurface</a> contents
+are not captured. <a href='SkImage_Reference#SkImage'>SkImage</a> allocation is accounted for if <a href='SkSurface_Reference#SkSurface'>SkSurface</a> was created with
<a href='undocumented#SkBudgeted'>SkBudgeted</a>::<a href='#SkBudgeted_kYes'>kYes</a>.
### Return Value
-<a href='SkImage_Reference#SkImage'>SkImage</a> <a href='SkImage_Reference#SkImage'>initialized</a> <a href='SkImage_Reference#SkImage'>with</a> <a href='SkSurface_Reference#SkSurface'>SkSurface</a> <a href='SkSurface_Reference#SkSurface'>contents</a>
+<a href='SkImage_Reference#SkImage'>SkImage</a> initialized with <a href='SkSurface_Reference#SkSurface'>SkSurface</a> contents
### Example
@@ -1334,18 +1334,18 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-void draw(<a href='SkCanvas_Reference#SkCanvas'>SkCanvas</a>* <a href='SkCanvas_Reference#Canvas'>canvas</a>, <a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>x</a>, <a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>y</a>, <a href='undocumented#SkScalar'>const</a> <a href='SkPaint_Reference#SkPaint'>SkPaint</a>* <a href='SkPaint_Reference#Paint'>paint</a>)
+void draw(<a href='SkCanvas_Reference#SkCanvas'>SkCanvas</a>* <a href='SkCanvas_Reference#Canvas'>canvas</a>, <a href='undocumented#SkScalar'>SkScalar</a> x, <a href='undocumented#SkScalar'>SkScalar</a> y, const <a href='SkPaint_Reference#SkPaint'>SkPaint</a>* <a href='SkPaint_Reference#Paint'>paint</a>)
</pre>
-Draws <a href='SkSurface_Reference#SkSurface'>SkSurface</a> <a href='SkSurface_Reference#SkSurface'>contents</a> <a href='SkSurface_Reference#SkSurface'>to</a> <a href='#SkSurface_draw_canvas'>canvas</a>, <a href='#SkSurface_draw_canvas'>with</a> <a href='#SkSurface_draw_canvas'>its</a> <a href='#SkSurface_draw_canvas'>top-left</a> <a href='#SkSurface_draw_canvas'>corner</a> <a href='#SkSurface_draw_canvas'>at</a> (<a href='#SkSurface_draw_x'>x</a>, <a href='#SkSurface_draw_y'>y</a>).
+Draws <a href='SkSurface_Reference#SkSurface'>SkSurface</a> contents to <a href='#SkSurface_draw_canvas'>canvas</a>, with its top-left corner at (<a href='#SkSurface_draw_x'>x</a>, <a href='#SkSurface_draw_y'>y</a>).
-If <a href='SkPaint_Reference#SkPaint'>SkPaint</a> <a href='#SkSurface_draw_paint'>paint</a> <a href='#SkSurface_draw_paint'>is</a> <a href='#SkSurface_draw_paint'>not</a> <a href='#SkSurface_draw_paint'>nullptr</a>, <a href='#SkSurface_draw_paint'>apply</a> <a href='undocumented#SkColorFilter'>SkColorFilter</a>, <a href='SkColor_Reference#Alpha'>alpha</a>, <a href='undocumented#SkImageFilter'>SkImageFilter</a>,
-<a href='SkBlendMode_Reference#SkBlendMode'>SkBlendMode</a>, <a href='SkBlendMode_Reference#SkBlendMode'>and</a> <a href='undocumented#SkDrawLooper'>SkDrawLooper</a>.
+If <a href='SkPaint_Reference#SkPaint'>SkPaint</a> <a href='#SkSurface_draw_paint'>paint</a> is not nullptr, apply <a href='undocumented#SkColorFilter'>SkColorFilter</a>, <a href='SkColor_Reference#Alpha'>alpha</a>, <a href='undocumented#SkImageFilter'>SkImageFilter</a>,
+<a href='SkBlendMode_Reference#SkBlendMode'>SkBlendMode</a>, and <a href='undocumented#SkDrawLooper'>SkDrawLooper</a>.
### Parameters
<table> <tr> <td><a name='SkSurface_draw_canvas'><code><strong>canvas</strong></code></a></td>
- <td><a href='SkCanvas_Reference#SkCanvas'>SkCanvas</a> <a href='SkCanvas_Reference#SkCanvas'>drawn</a> <a href='SkCanvas_Reference#SkCanvas'>into</a></td>
+ <td><a href='SkCanvas_Reference#SkCanvas'>SkCanvas</a> drawn into</td>
</tr>
<tr> <td><a name='SkSurface_draw_x'><code><strong>x</strong></code></a></td>
<td>horizontal offset in <a href='SkCanvas_Reference#SkCanvas'>SkCanvas</a></td>
@@ -1354,7 +1354,7 @@
<td>vertical offset in <a href='SkCanvas_Reference#SkCanvas'>SkCanvas</a></td>
</tr>
<tr> <td><a name='SkSurface_draw_paint'><code><strong>paint</strong></code></a></td>
- <td><a href='SkPaint_Reference#SkPaint'>SkPaint</a> <a href='SkPaint_Reference#SkPaint'>containing</a> <a href='SkBlendMode_Reference#SkBlendMode'>SkBlendMode</a>, <a href='undocumented#SkColorFilter'>SkColorFilter</a>, <a href='undocumented#SkImageFilter'>SkImageFilter</a>,</td>
+ <td><a href='SkPaint_Reference#SkPaint'>SkPaint</a> containing <a href='SkBlendMode_Reference#SkBlendMode'>SkBlendMode</a>, <a href='undocumented#SkColorFilter'>SkColorFilter</a>, <a href='undocumented#SkImageFilter'>SkImageFilter</a>,</td>
</tr>
</table>
@@ -1376,22 +1376,22 @@
bool <a href='#SkSurface_peekPixels'>peekPixels</a>(<a href='SkPixmap_Reference#SkPixmap'>SkPixmap</a>* <a href='SkPixmap_Reference#Pixmap'>pixmap</a>)
</pre>
-Copies <a href='SkSurface_Reference#SkSurface'>SkSurface</a> <a href='undocumented#Pixel'>pixel</a> <a href='undocumented#Pixel'>address</a>, <a href='undocumented#Pixel'>row</a> <a href='undocumented#Pixel'>bytes</a>, <a href='undocumented#Pixel'>and</a> <a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a> <a href='SkImageInfo_Reference#SkImageInfo'>to</a> <a href='SkPixmap_Reference#SkPixmap'>SkPixmap</a>, <a href='SkPixmap_Reference#SkPixmap'>if</a> <a href='SkPixmap_Reference#SkPixmap'>address</a>
-is available, and returns true. If <a href='undocumented#Pixel'>pixel</a> <a href='undocumented#Pixel'>address</a> <a href='undocumented#Pixel'>is</a> <a href='undocumented#Pixel'>not</a> <a href='undocumented#Pixel'>available</a>, <a href='undocumented#Pixel'>return</a>
-false and leave <a href='SkPixmap_Reference#SkPixmap'>SkPixmap</a> <a href='SkPixmap_Reference#SkPixmap'>unchanged</a>.
+Copies <a href='SkSurface_Reference#SkSurface'>SkSurface</a> <a href='undocumented#Pixel'>pixel</a> address, row bytes, and <a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a> to <a href='SkPixmap_Reference#SkPixmap'>SkPixmap</a>, if address
+is available, and returns true. If <a href='undocumented#Pixel'>pixel</a> address is not available, return
+false and leave <a href='SkPixmap_Reference#SkPixmap'>SkPixmap</a> unchanged.
-<a href='#SkSurface_peekPixels_pixmap'>pixmap</a> <a href='#SkSurface_peekPixels_pixmap'>contents</a> <a href='#SkSurface_peekPixels_pixmap'>become</a> <a href='#SkSurface_peekPixels_pixmap'>invalid</a> <a href='#SkSurface_peekPixels_pixmap'>on</a> <a href='#SkSurface_peekPixels_pixmap'>any</a> <a href='#SkSurface_peekPixels_pixmap'>future</a> <a href='#SkSurface_peekPixels_pixmap'>change</a> <a href='#SkSurface_peekPixels_pixmap'>to</a> <a href='SkSurface_Reference#SkSurface'>SkSurface</a>.
+<a href='#SkSurface_peekPixels_pixmap'>pixmap</a> contents become invalid on any future change to <a href='SkSurface_Reference#SkSurface'>SkSurface</a>.
### Parameters
<table> <tr> <td><a name='SkSurface_peekPixels_pixmap'><code><strong>pixmap</strong></code></a></td>
- <td>storage for <a href='undocumented#Pixel'>pixel</a> <a href='undocumented#Pixel'>state</a> <a href='undocumented#Pixel'>if</a> <a href='undocumented#Pixel'>pixels</a> <a href='undocumented#Pixel'>are</a> <a href='undocumented#Pixel'>readable</a>; <a href='undocumented#Pixel'>otherwise</a>, <a href='undocumented#Pixel'>ignored</a></td>
+ <td>storage for <a href='undocumented#Pixel'>pixel</a> state if pixels are readable; otherwise, ignored</td>
</tr>
</table>
### Return Value
-true if <a href='SkSurface_Reference#SkSurface'>SkSurface</a> <a href='SkSurface_Reference#SkSurface'>has</a> <a href='SkSurface_Reference#SkSurface'>direct</a> <a href='SkSurface_Reference#SkSurface'>access</a> <a href='SkSurface_Reference#SkSurface'>to</a> <a href='SkSurface_Reference#SkSurface'>pixels</a>
+true if <a href='SkSurface_Reference#SkSurface'>SkSurface</a> has direct access to pixels
### Example
@@ -1406,34 +1406,34 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-bool <a href='#SkSurface_readPixels'>readPixels</a>(<a href='#SkSurface_readPixels'>const</a> <a href='SkPixmap_Reference#SkPixmap'>SkPixmap</a>& <a href='SkPixmap_Reference#SkPixmap'>dst</a>, <a href='SkPixmap_Reference#SkPixmap'>int</a> <a href='SkPixmap_Reference#SkPixmap'>srcX</a>, <a href='SkPixmap_Reference#SkPixmap'>int</a> <a href='SkPixmap_Reference#SkPixmap'>srcY</a>)
+bool <a href='#SkSurface_readPixels'>readPixels</a>(const <a href='SkPixmap_Reference#SkPixmap'>SkPixmap</a>& dst, int srcX, int srcY)
</pre>
-Copies <a href='SkRect_Reference#Rect'>Rect</a> <a href='SkRect_Reference#Rect'>of</a> <a href='SkRect_Reference#Rect'>pixels</a> <a href='SkRect_Reference#Rect'>to</a> <a href='#SkSurface_readPixels_dst'>dst</a>.
+Copies <a href='SkRect_Reference#Rect'>Rect</a> of pixels to <a href='#SkSurface_readPixels_dst'>dst</a>.
-<a href='#SkSurface_readPixels_dst'>Source</a> <a href='SkRect_Reference#Rect'>Rect</a> <a href='SkRect_Reference#Rect'>corners</a> <a href='SkRect_Reference#Rect'>are</a> (<a href='#SkSurface_readPixels_srcX'>srcX</a>, <a href='#SkSurface_readPixels_srcY'>srcY</a>) <a href='#SkSurface_readPixels_srcY'>and</a> <a href='SkSurface_Reference#Surface'>Surface</a> (<a href='#SkSurface_width'>width()</a>, <a href='#SkSurface_height'>height()</a>).
-<a href='#SkSurface_height'>Destination</a> <a href='SkRect_Reference#Rect'>Rect</a> <a href='SkRect_Reference#Rect'>corners</a> <a href='SkRect_Reference#Rect'>are</a> (0, 0) <a href='SkRect_Reference#Rect'>and</a> (<a href='#SkSurface_readPixels_dst'>dst</a>.<a href='#SkPixmap_width'>width()</a>, <a href='#SkSurface_readPixels_dst'>dst</a>.<a href='#SkPixmap_height'>height()</a>).
-<a href='#SkPixmap_height'>Copies</a> <a href='#SkPixmap_height'>each</a> <a href='#SkPixmap_height'>readable</a> <a href='undocumented#Pixel'>pixel</a> <a href='undocumented#Pixel'>intersecting</a> <a href='undocumented#Pixel'>both</a> <a href='undocumented#Pixel'>rectangles</a>, <a href='undocumented#Pixel'>without</a> <a href='undocumented#Pixel'>scaling</a>,
-<a href='undocumented#Pixel'>converting</a> <a href='undocumented#Pixel'>to</a> <a href='#SkSurface_readPixels_dst'>dst</a>.<a href='#SkPixmap_colorType'>colorType</a>() <a href='#SkPixmap_colorType'>and</a> <a href='#SkSurface_readPixels_dst'>dst</a>.<a href='#SkPixmap_alphaType'>alphaType</a>() <a href='#SkPixmap_alphaType'>if</a> <a href='#SkPixmap_alphaType'>required</a>.
+Source <a href='SkRect_Reference#Rect'>Rect</a> corners are (<a href='#SkSurface_readPixels_srcX'>srcX</a>, <a href='#SkSurface_readPixels_srcY'>srcY</a>) and <a href='SkSurface_Reference#Surface'>Surface</a> (<a href='#SkSurface_width'>width()</a>, <a href='#SkSurface_height'>height()</a>).
+Destination <a href='SkRect_Reference#Rect'>Rect</a> corners are (0, 0) and (<a href='#SkSurface_readPixels_dst'>dst</a>.<a href='#SkPixmap_width'>width()</a>, <a href='#SkSurface_readPixels_dst'>dst</a>.<a href='#SkPixmap_height'>height()</a>).
+Copies each readable <a href='undocumented#Pixel'>pixel</a> intersecting both rectangles, without scaling,
+converting to <a href='#SkSurface_readPixels_dst'>dst</a>.<a href='#SkPixmap_colorType'>colorType</a>() and <a href='#SkSurface_readPixels_dst'>dst</a>.<a href='#SkPixmap_alphaType'>alphaType</a>() if required.
-<a href='#SkPixmap_alphaType'>Pixels</a> <a href='#SkPixmap_alphaType'>are</a> <a href='#SkPixmap_alphaType'>readable</a> <a href='#SkPixmap_alphaType'>when</a> <a href='SkSurface_Reference#Surface'>Surface</a> <a href='SkSurface_Reference#Surface'>is</a> <a href='SkSurface_Reference#Surface'>raster</a>, <a href='SkSurface_Reference#Surface'>or</a> <a href='SkSurface_Reference#Surface'>backed</a> <a href='SkSurface_Reference#Surface'>by</a> <a href='SkSurface_Reference#Surface'>a</a> <a href='SkSurface_Reference#Surface'>GPU</a>.
+Pixels are readable when <a href='SkSurface_Reference#Surface'>Surface</a> is raster, or backed by a GPU.
-<a href='SkSurface_Reference#Surface'>The</a> <a href='SkSurface_Reference#Surface'>destination</a> <a href='undocumented#Pixel_Storage'>pixel storage</a> <a href='undocumented#Pixel'>must</a> <a href='undocumented#Pixel'>be</a> <a href='undocumented#Pixel'>allocated</a> <a href='undocumented#Pixel'>by</a> <a href='undocumented#Pixel'>the</a> <a href='undocumented#Pixel'>caller</a>.
+The destination <a href='undocumented#Pixel_Storage'>pixel storage</a> must be allocated by the caller.
-<a href='undocumented#Pixel'>Pixel</a> <a href='undocumented#Pixel'>values</a> <a href='undocumented#Pixel'>are</a> <a href='undocumented#Pixel'>converted</a> <a href='undocumented#Pixel'>only</a> <a href='undocumented#Pixel'>if</a> <a href='#Image_Info_Color_Type'>Color_Type</a> <a href='#Image_Info_Color_Type'>and</a> <a href='#Image_Info_Alpha_Type'>Alpha_Type</a>
-<a href='#Image_Info_Alpha_Type'>do</a> <a href='#Image_Info_Alpha_Type'>not</a> <a href='#Image_Info_Alpha_Type'>match</a>. <a href='#Image_Info_Alpha_Type'>Only</a> <a href='#Image_Info_Alpha_Type'>pixels</a> <a href='#Image_Info_Alpha_Type'>within</a> <a href='#Image_Info_Alpha_Type'>both</a> <a href='#Image_Info_Alpha_Type'>source</a> <a href='#Image_Info_Alpha_Type'>and</a> <a href='#Image_Info_Alpha_Type'>destination</a> <a href='#Image_Info_Alpha_Type'>rectangles</a>
-<a href='#Image_Info_Alpha_Type'>are</a> <a href='#Image_Info_Alpha_Type'>copied</a>. <a href='#SkSurface_readPixels_dst'>dst</a> <a href='#SkSurface_readPixels_dst'>contents</a> <a href='#SkSurface_readPixels_dst'>outside</a> <a href='SkRect_Reference#Rect'>Rect</a> <a href='SkRect_Reference#Rect'>intersection</a> <a href='SkRect_Reference#Rect'>are</a> <a href='SkRect_Reference#Rect'>unchanged</a>.
+<a href='undocumented#Pixel'>Pixel</a> values are converted only if <a href='#Image_Info_Color_Type'>Color_Type</a> and <a href='#Image_Info_Alpha_Type'>Alpha_Type</a>
+do not match. Only pixels within both source and destination rectangles
+are copied. <a href='#SkSurface_readPixels_dst'>dst</a> contents outside <a href='SkRect_Reference#Rect'>Rect</a> intersection are unchanged.
-<a href='SkRect_Reference#Rect'>Pass</a> <a href='SkRect_Reference#Rect'>negative</a> <a href='SkRect_Reference#Rect'>values</a> <a href='SkRect_Reference#Rect'>for</a> <a href='#SkSurface_readPixels_srcX'>srcX</a> <a href='#SkSurface_readPixels_srcX'>or</a> <a href='#SkSurface_readPixels_srcY'>srcY</a> <a href='#SkSurface_readPixels_srcY'>to</a> <a href='#SkSurface_readPixels_srcY'>offset</a> <a href='#SkSurface_readPixels_srcY'>pixels</a> <a href='#SkSurface_readPixels_srcY'>across</a> <a href='#SkSurface_readPixels_srcY'>or</a> <a href='#SkSurface_readPixels_srcY'>down</a> <a href='#SkSurface_readPixels_srcY'>destination</a>.
+Pass negative values for <a href='#SkSurface_readPixels_srcX'>srcX</a> or <a href='#SkSurface_readPixels_srcY'>srcY</a> to offset pixels across or down destination.
-<a href='#SkSurface_readPixels_srcY'>Does</a> <a href='#SkSurface_readPixels_srcY'>not</a> <a href='#SkSurface_readPixels_srcY'>copy</a>, <a href='#SkSurface_readPixels_srcY'>and</a> <a href='#SkSurface_readPixels_srcY'>returns</a> <a href='#SkSurface_readPixels_srcY'>false</a> <a href='#SkSurface_readPixels_srcY'>if</a>:
+Does not copy, and returns false if:
<table> <tr>
<td>Source and destination rectangles do not intersect.</td>
</tr> <tr>
- <td><a href='SkPixmap_Reference#Pixmap'>Pixmap</a> <a href='SkPixmap_Reference#Pixmap'>pixels</a> <a href='SkPixmap_Reference#Pixmap'>could</a> <a href='SkPixmap_Reference#Pixmap'>not</a> <a href='SkPixmap_Reference#Pixmap'>be</a> <a href='SkPixmap_Reference#Pixmap'>allocated</a>.</td>
+ <td><a href='SkPixmap_Reference#Pixmap'>Pixmap</a> pixels could not be allocated.</td>
</tr> <tr>
- <td><a href='#SkSurface_readPixels_dst'>dst</a>.<a href='#SkPixmap_rowBytes'>rowBytes</a>() <a href='#SkPixmap_rowBytes'>is</a> <a href='#SkPixmap_rowBytes'>too</a> <a href='#SkPixmap_rowBytes'>small</a> <a href='#SkPixmap_rowBytes'>to</a> <a href='#SkPixmap_rowBytes'>contain</a> <a href='#SkPixmap_rowBytes'>one</a> <a href='#SkPixmap_rowBytes'>row</a> <a href='#SkPixmap_rowBytes'>of</a> <a href='#SkPixmap_rowBytes'>pixels</a>.</td>
+ <td><a href='#SkSurface_readPixels_dst'>dst</a>.<a href='#SkPixmap_rowBytes'>rowBytes</a>() is too small to contain one row of pixels.</td>
</tr>
</table>
@@ -1467,47 +1467,47 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-bool <a href='#SkSurface_readPixels'>readPixels</a>(<a href='#SkSurface_readPixels'>const</a> <a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a>& <a href='SkImageInfo_Reference#SkImageInfo'>dstInfo</a>, <a href='SkImageInfo_Reference#SkImageInfo'>void</a>* <a href='SkImageInfo_Reference#SkImageInfo'>dstPixels</a>, <a href='SkImageInfo_Reference#SkImageInfo'>size_t</a> <a href='SkImageInfo_Reference#SkImageInfo'>dstRowBytes</a>, <a href='SkImageInfo_Reference#SkImageInfo'>int</a> <a href='SkImageInfo_Reference#SkImageInfo'>srcX</a>, <a href='SkImageInfo_Reference#SkImageInfo'>int</a> <a href='SkImageInfo_Reference#SkImageInfo'>srcY</a>)
+bool <a href='#SkSurface_readPixels'>readPixels</a>(const <a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a>& dstInfo, void* dstPixels, size_t dstRowBytes, int srcX, int srcY)
</pre>
-Copies <a href='SkRect_Reference#Rect'>Rect</a> <a href='SkRect_Reference#Rect'>of</a> <a href='SkRect_Reference#Rect'>pixels</a> <a href='SkRect_Reference#Rect'>from</a> <a href='SkCanvas_Reference#Canvas'>Canvas</a> <a href='SkCanvas_Reference#Canvas'>into</a> <a href='#SkSurface_readPixels_2_dstPixels'>dstPixels</a>.
+Copies <a href='SkRect_Reference#Rect'>Rect</a> of pixels from <a href='SkCanvas_Reference#Canvas'>Canvas</a> into <a href='#SkSurface_readPixels_2_dstPixels'>dstPixels</a>.
-<a href='#SkSurface_readPixels_2_dstPixels'>Source</a> <a href='SkRect_Reference#Rect'>Rect</a> <a href='SkRect_Reference#Rect'>corners</a> <a href='SkRect_Reference#Rect'>are</a> (<a href='#SkSurface_readPixels_2_srcX'>srcX</a>, <a href='#SkSurface_readPixels_2_srcY'>srcY</a>) <a href='#SkSurface_readPixels_2_srcY'>and</a> <a href='SkSurface_Reference#Surface'>Surface</a> (<a href='#SkSurface_width'>width()</a>, <a href='#SkSurface_height'>height()</a>).
-<a href='#SkSurface_height'>Destination</a> <a href='SkRect_Reference#Rect'>Rect</a> <a href='SkRect_Reference#Rect'>corners</a> <a href='SkRect_Reference#Rect'>are</a> (0, 0) <a href='SkRect_Reference#Rect'>and</a> (<a href='#SkSurface_readPixels_2_dstInfo'>dstInfo</a>.<a href='#SkImageInfo_width'>width()</a>, <a href='#SkSurface_readPixels_2_dstInfo'>dstInfo</a>.<a href='#SkImageInfo_height'>height()</a>).
-<a href='#SkImageInfo_height'>Copies</a> <a href='#SkImageInfo_height'>each</a> <a href='#SkImageInfo_height'>readable</a> <a href='undocumented#Pixel'>pixel</a> <a href='undocumented#Pixel'>intersecting</a> <a href='undocumented#Pixel'>both</a> <a href='undocumented#Pixel'>rectangles</a>, <a href='undocumented#Pixel'>without</a> <a href='undocumented#Pixel'>scaling</a>,
-<a href='undocumented#Pixel'>converting</a> <a href='undocumented#Pixel'>to</a> <a href='#SkSurface_readPixels_2_dstInfo'>dstInfo</a>.<a href='#SkImageInfo_colorType'>colorType</a>() <a href='#SkImageInfo_colorType'>and</a> <a href='#SkSurface_readPixels_2_dstInfo'>dstInfo</a>.<a href='#SkImageInfo_alphaType'>alphaType</a>() <a href='#SkImageInfo_alphaType'>if</a> <a href='#SkImageInfo_alphaType'>required</a>.
+Source <a href='SkRect_Reference#Rect'>Rect</a> corners are (<a href='#SkSurface_readPixels_2_srcX'>srcX</a>, <a href='#SkSurface_readPixels_2_srcY'>srcY</a>) and <a href='SkSurface_Reference#Surface'>Surface</a> (<a href='#SkSurface_width'>width()</a>, <a href='#SkSurface_height'>height()</a>).
+Destination <a href='SkRect_Reference#Rect'>Rect</a> corners are (0, 0) and (<a href='#SkSurface_readPixels_2_dstInfo'>dstInfo</a>.<a href='#SkImageInfo_width'>width()</a>, <a href='#SkSurface_readPixels_2_dstInfo'>dstInfo</a>.<a href='#SkImageInfo_height'>height()</a>).
+Copies each readable <a href='undocumented#Pixel'>pixel</a> intersecting both rectangles, without scaling,
+converting to <a href='#SkSurface_readPixels_2_dstInfo'>dstInfo</a>.<a href='#SkImageInfo_colorType'>colorType</a>() and <a href='#SkSurface_readPixels_2_dstInfo'>dstInfo</a>.<a href='#SkImageInfo_alphaType'>alphaType</a>() if required.
-<a href='#SkImageInfo_alphaType'>Pixels</a> <a href='#SkImageInfo_alphaType'>are</a> <a href='#SkImageInfo_alphaType'>readable</a> <a href='#SkImageInfo_alphaType'>when</a> <a href='SkSurface_Reference#Surface'>Surface</a> <a href='SkSurface_Reference#Surface'>is</a> <a href='SkSurface_Reference#Surface'>raster</a>, <a href='SkSurface_Reference#Surface'>or</a> <a href='SkSurface_Reference#Surface'>backed</a> <a href='SkSurface_Reference#Surface'>by</a> <a href='SkSurface_Reference#Surface'>a</a> <a href='SkSurface_Reference#Surface'>GPU</a>.
+Pixels are readable when <a href='SkSurface_Reference#Surface'>Surface</a> is raster, or backed by a GPU.
-<a href='SkSurface_Reference#Surface'>The</a> <a href='SkSurface_Reference#Surface'>destination</a> <a href='undocumented#Pixel_Storage'>pixel storage</a> <a href='undocumented#Pixel'>must</a> <a href='undocumented#Pixel'>be</a> <a href='undocumented#Pixel'>allocated</a> <a href='undocumented#Pixel'>by</a> <a href='undocumented#Pixel'>the</a> <a href='undocumented#Pixel'>caller</a>.
+The destination <a href='undocumented#Pixel_Storage'>pixel storage</a> must be allocated by the caller.
-<a href='undocumented#Pixel'>Pixel</a> <a href='undocumented#Pixel'>values</a> <a href='undocumented#Pixel'>are</a> <a href='undocumented#Pixel'>converted</a> <a href='undocumented#Pixel'>only</a> <a href='undocumented#Pixel'>if</a> <a href='#Image_Info_Color_Type'>Color_Type</a> <a href='#Image_Info_Color_Type'>and</a> <a href='#Image_Info_Alpha_Type'>Alpha_Type</a>
-<a href='#Image_Info_Alpha_Type'>do</a> <a href='#Image_Info_Alpha_Type'>not</a> <a href='#Image_Info_Alpha_Type'>match</a>. <a href='#Image_Info_Alpha_Type'>Only</a> <a href='#Image_Info_Alpha_Type'>pixels</a> <a href='#Image_Info_Alpha_Type'>within</a> <a href='#Image_Info_Alpha_Type'>both</a> <a href='#Image_Info_Alpha_Type'>source</a> <a href='#Image_Info_Alpha_Type'>and</a> <a href='#Image_Info_Alpha_Type'>destination</a> <a href='#Image_Info_Alpha_Type'>rectangles</a>
-<a href='#Image_Info_Alpha_Type'>are</a> <a href='#Image_Info_Alpha_Type'>copied</a>. <a href='#SkSurface_readPixels_2_dstPixels'>dstPixels</a> <a href='#SkSurface_readPixels_2_dstPixels'>contents</a> <a href='#SkSurface_readPixels_2_dstPixels'>outside</a> <a href='SkRect_Reference#Rect'>Rect</a> <a href='SkRect_Reference#Rect'>intersection</a> <a href='SkRect_Reference#Rect'>are</a> <a href='SkRect_Reference#Rect'>unchanged</a>.
+<a href='undocumented#Pixel'>Pixel</a> values are converted only if <a href='#Image_Info_Color_Type'>Color_Type</a> and <a href='#Image_Info_Alpha_Type'>Alpha_Type</a>
+do not match. Only pixels within both source and destination rectangles
+are copied. <a href='#SkSurface_readPixels_2_dstPixels'>dstPixels</a> contents outside <a href='SkRect_Reference#Rect'>Rect</a> intersection are unchanged.
-<a href='SkRect_Reference#Rect'>Pass</a> <a href='SkRect_Reference#Rect'>negative</a> <a href='SkRect_Reference#Rect'>values</a> <a href='SkRect_Reference#Rect'>for</a> <a href='#SkSurface_readPixels_2_srcX'>srcX</a> <a href='#SkSurface_readPixels_2_srcX'>or</a> <a href='#SkSurface_readPixels_2_srcY'>srcY</a> <a href='#SkSurface_readPixels_2_srcY'>to</a> <a href='#SkSurface_readPixels_2_srcY'>offset</a> <a href='#SkSurface_readPixels_2_srcY'>pixels</a> <a href='#SkSurface_readPixels_2_srcY'>across</a> <a href='#SkSurface_readPixels_2_srcY'>or</a> <a href='#SkSurface_readPixels_2_srcY'>down</a> <a href='#SkSurface_readPixels_2_srcY'>destination</a>.
+Pass negative values for <a href='#SkSurface_readPixels_2_srcX'>srcX</a> or <a href='#SkSurface_readPixels_2_srcY'>srcY</a> to offset pixels across or down destination.
-<a href='#SkSurface_readPixels_2_srcY'>Does</a> <a href='#SkSurface_readPixels_2_srcY'>not</a> <a href='#SkSurface_readPixels_2_srcY'>copy</a>, <a href='#SkSurface_readPixels_2_srcY'>and</a> <a href='#SkSurface_readPixels_2_srcY'>returns</a> <a href='#SkSurface_readPixels_2_srcY'>false</a> <a href='#SkSurface_readPixels_2_srcY'>if</a>:
+Does not copy, and returns false if:
<table> <tr>
<td>Source and destination rectangles do not intersect.</td>
</tr> <tr>
- <td><a href='SkSurface_Reference#Surface'>Surface</a> <a href='SkSurface_Reference#Surface'>pixels</a> <a href='SkSurface_Reference#Surface'>could</a> <a href='SkSurface_Reference#Surface'>not</a> <a href='SkSurface_Reference#Surface'>be</a> <a href='SkSurface_Reference#Surface'>converted</a> <a href='SkSurface_Reference#Surface'>to</a> <a href='#SkSurface_readPixels_2_dstInfo'>dstInfo</a>.<a href='#SkImageInfo_colorType'>colorType</a>() <a href='#SkImageInfo_colorType'>or</a> <a href='#SkSurface_readPixels_2_dstInfo'>dstInfo</a>.<a href='#SkImageInfo_alphaType'>alphaType</a>().</td>
+ <td><a href='SkSurface_Reference#Surface'>Surface</a> pixels could not be converted to <a href='#SkSurface_readPixels_2_dstInfo'>dstInfo</a>.<a href='#SkImageInfo_colorType'>colorType</a>() or <a href='#SkSurface_readPixels_2_dstInfo'>dstInfo</a>.<a href='#SkImageInfo_alphaType'>alphaType</a>().</td>
</tr> <tr>
- <td><a href='#SkSurface_readPixels_2_dstRowBytes'>dstRowBytes</a> <a href='#SkSurface_readPixels_2_dstRowBytes'>is</a> <a href='#SkSurface_readPixels_2_dstRowBytes'>too</a> <a href='#SkSurface_readPixels_2_dstRowBytes'>small</a> <a href='#SkSurface_readPixels_2_dstRowBytes'>to</a> <a href='#SkSurface_readPixels_2_dstRowBytes'>contain</a> <a href='#SkSurface_readPixels_2_dstRowBytes'>one</a> <a href='#SkSurface_readPixels_2_dstRowBytes'>row</a> <a href='#SkSurface_readPixels_2_dstRowBytes'>of</a> <a href='#SkSurface_readPixels_2_dstRowBytes'>pixels</a>.</td>
+ <td><a href='#SkSurface_readPixels_2_dstRowBytes'>dstRowBytes</a> is too small to contain one row of pixels.</td>
</tr>
</table>
### Parameters
<table> <tr> <td><a name='SkSurface_readPixels_2_dstInfo'><code><strong>dstInfo</strong></code></a></td>
- <td>width, height, <a href='#Image_Info_Color_Type'>Color_Type</a>, <a href='#Image_Info_Color_Type'>and</a> <a href='#Image_Info_Alpha_Type'>Alpha_Type</a> <a href='#Image_Info_Alpha_Type'>of</a> <a href='#SkSurface_readPixels_2_dstPixels'>dstPixels</a></td>
+ <td>width, height, <a href='#Image_Info_Color_Type'>Color_Type</a>, and <a href='#Image_Info_Alpha_Type'>Alpha_Type</a> of <a href='#SkSurface_readPixels_2_dstPixels'>dstPixels</a></td>
</tr>
<tr> <td><a name='SkSurface_readPixels_2_dstPixels'><code><strong>dstPixels</strong></code></a></td>
- <td>storage for pixels; <a href='#SkSurface_readPixels_2_dstInfo'>dstInfo</a>.<a href='#SkImageInfo_height'>height()</a> <a href='#SkImageInfo_height'>times</a> <a href='#SkSurface_readPixels_2_dstRowBytes'>dstRowBytes</a>, <a href='#SkSurface_readPixels_2_dstRowBytes'>or</a> <a href='#SkSurface_readPixels_2_dstRowBytes'>larger</a></td>
+ <td>storage for pixels; <a href='#SkSurface_readPixels_2_dstInfo'>dstInfo</a>.<a href='#SkImageInfo_height'>height()</a> times <a href='#SkSurface_readPixels_2_dstRowBytes'>dstRowBytes</a>, or larger</td>
</tr>
<tr> <td><a name='SkSurface_readPixels_2_dstRowBytes'><code><strong>dstRowBytes</strong></code></a></td>
- <td><a href='undocumented#Size'>size</a> <a href='undocumented#Size'>of</a> <a href='undocumented#Size'>one</a> <a href='undocumented#Size'>destination</a> <a href='undocumented#Size'>row</a>; <a href='#SkSurface_readPixels_2_dstInfo'>dstInfo</a>.<a href='#SkImageInfo_width'>width()</a> <a href='#SkImageInfo_width'>times</a> <a href='undocumented#Pixel'>pixel</a> <a href='undocumented#Size'>size</a>, <a href='undocumented#Size'>or</a> <a href='undocumented#Size'>larger</a></td>
+ <td><a href='undocumented#Size'>size</a> of one destination row; <a href='#SkSurface_readPixels_2_dstInfo'>dstInfo</a>.<a href='#SkImageInfo_width'>width()</a> times <a href='undocumented#Pixel'>pixel</a> <a href='undocumented#Size'>size</a>, or larger</td>
</tr>
<tr> <td><a name='SkSurface_readPixels_2_srcX'><code><strong>srcX</strong></code></a></td>
<td>offset into readable pixels on x-axis; may be negative</td>
@@ -1523,9 +1523,9 @@
### Example
-<div><fiddle-embed name="484d60dab5d846bf28c7a4d48892324a"><div>A black <a href='undocumented#Oval'>oval</a> <a href='undocumented#Oval'>drawn</a> <a href='undocumented#Oval'>on</a> <a href='undocumented#Oval'>a</a> <a href='undocumented#Oval'>red</a> <a href='undocumented#Oval'>background</a> <a href='undocumented#Oval'>provides</a> <a href='undocumented#Oval'>an</a> <a href='SkImage_Reference#Image'>image</a> <a href='SkImage_Reference#Image'>to</a> <a href='SkImage_Reference#Image'>copy</a>.
-<a href='#SkSurface_readPixels'>readPixels</a> <a href='#SkSurface_readPixels'>copies</a> <a href='#SkSurface_readPixels'>one</a> <a href='#SkSurface_readPixels'>quarter</a> <a href='#SkSurface_readPixels'>of</a> <a href='#SkSurface_readPixels'>the</a> <a href='SkSurface_Reference#Surface'>Surface</a> <a href='SkSurface_Reference#Surface'>into</a> <a href='SkSurface_Reference#Surface'>each</a> <a href='SkSurface_Reference#Surface'>of</a> <a href='SkSurface_Reference#Surface'>the</a> <a href='SkSurface_Reference#Surface'>four</a> <a href='SkSurface_Reference#Surface'>corners</a>.
-<a href='SkSurface_Reference#Surface'>The</a> <a href='SkSurface_Reference#Surface'>copied</a> <a href='SkSurface_Reference#Surface'>quarter</a> <a href='undocumented#Oval'>ovals</a> <a href='undocumented#Oval'>overdraw</a> <a href='undocumented#Oval'>the</a> <a href='undocumented#Oval'>original</a> <a href='undocumented#Oval'>oval</a>.
+<div><fiddle-embed name="484d60dab5d846bf28c7a4d48892324a"><div>A black <a href='undocumented#Oval'>oval</a> drawn on a red background provides an <a href='SkImage_Reference#Image'>image</a> to copy.
+<a href='#SkSurface_readPixels'>readPixels</a> copies one quarter of the <a href='SkSurface_Reference#Surface'>Surface</a> into each of the four corners.
+The copied quarter <a href='undocumented#Oval'>ovals</a> overdraw the original <a href='undocumented#Oval'>oval</a>.
</div></fiddle-embed></div>
### See Also
@@ -1537,36 +1537,36 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-bool <a href='#SkSurface_readPixels'>readPixels</a>(<a href='#SkSurface_readPixels'>const</a> <a href='SkBitmap_Reference#SkBitmap'>SkBitmap</a>& <a href='SkBitmap_Reference#SkBitmap'>dst</a>, <a href='SkBitmap_Reference#SkBitmap'>int</a> <a href='SkBitmap_Reference#SkBitmap'>srcX</a>, <a href='SkBitmap_Reference#SkBitmap'>int</a> <a href='SkBitmap_Reference#SkBitmap'>srcY</a>)
+bool <a href='#SkSurface_readPixels'>readPixels</a>(const <a href='SkBitmap_Reference#SkBitmap'>SkBitmap</a>& dst, int srcX, int srcY)
</pre>
-Copies <a href='SkRect_Reference#Rect'>Rect</a> <a href='SkRect_Reference#Rect'>of</a> <a href='SkRect_Reference#Rect'>pixels</a> <a href='SkRect_Reference#Rect'>from</a> <a href='SkSurface_Reference#Surface'>Surface</a> <a href='SkSurface_Reference#Surface'>into</a> <a href='SkBitmap_Reference#Bitmap'>bitmap</a>.
+Copies <a href='SkRect_Reference#Rect'>Rect</a> of pixels from <a href='SkSurface_Reference#Surface'>Surface</a> into <a href='SkBitmap_Reference#Bitmap'>bitmap</a>.
-<a href='SkBitmap_Reference#Bitmap'>Source</a> <a href='SkRect_Reference#Rect'>Rect</a> <a href='SkRect_Reference#Rect'>corners</a> <a href='SkRect_Reference#Rect'>are</a> (<a href='#SkSurface_readPixels_3_srcX'>srcX</a>, <a href='#SkSurface_readPixels_3_srcY'>srcY</a>) <a href='#SkSurface_readPixels_3_srcY'>and</a> <a href='SkSurface_Reference#Surface'>Surface</a> (<a href='#SkSurface_width'>width()</a>, <a href='#SkSurface_height'>height()</a>).
-<a href='#SkSurface_height'>Destination</a> <a href='SkRect_Reference#Rect'>Rect</a> <a href='SkRect_Reference#Rect'>corners</a> <a href='SkRect_Reference#Rect'>are</a> (0, 0) <a href='SkRect_Reference#Rect'>and</a> (<a href='SkBitmap_Reference#Bitmap'>bitmap</a>.<a href='#SkSurface_width'>width()</a>, <a href='SkBitmap_Reference#Bitmap'>bitmap</a>.<a href='#SkSurface_height'>height()</a>).
-<a href='#SkSurface_height'>Copies</a> <a href='#SkSurface_height'>each</a> <a href='#SkSurface_height'>readable</a> <a href='undocumented#Pixel'>pixel</a> <a href='undocumented#Pixel'>intersecting</a> <a href='undocumented#Pixel'>both</a> <a href='undocumented#Pixel'>rectangles</a>, <a href='undocumented#Pixel'>without</a> <a href='undocumented#Pixel'>scaling</a>,
-<a href='undocumented#Pixel'>converting</a> <a href='undocumented#Pixel'>to</a> <a href='#SkSurface_readPixels_3_dst'>dst</a>.<a href='#SkBitmap_colorType'>colorType</a>() <a href='#SkBitmap_colorType'>and</a> <a href='#SkSurface_readPixels_3_dst'>dst</a>.<a href='#SkBitmap_alphaType'>alphaType</a>() <a href='#SkBitmap_alphaType'>if</a> <a href='#SkBitmap_alphaType'>required</a>.
+Source <a href='SkRect_Reference#Rect'>Rect</a> corners are (<a href='#SkSurface_readPixels_3_srcX'>srcX</a>, <a href='#SkSurface_readPixels_3_srcY'>srcY</a>) and <a href='SkSurface_Reference#Surface'>Surface</a> (<a href='#SkSurface_width'>width()</a>, <a href='#SkSurface_height'>height()</a>).
+Destination <a href='SkRect_Reference#Rect'>Rect</a> corners are (0, 0) and (<a href='SkBitmap_Reference#Bitmap'>bitmap</a>.<a href='#SkSurface_width'>width()</a>, <a href='SkBitmap_Reference#Bitmap'>bitmap</a>.<a href='#SkSurface_height'>height()</a>).
+Copies each readable <a href='undocumented#Pixel'>pixel</a> intersecting both rectangles, without scaling,
+converting to <a href='#SkSurface_readPixels_3_dst'>dst</a>.<a href='#SkBitmap_colorType'>colorType</a>() and <a href='#SkSurface_readPixels_3_dst'>dst</a>.<a href='#SkBitmap_alphaType'>alphaType</a>() if required.
-<a href='#SkBitmap_alphaType'>Pixels</a> <a href='#SkBitmap_alphaType'>are</a> <a href='#SkBitmap_alphaType'>readable</a> <a href='#SkBitmap_alphaType'>when</a> <a href='SkSurface_Reference#Surface'>Surface</a> <a href='SkSurface_Reference#Surface'>is</a> <a href='SkSurface_Reference#Surface'>raster</a>, <a href='SkSurface_Reference#Surface'>or</a> <a href='SkSurface_Reference#Surface'>backed</a> <a href='SkSurface_Reference#Surface'>by</a> <a href='SkSurface_Reference#Surface'>a</a> <a href='SkSurface_Reference#Surface'>GPU</a>.
+Pixels are readable when <a href='SkSurface_Reference#Surface'>Surface</a> is raster, or backed by a GPU.
-<a href='SkSurface_Reference#Surface'>The</a> <a href='SkSurface_Reference#Surface'>destination</a> <a href='undocumented#Pixel_Storage'>pixel storage</a> <a href='undocumented#Pixel'>must</a> <a href='undocumented#Pixel'>be</a> <a href='undocumented#Pixel'>allocated</a> <a href='undocumented#Pixel'>by</a> <a href='undocumented#Pixel'>the</a> <a href='undocumented#Pixel'>caller</a>.
+The destination <a href='undocumented#Pixel_Storage'>pixel storage</a> must be allocated by the caller.
-<a href='undocumented#Pixel'>Pixel</a> <a href='undocumented#Pixel'>values</a> <a href='undocumented#Pixel'>are</a> <a href='undocumented#Pixel'>converted</a> <a href='undocumented#Pixel'>only</a> <a href='undocumented#Pixel'>if</a> <a href='#Image_Info_Color_Type'>Color_Type</a> <a href='#Image_Info_Color_Type'>and</a> <a href='#Image_Info_Alpha_Type'>Alpha_Type</a>
-<a href='#Image_Info_Alpha_Type'>do</a> <a href='#Image_Info_Alpha_Type'>not</a> <a href='#Image_Info_Alpha_Type'>match</a>. <a href='#Image_Info_Alpha_Type'>Only</a> <a href='#Image_Info_Alpha_Type'>pixels</a> <a href='#Image_Info_Alpha_Type'>within</a> <a href='#Image_Info_Alpha_Type'>both</a> <a href='#Image_Info_Alpha_Type'>source</a> <a href='#Image_Info_Alpha_Type'>and</a> <a href='#Image_Info_Alpha_Type'>destination</a> <a href='#Image_Info_Alpha_Type'>rectangles</a>
-<a href='#Image_Info_Alpha_Type'>are</a> <a href='#Image_Info_Alpha_Type'>copied</a>. <a href='#SkSurface_readPixels_3_dst'>dst</a> <a href='#SkSurface_readPixels_3_dst'>contents</a> <a href='#SkSurface_readPixels_3_dst'>outside</a> <a href='SkRect_Reference#Rect'>Rect</a> <a href='SkRect_Reference#Rect'>intersection</a> <a href='SkRect_Reference#Rect'>are</a> <a href='SkRect_Reference#Rect'>unchanged</a>.
+<a href='undocumented#Pixel'>Pixel</a> values are converted only if <a href='#Image_Info_Color_Type'>Color_Type</a> and <a href='#Image_Info_Alpha_Type'>Alpha_Type</a>
+do not match. Only pixels within both source and destination rectangles
+are copied. <a href='#SkSurface_readPixels_3_dst'>dst</a> contents outside <a href='SkRect_Reference#Rect'>Rect</a> intersection are unchanged.
-<a href='SkRect_Reference#Rect'>Pass</a> <a href='SkRect_Reference#Rect'>negative</a> <a href='SkRect_Reference#Rect'>values</a> <a href='SkRect_Reference#Rect'>for</a> <a href='#SkSurface_readPixels_3_srcX'>srcX</a> <a href='#SkSurface_readPixels_3_srcX'>or</a> <a href='#SkSurface_readPixels_3_srcY'>srcY</a> <a href='#SkSurface_readPixels_3_srcY'>to</a> <a href='#SkSurface_readPixels_3_srcY'>offset</a> <a href='#SkSurface_readPixels_3_srcY'>pixels</a> <a href='#SkSurface_readPixels_3_srcY'>across</a> <a href='#SkSurface_readPixels_3_srcY'>or</a> <a href='#SkSurface_readPixels_3_srcY'>down</a> <a href='#SkSurface_readPixels_3_srcY'>destination</a>.
+Pass negative values for <a href='#SkSurface_readPixels_3_srcX'>srcX</a> or <a href='#SkSurface_readPixels_3_srcY'>srcY</a> to offset pixels across or down destination.
-<a href='#SkSurface_readPixels_3_srcY'>Does</a> <a href='#SkSurface_readPixels_3_srcY'>not</a> <a href='#SkSurface_readPixels_3_srcY'>copy</a>, <a href='#SkSurface_readPixels_3_srcY'>and</a> <a href='#SkSurface_readPixels_3_srcY'>returns</a> <a href='#SkSurface_readPixels_3_srcY'>false</a> <a href='#SkSurface_readPixels_3_srcY'>if</a>:
+Does not copy, and returns false if:
<table> <tr>
<td>Source and destination rectangles do not intersect.</td>
</tr> <tr>
- <td><a href='SkSurface_Reference#Surface'>Surface</a> <a href='SkSurface_Reference#Surface'>pixels</a> <a href='SkSurface_Reference#Surface'>could</a> <a href='SkSurface_Reference#Surface'>not</a> <a href='SkSurface_Reference#Surface'>be</a> <a href='SkSurface_Reference#Surface'>converted</a> <a href='SkSurface_Reference#Surface'>to</a> <a href='#SkSurface_readPixels_3_dst'>dst</a>.<a href='#SkBitmap_colorType'>colorType</a>() <a href='#SkBitmap_colorType'>or</a> <a href='#SkSurface_readPixels_3_dst'>dst</a>.<a href='#SkBitmap_alphaType'>alphaType</a>().</td>
+ <td><a href='SkSurface_Reference#Surface'>Surface</a> pixels could not be converted to <a href='#SkSurface_readPixels_3_dst'>dst</a>.<a href='#SkBitmap_colorType'>colorType</a>() or <a href='#SkSurface_readPixels_3_dst'>dst</a>.<a href='#SkBitmap_alphaType'>alphaType</a>().</td>
</tr> <tr>
- <td><a href='#SkSurface_readPixels_3_dst'>dst</a> <a href='#SkSurface_readPixels_3_dst'>pixels</a> <a href='#SkSurface_readPixels_3_dst'>could</a> <a href='#SkSurface_readPixels_3_dst'>not</a> <a href='#SkSurface_readPixels_3_dst'>be</a> <a href='#SkSurface_readPixels_3_dst'>allocated</a>.</td>
+ <td><a href='#SkSurface_readPixels_3_dst'>dst</a> pixels could not be allocated.</td>
</tr> <tr>
- <td><a href='#SkSurface_readPixels_3_dst'>dst</a>.<a href='#SkBitmap_rowBytes'>rowBytes</a>() <a href='#SkBitmap_rowBytes'>is</a> <a href='#SkBitmap_rowBytes'>too</a> <a href='#SkBitmap_rowBytes'>small</a> <a href='#SkBitmap_rowBytes'>to</a> <a href='#SkBitmap_rowBytes'>contain</a> <a href='#SkBitmap_rowBytes'>one</a> <a href='#SkBitmap_rowBytes'>row</a> <a href='#SkBitmap_rowBytes'>of</a> <a href='#SkBitmap_rowBytes'>pixels</a>.</td>
+ <td><a href='#SkSurface_readPixels_3_dst'>dst</a>.<a href='#SkBitmap_rowBytes'>rowBytes</a>() is too small to contain one row of pixels.</td>
</tr>
</table>
@@ -1600,17 +1600,17 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-void <a href='#SkSurface_writePixels'>writePixels</a>(<a href='#SkSurface_writePixels'>const</a> <a href='SkPixmap_Reference#SkPixmap'>SkPixmap</a>& <a href='SkPixmap_Reference#SkPixmap'>src</a>, <a href='SkPixmap_Reference#SkPixmap'>int</a> <a href='SkPixmap_Reference#SkPixmap'>dstX</a>, <a href='SkPixmap_Reference#SkPixmap'>int</a> <a href='SkPixmap_Reference#SkPixmap'>dstY</a>)
+void <a href='#SkSurface_writePixels'>writePixels</a>(const <a href='SkPixmap_Reference#SkPixmap'>SkPixmap</a>& src, int dstX, int dstY)
</pre>
-Copies <a href='SkRect_Reference#Rect'>Rect</a> <a href='SkRect_Reference#Rect'>of</a> <a href='SkRect_Reference#Rect'>pixels</a> <a href='SkRect_Reference#Rect'>from</a> <a href='SkRect_Reference#Rect'>the</a> <a href='#SkSurface_writePixels_src'>src</a> <a href='SkPixmap_Reference#Pixmap'>Pixmap</a> <a href='SkPixmap_Reference#Pixmap'>to</a> <a href='SkPixmap_Reference#Pixmap'>the</a> <a href='SkSurface_Reference#Surface'>Surface</a>.
+Copies <a href='SkRect_Reference#Rect'>Rect</a> of pixels from the <a href='#SkSurface_writePixels_src'>src</a> <a href='SkPixmap_Reference#Pixmap'>Pixmap</a> to the <a href='SkSurface_Reference#Surface'>Surface</a>.
-<a href='SkSurface_Reference#Surface'>Source</a> <a href='SkRect_Reference#Rect'>Rect</a> <a href='SkRect_Reference#Rect'>corners</a> <a href='SkRect_Reference#Rect'>are</a> (0, 0) <a href='SkRect_Reference#Rect'>and</a> (<a href='#SkSurface_writePixels_src'>src</a>.<a href='#SkPixmap_width'>width()</a>, <a href='#SkSurface_writePixels_src'>src</a>.<a href='#SkPixmap_height'>height()</a>).
-<a href='#SkPixmap_height'>Destination</a> <a href='SkRect_Reference#Rect'>Rect</a> <a href='SkRect_Reference#Rect'>corners</a> <a href='SkRect_Reference#Rect'>are</a> (<a href='#SkSurface_writePixels_dstX'>dstX</a>, <a href='#SkSurface_writePixels_dstY'>dstY</a>) <a href='#SkSurface_writePixels_dstY'>and</a>
+Source <a href='SkRect_Reference#Rect'>Rect</a> corners are (0, 0) and (<a href='#SkSurface_writePixels_src'>src</a>.<a href='#SkPixmap_width'>width()</a>, <a href='#SkSurface_writePixels_src'>src</a>.<a href='#SkPixmap_height'>height()</a>).
+Destination <a href='SkRect_Reference#Rect'>Rect</a> corners are (<a href='#SkSurface_writePixels_dstX'>dstX</a>, <a href='#SkSurface_writePixels_dstY'>dstY</a>) and
<code>(<a href='#SkSurface_writePixels_dstX'>dstX</a> + <a href='SkSurface_Reference#Surface'>Surface</a> <a href='#SkSurface_width'>width()</a>, <a href='#SkSurface_writePixels_dstY'>dstY</a> + <a href='SkSurface_Reference#Surface'>Surface</a> <a href='#SkSurface_height'>height()</a>)</code>.
-Copies each readable <a href='undocumented#Pixel'>pixel</a> <a href='undocumented#Pixel'>intersecting</a> <a href='undocumented#Pixel'>both</a> <a href='undocumented#Pixel'>rectangles</a>, <a href='undocumented#Pixel'>without</a> <a href='undocumented#Pixel'>scaling</a>,
-<a href='undocumented#Pixel'>converting</a> <a href='undocumented#Pixel'>to</a> <a href='SkSurface_Reference#Surface'>Surface</a> <a href='SkImageInfo_Reference#SkColorType'>SkColorType</a> <a href='SkImageInfo_Reference#SkColorType'>and</a> <a href='SkImageInfo_Reference#SkAlphaType'>SkAlphaType</a> <a href='SkImageInfo_Reference#SkAlphaType'>if</a> <a href='SkImageInfo_Reference#SkAlphaType'>required</a>.
+Copies each readable <a href='undocumented#Pixel'>pixel</a> intersecting both rectangles, without scaling,
+converting to <a href='SkSurface_Reference#Surface'>Surface</a> <a href='SkImageInfo_Reference#SkColorType'>SkColorType</a> and <a href='SkImageInfo_Reference#SkAlphaType'>SkAlphaType</a> if required.
### Parameters
@@ -1618,10 +1618,10 @@
<td>storage for pixels to copy to <a href='SkSurface_Reference#Surface'>Surface</a></td>
</tr>
<tr> <td><a name='SkSurface_writePixels_dstX'><code><strong>dstX</strong></code></a></td>
- <td>x-axis position relative to <a href='SkSurface_Reference#Surface'>Surface</a> <a href='SkSurface_Reference#Surface'>to</a> <a href='SkSurface_Reference#Surface'>begin</a> <a href='SkSurface_Reference#Surface'>copy</a>; <a href='SkSurface_Reference#Surface'>may</a> <a href='SkSurface_Reference#Surface'>be</a> <a href='SkSurface_Reference#Surface'>negative</a></td>
+ <td>x-axis position relative to <a href='SkSurface_Reference#Surface'>Surface</a> to begin copy; may be negative</td>
</tr>
<tr> <td><a name='SkSurface_writePixels_dstY'><code><strong>dstY</strong></code></a></td>
- <td>y-axis position relative to <a href='SkSurface_Reference#Surface'>Surface</a> <a href='SkSurface_Reference#Surface'>to</a> <a href='SkSurface_Reference#Surface'>begin</a> <a href='SkSurface_Reference#Surface'>copy</a>; <a href='SkSurface_Reference#Surface'>may</a> <a href='SkSurface_Reference#Surface'>be</a> <a href='SkSurface_Reference#Surface'>negative</a></td>
+ <td>y-axis position relative to <a href='SkSurface_Reference#Surface'>Surface</a> to begin copy; may be negative</td>
</tr>
</table>
@@ -1638,17 +1638,17 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-void <a href='#SkSurface_writePixels'>writePixels</a>(<a href='#SkSurface_writePixels'>const</a> <a href='SkBitmap_Reference#SkBitmap'>SkBitmap</a>& <a href='SkBitmap_Reference#SkBitmap'>src</a>, <a href='SkBitmap_Reference#SkBitmap'>int</a> <a href='SkBitmap_Reference#SkBitmap'>dstX</a>, <a href='SkBitmap_Reference#SkBitmap'>int</a> <a href='SkBitmap_Reference#SkBitmap'>dstY</a>)
+void <a href='#SkSurface_writePixels'>writePixels</a>(const <a href='SkBitmap_Reference#SkBitmap'>SkBitmap</a>& src, int dstX, int dstY)
</pre>
-Copies <a href='SkRect_Reference#Rect'>Rect</a> <a href='SkRect_Reference#Rect'>of</a> <a href='SkRect_Reference#Rect'>pixels</a> <a href='SkRect_Reference#Rect'>from</a> <a href='SkRect_Reference#Rect'>the</a> <a href='#SkSurface_writePixels_2_src'>src</a> <a href='SkBitmap_Reference#Bitmap'>Bitmap</a> <a href='SkBitmap_Reference#Bitmap'>to</a> <a href='SkBitmap_Reference#Bitmap'>the</a> <a href='SkSurface_Reference#Surface'>Surface</a>.
+Copies <a href='SkRect_Reference#Rect'>Rect</a> of pixels from the <a href='#SkSurface_writePixels_2_src'>src</a> <a href='SkBitmap_Reference#Bitmap'>Bitmap</a> to the <a href='SkSurface_Reference#Surface'>Surface</a>.
-<a href='SkSurface_Reference#Surface'>Source</a> <a href='SkRect_Reference#Rect'>Rect</a> <a href='SkRect_Reference#Rect'>corners</a> <a href='SkRect_Reference#Rect'>are</a> (0, 0) <a href='SkRect_Reference#Rect'>and</a> (<a href='#SkSurface_writePixels_2_src'>src</a>.<a href='#SkBitmap_width'>width()</a>, <a href='#SkSurface_writePixels_2_src'>src</a>.<a href='#SkBitmap_height'>height()</a>).
-<a href='#SkBitmap_height'>Destination</a> <a href='SkRect_Reference#Rect'>Rect</a> <a href='SkRect_Reference#Rect'>corners</a> <a href='SkRect_Reference#Rect'>are</a> (<a href='#SkSurface_writePixels_2_dstX'>dstX</a>, <a href='#SkSurface_writePixels_2_dstY'>dstY</a>) <a href='#SkSurface_writePixels_2_dstY'>and</a>
+Source <a href='SkRect_Reference#Rect'>Rect</a> corners are (0, 0) and (<a href='#SkSurface_writePixels_2_src'>src</a>.<a href='#SkBitmap_width'>width()</a>, <a href='#SkSurface_writePixels_2_src'>src</a>.<a href='#SkBitmap_height'>height()</a>).
+Destination <a href='SkRect_Reference#Rect'>Rect</a> corners are (<a href='#SkSurface_writePixels_2_dstX'>dstX</a>, <a href='#SkSurface_writePixels_2_dstY'>dstY</a>) and
<code>(<a href='#SkSurface_writePixels_2_dstX'>dstX</a> + <a href='SkSurface_Reference#Surface'>Surface</a> <a href='#SkSurface_width'>width()</a>, <a href='#SkSurface_writePixels_2_dstY'>dstY</a> + <a href='SkSurface_Reference#Surface'>Surface</a> <a href='#SkSurface_height'>height()</a>)</code>.
-Copies each readable <a href='undocumented#Pixel'>pixel</a> <a href='undocumented#Pixel'>intersecting</a> <a href='undocumented#Pixel'>both</a> <a href='undocumented#Pixel'>rectangles</a>, <a href='undocumented#Pixel'>without</a> <a href='undocumented#Pixel'>scaling</a>,
-<a href='undocumented#Pixel'>converting</a> <a href='undocumented#Pixel'>to</a> <a href='SkSurface_Reference#Surface'>Surface</a> <a href='SkImageInfo_Reference#SkColorType'>SkColorType</a> <a href='SkImageInfo_Reference#SkColorType'>and</a> <a href='SkImageInfo_Reference#SkAlphaType'>SkAlphaType</a> <a href='SkImageInfo_Reference#SkAlphaType'>if</a> <a href='SkImageInfo_Reference#SkAlphaType'>required</a>.
+Copies each readable <a href='undocumented#Pixel'>pixel</a> intersecting both rectangles, without scaling,
+converting to <a href='SkSurface_Reference#Surface'>Surface</a> <a href='SkImageInfo_Reference#SkColorType'>SkColorType</a> and <a href='SkImageInfo_Reference#SkAlphaType'>SkAlphaType</a> if required.
### Parameters
@@ -1656,10 +1656,10 @@
<td>storage for pixels to copy to <a href='SkSurface_Reference#Surface'>Surface</a></td>
</tr>
<tr> <td><a name='SkSurface_writePixels_2_dstX'><code><strong>dstX</strong></code></a></td>
- <td>x-axis position relative to <a href='SkSurface_Reference#Surface'>Surface</a> <a href='SkSurface_Reference#Surface'>to</a> <a href='SkSurface_Reference#Surface'>begin</a> <a href='SkSurface_Reference#Surface'>copy</a>; <a href='SkSurface_Reference#Surface'>may</a> <a href='SkSurface_Reference#Surface'>be</a> <a href='SkSurface_Reference#Surface'>negative</a></td>
+ <td>x-axis position relative to <a href='SkSurface_Reference#Surface'>Surface</a> to begin copy; may be negative</td>
</tr>
<tr> <td><a name='SkSurface_writePixels_2_dstY'><code><strong>dstY</strong></code></a></td>
- <td>y-axis position relative to <a href='SkSurface_Reference#Surface'>Surface</a> <a href='SkSurface_Reference#Surface'>to</a> <a href='SkSurface_Reference#Surface'>begin</a> <a href='SkSurface_Reference#Surface'>copy</a>; <a href='SkSurface_Reference#Surface'>may</a> <a href='SkSurface_Reference#Surface'>be</a> <a href='SkSurface_Reference#Surface'>negative</a></td>
+ <td>y-axis position relative to <a href='SkSurface_Reference#Surface'>Surface</a> to begin copy; may be negative</td>
</tr>
</table>
@@ -1676,14 +1676,14 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-const <a href='undocumented#SkSurfaceProps'>SkSurfaceProps</a>& <a href='#SkSurface_props'>props()</a> <a href='#SkSurface_props'>const</a>
+const <a href='undocumented#SkSurfaceProps'>SkSurfaceProps</a>& <a href='#SkSurface_props'>props()</a> const
</pre>
-Returns <a href='undocumented#SkSurfaceProps'>SkSurfaceProps</a> <a href='undocumented#SkSurfaceProps'>for</a> <a href='SkSurface_Reference#Surface'>surface</a>.
+Returns <a href='undocumented#SkSurfaceProps'>SkSurfaceProps</a> for <a href='SkSurface_Reference#Surface'>surface</a>.
### Return Value
-LCD striping orientation and setting for <a href='undocumented#Device'>device</a> <a href='undocumented#Device'>independent</a> <a href='undocumented#Device'>fonts</a>
+LCD striping orientation and setting for <a href='undocumented#Device'>device</a> independent fonts
### Example
@@ -1721,7 +1721,7 @@
void <a href='#SkSurface_flush'>flush()</a>
</pre>
-Issues pending <a href='SkSurface_Reference#SkSurface'>SkSurface</a> <a href='SkSurface_Reference#SkSurface'>commands</a> <a href='SkSurface_Reference#SkSurface'>to</a> <a href='SkSurface_Reference#SkSurface'>the</a> <a href='SkSurface_Reference#SkSurface'>GPU-backed</a> <a href='SkSurface_Reference#SkSurface'>API</a> <a href='SkSurface_Reference#SkSurface'>and</a> <a href='SkSurface_Reference#SkSurface'>resolves</a> <a href='SkSurface_Reference#SkSurface'>any</a> <a href='SkSurface_Reference#SkSurface'>SkSurface</a> <a href='SkSurface_Reference#SkSurface'>MSAA</a>.
+Issues pending <a href='SkSurface_Reference#SkSurface'>SkSurface</a> commands to the GPU-backed API and resolves any <a href='SkSurface_Reference#SkSurface'>SkSurface</a> MSAA.
Skia flushes as needed, so it is not necessary to call this if Skia manages
drawing and object lifetime. Call when interleaving Skia calls with native
@@ -1736,20 +1736,20 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-<a href='undocumented#GrSemaphoresSubmitted'>GrSemaphoresSubmitted</a> <a href='#SkSurface_flushAndSignalSemaphores'>flushAndSignalSemaphores</a>(<a href='#SkSurface_flushAndSignalSemaphores'>int</a> <a href='#SkSurface_flushAndSignalSemaphores'>numSemaphores</a>,
- <a href='undocumented#GrBackendSemaphore'>GrBackendSemaphore</a> <a href='undocumented#GrBackendSemaphore'>signalSemaphores</a>[])
+<a href='undocumented#GrSemaphoresSubmitted'>GrSemaphoresSubmitted</a> <a href='#SkSurface_flushAndSignalSemaphores'>flushAndSignalSemaphores</a>(int numSemaphores,
+ <a href='undocumented#GrBackendSemaphore'>GrBackendSemaphore</a> signalSemaphores[])
</pre>
-Issues pending <a href='SkSurface_Reference#SkSurface'>SkSurface</a> <a href='SkSurface_Reference#SkSurface'>commands</a> <a href='SkSurface_Reference#SkSurface'>to</a> <a href='SkSurface_Reference#SkSurface'>the</a> <a href='SkSurface_Reference#SkSurface'>GPU-backed</a> <a href='SkSurface_Reference#SkSurface'>API</a> <a href='SkSurface_Reference#SkSurface'>and</a> <a href='SkSurface_Reference#SkSurface'>resolves</a> <a href='SkSurface_Reference#SkSurface'>any</a> <a href='SkSurface_Reference#SkSurface'>SkSurface</a> <a href='SkSurface_Reference#SkSurface'>MSAA</a>.
-After issuing all commands, <a href='#SkSurface_flushAndSignalSemaphores_signalSemaphores'>signalSemaphores</a> <a href='#SkSurface_flushAndSignalSemaphores_signalSemaphores'>of</a> <a href='#SkSurface_flushAndSignalSemaphores_signalSemaphores'>count</a> <a href='#SkSurface_flushAndSignalSemaphores_numSemaphores'>numSemaphores</a> <a href='#SkSurface_flushAndSignalSemaphores_numSemaphores'>semaphores</a>
+Issues pending <a href='SkSurface_Reference#SkSurface'>SkSurface</a> commands to the GPU-backed API and resolves any <a href='SkSurface_Reference#SkSurface'>SkSurface</a> MSAA.
+After issuing all commands, <a href='#SkSurface_flushAndSignalSemaphores_signalSemaphores'>signalSemaphores</a> of count <a href='#SkSurface_flushAndSignalSemaphores_numSemaphores'>numSemaphores</a> semaphores
are signaled by the GPU.
-For each <a href='undocumented#GrBackendSemaphore'>GrBackendSemaphore</a> <a href='undocumented#GrBackendSemaphore'>in</a> <a href='#SkSurface_flushAndSignalSemaphores_signalSemaphores'>signalSemaphores</a>:
-if <a href='undocumented#GrBackendSemaphore'>GrBackendSemaphore</a> <a href='undocumented#GrBackendSemaphore'>is</a> <a href='undocumented#GrBackendSemaphore'>initialized</a>, <a href='undocumented#GrBackendSemaphore'>the</a> <a href='undocumented#GrBackendSemaphore'>GPU</a> <a href='undocumented#GrBackendSemaphore'>back-end</a> <a href='undocumented#GrBackendSemaphore'>uses</a> <a href='undocumented#GrBackendSemaphore'>the</a> <a href='undocumented#GrBackendSemaphore'>semaphore</a> <a href='undocumented#GrBackendSemaphore'>as</a> <a href='undocumented#GrBackendSemaphore'>is</a>;
+For each <a href='undocumented#GrBackendSemaphore'>GrBackendSemaphore</a> in <a href='#SkSurface_flushAndSignalSemaphores_signalSemaphores'>signalSemaphores</a>:
+if <a href='undocumented#GrBackendSemaphore'>GrBackendSemaphore</a> is initialized, the GPU back-end uses the semaphore as is;
otherwise, a new semaphore is created and initializes <a href='undocumented#GrBackendSemaphore'>GrBackendSemaphore</a>.
The caller must delete the semaphores created and returned in <a href='#SkSurface_flushAndSignalSemaphores_signalSemaphores'>signalSemaphores</a>.
-<a href='undocumented#GrBackendSemaphore'>GrBackendSemaphore</a> <a href='undocumented#GrBackendSemaphore'>can</a> <a href='undocumented#GrBackendSemaphore'>be</a> <a href='undocumented#GrBackendSemaphore'>deleted</a> <a href='undocumented#GrBackendSemaphore'>as</a> <a href='undocumented#GrBackendSemaphore'>soon</a> <a href='undocumented#GrBackendSemaphore'>as</a> <a href='undocumented#GrBackendSemaphore'>this</a> <a href='undocumented#GrBackendSemaphore'>function</a> <a href='undocumented#GrBackendSemaphore'>returns</a>.
+<a href='undocumented#GrBackendSemaphore'>GrBackendSemaphore</a> can be deleted as soon as this function returns.
If the back-end API is OpenGL only uninitialized <a href='undocumented#Backend_Semaphore'>backend semaphores</a> are supported.
@@ -1757,16 +1757,16 @@
If uninitialized, created semaphores are valid only with the VkDevice
with which they were created.
-If <a href='undocumented#GrSemaphoresSubmitted'>GrSemaphoresSubmitted</a>::<a href='#GrSemaphoresSubmitted_kNo'>kNo</a> <a href='#GrSemaphoresSubmitted_kNo'>is</a> <a href='#GrSemaphoresSubmitted_kNo'>returned</a>, <a href='#GrSemaphoresSubmitted_kNo'>the</a> <a href='#GrSemaphoresSubmitted_kNo'>GPU</a> <a href='#GrSemaphoresSubmitted_kNo'>back-end</a> <a href='#GrSemaphoresSubmitted_kNo'>did</a> <a href='#GrSemaphoresSubmitted_kNo'>not</a> <a href='#GrSemaphoresSubmitted_kNo'>create</a> <a href='#GrSemaphoresSubmitted_kNo'>or</a>
+If <a href='undocumented#GrSemaphoresSubmitted'>GrSemaphoresSubmitted</a>::<a href='#GrSemaphoresSubmitted_kNo'>kNo</a> is returned, the GPU back-end did not create or
add any semaphores to signal on the GPU; the caller should not instruct the GPU
to wait on any of the semaphores.
-Pending <a href='SkSurface_Reference#Surface'>surface</a> <a href='SkSurface_Reference#Surface'>commands</a> <a href='SkSurface_Reference#Surface'>are</a> <a href='SkSurface_Reference#Surface'>flushed</a> <a href='SkSurface_Reference#Surface'>regardless</a> <a href='SkSurface_Reference#Surface'>of</a> <a href='SkSurface_Reference#Surface'>the</a> <a href='SkSurface_Reference#Surface'>return</a> <a href='SkSurface_Reference#Surface'>result</a>.
+Pending <a href='SkSurface_Reference#Surface'>surface</a> commands are flushed regardless of the return result.
### Parameters
<table> <tr> <td><a name='SkSurface_flushAndSignalSemaphores_numSemaphores'><code><strong>numSemaphores</strong></code></a></td>
- <td><a href='undocumented#Size'>size</a> <a href='undocumented#Size'>of</a> <a href='#SkSurface_flushAndSignalSemaphores_signalSemaphores'>signalSemaphores</a> <a href='#SkSurface_flushAndSignalSemaphores_signalSemaphores'>array</a></td>
+ <td><a href='undocumented#Size'>size</a> of <a href='#SkSurface_flushAndSignalSemaphores_signalSemaphores'>signalSemaphores</a> array</td>
</tr>
<tr> <td><a name='SkSurface_flushAndSignalSemaphores_signalSemaphores'><code><strong>signalSemaphores</strong></code></a></td>
<td>array of semaphore containers</td>
@@ -1786,11 +1786,11 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-bool wait(int numSemaphores, const <a href='undocumented#GrBackendSemaphore'>GrBackendSemaphore</a>* <a href='undocumented#GrBackendSemaphore'>waitSemaphores</a>)
+bool wait(int numSemaphores, const <a href='undocumented#GrBackendSemaphore'>GrBackendSemaphore</a>* waitSemaphores)
</pre>
Inserts a list of GPU semaphores that the current GPU-backed API must wait on before
-executing any more commands on the GPU for this <a href='SkSurface_Reference#Surface'>surface</a>. <a href='SkSurface_Reference#Surface'>Skia</a> <a href='SkSurface_Reference#Surface'>will</a> <a href='SkSurface_Reference#Surface'>take</a> <a href='SkSurface_Reference#Surface'>ownership</a> <a href='SkSurface_Reference#Surface'>of</a> <a href='SkSurface_Reference#Surface'>the</a>
+executing any more commands on the GPU for this <a href='SkSurface_Reference#Surface'>surface</a>. Skia will take ownership of the
underlying semaphores and delete them once they have been signaled and waited on.
If this call returns false, then the GPU back-end will not wait on any passed in semaphores,
and the client will still own the semaphores.
@@ -1798,7 +1798,7 @@
### Parameters
<table> <tr> <td><a name='SkSurface_wait_numSemaphores'><code><strong>numSemaphores</strong></code></a></td>
- <td><a href='undocumented#Size'>size</a> <a href='undocumented#Size'>of</a> <a href='#SkSurface_wait_waitSemaphores'>waitSemaphores</a> <a href='#SkSurface_wait_waitSemaphores'>array</a></td>
+ <td><a href='undocumented#Size'>size</a> of <a href='#SkSurface_wait_waitSemaphores'>waitSemaphores</a> array</td>
</tr>
<tr> <td><a name='SkSurface_wait_waitSemaphores'><code><strong>waitSemaphores</strong></code></a></td>
<td>array of semaphore containers</td>
@@ -1818,15 +1818,15 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-bool <a href='#SkSurface_characterize'>characterize</a>(<a href='undocumented#SkSurfaceCharacterization'>SkSurfaceCharacterization</a>* <a href='undocumented#SkSurfaceCharacterization'>characterization</a>) <a href='undocumented#SkSurfaceCharacterization'>const</a>
+bool <a href='#SkSurface_characterize'>characterize</a>(<a href='undocumented#SkSurfaceCharacterization'>SkSurfaceCharacterization</a>* characterization) const
</pre>
-Initializes <a href='undocumented#SkSurfaceCharacterization'>SkSurfaceCharacterization</a> <a href='undocumented#SkSurfaceCharacterization'>that</a> <a href='undocumented#SkSurfaceCharacterization'>can</a> <a href='undocumented#SkSurfaceCharacterization'>be</a> <a href='undocumented#SkSurfaceCharacterization'>used</a> <a href='undocumented#SkSurfaceCharacterization'>to</a> <a href='undocumented#SkSurfaceCharacterization'>perform</a> <a href='undocumented#SkSurfaceCharacterization'>GPU</a> <a href='undocumented#SkSurfaceCharacterization'>back-end</a>
+Initializes <a href='undocumented#SkSurfaceCharacterization'>SkSurfaceCharacterization</a> that can be used to perform GPU back-end
processing in a separate thread. Typically this is used to divide drawing
-into multiple tiles. <a href='undocumented#SkDeferredDisplayListRecorder'>SkDeferredDisplayListRecorder</a> <a href='undocumented#SkDeferredDisplayListRecorder'>records</a> <a href='undocumented#SkDeferredDisplayListRecorder'>the</a> <a href='undocumented#SkDeferredDisplayListRecorder'>drawing</a> <a href='undocumented#SkDeferredDisplayListRecorder'>commands</a>
+into multiple tiles. <a href='undocumented#SkDeferredDisplayListRecorder'>SkDeferredDisplayListRecorder</a> records the drawing commands
for each tile.
-Return true if <a href='SkSurface_Reference#SkSurface'>SkSurface</a> <a href='SkSurface_Reference#SkSurface'>supports</a> <a href='#SkSurface_characterize_characterization'>characterization</a>. <a href='undocumented#Raster_Surface'>raster surface</a> <a href='#SkSurface_characterize_characterization'>returns</a> <a href='#SkSurface_characterize_characterization'>false</a>.
+Return true if <a href='SkSurface_Reference#SkSurface'>SkSurface</a> supports <a href='#SkSurface_characterize_characterization'>characterization</a>. <a href='undocumented#Raster_Surface'>raster surface</a> returns false.
### Parameters
@@ -1852,12 +1852,12 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-bool draw(<a href='undocumented#SkDeferredDisplayList'>SkDeferredDisplayList</a>* <a href='undocumented#SkDeferredDisplayList'>deferredDisplayList</a>)
+bool draw(<a href='undocumented#SkDeferredDisplayList'>SkDeferredDisplayList</a>* deferredDisplayList)
</pre>
Draws deferred display list created using <a href='undocumented#SkDeferredDisplayListRecorder'>SkDeferredDisplayListRecorder</a>.
-Has no effect and returns false if <a href='undocumented#SkSurfaceCharacterization'>SkSurfaceCharacterization</a> <a href='undocumented#SkSurfaceCharacterization'>stored</a> <a href='undocumented#SkSurfaceCharacterization'>in</a>
-<a href='#SkSurface_draw_2_deferredDisplayList'>deferredDisplayList</a> <a href='#SkSurface_draw_2_deferredDisplayList'>is</a> <a href='#SkSurface_draw_2_deferredDisplayList'>not</a> <a href='#SkSurface_draw_2_deferredDisplayList'>compatible</a> <a href='#SkSurface_draw_2_deferredDisplayList'>with</a> <a href='SkSurface_Reference#SkSurface'>SkSurface</a>.
+Has no effect and returns false if <a href='undocumented#SkSurfaceCharacterization'>SkSurfaceCharacterization</a> stored in
+<a href='#SkSurface_draw_2_deferredDisplayList'>deferredDisplayList</a> is not compatible with <a href='SkSurface_Reference#SkSurface'>SkSurface</a>.
<a href='undocumented#Raster_Surface'>raster surface</a> returns false.
@@ -1870,7 +1870,7 @@
### Return Value
-false if <a href='#SkSurface_draw_2_deferredDisplayList'>deferredDisplayList</a> <a href='#SkSurface_draw_2_deferredDisplayList'>is</a> <a href='#SkSurface_draw_2_deferredDisplayList'>not</a> <a href='#SkSurface_draw_2_deferredDisplayList'>compatible</a>
+false if <a href='#SkSurface_draw_2_deferredDisplayList'>deferredDisplayList</a> is not compatible
### Example
diff --git a/site/user/api/SkTextBlobBuilder_Reference.md b/site/user/api/SkTextBlobBuilder_Reference.md
index d42aaf1..3de63a6 100644
--- a/site/user/api/SkTextBlobBuilder_Reference.md
+++ b/site/user/api/SkTextBlobBuilder_Reference.md
@@ -8,30 +8,30 @@
<pre style="padding: 1em 1em 1em 1em;width: 62.5em; background-color: #f0f0f0">
class <a href='SkTextBlobBuilder_Reference#SkTextBlobBuilder'>SkTextBlobBuilder</a> {
-<a href='SkTextBlobBuilder_Reference#SkTextBlobBuilder'>public</a>:
+public:
<a href='#SkTextBlobBuilder_empty_constructor'>SkTextBlobBuilder()</a>;
~<a href='#SkTextBlobBuilder_empty_constructor'>SkTextBlobBuilder()</a>;
<a href='undocumented#sk_sp'>sk_sp</a><<a href='SkTextBlob_Reference#SkTextBlob'>SkTextBlob</a>> <a href='#SkTextBlobBuilder_make'>make()</a>;
- <a href='#SkTextBlobBuilder_make'>struct</a> <a href='#SkTextBlobBuilder_RunBuffer'>RunBuffer</a> {
+ struct <a href='#SkTextBlobBuilder_RunBuffer'>RunBuffer</a> {
<a href='undocumented#SkGlyphID'>SkGlyphID</a>* <a href='undocumented#Glyph'>glyphs</a>;
- <a href='undocumented#SkScalar'>SkScalar</a>* <a href='undocumented#SkScalar'>pos</a>;
- <a href='undocumented#SkScalar'>char</a>* <a href='undocumented#SkScalar'>utf8text</a>;
- <a href='undocumented#SkScalar'>uint32_t</a>* <a href='undocumented#SkScalar'>clusters</a>;
+ <a href='undocumented#SkScalar'>SkScalar</a>* pos;
+ char* utf8text;
+ uint32_t* clusters;
};
- <a href='undocumented#SkScalar'>const</a> <a href='#SkTextBlobBuilder_RunBuffer'>RunBuffer</a>& <a href='#SkTextBlobBuilder_allocRun'>allocRun</a>(<a href='#SkTextBlobBuilder_allocRun'>const</a> <a href='undocumented#SkFont'>SkFont</a>& <a href='undocumented#Font'>font</a>, <a href='undocumented#Font'>int</a> <a href='undocumented#Font'>count</a>, <a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>x</a>, <a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>y</a>,
- <a href='undocumented#SkScalar'>const</a> <a href='SkRect_Reference#SkRect'>SkRect</a>* <a href='SkRect_Reference#SkRect'>bounds</a> = <a href='SkRect_Reference#SkRect'>nullptr</a>);
- <a href='SkRect_Reference#SkRect'>const</a> <a href='#SkTextBlobBuilder_RunBuffer'>RunBuffer</a>& <a href='#SkTextBlobBuilder_allocRunPosH'>allocRunPosH</a>(<a href='#SkTextBlobBuilder_allocRunPosH'>const</a> <a href='undocumented#SkFont'>SkFont</a>& <a href='undocumented#Font'>font</a>, <a href='undocumented#Font'>int</a> <a href='undocumented#Font'>count</a>, <a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>y</a>,
- <a href='undocumented#SkScalar'>const</a> <a href='SkRect_Reference#SkRect'>SkRect</a>* <a href='SkRect_Reference#SkRect'>bounds</a> = <a href='SkRect_Reference#SkRect'>nullptr</a>);
- <a href='SkRect_Reference#SkRect'>const</a> <a href='#SkTextBlobBuilder_RunBuffer'>RunBuffer</a>& <a href='#SkTextBlobBuilder_allocRunPos'>allocRunPos</a>(<a href='#SkTextBlobBuilder_allocRunPos'>const</a> <a href='undocumented#SkFont'>SkFont</a>& <a href='undocumented#Font'>font</a>, <a href='undocumented#Font'>int</a> <a href='undocumented#Font'>count</a>,
- <a href='undocumented#Font'>const</a> <a href='SkRect_Reference#SkRect'>SkRect</a>* <a href='SkRect_Reference#SkRect'>bounds</a> = <a href='SkRect_Reference#SkRect'>nullptr</a>);
- <a href='SkRect_Reference#SkRect'>const</a> <a href='#SkTextBlobBuilder_RunBuffer'>RunBuffer</a>& <a href='#SkTextBlobBuilder_allocRun'>allocRun</a>(<a href='#SkTextBlobBuilder_allocRun'>const</a> <a href='SkPaint_Reference#SkPaint'>SkPaint</a>& <a href='undocumented#Font'>font</a>, <a href='undocumented#Font'>int</a> <a href='undocumented#Font'>count</a>, <a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>x</a>, <a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>y</a>,
- <a href='undocumented#SkScalar'>const</a> <a href='SkRect_Reference#SkRect'>SkRect</a>* <a href='SkRect_Reference#SkRect'>bounds</a> = <a href='SkRect_Reference#SkRect'>nullptr</a>);
- <a href='SkRect_Reference#SkRect'>const</a> <a href='#SkTextBlobBuilder_RunBuffer'>RunBuffer</a>& <a href='#SkTextBlobBuilder_allocRunPosH'>allocRunPosH</a>(<a href='#SkTextBlobBuilder_allocRunPosH'>const</a> <a href='SkPaint_Reference#SkPaint'>SkPaint</a>& <a href='undocumented#Font'>font</a>, <a href='undocumented#Font'>int</a> <a href='undocumented#Font'>count</a>, <a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>y</a>,
- <a href='undocumented#SkScalar'>const</a> <a href='SkRect_Reference#SkRect'>SkRect</a>* <a href='SkRect_Reference#SkRect'>bounds</a> = <a href='SkRect_Reference#SkRect'>nullptr</a>);
- <a href='SkRect_Reference#SkRect'>const</a> <a href='#SkTextBlobBuilder_RunBuffer'>RunBuffer</a>& <a href='#SkTextBlobBuilder_allocRunPos'>allocRunPos</a>(<a href='#SkTextBlobBuilder_allocRunPos'>const</a> <a href='SkPaint_Reference#SkPaint'>SkPaint</a>& <a href='undocumented#Font'>font</a>, <a href='undocumented#Font'>int</a> <a href='undocumented#Font'>count</a>,
- <a href='undocumented#Font'>const</a> <a href='SkRect_Reference#SkRect'>SkRect</a>* <a href='SkRect_Reference#SkRect'>bounds</a> = <a href='SkRect_Reference#SkRect'>nullptr</a>);
+ const <a href='#SkTextBlobBuilder_RunBuffer'>RunBuffer</a>& <a href='#SkTextBlobBuilder_allocRun'>allocRun</a>(const <a href='undocumented#SkFont'>SkFont</a>& <a href='undocumented#Font'>font</a>, int count, <a href='undocumented#SkScalar'>SkScalar</a> x, <a href='undocumented#SkScalar'>SkScalar</a> y,
+ const <a href='SkRect_Reference#SkRect'>SkRect</a>* bounds = nullptr);
+ const <a href='#SkTextBlobBuilder_RunBuffer'>RunBuffer</a>& <a href='#SkTextBlobBuilder_allocRunPosH'>allocRunPosH</a>(const <a href='undocumented#SkFont'>SkFont</a>& <a href='undocumented#Font'>font</a>, int count, <a href='undocumented#SkScalar'>SkScalar</a> y,
+ const <a href='SkRect_Reference#SkRect'>SkRect</a>* bounds = nullptr);
+ const <a href='#SkTextBlobBuilder_RunBuffer'>RunBuffer</a>& <a href='#SkTextBlobBuilder_allocRunPos'>allocRunPos</a>(const <a href='undocumented#SkFont'>SkFont</a>& <a href='undocumented#Font'>font</a>, int count,
+ const <a href='SkRect_Reference#SkRect'>SkRect</a>* bounds = nullptr);
+ const <a href='#SkTextBlobBuilder_RunBuffer'>RunBuffer</a>& <a href='#SkTextBlobBuilder_allocRun'>allocRun</a>(const <a href='SkPaint_Reference#SkPaint'>SkPaint</a>& <a href='undocumented#Font'>font</a>, int count, <a href='undocumented#SkScalar'>SkScalar</a> x, <a href='undocumented#SkScalar'>SkScalar</a> y,
+ const <a href='SkRect_Reference#SkRect'>SkRect</a>* bounds = nullptr);
+ const <a href='#SkTextBlobBuilder_RunBuffer'>RunBuffer</a>& <a href='#SkTextBlobBuilder_allocRunPosH'>allocRunPosH</a>(const <a href='SkPaint_Reference#SkPaint'>SkPaint</a>& <a href='undocumented#Font'>font</a>, int count, <a href='undocumented#SkScalar'>SkScalar</a> y,
+ const <a href='SkRect_Reference#SkRect'>SkRect</a>* bounds = nullptr);
+ const <a href='#SkTextBlobBuilder_RunBuffer'>RunBuffer</a>& <a href='#SkTextBlobBuilder_allocRunPos'>allocRunPos</a>(const <a href='SkPaint_Reference#SkPaint'>SkPaint</a>& <a href='undocumented#Font'>font</a>, int count,
+ const <a href='SkRect_Reference#SkRect'>SkRect</a>* bounds = nullptr);
};
</pre>
@@ -45,19 +45,19 @@
struct <a href='#SkTextBlobBuilder_RunBuffer'>RunBuffer</a> {
<a href='undocumented#SkGlyphID'>SkGlyphID</a>* <a href='#SkTextBlobBuilder_RunBuffer_glyphs'>glyphs</a>;
<a href='undocumented#SkScalar'>SkScalar</a>* <a href='#SkTextBlobBuilder_RunBuffer_pos'>pos</a>;
- <a href='#SkTextBlobBuilder_RunBuffer_pos'>char</a>* <a href='#SkTextBlobBuilder_RunBuffer_utf8text'>utf8text</a>;
- <a href='#SkTextBlobBuilder_RunBuffer_utf8text'>uint32_t</a>* <a href='#SkTextBlobBuilder_RunBuffer_clusters'>clusters</a>;
+ char* <a href='#SkTextBlobBuilder_RunBuffer_utf8text'>utf8text</a>;
+ uint32_t* <a href='#SkTextBlobBuilder_RunBuffer_clusters'>clusters</a>;
};
</pre>
-<a href='#SkTextBlobBuilder_RunBuffer'>RunBuffer</a> <a href='#SkTextBlobBuilder_RunBuffer'>supplies</a> <a href='#SkTextBlobBuilder_RunBuffer'>storage</a> <a href='#SkTextBlobBuilder_RunBuffer'>for</a> <a href='undocumented#Glyph'>Glyphs</a> <a href='undocumented#Glyph'>and</a> <a href='undocumented#Glyph'>positions</a> <a href='undocumented#Glyph'>within</a> <a href='undocumented#Glyph'>a</a> <a href='undocumented#Glyph'>run</a>.
+<a href='#SkTextBlobBuilder_RunBuffer'>RunBuffer</a> supplies storage for <a href='undocumented#Glyph'>Glyphs</a> and positions within a run.
-<a href='undocumented#Glyph'>A</a> <a href='undocumented#Glyph'>run</a> <a href='undocumented#Glyph'>is</a> <a href='undocumented#Glyph'>a</a> <a href='undocumented#Glyph'>sequence</a> <a href='undocumented#Glyph'>of</a> <a href='undocumented#Glyph'>Glyphs</a> <a href='undocumented#Glyph'>sharing</a> <a href='#Paint_Font_Metrics'>Paint_Font_Metrics</a> <a href='#Paint_Font_Metrics'>and</a> <a href='#Paint_Font_Metrics'>positioning</a>.
-<a href='#Paint_Font_Metrics'>Each</a> <a href='#Paint_Font_Metrics'>run</a> <a href='#Paint_Font_Metrics'>may</a> <a href='#Paint_Font_Metrics'>position</a> <a href='#Paint_Font_Metrics'>its</a> <a href='undocumented#Glyph'>Glyphs</a> <a href='undocumented#Glyph'>in</a> <a href='undocumented#Glyph'>one</a> <a href='undocumented#Glyph'>of</a> <a href='undocumented#Glyph'>three</a> <a href='undocumented#Glyph'>ways</a>:
-<a href='undocumented#Glyph'>by</a> <a href='undocumented#Glyph'>specifying</a> <a href='undocumented#Glyph'>where</a> <a href='undocumented#Glyph'>the</a> <a href='undocumented#Glyph'>first</a> <a href='undocumented#Glyph'>Glyph</a> <a href='undocumented#Glyph'>is</a> <a href='undocumented#Glyph'>drawn</a>, <a href='undocumented#Glyph'>and</a> <a href='undocumented#Glyph'>allowing</a> <a href='#Paint_Font_Metrics'>Paint_Font_Metrics</a> <a href='#Paint_Font_Metrics'>to</a>
-<a href='#Paint_Font_Metrics'>determine</a> <a href='#Paint_Font_Metrics'>the</a> <a href='#Paint_Font_Metrics'>advance</a> <a href='#Paint_Font_Metrics'>to</a> <a href='#Paint_Font_Metrics'>subsequent</a> <a href='undocumented#Glyph'>Glyphs</a>; <a href='undocumented#Glyph'>by</a> <a href='undocumented#Glyph'>specifying</a> <a href='undocumented#Glyph'>a</a> <a href='undocumented#Glyph'>baseline</a>, <a href='undocumented#Glyph'>and</a>
-<a href='undocumented#Glyph'>the</a> <a href='undocumented#Glyph'>position</a> <a href='undocumented#Glyph'>on</a> <a href='undocumented#Glyph'>that</a> <a href='undocumented#Glyph'>baseline</a> <a href='undocumented#Glyph'>for</a> <a href='undocumented#Glyph'>each</a> <a href='undocumented#Glyph'>Glyph</a> <a href='undocumented#Glyph'>in</a> <a href='undocumented#Glyph'>run</a>; <a href='undocumented#Glyph'>or</a> <a href='undocumented#Glyph'>by</a> <a href='undocumented#Glyph'>providing</a> <a href='SkPoint_Reference#Point'>Point</a>
-<a href='SkPoint_Reference#Point'>array</a>, <a href='SkPoint_Reference#Point'>one</a> <a href='SkPoint_Reference#Point'>per</a> <a href='undocumented#Glyph'>Glyph</a>.<table style='border-collapse: collapse; width: 62.5em'>
+A run is a sequence of <a href='undocumented#Glyph'>Glyphs</a> sharing <a href='#Paint_Font_Metrics'>Paint_Font_Metrics</a> and positioning.
+Each run may position its <a href='undocumented#Glyph'>Glyphs</a> in one of three ways:
+by specifying where the first <a href='undocumented#Glyph'>Glyph</a> is drawn, and allowing <a href='#Paint_Font_Metrics'>Paint_Font_Metrics</a> to
+determine the advance to subsequent <a href='undocumented#Glyph'>Glyphs</a>; by specifying a baseline, and
+the position on that baseline for each <a href='undocumented#Glyph'>Glyph</a> in run; or by providing <a href='SkPoint_Reference#Point'>Point</a>
+array, one per <a href='undocumented#Glyph'>Glyph</a>.<table style='border-collapse: collapse; width: 62.5em'>
<tr><th style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>Type</th>
<th style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>Member</th>
@@ -66,31 +66,31 @@
<td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>SkGlyphID*</td>
<td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a name='SkTextBlobBuilder_RunBuffer_glyphs'><code>glyphs</code></a></td>
<td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>
-<a href='#SkTextBlobBuilder_RunBuffer_glyphs'>glyphs</a> <a href='SkPoint_Reference#Point'>points</a> <a href='SkPoint_Reference#Point'>to</a> <a href='SkPoint_Reference#Point'>memory</a> <a href='SkPoint_Reference#Point'>for</a> <a href='SkPoint_Reference#Point'>one</a> <a href='SkPoint_Reference#Point'>or</a> <a href='SkPoint_Reference#Point'>more</a> <a href='undocumented#Glyph'>Glyphs</a>. <a href='#SkTextBlobBuilder_RunBuffer_glyphs'>glyphs</a> <a href='#SkTextBlobBuilder_RunBuffer_glyphs'>memory</a> <a href='#SkTextBlobBuilder_RunBuffer_glyphs'>must</a> <a href='#SkTextBlobBuilder_RunBuffer_glyphs'>be</a>
-<a href='#SkTextBlobBuilder_RunBuffer_glyphs'>written</a> <a href='#SkTextBlobBuilder_RunBuffer_glyphs'>to</a> <a href='#SkTextBlobBuilder_RunBuffer_glyphs'>by</a> <a href='#SkTextBlobBuilder_RunBuffer_glyphs'>the</a> <a href='#SkTextBlobBuilder_RunBuffer_glyphs'>caller</a>.
+<a href='#SkTextBlobBuilder_RunBuffer_glyphs'>glyphs</a> <a href='SkPoint_Reference#Point'>points</a> to memory for one or more <a href='undocumented#Glyph'>Glyphs</a>. <a href='#SkTextBlobBuilder_RunBuffer_glyphs'>glyphs</a> memory must be
+written to by the caller.
</td>
</tr>
<tr>
<td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>SkScalar*</td>
<td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a name='SkTextBlobBuilder_RunBuffer_pos'><code>pos</code></a></td>
<td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>
-<a href='#SkTextBlobBuilder_RunBuffer_pos'>pos</a> <a href='SkPoint_Reference#Point'>points</a> <a href='SkPoint_Reference#Point'>to</a> <a href='SkPoint_Reference#Point'>memory</a> <a href='SkPoint_Reference#Point'>for</a> <a href='undocumented#Glyph'>Glyph</a> <a href='undocumented#Glyph'>positions</a>. <a href='undocumented#Glyph'>Depending</a> <a href='undocumented#Glyph'>on</a> <a href='undocumented#Glyph'>how</a> <a href='#SkTextBlobBuilder_RunBuffer'>RunBuffer</a>
-<a href='#SkTextBlobBuilder_RunBuffer'>is</a> <a href='#SkTextBlobBuilder_RunBuffer'>allocated</a>, <a href='#SkTextBlobBuilder_RunBuffer_pos'>pos</a> <a href='#SkTextBlobBuilder_RunBuffer_pos'>may</a> <a href='SkPoint_Reference#Point'>point</a> <a href='SkPoint_Reference#Point'>to</a> <a href='SkPoint_Reference#Point'>zero</a> <a href='SkPoint_Reference#Point'>bytes</a> <a href='SkPoint_Reference#Point'>per</a> <a href='undocumented#Glyph'>Glyph</a>, <a href='undocumented#Glyph'>one</a> <a href='undocumented#Scalar'>Scalar</a> <a href='undocumented#Scalar'>per</a> <a href='undocumented#Glyph'>Glyph</a>,
-<a href='undocumented#Glyph'>or</a> <a href='undocumented#Glyph'>one</a> <a href='SkPoint_Reference#Point'>Point</a> <a href='SkPoint_Reference#Point'>per</a> <a href='undocumented#Glyph'>Glyph</a>.
+<a href='#SkTextBlobBuilder_RunBuffer_pos'>pos</a> <a href='SkPoint_Reference#Point'>points</a> to memory for <a href='undocumented#Glyph'>Glyph</a> positions. Depending on how <a href='#SkTextBlobBuilder_RunBuffer'>RunBuffer</a>
+is allocated, <a href='#SkTextBlobBuilder_RunBuffer_pos'>pos</a> may <a href='SkPoint_Reference#Point'>point</a> to zero bytes per <a href='undocumented#Glyph'>Glyph</a>, one <a href='undocumented#Scalar'>Scalar</a> per <a href='undocumented#Glyph'>Glyph</a>,
+or one <a href='SkPoint_Reference#Point'>Point</a> per <a href='undocumented#Glyph'>Glyph</a>.
</td>
</tr>
<tr style='background-color: #f0f0f0; '>
<td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>char*</td>
<td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a name='SkTextBlobBuilder_RunBuffer_utf8text'><code>utf8text</code></a></td>
<td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>
-Reserved for future use. <a href='#SkTextBlobBuilder_RunBuffer_utf8text'>utf8text</a> <a href='#SkTextBlobBuilder_RunBuffer_utf8text'>should</a> <a href='#SkTextBlobBuilder_RunBuffer_utf8text'>not</a> <a href='#SkTextBlobBuilder_RunBuffer_utf8text'>be</a> <a href='#SkTextBlobBuilder_RunBuffer_utf8text'>read</a> <a href='#SkTextBlobBuilder_RunBuffer_utf8text'>or</a> <a href='#SkTextBlobBuilder_RunBuffer_utf8text'>written</a>.
+Reserved for future use. <a href='#SkTextBlobBuilder_RunBuffer_utf8text'>utf8text</a> should not be read or written.
</td>
</tr>
<tr>
<td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>uint32_t*</td>
<td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a name='SkTextBlobBuilder_RunBuffer_clusters'><code>clusters</code></a></td>
<td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>
-Reserved for future use. <a href='#SkTextBlobBuilder_RunBuffer_clusters'>clusters</a> <a href='#SkTextBlobBuilder_RunBuffer_clusters'>should</a> <a href='#SkTextBlobBuilder_RunBuffer_clusters'>not</a> <a href='#SkTextBlobBuilder_RunBuffer_clusters'>be</a> <a href='#SkTextBlobBuilder_RunBuffer_clusters'>read</a> <a href='#SkTextBlobBuilder_RunBuffer_clusters'>or</a> <a href='#SkTextBlobBuilder_RunBuffer_clusters'>written</a>.
+Reserved for future use. <a href='#SkTextBlobBuilder_RunBuffer_clusters'>clusters</a> should not be read or written.
</td>
</tr>
</table>
@@ -107,7 +107,7 @@
<a href='#SkTextBlobBuilder_empty_constructor'>SkTextBlobBuilder()</a>
</pre>
-Constructs empty <a href='SkTextBlobBuilder_Reference#SkTextBlobBuilder'>SkTextBlobBuilder</a>. <a href='SkTextBlobBuilder_Reference#SkTextBlobBuilder'>By</a> <a href='SkTextBlobBuilder_Reference#SkTextBlobBuilder'>default</a>, <a href='SkTextBlobBuilder_Reference#SkTextBlobBuilder'>SkTextBlobBuilder</a> <a href='SkTextBlobBuilder_Reference#SkTextBlobBuilder'>has</a> <a href='SkTextBlobBuilder_Reference#SkTextBlobBuilder'>no</a> <a href='SkTextBlobBuilder_Reference#SkTextBlobBuilder'>runs</a>.
+Constructs empty <a href='SkTextBlobBuilder_Reference#SkTextBlobBuilder'>SkTextBlobBuilder</a>. By default, <a href='SkTextBlobBuilder_Reference#SkTextBlobBuilder'>SkTextBlobBuilder</a> has no runs.
### Return Value
@@ -137,7 +137,7 @@
~<a href='#SkTextBlobBuilder_empty_constructor'>SkTextBlobBuilder()</a>
</pre>
-Deletes <a href='undocumented#Data'>data</a> <a href='undocumented#Data'>allocated</a> <a href='undocumented#Data'>internally</a> <a href='undocumented#Data'>by</a> <a href='SkTextBlobBuilder_Reference#SkTextBlobBuilder'>SkTextBlobBuilder</a>.
+Deletes <a href='undocumented#Data'>data</a> allocated internally by <a href='SkTextBlobBuilder_Reference#SkTextBlobBuilder'>SkTextBlobBuilder</a>.
### See Also
@@ -148,19 +148,19 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-<a href='undocumented#sk_sp'>sk_sp</a>&<a href='undocumented#sk_sp'>lt</a>;<a href='SkTextBlob_Reference#SkTextBlob'>SkTextBlob</a>&<a href='SkTextBlob_Reference#SkTextBlob'>gt</a>; <a href='#SkTextBlobBuilder_make'>make()</a>
+<a href='undocumented#sk_sp'>sk_sp</a><<a href='SkTextBlob_Reference#SkTextBlob'>SkTextBlob</a>> <a href='#SkTextBlobBuilder_make'>make()</a>
</pre>
-Returns <a href='SkTextBlob_Reference#SkTextBlob'>SkTextBlob</a> <a href='SkTextBlob_Reference#SkTextBlob'>built</a> <a href='SkTextBlob_Reference#SkTextBlob'>from</a> <a href='SkTextBlob_Reference#SkTextBlob'>runs</a> <a href='SkTextBlob_Reference#SkTextBlob'>of</a> <a href='undocumented#Glyph'>glyphs</a> <a href='undocumented#Glyph'>added</a> <a href='undocumented#Glyph'>by</a> <a href='undocumented#Glyph'>builder</a>. <a href='undocumented#Glyph'>Returned</a>
-<a href='SkTextBlob_Reference#SkTextBlob'>SkTextBlob</a> <a href='SkTextBlob_Reference#SkTextBlob'>is</a> <a href='SkTextBlob_Reference#SkTextBlob'>immutable</a>; <a href='SkTextBlob_Reference#SkTextBlob'>it</a> <a href='SkTextBlob_Reference#SkTextBlob'>may</a> <a href='SkTextBlob_Reference#SkTextBlob'>be</a> <a href='SkTextBlob_Reference#SkTextBlob'>copied</a>, <a href='SkTextBlob_Reference#SkTextBlob'>but</a> <a href='SkTextBlob_Reference#SkTextBlob'>its</a> <a href='SkTextBlob_Reference#SkTextBlob'>contents</a> <a href='SkTextBlob_Reference#SkTextBlob'>may</a> <a href='SkTextBlob_Reference#SkTextBlob'>not</a> <a href='SkTextBlob_Reference#SkTextBlob'>be</a> <a href='SkTextBlob_Reference#SkTextBlob'>altered</a>.
-Returns nullptr if no runs of <a href='undocumented#Glyph'>glyphs</a> <a href='undocumented#Glyph'>were</a> <a href='undocumented#Glyph'>added</a> <a href='undocumented#Glyph'>by</a> <a href='undocumented#Glyph'>builder</a>.
+Returns <a href='SkTextBlob_Reference#SkTextBlob'>SkTextBlob</a> built from runs of <a href='undocumented#Glyph'>glyphs</a> added by builder. Returned
+<a href='SkTextBlob_Reference#SkTextBlob'>SkTextBlob</a> is immutable; it may be copied, but its contents may not be altered.
+Returns nullptr if no runs of <a href='undocumented#Glyph'>glyphs</a> were added by builder.
-Resets <a href='SkTextBlobBuilder_Reference#SkTextBlobBuilder'>SkTextBlobBuilder</a> <a href='SkTextBlobBuilder_Reference#SkTextBlobBuilder'>to</a> <a href='SkTextBlobBuilder_Reference#SkTextBlobBuilder'>its</a> <a href='SkTextBlobBuilder_Reference#SkTextBlobBuilder'>initial</a> <a href='SkTextBlobBuilder_Reference#SkTextBlobBuilder'>empty</a> <a href='SkTextBlobBuilder_Reference#SkTextBlobBuilder'>state</a>, <a href='SkTextBlobBuilder_Reference#SkTextBlobBuilder'>allowing</a> <a href='SkTextBlobBuilder_Reference#SkTextBlobBuilder'>it</a> <a href='SkTextBlobBuilder_Reference#SkTextBlobBuilder'>to</a> <a href='SkTextBlobBuilder_Reference#SkTextBlobBuilder'>be</a>
+Resets <a href='SkTextBlobBuilder_Reference#SkTextBlobBuilder'>SkTextBlobBuilder</a> to its initial empty state, allowing it to be
reused to build a new set of runs.
### Return Value
-<a href='SkTextBlob_Reference#SkTextBlob'>SkTextBlob</a> <a href='SkTextBlob_Reference#SkTextBlob'>or</a> <a href='SkTextBlob_Reference#SkTextBlob'>nullptr</a>
+<a href='SkTextBlob_Reference#SkTextBlob'>SkTextBlob</a> or nullptr
### Example
@@ -185,28 +185,28 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-const <a href='#SkTextBlobBuilder_RunBuffer'>RunBuffer</a>& <a href='#SkTextBlobBuilder_allocRun'>allocRun</a>(<a href='#SkTextBlobBuilder_allocRun'>const</a> <a href='undocumented#SkFont'>SkFont</a>& <a href='undocumented#Font'>font</a>, <a href='undocumented#Font'>int</a> <a href='undocumented#Font'>count</a>, <a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>x</a>, <a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>y</a>,
- <a href='undocumented#SkScalar'>const</a> <a href='SkRect_Reference#SkRect'>SkRect</a>* <a href='SkRect_Reference#SkRect'>bounds</a> = <a href='SkRect_Reference#SkRect'>nullptr</a>)
+const <a href='#SkTextBlobBuilder_RunBuffer'>RunBuffer</a>& <a href='#SkTextBlobBuilder_allocRun'>allocRun</a>(const <a href='undocumented#SkFont'>SkFont</a>& <a href='undocumented#Font'>font</a>, int count, <a href='undocumented#SkScalar'>SkScalar</a> x, <a href='undocumented#SkScalar'>SkScalar</a> y,
+ const <a href='SkRect_Reference#SkRect'>SkRect</a>* bounds = nullptr)
</pre>
-Returns run with storage for <a href='undocumented#Glyph'>glyphs</a>. <a href='undocumented#Glyph'>Caller</a> <a href='undocumented#Glyph'>must</a> <a href='undocumented#Glyph'>write</a> <a href='#SkTextBlobBuilder_allocRun_count'>count</a> <a href='undocumented#Glyph'>glyphs</a> <a href='undocumented#Glyph'>to</a>
-<a href='#SkTextBlobBuilder_RunBuffer'>RunBuffer</a>::<a href='#SkTextBlobBuilder_RunBuffer_glyphs'>glyphs</a> <a href='#SkTextBlobBuilder_RunBuffer_glyphs'>before</a> <a href='#SkTextBlobBuilder_RunBuffer_glyphs'>next</a> <a href='#SkTextBlobBuilder_RunBuffer_glyphs'>call</a> <a href='#SkTextBlobBuilder_RunBuffer_glyphs'>to</a> <a href='SkTextBlobBuilder_Reference#SkTextBlobBuilder'>SkTextBlobBuilder</a>.
+Returns run with storage for <a href='undocumented#Glyph'>glyphs</a>. Caller must write <a href='#SkTextBlobBuilder_allocRun_count'>count</a> <a href='undocumented#Glyph'>glyphs</a> to
+<a href='#SkTextBlobBuilder_RunBuffer'>RunBuffer</a>::<a href='#SkTextBlobBuilder_RunBuffer_glyphs'>glyphs</a> before next call to <a href='SkTextBlobBuilder_Reference#SkTextBlobBuilder'>SkTextBlobBuilder</a>.
-<a href='#SkTextBlobBuilder_RunBuffer'>RunBuffer</a>::<a href='#SkTextBlobBuilder_RunBuffer_utf8text'>utf8text</a>, <a href='#SkTextBlobBuilder_RunBuffer_utf8text'>and</a> <a href='#SkTextBlobBuilder_RunBuffer'>RunBuffer</a>::<a href='#SkTextBlobBuilder_RunBuffer_clusters'>clusters</a> <a href='#SkTextBlobBuilder_RunBuffer_clusters'>should</a> <a href='#SkTextBlobBuilder_RunBuffer_clusters'>be</a> <a href='#SkTextBlobBuilder_RunBuffer_clusters'>ignored</a>.
+<a href='#SkTextBlobBuilder_RunBuffer'>RunBuffer</a>::<a href='#SkTextBlobBuilder_RunBuffer_utf8text'>utf8text</a>, and <a href='#SkTextBlobBuilder_RunBuffer'>RunBuffer</a>::<a href='#SkTextBlobBuilder_RunBuffer_clusters'>clusters</a> should be ignored.
-<a href='undocumented#Glyph'>Glyphs</a> <a href='undocumented#Glyph'>share</a> <a href='undocumented#Glyph'>metrics</a> <a href='undocumented#Glyph'>in</a> <a href='#SkTextBlobBuilder_allocRun_font'>font</a>.
+<a href='undocumented#Glyph'>Glyphs</a> share metrics in <a href='#SkTextBlobBuilder_allocRun_font'>font</a>.
-<a href='undocumented#Glyph'>Glyphs</a> <a href='undocumented#Glyph'>are</a> <a href='undocumented#Glyph'>positioned</a> <a href='undocumented#Glyph'>on</a> <a href='undocumented#Glyph'>a</a> <a href='undocumented#Glyph'>baseline</a> <a href='undocumented#Glyph'>at</a> (<a href='#SkTextBlobBuilder_allocRun_x'>x</a>, <a href='#SkTextBlobBuilder_allocRun_y'>y</a>), <a href='#SkTextBlobBuilder_allocRun_y'>using</a> <a href='#SkTextBlobBuilder_allocRun_font'>font</a> <a href='#SkTextBlobBuilder_allocRun_font'>metrics</a> <a href='#SkTextBlobBuilder_allocRun_font'>to</a>
+<a href='undocumented#Glyph'>Glyphs</a> are positioned on a baseline at (<a href='#SkTextBlobBuilder_allocRun_x'>x</a>, <a href='#SkTextBlobBuilder_allocRun_y'>y</a>), using <a href='#SkTextBlobBuilder_allocRun_font'>font</a> metrics to
determine their relative placement.
-<a href='#SkTextBlobBuilder_allocRun_bounds'>bounds</a> <a href='#SkTextBlobBuilder_allocRun_bounds'>defines</a> <a href='#SkTextBlobBuilder_allocRun_bounds'>an</a> <a href='#SkTextBlobBuilder_allocRun_bounds'>optional</a> <a href='#SkTextBlobBuilder_allocRun_bounds'>bounding</a> <a href='#SkTextBlobBuilder_allocRun_bounds'>box</a>, <a href='#SkTextBlobBuilder_allocRun_bounds'>used</a> <a href='#SkTextBlobBuilder_allocRun_bounds'>to</a> <a href='#SkTextBlobBuilder_allocRun_bounds'>suppress</a> <a href='#SkTextBlobBuilder_allocRun_bounds'>drawing</a> <a href='#SkTextBlobBuilder_allocRun_bounds'>when</a> <a href='SkTextBlob_Reference#SkTextBlob'>SkTextBlob</a>
-<a href='#SkTextBlobBuilder_allocRun_bounds'>bounds</a> <a href='#SkTextBlobBuilder_allocRun_bounds'>does</a> <a href='#SkTextBlobBuilder_allocRun_bounds'>not</a> <a href='#SkTextBlobBuilder_allocRun_bounds'>intersect</a> <a href='SkSurface_Reference#SkSurface'>SkSurface</a> <a href='#SkTextBlobBuilder_allocRun_bounds'>bounds</a>. <a href='#SkTextBlobBuilder_allocRun_bounds'>If</a> <a href='#SkTextBlobBuilder_allocRun_bounds'>bounds</a> <a href='#SkTextBlobBuilder_allocRun_bounds'>is</a> <a href='#SkTextBlobBuilder_allocRun_bounds'>nullptr</a>, <a href='SkTextBlob_Reference#SkTextBlob'>SkTextBlob</a> <a href='#SkTextBlobBuilder_allocRun_bounds'>bounds</a>
-is computed from (<a href='#SkTextBlobBuilder_allocRun_x'>x</a>, <a href='#SkTextBlobBuilder_allocRun_y'>y</a>) <a href='#SkTextBlobBuilder_allocRun_y'>and</a> <a href='#SkTextBlobBuilder_RunBuffer'>RunBuffer</a>::<a href='#SkTextBlobBuilder_RunBuffer_glyphs'>glyphs</a> <a href='#SkTextBlobBuilder_RunBuffer_glyphs'>metrics</a>.
+<a href='#SkTextBlobBuilder_allocRun_bounds'>bounds</a> defines an optional bounding box, used to suppress drawing when <a href='SkTextBlob_Reference#SkTextBlob'>SkTextBlob</a>
+<a href='#SkTextBlobBuilder_allocRun_bounds'>bounds</a> does not intersect <a href='SkSurface_Reference#SkSurface'>SkSurface</a> <a href='#SkTextBlobBuilder_allocRun_bounds'>bounds</a>. If <a href='#SkTextBlobBuilder_allocRun_bounds'>bounds</a> is nullptr, <a href='SkTextBlob_Reference#SkTextBlob'>SkTextBlob</a> <a href='#SkTextBlobBuilder_allocRun_bounds'>bounds</a>
+is computed from (<a href='#SkTextBlobBuilder_allocRun_x'>x</a>, <a href='#SkTextBlobBuilder_allocRun_y'>y</a>) and <a href='#SkTextBlobBuilder_RunBuffer'>RunBuffer</a>::<a href='#SkTextBlobBuilder_RunBuffer_glyphs'>glyphs</a> metrics.
### Parameters
<table> <tr> <td><a name='SkTextBlobBuilder_allocRun_font'><code><strong>font</strong></code></a></td>
- <td><a href='undocumented#SkFont'>SkFont</a> <a href='undocumented#SkFont'>used</a> <a href='undocumented#SkFont'>for</a> <a href='undocumented#SkFont'>this</a> <a href='undocumented#SkFont'>run</a></td>
+ <td><a href='undocumented#SkFont'>SkFont</a> used for this run</td>
</tr>
<tr> <td><a name='SkTextBlobBuilder_allocRun_count'><code><strong>count</strong></code></a></td>
<td>number of <a href='undocumented#Glyph'>glyphs</a></td>
@@ -224,7 +224,7 @@
### Return Value
-writable <a href='undocumented#Glyph'>glyph</a> <a href='undocumented#Glyph'>buffer</a>
+writable <a href='undocumented#Glyph'>glyph</a> buffer
### Example
@@ -239,29 +239,29 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-const <a href='#SkTextBlobBuilder_RunBuffer'>RunBuffer</a>& <a href='#SkTextBlobBuilder_allocRunPosH'>allocRunPosH</a>(<a href='#SkTextBlobBuilder_allocRunPosH'>const</a> <a href='undocumented#SkFont'>SkFont</a>& <a href='undocumented#Font'>font</a>, <a href='undocumented#Font'>int</a> <a href='undocumented#Font'>count</a>, <a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>y</a>,
- <a href='undocumented#SkScalar'>const</a> <a href='SkRect_Reference#SkRect'>SkRect</a>* <a href='SkRect_Reference#SkRect'>bounds</a> = <a href='SkRect_Reference#SkRect'>nullptr</a>)
+const <a href='#SkTextBlobBuilder_RunBuffer'>RunBuffer</a>& <a href='#SkTextBlobBuilder_allocRunPosH'>allocRunPosH</a>(const <a href='undocumented#SkFont'>SkFont</a>& <a href='undocumented#Font'>font</a>, int count, <a href='undocumented#SkScalar'>SkScalar</a> y,
+ const <a href='SkRect_Reference#SkRect'>SkRect</a>* bounds = nullptr)
</pre>
-Returns run with storage for <a href='undocumented#Glyph'>glyphs</a> <a href='undocumented#Glyph'>and</a> <a href='undocumented#Glyph'>positions</a> <a href='undocumented#Glyph'>along</a> <a href='undocumented#Glyph'>baseline</a>. <a href='undocumented#Glyph'>Caller</a> <a href='undocumented#Glyph'>must</a>
-write <a href='#SkTextBlobBuilder_allocRunPosH_count'>count</a> <a href='undocumented#Glyph'>glyphs</a> <a href='undocumented#Glyph'>to</a> <a href='#SkTextBlobBuilder_RunBuffer'>RunBuffer</a>::<a href='#SkTextBlobBuilder_RunBuffer_glyphs'>glyphs</a>, <a href='#SkTextBlobBuilder_RunBuffer_glyphs'>and</a> <a href='#SkTextBlobBuilder_allocRunPosH_count'>count</a> <a href='undocumented#Scalar'>scalars</a> <a href='undocumented#Scalar'>to</a> <a href='#SkTextBlobBuilder_RunBuffer'>RunBuffer</a>::<a href='#SkTextBlobBuilder_RunBuffer_pos'>pos</a>;
+Returns run with storage for <a href='undocumented#Glyph'>glyphs</a> and positions along baseline. Caller must
+write <a href='#SkTextBlobBuilder_allocRunPosH_count'>count</a> <a href='undocumented#Glyph'>glyphs</a> to <a href='#SkTextBlobBuilder_RunBuffer'>RunBuffer</a>::<a href='#SkTextBlobBuilder_RunBuffer_glyphs'>glyphs</a>, and <a href='#SkTextBlobBuilder_allocRunPosH_count'>count</a> <a href='undocumented#Scalar'>scalars</a> to <a href='#SkTextBlobBuilder_RunBuffer'>RunBuffer</a>::<a href='#SkTextBlobBuilder_RunBuffer_pos'>pos</a>;
before next call to <a href='SkTextBlobBuilder_Reference#SkTextBlobBuilder'>SkTextBlobBuilder</a>.
-<a href='#SkTextBlobBuilder_RunBuffer'>RunBuffer</a>::<a href='#SkTextBlobBuilder_RunBuffer_utf8text'>utf8text</a>, <a href='#SkTextBlobBuilder_RunBuffer_utf8text'>and</a> <a href='#SkTextBlobBuilder_RunBuffer'>RunBuffer</a>::<a href='#SkTextBlobBuilder_RunBuffer_clusters'>clusters</a> <a href='#SkTextBlobBuilder_RunBuffer_clusters'>should</a> <a href='#SkTextBlobBuilder_RunBuffer_clusters'>be</a> <a href='#SkTextBlobBuilder_RunBuffer_clusters'>ignored</a>.
+<a href='#SkTextBlobBuilder_RunBuffer'>RunBuffer</a>::<a href='#SkTextBlobBuilder_RunBuffer_utf8text'>utf8text</a>, and <a href='#SkTextBlobBuilder_RunBuffer'>RunBuffer</a>::<a href='#SkTextBlobBuilder_RunBuffer_clusters'>clusters</a> should be ignored.
-<a href='undocumented#Glyph'>Glyphs</a> <a href='undocumented#Glyph'>share</a> <a href='undocumented#Glyph'>metrics</a> <a href='undocumented#Glyph'>in</a> <a href='#SkTextBlobBuilder_allocRunPosH_font'>font</a>.
+<a href='undocumented#Glyph'>Glyphs</a> share metrics in <a href='#SkTextBlobBuilder_allocRunPosH_font'>font</a>.
-<a href='undocumented#Glyph'>Glyphs</a> <a href='undocumented#Glyph'>are</a> <a href='undocumented#Glyph'>positioned</a> <a href='undocumented#Glyph'>on</a> <a href='undocumented#Glyph'>a</a> <a href='undocumented#Glyph'>baseline</a> <a href='undocumented#Glyph'>at</a> <a href='#SkTextBlobBuilder_allocRunPosH_y'>y</a>, <a href='#SkTextBlobBuilder_allocRunPosH_y'>using</a> <a href='#SkTextBlobBuilder_allocRunPosH_y'>x-axis</a> <a href='#SkTextBlobBuilder_allocRunPosH_y'>positions</a> <a href='#SkTextBlobBuilder_allocRunPosH_y'>written</a> <a href='#SkTextBlobBuilder_allocRunPosH_y'>by</a>
+<a href='undocumented#Glyph'>Glyphs</a> are positioned on a baseline at <a href='#SkTextBlobBuilder_allocRunPosH_y'>y</a>, using x-axis positions written by
caller to <a href='#SkTextBlobBuilder_RunBuffer'>RunBuffer</a>::<a href='#SkTextBlobBuilder_RunBuffer_pos'>pos</a>.
-<a href='#SkTextBlobBuilder_allocRunPosH_bounds'>bounds</a> <a href='#SkTextBlobBuilder_allocRunPosH_bounds'>defines</a> <a href='#SkTextBlobBuilder_allocRunPosH_bounds'>an</a> <a href='#SkTextBlobBuilder_allocRunPosH_bounds'>optional</a> <a href='#SkTextBlobBuilder_allocRunPosH_bounds'>bounding</a> <a href='#SkTextBlobBuilder_allocRunPosH_bounds'>box</a>, <a href='#SkTextBlobBuilder_allocRunPosH_bounds'>used</a> <a href='#SkTextBlobBuilder_allocRunPosH_bounds'>to</a> <a href='#SkTextBlobBuilder_allocRunPosH_bounds'>suppress</a> <a href='#SkTextBlobBuilder_allocRunPosH_bounds'>drawing</a> <a href='#SkTextBlobBuilder_allocRunPosH_bounds'>when</a> <a href='SkTextBlob_Reference#SkTextBlob'>SkTextBlob</a>
-<a href='#SkTextBlobBuilder_allocRunPosH_bounds'>bounds</a> <a href='#SkTextBlobBuilder_allocRunPosH_bounds'>does</a> <a href='#SkTextBlobBuilder_allocRunPosH_bounds'>not</a> <a href='#SkTextBlobBuilder_allocRunPosH_bounds'>intersect</a> <a href='SkSurface_Reference#SkSurface'>SkSurface</a> <a href='#SkTextBlobBuilder_allocRunPosH_bounds'>bounds</a>. <a href='#SkTextBlobBuilder_allocRunPosH_bounds'>If</a> <a href='#SkTextBlobBuilder_allocRunPosH_bounds'>bounds</a> <a href='#SkTextBlobBuilder_allocRunPosH_bounds'>is</a> <a href='#SkTextBlobBuilder_allocRunPosH_bounds'>nullptr</a>, <a href='SkTextBlob_Reference#SkTextBlob'>SkTextBlob</a> <a href='#SkTextBlobBuilder_allocRunPosH_bounds'>bounds</a>
-is computed from <a href='#SkTextBlobBuilder_allocRunPosH_y'>y</a>, <a href='#SkTextBlobBuilder_RunBuffer'>RunBuffer</a>::<a href='#SkTextBlobBuilder_RunBuffer_pos'>pos</a>, <a href='#SkTextBlobBuilder_RunBuffer_pos'>and</a> <a href='#SkTextBlobBuilder_RunBuffer'>RunBuffer</a>::<a href='#SkTextBlobBuilder_RunBuffer_glyphs'>glyphs</a> <a href='#SkTextBlobBuilder_RunBuffer_glyphs'>metrics</a>.
+<a href='#SkTextBlobBuilder_allocRunPosH_bounds'>bounds</a> defines an optional bounding box, used to suppress drawing when <a href='SkTextBlob_Reference#SkTextBlob'>SkTextBlob</a>
+<a href='#SkTextBlobBuilder_allocRunPosH_bounds'>bounds</a> does not intersect <a href='SkSurface_Reference#SkSurface'>SkSurface</a> <a href='#SkTextBlobBuilder_allocRunPosH_bounds'>bounds</a>. If <a href='#SkTextBlobBuilder_allocRunPosH_bounds'>bounds</a> is nullptr, <a href='SkTextBlob_Reference#SkTextBlob'>SkTextBlob</a> <a href='#SkTextBlobBuilder_allocRunPosH_bounds'>bounds</a>
+is computed from <a href='#SkTextBlobBuilder_allocRunPosH_y'>y</a>, <a href='#SkTextBlobBuilder_RunBuffer'>RunBuffer</a>::<a href='#SkTextBlobBuilder_RunBuffer_pos'>pos</a>, and <a href='#SkTextBlobBuilder_RunBuffer'>RunBuffer</a>::<a href='#SkTextBlobBuilder_RunBuffer_glyphs'>glyphs</a> metrics.
### Parameters
<table> <tr> <td><a name='SkTextBlobBuilder_allocRunPosH_font'><code><strong>font</strong></code></a></td>
- <td><a href='undocumented#SkFont'>SkFont</a> <a href='undocumented#SkFont'>used</a> <a href='undocumented#SkFont'>for</a> <a href='undocumented#SkFont'>this</a> <a href='undocumented#SkFont'>run</a></td>
+ <td><a href='undocumented#SkFont'>SkFont</a> used for this run</td>
</tr>
<tr> <td><a name='SkTextBlobBuilder_allocRunPosH_count'><code><strong>count</strong></code></a></td>
<td>number of <a href='undocumented#Glyph'>glyphs</a></td>
@@ -276,7 +276,7 @@
### Return Value
-writable <a href='undocumented#Glyph'>glyph</a> <a href='undocumented#Glyph'>buffer</a> <a href='undocumented#Glyph'>and</a> <a href='undocumented#Glyph'>x-axis</a> <a href='undocumented#Glyph'>position</a> <a href='undocumented#Glyph'>buffer</a>
+writable <a href='undocumented#Glyph'>glyph</a> buffer and x-axis position buffer
### Example
@@ -291,28 +291,28 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-const <a href='#SkTextBlobBuilder_RunBuffer'>RunBuffer</a>& <a href='#SkTextBlobBuilder_allocRunPos'>allocRunPos</a>(<a href='#SkTextBlobBuilder_allocRunPos'>const</a> <a href='undocumented#SkFont'>SkFont</a>& <a href='undocumented#Font'>font</a>, <a href='undocumented#Font'>int</a> <a href='undocumented#Font'>count</a>, <a href='undocumented#Font'>const</a> <a href='SkRect_Reference#SkRect'>SkRect</a>* <a href='SkRect_Reference#SkRect'>bounds</a> = <a href='SkRect_Reference#SkRect'>nullptr</a>)
+const <a href='#SkTextBlobBuilder_RunBuffer'>RunBuffer</a>& <a href='#SkTextBlobBuilder_allocRunPos'>allocRunPos</a>(const <a href='undocumented#SkFont'>SkFont</a>& <a href='undocumented#Font'>font</a>, int count, const <a href='SkRect_Reference#SkRect'>SkRect</a>* bounds = nullptr)
</pre>
-Returns run with storage for <a href='undocumented#Glyph'>glyphs</a> <a href='undocumented#Glyph'>and</a> <a href='SkPoint_Reference#SkPoint'>SkPoint</a> <a href='SkPoint_Reference#SkPoint'>positions</a>. <a href='SkPoint_Reference#SkPoint'>Caller</a> <a href='SkPoint_Reference#SkPoint'>must</a>
-write <a href='#SkTextBlobBuilder_allocRunPos_count'>count</a> <a href='undocumented#Glyph'>glyphs</a> <a href='undocumented#Glyph'>to</a> <a href='#SkTextBlobBuilder_RunBuffer'>RunBuffer</a>::<a href='#SkTextBlobBuilder_RunBuffer_glyphs'>glyphs</a>, <a href='#SkTextBlobBuilder_RunBuffer_glyphs'>and</a> <a href='#SkTextBlobBuilder_allocRunPos_count'>count</a> <a href='SkPoint_Reference#SkPoint'>SkPoint</a> <a href='SkPoint_Reference#SkPoint'>to</a> <a href='#SkTextBlobBuilder_RunBuffer'>RunBuffer</a>::<a href='#SkTextBlobBuilder_RunBuffer_pos'>pos</a>;
+Returns run with storage for <a href='undocumented#Glyph'>glyphs</a> and <a href='SkPoint_Reference#SkPoint'>SkPoint</a> positions. Caller must
+write <a href='#SkTextBlobBuilder_allocRunPos_count'>count</a> <a href='undocumented#Glyph'>glyphs</a> to <a href='#SkTextBlobBuilder_RunBuffer'>RunBuffer</a>::<a href='#SkTextBlobBuilder_RunBuffer_glyphs'>glyphs</a>, and <a href='#SkTextBlobBuilder_allocRunPos_count'>count</a> <a href='SkPoint_Reference#SkPoint'>SkPoint</a> to <a href='#SkTextBlobBuilder_RunBuffer'>RunBuffer</a>::<a href='#SkTextBlobBuilder_RunBuffer_pos'>pos</a>;
before next call to <a href='SkTextBlobBuilder_Reference#SkTextBlobBuilder'>SkTextBlobBuilder</a>.
-<a href='#SkTextBlobBuilder_RunBuffer'>RunBuffer</a>::<a href='#SkTextBlobBuilder_RunBuffer_utf8text'>utf8text</a>, <a href='#SkTextBlobBuilder_RunBuffer_utf8text'>and</a> <a href='#SkTextBlobBuilder_RunBuffer'>RunBuffer</a>::<a href='#SkTextBlobBuilder_RunBuffer_clusters'>clusters</a> <a href='#SkTextBlobBuilder_RunBuffer_clusters'>should</a> <a href='#SkTextBlobBuilder_RunBuffer_clusters'>be</a> <a href='#SkTextBlobBuilder_RunBuffer_clusters'>ignored</a>.
+<a href='#SkTextBlobBuilder_RunBuffer'>RunBuffer</a>::<a href='#SkTextBlobBuilder_RunBuffer_utf8text'>utf8text</a>, and <a href='#SkTextBlobBuilder_RunBuffer'>RunBuffer</a>::<a href='#SkTextBlobBuilder_RunBuffer_clusters'>clusters</a> should be ignored.
-<a href='undocumented#Glyph'>Glyphs</a> <a href='undocumented#Glyph'>share</a> <a href='undocumented#Glyph'>metrics</a> <a href='undocumented#Glyph'>in</a> <a href='#SkTextBlobBuilder_allocRunPos_font'>font</a>.
+<a href='undocumented#Glyph'>Glyphs</a> share metrics in <a href='#SkTextBlobBuilder_allocRunPos_font'>font</a>.
-<a href='undocumented#Glyph'>Glyphs</a> <a href='undocumented#Glyph'>are</a> <a href='undocumented#Glyph'>positioned</a> <a href='undocumented#Glyph'>using</a> <a href='SkPoint_Reference#SkPoint'>SkPoint</a> <a href='SkPoint_Reference#SkPoint'>written</a> <a href='SkPoint_Reference#SkPoint'>by</a> <a href='SkPoint_Reference#SkPoint'>caller</a> <a href='SkPoint_Reference#SkPoint'>to</a> <a href='#SkTextBlobBuilder_RunBuffer'>RunBuffer</a>::<a href='#SkTextBlobBuilder_RunBuffer_pos'>pos</a>, <a href='#SkTextBlobBuilder_RunBuffer_pos'>using</a>
-two <a href='undocumented#Scalar'>scalar</a> <a href='undocumented#Scalar'>values</a> <a href='undocumented#Scalar'>for</a> <a href='undocumented#Scalar'>each</a> <a href='SkPoint_Reference#SkPoint'>SkPoint</a>.
+<a href='undocumented#Glyph'>Glyphs</a> are positioned using <a href='SkPoint_Reference#SkPoint'>SkPoint</a> written by caller to <a href='#SkTextBlobBuilder_RunBuffer'>RunBuffer</a>::<a href='#SkTextBlobBuilder_RunBuffer_pos'>pos</a>, using
+two <a href='undocumented#Scalar'>scalar</a> values for each <a href='SkPoint_Reference#SkPoint'>SkPoint</a>.
-<a href='#SkTextBlobBuilder_allocRunPos_bounds'>bounds</a> <a href='#SkTextBlobBuilder_allocRunPos_bounds'>defines</a> <a href='#SkTextBlobBuilder_allocRunPos_bounds'>an</a> <a href='#SkTextBlobBuilder_allocRunPos_bounds'>optional</a> <a href='#SkTextBlobBuilder_allocRunPos_bounds'>bounding</a> <a href='#SkTextBlobBuilder_allocRunPos_bounds'>box</a>, <a href='#SkTextBlobBuilder_allocRunPos_bounds'>used</a> <a href='#SkTextBlobBuilder_allocRunPos_bounds'>to</a> <a href='#SkTextBlobBuilder_allocRunPos_bounds'>suppress</a> <a href='#SkTextBlobBuilder_allocRunPos_bounds'>drawing</a> <a href='#SkTextBlobBuilder_allocRunPos_bounds'>when</a> <a href='SkTextBlob_Reference#SkTextBlob'>SkTextBlob</a>
-<a href='#SkTextBlobBuilder_allocRunPos_bounds'>bounds</a> <a href='#SkTextBlobBuilder_allocRunPos_bounds'>does</a> <a href='#SkTextBlobBuilder_allocRunPos_bounds'>not</a> <a href='#SkTextBlobBuilder_allocRunPos_bounds'>intersect</a> <a href='SkSurface_Reference#SkSurface'>SkSurface</a> <a href='#SkTextBlobBuilder_allocRunPos_bounds'>bounds</a>. <a href='#SkTextBlobBuilder_allocRunPos_bounds'>If</a> <a href='#SkTextBlobBuilder_allocRunPos_bounds'>bounds</a> <a href='#SkTextBlobBuilder_allocRunPos_bounds'>is</a> <a href='#SkTextBlobBuilder_allocRunPos_bounds'>nullptr</a>, <a href='SkTextBlob_Reference#SkTextBlob'>SkTextBlob</a> <a href='#SkTextBlobBuilder_allocRunPos_bounds'>bounds</a>
-is computed from <a href='#SkTextBlobBuilder_RunBuffer'>RunBuffer</a>::<a href='#SkTextBlobBuilder_RunBuffer_pos'>pos</a>, <a href='#SkTextBlobBuilder_RunBuffer_pos'>and</a> <a href='#SkTextBlobBuilder_RunBuffer'>RunBuffer</a>::<a href='#SkTextBlobBuilder_RunBuffer_glyphs'>glyphs</a> <a href='#SkTextBlobBuilder_RunBuffer_glyphs'>metrics</a>.
+<a href='#SkTextBlobBuilder_allocRunPos_bounds'>bounds</a> defines an optional bounding box, used to suppress drawing when <a href='SkTextBlob_Reference#SkTextBlob'>SkTextBlob</a>
+<a href='#SkTextBlobBuilder_allocRunPos_bounds'>bounds</a> does not intersect <a href='SkSurface_Reference#SkSurface'>SkSurface</a> <a href='#SkTextBlobBuilder_allocRunPos_bounds'>bounds</a>. If <a href='#SkTextBlobBuilder_allocRunPos_bounds'>bounds</a> is nullptr, <a href='SkTextBlob_Reference#SkTextBlob'>SkTextBlob</a> <a href='#SkTextBlobBuilder_allocRunPos_bounds'>bounds</a>
+is computed from <a href='#SkTextBlobBuilder_RunBuffer'>RunBuffer</a>::<a href='#SkTextBlobBuilder_RunBuffer_pos'>pos</a>, and <a href='#SkTextBlobBuilder_RunBuffer'>RunBuffer</a>::<a href='#SkTextBlobBuilder_RunBuffer_glyphs'>glyphs</a> metrics.
### Parameters
<table> <tr> <td><a name='SkTextBlobBuilder_allocRunPos_font'><code><strong>font</strong></code></a></td>
- <td><a href='undocumented#SkFont'>SkFont</a> <a href='undocumented#SkFont'>used</a> <a href='undocumented#SkFont'>for</a> <a href='undocumented#SkFont'>this</a> <a href='undocumented#SkFont'>run</a></td>
+ <td><a href='undocumented#SkFont'>SkFont</a> used for this run</td>
</tr>
<tr> <td><a name='SkTextBlobBuilder_allocRunPos_count'><code><strong>count</strong></code></a></td>
<td>number of <a href='undocumented#Glyph'>glyphs</a></td>
@@ -324,7 +324,7 @@
### Return Value
-writable <a href='undocumented#Glyph'>glyph</a> <a href='undocumented#Glyph'>buffer</a> <a href='undocumented#Glyph'>and</a> <a href='SkPoint_Reference#SkPoint'>SkPoint</a> <a href='SkPoint_Reference#SkPoint'>buffer</a>
+writable <a href='undocumented#Glyph'>glyph</a> buffer and <a href='SkPoint_Reference#SkPoint'>SkPoint</a> buffer
### Example
@@ -339,8 +339,8 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-const <a href='#SkTextBlobBuilder_RunBuffer'>RunBuffer</a>& <a href='#SkTextBlobBuilder_allocRun'>allocRun</a>(<a href='#SkTextBlobBuilder_allocRun'>const</a> <a href='SkPaint_Reference#SkPaint'>SkPaint</a>& <a href='undocumented#Font'>font</a>, <a href='undocumented#Font'>int</a> <a href='undocumented#Font'>count</a>, <a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>x</a>, <a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>y</a>,
- <a href='undocumented#SkScalar'>const</a> <a href='SkRect_Reference#SkRect'>SkRect</a>* <a href='SkRect_Reference#SkRect'>bounds</a> = <a href='SkRect_Reference#SkRect'>nullptr</a>)
+const <a href='#SkTextBlobBuilder_RunBuffer'>RunBuffer</a>& <a href='#SkTextBlobBuilder_allocRun'>allocRun</a>(const <a href='SkPaint_Reference#SkPaint'>SkPaint</a>& <a href='undocumented#Font'>font</a>, int count, <a href='undocumented#SkScalar'>SkScalar</a> x, <a href='undocumented#SkScalar'>SkScalar</a> y,
+ const <a href='SkRect_Reference#SkRect'>SkRect</a>* bounds = nullptr)
</pre>
Deprecated.
@@ -350,8 +350,8 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-const <a href='#SkTextBlobBuilder_RunBuffer'>RunBuffer</a>& <a href='#SkTextBlobBuilder_allocRunPosH'>allocRunPosH</a>(<a href='#SkTextBlobBuilder_allocRunPosH'>const</a> <a href='SkPaint_Reference#SkPaint'>SkPaint</a>& <a href='undocumented#Font'>font</a>, <a href='undocumented#Font'>int</a> <a href='undocumented#Font'>count</a>, <a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#SkScalar'>y</a>,
- <a href='undocumented#SkScalar'>const</a> <a href='SkRect_Reference#SkRect'>SkRect</a>* <a href='SkRect_Reference#SkRect'>bounds</a> = <a href='SkRect_Reference#SkRect'>nullptr</a>)
+const <a href='#SkTextBlobBuilder_RunBuffer'>RunBuffer</a>& <a href='#SkTextBlobBuilder_allocRunPosH'>allocRunPosH</a>(const <a href='SkPaint_Reference#SkPaint'>SkPaint</a>& <a href='undocumented#Font'>font</a>, int count, <a href='undocumented#SkScalar'>SkScalar</a> y,
+ const <a href='SkRect_Reference#SkRect'>SkRect</a>* bounds = nullptr)
</pre>
Deprecated.
@@ -361,7 +361,7 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-const <a href='#SkTextBlobBuilder_RunBuffer'>RunBuffer</a>& <a href='#SkTextBlobBuilder_allocRunPos'>allocRunPos</a>(<a href='#SkTextBlobBuilder_allocRunPos'>const</a> <a href='SkPaint_Reference#SkPaint'>SkPaint</a>& <a href='undocumented#Font'>font</a>, <a href='undocumented#Font'>int</a> <a href='undocumented#Font'>count</a>, <a href='undocumented#Font'>const</a> <a href='SkRect_Reference#SkRect'>SkRect</a>* <a href='SkRect_Reference#SkRect'>bounds</a> = <a href='SkRect_Reference#SkRect'>nullptr</a>)
+const <a href='#SkTextBlobBuilder_RunBuffer'>RunBuffer</a>& <a href='#SkTextBlobBuilder_allocRunPos'>allocRunPos</a>(const <a href='SkPaint_Reference#SkPaint'>SkPaint</a>& <a href='undocumented#Font'>font</a>, int count, const <a href='SkRect_Reference#SkRect'>SkRect</a>* bounds = nullptr)
</pre>
Deprecated.
diff --git a/site/user/api/SkTextBlob_Reference.md b/site/user/api/SkTextBlob_Reference.md
index 0600981..428ed0a 100644
--- a/site/user/api/SkTextBlob_Reference.md
+++ b/site/user/api/SkTextBlob_Reference.md
@@ -7,36 +7,36 @@
---
<pre style="padding: 1em 1em 1em 1em;width: 62.5em; background-color: #f0f0f0">
-class <a href='SkTextBlob_Reference#SkTextBlob'>SkTextBlob</a> <a href='SkTextBlob_Reference#SkTextBlob'>final</a> : <a href='SkTextBlob_Reference#SkTextBlob'>public</a> <a href='SkTextBlob_Reference#SkTextBlob'>SkNVRefCnt</a><<a href='SkTextBlob_Reference#SkTextBlob'>SkTextBlob</a>> {
-<a href='SkTextBlob_Reference#SkTextBlob'>public</a>:
- <a href='SkTextBlob_Reference#SkTextBlob'>const</a> <a href='SkRect_Reference#SkRect'>SkRect</a>& <a href='#SkTextBlob_bounds'>bounds()</a> <a href='#SkTextBlob_bounds'>const</a>;
- <a href='#SkTextBlob_bounds'>uint32_t</a> <a href='#SkTextBlob_uniqueID'>uniqueID</a>() <a href='#SkTextBlob_uniqueID'>const</a>;
- <a href='#SkTextBlob_uniqueID'>static</a> <a href='undocumented#sk_sp'>sk_sp</a><<a href='SkTextBlob_Reference#SkTextBlob'>SkTextBlob</a>> <a href='#SkTextBlob_MakeFromText'>MakeFromText</a>(<a href='#SkTextBlob_MakeFromText'>const</a> <a href='#SkTextBlob_MakeFromText'>void</a>* <a href='undocumented#Text'>text</a>, <a href='undocumented#Text'>size_t</a> <a href='undocumented#Text'>byteLength</a>, <a href='undocumented#Text'>const</a> <a href='undocumented#SkFont'>SkFont</a>& <a href='undocumented#Font'>font</a>,
- <a href='SkPaint_Reference#SkPaint'>SkPaint</a>::<a href='#SkPaint_TextEncoding'>TextEncoding</a> <a href='#SkPaint_TextEncoding'>encoding</a> = <a href='SkPaint_Reference#SkPaint'>SkPaint</a>::<a href='#SkPaint_kUTF8_TextEncoding'>kUTF8_TextEncoding</a>);
- <a href='#SkPaint_kUTF8_TextEncoding'>static</a> <a href='undocumented#sk_sp'>sk_sp</a><<a href='SkTextBlob_Reference#SkTextBlob'>SkTextBlob</a>> <a href='#SkTextBlob_MakeFromString'>MakeFromString</a>(<a href='#SkTextBlob_MakeFromString'>const</a> <a href='#SkTextBlob_MakeFromString'>char</a>* <a href='undocumented#String'>string</a>, <a href='undocumented#String'>const</a> <a href='undocumented#SkFont'>SkFont</a>& <a href='undocumented#Font'>font</a>,
- <a href='SkPaint_Reference#SkPaint'>SkPaint</a>::<a href='#SkPaint_TextEncoding'>TextEncoding</a> <a href='#SkPaint_TextEncoding'>encoding</a> = <a href='SkPaint_Reference#SkPaint'>SkPaint</a>::<a href='#SkPaint_kUTF8_TextEncoding'>kUTF8_TextEncoding</a>);
- <a href='#SkPaint_kUTF8_TextEncoding'>size_t</a> <a href='#SkTextBlob_serialize'>serialize</a>(<a href='#SkTextBlob_serialize'>const</a> <a href='undocumented#SkSerialProcs'>SkSerialProcs</a>& <a href='undocumented#SkSerialProcs'>procs</a>, <a href='undocumented#SkSerialProcs'>void</a>* <a href='undocumented#SkSerialProcs'>memory</a>, <a href='undocumented#SkSerialProcs'>size_t</a> <a href='undocumented#SkSerialProcs'>memory_size</a>) <a href='undocumented#SkSerialProcs'>const</a>;
- <a href='undocumented#sk_sp'>sk_sp</a><<a href='undocumented#SkData'>SkData</a>> <a href='#SkTextBlob_serialize'>serialize</a>(<a href='#SkTextBlob_serialize'>const</a> <a href='undocumented#SkSerialProcs'>SkSerialProcs</a>& <a href='undocumented#SkSerialProcs'>procs</a>) <a href='undocumented#SkSerialProcs'>const</a>;
- <a href='undocumented#SkSerialProcs'>static</a> <a href='undocumented#sk_sp'>sk_sp</a><<a href='SkTextBlob_Reference#SkTextBlob'>SkTextBlob</a>> <a href='#SkTextBlob_Deserialize'>Deserialize</a>(<a href='#SkTextBlob_Deserialize'>const</a> <a href='#SkTextBlob_Deserialize'>void</a>* <a href='undocumented#Data'>data</a>, <a href='undocumented#Data'>size_t</a> <a href='undocumented#Size'>size</a>,
- <a href='undocumented#Size'>const</a> <a href='undocumented#SkDeserialProcs'>SkDeserialProcs</a>& <a href='undocumented#SkDeserialProcs'>procs</a>);
+class <a href='SkTextBlob_Reference#SkTextBlob'>SkTextBlob</a> final : public SkNVRefCnt<<a href='SkTextBlob_Reference#SkTextBlob'>SkTextBlob</a>> {
+public:
+ const <a href='SkRect_Reference#SkRect'>SkRect</a>& <a href='#SkTextBlob_bounds'>bounds()</a> const;
+ uint32_t <a href='#SkTextBlob_uniqueID'>uniqueID</a>() const;
+ static <a href='undocumented#sk_sp'>sk_sp</a><<a href='SkTextBlob_Reference#SkTextBlob'>SkTextBlob</a>> <a href='#SkTextBlob_MakeFromText'>MakeFromText</a>(const void* <a href='undocumented#Text'>text</a>, size_t byteLength, const <a href='undocumented#SkFont'>SkFont</a>& <a href='undocumented#Font'>font</a>,
+ <a href='SkPaint_Reference#SkPaint'>SkPaint</a>::<a href='#SkPaint_TextEncoding'>TextEncoding</a> encoding = <a href='SkPaint_Reference#SkPaint'>SkPaint</a>::<a href='#SkPaint_kUTF8_TextEncoding'>kUTF8_TextEncoding</a>);
+ static <a href='undocumented#sk_sp'>sk_sp</a><<a href='SkTextBlob_Reference#SkTextBlob'>SkTextBlob</a>> <a href='#SkTextBlob_MakeFromString'>MakeFromString</a>(const char* <a href='undocumented#String'>string</a>, const <a href='undocumented#SkFont'>SkFont</a>& <a href='undocumented#Font'>font</a>,
+ <a href='SkPaint_Reference#SkPaint'>SkPaint</a>::<a href='#SkPaint_TextEncoding'>TextEncoding</a> encoding = <a href='SkPaint_Reference#SkPaint'>SkPaint</a>::<a href='#SkPaint_kUTF8_TextEncoding'>kUTF8_TextEncoding</a>);
+ size_t <a href='#SkTextBlob_serialize'>serialize</a>(const <a href='undocumented#SkSerialProcs'>SkSerialProcs</a>& procs, void* memory, size_t memory_size) const;
+ <a href='undocumented#sk_sp'>sk_sp</a><<a href='undocumented#SkData'>SkData</a>> <a href='#SkTextBlob_serialize'>serialize</a>(const <a href='undocumented#SkSerialProcs'>SkSerialProcs</a>& procs) const;
+ static <a href='undocumented#sk_sp'>sk_sp</a><<a href='SkTextBlob_Reference#SkTextBlob'>SkTextBlob</a>> <a href='#SkTextBlob_Deserialize'>Deserialize</a>(const void* <a href='undocumented#Data'>data</a>, size_t <a href='undocumented#Size'>size</a>,
+ const <a href='undocumented#SkDeserialProcs'>SkDeserialProcs</a>& procs);
};
</pre>
-<a href='SkTextBlob_Reference#SkTextBlob'>SkTextBlob</a> <a href='SkTextBlob_Reference#SkTextBlob'>combines</a> <a href='SkTextBlob_Reference#SkTextBlob'>multiple</a> <a href='undocumented#Text'>text</a> <a href='undocumented#Text'>runs</a> <a href='undocumented#Text'>into</a> <a href='undocumented#Text'>an</a> <a href='undocumented#Text'>immutable</a> <a href='undocumented#Text'>container</a>. <a href='undocumented#Text'>Each</a> <a href='undocumented#Text'>text</a>
-<a href='undocumented#Text'>run</a> <a href='undocumented#Text'>consists</a> <a href='undocumented#Text'>of</a> <a href='undocumented#Glyph'>Glyphs</a>, <a href='SkPaint_Reference#Paint'>Paint</a>, <a href='SkPaint_Reference#Paint'>and</a> <a href='SkPaint_Reference#Paint'>position</a>. <a href='SkPaint_Reference#Paint'>Only</a> <a href='SkPaint_Reference#Paint'>parts</a> <a href='SkPaint_Reference#Paint'>of</a> <a href='SkPaint_Reference#Paint'>Paint</a> <a href='SkPaint_Reference#Paint'>related</a> <a href='SkPaint_Reference#Paint'>to</a>
-<a href='SkPaint_Reference#Paint'>fonts</a> <a href='SkPaint_Reference#Paint'>and</a> <a href='undocumented#Text'>text</a> <a href='undocumented#Text'>rendering</a> <a href='undocumented#Text'>are</a> <a href='undocumented#Text'>used</a> <a href='undocumented#Text'>by</a> <a href='undocumented#Text'>run</a>.
+<a href='SkTextBlob_Reference#SkTextBlob'>SkTextBlob</a> combines multiple <a href='undocumented#Text'>text</a> runs into an immutable container. Each <a href='undocumented#Text'>text</a>
+run consists of <a href='undocumented#Glyph'>Glyphs</a>, <a href='SkPaint_Reference#Paint'>Paint</a>, and position. Only parts of <a href='SkPaint_Reference#Paint'>Paint</a> related to
+fonts and <a href='undocumented#Text'>text</a> rendering are used by run.
<a name='SkTextBlob_bounds'></a>
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-const <a href='SkRect_Reference#SkRect'>SkRect</a>& <a href='#SkTextBlob_bounds'>bounds()</a> <a href='#SkTextBlob_bounds'>const</a>
+const <a href='SkRect_Reference#SkRect'>SkRect</a>& <a href='#SkTextBlob_bounds'>bounds()</a> const
</pre>
-Returns conservative bounding box. Uses <a href='SkPaint_Reference#SkPaint'>SkPaint</a> <a href='SkPaint_Reference#SkPaint'>associated</a> <a href='SkPaint_Reference#SkPaint'>with</a> <a href='SkPaint_Reference#SkPaint'>each</a> <a href='undocumented#Glyph'>glyph</a> <a href='undocumented#Glyph'>to</a>
-determine <a href='undocumented#Glyph'>glyph</a> <a href='undocumented#Glyph'>bounds</a>, <a href='undocumented#Glyph'>and</a> <a href='undocumented#Glyph'>unions</a> <a href='undocumented#Glyph'>all</a> <a href='undocumented#Glyph'>bounds</a>. <a href='undocumented#Glyph'>Returned</a> <a href='undocumented#Glyph'>bounds</a> <a href='undocumented#Glyph'>may</a> <a href='undocumented#Glyph'>be</a>
-larger than the bounds of all <a href='undocumented#Glyph'>glyphs</a> <a href='undocumented#Glyph'>in</a> <a href='undocumented#Glyph'>runs</a>.
+Returns conservative bounding box. Uses <a href='SkPaint_Reference#SkPaint'>SkPaint</a> associated with each <a href='undocumented#Glyph'>glyph</a> to
+determine <a href='undocumented#Glyph'>glyph</a> bounds, and unions all bounds. Returned bounds may be
+larger than the bounds of all <a href='undocumented#Glyph'>glyphs</a> in runs.
### Return Value
@@ -55,10 +55,10 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-uint32_t <a href='#SkTextBlob_uniqueID'>uniqueID</a>() <a href='#SkTextBlob_uniqueID'>const</a>
+uint32_t <a href='#SkTextBlob_uniqueID'>uniqueID</a>() const
</pre>
-Returns a non-zero value unique among all <a href='undocumented#Text'>text</a> <a href='undocumented#Text'>blobs</a>.
+Returns a non-zero value unique among all <a href='undocumented#Text'>text</a> blobs.
### Return Value
@@ -77,29 +77,29 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-static <a href='undocumented#sk_sp'>sk_sp</a>&<a href='undocumented#sk_sp'>lt</a>;<a href='SkTextBlob_Reference#SkTextBlob'>SkTextBlob</a>&<a href='SkTextBlob_Reference#SkTextBlob'>gt</a>; <a href='#SkTextBlob_MakeFromText'>MakeFromText</a>(<a href='#SkTextBlob_MakeFromText'>const</a> <a href='#SkTextBlob_MakeFromText'>void</a>* <a href='undocumented#Text'>text</a>, <a href='undocumented#Text'>size_t</a> <a href='undocumented#Text'>byteLength</a>, <a href='undocumented#Text'>const</a> <a href='undocumented#SkFont'>SkFont</a>& <a href='undocumented#Font'>font</a>,
- <a href='SkPaint_Reference#SkPaint'>SkPaint</a>::<a href='#SkPaint_TextEncoding'>TextEncoding</a> <a href='#SkPaint_TextEncoding'>encoding</a> = <a href='SkPaint_Reference#SkPaint'>SkPaint</a>::<a href='#SkPaint_kUTF8_TextEncoding'>kUTF8_TextEncoding</a>)
+static <a href='undocumented#sk_sp'>sk_sp</a><<a href='SkTextBlob_Reference#SkTextBlob'>SkTextBlob</a>> <a href='#SkTextBlob_MakeFromText'>MakeFromText</a>(const void* <a href='undocumented#Text'>text</a>, size_t byteLength, const <a href='undocumented#SkFont'>SkFont</a>& <a href='undocumented#Font'>font</a>,
+ <a href='SkPaint_Reference#SkPaint'>SkPaint</a>::<a href='#SkPaint_TextEncoding'>TextEncoding</a> encoding = <a href='SkPaint_Reference#SkPaint'>SkPaint</a>::<a href='#SkPaint_kUTF8_TextEncoding'>kUTF8_TextEncoding</a>)
</pre>
-Creates <a href='#Text_Blob'>Text_Blob</a> <a href='#Text_Blob'>with</a> <a href='#Text_Blob'>a</a> <a href='#Text_Blob'>single</a> <a href='#Text_Blob'>run</a>. <a href='#SkTextBlob_MakeFromText_text'>text</a> <a href='#SkTextBlob_MakeFromText_text'>meaning</a> <a href='#SkTextBlob_MakeFromText_text'>depends</a> <a href='#SkTextBlob_MakeFromText_text'>on</a> <a href='#Paint_Text_Encoding'>Paint_Text_Encoding</a>;
-<a href='#Paint_Text_Encoding'>by</a> <a href='#Paint_Text_Encoding'>default</a>, <a href='#SkTextBlob_MakeFromText_text'>text</a> <a href='#SkTextBlob_MakeFromText_text'>is</a> <a href='#SkTextBlob_MakeFromText_text'>encoded</a> <a href='#SkTextBlob_MakeFromText_text'>as</a> <a href='#SkTextBlob_MakeFromText_text'>UTF-8</a>.
+Creates <a href='#Text_Blob'>Text_Blob</a> with a single run. <a href='#SkTextBlob_MakeFromText_text'>text</a> meaning depends on <a href='#Paint_Text_Encoding'>Paint_Text_Encoding</a>;
+by default, <a href='#SkTextBlob_MakeFromText_text'>text</a> is encoded as UTF-8.
-<a href='#SkTextBlob_MakeFromText_font'>font</a> <a href='#SkTextBlob_MakeFromText_font'>contains</a> <a href='#SkTextBlob_MakeFromText_font'>attributes</a> <a href='#SkTextBlob_MakeFromText_font'>used</a> <a href='#SkTextBlob_MakeFromText_font'>to</a> <a href='#SkTextBlob_MakeFromText_font'>define</a> <a href='#SkTextBlob_MakeFromText_font'>the</a> <a href='#SkTextBlob_MakeFromText_font'>run</a> <a href='#SkTextBlob_MakeFromText_text'>text</a>: <a href='undocumented#Typeface'>Typeface</a>, <a href='#Paint_Text_Size'>Paint_Text_Size</a>, <a href='#Paint_Text_Scale_X'>Paint_Text_Scale_X</a>,
+<a href='#SkTextBlob_MakeFromText_font'>font</a> contains attributes used to define the run <a href='#SkTextBlob_MakeFromText_text'>text</a>: <a href='undocumented#Typeface'>Typeface</a>, <a href='#Paint_Text_Size'>Paint_Text_Size</a>, <a href='#Paint_Text_Scale_X'>Paint_Text_Scale_X</a>,
<a href='#Paint_Text_Skew_X'>Paint_Text_Skew_X</a>, <a href='#Paint_Hinting'>Paint_Hinting</a>, <a href='#Paint_Anti_Alias'>Anti_Alias</a>, <a href='#Paint_Fake_Bold'>Paint_Fake_Bold</a>,
<a href='#Paint_Font_Embedded_Bitmaps'>Font_Embedded_Bitmaps</a>, <a href='#Paint_Full_Hinting_Spacing'>Full_Hinting_Spacing</a>, <a href='#Paint_LCD_Text'>LCD_Text</a>, <a href='#Paint_Linear_Text'>Linear_Text</a>,
-<a href='#Paint_Linear_Text'>and</a> <a href='#Paint_Subpixel_Text'>Subpixel_Text</a>
+and <a href='#Paint_Subpixel_Text'>Subpixel_Text</a>
.
### Parameters
<table> <tr> <td><a name='SkTextBlob_MakeFromText_text'><code><strong>text</strong></code></a></td>
- <td>character code <a href='SkPoint_Reference#Point'>points</a> <a href='SkPoint_Reference#Point'>or</a> <a href='undocumented#Glyph'>Glyphs</a> <a href='undocumented#Glyph'>drawn</a></td>
+ <td>character code <a href='SkPoint_Reference#Point'>points</a> or <a href='undocumented#Glyph'>Glyphs</a> drawn</td>
</tr>
<tr> <td><a name='SkTextBlob_MakeFromText_byteLength'><code><strong>byteLength</strong></code></a></td>
- <td>byte length of <a href='#SkTextBlob_MakeFromText_text'>text</a> <a href='#SkTextBlob_MakeFromText_text'>array</a></td>
+ <td>byte length of <a href='#SkTextBlob_MakeFromText_text'>text</a> array</td>
</tr>
<tr> <td><a name='SkTextBlob_MakeFromText_font'><code><strong>font</strong></code></a></td>
- <td><a href='#SkTextBlob_MakeFromText_text'>text</a> <a href='undocumented#Size'>size</a>, <a href='undocumented#Typeface'>typeface</a>, <a href='#SkTextBlob_MakeFromText_text'>text scale</a>, <a href='#SkTextBlob_MakeFromText_text'>and</a> <a href='#SkTextBlob_MakeFromText_text'>so</a> <a href='#SkTextBlob_MakeFromText_text'>on</a>, <a href='#SkTextBlob_MakeFromText_text'>used</a> <a href='#SkTextBlob_MakeFromText_text'>to</a> <a href='#SkTextBlob_MakeFromText_text'>draw</a></td>
+ <td><a href='#SkTextBlob_MakeFromText_text'>text</a> <a href='undocumented#Size'>size</a>, <a href='undocumented#Typeface'>typeface</a>, <a href='#SkTextBlob_MakeFromText_text'>text scale</a>, and so on, used to draw</td>
</tr>
<tr> <td><a name='SkTextBlob_MakeFromText_encoding'><code><strong>encoding</strong></code></a></td>
<td>one of: <a href='undocumented#kUTF8_SkTextEncoding'>kUTF8_SkTextEncoding</a>, <a href='undocumented#kUTF16_SkTextEncoding'>kUTF16_SkTextEncoding</a>,
@@ -110,7 +110,7 @@
### Return Value
-<a href='#Text_Blob'>Text_Blob</a> <a href='#Text_Blob'>constructed</a> <a href='#Text_Blob'>from</a> <a href='#Text_Blob'>one</a> <a href='#Text_Blob'>run</a>
+<a href='#Text_Blob'>Text_Blob</a> constructed from one run
### Example
@@ -125,26 +125,26 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-static <a href='undocumented#sk_sp'>sk_sp</a>&<a href='undocumented#sk_sp'>lt</a>;<a href='SkTextBlob_Reference#SkTextBlob'>SkTextBlob</a>&<a href='SkTextBlob_Reference#SkTextBlob'>gt</a>; <a href='#SkTextBlob_MakeFromString'>MakeFromString</a>(<a href='#SkTextBlob_MakeFromString'>const</a> <a href='#SkTextBlob_MakeFromString'>char</a>* <a href='undocumented#String'>string</a>, <a href='undocumented#String'>const</a> <a href='undocumented#SkFont'>SkFont</a>& <a href='undocumented#Font'>font</a>,
- <a href='SkPaint_Reference#SkPaint'>SkPaint</a>::<a href='#SkPaint_TextEncoding'>TextEncoding</a> <a href='#SkPaint_TextEncoding'>encoding</a> = <a href='SkPaint_Reference#SkPaint'>SkPaint</a>::<a href='#SkPaint_kUTF8_TextEncoding'>kUTF8_TextEncoding</a>)
+static <a href='undocumented#sk_sp'>sk_sp</a><<a href='SkTextBlob_Reference#SkTextBlob'>SkTextBlob</a>> <a href='#SkTextBlob_MakeFromString'>MakeFromString</a>(const char* <a href='undocumented#String'>string</a>, const <a href='undocumented#SkFont'>SkFont</a>& <a href='undocumented#Font'>font</a>,
+ <a href='SkPaint_Reference#SkPaint'>SkPaint</a>::<a href='#SkPaint_TextEncoding'>TextEncoding</a> encoding = <a href='SkPaint_Reference#SkPaint'>SkPaint</a>::<a href='#SkPaint_kUTF8_TextEncoding'>kUTF8_TextEncoding</a>)
</pre>
-Creates <a href='#Text_Blob'>Text_Blob</a> <a href='#Text_Blob'>with</a> <a href='#Text_Blob'>a</a> <a href='#Text_Blob'>single</a> <a href='#Text_Blob'>run</a>. <a href='#SkTextBlob_MakeFromString_string'>string</a> <a href='#SkTextBlob_MakeFromString_string'>meaning</a> <a href='#SkTextBlob_MakeFromString_string'>depends</a> <a href='#SkTextBlob_MakeFromString_string'>on</a> <a href='#Paint_Text_Encoding'>Paint_Text_Encoding</a>;
-<a href='#Paint_Text_Encoding'>by</a> <a href='#Paint_Text_Encoding'>default</a>, <a href='#SkTextBlob_MakeFromString_string'>string</a> <a href='#SkTextBlob_MakeFromString_string'>is</a> <a href='#SkTextBlob_MakeFromString_string'>encoded</a> <a href='#SkTextBlob_MakeFromString_string'>as</a> <a href='#SkTextBlob_MakeFromString_string'>UTF-8</a>.
+Creates <a href='#Text_Blob'>Text_Blob</a> with a single run. <a href='#SkTextBlob_MakeFromString_string'>string</a> meaning depends on <a href='#Paint_Text_Encoding'>Paint_Text_Encoding</a>;
+by default, <a href='#SkTextBlob_MakeFromString_string'>string</a> is encoded as UTF-8.
-<a href='#SkTextBlob_MakeFromString_font'>font</a> <a href='#SkTextBlob_MakeFromString_font'>contains</a> <a href='#Paint_Font_Metrics'>Paint_Font_Metrics</a> <a href='#Paint_Font_Metrics'>used</a> <a href='#Paint_Font_Metrics'>to</a> <a href='#Paint_Font_Metrics'>define</a> <a href='#Paint_Font_Metrics'>the</a> <a href='#Paint_Font_Metrics'>run</a> <a href='undocumented#Text'>text</a>: <a href='undocumented#Typeface'>Typeface</a>, <a href='#Paint_Text_Size'>Paint_Text_Size</a>, <a href='#Paint_Text_Scale_X'>Paint_Text_Scale_X</a>,
+<a href='#SkTextBlob_MakeFromString_font'>font</a> contains <a href='#Paint_Font_Metrics'>Paint_Font_Metrics</a> used to define the run <a href='undocumented#Text'>text</a>: <a href='undocumented#Typeface'>Typeface</a>, <a href='#Paint_Text_Size'>Paint_Text_Size</a>, <a href='#Paint_Text_Scale_X'>Paint_Text_Scale_X</a>,
<a href='#Paint_Text_Skew_X'>Paint_Text_Skew_X</a>, <a href='#Paint_Hinting'>Paint_Hinting</a>, <a href='#Paint_Anti_Alias'>Anti_Alias</a>, <a href='#Paint_Fake_Bold'>Paint_Fake_Bold</a>,
<a href='#Paint_Font_Embedded_Bitmaps'>Font_Embedded_Bitmaps</a>, <a href='#Paint_Full_Hinting_Spacing'>Full_Hinting_Spacing</a>, <a href='#Paint_LCD_Text'>LCD_Text</a>, <a href='#Paint_Linear_Text'>Linear_Text</a>,
-<a href='#Paint_Linear_Text'>and</a> <a href='#Paint_Subpixel_Text'>Subpixel_Text</a>
+and <a href='#Paint_Subpixel_Text'>Subpixel_Text</a>
.
### Parameters
<table> <tr> <td><a name='SkTextBlob_MakeFromString_string'><code><strong>string</strong></code></a></td>
- <td>character code <a href='SkPoint_Reference#Point'>points</a> <a href='SkPoint_Reference#Point'>or</a> <a href='undocumented#Glyph'>Glyphs</a> <a href='undocumented#Glyph'>drawn</a></td>
+ <td>character code <a href='SkPoint_Reference#Point'>points</a> or <a href='undocumented#Glyph'>Glyphs</a> drawn</td>
</tr>
<tr> <td><a name='SkTextBlob_MakeFromString_font'><code><strong>font</strong></code></a></td>
- <td><a href='undocumented#Text'>text</a> <a href='undocumented#Size'>size</a>, <a href='undocumented#Typeface'>typeface</a>, <a href='undocumented#Text'>text scale</a>, <a href='undocumented#Text'>and</a> <a href='undocumented#Text'>so</a> <a href='undocumented#Text'>on</a>, <a href='undocumented#Text'>used</a> <a href='undocumented#Text'>to</a> <a href='undocumented#Text'>draw</a></td>
+ <td><a href='undocumented#Text'>text</a> <a href='undocumented#Size'>size</a>, <a href='undocumented#Typeface'>typeface</a>, <a href='undocumented#Text'>text scale</a>, and so on, used to draw</td>
</tr>
<tr> <td><a name='SkTextBlob_MakeFromString_encoding'><code><strong>encoding</strong></code></a></td>
<td>one of: <a href='undocumented#kUTF8_SkTextEncoding'>kUTF8_SkTextEncoding</a>, <a href='undocumented#kUTF16_SkTextEncoding'>kUTF16_SkTextEncoding</a>,
@@ -155,7 +155,7 @@
### Return Value
-<a href='#Text_Blob'>Text_Blob</a> <a href='#Text_Blob'>constructed</a> <a href='#Text_Blob'>from</a> <a href='#Text_Blob'>one</a> <a href='#Text_Blob'>run</a>
+<a href='#Text_Blob'>Text_Blob</a> constructed from one run
### Example
@@ -170,29 +170,29 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-size_t <a href='#SkTextBlob_serialize'>serialize</a>(<a href='#SkTextBlob_serialize'>const</a> <a href='undocumented#SkSerialProcs'>SkSerialProcs</a>& <a href='undocumented#SkSerialProcs'>procs</a>, <a href='undocumented#SkSerialProcs'>void</a>* <a href='undocumented#SkSerialProcs'>memory</a>, <a href='undocumented#SkSerialProcs'>size_t</a> <a href='undocumented#SkSerialProcs'>memory_size</a>) <a href='undocumented#SkSerialProcs'>const</a>
+size_t <a href='#SkTextBlob_serialize'>serialize</a>(const <a href='undocumented#SkSerialProcs'>SkSerialProcs</a>& procs, void* memory, size_t memory_size) const
</pre>
-Writes <a href='undocumented#Data'>data</a> <a href='undocumented#Data'>to</a> <a href='undocumented#Data'>allow</a> <a href='undocumented#Data'>later</a> <a href='undocumented#Data'>reconstruction</a> <a href='undocumented#Data'>of</a> <a href='SkTextBlob_Reference#SkTextBlob'>SkTextBlob</a>. <a href='#SkTextBlob_serialize_memory'>memory</a> <a href='SkPoint_Reference#Point'>points</a> <a href='SkPoint_Reference#Point'>to</a> <a href='SkPoint_Reference#Point'>storage</a>
-to receive the encoded <a href='undocumented#Data'>data</a>, <a href='undocumented#Data'>and</a> <a href='#SkTextBlob_serialize_memory_size'>memory_size</a> <a href='#SkTextBlob_serialize_memory_size'>describes</a> <a href='#SkTextBlob_serialize_memory_size'>the</a> <a href='undocumented#Size'>size</a> <a href='undocumented#Size'>of</a> <a href='undocumented#Size'>storage</a>.
+Writes <a href='undocumented#Data'>data</a> to allow later reconstruction of <a href='SkTextBlob_Reference#SkTextBlob'>SkTextBlob</a>. <a href='#SkTextBlob_serialize_memory'>memory</a> <a href='SkPoint_Reference#Point'>points</a> to storage
+to receive the encoded <a href='undocumented#Data'>data</a>, and <a href='#SkTextBlob_serialize_memory_size'>memory_size</a> describes the <a href='undocumented#Size'>size</a> of storage.
Returns bytes used if provided storage is large enough to hold all <a href='undocumented#Data'>data</a>;
otherwise, returns zero.
-<a href='#SkTextBlob_serialize_procs'>procs</a>.<a href='#SkSerialProcs_fTypefaceProc'>fTypefaceProc</a> <a href='#SkSerialProcs_fTypefaceProc'>permits</a> <a href='#SkSerialProcs_fTypefaceProc'>supplying</a> <a href='#SkSerialProcs_fTypefaceProc'>a</a> <a href='#SkSerialProcs_fTypefaceProc'>custom</a> <a href='#SkSerialProcs_fTypefaceProc'>function</a> <a href='#SkSerialProcs_fTypefaceProc'>to</a> <a href='#SkSerialProcs_fTypefaceProc'>encode</a> <a href='undocumented#SkTypeface'>SkTypeface</a>.
-If <a href='#SkTextBlob_serialize_procs'>procs</a>.<a href='#SkSerialProcs_fTypefaceProc'>fTypefaceProc</a> <a href='#SkSerialProcs_fTypefaceProc'>is</a> <a href='#SkSerialProcs_fTypefaceProc'>nullptr</a>, <a href='#SkSerialProcs_fTypefaceProc'>default</a> <a href='#SkSerialProcs_fTypefaceProc'>encoding</a> <a href='#SkSerialProcs_fTypefaceProc'>is</a> <a href='#SkSerialProcs_fTypefaceProc'>used</a>. <a href='#SkTextBlob_serialize_procs'>procs</a>.<a href='#SkSerialProcs_fTypefaceCtx'>fTypefaceCtx</a>
+<a href='#SkTextBlob_serialize_procs'>procs</a>.<a href='#SkSerialProcs_fTypefaceProc'>fTypefaceProc</a> permits supplying a custom function to encode <a href='undocumented#SkTypeface'>SkTypeface</a>.
+If <a href='#SkTextBlob_serialize_procs'>procs</a>.<a href='#SkSerialProcs_fTypefaceProc'>fTypefaceProc</a> is nullptr, default encoding is used. <a href='#SkTextBlob_serialize_procs'>procs</a>.<a href='#SkSerialProcs_fTypefaceCtx'>fTypefaceCtx</a>
may be used to provide user context to <a href='#SkTextBlob_serialize_procs'>procs</a>.<a href='#SkSerialProcs_fTypefaceProc'>fTypefaceProc</a>; <a href='#SkTextBlob_serialize_procs'>procs</a>.<a href='#SkSerialProcs_fTypefaceProc'>fTypefaceProc</a>
-is called with a pointer to <a href='undocumented#SkTypeface'>SkTypeface</a> <a href='undocumented#SkTypeface'>and</a> <a href='undocumented#SkTypeface'>user</a> <a href='undocumented#SkTypeface'>context</a>.
+is called with a pointer to <a href='undocumented#SkTypeface'>SkTypeface</a> and user context.
### Parameters
<table> <tr> <td><a name='SkTextBlob_serialize_procs'><code><strong>procs</strong></code></a></td>
- <td>custom serial <a href='undocumented#Data'>data</a> <a href='undocumented#Data'>encoders</a>; <a href='undocumented#Data'>may</a> <a href='undocumented#Data'>be</a> <a href='undocumented#Data'>nullptr</a></td>
+ <td>custom serial <a href='undocumented#Data'>data</a> encoders; may be nullptr</td>
</tr>
<tr> <td><a name='SkTextBlob_serialize_memory'><code><strong>memory</strong></code></a></td>
<td>storage for <a href='undocumented#Data'>data</a></td>
</tr>
<tr> <td><a name='SkTextBlob_serialize_memory_size'><code><strong>memory_size</strong></code></a></td>
- <td><a href='undocumented#Size'>size</a> <a href='undocumented#Size'>of</a> <a href='undocumented#Size'>storage</a></td>
+ <td><a href='undocumented#Size'>size</a> of storage</td>
</tr>
</table>
@@ -213,21 +213,21 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-<a href='undocumented#sk_sp'>sk_sp</a>&<a href='undocumented#sk_sp'>lt</a>;<a href='undocumented#SkData'>SkData</a>&<a href='undocumented#SkData'>gt</a>; <a href='#SkTextBlob_serialize'>serialize</a>(<a href='#SkTextBlob_serialize'>const</a> <a href='undocumented#SkSerialProcs'>SkSerialProcs</a>& <a href='undocumented#SkSerialProcs'>procs</a>) <a href='undocumented#SkSerialProcs'>const</a>
+<a href='undocumented#sk_sp'>sk_sp</a><<a href='undocumented#SkData'>SkData</a>> <a href='#SkTextBlob_serialize'>serialize</a>(const <a href='undocumented#SkSerialProcs'>SkSerialProcs</a>& procs) const
</pre>
-Returns storage containing <a href='undocumented#SkData'>SkData</a> <a href='undocumented#SkData'>describing</a> <a href='SkTextBlob_Reference#SkTextBlob'>SkTextBlob</a>, <a href='SkTextBlob_Reference#SkTextBlob'>using</a> <a href='SkTextBlob_Reference#SkTextBlob'>optional</a> <a href='SkTextBlob_Reference#SkTextBlob'>custom</a>
+Returns storage containing <a href='undocumented#SkData'>SkData</a> describing <a href='SkTextBlob_Reference#SkTextBlob'>SkTextBlob</a>, using optional custom
encoders.
-<a href='#SkTextBlob_serialize_2_procs'>procs</a>.<a href='#SkSerialProcs_fTypefaceProc'>fTypefaceProc</a> <a href='#SkSerialProcs_fTypefaceProc'>permits</a> <a href='#SkSerialProcs_fTypefaceProc'>supplying</a> <a href='#SkSerialProcs_fTypefaceProc'>a</a> <a href='#SkSerialProcs_fTypefaceProc'>custom</a> <a href='#SkSerialProcs_fTypefaceProc'>function</a> <a href='#SkSerialProcs_fTypefaceProc'>to</a> <a href='#SkSerialProcs_fTypefaceProc'>encode</a> <a href='undocumented#SkTypeface'>SkTypeface</a>.
-If <a href='#SkTextBlob_serialize_2_procs'>procs</a>.<a href='#SkSerialProcs_fTypefaceProc'>fTypefaceProc</a> <a href='#SkSerialProcs_fTypefaceProc'>is</a> <a href='#SkSerialProcs_fTypefaceProc'>nullptr</a>, <a href='#SkSerialProcs_fTypefaceProc'>default</a> <a href='#SkSerialProcs_fTypefaceProc'>encoding</a> <a href='#SkSerialProcs_fTypefaceProc'>is</a> <a href='#SkSerialProcs_fTypefaceProc'>used</a>. <a href='#SkTextBlob_serialize_2_procs'>procs</a>.<a href='#SkSerialProcs_fTypefaceCtx'>fTypefaceCtx</a>
+<a href='#SkTextBlob_serialize_2_procs'>procs</a>.<a href='#SkSerialProcs_fTypefaceProc'>fTypefaceProc</a> permits supplying a custom function to encode <a href='undocumented#SkTypeface'>SkTypeface</a>.
+If <a href='#SkTextBlob_serialize_2_procs'>procs</a>.<a href='#SkSerialProcs_fTypefaceProc'>fTypefaceProc</a> is nullptr, default encoding is used. <a href='#SkTextBlob_serialize_2_procs'>procs</a>.<a href='#SkSerialProcs_fTypefaceCtx'>fTypefaceCtx</a>
may be used to provide user context to <a href='#SkTextBlob_serialize_2_procs'>procs</a>.<a href='#SkSerialProcs_fTypefaceProc'>fTypefaceProc</a>; <a href='#SkTextBlob_serialize_2_procs'>procs</a>.<a href='#SkSerialProcs_fTypefaceProc'>fTypefaceProc</a>
-is called with a pointer to <a href='undocumented#SkTypeface'>SkTypeface</a> <a href='undocumented#SkTypeface'>and</a> <a href='undocumented#SkTypeface'>user</a> <a href='undocumented#SkTypeface'>context</a>.
+is called with a pointer to <a href='undocumented#SkTypeface'>SkTypeface</a> and user context.
### Parameters
<table> <tr> <td><a name='SkTextBlob_serialize_2_procs'><code><strong>procs</strong></code></a></td>
- <td>custom serial <a href='undocumented#Data'>data</a> <a href='undocumented#Data'>encoders</a>; <a href='undocumented#Data'>may</a> <a href='undocumented#Data'>be</a> <a href='undocumented#Data'>nullptr</a></td>
+ <td>custom serial <a href='undocumented#Data'>data</a> encoders; may be nullptr</td>
</tr>
</table>
@@ -248,17 +248,17 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-static <a href='undocumented#sk_sp'>sk_sp</a>&<a href='undocumented#sk_sp'>lt</a>;<a href='SkTextBlob_Reference#SkTextBlob'>SkTextBlob</a>&<a href='SkTextBlob_Reference#SkTextBlob'>gt</a>; <a href='#SkTextBlob_Deserialize'>Deserialize</a>(<a href='#SkTextBlob_Deserialize'>const</a> <a href='#SkTextBlob_Deserialize'>void</a>* <a href='undocumented#Data'>data</a>, <a href='undocumented#Data'>size_t</a> <a href='undocumented#Size'>size</a>, <a href='undocumented#Size'>const</a> <a href='undocumented#SkDeserialProcs'>SkDeserialProcs</a>& <a href='undocumented#SkDeserialProcs'>procs</a>)
+static <a href='undocumented#sk_sp'>sk_sp</a><<a href='SkTextBlob_Reference#SkTextBlob'>SkTextBlob</a>> <a href='#SkTextBlob_Deserialize'>Deserialize</a>(const void* <a href='undocumented#Data'>data</a>, size_t <a href='undocumented#Size'>size</a>, const <a href='undocumented#SkDeserialProcs'>SkDeserialProcs</a>& procs)
</pre>
-Recreates <a href='SkTextBlob_Reference#SkTextBlob'>SkTextBlob</a> <a href='SkTextBlob_Reference#SkTextBlob'>that</a> <a href='SkTextBlob_Reference#SkTextBlob'>was</a> <a href='SkTextBlob_Reference#SkTextBlob'>serialized</a> <a href='SkTextBlob_Reference#SkTextBlob'>into</a> <a href='#SkTextBlob_Deserialize_data'>data</a>. <a href='#SkTextBlob_Deserialize_data'>Returns</a> <a href='#SkTextBlob_Deserialize_data'>constructed</a> <a href='SkTextBlob_Reference#SkTextBlob'>SkTextBlob</a>
-if successful; otherwise, returns nullptr. Fails if <a href='#SkTextBlob_Deserialize_size'>size</a> <a href='#SkTextBlob_Deserialize_size'>is</a> <a href='#SkTextBlob_Deserialize_size'>smaller</a> <a href='#SkTextBlob_Deserialize_size'>than</a>
-required <a href='#SkTextBlob_Deserialize_data'>data</a> <a href='#SkTextBlob_Deserialize_data'>length</a>, <a href='#SkTextBlob_Deserialize_data'>or</a> <a href='#SkTextBlob_Deserialize_data'>if</a> <a href='#SkTextBlob_Deserialize_data'>data</a> <a href='#SkTextBlob_Deserialize_data'>does</a> <a href='#SkTextBlob_Deserialize_data'>not</a> <a href='#SkTextBlob_Deserialize_data'>permit</a> <a href='#SkTextBlob_Deserialize_data'>constructing</a> <a href='#SkTextBlob_Deserialize_data'>valid</a> <a href='SkTextBlob_Reference#SkTextBlob'>SkTextBlob</a>.
+Recreates <a href='SkTextBlob_Reference#SkTextBlob'>SkTextBlob</a> that was serialized into <a href='#SkTextBlob_Deserialize_data'>data</a>. Returns constructed <a href='SkTextBlob_Reference#SkTextBlob'>SkTextBlob</a>
+if successful; otherwise, returns nullptr. Fails if <a href='#SkTextBlob_Deserialize_size'>size</a> is smaller than
+required <a href='#SkTextBlob_Deserialize_data'>data</a> length, or if <a href='#SkTextBlob_Deserialize_data'>data</a> does not permit constructing valid <a href='SkTextBlob_Reference#SkTextBlob'>SkTextBlob</a>.
-<a href='#SkTextBlob_Deserialize_procs'>procs</a>.<a href='#SkDeserialProcs_fTypefaceProc'>fTypefaceProc</a> <a href='#SkDeserialProcs_fTypefaceProc'>permits</a> <a href='#SkDeserialProcs_fTypefaceProc'>supplying</a> <a href='#SkDeserialProcs_fTypefaceProc'>a</a> <a href='#SkDeserialProcs_fTypefaceProc'>custom</a> <a href='#SkDeserialProcs_fTypefaceProc'>function</a> <a href='#SkDeserialProcs_fTypefaceProc'>to</a> <a href='#SkDeserialProcs_fTypefaceProc'>decode</a> <a href='undocumented#SkTypeface'>SkTypeface</a>.
-If <a href='#SkTextBlob_Deserialize_procs'>procs</a>.<a href='#SkDeserialProcs_fTypefaceProc'>fTypefaceProc</a> <a href='#SkDeserialProcs_fTypefaceProc'>is</a> <a href='#SkDeserialProcs_fTypefaceProc'>nullptr</a>, <a href='#SkDeserialProcs_fTypefaceProc'>default</a> <a href='#SkDeserialProcs_fTypefaceProc'>decoding</a> <a href='#SkDeserialProcs_fTypefaceProc'>is</a> <a href='#SkDeserialProcs_fTypefaceProc'>used</a>. <a href='#SkTextBlob_Deserialize_procs'>procs</a>.<a href='#SkDeserialProcs_fTypefaceCtx'>fTypefaceCtx</a>
+<a href='#SkTextBlob_Deserialize_procs'>procs</a>.<a href='#SkDeserialProcs_fTypefaceProc'>fTypefaceProc</a> permits supplying a custom function to decode <a href='undocumented#SkTypeface'>SkTypeface</a>.
+If <a href='#SkTextBlob_Deserialize_procs'>procs</a>.<a href='#SkDeserialProcs_fTypefaceProc'>fTypefaceProc</a> is nullptr, default decoding is used. <a href='#SkTextBlob_Deserialize_procs'>procs</a>.<a href='#SkDeserialProcs_fTypefaceCtx'>fTypefaceCtx</a>
may be used to provide user context to <a href='#SkTextBlob_Deserialize_procs'>procs</a>.<a href='#SkDeserialProcs_fTypefaceProc'>fTypefaceProc</a>; <a href='#SkTextBlob_Deserialize_procs'>procs</a>.<a href='#SkDeserialProcs_fTypefaceProc'>fTypefaceProc</a>
-is called with a pointer to <a href='undocumented#SkTypeface'>SkTypeface</a> <a href='#SkTextBlob_Deserialize_data'>data</a>, <a href='#SkTextBlob_Deserialize_data'>data</a> <a href='#SkTextBlob_Deserialize_data'>byte</a> <a href='#SkTextBlob_Deserialize_data'>length</a>, <a href='#SkTextBlob_Deserialize_data'>and</a> <a href='#SkTextBlob_Deserialize_data'>user</a> <a href='#SkTextBlob_Deserialize_data'>context</a>.
+is called with a pointer to <a href='undocumented#SkTypeface'>SkTypeface</a> <a href='#SkTextBlob_Deserialize_data'>data</a>, <a href='#SkTextBlob_Deserialize_data'>data</a> byte length, and user context.
### Parameters
@@ -266,21 +266,21 @@
<td>pointer for serial <a href='#SkTextBlob_Deserialize_data'>data</a></td>
</tr>
<tr> <td><a name='SkTextBlob_Deserialize_size'><code><strong>size</strong></code></a></td>
- <td><a href='#SkTextBlob_Deserialize_size'>size</a> <a href='#SkTextBlob_Deserialize_size'>of</a> <a href='#SkTextBlob_Deserialize_data'>data</a></td>
+ <td><a href='#SkTextBlob_Deserialize_size'>size</a> of <a href='#SkTextBlob_Deserialize_data'>data</a></td>
</tr>
<tr> <td><a name='SkTextBlob_Deserialize_procs'><code><strong>procs</strong></code></a></td>
- <td>custom serial <a href='#SkTextBlob_Deserialize_data'>data</a> <a href='#SkTextBlob_Deserialize_data'>decoders</a>; <a href='#SkTextBlob_Deserialize_data'>may</a> <a href='#SkTextBlob_Deserialize_data'>be</a> <a href='#SkTextBlob_Deserialize_data'>nullptr</a></td>
+ <td>custom serial <a href='#SkTextBlob_Deserialize_data'>data</a> decoders; may be nullptr</td>
</tr>
</table>
### Return Value
-<a href='SkTextBlob_Reference#SkTextBlob'>SkTextBlob</a> <a href='SkTextBlob_Reference#SkTextBlob'>constructed</a> <a href='SkTextBlob_Reference#SkTextBlob'>from</a> <a href='#SkTextBlob_Deserialize_data'>data</a> <a href='#SkTextBlob_Deserialize_data'>in</a> <a href='#SkTextBlob_Deserialize_data'>memory</a>
+<a href='SkTextBlob_Reference#SkTextBlob'>SkTextBlob</a> constructed from <a href='#SkTextBlob_Deserialize_data'>data</a> in memory
### Example
-<div><fiddle-embed name="68b6d0208eb0b4de67fc152381af7a58"><div><a href='undocumented#Text'>Text</a> "<a href='undocumented#Text'>Hacker</a>" <a href='undocumented#Text'>replaces</a> "<a href='undocumented#Text'>World</a>!", <a href='undocumented#Text'>but</a> <a href='undocumented#Text'>does</a> <a href='undocumented#Text'>not</a> <a href='undocumented#Text'>update</a> <a href='undocumented#Text'>its</a> <a href='undocumented#Text'>metrics</a>.
-<a href='undocumented#Text'>When</a> <a href='undocumented#Text'>drawn</a>, "<a href='undocumented#Text'>Hacker</a>" <a href='undocumented#Text'>uses</a> <a href='undocumented#Text'>the</a> <a href='undocumented#Text'>spacing</a> <a href='undocumented#Text'>computed</a> <a href='undocumented#Text'>for</a> "<a href='undocumented#Text'>World</a>!".
+<div><fiddle-embed name="68b6d0208eb0b4de67fc152381af7a58"><div><a href='undocumented#Text'>Text</a> "Hacker" replaces "World!", but does not update its metrics.
+When drawn, "Hacker" uses the spacing computed for "World!".
</div></fiddle-embed></div>
### See Also
diff --git a/site/user/api/catalog.htm b/site/user/api/catalog.htm
index c73883a..4f99cf5 100644
--- a/site/user/api/catalog.htm
+++ b/site/user/api/catalog.htm
@@ -1848,13 +1848,6 @@
"name": "SkPaint::setHinting",
"stdout": "paint1 == paint2\\n"
},
- "SkPaint_setHinting_2": {
- "code": "void draw(SkCanvas* canvas) {\n SkPaint paint1, paint2;\n paint2.setHinting(SkFontHinting::kNormal);\n SkDebugf(\"paint1 %c= paint2\\n\", paint1 == paint2 ? '=' : ':');\n}",
- "hash": "bb179ec5698ec1398ff18f3657ab73f7",
- "file": "SkPaint_Reference",
- "name": "SkPaint::setHinting_2",
- "stdout": "paint1 == paint2\\n"
- },
"SkPaint_setLCDRenderText": {
"code": "void draw(SkCanvas* canvas) {\n SkPaint paint1, paint2;\n paint1.setLCDRenderText(true);\n paint2.setFlags(paint2.getFlags() | SkPaint::kLCDRenderText_Flag);\n SkDebugf(\"paint1 %c= paint2\\n\", paint1 == paint2 ? '=' : '!');\n}",
"hash": "50dedf8450159571a3edaf4f0050defe",
diff --git a/site/user/api/usingBookmaker.md b/site/user/api/usingBookmaker.md
index 7d82332..cb8c1f9 100644
--- a/site/user/api/usingBookmaker.md
+++ b/site/user/api/usingBookmaker.md
@@ -1,10 +1,10 @@
usingBookmaker
===
-<a href='usingBookmaker#Bookmaker'>Bookmaker</a> <a href='usingBookmaker#Bookmaker'>generates</a> <a href='usingBookmaker#Bookmaker'>markdown</a> <a href='usingBookmaker#Bookmaker'>files</a> <a href='usingBookmaker#Bookmaker'>to</a> <a href='usingBookmaker#Bookmaker'>view</a> <a href='usingBookmaker#Bookmaker'>documentation</a> <a href='usingBookmaker#Bookmaker'>on</a> <a href='usingBookmaker#Bookmaker'>skia</a>.<a href='usingBookmaker#Bookmaker'>org</a>, <a href='usingBookmaker#Bookmaker'>and</a> <a href='usingBookmaker#Bookmaker'>generates</a> <a href='usingBookmaker#Bookmaker'>includes</a> <a href='usingBookmaker#Bookmaker'>for</a> <a href='usingBookmaker#Bookmaker'>use</a> <a href='usingBookmaker#Bookmaker'>in</a> <a href='usingBookmaker#Bookmaker'>C</a>++.
-<a href='usingBookmaker#Bookmaker'>Bookmaker</a> <a href='usingBookmaker#Bookmaker'>reads</a> <a href='usingBookmaker#Bookmaker'>canonical</a> <a href='usingBookmaker#Bookmaker'>documentation</a> <a href='usingBookmaker#Bookmaker'>from</a> <a href='usingBookmaker#Bookmaker'>files</a> <a href='usingBookmaker#Bookmaker'>suffixed</a> <a href='usingBookmaker#Bookmaker'>with</a> <a href='usingBookmaker#Bookmaker'>bmh</a> <a href='usingBookmaker#Bookmaker'>in</a> <a href='usingBookmaker#Bookmaker'>the</a> <a href='usingBookmaker#Bookmaker'>docs</a> <a href='usingBookmaker#Bookmaker'>directory</a>. <a href='usingBookmaker#Bookmaker'>These</a> <a href='usingBookmaker#Bookmaker'>bmh</a>
-<a href='usingBookmaker#Bookmaker'>files</a> <a href='usingBookmaker#Bookmaker'>describe</a> <a href='usingBookmaker#Bookmaker'>how</a> <a href='usingBookmaker#Bookmaker'>public</a> <a href='usingBookmaker#Bookmaker'>interfaces</a> <a href='usingBookmaker#Bookmaker'>work</a>, <a href='usingBookmaker#Bookmaker'>and</a> <a href='usingBookmaker#Bookmaker'>generate</a> <a href='usingBookmaker#Bookmaker'>Skia</a> <a href='usingBookmaker#Bookmaker'>fiddle</a> <a href='usingBookmaker#Bookmaker'>examples</a> <a href='usingBookmaker#Bookmaker'>to</a> <a href='usingBookmaker#Bookmaker'>illustrate</a> <a href='usingBookmaker#Bookmaker'>them</a>.
+<a href='usingBookmaker#Bookmaker'>Bookmaker</a> generates markdown files to view documentation on skia.org, and generates includes for use in C++.
+<a href='usingBookmaker#Bookmaker'>Bookmaker</a> reads canonical documentation from files suffixed with bmh in the docs directory. These bmh
+files describe how public interfaces work, and generate Skia fiddle examples to illustrate them.
-<a href='usingBookmaker#Bookmaker'>The</a> <a href='usingBookmaker#Bookmaker'>docs</a> <a href='usingBookmaker#Bookmaker'>files</a> <a href='usingBookmaker#Bookmaker'>must</a> <a href='usingBookmaker#Bookmaker'>be</a> <a href='usingBookmaker#Bookmaker'>manually</a> <a href='usingBookmaker#Bookmaker'>edited</a> <a href='usingBookmaker#Bookmaker'>to</a> <a href='usingBookmaker#Bookmaker'>stay</a> <a href='usingBookmaker#Bookmaker'>current</a> <a href='usingBookmaker#Bookmaker'>with</a> <a href='usingBookmaker#Bookmaker'>Skia</a> <a href='usingBookmaker#Bookmaker'>as</a> <a href='usingBookmaker#Bookmaker'>it</a> <a href='usingBookmaker#Bookmaker'>evolves</a>.
+The docs files must be manually edited to stay current with Skia as it evolves.
<a name='Installing'></a>
@@ -16,8 +16,8 @@
$ go version
</pre>
-Get the fiddle command <a href='undocumented#Line'>line</a> <a href='undocumented#Line'>interface</a> <a href='undocumented#Line'>tool</a>.
-<a href='undocumented#Line'>By</a> <a href='undocumented#Line'>default</a> <a href='undocumented#Line'>this</a> <a href='undocumented#Line'>will</a> <a href='undocumented#Line'>appear</a> <a href='undocumented#Line'>in</a> <a href='undocumented#Line'>your</a> <a href='undocumented#Line'>home</a> <a href='undocumented#Line'>directory</a>.
+Get the fiddle command <a href='undocumented#Line'>line</a> interface tool.
+By default this will appear in your home directory.
<pre style="padding: 1em 1em 1em 1em;width: 62.5em; background-color: #f0f0f0">
$ go get go.skia.org/infra/fiddlek/go/fiddlecli
@@ -43,8 +43,8 @@
<a name='Running'></a>
-<a href='usingBookmaker#Bookmaker'>Bookmaker</a> <a href='usingBookmaker#Bookmaker'>extracts</a> <a href='usingBookmaker#Bookmaker'>examples</a>, <a href='usingBookmaker#Bookmaker'>generates</a> <a href='usingBookmaker#Bookmaker'>example</a> <a href='usingBookmaker#Bookmaker'>hashes</a> <a href='usingBookmaker#Bookmaker'>with</a> <a href='usingBookmaker#Bookmaker'>fiddle</a>, <a href='usingBookmaker#Bookmaker'>and</a> <a href='usingBookmaker#Bookmaker'>generates</a> <a href='usingBookmaker#Bookmaker'>web</a> <a href='usingBookmaker#Bookmaker'>markdown</a>
-<a href='usingBookmaker#Bookmaker'>and</a> <a href='usingBookmaker#Bookmaker'>c</a>++ <a href='usingBookmaker#Bookmaker'>includes</a>.
+<a href='usingBookmaker#Bookmaker'>Bookmaker</a> extracts examples, generates example hashes with fiddle, and generates web markdown
+and c++ includes.
<pre style="padding: 1em 1em 1em 1em;width: 62.5em; background-color: #f0f0f0">
$ ./out/skia/bookmaker -E && ~/go/bin/fiddlecli --quiet && ./out/skia/bookmaker
@@ -60,33 +60,33 @@
The bots
<a href='https://status.skia.org/repo/skia?filter=search&search_value=Housekeeper-PerCommit-Bookmaker'>Housekeeper-PerCommit-Bookmaker</a></a> and
-<a href='https://status.skia.org/repo/skia?filter=search&search_value=Housekeeper-Nightly-Bookmaker'>Housekeeper-Nightly-Bookmaker</a></a> verify that <a href='usingBookmaker#Bookmaker'>Bookmaker</a> <a href='undocumented#Data'>data</a> <a href='undocumented#Data'>in</a> <a href='undocumented#Data'>docs</a> <a href='undocumented#Data'>builds</a> <a href='undocumented#Data'>without</a> <a href='undocumented#Data'>error</a> <a href='undocumented#Data'>and</a> <a href='undocumented#Data'>is</a> <a href='undocumented#Data'>consistent</a> <a href='undocumented#Data'>with</a> <a href='undocumented#Data'>include</a> <a href='undocumented#Data'>files</a> <a href='undocumented#Data'>it</a> <a href='undocumented#Data'>documents</a>.
+<a href='https://status.skia.org/repo/skia?filter=search&search_value=Housekeeper-Nightly-Bookmaker'>Housekeeper-Nightly-Bookmaker</a></a> verify that <a href='usingBookmaker#Bookmaker'>Bookmaker</a> <a href='undocumented#Data'>data</a> in docs builds without error and is consistent with include files it documents.
-<a href='undocumented#Data'>Possible</a> <a href='undocumented#Data'>failures</a> <a href='undocumented#Data'>include</a>:
+Possible failures include:
<table> <tr>
<td>Public interface in include directory does not match documented interface in docs directory.</td>
</tr> <tr>
- <td>Example in <a href='usingBookmaker#Bookmaker'>bookmaker</a> <a href='usingBookmaker#Bookmaker'>bmh</a> <a href='usingBookmaker#Bookmaker'>file</a> <a href='usingBookmaker#Bookmaker'>does</a> <a href='usingBookmaker#Bookmaker'>not</a> <a href='usingBookmaker#Bookmaker'>compile</a>, <a href='usingBookmaker#Bookmaker'>or</a> <a href='usingBookmaker#Bookmaker'>does</a> <a href='usingBookmaker#Bookmaker'>not</a> <a href='usingBookmaker#Bookmaker'>produce</a> <a href='usingBookmaker#Bookmaker'>expected</a> <a href='usingBookmaker#Bookmaker'>output</a>.</td>
+ <td>Example in <a href='usingBookmaker#Bookmaker'>bookmaker</a> bmh file does not compile, or does not produce expected output.</td>
</tr> <tr>
- <td>Undocumented but referenced interface is missing from undocumented <a href='usingBookmaker#Bookmaker'>bookmaker</a> <a href='usingBookmaker#Bookmaker'>file</a> <a href='usingBookmaker#Bookmaker'>in</a> <a href='usingBookmaker#Bookmaker'>docs</a> <a href='usingBookmaker#Bookmaker'>directory</a>.</td>
+ <td>Undocumented but referenced interface is missing from undocumented <a href='usingBookmaker#Bookmaker'>bookmaker</a> file in docs directory.</td>
</tr>
</table>
Editing comments in includes or editing private interfaces will not break the bots.
-<a href='usingBookmaker#Bookmaker'>Bookmaker</a> <a href='usingBookmaker#Bookmaker'>detects</a> <a href='usingBookmaker#Bookmaker'>that</a> <a href='usingBookmaker#Bookmaker'>comments</a> <a href='usingBookmaker#Bookmaker'>edited</a> <a href='usingBookmaker#Bookmaker'>in</a> <a href='usingBookmaker#Bookmaker'>includes</a> <a href='usingBookmaker#Bookmaker'>do</a> <a href='usingBookmaker#Bookmaker'>not</a> <a href='usingBookmaker#Bookmaker'>match</a> <a href='usingBookmaker#Bookmaker'>comments</a> <a href='usingBookmaker#Bookmaker'>in</a> <a href='usingBookmaker#Bookmaker'>docs</a>; <a href='usingBookmaker#Bookmaker'>it</a> <a href='usingBookmaker#Bookmaker'>will</a> <a href='usingBookmaker#Bookmaker'>generate</a> <a href='usingBookmaker#Bookmaker'>an</a> <a href='usingBookmaker#Bookmaker'>updated</a> <a href='usingBookmaker#Bookmaker'>include</a> <a href='usingBookmaker#Bookmaker'>in</a> <a href='usingBookmaker#Bookmaker'>the</a>
-<a href='usingBookmaker#Bookmaker'>directory</a> <a href='usingBookmaker#Bookmaker'>where</a> <a href='usingBookmaker#Bookmaker'>it</a> <a href='usingBookmaker#Bookmaker'>is</a> <a href='usingBookmaker#Bookmaker'>run</a>.
+<a href='usingBookmaker#Bookmaker'>Bookmaker</a> detects that comments edited in includes do not match comments in docs; it will generate an updated include in the
+directory where it is run.
-<a href='usingBookmaker#Bookmaker'>If</a>
+If
<a href='https://status.skia.org/repo/skia?filter=search&search_value=Housekeeper-PerCommit-Bookmaker'>Housekeeper-PerCommit-Bookmaker</a></a> bot is red, the error is usually related to an edit to an include which has not been reflected in docs.
To fix this, edit the docs file corresponding to the changed include file.
-For instance, if the change was made to <a href='SkIRect_Reference#SkIRect'>SkIRect</a>, <a href='SkIRect_Reference#SkIRect'>edit</a> <a href='SkIRect_Reference#SkIRect'>docs/SkIRect_Reference</a>.<a href='SkIRect_Reference#SkIRect'>bmh</a>.
-<a href='SkIRect_Reference#SkIRect'>Checking</a> <a href='SkIRect_Reference#SkIRect'>in</a> <a href='SkIRect_Reference#SkIRect'>the</a> <a href='SkIRect_Reference#SkIRect'>edited</a> <a href='SkIRect_Reference#SkIRect'>docs/SkIRect_Reference</a>.<a href='SkIRect_Reference#SkIRect'>bmh</a> <a href='SkIRect_Reference#SkIRect'>will</a> <a href='SkIRect_Reference#SkIRect'>fix</a> <a href='SkIRect_Reference#SkIRect'>the</a> <a href='SkIRect_Reference#SkIRect'>bot</a>.
+For instance, if the change was made to <a href='SkIRect_Reference#SkIRect'>SkIRect</a>, edit docs/SkIRect_Reference.bmh.
+Checking in the edited docs/SkIRect_Reference.bmh will fix the bot.
-<a href='SkIRect_Reference#SkIRect'>If</a> <a href='SkIRect_Reference#SkIRect'>the</a> <a href='SkIRect_Reference#SkIRect'>interface</a> <a href='SkIRect_Reference#SkIRect'>is</a> <a href='SkIRect_Reference#SkIRect'>deprecated</a>, <a href='SkIRect_Reference#SkIRect'>but</a> <a href='SkIRect_Reference#SkIRect'>still</a> <a href='SkIRect_Reference#SkIRect'>present</a> <a href='SkIRect_Reference#SkIRect'>in</a> <a href='SkIRect_Reference#SkIRect'>the</a> <a href='SkIRect_Reference#SkIRect'>interface</a>, <a href='SkIRect_Reference#SkIRect'>mark-up</a> <a href='SkIRect_Reference#SkIRect'>the</a>
-<a href='SkIRect_Reference#SkIRect'>documentation</a> <a href='SkIRect_Reference#SkIRect'>to</a> <a href='SkIRect_Reference#SkIRect'>be</a> <a href='SkIRect_Reference#SkIRect'>deprecated</a> <a href='SkIRect_Reference#SkIRect'>as</a> <a href='SkIRect_Reference#SkIRect'>well</a>.
+If the interface is deprecated, but still present in the interface, mark-up the
+documentation to be deprecated as well.
<pre style="padding: 1em 1em 1em 1em;width: 62.5em; background-color: #f0f0f0">
#Method void someMethodThatIsNowDeprecated()
@@ -117,20 +117,20 @@
</table>
The bot output describes what changed, and includes the file and <a href='undocumented#Line'>line</a>
-<a href='undocumented#Line'>where</a> <a href='undocumented#Line'>the</a> <a href='undocumented#Line'>error</a> <a href='undocumented#Line'>occurred</a>.
+where the error occurred.
-<a href='undocumented#Line'>To</a> <a href='undocumented#Line'>regenerate</a> <a href='undocumented#Line'>the</a> <a href='undocumented#Line'>documentation</a>, <a href='undocumented#Line'>follow</a> <a href='undocumented#Line'>the</a> <a href='undocumented#Line'>Installing</a> <a href='undocumented#Line'>and</a> <a href='undocumented#Line'>Regenerate</a> <a href='undocumented#Line'>steps</a> <a href='undocumented#Line'>below</a>.
+To regenerate the documentation, follow the Installing and Regenerate steps below.
<a name='Editing_Comments'></a>
Edit docs instead of include/core files to update comments if possible.
-The <a href='usingBookmaker#Bookmaker'>Bookmaker</a> <a href='usingBookmaker#Bookmaker'>bots</a> <a href='usingBookmaker#Bookmaker'>do</a> <a href='usingBookmaker#Bookmaker'>not</a> <a href='usingBookmaker#Bookmaker'>complain</a> <a href='usingBookmaker#Bookmaker'>if</a> <a href='usingBookmaker#Bookmaker'>the</a> <a href='usingBookmaker#Bookmaker'>docs</a> <a href='usingBookmaker#Bookmaker'>file</a> <a href='usingBookmaker#Bookmaker'>does</a> <a href='usingBookmaker#Bookmaker'>not</a> <a href='usingBookmaker#Bookmaker'>match</a> <a href='usingBookmaker#Bookmaker'>the</a>
-<a href='usingBookmaker#Bookmaker'>corresponding</a> <a href='usingBookmaker#Bookmaker'>include</a> <a href='usingBookmaker#Bookmaker'>comments</a>. <a href='usingBookmaker#Bookmaker'>Running</a> <a href='usingBookmaker#Bookmaker'>Bookmaker</a> <a href='usingBookmaker#Bookmaker'>include</a> <a href='usingBookmaker#Bookmaker'>generation</a> <a href='usingBookmaker#Bookmaker'>will</a>
-<a href='usingBookmaker#Bookmaker'>report</a> <a href='usingBookmaker#Bookmaker'>when</a> <a href='usingBookmaker#Bookmaker'>docs</a> <a href='usingBookmaker#Bookmaker'>and</a> <a href='usingBookmaker#Bookmaker'>includes</a> <a href='usingBookmaker#Bookmaker'>comments</a> <a href='usingBookmaker#Bookmaker'>do</a> <a href='usingBookmaker#Bookmaker'>not</a> <a href='usingBookmaker#Bookmaker'>match</a>.
+The <a href='usingBookmaker#Bookmaker'>Bookmaker</a> bots do not complain if the docs file does not match the
+corresponding include comments. Running <a href='usingBookmaker#Bookmaker'>Bookmaker</a> include generation will
+report when docs and includes comments do not match.
-<a href='usingBookmaker#Bookmaker'>For</a> <a href='usingBookmaker#Bookmaker'>instance</a>, <a href='usingBookmaker#Bookmaker'>if</a> <a href='usingBookmaker#Bookmaker'>include/core/SkSurface</a>.<a href='usingBookmaker#Bookmaker'>h</a> <a href='usingBookmaker#Bookmaker'>comments</a> <a href='usingBookmaker#Bookmaker'>do</a> <a href='usingBookmaker#Bookmaker'>not</a> <a href='usingBookmaker#Bookmaker'>match</a>
-<a href='usingBookmaker#Bookmaker'>docs/SkSurface_Reference</a>.<a href='usingBookmaker#Bookmaker'>bmh</a>, <a href='usingBookmaker#Bookmaker'>running</a>:
+For instance, if include/core/SkSurface.h comments do not match
+docs/SkSurface_Reference.bmh, running:
<pre style="padding: 1em 1em 1em 1em;width: 62.5em; background-color: #f0f0f0">
$ ./out/dir/bookmaker -b docs -i include/core/SkSurface.h -p
@@ -139,18 +139,18 @@
generates
<pre style="padding: 1em 1em 1em 1em;width: 62.5em; background-color: #f0f0f0">
-wrote updated <a href='SkSurface_Reference#SkSurface'>SkSurface</a>.<a href='SkSurface_Reference#SkSurface'>h</a>
+wrote updated <a href='SkSurface_Reference#SkSurface'>SkSurface</a>.h
</pre>
-The updated <a href='SkSurface_Reference#SkSurface'>SkSurface</a>.<a href='SkSurface_Reference#SkSurface'>h</a> <a href='SkSurface_Reference#SkSurface'>is</a> <a href='SkSurface_Reference#SkSurface'>written</a> <a href='SkSurface_Reference#SkSurface'>to</a> <a href='SkSurface_Reference#SkSurface'>the</a> <a href='SkSurface_Reference#SkSurface'>root</a> <a href='SkSurface_Reference#SkSurface'>to</a> <a href='SkSurface_Reference#SkSurface'>avoid</a> <a href='SkSurface_Reference#SkSurface'>subsequent</a> <a href='SkSurface_Reference#SkSurface'>runs</a> <a href='SkSurface_Reference#SkSurface'>of</a>
-<a href='usingBookmaker#Bookmaker'>Bookmaker</a> <a href='usingBookmaker#Bookmaker'>from</a> <a href='usingBookmaker#Bookmaker'>recompiling</a>. <a href='usingBookmaker#Bookmaker'>if</a> <a href='SkSurface_Reference#SkSurface'>SkSurface</a>.<a href='SkSurface_Reference#SkSurface'>h</a> <a href='SkSurface_Reference#SkSurface'>was</a> <a href='SkSurface_Reference#SkSurface'>not</a> <a href='SkSurface_Reference#SkSurface'>changed</a>, <a href='SkSurface_Reference#SkSurface'>it</a> <a href='SkSurface_Reference#SkSurface'>is</a> <a href='SkSurface_Reference#SkSurface'>not</a> <a href='SkSurface_Reference#SkSurface'>written</a>,
-<a href='SkSurface_Reference#SkSurface'>and</a> <a href='usingBookmaker#Bookmaker'>Bookmaker</a> <a href='usingBookmaker#Bookmaker'>will</a> <a href='usingBookmaker#Bookmaker'>not</a> <a href='usingBookmaker#Bookmaker'>generate</a> <a href='usingBookmaker#Bookmaker'>any</a> <a href='usingBookmaker#Bookmaker'>output</a>.
+The updated <a href='SkSurface_Reference#SkSurface'>SkSurface</a>.h is written to the root to avoid subsequent runs of
+<a href='usingBookmaker#Bookmaker'>Bookmaker</a> from recompiling. if <a href='SkSurface_Reference#SkSurface'>SkSurface</a>.h was not changed, it is not written,
+and <a href='usingBookmaker#Bookmaker'>Bookmaker</a> will not generate any output.
<a name='Broken_Example'></a>
-An example may cause <a href='usingBookmaker#Bookmaker'>Bookmaker</a> <a href='usingBookmaker#Bookmaker'>or</a> <a href='usingBookmaker#Bookmaker'>a</a> <a href='usingBookmaker#Bookmaker'>bot</a> <a href='usingBookmaker#Bookmaker'>running</a> <a href='usingBookmaker#Bookmaker'>Bookmaker</a> <a href='usingBookmaker#Bookmaker'>to</a> <a href='usingBookmaker#Bookmaker'>fail</a> <a href='usingBookmaker#Bookmaker'>if</a> <a href='usingBookmaker#Bookmaker'>it</a> <a href='usingBookmaker#Bookmaker'>fails</a> <a href='usingBookmaker#Bookmaker'>to</a> <a href='usingBookmaker#Bookmaker'>compile</a>.
+An example may cause <a href='usingBookmaker#Bookmaker'>Bookmaker</a> or a bot running <a href='usingBookmaker#Bookmaker'>Bookmaker</a> to fail if it fails to compile.
-<a href='usingBookmaker#Bookmaker'>Fix</a> <a href='usingBookmaker#Bookmaker'>the</a> <a href='usingBookmaker#Bookmaker'>example</a> <a href='usingBookmaker#Bookmaker'>by</a> <a href='usingBookmaker#Bookmaker'>pasting</a> <a href='usingBookmaker#Bookmaker'>it</a> <a href='usingBookmaker#Bookmaker'>into</a> <a href='https://fiddle.skia.org'>Skia Fiddle</a></a> and editing it until it runs successfully.
+Fix the example by pasting it into <a href='https://fiddle.skia.org'>Skia Fiddle</a></a> and editing it until it runs successfully.
If the example cannot be fixed, it can be commented out by changing
@@ -168,7 +168,7 @@
<a name='Regenerate'></a>
-Complete rebuilding of all <a href='usingBookmaker#Bookmaker'>bookmaker</a> <a href='usingBookmaker#Bookmaker'>output</a> <a href='usingBookmaker#Bookmaker'>looks</a> <a href='usingBookmaker#Bookmaker'>like</a>:
+Complete rebuilding of all <a href='usingBookmaker#Bookmaker'>bookmaker</a> output looks like:
<pre style="padding: 1em 1em 1em 1em;width: 62.5em; background-color: #f0f0f0">
$ ./out/dir/bookmaker -a docs/status.json -e fiddle.json
@@ -181,17 +181,17 @@
<a name='New_Documentation'></a>
-Generate an starter <a href='usingBookmaker#Bookmaker'>Bookmaker</a> <a href='usingBookmaker#Bookmaker'>file</a> <a href='usingBookmaker#Bookmaker'>from</a> <a href='usingBookmaker#Bookmaker'>an</a> <a href='usingBookmaker#Bookmaker'>existing</a> <a href='usingBookmaker#Bookmaker'>include</a>.
+Generate an starter <a href='usingBookmaker#Bookmaker'>Bookmaker</a> file from an existing include.
<pre style="padding: 1em 1em 1em 1em;width: 62.5em; background-color: #f0f0f0">
$ ./out/dir/bookmaker -i include/core/SkXXX.h -t docs
</pre>
-If a method or function has an unnamed parameter, <a href='usingBookmaker#Bookmaker'>bookmaker</a> <a href='usingBookmaker#Bookmaker'>generates</a> <a href='usingBookmaker#Bookmaker'>an</a> <a href='usingBookmaker#Bookmaker'>error</a>:
+If a method or function has an unnamed parameter, <a href='usingBookmaker#Bookmaker'>bookmaker</a> generates an error:
<pre style="padding: 1em 1em 1em 1em;width: 62.5em; background-color: #f0f0f0">
C:/puregit/include/core/SkPixmap.h(208): error: #Method missing param name
-bool erase(const <a href='SkColor4f_Reference#SkColor4f'>SkColor4f</a>&, <a href='SkColor4f_Reference#SkColor4f'>const</a> <a href='SkIRect_Reference#SkIRect'>SkIRect</a>* <a href='SkIRect_Reference#SkIRect'>subset</a> = <a href='SkIRect_Reference#SkIRect'>nullptr</a>) <a href='SkIRect_Reference#SkIRect'>const</a>
+bool erase(const <a href='SkColor4f_Reference#SkColor4f'>SkColor4f</a>&, const <a href='SkIRect_Reference#SkIRect'>SkIRect</a>* subset = nullptr) const
^
</pre>
@@ -247,27 +247,27 @@
Similar items may be grouped into topics. Topics may include subtopics.
-Each <a href='undocumented#Document'>document</a> <a href='undocumented#Document'>begins</a> <a href='undocumented#Document'>with</a> <a href='undocumented#Document'>one</a> <a href='undocumented#Document'>or</a> <a href='undocumented#Document'>more</a> <a href='undocumented#Document'>indices</a> <a href='undocumented#Document'>that</a> <a href='undocumented#Document'>include</a> <a href='undocumented#Document'>the</a> <a href='undocumented#Document'>contents</a> <a href='undocumented#Document'>of</a>
-<a href='undocumented#Document'>that</a> <a href='undocumented#Document'>file</a>. <a href='undocumented#Document'>A</a> <a href='undocumented#Document'>class</a> <a href='undocumented#Document'>reference</a> <a href='undocumented#Document'>includes</a> <a href='undocumented#Document'>an</a> <a href='undocumented#Document'>index</a> <a href='undocumented#Document'>listing</a> <a href='undocumented#Document'>contained</a> <a href='undocumented#Document'>topics</a>,
-<a href='undocumented#Document'>a</a> <a href='undocumented#Document'>separate</a> <a href='undocumented#Document'>listing</a> <a href='undocumented#Document'>for</a> <a href='undocumented#Document'>constructors</a>, <a href='undocumented#Document'>one</a> <a href='undocumented#Document'>for</a> <a href='undocumented#Document'>methods</a>, <a href='undocumented#Document'>and</a> <a href='undocumented#Document'>so</a> <a href='undocumented#Document'>on</a>.
+Each <a href='undocumented#Document'>document</a> begins with one or more indices that include the contents of
+that file. A class reference includes an index listing contained topics,
+a separate listing for constructors, one for methods, and so on.
-<a href='undocumented#Document'>Class</a> <a href='undocumented#Document'>methods</a> <a href='undocumented#Document'>contain</a> <a href='undocumented#Document'>a</a> <a href='undocumented#Document'>description</a>, <a href='undocumented#Document'>any</a> <a href='undocumented#Document'>parameters</a>, <a href='undocumented#Document'>any</a> <a href='undocumented#Document'>return</a> <a href='undocumented#Document'>value</a>,
-<a href='undocumented#Document'>an</a> <a href='undocumented#Document'>example</a>, <a href='undocumented#Document'>and</a> <a href='undocumented#Document'>any</a> <a href='undocumented#Document'>cross</a> <a href='undocumented#Document'>references</a>.
+Class methods contain a description, any parameters, any return value,
+an example, and any cross references.
-<a href='undocumented#Document'>Each</a> <a href='undocumented#Document'>method</a> <a href='undocumented#Document'>must</a> <a href='undocumented#Document'>contain</a> <a href='undocumented#Document'>either</a> <a href='undocumented#Document'>one</a> <a href='undocumented#Document'>or</a> <a href='undocumented#Document'>more</a> <a href='undocumented#Document'>examples</a> <a href='undocumented#Document'>or</a> <a href='undocumented#Document'>markup</a> <a href='undocumented#Document'>indicating</a>
-<a href='undocumented#Document'>that</a> <a href='undocumented#Document'>there</a> <a href='undocumented#Document'>is</a> <a href='undocumented#Document'>no</a> <a href='undocumented#Document'>example</a>.
+Each method must contain either one or more examples or markup indicating
+that there is no example.
-<a href='undocumented#Document'>After</a> <a href='undocumented#Document'>editing</a> <a href='undocumented#Document'>is</a> <a href='undocumented#Document'>complete</a>, <a href='undocumented#Document'>searching</a> <a href='undocumented#Document'>for</a> "<a href='undocumented#Document'>incomplete</a>" <a href='undocumented#Document'>should</a> <a href='undocumented#Document'>fail</a>,
-<a href='undocumented#Document'>assuming</a> "<a href='undocumented#Document'>incomplete</a>" <a href='undocumented#Document'>is</a> <a href='undocumented#Document'>not</a> <a href='undocumented#Document'>the</a> <a href='undocumented#Document'>perfect</a> <a href='undocumented#Document'>word</a> <a href='undocumented#Document'>to</a> <a href='undocumented#Document'>use</a> <a href='undocumented#Document'>in</a> <a href='undocumented#Document'>a</a> <a href='undocumented#Document'>description</a> <a href='undocumented#Document'>or</a>
-<a href='undocumented#Document'>example</a>!
+After editing is complete, searching for "incomplete" should fail,
+assuming "incomplete" is not the perfect word to use in a description or
+example!
<a name='Adding_Documentation'></a>
Generate fiddle.json from all examples, including the ones you just wrote.
Error checking is syntatic: starting keywords are closed, keywords have the
correct parents.
-If you run <a href='usingBookmaker#Bookmaker'>Bookmaker</a> <a href='usingBookmaker#Bookmaker'>inside</a> <a href='usingBookmaker#Bookmaker'>Visual_Studio</a>, <a href='usingBookmaker#Bookmaker'>you</a> <a href='usingBookmaker#Bookmaker'>can</a> <a href='usingBookmaker#Bookmaker'>click</a> <a href='usingBookmaker#Bookmaker'>on</a> <a href='usingBookmaker#Bookmaker'>errors</a> <a href='usingBookmaker#Bookmaker'>and</a> <a href='usingBookmaker#Bookmaker'>it</a>
-<a href='usingBookmaker#Bookmaker'>will</a> <a href='usingBookmaker#Bookmaker'>take</a> <a href='usingBookmaker#Bookmaker'>you</a> <a href='usingBookmaker#Bookmaker'>to</a> <a href='usingBookmaker#Bookmaker'>the</a> <a href='usingBookmaker#Bookmaker'>source</a> <a href='undocumented#Line'>line</a> <a href='undocumented#Line'>in</a> <a href='undocumented#Line'>question</a>.
+If you run <a href='usingBookmaker#Bookmaker'>Bookmaker</a> inside Visual_Studio, you can click on errors and it
+will take you to the source <a href='undocumented#Line'>line</a> in question.
<pre style="padding: 1em 1em 1em 1em;width: 62.5em; background-color: #f0f0f0">
$ ./out/dir/bookmaker -e fiddle.json -b docs
@@ -315,6 +315,6 @@
<a name='Bugs'></a>
-<a href='usingBookmaker#Bookmaker'>Bookmaker</a> <a href='usingBookmaker#Bookmaker'>bugs</a> <a href='usingBookmaker#Bookmaker'>are</a> <a href='usingBookmaker#Bookmaker'>tracked</a>
+<a href='usingBookmaker#Bookmaker'>Bookmaker</a> bugs are tracked
<a href='https://bug.skia.org/6898'>here</a></a> .
diff --git a/tools/bookmaker/mdOut.cpp b/tools/bookmaker/mdOut.cpp
index b214b11..90702d8 100644
--- a/tools/bookmaker/mdOut.cpp
+++ b/tools/bookmaker/mdOut.cpp
@@ -312,6 +312,7 @@
}
void MdOut::DefinedState::setLink() {
+ fLink = "";
fPriorDef = nullptr;
// TODO: operators have complicated parsing possibilities; handle the easiest for now
if (fMethod && "operator" == fPriorWord && '(' == fSeparator.back()) {