docs with more pop

Replace a hunk of documentation in docs/*.bmh
with #Populate, which instructs bookmaker to
retrieve the documentation from include/core.

Check spelling for all documentation retrieved
from include/core against Skia declarations
and a list of words in spelling.txt.

TBR=caryclark@google.com
Docs-Preview: https://skia.org/?cl=163491
Bug: skia:
Change-Id: If057c3a1336e312ad59c084a3a130f0276802496
Reviewed-on: https://skia-review.googlesource.com/c/163491
Commit-Queue: Cary Clark <caryclark@skia.org>
Reviewed-by: Cary Clark <caryclark@skia.org>
Auto-Submit: Cary Clark <caryclark@skia.org>
diff --git a/docs/SkAutoCanvasRestore_Reference.bmh b/docs/SkAutoCanvasRestore_Reference.bmh
index a969195..2247c9b 100644
--- a/docs/SkAutoCanvasRestore_Reference.bmh
+++ b/docs/SkAutoCanvasRestore_Reference.bmh
@@ -13,12 +13,7 @@
 #Method SkAutoCanvasRestore(SkCanvas* canvas, bool doSave)
 
 #Line # preserves Canvas save count ##
-Preserves Canvas save count. Optionally saves Canvas_Clip and Canvas_Matrix.
-
-#Param canvas  Canvas to guard ##
-#Param doSave  call SkCanvas::save() ##
-
-#Return utility to restore Canvas state on destructor ##
+#Populate
 
 #Example
 #Height 128
@@ -42,8 +37,7 @@
 #Method ~SkAutoCanvasRestore()
 
 #Line # restores Canvas to saved state ##
-Restores Canvas to saved state. Destructor is called when container goes out of
-scope.
+#Populate
 
 #NoExample
 ##
@@ -55,8 +49,7 @@
 #Method void restore()
 #In Member_Function
 #Line # restores Canvas to saved state ##
-Restores Canvas to saved state immediately. Subsequent calls and
-~SkAutoCanvasRestore have no effect.
+#Populate
 
 #Example
 for (bool callRestore : { false, true } ) {
diff --git a/docs/SkBitmap_Reference.bmh b/docs/SkBitmap_Reference.bmh
index 7faaf33..8205834 100644
--- a/docs/SkBitmap_Reference.bmh
+++ b/docs/SkBitmap_Reference.bmh
@@ -52,14 +52,7 @@
 
 #Method virtual bool allocPixelRef(SkBitmap* bitmap) = 0
 #Line # allocates pixel memory ##
-
-Allocates the pixel memory for the bitmap, given its dimensions and
-Color_Type. Returns true on success, where success means either setPixels
-or setPixelRef was called.
-
-#Param bitmap  Bitmap containing Image_Info as input, and Pixel_Ref as output ##
-
-#Return  true if Pixel_Ref was allocated ##
+#Populate
 
 #NoExample
 ##
@@ -87,13 +80,7 @@
 
 #Method bool allocPixelRef(SkBitmap* bitmap) override
 #Line # allocates pixel memory ##
-Allocates the pixel memory for the bitmap, given its dimensions and
-Color_Type. Returns true on success, where success means either setPixels
-or setPixelRef was called.
-
-#Param bitmap  Bitmap containing Image_Info as input, and Pixel_Ref as output ##
-
-#Return  true if pixels are allocated ##
+#Populate
 
 #Example
     SkBitmap bitmap;
@@ -123,14 +110,7 @@
 #Method SkBitmap()
 
 #Line # constructs with default values ##
-Creates an empty Bitmap without pixels, with kUnknown_SkColorType,
-kUnknown_SkAlphaType, and with a width and height of zero. Pixel_Ref origin is
-set to (0, 0). Bitmap is not volatile.
-
-Use setInfo to associate SkColorType, SkAlphaType, width, and height
-after Bitmap has been created.
-
-#Return  empty Bitmap ##
+#Populate
 
 #Example
 void draw(SkCanvas* canvas) {
@@ -161,12 +141,7 @@
 #Method SkBitmap(const SkBitmap& src)
 
 #Line # shares ownership of pixels ##
-Copies settings from src to returned Bitmap. Shares pixels if src has pixels
-allocated, so both bitmaps reference the same pixels.
-
-#Param src  Bitmap to copy Image_Info, and share Pixel_Ref ##
-
-#Return  copy of src ##
+#Populate
 
 #Example
 void draw(SkCanvas* canvas) {
@@ -195,12 +170,7 @@
 #Method SkBitmap(SkBitmap&& src)
 
 #Line # takes ownership of pixels ##
-Copies settings from src to returned Bitmap. Moves ownership of src pixels to
-Bitmap.
-
-#Param src  Bitmap to copy Image_Info, and reassign Pixel_Ref ##
-
-#Return  copy of src ##
+#Populate
 
 #Example
 void draw(SkCanvas* canvas) {
@@ -229,7 +199,7 @@
 #Method ~SkBitmap()
 
 #Line # releases ownership of pixels ##
-Decrements Pixel_Ref reference count, if Pixel_Ref is not nullptr.
+#Populate
 
 #NoExample
 ##
@@ -243,12 +213,7 @@
 #Method SkBitmap& operator=(const SkBitmap& src)
 
 #Line # shares ownership of pixels ##
-Copies settings from src to returned Bitmap. Shares pixels if src has pixels
-allocated, so both bitmaps reference the same pixels.
-
-#Param src  Bitmap to copy Image_Info, and share Pixel_Ref ##
-
-#Return  copy of src ##
+#Populate
 
 #Example
 void draw(SkCanvas* canvas) {
@@ -277,12 +242,7 @@
 #Method SkBitmap& operator=(SkBitmap&& src)
 
 #Line # takes ownership of pixels ##
-Copies settings from src to returned Bitmap. Moves ownership of src pixels to
-Bitmap.
-
-#Param src  Bitmap to copy Image_Info, and reassign Pixel_Ref ##
-
-#Return  copy of src ##
+#Populate
 
 #Example
 void draw(SkCanvas* canvas) {
@@ -311,9 +271,7 @@
 #Method void swap(SkBitmap& other)
 #In Utility
 #Line # exchanges Bitmap pair ##
-Swaps the fields of the two bitmaps.
-
-#Param other  Bitmap exchanged with original ##
+#Populate
 
 #Example
 void draw(SkCanvas* canvas) {
@@ -359,10 +317,7 @@
 #Method const SkPixmap& pixmap() const
 #In Property
 #Line # returns Pixmap ##
-Returns a constant reference to the Pixmap holding the Bitmap pixel
-address, row bytes, and Image_Info.
-
-#Return reference to Pixmap describing this Bitmap ##
+#Populate
 
 #Example
     SkBitmap bitmap;
@@ -406,9 +361,7 @@
 #Method const SkImageInfo& info() const
 #In Property
 #Line # returns Image_Info ##
-Returns width, height, Alpha_Type, Color_Type, and Color_Space.
-
-#Return reference to Image_Info  ##
+#Populate
 
 #Example
 #Image 4
@@ -462,12 +415,7 @@
 #Method int height() const
 #In Property
 #Line # returns pixel row count ##
-Returns pixel row count.
-
-Maybe be less than pixelRef().height(). Will not exceed pixelRef().height() less
-pixelRefOrigin().fY.
-
-#Return pixel height in Image_Info ##
+#Populate
 
 #Example
     SkImageInfo info = SkImageInfo::MakeA8(16, 32);
@@ -534,11 +482,7 @@
 #Method SkColorSpace* colorSpace() const
 #In Property
 #Line # returns Image_Info Color_Space ##
-Returns Color_Space, the range of colors, associated with Image_Info. The
-reference count of Color_Space is unchanged. The returned Color_Space is
-immutable.
-
-#Return Color_Space in Image_Info, or nullptr ##
+#Populate
 
 #Example
 #Description
@@ -567,13 +511,7 @@
 #Method sk_sp<SkColorSpace> refColorSpace() const
 #In Property
 #Line # returns Image_Info Color_Space ##
-Returns smart pointer to Color_Space, the range of colors, associated with
-Image_Info. The smart pointer tracks the number of objects sharing this
-Color_Space reference so the memory is released when the owners destruct.
-
-The returned Color_Space is immutable.
-
-#Return Color_Space in Image_Info wrapped in a smart pointer ##
+#Populate
 
 #Example
     SkBitmap bitmap1, bitmap2;
@@ -600,10 +538,7 @@
 #Method int bytesPerPixel() const
 #In Property
 #Line # returns number of bytes in pixel based on Color_Type ##
-Returns number of bytes per pixel required by Color_Type.
-Returns zero if colorType( is kUnknown_SkColorType.
-
-#Return  bytes in pixel ##
+#Populate
 
 #Example
     const char* colors[] = {"Unknown", "Alpha_8", "RGB_565", "ARGB_4444", "RGBA_8888", "RGB_888x",
@@ -641,10 +576,7 @@
 #Method int rowBytesAsPixels() const
 #In Property
 #Line # returns interval between rows in pixels ##
-Returns number of pixels that fit on row. Should be greater than or equal to
-width().
-
-#Return  maximum pixels per row ##
+#Populate
 
 #Example
     SkBitmap bitmap;
@@ -670,10 +602,7 @@
 #Method int shiftPerPixel() const
 #In Property
 #Line # returns bit shift from pixels to bytes ##
-Returns bit shift converting row bytes to row pixels.
-Returns zero for kUnknown_SkColorType.
-
-#Return one of: 0, 1, 2, 3; left shift to convert pixels to bytes ##
+#Populate
 
 #Example
     const char* colors[] = {"Unknown", "Alpha_8", "RGB_565", "ARGB_4444", "RGBA_8888", "RGB_888x",
@@ -711,12 +640,7 @@
 #Method bool empty() const
 #In Property
 #Line # returns true if Image_Info has zero width() or height() ##
-Returns true if either width() or height() are zero.
-
-Does not check if Pixel_Ref is nullptr; call drawsNothing to check width(),
-height(), and Pixel_Ref.
-
-#Return  true if dimensions do not enclose area ##
+#Populate
 
 #Example
     SkBitmap bitmap;
@@ -744,12 +668,7 @@
 #Method bool isNull() const
 #In Property
 #Line # returns true if Pixel_Ref is nullptr ##
-Returns true if Pixel_Ref is nullptr.
-
-Does not check if width() or height() are zero; call drawsNothing to check
-width(), height(), and Pixel_Ref.
-
-#Return  true if no Pixel_Ref is associated ##
+#Populate
 
 #Example
     SkBitmap bitmap;
@@ -774,10 +693,7 @@
 #Method bool drawsNothing() const
 #In Property
 #Line # returns true if no width(), no height(), or no Pixel_Ref ##
-Returns true if width() or height() are zero, or if Pixel_Ref is nullptr.
-If true, Bitmap has no effect when drawn or drawn into.
-
-#Return  true if drawing has no effect ##
+#Populate
 
 #Example
     SkBitmap bitmap;
@@ -835,33 +751,7 @@
 #Method bool setAlphaType(SkAlphaType alphaType)
 #In Set
 #Line # sets Alpha_Type of shared pixels ##
-Sets Alpha_Type, if alphaType is compatible with Color_Type.
-Returns true unless alphaType is kUnknown_SkAlphaType and current Alpha_Type
-is not kUnknown_SkAlphaType.
-
-Returns true if Color_Type is kUnknown_SkColorType. alphaType is ignored, and
-Alpha_Type remains kUnknown_SkAlphaType.
-
-Returns true if Color_Type is kRGB_565_SkColorType or kGray_8_SkColorType.
-alphaType is ignored, and Alpha_Type remains kOpaque_SkAlphaType.
-
-If Color_Type is kARGB_4444_SkColorType, kRGBA_8888_SkColorType,
-kBGRA_8888_SkColorType, or kRGBA_F16_SkColorType: returns true unless
-alphaType is kUnknown_SkAlphaType and Alpha_Type is not kUnknown_SkAlphaType.
-If Alpha_Type is kUnknown_SkAlphaType, alphaType is ignored.
-
-If Color_Type is kAlpha_8_SkColorType, returns true unless
-alphaType is kUnknown_SkAlphaType and Alpha_Type is not kUnknown_SkAlphaType.
-If Alpha_Type is kUnknown_SkAlphaType, alphaType is ignored. If alphaType is
-kUnpremul_SkAlphaType, it is treated as kPremul_SkAlphaType.
-
-This changes Alpha_Type in Pixel_Ref; all bitmaps sharing Pixel_Ref
-are affected.
-
-#Param alphaType  one of: #list_of_alpha_types#
-##
-
-#Return  true if Alpha_Type is set ##
+#Populate
 
 #Example
 void draw(SkCanvas* canvas) {
@@ -897,9 +787,7 @@
 #Method void* getPixels() const
 #In Property
 #Line # returns address of pixels ##
-Returns pixel address, the base address corresponding to the pixel origin.
-
-#Return  pixel address ##
+#Populate
 
 #Example
     SkBitmap bitmap;
@@ -927,13 +815,7 @@
 #Method size_t computeByteSize() const
 #In Utility
 #Line # returns size required for pixels ##
-Returns minimum memory required for pixel storage.
-Does not include unused memory on last row when rowBytesAsPixels exceeds width().
-Returns zero if result does not fit in size_t.
-Returns zero if height() or width() is 0.
-Returns height() times rowBytes if colorType is kUnknown_SkColorType.
-
-#Return size in bytes of image buffer ##
+#Populate
 
 #Example
     SkBitmap bitmap;
@@ -967,11 +849,7 @@
 #Method bool isImmutable() const
 #In Property
 #Line # returns true if pixels will not change ##
-Returns true if pixels can not change.
-
-Most immutable Bitmap checks trigger an assert only on debug builds.
-
-#Return  true if pixels are immutable ##
+#Populate
 
 #Example
     SkBitmap original;
@@ -998,11 +876,7 @@
 #Method void setImmutable()
 #In Set
 #Line # marks that pixels will not change ##
-Sets internal flag to mark Bitmap as immutable. Once set, pixels can not change.
-Any other bitmap sharing the same Pixel_Ref are also marked as immutable.
-Once Pixel_Ref is marked immutable, the setting cannot be cleared.
-
-Writing to immutable Bitmap pixels triggers an assert on debug builds.
+#Populate
 
 #Example
 #Description
@@ -1028,15 +902,7 @@
 #Method bool isOpaque() const
 #In Property
 #Line # returns true if Image_Info describes opaque pixels ##
-
-Returns true if Alpha_Type is set to hint that all pixels are opaque; their
-Color_Alpha value is implicitly or explicitly 1.0. If true, and all pixels are
-not opaque, Skia may draw incorrectly.
-
-Does not check if Color_Type allows Alpha, or if any pixel value has
-transparency.
-
-#Return  true if Image_Info Alpha_Type is kOpaque_SkAlphaType ##
+#Populate
 
 #Example
 #Description
@@ -1071,12 +937,7 @@
 #Method bool isVolatile() const
 #In Property
 #Line # returns true if pixels should not be cached ##
-Provides a hint to caller that pixels should not be cached. Only true if
-setIsVolatile has been called to mark as volatile.
-
-Volatile state is not shared by other bitmaps sharing the same Pixel_Ref.
-
-#Return  true if marked volatile ##
+#Populate
 
 #Example
     SkBitmap original;
@@ -1103,14 +964,7 @@
 #Method void setIsVolatile(bool isVolatile)
 #In Set
 #Line # marks if pixels should not be cached ##
-Sets if pixels should be read from Pixel_Ref on every access. Bitmaps are not
-volatile by default; a GPU back end may upload pixel values expecting them to be
-accessed repeatedly. Marking temporary Bitmaps as volatile provides a hint to
-Device that the Bitmap pixels should not be cached. This can
-improve performance by avoiding overhead and reducing resource
-consumption on Device.
-
-#Param isVolatile  true if backing pixels are temporary ##
+#Populate
 
 #Example
 #Height 20
@@ -1136,14 +990,7 @@
 #Method void reset()
 #In Constructors
 #Line # sets to default values, releases pixel ownership ##
-Resets to its initial state; all fields are set to zero, as if Bitmap had
-been initialized by SkBitmap().
-
-Sets width, height, row bytes to zero; pixel address to nullptr; SkColorType to
-kUnknown_SkColorType; and SkAlphaType to kUnknown_SkAlphaType.
-
-If Pixel_Ref is allocated, its reference count is decreased by one, releasing
-its memory if Bitmap is the sole owner.
+#Populate
 
 #Example
     SkBitmap bitmap;
@@ -1169,23 +1016,7 @@
 #Method static bool ComputeIsOpaque(const SkBitmap& bm)
 #In Utility
 #Line # returns true if all pixels are opaque ##
-Returns true if all pixels are opaque. Color_Type determines how pixels
-are encoded, and whether pixel describes Alpha. Returns true for Color_Types
-without alpha in each pixel; for other Color_Types, returns true if all
-pixels have alpha values equivalent to 1.0 or greater.
-
-For Color_Types kRGB_565_SkColorType or kGray_8_SkColorType: always
-returns true. For Color_Types kAlpha_8_SkColorType, kBGRA_8888_SkColorType,
-kRGBA_8888_SkColorType: returns true if all pixel Alpha values are 255.
-For Color_Type kARGB_4444_SkColorType: returns true if all pixel Alpha values are 15.
-For kRGBA_F16_SkColorType: returns true if all pixel Alpha values are 1.0 or
-greater.
-
-Returns false for kUnknown_SkColorType.
-
-#Param bm  Bitmap to check ##
-
-#Return true if all pixels have opaque values or Color_Type is opaque ##
+#Populate
 
 #Example
     SkBitmap bitmap;
@@ -1215,9 +1046,7 @@
 #Method void getBounds(SkRect* bounds) const
 #In Property
 #Line # returns width() and height() as Rectangle ##
-Returns Rect { 0, 0, width(), height() }.
-
-#Param bounds container for floating point rectangle ##
+#Populate
 
 #Example
 #Height 160
@@ -1239,10 +1068,7 @@
 # ------------------------------------------------------------------------------
 
 #Method void getBounds(SkIRect* bounds) const
-
-Returns IRect { 0, 0, width(), height() }.
-
-#Param bounds container for integral rectangle ##
+#Populate
 
 #Example
 #Image 3
@@ -1264,9 +1090,7 @@
 #Method SkIRect bounds() const
 #In Property
 #Line # returns width() and height() as Rectangle ##
-Returns IRect { 0, 0, width(), height() }.
-
-#Return  integral rectangle from origin to width() and height() ##
+#Populate
 
 #Example
 #Height 64
@@ -1289,9 +1113,7 @@
 #Method SkISize dimensions() const
 #In Property
 #Line # returns width() and height() ##
-Returns ISize { width(), height() }.
-
-#Return integral size of width() and height() ##
+#Populate
 
 #Example
     SkBitmap bitmap;
@@ -1312,9 +1134,7 @@
 #Method SkIRect getSubset() const
 #In Property
 #Line # returns bounds offset by origin ##
-Returns the bounds of this bitmap, offset by its Pixel_Ref origin.
-
-#Return bounds within Pixel_Ref bounds ##
+#Populate
 
 #Example
 #Image 3
@@ -1422,25 +1242,7 @@
 #Method bool tryAllocPixelsFlags(const SkImageInfo& info, uint32_t flags)
 #In Allocate
 #Line # allocates pixels from Image_Info with options if possible ##
-Sets Image_Info to info following the rules in setInfo and allocates pixel
-memory. If flags is kZeroPixels_AllocFlag, memory is zeroed.
-
-Returns false and calls reset() if Image_Info could not be set, or memory could
-not be allocated, or memory could not optionally be zeroed.
-
-On most platforms, allocating pixel 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 flags is zero, and calloc(), if flags is
-kZeroPixels_AllocFlag.
-
-flags set to kZeroPixels_AllocFlag offers equal or better performance than
-subsequently calling eraseColor with SK_ColorTRANSPARENT.
-
-#Param info  contains width, height, Alpha_Type, Color_Type, Color_Space ##
-#Param flags  kZeroPixels_AllocFlag, or zero ##
-
-#Return  true if pixels allocation is successful ##
+#Populate
 
 #Example
     SkBitmap bitmap;
@@ -1464,25 +1266,7 @@
 #Method void allocPixelsFlags(const SkImageInfo& info, uint32_t flags)
 #In Allocate
 #Line # allocates pixels from Image_Info with options, or aborts ##
-Sets Image_Info to info following the rules in setInfo and allocates pixel
-memory. If flags is kZeroPixels_AllocFlag, memory is zeroed.
-
-Aborts execution if Image_Info 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 pixel 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 flags is zero, and calloc(), if flags is
-kZeroPixels_AllocFlag.
-
-flags set to kZeroPixels_AllocFlag offers equal or better performance than
-subsequently calling eraseColor with SK_ColorTRANSPARENT.
-
-#Param info  contains width, height, Alpha_Type, Color_Type, Color_Space ##
-#Param flags  kZeroPixels_AllocFlag, or zero ##
+#Populate
 
 #Example
 #Height 128
@@ -1512,30 +1296,7 @@
 #Method bool tryAllocPixels(const SkImageInfo& info, size_t rowBytes)
 #In Allocate
 #Line # allocates pixels from Image_Info if possible ##
-#ToDo  am I ever conflicted about setInfo rules. It needs to be able to be replicated
-       if, for instance, I generate one-page-per-method HTML-style documentation
-       I'm not so sure it makes sense to put the indirection in for .h either unless
-       my mantra is that .h should abbreviate full documentation. And, what to do
-       for generated markdown? At least there the rules are a click away, although
-       a pop-down in place would be way better. Hmmm.
-##
-
-Sets Image_Info to info following the rules in setInfo and allocates pixel
-memory. rowBytes must equal or exceed info.width() times info.bytesPerPixel(),
-or equal zero. Pass in zero for rowBytes to compute the minimum valid value.
-
-Returns false and calls reset() if Image_Info could not be set, or memory could
-not be allocated.
-
-On most platforms, allocating pixel 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().
-
-#Param info  contains width, height, Alpha_Type, Color_Type, Color_Space ##
-#Param rowBytes  size of pixel row or larger; may be zero  ##
-
-#Return  true if pixel storage is allocated ##
+#Populate
 
 #Example
 #Image 3
@@ -1560,21 +1321,7 @@
 #Method void allocPixels(const SkImageInfo& info, size_t rowBytes)
 #In Allocate
 #Line # allocates pixels from Image_Info, or aborts ##
-Sets Image_Info to info following the rules in setInfo and allocates pixel
-memory. rowBytes must equal or exceed info.width() times info.bytesPerPixel(),
-or equal zero. Pass in zero for rowBytes to compute the minimum valid value.
-
-Aborts execution if Image_Info 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 pixel 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().
-
-#Param info  contains width, height, Alpha_Type, Color_Type, Color_Space ##
-#Param rowBytes  size of pixel row or larger; may be zero  ##
+#Populate
 
 #Example
 #Image 3
@@ -1596,21 +1343,7 @@
 # ------------------------------------------------------------------------------
 
 #Method bool tryAllocPixels(const SkImageInfo& info)
-
-Sets Image_Info to info following the rules in setInfo and allocates pixel
-memory.
-
-Returns false and calls reset() if Image_Info could not be set, or memory could
-not be allocated.
-
-On most platforms, allocating pixel 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().
-
-#Param info  contains width, height, Alpha_Type, Color_Type, Color_Space ##
-
-#Return  true if pixel storage is allocated ##
+#Populate
 
 #Example
 #Image 3
@@ -1632,20 +1365,7 @@
 # ------------------------------------------------------------------------------
 
 #Method void allocPixels(const SkImageInfo& info)
-
-Sets Image_Info to info following the rules in setInfo and allocates pixel
-memory.
-
-Aborts execution if Image_Info 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 pixel 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().
-
-#Param info  contains width, height, Alpha_Type, Color_Type, Color_Space ##
+#Populate
 
 #Example
 #Image 4
@@ -1668,23 +1388,7 @@
 #Method bool tryAllocN32Pixels(int width, int height, bool isOpaque = false)
 #In Allocate
 #Line # allocates compatible ARGB pixels if possible ##
-Sets Image_Info to width, height, and Native_Color_Type; and allocates
-pixel memory. If isOpaque is true, sets Image_Info to kOpaque_SkAlphaType;
-otherwise, sets to kPremul_SkAlphaType.
-
-Calls reset() and returns false if width exceeds 29 bits or is negative,
-or height is negative.
-
-Returns false if allocation fails.
-
-Use to create Bitmap that matches SkPMColor, the native pixel arrangement on
-the platform. Bitmap drawn to output device skips converting its pixel format.
-
-#Param width  pixel column count; must be zero or greater ##
-#Param height  pixel row count; must be zero or greater ##
-#Param isOpaque  true if pixels do not have transparency ##
-
-#Return  true if pixel storage is allocated ##
+#Populate
 
 #Example
 #Height 160
@@ -1710,20 +1414,7 @@
 #Method void allocN32Pixels(int width, int height, bool isOpaque = false)
 #In Allocate
 #Line # allocates compatible ARGB pixels, or aborts ##
-Sets Image_Info to width, height, and the Native_Color_Type; and allocates
-pixel memory. If isOpaque is true, sets Image_Info to kPremul_SkAlphaType;
-otherwise, sets to kOpaque_SkAlphaType.
-
-Aborts if width exceeds 29 bits or is negative, or height is negative, or
-allocation fails. Abort steps may be provided by the user at compile time by
-defining SK_ABORT.
-
-Use to create Bitmap that matches SkPMColor, the native pixel arrangement on
-the platform. Bitmap drawn to output device skips converting its pixel format.
-
-#Param width  pixel column count; must be zero or greater ##
-#Param height  pixel row count; must be zero or greater ##
-#Param isOpaque  true if pixels do not have transparency ##
+#Populate
 
 #Example
     SkRandom random;
@@ -1753,29 +1444,7 @@
                        void (*releaseProc)(void* addr, void* context), void* context)
 #In Allocate
 #Line # creates Pixel_Ref, with optional release function ##
-
-Sets Image_Info to info following the rules in setInfo, and creates Pixel_Ref
-containing pixels and rowBytes. releaseProc, if not nullptr, is called
-immediately on failure or when pixels are no longer referenced. context may be
-nullptr.
-
-If Image_Info could not be set, or rowBytes is less than info.minRowBytes:
-calls releaseProc if present, calls reset(), and returns false.
-
-Otherwise, if pixels equals nullptr: sets Image_Info, calls releaseProc if
-present, returns true.
-
-If Image_Info is set, pixels is not nullptr, and releaseProc is not nullptr:
-when pixels are no longer referenced, calls releaseProc with pixels and context
-as parameters.
-
-#Param info  contains width, height, Alpha_Type, Color_Type, Color_Space ##
-#Param pixels   address or pixel storage; may be nullptr ##
-#Param rowBytes  size of pixel row or larger ##
-#Param releaseProc  function called when pixels can be deleted; may be nullptr ##
-#Param context   caller state passed to releaseProc; may be nullptr ##
-
-#Return  true if Image_Info is set to info ##
+#Populate
 
 #Example
 #Description
@@ -1811,22 +1480,7 @@
 # ------------------------------------------------------------------------------
 
 #Method bool installPixels(const SkImageInfo& info, void* pixels, size_t rowBytes)
-
-Sets Image_Info to info following the rules in setInfo, and creates Pixel_Ref
-containing pixels and rowBytes.
-
-If Image_Info could not be set, or rowBytes is less than info.minRowBytes:
-calls reset(), and returns false.
-
-Otherwise, if pixels equals nullptr: sets Image_Info, returns true.
-
-Caller must ensure that pixels are valid for the lifetime of Bitmap and Pixel_Ref.
-
-#Param info  contains width, height, Alpha_Type, Color_Type, Color_Space ##
-#Param pixels  address or pixel storage; may be nullptr ##
-#Param rowBytes  size of pixel row or larger ##
-
-#Return  true if Image_Info is set to info ##
+#Populate
 
 #Example
 #Bug 7079
@@ -1857,20 +1511,7 @@
 # ------------------------------------------------------------------------------
 
 #Method bool installPixels(const SkPixmap& pixmap)
-
-Sets Image_Info to pixmap.info() following the rules in setInfo, and creates
-Pixel_Ref containing pixmap.addr() and pixmap.rowBytes.
-
-If Image_Info could not be set, or pixmap.rowBytes is less than
-SkImageInfo::minRowBytes: calls reset(), and returns false.
-
-Otherwise, if pixmap.addr() equals nullptr: sets Image_Info, returns true.
-
-Caller must ensure that pixmap is valid for the lifetime of Bitmap and Pixel_Ref.
-
-#Param pixmap  Image_Info, pixel address, and rowBytes ##
-
-#Return  true if Image_Info was set to pixmap.info() ##
+#Populate
 
 #Example
 #Description
@@ -1911,16 +1552,7 @@
 #Method void setPixels(void* pixels)
 #In Pixels
 #Line # sets Pixel_Ref without an offset ##
-Replaces Pixel_Ref with pixels, preserving Image_Info and rowBytes.
-Sets Pixel_Ref origin to (0, 0).
-
-If pixels is nullptr, or if info().colorType equals kUnknown_SkColorType;
-release reference to Pixel_Ref, and set Pixel_Ref to nullptr.
-
-Caller is responsible for handling ownership pixel memory for the lifetime
-of Bitmap and Pixel_Ref.
-
-#Param pixels  address of pixel storage, managed by caller ##
+#Populate
 
 #Example
 #Height 50
@@ -1942,13 +1574,7 @@
 
 #Method bool tryAllocPixels()
 #In Allocate
-Allocates pixel memory with HeapAllocator, and replaces existing Pixel_Ref.
-The allocation size is determined by Image_Info width, height, and Color_Type.
-
-Returns false if info().colorType is kUnknown_SkColorType, or allocation fails.
-
-#Return  true if the allocation succeeds
-##
+#Populate
 
 #Example
 #Height 50
@@ -1978,12 +1604,7 @@
 
 #Method void allocPixels()
 #In Allocate
-Allocates pixel memory with HeapAllocator, and replaces existing Pixel_Ref.
-The allocation size is determined by Image_Info width, height, and Color_Type.
-
-Aborts if info().colorType is kUnknown_SkColorType, or allocation fails.
-Abort steps may be provided by the user at compile
-time by defining SK_ABORT.
+#Populate
 
 #Example
 #Height 50
@@ -2012,17 +1633,7 @@
 # ------------------------------------------------------------------------------
 
 #Method bool tryAllocPixels(Allocator* allocator)
-
-Allocates pixel memory with allocator, and replaces existing Pixel_Ref.
-The allocation size is determined by Image_Info width, height, and Color_Type.
-If allocator is nullptr, use HeapAllocator instead.
-
-Returns false if Allocator::allocPixelRef return false.
-
-#Param allocator  instance of SkBitmap::Allocator instantiation ##
-
-#Return  true if custom allocator reports success
-##
+#Populate
 
 #Example
 #Height 100
@@ -2086,15 +1697,7 @@
 # ------------------------------------------------------------------------------
 
 #Method void allocPixels(Allocator* allocator)
-
-Allocates pixel memory with allocator, and replaces existing Pixel_Ref.
-The allocation size is determined by Image_Info width, height, and Color_Type.
-If allocator is nullptr, use HeapAllocator instead.
-
-Aborts if Allocator::allocPixelRef return false. Abort steps may be provided by
-the user at compile time by defining SK_ABORT.
-
-#Param allocator  instance of SkBitmap::Allocator instantiation ##
+#Populate
 
 #Example
 #Height 32
@@ -2139,12 +1742,7 @@
 #Method SkPixelRef* pixelRef() const
 #In Property
 #Line # returns Pixel_Ref, or nullptr ##
-Returns Pixel_Ref, which contains: pixel base address; its dimensions; and
-rowBytes, the interval from one row to the next. Does not change Pixel_Ref
-reference count. Pixel_Ref may be shared by multiple bitmaps.
-If Pixel_Ref has not been set, returns nullptr.
-
-#Return  Pixel_Ref, or nullptr ##
+#Populate
 
 #Example
 #Image 3
@@ -2164,16 +1762,7 @@
 #Method SkIPoint pixelRefOrigin() const
 #In Property
 #Line # returns offset within Pixel_Ref ##
-Returns origin of pixels within Pixel_Ref. Bitmap bounds is always contained
-by Pixel_Ref bounds, which may be the same size or larger. Multiple Bitmaps
-can share the same Pixel_Ref, where each Bitmap has different bounds.
-
-The returned origin added to Bitmap dimensions equals or is smaller than the
-Pixel_Ref dimensions.
-
-Returns (0, 0) if Pixel_Ref is nullptr.
-
-#Return  pixel origin within Pixel_Ref ##
+#Populate
 
 #Example
 #Image 3
@@ -2201,18 +1790,7 @@
 #Method void setPixelRef(sk_sp<SkPixelRef> pixelRef, int dx, int dy)
 #In Set
 #Line # sets Pixel_Ref and offset ##
-Replaces pixelRef and origin in Bitmap.  dx and dy specify the offset
-within the Pixel_Ref pixels for the top-left corner of the bitmap.
-
-Asserts in debug builds if dx or dy are out of range. Pins dx and dy
-to legal range in release builds.
-
-The caller is responsible for ensuring that the pixels match the
-Color_Type and Alpha_Type in Image_Info.
-
-#Param pixelRef  Pixel_Ref describing pixel address and rowBytes ##
-#Param dx   column offset in Pixel_Ref for bitmap origin ##
-#Param dy   row offset in Pixel_Ref for bitmap origin ##
+#Populate
 
 #Example
 #Height 140
@@ -2236,9 +1814,7 @@
 #Method bool readyToDraw() const
 #In Utility
 #Line # returns true if address of pixels is not nullptr ##
-Returns true if Bitmap is can be drawn.
-
-#Return  true if getPixels() is not nullptr ##
+#Populate
 
 #Example
 #Image 5
@@ -2257,13 +1833,7 @@
 #Method uint32_t getGenerationID() const
 #In Utility
 #Line # returns unique ID ##
-Returns a unique value corresponding to the pixels in Pixel_Ref.
-Returns a different value after notifyPixelsChanged has been called.
-Returns zero if Pixel_Ref is nullptr.
-
-Determines if pixels have changed since last examined.
-
-#Return unique value for pixels in Pixel_Ref ##
+#Populate
 
 #Example
     SkBitmap bitmap;
@@ -2289,8 +1859,7 @@
 #Method void notifyPixelsChanged() const
 #In Pixels
 #Line # marks pixels as changed, altering the unique ID ##
-Marks that pixels in Pixel_Ref have changed. Subsequent calls to
-getGenerationID() return a different value.
+#Populate
 
 #Example
 #Height 20
@@ -2319,12 +1888,7 @@
 #Method void eraseColor(SkColor c) const
 #In Draw
 #Line # writes Color to pixels ##
-Replaces pixel values with c. All pixels contained by bounds() are affected.
-If the colorType is kGray_8_SkColorType or k565_SkColorType, then Color_Alpha
-is ignored; RGB is treated as opaque. If colorType is kAlpha_8_SkColorType,
-then RGB is ignored.
-
-#Param c  Unpremultiplied Color ##
+#Populate
 
 #Example
 #Height 20
@@ -2344,16 +1908,7 @@
 #Method void eraseARGB(U8CPU a, U8CPU r, U8CPU g, U8CPU b) const
 #In Draw
 #Line # writes Color to pixels ##
-Replaces pixel values with Unpremultiplied Color built from a, r, g, and b.
-All pixels contained by bounds() are affected.
-If the colorType is kGray_8_SkColorType or k565_SkColorType, then a
-is ignored; r, g, and b are treated as opaque. If colorType is kAlpha_8_SkColorType,
-then r, g, and b are ignored.
-
-#Param a    amount of Color_Alpha, from fully transparent (0) to fully opaque (255) ##
-#Param r    amount of red, from no red (0) to full red (255) ##
-#Param g    amount of green, from no green (0) to full green (255) ##
-#Param b    amount of blue, from no blue (0) to full blue (255) ##
+#Populate
 
 #Example
 #Height 80
@@ -2374,15 +1929,7 @@
 #Method void erase(SkColor c, const SkIRect& area) const
 #In Draw
 #Line # writes Color to rectangle of pixels ##
-Replaces pixel values inside area with c. If area does not intersect bounds(),
-call has no effect.
-
-If the colorType is kGray_8_SkColorType or k565_SkColorType, then Color_Alpha
-is ignored; RGB is treated as opaque. If colorType is kAlpha_8_SkColorType,
-then RGB is ignored.
-
-#Param c  Unpremultiplied Color ##
-#Param area  rectangle to fill ##
+#Populate
 
 #Example
 #Height 70
@@ -2414,22 +1961,7 @@
 #In Property
 #In Pixels
 #Line # returns one pixel as Unpremultiplied Color ##
-Returns pixel at (x, y) as Unpremultiplied Color.
-Returns black with Alpha if Color_Type is kAlpha_8_SkColorType.
-
-Input is not validated: out of bounds values of x or y trigger an assert() if
-built with SK_DEBUG defined; and returns undefined values or may crash if
-SK_RELEASE is defined. Fails if Color_Type is kUnknown_SkColorType or
-pixel address is nullptr.
-
-Color_Space in Image_Info is ignored. Some Color precision may be lost in the
-conversion to Unpremultiplied Color; original pixel data may have additional
-precision.
-
-#Param x  column index, zero or greater, and less than width() ##
-#Param y  row index, zero or greater, and less than height() ##
-
-#Return  pixel converted to Unpremultiplied Color ##
+#Populate
 
 #Example
     const int w = 4;
@@ -2501,19 +2033,7 @@
 #Method void* getAddr(int x, int y) const
 #In Property
 #Line # returns readable pixel address as void pointer ##
-Returns pixel address at (x, y).
-
-Input is not validated: out of bounds values of x or y, or kUnknown_SkColorType,
-trigger an assert() if built with SK_DEBUG defined. Returns nullptr if
-Color_Type is kUnknown_SkColorType, or Pixel_Ref is nullptr.
-
-Performs a lookup of pixel size; for better performance, call
-one of: getAddr8, getAddr16, or getAddr32.
-
-#Param x  column index, zero or greater, and less than width() ##
-#Param y  row index, zero or greater, and less than height() ##
-
-#Return  generic pointer to pixel ##
+#Populate
 
 #Example
 #Image 3
@@ -2717,7 +2237,7 @@
 #Method bool readPixels(const SkImageInfo& dstInfo, void* dstPixels, size_t dstRowBytes,
                     int srcX, int srcY) const
 #In Pixels
-#Line # copies and converts pixels ##

+#Line # copies and converts pixels ##
 
 Copies a Rect of pixels from Bitmap to dstPixels. Copy starts at (srcX, srcY),
 and does not exceed Bitmap (width(), height()).
@@ -2726,7 +2246,7 @@
 destination. dstRowBytes specifics the gap from one destination row to the next.
 Returns true if pixels are copied. Returns false if:
 #List
-# dstInfo.addr() equals nullptr ##
+# dstInfo has no address ##
 # dstRowBytes is less than dstInfo.minRowBytes ##
 # Pixel_Ref is nullptr ##
 ##
@@ -2995,10 +2515,7 @@
 #Method bool hasHardwareMipMap() const
 #In Property
 #Line # returns Mip_Map support present; Android only ##
-
-For use by Android framework only.
-
-#Return  true if setHasHardwareMipMap has been called with true ##
+#Populate
 
 #NoExample
 ##
@@ -3012,10 +2529,7 @@
 #Method void setHasHardwareMipMap(bool hasHardwareMipMap)
 #In Set
 #Line # sets Mip_Map support present; Android only ##
-
-For use by Android framework only.
-
-#Param hasHardwareMipMap  sets state ##
+#Populate
 
 #NoExample
 ##
@@ -3029,14 +2543,7 @@
 #Method bool extractAlpha(SkBitmap* dst) const
 #In Constructors
 #Line # creates Bitmap containing Alpha of pixels ##
-Sets dst to Alpha described by pixels. Returns false if dst cannot be written to
-or dst pixels cannot be allocated.
-
-Uses HeapAllocator to reserve memory for dst Pixel_Ref.
-
-#Param dst  holds Pixel_Ref to fill with alpha layer ##
-
-#Return  true if Alpha layer was constructed in dst Pixel_Ref ##
+#Populate
 
 #Example
 #Height 100
@@ -3065,22 +2572,8 @@
 
 #Method bool extractAlpha(SkBitmap* dst, const SkPaint* paint,
                       SkIPoint* offset) const
+#Populate
 
-Sets dst to Alpha described by pixels. Returns false if dst cannot be written to
-or dst pixels cannot be allocated.
-
-If paint is not nullptr and contains Mask_Filter, SkMaskFilter
-generates Mask_Alpha from Bitmap. Uses HeapAllocator to reserve memory for dst
-Pixel_Ref. Sets offset to top-left position for dst for alignment with Bitmap;
-(0, 0) unless SkMaskFilter generates mask.
-
-#Param dst  holds Pixel_Ref to fill with alpha layer ##
-#Param paint  holds optional Mask_Filter; may be nullptr ##
-#Param offset  top-left position for dst; may be nullptr ##
-
-#Return  true if Alpha layer was constructed in dst Pixel_Ref ##
-
-#Bug 7103
 #Example
 #Height 160
     auto radiusToSigma = [](SkScalar radius) -> SkScalar {
@@ -3114,24 +2607,8 @@
 
 #Method bool extractAlpha(SkBitmap* dst, const SkPaint* paint, Allocator* allocator,
                       SkIPoint* offset) const
+#Populate
 
-Sets dst to Alpha described by pixels. Returns false if dst cannot be written to
-or dst pixels cannot be allocated.
-
-If paint is not nullptr and contains Mask_Filter, SkMaskFilter
-generates Mask_Alpha from Bitmap. allocator may reference a custom allocation
-class or be set to nullptr to use HeapAllocator. Sets offset to top-left
-position for dst for alignment with Bitmap; (0, 0) unless SkMaskFilter generates
-mask.
-
-#Param dst  holds Pixel_Ref to fill with alpha layer ##
-#Param paint  holds optional Mask_Filter; may be nullptr ##
-#Param allocator   function to reserve memory for Pixel_Ref; may be nullptr ##
-#Param offset  top-left position for dst; may be nullptr ##
-
-#Return  true if Alpha layer was constructed in dst Pixel_Ref ##
-
-#Bug 7104
 #Example
 #Height 128
     SkBitmap alpha, bitmap;
@@ -3162,15 +2639,7 @@
 #Method bool peekPixels(SkPixmap* pixmap) const
 #In Pixels
 #Line # returns Pixmap if possible ##
-Copies Bitmap pixel address, row bytes, and Image_Info to pixmap, if address
-is available, and returns true. If pixel address is not available, return
-false and leave pixmap unchanged.
-
-pixmap contents become invalid on any future change to Bitmap.
-
-#Param pixmap  storage for pixel state if pixels are readable; otherwise, ignored ##
-
-#Return true if Bitmap has direct access to pixels ##
+#Populate
 
 #Example
     SkBitmap bitmap;
@@ -3217,8 +2686,7 @@
 #Method void validate() const;
 #In Utility
 #Line # asserts if Bitmap is invalid (debug only) ##
-Asserts if internal values are illegal or inconsistent. Only available if
-SK_DEBUG is defined at compile time.
+#Populate
 
 #NoExample
 ##
@@ -3232,4 +2700,3 @@
 #Class SkBitmap ##
 
 #Topic Bitmap ##
-
diff --git a/docs/SkBlendMode_Reference.bmh b/docs/SkBlendMode_Reference.bmh
index d3b79d6..a02b012 100644
--- a/docs/SkBlendMode_Reference.bmh
+++ b/docs/SkBlendMode_Reference.bmh
@@ -755,18 +755,18 @@
 replacing destination with lighter less darker.
 #Example
 #Image 5
-    canvas->drawImage(image, 0, 0);

-    canvas->drawImage(image, 128, 0);

-    canvas->drawImage(image, 0, 128);

-    canvas->drawImage(image, 128, 128);

-    SkPaint paint;

-    paint.setBlendMode(SkBlendMode::kDstATop);

-    SkColor alphas[] = { SK_ColorBLACK, SK_ColorTRANSPARENT };

-    SkPoint vert[] = { { 0, 0 }, { 0, 256 } };

-    paint.setShader(SkGradientShader::MakeLinear(vert, alphas, nullptr, SK_ARRAY_COUNT(alphas),

-            SkShader::kClamp_TileMode));

-    canvas->drawPaint(paint);

-    canvas->clipRect( { 30, 30, 226, 226 } );

+    canvas->drawImage(image, 0, 0);
+    canvas->drawImage(image, 128, 0);
+    canvas->drawImage(image, 0, 128);
+    canvas->drawImage(image, 128, 128);
+    SkPaint paint;
+    paint.setBlendMode(SkBlendMode::kDstATop);
+    SkColor alphas[] = { SK_ColorBLACK, SK_ColorTRANSPARENT };
+    SkPoint vert[] = { { 0, 0 }, { 0, 256 } };
+    paint.setShader(SkGradientShader::MakeLinear(vert, alphas, nullptr, SK_ARRAY_COUNT(alphas),
+            SkShader::kClamp_TileMode));
+    canvas->drawPaint(paint);
+    canvas->clipRect( { 30, 30, 226, 226 } );
     canvas->drawColor(0x80bb9977, SkBlendMode::kDifference);
 ##
 ##
@@ -780,19 +780,19 @@
 replacing destination with lighter less darker, ignoring Alpha.
 #Example
 #Image 5
-    canvas->drawImage(image, 0, 0);

-    canvas->drawImage(image, 128, 0);

-    canvas->drawImage(image, 0, 128);

-    canvas->drawImage(image, 128, 128);

-    SkPaint paint;

-    paint.setBlendMode(SkBlendMode::kDstATop);

-    SkColor alphas[] = { SK_ColorBLACK, SK_ColorTRANSPARENT };

-    SkPoint vert[] = { { 0, 0 }, { 0, 256 } };

-    paint.setShader(SkGradientShader::MakeLinear(vert, alphas, nullptr, SK_ARRAY_COUNT(alphas),

-            SkShader::kClamp_TileMode));

-    canvas->drawPaint(paint);

-    canvas->clipRect( { 30, 30, 226, 226 } );

-    canvas->drawColor(0x80bb9977, SkBlendMode::kExclusion);

+    canvas->drawImage(image, 0, 0);
+    canvas->drawImage(image, 128, 0);
+    canvas->drawImage(image, 0, 128);
+    canvas->drawImage(image, 128, 128);
+    SkPaint paint;
+    paint.setBlendMode(SkBlendMode::kDstATop);
+    SkColor alphas[] = { SK_ColorBLACK, SK_ColorTRANSPARENT };
+    SkPoint vert[] = { { 0, 0 }, { 0, 256 } };
+    paint.setShader(SkGradientShader::MakeLinear(vert, alphas, nullptr, SK_ARRAY_COUNT(alphas),
+            SkShader::kClamp_TileMode));
+    canvas->drawPaint(paint);
+    canvas->clipRect( { 30, 30, 226, 226 } );
+    canvas->drawColor(0x80bb9977, SkBlendMode::kExclusion);
 ##
 ##
 
@@ -806,18 +806,18 @@
 SkBlendMode::kMultiply makes the image darker.
 #Example
 #Image 5
-    canvas->drawImage(image, 0, 0);

-    canvas->drawImage(image, 128, 0);

-    canvas->drawImage(image, 0, 128);

-    canvas->drawImage(image, 128, 128);

-    SkPaint paint;

-    paint.setBlendMode(SkBlendMode::kDstATop);

-    SkColor alphas[] = { SK_ColorBLACK, SK_ColorTRANSPARENT };

-    SkPoint vert[] = { { 0, 0 }, { 0, 256 } };

-    paint.setShader(SkGradientShader::MakeLinear(vert, alphas, nullptr, SK_ARRAY_COUNT(alphas),

-            SkShader::kClamp_TileMode));

-    canvas->drawPaint(paint);

-    canvas->clipRect( { 30, 30, 226, 226 } );

+    canvas->drawImage(image, 0, 0);
+    canvas->drawImage(image, 128, 0);
+    canvas->drawImage(image, 0, 128);
+    canvas->drawImage(image, 128, 128);
+    SkPaint paint;
+    paint.setBlendMode(SkBlendMode::kDstATop);
+    SkColor alphas[] = { SK_ColorBLACK, SK_ColorTRANSPARENT };
+    SkPoint vert[] = { { 0, 0 }, { 0, 256 } };
+    paint.setShader(SkGradientShader::MakeLinear(vert, alphas, nullptr, SK_ARRAY_COUNT(alphas),
+            SkShader::kClamp_TileMode));
+    canvas->drawPaint(paint);
+    canvas->clipRect( { 30, 30, 226, 226 } );
     canvas->drawColor(0x80bb9977, SkBlendMode::kMultiply);
 ##
 ##
@@ -831,7 +831,7 @@
 source hue, leaving destination luminosity and saturation unchanged.
 #Example
 #Image 3
-canvas->drawImage(image, 0, 0);

+canvas->drawImage(image, 0, 0);
 canvas->drawColor(0xFF00FF00, SkBlendMode::kHue);
 ##
 ##
@@ -845,7 +845,7 @@
 source hue, leaving destination luminosity and saturation unchanged.
 #Example
 #Image 3
-canvas->drawImage(image, 0, 0);

+canvas->drawImage(image, 0, 0);
 canvas->drawColor(0xFF00FF00, SkBlendMode::kSaturation);
 ##
 ##
@@ -859,7 +859,7 @@
 source hue and saturation, leaving destination luminosity unchanged.
 #Example
 #Image 3
-canvas->drawImage(image, 0, 0);

+canvas->drawImage(image, 0, 0);
 canvas->drawColor(0xFF00FF00, SkBlendMode::kColor);
 ##
 ##
@@ -873,7 +873,7 @@
 source luminosity, leaving destination hue and saturation unchanged.
 #Example
 #Image 3
-canvas->drawImage(image, 0, 0);

+canvas->drawImage(image, 0, 0);
 canvas->drawColor(0xFF00FF00, SkBlendMode::kLuminosity);
 ##
 ##
@@ -882,22 +882,16 @@
 
 # ------------------------------------------------------------------------------
 
-#Method SK_API const char* SkBlendMode_Name(SkBlendMode blendMode)
+#Method const char* SkBlendMode_Name(SkBlendMode blendMode)
 #In Utility
 #Line # returns mode as C string ##
-
-Returns name of blendMode as null-terminated C string.
-
-#Param blendMode  one of: #list_of_blend_modes#
-##
-
-#Return C string ##
+#Populate
 
 #Example
-SkDebugf("default blend: SkBlendMode::k%s\n", SkBlendMode_Name(SkPaint().getBlendMode()));

-#StdOut

-default blend: SkBlendMode::kSrcOver

-##

+SkDebugf("default blend: SkBlendMode::k%s\n", SkBlendMode_Name(SkPaint().getBlendMode()));
+#StdOut
+default blend: SkBlendMode::kSrcOver
+##
 ##
 
 #SeeAlso SkBlendMode
diff --git a/docs/SkCanvas_Reference.bmh b/docs/SkCanvas_Reference.bmh
index 7a22330..125b659 100644
--- a/docs/SkCanvas_Reference.bmh
+++ b/docs/SkCanvas_Reference.bmh
@@ -22,18 +22,14 @@
 Canvas generated by GPU_Surface uses Vulkan or OpenGL to draw to the GPU.
 
 To draw to a document, obtain Canvas from SVG_Canvas, Document_PDF, or Picture_Recorder.
-Document based Canvas and other Canvas Subclasses reference Device describing the
+Document based Canvas and other Canvas subclasses reference Device describing the
 destination.
 
 Canvas can be constructed to draw to Bitmap without first creating Raster_Surface.
 This approach may be deprecated in the future.
 
-#Subtopic Constructors
-
-Create the desired type of Surface to obtain its Canvas when possible. Useful
-when no Surface is required, and some helpers implicitly create Raster_Surface.
-
-##
+Canvas may be created directly when no Surface is required; some Canvas methods
+implicitly create Raster_Surface.
 
 # ------------------------------------------------------------------------------
 
@@ -42,36 +38,7 @@
                                                           const SkSurfaceProps* props = nullptr)
 #In Constructors
 #Line # creates from SkImageInfo and Pixel_Storage ##
-
-Allocates raster Canvas that will draw directly into pixels.
-
-Canvas is returned if all parameters are valid.
-Valid parameters include:
-info dimensions are zero or positive;
-info contains Color_Type and Alpha_Type supported by Raster_Surface;
-pixels is not nullptr;
-rowBytes is zero or large enough to contain info width pixels of Color_Type.
-
-Pass zero for rowBytes to compute rowBytes from info width and size of pixel.
-If rowBytes is greater than zero, it must be equal to or greater than
-info width times bytes required for Color_Type.
-
-Pixel buffer size should be info height times computed rowBytes.
-Pixels are not initialized.
-To access pixels after drawing, call flush() or peekPixels.
-
-#Param info  width, height, Color_Type, Alpha_Type, Color_Space, of Raster_Surface;
-             width, or height, or both, may be zero
-##
-#Param pixels  pointer to destination pixels buffer
-##
-#Param rowBytes  interval from one Surface row to the next, or zero
-##
-#Param props  LCD striping orientation and setting for device independent fonts;
-              may be nullptr
-##
-
-#Return  Canvas if all parameters are valid; otherwise, nullptr ##
+#Populate
 
 #Example
     #Description
@@ -117,34 +84,7 @@
                                                          size_t rowBytes)
 #In Constructors
 #Line # creates from image data and Pixel_Storage ##
-
-Allocates raster Canvas specified by inline image specification. Subsequent Canvas
-calls draw into pixels.
-Color_Type is set to kN32_SkColorType.
-Alpha_Type is set to kPremul_SkAlphaType.
-To access pixels after drawing, call flush() or peekPixels.
-
-Canvas is returned if all parameters are valid.
-Valid parameters include:
-width and height are zero or positive;
-pixels is not nullptr;
-rowBytes is zero or large enough to contain width pixels of kN32_SkColorType.
-
-Pass zero for rowBytes to compute rowBytes from width and size of pixel.
-If rowBytes is greater than zero, it must be equal to or greater than
-width times bytes required for Color_Type.
-
-Pixel buffer size should be height times rowBytes.
-
-#Param width  pixel column count on Raster_Surface created; must be zero or greater ##
-#Param height  pixel row count on Raster_Surface created; must be zero or greater ##
-#Param pixels  pointer to destination pixels buffer; buffer size should be height
-               times rowBytes
-##
-#Param rowBytes  interval from one Surface row to the next, or zero
-##
-
-#Return  Canvas if all parameters are valid; otherwise, nullptr ##
+#Populate
 
 #Example
     #Description
@@ -191,10 +131,7 @@
 #Method SkCanvas()
 
 #Line # creates with no Surface, no dimensions ##
-Creates an empty Canvas with no backing device or pixels, with
-a width and height of zero.
-
-#Return  empty Canvas ##
+#Populate
 
 #Example
 
@@ -234,22 +171,7 @@
 #Method SkCanvas(int width, int height, const SkSurfaceProps* props = nullptr)
 
 #Line # creates with no Surface, set dimensions, Surface_Properties ##
-Creates Canvas of the specified dimensions without a Surface.
-Used by Subclasses with custom implementations for draw member functions.
-
-If props equals nullptr, Surface_Properties are created with
-Surface_Properties_Legacy_Font_Host settings, which choose the pixel striping
-direction and order. Since a platform may dynamically change its direction when
-the device is rotated, and since a platform may have multiple monitors with
-different characteristics, it is best not to rely on this legacy behavior.
-
-#Param width  zero or greater ##
-#Param height zero or greater ##
-#Param props  LCD striping orientation and setting for device independent fonts;
-              may be nullptr
-##
-
-#Return       Canvas placeholder with dimensions ##
+#Populate
 
 #Example
     SkCanvas canvas(10, 20);  // 10 units wide, 20 units high
@@ -276,21 +198,7 @@
 #Method explicit SkCanvas(const SkBitmap& bitmap)
 
 #Line # uses existing Bitmap ##
-Constructs a canvas that draws into bitmap.
-Sets SkSurfaceProps::kLegacyFontHost_InitType in constructed Surface.
-
-Bitmap is copied so that subsequently editing bitmap will not affect
-constructed Canvas.
-
-May be deprecated in the future.
-
-#ToDo Should be deprecated? ##
-
-#Param bitmap   width, height, Color_Type, Alpha_Type, and pixel
-                storage of Raster_Surface
-##
-
-#Return         Canvas that can be used to draw into bitmap ##
+#Populate
 
 #Example
 #Description
@@ -353,12 +261,7 @@
 #Method SkCanvas(const SkBitmap& bitmap, ColorBehavior behavior)
 
 #Line # exists for Android framework only ##
-
-For use by Android framework only.
-
-#Param bitmap    specifies a bitmap for the canvas to draw into ##
-#Param behavior  specializes this constructor; value is unused ##
-#Return          Canvas that can be used to draw into bitmap ##
+#Populate
 
 #NoExample
 ##
@@ -369,20 +272,7 @@
 #Method SkCanvas(const SkBitmap& bitmap, const SkSurfaceProps& props)
 
 #Line # uses existing Bitmap and Surface_Properties ##
-Constructs a canvas that draws into bitmap.
-Use props to match the device characteristics, like LCD striping.
-
-bitmap is copied so that subsequently editing bitmap will not affect
-constructed Canvas.
-
-#Param bitmap   width, height, Color_Type, Alpha_Type,
-                and pixel storage of Raster_Surface
-##
-#Param props    order and orientation of RGB striping; and whether to use
-                device independent fonts
-##
-
-#Return         Canvas that can be used to draw into bitmap ##
+#Populate
 
 #Example
 #Description
@@ -432,14 +322,13 @@
 #Method virtual ~SkCanvas()
 
 #Line # draws saved Layers, frees resources ##
-Draws saved Layers, if any.
-Frees up resources used by Canvas.
+#Populate
 
 #Example
 #Description
 Canvas Layer draws into bitmap. saveLayerAlpha sets up an additional
 drawing surface that blends with the bitmap. When Layer goes out of
-scope, Layer Destructor is called. The saved Layer is restored, drawing
+scope, Layer destructor is called. The saved Layer is restored, drawing
 transparent letters.
 ##
 void draw(SkCanvas* canvas) {
@@ -472,10 +361,7 @@
 #In Property
 #In Utility
 #Line # associates additional data with the canvas ##
-Returns storage to associate additional data with the canvas.
-The storage is freed when Canvas is deleted.
-
-#Return  storage that can be read from and written to ##
+#Populate
 
 #Example
     const char* kHelloMetaData = "HelloMetaData";
@@ -503,10 +389,7 @@
 #Method SkImageInfo imageInfo() const
 #In Property
 #Line # returns Image_Info for Canvas ##
-Returns Image_Info for Canvas. If Canvas is not associated with Raster_Surface or
-GPU_Surface, returned Color_Type is set to kUnknown_SkColorType.
-
-#Return  dimensions and Color_Type of Canvas ##
+#Populate
 
 #Example
     SkCanvas emptyCanvas;
@@ -528,14 +411,7 @@
 #Method bool getProps(SkSurfaceProps* props) const
 #In Property
 #Line # copies Surface_Properties if available ##
-Copies Surface_Properties, if Canvas is associated with Raster_Surface or
-GPU_Surface, and returns true. Otherwise, returns false and leave props unchanged.
-
-#Param props  storage for writable SkSurfaceProps ##
-
-#Return  true if Surface_Properties was copied ##
-
-#ToDo This seems old style. Deprecate? ##
+#Populate
 
 #Example
     SkBitmap bitmap;
@@ -565,29 +441,8 @@
 #Method void flush()
 #In Utility
 #Line # triggers execution of all pending draw operations ##
-Triggers the immediate execution of all pending draw operations.
-If Canvas is associated with GPU_Surface, resolves all pending GPU operations.
-If Canvas is associated with Raster_Surface, has no effect; raster draw
-operations are never deferred.
+#Populate
 
-#ToDo
-In an overview section on managing the GPU, include:
-- flush should never change what is drawn
-- call to kick off gpu work
-- calling too much impacts performance
-- some calls (peekPixels, prepareForExternalIO) call it internally
-- canvas call is local, GrContext::flush is global
-- diffentiate between flush, flushAndSignalSemaphores
-- normally never needs to be called
-- call it when sharing gpu resources, feeling memory pressure, swapping out app, and before
-  abandoning context
-- also call to say "I'm finished drawing here", e.g., when drawing to a GPU-backed offscreen surface
-  (created with SkSurface::MakeRenderTarget)
-
-for posterity: this doesn't show a difference: fiddle.skia.org/c/@flushfail
-##
-
-#ToDo haven't thought of a useful example to put here ##
 #NoExample
 ##
 
@@ -600,11 +455,7 @@
 #Method virtual SkISize getBaseLayerSize() const
 #In Property
 #Line # returns size of base Layer in global coordinates ##
-Gets the size of the base or root Layer in global canvas coordinates. The
-origin of the base Layer is always (0,0). The area available for drawing may be
-smaller (due to clipping or saveLayer).
-
-#Return  integral width and height of base Layer ##
+#Populate
 
 #Example
     SkBitmap bitmap;
@@ -636,16 +487,7 @@
 #Method sk_sp<SkSurface> makeSurface(const SkImageInfo& info, const SkSurfaceProps* props = nullptr)
 #In Constructors
 #Line # creates Surface matching SkImageInfo and SkSurfaceProps ##
-Creates Surface matching info and props, and associates it with Canvas.
-Returns nullptr if no match found.
-
-If props is nullptr, matches Surface_Properties in Canvas. If props is nullptr and Canvas
-does not have Surface_Properties, creates Surface with default Surface_Properties.
-
-#Param info  width, height, Color_Type, Alpha_Type, and Color_Space ##
-#Param props  Surface_Properties to match; may be nullptr to match Canvas ##
-
-#Return  Surface matching info and props, or nullptr if no match is available ##
+#Populate
 
 #Example
     sk_sp<SkSurface> surface = SkSurface::MakeRasterN32Premul(5, 6);
@@ -670,9 +512,7 @@
 #Method virtual GrContext* getGrContext()
 #In Property
 #Line # returns GPU_Context of the GPU_Surface ##
-Returns GPU_Context of the GPU_Surface associated with Canvas.
-
-#Return GPU_Context, if available; nullptr otherwise ##
+#Populate
 
 #Example
 void draw(SkCanvas* canvas) {
@@ -696,20 +536,7 @@
 #In Utility
 #In Property
 #Line # returns writable pixel access if available ##
-Returns the pixel base address, Image_Info, rowBytes, and origin if the pixels
-can be read directly. The returned address is only valid
-while Canvas is in scope and unchanged. Any Canvas call or Surface call
-may invalidate the returned address and other returned values.
-
-If pixels are inaccessible, info, rowBytes, and origin are unchanged.
-
-#Param info      storage for writable pixels' Image_Info; may be nullptr ##
-#Param rowBytes  storage for writable pixels' row bytes; may be nullptr ##
-#Param origin    storage for Canvas top Layer origin, its top-left corner;
-                 may be nullptr
-##
-
-#Return  address of pixels, or nullptr if inaccessible ##
+#Populate
 
 #Example
 void draw(SkCanvas* canvas) {
@@ -780,14 +607,7 @@
 #In Utility
 #In Property
 #Line # returns context that tracks Clip and Matrix ##
-Returns custom context that tracks the Matrix and Clip.
-
-Use Raster_Handle_Allocator to blend Skia drawing with custom drawing, typically performed
-by the host platform user interface. The custom context returned is generated by
-SkRasterHandleAllocator::MakeCanvas, which creates a custom canvas with raster storage for
-the drawing destination.
-
-#Return  context of custom allocation ##
+#Populate
 
 #Example
 #Description
@@ -843,19 +663,7 @@
 #Method bool peekPixels(SkPixmap* pixmap)
 #In Pixels
 #Line # returns if Canvas has direct access to its pixels ##
-Returns true if Canvas has direct access to its pixels.
-
-Pixels are readable when Device is raster. Pixels are not readable when Canvas
-is returned from GPU_Surface, returned by SkDocument::beginPage, returned by
-SkPictureRecorder::beginRecording, or Canvas is the base of a utility class
-like SkDebugCanvas.
-
-pixmap is valid only while Canvas is in scope and unchanged. Any
-Canvas or Surface call may invalidate the pixmap values.
-
-#Param pixmap  storage for pixel state if pixels are readable; otherwise, ignored ##
-
-#Return  true if Canvas has direct access to pixels ##
+#Populate
 
 #Example
     SkPixmap pixmap;
@@ -1290,19 +1098,7 @@
 
 #In State_Stack
 #Line # saves Clip and Matrix on stack ##
-Saves Matrix and Clip.
-Calling restore() discards changes to Matrix and Clip,
-restoring the Matrix and Clip to their state when save() was called.
-
-Matrix may be changed by translate(), scale(), rotate(), skew(), concat(), setMatrix,
-and resetMatrix. Clip may be changed by clipRect, clipRRect, clipPath, clipRegion.
-
-Saved Canvas state is put on a stack; multiple calls to save() should be balance
-by an equal number of calls to restore().
-
-Call restoreToCount with result to restore this and subsequent saves.
-
-#Return depth of saved stack ##
+#Populate
 
 #Example
 #Description
@@ -1334,10 +1130,7 @@
 
 #In State_Stack
 #Line # restores changes to Clip and Matrix, pops save stack ##
-Removes changes to Matrix and Clip since Canvas state was
-last saved. The state is removed from the stack.
-
-Does nothing if the stack is empty.
+#Populate
 
 #Example
 void draw(SkCanvas* canvas) {
@@ -1358,11 +1151,7 @@
 
 #In State_Stack
 #Line # returns depth of stack containing Clip and Matrix ##
-Returns the number of saved states, each containing: Matrix and Clip.
-Equals the number of save() calls less the number of restore() calls plus one.
-The save count of a new canvas is one.
-
-#Return  depth of save state stack ##
+#Populate
 
 #Example
 void draw(SkCanvas* canvas) {
@@ -1390,13 +1179,7 @@
 
 #In State_Stack
 #Line # restores changes to Clip and Matrix to given depth ##
-Restores state to Matrix and Clip values when save(), saveLayer,
-saveLayerPreserveLCDTextRequests, or saveLayerAlpha returned saveCount.
-
-Does nothing if saveCount is greater than state stack count.
-Restores state to initial values if saveCount is less than or equal to one.
-
-#Param saveCount    depth of state stack to restore ##
+#Populate
 
 #Example
 void draw(SkCanvas* canvas) {
@@ -1443,25 +1226,7 @@
 
 #In Layer
 #Line # saves Clip and Matrix on stack; creates Layer ##
-Saves Matrix and Clip, and allocates a Bitmap for subsequent drawing.
-Calling restore() discards changes to Matrix and Clip, and draws the Bitmap.
-
-Matrix may be changed by translate(), scale(), rotate(), skew(), concat(),
-setMatrix, and resetMatrix. Clip may be changed by clipRect, clipRRect,
-clipPath, clipRegion.
-
-Rect bounds suggests but does not define the Bitmap size. To clip drawing to
-a specific rectangle, use clipRect.
-
-Optional Paint paint applies Color_Alpha, Color_Filter, Image_Filter, and
-Blend_Mode when restore() is called.
-
-Call restoreToCount with returned value to restore this and subsequent saves.
-
-#Param bounds  hint to limit the size of the Layer; may be nullptr ##
-#Param paint   graphics state for Layer; may be nullptr ##
-
-#Return        depth of saved stack ##
+#Populate
 
 #Example
 #Description
@@ -1495,25 +1260,7 @@
 #Method int saveLayer(const SkRect& bounds, const SkPaint* paint)
 
 #In Layer
-Saves Matrix and Clip, and allocates a Bitmap for subsequent drawing.
-Calling restore() discards changes to Matrix and Clip, and draws the Bitmap.
-
-Matrix may be changed by translate(), scale(), rotate(), skew(), concat(),
-setMatrix, and resetMatrix. Clip may be changed by clipRect, clipRRect,
-clipPath, clipRegion.
-
-Rect bounds suggests but does not define the Layer size. To clip drawing to
-a specific rectangle, use clipRect.
-
-Optional Paint paint applies Color_Alpha, Color_Filter, Image_Filter, and
-Blend_Mode when restore() is called.
-
-Call restoreToCount with returned value to restore this and subsequent saves.
-
-#Param bounds  hint to limit the size of Layer; may be nullptr ##
-#Param paint   graphics state for Layer; may be nullptr ##
-
-#Return        depth of saved stack ##
+#Populate
 
 #Example
 #Description
@@ -1549,31 +1296,7 @@
 
 #In Layer
 #Line # saves Clip and Matrix on stack; creates Layer for LCD text ##
-Saves Matrix and Clip, and allocates a Bitmap for subsequent drawing.
-LCD_Text is preserved when the Layer is drawn to the prior Layer.
-
-Calling restore() discards changes to Matrix and Clip, and draws Layer.
-
-Matrix may be changed by translate(), scale(), rotate(), skew(), concat(),
-setMatrix, and resetMatrix. Clip may be changed by clipRect, clipRRect,
-clipPath, clipRegion.
-
-Rect bounds suggests but does not define the Layer size. To clip drawing to
-a specific rectangle, use clipRect.
-
-Optional Paint paint applies Color_Alpha, Color_Filter, Image_Filter, and
-Blend_Mode when restore() is called.
-
-Call restoreToCount with returned value to restore this and subsequent saves.
-
-Draw text on an opaque background so that LCD_Text blends correctly with the
-prior Layer. LCD_Text drawn on a background with transparency may result in
-incorrect blending.
-
-#Param bounds  hint to limit the size of Layer; may be nullptr ##
-#Param paint   graphics state for Layer; may be nullptr ##
-
-#Return        depth of saved stack ##
+#Populate
 
 #Example
     SkPaint paint;
@@ -1606,26 +1329,7 @@
 
 #In Layer
 #Line # saves Clip and Matrix on stack; creates Layer; sets opacity ##
-Saves Matrix and Clip, and allocates Bitmap for subsequent drawing.
-
-Calling restore() discards changes to Matrix and Clip,
-and blends Layer with alpha opacity onto prior Layer.
-
-Matrix may be changed by translate(), scale(), rotate(), skew(), concat(),
-setMatrix, and resetMatrix. Clip may be changed by clipRect, clipRRect,
-clipPath, clipRegion.
-
-Rect bounds suggests but does not define Layer size. To clip drawing to
-a specific rectangle, use clipRect.
-
-alpha of zero is fully transparent, 255 is fully opaque.
-
-Call restoreToCount with returned value to restore this and subsequent saves.
-
-#Param bounds  hint to limit the size of Layer; may be nullptr ##
-#Param alpha   opacity of Layer ##
-
-#Return  depth of saved stack ##
+#Populate
 
 #Example
     SkPaint paint;
@@ -1788,9 +1492,7 @@
 
 #Method SaveLayerRec()
 #Line # constructs SaveLayerRec ##
-Sets fBounds, fPaint, and fBackdrop to nullptr. Clears fSaveLayerFlags.
-
-#Return  empty SaveLayerRec ##
+#Populate
 
 #Example
     SkCanvas::SaveLayerRec rec1;
@@ -1810,14 +1512,7 @@
 ##
 
 #Method SaveLayerRec(const SkRect* bounds, const SkPaint* paint, SaveLayerFlags saveLayerFlags = 0)
-
-Sets fBounds, fPaint, and fSaveLayerFlags; sets fBackdrop to nullptr.
-
-#Param bounds  Layer dimensions; may be nullptr ##
-#Param paint  applied to Layer when overlaying prior Layer; may be nullptr ##
-#Param saveLayerFlags  SaveLayerRec options to modify Layer ##
-
-#Return  SaveLayerRec with empty backdrop ##
+#Populate
 
 #Example
     SkCanvas::SaveLayerRec rec1;
@@ -1837,18 +1532,7 @@
 
 #Method SaveLayerRec(const SkRect* bounds, const SkPaint* paint, const SkImageFilter* backdrop,
                      SaveLayerFlags saveLayerFlags)
-
-Sets fBounds, fPaint, fBackdrop, and fSaveLayerFlags.
-
-#Param bounds          Layer dimensions; may be nullptr ##
-#Param paint           applied to Layer when overlaying prior Layer;
-                       may be nullptr
-##
-#Param backdrop        prior Layer copied with Image_Filter; may be nullptr
-##
-#Param saveLayerFlags  SaveLayerRec options to modify Layer ##
-
-#Return  SaveLayerRec fully specified ##
+#Populate
 
 #Example
     SkCanvas::SaveLayerRec rec1;
@@ -1904,22 +1588,7 @@
 #Method int saveLayer(const SaveLayerRec& layerRec)
 
 #In Layer
-Saves Matrix and Clip, and allocates Bitmap for subsequent drawing.
-
-Calling restore() discards changes to Matrix and Clip,
-and blends Bitmap with Color_Alpha opacity onto the prior Layer.
-
-Matrix may be changed by translate(), scale(), rotate(), skew(), concat(),
-setMatrix, and resetMatrix. Clip may be changed by clipRect, clipRRect,
-clipPath, clipRegion.
-
-SaveLayerRec contains the state used to create the Layer.
-
-Call restoreToCount with returned value to restore this and subsequent saves.
-
-#Param layerRec  Layer state ##
-
-#Return          depth of save state stack ##
+#Populate
 
 #Example
 #Description
@@ -1958,16 +1627,7 @@
 
 #In Matrix
 #Line # translates Matrix ##
-Translates Matrix by dx along the x-axis and dy along the y-axis.
-
-Mathematically, replaces Matrix with a translation matrix
-Premultiplied with Matrix.
-
-This has the effect of moving the drawing by (dx, dy) before transforming
-the result with Matrix.
-
-#Param  dx   distance to translate in x ##
-#Param  dy   distance to translate in y ##
+#Populate
 
 #Example
 #Height 128
@@ -2010,16 +1670,7 @@
 
 #In Matrix
 #Line # scales Matrix ##
-Scales Matrix by sx on the x-axis and sy on the y-axis.
-
-Mathematically, replaces Matrix with a scale matrix
-Premultiplied with Matrix.
-
-This has the effect of scaling the drawing by (sx, sy) before transforming
-the result with Matrix.
-
-#Param  sx   amount to scale in x ##
-#Param  sy   amount to scale in y ##
+#Populate
 
 #Example
 #Height 160
@@ -2044,15 +1695,7 @@
 
 #In Matrix
 #Line # rotates Matrix ##
-Rotates Matrix by degrees. Positive degrees rotates clockwise.
-
-Mathematically, replaces Matrix with a rotation matrix
-Premultiplied with Matrix.
-
-This has the effect of rotating the drawing by degrees before transforming
-the result with Matrix.
-
-#Param  degrees  amount to rotate, in degrees ##
+#Populate
 
 #Example
 #Description
@@ -2082,19 +1725,7 @@
 #Method void rotate(SkScalar degrees, SkScalar px, SkScalar py)
 
 #In Matrix
-Rotates Matrix by degrees about a point at (px, py). Positive degrees rotates
-clockwise.
-
-Mathematically, constructs a rotation matrix; Premultiplies the rotation matrix by
-a translation matrix; then replaces Matrix with the resulting matrix
-Premultiplied with Matrix.
-
-This has the effect of rotating the drawing about a given point before
-transforming the result with Matrix.
-
-#Param  degrees  amount to rotate, in degrees ##
-#Param  px  x-axis value of the point to rotate about ##
-#Param  py  y-axis value of the point to rotate about ##
+#Populate
 
 #Example
 #Height 192
@@ -2117,17 +1748,7 @@
 
 #In Matrix
 #Line # skews Matrix ##
-Skews Matrix by sx on the x-axis and sy on the y-axis. A positive value of sx
-skews the drawing right as y-axis values increase; a positive value of sy skews
-the drawing down as x-axis values increase.
-
-Mathematically, replaces Matrix with a skew matrix Premultiplied with Matrix.
-
-This has the effect of skewing the drawing by (sx, sy) before transforming
-the result with Matrix.
-
-#Param  sx   amount to skew on x-axis ##
-#Param  sy   amount to skew on y-axis ##
+#Populate
 
 #Example
     #Description
@@ -2164,12 +1785,7 @@
 
 #In Matrix
 #Line # multiplies Matrix by Matrix ##
-Replaces Matrix with matrix Premultiplied with existing Matrix.
-
-This has the effect of transforming the drawn geometry by matrix, before
-transforming the result with existing Matrix.
-
-#Param  matrix   matrix to Premultiply with existing Matrix ##
+#Populate
 
 #Example
 void draw(SkCanvas* canvas) {
@@ -2198,10 +1814,7 @@
 
 #In Matrix
 #Line # sets Matrix ##
-Replaces Matrix with matrix.
-Unlike concat(), any prior matrix state is overwritten.
-
-#Param  matrix  matrix to copy, replacing existing Matrix ##
+#Populate
 
 #Example
 #Height 128
@@ -2226,8 +1839,7 @@
 
 #In Matrix
 #Line # resets Matrix to identity ##
-Sets Matrix to the identity matrix.
-Any prior matrix state is overwritten.
+#Populate
 
 #Example
 #Height 128
@@ -2251,10 +1863,7 @@
 
 #In Matrix
 #Line # returns Matrix ##
-Returns Matrix.
-This does not account for translation by Device or Surface.
-
-#Return Matrix in Canvas ##
+#Populate
 
 #Example
     SkDebugf("isIdentity %s\n", canvas->getTotalMatrix().isIdentity() ? "true" : "false");
@@ -2334,13 +1943,7 @@
 
 #In Clip
 #Line # combines Clip with Rect ##
-Replaces Clip with the intersection or difference of Clip and rect,
-with an Aliased or Anti_Aliased clip edge. rect is transformed by Matrix
-before it is combined with Clip.
-
-#Param  rect  Rect to combine with Clip ##
-#Param  op    Clip_Op to apply to Clip ##
-#Param  doAntiAlias  true if Clip is to be Anti_Aliased ##
+#Populate
 
 #Example
 #Height 128
@@ -2365,12 +1968,7 @@
 #Method void clipRect(const SkRect& rect, SkClipOp op)
 
 #In Clip
-Replaces Clip with the intersection or difference of Clip and rect.
-Resulting Clip is Aliased; pixels are fully contained by the clip.
-rect is transformed by Matrix before it is combined with Clip.
-
-#Param  rect  Rect to combine with Clip ##
-#Param  op    Clip_Op to apply to Clip ##
+#Populate
 
 #Example
 #Height 192
@@ -2394,13 +1992,7 @@
 #Method void clipRect(const SkRect& rect, bool doAntiAlias = false)
 
 #In Clip
-Replaces Clip with the intersection of Clip and rect.
-Resulting Clip is Aliased; pixels are fully contained by the clip.
-rect is transformed by Matrix
-before it is combined with Clip.
-
-#Param  rect   Rect to combine with Clip ##
-#Param  doAntiAlias  true if Clip is to be Anti_Aliased ##
+#Populate
 
 #Example
 #Height 133
@@ -2457,14 +2049,7 @@
 
 #In Clip
 #Line # combines Clip with Round_Rect ##
-Replaces Clip with the intersection or difference of Clip and rrect,
-with an Aliased or Anti_Aliased clip edge.
-rrect is transformed by Matrix
-before it is combined with Clip.
-
-#Param  rrect  Round_Rect to combine with Clip ##
-#Param  op  Clip_Op to apply to Clip ##
-#Param  doAntiAlias  true if Clip is to be Anti_Aliased ##
+#Populate
 
 #Example
 #Height 128
@@ -2487,12 +2072,7 @@
 #Method void clipRRect(const SkRRect& rrect, SkClipOp op)
 
 #In Clip
-Replaces Clip with the intersection or difference of Clip and rrect.
-Resulting Clip is Aliased; pixels are fully contained by the clip.
-rrect is transformed by Matrix before it is combined with Clip.
-
-#Param  rrect  Round_Rect to combine with Clip ##
-#Param  op  Clip_Op to apply to Clip ##
+#Populate
 
 #Example
 #Height 128
@@ -2512,12 +2092,7 @@
 #Method void clipRRect(const SkRRect& rrect, bool doAntiAlias = false)
 
 #In Clip
-Replaces Clip with the intersection of Clip and rrect,
-with an Aliased or Anti_Aliased clip edge.
-rrect is transformed by Matrix before it is combined with Clip.
-
-#Param  rrect  Round_Rect to combine with Clip ##
-#Param  doAntiAlias  true if Clip is to be Anti_Aliased ##
+#Populate
 
 #Example
 #Height 128
@@ -2538,15 +2113,7 @@
 
 #In Clip
 #Line # combines Clip with Path ##
-Replaces Clip with the intersection or difference of Clip and path,
-with an Aliased or Anti_Aliased clip edge. Path_Fill_Type determines if path
-describes the area inside or outside its contours; and if Path_Contour overlaps
-itself or another Path_Contour, whether the overlaps form part of the area.
-path is transformed by Matrix before it is combined with Clip.
-
-#Param  path  Path to combine with Clip ##
-#Param  op  Clip_Op to apply to Clip ##
-#Param  doAntiAlias  true if Clip is to be Anti_Aliased ##
+#Populate
 
 #Example
 #Description
@@ -2580,16 +2147,7 @@
 #Method void clipPath(const SkPath& path, SkClipOp op)
 
 #In Clip
-Replaces Clip with the intersection or difference of Clip and path.
-Resulting Clip is Aliased; pixels are fully contained by the clip.
-Path_Fill_Type determines if path
-describes the area inside or outside its contours; and if Path_Contour overlaps
-itself or another Path_Contour, whether the overlaps form part of the area.
-path is transformed by Matrix
-before it is combined with Clip.
-
-#Param  path  Path to combine with Clip ##
-#Param  op  Clip_Op to apply to Clip ##
+#Populate
 
 #Example
 #Description
@@ -2622,15 +2180,7 @@
 #Method void clipPath(const SkPath& path, bool doAntiAlias = false)
 
 #In Clip
-Replaces Clip with the intersection of Clip and path.
-Resulting Clip is Aliased; pixels are fully contained by the clip.
-Path_Fill_Type determines if path
-describes the area inside or outside its contours; and if Path_Contour overlaps
-itself or another Path_Contour, whether the overlaps form part of the area.
-path is transformed by Matrix before it is combined with Clip.
-
-#Param  path  Path to combine with Clip ##
-#Param  doAntiAlias  true if Clip is to be Anti_Aliased ##
+#Populate
 
 #Example
 #Height 212
@@ -2679,12 +2229,7 @@
 
 #In Clip
 #Line # combines Clip with Region ##
-Replaces Clip with the intersection or difference of Clip and Region deviceRgn.
-Resulting Clip is Aliased; pixels are fully contained by the clip.
-deviceRgn is unaffected by Matrix.
-
-#Param  deviceRgn    Region to combine with Clip ##
-#Param  op  Clip_Op to apply to Clip ##
+#Populate
 
 #Example
 #Description
@@ -2716,14 +2261,7 @@
 
 #In Clip
 #Line # returns if Rect is outside Clip ##
-Returns true if Rect rect, transformed by Matrix, can be quickly determined to be
-outside of Clip. May return false even though rect is outside of Clip.
-
-Use to check if an area to be drawn is clipped out, to skip subsequent draw calls.
-
-#Param  rect  Rect to compare with Clip ##
-
-#Return  true if rect, transformed by Matrix, does not intersect Clip ##
+#Populate
 
 #Example
 void draw(SkCanvas* canvas) {
@@ -2750,14 +2288,7 @@
 #Method bool quickReject(const SkPath& path) const
 
 #In Clip
-Returns true if path, transformed by Matrix, can be quickly determined to be
-outside of Clip. May return false even though path is outside of Clip.
-
-Use to check if an area to be drawn is clipped out, to skip subsequent draw calls.
-
-#Param path  Path to compare with Clip ##
-
-#Return  true if path, transformed by Matrix, does not intersect Clip ##
+#Populate
 
 #Example
 void draw(SkCanvas* canvas) {
@@ -2788,13 +2319,7 @@
 
 #In Clip
 #Line # returns Clip bounds in source coordinates ##
-Returns bounds of Clip, transformed by inverse of Matrix. If Clip is empty,
-return SkRect::MakeEmpty, where all Rect sides equal zero.
-
-Rect returned is outset by one to account for partial pixel coverage if Clip
-is Anti_Aliased.
-
-#Return  bounds of Clip in local coordinates ##
+#Populate
 
 #Example
     #Description
@@ -2835,15 +2360,7 @@
 #Method bool getLocalClipBounds(SkRect* bounds) const
 
 #In Clip
-Returns bounds of Clip, transformed by inverse of Matrix. If Clip is empty,
-return false, and set bounds to SkRect::MakeEmpty, where all Rect sides equal zero.
-
-bounds is outset by one to account for partial pixel coverage if Clip
-is Anti_Aliased.
-
-#Param bounds  Rect of Clip in local coordinates ##
-
-#Return  true if Clip bounds is not empty ##
+#Populate
 
 #Example
     void draw(SkCanvas* canvas) {
@@ -2873,12 +2390,7 @@
 
 #In Clip
 #Line # returns IRect bounds of Clip ##
-Returns IRect bounds of Clip, unaffected by Matrix. If Clip is empty,
-return SkRect::MakeEmpty, where all Rect sides equal zero.
-
-Unlike getLocalClipBounds, returned IRect is not outset.
-
-#Return  bounds of Clip in Device coordinates ##
+#Populate
 
 #Example
 void draw(SkCanvas* canvas) {
@@ -2926,14 +2438,7 @@
 #Method bool getDeviceClipBounds(SkIRect* bounds) const
 
 #In Clip
-Returns IRect bounds of Clip, unaffected by Matrix. If Clip is empty,
-return false, and set bounds to SkRect::MakeEmpty, where all Rect sides equal zero.
-
-Unlike getLocalClipBounds, bounds is not outset.
-
-#Param bounds  Rect of Clip in device coordinates ##
-
-#Return  true if Clip bounds is not empty ##
+#Populate
 
 #Example
     void draw(SkCanvas* canvas) {
@@ -2965,11 +2470,7 @@
 #Method void drawColor(SkColor color, SkBlendMode mode = SkBlendMode::kSrcOver)
 #In Draw
 #Line # fills Clip with Color and Blend_Mode ##
-Fills Clip with Color color.
-mode determines how ARGB is combined with destination.
-
-#Param color    Unpremultiplied ARGB ##
-#Param mode  SkBlendMode used to combine source color and destination ##
+#Populate
 
 #Example
     canvas->drawColor(SK_ColorRED);
@@ -2988,10 +2489,7 @@
 #Method void clear(SkColor color)
 #In Draw
 #Line # fills Clip with Color ##
-Fills Clip with Color color using SkBlendMode::kSrc.
-This has the effect of replacing all pixels contained by Clip with color.
-
-#Param color    Unpremultiplied ARGB ##
+#Populate
 
 #Example
 void draw(SkCanvas* canvas) {
@@ -3017,24 +2515,13 @@
 #Method void discard()
 #In Utility
 #Line # makes Canvas contents undefined ##
-Makes Canvas contents undefined. Subsequent calls that read Canvas pixels,
-such as drawing with SkBlendMode, return undefined results. discard() does
-not change Clip or Matrix.
-
-discard() may do nothing, depending on the implementation of Surface or Device
-that created Canvas.
-
-discard() allows optimized performance on subsequent draws by removing
-cached data associated with Surface or Device.
-It is not necessary to call discard() once done with Canvas;
-any cached data is deleted when owning Surface or Device is deleted.
-
-#ToDo example? not sure how to make this meaningful w/o more implementation detail ##
-#SeeAlso flush() SkSurface::prepareForExternalIO GrContext::abandonContext
+#Populate
 
 #NoExample
 ##
 
+#SeeAlso flush() SkSurface::prepareForExternalIO GrContext::abandonContext
+
 ##
 
 # ------------------------------------------------------------------------------
@@ -3042,13 +2529,7 @@
 #Method void drawPaint(const SkPaint& paint)
 #In Draw
 #Line # fills Clip with Paint ##
-Fills Clip with Paint paint. Paint components Mask_Filter, Shader,
-Color_Filter, Image_Filter, and Blend_Mode affect drawing;
-Path_Effect in paint is ignored.
-
-# can Path_Effect in paint ever alter drawPaint?
-
-#Param  paint    graphics state used to fill Canvas ##
+#Populate
 
 #Example
 void draw(SkCanvas* canvas) {
@@ -3121,34 +2602,7 @@
 #Method void drawPoints(PointMode mode, size_t count, const SkPoint pts[], const SkPaint& paint)
 #In Draw
 #Line # draws array as points, lines, polygon ##
-Draws pts using Clip, Matrix and Paint paint.
-count is the number of points; if count is less than one, has no effect.
-mode may be one of: kPoints_PointMode, kLines_PointMode, or kPolygon_PointMode.
-
-If mode is kPoints_PointMode, the shape of point drawn depends on paint
-Paint_Stroke_Cap. If paint is set to SkPaint::kRound_Cap, each point draws a
-circle of diameter Paint_Stroke_Width. If paint is set to SkPaint::kSquare_Cap
-or SkPaint::kButt_Cap, each point draws a square of width and height
-Paint_Stroke_Width.
-
-If mode is kLines_PointMode, each pair of points draws a line segment.
-One line is drawn for every two points; each point is used once. If count is odd,
-the final point is ignored.
-
-If mode is kPolygon_PointMode, each adjacent pair of points draws a line segment.
-count minus one lines are drawn; the first and last point are used once.
-
-Each line segment respects paint Paint_Stroke_Cap and Paint_Stroke_Width.
-Paint_Style is ignored, as if were set to SkPaint::kStroke_Style.
-
-Always draws each element one at a time; is not affected by
-Paint_Stroke_Join, and unlike drawPath, does not create a mask from all points
-and lines before drawing.
-
-#Param  mode     whether pts draws points or lines ##
-#Param  count    number of points in the array ##
-#Param  pts      array of points to draw ##
-#Param  paint    stroke, blend, color, and so on, used to draw ##
+#Populate
 
 #Example
 #Height 200
@@ -3202,17 +2656,7 @@
 #Method void drawPoint(SkScalar x, SkScalar y, const SkPaint& paint)
 #In Draw
 #Line # draws point at (x, y) position ##
-Draws point at (x, y) using Clip, Matrix and Paint paint.
-
-The shape of point drawn depends on paint Paint_Stroke_Cap.
-If paint is set to SkPaint::kRound_Cap, draw a circle of diameter
-Paint_Stroke_Width. If paint is set to SkPaint::kSquare_Cap or SkPaint::kButt_Cap,
-draw a square of width and height Paint_Stroke_Width.
-Paint_Style is ignored, as if were set to SkPaint::kStroke_Style.
-
-#Param  x        left edge of circle or square ##
-#Param  y        top edge of circle or square ##
-#Param  paint    stroke, blend, color, and so on, used to draw ##
+#Populate
 
 #Example
 void draw(SkCanvas* canvas) {
@@ -3235,17 +2679,7 @@
 ##
 
 #Method void drawPoint(SkPoint p, const SkPaint& paint)
-
-Draws point p using Clip, Matrix and Paint paint.
-
-The shape of point drawn depends on paint Paint_Stroke_Cap.
-If paint is set to SkPaint::kRound_Cap, draw a circle of diameter
-Paint_Stroke_Width. If paint is set to SkPaint::kSquare_Cap or SkPaint::kButt_Cap,
-draw a square of width and height Paint_Stroke_Width.
-Paint_Style is ignored, as if were set to SkPaint::kStroke_Style.
-
-#Param  p        top-left edge of circle or square ##
-#Param  paint    stroke, blend, color, and so on, used to draw ##
+#Populate
 
 #Example
 void draw(SkCanvas* canvas) {
@@ -3272,16 +2706,7 @@
 #Method void drawLine(SkScalar x0, SkScalar y0, SkScalar x1, SkScalar y1, const SkPaint& paint)
 #In Draw
 #Line # draws line segment between two points ##
-Draws line segment from (x0, y0) to (x1, y1) using Clip, Matrix, and Paint paint.
-In paint: Paint_Stroke_Width describes the line thickness;
-Paint_Stroke_Cap draws the end rounded or square;
-Paint_Style is ignored, as if were set to SkPaint::kStroke_Style.
-
-#Param  x0    start of line segment on x-axis ##
-#Param  y0    start of line segment on y-axis ##
-#Param  x1    end of line segment on x-axis ##
-#Param  y1    end of line segment on y-axis ##
-#Param  paint stroke, blend, color, and so on, used to draw ##
+#Populate
 
 #Example
   SkPaint paint;
@@ -3299,15 +2724,7 @@
 ##
 
 #Method void drawLine(SkPoint p0, SkPoint p1, const SkPaint& paint)
-
-Draws line segment from p0 to p1 using Clip, Matrix, and Paint paint.
-In paint: Paint_Stroke_Width describes the line thickness;
-Paint_Stroke_Cap draws the end rounded or square;
-Paint_Style is ignored, as if were set to SkPaint::kStroke_Style.
-
-#Param  p0    start of line segment ##
-#Param  p1    end of line segment ##
-#Param  paint  stroke, blend, color, and so on, used to draw ##
+#Populate
 
 #Example
   SkPaint paint;
@@ -3329,13 +2746,7 @@
 #Method void drawRect(const SkRect& rect, const SkPaint& paint)
 #In Draw
 #Line # draws Rect using Clip, Matrix, and Paint ##
-Draws Rect rect using Clip, Matrix, and Paint paint.
-In paint: Paint_Style determines if rectangle is stroked or filled;
-if stroked, Paint_Stroke_Width describes the line thickness, and
-Paint_Stroke_Join draws the corners rounded or square.
-
-#Param  rect     rectangle to draw ##
-#Param  paint    stroke or fill, blend, color, and so on, used to draw ##
+#Populate
 
 #Example
 void draw(SkCanvas* canvas) {
@@ -3366,13 +2777,7 @@
 #Method void drawIRect(const SkIRect& rect, const SkPaint& paint)
 #In Draw
 #Line # draws IRect using Clip, Matrix, and Paint ##
-Draws IRect rect using Clip, Matrix, and Paint paint.
-In paint: Paint_Style determines if rectangle is stroked or filled;
-if stroked, Paint_Stroke_Width describes the line thickness, and
-Paint_Stroke_Join draws the corners rounded or square.
-
-#Param  rect     rectangle to draw ##
-#Param  paint    stroke or fill, blend, color, and so on, used to draw ##
+#Populate
 
 #Example
     SkIRect rect = { 64, 48, 192, 160 };
@@ -3397,13 +2802,7 @@
 #Method void drawRegion(const SkRegion& region, const SkPaint& paint)
 #In Draw
 #Line # draws Region using Clip, Matrix, and Paint ##
-Draws Region region using Clip, Matrix, and Paint paint.
-In paint: Paint_Style determines if rectangle is stroked or filled;
-if stroked, Paint_Stroke_Width describes the line thickness, and
-Paint_Stroke_Join draws the corners rounded or square.
-
-#Param  region   region to draw ##
-#Param  paint    Paint stroke or fill, blend, color, and so on, used to draw ##
+#Populate
 
 #Example
 void draw(SkCanvas* canvas) {
@@ -3428,12 +2827,7 @@
 #Method void drawOval(const SkRect& oval, const SkPaint& paint)
 #In Draw
 #Line # draws Oval using Clip, Matrix, and Paint ##
-Draws Oval oval using Clip, Matrix, and Paint.
-In paint: Paint_Style determines if Oval is stroked or filled;
-if stroked, Paint_Stroke_Width describes the line thickness.
-
-#Param  oval     Rect bounds of Oval ##
-#Param  paint    Paint stroke or fill, blend, color, and so on, used to draw ##
+#Populate
 
 #Example
 void draw(SkCanvas* canvas) {
@@ -3460,15 +2854,7 @@
 #Method void drawRRect(const SkRRect& rrect, const SkPaint& paint)
 #In Draw
 #Line # draws Round_Rect using Clip, Matrix, and Paint ##
-Draws Round_Rect rrect using Clip, Matrix, and Paint paint.
-In paint: Paint_Style determines if rrect is stroked or filled;
-if stroked, Paint_Stroke_Width describes the line thickness.
-
-rrect may represent a rectangle, circle, oval, uniformly rounded rectangle, or
-may have any combination of positive non-square radii for the four corners.
-
-#Param  rrect    Round_Rect with up to eight corner radii to draw ##
-#Param  paint    Paint stroke or fill, blend, color, and so on, used to draw ##
+#Populate
 
 #Example
 void draw(SkCanvas* canvas) {
@@ -3500,21 +2886,7 @@
 #Method void drawDRRect(const SkRRect& outer, const SkRRect& inner, const SkPaint& paint)
 #In Draw
 #Line # draws double Round_Rect stroked or filled ##
-Draws Round_Rect outer and inner
-using Clip, Matrix, and Paint paint.
-outer must contain inner or the drawing is undefined.
-In paint: Paint_Style determines if Round_Rect is stroked or filled;
-if stroked, Paint_Stroke_Width describes the line thickness.
-If stroked and Round_Rect corner has zero length radii, Paint_Stroke_Join can
-draw corners rounded or square.
-
-GPU-backed platforms optimize drawing when both outer and inner are
-concave and outer contains inner. These platforms may not be able to draw
-Path built with identical data as fast.
-
-#Param  outer    Round_Rect outer bounds to draw ##
-#Param  inner    Round_Rect inner bounds to draw ##
-#Param  paint    Paint stroke or fill, blend, color, and so on, used to draw ##
+#Populate
 
 #Example
 void draw(SkCanvas* canvas) {
@@ -3555,15 +2927,7 @@
 #Method void drawCircle(SkScalar cx, SkScalar cy, SkScalar radius, const SkPaint& paint)
 #In Draw
 #Line # draws Circle using Clip, Matrix, and Paint ##
-Draws Circle at (cx, cy) with radius using Clip, Matrix, and Paint paint.
-If radius is zero or less, nothing is drawn.
-In paint: Paint_Style determines if Circle is stroked or filled;
-if stroked, Paint_Stroke_Width describes the line thickness.
-
-#Param  cx       Circle center on the x-axis ##
-#Param  cy       Circle center on the y-axis ##
-#Param  radius   half the diameter of Circle ##
-#Param  paint    Paint stroke or fill, blend, color, and so on, used to draw ##
+#Populate
 
 #Example
     void draw(SkCanvas* canvas) {
@@ -3582,15 +2946,7 @@
 ##
 
 #Method void drawCircle(SkPoint center, SkScalar radius, const SkPaint& paint)
-
-Draws Circle at center with radius using Clip, Matrix, and Paint paint.
-If radius is zero or less, nothing is drawn.
-In paint: Paint_Style determines if Circle is stroked or filled;
-if stroked, Paint_Stroke_Width describes the line thickness.
-
-#Param  center   Circle center ##
-#Param  radius   half the diameter of Circle ##
-#Param  paint    Paint stroke or fill, blend, color, and so on, used to draw ##
+#Populate
 
 #Example
     void draw(SkCanvas* canvas) {
@@ -3614,26 +2970,7 @@
                  bool useCenter, const SkPaint& paint)
 #In Draw
 #Line # draws Arc using Clip, Matrix, and Paint ##
-
-Draws Arc using Clip, Matrix, and Paint paint.
-
-Arc is part of Oval bounded by oval, sweeping from startAngle to startAngle plus
-sweepAngle. startAngle and sweepAngle are in degrees.
-
-startAngle of zero places start point at the right middle edge of oval.
-A positive sweepAngle places Arc end point clockwise from start point;
-a negative sweepAngle places Arc end point counterclockwise from start point.
-sweepAngle may exceed 360 degrees, a full circle.
-If useCenter is true, draw a wedge that includes lines from oval
-center to Arc end points. If useCenter is false, draw Arc between end points.
-
-If Rect oval is empty or sweepAngle is zero, nothing is drawn.
-
-#Param  oval     Rect bounds of Oval containing Arc to draw ##
-#Param  startAngle angle in degrees where Arc begins ##
-#Param  sweepAngle sweep angle in degrees; positive is clockwise ##
-#Param  useCenter if true, include the center of the oval ##
-#Param  paint    Paint stroke or fill, blend, color, and so on, used to draw ##
+#Populate
 
 #Example
     void draw(SkCanvas* canvas) {
@@ -3679,20 +3016,7 @@
 #Method void drawRoundRect(const SkRect& rect, SkScalar rx, SkScalar ry, const SkPaint& paint)
 #In Draw
 #Line # draws Round_Rect using Clip, Matrix, and Paint ##
-Draws Round_Rect bounded by Rect rect, with corner radii (rx, ry) using Clip,
-Matrix, and Paint paint.
-
-In paint: Paint_Style determines if Round_Rect is stroked or filled;
-if stroked, Paint_Stroke_Width describes the line thickness.
-If rx or ry are less than zero, they are treated as if they are zero.
-If rx plus ry exceeds rect width or rect height, radii are scaled down to fit.
-If rx and ry are zero, Round_Rect is drawn as Rect and if stroked is affected by
-Paint_Stroke_Join.
-
-#Param  rect     Rect bounds of Round_Rect to draw ##
-#Param  rx       axis length on x-axis of oval describing rounded corners ##
-#Param  ry       axis length on y-axis of oval describing rounded corners ##
-#Param  paint    stroke, blend, color, and so on, used to draw ##
+#Populate
 
 #Example
 #Description
@@ -3727,17 +3051,7 @@
 #Method void drawPath(const SkPath& path, const SkPaint& paint)
 #In Draw
 #Line # draws Path using Clip, Matrix, and Paint ##
-Draws Path path using Clip, Matrix, and Paint paint.
-Path contains an array of Path_Contour, each of which may be open or closed.
-
-In paint: Paint_Style determines if Round_Rect is stroked or filled:
-if filled, Path_Fill_Type determines whether Path_Contour describes inside or
-outside of fill; if stroked, Paint_Stroke_Width describes the line thickness,
-Paint_Stroke_Cap describes line ends, and Paint_Stroke_Join describes how
-corners are drawn.
-
-#Param  path     Path to draw ##
-#Param  paint    stroke, blend, color, and so on, used to draw ##
+#Populate
 
 #Example
 #Description
@@ -3797,22 +3111,7 @@
 #In Draw_Image
 #In Draw
 #Line # draws Image at (x, y) position ##
-Draws Image image, with its top-left corner at (left, top),
-using Clip, Matrix, and optional Paint paint.
-
-If paint is supplied, apply Color_Filter, Color_Alpha, Image_Filter, Blend_Mode,
-and Draw_Looper. If image is kAlpha_8_SkColorType, apply Shader.
-If paint contains Mask_Filter, generate mask from image bounds. If generated
-mask extends beyond image bounds, replicate image edge colors, just as Shader
-made from SkImage::makeShader with SkShader::kClamp_TileMode set replicates the
-image edge color when it samples outside of its bounds.
-
-#Param  image    uncompressed rectangular map of pixels ##
-#Param  left     left side of image ##
-#Param  top      top side of image ##
-#Param  paint    Paint containing Blend_Mode, Color_Filter, Image_Filter,
-                 and so on; or nullptr
-##
+#Populate
 
 #Example
 #Height 64
@@ -3836,23 +3135,7 @@
 
 #Method void drawImage(const sk_sp<SkImage>& image, SkScalar left, SkScalar top,
                    const SkPaint* paint = nullptr)
-
-Draws Image image, with its top-left corner at (left, top),
-using Clip, Matrix, and optional Paint paint.
-
-If Paint paint is supplied, apply Color_Filter, Color_Alpha, Image_Filter,
-Blend_Mode, and Draw_Looper. If image is kAlpha_8_SkColorType, apply Shader.
-If paint contains Mask_Filter, generate mask from image bounds. If generated
-mask extends beyond image bounds, replicate image edge colors, just as Shader
-made from SkImage::makeShader with SkShader::kClamp_TileMode set replicates the
-image edge color when it samples outside of its bounds.
-
-#Param  image    uncompressed rectangular map of pixels ##
-#Param  left     left side of image ##
-#Param  top      pop side of image ##
-#Param  paint    Paint containing Blend_Mode, Color_Filter, Image_Filter,
-                 and so on; or nullptr
-##
+#Populate
 
 #Example
 #Height 64
@@ -3947,29 +3230,7 @@
 #In Draw_Image
 #In Draw
 #Line # draws Image, source Rect to destination Rect ##
-
-Draws Rect src of Image image, scaled and translated to fill Rect dst.
-Additionally transform draw using Clip, Matrix, and optional Paint paint.
-
-If Paint paint is supplied, apply Color_Filter, Color_Alpha, Image_Filter,
-Blend_Mode, and Draw_Looper. If image is kAlpha_8_SkColorType, apply Shader.
-If paint contains Mask_Filter, generate mask from image bounds.
-
-If generated mask extends beyond image bounds, replicate image edge colors, just
-as Shader made from SkImage::makeShader with SkShader::kClamp_TileMode set
-replicates the image edge color when it samples outside of its bounds.
-
-constraint set to kStrict_SrcRectConstraint limits Paint Filter_Quality to
-sample within src; set to kFast_SrcRectConstraint allows sampling outside to
-improve performance.
-
-#Param  image      Image containing pixels, dimensions, and format ##
-#Param  src        source Rect of image to draw from ##
-#Param  dst        destination Rect of image to draw to ##
-#Param  paint      Paint containing Blend_Mode, Color_Filter, Image_Filter,
-                   and so on; or nullptr
-##
-#Param  constraint filter strictly within src or draw faster ##
+#Populate
 
 #Example
 #Height 64
@@ -4013,31 +3274,7 @@
                        const SkPaint* paint, SrcRectConstraint constraint = kStrict_SrcRectConstraint)
 #In Draw_Image
 #In Draw
-
-Draws IRect isrc of Image image, scaled and translated to fill Rect dst.
-Note that isrc is on integer pixel boundaries; dst may include fractional
-boundaries. Additionally transform draw using Clip, Matrix, and optional Paint
-paint.
-
-If Paint paint is supplied, apply Color_Filter, Color_Alpha, Image_Filter,
-Blend_Mode, and Draw_Looper. If image is kAlpha_8_SkColorType, apply Shader.
-If paint contains Mask_Filter, generate mask from image bounds.
-
-If generated mask extends beyond image bounds, replicate image edge colors, just
-as Shader made from SkImage::makeShader with SkShader::kClamp_TileMode set
-replicates the image edge color when it samples outside of its bounds.
-
-constraint set to kStrict_SrcRectConstraint limits Paint Filter_Quality to
-sample within isrc; set to kFast_SrcRectConstraint allows sampling outside to
-improve performance.
-
-#Param  image      Image containing pixels, dimensions, and format ##
-#Param  isrc       source IRect of image to draw from ##
-#Param  dst        destination Rect of image to draw to ##
-#Param  paint      Paint containing Blend_Mode, Color_Filter, Image_Filter,
-                   and so on; or nullptr
-##
-#Param  constraint filter strictly within isrc or draw faster ##
+#Populate
 
 #Example
 #Image 4
@@ -4059,23 +3296,7 @@
 #Method void drawImageRect(const SkImage* image, const SkRect& dst, const SkPaint* paint)
 #In Draw_Image
 #In Draw
-
-Draws Image image, scaled and translated to fill Rect dst, using Clip, Matrix,
-and optional Paint paint.
-
-If Paint paint is supplied, apply Color_Filter, Color_Alpha, Image_Filter,
-Blend_Mode, and Draw_Looper. If image is kAlpha_8_SkColorType, apply Shader.
-If paint contains Mask_Filter, generate mask from image bounds.
-
-If generated mask extends beyond image bounds, replicate image edge colors, just
-as Shader made from SkImage::makeShader with SkShader::kClamp_TileMode set
-replicates the image edge color when it samples outside of its bounds.
-
-#Param  image      Image containing pixels, dimensions, and format ##
-#Param  dst        destination Rect of image to draw to ##
-#Param  paint      Paint containing Blend_Mode, Color_Filter, Image_Filter,
-                   and so on; or nullptr
-##
+#Populate
 
 #Example
 #Image 4
@@ -4098,28 +3319,7 @@
                        SrcRectConstraint constraint = kStrict_SrcRectConstraint)
 #In Draw_Image
 #In Draw
-Draws Rect src of Image image, scaled and translated to fill Rect dst.
-Additionally transform draw using Clip, Matrix, and optional Paint paint.
-
-If Paint paint is supplied, apply Color_Filter, Color_Alpha, Image_Filter,
-Blend_Mode, and Draw_Looper. If image is kAlpha_8_SkColorType, apply Shader.
-If paint contains Mask_Filter, generate mask from image bounds.
-
-If generated mask extends beyond image bounds, replicate image edge colors, just
-as Shader made from SkImage::makeShader with SkShader::kClamp_TileMode set
-replicates the image edge color when it samples outside of its bounds.
-
-constraint set to kStrict_SrcRectConstraint limits Paint Filter_Quality to
-sample within src; set to kFast_SrcRectConstraint allows sampling outside to
-improve performance.
-
-#Param  image      Image containing pixels, dimensions, and format ##
-#Param  src        source Rect of image to draw from ##
-#Param  dst        destination Rect of image to draw to ##
-#Param  paint      Paint containing Blend_Mode, Color_Filter, Image_Filter,
-                   and so on; or nullptr
-##
-#Param  constraint filter strictly within src or draw faster ##
+#Populate
 
 #Example
 #Height 64
@@ -4154,29 +3354,7 @@
                        const SkPaint* paint, SrcRectConstraint constraint = kStrict_SrcRectConstraint)
 #In Draw_Image
 #In Draw
-Draws IRect isrc of Image image, scaled and translated to fill Rect dst.
-isrc is on integer pixel boundaries; dst may include fractional boundaries.
-Additionally transform draw using Clip, Matrix, and optional Paint paint.
-
-If Paint paint is supplied, apply Color_Filter, Color_Alpha, Image_Filter,
-Blend_Mode, and Draw_Looper. If image is kAlpha_8_SkColorType, apply Shader.
-If paint contains Mask_Filter, generate mask from image bounds.
-
-If generated mask extends beyond image bounds, replicate image edge colors, just
-as Shader made from SkImage::makeShader with SkShader::kClamp_TileMode set
-replicates the image edge color when it samples outside of its bounds.
-
-constraint set to kStrict_SrcRectConstraint limits Paint Filter_Quality to
-sample within image; set to kFast_SrcRectConstraint allows sampling outside to
-improve performance.
-
-#Param  image      Image containing pixels, dimensions, and format ##
-#Param  isrc       source IRect of image to draw from ##
-#Param  dst        destination Rect of image to draw to ##
-#Param  paint      Paint containing Blend_Mode, Color_Filter, Image_Filter,
-                   and so on; or nullptr
-##
-#Param  constraint filter strictly within image or draw faster ##
+#Populate
 
 #Example
 #Height 64
@@ -4206,22 +3384,7 @@
 #Method void drawImageRect(const sk_sp<SkImage>& image, const SkRect& dst, const SkPaint* paint)
 #In Draw_Image
 #In Draw
-Draws Image image, scaled and translated to fill Rect dst,
-using Clip, Matrix, and optional Paint paint.
-
-If Paint paint is supplied, apply Color_Filter, Color_Alpha, Image_Filter,
-Blend_Mode, and Draw_Looper. If image is kAlpha_8_SkColorType, apply Shader.
-If paint contains Mask_Filter, generate mask from image bounds.
-
-If generated mask extends beyond image bounds, replicate image edge colors, just
-as Shader made from SkImage::makeShader with SkShader::kClamp_TileMode set
-replicates the image edge color when it samples outside of its bounds.
-
-#Param  image      Image containing pixels, dimensions, and format ##
-#Param  dst        destination Rect of image to draw to ##
-#Param  paint      Paint containing Blend_Mode, Color_Filter, Image_Filter,
-                   and so on; or nullptr
-##
+#Populate
 
 #Example
 #Height 64
@@ -4386,25 +3549,7 @@
 #In Draw_Image
 #In Draw
 #Line # draws Bitmap at (x, y) position ##
-
-Draws Bitmap bitmap, with its top-left corner at (left, top),
-using Clip, Matrix, and optional Paint paint.
-
-If Paint paint is not nullptr, apply Color_Filter, Color_Alpha, Image_Filter,
-Blend_Mode, and Draw_Looper. If bitmap is kAlpha_8_SkColorType, apply Shader.
-If paint contains Mask_Filter, generate mask from bitmap bounds.
-
-If generated mask extends beyond bitmap bounds, replicate bitmap edge colors,
-just as Shader made from SkShader::MakeBitmapShader with
-SkShader::kClamp_TileMode set replicates the bitmap edge color when it samples
-outside of its bounds.
-
-#Param  bitmap   Bitmap containing pixels, dimensions, and format ##
-#Param  left     left side of bitmap ##
-#Param  top      top side of bitmap ##
-#Param  paint    Paint containing Blend_Mode, Color_Filter, Image_Filter,
-                 and so on; or nullptr
-##
+#Populate
 
 #Example
 #Height 64
@@ -4441,30 +3586,7 @@
 #In Draw_Image
 #In Draw
 #Line # draws Bitmap, source Rect to destination Rect ##
-
-Draws Rect src of Bitmap bitmap, scaled and translated to fill Rect dst.
-Additionally transform draw using Clip, Matrix, and optional Paint paint.
-
-If Paint paint is supplied, apply Color_Filter, Color_Alpha, Image_Filter,
-Blend_Mode, and Draw_Looper. If bitmap is kAlpha_8_SkColorType, apply Shader.
-If paint contains Mask_Filter, generate mask from bitmap bounds.
-
-If generated mask extends beyond bitmap bounds, replicate bitmap edge colors,
-just as Shader made from SkShader::MakeBitmapShader with
-SkShader::kClamp_TileMode set replicates the bitmap edge color when it samples
-outside of its bounds.
-
-constraint set to kStrict_SrcRectConstraint limits Paint Filter_Quality to
-sample within src; set to kFast_SrcRectConstraint allows sampling outside to
-improve performance.
-
-#Param  bitmap   Bitmap containing pixels, dimensions, and format ##
-#Param  src      source Rect of image to draw from ##
-#Param  dst      destination Rect of image to draw to ##
-#Param  paint    Paint containing Blend_Mode, Color_Filter, Image_Filter,
-                 and so on; or nullptr
-##
-#Param  constraint filter strictly within src or draw faster ##
+#Populate
 
 #Example
 #Height 64
@@ -4500,30 +3622,7 @@
                         const SkPaint* paint, SrcRectConstraint constraint = kStrict_SrcRectConstraint)
 #In Draw_Image
 #In Draw
-Draws IRect isrc of Bitmap bitmap, scaled and translated to fill Rect dst.
-isrc is on integer pixel boundaries; dst may include fractional boundaries.
-Additionally transform draw using Clip, Matrix, and optional Paint paint.
-
-If Paint paint is supplied, apply Color_Filter, Color_Alpha, Image_Filter,
-Blend_Mode, and Draw_Looper. If bitmap is kAlpha_8_SkColorType, apply Shader.
-If paint contains Mask_Filter, generate mask from bitmap bounds.
-
-If generated mask extends beyond bitmap bounds, replicate bitmap edge colors,
-just as Shader made from SkShader::MakeBitmapShader with
-SkShader::kClamp_TileMode set replicates the bitmap edge color when it samples
-outside of its bounds.
-
-constraint set to kStrict_SrcRectConstraint limits Paint Filter_Quality to
-sample within isrc; set to kFast_SrcRectConstraint allows sampling outside to
-improve performance.
-
-#Param  bitmap   Bitmap containing pixels, dimensions, and format ##
-#Param  isrc     source IRect of image to draw from ##
-#Param  dst      destination Rect of image to draw to ##
-#Param  paint    Paint containing Blend_Mode, Color_Filter, Image_Filter,
-                 and so on; or nullptr
-##
-#Param  constraint sample strictly within isrc, or draw faster ##
+#Populate
 
 #Example
 #Height 64
@@ -4559,29 +3658,7 @@
                         SrcRectConstraint constraint = kStrict_SrcRectConstraint)
 #In Draw_Image
 #In Draw
-Draws Bitmap bitmap, scaled and translated to fill Rect dst.
-bitmap bounds is on integer pixel boundaries; dst may include fractional boundaries.
-Additionally transform draw using Clip, Matrix, and optional Paint paint.
-
-If Paint paint is supplied, apply Color_Filter, Color_Alpha, Image_Filter,
-Blend_Mode, and Draw_Looper. If bitmap is kAlpha_8_SkColorType, apply Shader.
-If paint contains Mask_Filter, generate mask from bitmap bounds.
-
-If generated mask extends beyond bitmap bounds, replicate bitmap edge colors,
-just as Shader made from SkShader::MakeBitmapShader with
-SkShader::kClamp_TileMode set replicates the bitmap edge color when it samples
-outside of its bounds.
-
-constraint set to kStrict_SrcRectConstraint limits Paint Filter_Quality to
-sample within bitmap; set to kFast_SrcRectConstraint allows sampling outside to
-improve performance.
-
-#Param  bitmap   Bitmap containing pixels, dimensions, and format ##
-#Param  dst      destination Rect of image to draw to ##
-#Param  paint    Paint containing Blend_Mode, Color_Filter, Image_Filter,
-                 and so on; or nullptr
-##
-#Param  constraint filter strictly within bitmap or draw faster ##
+#Populate
 
 #Example
 #Height 64
@@ -5045,25 +4122,7 @@
 #In Draw_Text
 #In Draw
 #Line # draws text at (x, y), using font advance ##
-
-Draws text, with origin at (x, y), using Clip, Matrix, and Paint paint.
-
-text meaning depends on Paint_Text_Encoding; by default, text is encoded as
-UTF-8.
-
-x and y meaning depends on Paint_Text_Align; by default
-text draws left to right, positioning the first glyph left side bearing at x
-and its baseline at y. Text size is affected by Matrix and Paint_Text_Size.
-
-All elements of paint: Path_Effect, Mask_Filter, Shader,
-Color_Filter, Image_Filter, and Draw_Looper; apply to text. By default, draws
-filled 12 point black Glyphs.
-
-#Param  text     character code points or Glyphs drawn ##
-#Param  byteLength   byte length of text array ##
-#Param  x        start of text on x-axis ##
-#Param  y        start of text on y-axis ##
-#Param  paint    text size, blend, color, and so on, used to draw ##
+#Populate
 
 #Example
 #Height 200
@@ -5102,26 +4161,7 @@
 #In Draw_Text
 #In Draw
 #Line # draws null terminated string at (x, y) using font advance ##
-Draws null terminated string, with origin at (x, y), using Clip, Matrix, and
-Paint paint.
-
-string meaning depends on Paint_Text_Encoding; by default, strings are encoded
-as UTF-8. Other values of Paint_Text_Encoding are unlikely to produce the desired
-results, since zero bytes may be embedded in the string.
-
-The string draws left to right, positioning the first glyph left side bearing at x
-and its baseline at y. Text size is affected by Matrix and Paint_Text_Size.
-
-All elements of paint: Path_Effect, Mask_Filter, Shader,
-Color_Filter, Image_Filter, and Draw_Looper; apply to text. By default, draws
-filled 12 point black Glyphs.
-
-#Param  string   character code points or Glyphs drawn,
-                 ending with a char value of zero
-##
-#Param  x        start of string on x-axis ##
-#Param  y        start of string on y-axis ##
-#Param  paint    text size, blend, color, and so on, used to draw ##
+#Populate
 
 #Example
 #Height 48
@@ -5134,27 +4174,7 @@
 ##
 
 #Method void drawString(const SkString& string, SkScalar x, SkScalar y, const SkPaint& paint)
-
-Draws null terminated string, with origin at (x, y), using Clip, Matrix, and
-Paint paint.
-
-string meaning depends on Paint_Text_Encoding; by default, strings are encoded
-as UTF-8. Other values of Paint_Text_Encoding are unlikely to produce the desired
-results, since zero bytes may be embedded in the string.
-
-The string draws left to right, positioning the first glyph left side bearing at x
-and its baseline at y. Text size is affected by Matrix and Paint_Text_Size.
-
-All elements of paint: Path_Effect, Mask_Filter, Shader,
-Color_Filter, Image_Filter, and Draw_Looper; apply to text. By default, draws
-filled 12 point black Glyphs.
-
-#Param  string   character code points or Glyphs drawn,
-                 ending with a char value of zero
-##
-#Param  x        start of string on x-axis ##
-#Param  y        start of string on y-axis ##
-#Param  paint    text size, blend, color, and so on, used to draw ##
+#Populate
 
 #Example
    SkPaint paint;
@@ -5173,26 +4193,7 @@
 #In Draw_Text
 #In Draw
 #Line # draws text at array of (x, y) positions ##
-
-Draws each glyph in text with the origin in pos array, using Clip, Matrix, and
-Paint paint. The number of entries in pos array must match the number of Glyphs
-described by byteLength of text.
-
-text meaning depends on Paint_Text_Encoding; by default, text is encoded as
-UTF-8. glyph left side bearing and baseline are relative to Point in pos array.
-Text size is affected by Matrix and Paint_Text_Size.
-
-All elements of paint: Path_Effect, Mask_Filter, Shader,
-Color_Filter, Image_Filter, and Draw_Looper; apply to text. By default, draws
-filled 12 point black Glyphs.
-
-Layout engines such as Harfbuzz typically position each glyph
-rather than using the font advance widths.
-
-#Param  text     character code points or Glyphs drawn ##
-#Param  byteLength   byte length of text array ##
-#Param  pos      array of glyph origins ##
-#Param  paint    text size, blend, color, and so on, used to draw ##
+#Populate
 
 #Example
 #Height 120
@@ -5217,29 +4218,7 @@
 #In Draw_Text
 #In Draw
 #Line # draws text at x positions with common baseline ##
-
-Draws each glyph in text with its (x, y) origin composed from xpos array and
-constY, using Clip, Matrix, and Paint paint. The number of entries in xpos array
-must match the number of Glyphs described by byteLength of text.
-
-text meaning depends on Paint_Text_Encoding; by default, text is encoded as
-UTF-8. Each glyph left side bearing is positioned at an xpos element and
-its baseline is positioned at constY. Text size is affected by Matrix and
-Paint_Text_Size.
-
-All elements of paint: Path_Effect, Mask_Filter, Shader,
-Color_Filter, Image_Filter, and Draw_Looper; apply to text. By default, draws
-filled 12 point black Glyphs.
-
-Layout engines such as Harfbuzz typically position each glyph
-rather than using the font advance widths if all Glyphs share the same
-baseline.
-
-#Param  text     character code points or Glyphs drawn ##
-#Param  byteLength   byte length of text array ##
-#Param  xpos     array of x-axis positions, used to position each glyph ##
-#Param  constY   shared y-axis value for all of x-axis positions ##
-#Param  paint    text size, blend, color, and so on, used to draw ##
+#Populate
 
 #Example
 #Height 40
@@ -5261,25 +4240,7 @@
 #In Draw_Text
 #In Draw
 #Line # draws text with array of RSXform ##
-
-Draws text, transforming each glyph by the corresponding SkRSXform,
-using Clip, Matrix, and Paint paint.
-
-RSXform xform array specifies a separate square scale, rotation, and translation
-for each glyph. xform does not affect paint Shader.
-
-Optional Rect cullRect is a conservative bounds of text, taking into account
-RSXform and paint. If cullRect is outside of Clip, canvas can skip drawing.
-
-All elements of paint: Path_Effect, Mask_Filter, Shader,
-Color_Filter, Image_Filter, and Draw_Looper; apply to text. By default, draws
-filled 12 point black Glyphs.
-
-#Param  text         character code points or Glyphs drawn ##
-#Param  byteLength   byte length of text array ##
-#Param  xform        RSXform rotates, scales, and translates each glyph individually ##
-#Param  cullRect     Rect bounds of text for efficient clipping; or nullptr ##
-#Param  paint        text size, blend, color, and so on, used to draw ##
+#Populate
 
 #Example
 void draw(SkCanvas* canvas) {
@@ -5411,13 +4372,7 @@
 #Method void drawPicture(const SkPicture* picture)
 #In Draw
 #Line # draws Picture using Clip and Matrix ##
-Draws Picture picture, using Clip and Matrix.
-Clip and Matrix are unchanged by picture contents, as if
-save() was called before and restore() was called after drawPicture.
-
-Picture records a series of draw commands for later playback.
-
-#Param  picture  recorded drawing commands to play ##
+#Populate
 
 #Example
 void draw(SkCanvas* canvas) {
@@ -5445,14 +4400,7 @@
 # ------------------------------------------------------------------------------
 
 #Method void drawPicture(const sk_sp<SkPicture>& picture)
-
-Draws Picture picture, using Clip and Matrix.
-Clip and Matrix are unchanged by picture contents, as if
-save() was called before and restore() was called after drawPicture.
-
-Picture records a series of draw commands for later playback.
-
-#Param  picture  recorded drawing commands to play ##
+#Populate
 
 #Example
 void draw(SkCanvas* canvas) {
@@ -5480,17 +4428,7 @@
 # ------------------------------------------------------------------------------
 
 #Method void drawPicture(const SkPicture* picture, const SkMatrix* matrix, const SkPaint* paint)
-
-Draws Picture picture, using Clip and Matrix; transforming picture with
-Matrix matrix, if provided; and use Paint paint Color_Alpha, Color_Filter,
-Image_Filter, and Blend_Mode, if provided.
-
-matrix transformation is equivalent to: save(), concat(), drawPicture, restore().
-paint use is equivalent to: saveLayer, drawPicture, restore().
-
-#Param  picture  recorded drawing commands to play ##
-#Param  matrix   Matrix to rotate, scale, translate, and so on; may be nullptr ##
-#Param  paint    Paint to apply transparency, filtering, and so on; may be nullptr ##
+#Populate
 
 #Example
 void draw(SkCanvas* canvas) {
@@ -5522,17 +4460,7 @@
 # ------------------------------------------------------------------------------
 
 #Method void drawPicture(const sk_sp<SkPicture>& picture, const SkMatrix* matrix, const SkPaint* paint)
-
-Draws Picture picture, using Clip and Matrix; transforming picture with
-Matrix matrix, if provided; and use Paint paint Color_Alpha, Color_Filter,
-Image_Filter, and Blend_Mode, if provided.
-
-matrix transformation is equivalent to: save(), concat(), drawPicture, restore().
-paint use is equivalent to: saveLayer, drawPicture, restore().
-
-#Param  picture  recorded drawing commands to play ##
-#Param  matrix   Matrix to rotate, scale, translate, and so on; may be nullptr ##
-#Param  paint    Paint to apply transparency, filtering, and so on; may be nullptr ##
+#Populate
 
 #Example
 void draw(SkCanvas* canvas) {
@@ -5565,13 +4493,7 @@
 #Method void drawVertices(const SkVertices* vertices, SkBlendMode mode, const SkPaint& paint)
 #In Draw
 #Line # draws Vertices, a triangle mesh ##
-Draws Vertices vertices, a triangle mesh, using Clip and Matrix.
-If Vertices_Texs and Vertices_Colors are defined in vertices, and Paint paint
-contains Shader, Blend_Mode mode combines Vertices_Colors with Shader.
-
-#Param  vertices  triangle mesh to draw ##
-#Param  mode      combines Vertices_Colors with Shader, if both are present ##
-#Param  paint     specifies the Shader, used as Vertices texture; may be nullptr ##
+#Populate
 
 #Example
 void draw(SkCanvas* canvas) {
@@ -5591,14 +4513,7 @@
 # ------------------------------------------------------------------------------
 
 #Method void drawVertices(const sk_sp<SkVertices>& vertices, SkBlendMode mode, const SkPaint& paint)
-
-Draws Vertices vertices, a triangle mesh, using Clip and Matrix.
-If Vertices_Texs and Vertices_Colors are defined in vertices, and Paint paint
-contains Shader, Blend_Mode mode combines Vertices_Colors with Shader.
-
-#Param  vertices  triangle mesh to draw ##
-#Param  mode      combines Vertices_Colors with Shader, if both are present ##
-#Param  paint     specifies the Shader, used as Vertices texture, may be nullptr ##
+#Populate
 
 #Example
 void draw(SkCanvas* canvas) {
@@ -5622,21 +4537,7 @@
 
 #Method void drawVertices(const SkVertices* vertices, const SkVertices::Bone bones[],
                           int boneCount, SkBlendMode mode, const SkPaint& paint)
-
-Draws Vertices vertices, a triangle mesh, using Clip and Matrix. Bone data is used to
-deform vertices with bone weights.
-If Vertices_Texs and Vertices_Colors are defined in vertices, and Paint paint
-contains Shader, Blend_Mode mode combines Vertices_Colors with Shader.
-The first element of bones should be an object to world space transformation matrix that
-will be applied before performing mesh deformations. If no such transformation is needed,
-it should be the identity matrix.
-boneCount must be at most 80, and thus the size of bones should be at most 80.
-
-#Param  vertices  triangle mesh to draw ##
-#Param  bones     bone matrix data ##
-#Param  boneCount number of bone matrices ##
-#Param  mode      combines Vertices_Colors with Shader, if both are present ##
-#Param  paint     specifies the Shader, used as Vertices texture, may be nullptr ##
+#Populate
 
 #NoExample
 void draw(SkCanvas* canvas) {
@@ -5672,21 +4573,7 @@
 
 #Method void drawVertices(const sk_sp<SkVertices>& vertices, const SkVertices::Bone bones[],
                           int boneCount, SkBlendMode mode, const SkPaint& paint)
-
-Draws Vertices vertices, a triangle mesh, using Clip and Matrix. Bone data is used to
-deform vertices with bone weights.
-If Vertices_Texs and Vertices_Colors are defined in vertices, and Paint paint
-contains Shader, Blend_Mode mode combines Vertices_Colors with Shader.
-The first element of bones should be an object to world space transformation matrix that
-will be applied before performing mesh deformations. If no such transformation is needed,
-it should be the identity matrix.
-boneCount must be at most 80, and thus the size of bones should be at most 80.
-
-#Param  vertices  triangle mesh to draw ##
-#Param  bones     bone matrix data ##
-#Param  boneCount number of bone matrices ##
-#Param  mode      combines Vertices_Colors with Shader, if both are present ##
-#Param  paint     specifies the Shader, used as Vertices texture, may be nullptr ##
+#Populate
 
 #NoExample
 void draw(SkCanvas* canvas) {
@@ -5724,32 +4611,7 @@
                    const SkPoint texCoords[4], SkBlendMode mode, const SkPaint& paint)
 #In Draw
 #Line # draws Coons_Patch ##
-
-Draws a Coons_Patch: the interpolation of four cubics with shared corners,
-associating a color, and optionally a texture Point, with each corner.
-
-Coons_Patch uses Clip and Matrix, paint Shader, Color_Filter,
-Color_Alpha, Image_Filter, and Blend_Mode. If Shader is provided it is treated
-as Coons_Patch texture; Blend_Mode mode combines Color colors and Shader if
-both are provided.
-
-Point array cubics specifies four Cubics starting at the top-left corner,
-in clockwise order, sharing every fourth point. The last Cubic ends at the
-first point.
-
-Color array color associates colors with corners in top-left, top-right,
-bottom-right, bottom-left order.
-
-If paint contains Shader, Point array texCoords maps Shader as texture to
-corners in top-left, top-right, bottom-right, bottom-left order.
-
-#Param cubics     Path_Cubic array, sharing common points ##
-#Param colors     Color array, one for each corner ##
-#Param texCoords  Point array of texture coordinates, mapping Shader to corners;
-                  may be nullptr
-#Param ##
-#Param mode       Blend_Mode for colors, and for Shader if paint has one ##
-#Param paint      Shader, Color_Filter, Blend_Mode, used to draw ##
+#Populate
 
 #Example
 #Image 5
@@ -5783,31 +4645,7 @@
 
 #Method void drawPatch(const SkPoint cubics[12], const SkColor colors[4],
                    const SkPoint texCoords[4], const SkPaint& paint)
-
-Draws Cubic Coons_Patch: the interpolation of four cubics with shared corners,
-associating a color, and optionally a texture Point, with each corner.
-
-Coons_Patch uses Clip and Matrix, paint Shader, Color_Filter,
-Color_Alpha, Image_Filter, and Blend_Mode. If Shader is provided it is treated
-as Coons_Patch texture; Blend_Mode mode combines Color colors and Shader if
-both are provided.
-
-Point array cubics specifies four Cubics starting at the top-left corner,
-in clockwise order, sharing every fourth point. The last Cubic ends at the
-first point.
-
-Color array color associates colors with corners in top-left, top-right,
-bottom-right, bottom-left order.
-
-If paint contains Shader, Point array texCoords maps Shader as texture to
-corners in top-left, top-right, bottom-right, bottom-left order.
-
-#Param cubics     Path_Cubic array, sharing common points ##
-#Param colors     Color array, one for each corner ##
-#Param texCoords  Point array of texture coordinates, mapping Shader to corners;
-                  may be nullptr
-#Param ##
-#Param paint      Shader, Color_Filter, Blend_Mode, used to draw ##
+#Populate
 
 #Example
 void draw(SkCanvas* canvas) {
@@ -5867,28 +4705,7 @@
                    const SkPaint* paint)
 #In Draw
 #Line # draws sprites using Clip, Matrix, and Paint ##
-
-Draws a set of sprites from atlas, using Clip, Matrix, and optional Paint paint.
-paint uses Anti_Alias, Color_Alpha, Color_Filter, Image_Filter, and Blend_Mode
-to draw, if present. For each entry in the array, Rect tex locates sprite in
-atlas, and RSXform xform transforms it into destination space.
-
-xform, text, and colors if present, must contain count entries.
-Optional colors are applied for each sprite using Blend_Mode mode, treating
-sprite as source and colors as destination.
-Optional cullRect is a conservative bounds of all transformed sprites.
-If cullRect is outside of Clip, canvas can skip drawing.
-
-
-
-#Param atlas  Image containing sprites ##
-#Param xform  RSXform mappings for sprites in atlas ##
-#Param tex    Rect locations of sprites in atlas ##
-#Param colors  one per sprite, blended with sprite using Blend_Mode; may be nullptr ##
-#Param count  number of sprites to draw ##
-#Param mode   Blend_Mode combining colors and sprites ##
-#Param cullRect  bounds of transformed sprites for efficient clipping; may be nullptr ##
-#Param paint  Color_Filter, Image_Filter, Blend_Mode, and so on; may be nullptr ##
+#Populate
 
 #Example
 #Image 3
@@ -5911,25 +4728,7 @@
 #Method void drawAtlas(const sk_sp<SkImage>& atlas, const SkRSXform xform[], const SkRect tex[],
                    const SkColor colors[], int count, SkBlendMode mode, const SkRect* cullRect,
                    const SkPaint* paint)
-
-Draws a set of sprites from atlas, using Clip, Matrix, and optional Paint paint.
-paint uses Anti_Alias, Color_Alpha, Color_Filter, Image_Filter, and Blend_Mode
-to draw, if present. For each entry in the array, Rect tex locates sprite in
-atlas, and RSXform xform transforms it into destination space.
-
-xform, text, and colors if present, must contain count entries.
-Optional colors is applied for each sprite using Blend_Mode.
-Optional cullRect is a conservative bounds of all transformed sprites.
-If cullRect is outside of Clip, canvas can skip drawing.
-
-#Param atlas  Image containing sprites ##
-#Param xform  RSXform mappings for sprites in atlas ##
-#Param tex    Rect locations of sprites in atlas ##
-#Param colors  one per sprite, blended with sprite using Blend_Mode; may be nullptr ##
-#Param count  number of sprites to draw ##
-#Param mode   Blend_Mode combining colors and sprites ##
-#Param cullRect  bounds of transformed sprites for efficient clipping; may be nullptr ##
-#Param paint  Color_Filter, Image_Filter, Blend_Mode, and so on; may be nullptr ##
+#Populate
 
 #Example
 #Image 3
@@ -5954,22 +4753,7 @@
 
 #Method void drawAtlas(const SkImage* atlas, const SkRSXform xform[], const SkRect tex[], int count,
                    const SkRect* cullRect, const SkPaint* paint)
-
-Draws a set of sprites from atlas, using Clip, Matrix, and optional Paint paint.
-paint uses Anti_Alias, Color_Alpha, Color_Filter, Image_Filter, and Blend_Mode
-to draw, if present. For each entry in the array, Rect tex locates sprite in
-atlas, and RSXform xform transforms it into destination space.
-
-xform and text must contain count entries.
-Optional cullRect is a conservative bounds of all transformed sprites.
-If cullRect is outside of Clip, canvas can skip drawing.
-
-#Param atlas  Image containing sprites ##
-#Param xform  RSXform mappings for sprites in atlas ##
-#Param tex    Rect locations of sprites in atlas ##
-#Param count  number of sprites to draw ##
-#Param cullRect  bounds of transformed sprites for efficient clipping; may be nullptr ##
-#Param paint  Color_Filter, Image_Filter, Blend_Mode, and so on; may be nullptr ##
+#Populate
 
 #Example
 #Image 3
@@ -5990,22 +4774,7 @@
 
 #Method void drawAtlas(const sk_sp<SkImage>& atlas, const SkRSXform xform[], const SkRect tex[],
                    int count, const SkRect* cullRect, const SkPaint* paint)
-
-Draws a set of sprites from atlas, using Clip, Matrix, and optional Paint paint.
-paint uses Anti_Alias, Color_Alpha, Color_Filter, Image_Filter, and Blend_Mode
-to draw, if present. For each entry in the array, Rect tex locates sprite in
-atlas, and RSXform xform transforms it into destination space.
-
-xform and text must contain count entries.
-Optional cullRect is a conservative bounds of all transformed sprites.
-If cullRect is outside of Clip, canvas can skip drawing.
-
-#Param atlas  Image containing sprites ##
-#Param xform  RSXform mappings for sprites in atlas ##
-#Param tex    Rect locations of sprites in atlas ##
-#Param count  number of sprites to draw ##
-#Param cullRect  bounds of transformed sprites for efficient clipping; may be nullptr ##
-#Param paint  Color_Filter, Image_Filter, Blend_Mode, and so on; may be nullptr ##
+#Populate
 
 #Example
 #Image 3
@@ -6026,16 +4795,7 @@
 #Method void drawDrawable(SkDrawable* drawable, const SkMatrix* matrix = nullptr)
 #In Draw
 #Line # draws Drawable, encapsulated drawing commands ##
-Draws Drawable drawable using Clip and Matrix, concatenated with
-optional matrix.
-
-If Canvas has an asynchronous implementation, as is the case
-when it is recording into Picture, then drawable will be referenced,
-so that SkDrawable::draw() can be called when the operation is finalized. To force
-immediate drawing, call SkDrawable::draw() instead.
-
-#Param drawable  custom struct encapsulating drawing commands ##
-#Param matrix    transformation applied to drawing; may be nullptr  ##
+#Populate
 
 #Example
 #Height 100
@@ -6071,17 +4831,7 @@
 # ------------------------------------------------------------------------------
 
 #Method void drawDrawable(SkDrawable* drawable, SkScalar x, SkScalar y)
-
-Draws Drawable drawable using Clip and Matrix, offset by (x, y).
-
-If Canvas has an asynchronous implementation, as is the case
-when it is recording into Picture, then drawable will be referenced,
-so that SkDrawable::draw() can be called when the operation is finalized. To force
-immediate drawing, call SkDrawable::draw() instead.
-
-#Param drawable  custom struct encapsulating drawing commands ##
-#Param x  offset into Canvas writable pixels on x-axis ##
-#Param y  offset into Canvas writable pixels on y-axis ##
+#Populate
 
 #Example
 #Height 100
@@ -6118,15 +4868,7 @@
 #In Draw
 #In Utility
 #Line # associates a Rect with a key-value pair ##
-Associates Rect on Canvas with an annotation; a key-value pair, where the key is
-a null-terminated utf8 string, and optional value is stored as Data.
-
-Only some canvas implementations, such as recording to Picture, or drawing to
-Document_PDF, use annotations.
-
-#Param rect    Rect extent of canvas to annotate ##
-#Param key     string used for lookup ##
-#Param value   data holding value stored in annotation ##
+#Populate
 
 #Example
     #Height 1
@@ -6147,16 +4889,7 @@
 # ------------------------------------------------------------------------------
 
 #Method void drawAnnotation(const SkRect& rect, const char key[], const sk_sp<SkData>& value)
-
-Associates Rect on Canvas when an annotation; a key-value pair, where the key is
-a null-terminated utf8 string, and optional value is stored as Data.
-
-Only some canvas implementations, such as recording to Picture, or drawing to
-Document_PDF, use annotations.
-
-#Param rect    Rect extent of canvas to annotate ##
-#Param key     string used for lookup ##
-#Param value   data holding value stored in annotation ##
+#Populate
 
 #Example
 #Height 1
@@ -6179,13 +4912,7 @@
 #Method virtual bool isClipEmpty() const
 #In Property
 #Line # returns if Clip is empty ##
-Returns true if Clip is empty; that is, nothing will draw.
-
-May do work when called; it should not be called
-more often than needed. However, once called, subsequent calls perform no
-work until Clip changes.
-
-#Return  true if Clip is empty ##
+#Populate
 
 #Example
     void draw(SkCanvas* canvas) {
@@ -6209,10 +4936,7 @@
 #Method virtual bool isClipRect() const
 #In Property
 #Line # returns if Clip is Rect and not empty ##
-Returns true if Clip is Rect and not empty.
-Returns false if the clip is empty, or if it is not Rect.
-
-#Return  true if Clip is Rect and not empty ##
+#Populate
 
 #Example
     void draw(SkCanvas* canvas) {
diff --git a/docs/SkColor4f_Reference.bmh b/docs/SkColor4f_Reference.bmh
index 97fabb1..16746d3 100644
--- a/docs/SkColor4f_Reference.bmh
+++ b/docs/SkColor4f_Reference.bmh
@@ -1,6 +1,5 @@
 #Topic Color4f
 #Alias Color4f_Reference ##
-#Substitute SkColor4f
 
 #Struct SkPM4f
 ##
diff --git a/docs/SkFILEStream_Reference.bmh b/docs/SkFILEStream_Reference.bmh
index 42e350f..f847547 100644
--- a/docs/SkFILEStream_Reference.bmh
+++ b/docs/SkFILEStream_Reference.bmh
@@ -17,7 +17,7 @@
 
 Initializes Stream by reading data contained by path.
 File descriptor is opened here and is closed when SkFILEStream
-Destructor is invoked.
+destructor is invoked.
 
 #Param path  incomplete ##
 
@@ -40,7 +40,7 @@
 Initialize the stream with an existing C_FILE stream.
 The current position of the C_FILE stream will be considered the
 beginning of the SkFILEStream.
-The C_FILE stream is closed when SkFILEStream Destructor is invoked.
+The C_FILE stream is closed when SkFILEStream destructor is invoked.
 
 #Param file  incomplete ##
 
diff --git a/docs/SkIPoint_Reference.bmh b/docs/SkIPoint_Reference.bmh
index c7ba27f..5f8f542 100644
--- a/docs/SkIPoint_Reference.bmh
+++ b/docs/SkIPoint_Reference.bmh
@@ -26,12 +26,7 @@
 
 #In Constructors
 #Line # constructs from integer inputs ##
-Sets fX to x, fY to y.
-
-#Param x  integer x-axis value of constructed IPoint ##
-#Param y  integer y-axis value of constructed IPoint ##
-
-#Return IPoint (x, y) ##
+#Populate
 
 #Example
 SkIPoint pt1 = {45, 66};
@@ -56,9 +51,7 @@
 #Method int32_t x() const
 #In Property
 #Line # returns fX ##
-Returns x-axis value of IPoint.
-
-#Return fX ##
+#Populate
 
 #Example
 SkIPoint pt1 = {45, 66};
@@ -77,9 +70,7 @@
 #Method int32_t y() const
 #In Property
 #Line # returns fY ##
-Returns y-axis value of IPoint.
-
-#Return fY ##
+#Populate
 
 #Example
 SkIPoint pt1 = {45, 66};
@@ -98,9 +89,7 @@
 #Method bool isZero() const
 #In Property
 #Line # returns true if both members equal zero ##
-Returns true if fX and fY are both zero.
-
-#Return true if fX is zero and fY is zero ##
+#Populate
 
 #Example
 SkIPoint pt = { 0, -0};
@@ -123,10 +112,7 @@
 #Method void set(int32_t x, int32_t y)
 #In Set
 #Line # sets to integer input ##
-Sets fX to x and fY to y.
-
-#Param x  new value for fX ##
-#Param y  new value for fY ##
+#Populate
 
 #Example
 SkIPoint pt1, pt2 = { SK_MinS32, SK_MaxS32 };
@@ -146,9 +132,7 @@
 #Method SkIPoint operator-()_const
 
 #Line # reverses sign of IPoint ##
-Returns IPoint changing the signs of fX and fY.
-
-#Return IPoint as (-fX, -fY) ##
+#Populate
 
 #Example
 SkIPoint test[] = { {0, -0}, {-1, -2},
@@ -245,12 +229,7 @@
 #Method bool equals(int32_t x, int32_t y) const
 #In Operators
 #Line # returns true if members are equal ##
-Returns true if IPoint is equivalent to IPoint constructed from (x, y).
-
-#Param x  value compared with fX ##
-#Param y  value compared with fY ##
-
-#Return true if IPoint equals (x, y) ##
+#Populate
 
 #Example
 SkIPoint test[] = { {0, -0}, {-1, -2}, {SK_MaxS32, -1}, {SK_NaN32, -1} };
@@ -274,12 +253,7 @@
 #Method bool operator==(const SkIPoint& a, const SkIPoint& b)
 
 #Line # returns true if IPoints are equal ##
-Returns true if a is equivalent to b.
-
-#Param a  IPoint to compare ##
-#Param b  IPoint to compare ##
-
-#Return true if a.fX == b.fX and a.fY == b.fY ##
+#Populate
 
 #Example
 SkIPoint test[] = { {0, -0}, {-1, -2}, {SK_MaxS32, -1}, {SK_NaN32, -1} };
@@ -303,12 +277,7 @@
 #Method bool operator!=(const SkIPoint& a, const SkIPoint& b)
 
 #Line # returns true if IPoints are unequal ##
-Returns true if a is not equivalent to b.
-
-#Param a  IPoint to compare ##
-#Param b  IPoint to compare ##
-
-#Return true if a.fX != b.fX or a.fY != b.fY ##
+#Populate
 
 #Example
 SkIPoint test[] = { {0, -0}, {-1, -2}, {SK_MaxS32, -1}, {SK_NaN32, -1} };
@@ -431,4 +400,3 @@
 ##
 
 #Topic IPoint ##
-
diff --git a/docs/SkIRect_Reference.bmh b/docs/SkIRect_Reference.bmh
index 2d90880..3bbfd68 100644
--- a/docs/SkIRect_Reference.bmh
+++ b/docs/SkIRect_Reference.bmh
@@ -44,12 +44,7 @@
 
 #In Constructors
 #Line # returns bounds of (0, 0, 0, 0) ##
-Returns constructed IRect 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.
-
-#Return bounds (0, 0, 0, 0) ##
+#Populate
 
 #Example
     SkIRect rect = SkIRect::MakeEmpty();
@@ -78,13 +73,7 @@
 
 #In Constructors
 #Line # constructs from int input returning (0, 0, width, height) ##
-Returns constructed IRect set to (0, 0, w, h). Does not validate input; w or h
-may be negative.
-
-#Param w  width of constructed IRect  ##
-#Param h  height of constructed IRect ##
-
-#Return bounds (0, 0, w, h) ##
+#Populate
 
 #Example
     SkIRect rect1 = SkIRect::MakeWH(25, 35);
@@ -108,12 +97,7 @@
 
 #In Constructors
 #Line # constructs from ISize returning (0, 0, width, height) ##
-Returns constructed IRect set to (0, 0, size.width(), size.height()).
-Does not validate input; size.width() or size.height() may be negative.
-
-#Param size  values for IRect width and height ##
-
-#Return bounds (0, 0, size.width(), size.height()) ##
+#Populate
 
 #Example
     SkSize size = {25.5f, 35.5f};
@@ -137,15 +121,7 @@
 
 #In Constructors
 #Line # constructs from int left, top, right, bottom ##
-Returns constructed IRect set to (l, t, r, b). Does not sort input; IRect may
-result in fLeft greater than fRight, or fTop greater than fBottom.
-
-#Param l  integer stored in fLeft ##
-#Param t  integer stored in fTop ##
-#Param r  integer stored in fRight ##
-#Param b  integer stored in fBottom ##
-
-#Return bounds (l, t, r, b) ##
+#Populate
 
 #Example
     SkIRect rect = SkIRect::MakeLTRB(5, 35, 15, 25);
@@ -170,15 +146,8 @@
 
 #In Constructors
 #Line # constructs from int input returning (x, y, width, height) ##
-Returns constructed IRect set to: #Formula # (x, y, x + w, y + h) ##.
-Does not validate input; w or h may be negative.
 
-#Param x  stored in fLeft ##
-#Param y  stored in fTop ##
-#Param w  added to x and stored in fRight ##
-#Param h  added to y and stored in fBottom ##
-
-#Return bounds at (x, y) with width w and height h ##
+#Populate
 
 #Example
     SkIRect rect = SkIRect::MakeXYWH(5, 35, -15, 25);
@@ -207,10 +176,7 @@
 
 #In Property
 #Line # returns smaller bounds in x, if sorted ##
-Returns left edge of IRect, if sorted.
-Call sort() to reverse fLeft and fRight if needed.
-
-#Return fLeft ##
+#Populate
 
 #Example
     SkIRect unsorted = { 15, 5, 10, 25 };
@@ -233,10 +199,7 @@
 
 #In Property
 #Line # returns smaller bounds in y, if sorted ##
-Returns top edge of IRect, if sorted. Call isEmpty to see if IRect may be invalid,
-and sort() to reverse fTop and fBottom if needed.
-
-#Return fTop ##
+#Populate
 
 #Example
     SkIRect unsorted = { 15, 25, 10, 5 };
@@ -259,10 +222,7 @@
 
 #In Property
 #Line # returns larger bounds in x, if sorted ##
-Returns right edge of IRect, if sorted.
-Call sort() to reverse fLeft and fRight if needed.
-
-#Return fRight ##
+#Populate
 
 #Example
     SkIRect unsorted = { 15, 25, 10, 5 };
@@ -285,10 +245,7 @@
 
 #In Property
 #Line # returns larger bounds in y, if sorted ##
-Returns bottom edge of IRect, if sorted. Call isEmpty to see if IRect may be invalid,
-and sort() to reverse fTop and fBottom if needed.
-
-#Return fBottom ##
+#Populate
 
 #Example
     SkIRect unsorted = { 15, 25, 10, 5 };
@@ -311,10 +268,7 @@
 
 #In Property
 #Line # returns bounds left ##
-Returns left edge of IRect, if sorted. Call isEmpty to see if IRect may be invalid,
-and sort() to reverse fLeft and fRight if needed.
-
-#Return fLeft ##
+#Populate
 
 #Example
     SkIRect unsorted = { 15, 5, 10, 25 };
@@ -337,10 +291,7 @@
 
 #In Property
 #Line # returns bounds top ##
-Returns top edge of IRect, if sorted. Call isEmpty to see if IRect may be invalid,
-and sort() to reverse fTop and fBottom if needed.
-
-#Return fTop ##
+#Populate
 
 #Example
     SkIRect unsorted = { 15, 25, 10, 5 };
@@ -363,10 +314,7 @@
 
 #In Property
 #Line # returns span in x ##
-Returns span on the x-axis. This does not check if IRect is sorted, or if
-result fits in 32-bit signed integer; result may be negative.
-
-#Return fRight minus fLeft ##
+#Populate
 
 #Example
     SkIRect unsorted = { 15, 25, 10, 5 };
@@ -389,11 +337,7 @@
 
 #In Property
 #Line # returns span in y as int64_t ##
-Returns span on the x-axis. This does not check if IRect is sorted, so the
-result may be negative. This is safer than calling width() since width() might
-overflow in its calculation.
-
-#Return fRight minus fLeft cast to int64_t ##
+#Populate
 
 #Example
 SkIRect large = { -2147483647, 1, 2147483644, 2 };
@@ -413,10 +357,7 @@
 
 #In Property
 #Line # returns span in y ##
-Returns span on the y-axis. This does not check if IRect is sorted, or if
-result fits in 32-bit signed integer; result may be negative.
-
-#Return fBottom minus fTop ##
+#Populate
 
 #Example
     SkIRect unsorted = { 15, 25, 10, 20 };
@@ -439,11 +380,7 @@
 
 #In Property
 #Line # returns span in y as int64_t ##
-Returns span on the y-axis. This does not check if IRect is sorted, so the
-result may be negative. This is safer than calling height() since height() might
-overflow in its calculation.
-
-#Return fBottom minus fTop cast to int64_t ##
+#Populate
 
 #Example
 SkIRect large = { 1, -2147483647, 2, 2147483644 };
@@ -463,10 +400,7 @@
 
 #In Property
 #Line # returns ISize (width, height) ##
-Returns spans on the x-axis and y-axis. This does not check if IRect is sorted,
-or if result fits in 32-bit signed integer; result may be negative.
-
-#Return  ISize (width, height) ##
+#Populate
 
 #Example
     auto debugster = [](const char* prefix, const SkIRect& rect) -> void {
@@ -498,9 +432,7 @@
 
 #In Property
 #Line # returns true if width or height are zero or negative or they exceed int32_t ##
-Returns true if width() or height() are zero or negative or they exceed int32_t.
-
-#Return true if width() or height() are not positive and valid ##
+#Populate
 
 #Example
     SkIRect tests[] = {{20, 40, 10, 50}, {20, 40, 20, 50}};
@@ -529,11 +461,7 @@
 
 #In Property
 #Line # returns true if width or height are zero or negative ##
-Returns true if fLeft is equal to or greater than fRight, or if fTop is equal
-to or greater than fBottom. Call sort() to reverse rectangles with negative
-width64() or height64().
-
-#Return true if width64() or height64() are not positive ##
+#Populate
 
 #Example
 SkIRect tests[] = {{20, 40, 10, 50}, {20, 40, 20, 50}};
@@ -564,13 +492,7 @@
 
 #In Operators
 #Line # returns true if members are equal ##
-Returns true if all members in a: fLeft, fTop, fRight, and fBottom; are
-identical to corresponding members in b.
-
-#Param a  IRect to compare ##
-#Param b  IRect to compare ##
-
-#Return true if members are equal ##
+#Populate
 
 #Example
     SkIRect test = {0, 0, 2, 2};
@@ -591,13 +513,7 @@
 
 #In Operators
 #Line # returns true if members are unequal ##
-Returns true if any member in a: fLeft, fTop, fRight, and fBottom; is not
-identical to the corresponding member in b.
-
-#Param a  IRect to compare ##
-#Param b  IRect to compare ##
-
-#Return true if members are not equal ##
+#Populate
 
 #Example
     SkIRect test = {2, 2, 0, 0};
@@ -624,11 +540,7 @@
 
 #In Set
 #Line # sets to (0, 0, 0, 0) ##
-Sets IRect 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.
+#Populate
 
 #Example
     SkIRect rect = {3, 4, 1, 2};
@@ -653,14 +565,7 @@
 
 #In Set
 #Line # sets to (left, top, right, bottom) ##
-Sets IRect to (left, top, right, bottom).
-left and right are not sorted; left is not necessarily less than right.
-top and bottom are not sorted; top is not necessarily less than bottom.
-
-#Param left  assigned to fLeft ##
-#Param top  assigned to fTop ##
-#Param right  assigned to fRight ##
-#Param bottom  assigned to fBottom ##
+#Populate
 
 #Example
     SkIRect rect1 = {3, 4, 1, 2};
@@ -684,14 +589,7 @@
 
 #In Set
 #Line # sets to SkScalar input (left, top, right, bottom) ##
-Sets IRect to (left, top, right, bottom).
-left and right are not sorted; left is not necessarily less than right.
-top and bottom are not sorted; top is not necessarily less than bottom.
-
-#Param left  stored in fLeft ##
-#Param top  stored in fTop ##
-#Param right  stored in fRight ##
-#Param bottom  stored in fBottom ##
+#Populate
 
 #Example
     SkIRect rect1 = {3, 4, 1, 2};
@@ -750,17 +648,7 @@
 
 #In Inset_Outset_Offset
 #Line # constructs from translated sides ##
-Returns IRect offset by (dx, dy).
-
-If dx is negative, IRect returned is moved to the left.
-If dx is positive, IRect returned is moved to the right.
-If dy is negative, IRect returned is moved upward.
-If dy is positive, IRect returned is moved downward.
-
-#Param dx  offset added to fLeft and fRight ##
-#Param dy  offset added to fTop and fBottom ##
-
-#Return IRect offset by dx and dy, with original width and height ##
+#Populate
 
 #Example
     SkIRect rect = { 10, 50, 20, 60 };
@@ -785,17 +673,7 @@
 
 #In Inset_Outset_Offset
 #Line # constructs from sides moved symmetrically about the center ##
-Returns IRect, inset by (dx, dy).
-
-If dx is negative, IRect returned is wider.
-If dx is positive, IRect returned is narrower.
-If dy is negative, IRect returned is taller.
-If dy is positive, IRect returned is shorter.
-
-#Param dx  offset added to fLeft and subtracted from fRight ##
-#Param dy  offset added to fTop and subtracted from fBottom ##
-
-#Return IRect inset symmetrically left and right, top and bottom ##
+#Populate
 
 #Example
     SkIRect rect = { 10, 50, 20, 60 };
@@ -820,17 +698,7 @@
 
 #In Inset_Outset_Offset
 #Line # constructs from sides moved symmetrically about the center ##
-Returns IRect, outset by (dx, dy).
-
-If dx is negative, IRect returned is narrower.
-If dx is positive, IRect returned is wider.
-If dy is negative, IRect returned is shorter.
-If dy is positive, IRect returned is taller.
-
-#Param dx  offset subtracted to fLeft and added from fRight ##
-#Param dy  offset subtracted to fTop and added from fBottom ##
-
-#Return IRect outset symmetrically left and right, top and bottom ##
+#Populate
 
 #Example
     SkIRect rect = { 10, 50, 20, 60 };
@@ -855,15 +723,7 @@
 
 #In Inset_Outset_Offset
 #Line # translates sides without changing width and height ##
-Offsets IRect by adding dx to fLeft, fRight; and by adding dy to fTop, fBottom.
-
-If dx is negative, moves IRect returned to the left.
-If dx is positive, moves IRect returned to the right.
-If dy is negative, moves IRect returned upward.
-If dy is positive, moves IRect returned downward.
-
-#Param dx  offset added to fLeft and fRight ##
-#Param dy  offset added to fTop and fBottom ##
+#Populate
 
 #Example
     SkIRect rect = { 10, 14, 50, 73 };
@@ -883,15 +743,7 @@
 #Method void offset(const SkIPoint& delta)
 
 #In Inset_Outset_Offset
-Offsets IRect by adding delta.fX to fLeft, fRight; and by adding delta.fY to
-fTop, fBottom.
-
-If delta.fX is negative, moves IRect returned to the left.
-If delta.fX is positive, moves IRect returned to the right.
-If delta.fY is negative, moves IRect returned upward.
-If delta.fY is positive, moves IRect returned downward.
-
-#Param delta  offset added to IRect ##
+#Populate
 
 #Example
     SkIRect rect = { 10, 14, 50, 73 };
@@ -912,11 +764,7 @@
 
 #In Inset_Outset_Offset
 #Line # translates to (x, y) without changing width and height ##
-Offsets IRect so that fLeft equals newX, and fTop equals newY. width and height
-are unchanged.
-
-#Param newX  stored in fLeft, preserving width() ##
-#Param newY  stored in fTop, preserving height() ##
+#Populate
 
 #Example
     SkIRect rect = { 10, 14, 50, 73 };
@@ -937,15 +785,7 @@
 
 #In Inset_Outset_Offset
 #Line # moves the sides symmetrically about the center ##
-Insets IRect by (dx,dy).
-
-If dx is positive, makes IRect narrower.
-If dx is negative, makes IRect wider.
-If dy is positive, makes IRect shorter.
-If dy is negative, makes IRect taller.
-
-#Param dx  offset added to fLeft and subtracted from fRight ##
-#Param dy  offset added to fTop and subtracted from fBottom ##
+#Populate
 
 #Example
     SkIRect rect = { 10, 14, 50, 73 };
@@ -966,15 +806,7 @@
 
 #In Inset_Outset_Offset
 #Line # moves the sides symmetrically about the center ##
-Outsets IRect by (dx, dy).
-
-If dx is positive, makes IRect wider.
-If dx is negative, makes IRect narrower.
-If dy is positive, makes IRect taller.
-If dy is negative, makes IRect shorter.
-
-#Param dx  subtracted to fLeft and added from fRight ##
-#Param dy  subtracted to fTop and added from fBottom ##
+#Populate
 
 #Example
     SkIRect rect = { 10, 14, 50, 73 };
@@ -1009,21 +841,7 @@
 
 #In Inset_Outset_Offset
 #Line # moves the sides independently relative to their original locations ##
-Adjusts IRect by adding dL to fLeft, dT to fTop, dR to fRight, and dB to fBottom.
-
-If dL is positive, narrows IRect on the left. If negative, widens it on the left.
-If dT is positive, shrinks IRect on the top. If negative, lengthens it on the top.
-If dR is positive, narrows IRect on the right. If negative, widens it on the right.
-If dB is positive, shrinks IRect on the bottom. If negative, lengthens it on the bottom.
-
-The resulting IRect is not checked for validity. Thus, if the resulting IRect left is
-greater than right, the IRect will be considered empty. Call sort() after this call
-if that is not the desired behavior.
-
-#Param dL  offset added to fLeft ##
-#Param dT  offset added to fTop ##
-#Param dR  offset added to fRight ##
-#Param dB  offset added to fBottom ##
+#Populate
 
 #Example
     SkIRect rect = { 8, 11, 19, 22 };
@@ -1079,18 +897,7 @@
 #Method bool contains(int32_t left, int32_t top, int32_t right, int32_t bottom) const
 
 #In Intersection
-Constructs IRect to intersect from (left, top, right, bottom). Does not sort
-construction.
-
-Returns true if IRect contains construction.
-Returns false if IRect is empty or construction is empty.
-
-#Param left  x-axis minimum of constructed IRect ##
-#Param top  y-axis minimum of constructed IRect ##
-#Param right  x-axis maximum of constructed IRect ##
-#Param bottom  y-axis maximum of constructed IRect ##
-
-#Return true if all sides of IRect are outside construction ##
+#Populate
 
 #Example
     SkIRect rect = { 30, 50, 40, 60 };
@@ -1119,14 +926,7 @@
 #Method bool contains(const SkIRect& r) const
 
 #In Intersection
-Returns true if IRect contains r.
-Returns false if IRect is empty or r is empty.
-
-IRect contains r when IRect area completely includes r area.
-
-#Param r  IRect contained ##
-
-#Return true if all sides of IRect are outside r ##
+#Populate
 
 #Example
     SkIRect rect = { 30, 50, 40, 60 };
@@ -1153,14 +953,7 @@
 #Method bool contains(const SkRect& r) const
 
 #In Intersection
-Returns true if IRect contains r.
-Returns false if IRect is empty or r is empty.
-
-IRect contains r when IRect area completely includes r area.
-
-#Param r  Rect contained ##
-
-#Return true if all sides of IRect are outside r ##
+#Populate
 
 #Example
     SkIRect rect = { 30, 50, 40, 60 };
@@ -1188,21 +981,7 @@
                               int32_t right, int32_t bottom) const
 #In Intersection
 #Line # returns true if contains unsorted IRect ##
-
-Constructs IRect from (left, top, right, bottom). Does not sort
-construction.
-
-Returns true if IRect contains construction.
-Asserts if IRect is empty or construction is empty, and if SK_DEBUG is defined.
-
-Return is undefined if IRect is empty or construction is empty.
-
-#Param left  x-axis minimum of constructed IRect ##
-#Param top  y-axis minimum of constructed IRect ##
-#Param right  x-axis maximum of constructed IRect ##
-#Param bottom  y-axis maximum of constructed IRect ##
-
-#Return true if all sides of IRect are outside construction ##
+#Populate
 
 #Example
     SkIRect rect = { 30, 50, 40, 60 };
@@ -1231,14 +1010,7 @@
 #Method bool containsNoEmptyCheck(const SkIRect& r) const
 
 #In Intersection
-Returns true if IRect contains construction.
-Asserts if IRect is empty or construction is empty, and if SK_DEBUG is defined.
-
-Return is undefined if IRect is empty or construction is empty.
-
-#Param r  IRect contained ##
-
-#Return true if all sides of IRect are outside r ##
+#Populate
 
 #Example
     SkIRect rect = { 30, 50, 40, 60 };
@@ -1266,14 +1038,7 @@
 
 #In Intersection
 #Line # sets to shared area; returns true if not empty ##
-Returns true if IRect intersects r, and sets IRect to intersection.
-Returns false if IRect does not intersect r, and leaves IRect unchanged.
-
-Returns false if either r or IRect is empty, leaving IRect unchanged.
-
-#Param r  limit of result ##
-
-#Return true if r and IRect have area in common ##
+#Populate
 
 #Example
 #Description
@@ -1300,15 +1065,7 @@
 #Method bool intersect(const SkIRect& a, const SkIRect& b)
 
 #In Intersection
-Returns true if a intersects b, and sets IRect to intersection.
-Returns false if a does not intersect b, and leaves IRect unchanged.
-
-Returns false if either a or b is empty, leaving IRect unchanged.
-
-#Param a  IRect to intersect ##
-#Param b  IRect to intersect ##
-
-#Return true if a and b have area in common ##
+#Populate
 
 #Example
     SkIRect result;
@@ -1330,15 +1087,7 @@
 
 #In Intersection
 #Line # sets to shared area; returns true if not empty skips empty check ##
-Returns true if a intersects b, and sets IRect to intersection.
-Returns false if a does not intersect b, and leaves IRect unchanged.
-
-Asserts if either a or b is empty, and if SK_DEBUG is defined.
-
-#Param a  IRect to intersect ##
-#Param b  IRect to intersect ##
-
-#Return true if a and b have area in common ##
+#Populate
 
 #Example
     SkIRect result;
@@ -1360,20 +1109,7 @@
 #Method bool intersect(int32_t left, int32_t top, int32_t right, int32_t bottom)
 
 #In Intersection
-Constructs IRect to intersect from (left, top, right, bottom). Does not sort
-construction.
-
-Returns true if IRect intersects construction, and sets IRect to intersection.
-Returns false if IRect does not intersect construction, and leaves IRect unchanged.
-
-Returns false if either construction or IRect is empty, leaving IRect unchanged.
-
-#Param left  x-axis minimum of constructed IRect ##
-#Param top  y-axis minimum of constructed IRect ##
-#Param right  x-axis maximum of constructed IRect ##
-#Param bottom  y-axis maximum of constructed IRect ##
-
-#Return true if construction and IRect have area in common ##
+#Populate
 
 #Example
 #Description
@@ -1400,13 +1136,7 @@
 
 #In Intersection
 #Line # returns true if areas overlap ##
-Returns true if a intersects b.
-Returns false if either a or b is empty, or do not intersect.
-
-#Param a  IRect to intersect ##
-#Param b  IRect to intersect ##
-
-#Return true if a and b have area in common ##
+#Populate
 
 #Example
     SkDebugf("%s intersection", SkIRect::Intersects({10, 40, 50, 80}, {30, 60, 70, 90}) ? "" : "no ");
@@ -1425,13 +1155,7 @@
 
 #In Intersection
 #Line # returns true if areas overlap skips empty check ##
-Returns true if a intersects b.
-Asserts if either a or b is empty, and if SK_DEBUG is defined.
-
-#Param a  IRect to intersect ##
-#Param b  IRect to intersect ##
-
-#Return true if a and b have area in common ##
+#Populate
 
 #Example
     SkDebugf("%s intersection", SkIRect::IntersectsNoEmptyCheck(
@@ -1457,18 +1181,7 @@
 
 #In Join
 #Line # sets to union of bounds ##
-Constructs IRect to intersect from (left, top, right, bottom). Does not sort
-construction.
-
-Sets IRect to the union of itself and the construction.
-
-Has no effect if construction is empty. Otherwise, if IRect is empty, sets
-IRect to construction.
-
-#Param left  x-axis minimum of constructed IRect ##
-#Param top  y-axis minimum of constructed IRect ##
-#Param right  x-axis maximum of constructed IRect ##
-#Param bottom  y-axis maximum of constructed IRect ##
+#Populate
 
 #Example
     SkIRect rect = { 10, 20, 15, 25};
@@ -1488,11 +1201,7 @@
 #Method void join(const SkIRect& r)
 
 #In Join
-Sets IRect to the union of itself and r.
-
-Has no effect if r is empty. Otherwise, if IRect is empty, sets IRect to r.
-
-#Param r  expansion IRect ##
+#Populate
 
 #Example
     SkIRect rect = { 10, 20, 15, 25};
@@ -1517,9 +1226,7 @@
 
 #In Sorting
 #Line # orders sides from smaller to larger ##
-Swaps fLeft and fRight if fLeft is greater than fRight; and swaps
-fTop and fBottom if fTop is greater than fBottom. Result may be empty,
-and width() and height() will be zero or positive.
+#Populate
 
 #Example
     SkIRect rect = { 30, 50, 20, 10 };
@@ -1543,11 +1250,7 @@
 #In Sorting
 #In Constructors
 #Line # constructs IRect, ordering sides from smaller to larger ##
-Returns IRect with fLeft and fRight swapped if fLeft is greater than fRight; and
-with fTop and fBottom swapped if fTop is greater than fBottom. Result may be empty;
-and width() and height() will be zero or positive.
-
-#Return  sorted IRect ##
+#Populate
 
 #Example
     SkIRect rect = { 30, 50, 20, 10 };
@@ -1570,9 +1273,7 @@
 
 #In Constructors
 #Line # returns immutable bounds of (0, 0, 0, 0) ##
-Returns a reference to immutable empty IRect, set to (0, 0, 0, 0).
-
-#Return  global IRect set to all zeroes ##
+#Populate
 
 #Example
     const SkIRect& rect = SkIRect::EmptyIRect();
diff --git a/docs/SkImageInfo_Reference.bmh b/docs/SkImageInfo_Reference.bmh
index 98f15f5..800ba39 100644
--- a/docs/SkImageInfo_Reference.bmh
+++ b/docs/SkImageInfo_Reference.bmh
@@ -192,16 +192,8 @@
 #Method static inline bool SkAlphaTypeIsOpaque(SkAlphaType at)
 #In Property
 #Line # returns if Alpha_Type equals kOpaque_SkAlphaType ##
+#Populate
 
-Returns true if Alpha_Type equals kOpaque_SkAlphaType. kOpaque_SkAlphaType is a
-hint that the Color_Type is opaque, or that all Color_Alpha values are set to
-their 1.0 equivalent. If Alpha_Type is kOpaque_SkAlphaType, and Color_Type is not
-opaque, then the result of drawing any pixel with a Color_Alpha value less than
-1.0 is undefined.
-
-#Param at one of: #list_of_alpha_types#
-##
-#Return true if at equals kOpaque_SkAlphaType ##
 #NoExample
 ##
 ##
@@ -229,7 +221,7 @@
 ##
 
 Describes how pixel bits encode color. A pixel may be an alpha mask, a
-Grayscale, RGB, or ARGB.
+grayscale, RGB, or ARGB.
 
 kN32_SkColorType selects the native 32-bit ARGB format. On Little_Endian
 processors, pixels containing 8-bit ARGB components pack into 32-bit
@@ -299,7 +291,7 @@
 ##
 
 #Const kGray_8_SkColorType 9
-#Line # pixel with Grayscale level in 8-bit byte ##
+#Line # pixel with grayscale level in 8-bit byte ##
 #Details Gray_8
     Stores 8-bit byte pixel encoding that equivalent to equal values for red,
     blue, and green, representing colors from black to white.
@@ -706,8 +698,8 @@
 ##
 
 #Subtopic Gray_8
-#Line # encodes level of Grayscale in 8 bits ##
-    kGray_8_SkColorType encodes Grayscale level in eight bits that is equivalent
+#Line # encodes level of grayscale in 8 bits ##
+    kGray_8_SkColorType 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 kGray_8_SkColorType are fully
     opaque as if its Color_Alpha was set to one, and should always be paired with
@@ -883,14 +875,7 @@
 #Method int SkColorTypeBytesPerPixel(SkColorType ct)
 #In Property
 #Line # returns Color_Type byte size ##
-
-Returns the number of bytes required to store a pixel, including unused padding.
-Returns zero if ct is kUnknown_SkColorType or invalid.
-
-#Param ct  one of: #list_of_color_types#
-##
-
-#Return bytes per pixel ##
+#Populate
 
 #Example
 #Height 192
@@ -918,14 +903,7 @@
 #Method bool SkColorTypeIsAlwaysOpaque(SkColorType ct)
 #In Property
 #Line # returns if Color_Type includes Color_Alpha ##
-
-Returns true if Color_Type always decodes Color_Alpha to 1.0, making the pixel
-fully opaque. If true, Color_Type does not reserve bits to encode Color_Alpha.
-
-#Param ct  one of: #list_of_color_types#
-##
-
-#Return true if Color_Alpha is always set to 1.0 ##
+#Populate
 
 #Example
 #Height 192
@@ -954,31 +932,7 @@
                                          SkAlphaType* canonical = nullptr)
 #In Property
 #Line # returns if Alpha_Type is valid ##
-
-Returns true if canonical can be set to a valid Alpha_Type for colorType. If
-there is more than one valid canonical Alpha_Type, set to alphaType, if valid.
-If true is returned and canonical is not nullptr, store valid Alpha_Type.
-
-Returns false only if alphaType is kUnknown_SkAlphaType, color type is not
-kUnknown_SkColorType, and Color_Type is not always opaque. If false is returned,
-canonical is ignored.
-
-For kUnknown_SkColorType: set canonical to kUnknown_SkAlphaType and return true.
-For kAlpha_8_SkColorType: set canonical to kPremul_SkAlphaType or
-kOpaque_SkAlphaType and return true if alphaType is not kUnknown_SkAlphaType.
-For kRGB_565_SkColorType, kRGB_888x_SkColorType, kRGB_101010x_SkColorType, and
-kGray_8_SkColorType: set canonical to kOpaque_SkAlphaType and return true.
-For kARGB_4444_SkColorType, kRGBA_8888_SkColorType, kBGRA_8888_SkColorType,
-kRGBA_1010102_SkColorType, and kRGBA_F16_SkColorType: set canonical to alphaType
-and return true if alphaType is not kUnknown_SkAlphaType.
-
-#Param colorType  one of: #list_of_color_types#
-##
-#Param alphaType  one of: #list_of_alpha_types#
-##
-#Param canonical storage for Alpha_Type ##
-
-#Return true if valid Alpha_Type can be associated with colorType ##
+#Populate
 
 #Example
 #Height 640
@@ -1085,10 +1039,7 @@
 
 #In Constructors
 #Line # creates with zeroed dimensions, kUnknown_SkColorType, kUnknown_SkAlphaType ##
-Creates an empty Image_Info with kUnknown_SkColorType, kUnknown_SkAlphaType,
-a width and height of zero, and no Color_Space.
-
-#Return empty Image_Info ##
+#Populate
 
 #Example
 #Height 32
@@ -1117,24 +1068,7 @@
                             sk_sp<SkColorSpace> cs = nullptr)
 #In Constructors
 #Line # creates Image_Info from dimensions, Color_Type, Alpha_Type, Color_Space ##
-Creates Image_Info from integral dimensions width and height, Color_Type ct,
-Alpha_Type at, and optionally Color_Space cs.
-
-If Color_Space cs is nullptr and Image_Info is part of drawing source: Color_Space
-defaults to sRGB, mapping into Surface Color_Space.
-
-Parameters are not validated to see if their values are legal, or that the
-combination is supported.
-
-#Param width  pixel column count; must be zero or greater ##
-#Param height  pixel row count; must be zero or greater ##
-#Param ct  one of: #list_of_color_types#
-##
-#Param at  one of: #list_of_alpha_types#
-##
-#Param cs  range of colors; may be nullptr ##
-
-#Return created Image_Info ##
+#Populate
 
 #Example
 #Height 48
@@ -1161,23 +1095,7 @@
                                sk_sp<SkColorSpace> cs = nullptr)
 #In Constructors
 #Line # creates Image_Info with Native_Color_Type ##
-Creates Image_Info from integral dimensions width and height, kN32_SkColorType,
-Alpha_Type at, and optionally Color_Space cs. kN32_SkColorType will equal either
-kBGRA_8888_SkColorType or kRGBA_8888_SkColorType, whichever is optimal.
-
-If Color_Space cs is nullptr and Image_Info is part of drawing source: Color_Space
-defaults to sRGB, mapping into Surface Color_Space.
-
-Parameters are not validated to see if their values are legal, or that the
-combination is supported.
-
-#Param width  pixel column count; must be zero or greater ##
-#Param height  pixel row count; must be zero or greater ##
-#Param at  one of: #list_of_alpha_types#
-##
-#Param cs  range of colors; may be nullptr ##
-
-#Return created Image_Info ##
+#Populate
 
 #Example
 #Height 128
@@ -1201,18 +1119,7 @@
 
 #In Constructors
 #Line # creates Image_Info with Native_Color_Type, sRGB Color_Space ##
-Creates Image_Info from integral dimensions width and height, kN32_SkColorType,
-Alpha_Type at, with sRGB Color_Space.
-
-Parameters are not validated to see if their values are legal, or that the
-combination is supported.
-
-#Param width  pixel column count; must be zero or greater ##
-#Param height  pixel row count; must be zero or greater ##
-#Param at  one of: #list_of_alpha_types#
-##
-
-#Return created Image_Info ##
+#Populate
 
 #Example
 #Set sRGB
@@ -1257,20 +1164,7 @@
 
 #In Constructors
 #Line # creates Image_Info with Native_Color_Type, kPremul_SkAlphaType ##
-Creates Image_Info from integral dimensions width and height, kN32_SkColorType,
-kPremul_SkAlphaType, with optional Color_Space.
-
-If Color_Space cs is nullptr and Image_Info is part of drawing source: Color_Space
-defaults to sRGB, mapping into Surface Color_Space.
-
-Parameters are not validated to see if their values are legal, or that the
-combination is supported.
-
-#Param width  pixel column count; must be zero or greater ##
-#Param height  pixel row count; must be zero or greater ##
-#Param cs  range of colors; may be nullptr ##
-
-#Return created Image_Info ##
+#Populate
 
 #Example
 #Height 128
@@ -1295,18 +1189,7 @@
 #Method static SkImageInfo MakeN32Premul(const SkISize& size)
 
 #In Constructors
-Creates Image_Info from integral dimensions width and height, kN32_SkColorType,
-kPremul_SkAlphaType, with Color_Space set to nullptr.
-
-If Image_Info is part of drawing source: Color_Space defaults to sRGB, mapping
-into Surface Color_Space.
-
-Parameters are not validated to see if their values are legal, or that the
-combination is supported.
-
-#Param size  width and height, each must be zero or greater ##
-
-#Return created Image_Info ##
+#Populate
 
 #Example
 #Height 128
@@ -1332,13 +1215,7 @@
 
 #In Constructors
 #Line # creates Image_Info with kAlpha_8_SkColorType, kPremul_SkAlphaType ##
-Creates Image_Info from integral dimensions width and height, kAlpha_8_SkColorType,
-kPremul_SkAlphaType, with Color_Space set to nullptr.
-
-#Param width  pixel column count; must be zero or greater ##
-#Param height  pixel row count; must be zero or greater ##
-
-#Return created Image_Info ##
+#Populate
 
 #Example
 #Height 64
@@ -1372,16 +1249,7 @@
 
 #In Constructors
 #Line # creates Image_Info with kUnknown_SkColorType, kUnknown_SkAlphaType ##
-Creates Image_Info from integral dimensions width and height, kUnknown_SkColorType,
-kUnknown_SkAlphaType, with Color_Space set to nullptr.
-
-Returned Image_Info as part of source does not draw, and as part of destination
-can not be drawn to.
-
-#Param width  pixel column count; must be zero or greater ##
-#Param height  pixel row count; must be zero or greater ##
-
-#Return created Image_Info ##
+#Populate
 
 #Example
 #Height 32
@@ -1403,13 +1271,7 @@
 #Method static SkImageInfo MakeUnknown()
 
 #In Constructors
-Creates Image_Info from integral dimensions width and height set to zero,
-kUnknown_SkColorType, kUnknown_SkAlphaType, with Color_Space set to nullptr.
-
-Returned Image_Info as part of source does not draw, and as part of destination
-can not be drawn to.
-
-#Return created Image_Info ##
+#Populate
 
 #Example
 #Height 32
@@ -1435,9 +1297,7 @@
 #Method int width() const
 #In Property
 #Line # returns pixel column count ##
-Returns pixel count in each row.
-
-#Return pixel width ##
+#Populate
 
 #Example
 #Image 4
@@ -1460,9 +1320,7 @@
 #Method int height() const
 #In Property
 #Line # returns pixel row count ##
-Returns pixel row count.
-
-#Return pixel height ##
+#Populate
 
 #Example
 #Image 4
@@ -1529,10 +1387,7 @@
 #Method SkColorSpace* colorSpace() const
 #In Property
 #Line # returns Color_Space ##
-Returns Color_Space, the range of colors. The reference count of
-Color_Space is unchanged. The returned Color_Space is immutable.
-
-#Return Color_Space, or nullptr ##
+#Populate
 
 #Example
 #Description
@@ -1560,13 +1415,7 @@
 #Method sk_sp<SkColorSpace> refColorSpace() const
 #In Property
 #Line # returns Color_Space ##
-Returns smart pointer to Color_Space, the range of colors. The smart pointer
-tracks the number of objects sharing this Color_Space reference so the memory
-is released when the owners destruct.
-
-The returned Color_Space is immutable.
-
-#Return Color_Space wrapped in a smart pointer ##
+#Populate
 
 #Example
     SkImageInfo info1 = SkImageInfo::MakeN32(16, 32, kPremul_SkAlphaType,
@@ -1589,11 +1438,7 @@
 #Method bool isEmpty() const
 #In Property
 #Line # returns if dimensions contain pixels ##
-
-Returns if Image_Info describes an empty area of pixels by checking if either
-width or height is zero or smaller.
-
-#Return true if either dimension is zero or smaller ##
+#Populate
 
 #Example
     for (int width : { 0, 2 } ) {
@@ -1620,15 +1465,7 @@
 #Method bool isOpaque() const
 #In Property
 #Line # returns if Alpha_Type is kOpaque_SkAlphaType ##
-
-Returns true if Alpha_Type is set to hint that all pixels are opaque; their
-Color_Alpha value is implicitly or explicitly 1.0. If true, and all pixels are
-not opaque, Skia may draw incorrectly.
-
-Does not check if Color_Type allows Alpha, or if any pixel value has
-transparency.
-
-#Return true if Alpha_Type is kOpaque_SkAlphaType ##
+#Populate
 
 #Example
     const int height = 2;
@@ -1662,10 +1499,7 @@
 #Method SkISize dimensions() const
 #In Property
 #Line # returns width() and height() ##
-
-Returns ISize { width(), height() }.
-
-#Return integral size of width() and height() ##
+#Populate
 
 #Example
     const int height = 2;
@@ -1689,9 +1523,7 @@
 #Method SkIRect bounds() const
 #In Property
 #Line # returns width() and height() as Rectangle ##
-Returns IRect { 0, 0, width(), height() }.
-
-#Return integral rectangle from origin to width() and height() ##
+#Populate
 
 #Example
 #Height 64
@@ -1763,13 +1595,7 @@
 #Method SkImageInfo makeWH(int newWidth, int newHeight) const
 #In Constructors
 #Line # creates Image_Info with changed dimensions ##
-Creates Image_Info with the same Color_Type, Color_Space, and Alpha_Type,
-with dimensions set to width and height.
-
-#Param newWidth   pixel column count; must be zero or greater ##
-#Param newHeight  pixel row count; must be zero or greater ##
-
-#Return created Image_Info ##
+#Populate
 
 #Example
 #Height 144
@@ -1795,16 +1621,7 @@
 #Method SkImageInfo makeAlphaType(SkAlphaType newAlphaType) const
 #In Constructors
 #Line # creates Image_Info with changed Alpha_Type ##
-Creates Image_Info with same Color_Type, Color_Space, width, and height,
-with Alpha_Type set to newAlphaType.
-
-Created Image_Info contains newAlphaType even if it is incompatible with
-Color_Type, in which case Alpha_Type in Image_Info is ignored.
-
-#Param newAlphaType  one of: #list_of_alpha_types#
-##
-
-#Return created Image_Info ##
+#Populate
 
 #Example
 #Image 3
@@ -1840,13 +1657,7 @@
 #Method SkImageInfo makeColorType(SkColorType newColorType) const
 #In Constructors
 #Line # creates Image_Info with changed Color_Type ##
-Creates Image_Info with same Alpha_Type, Color_Space, width, and height,
-with Color_Type set to newColorType.
-
-#Param newColorType  one of:  #list_of_color_types#
-##
-
-#Return created Image_Info ##
+#Populate
 
 #Example
     const int width = 256;
@@ -1881,12 +1692,7 @@
 #Method SkImageInfo makeColorSpace(sk_sp<SkColorSpace> cs) const
 #In Constructors
 #Line # creates Image_Info with changed Color_Space ##
-Creates Image_Info with same Alpha_Type, Color_Type, width, and height,
-with Color_Space set to cs.
-
-#Param cs  range of colors; may be nullptr ##
-
-#Return created Image_Info ##
+#Populate
 
 #Example
 #Height 224
@@ -1933,10 +1739,7 @@
 #Method int bytesPerPixel() const
 #In Property
 #Line # returns number of bytes in pixel based on Color_Type ##
-Returns number of bytes per pixel required by Color_Type.
-Returns zero if colorType( is kUnknown_SkColorType.
-
-#Return bytes in pixel ##
+#Populate
 
 #Example
     const char* colors[] = {"Unknown", "Alpha_8", "RGB_565", "ARGB_4444", "RGBA_8888", "RGB_888x",
@@ -1972,10 +1775,7 @@
 #Method int shiftPerPixel() const
 #In Property
 #Line # returns bit shift from pixels to bytes ##
-Returns bit shift converting row bytes to row pixels.
-Returns zero for kUnknown_SkColorType.
-
-#Return one of: 0, 1, 2, 3; left shift to convert pixels to bytes ##
+#Populate
 
 #Example
     const char* colors[] = {"Unknown", "Alpha_8", "RGB_565", "ARGB_4444", "RGBA_8888", "RGB_888x",
@@ -2011,12 +1811,7 @@
 #Method uint64_t minRowBytes64() const
 #In Property
 #Line # returns width() times bytesPerPixel in 64 bits ##
-
-Returns minimum bytes per row, computed from pixel width() and Color_Type, which
-specifies bytesPerPixel(). Bitmap maximum value for row bytes must fit
-in 31 bits.
-
-#Return width() times bytesPerPixel as unsigned 64-bit integer ##
+#Populate
 
 #Example
     for (int shift = 24; shift < 32; ++shift) {
@@ -2049,12 +1844,7 @@
 #Method size_t minRowBytes() const
 #In Property
 #Line # returns width() times bytesPerPixel in 32 bits ##
-
-Returns minimum bytes per row, computed from pixel width() and Color_Type, which
-specifies bytesPerPixel(). Bitmap maximum value for row bytes must fit
-in 31 bits.
-
-#Return width() times bytesPerPixel as signed 32-bit integer ##
+#Populate
 
 #Example
     for (int shift = 24; shift < 32; ++shift) {
@@ -2087,17 +1877,7 @@
 #Method size_t computeOffset(int x, int y, size_t rowBytes) const
 #In Utility
 #Line # returns byte offset within pixel array ##
-
-Returns byte offset of pixel from pixel base address.
-
-Asserts in debug build if x or y is outside of bounds. Does not assert if
-rowBytes is smaller than minRowBytes, even though result may be incorrect.
-
-#Param x  column index, zero or greater, and less than width() ##
-#Param y  row index, zero or greater, and less than height() ##
-#Param rowBytes  size of pixel row or larger ##
-
-#Return offset within pixel array ##
+#Populate
 
 #Example
 #Height 128
@@ -2131,13 +1911,7 @@
 
 #Method bool operator==(const SkImageInfo& other)_const
 #Line # compares Image_Info for equality ##
-
-Compares Image_Info with other, and returns true if width, height, Color_Type,
-Alpha_Type, and Color_Space are equivalent.
-
-#Param other  Image_Info to compare ##
-
-#Return true if Image_Info equals other ##
+#Populate
 
 #Example
     SkImageInfo info1 = SkImageInfo::Make(10, 20, kGray_8_SkColorType, kPremul_SkAlphaType);
@@ -2165,13 +1939,7 @@
 
 #Method bool operator!=(const SkImageInfo& other)_const
 #Line # compares Image_Info for inequality ##
-
-Compares Image_Info with other, and returns true if width, height, Color_Type,
-Alpha_Type, and Color_Space are not equivalent.
-
-#Param other  Image_Info to compare ##
-
-#Return true if Image_Info is not equal to other ##
+#Populate
 
 #Example
     SkImageInfo info1 = SkImageInfo::Make(10, 20, kGray_8_SkColorType, kPremul_SkAlphaType);
@@ -2200,15 +1968,7 @@
 #Method size_t computeByteSize(size_t rowBytes) const
 #In Utility
 #Line # returns memory required by pixel buffer with given row bytes ##
-Returns storage required by pixel array, given Image_Info dimensions, Color_Type,
-and rowBytes. rowBytes is assumed to be at least as large as minRowBytes().
-
-Returns zero if height is zero.
-Returns SIZE_MAX if answer exceeds the range of size_t.
-
-#Param rowBytes  size of pixel row or larger ##
-
-#Return memory required by pixel buffer ##
+#Populate
 
 #Example
 #Height 130
@@ -2234,13 +1994,7 @@
 #Method size_t computeMinByteSize() const
 #In Utility
 #Line # returns least memory required by pixel buffer ##
-Returns storage required by pixel array, given Image_Info dimensions, and
-Color_Type. Uses minRowBytes() to compute bytes for pixel row.
-
-Returns zero if height is zero.
-Returns SIZE_MAX if answer exceeds the range of size_t.
-
-#Return least memory required by pixel buffer ##
+#Populate
 
 #Example
 #Height 130
@@ -2266,12 +2020,7 @@
 #Method static bool ByteSizeOverflowed(size_t byteSize)
 #In Utility
 #Line # checks result of computeByteSize and computeMinByteSize ##
-Returns true if byteSize equals SIZE_MAX. computeByteSize and
-computeMinByteSize return SIZE_MAX if size_t can not hold buffer size.
-
-#Param byteSize  result of computeByteSize or computeMinByteSize ##
-
-#Return true if computeByteSize or computeMinByteSize result exceeds size_t ##
+#Populate
 
 #Example
     SkImageInfo info = SkImageInfo::MakeN32Premul(2, 1000000000);
@@ -2298,11 +2047,7 @@
 #Method bool validRowBytes(size_t rowBytes) const
 #In Utility
 #Line # checks if row bytes is large enough to contain pixel row ##
-Returns true if rowBytes is smaller than width times pixel size.
-
-#Param rowBytes  size of pixel row or larger ##
-
-#Return true if rowBytes is large enough to contain pixel row ##
+#Populate
 
 #Example
     SkImageInfo info = SkImageInfo::MakeN32Premul(16, 8);
@@ -2326,8 +2071,7 @@
 #Method void reset()
 #In Constructors
 #Line # sets zero dimensions, kUnknown_SkColorType, kUnknown_SkAlphaType ##
-Creates an empty Image_Info with kUnknown_SkColorType, kUnknown_SkAlphaType,
-a width and height of zero, and no Color_Space.
+#Populate
 
 #Example
     SkImageInfo info = SkImageInfo::MakeN32Premul(16, 8);
@@ -2355,8 +2099,7 @@
 #Method void validate() const
 #In Utility
 #Line # asserts if Image_Info is invalid (debug only) ##
-Asserts if internal values are illegal or inconsistent. Only available if
-SK_DEBUG is defined at compile time.
+#Populate
 
 #NoExample
 ##
diff --git a/docs/SkImage_Reference.bmh b/docs/SkImage_Reference.bmh
index 61d9835..7c2d350 100644
--- a/docs/SkImage_Reference.bmh
+++ b/docs/SkImage_Reference.bmh
@@ -50,19 +50,7 @@
 #Method static sk_sp<SkImage> MakeRasterCopy(const SkPixmap& pixmap)
 #In Constructors
 #Line # creates Image from Pixmap and copied pixels ##
-Creates Image from Pixmap and copy of pixels. Since pixels are copied, Pixmap
-pixels may be modified or deleted without affecting Image.
-
-Image is returned if Pixmap is valid. Valid Pixmap parameters include:
-dimensions are greater than zero;
-each dimension fits in 29 bits;
-Color_Type and Alpha_Type are valid, and Color_Type is not kUnknown_SkColorType;
-row bytes are large enough to hold one row of pixels;
-pixel address is not nullptr.
-
-#Param pixmap  Image_Info, pixel address, and row bytes ##
-
-#Return copy of Pixmap pixels, or nullptr  ##
+#Populate
 
 #Example
 #Height 50
@@ -96,20 +84,7 @@
 #Method static sk_sp<SkImage> MakeRasterData(const SkImageInfo& info, sk_sp<SkData> pixels, size_t rowBytes)
 #In Constructors
 #Line # creates Image from Image_Info and shared pixels ##
-Creates Image from Image_Info, sharing pixels.
-
-Image is returned if Image_Info is valid. Valid Image_Info parameters include:
-dimensions are greater than zero;
-each dimension fits in 29 bits;
-Color_Type and Alpha_Type are valid, and Color_Type is not kUnknown_SkColorType;
-rowBytes are large enough to hold one row of pixels;
-pixels is not nullptr, and contains enough data for Image.
-
-#Param info  contains width, height, Alpha_Type, Color_Type, Color_Space ##
-#Param pixels  address or pixel storage ##
-#Param rowBytes  size of pixel row or larger ##
-
-#Return Image sharing pixels, or nullptr ##
+#Populate
 
 #Example
 #Image 3
@@ -162,27 +137,7 @@
                                          ReleaseContext releaseContext)
 #In Constructors
 #Line # creates Image from Pixmap, with release ##
-
-Creates Image from pixmap, sharing Pixmap pixels. Pixels must remain valid and
-unchanged until rasterReleaseProc is called. rasterReleaseProc is passed
-releaseContext when Image is deleted or no longer refers to pixmap pixels.
-
-Pass nullptr for rasterReleaseProc to share Pixmap without requiring a callback
-when Image is released. Pass nullptr for releaseContext if rasterReleaseProc
-does not require state.
-
-Image is returned if pixmap is valid. Valid Pixmap parameters include:
-dimensions are greater than zero;
-each dimension fits in 29 bits;
-Color_Type and Alpha_Type are valid, and Color_Type is not kUnknown_SkColorType;
-row bytes are large enough to hold one row of pixels;
-pixel address is not nullptr.
-
-#Param pixmap  Image_Info, pixel address, and row bytes ##
-#Param rasterReleaseProc  function called when pixels can be released; or nullptr ##
-#Param releaseContext  state passed to rasterReleaseProc; or nullptr ##
-
-#Return Image sharing pixmap ##
+#Populate
 
 #Example
 #Function
@@ -216,20 +171,7 @@
 #Method static sk_sp<SkImage> MakeFromBitmap(const SkBitmap& bitmap)
 #In Constructors
 #Line # creates Image from Bitmap, sharing or copying pixels ##
-Creates Image from bitmap, sharing or copying bitmap pixels. If the bitmap
-is marked immutable, and its pixel memory is shareable, it may be shared
-instead of copied.
-
-Image is returned if bitmap is valid. Valid Bitmap parameters include:
-dimensions are greater than zero;
-each dimension fits in 29 bits;
-Color_Type and Alpha_Type are valid, and Color_Type is not kUnknown_SkColorType;
-row bytes are large enough to hold one row of pixels;
-pixel address is not nullptr.
-
-#Param bitmap  Image_Info, row bytes, and pixels ##
-
-#Return created Image, or nullptr ##
+#Populate
 
 #Example
 #Description
@@ -267,22 +209,7 @@
                                             const SkIRect* subset = nullptr)
 #In Constructors
 #Line # creates Image from a stream of data ##
-
-Creates Image from data returned by imageGenerator. Generated data is owned by Image and may not
-be shared or accessed.
-
-subset allows selecting a portion of the full image. Pass nullptr to select the entire image;
-otherwise, subset must be contained by image bounds.
-
-Image is returned if generator data is valid. Valid data parameters vary by type of data
-and platform.
-
-imageGenerator may wrap Picture data, codec data, or custom data.
-
-#Param imageGenerator  stock or custom routines to retrieve Image ##
-#Param subset  bounds of returned Image; may be nullptr ##
-
-#Return created Image, or nullptr ##
+#Populate
 
 #Example
 #Height 128
@@ -307,17 +234,7 @@
 #Method static sk_sp<SkImage> MakeFromEncoded(sk_sp<SkData> encoded, const SkIRect* subset = nullptr)
 #In Constructors
 #Line # creates Image from encoded data ##
-Creates Image from encoded data.
-subset allows selecting a portion of the full image. Pass nullptr to select the entire image;
-otherwise, subset must be contained by image bounds.
-
-Image is returned if format of the encoded data is recognized and supported.
-Recognized formats vary by platform.
-
-#Param encoded  data of Image to decode ##
-#Param subset  bounds of returned Image; may be nullptr ##
-
-#Return created Image, or nullptr ##
+#Populate
 
 #Example
 #Image 3
@@ -355,22 +272,7 @@
                                           sk_sp<SkColorSpace> colorSpace)
 #In Constructors
 #Line # creates Image from GPU_Texture ##
-Creates Image from GPU_Texture associated with context. Caller is responsible for
-managing the lifetime of GPU_Texture.
-
-Image is returned if format of backendTexture is recognized and supported.
-Recognized formats vary by GPU back-end.
-
-#Param context  GPU_Context ##
-#Param backendTexture  texture residing on GPU ##
-#Param origin  one of: kBottomLeft_GrSurfaceOrigin, kTopLeft_GrSurfaceOrigin ##
-#Param colorType  one of: #list_of_color_types#
-##
-#Param alphaType  one of: #list_of_alpha_types#
-##
-#Param colorSpace  range of colors; may be nullptr ##
-
-#Return created Image, or nullptr ##
+#Populate
 
 #Example
 #Image 3
@@ -407,31 +309,7 @@
                                           sk_sp<SkColorSpace> colorSpace,
                                           TextureReleaseProc textureReleaseProc,
                                           ReleaseContext releaseContext)
-
-Creates Image from GPU_Texture associated with context. GPU_Texture must stay
-valid and unchanged until textureReleaseProc is called. textureReleaseProc is
-passed releaseContext when Image is deleted or no longer refers to texture.
-
-Image is returned if format of backendTexture is recognized and supported.
-Recognized formats vary by GPU back-end.
-
-#Param context  GPU_Context ##
-#Param backendTexture  texture residing on GPU ##
-#Param origin  one of: kBottomLeft_GrSurfaceOrigin, kTopLeft_GrSurfaceOrigin ##
-#Param colorType  one of: #list_of_color_types#
-##
-#Param alphaType  one of: #list_of_alpha_types#
-##
-#Param colorSpace  range of colors; may be nullptr ##
-#Param textureReleaseProc  function called when texture can be released ##
-#Param releaseContext  state passed to textureReleaseProc ##
-
-#Return created Image, or nullptr ##
-
-#ToDo
-This doesn't do anything clever with TextureReleaseProc because it may not get called
-fwithin the lifetime of the example
-##
+#Populate
 
 #Example
 #Platform gpu
@@ -465,32 +343,7 @@
                                                       bool limitToMaxTextureSize = false)
 #In Constructors
 #Line # creates Image from encoded data, and uploads to GPU ##
-
-Creates Image from encoded data. Image is uploaded to GPU back-end using context.
-
-Created Image is available to other GPU contexts, and is available across thread
-boundaries. All contexts must be in the same GPU_Share_Group, or otherwise
-share resources.
-
-When Image is no longer referenced, context releases texture memory
-asynchronously.
-
-Texture decoded from data is uploaded to match Surface created with
-dstColorSpace. Color_Space of Image is determined by encoded data.
-
-Image is returned if format of data is recognized and supported, and if context
-supports moving resources. Recognized formats vary by platform and GPU back-end.
-
-Image is returned using MakeFromEncoded if context is nullptr or does not support
-moving resources between contexts.
-
-#Param context  GPU_Context ##
-#Param data  Image to decode ##
-#Param buildMips  create Image as Mip_Map if true ##
-#Param dstColorSpace  range of colors of matching Surface on GPU ##
-#Param limitToMaxTextureSize  downscale image to GPU maximum texture size, if necessary ##
-
-#Return created Image, or nullptr ##
+#Populate
 
 #Example
 #Image 4
@@ -514,32 +367,7 @@
                                                       bool limitToMaxTextureSize = false)
 #In Constructors
 #Line # creates Image from Pixmap, and uploads to GPU ##
-
-Creates Image from pixmap. Image is uploaded to GPU back-end using context.
-
-Created Image is available to other GPU contexts, and is available across thread
-boundaries. All contexts must be in the same GPU_Share_Group, or otherwise
-share resources.
-
-When Image is no longer referenced, context releases texture memory
-asynchronously.
-
-Texture created from pixmap is uploaded to match Surface created with
-dstColorSpace. Color_Space of Image is determined by pixmap.colorSpace().
-
-Image is returned referring to GPU back-end if context is not nullptr,
-format of data is recognized and supported, and if context supports moving
-resources between contexts. Otherwise, pixmap pixel data is copied and Image
-as returned in raster format if possible; nullptr may be returned.
-Recognized GPU formats vary by platform and GPU back-end.
-
-#Param context  GPU_Context ##
-#Param pixmap  Image_Info, pixel address, and row bytes ##
-#Param buildMips  create Image as Mip_Map if true ##
-#Param dstColorSpace  range of colors of matching Surface on GPU ##
-#Param limitToMaxTextureSize  downscale image to GPU maximum texture size, if necessary ##
-
-#Return created Image, or nullptr ##
+#Populate
 
 #Example
 #Image 4
@@ -567,22 +395,7 @@
                                                  sk_sp<SkColorSpace> colorSpace = nullptr)
 #In Constructors
 #Line # creates Image from GPU_Texture, managed internally ##
-Creates Image from backendTexture associated with context. backendTexture and
-returned Image are managed internally, and are released when no longer needed.
-
-Image is returned if format of backendTexture is recognized and supported.
-Recognized formats vary by GPU back-end.
-
-#Param context  GPU_Context ##
-#Param backendTexture  texture residing on GPU ##
-#Param surfaceOrigin  one of: kBottomLeft_GrSurfaceOrigin, kTopLeft_GrSurfaceOrigin ##
-#Param colorType  one of: #list_of_color_types#
-##
-#Param alphaType  one of: #list_of_alpha_types#
-##
-#Param colorSpace  range of colors; may be nullptr ##
-
-#Return created Image, or nullptr ##
+#Populate
 
 #Example
 #Image 5
@@ -621,29 +434,7 @@
                                                    sk_sp<SkColorSpace> imageColorSpace = nullptr)
 #In Constructor
 #Line # creates Image from YUV_ColorSpace data ##
-Creates an SkImage by flattening the specified YUVA planes into a single,
-interleaved RGBA image.
-yuvaTextures points to array of up to four YUVA textures which reside on GPU.
-YUVA textures contain YUVA planes which may be interleaved.
-
-#Param context         GPU context ##
-#Param yuvColorSpace   one of: kJPEG_SkYUVColorSpace, kRec601_SkYUVColorSpace,
-                               kRec709_SkYUVColorSpace
-##
-#Param yuvaTextures    array of YUVA textures ##
-#Param yuvaIndices     array indicating yuvaTextures element and channel
-                       that map to Y, U, V, and A
-##
-#Param imageSize       size of the resulting image ##
-#Param imageOrigin     one of: kBottomLeft_GrSurfaceOrigin, kTopLeft_GrSurfaceOrigin ##
-#Param imageColorSpace range of colors of the resulting image; may be nullptr ##
-
-#Return                created SkImage, or nullptr ##
-
-# seems too complicated to create an example for this
-#ToDo
-should this be moved to chrome only?
-##
+#Populate
 
 #NoExample
 ##
@@ -662,23 +453,7 @@
 
 #In Constructor
 #Line # creates Image from YUV_ColorSpace data ##
-
-Creates an SkImage by storing the specified YUVA planes into an image, to be rendered
-via multitexturing.
-
-#Param context         GPU context ##
-#Param yuvColorSpace   one of: kJPEG_SkYUVColorSpace, kRec601_SkYUVColorSpace,
-                               kRec709_SkYUVColorSpace
-##
-#Param yuvaTextures    array of YUVA textures ##
-#Param yuvaIndices     array indicating yuvaTextures element and channel
-                       that map to Y, U, V, and A
-##
-#Param imageSize       size of the resulting image ##
-#Param imageOrigin     one of: kBottomLeft_GrSurfaceOrigin, kTopLeft_GrSurfaceOrigin ##
-#Param imageColorSpace range of colors of the resulting image; may be nullptr ##
-
-#Return                created SkImage, or nullptr ##
+#Populate
 
 #NoExample
 ##
@@ -701,31 +476,7 @@
             sk_sp<SkColorSpace> imageColorSpace = nullptr)
 #In Constructor
 #Line # creates Image from planar YUV_ColorSpace, stored in texture ##
-
-Creates an SkImage by flattening the specified YUVA planes into a single, 
-interleaved RGBA image. backendTexture is used to store the result of flattening.
-yuvaTextures points to array of up to four YUVA textures which reside on GPU.
-YUVA textures contain YUVA planes which may be interleaved.
-
-#Param context         GPU context ##
-#Param yuvColorSpace   one of: kJPEG_SkYUVColorSpace, kRec601_SkYUVColorSpace,
-                               kRec709_SkYUVColorSpace
-##
-#Param yuvaTextures    array of YUVA textures ##
-#Param yuvaIndices     array indicating yuvaTextures element and channel
-                       that map to Y, U, V, and A
-##
-#Param imageSize       size of the resulting image ##
-#Param imageOrigin     one of: kBottomLeft_GrSurfaceOrigin, kTopLeft_GrSurfaceOrigin ##
-#Param backendTexture  resource that stores the final pixels ##
-#Param imageColorSpace range of colors of the resulting image; may be nullptr ##
-
-#Return                created SkImage, or nullptr ##
-
-# seems too complicated to create an example for this
-#ToDo
-should this be moved to chrome only?
-##
+#Populate
 
 #NoExample
 ##
@@ -740,25 +491,7 @@
                                                   sk_sp<SkColorSpace> imageColorSpace = nullptr)
 #In Constructors
 #Line # creates Image from YUV_ColorSpace data in three planes ##
-
-Creates Image from copy of yuvTextures, an array of textures on GPU.
-yuvTextures contain pixels for YUV planes of Image. Returned Image has the dimensions
-yuvTextures[0]. yuvColorSpace describes how YUV colors convert to RGB colors.
-
-#Param context  GPU_Context ##
-#Param yuvColorSpace  one of: kJPEG_SkYUVColorSpace, kRec601_SkYUVColorSpace,
-                              kRec709_SkYUVColorSpace
-##
-#Param yuvTextures     array of YUV textures on GPU ##
-#Param imageOrigin     one of: kBottomLeft_GrSurfaceOrigin, kTopLeft_GrSurfaceOrigin ##
-#Param imageColorSpace range of colors; may be nullptr ##
-
-#Return created Image, or nullptr ##
-
-# seems too complicated to create an example for this
-#ToDo
-should this be moved to chrome only?
-##
+#Populate
 
 #NoExample
 ##
@@ -775,27 +508,7 @@
         const GrBackendTexture& backendTexture, sk_sp<SkColorSpace> imageColorSpace = nullptr);
 #In Constructors
 #Line # creates Image from planar YUV_ColorSpace, stored in texture ##
-
-Creates Image from copy of yuvTextures, an array of textures on GPU.
-yuvTextures contain pixels for YUV planes of Image. Returned Image has the dimensions
-yuvTextures[0] and stores pixels in backendTexture. yuvColorSpace describes how YUV colors
-convert to RGB colors.
-
-#Param context         GPU_Context ##
-#Param yuvColorSpace   one of: kJPEG_SkYUVColorSpace, kRec601_SkYUVColorSpace,
-                               kRec709_SkYUVColorSpace
-##
-#Param yuvTextures     array of YUV textures on GPU ##
-#Param imageOrigin     one of: kBottomLeft_GrSurfaceOrigin, kTopLeft_GrSurfaceOrigin ##
-#Param backendTexture  resource that stores final pixels ##
-#Param imageColorSpace range of colors; may be nullptr ##
-
-#Return               created SkImage, or nullptr ##
-
-# seems too complicated to create an example for this
-#ToDo
-should this be moved to chrome only?
-##
+#Populate
 
 #NoExample
 ##
@@ -813,28 +526,7 @@
                                                    sk_sp<SkColorSpace> imageColorSpace = nullptr)
 #In Constructors
 #Line # creates Image from YUV_ColorSpace data in three planes ##
-
-Creates Image from copy of nv12Textures, an array of textures on GPU.
-nv12Textures[0] contains pixels for YUV_Component_Y plane.
-nv12Textures[1] contains pixels for YUV_Component_U plane,
-followed by pixels for YUV_Component_V plane.
-Returned Image has the dimensions nv12Textures[2].
-yuvColorSpace describes how YUV colors convert to RGB colors.
-
-#Param context         GPU_Context ##
-#Param yuvColorSpace   one of: kJPEG_SkYUVColorSpace, kRec601_SkYUVColorSpace,
-                               kRec709_SkYUVColorSpace
-##
-#Param nv12Textures    array of YUV textures on GPU ##
-#Param imageOrigin     one of: kBottomLeft_GrSurfaceOrigin, kTopLeft_GrSurfaceOrigin ##
-#Param imageColorSpace range of colors; may be nullptr ##
-
-#Return created Image, or nullptr ##
-
-# seems too complicated to create an example for this
-#ToDo
-should this be moved to chrome only?
-##
+#Populate
 
 #NoExample
 ##
@@ -852,29 +544,7 @@
             sk_sp<SkColorSpace> imageColorSpace = nullptr);
 #In Constructors
 #Line # creates Image from planar YUV_ColorSpace, stored in texture ##
-
-Creates Image from copy of nv12Textures, an array of textures on GPU.
-nv12Textures[0] contains pixels for YUV_Component_Y plane.
-nv12Textures[1] contains pixels for YUV_Component_U plane,
-followed by pixels for YUV_Component_V plane.
-Returned Image has the dimensions nv12Textures[2] and stores pixels in backendTexture.
-yuvColorSpace describes how YUV colors convert to RGB colors.
-
-#Param context         GPU_Context ##
-#Param yuvColorSpace   one of: kJPEG_SkYUVColorSpace, kRec601_SkYUVColorSpace,
-                               kRec709_SkYUVColorSpace
-##
-#Param nv12Textures    array of YUV textures on GPU ##
-#Param imageOrigin     one of: kBottomLeft_GrSurfaceOrigin, kTopLeft_GrSurfaceOrigin ##
-#Param backendTexture  resource that stores final pixels ##
-#Param imageColorSpace range of colors; may be nullptr ##
-
-#Return created Image, or nullptr ##
-
-# seems too complicated to create an example for this
-#ToDo
-should this be moved to chrome only?
-##
+#Populate
 
 #NoExample
 ##
@@ -918,21 +588,7 @@
                                           sk_sp<SkColorSpace> colorSpace)
 #In Constructors
 #Line # creates Image from Picture ##
-
-Creates Image from picture. Returned Image width and height are set by dimensions.
-Image draws picture with matrix and paint, set to bitDepth and colorSpace.
-
-If matrix is nullptr, draws with identity Matrix. If paint is nullptr, draws
-with default Paint. colorSpace may be nullptr.
-
-#Param picture  stream of drawing commands ##
-#Param dimensions  width and height ##
-#Param matrix  Matrix to rotate, scale, translate, and so on; may be nullptr ##
-#Param paint  Paint to apply transparency, filtering, and so on; may be nullptr ##
-#Param bitDepth  8-bit integer or 16-bit float: per component ##
-#Param colorSpace  range of colors; may be nullptr ##
-
-#Return created Image, or nullptr ##
+#Populate
 
 #Example
     SkPaint paint;
@@ -969,21 +625,7 @@
         GrSurfaceOrigin surfaceOrigin = kTopLeft_GrSurfaceOrigin)
 #In Constructors
 #Line # creates Image from Android hardware buffer ##
-
-#Bug 7447
-
-Creates Image from Android hardware buffer.
-Returned Image takes a reference on the buffer.
-
-Only available on Android, when __ANDROID_API__ is defined to be 26 or greater.
-
-#Param hardwareBuffer  AHardwareBuffer Android hardware buffer ##
-#Param alphaType  one of: #list_of_alpha_types#
-##
-#Param colorSpace  range of colors; may be nullptr ##
-#Param surfaceOrigin  one of: kBottomLeft_GrSurfaceOrigin, kTopLeft_GrSurfaceOrigin ##
-
-#Return created Image, or nullptr ##
+#Populate
 
 #NoExample
 ##
@@ -1000,9 +642,7 @@
 #Method int width() const
 #In Property
 #Line # returns pixel column count ##
-Returns pixel count in each row.
-
-#Return pixel width in Image ##
+#Populate
 
 #Example
 #Image 4
@@ -1024,9 +664,7 @@
 #Method int height() const
 #In Property
 #Line # returns pixel row count ##
-Returns pixel row count.
-
-#Return pixel height in Image ##
+#Populate
 
 #Example
 #Image 4
@@ -1048,10 +686,7 @@
 #Method SkISize dimensions() const
 #In Property
 #Line # returns width() and height() ##
-
-Returns ISize { width(), height() }.
-
-#Return integral size of width() and height() ##
+#Populate
 
 #Example
 #Image 4
@@ -1073,9 +708,7 @@
 #Method SkIRect bounds() const
 #In Property
 #Line # returns width() and height() as Rectangle ##
-Returns IRect { 0, 0, width(), height() }.
-
-#Return integral rectangle from origin to width() and height() ##
+#Populate
 
 #Example
 #Height 128
@@ -1097,11 +730,7 @@
 #Method uint32_t uniqueID() const
 #In Property
 #Line # returns identifier for Image ##
-Returns value unique to image. Image contents cannot change after Image is
-created. Any operation to create a new Image will receive generate a new
-unique number.
-
-#Return unique identifier ##
+#Populate
 
 #Example
 #Image 5
@@ -1151,10 +780,7 @@
 #Method SkColorType colorType() const
 #In Property
 #Line # returns Color_Type ##
-
-Returns Color_Type if known; otherwise, returns kUnknown_SkColorType.
-
-#Return Color_Type of Image ##
+#Populate
 
 #Example
 #Image 4
@@ -1175,15 +801,7 @@
 #Method SkColorSpace* colorSpace() const
 #In Property
 #Line # returns Color_Space ##
-Returns Color_Space, the range of colors, associated with Image.  The
-reference count of Color_Space is unchanged. The returned Color_Space is
-immutable.
-
-Color_Space returned was passed to an Image constructor,
-or was parsed from encoded data. Color_Space returned may be ignored when Image
-is drawn, depending on the capabilities of the Surface receiving the drawing.
-
-#Return Color_Space in Image, or nullptr ##
+#Populate
 
 #Example
 #Image 3
@@ -1216,17 +834,7 @@
 #Method sk_sp<SkColorSpace> refColorSpace() const
 #In Property
 #Line # returns Image_Info Color_Space ##
-Returns a smart pointer to Color_Space, the range of colors, associated with
-Image.  The smart pointer tracks the number of objects sharing this
-SkColorSpace reference so the memory is released when the owners destruct.
-
-The returned SkColorSpace is immutable.
-
-Color_Space returned was passed to an Image constructor,
-or was parsed from encoded data. Color_Space returned may be ignored when Image
-is drawn, depending on the capabilities of the Surface receiving the drawing.
-
-#Return Color_Space in Image, or nullptr, wrapped in a smart pointer ##
+#Populate
 
 #Example
 #Image 3
@@ -1259,10 +867,7 @@
 #Method bool isAlphaOnly() const
 #In Property
 #Line # returns if pixels represent a transparency mask ##
-Returns true if Image pixels represent transparency only. If true, each pixel
-is packed in 8 bits as defined by kAlpha_8_SkColorType.
-
-#Return true if pixels represent a transparency mask ##
+#Populate
 
 #Example
     uint8_t pmColors = 0;
@@ -1282,9 +887,7 @@
 #Method bool isOpaque() const
 #In Property
 #Line # returns if Alpha_Type is kOpaque_SkAlphaType ##
-Returns true if pixels ignore their Alpha value and are treated as fully opaque.
-
-#Return true if Alpha_Type is kOpaque_SkAlphaType ##
+#Populate
 
 #Example
     auto check_isopaque = [](const SkImageInfo& imageInfo) -> void {
@@ -1311,20 +914,7 @@
                                const SkMatrix* localMatrix = nullptr) const
 #In Constructors
 #Line # creates Shader, Paint element that can tile Image ##
-
-Creates Shader from Image. Shader dimensions are taken from Image. Shader uses
-SkShader::TileMode rules to fill drawn area outside Image. localMatrix permits
-transforming Image before Canvas_Matrix is applied.
-
-#Param tileMode1  tiling on x-axis, one of: SkShader::kClamp_TileMode,
-                  SkShader::kRepeat_TileMode, SkShader::kMirror_TileMode
-##
-#Param tileMode2  tiling on y-axis, one of: SkShader::kClamp_TileMode,
-                  SkShader::kRepeat_TileMode, SkShader::kMirror_TileMode
-##
-#Param localMatrix  Image transformation, or nullptr ##
-
-#Return Shader containing Image ##
+#Populate
 
 #Example
 #Image 4
@@ -1343,14 +933,7 @@
 # ------------------------------------------------------------------------------
 
 #Method sk_sp<SkShader> makeShader(const SkMatrix* localMatrix = nullptr) const
-
-Creates Shader from Image. Shader dimensions are taken from Image. Shader uses
-SkShader::kClamp_TileMode to fill drawn area outside Image. localMatrix permits
-transforming Image before Canvas_Matrix is applied.
-
-#Param localMatrix  Image transformation, or nullptr ##
-
-#Return Shader containing Image ##
+#Populate
 
 #Example
 #Image 5
@@ -1374,13 +957,7 @@
 #Method bool peekPixels(SkPixmap* pixmap) const
 #In Pixels
 #Line # returns Pixmap if possible ##
-Copies Image pixel address, row bytes, and Image_Info to pixmap, if address
-is available, and returns true. If pixel address is not available, return
-false and leave pixmap unchanged.
-
-#Param pixmap  storage for pixel state if pixels are readable; otherwise, ignored ##
-
-#Return true if Image has direct access to pixels ##
+#Populate
 
 #Example
     SkBitmap bitmap;
@@ -1431,10 +1008,7 @@
 #Method bool isTextureBacked() const
 #In Property
 #Line # returns if Image was created from GPU_Texture ##
-Returns true the contents of Image was created on or uploaded to GPU memory,
-and is available as a GPU_Texture.
-
-#Return true if Image is a GPU_Texture ##
+#Populate
 
 #Example
 #Image 5
@@ -1470,17 +1044,7 @@
 #Method bool isValid(GrContext* context) const
 #In Property
 #Line # returns if Image can draw to Raster_Surface or GPU_Context ##
-Returns true if Image can be drawn on either Raster_Surface or GPU_Surface.
-If context is nullptr, tests if Image draws on Raster_Surface;
-otherwise, tests if Image draws on GPU_Surface associated with context.
-
-Image backed by GPU_Texture may become invalid if associated GrContext is
-invalid. Lazy_Image may be invalid and may not draw to Raster_Surface or
-GPU_Surface or both.
-
-#Param context  GPU_Context ##
-
-#Return true if Image can be drawn  ##
+#Populate
 
 #Example
 #Image 5
@@ -1521,21 +1085,7 @@
                                            GrSurfaceOrigin* origin = nullptr) const
 #In Property
 #Line # returns GPU reference to Image as texture ##
-
-Retrieves the back-end texture. If Image has no back-end texture, an invalid
-object is returned. Call GrBackendTexture::isValid to determine if the result
-is valid.
-
-If flushPendingGrContextIO is true, completes deferred I/O operations.
-
-If origin in not nullptr, copies location of content drawn into Image.
-
-#Param flushPendingGrContextIO  flag to flush outstanding requests ##
-#Param origin  storage for one of: kTopLeft_GrSurfaceOrigin,
-               kBottomLeft_GrSurfaceOrigin; or nullptr
-##
-
-#Return back-end API texture handle; invalid on failure ##
+#Populate
 
 #Example
 #Image 3
@@ -1732,36 +1282,7 @@
                      CachingHint cachingHint = kAllow_CachingHint) const
 #In Pixels
 #Line # scales and converts one Image to another ##
-
-Copies Image to dst, scaling pixels to fit dst.width() and dst.height(), and
-converting pixels to match dst.colorType and dst.alphaType. Returns true if
-pixels are copied. Returns false if dst.addr() is nullptr, or dst.rowBytes is
-less than dst SkImageInfo::minRowBytes.
-
-Pixels are copied only if pixel conversion is possible. If Image Color_Type is
-kGray_8_SkColorType, or kAlpha_8_SkColorType; dst.colorType must match.
-If Image Color_Type is kGray_8_SkColorType, dst.colorSpace must match.
-If Image Alpha_Type is kOpaque_SkAlphaType, dst.alphaType must
-match. If Image Color_Space is nullptr, dst.colorSpace must match. Returns
-false if pixel conversion is not possible.
-
-Scales the image, with filterQuality, to match dst.width() and dst.height().
-filterQuality kNone_SkFilterQuality is fastest, typically implemented with
-Filter_Quality_Nearest_Neighbor. kLow_SkFilterQuality is typically implemented with
-Filter_Quality_Bilerp. kMedium_SkFilterQuality is typically implemented with
-Filter_Quality_Bilerp, and Filter_Quality_MipMap when size is reduced.
-kHigh_SkFilterQuality is slowest, typically implemented with Filter_Quality_BiCubic.
-
-If cachingHint is kAllow_CachingHint, pixels may be retained locally.
-If cachingHint is kDisallow_CachingHint, pixels are not added to the local cache.
-
-#Param dst  destination Pixmap: Image_Info, pixels, row bytes ##
-#Param filterQuality  one of: kNone_SkFilterQuality, kLow_SkFilterQuality,
-                      kMedium_SkFilterQuality, kHigh_SkFilterQuality
-##
-#Param cachingHint  one of: kAllow_CachingHint, kDisallow_CachingHint ##
-
-#Return true if pixels are scaled to fit dst ##
+#Populate
 
 #Example
 #Image 3
@@ -1792,28 +1313,7 @@
 #Method sk_sp<SkData> encodeToData(SkEncodedImageFormat encodedImageFormat, int quality) const
 #In Utility
 #Line # returns encoded Image as SkData ##
-Encodes Image pixels, returning result as SkData.
-
-Returns nullptr if encoding fails, or if encodedImageFormat is not supported.
-
-Image 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, encodedImageFormat can
-additionally be one of: SkEncodedImageFormat::kICO, SkEncodedImageFormat::kBMP,
-SkEncodedImageFormat::kGIF.
-
-quality is a platform and format specific metric trading off size and encoding
-error. When used, quality equaling 100 encodes with the least error. quality may
-be ignored by the encoder.
-
-#Param encodedImageFormat  one of: SkEncodedImageFormat::kJPEG, SkEncodedImageFormat::kPNG,
-    SkEncodedImageFormat::kWEBP
- ##
-#Param quality  encoder specific metric with 100 equaling best ##
-
-#Return encoded Image, or nullptr ##
+#Populate
 
 #Example
 #Image 3
@@ -1835,15 +1335,7 @@
 # ------------------------------------------------------------------------------
 
 #Method sk_sp<SkData> encodeToData() const
-
-Encodes Image pixels, returning result as SkData. Returns existing encoded data
-if present; otherwise, Image is encoded with SkEncodedImageFormat::kPNG. Skia
-must be built with SK_HAS_PNG_LIBRARY to encode Image.
-
-Returns nullptr if existing encoded data is missing or invalid, and
-encoding fails.
-
-#Return encoded Image, or nullptr ##
+#Populate
 
 #Example
 #Image 3
@@ -1863,13 +1355,7 @@
 #Method sk_sp<SkData> refEncodedData() const
 #In Utility
 #Line # returns Image encoded in SkData if present ##
-Returns encoded Image pixels as SkData, if Image was created from supported
-encoded stream 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 Image contents are not encoded.
-
-#Return encoded Image, or nullptr ##
+#Populate
 
 #Example
 #Image 3
@@ -1906,15 +1392,7 @@
 #Method sk_sp<SkImage> makeSubset(const SkIRect& subset) const
 #In Constructors
 #Line # creates Image containing part of original ##
-Returns subset of Image. subset must be fully contained by Image dimensions().
-The implementation may share pixels, or may copy them.
-
-Returns nullptr if subset is empty, or subset is not contained by bounds, or
-pixels in Image could not be read or copied.
-
-#Param subset  bounds of returned Image ##
-
-#Return partial or full Image, or nullptr ##
+#Populate
 
 #Example
 #Image 3
@@ -1939,20 +1417,7 @@
                                         GrMipMapped mipMapped = GrMipMapped::kNo) const
 #In Constructors
 #Line # creates Image matching Color_Space if possible ##
-Returns Image backed by GPU_Texture associated with context. Returned Image is
-compatible with Surface created with dstColorSpace. The returned Image respects
-mipMapped setting; if mipMapped equals GrMipMapped::kYes, the backing texture
-allocates Mip_Map levels. Returns original Image if context
-and dstColorSpace match and mipMapped is compatible with backing GPU_Texture.
-
-Returns nullptr if context is nullptr, or if Image was created with another
-GrContext.
-
-#Param context  GPU_Context ##
-#Param dstColorSpace  range of colors of matching Surface on GPU ##
-#Param mipMapped  whether created Image texture must allocate Mip_Map levels ##
-
-#Return created Image, or nullptr ##
+#Populate
 
 #Example
 #Platform gpu
@@ -1988,13 +1453,7 @@
 #Method sk_sp<SkImage> makeNonTextureImage() const
 #In Constructors
 #Line # creates Image without dependency on GPU_Texture ##
-Returns Raster_Image or Lazy_Image. Copies Image backed by GPU_Texture into
-CPU memory if needed. Returns original Image if decoded in Raster_Bitmap,
-or if encoded in a stream.
-
-Returns nullptr if backed by GPU_Texture and copy fails.
-
-#Return Raster_Image, Lazy_Image, or nullptr ##
+#Populate
 
 #Example
 #Image 5
@@ -2029,15 +1488,8 @@
 #Method sk_sp<SkImage> makeRasterImage() const
 #In Constructors
 #Line # creates Image compatible with Raster_Surface if possible ##
-Returns Raster_Image. Copies Image backed by GPU_Texture into CPU memory,
-or decodes Image from Lazy_Image. Returns original Image if decoded in
-Raster_Bitmap.
+#Populate
 
-Returns nullptr if copy, decode, or pixel read fails.
-
-#Return Raster_Image, or nullptr ##
-
-#Bug 7479
 #Example
 #Image 5
 #Platform gpu
@@ -2073,31 +1525,8 @@
                                   SkIPoint* offset) const
 #In Constructors
 #Line # creates filtered, clipped Image ##
+#Populate
 
-Creates filtered Image. filter processes original Image, potentially changing
-color, position, and size. subset is the bounds of original Image processed
-by filter. clipBounds is the expected bounds of the filtered Image. outSubset
-is required storage for the actual bounds of the filtered Image. offset is
-required storage for translation of returned Image.
-
-Returns nullptr if Image could not be created. If nullptr is returned, outSubset
-and offset are undefined.
-
-Useful for animation of SkImageFilter that varies size from frame to frame.
-Returned Image is created larger than required by filter so that GPU_Texture
-can be reused with different sized effects. outSubset describes the valid bounds
-of GPU_Texture returned. offset translates the returned Image to keep subsequent
-animation frames aligned with respect to each other.
-
-#Param filter  how Image is sampled when transformed ##
-#Param subset  bounds of Image processed by filter ##
-#Param clipBounds  expected bounds of filtered Image ##
-#Param outSubset  storage for returned Image bounds ##
-#Param offset  storage for returned Image translation ##
-
-#Return filtered Image, or nullptr ##
-
-# Duration 5 breaks fiddlecli
 #Example
 #Description
 In each frame of the animation, filtered Image is drawn in a different location.
@@ -2152,28 +1581,7 @@
                                               BackendTextureReleaseProc* backendTextureReleaseProc)
 #In Constructors
 #Line # creates GPU_Texture from Image ##
-
-Creates a GrBackendTexture from the provided SkImage. Returns true and
-stores result in backendTexture and backendTextureReleaseProc if
-texture is created; otherwise, returns false and leaves
-backendTexture and backendTextureReleaseProc unmodified.
-
-Call backendTextureReleaseProc after deleting backendTexture.
-backendTextureReleaseProc cleans up auxiliary data related to returned
-backendTexture. The caller must delete returned backendTexture after use.
-
-If Image is both texture backed and singly referenced, image is returned in
-backendTexture without conversion or making a copy. Image is singly referenced
-if its was transferred solely using std::move().
-
-If Image is not texture backed, returns texture with Image contents.
-
-#Param context  GPU_Context ##
-#Param image  Image used for texture ##
-#Param backendTexture  storage for back-end texture ##
-#Param backendTextureReleaseProc  storage for clean up function ##
-
-#Return true if back-end texture was created ##
+#Populate
 
 #Example
 #Platform gpu
@@ -2233,15 +1641,7 @@
 #Method bool asLegacyBitmap(SkBitmap* bitmap, LegacyBitmapMode legacyBitmapMode = kRO_LegacyBitmapMode) const
 #In Constructors
 #Line # returns as Raster_Bitmap ##
-Creates raster Bitmap with same pixels as Image. If legacyBitmapMode is
-kRO_LegacyBitmapMode, returned bitmap is read-only and immutable.
-Returns true if Bitmap is stored in bitmap. Returns false and resets bitmap if
-Bitmap write did not succeed.
-
-#Param bitmap  storage for legacy Bitmap ##
-#Param legacyBitmapMode  to be deprecated ##
-
-#Return true if Bitmap was created ##
+#Populate
 
 #Example
 #Image 4
@@ -2272,10 +1672,7 @@
 #Method bool isLazyGenerated() const
 #In Property
 #Line # returns if Image is created as needed ##
-Returns true if Image is backed by an image-generator or other service that creates
-and caches its pixels or texture on-demand.
-
-#Return true if Image is created as needed ##
+#Populate
 
 #Example
 #Height 80
@@ -2346,17 +1743,7 @@
 #Method sk_sp<SkImage> makeColorSpace(sk_sp<SkColorSpace> target) const
 #In Constructors
 #Line # creates Image matching Color_Space if possible ##
-
-Creates Image in target Color_Space.
-Returns nullptr if Image could not be created.
-
-Returns original Image if it is in target Color_Space.
-Otherwise, converts pixels from Image Color_Space to target Color_Space.
-If Image colorSpace returns nullptr, Image Color_Space is assumed to be sRGB.
-
-#Param target  Color_Space describing color range of returned Image ##
-
-#Return created Image in target Color_Space ##
+#Populate
 
 #Example
 #Image 5
diff --git a/docs/SkMatrix_Reference.bmh b/docs/SkMatrix_Reference.bmh
index 0d5475b..17ceab5 100644
--- a/docs/SkMatrix_Reference.bmh
+++ b/docs/SkMatrix_Reference.bmh
@@ -25,19 +25,7 @@
 #Method static SkMatrix MakeScale(SkScalar sx, SkScalar sy)
 #In Constructors
 #Line # constructs from scale in x and y ##
-Sets Matrix to scale by (sx, sy). Returned matrix is:
-
-#Code
-#Literal
-| sx  0  0 |
-|  0 sy  0 |
-|  0  0  1 |
-##
-
-#Param sx  horizontal scale factor ##
-#Param sy  vertical scale factor ##
-
-#Return  Matrix with scale ##
+#Populate
 
 #Example
 #Image 4
@@ -52,19 +40,7 @@
 # ------------------------------------------------------------------------------
 
 #Method static SkMatrix MakeScale(SkScalar scale)
-
-Sets Matrix to scale by (scale, scale). Returned matrix is:
-
-#Code
-#Literal
-| scale   0   0 |
-|   0   scale 0 |
-|   0     0   1 |
-##
-
-#Param scale  horizontal and vertical scale factor ##
-
-#Return  Matrix with scale ##
+#Populate
 
 #Example
 #Image 4
@@ -81,19 +57,7 @@
 #Method static SkMatrix MakeTrans(SkScalar dx, SkScalar dy)
 #In Constructors
 #Line # constructs from translate in x and y ##
-Sets Matrix to translate by (dx, dy). Returned matrix is:
-
-#Code
-#Literal
-| 1 0 dx |
-| 0 1 dy |
-| 0 0  1 |
-##
-
-#Param dx  horizontal translation ##
-#Param dy  vertical translation ##
-
-#Return  Matrix with translation ##
+#Populate
 
 #Example
 #Image 4
@@ -115,28 +79,7 @@
                                                       SkScalar pers0, SkScalar pers1, SkScalar pers2)
 #In Constructors
 #Line # constructs all nine values ##
-
-
-Sets Matrix to:
-
-#Code
-#Literal
-| scaleX  skewX transX |
-|  skewY scaleY transY |
-|  pers0  pers1  pers2 |
-##
-
-#Param scaleX  horizontal scale factor ##
-#Param skewX   horizontal skew factor ##
-#Param transX  horizontal translation ##
-#Param skewY   vertical skew factor ##
-#Param scaleY  vertical scale factor ##
-#Param transY  vertical translation ##
-#Param pers0   input x-axis perspective factor ##
-#Param pers1   input y-axis perspective factor ##
-#Param pers2   perspective scale factor ##
-
-#Return  Matrix constructed from parameters ##
+#Populate
 
 #Example
     SkPaint p;
@@ -232,14 +175,7 @@
 #Method TypeMask getType() const
 #In Property
 #Line # returns transform complexity ##
-Returns a bit field describing the transformations the matrix may
-perform. The bit field is computed conservatively, so it may include
-false positives. For example, when kPerspective_Mask is set, all
-other bits are set.
-
-#Return  kIdentity_Mask, or combinations of: kTranslate_Mask, kScale_Mask,
-         kAffine_Mask, kPerspective_Mask
-##
+#Populate
 
 #Example
 SkMatrix matrix;
@@ -262,16 +198,7 @@
 #Method bool isIdentity() const
 #In Property
 #Line # returns if matrix equals the identity Matrix  ##
-Returns true if Matrix is identity.  Identity matrix is:
-
-#Code
-#Literal
-| 1 0 0 |
-| 0 1 0 |
-| 0 0 1 |
-##
-
-#Return  true if Matrix has no effect ##
+#Populate
 
 #Example
 SkMatrix matrix;
@@ -294,17 +221,7 @@
 #Method bool isScaleTranslate() const
 #In Property
 #Line # returns if transform is limited to scale and translate ##
-Returns true if Matrix at most scales and translates. Matrix may be identity,
-contain only scale elements, only translate elements, or both. Matrix form is:
-
-#Code
-#Literal
-| scale-x    0    translate-x |
-|    0    scale-y translate-y |
-|    0       0         1      |
-##
-
-#Return  true if Matrix is identity; or scales, translates, or both ##
+#Populate
 
 #Example
 SkMatrix matrix;
@@ -331,16 +248,7 @@
 #Method bool isTranslate() const
 #In Property
 #Line # returns if transform is limited to translate ##
-Returns true if Matrix is identity, or translates. Matrix form is:
-
-#Code
-#Literal
-| 1 0 translate-x |
-| 0 1 translate-y |
-| 0 0      1      |
-##
-
-#Return  true if Matrix is identity, or translates ##
+#Populate
 
 #Example
 SkMatrix matrix;
@@ -367,32 +275,7 @@
 #Method bool rectStaysRect() const
 #In Property
 #Line # returns if mapped Rect can be represented by another Rect ##
-Returns true Matrix maps Rect to another Rect. If true, Matrix is identity,
-or scales, or rotates a multiple of 90 degrees, or mirrors on axes. In all
-cases, Matrix may also have translation. Matrix form is either:
-
-#Code
-#Literal
-| scale-x    0    translate-x |
-|    0    scale-y translate-y |
-|    0       0         1      |
-##
-
-or
-
-#Code
-#Literal
-|    0     rotate-x translate-x |
-| rotate-y    0     translate-y |
-|    0        0          1      |
-##
-
-for non-zero values of scale-x, scale-y, rotate-x, and rotate-y.
-
-Also called preservesAxisAlignment; use the one that provides better inline
-documentation.
-
-#Return  true if Matrix maps one Rect into another  ##
+#Populate
 
 #Example
 SkMatrix matrix;
@@ -417,33 +300,7 @@
 #Method bool preservesAxisAlignment() const
 #In Property
 #Line # returns if mapping restricts to 90 degree multiples and mirroring ##
-
-Returns true Matrix maps Rect to another Rect. If true, Matrix is identity,
-or scales, or rotates a multiple of 90 degrees, or mirrors on axes. In all
-cases, Matrix may also have translation. Matrix form is either:
-
-#Code
-#Literal
-| scale-x    0    translate-x |
-|    0    scale-y translate-y |
-|    0       0         1      |
-##
-
-or
-
-#Code
-#Literal
-|    0     rotate-x translate-x |
-| rotate-y    0     translate-y |
-|    0        0          1      |
-##
-
-for non-zero values of scale-x, scale-y, rotate-x, and rotate-y.
-
-Also called rectStaysRect; use the one that provides better inline
-documentation.
-
-#Return  true if Matrix maps one Rect into another  ##
+#Populate
 
 #Example
 SkMatrix matrix;
@@ -468,19 +325,7 @@
 #Method bool hasPerspective() const
 #In Property
 #Line # returns if transform includes perspective ##
-Returns true if the matrix contains perspective elements. Matrix form is:
-
-#Code
-#Literal
-|       --            --              --          |
-|       --            --              --          |
-| perspective-x  perspective-y  perspective-scale |
-##
-
-where perspective-x or perspective-y is non-zero, or perspective-scale is
-not one. All other elements may have any value.
-
-#Return  true if Matrix is in most general form ##
+#Populate
 
 #Example
 #Image 4
@@ -507,20 +352,7 @@
 #Method bool isSimilarity(SkScalar tol = SK_ScalarNearlyZero) const
 #In Property
 #Line # returns if transform is limited to square scale and rotation ##
-Returns true if Matrix contains only translation, rotation, reflection, and
-uniform scale.
-Returns false if Matrix contains different scales, skewing, perspective, or
-degenerate forms that collapse to a line or point.
-
-Describes that the Matrix makes rendering with and without the matrix are
-visually alike; a transformed circle remains a circle. Mathematically, this is
-referred to as similarity of a Euclidean_Space, or a similarity transformation.
-
-Preserves right angles, keeping the arms of the angle equal lengths.
-
-#Param tol  to be deprecated ##
-
-#Return  true if Matrix only rotates, uniformly scales, translates ##
+#Populate
 
 #Example
 #Description
@@ -559,17 +391,7 @@
 #Method bool preservesRightAngles(SkScalar tol = SK_ScalarNearlyZero) const
 #In Property
 #Line # returns if mapped 90 angle remains 90 degrees ##
-Returns true if Matrix contains only translation, rotation, reflection, and
-scale. Scale may differ along rotated axes.
-Returns false if Matrix skewing, perspective, or degenerate forms that collapse
-to a line or point.
-
-Preserves right angles, but not requiring that the arms of the angle
-retain equal lengths.
-
-#Param tol  to be deprecated ##
-
-#Return  true if Matrix only rotates, scales, translates ##
+#Populate
 
 #Example
 #Height 128
@@ -713,14 +535,7 @@
 #Method SkScalar operator[](int index)_const
 
 #Line # returns Matrix value ##
-Returns one matrix value. Asserts if index is out of range and SK_DEBUG is
-defined.
-
-#Param index  one of: kMScaleX, kMSkewX, kMTransX, kMSkewY, kMScaleY, kMTransY,
-                      kMPersp0, kMPersp1, kMPersp2
-##
-
-#Return  value corresponding to index ##
+#Populate
 
 #Example
 SkMatrix matrix;
@@ -742,14 +557,7 @@
 #Method SkScalar get(int index) const
 #In Property
 #Line # returns one of nine Matrix values ##
-Returns one matrix value. Asserts if index is out of range and SK_DEBUG is
-defined.
-
-#Param index  one of: kMScaleX, kMSkewX, kMTransX, kMSkewY, kMScaleY, kMTransY,
-                      kMPersp0, kMPersp1, kMPersp2
-##
-
-#Return  value corresponding to index ##
+#Populate
 
 #Example
 SkMatrix matrix;
@@ -773,10 +581,7 @@
 #Method SkScalar getScaleX() const
 #In Property
 #Line # returns horizontal scale factor ##
-Returns scale factor multiplied by x-axis input, contributing to x-axis output.
-With mapPoints, scales Points along the x-axis.
-
-#Return  horizontal scale factor ##
+#Populate
 
 #Example
 SkMatrix matrix;
@@ -796,10 +601,7 @@
 #Method SkScalar getScaleY() const
 #In Property
 #Line # returns vertical scale factor ##
-Returns scale factor multiplied by y-axis input, contributing to y-axis output.
-With mapPoints, scales Points along the y-axis.
-
-#Return  vertical scale factor ##
+#Populate
 
 #Example
 SkMatrix matrix;
@@ -819,11 +621,7 @@
 #Method SkScalar getSkewY() const
 #In Property
 #Line # returns vertical skew factor ##
-Returns scale factor multiplied by x-axis input, contributing to y-axis output.
-With mapPoints, skews Points along the y-axis.
-Skewing both axes can rotate Points.
-
-#Return  vertical skew factor ##
+#Populate
 
 #Example
 SkMatrix matrix;
@@ -843,11 +641,7 @@
 #Method SkScalar getSkewX() const
 #In Property
 #Line # returns horizontal skew factor ##
-Returns scale factor multiplied by y-axis input, contributing to x-axis output.
-With mapPoints, skews Points along the x-axis.
-Skewing both axes can rotate Points.
-
-#Return  horizontal scale factor ##
+#Populate
 
 #Example
 SkMatrix matrix;
@@ -867,10 +661,7 @@
 #Method SkScalar getTranslateX() const
 #In Property
 #Line # returns horizontal translation ##
-Returns translation contributing to x-axis output.
-With mapPoints, moves Points along the x-axis.
-
-#Return  horizontal translation factor ##
+#Populate
 
 #Example
 SkMatrix matrix;
@@ -890,10 +681,7 @@
 #Method SkScalar getTranslateY() const
 #In Property
 #Line # returns vertical translation ##
-Returns translation contributing to y-axis output.
-With mapPoints, moves Points along the y-axis.
-
-#Return  vertical translation factor ##
+#Populate
 
 #Example
 SkMatrix matrix;
@@ -913,9 +701,7 @@
 #Method SkScalar getPerspX() const
 #In Property
 #Line # returns input x perspective factor ##
-Returns factor scaling input x-axis relative to input y-axis.
-
-#Return  input x-axis perspective factor ##
+#Populate
 
 #Example
     SkMatrix m;
@@ -944,10 +730,7 @@
 #Method SkScalar getPerspY() const
 #In Property
 #Line # returns input y perspective factor ##
-
-Returns factor scaling input y-axis relative to input x-axis.
-
-#Return  input y-axis perspective factor ##
+#Populate
 
 #Example
     SkMatrix m;
@@ -976,17 +759,7 @@
 #Method SkScalar& operator[](int index)
 
 #Line # returns writable reference to Matrix value ##
-Returns writable Matrix value. Asserts if index is out of range and SK_DEBUG is
-defined. Clears internal cache anticipating that caller will change Matrix value.
-
-Next call to read Matrix state may recompute cache; subsequent writes to Matrix
-value must be followed by dirtyMatrixTypeCache.
-
-#Param index  one of: kMScaleX, kMSkewX, kMTransX, kMSkewY, kMScaleY, kMTransY,
-                      kMPersp0, kMPersp1, kMPersp2
-##
-
-#Return  writable value corresponding to index ##
+#Populate
 
 #Example
 SkMatrix matrix;
@@ -1019,13 +792,7 @@
 #Method void set(int index, SkScalar value)
 #In Set
 #Line # sets one value ##
-Sets Matrix value. Asserts if index is out of range and SK_DEBUG is
-defined. Safer than operator[]; internal cache is always maintained.
-
-#Param index  one of: kMScaleX, kMSkewX, kMTransX, kMSkewY, kMScaleY, kMTransY,
-                      kMPersp0, kMPersp1, kMPersp2
-##
-#Param value  Scalar to store in Matrix ##
+#Populate
 
 #Example
 SkMatrix matrix;
@@ -1051,9 +818,7 @@
 #Method void setScaleX(SkScalar v)
 #In Set
 #Line # sets horizontal scale factor ##
-Sets horizontal scale factor.
-
-#Param v  horizontal scale factor to store ##
+#Populate
 
 #Example
 #Height 64
@@ -1077,9 +842,7 @@
 #Method void setScaleY(SkScalar v)
 #In Set
 #Line # sets vertical scale factor ##
-Sets vertical scale factor.
-
-#Param v  vertical scale factor to store ##
+#Populate
 
 #Example
 #Height 192
@@ -1103,9 +866,7 @@
 #Method void setSkewY(SkScalar v)
 #In Set
 #Line # sets vertical skew factor ##
-Sets vertical skew factor.
-
-#Param v  vertical skew factor to store ##
+#Populate
 
 #Example
 #Height 96
@@ -1129,9 +890,7 @@
 #Method void setSkewX(SkScalar v)
 #In Set
 #Line # sets horizontal skew factor ##
-Sets horizontal skew factor.
-
-#Param v  horizontal skew factor to store ##
+#Populate
 
 #Example
 #Height 64
@@ -1155,9 +914,7 @@
 #Method void setTranslateX(SkScalar v)
 #In Set
 #Line # sets horizontal translation ##
-Sets horizontal translation.
-
-#Param v  horizontal translation to store ##
+#Populate
 
 #Example
 #Height 48
@@ -1181,9 +938,7 @@
 #Method void setTranslateY(SkScalar v)
 #In Set
 #Line # sets vertical translation ##
-Sets vertical translation.
-
-#Param v  vertical translation to store ##
+#Populate
 
 #Example
 #Height 64
@@ -1207,10 +962,7 @@
 #Method void setPerspX(SkScalar v)
 #In Set
 #Line # sets input x perspective factor ##
-Sets input x-axis perspective factor, which causes mapXY to vary input x-axis values
-inversely proportional to input y-axis values.
-
-#Param v  perspective factor ##
+#Populate
 
 #Example
 #Image 4
@@ -1235,10 +987,7 @@
 #Method void setPerspY(SkScalar v)
 #In Set
 #Line # sets input y perspective factor ##
-Sets input y-axis perspective factor, which causes mapXY to vary input y-axis values
-inversely proportional to input x-axis values.
-
-#Param v  perspective factor ##
+#Populate
 
 #Example
 #Image 4
@@ -1265,25 +1014,7 @@
                 SkScalar persp0, SkScalar persp1, SkScalar persp2)
 #In Set
 #Line # sets all values from parameters ##
-
-Sets all values from parameters. Sets matrix to:
-
-#Code
-#Literal
-| scaleX  skewX transX |
-|  skewY scaleY transY |
-| persp0 persp1 persp2 |
-##
-
-#Param scaleX  horizontal scale factor to store ##
-#Param skewX  horizontal skew factor to store ##
-#Param transX  horizontal translation to store ##
-#Param skewY  vertical skew factor to store ##
-#Param scaleY  vertical scale factor to store ##
-#Param transY  vertical translation to store ##
-#Param persp0  input x-axis values perspective factor to store ##
-#Param persp1  input y-axis values perspective factor to store ##
-#Param persp2  perspective scale factor to store ##
+#Populate
 
 #Example
 #Height 128
@@ -1310,11 +1041,7 @@
 #Method void get9(SkScalar buffer[9]) const
 #In Property
 #Line # returns all nine Matrix values ##
-Copies nine Scalar values contained by Matrix into buffer, in member value
-ascending order: kMScaleX, kMSkewX, kMTransX, kMSkewY, kMScaleY, kMTransY,
-kMPersp0, kMPersp1, kMPersp2.
-
-#Param buffer  storage for nine Scalar values ##
+#Populate
 
 #Example
 SkMatrix matrix = SkMatrix::MakeRectToRect({0, 0, 1, 1}, {3, 4, 7, 9},
@@ -1340,24 +1067,7 @@
 #In Set
 #In Constructors
 #Line # sets all values from Scalar array ##
-Sets Matrix to nine Scalar values in buffer, in member value ascending order:
-kMScaleX, kMSkewX, kMTransX, kMSkewY, kMScaleY, kMTransY, kMPersp0, kMPersp1,
-kMPersp2.
-
-Sets matrix to:
-
-#Code
-#Literal
-| buffer[0] buffer[1] buffer[2] |
-| buffer[3] buffer[4] buffer[5] |
-| buffer[6] buffer[7] buffer[8] |
-##
-
-In the future, set9 followed by get9 may not return the same values. Since Matrix
-maps non-homogeneous coordinates, scaling all nine values produces an equivalent
-transformation, possibly improving precision.
-
-#Param buffer  nine Scalar values ##
+#Populate
 
 #Example
 #Image 4
@@ -1378,17 +1088,7 @@
 #In Constructors
 #In Set
 #Line # sets Matrix to identity ##
-Sets Matrix to identity; which has no effect on mapped Points. Sets Matrix to:
-
-#Code
-#Literal
-| 1 0 0 |
-| 0 1 0 |
-| 0 0 1 |
-##
-
-Also called setIdentity(); use the one that provides better inline
-documentation.
+#Populate
 
 #Example
 SkMatrix m;
@@ -1409,17 +1109,7 @@
 #In Constructors
 #In Set
 #Line # sets Matrix to identity ##
-Sets Matrix to identity; which has no effect on mapped Points. Sets Matrix to:
-
-#Code
-#Literal
-| 1 0 0 |
-| 0 1 0 |
-| 0 0 1 |
-##
-
-Also called reset(); use the one that provides better inline
-documentation.
+#Populate
 
 #Example
 SkMatrix m;
@@ -1440,10 +1130,7 @@
 #In Constructors
 #In Set
 #Line # sets to translate in x and y ##
-Sets Matrix to translate by (dx, dy).
-
-#Param dx  horizontal translation ##
-#Param dy  vertical translation ##
+#Populate
 
 #Example
 #Height 64
@@ -1464,10 +1151,7 @@
 # ------------------------------------------------------------------------------
 
 #Method void setTranslate(const SkVector& v)
-
-Sets Matrix to translate by (v.fX, v.fY).
-
-#Param v  Vector containing horizontal and vertical translation ##
+#Populate
 
 #Example
 #Height 64
@@ -1491,13 +1175,7 @@
 #In Constructors
 #In Set
 #Line # sets to scale about a point ##
-Sets Matrix to scale by sx and sy, about a pivot point at (px, py).
-The pivot point is unchanged when mapped with Matrix.
-
-#Param sx  horizontal scale factor ##
-#Param sy  vertical scale factor ##
-#Param px  pivot x ##
-#Param py  pivot y ##
+#Populate
 
 #Example
 #Height 128
@@ -1522,11 +1200,7 @@
 # ------------------------------------------------------------------------------
 
 #Method void setScale(SkScalar sx, SkScalar sy)
-
-Sets Matrix to scale by sx and sy about at pivot point at (0, 0).
-
-#Param sx  horizontal scale factor ##
-#Param sy  vertical scale factor ##
+#Populate
 
 #Example
 #Height 128
@@ -1555,14 +1229,7 @@
 #In Constructors
 #In Set
 #Line # sets to rotate about a point ##
-Sets Matrix to rotate by degrees about a pivot point at (px, py).
-The pivot point is unchanged when mapped with Matrix.
-
-Positive degrees rotates clockwise.
-
-#Param degrees  angle of axes relative to upright axes ##
-#Param px  pivot x ##
-#Param py  pivot y ##
+#Populate
 
 #Example
 #Height 128
@@ -1585,11 +1252,7 @@
 # ------------------------------------------------------------------------------
 
 #Method void setRotate(SkScalar degrees)
-
-Sets Matrix to rotate by degrees about a pivot point at (0, 0).
-Positive degrees rotates clockwise.
-
-#Param degrees  angle of axes relative to upright axes ##
+#Populate
 
 #Example
 #Height 128
@@ -1618,17 +1281,7 @@
 #In Constructors
 #In Set
 #Line # sets to rotate and scale about a point ##
-
-Sets Matrix to rotate by sinValue and cosValue, about a pivot point at (px, py).
-The pivot point is unchanged when mapped with Matrix.
-
-Vector (sinValue, cosValue) describes the angle of rotation relative to (0, 1).
-Vector length specifies scale.
-
-#Param sinValue  rotation vector x-axis component ##
-#Param cosValue  rotation vector y-axis component ##
-#Param px  pivot x-axis ##
-#Param py  pivot y-axis ##
+#Populate
 
 #Example
 #Height 128
@@ -1651,14 +1304,7 @@
 # ------------------------------------------------------------------------------
 
 #Method void setSinCos(SkScalar sinValue, SkScalar cosValue)
-
-Sets Matrix to rotate by sinValue and cosValue, about a pivot point at (0, 0).
-
-Vector (sinValue, cosValue) describes the angle of rotation relative to (0, 1).
-Vector length specifies scale.
-
-#Param sinValue  rotation vector x-axis component ##
-#Param cosValue  rotation vector y-axis component ##
+#Populate
 
 #Example
 #Description
@@ -1689,15 +1335,7 @@
 #In Constructors
 #In Set
 #Line # sets to rotate, scale, and translate ##
-Sets Matrix to rotate, scale, and translate using a compressed matrix form.
-
-Vector (rsxForm.fSSin, rsxForm.fSCos) describes the angle of rotation relative
-to (0, 1). Vector length specifies scale. Mapped point is rotated and scaled
-by Vector, then translated by (rsxForm.fTx, rsxForm.fTy).
-
-#Param rsxForm  compressed RSXform matrix ##
-
-#Return  reference to Matrix ##
+#Populate
 
 #Example
 #Description
@@ -1727,13 +1365,7 @@
 #In Constructors
 #In Set
 #Line # sets to skew about a point ##
-Sets Matrix to skew by kx and ky, about a pivot point at (px, py).
-The pivot point is unchanged when mapped with Matrix.
-
-#Param kx  horizontal skew factor ##
-#Param ky  vertical skew factor ##
-#Param px  pivot x ##
-#Param py  pivot y ##
+#Populate
 
 #Example
     SkPaint p;
@@ -1757,11 +1389,7 @@
 # ------------------------------------------------------------------------------
 
 #Method void setSkew(SkScalar kx, SkScalar ky)
-
-Sets Matrix to skew by kx and ky, about a pivot point at (0, 0).
-
-#Param kx  horizontal skew factor ##
-#Param ky  vertical skew factor ##
+#Populate
 
 #Example
     SkPaint p;
@@ -1789,28 +1417,7 @@
 #In Constructors
 #In Set
 #Line # sets to Matrix parameter multiplied by Matrix parameter ##
-Sets Matrix to Matrix a multiplied by Matrix b. Either a or b may be this.
-
-Given:
-
-#Code
-#Literal
-    | A B C |      | J K L |
-a = | D E F |, b = | M N O |
-    | G H I |      | P Q R |
-##
-
-sets Matrix to:
-
-#Code
-#Literal
-        | A B C |   | J K L |   | AJ+BM+CP AK+BN+CQ AL+BO+CR |
-a * b = | D E F | * | M N O | = | DJ+EM+FP DK+EN+FQ DL+EO+FR |
-        | G H I |   | P Q R |   | GJ+HM+IP GK+HN+IQ GL+HO+IR |
-##
-
-#Param a  Matrix on left side of multiply expression ##
-#Param b  Matrix on right side of multiply expression ##
+#Populate
 
 #Example
 #Image 3
@@ -1838,29 +1445,7 @@
 #In Set
 #In Operators
 #Line # pre-multiplies Matrix by translation ##
-Sets Matrix to Matrix multiplied by Matrix constructed from translation (dx, dy).
-This can be thought of as moving the point to be mapped before applying Matrix.
-
-Given:
-
-#Code
-#Literal
-         | A B C |               | 1 0 dx |
-Matrix = | D E F |,  T(dx, dy) = | 0 1 dy |
-         | G H I |               | 0 0  1 |
-##
-
-sets Matrix to:
-
-#Code
-#Literal
-                     | A B C | | 1 0 dx |   | A B A*dx+B*dy+C |
-Matrix * T(dx, dy) = | D E F | | 0 1 dy | = | D E D*dx+E*dy+F |
-                     | G H I | | 0 0  1 |   | G H G*dx+H*dy+I |
-##
-
-#Param dx  x-axis translation before applying Matrix ##
-#Param dy  y-axis translation before applying Matrix ##
+#Populate
 
 #Example
 #Height 160
@@ -1896,40 +1481,7 @@
 #In Set
 #In Operators
 #Line # pre-multiplies Matrix by scale ##
-Sets Matrix to Matrix multiplied by Matrix constructed from scaling by (sx, sy)
-about pivot point (px, py).
-This can be thought of as scaling about a pivot point before applying Matrix.
-
-Given:
-
-#Code
-#Literal
-         | A B C |                       | sx  0 dx |
-Matrix = | D E F |,  S(sx, sy, px, py) = |  0 sy dy |
-         | G H I |                       |  0  0  1 |
-##
-
-where
-
-#Code
-#Literal
-dx = px - sx * px
-dy = py - sy * py
-##
-
-sets Matrix to:
-
-#Code
-#Literal
-                             | A B C | | sx  0 dx |   | A*sx B*sy A*dx+B*dy+C |
-Matrix * S(sx, sy, px, py) = | D E F | |  0 sy dy | = | D*sx E*sy D*dx+E*dy+F |
-                             | G H I | |  0  0  1 |   | G*sx H*sy G*dx+H*dy+I |
-##
-
-#Param sx  horizontal scale factor ##
-#Param sy  vertical scale factor ##
-#Param px  pivot x ##
-#Param py  pivot y ##
+#Populate
 
 #Example
 #Image 3
@@ -1951,30 +1503,7 @@
 #Method void preScale(SkScalar sx, SkScalar sy)
 #In Set
 #In Operators
-Sets Matrix to Matrix multiplied by Matrix constructed from scaling by (sx, sy)
-about pivot point (0, 0).
-This can be thought of as scaling about the origin before applying Matrix.
-
-Given:
-
-#Code
-#Literal
-         | A B C |               | sx  0  0 |
-Matrix = | D E F |,  S(sx, sy) = |  0 sy  0 |
-         | G H I |               |  0  0  1 |
-##
-
-sets Matrix to:
-
-#Code
-#Literal
-                     | A B C | | sx  0  0 |   | A*sx B*sy C |
-Matrix * S(sx, sy) = | D E F | |  0 sy  0 | = | D*sx E*sy F |
-                     | G H I | |  0  0  1 |   | G*sx H*sy I |
-##
-
-#Param sx  horizontal scale factor ##
-#Param sy  vertical scale factor ##
+#Populate
 
 #Example
 #Image 3
@@ -1997,43 +1526,7 @@
 #In Set
 #In Operators
 #Line # pre-multiplies Matrix by rotation ##
-Sets Matrix to Matrix multiplied by Matrix constructed from rotating by degrees
-about pivot point (px, py).
-This can be thought of as rotating about a pivot point before applying Matrix.
-
-Positive degrees rotates clockwise.
-
-Given:
-
-#Code
-#Literal
-         | A B C |                        | c -s dx |
-Matrix = | D E F |,  R(degrees, px, py) = | s  c dy |
-         | G H I |                        | 0  0  1 |
-##
-
-where
-
-#Code
-#Literal
-c  = cos(degrees)
-s  = sin(degrees)
-dx =  s * py + (1 - c) * px
-dy = -s * px + (1 - c) * py
-##
-
-sets Matrix to:
-
-#Code
-#Literal
-                              | A B C | | c -s dx |   | Ac+Bs -As+Bc A*dx+B*dy+C |
-Matrix * R(degrees, px, py) = | D E F | | s  c dy | = | Dc+Es -Ds+Ec D*dx+E*dy+F |
-                              | G H I | | 0  0  1 |   | Gc+Hs -Gs+Hc G*dx+H*dy+I |
-##
-
-#Param degrees  angle of axes relative to upright axes ##
-#Param px  pivot x ##
-#Param py  pivot y ##
+#Populate
 
 #Example
 #Image 3
@@ -2053,40 +1546,7 @@
 # ------------------------------------------------------------------------------
 
 #Method void preRotate(SkScalar degrees)
-
-Sets Matrix to Matrix multiplied by Matrix constructed from rotating by degrees
-about pivot point (0, 0).
-This can be thought of as rotating about the origin before applying Matrix.
-
-Positive degrees rotates clockwise.
-
-Given:
-
-#Code
-#Literal
-         | A B C |                        | c -s 0 |
-Matrix = | D E F |,  R(degrees, px, py) = | s  c 0 |
-         | G H I |                        | 0  0 1 |
-##
-
-where
-
-#Code
-#Literal
-c  = cos(degrees)
-s  = sin(degrees)
-##
-
-sets Matrix to:
-
-#Code
-#Literal
-                              | A B C | | c -s 0 |   | Ac+Bs -As+Bc C |
-Matrix * R(degrees, px, py) = | D E F | | s  c 0 | = | Dc+Es -Ds+Ec F |
-                              | G H I | | 0  0 1 |   | Gc+Hs -Gs+Hc I |
-##
-
-#Param degrees  angle of axes relative to upright axes ##
+#Populate
 
 #Example
 #Image 3
@@ -2109,40 +1569,7 @@
 #In Set
 #In Operators
 #Line # pre-multiplies Matrix by skew ##
-Sets Matrix to Matrix multiplied by Matrix constructed from skewing by (kx, ky)
-about pivot point (px, py).
-This can be thought of as skewing about a pivot point before applying Matrix.
-
-Given:
-
-#Code
-#Literal
-         | A B C |                       |  1 kx dx |
-Matrix = | D E F |,  K(kx, ky, px, py) = | ky  1 dy |
-         | G H I |                       |  0  0  1 |
-##
-
-where
-
-#Code
-#Literal
-dx = -kx * py
-dy = -ky * px
-##
-
-sets Matrix to:
-
-#Code
-#Literal
-                             | A B C | |  1 kx dx |   | A+B*ky A*kx+B A*dx+B*dy+C |
-Matrix * K(kx, ky, px, py) = | D E F | | ky  1 dy | = | D+E*ky D*kx+E D*dx+E*dy+F |
-                             | G H I | |  0  0  1 |   | G+H*ky G*kx+H G*dx+H*dy+I |
-##
-
-#Param kx  horizontal skew factor ##
-#Param ky  vertical skew factor ##
-#Param px  pivot x ##
-#Param py  pivot y ##
+#Populate
 
 #Example
 #Image 3
@@ -2162,31 +1589,7 @@
 # ------------------------------------------------------------------------------
 
 #Method void preSkew(SkScalar kx, SkScalar ky)
-
-Sets Matrix to Matrix multiplied by Matrix constructed from skewing by (kx, ky)
-about pivot point (0, 0).
-This can be thought of as skewing about the origin before applying Matrix.
-
-Given:
-
-#Code
-#Literal
-         | A B C |               |  1 kx 0 |
-Matrix = | D E F |,  K(kx, ky) = | ky  1 0 |
-         | G H I |               |  0  0 1 |
-##
-
-sets Matrix to:
-
-#Code
-#Literal
-                     | A B C | |  1 kx 0 |   | A+B*ky A*kx+B C |
-Matrix * K(kx, ky) = | D E F | | ky  1 0 | = | D+E*ky D*kx+E F |
-                     | G H I | |  0  0 1 |   | G+H*ky G*kx+H I |
-##
-
-#Param kx  horizontal skew factor ##
-#Param ky  vertical skew factor ##
+#Populate
 
 #Example
 #Image 3
@@ -2209,28 +1612,7 @@
 #In Set
 #In Operators
 #Line # pre-multiplies Matrix by Matrix parameter ##
-Sets Matrix to Matrix multiplied by Matrix other.
-This can be thought of mapping by other before applying Matrix.
-
-Given:
-
-#Code
-#Literal
-         | A B C |          | J K L |
-Matrix = | D E F |, other = | M N O |
-         | G H I |          | P Q R |
-##
-
-sets Matrix to:
-
-#Code
-#Literal
-                 | A B C |   | J K L |   | AJ+BM+CP AK+BN+CQ AL+BO+CR |
-Matrix * other = | D E F | * | M N O | = | DJ+EM+FP DK+EN+FQ DL+EO+FR |
-                 | G H I |   | P Q R |   | GJ+HM+IP GK+HN+IQ GL+HO+IR |
-##
-
-#Param other  Matrix on right side of multiply expression ##
+#Populate
 
 #Example
 #Image 3
@@ -2258,29 +1640,7 @@
 #In Set
 #In Operators
 #Line # post-multiplies Matrix by translation ##
-Sets Matrix to Matrix constructed from translation (dx, dy) multiplied by Matrix.
-This can be thought of as moving the point to be mapped after applying Matrix.
-
-Given:
-
-#Code
-#Literal
-         | J K L |               | 1 0 dx |
-Matrix = | M N O |,  T(dx, dy) = | 0 1 dy |
-         | P Q R |               | 0 0  1 |
-##
-
-sets Matrix to:
-
-#Code
-#Literal
-                     | 1 0 dx | | J K L |   | J+dx*P K+dx*Q L+dx*R |
-T(dx, dy) * Matrix = | 0 1 dy | | M N O | = | M+dy*P N+dy*Q O+dy*R |
-                     | 0 0  1 | | P Q R |   |      P      Q      R |
-##
-
-#Param dx  x-axis translation after applying Matrix ##
-#Param dy  y-axis translation after applying Matrix ##
+#Populate
 
 #Example
 #Height 160
@@ -2319,40 +1679,7 @@
 #In Set
 #In Operators
 #Line # post-multiplies Matrix by scale ##
-Sets Matrix to Matrix constructed from scaling by (sx, sy) about pivot point
-(px, py), multiplied by Matrix.
-This can be thought of as scaling about a pivot point after applying Matrix.
-
-Given:
-
-#Code
-#Literal
-         | J K L |                       | sx  0 dx |
-Matrix = | M N O |,  S(sx, sy, px, py) = |  0 sy dy |
-         | P Q R |                       |  0  0  1 |
-##
-
-where
-
-#Code
-#Literal
-dx = px - sx * px
-dy = py - sy * py
-##
-
-sets Matrix to:
-
-#Code
-#Literal
-                             | sx  0 dx | | J K L |   | sx*J+dx*P sx*K+dx*Q sx*L+dx+R |
-S(sx, sy, px, py) * Matrix = |  0 sy dy | | M N O | = | sy*M+dy*P sy*N+dy*Q sy*O+dy*R |
-                             |  0  0  1 | | P Q R |   |         P         Q         R |
-##
-
-#Param sx  horizontal scale factor ##
-#Param sy  vertical scale factor ##
-#Param px  pivot x ##
-#Param py  pivot y ##
+#Populate
 
 #Example
 #Image 3
@@ -2372,31 +1699,7 @@
 # ------------------------------------------------------------------------------
 
 #Method void postScale(SkScalar sx, SkScalar sy)
-
-Sets Matrix to Matrix constructed from scaling by (sx, sy) about pivot point
-(0, 0), multiplied by Matrix.
-This can be thought of as scaling about the origin after applying Matrix.
-
-Given:
-
-#Code
-#Literal
-         | J K L |               | sx  0  0 |
-Matrix = | M N O |,  S(sx, sy) = |  0 sy  0 |
-         | P Q R |               |  0  0  1 |
-##
-
-sets Matrix to:
-
-#Code
-#Literal
-                     | sx  0  0 | | J K L |   | sx*J sx*K sx*L |
-S(sx, sy) * Matrix = |  0 sy  0 | | M N O | = | sy*M sy*N sy*O |
-                     |  0  0  1 | | P Q R |   |    P    Q    R |
-##
-
-#Param sx  horizontal scale factor ##
-#Param sy  vertical scale factor ##
+#Populate
 
 #Example
 #Image 3
@@ -2476,43 +1779,7 @@
 #In Set
 #In Operators
 #Line # post-multiplies Matrix by rotation ##
-Sets Matrix to Matrix constructed from rotating by degrees about pivot point
-(px, py), multiplied by Matrix.
-This can be thought of as rotating about a pivot point after applying Matrix.
-
-Positive degrees rotates clockwise.
-
-Given:
-
-#Code
-#Literal
-         | J K L |                        | c -s dx |
-Matrix = | M N O |,  R(degrees, px, py) = | s  c dy |
-         | P Q R |                        | 0  0  1 |
-##
-
-where
-
-#Code
-#Literal
-c  = cos(degrees)
-s  = sin(degrees)
-dx =  s * py + (1 - c) * px
-dy = -s * px + (1 - c) * py
-##
-
-sets Matrix to:
-
-#Code
-#Literal
-                              |c -s dx| |J K L|   |cJ-sM+dx*P cK-sN+dx*Q cL-sO+dx+R|
-R(degrees, px, py) * Matrix = |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|
-##
-
-#Param degrees  angle of axes relative to upright axes ##
-#Param px  pivot x ##
-#Param py  pivot y ##
+#Populate
 
 #Example
 #Image 3
@@ -2532,40 +1799,7 @@
 # ------------------------------------------------------------------------------
 
 #Method void postRotate(SkScalar degrees)
-
-Sets Matrix to Matrix constructed from rotating by degrees about pivot point
-(0, 0), multiplied by Matrix.
-This can be thought of as rotating about the origin after applying Matrix.
-
-Positive degrees rotates clockwise.
-
-Given:
-
-#Code
-#Literal
-         | J K L |                        | c -s 0 |
-Matrix = | M N O |,  R(degrees, px, py) = | s  c 0 |
-         | P Q R |                        | 0  0 1 |
-##
-
-where
-
-#Code
-#Literal
-c  = cos(degrees)
-s  = sin(degrees)
-##
-
-sets Matrix to:
-
-#Code
-#Literal
-                              | c -s dx | | J K L |   | cJ-sM cK-sN cL-sO |
-R(degrees, px, py) * Matrix = | s  c dy | | M N O | = | sJ+cM sK+cN sL+cO |
-                              | 0  0  1 | | P Q R |   |     P     Q     R |
-##
-
-#Param degrees  angle of axes relative to upright axes ##
+#Populate
 
 #Example
 #Image 3
@@ -2588,40 +1822,7 @@
 #In Set
 #In Operators
 #Line # post-multiplies Matrix by skew ##
-Sets Matrix to Matrix constructed from skewing by (kx, ky) about pivot point
-(px, py), multiplied by Matrix.
-This can be thought of as skewing about a pivot point after applying Matrix.
-
-Given:
-
-#Code
-#Literal
-         | J K L |                       |  1 kx dx |
-Matrix = | M N O |,  K(kx, ky, px, py) = | ky  1 dy |
-         | P Q R |                       |  0  0  1 |
-##
-
-where
-
-#Code
-#Literal
-dx = -kx * py
-dy = -ky * px
-##
-
-sets Matrix to:
-
-#Code
-#Literal
-                             | 1 kx dx| |J K L|   |J+kx*M+dx*P K+kx*N+dx*Q L+kx*O+dx+R|
-K(kx, ky, px, py) * Matrix = |ky  1 dy| |M N O| = |ky*J+M+dy*P ky*K+N+dy*Q ky*L+O+dy*R|
-                             | 0  0  1| |P Q R|   |          P           Q           R|
-##
-
-#Param kx  horizontal skew factor ##
-#Param ky  vertical skew factor ##
-#Param px  pivot x ##
-#Param py  pivot y ##
+#Populate
 
 #Example
 #Image 3
@@ -2641,31 +1842,7 @@
 # ------------------------------------------------------------------------------
 
 #Method void postSkew(SkScalar kx, SkScalar ky)
-
-Sets Matrix to Matrix constructed from skewing by (kx, ky) about pivot point
-(0, 0), multiplied by Matrix.
-This can be thought of as skewing about the origin after applying Matrix.
-
-Given:
-
-#Code
-#Literal
-         | J K L |               |  1 kx 0 |
-Matrix = | M N O |,  K(kx, ky) = | ky  1 0 |
-         | P Q R |               |  0  0 1 |
-##
-
-sets Matrix to:
-
-#Code
-#Literal
-                     |  1 kx 0 | | J K L |   | J+kx*M K+kx*N L+kx*O |
-K(kx, ky) * Matrix = | ky  1 0 | | M N O | = | ky*J+M ky*K+N ky*L+O |
-                     |  0  0 1 | | P Q R |   |      P      Q      R |
-##
-
-#Param kx  horizontal skew factor ##
-#Param ky  vertical skew factor ##
+#Populate
 
 #Example
 #Image 3
@@ -2688,28 +1865,7 @@
 #In Set
 #In Operators
 #Line # post-multiplies Matrix by Matrix parameter ##
-Sets Matrix to Matrix other multiplied by Matrix.
-This can be thought of mapping by other after applying Matrix.
-
-Given:
-
-#Code
-#Literal
-         | J K L |           | A B C |
-Matrix = | M N O |,  other = | D E F |
-         | P Q R |           | G H I |
-##
-
-sets Matrix to:
-
-#Code
-#Literal
-                 | A B C |   | J K L |   | AJ+BM+CP AK+BN+CQ AL+BO+CR |
-other * Matrix = | D E F | * | M N O | = | DJ+EM+FP DK+EN+FQ DL+EO+FR |
-                 | G H I |   | P Q R |   | GJ+HM+IP GK+HN+IQ GL+HO+IR |
-##
-
-#Param other  Matrix on left side of multiply expression ##
+#Populate
 
 #Example
 #Image 3
@@ -2803,25 +1959,7 @@
 #Method bool setRectToRect(const SkRect& src, const SkRect& dst, ScaleToFit stf)
 #In Set
 #Line # sets to map one Rect to another ##
-Sets Matrix to scale and translate src Rect to dst Rect. stf selects whether
-mapping completely fills dst or preserves the aspect ratio, and how to align
-src within dst. Returns false if src is empty, and sets Matrix to identity.
-Returns true if dst is empty, and sets Matrix to:
-
-#Code
-#Literal
-| 0 0 0 |
-| 0 0 0 |
-| 0 0 1 |
-##
-
-#Param src  Rect to map from ##
-#Param dst  Rect to map to ##
-#Param stf  one of: kFill_ScaleToFit, kStart_ScaleToFit,
-                    kCenter_ScaleToFit, kEnd_ScaleToFit
-##
-
-#Return  true if Matrix can represent Rect mapping ##
+#Populate
 
 #Example
     const SkRect srcs[] = { {0, 0, 0, 0}, {1, 2, 3, 4} };
@@ -2858,25 +1996,7 @@
 #Method static SkMatrix MakeRectToRect(const SkRect& src, const SkRect& dst, ScaleToFit stf)
 #In Constructors
 #Line # constructs from source Rect to destination Rect ##
-Returns Matrix set to scale and translate src Rect to dst Rect. stf selects
-whether mapping completely fills dst or preserves the aspect ratio, and how to
-align src within dst. Returns the identity Matrix if src is empty. If dst is
-empty, returns Matrix set to:
-
-#Code
-#Literal
-| 0 0 0 |
-| 0 0 0 |
-| 0 0 1 |
-##
-
-#Param src  Rect to map from ##
-#Param dst  Rect to map to ##
-#Param stf  one of: kFill_ScaleToFit, kStart_ScaleToFit,
-                    kCenter_ScaleToFit, kEnd_ScaleToFit
-##
-
-#Return  Matrix mapping src to dst ##
+#Populate
 
 #Example
     const SkRect srcs[] = { {0, 0, 0, 0}, {1, 2, 3, 4} };
@@ -2911,20 +2031,7 @@
 #Method bool setPolyToPoly(const SkPoint src[], const SkPoint dst[], int count)
 #In Set
 #Line # sets to map one to four points to an equal array of points ##
-Sets Matrix to map src to dst. count must be zero or greater, and four or less.
-
-If count is zero, sets Matrix to identity and returns true.
-If count is one, sets Matrix to translate and returns true.
-If count is two or more, sets Matrix to map Points if possible; returns false
-if Matrix cannot be constructed. If count is four, Matrix may include
-perspective.
-
-#Param src  Points to map from ##
-#Param dst  Points to map to ##
-#Param count  number of Points in src and dst ##
-
-#Return  true if Matrix was constructed successfully
-##
+#Populate
 
 #Example
     const SkPoint src[] = { { 0, 0}, {30,   0}, {30, -30}, { 0, -30} };
@@ -2962,14 +2069,7 @@
 #Method bool invert(SkMatrix* inverse) const
 #In Operators
 #Line # returns inverse, if possible ##
-Sets inverse to reciprocal matrix, returning true if Matrix can be inverted.
-Geometrically, if Matrix maps from source to destination, inverse Matrix
-maps from destination to source. If Matrix can not be inverted, inverse is
-unchanged.
-
-#Param inverse  storage for inverted Matrix; may be nullptr ##
-
-#Return  true if Matrix can be inverted ##
+#Populate
 
 #Example
 #Height 128
@@ -3000,18 +2100,7 @@
 #Method static void SetAffineIdentity(SkScalar affine[6])
 #In Constructors
 #Line # sets 3x2 array to identity ##
-Fills affine with identity values in column major order.
-Sets affine to:
-
-#Code
-#Literal
-| 1 0 0 |
-| 0 1 0 |
-##
-
-Affine 3x2 matrices in column major order are used by OpenGL and XPS.
-
-#Param affine  storage for 3x2 affine matrix ##
+#Populate
 
 #Example
     SkScalar affine[6];
@@ -3035,19 +2124,7 @@
 #Method bool asAffine(SkScalar affine[6]) const
 #In Constructors
 #Line # copies to 3x2 array ##
-Fills affine in column major order. Sets affine to:
-
-#Code
-#Literal
-| scale-x  skew-x translate-x |
-| skew-y  scale-y translate-y |
-##
-
-If Matrix contains perspective, returns false and leaves affine unchanged.
-
-#Param affine  storage for 3x2 affine matrix; may be nullptr ##
-
-#Return  true if Matrix does not contain perspective ##
+#Populate
 
 #Example
 SkMatrix matrix;
@@ -3075,25 +2152,7 @@
 #In Constructors
 #In Set
 #Line # sets left two columns ##
-Sets Matrix to affine values, passed in column major order. Given affine,
-column, then row, as:
-
-#Code
-#Literal
-| scale-x  skew-x translate-x |
-|  skew-y scale-y translate-y |
-##
-
-Matrix is set, row, then column, to:
-
-#Code
-#Literal
-| scale-x  skew-x translate-x |
-|  skew-y scale-y translate-y |
-|       0       0           1 |
-##
-
-#Param affine  3x2 affine matrix ##
+#Populate
 
 #Example
 SkMatrix matrix;
@@ -3127,40 +2186,7 @@
 #Method void mapPoints(SkPoint dst[], const SkPoint src[], int count) const
 #In Transform
 #Line # maps Point array ##
-Maps src Point array of length count to dst Point array of equal or greater
-length. Points are mapped by multiplying each Point by Matrix. Given:
-
-#Code
-#Literal
-         | A B C |        | x |
-Matrix = | D E F |,  pt = | y |
-         | G H I |        | 1 |
-##
-
-where
-
-#Code
-#Literal
-for (i = 0; i < count; ++i) {
-    x = src[i].fX
-    y = src[i].fY
-}
-##
-
-each dst Point is computed as:
-
-#Code
-#Literal
-              |A B C| |x|                               Ax+By+C   Dx+Ey+F
-Matrix * pt = |D E F| |y| = |Ax+By+C Dx+Ey+F Gx+Hy+I| = ------- , -------
-              |G H I| |1|                               Gx+Hy+I   Gx+Hy+I
-##
-
-src and dst may point to the same storage.
-
-#Param dst  storage for mapped Points ##
-#Param src  Points to transform ##
-#Param count  number of Points to transform ##
+#Populate
 
 #Example
     SkMatrix matrix;
@@ -3185,38 +2211,7 @@
 # ------------------------------------------------------------------------------
 
 #Method void mapPoints(SkPoint pts[], int count) const
-
-Maps pts Point array of length count in place. Points are mapped by multiplying
-each Point by Matrix. Given:
-
-#Code
-#Literal
-         | A B C |        | x |
-Matrix = | D E F |,  pt = | y |
-         | G H I |        | 1 |
-##
-
-where
-
-#Code
-#Literal
-for (i = 0; i < count; ++i) {
-    x = pts[i].fX
-    y = pts[i].fY
-}
-##
-
-each resulting pts Point is computed as:
-
-#Code
-#Literal
-              |A B C| |x|                               Ax+By+C   Dx+Ey+F
-Matrix * pt = |D E F| |y| = |Ax+By+C Dx+Ey+F Gx+Hy+I| = ------- , -------
-              |G H I| |1|                               Gx+Hy+I   Gx+Hy+I
-##
-
-#Param pts  storage for mapped Points ##
-#Param count  number of Points to transform ##
+#Populate
 
 #Example
     SkMatrix matrix;
@@ -3241,28 +2236,7 @@
 #Method void mapHomogeneousPoints(SkPoint3 dst[], const SkPoint3 src[], int count) const
 #In Transform
 #Line # maps Point3 array ##
-Maps src Point3 array of length count to dst Point3 array, which must of length count or
-greater. Point3 array is mapped by multiplying each Point3 by Matrix. Given:
-
-#Code
-#Literal
-         | A B C |         | x |
-Matrix = | D E F |,  src = | y |
-         | G H I |         | z |
-##
-
-each resulting dst Point is computed as:
-
-#Code
-#Literal
-               |A B C| |x|
-Matrix * src = |D E F| |y| = |Ax+By+Cz Dx+Ey+Fz Gx+Hy+Iz|
-               |G H I| |z|
-##
-
-#Param dst  storage for mapped Point3 array ##
-#Param src  Point3 array to transform ##
-#Param count  items in Point3 array to transform ##
+#Populate
 
 #Example
     SkPoint3 src[] = {{3, 3, 1}, {8, 2, 2}, {5, 0, 4}, {0, 1, 3},
@@ -3299,27 +2273,7 @@
 #Method void mapXY(SkScalar x, SkScalar y, SkPoint* result) const
 #In Transform
 #Line # maps Point ##
-Maps Point (x, y) to result. Point is mapped by multiplying by Matrix. Given:
-
-#Code
-#Literal
-         | A B C |        | x |
-Matrix = | D E F |,  pt = | y |
-         | G H I |        | 1 |
-##
-
-result is computed as:
-
-#Code
-#Literal
-              |A B C| |x|                               Ax+By+C   Dx+Ey+F
-Matrix * pt = |D E F| |y| = |Ax+By+C Dx+Ey+F Gx+Hy+I| = ------- , -------
-              |G H I| |1|                               Gx+Hy+I   Gx+Hy+I
-##
-
-#Param x  x-axis value of Point to map ##
-#Param y  y-axis value of Point to map ##
-#Param result  storage for mapped Point ##
+#Populate
 
 #Example
     SkPaint paint;
@@ -3343,29 +2297,7 @@
 # ------------------------------------------------------------------------------
 
 #Method SkPoint mapXY(SkScalar x, SkScalar y) const
-
-Returns Point (x, y) multiplied by Matrix. Given:
-
-#Code
-#Literal
-         | A B C |        | x |
-Matrix = | D E F |,  pt = | y |
-         | G H I |        | 1 |
-##
-
-result is computed as:
-
-#Code
-#Literal
-              |A B C| |x|                               Ax+By+C   Dx+Ey+F
-Matrix * pt = |D E F| |y| = |Ax+By+C Dx+Ey+F Gx+Hy+I| = ------- , -------
-              |G H I| |1|                               Gx+Hy+I   Gx+Hy+I
-##
-
-#Param x  x-axis value of Point to map ##
-#Param y  y-axis value of Point to map ##
-
-#Return  mapped Point ##
+#Populate
 
 #Example
 #Image 4
@@ -3394,41 +2326,7 @@
 #Method void mapVectors(SkVector dst[], const SkVector src[], int count) const
 #In Transform
 #Line # maps Vector array ##
-Maps src Vector array of length count to Vector Point array of equal or greater
-length. Vectors are mapped by multiplying each Vector by Matrix, treating
-Matrix translation as zero. Given:
-
-#Code
-#Literal
-         | A B 0 |         | x |
-Matrix = | D E 0 |,  src = | y |
-         | G H I |         | 1 |
-##
-
-where
-
-#Code
-#Literal
-for (i = 0; i < count; ++i) {
-    x = src[i].fX
-    y = src[i].fY
-}
-##
-
-each dst Vector is computed as:
-
-#Code
-#Literal
-               |A B 0| |x|                            Ax+By     Dx+Ey
-Matrix * src = |D E 0| |y| = |Ax+By Dx+Ey Gx+Hy+I| = ------- , -------
-               |G H I| |1|                           Gx+Hy+I   Gx+Hy+I
-##
-
-src and dst may point to the same storage.
-
-#Param dst  storage for mapped Vectors ##
-#Param src  Vectors to transform ##
-#Param count  number of Vectors to transform ##
+#Populate
 
 #Example
     SkPaint paint;
@@ -3455,38 +2353,7 @@
 # ------------------------------------------------------------------------------
 
 #Method void mapVectors(SkVector vecs[], int count) const
-
-Maps vecs Vector array of length count in place, multiplying each Vector by
-Matrix, treating Matrix translation as zero. Given:
-
-#Code
-#Literal
-         | A B 0 |         | x |
-Matrix = | D E 0 |,  vec = | y |
-         | G H I |         | 1 |
-##
-
-where
-
-#Code
-#Literal
-for (i = 0; i < count; ++i) {
-    x = vecs[i].fX
-    y = vecs[i].fY
-}
-##
-
-each result Vector is computed as:
-
-#Code
-#Literal
-               |A B 0| |x|                            Ax+By     Dx+Ey
-Matrix * vec = |D E 0| |y| = |Ax+By Dx+Ey Gx+Hy+I| = ------- , -------
-               |G H I| |1|                           Gx+Hy+I   Gx+Hy+I
-##
-
-#Param vecs  Vectors to transform, and storage for mapped Vectors ##
-#Param count  number of Vectors to transform ##
+#Populate
 
 #Example
     SkPaint paint;
@@ -3513,29 +2380,7 @@
 #Method void mapVector(SkScalar dx, SkScalar dy, SkVector* result) const
 #In Transform
 #Line # maps Vector ##
-Maps Vector (x, y) to result. Vector is mapped by multiplying by Matrix,
-treating Matrix translation as zero. Given:
-
-#Code
-#Literal
-         | A B 0 |         | dx |
-Matrix = | D E 0 |,  vec = | dy |
-         | G H I |         |  1 |
-##
-
-each result Vector is computed as:
-
-#Code
-#Literal
-#Outdent
-               |A B 0| |dx|                                        A*dx+B*dy     D*dx+E*dy
-Matrix * vec = |D E 0| |dy| = |A*dx+B*dy D*dx+E*dy G*dx+H*dy+I| = ----------- , -----------
-               |G H I| | 1|                                       G*dx+H*dy+I   G*dx+*dHy+I
-##
-
-#Param dx  x-axis value of Vector to map ##
-#Param dy  y-axis value of Vector to map ##
-#Param result  storage for mapped Vector ##
+#Populate
 
 #Example
     SkPaint paint;
@@ -3561,31 +2406,7 @@
 # ------------------------------------------------------------------------------
 
 #Method SkVector mapVector(SkScalar dx, SkScalar dy) const
-
-Returns Vector (x, y) multiplied by Matrix, treating Matrix translation as zero.
-Given:
-
-#Code
-#Literal
-         | A B 0 |         | dx |
-Matrix = | D E 0 |,  vec = | dy |
-         | G H I |         |  1 |
-##
-
-each result Vector is computed as:
-
-#Code
-#Literal
-#Outdent
-               |A B 0| |dx|                                        A*dx+B*dy     D*dx+E*dy
-Matrix * vec = |D E 0| |dy| = |A*dx+B*dy D*dx+E*dy G*dx+H*dy+I| = ----------- , -----------
-               |G H I| | 1|                                       G*dx+H*dy+I   G*dx+*dHy+I
-##
-
-#Param dx  x-axis value of Vector to map ##
-#Param dy  y-axis value of Vector to map ##
-
-#Return  mapped Vector ##
+#Populate
 
 #Example
     SkPaint paint;
@@ -3613,15 +2434,7 @@
 #Method bool mapRect(SkRect* dst, const SkRect& src) const
 #In Transform
 #Line # returns bounds of mapped Rect ##
-Sets dst to bounds of src corners mapped by Matrix.
-Returns true if mapped corners are dst corners.
-
-Returned value is the same as calling rectStaysRect.
-
-#Param dst  storage for bounds of mapped Points ##
-#Param src  Rect to map ##
-
-#Return  true if dst is equivalent to mapped src ##
+#Populate
 
 #Example
     SkPaint paint;
@@ -3644,15 +2457,7 @@
 # ------------------------------------------------------------------------------
 
 #Method bool mapRect(SkRect* rect) const
-
-Sets rect to bounds of rect corners mapped by Matrix.
-Returns true if mapped corners are computed rect corners.
-
-Returned value is the same as calling rectStaysRect.
-
-#Param rect  rectangle to map, and storage for bounds of mapped corners ##
-
-#Return  true if result is equivalent to mapped src ##
+#Populate
 
 #Example
     SkPaint paint;
@@ -3675,24 +2480,20 @@
 # ------------------------------------------------------------------------------
 
 #Method SkRect mapRect(const SkRect& src) const
-
-Returns bounds of src corners mapped by Matrix.
-
-#Param src  rectangle to map ##
-#Return mapped bounds ##
+#Populate
 
 #Example
-  SkRect rect{110, 50, 180, 100};

-  SkMatrix matrix;

-  matrix.setRotate(50, 28, 28);

-  SkRect mapped = matrix.mapRect(rect);

-  SkPaint paint;

-  paint.setAntiAlias(true);

-  paint.setStyle(SkPaint::kStroke_Style);

-  canvas->drawRect(rect, paint);

-  canvas->drawRect(mapped, paint);

-  canvas->concat(matrix);

-  canvas->drawRect(rect, paint);

+  SkRect rect{110, 50, 180, 100};
+  SkMatrix matrix;
+  matrix.setRotate(50, 28, 28);
+  SkRect mapped = matrix.mapRect(rect);
+  SkPaint paint;
+  paint.setAntiAlias(true);
+  paint.setStyle(SkPaint::kStroke_Style);
+  canvas->drawRect(rect, paint);
+  canvas->drawRect(mapped, paint);
+  canvas->concat(matrix);
+  canvas->drawRect(rect, paint);
 ##
 
 #SeeAlso mapRectToQuad mapRectScaleTranslate
@@ -3703,36 +2504,7 @@
 #Method void mapRectToQuad(SkPoint dst[4], const SkRect& rect) const
 #In Transform
 #Line # maps Rect to Point array ##
-Maps four corners of rect to dst. Points are mapped by multiplying each
-rect corner by Matrix. rect corner is processed in this order:
-(rect.fLeft, rect.fTop), (rect.fRight, rect.fTop), (rect.fRight, rect.fBottom),
-(rect.fLeft, rect.fBottom).
-
-rect may be empty: rect.fLeft may be greater than or equal to rect.fRight;
-rect.fTop may be greater than or equal to rect.fBottom.
-
-Given:
-
-#Code
-#Literal
-         | A B C |        | x |
-Matrix = | D E F |,  pt = | y |
-         | G H I |        | 1 |
-##
-
-where pt is initialized from each of (rect.fLeft, rect.fTop),
-(rect.fRight, rect.fTop), (rect.fRight, rect.fBottom), (rect.fLeft, rect.fBottom),
-each dst Point is computed as:
-
-#Code
-#Literal
-              |A B C| |x|                               Ax+By+C   Dx+Ey+F
-Matrix * pt = |D E F| |y| = |Ax+By+C Dx+Ey+F Gx+Hy+I| = ------- , -------
-              |G H I| |1|                               Gx+Hy+I   Gx+Hy+I
-##
-
-#Param dst  storage for mapped corner Points ##
-#Param rect  Rect to map ##
+#Populate
 
 #Example
 #Height 192
@@ -3760,12 +2532,7 @@
 #Method void mapRectScaleTranslate(SkRect* dst, const SkRect& src) const
 #In Transform
 #Line # returns bounds of mapped Rect ##
-Sets dst to bounds of src corners mapped by Matrix. If matrix contains
-elements other than scale or translate: asserts if SK_DEBUG is defined;
-otherwise, results are undefined.
-
-#Param dst  storage for bounds of mapped Points ##
-#Param src  Rect to map ##
+#Populate
 
 #Example
     SkPaint paint;
@@ -3789,14 +2556,7 @@
 #Method SkScalar mapRadius(SkScalar radius) const
 #In Transform
 #Line # returns mean radius of mapped Circle ##
-Returns geometric mean radius of ellipse formed by constructing Circle of
-size radius, and mapping constructed Circle with Matrix. The result squared is
-equal to the major axis length times the minor axis length.
-Result is not meaningful if Matrix contains perspective elements.
-
-#Param radius  Circle size to map ##
-
-#Return  average mapped radius ##
+#Populate
 
 #Example
 #Description
@@ -3844,14 +2604,7 @@
 #Method bool isFixedStepInX() const
 #In Property
 #Line # returns if transformation supports fixed step in x ##
-Returns true if a unit step on x-axis at some y-axis value mapped through Matrix
-can be represented by a constant Vector. Returns true if getType returns
-kIdentity_Mask, or combinations of: kTranslate_Mask, kScale_Mask, and kAffine_Mask.
-
-May return true if getType returns kPerspective_Mask, but only when Matrix
-does not include rotation or skewing along the y-axis.
-
-#Return  true if Matrix does not have complex perspective ##
+#Populate
 
 #Example
     SkMatrix matrix;
@@ -3893,12 +2646,7 @@
 #Method SkVector fixedStepInX(SkScalar y) const
 #In Property
 #Line # returns step in x for a position in y ##
-Returns Vector representing a unit step on x-axis at y mapped through Matrix.
-If isFixedStepInX is false, returned value is undefined.
-
-#Param y  position of line parallel to x-axis ##
-
-#Return  Vector advance of mapped unit step on x-axis ##
+#Populate
 
 #Example
 #Image 3
@@ -3933,19 +2681,7 @@
 #Method bool cheapEqualTo(const SkMatrix& m) const
 #In Operators
 #Line # compares Matrix pair using memcmp() ##
-Returns true if Matrix equals m, using an efficient comparison.
-
-Returns false when the sign of zero values is the different; when one
-matrix has positive zero value and the other has negative zero value.
-
-Returns true even when both Matrices 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.
-
-#Param m  Matrix to compare ##
-
-#Return  true if m and Matrix are represented by identical bit patterns ##
+#Populate
 
 #Example
     auto debugster = [](const char* prefix, const SkMatrix& a, const SkMatrix& b) -> void {
@@ -3979,14 +2715,7 @@
 #Method bool operator==(const SkMatrix& a, const SkMatrix& b)
 
 #Line # returns true if members are equal ##
-Compares a and b; returns true if a and b are numerically equal. Returns true
-even if sign of zero values are different. Returns false if either Matrix
-contains NaN, even if the other Matrix also contains NaN.
-
-#Param a  Matrix to compare ##
-#Param b  Matrix to compare ##
-
-#Return  true if Matrix a and Matrix b are numerically equal ##
+#Populate
 
 #Example
     auto debugster = [](const char* prefix, const SkMatrix& a, const SkMatrix& b) -> void {
@@ -4012,14 +2741,7 @@
 #Method bool operator!=(const SkMatrix& a, const SkMatrix& b)
 
 #Line # returns true if members are unequal ##
-Compares a and b; returns true if a and b are not numerically equal. Returns false
-even if sign of zero values are different. Returns true if either Matrix
-contains NaN, even if the other Matrix also contains NaN.
-
-#Param a  Matrix to compare ##
-#Param b  Matrix to compare ##
-
-#Return  true if Matrix a and Matrix b are numerically not equal ##
+#Populate
 
 #Example
     auto debugster = [](const char* prefix, const SkMatrix& a, const SkMatrix& b) -> void {
@@ -4045,9 +2767,7 @@
 #Method void dump() const
 #In Utility
 #Line # sends text representation using floats to standard output ##
-Writes text representation of Matrix to standard output. Floating point values
-are written with limited precision; it may not be possible to reconstruct
-original Matrix from output.
+#Populate
 
 #Example
     SkMatrix matrix;
@@ -4073,12 +2793,7 @@
 #Method SkScalar getMinScale() const
 #In Property
 #Line # returns minimum scaling, if possible ##
-Returns the minimum scaling factor of Matrix by decomposing the scaling and
-skewing elements.
-Returns -1 if scale factor overflows or Matrix contains perspective.
-
-#Return  minimum scale factor
-##
+#Populate
 
 #Example
     SkMatrix matrix;
@@ -4098,12 +2813,7 @@
 #Method SkScalar getMaxScale() const
 #In Property
 #Line # returns maximum scaling, if possible ##
-Returns the maximum scaling factor of Matrix by decomposing the scaling and
-skewing elements.
-Returns -1 if scale factor overflows or Matrix contains perspective.
-
-#Return  maximum scale factor
-##
+#Populate
 
 #Example
     SkMatrix matrix;
@@ -4123,16 +2833,7 @@
 #Method bool getMinMaxScales(SkScalar scaleFactors[2]) const
 #In Property
 #Line # returns minimum and maximum scaling, if possible ##
-Sets scaleFactors[0] to the minimum scaling factor, and scaleFactors[1] to the
-maximum scaling factor. Scaling factors are computed by decomposing
-the Matrix scaling and skewing elements.
-
-Returns true if scaleFactors are found; otherwise, returns false and sets
-scaleFactors to undefined values.
-
-#Param scaleFactors  storage for minimum and maximum scale factors ##
-
-#Return  true if scale factors were computed correctly ##
+#Populate
 
 #Example
     SkMatrix matrix;
@@ -4207,16 +2908,7 @@
 #Method static const SkMatrix& I()
 #In Constructors
 #Line # returns a reference to a const identity Matrix ##
-Returns reference to const identity Matrix. Returned Matrix is set to:
-
-#Code
-#Literal
-| 1 0 0 |
-| 0 1 0 |
-| 0 0 1 |
-##
-
-#Return  const identity Matrix ##
+#Populate
 
 #Example
     SkMatrix m1, m2, m3;
@@ -4240,17 +2932,7 @@
 #Method static const SkMatrix& InvalidMatrix()
 #In Constructors
 #Line # returns a reference to a const invalid Matrix ##
-Returns reference to a const Matrix with invalid values. Returned Matrix is set
-to:
-
-#Code
-#Literal
-| SK_ScalarMax SK_ScalarMax SK_ScalarMax |
-| SK_ScalarMax SK_ScalarMax SK_ScalarMax |
-| SK_ScalarMax SK_ScalarMax SK_ScalarMax |
-##
-
-#Return  const invalid Matrix ##
+#Populate
 
 #Example
     SkDebugf("scaleX %g\n", SkMatrix::InvalidMatrix().getScaleX());
@@ -4268,30 +2950,7 @@
 #Method static SkMatrix Concat(const SkMatrix& a, const SkMatrix& b)
 #In Operators
 #Line # returns the concatenation of Matrix pair ##
-Returns Matrix a multiplied by Matrix b.
-
-Given:
-
-#Code
-#Literal
-    | A B C |      | J K L |
-a = | D E F |, b = | M N O |
-    | G H I |      | P Q R |
-##
-
-sets Matrix to:
-
-#Code
-#Literal
-        | A B C |   | J K L |   | AJ+BM+CP AK+BN+CQ AL+BO+CR |
-a * b = | D E F | * | M N O | = | DJ+EM+FP DK+EN+FQ DL+EO+FR |
-        | G H I |   | P Q R |   | GJ+HM+IP GK+HN+IQ GL+HO+IR |
-##
-
-#Param a  Matrix on left side of multiply expression ##
-#Param b  Matrix on right side of multiply expression ##
-
-#Return  Matrix computed from a times b ##
+#Populate
 
 #Example
 #Height 64
@@ -4319,8 +2978,7 @@
 #Method void dirtyMatrixTypeCache()
 #In Utility
 #Line # sets internal cache to unknown state ##
-Sets internal cache to unknown state. Use to force update after repeated
-modifications to Matrix element reference returned by operator[](int index).
+#Populate
 
 #Example
 SkMatrix matrix;
@@ -4351,19 +3009,7 @@
 #In Constructors
 #In Set
 #Line # sets to scale and translate ##
-Initializes Matrix with scale and translate elements.
-
-#Code
-#Literal
-| sx  0 tx |
-|  0 sy ty |
-|  0  0  1 |
-##
-
-#Param sx  horizontal scale factor to store ##
-#Param sy  vertical scale factor to store ##
-#Param tx  horizontal translation to store ##
-#Param ty  vertical translation to store ##
+#Populate
 
 #Example
 SkMatrix matrix;
@@ -4383,10 +3029,7 @@
 #Method bool isFinite() const
 #In Property
 #Line # returns if all Matrix values are not infinity, NaN ##
-Returns true if all elements of the matrix are finite. Returns false if any
-element is infinity, or NaN.
-
-#Return  true if matrix has only finite elements ##
+#Populate
 
 #Example
 SkMatrix matrix = SkMatrix::MakeTrans(SK_ScalarNaN, 0);
@@ -4407,4 +3050,3 @@
 #Class SkMatrix ##
 
 #Topic Matrix ##
-
diff --git a/docs/SkPaint_Reference.bmh b/docs/SkPaint_Reference.bmh
index 2deca4d..6e5391b 100644
--- a/docs/SkPaint_Reference.bmh
+++ b/docs/SkPaint_Reference.bmh
@@ -107,18 +107,7 @@
 
 #Method SkPaint(const SkPaint& paint)
 #Line # makes a shallow copy ##
-Makes a shallow copy of Paint. Typeface, Path_Effect, Shader,
-Mask_Filter, Color_Filter, Draw_Looper, and Image_Filter are shared
-between the original paint and the copy. Objects containing Reference_Count increment
-their references by one.
-
-The referenced objects Path_Effect, Shader, Mask_Filter, Color_Filter,
-Draw_Looper, and Image_Filter cannot be modified after they are created.
-This prevents objects with Reference_Count from being modified once Paint refers to them.
-
-#Param paint  original to copy ##
-
-#Return  shallow copy of paint ##
+#Populate
 
 #Example
 #ToDo why is this double-spaced on Fiddle? ##
@@ -139,16 +128,9 @@
 
 #Method SkPaint(SkPaint&& paint)
 #Line # moves paint without copying it ##
-    Implements a move constructor to avoid increasing the reference counts
-    of objects referenced by the paint.
+#Populate
 
-    After the call, paint is undefined, and can be safely destructed.
-
-    #Param paint  original to move ##
-
-    #Return  content of paint ##
-
-    #Example
+#Example
         SkPaint paint;
         float intervals[] = { 5, 5 };
         paint.setPathEffect(SkDashPathEffect::Make(intervals, SK_ARRAY_COUNT(intervals), 2.5f));
@@ -167,8 +149,7 @@
 #Method void reset()
 #In Constructors
 #Line # sets to default values ##
-Sets all Paint contents to their initial values. This is equivalent to replacing
-Paint with the result of SkPaint().
+#Populate
 
 #Example
     SkPaint paint1, paint2;
@@ -187,9 +168,7 @@
 
 #Method ~SkPaint()
 #Line # decreases Reference_Count of owned objects ##
-Decreases Paint Reference_Count of owned objects: Typeface, Path_Effect, Shader,
-Mask_Filter, Color_Filter, Draw_Looper, and Image_Filter. If the
-objects containing Reference_Count go to zero, they are deleted.
+#Populate
 
 #NoExample
 ##
@@ -206,16 +185,7 @@
 #Method SkPaint& operator=(const SkPaint& paint)
 #In Management
 #Line # makes a shallow copy ##
-Makes a shallow copy of Paint. Typeface, Path_Effect, Shader,
-Mask_Filter, Color_Filter, Draw_Looper, and Image_Filter are shared
-between the original paint and the copy. Objects containing Reference_Count in the
-prior destination are decreased by one, and the referenced objects are deleted if the
-resulting count is zero. Objects containing Reference_Count in the parameter paint
-are increased by one. paint is unmodified.
-
-#Param paint  original to copy ##
-
-#Return  content of paint ##
+#Populate
 
 #Example
     SkPaint paint1, paint2;
@@ -237,16 +207,7 @@
 #Method SkPaint& operator=(SkPaint&& paint)
 #In Management
 #Line # moves paint without copying it ##
-Moves the paint to avoid increasing the reference counts
-of objects referenced by the paint parameter. Objects containing Reference_Count in the
-prior destination are decreased by one; those objects are deleted if the resulting count
-is zero.
-
-After the call, paint is undefined, and can be safely destructed.
-
-    #Param paint  original to move ##
-
-    #Return  content of paint ##
+#Populate
 
 #Example
     SkPaint paint1, paint2;
@@ -265,16 +226,9 @@
 
 #Method bool operator==(const SkPaint& a, const SkPaint& b)
 #Line # compares paints for equality ##
-    Compares a and b, and returns true if a and b are equivalent. May return false
-    if Typeface, Path_Effect, Shader, Mask_Filter, Color_Filter,
-    Draw_Looper, or Image_Filter have identical contents but different pointers.
+#Populate
 
-    #Param a  Paint to compare ##
-    #Param b  Paint to compare ##
-
-    #Return  true if Paint pair are equivalent ##
-
-    #Example
+#Example
         SkPaint paint1, paint2;
         paint1.setColor(SK_ColorRED);
         paint2.setColor(0xFFFF0000);
@@ -296,14 +250,7 @@
 
 #Method bool operator!=(const SkPaint& a, const SkPaint& b)
 #Line # compares paints for inequality ##
-    Compares a and b, and returns true if a and b are not equivalent. May return true
-    if Typeface, Path_Effect, Shader, Mask_Filter, Color_Filter,
-    Draw_Looper, or Image_Filter have identical contents but different pointers.
-
-    #Param a  Paint to compare ##
-    #Param b  Paint to compare ##
-
-    #Return true if Paint pair are not equivalent ##
+#Populate
 
 #Example
     SkPaint paint1, paint2;
@@ -325,17 +272,7 @@
 #Method uint32_t getHash() const
 #In Management
 #Line # returns a shallow hash for equality checks ##
-Returns a hash generated from Paint values and pointers.
-Identical hashes guarantee that the paints are
-equivalent, but differing hashes do not guarantee that the paints have differing
-contents.
-
-If operator==(const SkPaint& a, const SkPaint& b) returns true for two paints,
-their hashes are also equal.
-
-The hash returned is platform and implementation specific.
-
-#Return  a shallow hash ##
+#Populate
 
 #Example
     SkPaint paint1, paint2;
@@ -407,9 +344,9 @@
 
 #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.
+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.
+the LCD output is reduced to a single grayscale channel.
 
 On Windows with DirectWrite, Hinting has no effect.
 
@@ -425,11 +362,9 @@
 #Method Hinting getHinting() const
 #In Hinting
 #Line # returns Hinting, glyph outline adjustment level ##
-    Returns level of glyph outline adjustment.
+#Populate
 
-    #Return  one of: kNo_Hinting, kSlight_Hinting, kNormal_Hinting, kFull_Hinting ##
-
-    #Example
+#Example
         SkPaint paint;
         SkDebugf("SkPaint::kNormal_Hinting %c= paint.getHinting()\n",
                 SkPaint::kNormal_Hinting == paint.getHinting() ? '=' : ':');
@@ -541,10 +476,7 @@
 #Method uint32_t getFlags() const
 #In Flags
 #Line # returns Flags stored in a bit field ##
-Returns paint settings described by Flags. Each setting uses one
-bit, and can be tested with Flags members.
-
-#Return  zero, one, or more bits described by Flags ##
+#Populate
 
 #Example
     SkPaint paint;
@@ -562,10 +494,7 @@
 #Method void setFlags(uint32_t flags)
 #In Flags
 #Line # sets multiple Flags in a bit field ##
-Replaces Flags with flags, the union of the Flags members.
-All Flags members may be cleared, or one or more may be set.
-
-#Param flags  union of Flags for Paint ##
+#Populate
 
 #Example
     SkPaint paint;
@@ -652,14 +581,9 @@
 #Method bool isAntiAlias() const
 #In Anti_alias
 #Line # returns true if Anti_Alias is set ##
+#Populate
 
-    Returns true if pixels on the active edges of Path may be drawn with partial transparency.
-
-    Equivalent to getFlags masked with kAntiAlias_Flag.
-
-    #Return  kAntiAlias_Flag state ##
-
-    #Example
+#Example
         SkPaint paint;
         SkDebugf("paint.isAntiAlias() %c= !!(paint.getFlags() & SkPaint::kAntiAlias_Flag)\n",
                 paint.isAntiAlias() == !!(paint.getFlags() & SkPaint::kAntiAlias_Flag) ? '=' : '!');
@@ -677,15 +601,9 @@
 #Method void setAntiAlias(bool aa)
 #In Anti_alias
 #Line # sets or clears Anti_Alias ##
-    Requests, but does not require, that Path edge pixels draw opaque or with
-    partial transparency.
+#Populate
 
-    Sets kAntiAlias_Flag if aa is true.
-    Clears kAntiAlias_Flag if aa is false.
-
-    #Param aa  setting for kAntiAlias_Flag ##
-
-    #Example
+#Example
         SkPaint paint1, paint2;
         paint1.setAntiAlias(true);
         paint2.setFlags(paint2.getFlags() | SkPaint::kAntiAlias_Flag);
@@ -779,13 +697,9 @@
 #Method bool isDither() const
 #In Dither
 #Line # returns true if Dither is set ##
-    Returns true if color error may be distributed to smooth color transition.
+#Populate
 
-    Equivalent to getFlags masked with kDither_Flag.
-
-    #Return  kDither_Flag state ##
-
-    #Example
+#Example
         SkPaint paint;
         SkDebugf("paint.isDither() %c= !!(paint.getFlags() & SkPaint::kDither_Flag)\n",
                 paint.isDither() == !!(paint.getFlags() & SkPaint::kDither_Flag) ? '=' : '!');
@@ -804,14 +718,9 @@
 #Method void setDither(bool dither)
 #In Dither
 #Line # sets or clears Dither ##
-    Requests, but does not require, to distribute color error.
+#Populate
 
-    Sets kDither_Flag if dither is true.
-    Clears kDither_Flag if dither is false.
-
-    #Param dither  setting for kDither_Flag ##
-
-    #Example
+#Example
         SkPaint paint1, paint2;
         paint1.setDither(true);
         paint2.setFlags(paint2.getFlags() | SkPaint::kDither_Flag);
@@ -887,13 +796,9 @@
 #Method bool isLinearText() const
 #In Linear_Text
 #Line # returns true if text is converted to Path ##
-    Returns true if text is converted to Path before drawing and measuring.
+#Populate
 
-    Equivalent to getFlags masked with kLinearText_Flag.
-
-    #Return  kLinearText_Flag state ##
-
-    #Example
+#Example
     #Height 128
     void draw(SkCanvas* canvas) {
         SkPaint paint;
@@ -918,15 +823,9 @@
 #Method void setLinearText(bool linearText)
 #In Linear_Text
 #Line # converts to Path before draw or measure ##
-    Returns true if text is converted to Path before drawing and measuring.
-    By default, kLinearText_Flag is clear.
+#Populate
 
-    Sets kLinearText_Flag if linearText is true.
-    Clears kLinearText_Flag if linearText is false.
-
-    #Param linearText  setting for kLinearText_Flag ##
-
-    #Example
+#Example
     #Height 128
       void draw(SkCanvas* canvas) {
           SkPaint paint;
@@ -961,13 +860,9 @@
 #Method bool isSubpixelText() const
 #In Subpixel_Text
 #Line # returns true if Subpixel_Text is set ##
-    Returns true if Glyphs at different sub-pixel positions may differ on pixel edge coverage.
+#Populate
 
-    Equivalent to getFlags masked with kSubpixelText_Flag.
-
-    #Return  kSubpixelText_Flag state ##
-
-    #Example
+#Example
 SkPaint paint;
 SkDebugf("paint.isSubpixelText() %c= !!(paint.getFlags() & SkPaint::kSubpixelText_Flag)\n",
     paint.isSubpixelText() == !!(paint.getFlags() & SkPaint::kSubpixelText_Flag) ? '=' : '!');
@@ -986,14 +881,9 @@
 #Method void setSubpixelText(bool subpixelText)
 #In Subpixel_Text
 #Line # sets or clears Subpixel_Text ##
-    Requests, but does not require, that Glyphs respect sub-pixel positioning.
+#Populate
 
-    Sets kSubpixelText_Flag if subpixelText is true.
-    Clears kSubpixelText_Flag if subpixelText is false.
-
-    #Param subpixelText  setting for kSubpixelText_Flag ##
-
-    #Example
+#Example
         SkPaint paint1, paint2;
         paint1.setSubpixelText(true);
         paint2.setFlags(paint2.getFlags() | SkPaint::kSubpixelText_Flag);
@@ -1024,13 +914,9 @@
 #Method bool isLCDRenderText() const
 #In LCD_Text
 #Line # returns true if LCD_Text is set ##
-    Returns true if Glyphs may use LCD striping to improve glyph edges.
+#Populate
 
-    Returns true if Flags kLCDRenderText_Flag is set.
-
-    #Return  kLCDRenderText_Flag state ##
-
-    #Example
+#Example
 SkPaint paint;
 SkDebugf("paint.isLCDRenderText() %c= !!(paint.getFlags() & SkPaint::kLCDRenderText_Flag)\n",
     paint.isLCDRenderText() == !!(paint.getFlags() & SkPaint::kLCDRenderText_Flag) ? '=' : '!');
@@ -1049,14 +935,9 @@
 #Method void setLCDRenderText(bool lcdText)
 #In LCD_Text
 #Line # sets or clears LCD_Text ##
-    Requests, but does not require, that Glyphs use LCD striping for glyph edges.
+#Populate
 
-    Sets kLCDRenderText_Flag if lcdText is true.
-    Clears kLCDRenderText_Flag if lcdText is false.
-
-    #Param lcdText  setting for kLCDRenderText_Flag ##
-
-    #Example
+#Example
         SkPaint paint1, paint2;
         paint1.setLCDRenderText(true);
         paint2.setFlags(paint2.getFlags() | SkPaint::kLCDRenderText_Flag);
@@ -1121,13 +1002,9 @@
 #Method bool isEmbeddedBitmapText() const
 #In Font_Embedded_Bitmaps
 #Line # returns true if Font_Embedded_Bitmaps is set ##
-    Returns true if Font_Engine may return Glyphs from font bitmaps instead of from outlines.
+#Populate
 
-    Equivalent to getFlags masked with kEmbeddedBitmapText_Flag.
-
-    #Return  kEmbeddedBitmapText_Flag state ##
-
-    #Example
+#Example
         SkPaint paint;
         SkDebugf("paint.isEmbeddedBitmapText() %c="
                 " !!(paint.getFlags() & SkPaint::kEmbeddedBitmapText_Flag)\n",
@@ -1150,14 +1027,9 @@
 #Method void setEmbeddedBitmapText(bool useEmbeddedBitmapText)
 #In Font_Embedded_Bitmaps
 #Line # sets or clears Font_Embedded_Bitmaps ##
-    Requests, but does not require, to use bitmaps in fonts instead of outlines.
+#Populate
 
-    Sets kEmbeddedBitmapText_Flag if useEmbeddedBitmapText is true.
-    Clears kEmbeddedBitmapText_Flag if useEmbeddedBitmapText is false.
-
-    #Param useEmbeddedBitmapText  setting for kEmbeddedBitmapText_Flag ##
-
-    #Example
+#Example
         SkPaint paint1, paint2;
         paint1.setEmbeddedBitmapText(true);
         paint2.setFlags(paint2.getFlags() | SkPaint::kEmbeddedBitmapText_Flag);
@@ -1186,15 +1058,9 @@
 #Method bool isAutohinted() const
 #In Automatic_Hinting
 #Line # returns true if Glyphs are always hinted ##
-    Returns true if 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.
+#Populate
 
-    Equivalent to getFlags masked with kAutoHinting_Flag.
-
-    #Return  kAutoHinting_Flag state ##
-
-    #Example
+#Example
             SkPaint paint;
             for (auto forceAutoHinting : { false, true} ) {
             paint.setAutohinted(forceAutoHinting);
@@ -1216,20 +1082,9 @@
 #Method void setAutohinted(bool useAutohinter)
 #In Automatic_Hinting
 #Line # sets Glyphs to always be hinted ##
-    Sets whether to always hint Glyphs.
-    If Hinting is set to kNormal_Hinting or kFull_Hinting and useAutohinter is set,
-    instructs the Font_Manager to always hint Glyphs.
-    Automatic_Hinting has no effect if Hinting is set to kNo_Hinting or
-    kSlight_Hinting.
+#Populate
 
-    Only affects platforms that use FreeType as the Font_Manager.
-
-    Sets kAutoHinting_Flag if useAutohinter is true.
-    Clears kAutoHinting_Flag if useAutohinter is false.
-
-    #Param useAutohinter  setting for kAutoHinting_Flag ##
-
-    #Example
+#Example
     void draw(SkCanvas* canvas) {
         SkPaint paint;
         paint.setAntiAlias(true);
@@ -1290,14 +1145,9 @@
 #Method bool isFakeBoldText() const
 #In Fake_Bold
 #Line # returns true if Fake_Bold is set ##
-    Returns true if approximate bold by increasing the stroke width when creating glyph bitmaps
-    from outlines.
+#Populate
 
-    Equivalent to getFlags masked with kFakeBoldText_Flag.
-
-    #Return  kFakeBoldText_Flag state ##
-
-    #Example
+#Example
     SkPaint paint;
     SkDebugf("paint.isFakeBoldText() %c= !!(paint.getFlags() & SkPaint::kFakeBoldText_Flag)\n",
         paint.isFakeBoldText() == !!(paint.getFlags() & SkPaint::kFakeBoldText_Flag) ? '=' : '!');
@@ -1316,14 +1166,9 @@
 #Method void setFakeBoldText(bool fakeBoldText)
 #In Fake_Bold
 #Line # sets or clears Fake_Bold ##
-    Increases stroke width when creating glyph bitmaps to approximate a bold typeface.
+#Populate
 
-    Sets kFakeBoldText_Flag if fakeBoldText is true.
-    Clears kFakeBoldText_Flag if fakeBoldText is false.
-
-    #Param fakeBoldText  setting for kFakeBoldText_Flag ##
-
-    #Example
+#Example
         SkPaint paint1, paint2;
         paint1.setFakeBoldText(true);
         paint2.setFlags(paint2.getFlags() | SkPaint::kFakeBoldText_Flag);
@@ -1342,12 +1187,12 @@
 #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
-spacing by the difference of the hinted and Unhinted Left_Side_Bearing and
+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.
 
-Full_Hinting_Spacing is not related to text Kerning, where the space between
-a specific pair of characters is adjusted using data in the font Kerning tables.
+Full_Hinting_Spacing is not related to text kerning, where the space between
+a specific pair of characters is adjusted using data in the font kerning tables.
 #Subtopic Full_Hinting_Spacing ##
 
 #Method bool isDevKernText() const
@@ -1399,12 +1244,7 @@
 #Method SkFilterQuality getFilterQuality() const
 #In Filter_Quality_Methods
 #Line # returns Filter_Quality, image filtering level ##
-Returns Filter_Quality, the image filtering level. A lower setting
-draws faster; a higher setting looks better when the image is scaled.
-
-#Return  one of: kNone_SkFilterQuality, kLow_SkFilterQuality,
-                 kMedium_SkFilterQuality, kHigh_SkFilterQuality
-#Return ##
+#Populate
 
 #Example
     SkPaint paint;
@@ -1422,13 +1262,7 @@
 #Method void setFilterQuality(SkFilterQuality quality)
 #In Filter_Quality_Methods
 #Line # sets Filter_Quality, the image filtering level ##
-Sets Filter_Quality, the image filtering level. A lower setting
-draws faster; a higher setting looks better when the image is scaled.
-Does not check to see if quality is valid.
-
-#Param  quality  one of: kNone_SkFilterQuality, kLow_SkFilterQuality,
-                 kMedium_SkFilterQuality, kHigh_SkFilterQuality
-##
+#Populate
 
 #Example
     SkPaint paint;
@@ -1494,13 +1328,9 @@
 #Method SkColor getColor() const
 #In Color_Methods
 #Line # returns Color_Alpha and RGB, one drawing color ##
-    Retrieves Alpha and RGB, Unpremultiplied, packed into 32 bits.
-    Use helpers SkColorGetA, SkColorGetR, SkColorGetG, and SkColorGetB to extract
-    a color component.
+#Populate
 
-    #Return  Unpremultiplied ARGB ##
-
-    #Example
+#Example
         SkPaint paint;
         paint.setColor(SK_ColorYELLOW);
         SkColor y = paint.getColor();
@@ -1519,13 +1349,9 @@
 #Method SkColor4f getColor4f() const
 #In Color_Methods
 #Line # returns Color_Alpha and RGB, one drawing color ##
-    Retrieves alpha and RGB, unpmreultiplied, as four floating point values. RGB are
-    are extended sRGB values (sRGB gamut, and encoded with the sRGB transfer function).
+#Populate
 
-    #Return  Unpremultiplied RGBA ##
-
-    #ToDo enable and correct example once fiddle picks up getColor4f ##
-    #Example
+#Example
         SkPaint paint;
         paint.setColor(SK_ColorYELLOW);
         SkColor4f y = paint.getColor4f();
@@ -1544,12 +1370,9 @@
 #Method void setColor(SkColor color)
 #In Color_Methods
 #Line # sets Color_Alpha and RGB, one drawing color ##
-    Sets Alpha and RGB used when stroking and filling. The color is a 32-bit value,
-    Unpremultiplied, packing 8-bit components for Alpha, red, blue, and green.
+#Populate
 
-    #Param color    Unpremultiplied ARGB ##
-
-    #Example
+#Example
         SkPaint green1, green2;
         unsigned a = 255;
         unsigned r = 0;
@@ -1571,16 +1394,9 @@
 #Method void setColor4f(const SkColor4f& color, SkColorSpace* colorSpace)
 #In Color_Methods
 #Line # sets Color_Alpha and RGB, one drawing color ##
-    Sets alpha and RGB used when stroking and filling. The color is four floating
-    point values, unpremultiplied. The color values are interpreted as being in
-    the colorSpace. If colorSpace is nullptr, then color is assumed to be in the
-    sRGB color space.
+#Populate
 
-    #Param color    Unpremultiplied RGBA ##
-    #Param colorSpace  Color_Space describing the encoding of color ##
-
-    #ToDo enable and correct example once fiddle picks up setColor4f ##
-    #Example
+#Example
         SkPaint green1, green2;
         green1.setColor4f({0, 1, 0, 1}, nullptr);  // R=0 G=1 B=0 A=1
         green2.setColor(0xFF00FF00); // A=255 R=0 G=255 B=0
@@ -1604,11 +1420,9 @@
 #Method uint8_t getAlpha() const
 #In Alpha_Methods
 #Line # returns Color_Alpha, color opacity ##
-    Retrieves Alpha from the Color used when stroking and filling.
+#Populate
 
-    #Return  Alpha ranging from zero, fully transparent, to 255, fully opaque ##
-
-    #Example
+#Example
         SkPaint paint;
         SkDebugf("255 %c= paint.getAlpha()\n", 255 == paint.getAlpha() ? '=' : '!');
 
@@ -1622,15 +1436,9 @@
 #Method void setAlpha(U8CPU a)
 #In Alpha_Methods
 #Line # sets Color_Alpha, color opacity ##
-    Replaces Alpha, leaving RGB
-    unchanged. An out of range value triggers an assert in the debug
-    build. a is a value from zero to 255.
-    a set to zero makes Color fully transparent; a set to 255 makes Color
-    fully opaque.
+#Populate
 
-    #Param a    Alpha component of Color ##
-
-    #Example
+#Example
         SkPaint paint;
         paint.setColor(0x00112233);
         paint.setAlpha(0x44);
@@ -1646,15 +1454,9 @@
 #Method void setARGB(U8CPU a, U8CPU r, U8CPU g, U8CPU b)
 #In Color_Methods
 #Line # sets color by component ##
-    Sets Color used when drawing solid fills. The color components range from 0 to 255.
-    The color is Unpremultiplied; Alpha sets the transparency independent of RGB.
+#Populate
 
-    #Param a    amount of Color_Alpha, from fully transparent (0) to fully opaque (255) ##
-    #Param r    amount of red, from no red (0) to full red (255) ##
-    #Param g    amount of green, from no green (0) to full green (255) ##
-    #Param b    amount of blue, from no blue (0) to full blue (255) ##
-
-    #Example
+#Example
         SkPaint transRed1, transRed2;
         transRed1.setARGB(255 / 2, 255, 0, 0);
         transRed2.setColor(SkColorSetARGB(255 / 2, 255, 0, 0));
@@ -1767,11 +1569,9 @@
 #Method Style getStyle() const
 #In Style
 #Line # returns Style: stroke, fill, or both ##
-    Returns whether the geometry is filled, stroked, or filled and stroked.
+#Populate
 
-    #Return  one of:kFill_Style, kStroke_Style, kStrokeAndFill_Style ##
-
-    #Example
+#Example
         SkPaint paint;
         SkDebugf("SkPaint::kFill_Style %c= paint.getStyle()\n",
                 SkPaint::kFill_Style == paint.getStyle() ? '=' : '!');
@@ -1787,13 +1587,9 @@
 #Method void setStyle(Style style)
 #In Style
 #Line # sets Style: stroke, fill, or both ##
-    Sets whether the geometry is filled, stroked, or filled and stroked.
-    Has no effect if style is not a legal Style value.
+#Populate
 
-    #Param style  one of: kFill_Style, kStroke_Style, kStrokeAndFill_Style
-    ##
-
-    #Example
+#Example
         void draw(SkCanvas* canvas) {
             SkPaint paint;
             paint.setStrokeWidth(5);
@@ -1867,12 +1663,9 @@
 
 #In Stroke_Width
 #Line # returns thickness of the stroke ##
-    Returns the thickness of the pen used by Paint to
-    outline the shape.
+#Populate
 
-    #Return  zero for Hairline, greater than zero for pen thickness ##
-
-    #Example
+#Example
         SkPaint paint;
         SkDebugf("0 %c= paint.getStrokeWidth()\n", 0 == paint.getStrokeWidth() ? '=' : '!');
 
@@ -1887,14 +1680,9 @@
 
 #In Stroke_Width
 #Line # sets thickness of the stroke ##
-    Sets the thickness of the pen used by the paint to
-    outline the shape.
-    Has no effect if width is less than zero.
+#Populate
 
-    #Param width  zero thickness for Hairline; greater than zero for pen thickness
-    ##
-
-    #Example
+#Example
         SkPaint paint;
         paint.setStrokeWidth(5);
         paint.setStrokeWidth(-1);
@@ -1990,11 +1778,9 @@
 
 #In Miter_Limit
 #Line # returns Miter_Limit, angles with sharp corners ##
-    Returns the limit at which a sharp corner is drawn beveled.
+#Populate
 
-    #Return  zero and greater Miter_Limit ##
-
-    #Example
+#Example
         SkPaint paint;
         SkDebugf("default miter limit == %g\n", paint.getStrokeMiter());
 
@@ -2011,14 +1797,9 @@
 
 #In Miter_Limit
 #Line # sets Miter_Limit, angles with sharp corners ##
-    Sets the limit at which a sharp corner is drawn beveled.
-    Valid values are zero and greater.
-    Has no effect if miter is less than zero.
+#Populate
 
-    #Param miter  zero and greater Miter_Limit
-    ##
-
-    #Example
+#Example
         SkPaint paint;
         paint.setStrokeMiter(8);
         paint.setStrokeMiter(-1);
@@ -2121,11 +1902,9 @@
 
 #In Stroke_Cap
 #Line # returns Cap, the area drawn at path ends ##
-    Returns the geometry drawn at the beginning and end of strokes.
+#Populate
 
-    #Return  one of: kButt_Cap, kRound_Cap, kSquare_Cap ##
-
-    #Example
+#Example
         SkPaint paint;
         SkDebugf("kButt_Cap %c= default stroke cap\n",
                 SkPaint::kButt_Cap == paint.getStrokeCap() ? '=' : '!');
@@ -2142,13 +1921,9 @@
 
 #In Stroke_Cap
 #Line # sets Cap, the area drawn at path ends ##
-    Sets the geometry drawn at the beginning and end of strokes.
+#Populate
 
-    #Param cap  one of: kButt_Cap, kRound_Cap, kSquare_Cap;
-                has no effect if cap is not valid
-    ##
-
-    #Example
+#Example
         SkPaint paint;
         paint.setStrokeCap(SkPaint::kRound_Cap);
         paint.setStrokeCap((SkPaint::Cap) SkPaint::kCapCount);
@@ -2276,11 +2051,9 @@
 
 #In Stroke_Join
 #Line # returns Join, geometry on path corners ##
-    Returns the geometry drawn at the corners of strokes.
+#Populate
 
-    #Return  one of: kMiter_Join, kRound_Join, kBevel_Join ##
-
-    #Example
+#Example
         SkPaint paint;
         SkDebugf("kMiter_Join %c= default stroke join\n",
                 SkPaint::kMiter_Join == paint.getStrokeJoin() ? '=' : '!');
@@ -2297,13 +2070,9 @@
 
 #In Stroke_Join
 #Line # sets Join, geometry on path corners ##
-    Sets the geometry drawn at the corners of strokes.
+#Populate
 
-    #Param join  one of: kMiter_Join, kRound_Join, kBevel_Join;
-                 otherwise, has no effect
-    ##
-
-    #Example
+#Example
         SkPaint paint;
         paint.setStrokeJoin(SkPaint::kMiter_Join);
         paint.setStrokeJoin((SkPaint::Join) SkPaint::kJoinCount);
@@ -2350,18 +2119,9 @@
                      SkScalar resScale = 1) const
 #In Fill_Path
 #Line # returns fill path equivalent to stroke ##
+#Populate
 
-    Returns the filled equivalent of the stroked path.
-
-    #Param src       Path read to create a filled version ##
-    #Param dst       resulting Path; may be the same as src, but may not be nullptr ##
-    #Param cullRect  optional limit passed to Path_Effect ##
-    #Param resScale  if > 1, increase precision, else if (0 < res < 1) reduce precision
-                     to favor speed and size
-    ##
-    #Return         true if the path represents Style_Fill, or false if it represents Hairline ##
-
-    #Example
+#Example
     #Height 192
     #Description
     A very small Quad stroke is turned into a filled path with increasing levels of precision.
@@ -2398,16 +2158,9 @@
 #Method bool getFillPath(const SkPath& src, SkPath* dst) const
 
 #In Fill_Path
-    Returns the filled equivalent of the stroked path.
+#Populate
 
-    Replaces dst with the src path modified by Path_Effect and Style_Stroke.
-    Path_Effect, if any, is not culled. Stroke_Width is created with default precision.
-
-    #Param src  Path read to create a filled version ##
-    #Param dst  resulting Path dst may be the same as src, but may not be nullptr ##
-    #Return     true if the path represents Style_Fill, or false if it represents Hairline ##
-
-    #Example
+#Example
     #Height 128
         void draw(SkCanvas* canvas) {
             SkPaint paint;
@@ -2480,13 +2233,9 @@
 
 #In Shader_Methods
 #Line # returns Shader, multiple drawing colors; gradients ##
-    Returns optional colors used when filling a path, such as a gradient.
+#Populate
 
-    Does not alter Shader Reference_Count.
-
-    #Return  Shader if previously set, nullptr otherwise ##
-
-    #Example
+#Example
         void draw(SkCanvas* canvas) {
            SkPaint paint;
            SkDebugf("nullptr %c= shader\n", paint.getShader() ? '!' : '=');
@@ -2506,13 +2255,9 @@
 
 #In Shader_Methods
 #Line # references Shader, multiple drawing colors; gradients ##
-    Returns optional colors used when filling a path, such as a gradient.
+#Populate
 
-    Increases Shader Reference_Count by one.
-
-    #Return  Shader if previously set, nullptr otherwise ##
-
-    #Example
+#Example
         void draw(SkCanvas* canvas) {
            SkPaint paint1, paint2;
            paint1.setShader(SkShader::MakeEmptyShader());
@@ -2533,14 +2278,9 @@
 
 #In Shader_Methods
 #Line # sets Shader, multiple drawing colors; gradients ##
-    Sets optional colors used when filling a path, such as a gradient.
+#Populate
 
-    Sets Shader to shader, decreasing Reference_Count of the previous Shader.
-    Increments shader Reference_Count by one.
-
-    #Param shader  how geometry is filled with color; if nullptr, Color is used instead ##
-
-    #Example
+#Example
     #Height 64
         void draw(SkCanvas* canvas) {
             SkPaint paint;
@@ -2585,12 +2325,9 @@
 
 #In Color_Filter_Methods
 #Line # returns Color_Filter, how colors are altered ##
-    Returns Color_Filter if set, or nullptr.
-    Does not alter Color_Filter Reference_Count.
+#Populate
 
-    #Return  Color_Filter if previously set, nullptr otherwise ##
-
-    #Example
+#Example
         void draw(SkCanvas* canvas) {
            SkPaint paint;
            SkDebugf("nullptr %c= color filter\n", paint.getColorFilter() ? '!' : '=');
@@ -2609,12 +2346,9 @@
 
 #In Color_Filter_Methods
 #Line # references Color_Filter, how colors are altered ##
-    Returns Color_Filter if set, or nullptr.
-    Increases Color_Filter Reference_Count by one.
+#Populate
 
-    #Return  Color_Filter if set, or nullptr ##
-
-    #Example
+#Example
     void draw(SkCanvas* canvas) {
         SkPaint paint1, paint2;
         paint1.setColorFilter(SkColorFilter::MakeModeFilter(0xFFFF0000, SkBlendMode::kSrcATop));
@@ -2634,14 +2368,9 @@
 
 #In Color_Filter_Methods
 #Line # sets Color_Filter, alters color ##
-Sets Color_Filter to filter, decreasing Reference_Count of the previous
-Color_Filter. Pass nullptr to clear Color_Filter.
+#Populate
 
-Increments filter Reference_Count by one.
-
-    #Param colorFilter  Color_Filter to apply to subsequent draw ##
-
-    #Example
+#Example
     #Height 64
         void draw(SkCanvas* canvas) {
            SkPaint paint;
@@ -2686,12 +2415,9 @@
 
 #In Blend_Mode_Methods
 #Line # returns Blend_Mode, how colors combine with Device ##
-    Returns Blend_Mode.
-    By default, returns SkBlendMode::kSrcOver.
+#Populate
 
-    #Return  mode used to combine source color with destination color ##
-
-    #Example
+#Example
         void draw(SkCanvas* canvas) {
            SkPaint paint;
            SkDebugf("kSrcOver %c= getBlendMode\n",
@@ -2713,11 +2439,9 @@
 
 #In Blend_Mode_Methods
 #Line # returns true if Blend_Mode is SkBlendMode::kSrcOver ##
-    Returns true if Blend_Mode is SkBlendMode::kSrcOver, the default.
+#Populate
 
-    #Return  true if Blend_Mode is SkBlendMode::kSrcOver  ##
-
-    #Example
+#Example
         void draw(SkCanvas* canvas) {
            SkPaint paint;
            SkDebugf("isSrcOver %c= true\n", paint.isSrcOver() ? '=' : '!');
@@ -2737,12 +2461,9 @@
 
 #In Blend_Mode_Methods
 #Line # sets Blend_Mode, how colors combine with destination ##
-    Sets Blend_Mode to mode.
-    Does not check for valid input.
+#Populate
 
-    #Param mode  SkBlendMode used to combine source color and destination ##
-
-    #Example
+#Example
         void draw(SkCanvas* canvas) {
            SkPaint paint;
            SkDebugf("isSrcOver %c= true\n", paint.isSrcOver() ? '=' : '!');
@@ -2785,12 +2506,9 @@
 
 #In Path_Effect_Methods
 #Line # returns Path_Effect, modifications to path geometry; dashing ##
-    Returns Path_Effect if set, or nullptr.
-    Does not alter Path_Effect Reference_Count.
+#Populate
 
-    #Return  Path_Effect if previously set, nullptr otherwise ##
-
-    #Example
+#Example
         void draw(SkCanvas* canvas) {
            SkPaint paint;
            SkDebugf("nullptr %c= path effect\n", paint.getPathEffect() ? '!' : '=');
@@ -2811,12 +2529,9 @@
 
 #In Path_Effect_Methods
 #Line # references Path_Effect, modifications to path geometry; dashing ##
-    Returns Path_Effect if set, or nullptr.
-    Increases Path_Effect Reference_Count by one.
+#Populate
 
-    #Return  Path_Effect if previously set, nullptr otherwise ##
-
-    #Example
+#Example
     void draw(SkCanvas* canvas) {
         SkPaint paint1, paint2;
         SkScalar intervals[] = {1, 2};
@@ -2839,14 +2554,9 @@
 
 #In Path_Effect_Methods
 #Line # sets Path_Effect, modifications to path geometry; dashing ##
-Sets Path_Effect to pathEffect, decreasing Reference_Count of the previous
-Path_Effect. Pass nullptr to leave the path geometry unaltered.
+#Populate
 
-Increments pathEffect Reference_Count by one.
-
-    #Param pathEffect  replace Path with a modification when drawn ##
-
-    #Example
+#Example
         void draw(SkCanvas* canvas) {
             SkPaint paint;
             paint.setPathEffect(SkDiscretePathEffect::Make(3, 5));
@@ -2880,12 +2590,9 @@
 
 #In Mask_Filter_Methods
 #Line # returns Mask_Filter, alterations to Mask_Alpha ##
-    Returns Mask_Filter if set, or nullptr.
-    Does not alter Mask_Filter Reference_Count.
+#Populate
 
-    #Return  Mask_Filter if previously set, nullptr otherwise ##
-
-    #Example
+#Example
         void draw(SkCanvas* canvas) {
            SkPaint paint;
            SkDebugf("nullptr %c= mask filter\n", paint.getMaskFilter() ? '!' : '=');
@@ -2905,13 +2612,9 @@
 
 #In Mask_Filter_Methods
 #Line # references Mask_Filter, alterations to Mask_Alpha ##
-    Returns Mask_Filter if set, or nullptr.
+#Populate
 
-    Increases Mask_Filter Reference_Count by one.
-
-    #Return  Mask_Filter if previously set, nullptr otherwise ##
-
-    #Example
+#Example
     void draw(SkCanvas* canvas) {
         SkPaint paint1, paint2;
         paint1.setMaskFilter(SkMaskFilter::MakeBlur(kNormal_SkBlurStyle, 1));
@@ -2932,15 +2635,9 @@
 
 #In Mask_Filter_Methods
 #Line # sets Mask_Filter, alterations to Mask_Alpha ##
-Sets Mask_Filter to maskFilter, decreasing Reference_Count of the previous
-Mask_Filter. Pass nullptr to clear Mask_Filter and leave Mask_Filter effect on
-Mask_Alpha unaltered.
+#Populate
 
-Increments maskFilter Reference_Count by one.
-
-    #Param maskFilter   modifies clipping mask generated from drawn geometry ##
-
-    #Example
+#Example
         void draw(SkCanvas* canvas) {
             SkPaint paint;
             paint.setStyle(SkPaint::kStroke_Style);
@@ -2980,12 +2677,9 @@
 
 #In Typeface_Methods
 #Line # returns Typeface, font description ##
-    Returns Typeface if set, or nullptr.
-    Does not alter Typeface Reference_Count.
+#Populate
 
-    #Return  Typeface if previously set, nullptr otherwise ##
-
-    #Example
+#Example
         void draw(SkCanvas* canvas) {
            SkPaint paint;
            SkDebugf("nullptr %c= typeface\n", paint.getTypeface() ? '!' : '=');
@@ -3005,11 +2699,9 @@
 
 #In Typeface_Methods
 #Line # references Typeface, font description ##
-    Increases Typeface Reference_Count by one.
+#Populate
 
-    #Return  Typeface if previously set, nullptr otherwise ##
-
-    #Example
+#Example
         void draw(SkCanvas* canvas) {
            SkPaint paint1, paint2;
            paint1.setTypeface(SkTypeface::MakeFromName("monospace",
@@ -3034,13 +2726,9 @@
 
 #In Typeface_Methods
 #Line # sets Typeface, font description ##
-Sets Typeface to typeface, decreasing Reference_Count of the previous Typeface.
-Pass nullptr to clear Typeface and use the default typeface. Increments
-typeface Reference_Count by one.
+#Populate
 
-    #Param typeface  font and style used to draw text ##
-
-    #Example
+#Example
     #Height 64
         void draw(SkCanvas* canvas) {
             SkPaint paint;
@@ -3094,12 +2782,9 @@
 
 #In Image_Filter_Methods
 #Line # returns Image_Filter, alter pixels; blur ##
-    Returns Image_Filter if set, or nullptr.
-    Does not alter Image_Filter Reference_Count.
+#Populate
 
-    #Return  Image_Filter if previously set, nullptr otherwise ##
-
-    #Example
+#Example
         #Function
         ###$
         #include "SkBlurImageFilter.h"
@@ -3124,12 +2809,9 @@
 
 #In Image_Filter_Methods
 #Line # references Image_Filter, alter pixels; blur ##
-    Returns Image_Filter if set, or nullptr.
-    Increases Image_Filter Reference_Count by one.
+#Populate
 
-    #Return  Image_Filter if previously set, nullptr otherwise ##
-
-    #Example
+#Example
     void draw(SkCanvas* canvas) {
         SkPaint paint1, paint2;
         paint1.setImageFilter(SkOffsetImageFilter::Make(25, 25, nullptr));
@@ -3150,15 +2832,9 @@
 
 #In Image_Filter_Methods
 #Line # sets Image_Filter, alter pixels; blur ##
-Sets Image_Filter to imageFilter, decreasing Reference_Count of the previous
-Image_Filter. Pass nullptr to clear Image_Filter, and remove Image_Filter effect
-on drawing.
+#Populate
 
-Increments imageFilter Reference_Count by one.
-
-    #Param imageFilter  how Image is sampled when transformed ##
-
-    #Example
+#Example
     #Height 160
     void draw(SkCanvas* canvas) {
         SkBitmap bitmap;
@@ -3214,12 +2890,9 @@
 
 #In Draw_Looper_Methods
 #Line # returns Draw_Looper, multiple layers ##
-    Returns Draw_Looper if set, or nullptr.
-    Does not alter Draw_Looper Reference_Count.
+#Populate
 
-    #Return  Draw_Looper if previously set, nullptr otherwise ##
-
-    #Example
+#Example
         void draw(SkCanvas* canvas) {
            SkPaint paint;
            SkDebugf("nullptr %c= draw looper\n", paint.getDrawLooper() ? '!' : '=');
@@ -3240,12 +2913,9 @@
 
 #In Draw_Looper_Methods
 #Line # references Draw_Looper, multiple layers ##
-    Returns Draw_Looper if set, or nullptr.
-    Increases Draw_Looper Reference_Count by one.
+#Populate
 
-    #Return  Draw_Looper if previously set, nullptr otherwise ##
-
-    #Example
+#Example
     void draw(SkCanvas* canvas) {
         SkPaint paint1, paint2;
         SkLayerDrawLooper::Builder looperBuilder;
@@ -3271,15 +2941,9 @@
 #Method void setDrawLooper(sk_sp<SkDrawLooper> drawLooper)
 #In Draw_Looper_Methods
 #Line # sets Draw_Looper, multiple layers ##
-Sets Draw_Looper to drawLooper, decreasing Reference_Count of the previous
-drawLooper.  Pass nullptr to clear Draw_Looper and leave Draw_Looper effect on
-drawing unaltered.
+#Populate
 
-Increments drawLooper Reference_Count by one.
-
-    #Param drawLooper  iterates through drawing one or more time, altering Paint ##
-
-    #Example
+#Example
     #Height 128
         void draw(SkCanvas* canvas) {
             SkPaint paint;
@@ -3359,11 +3023,9 @@
 
 #In Text_Size
 #Line # returns text size in points ##
-    Returns Text_Size in points.
+#Populate
 
-    #Return  typographic height of text ##
-
-    #Example
+#Example
         SkPaint paint;
         SkDebugf("12 %c= default text size\n", 12 == paint.getTextSize() ? '=' : '!');
     ##
@@ -3374,12 +3036,9 @@
 
 #In Text_Size
 #Line # sets text size in points ##
-    Sets Text_Size in points.
-    Has no effect if textSize is not greater than or equal to zero.
+#Populate
 
-    #Param textSize  typographic height of text ##
-
-    #Example
+#Example
         SkPaint paint;
         SkDebugf("12 %c= text size\n", 12 == paint.getTextSize() ? '=' : '!');
         paint.setTextSize(-20);
@@ -3418,12 +3077,9 @@
 
 #In Text_Scale_X
 #Line # returns the text horizontal scale; condensed text ##
-    Returns Text_Scale_X.
-    Default value is 1.
+#Populate
 
-    #Return  text horizontal scale ##
-
-    #Example
+#Example
         SkPaint paint;
         SkDebugf("1 %c= default text scale x\n", 1 == paint.getTextScaleX() ? '=' : '!');
     ##
@@ -3435,12 +3091,9 @@
 
 #In Text_Scale_X
 #Line # sets the text horizontal scale; condensed text ##
-    Sets Text_Scale_X.
-    Default value is 1.
+#Populate
 
-    #Param scaleX  text horizontal scale ##
-
-    #Example
+#Example
         SkPaint paint;
         paint.setTextScaleX(0.f / 0.f);
         SkDebugf("text scale %s-a-number\n", SkScalarIsNaN(paint.getTextScaleX()) ? "not" : "is");
@@ -3479,12 +3132,9 @@
 
 #In Text_Skew_X
 #Line # returns the text horizontal skew; oblique text ##
-    Returns Text_Skew_X.
-    Default value is zero.
+#Populate
 
-    #Return  additional shear in x-axis relative to y-axis ##
-
-    #Example
+#Example
         SkPaint paint;
         SkDebugf("0 %c= default text skew x\n", 0 == paint.getTextSkewX() ? '=' : '!');
     ##
@@ -3495,12 +3145,9 @@
 
 #In Text_Skew_X
 #Line # sets the text horizontal skew; oblique text ##
-    Sets Text_Skew_X.
-    Default value is zero.
+#Populate
 
-    #Param skewX  additional shear in x-axis relative to y-axis ##
-
-    #Example
+#Example
         SkPaint paint;
         paint.setTextScaleX(1.f / 0.f);
         SkDebugf("text scale %s-finite\n", SkScalarIsFinite(paint.getTextScaleX()) ? "is" : "not");
@@ -3589,14 +3236,9 @@
 
 #In Text_Encoding
 #Line # returns character or glyph encoded size ##
-    Returns Text_Encoding.
-    Text_Encoding determines how character code points are mapped to font glyph indices.
+#Populate
 
-    #Return  one of: kUTF8_TextEncoding, kUTF16_TextEncoding, kUTF32_TextEncoding, or
-             kGlyphID_TextEncoding
-    ##
-
-    #Example
+#Example
         SkPaint paint;
         SkDebugf("kUTF8_TextEncoding %c= text encoding\n",
                 SkPaint::kUTF8_TextEncoding == paint.getTextEncoding() ? '=' : '!');
@@ -3617,15 +3259,9 @@
 
 #In Text_Encoding
 #Line # sets character or glyph encoded size ##
-    Sets Text_Encoding to encoding.
-    Text_Encoding determines how character code points are mapped to font glyph indices.
-    Invalid values for encoding are ignored.
+#Populate
 
-    #Param encoding  one of: kUTF8_TextEncoding, kUTF16_TextEncoding, kUTF32_TextEncoding, or
-                     kGlyphID_TextEncoding
-    #Param ##
-
-    #Example
+#Example
         SkPaint paint;
         paint.setTextEncoding((SkPaint::TextEncoding) 4);
         SkDebugf("4 %c= text encoding\n", (SkPaint::TextEncoding) 4 == paint.getTextEncoding() ? '=' : '!');
@@ -3840,61 +3476,33 @@
 
     #Method bool hasUnderlineThickness(SkScalar* thickness) const
     #Line # returns underline thickness if set ##
+#Populate
 
-        Returns true if Font_Metrics has a valid underline thickness, and sets
-        thickness to that value. If the underline thickness is not valid,
-        return false, and ignore thickness.
-
-        #Param thickness  storage for underline width ##
-
-        #Return  true if font specifies underline width ##
-
-        #NoExample
+#NoExample
         ##
     ##
 
     #Method bool hasUnderlinePosition(SkScalar* position) const
     #Line # returns underline position if set ##
+#Populate
 
-        Returns true if Font_Metrics has a valid underline position, and sets
-        position to that value. If the underline position is not valid,
-        return false, and ignore position.
-
-        #Param position  storage for underline position ##
-
-        #Return  true if font specifies underline position ##
-
-        #NoExample
+#NoExample
         ##
     ##
 
     #Method bool hasStrikeoutThickness(SkScalar* thickness) const
     #Line # returns strikeout thickness if set ##
+#Populate
 
-        Returns true if Font_Metrics has a valid strikeout thickness, and sets
-        thickness to that value. If the underline thickness is not valid,
-        return false, and ignore thickness.
-
-        #Param thickness  storage for strikeout width ##
-
-        #Return  true if font specifies strikeout width ##
-
-        #NoExample
+#NoExample
         ##
     ##
 
     #Method bool hasStrikeoutPosition(SkScalar* position) const
     #Line # returns strikeout position if set ##
+#Populate
 
-        Returns true if Font_Metrics has a valid strikeout position, and sets
-        position to that value. If the underline position is not valid,
-        return false, and ignore position.
-
-        #Param position  storage for strikeout position ##
-
-        #Return  true if font specifies strikeout position ##
-
-        #NoExample
+#NoExample
         ##
     ##
 
@@ -3904,22 +3512,9 @@
 
 #In Font_Metrics
 #Line # returns Typeface metrics scaled by text size ##
-    Returns Font_Metrics associated with Typeface.
-    The return value is the recommended spacing between lines: the sum of metrics
-    descent, ascent, and leading.
-    If metrics is not nullptr, Font_Metrics is copied to metrics.
-    Results are scaled by Text_Size but does not take into account
-    dimensions required by Text_Scale_X, Text_Skew_X, Fake_Bold,
-    Style_Stroke, and Path_Effect.
-    Results can be additionally scaled by scale; a scale of zero
-    is ignored.
+#Populate
 
-    #Param metrics  storage for Font_Metrics from Typeface; may be nullptr ##
-    #Param scale    additional multiplier for returned values ##
-
-    #Return         recommended spacing between lines ##
-
-    #Example
+#Example
     #Height 128
         void draw(SkCanvas* canvas) {
             SkPaint paint;
@@ -3944,15 +3539,9 @@
 
 #In Font_Metrics
 #Line # returns recommended spacing between lines ##
-    Returns the recommended spacing between lines: the sum of metrics
-    descent, ascent, and leading.
-    Result is scaled by Text_Size but does not take into account
-    dimensions required by stroking and Path_Effect.
-    Returns the same result as getFontMetrics.
+#Populate
 
-    #Return         recommended spacing between lines ##
-
-    #Example
+#Example
         SkPaint paint;
         for (SkScalar textSize : { 12, 18, 24, 32 } ) {
             paint.setTextSize(textSize);
@@ -3974,16 +3563,7 @@
 
 #In Font_Metrics
 #Line # returns union all glyph bounds ##
-Returns the union of bounds of all Glyphs.
-Returned dimensions are computed by Font_Manager from font data,
-ignoring Hinting. Includes Text_Size, Text_Scale_X,
-and Text_Skew_X, but not Fake_Bold or Path_Effect.
-
-If Text_Size is large, Text_Scale_X is one, and Text_Skew_X is zero,
-returns the same bounds as Font_Metrics { FontMetrics::fXMin,
-FontMetrics::fTop, FontMetrics::fXMax, FontMetrics::fBottom }.
-
-#Return  union of bounds of all Glyphs ##
+#Populate
 
 #Example
     SkPaint paint;
@@ -4008,27 +3588,9 @@
                      SkGlyphID glyphs[]) const
 #In Utility
 #Line # converts text into glyph indices ##
+#Populate
 
-Converts text into glyph indices.
-Returns the number of glyph indices represented by text.
-Text_Encoding specifies how text represents characters or glyphs.
-glyphs may be nullptr, to compute the glyph count.
-
-Does not check text for valid character codes or valid glyph indices.
-
-If byteLength equals zero, returns zero.
-If byteLength includes a partial character, the partial character is ignored.
-
-If Text_Encoding is kUTF8_TextEncoding and
-text contains an invalid UTF-8 sequence, zero is returned.
-
-#Param text        character storage encoded with Text_Encoding ##
-#Param byteLength  length of character storage in bytes ##
-#Param glyphs      storage for glyph indices; may be nullptr ##
-
-#Return            number of glyphs represented by text of length byteLength ##
-
-    #Example
+#Example
     #Height 64
         void draw(SkCanvas* canvas) {
             SkPaint paint;
@@ -4048,16 +3610,9 @@
 #Method int countText(const void* text, size_t byteLength) const
 #In Utility
 #Line # returns number of Glyphs in text ##
-    Returns the number of Glyphs in text.
-    Uses Text_Encoding to count the Glyphs.
-    Returns the same result as textToGlyphs.
+#Populate
 
-#Param text        character storage encoded with Text_Encoding ##
-#Param byteLength  length of character storage in bytes ##
-
-#Return            number of Glyphs represented by text of length byteLength ##
-
-    #Example
+#Example
         SkPaint paint;
         const uint8_t utf8[] = { 0x24, 0xC2, 0xA2, 0xE2, 0x82, 0xAC, 0xC2, 0xA5, 0xC2, 0xA3 };
         SkDebugf("count = %d\n", paint.countText(utf8, sizeof(utf8)));
@@ -4073,22 +3628,9 @@
 #Method bool containsText(const void* text, size_t byteLength) const
 #In Utility
 #Line # returns if all text corresponds to Glyphs ##
-    Returns true if all text corresponds to a non-zero glyph index.
-    Returns false if any characters in text are not supported in
-    Typeface.
+#Populate
 
-    If Text_Encoding is kGlyphID_TextEncoding,
-    returns true if all glyph indices in text are non-zero;
-    does not check to see if text contains valid glyph indices for Typeface.
-
-    Returns true if byteLength is zero.
-
-    #Param text  array of characters or Glyphs ##
-    #Param byteLength  number of bytes in text array ##
-
-    #Return  true if all text corresponds to a non-zero glyph index ##
-
-    #NoExample
+#NoExample
     #Description
     containsText succeeds for degree symbol, but cannot find a glyph index
     corresponding to the Unicode surrogate code point.
@@ -4142,19 +3684,9 @@
                               int count, SkUnichar text[]) const
 #In Utility
 #Line # converts Glyphs into text ##
+#Populate
 
-    Converts glyphs into text if possible.
-    Glyph values without direct Unicode equivalents are mapped to zero.
-    Uses the Typeface, but is unaffected
-    by Text_Encoding; the text values returned are equivalent to kUTF32_TextEncoding.
-
-    Only supported on platforms that use FreeType as the Font_Engine.
-
-    #Param glyphs  array of indices into font ##
-    #Param count   length of glyph array ##
-    #Param text    storage for character codes, one per glyph ##
-
-    #Example
+#Example
     #Height 64
     #Description
     Convert UTF-8 text to glyphs; then convert glyphs to Unichar code points.
@@ -4184,21 +3716,9 @@
 
 #In Measure_Text
 #Line # returns advance width and bounds of text ##
-    Returns the advance width of text.
-    The advance is the normal distance to move before drawing additional text.
-    Uses Text_Encoding to decode text, Typeface to get the font metrics,
-    and Text_Size, Text_Scale_X, Text_Skew_X, Stroke_Width, and
-    Path_Effect to scale the metrics and bounds.
-    Returns the bounding box of text if bounds is not nullptr.
-    The bounding box is computed as if the text was drawn at the origin.
+#Populate
 
-    #Param text         character codes or glyph indices to be measured ##
-    #Param length       number of bytes of text to measure ##
-    #Param bounds       returns bounding box relative to (0, 0) if not nullptr ##
-
-    #Return             advance width or height ##
-
-    #Example
+#Example
     #Height 64
         void draw(SkCanvas* canvas) {
             SkPaint paint;
@@ -4220,18 +3740,9 @@
 #Method SkScalar measureText(const void* text, size_t length) const
 
 #In Measure_Text
-    Returns the advance width of text.
-    The advance is the normal distance to move before drawing additional text.
-    Uses Text_Encoding to decode text, Typeface to get the font metrics,
-    and Text_Size to scale the metrics.
-    Does not scale the advance or bounds by Fake_Bold or Path_Effect.
+#Populate
 
-    #Param text         character codes or glyph indices to be measured ##
-    #Param length       number of bytes of text to measure ##
-
-    #Return             advance width or height ##
-
-    #Example
+#Example
         SkPaint paint;
         SkDebugf("default width = %g\n", paint.measureText("!", 1));
         paint.setTextSize(paint.getTextSize() * 2);
@@ -4249,22 +3760,9 @@
                       SkScalar* measuredWidth = nullptr) const
 #In Measure_Text
 #Line # returns text that fits in a width ##
+#Populate
 
-    Returns the bytes of text that fit within maxWidth.
-    The text fragment fits if its advance width is less than or equal to maxWidth.
-    Measures only while the advance is less than or equal to maxWidth.
-    Returns the advance or the text fragment in measuredWidth if it not nullptr.
-    Uses Text_Encoding to decode text, Typeface to get the font metrics,
-    and Text_Size to scale the metrics.
-    Does not scale the advance or bounds by Fake_Bold or Path_Effect.
-
-    #Param text          character codes or glyph indices to be measured ##
-    #Param length        number of bytes of text to measure ##
-    #Param maxWidth      advance limit; text is measured while advance is less than maxWidth ##
-    #Param measuredWidth returns the width of the text less than or equal to maxWidth ##
-    #Return              bytes of text that fit, always less than or equal to length  ##
-
-    #Example
+#Example
     #Description
     Line under "Breakfast" shows desired width, shorter than available characters.
     Line under "Bre" shows measured width after breaking text.
@@ -4292,26 +3790,9 @@
                       SkRect bounds[] = nullptr) const
 #In Measure_Text
 #Line # returns advance and bounds for each glyph in text ##
+#Populate
 
-    Retrieves the advance and bounds for each glyph in text, and returns
-    the glyph count in text.
-    Both widths and bounds may be nullptr.
-    If widths is not nullptr, widths must be an array of glyph count entries.
-    if bounds is not nullptr, bounds must be an array of glyph count entries.
-    Widths returns the horizontal advance.
-    Uses Text_Encoding to decode text, Typeface to get the font metrics,
-    and Text_Size to scale the widths and bounds.
-    Does not scale the advance by Fake_Bold or Path_Effect.
-    Does include Fake_Bold and Path_Effect in the bounds.
-
-    #Param text          character codes or glyph indices to be measured ##
-    #Param byteLength    number of bytes of text to measure ##
-    #Param widths        returns text advances for each glyph; may be nullptr ##
-    #Param bounds        returns bounds for each glyph relative to (0, 0); may be nullptr ##
-
-    #Return              glyph count in text ##
-
-    #Example
+#Example
     #Height 160
     #Description
     Bounds of Glyphs increase for stroked text, but text advance remains the same.
@@ -4361,20 +3842,9 @@
                      SkPath* path) const
 #In Text_Path
 #Line # returns Path equivalent to text ##
+#Populate
 
-Returns the geometry as Path equivalent to the drawn text.
-Uses Text_Encoding to decode text, Typeface to get the glyph paths,
-and Text_Size, Fake_Bold, and Path_Effect to scale and modify the glyph paths.
-All of the glyph paths are stored in path.
-Uses x, y, and Text_Align to position path.
-
-    #Param text          character codes or glyph indices ##
-    #Param length        number of bytes of text ##
-    #Param x             x-axis value of the origin of the text ##
-    #Param y             y-axis value of the origin of the text ##
-    #Param path          geometry of the Glyphs ##
-
-    #Example
+#Example
     #Description
     Text is added to Path, offset, and subtracted from Path, then added at
     the offset location. The result is rendered with one draw call.
@@ -4399,20 +3869,9 @@
                         const SkPoint pos[], SkPath* path) const
 #In Text_Path
 #Line # returns Path equivalent to positioned text ##
+#Populate
 
-Returns the geometry as Path equivalent to the drawn text.
-Uses Text_Encoding to decode text, Typeface to get the glyph paths,
-and Text_Size, Fake_Bold, and Path_Effect to scale and modify the glyph paths.
-All of the glyph paths are stored in path.
-Uses pos array and Text_Align to position path.
-pos contains a position for each glyph.
-
-    #Param text          character codes or glyph indices ##
-    #Param length        number of bytes of text ##
-    #Param pos           positions of each glyph ##
-    #Param path          geometry of the Glyphs ##
-
-    #Example
+#Example
     #Height 85
     #Description
     Simplifies three Glyphs to eliminate overlaps, and strokes the result.
@@ -4444,27 +3903,7 @@
                           const SkScalar bounds[2], SkScalar* intervals) const
 #In Text_Intercepts
 #Line # returns where lines intersect text; underlines ##
-
-    Returns the number of intervals that intersect bounds.
-    bounds describes a pair of lines parallel to the text advance.
-    The return count is zero or a multiple of two, and is at most twice the number of Glyphs in
-    the string.
-    Uses Text_Encoding to decode text, Typeface to get the glyph paths,
-    and Text_Size, Fake_Bold, and Path_Effect to scale and modify the glyph paths.
-    Uses x, y, and Text_Align to position intervals.
-
-    Pass nullptr for intervals to determine the size of the interval array.
-
-    intervals are cached to improve performance for multiple calls.
-
-    #Param text          character codes or glyph indices ##
-    #Param length        number of bytes of text ##
-    #Param x             x-axis value of the origin of the text ##
-    #Param y             y-axis value of the origin of the text ##
-    #Param bounds        lower and upper line parallel to the advance ##
-    #Param intervals     returned intersections; may be nullptr ##
-
-    #Return              number of intersections; may be zero ##
+#Populate
 
 #Example
 #Height 128
@@ -4499,28 +3938,9 @@
                              const SkScalar bounds[2], SkScalar* intervals) const
 #In Text_Intercepts
 #Line # returns where lines intersect positioned text; underlines ##
+#Populate
 
-    Returns the number of intervals that intersect bounds.
-    bounds describes a pair of lines parallel to the text advance.
-    The return count is zero or a multiple of two, and is at most twice the number of Glyphs in
-    the string.
-    Uses Text_Encoding to decode text, Typeface to get the glyph paths,
-    and Text_Size, Fake_Bold, and Path_Effect to scale and modify the glyph paths.
-    Uses pos array and Text_Align to position intervals.
-
-    Pass nullptr for intervals to determine the size of the interval array.
-
-    intervals are cached to improve performance for multiple calls.
-
-    #Param text          character codes or glyph indices ##
-    #Param length        number of bytes of text ##
-    #Param pos           positions of each glyph ##
-    #Param bounds        lower and upper line parallel to the advance ##
-    #Param intervals     returned intersections; may be nullptr ##
-
-    #Return              number of intersections; may be zero ##
-
-    #Example
+#Example
     #Description
     Text intercepts draw on either side of, but not inside, Glyphs in a run.
     ##
@@ -4555,29 +3975,9 @@
                                   SkScalar* intervals) const
 #In Text_Intercepts
 #Line # returns where lines intersect horizontally positioned text; underlines ##
+#Populate
 
-    Returns the number of intervals that intersect bounds.
-    bounds describes a pair of lines parallel to the text advance.
-    The return count is zero or a multiple of two, and is at most twice the number of Glyphs in
-    the string.
-    Uses Text_Encoding to decode text, Typeface to get the glyph paths,
-    and Text_Size, Fake_Bold, and Path_Effect to scale and modify the glyph paths.
-    Uses xpos array, constY, and Text_Align to position intervals.
-
-    Pass nullptr for intervals to determine the size of the interval array.
-
-    intervals are cached to improve performance for multiple calls.
-
-    #Param text          character codes or glyph indices ##
-    #Param length        number of bytes of text ##
-    #Param xpos          positions of each glyph in x ##
-    #Param constY        position of each glyph in y ##
-    #Param bounds        lower and upper line parallel to the advance ##
-    #Param intervals     returned intersections; may be nullptr ##
-
-    #Return              number of intersections; may be zero ##
-
-    #Example
+#Example
     #Height 128
     #Description
     Text intercepts do not take stroke thickness into consideration.
@@ -4615,28 +4015,9 @@
                               SkScalar* intervals) const
 #In Text_Intercepts
 #Line # returns where lines intersect Text_Blob; underlines ##
+#Populate
 
-    Returns the number of intervals that intersect bounds.
-    bounds describes a pair of lines parallel to the text advance.
-    The return count is zero or a multiple of two, and is at most twice the number of Glyphs in
-    the string.
-    Uses Typeface to get the glyph paths,
-    and Text_Size, Fake_Bold, and Path_Effect to scale and modify the glyph paths.
-    Uses run array and Text_Align to position intervals.
-
-    Text_Encoding must be set to SkPaint::kGlyphID_TextEncoding.
-
-    Pass nullptr for intervals to determine the size of the interval array.
-
-    intervals are cached to improve performance for multiple calls.
-
-    #Param blob          Glyphs, positions, and text paint attributes ##
-    #Param bounds        lower and upper line parallel to the advance ##
-    #Param intervals     returned intersections; may be nullptr ##
-
-    #Return              number of intersections; may be zero ##
-
-    #Example
+#Example
     #Height 143
         void draw(SkCanvas* canvas) {
             SkPaint paint;
@@ -4676,15 +4057,9 @@
 #Method bool nothingToDraw() const
 #In Utility
 #Line # returns true if Paint prevents all drawing ##
-    Returns true if Paint prevents all drawing;
-    otherwise, the Paint may or may not allow drawing.
+#Populate
 
-    Returns true if, for example, Blend_Mode combined with Color_Alpha computes a
-    new Alpha of zero.
-
-    #Return  true if Paint prevents all drawing ##
-
-    #Example
+#Example
         void draw(SkCanvas* canvas) {
             auto debugster = [](const char* prefix, const SkPaint& p) -> void {
                 SkDebugf("%s nothing to draw: %s\n", prefix,
@@ -4816,4 +4191,3 @@
 #Class SkPaint ##
 
 #Topic Paint ##
-
diff --git a/docs/SkPath_Reference.bmh b/docs/SkPath_Reference.bmh
index 2620669..a31befe 100644
--- a/docs/SkPath_Reference.bmh
+++ b/docs/SkPath_Reference.bmh
@@ -208,10 +208,7 @@
 #Method SkPath()
 #In Constructors
 #Line # constructs with default values ##
-Constucts an empty Path. By default, Path has no Verbs, no Points, and no Weights.
-Fill_Type is set to kWinding_FillType.
-
-#Return  empty Path ##
+#Populate
 
 #Example
     SkPath path;
@@ -230,18 +227,7 @@
 #Method SkPath(const SkPath& path)
 #In Constructors
 #Line # makes a shallow copy ##
-Constructs a copy of an existing path.
-Copy constructor makes two paths identical by value. Internally, path and
-the returned result share pointer values. The underlying Verb_Array, Point_Array
-and Weights are copied when modified.
-
-Creating a Path copy is very efficient and never allocates memory.
-Paths are always copied by value from the interface; the underlying shared
-pointers are not exposed.
-
-#Param path  Path to copy by value ##
-
-#Return  copy of Path ##
+#Populate
 
 #Example
 #Description
@@ -275,11 +261,11 @@
 #Method ~SkPath()
 
 #Line # decreases Reference_Count of owned objects ##
-Releases ownership of any shared data and deletes data if Path is sole owner.
+#Populate
 
 #Example
 #Description
-delete calls Path Destructor, but copy of original in path2 is unaffected.
+delete calls Path destructor, but copy of original in path2 is unaffected.
 ##
 void draw(SkCanvas* canvas) {
     SkPath* path = new SkPath();
@@ -299,18 +285,7 @@
 #Method SkPath& operator=(const SkPath& path)
 
 #Line # makes a shallow copy ##
-Constructs a copy of an existing path.
-Path assignment makes two paths identical by value. Internally, assignment
-shares pointer values. The underlying Verb_Array, Point_Array and Weights
-are copied when modified.
-
-Copying Paths by assignment is very efficient and never allocates memory.
-Paths are always copied by value from the interface; the underlying shared
-pointers are not exposed.
-
-#Param path  Verb_Array, Point_Array, Weights, and Fill_Type to copy ##
-
-#Return  Path copied by value ##
+#Populate
 
 #Example
 SkPath path1;
@@ -335,13 +310,7 @@
 #Method bool operator==(const SkPath& a, const SkPath& b)
 
 #Line # compares Paths for equality ##
-Compares a and b; returns true if Fill_Type, Verb_Array, Point_Array, and Weights
-are equivalent.
-
-#Param a  Path to compare ##
-#Param b  Path to compare ##
-
-#Return  true if Path pair are equivalent ##
+#Populate
 
 #Example
 #Description
@@ -380,13 +349,7 @@
 #Method bool operator!=(const SkPath& a, const SkPath& b)
 
 #Line # compares paths for inequality ##
-Compares a and b; returns true if Fill_Type, Verb_Array, Point_Array, and Weights
-are not equivalent.
-
-#Param a  Path to compare ##
-#Param b  Path to compare ##
-
-#Return  true if Path pair are not equivalent ##
+#Populate
 
 #Example
 #Description
@@ -426,16 +389,7 @@
 #In Property
 #In Interpolate
 #Line # returns if pair contains equal counts of Verb_Array and Weights ##
-Returns true if Paths contain equal Verbs and equal Weights.
-If Paths contain one or more Conics, the Weights must match.
-
-conicTo may add different Verbs depending on Conic_Weight, so it is not
-trivial to interpolate a pair of Paths containing Conics with different
-Conic_Weight values.
-
-#Param compare  Path to compare ##
-
-#Return  true if Paths Verb_Array and Weights are equivalent ##
+#Populate
 
 #Example
     SkPath path, path2;
@@ -629,12 +583,7 @@
 
 #In Fill_Type
 #Line # returns Fill_Type: winding, even-odd, inverse ##
-Returns FillType, the rule used to fill Path. FillType of a new Path is
-kWinding_FillType.
-
-#Return  one of: kWinding_FillType, kEvenOdd_FillType,  kInverseWinding_FillType,
-kInverseEvenOdd_FillType
-##
+#Populate
 
 #Example
     SkPath path;
@@ -658,12 +607,7 @@
 
 #In Fill_Type
 #Line # sets Fill_Type: winding, even-odd, inverse ##
-Sets FillType, the rule used to fill Path. While there is no check
-that ft is legal, values outside of FillType are not supported.
-
-#Param ft  one of: kWinding_FillType, kEvenOdd_FillType,  kInverseWinding_FillType,
-kInverseEvenOdd_FillType
-##
+#Populate
 
 #Example
 #Description
@@ -687,10 +631,7 @@
 
 #In Fill_Type
 #Line # returns if Fill_Type fills outside geometry ##
-Returns if FillType describes area outside Path geometry. The inverse fill area
-extends indefinitely.
-
-#Return  true if FillType is kInverseWinding_FillType or kInverseEvenOdd_FillType ##
+#Populate
 
 #Example
     SkPath path;
@@ -807,11 +748,7 @@
 
 #In Convexity
 #Line # returns geometry convexity, computing if necessary ##
-Computes Convexity if required, and returns stored value.
-Convexity is computed if stored value is kUnknown_Convexity,
-or if Path has been altered since Convexity was computed or set.
-
-#Return  computed or stored Convexity ##
+#Populate
 
 #Example
 void draw(SkCanvas* canvas) {
@@ -840,10 +777,7 @@
 
 #In Convexity
 #Line # returns geometry convexity if known ##
-Returns last computed Convexity, or kUnknown_Convexity if
-Path has been altered since Convexity was computed or set.
-
-#Return  stored Convexity ##
+#Populate
 
 #Example
 #Description
@@ -878,18 +812,7 @@
 
 #In Convexity
 #Line # sets if geometry is convex to avoid future computation ##
-Stores convexity so that it is later returned by getConvexity or getConvexityOrUnknown.
-convexity may differ from getConvexity, although setting an incorrect value may
-cause incorrect or inefficient drawing.
-
-If convexity is kUnknown_Convexity: getConvexity will
-compute Convexity, and getConvexityOrUnknown will return kUnknown_Convexity.
-
-If convexity is kConvex_Convexity or kConcave_Convexity, getConvexity
-and getConvexityOrUnknown will return convexity until the path is
-altered.
-
-#Param convexity  one of: kUnknown_Convexity, kConvex_Convexity, or kConcave_Convexity ##
+#Populate
 
 #Example
 void draw(SkCanvas* canvas) {
@@ -918,11 +841,7 @@
 
 #In Convexity
 #Line # returns if geometry is convex ##
-Computes Convexity if required, and returns true if value is kConvex_Convexity.
-If setConvexity was called with kConvex_Convexity or kConcave_Convexity, and
-the path has not been altered, Convexity is not recomputed.
-
-#Return  true if Convexity stored or computed is kConvex_Convexity ##
+#Populate
 
 #Example
 #Description
@@ -955,16 +874,7 @@
 #Method bool isOval(SkRect* bounds) const
 #In Property
 #Line # returns if describes Oval ##
-
-Returns true if this path is recognized as an oval or circle.
-
-bounds receives bounds of Oval.
-
-bounds is unmodified if Oval is not found.
-
-#Param bounds  storage for bounding Rect of Oval; may be nullptr ##
-
-#Return  true if Path is recognized as an oval or circle ##
+#Populate
 
 #Example
 void draw(SkCanvas* canvas) {
@@ -990,16 +900,7 @@
 #Method bool isRRect(SkRRect* rrect) const
 #In Property
 #Line # returns if describes Round_Rect ##
-
-Returns true if this path is recognized as a SkRRect (but not an oval/circle or rect).
-
-rrect receives bounds of Round_Rect.
-
-rrect is unmodified if Round_Rect is not found.
-
-#Param rrect  storage for bounding Rect of Round_Rect; may be nullptr ##
-
-#Return  true if Path contains only Round_Rect ##
+#Populate
 
 #Example
 #Description
@@ -1029,11 +930,7 @@
 #Method SkPath& reset()
 #In Constructors
 #Line # removes Verb_Array, Point_Array, and Weights; frees memory ##
-Sets Path to its initial state.
-Removes Verb_Array, Point_Array, and Weights, and sets FillType to kWinding_FillType.
-Internal storage associated with Path is released.
-
-#Return reference to Path ##
+#Populate
 
 #Example
    SkPath path1, path2;
@@ -1053,14 +950,7 @@
 #Method SkPath& rewind()
 #In Constructors
 #Line # removes Verb_Array, Point_Array, and Weights, keeping memory ##
-Sets Path to its initial state, preserving internal storage.
-Removes Verb_Array, Point_Array, and Weights, and sets FillType to kWinding_FillType.
-Internal storage associated with Path is retained.
-
-Use rewind() instead of reset() if Path storage will be reused and performance
-is critical.
-
-#Return reference to Path ##
+#Populate
 
 #Example
 #Description
@@ -1084,11 +974,7 @@
 #Method bool isEmpty() const
 #In Property
 #Line # returns if verb count is zero ##
-Returns if Path is empty.
-Empty Path may have FillType but has no SkPoint, Verb, or Conic_Weight.
-SkPath() constructs empty Path; reset() and rewind() make Path empty.
-
-#Return  true if the path contains no Verb array  ##
+#Populate
 
 #Example
 void draw(SkCanvas* canvas) {
@@ -1124,12 +1010,7 @@
 #Method bool isLastContourClosed() const
 #In Property
 #Line # returns if final Contour forms a loop ##
-Returns if Contour is closed.
-Contour is closed if Path Verb array was last modified by close(). When stroked,
-closed Contour draws Paint_Stroke_Join instead of Paint_Stroke_Cap at first and
-last Point.
-
-#Return  true if the last Contour ends with a kClose_Verb ##
+#Populate
 
 #Example
 #Description
@@ -1167,11 +1048,7 @@
 #Method bool isFinite() const
 #In Property
 #Line # returns if all Point values are finite ##
-Returns true for finite Point array values between negative SK_ScalarMax and
-positive SK_ScalarMax. Returns false for any Point array value of
-SK_ScalarInfinity, SK_ScalarNegativeInfinity, or SK_ScalarNaN.
-
-#Return  true if all Point values are finite ##
+#Populate
 
 #Example
 void draw(SkCanvas* canvas) {
@@ -1203,12 +1080,7 @@
 #In Property
 #In Volatile
 #Line # returns if Device should not cache ##
-Returns true if the path is volatile; it will not be altered or discarded
-by the caller after it is drawn. Paths by default have volatile set false, allowing
-Surface to attach a cache of data which speeds repeated drawing. If true, Surface
-may not speed repeated drawing.
-
-#Return  true if caller will alter Path after drawing ##
+#Populate
 
 #Example
     SkPath path;
@@ -1230,20 +1102,7 @@
 #Method void setIsVolatile(bool isVolatile)
 #In Volatile
 #Line # sets if Device should not cache ##
-Specifies whether Path is volatile; whether it will be altered or discarded
-by the caller after it is drawn. Paths by default have volatile set false, allowing
-Device to attach a cache of data which speeds repeated drawing.
-
-Mark temporary paths, discarded or modified after use, as volatile
-to inform Device that the path need not be cached.
-
-Mark animating Path volatile to improve performance.
-Mark unchanging Path non-volatile to improve repeated rendering.
-
-Raster_Surface Path draws are affected by volatile for some shadows.
-GPU_Surface Path draws are affected by volatile for some shadows and concave geometries.
-
-#Param isVolatile  true if caller will alter Path after drawing ##
+#Populate
 
 #Example
 #Height 50
@@ -1271,18 +1130,7 @@
 #Method static bool IsLineDegenerate(const SkPoint& p1, const SkPoint& p2, bool exact)
 #In Property
 #Line # returns if Line is very small ##
-Tests if Line between Point pair is degenerate.
-Line with no length or that moves a very short distance is degenerate; it is
-treated as a point.
-
-exact changes the equality test. If true, returns true only if p1 equals p2.
-If false, returns true if p1 equals or nearly equals p2.
-
-#Param p1     line start point ##
-#Param p2     line end point ##
-#Param exact  if false, allow nearly equals ##
-
-#Return  true if Line is degenerate; its length is effectively zero ##
+#Populate
 
 #Example
 #Description
@@ -1318,19 +1166,7 @@
                                  const SkPoint& p3, bool exact)
 #In Property
 #Line # returns if Quad is very small ##
-
-Tests if Quad is degenerate.
-Quad with no length or that moves a very short distance is degenerate; it is
-treated as a point.
-
-#Param p1  Quad start point ##
-#Param p2  Quad control point ##
-#Param p3  Quad end point ##
-#Param exact  if true, returns true only if p1, p2, and p3 are equal;
-              if false, returns true if p1, p2, and p3 are equal or nearly equal
-##
-
-#Return  true if Quad is degenerate; its length is effectively zero ##
+#Populate
 
 #Example
 #Description
@@ -1372,20 +1208,7 @@
                                   const SkPoint& p3, const SkPoint& p4, bool exact)
 #In Property
 #Line # returns if Cubic is very small ##
-
-Tests if Cubic is degenerate.
-Cubic with no length or that moves a very short distance is degenerate; it is
-treated as a point.
-
-#Param p1  Cubic start point ##
-#Param p2  Cubic control point 1 ##
-#Param p3  Cubic control point 2 ##
-#Param p4  Cubic end point ##
-#Param exact  if true, returns true only if p1, p2, p3, and p4 are equal;
-              if false, returns true if p1, p2, p3, and p4 are equal or nearly equal
-##
-
-#Return  true if Cubic is degenerate; its length is effectively zero ##
+#Populate
 
 #Example
 void draw(SkCanvas* canvas) {
@@ -1419,15 +1242,7 @@
 #Method bool isLine(SkPoint line[2]) const
 #In Property
 #Line # returns if describes Line ##
-Returns true if Path contains only one Line;
-Path_Verb array has two entries: kMove_Verb, kLine_Verb.
-If Path contains one Line and line is not nullptr, line is set to
-Line start point and Line end point.
-Returns false if Path is not one Line; line is unaltered.
-
-#Param line  storage for Line. May be nullptr ##
-
-#Return  true if Path contains exactly one Line ##
+#Populate
 
 #Example
 void draw(SkCanvas* canvas) {
@@ -1479,14 +1294,7 @@
 
 #In Point_Array
 #Line # returns Point_Array ##
-Returns number of points in Path. Up to max points are copied.
-points may be nullptr; then, max must be zero.
-If max is greater than number of points, excess points storage is unaltered.
-
-#Param points  storage for Path Point array. May be nullptr ##
-#Param max  maximum to copy; must be greater than or equal to zero ##
-
-#Return  Path Point array length ##
+#Populate
 
 #Example
 void draw(SkCanvas* canvas) {
@@ -1522,10 +1330,7 @@
 
 #In Point_Array
 #Line # returns Point_Array length ##
-Returns the number of points in Path.
-Point count is initially zero.
-
-#Return  Path Point array length ##
+#Populate
 
 #Example
 void draw(SkCanvas* canvas) {
@@ -1558,13 +1363,7 @@
 
 #In Point_Array
 #Line # returns entry from Point_Array ##
-Returns Point at index in Point_Array. Valid range for index is
-0 to countPoints - 1.
-Returns (0, 0) if index is out of range.
-
-#Param index  Point array element selector ##
-
-#Return  Point array value or (0, 0) ##
+#Populate
 
 #Example
 void draw(SkCanvas* canvas) {
@@ -1604,10 +1403,7 @@
 
 #In Verb_Array
 #Line # returns Verb_Array length ##
-Returns the number of Verbs: kMove_Verb, kLine_Verb, kQuad_Verb, kConic_Verb,
-kCubic_Verb, and kClose_Verb; added to Path.
-
-#Return  length of Verb_Array ##
+#Populate
 
 #Example
 SkPath path;
@@ -1628,13 +1424,7 @@
 
 #In Verb_Array
 #Line # returns Verb_Array ##
-Returns the number of verbs in the path. Up to max verbs are copied. The
-verbs are copied as one byte per verb.
-
-#Param verbs  storage for verbs, may be nullptr ##
-#Param max    maximum number to copy into verbs ##
-
-#Return  the actual number of verbs in the path ##
+#Populate
 
 #Example
 void draw(SkCanvas* canvas) {
@@ -1674,15 +1464,7 @@
 #Method void swap(SkPath& other)
 #In Operators
 #Line # exchanges Path pair ##
-Exchanges the Verb_Array, Point_Array, Weights, and Fill_Type with other.
-Cached state is also exchanged. swap() internally exchanges pointers, so
-it is lightweight and does not allocate memory.
-
-swap() usage has largely been replaced by operator=(const SkPath& path).
-Paths do not copy their content on assignment until they are written to,
-making assignment as efficient as swap().
-
-#Param other  Path exchanged by value ##
+#Populate
 
 #Example
 SkPath path1, path2;
@@ -1707,14 +1489,7 @@
 #Method const SkRect& getBounds() const
 #In Property
 #Line # returns maximum and minimum of Point_Array ##
-Returns minimum and maximum axes values of Point_Array.
-Returns (0, 0, 0, 0) if Path contains no points. Returned bounds width and height may
-be larger or smaller than area affected when Path is drawn.
-
-Rect returned includes all Points added to Path, including Points associated with
-kMove_Verb that define empty Contours.
-
-#Return  bounds of all Points in Point_Array ##
+#Populate
 
 #Example
 #Description
@@ -1753,13 +1528,7 @@
 #Method void updateBoundsCache() const
 #In Utility
 #Line # refreshes result of getBounds ##
-Updates internal bounds so that subsequent calls to getBounds are instantaneous.
-Unaltered copies of Path may also access cached bounds through getBounds.
-
-For now, identical to calling getBounds and ignoring the returned value.
-
-Call to prepare Path subsequently drawn from multiple threads,
-to avoid a race condition where each draw separately computes the bounds.
+#Populate
 
 #Example
     double times[2] = { 0, 0 };
@@ -1794,20 +1563,7 @@
 #Method SkRect computeTightBounds() const
 #In Property
 #Line # returns extent of geometry ##
-Returns minimum and maximum axes values of the lines and curves in Path.
-Returns (0, 0, 0, 0) if Path contains no points.
-Returned bounds width and height may be larger or smaller than area affected
-when Path is drawn.
-
-Includes Points associated with kMove_Verb that define empty
-Contours.
-
-Behaves identically to getBounds when Path contains
-only lines. If Path contains curves, computed bounds includes
-the maximum extent of the Quad, Conic, or Cubic; is slower than getBounds;
-and unlike getBounds, does not cache the result.
-
-#Return  tight bounds of curves in Path ##
+#Populate
 
 #Example
     auto debugster = [](const char* prefix, const SkPath& path) -> void {
@@ -1839,17 +1595,7 @@
 #Method bool conservativelyContainsRect(const SkRect& rect) const
 #In Property
 #Line # returns true if Rect may be inside ##
-Returns true if rect is contained by Path.
-May return false when rect is contained by Path.
-
-For now, only returns true if Path has one Contour and is convex.
-rect may share points and edges with Path and be contained.
-Returns true if rect is empty, that is, it has zero width or height; and
-the Point or Line described by rect is contained by Path.
-
-#Param rect  Rect, Line, or Point checked for containment ##
-
-#Return  true if rect is contained ##
+#Populate
 
 #Example
 #Height 140
@@ -1886,11 +1632,7 @@
 #Method void incReserve(int extraPtCount)
 #In Utility
 #Line # reserves space for additional data ##
-Grows Path Verb_Array and Point_Array to contain extraPtCount additional Points.
-May improve performance and use less memory by
-reducing the number and size of allocations when creating Path.
-
-#Param extraPtCount  number of additional Points to allocate ##
+#Populate
 
 #Example
 #Height 192
@@ -1924,8 +1666,7 @@
 #Method void shrinkToFit()
 #In Utility
 #Line # removes unused reserved space ##
-Shrinks Path Verb_Array and Point_Array storage to discard unused capacity.
-May reduce the heap overhead for Paths known to be fully constructed.
+#Populate
 
 #NoExample
 #Height 192
@@ -1950,12 +1691,7 @@
 #Method SkPath& moveTo(SkScalar x, SkScalar y)
 #In Build
 #Line # starts Contour ##
-Adds beginning of Contour at Point (x, y).
-
-#Param x  x-axis value of Contour start ##
-#Param y  y-axis value of Contour start ##
-
-#Return reference to Path ##
+#Populate
 
 #Example
     #Width 140
@@ -1979,12 +1715,7 @@
 ##
 
 #Method SkPath& moveTo(const SkPoint& p)
-
-Adds beginning of Contour at Point p.
-
-#Param p  contour start ##
-
-#Return reference to Path ##
+#Populate
 
 #Example
     #Width 128
@@ -2011,15 +1742,7 @@
 #Method SkPath& rMoveTo(SkScalar dx, SkScalar dy)
 #In Build
 #Line # starts Contour relative to Last_Point ##
-Adds beginning of Contour relative to Last_Point.
-If Path is empty, starts Contour at (dx, dy).
-Otherwise, start Contour at Last_Point offset by (dx, dy).
-Function name stands for "relative move to".
-
-#Param dx  offset from Last_Point to Contour start on x-axis ##
-#Param dy  offset from Last_Point to Contour start on y-axis ##
-
-#Return reference to Path ##
+#Populate
 
 #Example
     #Height 100
@@ -2046,16 +1769,7 @@
 #Method SkPath& lineTo(SkScalar x, SkScalar y)
 #In Build
 #Line # appends Line ##
-Adds Line from Last_Point to (x, y). If Path is empty, or last Verb is
-kClose_Verb, Last_Point is set to (0, 0) before adding Line.
-
-lineTo appends kMove_Verb to Verb_Array and (0, 0) to Point_Array, if needed.
-lineTo then appends kLine_Verb to Verb_Array and (x, y) to Point_Array.
-
-#Param x  end of added Line in x ##
-#Param y  end of added Line in y ##
-
-#Return reference to Path ##
+#Populate
 
 #Example
 #Height 100
@@ -2089,16 +1803,7 @@
 # ------------------------------------------------------------------------------
 
 #Method SkPath& lineTo(const SkPoint& p)
-
-Adds Line from Last_Point to Point p. If Path is empty, or last Verb is
-kClose_Verb, Last_Point is set to (0, 0) before adding Line.
-
-lineTo first appends kMove_Verb to Verb_Array and (0, 0) to Point_Array, if needed.
-lineTo then appends kLine_Verb to Verb_Array and Point p to Point_Array.
-
-#Param p  end Point of added Line ##
-
-#Return reference to Path ##
+#Populate
 
 #Example
 #Height 100
@@ -2124,18 +1829,7 @@
 #Method SkPath& rLineTo(SkScalar dx, SkScalar dy)
 #In Build
 #Line # appends Line relative to Last_Point ##
-Adds Line from Last_Point to Vector (dx, dy). If Path is empty, or last Verb is
-kClose_Verb, Last_Point is set to (0, 0) before adding Line.
-
-Appends kMove_Verb to Verb_Array and (0, 0) to Point_Array, if needed;
-then appends kLine_Verb to Verb_Array and Line end to Point_Array.
-Line end is Last_Point plus Vector (dx, dy).
-Function name stands for "relative line to".
-
-#Param dx  offset from Last_Point to Line end on x-axis ##
-#Param dy  offset from Last_Point to Line end on y-axis ##
-
-#Return reference to Path ##
+#Populate
 
 #Example
 #Height 128
@@ -2223,22 +1917,9 @@
 
 #In Quad
 #Line # appends Quad ##
-    Adds Quad from Last_Point towards (x1, y1), to (x2, y2).
-    If Path is empty, or last Verb is kClose_Verb, Last_Point is set to (0, 0)
-    before adding Quad.
+#Populate
 
-    Appends kMove_Verb to Verb_Array and (0, 0) to Point_Array, if needed;
-    then appends kQuad_Verb to Verb_Array; and (x1, y1), (x2, y2)
-    to Point_Array.
-
-    #Param x1  control Point of Quad in x ##
-    #Param y1  control Point of Quad in y ##
-    #Param x2  end Point of Quad in x ##
-    #Param y2  end Point of Quad in y ##
-
-    #Return reference to Path ##
-
-    #Example
+#Example
     void draw(SkCanvas* canvas) {
         SkPaint paint;
         paint.setAntiAlias(true);
@@ -2263,20 +1944,9 @@
 #Method SkPath& quadTo(const SkPoint& p1, const SkPoint& p2)
 #In Build
 #In Quad
-    Adds Quad from Last_Point towards Point p1, to Point p2.
-    If Path is empty, or last Verb is kClose_Verb, Last_Point is set to (0, 0)
-    before adding Quad.
+#Populate
 
-    Appends kMove_Verb to Verb_Array and (0, 0) to Point_Array, if needed;
-    then appends kQuad_Verb to Verb_Array; and Points p1, p2
-    to Point_Array.
-
-    #Param p1  control Point of added Quad ##
-    #Param p2  end Point of added Quad ##
-
-    #Return reference to Path ##
-
-    #Example
+#Example
     void draw(SkCanvas* canvas) {
         SkPaint paint;
         paint.setStyle(SkPaint::kStroke_Style);
@@ -2299,25 +1969,9 @@
 #In Build
 #In Quad
 #Line # appends Quad relative to Last_Point ##
-    Adds Quad from Last_Point towards Vector (dx1, dy1), to Vector (dx2, dy2).
-    If Path is empty, or last Verb
-    is kClose_Verb, Last_Point is set to (0, 0) before adding Quad.
+#Populate
 
-    Appends kMove_Verb to Verb_Array and (0, 0) to Point_Array,
-    if needed; then appends kQuad_Verb to Verb_Array; and appends Quad
-    control and Quad end to Point_Array.
-    Quad control is Last_Point plus Vector (dx1, dy1).
-    Quad end is Last_Point plus Vector (dx2, dy2).
-    Function name stands for "relative quad to".
-
-    #Param dx1  offset from Last_Point to Quad control on x-axis ##
-    #Param dy1  offset from Last_Point to Quad control on y-axis ##
-    #Param dx2  offset from Last_Point to Quad end on x-axis ##
-    #Param dy2  offset from Last_Point to Quad end on y-axis ##
-
-    #Return reference to Path ##
-
-    #Example
+#Example
     void draw(SkCanvas* canvas) {
         SkPaint paint;
         paint.setAntiAlias(true);
@@ -2471,31 +2125,9 @@
 #In Conic
 #In Build
 #Line # appends Conic ##
+#Populate
 
-    Adds Conic from Last_Point towards (x1, y1), to (x2, y2), weighted by w.
-    If Path is empty, or last Verb is kClose_Verb, Last_Point is set to (0, 0)
-    before adding Conic.
-
-    Appends kMove_Verb to Verb_Array and (0, 0) to Point_Array, if needed.
-
-    If w is finite and not one, appends kConic_Verb to Verb_Array;
-    and (x1, y1), (x2, y2) to Point_Array; and w to Conic_Weights.
-
-    If w is one, appends kQuad_Verb to Verb_Array, and
-    (x1, y1), (x2, y2) to Point_Array.
-
-    If w is not finite, appends kLine_Verb twice to Verb_Array, and
-    (x1, y1), (x2, y2) to Point_Array.
-
-    #Param x1  control Point of Conic in x ##
-    #Param y1  control Point of Conic in y ##
-    #Param x2  end Point of Conic in x ##
-    #Param y2  end Point of Conic in y ##
-    #Param w   weight of added Conic ##
-
-    #Return reference to Path ##
-
-    #Example
+#Example
     #Height 160
     #Description
     As weight increases, curve is pulled towards control point.
@@ -2530,28 +2162,9 @@
 #Method SkPath& conicTo(const SkPoint& p1, const SkPoint& p2, SkScalar w)
 #In Build
 #In Conic
-    Adds Conic from Last_Point towards Point p1, to Point p2, weighted by w.
-    If Path is empty, or last Verb is kClose_Verb, Last_Point is set to (0, 0)
-    before adding Conic.
+#Populate
 
-    Appends kMove_Verb to Verb_Array and (0, 0) to Point_Array, if needed.
-
-    If w is finite and not one, appends kConic_Verb to Verb_Array;
-    and Points p1, p2 to Point_Array; and w to Conic_Weights.
-
-    If w is one, appends kQuad_Verb to Verb_Array, and Points p1, p2
-    to Point_Array.
-
-    If w is not finite, appends kLine_Verb twice to Verb_Array, and
-    Points p1, p2 to Point_Array.
-
-    #Param p1  control Point of added Conic ##
-    #Param p2  end Point of added Conic ##
-    #Param w   weight of added Conic ##
-
-    #Return reference to Path ##
-
-    #Example
+#Example
     #Height 128
     #Description
     Conics and arcs use identical representations. As the arc sweep increases
@@ -2591,34 +2204,9 @@
 #In Build
 #In Conic
 #Line # appends Conic relative to Last_Point ##
+#Populate
 
-    Adds Conic from Last_Point towards Vector (dx1, dy1), to Vector (dx2, dy2),
-    weighted by w. If Path is empty, or last Verb
-    is kClose_Verb, Last_Point is set to (0, 0) before adding Conic.
-
-    Appends kMove_Verb to Verb_Array and (0, 0) to Point_Array,
-    if needed.
-
-    If w is finite and not one, next appends kConic_Verb to Verb_Array,
-    and w is recorded as Conic_Weight; otherwise, if w is one, appends
-    kQuad_Verb to Verb_Array; or if w is not finite, appends kLine_Verb
-    twice to Verb_Array.
-
-    In all cases appends Points control and end to Point_Array.
-    control is Last_Point plus Vector (dx1, dy1).
-    end is Last_Point plus Vector (dx2, dy2).
-
-    Function name stands for "relative conic to".
-
-    #Param dx1  offset from Last_Point to Conic control on x-axis ##
-    #Param dy1  offset from Last_Point to Conic control on y-axis ##
-    #Param dx2  offset from Last_Point to Conic end on x-axis ##
-    #Param dy2  offset from Last_Point to Conic end on y-axis ##
-    #Param w    weight of added Conic ##
-
-    #Return reference to Path ##
-
-    #Example
+#Example
     #Height 140
     void draw(SkCanvas* canvas) {
         SkPaint paint;
@@ -2683,23 +2271,7 @@
 #In Build
 #In Cubic
 #Line # appends Cubic ##
-
-Adds Cubic from Last_Point towards (x1, y1), then towards (x2, y2), ending at
-(x3, y3). If Path is empty, or last Verb is kClose_Verb, Last_Point is set to
-(0, 0) before adding Cubic.
-
-Appends kMove_Verb to Verb_Array and (0, 0) to Point_Array, if needed;
-then appends kCubic_Verb to Verb_Array; and (x1, y1), (x2, y2), (x3, y3)
-to Point_Array.
-
-#Param x1  first control Point of Cubic in x ##
-#Param y1  first control Point of Cubic in y ##
-#Param x2  second control Point of Cubic in x ##
-#Param y2  second control Point of Cubic in y ##
-#Param x3  end Point of Cubic in x ##
-#Param y3  end Point of Cubic in y ##
-
-#Return reference to Path ##
+#Populate
 
 #Example
 void draw(SkCanvas* canvas) {
@@ -2730,19 +2302,7 @@
 
 #In Build
 #In Cubic
-Adds Cubic from Last_Point towards Point p1, then towards Point p2, ending at
-Point p3. If Path is empty, or last Verb is kClose_Verb, Last_Point is set to
-(0, 0) before adding Cubic.
-
-Appends kMove_Verb to Verb_Array and (0, 0) to Point_Array, if needed;
-then appends kCubic_Verb to Verb_Array; and Points p1, p2, p3
-to Point_Array.
-
-#Param p1  first control Point of Cubic ##
-#Param p2  second control Point of Cubic ##
-#Param p3  end Point of Cubic ##
-
-#Return reference to Path ##
+#Populate
 
 #Example
 #Height 84
@@ -2767,27 +2327,7 @@
 #In Build
 #In Cubic
 #Line # appends Cubic relative to Last_Point ##
-
-    Adds Cubic from Last_Point towards Vector (dx1, dy1), then towards
-    Vector (dx2, dy2), to Vector (dx3, dy3).
-    If Path is empty, or last Verb
-    is kClose_Verb, Last_Point is set to (0, 0) before adding Cubic.
-
-    Appends kMove_Verb to Verb_Array and (0, 0) to Point_Array,
-    if needed; then appends kCubic_Verb to Verb_Array; and appends Cubic
-    control and Cubic end to Point_Array.
-    Cubic control is Last_Point plus Vector (dx1, dy1).
-    Cubic end is Last_Point plus Vector (dx2, dy2).
-    Function name stands for "relative cubic to".
-
-    #Param dx1  offset from Last_Point to first Cubic control on x-axis ##
-    #Param dy1  offset from Last_Point to first Cubic control on y-axis ##
-    #Param dx2  offset from Last_Point to second Cubic control on x-axis ##
-    #Param dy2  offset from Last_Point to second Cubic control on y-axis ##
-    #Param dx3  offset from Last_Point to Cubic end on x-axis ##
-    #Param dy3  offset from Last_Point to Cubic end on y-axis ##
-
-    #Return reference to Path ##
+#Populate
 
 #Example
     void draw(SkCanvas* canvas) {
@@ -2914,21 +2454,7 @@
 #In Build
 #In Arc
 #Line # appends Arc ##
-Appends Arc to Path. Arc added is part of ellipse
-bounded by oval, from startAngle through sweepAngle. Both startAngle and
-sweepAngle are measured in degrees, where zero degrees is aligned with the
-positive x-axis, and positive sweeps extends Arc clockwise.
-
-arcTo adds Line connecting Path last Point to initial Arc Point if forceMoveTo
-is false and Path is not empty. Otherwise, added Contour begins with first point
-of Arc. Angles greater than -360 and less than 360 are treated modulo 360.
-
-#Param oval        bounds of ellipse containing Arc ##
-#Param startAngle  starting angle of Arc in degrees ##
-#Param sweepAngle  sweep, in degrees. Positive is clockwise; treated modulo 360 ##
-#Param forceMoveTo  true to start a new contour with Arc ##
-
-#Return reference to Path ##
+#Populate
 
 #Example
 #Height 200
@@ -2963,12 +2489,7 @@
 #Method SkPath& arcTo(SkScalar x1, SkScalar y1, SkScalar x2, SkScalar y2, SkScalar radius)
 #In Build
 #In Arc
-Appends Arc to Path, after appending Line if needed. Arc is implemented by Conic
-weighted to describe part of Circle. Arc is contained by tangent from
-last Path point (x0, y0) to (x1, y1), and tangent from (x1, y1) to (x2, y2). Arc
-is part of Circle sized to radius, positioned so it touches both tangent lines.
-
-#ToDo  allow example to hide source and not be exposed as fiddle ##
+#Populate
 
 #Example
 #Height 226
@@ -3008,9 +2529,6 @@
 }
 ##
 
-If last Path Point does not start Arc, arcTo appends connecting Line to Path.
-The length of Vector from (x1, y1) to (x2, y2) does not affect Arc.
-
 #Example
 #Height 128
 void draw(SkCanvas* canvas) {
@@ -3048,20 +2566,6 @@
 }
 ##
 
-Arc sweep is always less than 180 degrees. If radius is zero, or if
-tangents are nearly parallel, arcTo appends Line from last Path Point to (x1, y1).
-
-arcTo appends at most one Line and one Conic.
-arcTo implements the functionality of PostScript_Arct and HTML_Canvas_ArcTo.
-
-#Param x1      x-axis value common to pair of tangents ##
-#Param y1      y-axis value common to pair of tangents ##
-#Param x2      x-axis value end of second tangent ##
-#Param y2      y-axis value end of second tangent ##
-#Param radius  distance from Arc to Circle center ##
-
-#Return reference to Path ##
-
 #Example
 #Description
 arcTo is represented by Line and circular Conic in Path.
@@ -3106,25 +2610,7 @@
 #Method SkPath& arcTo(const SkPoint p1, const SkPoint p2, SkScalar radius)
 #In Build
 #In Arc
-Appends Arc to Path, after appending Line if needed. Arc is implemented by Conic
-weighted to describe part of Circle. Arc is contained by tangent from
-last Path point to p1, and tangent from p1 to p2. Arc
-is part of Circle sized to radius, positioned so it touches both tangent lines.
-
-If last Path Point does not start Arc, arcTo appends connecting Line to Path.
-The length of Vector from p1 to p2 does not affect Arc.
-
-Arc sweep is always less than 180 degrees. If radius is zero, or if
-tangents are nearly parallel, arcTo appends Line from last Path Point to p1.
-
-arcTo appends at most one Line and one Conic.
-arcTo implements the functionality of PostScript_Arct and HTML_Canvas_ArcTo.
-
-#Param p1      Point common to pair of tangents ##
-#Param p2      end of second tangent ##
-#Param radius  distance from Arc to Circle center ##
-
-#Return reference to Path ##
+#Populate
 
 #Example
 #Description
@@ -3223,31 +2709,7 @@
                Direction sweep, SkScalar x, SkScalar y)
 #In Build
 #In Arc
-
-Appends Arc to Path. Arc is implemented by one or more Conics weighted to
-describe part of Oval with radii (rx, ry) rotated by xAxisRotate degrees. Arc
-curves from last Path Point to (x, y), choosing one of four possible routes:
-clockwise or counterclockwise, and smaller or larger.
-
-Arc sweep is always less than 360 degrees. arcTo appends Line to (x, y) if
-either radii are zero, or if last Path Point equals (x, y). arcTo scales radii
-(rx, ry) to fit last Path Point and (x, y) if both are greater than zero but
-too small.
-
-arcTo appends up to four Conic curves.
-arcTo implements the functionality of SVG_Arc, although SVG "sweep-flag" value
-is opposite the integer value of sweep; SVG "sweep-flag" uses 1 for clockwise,
-while kCW_Direction  cast to int is zero.
-
-#Param rx           radius in x before x-axis rotation ##
-#Param ry           radius in y before x-axis rotation ##
-#Param xAxisRotate  x-axis rotation in degrees; positive values are clockwise ##
-#Param largeArc     chooses smaller or larger Arc ##
-#Param sweep        chooses clockwise or counterclockwise Arc ##
-#Param x            end of Arc ##
-#Param y            end of Arc ##
-
-#Return reference to Path ##
+#Populate
 
 #Example
 #Height 160
@@ -3280,30 +2742,7 @@
                const SkPoint xy)
 #In Build
 #In Arc
-
-Appends Arc to Path. Arc is implemented by one or more Conic weighted to describe
-part of Oval with radii (r.fX, r.fY) rotated by xAxisRotate degrees. Arc curves
-from last Path Point to (xy.fX, xy.fY), choosing one of four possible routes:
-clockwise or counterclockwise,
-and smaller or larger.
-
-Arc sweep is always less than 360 degrees. arcTo appends Line to xy if either
-radii are zero, or if last Path Point equals (x, y). arcTo scales radii r to fit
-last Path Point and xy if both are greater than zero but too small to describe
-an arc.
-
-arcTo appends up to four Conic curves.
-arcTo implements the functionality of SVG_Arc, although SVG "sweep-flag" value is
-opposite the integer value of sweep; SVG "sweep-flag" uses 1 for clockwise, while
-kCW_Direction cast to int is zero.
-
-#Param r            radii on axes before x-axis rotation ##
-#Param xAxisRotate  x-axis rotation in degrees; positive values are clockwise ##
-#Param largeArc     chooses smaller or larger Arc ##
-#Param sweep        chooses clockwise or counterclockwise Arc ##
-#Param xy           end of Arc ##
-
-#Return reference to Path ##
+#Populate
 
 #Example
 #Height 108
@@ -3383,15 +2822,7 @@
 #Method SkPath& close()
 #In Build
 #Line # makes last Contour a loop ##
-Appends kClose_Verb to Path. A closed Contour connects the first and last Point
-with Line, forming a continuous loop. Open and closed Contour draw the same
-with SkPaint::kFill_Style. With SkPaint::kStroke_Style, open Contour draws
-Paint_Stroke_Cap at Contour start and end; closed Contour draws
-Paint_Stroke_Join at Contour start and end.
-
-close() has no effect if Path is empty or last Path Verb is kClose_Verb.
-
-#Return reference to Path ##
+#Populate
 
 #Example
 void draw(SkCanvas* canvas) {
@@ -3611,18 +3042,7 @@
 #Method bool isRect(SkRect* rect, bool* isClosed = nullptr, Direction* direction = nullptr) const
 #In Property
 #Line # returns if describes Rect ##
-Returns true if Path is equivalent to Rect when filled.
-If false: rect, isClosed, and direction are unchanged.
-If true: rect, isClosed, and direction are written to if not nullptr.
-
-rect may be smaller than the Path bounds. Path bounds may include kMove_Verb points
-that do not alter the area drawn by the returned rect.
-
-#Param rect       storage for bounds of Rect; may be nullptr ##
-#Param isClosed   storage set to true if Path is closed; may be nullptr ##
-#Param direction  storage set to Rect direction; may be nullptr ##
-
-#Return  true if Path contains Rect ##
+#Populate
 
 #Example
 #Description
@@ -3672,17 +3092,7 @@
 #Method bool isNestedFillRects(SkRect rect[2], Direction dirs[2] = nullptr) const
 #In Property
 #Line # returns if describes Rect pair, one inside the other ##
-Returns true if Path is equivalent to nested Rect pair when filled.
-If false, rect and dirs are unchanged.
-If true, rect and dirs are written to if not nullptr:
-setting rect[0] to outer Rect, and rect[1] to inner Rect;
-setting dirs[0] to Direction of outer Rect, and dirs[1] to Direction of inner
-Rect.
-
-#Param rect  storage for Rect pair; may be nullptr ##
-#Param dirs  storage for Direction pair; may be nullptr ##
-
-#Return  true if Path contains nested Rect pair ##
+#Populate
 
 #Example
 void draw(SkCanvas* canvas) {
@@ -3719,15 +3129,7 @@
 #Method SkPath& addRect(const SkRect& rect, Direction dir = kCW_Direction)
 #In Build
 #Line # adds one Contour containing Rect ##
-Adds Rect to Path, appending kMove_Verb, three kLine_Verb, and kClose_Verb,
-starting with top-left corner of Rect; followed by top-right, bottom-right,
-and bottom-left if dir is kCW_Direction; or followed by bottom-left,
-bottom-right, and top-right if dir is kCCW_Direction.
-
-#Param rect  Rect to add as a closed contour ##
-#Param dir   Direction to wind added contour ##
-
-#Return reference to Path ##
+#Populate
 
 #Example
 #Description
@@ -3818,20 +3220,7 @@
 
 #Method SkPath& addRect(SkScalar left, SkScalar top, SkScalar right, SkScalar bottom,
                  Direction dir = kCW_Direction)
-
-Adds Rect (left, top, right, bottom) to Path,
-appending kMove_Verb, three kLine_Verb, and kClose_Verb,
-starting with top-left corner of Rect; followed by top-right, bottom-right,
-and bottom-left if dir is kCW_Direction; or followed by bottom-left,
-bottom-right, and top-right if dir is kCCW_Direction.
-
-#Param left    smaller x-axis value of Rect ##
-#Param top     smaller y-axis value of Rect ##
-#Param right   larger x-axis value of Rect ##
-#Param bottom  larger y-axis value of Rect ##
-#Param dir     Direction to wind added contour ##
-
-#Return reference to Path ##
+#Populate
 
 #Example
 #Description
@@ -3864,15 +3253,7 @@
 #Method SkPath& addOval(const SkRect& oval, Direction dir = kCW_Direction)
 #In Build
 #Line # adds one Contour containing Oval ##
-Adds Oval to path, appending kMove_Verb, four kConic_Verb, and kClose_Verb.
-Oval is upright ellipse bounded by Rect oval with radii equal to half oval width
-and half oval height. Oval begins at (oval.fRight, oval.centerY()) and continues
-clockwise if dir is kCW_Direction, counterclockwise if dir is kCCW_Direction.
-
-#Param oval  bounds of ellipse added ##
-#Param dir   Direction to wind ellipse ##
-
-#Return reference to Path ##
+#Populate
 
 #Example
 #Height 120
@@ -3988,20 +3369,7 @@
 #Method SkPath& addArc(const SkRect& oval, SkScalar startAngle, SkScalar sweepAngle)
 #In Build
 #Line # adds one Contour containing Arc ##
-Appends Arc to Path, as the start of new Contour. Arc added is part of ellipse
-bounded by oval, from startAngle through sweepAngle. Both startAngle and
-sweepAngle are measured in degrees, where zero degrees is aligned with the
-positive x-axis, and positive sweeps extends Arc clockwise.
-
-If sweepAngle <= -360, or sweepAngle >= 360; and startAngle modulo 90 is nearly
-zero, append Oval instead of Arc. Otherwise, sweepAngle values are treated
-modulo 360, and Arc may or may not draw depending on numeric rounding.
-
-#Param oval        bounds of ellipse containing Arc ##
-#Param startAngle  starting angle of Arc in degrees ##
-#Param sweepAngle  sweep, in degrees. Positive is clockwise; treated modulo 360 ##
-
-#Return reference to Path ##
+#Populate
 
 #Example
 #Description
@@ -4033,25 +3401,7 @@
                       Direction dir = kCW_Direction)
 #In Build
 #Line # adds one Contour containing Round_Rect with common corner radii ##
-
-Appends Round_Rect to Path, creating a new closed Contour. Round_Rect has bounds
-equal to rect; each corner is 90 degrees of an ellipse with radii (rx, ry). If
-dir is kCW_Direction, Round_Rect starts at top-left of the lower-left corner and
-winds clockwise. If dir is kCCW_Direction, Round_Rect starts at the bottom-left
-of the upper-left corner and winds counterclockwise.
-
-If either rx or ry is too large, rx and ry are scaled uniformly until the
-corners fit. If rx or ry is less than or equal to zero, addRoundRect appends
-Rect rect to Path.
-
-After appending, Path may be empty, or may contain: Rect, Oval, or RoundRect.
-
-#Param rect  bounds of Round_Rect ##
-#Param rx    x-axis radius of rounded corners on the Round_Rect ##
-#Param ry    y-axis radius of rounded corners on the Round_Rect ##
-#Param dir   Direction to wind Round_Rect ##
-
-#Return reference to Path ##
+#Populate
 
 #Example
 #Description
@@ -4146,17 +3496,7 @@
 #Method SkPath& addRRect(const SkRRect& rrect, Direction dir = kCW_Direction)
 #In Build
 #Line # adds one Contour containing Round_Rect ##
-Adds rrect to Path, creating a new closed Contour. If
-dir is kCW_Direction, rrect starts at top-left of the lower-left corner and
-winds clockwise. If dir is kCCW_Direction, rrect starts at the bottom-left
-of the upper-left corner and winds counterclockwise.
-
-After appending, Path may be empty, or may contain: Rect, Oval, or Round_Rect.
-
-#Param rrect  bounds and radii of rounded rectangle ##
-#Param dir   Direction to wind Round_Rect ##
-
-#Return reference to Path ##
+#Populate
 
 #Example
 void draw(SkCanvas* canvas) {
@@ -4244,19 +3584,7 @@
 #Method SkPath& addPoly(const SkPoint pts[], int count, bool close)
 #In Build
 #Line # adds one Contour containing connected lines ##
-Adds Contour created from Line array, adding (count - 1) Line segments.
-Contour added starts at pts[0], then adds a line for every additional Point
-in pts array. If close is true, appends kClose_Verb to Path, connecting
-pts[count - 1] and pts[0].
-
-If count is zero, append kMove_Verb to path.
-Has no effect if count is less than one.
-
-#Param pts    array of Line sharing end and start Point ##
-#Param count  length of Point array ##
-#Param close  true to add Line connecting Contour end and start ##
-
-#Return reference to Path ##
+#Populate
 
 #Example
 void draw(SkCanvas* canvas) {
@@ -4283,17 +3611,7 @@
 ##
 
 #Method SkPath& addPoly(const std::initializer_list<SkPoint>& list, bool close)
-
-Adds Contour created from list. Contour added starts at list[0], then adds a line
-for every additional Point in list. If close is true, appends kClose_Verb to Path,
-connecting last and first Point in list.
-
-If list is empty, append kMove_Verb to path.
-
-#Param list   array of Points ##
-#Param close  true to add Line connecting Contour end and start ##
-
-#Return reference to Path ##
+#Populate
 
 #Example
 void draw(SkCanvas* canvas) {
@@ -4384,19 +3702,7 @@
                  AddPathMode mode = kAppend_AddPathMode)
 #In Build
 #Line # adds contents of Path ##
-
-Appends src to Path, offset by (dx, dy).
-
-If mode is kAppend_AddPathMode, src Verb_Array, Point_Array, and Conic_Weights are
-added unaltered. If mode is kExtend_AddPathMode, add Line before appending
-Verbs, Points, and Conic_Weights.
-
-#Param src  Path Verbs, Points, and Conic_Weights to add ##
-#Param dx   offset added to src Point_Array x-axis coordinates ##
-#Param dy   offset added to src Point_Array y-axis coordinates ##
-#Param mode kAppend_AddPathMode or kExtend_AddPathMode ##
-
-#Return reference to Path ##
+#Populate
 
 #Example
 #Height 180
@@ -4421,17 +3727,7 @@
 # ------------------------------------------------------------------------------
 
 #Method SkPath& addPath(const SkPath& src, AddPathMode mode = kAppend_AddPathMode)
-
-Appends src to Path.
-
-If mode is kAppend_AddPathMode, src Verb_Array, Point_Array, and Conic_Weights are
-added unaltered. If mode is kExtend_AddPathMode, add Line before appending
-Verbs, Points, and Conic_Weights.
-
-#Param src  Path Verbs, Points, and Conic_Weights to add ##
-#Param mode kAppend_AddPathMode or kExtend_AddPathMode ##
-
-#Return reference to Path ##
+#Populate
 
 #Example
 #Height 80
@@ -4453,19 +3749,7 @@
 # ------------------------------------------------------------------------------
 
 #Method SkPath& addPath(const SkPath& src, const SkMatrix& matrix, AddPathMode mode = kAppend_AddPathMode)
-
-Appends src to Path, transformed by matrix. Transformed curves may have different
-Verbs, Points, and Conic_Weights.
-
-If mode is kAppend_AddPathMode, src Verb_Array, Point_Array, and Conic_Weights are
-added unaltered. If mode is kExtend_AddPathMode, add Line before appending
-Verbs, Points, and Conic_Weights.
-
-#Param src     Path Verbs, Points, and Conic_Weights to add ##
-#Param matrix  transform applied to src ##
-#Param mode    kAppend_AddPathMode or kExtend_AddPathMode ##
-
-#Return reference to Path ##
+#Populate
 
 #Example
 #Height 160
@@ -4491,12 +3775,7 @@
 #Method SkPath& reverseAddPath(const SkPath& src)
 #In Build
 #Line # adds contents of Path back to front ##
-Appends src to Path, from back to front.
-Reversed src always appends a new Contour to Path.
-
-#Param src     Path Verbs, Points, and Conic_Weights to add ##
-
-#Return reference to Path ##
+#Populate
 
 #Example
 #Height 200
@@ -4532,12 +3811,7 @@
 #Method void offset(SkScalar dx, SkScalar dy, SkPath* dst) const
 #In Transform
 #Line # translates Point_Array ##
-Offsets Point_Array by (dx, dy). Offset Path replaces dst.
-If dst is nullptr, Path is replaced by offset data.
-
-#Param dx   offset added to Point_Array x-axis coordinates ##
-#Param dy   offset added to Point_Array y-axis coordinates ##
-#Param dst  overwritten, translated copy of Path; may be nullptr ##
+#Populate
 
 #Example
 #Height 60
@@ -4565,10 +3839,7 @@
 
 #Method void offset(SkScalar dx, SkScalar dy)
 #In Transform
-Offsets Point_Array by (dx, dy). Path is replaced by offset data.
-
-#Param dx  offset added to Point_Array x-axis coordinates ##
-#Param dy  offset added to Point_Array y-axis coordinates ##
+#Populate
 
 #Example
 #Height 60
@@ -4593,13 +3864,7 @@
 #Method void transform(const SkMatrix& matrix, SkPath* dst) const
 #In Transform
 #Line # applies Matrix to Point_Array and Weights ##
-Transforms Verb_Array, Point_Array, and weight by matrix.
-transform may change Verbs and increase their number.
-Transformed Path replaces dst; if dst is nullptr, original data
-is replaced.
-
-#Param matrix  Matrix to apply to Path ##
-#Param dst     overwritten, transformed copy of Path; may be nullptr ##
+#Populate
 
 #Example
 #Height 200
@@ -4625,12 +3890,7 @@
 # ------------------------------------------------------------------------------
 
 #Method void transform(const SkMatrix& matrix)
-
-Transforms Verb_Array, Point_Array, and weight by matrix.
-transform may change Verbs and increase their number.
-Path is replaced by transformed data.
-
-#Param matrix  Matrix to apply to Path ##
+#Populate
 
 #Example
 #Height 200
@@ -4664,14 +3924,9 @@
 #In Property
 #In Last_Point
 #Line # returns Last_Point ##
-    Returns Last_Point on Path in lastPt. Returns false if Point_Array is empty,
-    storing (0, 0) if lastPt is not nullptr.
+#Populate
 
-    #Param lastPt  storage for final Point in Point_Array; may be nullptr ##
-
-    #Return  true if Point_Array contains one or more Points ##
-
-    #Example
+#Example
         SkPath path;
         path.moveTo(100, 100);
         path.quadTo(100, 20, 20, 100);
@@ -4694,13 +3949,9 @@
 #In Utility
 #In Last_Point
 #Line # replaces Last_Point ##
-    Sets Last_Point to (x, y). If Point_Array is empty, append kMove_Verb to
-    Verb_Array and append (x, y) to Point_Array.
+#Populate
 
-    #Param x  set x-axis value of Last_Point ##
-    #Param y  set y-axis value of Last_Point ##
-
-    #Example
+#Example
     #Height 128
         SkPaint paint;
         paint.setTextSize(128);
@@ -4715,13 +3966,9 @@
 ##
 
 #Method void setLastPt(const SkPoint& p)
+#Populate
 
-    Sets the last point on the path. If Point_Array is empty, append kMove_Verb to
-    Verb_Array and append p to Point_Array.
-
-    #Param p  set value of Last_Point ##
-
-    #Example
+#Example
     #Height 128
         SkPaint paint;
         paint.setTextSize(128);
@@ -4804,13 +4051,7 @@
 #In Utility
 #In Property
 #Line # returns types in Verb_Array ##
-Returns a mask, where each set bit corresponds to a SegmentMask constant
-if Path contains one or more Verbs of that type.
-Returns zero if Path contains no Lines, or Curves: Quads, Conics, or Cubics.
-
-getSegmentMasks() returns a cached result; it is very fast.
-
-#Return  SegmentMask bits or zero ##
+#Populate
 
 #Example
 SkPath path;
@@ -4885,14 +4126,7 @@
 #Method void dump(SkWStream* stream, bool forceClose, bool dumpAsHex) const
 #In Utility
 #Line # sends text representation to stream ##
-Writes text representation of Path to stream. If stream is nullptr, writes to
-standard output. Set forceClose to true to get edges used to fill Path.
-Set dumpAsHex true to generate exact binary representations
-of floating point numbers used in Point_Array and Conic_Weights.
-
-#Param stream      writable WStream receiving Path text representation; may be nullptr ##
-#Param forceClose  true if missing kClose_Verb is output ##
-#Param dumpAsHex   true if SkScalar values are written as hexadecimal ##
+#Populate
 
 #Example
    SkPath path;
@@ -4933,11 +4167,7 @@
 # ------------------------------------------------------------------------------
 
 #Method void dump() const
-
-Writes text representation of Path to standard output. The representation may be
-directly compiled as C++ code. Floating point values are written
-with limited precision; it may not be possible to reconstruct original Path
-from output.
+#Populate
 
 #Example
 SkPath path, copy;
@@ -4998,18 +4228,7 @@
 #Method size_t writeToMemory(void* buffer) const
 #In Utility
 #Line # copies data to buffer ##
-Writes Path to buffer, returning the number of bytes written.
-Pass nullptr to obtain the storage size.
-
-Writes Fill_Type, Verb_Array, Point_Array, Conic_Weight, and
-additionally writes computed information like Convexity and bounds.
-
-Use only be used in concert with readFromMemory;
-the format used for Path in memory is not guaranteed.
-
-#Param buffer  storage for Path; may be nullptr ##
-
-#Return  size of storage required for Path; always a multiple of 4 ##
+#Populate
 
 #Example
 void draw(SkCanvas* canvas) {
@@ -5034,15 +4253,7 @@
 #Method sk_sp<SkData> serialize() const
 #In Utility
 #Line # copies data to buffer ##
-Writes Path to buffer, returning the buffer written to, wrapped in Data.
-
-serialize() writes Fill_Type, Verb_Array, Point_Array, Conic_Weight, and
-additionally writes computed information like Convexity and bounds.
-
-serialize() should only be used in concert with readFromMemory.
-The format used for Path in memory is not guaranteed.
-
-#Return  Path data wrapped in Data buffer ##
+#Populate
 
 #Example
 void draw(SkCanvas* canvas) {
@@ -5065,19 +4276,7 @@
 #Method size_t readFromMemory(const void* buffer, size_t length)
 #In Utility
 #Line # initializes from buffer ##
-Initializes Path from buffer of size length. Returns zero if the buffer is
-data is inconsistent, or the length is too small.
-
-Reads Fill_Type, Verb_Array, Point_Array, Conic_Weight, and
-additionally reads computed information like Convexity and bounds.
-
-Used only in concert with writeToMemory;
-the format used for Path in memory is not guaranteed.
-
-#Param buffer  storage for Path ##
-#Param length  buffer size in bytes; must be multiple of 4 ##
-
-#Return  number of bytes read, or zero on failure ##
+#Populate
 
 #Example
 void draw(SkCanvas* canvas) {
@@ -5118,17 +4317,7 @@
 
 #In Generation_ID
 #Line # returns unique ID ##
-Returns a non-zero, globally unique value. A different value is returned
-if Verb_Array, Point_Array, or Conic_Weight changes.
-
-Setting Fill_Type does not change Generation_ID.
-
-Each time the path is modified, a different Generation_ID will be returned.
-
-#Bug 1762
-Fill_Type does affect Generation_ID on Android framework.
-
-#Return  non-zero, globally unique value ##
+#Populate
 
 #Example
 SkPath path;
@@ -5159,13 +4348,9 @@
 #In Property
 #In Utility
 #Line # returns if data is internally consistent ##
-    Returns if Path data is consistent. Corrupt Path data is detected if
-    internal values are out of range or internal storage does not match
-    array dimensions.
+#Populate
 
-    #Return  true if Path data is consistent ##
-
-    #NoExample
+#NoExample
     ##
 
 ##
@@ -5216,10 +4401,7 @@
 
 #Method Iter()
 #Line # constructs Path iterator ##
-Initializes Iter with an empty Path. next() on Iter returns kDone_Verb.
-Call setPath to initialize Iter at a later time.
-
-#Return  Iter of empty Path ##
+#Populate
 
 #Example
 void draw(SkCanvas* canvas) {
@@ -5242,15 +4424,7 @@
 
 #Method Iter(const SkPath& path, bool forceClose)
 #Line # constructs Path iterator ##
-
-Sets Iter to return elements of Verb_Array, Point_Array, and Conic_Weight in path.
-If forceClose is true, Iter will add kLine_Verb and kClose_Verb after each
-open Contour. path is not altered.
-
-#Param path  Path to iterate ##
-#Param forceClose true if open Contours generate kClose_Verb ##
-
-#Return Iter of path ##
+#Populate
 
 #Example
 void draw(SkCanvas* canvas) {
@@ -5302,12 +4476,7 @@
 
 #Method void setPath(const SkPath& path, bool forceClose)
 #Line # resets Iter to Path ##
-Sets Iter to return elements of Verb_Array, Point_Array, and Conic_Weight in path.
-If forceClose is true, Iter will add kLine_Verb and kClose_Verb after each
-open Contour. path is not altered.
-
-#Param path  Path to iterate ##
-#Param forceClose true if open Contours generate kClose_Verb ##
+#Populate
 
 #Example
 void draw(SkCanvas* canvas) {
@@ -5361,23 +4530,7 @@
 
 #Method Verb next(SkPoint pts[4], bool doConsumeDegenerates = true, bool exact = false)
 #Line # returns next Verb ##
-
-Returns next Verb in Verb_Array, and advances Iter.
-When Verb_Array is exhausted, returns kDone_Verb.
-
-Zero to four Points are stored in pts, depending on the returned Verb.
-
-If doConsumeDegenerates is true, skip consecutive kMove_Verb entries, returning
-only the last in the series; and skip very small Lines, Quads, and Conics; and
-skip kClose_Verb following kMove_Verb.
-if doConsumeDegenerates is true and exact is true, only skip Lines, Quads, and
-Conics with zero lengths.
-
-    #Param  pts storage for Point data describing returned Verb ##
-    #Param doConsumeDegenerates if true, skip degenerate Verbs ##
-    #Param exact skip zero length curves ##
-
-    #Return next Verb from Verb_Array  ##
+#Populate
 
 #Example
 #Description
@@ -5455,14 +4608,9 @@
 
 #Method SkScalar conicWeight() const
 #Line # returns Conic_Weight ##
-    Returns Conic_Weight if next() returned kConic_Verb.
+#Populate
 
-    If next() has not been called, or next() did not return kConic_Verb,
-    result is undefined.
-
-    #Return  Conic_Weight for Conic Points returned by next() ##
-
-    #Example
+#Example
     void draw(SkCanvas* canvas) {
        SkPath path;
        path.conicTo(1, 2, 3, 4, .5f);
@@ -5488,16 +4636,9 @@
 
 #Method bool isCloseLine() const
 #Line # returns if Line was generated by kClose_Verb ##
-    Returns true if last kLine_Verb returned by next() was generated
-    by kClose_Verb. When true, the end point returned by next() is
-    also the start point of Contour.
+#Populate
 
-    If next() has not been called, or next() did not return kLine_Verb,
-    result is undefined.
-
-    #Return  true if last kLine_Verb was generated by kClose_Verb ##
-
-    #Example
+#Example
 void draw(SkCanvas* canvas) {
    SkPath path;
    path.moveTo(6, 7);
@@ -5529,11 +4670,7 @@
 
 #Method bool isClosedContour() const
 #Line # returns if Contour has kClose_Verb ##
-Returns true if subsequent calls to next() return kClose_Verb before returning
-kMove_Verb. if true, Contour Iter is processing may end with kClose_Verb, or
-Iter may have been initialized with force close set to true.
-
-#Return true if Contour is closed ##
+#Populate
 
 #Example
 void draw(SkCanvas* canvas) {
@@ -5576,52 +4713,33 @@
 
     #Method RawIter()
     #Line # constructs empty Path iterator ##
+#Populate
 
-        Initializes RawIter with an empty Path. next() on RawIter returns kDone_Verb.
-        Call setPath to initialize SkPath::Iter at a later time.
-
-        #Return RawIter of empty Path ##
-
-        #NoExample
+#NoExample
         ##
     ##
 
     #Method RawIter(const SkPath& path)
     #Line # constructs with Path to iterate over ##
+#Populate
 
-
-        Sets RawIter to return elements of Verb_Array, Point_Array, and Conic_Weight in path.
-
-        #Param path  Path to iterate ##
-
-        #Return RawIter of path ##
-
-        #NoExample
+#NoExample
         ##
     ##
 
     #Method void setPath(const SkPath& path)
     #Line # sets Path to iterate over ##
+#Populate
 
-        Sets SkPath::Iter to return elements of Verb_Array, Point_Array, and Conic_Weight in path.
-
-        #Param path  Path to iterate ##
-
-        #NoExample
+#NoExample
         ##
    ##
 
     #Method Verb next(SkPoint pts[4])
     #Line # returns next Verb and associated Points ##
-        Returns next Verb in Verb_Array, and advances RawIter.
-        When Verb_Array is exhausted, returns kDone_Verb.
-        Zero to four Points are stored in pts, depending on the returned Verb.
+#Populate
 
-        #Param  pts storage for Point data describing returned Verb ##
-
-        #Return next Verb from Verb_Array  ##
-
-        #Example
+#Example
         void draw(SkCanvas* canvas) {
             SkPath path;
             path.moveTo(50, 60);
@@ -5665,9 +4783,7 @@
 
     #Method Verb peek() const
     #Line # returns next Verb ##
-        Returns next Verb, but does not advance RawIter.
-
-        #Return next Verb from Verb_Array  ##
+    #Populate
 
         #Example
             SkPath path;
@@ -5696,10 +4812,10 @@
         ##
 
         #Bug 6832
-        StdOut is not really volatile, it just produces the wrong result.
-        A simple fix changes the output of hairlines and needs to be
-        investigated to see if the change is correct or not.
-        see change 21340 (abandoned for now)
+        # StdOut is not really volatile, it just produces the wrong result.
+        # A simple fix changes the output of hairlines and needs to be
+        # investigated to see if the change is correct or not.
+        # see change 21340 (abandoned for now)
 
         #SeeAlso next
 
@@ -5707,15 +4823,9 @@
 
     #Method SkScalar conicWeight() const
     #Line # returns Conic_Weight ##
+#Populate
 
-        Returns Conic_Weight if next() returned kConic_Verb.
-
-        If next() has not been called, or next() did not return kConic_Verb,
-        result is undefined.
-
-        #Return  Conic_Weight for Conic Points returned by next() ##
-
-    #Example
+#Example
     void draw(SkCanvas* canvas) {
        SkPath path;
        path.conicTo(1, 2, 3, 4, .5f);
@@ -5744,4 +4854,3 @@
 #Class SkPath ##
 
 #Topic Path ##
-
diff --git a/docs/SkPicture_Reference.bmh b/docs/SkPicture_Reference.bmh
index 18d35f2..16c8926 100644
--- a/docs/SkPicture_Reference.bmh
+++ b/docs/SkPicture_Reference.bmh
@@ -44,9 +44,7 @@
 #Method AbortCallback()
 #In Constructors
 #Line # defines default constructor ##
-Has no effect.
-
-#Return abstract class cannot be instantiated ##
+#Populate
 
 #NoExample
 ##
@@ -60,7 +58,7 @@
 #Method virtual ~AbortCallback()
 #In Constructors
 #Line # defines default destructor ##
-Has no effect.
+#Populate
 
 #NoExample
 ##
@@ -74,18 +72,7 @@
 #Method virtual bool abort() = 0
 #In Utility
 #Line # aborts playback by callback ##
-
-Stops Picture playback when some condition is met. A subclass of
-AbortCallback provides an override for abort() that can stop SkPicture::playback.
-
-The part of Picture drawn when aborted is undefined. Picture instantiations are
-free to stop drawing at different points during playback.
-
-If the abort happens inside one or more calls to SkCanvas::save(), stack
-of Canvas_Matrix and Canvas_Clip values is restored to its state before
-SkPicture::playback was called.
-
-#Return true to stop playback ##
+#Populate
 
 #NoExample
 ##
@@ -130,33 +117,20 @@
                                            const SkDeserialProcs* procs = nullptr)
 #In Constructors
 #Line # constructs Picture from stream ##
-
-Recreates Picture that was serialized into a stream. Returns constructed Picture
-if successful; otherwise, returns nullptr. Fails if data does not permit
-constructing valid Picture.
-
-procs.fPictureProc permits supplying a custom function to decode Picture.
-If procs.fPictureProc is nullptr, default decoding is used. procs.fPictureCtx
-may be used to provide user context to procs.fPictureProc; procs.fPictureProc
-is called with a pointer to data, data byte length, and user context.
-
-#Param stream  container for serial data ##
-#Param procs  custom serial data decoders; may be nullptr ##
-
-#Return Picture constructed from stream data ##
+#Populate
 
 #Example
-    SkPictureRecorder recorder;

-    SkCanvas* pictureCanvas = recorder.beginRecording({0, 0, 256, 256});

-    SkPaint paint;

-    pictureCanvas->drawRect(SkRect::MakeWH(200, 200), paint);

-    paint.setColor(SK_ColorWHITE);

-    pictureCanvas->drawRect(SkRect::MakeLTRB(20, 20, 180, 180), paint);

-    sk_sp<SkPicture> picture = recorder.finishRecordingAsPicture();

-    SkDynamicMemoryWStream writableStream;

-    picture->serialize(&writableStream);

-    std::unique_ptr<SkStreamAsset> readableStream = writableStream.detachAsStream();

-    sk_sp<SkPicture> copy = SkPicture::MakeFromStream(readableStream.get());

+    SkPictureRecorder recorder;
+    SkCanvas* pictureCanvas = recorder.beginRecording({0, 0, 256, 256});
+    SkPaint paint;
+    pictureCanvas->drawRect(SkRect::MakeWH(200, 200), paint);
+    paint.setColor(SK_ColorWHITE);
+    pictureCanvas->drawRect(SkRect::MakeLTRB(20, 20, 180, 180), paint);
+    sk_sp<SkPicture> picture = recorder.finishRecordingAsPicture();
+    SkDynamicMemoryWStream writableStream;
+    picture->serialize(&writableStream);
+    std::unique_ptr<SkStreamAsset> readableStream = writableStream.detachAsStream();
+    sk_sp<SkPicture> copy = SkPicture::MakeFromStream(readableStream.get());
     copy->playback(canvas);
 ##
 
@@ -170,33 +144,20 @@
                                          const SkDeserialProcs* procs = nullptr)
 #In Constructors
 #Line # constructs Picture from data ##
-
-Recreates Picture that was serialized into data. Returns constructed Picture
-if successful; otherwise, returns nullptr. Fails if data does not permit
-constructing valid Picture.
-
-procs.fPictureProc permits supplying a custom function to decode Picture.
-If procs.fPictureProc is nullptr, default decoding is used. procs.fPictureCtx
-may be used to provide user context to procs.fPictureProc; procs.fPictureProc
-is called with a pointer to data, data byte length, and user context.
-
-#Param data  container for serial data ##
-#Param procs  custom serial data decoders; may be nullptr ##
-
-#Return Picture constructed from data ##
+#Populate
 
 #Example
-    SkPictureRecorder recorder;

-    SkCanvas* pictureCanvas = recorder.beginRecording({0, 0, 256, 256});

-    SkPaint paint;

-    pictureCanvas->drawRect(SkRect::MakeWH(200, 200), paint);

-    paint.setColor(SK_ColorWHITE);

-    pictureCanvas->drawRect(SkRect::MakeLTRB(20, 20, 180, 180), paint);

-    sk_sp<SkPicture> picture = recorder.finishRecordingAsPicture();

-    SkDynamicMemoryWStream writableStream;

-    picture->serialize(&writableStream);

-    sk_sp<SkData> readableData = writableStream.detachAsData();

-    sk_sp<SkPicture> copy = SkPicture::MakeFromData(readableData.get());

+    SkPictureRecorder recorder;
+    SkCanvas* pictureCanvas = recorder.beginRecording({0, 0, 256, 256});
+    SkPaint paint;
+    pictureCanvas->drawRect(SkRect::MakeWH(200, 200), paint);
+    paint.setColor(SK_ColorWHITE);
+    pictureCanvas->drawRect(SkRect::MakeLTRB(20, 20, 180, 180), paint);
+    sk_sp<SkPicture> picture = recorder.finishRecordingAsPicture();
+    SkDynamicMemoryWStream writableStream;
+    picture->serialize(&writableStream);
+    sk_sp<SkData> readableData = writableStream.detachAsData();
+    sk_sp<SkPicture> copy = SkPicture::MakeFromData(readableData.get());
     copy->playback(canvas);
 ##
 
@@ -208,34 +169,20 @@
 
 #Method static sk_sp<SkPicture> MakeFromData(const void* data, size_t size,
                                          const SkDeserialProcs* procs = nullptr)
-
-#Param data  pointer to serial data ##
-#Param size  size of data ##
-#Param procs  custom serial data decoders; may be nullptr ##
-
-Recreates Picture that was serialized into data. Returns constructed Picture
-if successful; otherwise, returns nullptr. Fails if size is smaller than
-required data length, or if data does not permit constructing valid Picture.
-
-procs.fPictureProc permits supplying a custom function to decode Picture.
-If procs.fPictureProc is nullptr, default decoding is used. procs.fPictureCtx
-may be used to provide user context to procs.fPictureProc; procs.fPictureProc
-is called with a pointer to data, data byte length, and user context.
-
-#Return Picture constructed from data ##
+#Populate
 
 #Example
-    SkPictureRecorder recorder;

-    SkCanvas* pictureCanvas = recorder.beginRecording({0, 0, 256, 256});

-    SkPaint paint;

-    pictureCanvas->drawRect(SkRect::MakeWH(200, 200), paint);

-    paint.setColor(SK_ColorWHITE);

-    pictureCanvas->drawRect(SkRect::MakeLTRB(20, 20, 180, 180), paint);

-    sk_sp<SkPicture> picture = recorder.finishRecordingAsPicture();

-    SkDynamicMemoryWStream writableStream;

-    picture->serialize(&writableStream);

-    sk_sp<SkData> readableData = writableStream.detachAsData();

-    sk_sp<SkPicture> copy = SkPicture::MakeFromData(readableData->data(), readableData->size());

+    SkPictureRecorder recorder;
+    SkCanvas* pictureCanvas = recorder.beginRecording({0, 0, 256, 256});
+    SkPaint paint;
+    pictureCanvas->drawRect(SkRect::MakeWH(200, 200), paint);
+    paint.setColor(SK_ColorWHITE);
+    pictureCanvas->drawRect(SkRect::MakeLTRB(20, 20, 180, 180), paint);
+    sk_sp<SkPicture> picture = recorder.finishRecordingAsPicture();
+    SkDynamicMemoryWStream writableStream;
+    picture->serialize(&writableStream);
+    sk_sp<SkData> readableData = writableStream.detachAsData();
+    sk_sp<SkPicture> copy = SkPicture::MakeFromData(readableData->data(), readableData->size());
     copy->playback(canvas);
 ##
 
@@ -248,24 +195,16 @@
 #Method virtual void playback(SkCanvas* canvas, AbortCallback* callback = nullptr) const = 0
 #In Action
 #Line # replays drawing commands on canvas ##
-
-Replays the drawing commands on the specified canvas. In the case that the
-commands are recorded, each command in the Picture is sent separately to canvas.
-
-To add a single command to draw Picture to recording canvas, call
-SkCanvas::drawPicture instead.
-
-#Param canvas  receiver of drawing commands ##
-#Param callback  allows interruption of playback ##
+#Populate
 
 #Example
-    SkPictureRecorder recorder;

-    SkCanvas* pictureCanvas = recorder.beginRecording({0, 0, 256, 256});

-    SkPaint paint;

-    pictureCanvas->drawRect(SkRect::MakeWH(200, 200), paint);

-    paint.setColor(SK_ColorWHITE);

-    pictureCanvas->drawRect(SkRect::MakeLTRB(20, 20, 180, 180), paint);

-    sk_sp<SkPicture> picture = recorder.finishRecordingAsPicture();

+    SkPictureRecorder recorder;
+    SkCanvas* pictureCanvas = recorder.beginRecording({0, 0, 256, 256});
+    SkPaint paint;
+    pictureCanvas->drawRect(SkRect::MakeWH(200, 200), paint);
+    paint.setColor(SK_ColorWHITE);
+    pictureCanvas->drawRect(SkRect::MakeLTRB(20, 20, 180, 180), paint);
+    sk_sp<SkPicture> picture = recorder.finishRecordingAsPicture();
     picture->playback(canvas);
 ##
 
@@ -278,31 +217,23 @@
 #Method virtual SkRect cullRect() const = 0
 #In Property
 #Line # returns bounds used to record Picture ##
-
-Returns cull Rect for this picture, passed in when Picture was created.
-Returned Rect does not specify clipping Rect for Picture; cull is hint
-of Picture bounds.
-
-Picture is free to discard recorded drawing commands that fall outside 
-cull.
-
-#Return bounds passed when Picture was created ##
+#Populate
 
 #Example
 #Description
 Picture recorded bounds are smaller than contents; contents outside recorded
 bounds may be drawn, and are drawn in this example.
 ##
-    SkPictureRecorder recorder;

-    SkCanvas* pictureCanvas = recorder.beginRecording({64, 64, 192, 192});

-    SkPaint paint;

-    pictureCanvas->drawRect(SkRect::MakeWH(200, 200), paint);

-    paint.setColor(SK_ColorWHITE);

-    pictureCanvas->drawRect(SkRect::MakeLTRB(20, 20, 180, 180), paint);

-    sk_sp<SkPicture> picture = recorder.finishRecordingAsPicture();

-    picture->playback(canvas);

-    paint.setBlendMode(SkBlendMode::kModulate);

-    paint.setColor(0x40404040);

+    SkPictureRecorder recorder;
+    SkCanvas* pictureCanvas = recorder.beginRecording({64, 64, 192, 192});
+    SkPaint paint;
+    pictureCanvas->drawRect(SkRect::MakeWH(200, 200), paint);
+    paint.setColor(SK_ColorWHITE);
+    pictureCanvas->drawRect(SkRect::MakeLTRB(20, 20, 180, 180), paint);
+    sk_sp<SkPicture> picture = recorder.finishRecordingAsPicture();
+    picture->playback(canvas);
+    paint.setBlendMode(SkBlendMode::kModulate);
+    paint.setColor(0x40404040);
     canvas->drawRect(picture->cullRect(), paint);
 ##
 
@@ -315,20 +246,17 @@
 #Method uint32_t uniqueID() const
 #In Property
 #Line # returns identifier for Picture ##
-
-Returns a non-zero value unique among Pictures in Skia process.
-
-#Return identifier for Picture ##
+#Populate
 
 #Example
-    SkPictureRecorder recorder;

-    recorder.beginRecording({0, 0, 0, 0});

-    sk_sp<SkPicture> picture = recorder.finishRecordingAsPicture();

-    SkDebugf("empty picture id = %d\n", picture->uniqueID());

-    sk_sp<SkPicture> placeholder = SkPicture::MakePlaceholder({0, 0, 0, 0});

+    SkPictureRecorder recorder;
+    recorder.beginRecording({0, 0, 0, 0});
+    sk_sp<SkPicture> picture = recorder.finishRecordingAsPicture();
+    SkDebugf("empty picture id = %d\n", picture->uniqueID());
+    sk_sp<SkPicture> placeholder = SkPicture::MakePlaceholder({0, 0, 0, 0});
     SkDebugf("placeholder id = %d\n", placeholder->uniqueID());
 #StdOut
-empty picture id = 1

+empty picture id = 1
 placeholder id = 2
 ##
 ##
@@ -342,28 +270,18 @@
 #Method sk_sp<SkData> serialize(const SkSerialProcs* procs = nullptr) const
 #In Utility
 #Line # writes Picture to Data ##
-Returns storage containing Data describing Picture, using optional custom
-encoders.
-
-procs.fPictureProc permits supplying a custom function to encode Picture.
-If procs.fPictureProc is nullptr, default encoding is used. procs.fPictureCtx
-may be used to provide user context to procs.fPictureProc; procs.fPictureProc
-is called with a pointer to Picture and user context.
-
-#Param procs  custom serial data encoders; may be nullptr ##
-
-#Return storage containing serialized Picture ##
+#Populate
 
 #Example
-    SkPictureRecorder recorder;

-    SkCanvas* pictureCanvas = recorder.beginRecording({0, 0, 256, 256});

-    SkPaint paint;

-    pictureCanvas->drawRect(SkRect::MakeWH(200, 200), paint);

-    paint.setColor(SK_ColorWHITE);

-    pictureCanvas->drawRect(SkRect::MakeLTRB(20, 20, 180, 180), paint);

-    sk_sp<SkPicture> picture = recorder.finishRecordingAsPicture();

-    sk_sp<SkData> readableData = picture->serialize();

-    sk_sp<SkPicture> copy = SkPicture::MakeFromData(readableData->data(), readableData->size());

+    SkPictureRecorder recorder;
+    SkCanvas* pictureCanvas = recorder.beginRecording({0, 0, 256, 256});
+    SkPaint paint;
+    pictureCanvas->drawRect(SkRect::MakeWH(200, 200), paint);
+    paint.setColor(SK_ColorWHITE);
+    pictureCanvas->drawRect(SkRect::MakeLTRB(20, 20, 180, 180), paint);
+    sk_sp<SkPicture> picture = recorder.finishRecordingAsPicture();
+    sk_sp<SkData> readableData = picture->serialize();
+    sk_sp<SkPicture> copy = SkPicture::MakeFromData(readableData->data(), readableData->size());
     copy->playback(canvas);
 ##
 
@@ -374,28 +292,20 @@
 # ------------------------------------------------------------------------------
 
 #Method void serialize(SkWStream* stream, const SkSerialProcs* procs = nullptr) const
-Writes picture to stream, using optional custom encoders.
-
-procs.fPictureProc permits supplying a custom function to encode Picture.
-If procs.fPictureProc is nullptr, default encoding is used. procs.fPictureCtx
-may be used to provide user context to procs.fPictureProc; procs.fPictureProc
-is called with a pointer to Picture and user context.
-
-#Param stream  writable serial data stream ##
-#Param procs  custom serial data encoders; may be nullptr ##
+#Populate
 
 #Example
-    SkPictureRecorder recorder;

-    SkCanvas* pictureCanvas = recorder.beginRecording({0, 0, 256, 256});

-    SkPaint paint;

-    pictureCanvas->drawRect(SkRect::MakeWH(200, 200), paint);

-    paint.setColor(SK_ColorWHITE);

-    pictureCanvas->drawRect(SkRect::MakeLTRB(20, 20, 180, 180), paint);

-    sk_sp<SkPicture> picture = recorder.finishRecordingAsPicture();

-    SkDynamicMemoryWStream writableStream;

-    picture->serialize(&writableStream);

-    sk_sp<SkData> readableData = writableStream.detachAsData();

-    sk_sp<SkPicture> copy = SkPicture::MakeFromData(readableData->data(), readableData->size());

+    SkPictureRecorder recorder;
+    SkCanvas* pictureCanvas = recorder.beginRecording({0, 0, 256, 256});
+    SkPaint paint;
+    pictureCanvas->drawRect(SkRect::MakeWH(200, 200), paint);
+    paint.setColor(SK_ColorWHITE);
+    pictureCanvas->drawRect(SkRect::MakeLTRB(20, 20, 180, 180), paint);
+    sk_sp<SkPicture> picture = recorder.finishRecordingAsPicture();
+    SkDynamicMemoryWStream writableStream;
+    picture->serialize(&writableStream);
+    sk_sp<SkData> readableData = writableStream.detachAsData();
+    sk_sp<SkPicture> copy = SkPicture::MakeFromData(readableData->data(), readableData->size());
     copy->playback(canvas);
 ##
 
@@ -408,42 +318,31 @@
 #Method static sk_sp<SkPicture> MakePlaceholder(SkRect cull)
 #In Constructors
 #Line # constructs placeholder with unique identifier ##
-
-Returns a placeholder SkPicture. Result does not draw, and contains only
-cull Rect, 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 Canvas draw stream.
-
-#Param cull  placeholder dimensions
-##
-
-#Return placeholder with unique identifier ##
+#Populate
 
 #Example
 #Function
 class MyCanvas : public SkCanvas {
 public:
     MyCanvas(SkCanvas* c) : canvas(c) {}
-        void onDrawPicture(const SkPicture* picture, const SkMatrix* ,

-                               const SkPaint* ) override {

+        void onDrawPicture(const SkPicture* picture, const SkMatrix* ,
+                               const SkPaint* ) override {
         const SkRect rect = picture->cullRect();
         SkPaint redPaint;
         redPaint.setColor(SK_ColorRED);
         canvas->drawRect(rect, redPaint);
    }
 
-   SkCanvas* canvas;

+   SkCanvas* canvas;
 };
 ##
-SkPictureRecorder recorder;

-SkCanvas* pictureCanvas = recorder.beginRecording({0, 0, 256, 256});

-sk_sp<SkPicture> placeholder = SkPicture::MakePlaceholder({10, 40, 80, 110});

-pictureCanvas->drawPicture(placeholder);

-sk_sp<SkPicture> picture = recorder.finishRecordingAsPicture();

-MyCanvas myCanvas(canvas);

-myCanvas.drawPicture(picture);

+SkPictureRecorder recorder;
+SkCanvas* pictureCanvas = recorder.beginRecording({0, 0, 256, 256});
+sk_sp<SkPicture> placeholder = SkPicture::MakePlaceholder({10, 40, 80, 110});
+pictureCanvas->drawPicture(placeholder);
+sk_sp<SkPicture> picture = recorder.finishRecordingAsPicture();
+MyCanvas myCanvas(canvas);
+myCanvas.drawPicture(picture);
 ##
 
 #SeeAlso MakeFromStream MakeFromData uniqueID
@@ -455,22 +354,16 @@
 #Method virtual int approximateOpCount() const = 0
 #In Property
 #Line # returns approximate operation count ##
-
-Returns the approximate number of operations in Picture. Returned value
-may be greater or less than the number of SkCanvas calls
-recorded: some calls may be recorded as more than one operation, other
-calls may be optimized away.
-
-#Return approximate operation count ##
+#Populate
 
 #Example
-    SkPictureRecorder recorder;

-    SkCanvas* pictureCanvas = recorder.beginRecording({0, 0, 256, 256});

-    SkPaint paint;

-    pictureCanvas->drawRect(SkRect::MakeWH(200, 200), paint);

-    paint.setColor(SK_ColorWHITE);

-    pictureCanvas->drawRect(SkRect::MakeLTRB(20, 20, 180, 180), paint);

-    sk_sp<SkPicture> picture = recorder.finishRecordingAsPicture();

+    SkPictureRecorder recorder;
+    SkCanvas* pictureCanvas = recorder.beginRecording({0, 0, 256, 256});
+    SkPaint paint;
+    pictureCanvas->drawRect(SkRect::MakeWH(200, 200), paint);
+    paint.setColor(SK_ColorWHITE);
+    pictureCanvas->drawRect(SkRect::MakeLTRB(20, 20, 180, 180), paint);
+    sk_sp<SkPicture> picture = recorder.finishRecordingAsPicture();
     picture->playback(canvas);
     std::string opCount = "approximate op count: " + std::to_string(picture->approximateOpCount());
     canvas->drawString(opCount.c_str(), 50, 220, SkPaint());
@@ -485,20 +378,16 @@
 #Method virtual size_t approximateBytesUsed() const = 0
 #In Property
 #Line # returns approximate size ##
-
-Returns the approximate byte size of Picture. Does not include large objects
-referenced by Picture.
-
-#Return approximate size ##
+#Populate
 
 #Example
-    SkPictureRecorder recorder;

-    SkCanvas* pictureCanvas = recorder.beginRecording({0, 0, 256, 256});

-    SkPaint paint;

-    pictureCanvas->drawRect(SkRect::MakeWH(200, 200), paint);

-    paint.setColor(SK_ColorWHITE);

-    pictureCanvas->drawRect(SkRect::MakeLTRB(20, 20, 180, 180), paint);

-    sk_sp<SkPicture> picture = recorder.finishRecordingAsPicture();

+    SkPictureRecorder recorder;
+    SkCanvas* pictureCanvas = recorder.beginRecording({0, 0, 256, 256});
+    SkPaint paint;
+    pictureCanvas->drawRect(SkRect::MakeWH(200, 200), paint);
+    paint.setColor(SK_ColorWHITE);
+    pictureCanvas->drawRect(SkRect::MakeLTRB(20, 20, 180, 180), paint);
+    sk_sp<SkPicture> picture = recorder.finishRecordingAsPicture();
     picture->playback(canvas);
     std::string opCount = "approximate bytes used: " + std::to_string(picture->approximateBytesUsed());
     canvas->drawString(opCount.c_str(), 20, 220, SkPaint());
diff --git a/docs/SkPixmap_Reference.bmh b/docs/SkPixmap_Reference.bmh
index 9c36642..551b8e3 100644
--- a/docs/SkPixmap_Reference.bmh
+++ b/docs/SkPixmap_Reference.bmh
@@ -28,12 +28,7 @@
 
 #In Initialization
 #Line # constructs with default values ##
-Creates an empty Pixmap without pixels, with kUnknown_SkColorType, with
-kUnknown_SkAlphaType, and with a width and height of zero. Use
-reset() to associate pixels, SkColorType, SkAlphaType, width, and height
-after Pixmap has been created.
-
-#Return empty Pixmap ##
+#Populate
 
 #Example
 void draw(SkCanvas* canvas) {
@@ -65,24 +60,7 @@
 
 #In Initialization
 #Line # constructs from Image_Info, pixels ##
-Creates Pixmap from info width, height, SkAlphaType, and SkColorType.
-addr points to pixels, or nullptr. rowBytes should be info.width() times
-info.bytesPerPixel(), or larger.
-
-No parameter checking is performed; it is up to the caller to ensure that
-addr and rowBytes agree with info.
-
-The memory lifetime of pixels is managed by the caller. When Pixmap goes
-out of scope, addr is unaffected.
-
-Pixmap may be later modified by reset() to change its size, pixel type, or
-storage.
-
-#Param info  width, height, SkAlphaType, SkColorType of Image_Info ##
-#Param addr  pointer to pixels allocated by caller; may be nullptr ##
-#Param rowBytes  size of one row of addr; width times pixel size, or larger ##
-
-#Return initialized Pixmap ##
+#Populate
 
 #Example
 #Image 3
@@ -112,11 +90,7 @@
 
 #In Initialization
 #Line # reuses existing Pixmap with replacement values ##
-Sets width, height, row bytes to zero; pixel address to nullptr; SkColorType to
-kUnknown_SkColorType; and SkAlphaType to kUnknown_SkAlphaType.
-
-The prior pixels are unaffected; it is up to the caller to release pixels
-memory if desired.
+#Populate
 
 #Example
 void draw(SkCanvas* canvas) {
@@ -147,20 +121,7 @@
 #Method void reset(const SkImageInfo& info, const void* addr, size_t rowBytes)
 
 #In Initialization
-Sets width, height, SkAlphaType, and SkColorType from info.
-Sets pixel address from addr, which may be nullptr.
-Sets row bytes from rowBytes, which should be info.width() times
-info.bytesPerPixel(), or larger.
-
-Does not check addr. Asserts if built with SK_DEBUG defined and if rowBytes is
-too small to hold one row of pixels.
-
-The memory lifetime pixels are managed by the caller. When Pixmap goes
-out of scope, addr is unaffected.
-
-#Param info  width, height, SkAlphaType, SkColorType of Image_Info ##
-#Param addr  pointer to pixels allocated by caller; may be nullptr ##
-#Param rowBytes  size of one row of addr; width times pixel size, or larger ##
+#Populate
 
 #Example
 #Image 4
@@ -193,12 +154,7 @@
 
 #In Initialization
 #Line # sets Image_Info Color_Space ##
-
-Changes Color_Space in Image_Info; preserves width, height, SkAlphaType, and
-SkColorType in Image, and leaves pixel address and row bytes unchanged.
-Color_Space reference count is incremented.
-
-#Param colorSpace  Color_Space moved to Image_Info ##
+#Populate
 
 #Example
 void draw(SkCanvas* canvas) {
@@ -231,16 +187,7 @@
 
 #In Initialization
 #Line # sets pointer to portion of original ##
-Sets subset width, height, pixel address to intersection of Pixmap with area,
-if intersection is not empty; and return true. Otherwise, leave subset unchanged
-and return false.
-
-Failing to read the return value generates a compile time warning.
-
-#Param subset  storage for width, height, pixel address of intersection ##
-#Param area    bounds to intersect with Pixmap ##
-
-#Return true if intersection of Pixmap and area is not empty ##
+#Populate
 
 #Example
 #Image 3
@@ -275,9 +222,7 @@
 
 #In Image_Info_Access
 #Line # returns Image_Info ##
-Returns width, height, Alpha_Type, Color_Type, and Color_Space.
-
-#Return reference to ImageInfo  ##
+#Populate
 
 #Example
 #Image 3
@@ -341,11 +286,7 @@
 
 #In Image_Info_Access
 #Line # returns readable pixel address as void pointer ##
-Returns pixel address, the base address corresponding to the pixel origin.
-
-It is up to the Pixmap creator to ensure that pixel address is a useful value.
-
-#Return  pixel address ##
+#Populate
 
 #Example
 #Image 3
@@ -401,9 +342,7 @@
 
 #In Image_Info_Access
 #Line # returns pixel row count ##
-Returns pixel row count.
-
-#Return  pixel height in Image_Info ##
+#Populate
 
 #Example
     SkPixmap pixmap(SkImageInfo::MakeA8(16, 32), nullptr, 64);
@@ -470,11 +409,7 @@
 
 #In Image_Info_Access
 #Line # returns Image_Info Color_Space ##
-Returns Color_Space, the range of colors, associated with Image_Info. The
-reference count of Color_Space is unchanged. The returned Color_Space is
-immutable.
-
-#Return Color_Space in Image_Info, or nullptr ##
+#Populate
 
 #Example
 #Description
@@ -503,11 +438,7 @@
 
 #In Image_Info_Access
 #Line # returns true if Image_Info describes opaque pixels ##
-Returns true if Alpha_Type is kOpaque_SkAlphaType.
-Does not check if Color_Type allows Alpha, or if any pixel value has
-transparency.
-
-#Return true if Image_Info has opaque Alpha_Type ##
+#Populate
 
 #Example
 #Description
@@ -545,9 +476,7 @@
 
 #In Image_Info_Access
 #Line # returns width and height as Rectangle ##
-Returns IRect { 0, 0, width(), height() }.
-
-#Return  integral rectangle from origin to width() and height() ##
+#Populate
 
 #Example
     for (int width : { 0, 2 } ) {
@@ -575,11 +504,7 @@
 
 #In Image_Info_Access
 #Line # returns interval between rows in pixels ##
-
-Returns number of pixels that fit on row. Should be greater than or equal to
-width().
-
-#Return  maximum pixels per row ##
+#Populate
 
 #Example
     for (int rowBytes : { 4, 5, 6, 7, 8} ) {
@@ -605,10 +530,7 @@
 
 #In Image_Info_Access
 #Line # returns bit shift from pixels to bytes ##
-Returns bit shift converting row bytes to row pixels.
-Returns zero for kUnknown_SkColorType.
-
-#Return one of: 0, 1, 2, 3; left shift to convert pixels to bytes ##
+#Populate
 
 #Example
     const char* colors[] = {"Unknown", "Alpha_8", "RGB_565", "ARGB_4444", "RGBA_8888", "RGB_888x",
@@ -645,13 +567,7 @@
 
 #In Image_Info_Access
 #Line # returns size required for pixels ##
-Returns minimum memory required for pixel storage.
-Does not include unused memory on last row when rowBytesAsPixels exceeds width().
-Returns zero if result does not fit in size_t.
-Returns zero if height() or width() is 0.
-Returns height() times rowBytes if colorType is kUnknown_SkColorType.
-
-#Return size in bytes of image buffer ##
+#Populate
 
 #Example
     SkPixmap pixmap;
@@ -691,21 +607,7 @@
 
 #In Reader
 #Line # returns true if all pixels are opaque ##
-Returns true if all pixels are opaque. Color_Type determines how pixels
-are encoded, and whether pixel describes Alpha. Returns true for Color_Types
-without alpha in each pixel; for other Color_Types, returns true if all
-pixels have alpha values equivalent to 1.0 or greater.
-
-For Color_Types kRGB_565_SkColorType or kGray_8_SkColorType: always
-returns true. For Color_Types kAlpha_8_SkColorType, kBGRA_8888_SkColorType,
-kRGBA_8888_SkColorType: returns true if all pixel Alpha values are 255.
-For Color_Type kARGB_4444_SkColorType: returns true if all pixel Alpha values are 15.
-For kRGBA_F16_SkColorType: returns true if all pixel Alpha values are 1.0 or
-greater.
-
-Returns false for kUnknown_SkColorType.
-
-#Return true if all pixels have opaque values or Color_Type is opaque  ##
+#Populate
 
 #Example
     std::vector<uint32_t> pixels;
@@ -740,22 +642,7 @@
 
 #In Reader
 #Line # returns one pixel as Unpremultiplied Color ##
-Returns pixel at (x, y) as Unpremultiplied Color.
-Returns black with Alpha if Color_Type is kAlpha_8_SkColorType.
-
-Input is not validated: out of bounds values of x or y trigger an assert() if
-built with SK_DEBUG defined; and returns undefined values or may crash if
-SK_RELEASE is defined. Fails if Color_Type is kUnknown_SkColorType or
-pixel address is nullptr.
-
-Color_Space in Image_Info is ignored. Some Color precision may be lost in the
-conversion to Unpremultiplied Color; original pixel data may have additional
-precision.
-
-#Param x  column index, zero or greater, and less than width() ##
-#Param y  row index, zero or greater, and less than height() ##
-
-#Return  pixel converted to Unpremultiplied Color ##
+#Populate
 
 #Example
     const int w = 4;
@@ -827,18 +714,7 @@
 #Method const void* addr(int x, int y) const
 
 #In Readable_Address
-Returns readable pixel address at (x, y). Returns nullptr if Pixel_Ref is nullptr.
-
-Input is not validated: out of bounds values of x or y trigger an assert() if
-built with SK_DEBUG defined. Returns nullptr if Color_Type is kUnknown_SkColorType.
-
-Performs a lookup of pixel size; for better performance, call
-one of: addr8, addr16, addr32, addr64, or addrF16.
-
-#Param x  column index, zero or greater, and less than width() ##
-#Param y  row index, zero or greater, and less than height() ##
-
-#Return  readable generic pointer to pixel ##
+#Populate
 
 #Example
     const int w = 4;
@@ -863,13 +739,7 @@
 
 #In Readable_Address
 #Line # returns readable pixel address as 8-bit pointer ##
-Returns readable base pixel address. Result is addressable as unsigned 8-bit bytes.
-Will trigger an assert() if Color_Type is not kAlpha_8_SkColorType or
-kGray_8_SkColorType, and is built with SK_DEBUG defined.
-
-One byte corresponds to one pixel.
-
-#Return  readable unsigned 8-bit pointer to pixels ##
+#Populate
 
 #Example
     const int w = 4;
@@ -894,13 +764,7 @@
 
 #In Readable_Address
 #Line # returns readable pixel address as 16-bit pointer ##
-Returns readable base pixel address. Result is addressable as unsigned 16-bit words.
-Will trigger an assert() if Color_Type is not kRGB_565_SkColorType or
-kARGB_4444_SkColorType, and is built with SK_DEBUG defined.
-
-One word corresponds to one pixel.
-
-#Return  readable unsigned 16-bit pointer to pixels ##
+#Populate
 
 #Example
     const int w = 4;
@@ -925,13 +789,7 @@
 
 #In Readable_Address
 #Line # returns readable pixel address as 32-bit pointer ##
-Returns readable base pixel address. Result is addressable as unsigned 32-bit words.
-Will trigger an assert() if Color_Type is not kRGBA_8888_SkColorType or
-kBGRA_8888_SkColorType, and is built with SK_DEBUG defined.
-
-One word corresponds to one pixel.
-
-#Return  readable unsigned 32-bit pointer to pixels ##
+#Populate
 
 #Example
     const int w = 4;
@@ -956,13 +814,7 @@
 
 #In Readable_Address
 #Line # returns readable pixel address as 64-bit pointer ##
-Returns readable base pixel address. Result is addressable as unsigned 64-bit words.
-Will trigger an assert() if Color_Type is not kRGBA_F16_SkColorType and is built
-with SK_DEBUG defined.
-
-One word corresponds to one pixel.
-
-#Return  readable unsigned 64-bit pointer to pixels ##
+#Populate
 
 #Example
     const int w = 4;
@@ -987,14 +839,7 @@
 
 #In Readable_Address
 #Line # returns readable pixel component address as 16-bit pointer ##
-Returns readable base pixel address. Result is addressable as unsigned 16-bit words.
-Will trigger an assert() if Color_Type is not kRGBA_F16_SkColorType and is built
-with SK_DEBUG defined.
-
-Each word represents one color component encoded as a half float.
-Four words correspond to one pixel.
-
-#Return  readable unsigned 16-bit pointer to first component of pixels ##
+#Populate
 
 #Example
     const int w = 4;
@@ -1018,18 +863,7 @@
 #Method const uint8_t* addr8(int x, int y) const
 
 #In Readable_Address
-Returns readable pixel address at (x, y).
-
-Input is not validated: out of bounds values of x or y trigger an assert() if
-built with SK_DEBUG defined.
-
-Will trigger an assert() if Color_Type is not kAlpha_8_SkColorType or
-kGray_8_SkColorType, and is built with SK_DEBUG defined.
-
-#Param x  column index, zero or greater, and less than width() ##
-#Param y  row index, zero or greater, and less than height() ##
-
-#Return  readable unsigned 8-bit pointer to pixel at (x, y) ##
+#Populate
 
 #Example
     const int w = 4;
@@ -1053,18 +887,7 @@
 #Method const uint16_t* addr16(int x, int y) const
 
 #In Readable_Address
-Returns readable pixel address at (x, y).
-
-Input is not validated: out of bounds values of x or y trigger an assert() if
-built with SK_DEBUG defined.
-
-Will trigger an assert() if Color_Type is not kRGB_565_SkColorType or
-kARGB_4444_SkColorType, and is built with SK_DEBUG defined.
-
-#Param x  column index, zero or greater, and less than width() ##
-#Param y  row index, zero or greater, and less than height() ##
-
-#Return  readable unsigned 16-bit pointer to pixel at (x, y) ##
+#Populate
 
 #Example
     const int w = 4;
@@ -1088,18 +911,7 @@
 #Method const uint32_t* addr32(int x, int y) const
 
 #In Readable_Address
-Returns readable pixel address at (x, y).
-
-Input is not validated: out of bounds values of x or y trigger an assert() if
-built with SK_DEBUG defined.
-
-Will trigger an assert() if Color_Type is not kRGBA_8888_SkColorType or
-kBGRA_8888_SkColorType, and is built with SK_DEBUG defined.
-
-#Param x  column index, zero or greater, and less than width() ##
-#Param y  row index, zero or greater, and less than height() ##
-
-#Return  readable unsigned 32-bit pointer to pixel at (x, y) ##
+#Populate
 
 #Example
     const int w = 4;
@@ -1123,18 +935,7 @@
 #Method const uint64_t* addr64(int x, int y) const
 
 #In Readable_Address
-Returns readable pixel address at (x, y).
-
-Input is not validated: out of bounds values of x or y trigger an assert() if
-built with SK_DEBUG defined.
-
-Will trigger an assert() if Color_Type is not kRGBA_F16_SkColorType and is built
-with SK_DEBUG defined.
-
-#Param x  column index, zero or greater, and less than width() ##
-#Param y  row index, zero or greater, and less than height() ##
-
-#Return  readable unsigned 64-bit pointer to pixel at (x, y) ##
+#Populate
 
 #Example
     const int w = 4;
@@ -1158,21 +959,7 @@
 #Method const uint16_t* addrF16(int x, int y) const
 
 #In Readable_Address
-Returns readable pixel address at (x, y).
-
-Input is not validated: out of bounds values of x or y trigger an assert() if
-built with SK_DEBUG defined.
-
-Will trigger an assert() if Color_Type is not kRGBA_F16_SkColorType and is built
-with SK_DEBUG defined.
-
-Each unsigned 16-bit word represents one color component encoded as a half float.
-Four words correspond to one pixel.
-
-#Param x  column index, zero or greater, and less than width() ##
-#Param y  row index, zero or greater, and less than height() ##
-
-#Return  readable unsigned 16-bit pointer to pixel component at (x, y) ##
+#Populate
 
 #Example
     const int w = 4;
@@ -1204,9 +991,7 @@
 
 #In Writable_Address
 #Line # returns writable pixel address as void pointer ##
-Returns writable base pixel address.
-
-#Return  writable generic base pointer to pixels ##
+#Populate
 
 #Example
     const int w = 4;
@@ -1237,15 +1022,7 @@
 #Method void* writable_addr(int x, int y) const
 
 #In Writable_Address
-Returns writable pixel address at (x, y).
-
-Input is not validated: out of bounds values of x or y trigger an assert() if
-built with SK_DEBUG defined. Returns zero if Color_Type is kUnknown_SkColorType.
-
-#Param x  column index, zero or greater, and less than width() ##
-#Param y  row index, zero or greater, and less than height() ##
-
-#Return  writable generic pointer to pixel ##
+#Populate
 
 #Example
     const int w = 4;
@@ -1277,16 +1054,7 @@
 
 #In Writable_Address
 #Line # returns writable pixel address as 8-bit pointer ##
-Returns writable pixel address at (x, y). Result is addressable as unsigned
-8-bit bytes. Will trigger an assert() if Color_Type is not kAlpha_8_SkColorType
-or kGray_8_SkColorType, and is built with SK_DEBUG defined.
-
-One byte corresponds to one pixel.
-
-#Param x  column index, zero or greater, and less than width() ##
-#Param y  row index, zero or greater, and less than height() ##
-
-#Return  writable unsigned 8-bit pointer to pixels ##
+#Populate
 
 #Example
 #Height 64
@@ -1323,16 +1091,7 @@
 
 #In Writable_Address
 #Line # returns writable pixel address as 16-bit pointer ##
-Returns writable_addr pixel address at (x, y). Result is addressable as unsigned
-16-bit words. Will trigger an assert() if Color_Type is not kRGB_565_SkColorType
-or kARGB_4444_SkColorType, and is built with SK_DEBUG defined.
-
-One word corresponds to one pixel.
-
-#Param x  column index, zero or greater, and less than width() ##
-#Param y  row index, zero or greater, and less than height() ##
-
-#Return  writable unsigned 16-bit pointer to pixel ##
+#Populate
 
 #Example
 #Description
@@ -1366,17 +1125,7 @@
 
 #In Writable_Address
 #Line # returns writable pixel address as 32-bit pointer ##
-Returns writable pixel address at (x, y). Result is addressable as unsigned
-32-bit words. Will trigger an assert() if Color_Type is not
-kRGBA_8888_SkColorType or kBGRA_8888_SkColorType, and is built with SK_DEBUG
-defined.
-
-One word corresponds to one pixel.
-
-#Param x  column index, zero or greater, and less than width() ##
-#Param y  row index, zero or greater, and less than height() ##
-
-#Return  writable unsigned 32-bit pointer to pixel ##
+#Populate
 
 #Example
 #Image 4
@@ -1409,16 +1158,7 @@
 
 #In Writable_Address
 #Line # returns writable pixel address as 64-bit pointer ##
-Returns writable pixel address at (x, y). Result is addressable as unsigned
-64-bit words. Will trigger an assert() if Color_Type is not
-kRGBA_F16_SkColorType and is built with SK_DEBUG defined.
-
-One word corresponds to one pixel.
-
-#Param x  column index, zero or greater, and less than width() ##
-#Param y  row index, zero or greater, and less than height() ##
-
-#Return  writable unsigned 64-bit pointer to pixel ##
+#Populate
 
 #Example
 #Height 40
@@ -1446,17 +1186,7 @@
 
 #In Writable_Address
 #Line # returns writable pixel component address as 16-bit pointer ##
-Returns writable pixel address at (x, y). Result is addressable as unsigned
-16-bit words. Will trigger an assert() if Color_Type is not
-kRGBA_F16_SkColorType and is built with SK_DEBUG defined.
-
-Each word represents one color component encoded as a half float.
-Four words correspond to one pixel.
-
-#Param x  column index, zero or greater, and less than width() ##
-#Param y  row index, zero or greater, and less than height() ##
-
-#Return  writable unsigned 16-bit pointer to first component of pixel ##
+#Populate
 
 #Example
 #Height 64
@@ -1498,29 +1228,7 @@
 #Method bool readPixels(const SkImageInfo& dstInfo, void* dstPixels, size_t dstRowBytes) const
 #In Pixels
 #Line # copies and converts pixels ##
-
-Copies a Rect of pixels to dstPixels. Copy starts at (0, 0), and does not
-exceed Pixmap (width(), height()).
-
-dstInfo specifies width, height, Color_Type, Alpha_Type, and
-Color_Space of destination. dstRowBytes specifics the gap from one destination
-row to the next. Returns true if pixels are copied. Returns false if
-dstInfo.addr() equals nullptr, or dstRowBytes is less than dstInfo.minRowBytes.
-
-Pixels are copied only if pixel conversion is possible. If Pixmap colorType is
-kGray_8_SkColorType, or kAlpha_8_SkColorType; dstInfo.colorType must match.
-If Pixmap colorType is kGray_8_SkColorType, dstInfo.colorSpace must match.
-If Pixmap alphaType is kOpaque_SkAlphaType, dstInfo.alphaType must
-match. If Pixmap colorSpace is nullptr, dstInfo.colorSpace must match. Returns
-false if pixel conversion is not possible.
-
-Returns false if Pixmap width() or height() is zero or negative.
-
-#Param dstInfo  destination width, height, Color_Type, Alpha_Type, Color_Space ##
-#Param dstPixels  destination pixel storage ##
-#Param dstRowBytes  destination row length ##
-
-#Return  true if pixels are copied to dstPixels ##
+#Populate
 
 #Example
 #Height 128
@@ -1673,24 +1381,7 @@
 # ------------------------------------------------------------------------------
 
 #Method bool readPixels(const SkPixmap& dst) const
-
-Copies pixels inside bounds() to dst. dst specifies width, height, Color_Type,
-Alpha_Type, and Color_Space of destination.  Returns true if pixels are copied.
-Returns false if dst.addr() equals nullptr, or dst.rowBytes is less than
-dst SkImageInfo::minRowBytes.
-
-Pixels are copied only if pixel conversion is possible. If Pixmap colorType is
-kGray_8_SkColorType, or kAlpha_8_SkColorType; dst Color_Type must match.
-If Pixmap colorType is kGray_8_SkColorType, dst Color_Space must match.
-If Pixmap alphaType is kOpaque_SkAlphaType, dst Alpha_Type must
-match. If Pixmap colorSpace is nullptr, dst Color_Space must match. Returns
-false if pixel conversion is not possible.
-
-Returns false if Pixmap width() or height() is zero or negative.
-
-#Param dst  Image_Info and pixel address to write to ##
-
-#Return  true if pixels are copied to dst ##
+#Populate
 
 #Example
 #Image 3
@@ -1724,33 +1415,7 @@
 
 #In Pixels
 #Line # scales and converts pixels ##
-Copies Bitmap to dst, scaling pixels to fit dst.width() and dst.height(), and
-converting pixels to match dst.colorType and dst.alphaType. Returns true if
-pixels are copied. Returns false if dst.addr() is nullptr, or dst.rowBytes is
-less than dst SkImageInfo::minRowBytes.
-
-Pixels are copied only if pixel conversion is possible. If Pixmap colorType is
-kGray_8_SkColorType, or kAlpha_8_SkColorType; dst Color_Type must match.
-If Pixmap colorType is kGray_8_SkColorType, dst Color_Space must match.
-If Pixmap alphaType is kOpaque_SkAlphaType, dst Alpha_Type must
-match. If Pixmap colorSpace is nullptr, dst Color_Space must match. Returns
-false if pixel conversion is not possible.
-
-Returns false if Bitmap width() or height() is zero or negative.
-
-Scales the image, with filterQuality, to match dst.width() and dst.height().
-filterQuality kNone_SkFilterQuality is fastest, typically implemented with
-Filter_Quality_Nearest_Neighbor. kLow_SkFilterQuality is typically implemented with
-Filter_Quality_Bilerp. kMedium_SkFilterQuality is typically implemented with
-Filter_Quality_Bilerp, and Filter_Quality_MipMap when size is reduced.
-kHigh_SkFilterQuality is slowest, typically implemented with Filter_Quality_BiCubic.
-
-#Param dst  Image_Info and pixel address to write to ##
-#Param filterQuality  one of: kNone_SkFilterQuality, kLow_SkFilterQuality,
-                      kMedium_SkFilterQuality, kHigh_SkFilterQuality
-##
-
-#Return  true if pixels are scaled to fit dst ##
+#Populate
 
 #Example
 #Image 3
@@ -1786,14 +1451,7 @@
 
 #In Pixels
 #Line # writes Color to pixels ##
-Writes color to pixels bounded by subset; returns true on success.
-Returns false if colorType is kUnknown_SkColorType, or if subset does
-not intersect bounds().
-
-#Param color  Unpremultiplied Color to write ##
-#Param subset bounding integer Rect of written pixels ##
-
-#Return  true if pixels are changed ##
+#Populate
 
 #Example
 #Height 50
@@ -1815,14 +1473,7 @@
 # ------------------------------------------------------------------------------
 
 #Method bool erase(SkColor color) const
-
-Writes color to pixels inside bounds(); returns true on success.
-Returns false if colorType is kUnknown_SkColorType, or if bounds()
-is empty.
-
-#Param color  Unpremultiplied Color to write ##
-
-#Return  true if pixels are changed ##
+#Populate
 
 #Example
 #Height 50
@@ -1843,16 +1494,7 @@
 # ------------------------------------------------------------------------------
 
 #Method bool erase(const SkColor4f& color, const SkIRect* subset = nullptr) const
-
-Writes color to pixels bounded by subset; returns true on success.
-if subset is nullptr, writes colors pixels inside bounds(). Returns false if
-colorType is kUnknown_SkColorType, if subset is not nullptr and does
-not intersect bounds(), or if subset is nullptr and bounds() is empty.
-
-#Param color  Unpremultiplied Color to write ##
-#Param subset  bounding integer Rect of pixels to write; may be nullptr ##
-
-#Return  true if pixels are changed ##
+#Populate
 
 #Example
 #Height 50
diff --git a/docs/SkPoint_Reference.bmh b/docs/SkPoint_Reference.bmh
index bd0e0f1..45b479e 100644
--- a/docs/SkPoint_Reference.bmh
+++ b/docs/SkPoint_Reference.bmh
@@ -27,12 +27,7 @@
 #Method static constexpr SkPoint Make(SkScalar x, SkScalar y)
 #In Constructors
 #Line # constructs from SkScalar inputs ##
-Sets fX to x, fY to y. Used both to set Point and Vector.
-
-#Param x  SkScalar x-axis value of constructed Point or Vector ##
-#Param y  SkScalar y-axis value of constructed Point or Vector ##
-
-#Return Point (x, y) ##
+#Populate
 
 #Example
 SkPoint pt1 = {45, 66};
@@ -58,9 +53,7 @@
 #Method SkScalar x() const
 #In Property
 #Line # returns fX ##
-Returns x-axis value of Point or Vector.
-
-#Return fX ##
+#Populate
 
 #Example
 SkPoint pt1 = {45, 66};
@@ -79,9 +72,7 @@
 #Method SkScalar y() const
 #In Property
 #Line # returns fY ##
-Returns y-axis value of Point or Vector.
-
-#Return fY ##
+#Populate
 
 #Example
 SkPoint pt1 = {45, 66};
@@ -100,9 +91,7 @@
 #Method bool isZero() const
 #In Property
 #Line # returns true if both members equal zero ##
-Returns true if fX and fY are both zero.
-
-#Return true if fX is zero and fY is zero ##
+#Populate
 
 #Example
 SkPoint pt = { 0.f, -0.f};
@@ -128,10 +117,7 @@
 #Method void set(SkScalar x, SkScalar y)
 #In Set
 #Line # sets to SkScalar input ##
-Sets fX to x and fY to y.
-
-#Param x  new value for fX ##
-#Param y  new value for fY ##
+#Populate
 
 #Example
 SkPoint pt1, pt2 = { SK_ScalarPI, SK_ScalarSqrt2 };
@@ -151,14 +137,7 @@
 #Method void iset(int32_t x, int32_t y)
 #In Set
 #Line # sets to integer input ##
-Sets fX to x and fY to y, promoting integers to SkScalar values.
-
-Assigning a large integer value directly to fX or fY may cause a compiler
-error, triggered by narrowing conversion of int to SkScalar. This safely
-casts x and y to avoid the error.
-
-#Param x  new value for fX ##
-#Param y  new value for fY ##
+#Populate
 
 #Example
 SkPoint pt1, pt2 = { SK_MinS16, SK_MaxS16 };
@@ -173,14 +152,7 @@
 # ------------------------------------------------------------------------------
 
 #Method void iset(const SkIPoint& p)
-
-Sets fX to p.fX and fY to p.fY, promoting integers to SkScalar values.
-
-Assigning an IPoint containing a large integer value directly to fX or fY may
-cause a compiler error, triggered by narrowing conversion of int to SkScalar.
-This safely casts p.fX and p.fY to avoid the error.
-
-#Param p  IPoint members promoted to SkScalar ##
+#Populate
 
 #Example
 SkIPoint iPt = { SK_MinS32, SK_MaxS32 };
@@ -203,9 +175,7 @@
 #Method void setAbs(const SkPoint& pt)
 #In Set
 #Line # sets sign of both members to positive ##
-Sets fX to absolute value of pt.fX; and fY to absolute value of pt.fY.
-
-#Param pt  members providing magnitude for fX and fY ##
+#Populate
 
 #Example
 SkPoint test[] = { {0.f, -0.f}, {-1, -2},
@@ -237,11 +207,7 @@
 #Method static void Offset(SkPoint points[], int count, const SkVector& offset)
 #In Offset
 #Line # translates Point array ##
-Adds offset to each Point in points array with count entries.
-
-#Param points  Point array ##
-#Param count  entries in array ##
-#Param offset  Vector added to points ##
+#Populate
 
 #Example
     SkPaint paint;
@@ -264,13 +230,7 @@
 # ------------------------------------------------------------------------------
 
 #Method static void Offset(SkPoint points[], int count, SkScalar dx, SkScalar dy)
-
-Adds offset (dx, dy) to each Point in points array of length count.
-
-#Param points  Point array ##
-#Param count  entries in array ##
-#Param dx  added to fX in points ##
-#Param dy  added to fY in points ##
+#Populate
 
 #Example
     SkPaint paint;
@@ -295,10 +255,7 @@
 #Method void offset(SkScalar dx, SkScalar dy)
 #In Offset
 #Line # translates Point ##
-Adds offset (dx, dy) to Point.
-
-#Param dx  added to fX ##
-#Param dy  added to fY ##
+#Populate
 
 #Example
 #Height 128
@@ -325,14 +282,7 @@
 #Method SkScalar length() const
 #In Property
 #Line # returns straight-line distance to origin ##
-Returns the Euclidean_Distance from origin, computed as:
-#Code
-#Literal
-sqrt(fX * fX + fY * fY)
-##
-.
-
-#Return straight-line distance to origin ##
+#Populate
 
 #Example
 #Height 192
@@ -360,14 +310,7 @@
 #Method SkScalar distanceToOrigin() const
 #In Property
 #Line # returns straight-line distance to origin ##
-Returns the Euclidean_Distance from origin, computed as:
-#Code
-#Literal
-sqrt(fX * fX + fY * fY)
-##
-.
-
-#Return straight-line distance to origin ##
+#Populate
 
 #Example
 #Height 192
@@ -396,11 +339,7 @@
 #Method bool normalize()
 #In Set
 #Line # sets length to one, preserving direction ##
-Scales (fX, fY) so that length() returns one, while preserving ratio of fX to fY,
-if possible. If prior length is nearly zero, sets Vector to (0, 0) and returns
-false; otherwise returns true.
-
-#Return true if former length is not zero or nearly zero ##
+#Populate
 
 #Example
     SkPaint paint;
@@ -428,14 +367,7 @@
 #Method bool setNormalize(SkScalar x, SkScalar y)
 #In Set
 #Line # sets length to one, in direction of (x, y) ##
-Sets Vector to (x, y) scaled so length() returns one, and so that
-(fX, fY) is proportional to (x, y).  If (x, y) length is nearly zero,
-sets Vector to (0, 0) and returns false; otherwise returns true.
-
-#Param x  proportional value for fX ##
-#Param y  proportional value for fY ##
-
-#Return true if (x, y) length is not zero or nearly zero ##
+#Populate
 
 #Example
     SkPaint paint;
@@ -465,13 +397,7 @@
 #Method bool setLength(SkScalar length)
 #In Set
 #Line # sets straight-line distance to origin ##
-Scales Vector so that distanceToOrigin returns length, if possible. If former
-length is nearly zero, sets Vector to (0, 0) and return false; otherwise returns
-true.
-
-#Param length  straight-line distance to origin ##
-
-#Return true if former length is not zero or nearly zero  ##
+#Populate
 
 #Example
 #Height 160
@@ -499,16 +425,7 @@
 # ------------------------------------------------------------------------------
 
 #Method bool setLength(SkScalar x, SkScalar y, SkScalar length)
-
-Sets Vector to (x, y) scaled to length, if possible. If former
-length is nearly zero, sets Vector to (0, 0) and return false; otherwise returns
-true.
-
-#Param x  proportional value for fX ##
-#Param y  proportional value for fY ##
-#Param length  straight-line distance to origin ##
-
-#Return true if (x, y) length is not zero or nearly zero ##
+#Populate
 
 #Example
 #Height 160
@@ -539,10 +456,7 @@
 #In Offset
 #In Operators
 #Line # multiplies Point by scale factor ##
-Sets dst to Point times scale. dst may be Point to modify Point in place.
-
-#Param scale  factor to multiply Point by ##
-#Param dst  storage for scaled Point ##
+#Populate
 
 #Example
     SkPaint paint;
@@ -564,10 +478,7 @@
 # ------------------------------------------------------------------------------
 
 #Method void scale(SkScalar value)
-
-Scales Point in place by scale.
-
-#Param value  factor to multiply Point by ##
+#Populate
 
 #Example
     SkPaint paint;
@@ -591,7 +502,7 @@
 #Method void negate()
 #In Operators
 #Line # reverses the sign of both members ##
-Changes the sign of fX and fY.
+#Populate
 
 #Example
 SkPoint test[] = { {0.f, -0.f}, {-1, -2},
@@ -619,9 +530,7 @@
 #Method SkPoint operator-()_const
 
 #Line # reverses sign of Point ##
-Returns Point changing the signs of fX and fY.
-
-#Return Point as (-fX, -fY) ##
+#Populate
 
 #Example
 SkPoint test[] = { {0.f, -0.f}, {-1, -2},
@@ -708,11 +617,7 @@
 #Method SkPoint operator*(SkScalar scale)_const
 
 #Line # returns Point multiplied by scale ##
-Returns Point multiplied by scale.
-
-#Param scale  Scalar to multiply by ##
-
-#Return Point as (fX * scale, fY * scale) ##
+#Populate
 
 #Example
 #Height 128
@@ -774,9 +679,7 @@
 #Method bool isFinite() const
 #In Property
 #Line # returns true if no member is infinite or NaN ##
-Returns true if both fX and fY are measurable values.
-
-#Return true for values other than infinities and NaN ##
+#Populate
 
 #Example
 SkPoint test[] = { {0, -0.f}, {-1, -2}, {SK_ScalarInfinity, 1}, {SK_ScalarNaN, -1} };
@@ -800,12 +703,7 @@
 #Method bool equals(SkScalar x, SkScalar y) const
 #In Operators
 #Line # returns true if Points are equal ##
-Returns true if Point is equivalent to Point constructed from (x, y).
-
-#Param x  value compared with fX ##
-#Param y  value compared with fY ##
-
-#Return true if Point equals (x, y) ##
+#Populate
 
 #Example
 SkPoint test[] = { {0, -0.f}, {-1, -2}, {SK_ScalarInfinity, 1}, {SK_ScalarNaN, -1} };
@@ -829,12 +727,7 @@
 #Method bool operator==(const SkPoint& a, const SkPoint& b)
 
 #Line # returns true if Point are equal ##
-Returns true if a is equivalent to b.
-
-#Param a  Point to compare ##
-#Param b  Point to compare ##
-
-#Return true if a.fX == b.fX and a.fY == b.fY ##
+#Populate
 
 #Example
 SkPoint test[] = { {0, -0.f}, {-1, -2}, {SK_ScalarInfinity, 1}, {SK_ScalarNaN, -1} };
@@ -858,12 +751,7 @@
 #Method bool operator!=(const SkPoint& a, const SkPoint& b)
 
 #Line # returns true if Point are unequal ##
-Returns true if a is not equivalent to b.
-
-#Param a  Point to compare ##
-#Param b  Point to compare ##
-
-#Return true if a.fX != b.fX or a.fY != b.fY ##
+#Populate
 
 #Example
 SkPoint test[] = { {0, -0.f}, {-1, -2}, {SK_ScalarInfinity, 1}, {SK_ScalarNaN, -1} };
@@ -962,17 +850,7 @@
 #Method static SkScalar Length(SkScalar x, SkScalar y)
 #In Property
 #Line # returns straight-line distance to origin ##
-Returns the Euclidean_Distance from origin, computed as:
-#Code
-#Literal
-sqrt(x * x + y * y)
-##
-.
-
-#Param x  component of length ##
-#Param y  component of length ##
-
-#Return straight-line distance to origin ##
+#Populate
 
 #Example
 #Height 192
@@ -1000,17 +878,7 @@
 #Method static SkScalar Normalize(SkVector* vec)
 #In Offset
 #Line # sets length to one, and returns prior length ##
-Scales (vec->fX, vec->fY) so that length() returns one, while preserving ratio of vec->fX to vec->fY,
-if possible. If original length is nearly zero, sets vec to (0, 0) and returns zero;
-otherwise, returns length of vec before vec is scaled.
-
-Returned prior length may be SK_ScalarInfinity if it can not be represented by SkScalar.
-
-Note that normalize() is faster if prior length is not required.
-
-#Param vec  normalized to unit length ##
-
-#Return original vec length ##
+#Populate
 
 #Example
     SkPaint paint;
@@ -1040,12 +908,7 @@
 #Method static SkScalar Distance(const SkPoint& a, const SkPoint& b)
 #In Property
 #Line # returns straight-line distance between points ##
-Returns the Euclidean_Distance between a and b.
-
-#Param a  line end point ##
-#Param b  line end point ##
-
-#Return straight-line distance from a to b ##
+#Populate
 
 #Example
 #Height 192
@@ -1075,12 +938,7 @@
 #Method static SkScalar DotProduct(const SkVector& a, const SkVector& b)
 #In Operators
 #Line # returns dot product ##
-Returns the dot product of Vector a and Vector b.
-
-#Param a  left side of dot product ##
-#Param b  right side of dot product ##
-
-#Return product of input magnitudes and cosine of the angle between them ##
+#Populate
 
 #Example
     SkPaint paint;
@@ -1107,16 +965,7 @@
 #Method static SkScalar CrossProduct(const SkVector& a, const SkVector& b)
 #In Operators
 #Line # returns cross product ##
-Returns the cross product of Vector a and Vector b.
-
-a and b form three-dimensional vectors with z-axis value equal to zero. The
-cross product is a three-dimensional vector with x-axis and y-axis values equal
-to zero. The cross product z-axis component is returned.
-
-#Param a  left side of cross product ##
-#Param b  right side of cross product ##
-
-#Return area spanned by Vectors signed by angle direction ##
+#Populate
 
 #Example
     SkPaint paint;
@@ -1147,15 +996,7 @@
 #Method SkScalar cross(const SkVector& vec) const
 #In Operators
 #Line # returns cross product ##
-Returns the cross product of Vector and vec.
-
-Vector and vec form three-dimensional vectors with z-axis value equal to zero.
-The cross product is a three-dimensional vector with x-axis and y-axis values
-equal to zero. The cross product z-axis component is returned.
-
-#Param vec  right side of cross product ##
-
-#Return area spanned by Vectors signed by angle direction ##
+#Populate
 
 #Example
     SkPaint paint;
@@ -1186,11 +1027,7 @@
 #Method SkScalar dot(const SkVector& vec) const
 #In Operators
 #Line # returns dot product ##
-Returns the dot product of Vector and Vector vec.
-
-#Param vec  right side of dot product ##
-
-#Return product of input magnitudes and cosine of the angle between them ##
+#Populate
 
 #Example
     SkPaint paint;
diff --git a/docs/SkRRect_Reference.bmh b/docs/SkRRect_Reference.bmh
index c5f3839..f46562a 100644
--- a/docs/SkRRect_Reference.bmh
+++ b/docs/SkRRect_Reference.bmh
@@ -93,21 +93,17 @@
 #Method SkRRect()
 #In Constructors
 #Line # creates with zeroed bounds and corner radii ##
-
-Initializes bounds at (0, 0), the origin, with zero width and height.
-Initializes corner radii to (0, 0), and sets type of kEmpty_Type.
-
-#Return empty Round_Rect ##
+#Populate
 
 #Example
 #Height 60
-    SkRRect rrect;

-    SkPaint p;

-    p.setStyle(SkPaint::kStroke_Style);

-    p.setStrokeWidth(10);

-    canvas->drawRRect(rrect, p);

-    rrect.setRect({10, 10, 100, 50});

-    canvas->drawRRect(rrect, p);

+    SkRRect rrect;
+    SkPaint p;
+    p.setStyle(SkPaint::kStroke_Style);
+    p.setStrokeWidth(10);
+    canvas->drawRRect(rrect, p);
+    rrect.setRect({10, 10, 100, 50});
+    canvas->drawRRect(rrect, p);
 ##
 
 #SeeAlso setEmpty isEmpty
@@ -119,24 +115,18 @@
 #Method SkRRect(const SkRRect& rrect)
 #In Constructors
 #Line # copies bounds and corner radii ##
+#Populate
 
-Initializes to copy of rrect bounds and corner radii.
-
-#Param rrect  bounds and corner to copy ##
-
-#Return copy of rrect ##
-
-#Bug 8115
 #Example
 #Height 60
-    SkRRect rrect = SkRRect::MakeRect({10, 10, 100, 50});

-    SkRRect rrect2(rrect);

-    rrect2.inset(20, 20);

-    SkPaint p;

-    p.setStyle(SkPaint::kStroke_Style);

-    p.setStrokeWidth(10);

-    canvas->drawRRect(rrect, p);

-    canvas->drawRRect(rrect2, p);

+    SkRRect rrect = SkRRect::MakeRect({10, 10, 100, 50});
+    SkRRect rrect2(rrect);
+    rrect2.inset(20, 20);
+    SkPaint p;
+    p.setStyle(SkPaint::kStroke_Style);
+    p.setStrokeWidth(10);
+    canvas->drawRRect(rrect, p);
+    canvas->drawRRect(rrect2, p);
 ##
 
 #SeeAlso operator=(const SkRRect& rrect) MakeRect
@@ -148,22 +138,17 @@
 #Method SkRRect& operator=(const SkRRect& rrect)
 #In Operators
 #Line # copies bounds and corner radii ##
-
-Copies rrect bounds and corner radii.
-
-#Param rrect  bounds and corner to copy ##
-
-#Return copy of rrect ##
+#Populate
 
 #Example
 #Height 110
-    SkRRect rrect = SkRRect::MakeRect({40, 40, 100, 70});

-    SkRRect rrect2 = rrect;

-    rrect2.inset(-20, -20);

-    SkPaint p;

-    p.setStyle(SkPaint::kStroke_Style);

-    p.setStrokeWidth(10);

-    canvas->drawRRect(rrect, p);

+    SkRRect rrect = SkRRect::MakeRect({40, 40, 100, 70});
+    SkRRect rrect2 = rrect;
+    rrect2.inset(-20, -20);
+    SkPaint p;
+    p.setStyle(SkPaint::kStroke_Style);
+    p.setStrokeWidth(10);
+    canvas->drawRRect(rrect, p);
     canvas->drawRRect(rrect2, p);
 ##
 
@@ -242,22 +227,22 @@
 
 #Example
 #Height 128
-    struct Radii { SkVector data[4]; };

-    auto drawRRectType = [=](const SkRect& rect, const Radii& radii) {

-        SkRRect rrect;

-        rrect.setRectRadii(rect, radii.data);

-        SkPaint paint;

-        paint.setAntiAlias(true);

-        const char* typeStr[] = { "empty", "rect", "oval", "simple", "nine patch", "complex" };

-        canvas->drawString(typeStr[(int) rrect.type()], rect.centerX(), rect.bottom() + 20, paint);

-        paint.setStyle(SkPaint::kStroke_Style);       

-        canvas->drawRRect(rrect, paint);

-    };

-    drawRRectType({ 45,  30,  45,  30}, {{{ 5,  5}, { 5,  5}, { 5,  5}, { 5,  5}}});

-    drawRRectType({ 90,  10, 140,  30}, {{{ 0,  0}, { 0,  0}, { 0,  0}, { 0,  0}}});

-    drawRRectType({160,  10, 210,  30}, {{{25, 10}, {25, 10}, {25, 10}, {25, 10}}});

-    drawRRectType({ 20,  80,  70, 100}, {{{ 5,  5}, { 5,  5}, { 5,  5}, { 5,  5}}});

-    drawRRectType({ 90,  80, 140, 100}, {{{ 5,  5}, {10,  5}, {10,  5}, { 5,  5}}});

+    struct Radii { SkVector data[4]; };
+    auto drawRRectType = [=](const SkRect& rect, const Radii& radii) {
+        SkRRect rrect;
+        rrect.setRectRadii(rect, radii.data);
+        SkPaint paint;
+        paint.setAntiAlias(true);
+        const char* typeStr[] = { "empty", "rect", "oval", "simple", "nine patch", "complex" };
+        canvas->drawString(typeStr[(int) rrect.type()], rect.centerX(), rect.bottom() + 20, paint);
+        paint.setStyle(SkPaint::kStroke_Style);       
+        canvas->drawRRect(rrect, paint);
+    };
+    drawRRectType({ 45,  30,  45,  30}, {{{ 5,  5}, { 5,  5}, { 5,  5}, { 5,  5}}});
+    drawRRectType({ 90,  10, 140,  30}, {{{ 0,  0}, { 0,  0}, { 0,  0}, { 0,  0}}});
+    drawRRectType({160,  10, 210,  30}, {{{25, 10}, {25, 10}, {25, 10}, {25, 10}}});
+    drawRRectType({ 20,  80,  70, 100}, {{{ 5,  5}, { 5,  5}, { 5,  5}, { 5,  5}}});
+    drawRRectType({ 90,  80, 140, 100}, {{{ 5,  5}, {10,  5}, {10,  5}, { 5,  5}}});
     drawRRectType({160,  80, 210, 100}, {{{ 5,  5}, {10,  5}, { 5,  5}, { 5,  5}}});
 ##
 
@@ -280,16 +265,16 @@
 #Description 
 rrect2 is not a Rect; inset() has made it empty.
 ##
-    SkRRect rrect = SkRRect::MakeRect({10, 10, 100, 50});

-    SkRRect rrect2(rrect);

-    rrect2.inset(20, 20);

-    SkPaint p;

-    p.setStyle(SkPaint::kStroke_Style);

-    p.setStrokeWidth(10);

-    std::string str("Type ");

-    str += SkRRect::kRect_Type == rrect2.getType() ? "=" : "!"; 

-    str += "= SkRRect::kRect_Type";

-    canvas->drawString(str.c_str(), 20, 80, SkPaint());

+    SkRRect rrect = SkRRect::MakeRect({10, 10, 100, 50});
+    SkRRect rrect2(rrect);
+    rrect2.inset(20, 20);
+    SkPaint p;
+    p.setStyle(SkPaint::kStroke_Style);
+    p.setStrokeWidth(10);
+    std::string str("Type ");
+    str += SkRRect::kRect_Type == rrect2.getType() ? "=" : "!"; 
+    str += "= SkRRect::kRect_Type";
+    canvas->drawString(str.c_str(), 20, 80, SkPaint());
     canvas->drawRRect(rrect2, p);
 ##
 
@@ -312,16 +297,16 @@
 #Description 
 inset() has made rrect2 empty.
 ##
-    SkRRect rrect = SkRRect::MakeRect({10, 10, 100, 50});

-    SkRRect rrect2(rrect);

-    rrect2.inset(20, 20);

-    SkPaint p;

-    p.setStyle(SkPaint::kStroke_Style);

-    p.setStrokeWidth(10);

-    std::string str("Type ");

-    str += SkRRect::kEmpty_Type == rrect2.type() ? "=" : "!"; 

-    str += "= SkRRect::kEmpty_Type";

-    canvas->drawString(str.c_str(), 20, 80, SkPaint());

+    SkRRect rrect = SkRRect::MakeRect({10, 10, 100, 50});
+    SkRRect rrect2(rrect);
+    rrect2.inset(20, 20);
+    SkPaint p;
+    p.setStyle(SkPaint::kStroke_Style);
+    p.setStrokeWidth(10);
+    std::string str("Type ");
+    str += SkRRect::kEmpty_Type == rrect2.type() ? "=" : "!"; 
+    str += "= SkRRect::kEmpty_Type";
+    canvas->drawString(str.c_str(), 20, 80, SkPaint());
     canvas->drawRRect(rrect2, p);
 ##
 
@@ -336,22 +321,19 @@
 #Method bool isEmpty() const
 #In Property
 #Line # returns true if width or height are zero ##
-Returns true if rect().fLeft is equal to rect().fRight, or if rect().fTop is equal
-to rect().fBottom.
-
-#Return true if width() or height() are zero ##
+#Populate
 
 #Example
 #Height 100
-    SkPaint paint;

-    paint.setAntiAlias(true);

-    paint.setTextSize(16);

-    SkRRect rrect = SkRRect::MakeRectXY({30, 10, 100, 60}, 10, 5);

-    canvas->drawRRect(rrect, paint);

-    canvas->drawString(rrect.isEmpty() ? "empty" : "not empty", 64, 90, paint);

-    rrect.inset(40, 0);

-    canvas->translate(128, 0);

-    canvas->drawRRect(rrect, paint);

+    SkPaint paint;
+    paint.setAntiAlias(true);
+    paint.setTextSize(16);
+    SkRRect rrect = SkRRect::MakeRectXY({30, 10, 100, 60}, 10, 5);
+    canvas->drawRRect(rrect, paint);
+    canvas->drawString(rrect.isEmpty() ? "empty" : "not empty", 64, 90, paint);
+    rrect.inset(40, 0);
+    canvas->translate(128, 0);
+    canvas->drawRRect(rrect, paint);
     canvas->drawString(rrect.isEmpty() ? "empty" : "not empty", 64, 90, paint);
 ##
 
@@ -364,23 +346,20 @@
 #Method bool isRect() const
 #In Property
 #Line # returns true if not empty, and one radius at each corner is zero ##
-Returns true if not empty, and if either x-axis or y-axis radius at each corner
-is zero.
-
-#Return true if not empty, and one radius at each corner is zero ##
+#Populate
 
 #Example
 #Height 100
-    SkPaint paint;

-    paint.setAntiAlias(true);

-    paint.setTextSize(16);

-    SkRRect rrect = SkRRect::MakeRect({30, 10, 100, 60});

-    canvas->drawRRect(rrect, paint);

-    canvas->drawString(rrect.isRect() ? "rect" : "not rect", 64, 90, paint);

-    SkVector radii[] = {{10, 10}, {0, 0}, {0, 0}, {0, 0}};

-    rrect.setRectRadii(rrect.getBounds(), radii);

-    canvas->translate(128, 0);

-    canvas->drawRRect(rrect, paint);

+    SkPaint paint;
+    paint.setAntiAlias(true);
+    paint.setTextSize(16);
+    SkRRect rrect = SkRRect::MakeRect({30, 10, 100, 60});
+    canvas->drawRRect(rrect, paint);
+    canvas->drawString(rrect.isRect() ? "rect" : "not rect", 64, 90, paint);
+    SkVector radii[] = {{10, 10}, {0, 0}, {0, 0}, {0, 0}};
+    rrect.setRectRadii(rrect.getBounds(), radii);
+    canvas->translate(128, 0);
+    canvas->drawRRect(rrect, paint);
     canvas->drawString(rrect.isRect() ? "rect" : "not rect", 64, 90, paint);
 ##
 
@@ -393,11 +372,7 @@
 #Method bool isOval() const
 #In Property
 #Line # returns true if not empty, axes radii are equal, radii fill bounds ##
-Returns true if not empty, if all x-axis radii are equal, if all y-axis radii
-are equal, x-axis radii are at least half the width, and y-axis radii are at
-least half the height.
-
-#Return true if has identical geometry to Oval ##
+#Populate
 
 #Example
 #Height 100
@@ -407,15 +382,15 @@
 left Round_Rect is not an oval. The second radii are equal to half the
 dimensions; right Round_Rect is an oval.
 ##
-    SkPaint paint;

-    paint.setAntiAlias(true);

-    paint.setTextSize(16);

-    SkRRect rrect = SkRRect::MakeRectXY({30, 10, 100, 60}, 40, 30);

-    canvas->drawRRect(rrect, paint);

-    canvas->drawString(rrect.isOval() ? "oval" : "not oval", 64, 90, paint);

-    rrect.setRectXY(rrect.getBounds(), 35, 25);

-    canvas->translate(128, 0);

-    canvas->drawRRect(rrect, paint);

+    SkPaint paint;
+    paint.setAntiAlias(true);
+    paint.setTextSize(16);
+    SkRRect rrect = SkRRect::MakeRectXY({30, 10, 100, 60}, 40, 30);
+    canvas->drawRRect(rrect, paint);
+    canvas->drawString(rrect.isOval() ? "oval" : "not oval", 64, 90, paint);
+    rrect.setRectXY(rrect.getBounds(), 35, 25);
+    canvas->translate(128, 0);
+    canvas->drawRRect(rrect, paint);
     canvas->drawString(rrect.isOval() ? "oval" : "not oval", 64, 90, paint);
 ##
 
@@ -428,27 +403,22 @@
 #Method bool isSimple() const
 #In Property
 #Line # returns true if not empty, Rect or Oval; and axes radii are equal ##
-Returns true if not empty, if all x-axis radii are equal but not zero,
-if all y-axis radii are equal but not zero; and x-axis radius is less than half
-width(), or y-axis radius is less than half height().
+#Populate
 
-#Return true if not empty, Rect or Oval; and axes radii are equal ##
-
-#Bug 8107
 #Example
 #Height 100
-    SkPaint paint;

-    paint.setAntiAlias(true);

-    paint.setTextSize(16);

-    SkVector radii[] = {{40, 30}, {40, 30}, {40, 30}, {40, 30}};

-    SkRRect rrect;

-    rrect.setRectRadii({30, 10, 100, 60}, radii);

-    canvas->drawRRect(rrect, paint);

-    canvas->drawString(rrect.isSimple() ? "simple" : "not simple", 64, 90, paint);

-    radii[0].fX = 35;

-    rrect.setRectRadii(rrect.getBounds(), radii);

-    canvas->translate(128, 0);

-    canvas->drawRRect(rrect, paint);

+    SkPaint paint;
+    paint.setAntiAlias(true);
+    paint.setTextSize(16);
+    SkVector radii[] = {{40, 30}, {40, 30}, {40, 30}, {40, 30}};
+    SkRRect rrect;
+    rrect.setRectRadii({30, 10, 100, 60}, radii);
+    canvas->drawRRect(rrect, paint);
+    canvas->drawString(rrect.isSimple() ? "simple" : "not simple", 64, 90, paint);
+    radii[0].fX = 35;
+    rrect.setRectRadii(rrect.getBounds(), radii);
+    canvas->translate(128, 0);
+    canvas->drawRRect(rrect, paint);
     canvas->drawString(rrect.isSimple() ? "simple" : "not simple", 64, 90, paint);
 ##
 
@@ -461,27 +431,22 @@
 #Method bool isNinePatch() const
 #In Property
 #Line # returns true if not empty, Rect, Oval or simple; and radii are axis-aligned ##
-Returns true if isEmpty, isRect, isOval, and isSimple return false; and if
-left x-axis radii are equal, right x-axis radii are equal, top y-axis radii are
-equal, and bottom y-axis radii are equal.
+#Populate
 
-#Return true if not empty, Rect, Oval or simple; and radii are axis-aligned ##
-
-#Bug 8107
 #Example
 #Height 100
-    SkPaint paint;

-    paint.setAntiAlias(true);

-    paint.setTextSize(16);

-    SkVector radii[] = {{20, 30}, {40, 30}, {40, 30}, {20, 30}};

-    SkRRect rrect;

-    rrect.setRectRadii({30, 10, 100, 60}, radii);

-    canvas->drawRRect(rrect, paint);

-    canvas->drawString(rrect.isNinePatch() ? "9 patch" : "not 9 patch", 64, 90, paint);

-    radii[0].fX = 35;

-    rrect.setRectRadii(rrect.getBounds(), radii);

-    canvas->translate(128, 0);

-    canvas->drawRRect(rrect, paint);

+    SkPaint paint;
+    paint.setAntiAlias(true);
+    paint.setTextSize(16);
+    SkVector radii[] = {{20, 30}, {40, 30}, {40, 30}, {20, 30}};
+    SkRRect rrect;
+    rrect.setRectRadii({30, 10, 100, 60}, radii);
+    canvas->drawRRect(rrect, paint);
+    canvas->drawString(rrect.isNinePatch() ? "9 patch" : "not 9 patch", 64, 90, paint);
+    radii[0].fX = 35;
+    rrect.setRectRadii(rrect.getBounds(), radii);
+    canvas->translate(128, 0);
+    canvas->drawRRect(rrect, paint);
     canvas->drawString(rrect.isNinePatch() ? "9 patch" : "not 9 patch", 64, 90, paint);
 ##
 
@@ -494,29 +459,22 @@
 #Method bool isComplex() const
 #In Property
 #Line # returns true if not empty, Rect, Oval, simple, or nine-patch ##
-
-Returns true if isEmpty, isRect, isOval, isSimple, and isNinePatch return false.
-If true: width and height are greater than zero, at least one corner radii are
-both greater than zero; left x-axis radii are not equal, or right x-axis radii
-are not equal, or top y-axis radii are not equal, or bottom y-axis radii are not
-equal.
-
-#Return true if not empty, Rect, Oval, simple, or nine-patch ##
+#Populate
 
 #Example
 #Height 100
-    SkPaint paint;

-    paint.setAntiAlias(true);

-    paint.setTextSize(16);

-    SkVector radii[] = {{25, 30}, {40, 30}, {40, 30}, {20, 30}};

-    SkRRect rrect;

-    rrect.setRectRadii({30, 10, 100, 60}, radii);

-    canvas->drawRRect(rrect, paint);

-    canvas->drawString(rrect.isComplex() ? "complex" : "not complex", 64, 90, paint);

-    radii[0].fX = 20;

-    rrect.setRectRadii(rrect.getBounds(), radii);

-    canvas->translate(128, 0);

-    canvas->drawRRect(rrect, paint);

+    SkPaint paint;
+    paint.setAntiAlias(true);
+    paint.setTextSize(16);
+    SkVector radii[] = {{25, 30}, {40, 30}, {40, 30}, {20, 30}};
+    SkRRect rrect;
+    rrect.setRectRadii({30, 10, 100, 60}, radii);
+    canvas->drawRRect(rrect, paint);
+    canvas->drawString(rrect.isComplex() ? "complex" : "not complex", 64, 90, paint);
+    radii[0].fX = 20;
+    rrect.setRectRadii(rrect.getBounds(), radii);
+    canvas->translate(128, 0);
+    canvas->drawRRect(rrect, paint);
     canvas->drawString(rrect.isComplex() ? "complex" : "not complex", 64, 90, paint);
 ##
 
@@ -529,21 +487,18 @@
 #Method SkScalar width() const
 #In Property
 #Line # returns span in x-axis ##
-Returns span on the x-axis. This does not check if result fits in 32-bit float;
-result may be infinity.
-
-#Return bounds().fRight minus bounds().fLeft ##
+#Populate
 
 #Example
 #Description
 SkRRect::MakeRect sorts its input, so width() is always zero or larger.
 ##
-    SkRRect unsorted = SkRRect::MakeRect({ 15, 25, 10, 5 });

-    SkDebugf("unsorted width: %g\n", unsorted.width());

-    SkRRect large = SkRRect::MakeRect({ -FLT_MAX, 1, FLT_MAX, 2 });

+    SkRRect unsorted = SkRRect::MakeRect({ 15, 25, 10, 5 });
+    SkDebugf("unsorted width: %g\n", unsorted.width());
+    SkRRect large = SkRRect::MakeRect({ -FLT_MAX, 1, FLT_MAX, 2 });
     SkDebugf("large width: %.0f\n", large.width());
 #StdOut
-unsorted width: 5

+unsorted width: 5
 large width: inf
 ##
 ##
@@ -557,10 +512,7 @@
 #Method SkScalar height() const
 #In Property
 #Line # returns span in y-axis ##
-Returns span on the y-axis. This does not check if result fits in 32-bit float;
-result may be infinity.
-
-#Return bounds().fBottom minus bounds().fTop ##
+#Populate
 
 #Example
 #Description
@@ -571,7 +523,7 @@
     SkRRect large = SkRRect::MakeRect({ 1, -FLT_MAX, 2, FLT_MAX });
     SkDebugf("large height: %.0f\n", large.height());
 #StdOut
-unsorted height: 5

+unsorted height: 5
 large height: inf
 ##
 ##
@@ -585,31 +537,25 @@
 #Method SkVector getSimpleRadii() const
 #In Property
 #Line # returns corner radii for simple types ##
-
-Returns top-left corner radii. If type() returns kEmpty_Type, kRect_Type, 
-kOval_Type, or kSimple_Type, returns a value representative of all corner radii.
-If type() returns kNinePatch_Type or kComplex_Type, at least one of the
-remaining three corners has a different value.
-
-#Return corner radii for simple types ##
+#Populate
 
 #Example
 #Height 100
-    auto drawDetails = [=](const SkRRect& rrect) {

-        SkPaint paint;

-        paint.setAntiAlias(true);

-        paint.setTextSize(12);

-        canvas->drawRRect(rrect, paint);

-        SkVector corner = rrect.getSimpleRadii();

-        std::string label = "corner: " + std::to_string(corner.fX).substr(0, 3) + ", " +

-                        std::to_string(corner.fY).substr(0, 3);

-        canvas->drawString(label.c_str(), 64, 90, paint);

-        canvas->translate(128, 0);

-    };

-    SkRRect rrect = SkRRect::MakeRect({30, 10, 100, 60});

-    drawDetails(rrect);

-    rrect.setRectXY(rrect.getBounds(), 5, 8);

-    drawDetails(rrect);

+    auto drawDetails = [=](const SkRRect& rrect) {
+        SkPaint paint;
+        paint.setAntiAlias(true);
+        paint.setTextSize(12);
+        canvas->drawRRect(rrect, paint);
+        SkVector corner = rrect.getSimpleRadii();
+        std::string label = "corner: " + std::to_string(corner.fX).substr(0, 3) + ", " +
+                        std::to_string(corner.fY).substr(0, 3);
+        canvas->drawString(label.c_str(), 64, 90, paint);
+        canvas->translate(128, 0);
+    };
+    SkRRect rrect = SkRRect::MakeRect({30, 10, 100, 60});
+    drawDetails(rrect);
+    rrect.setRectXY(rrect.getBounds(), 5, 8);
+    drawDetails(rrect);
 ##
 
 #SeeAlso radii getBounds getType isSimple
@@ -621,20 +567,18 @@
 #Method void setEmpty()
 #In Set
 #Line # zeroes width, height, and corner radii ##
-
-Sets bounds to zero width and height at (0, 0), the origin. Sets
-corner radii to zero and sets type to kEmpty_Type.
+#Populate
 
 #Example
 #Height 80
 #Description
 Nothing blue is drawn because Round_Rect is set to empty.
 ##
-    SkPaint paint;

-    SkRRect rrect = SkRRect::MakeRect({30, 10, 100, 60});

-    canvas->drawRRect(rrect, paint);

-    rrect.setEmpty();

-    paint.setColor(SK_ColorBLUE);

+    SkPaint paint;
+    SkRRect rrect = SkRRect::MakeRect({30, 10, 100, 60});
+    canvas->drawRRect(rrect, paint);
+    rrect.setEmpty();
+    paint.setColor(SK_ColorBLUE);
     canvas->drawRRect(rrect, paint);
 ##
 
@@ -647,20 +591,15 @@
 #Method void setRect(const SkRect& rect)
 #In Set
 #Line # sets Round_Rect bounds with zeroed corners ##
-
-Sets bounds to sorted rect, and sets corner radii to zero.
-If set bounds has width and height, and sets type to kRect_Type;
-otherwise, sets type to kEmpty_Type.
-
-#Param rect  bounds to set ##
+#Populate
 
 #Example
 #Height 90
-    SkPaint paint;

-    SkRRect rrect = SkRRect::MakeRect({30, 10, 100, 60});

-    canvas->drawRRect(rrect, paint);

-    rrect.setRect({60, 30, 120, 80});

-    paint.setColor(SK_ColorBLUE);

+    SkPaint paint;
+    SkRRect rrect = SkRRect::MakeRect({30, 10, 100, 60});
+    canvas->drawRRect(rrect, paint);
+    rrect.setRect({60, 30, 120, 80});
+    paint.setColor(SK_ColorBLUE);
     canvas->drawRRect(rrect, paint);
 ##
 
@@ -673,24 +612,20 @@
 #Method static SkRRect MakeEmpty()
 #In Constructors
 #Line # creates with zeroed bounds and corner radii ##
-
-Initializes bounds at (0, 0), the origin, with zero width and height.
-Initializes corner radii to (0, 0), and sets type of kEmpty_Type.
-
-#Return empty Round_Rect ##
+#Populate
 
 #Example
 #Height 90
-    SkRRect rrect = SkRRect::MakeEmpty();

-    SkRRect rrect2(rrect);

-    rrect2.inset(-20, -20);

-    SkPaint p;

-    p.setStyle(SkPaint::kStroke_Style);

-    p.setStrokeWidth(10);

-    std::string str("Type ");

-    str += SkRRect::kEmpty_Type == rrect2.type() ? "=" : "!"; 

-    str += "= SkRRect::kEmpty_Type";

-    canvas->drawString(str.c_str(), 20, 80, SkPaint());

+    SkRRect rrect = SkRRect::MakeEmpty();
+    SkRRect rrect2(rrect);
+    rrect2.inset(-20, -20);
+    SkPaint p;
+    p.setStyle(SkPaint::kStroke_Style);
+    p.setStrokeWidth(10);
+    std::string str("Type ");
+    str += SkRRect::kEmpty_Type == rrect2.type() ? "=" : "!"; 
+    str += "= SkRRect::kEmpty_Type";
+    canvas->drawString(str.c_str(), 20, 80, SkPaint());
     canvas->drawRRect(rrect2, p);
 ##
 
@@ -703,20 +638,15 @@
 #Method static SkRRect MakeRect(const SkRect& r)
 #In Constructors
 #Line # copies bounds and zeroes corner radii ##
-
-Initializes to copy of r bounds and zeroes corner radii.
-
-#Param r  bounds to copy ##
-
-#Return copy of r ##
+#Populate
 
 #Example
 #Height 70
-    SkPaint paint;

-    SkRRect rrect = SkRRect::MakeRect({30, 10, 100, 60});

-    canvas->drawRRect(rrect, paint);

-    rrect.setOval(rrect.getBounds());

-    paint.setColor(SK_ColorBLUE);

+    SkPaint paint;
+    SkRRect rrect = SkRRect::MakeRect({30, 10, 100, 60});
+    canvas->drawRRect(rrect, paint);
+    rrect.setOval(rrect.getBounds());
+    paint.setColor(SK_ColorBLUE);
     canvas->drawRRect(rrect, paint);
 ##
 
@@ -729,23 +659,16 @@
 #Method static SkRRect MakeOval(const SkRect& oval)
 #In Constructors
 #Line # creates Oval to fit bounds ##
-
-Sets bounds to oval, x-axis radii to half oval.width(), and all y-axis radii
-to half oval.height(). If oval bounds is empty, sets to kEmpty_Type.
-Otherwise, sets to kOval_Type.
-
-#Param oval  bounds of Oval ##
-
-#Return Oval ##
+#Populate
 
 #Example
 #Height 70
-    SkPaint paint;

-    SkRRect rrect = SkRRect::MakeOval({30, 10, 100, 60});

-    canvas->drawRRect(rrect, paint);

-    rrect.setRect(rrect.getBounds());

-    paint.setColor(SK_ColorBLUE);

-    paint.setBlendMode(SkBlendMode::kDifference);

+    SkPaint paint;
+    SkRRect rrect = SkRRect::MakeOval({30, 10, 100, 60});
+    canvas->drawRRect(rrect, paint);
+    rrect.setRect(rrect.getBounds());
+    paint.setColor(SK_ColorBLUE);
+    paint.setBlendMode(SkBlendMode::kDifference);
     canvas->drawRRect(rrect, paint);
 ##
 
@@ -758,28 +681,16 @@
 #Method static SkRRect MakeRectXY(const SkRect& rect, SkScalar xRad, SkScalar yRad)
 #In Constructors
 #Line # creates rounded rectangle ##
-
-Sets to rounded rectangle with the same radii for all four corners.
-If rect is empty, sets to kEmpty_Type.
-Otherwise, if xRad and yRad are zero, sets to kRect_Type.
-Otherwise, if xRad is at least half rect.width() and yRad is at least half
-rect.height(), sets to kOval_Type.
-Otherwise, sets to kSimple_Type.
-
-#Param rect  bounds of rounded rectangle ##
-#Param xRad  x-axis radius of corners ##
-#Param yRad  y-axis radius of corners ##
-
-#Return rounded rectangle ##
+#Populate
 
 #Example
 #Height 70
-    SkPaint paint;

-    SkRRect rrect = SkRRect::MakeRectXY({30, 10, 100, 60}, 20, 20);

-    canvas->drawRRect(rrect, paint);

-    rrect.setRect(rrect.getBounds());

-    paint.setColor(SK_ColorBLUE);

-    paint.setBlendMode(SkBlendMode::kModulate);

+    SkPaint paint;
+    SkRRect rrect = SkRRect::MakeRectXY({30, 10, 100, 60}, 20, 20);
+    canvas->drawRRect(rrect, paint);
+    rrect.setRect(rrect.getBounds());
+    paint.setColor(SK_ColorBLUE);
+    paint.setBlendMode(SkBlendMode::kModulate);
     canvas->drawRRect(rrect, paint);
 ##
 
@@ -792,21 +703,16 @@
 #Method void setOval(const SkRect& oval)
 #In Set
 #Line # replaces with Oval to fit bounds ##
-
-Sets bounds to oval, x-axis radii to half oval.width(), and all y-axis radii
-to half oval.height(). If oval bounds is empty, sets to kEmpty_Type.
-Otherwise, sets to kOval_Type.
-
-#Param oval  bounds of Oval ##
+#Populate
 
 #Example
 #Height 70
-    SkPaint paint;

-    SkRRect rrect = SkRRect::MakeRectXY({30, 10, 100, 60}, 20, 20);

-    canvas->drawRRect(rrect, paint);

-    rrect.setOval(rrect.getBounds());

-    paint.setColor(SK_ColorWHITE);

-    paint.setBlendMode(SkBlendMode::kExclusion);

+    SkPaint paint;
+    SkRRect rrect = SkRRect::MakeRectXY({30, 10, 100, 60}, 20, 20);
+    canvas->drawRRect(rrect, paint);
+    rrect.setOval(rrect.getBounds());
+    paint.setColor(SK_ColorWHITE);
+    paint.setBlendMode(SkBlendMode::kExclusion);
     canvas->drawRRect(rrect, paint);
 ##
 
@@ -819,26 +725,16 @@
 #Method void setRectXY(const SkRect& rect, SkScalar xRad, SkScalar yRad)
 #In Set
 #Line # replaces with rounded rectangle ##
-
-Sets to rounded rectangle with the same radii for all four corners.
-If rect is empty, sets to kEmpty_Type.
-Otherwise, if xRad or yRad is zero, sets to kRect_Type.
-Otherwise, if xRad is at least half rect.width() and yRad is at least half
-rect.height(), sets to kOval_Type.
-Otherwise, sets to kSimple_Type.
-
-#Param rect  bounds of rounded rectangle ##
-#Param xRad  x-axis radius of corners ##
-#Param yRad  y-axis radius of corners ##
+#Populate
 
 #Example
 #Height 70
-    SkPaint paint;

-    SkRRect rrect = SkRRect::MakeRectXY({30, 10, 100, 60}, 20, 20);

-    canvas->drawRRect(rrect, paint);

-    rrect.setRectXY(rrect.getBounds(), 5, 5);

-    paint.setColor(SK_ColorWHITE);

-    paint.setBlendMode(SkBlendMode::kExclusion);

+    SkPaint paint;
+    SkRRect rrect = SkRRect::MakeRectXY({30, 10, 100, 60}, 20, 20);
+    canvas->drawRRect(rrect, paint);
+    rrect.setRectXY(rrect.getBounds(), 5, 5);
+    paint.setColor(SK_ColorWHITE);
+    paint.setBlendMode(SkBlendMode::kExclusion);
     canvas->drawRRect(rrect, paint);
 ##
 
@@ -852,43 +748,24 @@
                       SkScalar rightRad, SkScalar bottomRad)
 #In Set
 #Line # replaces with rounded rectangle ##
-
-Sets bounds to rect. Sets radii to (leftRad, topRad), (rightRad, topRad),
-(rightRad, bottomRad), (leftRad, bottomRad).
-
-If rect is empty, sets to kEmpty_Type.
-Otherwise, if leftRad and rightRad are zero, sets to kRect_Type.
-Otherwise, if topRad and bottomRad are zero, sets to kRect_Type.
-Otherwise, if leftRad and rightRad are equal and at least half rect.width(), and
-topRad and bottomRad are equal at least half rect.height(), sets to kOval_Type.
-Otherwise, if leftRad and rightRad are equal, and topRad and bottomRad are equal,
-sets to kSimple_Type. Otherwise, sets to kNinePatch_Type.
-
-Nine patch refers to the nine parts defined by the radii: one center rectangle,
-four edge patches, and four corner patches.
-
-#Param rect  bounds of rounded rectangle ##
-#Param leftRad  left-top and left-bottom x-axis radius ##
-#Param topRad  left-top and right-top y-axis radius ##
-#Param rightRad  right-top and right-bottom x-axis radius ##
-#Param bottomRad  left-bottom and right-bottom y-axis radius ##
+#Populate
 
 #Example
 #Height 70
-    SkPaint paint;

-    paint.setAntiAlias(true);

-    SkRRect rrect;

-    rrect.setNinePatch({30, 10, 100, 60}, 10, 20, 20, 10);

-    canvas->drawRRect(rrect, paint);

-    paint.setColor(SK_ColorWHITE);

-    const SkRect r = rrect.getBounds();

-    canvas->drawLine(r.fLeft, r.fTop + rrect.radii(SkRRect::kUpperLeft_Corner).fY,

-                     r.fRight, r.fTop + rrect.radii(SkRRect::kUpperRight_Corner).fY, paint);

-    canvas->drawLine(r.fLeft, r.fBottom - rrect.radii(SkRRect::kLowerLeft_Corner).fY,

-                     r.fRight, r.fBottom - rrect.radii(SkRRect::kLowerRight_Corner).fY, paint);

-    canvas->drawLine(r.fLeft + rrect.radii(SkRRect::kUpperLeft_Corner).fX, r.fTop,

-                     r.fLeft + rrect.radii(SkRRect::kLowerLeft_Corner).fX, r.fBottom, paint);

-    canvas->drawLine(r.fRight - rrect.radii(SkRRect::kUpperRight_Corner).fX, r.fTop,

+    SkPaint paint;
+    paint.setAntiAlias(true);
+    SkRRect rrect;
+    rrect.setNinePatch({30, 10, 100, 60}, 10, 20, 20, 10);
+    canvas->drawRRect(rrect, paint);
+    paint.setColor(SK_ColorWHITE);
+    const SkRect r = rrect.getBounds();
+    canvas->drawLine(r.fLeft, r.fTop + rrect.radii(SkRRect::kUpperLeft_Corner).fY,
+                     r.fRight, r.fTop + rrect.radii(SkRRect::kUpperRight_Corner).fY, paint);
+    canvas->drawLine(r.fLeft, r.fBottom - rrect.radii(SkRRect::kLowerLeft_Corner).fY,
+                     r.fRight, r.fBottom - rrect.radii(SkRRect::kLowerRight_Corner).fY, paint);
+    canvas->drawLine(r.fLeft + rrect.radii(SkRRect::kUpperLeft_Corner).fX, r.fTop,
+                     r.fLeft + rrect.radii(SkRRect::kLowerLeft_Corner).fX, r.fBottom, paint);
+    canvas->drawLine(r.fRight - rrect.radii(SkRRect::kUpperRight_Corner).fX, r.fTop,
                      r.fRight - rrect.radii(SkRRect::kLowerRight_Corner).fX, r.fBottom, paint);
 ##
 
@@ -901,37 +778,26 @@
 #Method void setRectRadii(const SkRect& rect, const SkVector radii[4])
 #In Set
 #Line # replaces with rounded rectangle ##
-
-Sets bounds to rect. Sets radii array for individual control of all for corners.
-
-If rect is empty, sets to kEmpty_Type.
-Otherwise, if one of each corner radii are zero, sets to kRect_Type.
-Otherwise, if all x-axis radii are equal and at least half rect.width(), and
-all y-axis radii are equal at least half rect.height(), sets to kOval_Type.
-Otherwise, if all x-axis radii are equal, and all y-axis radii are equal,
-sets to kSimple_Type. Otherwise, sets to kNinePatch_Type.
-
-#Param rect  bounds of rounded rectangle ##
-#Param radii  corner x-axis and y-axis radii ##
+#Populate
 
 #Example
 #Height 128
-    SkPaint paint;

-    paint.setStrokeWidth(15);

-    paint.setStrokeCap(SkPaint::kSquare_Cap);

-    paint.setAntiAlias(true);

-    float intervals[] = { 5, 21.75f };

-    paint.setStyle(SkPaint::kStroke_Style);

-    paint.setPathEffect(SkDashPathEffect::Make(intervals, SK_ARRAY_COUNT(intervals), 0));

-    SkPath path;

-    SkRRect rrect;

-    SkVector corners[] = {{15, 17}, {17, 19}, {19, 15}, {15, 15}};

-    rrect.setRectRadii({20, 20, 100, 100}, corners);

-    path.addRRect(rrect, SkPath::kCW_Direction);

-    canvas->drawPath(path, paint);

-    path.rewind();

-    path.addRRect(rrect, SkPath::kCCW_Direction, 1);

-    canvas->translate(120, 0);

+    SkPaint paint;
+    paint.setStrokeWidth(15);
+    paint.setStrokeCap(SkPaint::kSquare_Cap);
+    paint.setAntiAlias(true);
+    float intervals[] = { 5, 21.75f };
+    paint.setStyle(SkPaint::kStroke_Style);
+    paint.setPathEffect(SkDashPathEffect::Make(intervals, SK_ARRAY_COUNT(intervals), 0));
+    SkPath path;
+    SkRRect rrect;
+    SkVector corners[] = {{15, 17}, {17, 19}, {19, 15}, {15, 15}};
+    rrect.setRectRadii({20, 20, 100, 100}, corners);
+    path.addRRect(rrect, SkPath::kCW_Direction);
+    canvas->drawPath(path, paint);
+    path.rewind();
+    path.addRRect(rrect, SkPath::kCCW_Direction, 1);
+    canvas->translate(120, 0);
     canvas->drawPath(path, paint);
 ##
 
@@ -970,21 +836,21 @@
 
 #Example
 #Height 70
-    SkPaint paint;

-    paint.setAntiAlias(true);

-    SkRRect rrect;

-    SkVector corners[] = {{25, 17}, {17, 19}, {19, 15}, {15, 15}};

-    rrect.setRectRadii({30, 10, 100, 60}, corners);

-    canvas->drawRRect(rrect, paint);

-    paint.setColor(SK_ColorWHITE);

-    const SkRect r = rrect.getBounds();

-    canvas->drawLine(r.fLeft, r.fTop + rrect.radii(SkRRect::kUpperLeft_Corner).fY,

-                     r.fRight, r.fTop + rrect.radii(SkRRect::kUpperRight_Corner).fY, paint);

-    canvas->drawLine(r.fLeft, r.fBottom - rrect.radii(SkRRect::kLowerLeft_Corner).fY,

-                     r.fRight, r.fBottom - rrect.radii(SkRRect::kLowerRight_Corner).fY, paint);

-    canvas->drawLine(r.fLeft + rrect.radii(SkRRect::kUpperLeft_Corner).fX, r.fTop,

-                     r.fLeft + rrect.radii(SkRRect::kLowerLeft_Corner).fX, r.fBottom, paint);

-    canvas->drawLine(r.fRight - rrect.radii(SkRRect::kUpperRight_Corner).fX, r.fTop,

+    SkPaint paint;
+    paint.setAntiAlias(true);
+    SkRRect rrect;
+    SkVector corners[] = {{25, 17}, {17, 19}, {19, 15}, {15, 15}};
+    rrect.setRectRadii({30, 10, 100, 60}, corners);
+    canvas->drawRRect(rrect, paint);
+    paint.setColor(SK_ColorWHITE);
+    const SkRect r = rrect.getBounds();
+    canvas->drawLine(r.fLeft, r.fTop + rrect.radii(SkRRect::kUpperLeft_Corner).fY,
+                     r.fRight, r.fTop + rrect.radii(SkRRect::kUpperRight_Corner).fY, paint);
+    canvas->drawLine(r.fLeft, r.fBottom - rrect.radii(SkRRect::kLowerLeft_Corner).fY,
+                     r.fRight, r.fBottom - rrect.radii(SkRRect::kLowerRight_Corner).fY, paint);
+    canvas->drawLine(r.fLeft + rrect.radii(SkRRect::kUpperLeft_Corner).fX, r.fTop,
+                     r.fLeft + rrect.radii(SkRRect::kLowerLeft_Corner).fX, r.fBottom, paint);
+    canvas->drawLine(r.fRight - rrect.radii(SkRRect::kUpperRight_Corner).fX, r.fTop,
                      r.fRight - rrect.radii(SkRRect::kLowerRight_Corner).fX, r.fBottom, paint);
 ##
 
@@ -997,22 +863,18 @@
 #Method const SkRect& rect() const
 #In Property
 #Line # returns bounds ##
-Returns bounds. Bounds may have zero width or zero height. Bounds right is
-greater than or equal to left; bounds bottom is greater than or equal to top.
-Result is identical to getBounds.
-
-#Return bounding box ##
+#Populate
 
 #Example
-    for (SkScalar left : { SK_ScalarNaN, SK_ScalarInfinity, 100.f, 50.f, 25.f} ) {

-        SkRRect rrect1 = SkRRect::MakeRectXY({left, 20, 60, 220}, 50, 200);

-        SkDebugf("left bounds: (%g) %g\n", left, rrect1.rect().fLeft);

+    for (SkScalar left : { SK_ScalarNaN, SK_ScalarInfinity, 100.f, 50.f, 25.f} ) {
+        SkRRect rrect1 = SkRRect::MakeRectXY({left, 20, 60, 220}, 50, 200);
+        SkDebugf("left bounds: (%g) %g\n", left, rrect1.rect().fLeft);
     }
 #StdOut
-left bounds: (nan) 0

-left bounds: (inf) 0

-left bounds: (100) 60

-left bounds: (50) 50

+left bounds: (nan) 0
+left bounds: (inf) 0
+left bounds: (100) 60
+left bounds: (50) 50
 left bounds: (25) 25
 ##
 ##
@@ -1026,15 +888,7 @@
 #Method SkVector radii(Corner corner) const
 #In Property
 #Line # returns x-axis and y-axis radii for one corner ##
-Returns Scalar pair for radius of curve on x-axis and y-axis for one corner.
-Both radii may be zero. If not zero, both are positive and finite.
-
-
-#Param corner  one of: kUpperLeft_Corner, kUpperRight_Corner,
-                       kLowerRight_Corner, kLowerLeft_Corner 
-##
-
-#Return x-axis and y-axis radii for one corner ##
+#Populate
 
 #Example
 #Description
@@ -1043,15 +897,15 @@
 Small scaled values are halved to scale in proportion to the y-axis corner
 radius, which is twice the bounds height.
 ##
-    for (SkScalar radiusX : { SK_ScalarNaN, SK_ScalarInfinity, 100.f, 50.f, 25.f} ) {

-        SkRRect rrect1 = SkRRect::MakeRectXY({10, 20, 60, 220}, radiusX, 200);

-        SkDebugf("left corner: (%g) %g\n", radiusX, rrect1.radii(SkRRect::kUpperLeft_Corner).fX);

-    }

+    for (SkScalar radiusX : { SK_ScalarNaN, SK_ScalarInfinity, 100.f, 50.f, 25.f} ) {
+        SkRRect rrect1 = SkRRect::MakeRectXY({10, 20, 60, 220}, radiusX, 200);
+        SkDebugf("left corner: (%g) %g\n", radiusX, rrect1.radii(SkRRect::kUpperLeft_Corner).fX);
+    }
 #StdOut
-left corner: (nan) 0

-left corner: (inf) 0

-left corner: (100) 25

-left corner: (50) 25

+left corner: (nan) 0
+left corner: (inf) 0
+left corner: (100) 25
+left corner: (50) 25
 left corner: (25) 12.5
 ##
 ##
@@ -1065,19 +919,15 @@
 #Method const SkRect& getBounds() const
 #In Property
 #Line # returns bounds ##
-Returns bounds. Bounds may have zero width or zero height. Bounds right is
-greater than or equal to left; bounds bottom is greater than or equal to top.
-Result is identical to rect().
-
-#Return bounding box ##
+#Populate
 
 #Example
 #Height 120
-    SkPaint paint;

-    SkRRect rrect = SkRRect::MakeRectXY({20, 20, 220, 100}, 15, 15);

-    canvas->drawRRect(rrect, paint);

-    paint.setColor(SK_ColorWHITE);

-    rrect = SkRRect::MakeOval(rrect.getBounds());

+    SkPaint paint;
+    SkRRect rrect = SkRRect::MakeRectXY({20, 20, 220, 100}, 15, 15);
+    canvas->drawRRect(rrect, paint);
+    paint.setColor(SK_ColorWHITE);
+    rrect = SkRRect::MakeOval(rrect.getBounds());
     canvas->drawRRect(rrect, paint);
 ##
 
@@ -1090,28 +940,20 @@
 #Method bool operator==(const SkRRect& a, const SkRRect& b)
 #In Operators
 #Line # returns true if members are equal ##
-Returns true if bounds and radii in a are equal to bounds and radii in b.
-
-a and b are not equal if either contain NaN. a and b are equal if members
-contain zeroes width different signs.
-
-#Param a  Rect bounds and radii to compare ##
-#Param b  Rect bounds and radii to compare ##
-
-#Return true if members are equal ##
+#Populate
 
 #Example
-    SkRRect rrect1 = SkRRect::MakeRectXY({10, 20, 60, 220}, 50, 200);

-    SkRRect rrect2 = SkRRect::MakeRectXY(rrect1.rect(), 25, 100);

-    SkRRect rrect3 = SkRRect::MakeOval(rrect1.rect());

-    canvas->drawRRect(rrect1, SkPaint());

-    std::string str = "rrect1 " + std::string(rrect1 == rrect2 ? "=" : "!") + "= rrect2";

-    canvas->drawString(str.c_str(), 10, 240, SkPaint());

-    canvas->translate(70, 0);

-    canvas->drawRRect(rrect2, SkPaint());

-    canvas->translate(70, 0);

-    canvas->drawRRect(rrect3, SkPaint());

-    str = "rrect2 " + std::string(rrect2 == rrect3 ? "=" : "!") + "= rrect3";

+    SkRRect rrect1 = SkRRect::MakeRectXY({10, 20, 60, 220}, 50, 200);
+    SkRRect rrect2 = SkRRect::MakeRectXY(rrect1.rect(), 25, 100);
+    SkRRect rrect3 = SkRRect::MakeOval(rrect1.rect());
+    canvas->drawRRect(rrect1, SkPaint());
+    std::string str = "rrect1 " + std::string(rrect1 == rrect2 ? "=" : "!") + "= rrect2";
+    canvas->drawString(str.c_str(), 10, 240, SkPaint());
+    canvas->translate(70, 0);
+    canvas->drawRRect(rrect2, SkPaint());
+    canvas->translate(70, 0);
+    canvas->drawRRect(rrect3, SkPaint());
+    str = "rrect2 " + std::string(rrect2 == rrect3 ? "=" : "!") + "= rrect3";
     canvas->drawString(str.c_str(), -20, 240, SkPaint());
 ##
 
@@ -1124,28 +966,20 @@
 #Method bool operator!=(const SkRRect& a, const SkRRect& b)
 #In Operators
 #Line # returns true if members are unequal ##
-Returns true if bounds and radii in a are not equal to bounds and radii in b.
-
-a and b are not equal if either contain NaN. a and b are equal if members
-contain zeroes width different signs.
-
-#Param a  Rect bounds and radii to compare ##
-#Param b  Rect bounds and radii to compare ##
-
-#Return true if members are not equal ##
+#Populate
 
 #Example
-    SkRRect rrect1 = SkRRect::MakeRectXY({10, 20, 60, 220}, 50, 100);

-    SkRRect rrect2 = SkRRect::MakeRectXY(rrect1.rect(), 50, 50);

-    SkRRect rrect3 = SkRRect::MakeOval(rrect1.rect());

-    canvas->drawRRect(rrect1, SkPaint());

-    std::string str = "rrect1 " + std::string(rrect1 == rrect2 ? "=" : "!") + "= rrect2";

-    canvas->drawString(str.c_str(), 10, 240, SkPaint());

-    canvas->translate(70, 0);

-    canvas->drawRRect(rrect2, SkPaint());

-    canvas->translate(70, 0);

-    canvas->drawRRect(rrect3, SkPaint());

-    str = "rrect2 " + std::string(rrect2 == rrect3 ? "=" : "!") + "= rrect3";

+    SkRRect rrect1 = SkRRect::MakeRectXY({10, 20, 60, 220}, 50, 100);
+    SkRRect rrect2 = SkRRect::MakeRectXY(rrect1.rect(), 50, 50);
+    SkRRect rrect3 = SkRRect::MakeOval(rrect1.rect());
+    canvas->drawRRect(rrect1, SkPaint());
+    std::string str = "rrect1 " + std::string(rrect1 == rrect2 ? "=" : "!") + "= rrect2";
+    canvas->drawString(str.c_str(), 10, 240, SkPaint());
+    canvas->translate(70, 0);
+    canvas->drawRRect(rrect2, SkPaint());
+    canvas->translate(70, 0);
+    canvas->drawRRect(rrect3, SkPaint());
+    str = "rrect2 " + std::string(rrect2 == rrect3 ? "=" : "!") + "= rrect3";
     canvas->drawString(str.c_str(), -20, 240, SkPaint());
 ##
 
@@ -1158,32 +992,17 @@
 #Method void inset(SkScalar dx, SkScalar dy, SkRRect* dst) const
 #In Inset_Outset_Offset
 #Line # insets bounds and radii ##
-
-Copies Round_Rect to dst, then insets dst bounds by dx and dy, and adjusts dst
-radii by dx and dy. dx and dy may be positive, negative, or zero. dst may be
-Round_Rect.
-
-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 dx exceeds half dst bounds width, dst bounds left and right are set to 
-bounds x-axis center. If dy exceeds half dst bounds height, dst bounds top and
-bottom are set to bounds y-axis center.
-
-If dx or dy cause the bounds to become infinite, dst bounds is zeroed.
-
-#Param dx  added to rect().fLeft, and subtracted from rect().fRight ##
-#Param dy  added to rect().fTop, and subtracted from rect().fBottom ##
-#Param dst  insets bounds and radii ##
+#Populate
 
 #Example
-    SkPaint paint;

-    paint.setAntiAlias(true);

-    paint.setStyle(SkPaint::kStroke_Style);

-    SkRRect rrect = SkRRect::MakeRectXY({100, 20, 140, 220}, 50, 100);

-    for (int index = 0; index < 25; ++index) {

-       canvas->drawRRect(rrect, paint);

-       rrect.inset(-3, 3, &rrect);

-    }

+    SkPaint paint;
+    paint.setAntiAlias(true);
+    paint.setStyle(SkPaint::kStroke_Style);
+    SkRRect rrect = SkRRect::MakeRectXY({100, 20, 140, 220}, 50, 100);
+    for (int index = 0; index < 25; ++index) {
+       canvas->drawRRect(rrect, paint);
+       rrect.inset(-3, 3, &rrect);
+    }
 ##
 
 #SeeAlso outset offset makeOffset
@@ -1195,28 +1014,16 @@
 #Method void inset(SkScalar dx, SkScalar dy)
 #In Inset_Outset_Offset
 #Line # insets bounds and radii ##
-Insets bounds by dx and dy, and adjusts radii by dx and dy. dx and dy 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 dx exceeds half bounds width, bounds left and right are set to 
-bounds x-axis center. If dy exceeds half bounds height, bounds top and
-bottom are set to bounds y-axis center.
-
-If dx or dy cause the bounds to become infinite, bounds is zeroed.
-
-#Param dx  added to rect().fLeft, and subtracted from rect().fRight ##
-#Param dy  added to rect().fTop, and subtracted from rect().fBottom ##
+#Populate
 
 #Example
-    SkPaint paint;

-    paint.setAntiAlias(true);

-    paint.setStyle(SkPaint::kStroke_Style);

-    SkRRect rrect = SkRRect::MakeRectXY({10, 20, 180, 220}, 50, 100);

-    for (int index = 0; index < 25; ++index) {

-       canvas->drawRRect(rrect, paint);

-       rrect.inset(3, 3);

+    SkPaint paint;
+    paint.setAntiAlias(true);
+    paint.setStyle(SkPaint::kStroke_Style);
+    SkRRect rrect = SkRRect::MakeRectXY({10, 20, 180, 220}, 50, 100);
+    for (int index = 0; index < 25; ++index) {
+       canvas->drawRRect(rrect, paint);
+       rrect.inset(3, 3);
     }
 ##
 
@@ -1230,31 +1037,17 @@
 #Method void outset(SkScalar dx, SkScalar dy, SkRRect* dst) const
 #In Inset_Outset_Offset
 #Line # outsets bounds and radii ##
-
-Outsets dst bounds by dx and dy, and adjusts radii by dx and dy. dx and dy 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 dx exceeds half dst bounds width, dst bounds left and right are set to 
-bounds x-axis center. If dy exceeds half dst bounds height, dst bounds top and
-bottom are set to bounds y-axis center.
-
-If dx or dy cause the bounds to become infinite, dst bounds is zeroed.
-
-#Param dx  subtracted from rect().fLeft, and added to rect().fRight ##
-#Param dy  subtracted from rect().fTop, and added to rect().fBottom ##
-#Param dst  outset bounds and radii ##
+#Populate
 
 #Example
-    SkPaint paint;

-    paint.setAntiAlias(true);

-    paint.setStyle(SkPaint::kStroke_Style);

-    SkRRect rrect = SkRRect::MakeRectXY({100, 20, 140, 220}, 50, 100);

-    for (int index = 0; index < 25; ++index) {

-       canvas->drawRRect(rrect, paint);

-       rrect.outset(-3, 3, &rrect);

-    }

+    SkPaint paint;
+    paint.setAntiAlias(true);
+    paint.setStyle(SkPaint::kStroke_Style);
+    SkRRect rrect = SkRRect::MakeRectXY({100, 20, 140, 220}, 50, 100);
+    for (int index = 0; index < 25; ++index) {
+       canvas->drawRRect(rrect, paint);
+       rrect.outset(-3, 3, &rrect);
+    }
 ##
 
 #SeeAlso inset offset makeOffset
@@ -1267,30 +1060,17 @@
 #Method void outset(SkScalar dx, SkScalar dy)
 #In Inset_Outset_Offset
 #Line # outsets bounds and radii ##
-
-Outsets bounds by dx and dy, and adjusts radii by dx and dy. dx and dy 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 dx exceeds half bounds width, bounds left and right are set to 
-bounds x-axis center. If dy exceeds half bounds height, bounds top and
-bottom are set to bounds y-axis center.
-
-If dx or dy cause the bounds to become infinite, bounds is zeroed.
-
-#Param dx  subtracted from rect().fLeft, and added to rect().fRight ##
-#Param dy  subtracted from rect().fTop, and added to rect().fBottom ##
+#Populate
 
 #Example
-    SkPaint paint;

-    paint.setAntiAlias(true);

-    paint.setStyle(SkPaint::kStroke_Style);

-    SkRRect rrect = SkRRect::MakeRectXY({100, 20, 140, 220}, 50, 100);

-    for (int index = 0; index < 25; ++index) {

-       canvas->drawRRect(rrect, paint);

-       rrect.outset(3, 3);

-    }

+    SkPaint paint;
+    paint.setAntiAlias(true);
+    paint.setStyle(SkPaint::kStroke_Style);
+    SkRRect rrect = SkRRect::MakeRectXY({100, 20, 140, 220}, 50, 100);
+    for (int index = 0; index < 25; ++index) {
+       canvas->drawRRect(rrect, paint);
+       rrect.outset(3, 3);
+    }
 ##
 
 #SeeAlso inset offset makeOffset
@@ -1302,21 +1082,17 @@
 #Method void offset(SkScalar dx, SkScalar dy)
 #In Inset_Outset_Offset
 #Line # offsets bounds and radii ##
-
-Translates Round_Rect by (dx, dy).
-
-#Param dx  offset added to rect().fLeft and rect().fRight ##
-#Param dy  offset added to rect().fTop and rect().fBottom ##
+#Populate
 
 #Example
-    SkPaint paint;

-    paint.setAntiAlias(true);

-    paint.setStyle(SkPaint::kStroke_Style);

-    SkRRect rrect = SkRRect::MakeRectXY({100, 20, 140, 220}, 50, 100);

-    for (int index = 0; index < 25; ++index) {

-       canvas->drawRRect(rrect, paint);

-       rrect.offset(3, 3);

-    }

+    SkPaint paint;
+    paint.setAntiAlias(true);
+    paint.setStyle(SkPaint::kStroke_Style);
+    SkRRect rrect = SkRRect::MakeRectXY({100, 20, 140, 220}, 50, 100);
+    for (int index = 0; index < 25; ++index) {
+       canvas->drawRRect(rrect, paint);
+       rrect.offset(3, 3);
+    }
 ##
 
 #SeeAlso makeOffset inset outset
@@ -1328,22 +1104,16 @@
 #Method SkRRect makeOffset(SkScalar dx, SkScalar dy) const
 #In Inset_Outset_Offset
 #Line # offsets bounds and radii ##
-
-Returns Round_Rect translated by (dx, dy).
-
-#Param dx  offset added to rect().fLeft and rect().fRight ##
-#Param dy  offset added to rect().fTop and rect().fBottom ##
-
-#Return Round_Rect bounds offset by (dx, dy), with unchanged corner radii ##
+#Populate
 
 #Example
-    SkPaint paint;

-    paint.setAntiAlias(true);

-    paint.setStyle(SkPaint::kStroke_Style);

-    SkRRect rrect = SkRRect::MakeRectXY({100, 20, 140, 220}, 50, 100);

-    for (int index = 0; index < 25; ++index) {

-       canvas->drawRRect(rrect, paint);

-       rrect = rrect.makeOffset(-3, 3);

+    SkPaint paint;
+    paint.setAntiAlias(true);
+    paint.setStyle(SkPaint::kStroke_Style);
+    SkRRect rrect = SkRRect::MakeRectXY({100, 20, 140, 220}, 50, 100);
+    for (int index = 0; index < 25; ++index) {
+       canvas->drawRRect(rrect, paint);
+       rrect = rrect.makeOffset(-3, 3);
     }
 ##
 
@@ -1356,29 +1126,23 @@
 #Method bool contains(const SkRect& rect) const
 #In Intersection
 #Line # returns true if Rect is inside ##
-
-Returns true if rect is inside the bounds and corner radii, and if
-Round_Rect and rect are not empty.
-
-#Param rect  area tested for containment ##
-
-#Return true if Round_Rect contains rect ##
+#Populate
 
 #Example
 #Height 110
-    SkRect test = {10, 10, 110, 80};

-    SkRRect rrect = SkRRect::MakeRect(test);

-    SkRRect oval = SkRRect::MakeOval(test);

-    test.inset(10, 10);

-    SkPaint paint;

-    paint.setAntiAlias(true);

-    canvas->drawString(rrect.contains(test) ? "contains" : "does not contain", 55, 100, paint);

-    canvas->drawString(oval.contains(test) ? "contains" : "does not contain", 185, 100, paint);    

-    paint.setStyle(SkPaint::kStroke_Style);

-    canvas->drawRRect(rrect, paint);

-    canvas->drawRect(test, paint);

-    canvas->translate(120, 0);

-    canvas->drawRRect(oval, paint);

+    SkRect test = {10, 10, 110, 80};
+    SkRRect rrect = SkRRect::MakeRect(test);
+    SkRRect oval = SkRRect::MakeOval(test);
+    test.inset(10, 10);
+    SkPaint paint;
+    paint.setAntiAlias(true);
+    canvas->drawString(rrect.contains(test) ? "contains" : "does not contain", 55, 100, paint);
+    canvas->drawString(oval.contains(test) ? "contains" : "does not contain", 185, 100, paint);    
+    paint.setStyle(SkPaint::kStroke_Style);
+    canvas->drawRRect(rrect, paint);
+    canvas->drawRect(test, paint);
+    canvas->translate(120, 0);
+    canvas->drawRRect(oval, paint);
     canvas->drawRect(test, paint);
 ##
 
@@ -1391,25 +1155,20 @@
 #Method bool isValid() const
 #In Utility
 #Line # returns if type() matches bounds and radii  ##
-Returns true if bounds and radii values are finite and describe a Round_Rect
-Type that matches getType. All Round_Rect methods construct valid types,
-even if the input values are not valid. Invalid Round_Rect data can only
-be generated by corrupting memory.
-
-#Return true if bounds and radii match type() ##
+#Populate
 
 #Example
 #Height 110
-    SkRRect rrect = SkRRect::MakeRect({10, 10, 110, 80});

-    SkRRect corrupt = rrect;

-    *((float*) &corrupt) = 120;

-    SkPaint paint;

-    paint.setAntiAlias(true);

-    canvas->drawString(rrect.isValid() ? "is valid" : "is corrupted", 55, 100, paint);

-    canvas->drawString(corrupt.isValid() ? "is valid" : "is corrupted", 185, 100, paint);    

-    paint.setStyle(SkPaint::kStroke_Style);

-    canvas->drawRRect(rrect, paint);

-    canvas->translate(120, 0);

+    SkRRect rrect = SkRRect::MakeRect({10, 10, 110, 80});
+    SkRRect corrupt = rrect;
+    *((float*) &corrupt) = 120;
+    SkPaint paint;
+    paint.setAntiAlias(true);
+    canvas->drawString(rrect.isValid() ? "is valid" : "is corrupted", 55, 100, paint);
+    canvas->drawString(corrupt.isValid() ? "is valid" : "is corrupted", 185, 100, paint);    
+    paint.setStyle(SkPaint::kStroke_Style);
+    canvas->drawRRect(rrect, paint);
+    canvas->translate(120, 0);
     canvas->drawRRect(corrupt, paint);
 ##
 
@@ -1431,28 +1190,22 @@
 #Method size_t writeToMemory(void* buffer) const
 #In Utility
 #Line # writes Round_Rect to buffer ##
-
-Writes Round_Rect to buffer. Writes kSizeInMemory bytes, and returns
-kSizeInMemory, the number of bytes written.
-
-#Param buffer  storage for Round_Rect ##
-
-#Return bytes written, kSizeInMemory ##
+#Populate
 
 #Example
 #Height 110
-    SkRRect rrect = SkRRect::MakeRect({10, 10, 110, 80});

-    char storage[SkRRect::kSizeInMemory];

-    rrect.writeToMemory(storage);

-    SkRRect copy;

-    copy.readFromMemory(storage, sizeof(storage));

-    SkPaint paint;

-    paint.setAntiAlias(true);

-    canvas->drawString("rrect", 55, 100, paint);

-    canvas->drawString("copy", 185, 100, paint);    

-    paint.setStyle(SkPaint::kStroke_Style);

-    canvas->drawRRect(rrect, paint);

-    canvas->translate(120, 0);

+    SkRRect rrect = SkRRect::MakeRect({10, 10, 110, 80});
+    char storage[SkRRect::kSizeInMemory];
+    rrect.writeToMemory(storage);
+    SkRRect copy;
+    copy.readFromMemory(storage, sizeof(storage));
+    SkPaint paint;
+    paint.setAntiAlias(true);
+    canvas->drawString("rrect", 55, 100, paint);
+    canvas->drawString("copy", 185, 100, paint);    
+    paint.setStyle(SkPaint::kStroke_Style);
+    canvas->drawRRect(rrect, paint);
+    canvas->translate(120, 0);
     canvas->drawRRect(copy, paint);
 ##
 
@@ -1465,33 +1218,24 @@
 #Method size_t readFromMemory(const void* buffer, size_t length)
 #In Utility
 #Line # reads Round_Rect from buffer ##
-
-Reads Round_Rect from buffer, reading kSizeInMemory bytes.
-Returns kSizeInMemory, bytes read if length is at least kSizeInMemory.
-Otherwise, returns zero.
-
-#Param buffer  memory to read from ##
-#Param length  size of buffer ##
-
-#Return  bytes read, or 0 if length is less than kSizeInMemory
-##
+#Populate
 
 #Example
 #Height 110
-    SkVector radii[] = {{5, 5},  {10, 10}, {15, 15}, {5, 5}};

-    SkRRect rrect;

-    rrect.setRectRadii({10, 10, 110, 80}, radii);

-    char storage[SkRRect::kSizeInMemory];

-    rrect.writeToMemory(storage);

-    SkRRect copy;

-    copy.readFromMemory(storage, sizeof(storage));

-    SkPaint paint;

-    paint.setAntiAlias(true);

-    canvas->drawString("rrect", 55, 100, paint);

-    canvas->drawString("copy", 185, 100, paint);    

-    paint.setStyle(SkPaint::kStroke_Style);

-    canvas->drawRRect(rrect, paint);

-    canvas->translate(120, 0);

+    SkVector radii[] = {{5, 5},  {10, 10}, {15, 15}, {5, 5}};
+    SkRRect rrect;
+    rrect.setRectRadii({10, 10, 110, 80}, radii);
+    char storage[SkRRect::kSizeInMemory];
+    rrect.writeToMemory(storage);
+    SkRRect copy;
+    copy.readFromMemory(storage, sizeof(storage));
+    SkPaint paint;
+    paint.setAntiAlias(true);
+    canvas->drawString("rrect", 55, 100, paint);
+    canvas->drawString("copy", 185, 100, paint);    
+    paint.setStyle(SkPaint::kStroke_Style);
+    canvas->drawRRect(rrect, paint);
+    canvas->translate(120, 0);
     canvas->drawRRect(copy, paint);
 ##
 
@@ -1504,34 +1248,23 @@
 #Method bool transform(const SkMatrix& matrix, SkRRect* dst) const
 #In Inset_Outset_Offset
 #Line # scales and offsets into copy ##
-
-Transforms by Round_Rect by matrix, storing result in dst.
-Returns true if Round_Rect transformed can be represented by another Round_Rect.
-Returns false if matrix contains transformations other than scale and translate.
-
-Asserts in debug builds if Round_Rect equals dst.
-
-#Param matrix  SkMatrix specifying the transform ##
-#Param dst  SkRRect to store the result ##
-
-#Return  true if transformation succeeded.
-##
+#Populate
 
 #Example
 #Height 110
-    SkVector radii[] = {{5, 5},  {10, 10}, {15, 15}, {5, 5}};

-    SkRRect rrect;

-    rrect.setRectRadii({10, 10, 110, 80}, radii);

-    SkRRect transformed;

-    SkMatrix matrix = SkMatrix::MakeRectToRect(rrect.rect(), {140, 30, 220, 80},

-                                               SkMatrix::kCenter_ScaleToFit);

-    bool success = rrect.transform(matrix, &transformed);

-    SkPaint paint;

-    paint.setAntiAlias(true);

-    canvas->drawString("rrect", 55, 100, paint);

-    canvas->drawString(success ? "transformed" : "transform failed", 185, 100, paint);    

-    paint.setStyle(SkPaint::kStroke_Style);

-    canvas->drawRRect(rrect, paint);

+    SkVector radii[] = {{5, 5},  {10, 10}, {15, 15}, {5, 5}};
+    SkRRect rrect;
+    rrect.setRectRadii({10, 10, 110, 80}, radii);
+    SkRRect transformed;
+    SkMatrix matrix = SkMatrix::MakeRectToRect(rrect.rect(), {140, 30, 220, 80},
+                                               SkMatrix::kCenter_ScaleToFit);
+    bool success = rrect.transform(matrix, &transformed);
+    SkPaint paint;
+    paint.setAntiAlias(true);
+    canvas->drawString("rrect", 55, 100, paint);
+    canvas->drawString(success ? "transformed" : "transform failed", 185, 100, paint);    
+    paint.setStyle(SkPaint::kStroke_Style);
+    canvas->drawRRect(rrect, paint);
     canvas->drawRRect(transformed, paint);
 ##
 
@@ -1544,34 +1277,30 @@
 #Method void dump(bool asHex) const
 #In Utility
 #Line # sends text representation to standard output ##
-Writes text representation of Round_Rect to standard output.
-Set asHex true to generate exact binary representations
-of floating point numbers.
-
-#Param asHex  true if SkScalar values are written as hexadecimal ##
+#Populate
 
 #Example
-SkRRect rrect = SkRRect::MakeRect({6.f / 7, 2.f / 3, 6.f / 7, 2.f / 3});

-for (bool dumpAsHex : { false, true } ) {

-    rrect.dump(dumpAsHex);

+SkRRect rrect = SkRRect::MakeRect({6.f / 7, 2.f / 3, 6.f / 7, 2.f / 3});
+for (bool dumpAsHex : { false, true } ) {
+    rrect.dump(dumpAsHex);
 }
 #StdOut
-SkRect::MakeLTRB(0.857143f, 0.666667f, 0.857143f, 0.666667f);

-const SkPoint corners[] = {

-    { 0, 0 },

-    { 0, 0 },

-    { 0, 0 },

-    { 0, 0 },

-};

-SkRect::MakeLTRB(SkBits2Float(0x3f5b6db7), /* 0.857143 */

-                 SkBits2Float(0x3f2aaaab), /* 0.666667 */

-                 SkBits2Float(0x3f5b6db7), /* 0.857143 */

-                 SkBits2Float(0x3f2aaaab)  /* 0.666667 */);

-const SkPoint corners[] = {

-    { SkBits2Float(0x00000000), SkBits2Float(0x00000000) }, /* 0.000000 0.000000 */

-    { SkBits2Float(0x00000000), SkBits2Float(0x00000000) }, /* 0.000000 0.000000 */

-    { SkBits2Float(0x00000000), SkBits2Float(0x00000000) }, /* 0.000000 0.000000 */

-    { SkBits2Float(0x00000000), SkBits2Float(0x00000000) }, /* 0.000000 0.000000 */

+SkRect::MakeLTRB(0.857143f, 0.666667f, 0.857143f, 0.666667f);
+const SkPoint corners[] = {
+    { 0, 0 },
+    { 0, 0 },
+    { 0, 0 },
+    { 0, 0 },
+};
+SkRect::MakeLTRB(SkBits2Float(0x3f5b6db7), /* 0.857143 */
+                 SkBits2Float(0x3f2aaaab), /* 0.666667 */
+                 SkBits2Float(0x3f5b6db7), /* 0.857143 */
+                 SkBits2Float(0x3f2aaaab)  /* 0.666667 */);
+const SkPoint corners[] = {
+    { SkBits2Float(0x00000000), SkBits2Float(0x00000000) }, /* 0.000000 0.000000 */
+    { SkBits2Float(0x00000000), SkBits2Float(0x00000000) }, /* 0.000000 0.000000 */
+    { SkBits2Float(0x00000000), SkBits2Float(0x00000000) }, /* 0.000000 0.000000 */
+    { SkBits2Float(0x00000000), SkBits2Float(0x00000000) }, /* 0.000000 0.000000 */
 };
 ##
 ##
@@ -1585,32 +1314,29 @@
 #Method void dump() const
 #In Utility
 #Line # sends text representation using floats to standard output ##
-Writes text representation of Round_Rect to standard output. The representation
-may be directly compiled as C++ code. Floating point values are written
-with limited precision; it may not be possible to reconstruct original
-Round_Rect from output.
+#Populate
 
 #Example
-SkRRect rrect = SkRRect::MakeRect({6.f / 7, 2.f / 3, 6.f / 7, 2.f / 3});

-rrect.dump();

-SkRect bounds = SkRect::MakeLTRB(0.857143f, 0.666667f, 0.857143f, 0.666667f);

-const SkPoint corners[] = {

-    { 0, 0 },

-    { 0, 0 },

-    { 0, 0 },

-    { 0, 0 },

-};

-SkRRect copy;

-copy.setRectRadii(bounds, corners);

-SkDebugf("rrect is " "%s" "equal to copy\n", rrect == copy ? "" : "not ");

+SkRRect rrect = SkRRect::MakeRect({6.f / 7, 2.f / 3, 6.f / 7, 2.f / 3});
+rrect.dump();
+SkRect bounds = SkRect::MakeLTRB(0.857143f, 0.666667f, 0.857143f, 0.666667f);
+const SkPoint corners[] = {
+    { 0, 0 },
+    { 0, 0 },
+    { 0, 0 },
+    { 0, 0 },
+};
+SkRRect copy;
+copy.setRectRadii(bounds, corners);
+SkDebugf("rrect is " "%s" "equal to copy\n", rrect == copy ? "" : "not ");
 #StdOut
-SkRect::MakeLTRB(0.857143f, 0.666667f, 0.857143f, 0.666667f);

-const SkPoint corners[] = {

-    { 0, 0 },

-    { 0, 0 },

-    { 0, 0 },

-    { 0, 0 },

-};

+SkRect::MakeLTRB(0.857143f, 0.666667f, 0.857143f, 0.666667f);
+const SkPoint corners[] = {
+    { 0, 0 },
+    { 0, 0 },
+    { 0, 0 },
+    { 0, 0 },
+};
 rrect is not equal to copy
 ##
 ##
@@ -1624,38 +1350,35 @@
 #Method void dumpHex() const
 #In Utility
 #Line # sends text representation using hexadecimal to standard output ##
-Writes text representation of Round_Rect to standard output. The representation
-may be directly compiled as C++ code. Floating point values are written
-in hexadecimal to preserve their exact bit pattern. The output reconstructs the
-original Round_Rect.
+#Populate
 
 #Example
-SkRRect rrect = SkRRect::MakeRect({6.f / 7, 2.f / 3, 6.f / 7, 2.f / 3});

-rrect.dumpHex();

-SkRect bounds = SkRect::MakeLTRB(SkBits2Float(0x3f5b6db7), /* 0.857143 */

-                 SkBits2Float(0x3f2aaaab), /* 0.666667 */

-                 SkBits2Float(0x3f5b6db7), /* 0.857143 */

-                 SkBits2Float(0x3f2aaaab)  /* 0.666667 */);

-const SkPoint corners[] = {

-    { SkBits2Float(0x00000000), SkBits2Float(0x00000000) }, /* 0.000000 0.000000 */

-    { SkBits2Float(0x00000000), SkBits2Float(0x00000000) }, /* 0.000000 0.000000 */

-    { SkBits2Float(0x00000000), SkBits2Float(0x00000000) }, /* 0.000000 0.000000 */

-    { SkBits2Float(0x00000000), SkBits2Float(0x00000000) }, /* 0.000000 0.000000 */

-};

-SkRRect copy;

-copy.setRectRadii(bounds, corners);

+SkRRect rrect = SkRRect::MakeRect({6.f / 7, 2.f / 3, 6.f / 7, 2.f / 3});
+rrect.dumpHex();
+SkRect bounds = SkRect::MakeLTRB(SkBits2Float(0x3f5b6db7), /* 0.857143 */
+                 SkBits2Float(0x3f2aaaab), /* 0.666667 */
+                 SkBits2Float(0x3f5b6db7), /* 0.857143 */
+                 SkBits2Float(0x3f2aaaab)  /* 0.666667 */);
+const SkPoint corners[] = {
+    { SkBits2Float(0x00000000), SkBits2Float(0x00000000) }, /* 0.000000 0.000000 */
+    { SkBits2Float(0x00000000), SkBits2Float(0x00000000) }, /* 0.000000 0.000000 */
+    { SkBits2Float(0x00000000), SkBits2Float(0x00000000) }, /* 0.000000 0.000000 */
+    { SkBits2Float(0x00000000), SkBits2Float(0x00000000) }, /* 0.000000 0.000000 */
+};
+SkRRect copy;
+copy.setRectRadii(bounds, corners);
 SkDebugf("rrect is " "%s" "equal to copy\n", rrect == copy ? "" : "not ");
 #StdOut
-SkRect::MakeLTRB(SkBits2Float(0x3f5b6db7), /* 0.857143 */

-                 SkBits2Float(0x3f2aaaab), /* 0.666667 */

-                 SkBits2Float(0x3f5b6db7), /* 0.857143 */

-                 SkBits2Float(0x3f2aaaab)  /* 0.666667 */);

-const SkPoint corners[] = {

-    { SkBits2Float(0x00000000), SkBits2Float(0x00000000) }, /* 0.000000 0.000000 */

-    { SkBits2Float(0x00000000), SkBits2Float(0x00000000) }, /* 0.000000 0.000000 */

-    { SkBits2Float(0x00000000), SkBits2Float(0x00000000) }, /* 0.000000 0.000000 */

-    { SkBits2Float(0x00000000), SkBits2Float(0x00000000) }, /* 0.000000 0.000000 */

-};

+SkRect::MakeLTRB(SkBits2Float(0x3f5b6db7), /* 0.857143 */
+                 SkBits2Float(0x3f2aaaab), /* 0.666667 */
+                 SkBits2Float(0x3f5b6db7), /* 0.857143 */
+                 SkBits2Float(0x3f2aaaab)  /* 0.666667 */);
+const SkPoint corners[] = {
+    { SkBits2Float(0x00000000), SkBits2Float(0x00000000) }, /* 0.000000 0.000000 */
+    { SkBits2Float(0x00000000), SkBits2Float(0x00000000) }, /* 0.000000 0.000000 */
+    { SkBits2Float(0x00000000), SkBits2Float(0x00000000) }, /* 0.000000 0.000000 */
+    { SkBits2Float(0x00000000), SkBits2Float(0x00000000) }, /* 0.000000 0.000000 */
+};
 rrect is equal to copy
 ##
 ##
diff --git a/docs/SkRect_Reference.bmh b/docs/SkRect_Reference.bmh
index 7571937..4e78168 100644
--- a/docs/SkRect_Reference.bmh
+++ b/docs/SkRect_Reference.bmh
@@ -48,12 +48,7 @@
 
 #In Constructors
 #Line # constructs from bounds of (0, 0, 0, 0) ##
-Returns constructed Rect 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.
-
-#Return bounds (0, 0, 0, 0) ##
+#Populate
 
 #Example
     SkRect rect = SkRect::MakeEmpty();
@@ -82,16 +77,7 @@
 
 #In Constructors
 #Line # constructs from SkScalar input returning (0, 0, width, height) ##
-Returns constructed Rect set to SkScalar values (0, 0, w, h). Does not
-validate input; w or h may be negative.
-
-Passing integer values may generate a compiler warning since Rect cannot
-represent 32-bit integers exactly. Use SkIRect for an exact integer rectangle.
-
-#Param w  SkScalar width of constructed Rect  ##
-#Param h  SkScalar height of constructed Rect ##
-
-#Return bounds (0, 0, w, h) ##
+#Populate
 
 #Example
     SkRect rect1 = SkRect::MakeWH(25, 35);
@@ -115,16 +101,7 @@
 
 #In Constructors
 #Line # constructs from int input returning (0, 0, width, height) ##
-Returns constructed Rect set to integer values (0, 0, w, h). Does not validate
-input; w or h may be negative.
-
-Use to avoid a compiler warning that input may lose precision when stored.
-Use SkIRect for an exact integer rectangle.
-
-#Param w  integer width of constructed Rect  ##
-#Param h  integer height of constructed Rect ##
-
-#Return bounds (0, 0, w, h) ##
+#Populate
 
 #Example
     SkIRect i_rect = SkIRect::MakeWH(25, 35);
@@ -149,12 +126,7 @@
 
 #In Constructors
 #Line # constructs from Size returning (0, 0, width, height) ##
-Returns constructed Rect set to (0, 0, size.width(), size.height()). Does not
-validate input; size.width() or size.height() may be negative.
-
-#Param size  SkScalar values for Rect width and height ##
-
-#Return bounds (0, 0, size.width(), size.height()) ##
+#Populate
 
 #Example
     SkSize size = {25.5f, 35.5f};
@@ -179,16 +151,7 @@
                                                            SkScalar b)
 #In Constructors
 #Line # constructs from SkScalar left, top, right, bottom ##
-
-Returns constructed Rect set to (l, t, r, b). Does not sort input; Rect may
-result in fLeft greater than fRight, or fTop greater than fBottom.
-
-#Param l  SkScalar stored in fLeft ##
-#Param t  SkScalar stored in fTop ##
-#Param r  SkScalar stored in fRight ##
-#Param b  SkScalar stored in fBottom ##
-
-#Return bounds (l, t, r, b) ##
+#Populate
 
 #Example
     SkRect rect = SkRect::MakeLTRB(5, 35, 15, 25);
@@ -266,13 +229,7 @@
 #Method static SkRect Make(const SkIRect& irect)
 
 #In Constructors
-Returns constructed IRect set to irect, promoting integers to Scalar.
-Does not validate input; fLeft may be greater than fRight, fTop may be greater
-than fBottom.
-
-#Param irect  integer unsorted bounds ##
-
-#Return irect members converted to SkScalar ##
+#Populate
 
 #Example
     SkIRect i_rect1 = {2, 35, 22, 53};
@@ -296,11 +253,7 @@
 
 #In Property
 #Line # returns true if width or height are zero or negative ##
-Returns true if fLeft is equal to or greater than fRight, or if fTop is equal
-to or greater than fBottom. Call sort() to reverse rectangles with negative
-width() or height().
-
-#Return true if width() or height() are not positive and valid ##
+#Populate
 
 #Example
     SkRect tests[] = {{20, 40, 10, 50}, {20, 40, 20, 50}};
@@ -329,11 +282,7 @@
 
 #In Property
 #Line # returns true if width or height are zero or positive ##
-Returns true if fLeft is equal to or less than fRight, or if fTop is equal
-to or less than fBottom. Call sort() to reverse rectangles with negative
-width() or height().
-
-#Return true if width() or height() are zero or positive ##
+#Populate
 
 #Example
     SkRect tests[] = {{20, 40, 10, 50}, {20, 40, 20, 50}};
@@ -362,10 +311,7 @@
 
 #In Property
 #Line # returns true if no member is infinite or NaN ##
-Returns true if all values in the rectangle are finite: SK_ScalarMin or larger,
-and SK_ScalarMax or smaller.
-
-#Return true if no member is infinite or NaN ##
+#Populate
 
 #Example
 SkRect largest = { SK_ScalarMin, SK_ScalarMin, SK_ScalarMax, SK_ScalarMax };
@@ -390,10 +336,7 @@
 
 #In Property
 #Line # returns bounds left ##
-Returns left edge of Rect, if sorted. Call isSorted to see if Rect is valid.
-Call sort() to reverse fLeft and fRight if needed.
-
-#Return fLeft ##
+#Populate
 
 #Example
     SkRect unsorted = { 15, 5, 10, 25 };
@@ -416,10 +359,7 @@
 
 #In Property
 #Line # returns bounds top ##
-Returns top edge of Rect, if sorted. Call isEmpty to see if Rect may be invalid,
-and sort() to reverse fTop and fBottom if needed.
-
-#Return fTop ##
+#Populate
 
 #Example
     SkRect unsorted = { 15, 25, 10, 5 };
@@ -442,10 +382,7 @@
 
 #In Property
 #Line # returns smaller bounds in x, if sorted ##
-Returns left edge of Rect, if sorted. Call isSorted to see if Rect is valid.
-Call sort() to reverse fLeft and fRight if needed.
-
-#Return fLeft ##
+#Populate
 
 #Example
     SkRect unsorted = { 15, 5, 10, 25 };
@@ -468,10 +405,7 @@
 
 #In Property
 #Line # returns smaller bounds in y, if sorted ##
-Returns top edge of Rect, if sorted. Call isEmpty to see if Rect may be invalid,
-and sort() to reverse fTop and fBottom if needed.
-
-#Return fTop ##
+#Populate
 
 #Example
     SkRect unsorted = { 15, 25, 10, 5 };
@@ -494,10 +428,7 @@
 
 #In Property
 #Line # returns larger bounds in x, if sorted ##
-Returns right edge of Rect, if sorted. Call isSorted to see if Rect is valid.
-Call sort() to reverse fLeft and fRight if needed.
-
-#Return fRight ##
+#Populate
 
 #Example
     SkRect unsorted = { 15, 25, 10, 5 };
@@ -520,10 +451,7 @@
 
 #In Property
 #Line # returns larger bounds in y, if sorted ##
-Returns bottom edge of Rect, if sorted. Call isEmpty to see if Rect may be invalid,
-and sort() to reverse fTop and fBottom if needed.
-
-#Return fBottom ##
+#Populate
 
 #Example
     SkRect unsorted = { 15, 25, 10, 5 };
@@ -546,10 +474,7 @@
 
 #In Property
 #Line # returns span in x ##
-Returns span on the x-axis. This does not check if Rect is sorted, or if
-result fits in 32-bit float; result may be negative or infinity.
-
-#Return fRight minus fLeft ##
+#Populate
 
 #Example
 #Description
@@ -575,10 +500,7 @@
 
 #In Property
 #Line # returns span in y ##
-Returns span on the y-axis. This does not check if Rect is sorted, or if
-result fits in 32-bit float; result may be negative or infinity.
-
-#Return fBottom minus fTop ##
+#Populate
 
 #Example
 #Description
@@ -604,10 +526,7 @@
 
 #In Property
 #Line # returns midpoint in x ##
-Returns average of left edge and right edge. Result does not change if Rect
-is sorted. Result may overflow to infinity if Rect is far from the origin.
-
-#Return midpoint in x ##
+#Populate
 
 #Example
     SkRect tests[] = {{20, 30, 41, 51}, {-20, -30, -41, -51}};
@@ -634,10 +553,7 @@
 
 #In Property
 #Line # returns midpoint in y ##
-Returns average of top edge and bottom edge. Result does not change if Rect
-is sorted.
-
-#Return midpoint in y ##
+#Populate
 
 #Example
    SkRect rect = { 2e+38, 2e+38, 3e+38, 3e+38 };
@@ -662,16 +578,7 @@
 
 #In Operators
 #Line # returns true if members are equal ##
-Returns true if all members in a: fLeft, fTop, fRight, and fBottom; are
-equal to the corresponding members in b.
-
-a and b are not equal if either contain NaN. a and b are equal if members
-contain zeroes width different signs.
-
-#Param a  Rect to compare ##
-#Param b  Rect to compare ##
-
-#Return true if members are equal ##
+#Populate
 
 #Example
     auto debugster = [](const SkRect& test) -> void {
@@ -707,16 +614,7 @@
 
 #In Operators
 #Line # returns true if members are unequal ##
-Returns true if any in a: fLeft, fTop, fRight, and fBottom; does not
-equal the corresponding members in b.
-
-a and b are not equal if either contain NaN. a and b are equal if members
-contain zeroes width different signs.
-
-#Param a  Rect to compare ##
-#Param b  Rect to compare ##
-
-#Return true if members are not equal ##
+#Populate
 
 #Example
     SkRect test = {0, 0, 2, SK_ScalarNaN};
@@ -776,14 +674,7 @@
 
 #In As_Points
 #Line # sets to upper and lower limits of Point array ##
-Sets to bounds of Point array with count entries. If count is zero or smaller,
-or if Point array contains an infinity or NaN, sets to (0, 0, 0, 0).
-
-Result is either empty or sorted: fLeft is less than or equal to fRight, and
-fTop is less than or equal to fBottom.
-
-#Param pts  Point array ##
-#Param count  entries in array ##
+#Populate
 
 #Example
    SkPoint points[] = {{3, 4}, {1, 2}, {5, 6}, {SK_ScalarNaN, 8}};
@@ -817,17 +708,7 @@
 
 #In As_Points
 #Line # sets to upper and lower limits of Point array ##
-Sets to bounds of Point array with count entries. Returns false if count is
-zero or smaller, or if Point array contains an infinity or NaN; in these cases
-sets Rect to (0, 0, 0, 0).
-
-Result is either empty or sorted: fLeft is less than or equal to fRight, and
-fTop is less than or equal to fBottom.
-
-#Param pts  Point array ##
-#Param count  entries in array ##
-
-#Return true if all Point values are finite ##
+#Populate
 
 #Example
    SkPoint points[] = {{3, 4}, {1, 2}, {5, 6}, {SK_ScalarNaN, 8}};
@@ -865,11 +746,7 @@
 #Method void setBoundsNoCheck(const SkPoint pts[], int count)
 #In Set
 #Line # sets to upper and lower limits of Point array ##
-Sets to bounds of Point pts array with count entries. If any Point in pts
-contains infinity or NaN, all Rect dimensions are set to NaN.
-
-#Param pts  Point array ##
-#Param count  entries in array ##
+#Populate
 
 #Example
    SkPoint points[] = {{3, 4}, {1, 2}, {SK_ScalarInfinity, 6}, {SK_ScalarNaN, 8}};
@@ -895,11 +772,7 @@
 
 #In Set
 #Line # sets to (0, 0, 0, 0) ##
-Sets Rect 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.
+#Populate
 
 #Example
     SkRect rect = {3, 4, 1, 2};
@@ -924,10 +797,7 @@
 
 #In Set
 #Line # sets to SkScalar input (left, top, right, bottom) and others ##
-Sets Rect to src, promoting src members from integer to Scalar.
-Very large values in src may lose precision.
-
-#Param src  integer Rect ##
+#Populate
 
 #Example
     SkIRect i_rect = {3, 4, 1, 2};
@@ -950,14 +820,7 @@
 #Method void set(SkScalar left, SkScalar top, SkScalar right, SkScalar bottom)
 
 #In Set
-Sets Rect to (left, top, right, bottom).
-left and right are not sorted; left is not necessarily less than right.
-top and bottom are not sorted; top is not necessarily less than bottom.
-
-#Param left  stored in fLeft ##
-#Param top  stored in fTop ##
-#Param right  stored in fRight ##
-#Param bottom  stored in fBottom ##
+#Populate
 
 #Example
     SkRect rect1 = {3, 4, 1, 2};
@@ -981,14 +844,7 @@
 
 #In Set
 #Line # sets to SkScalar input (left, top, right, bottom) ##
-Sets Rect to (left, top, right, bottom).
-left and right are not sorted; left is not necessarily less than right.
-top and bottom are not sorted; top is not necessarily less than bottom.
-
-#Param left  stored in fLeft ##
-#Param top  stored in fTop ##
-#Param right  stored in fRight ##
-#Param bottom  stored in fBottom ##
+#Populate
 
 #Example
     SkRect rect1 = {3, 4, 1, 2};
@@ -1011,14 +867,7 @@
 #Method void set(const SkPoint pts[], int count)
 
 #In Set
-Sets to bounds of Point array with count entries. If count is zero or smaller,
-or if Point array contains an infinity or NaN, sets Rect to (0, 0, 0, 0).
-
-Result is either empty or sorted: fLeft is less than or equal to fRight, and
-fTop is less than or equal to fBottom.
-
-#Param pts  Point array ##
-#Param count  entries in array ##
+#Populate
 
 #Example
    SkPoint points[] = {{3, 4}, {1, 2}, {5, 6}, {SK_ScalarNaN, 8}};
@@ -1051,11 +900,7 @@
 #Method void set(const SkPoint& p0, const SkPoint& p1)
 
 #In Set
-Sets bounds to the smallest Rect enclosing Points p0 and p1. The result is
-sorted and may be empty. Does not check to see if values are finite.
-
-#Param p0  corner to include ##
-#Param p1  corner to include ##
+#Populate
 
 #Example
 #Description
@@ -1112,11 +957,7 @@
 
 #In Set
 #Line # sets to SkScalar input (0, 0, width, height) ##
-Sets Rect to (0, 0, width, height). Does not validate input;
-width or height may be negative.
-
-#Param width  stored in fRight ##
-#Param height  stored in fBottom ##
+#Populate
 
 #Example
     SkRect rect;
@@ -1147,15 +988,7 @@
 
 #In From_Integers
 #Line # sets to int input (left, top, right, bottom) ##
-Sets Rect to (left, top, right, bottom).
-All parameters are promoted from integer to Scalar.
-left and right are not sorted; left is not necessarily less than right.
-top and bottom are not sorted; top is not necessarily less than bottom.
-
-#Param left  promoted to SkScalar and stored in fLeft ##
-#Param top  promoted to SkScalar and stored in fTop ##
-#Param right  promoted to SkScalar and stored in fRight ##
-#Param bottom  promoted to SkScalar and stored in fBottom ##
+#Populate
 
 #Example
     SkRect rect1 = {3, 4, 1, 2};
@@ -1179,12 +1012,7 @@
 
 #In From_Integers
 #Line # sets to int input (0, 0, width, height) ##
-Sets Rect to (0, 0, width, height).
-width and height may be zero or negative. width and height are promoted from
-integer to SkScalar, large values may lose precision.
-
-#Param width  promoted to SkScalar and stored in fRight ##
-#Param height  promoted to SkScalar and stored in fBottom ##
+#Populate
 
 #Example
     SkRect rect1 = {0, 0, 1, 2};
@@ -1213,17 +1041,7 @@
 
 #In Inset_Outset_Offset
 #Line # constructs from translated sides ##
-Returns Rect offset by (dx, dy).
-
-If dx is negative, Rect returned is moved to the left.
-If dx is positive, Rect returned is moved to the right.
-If dy is negative, Rect returned is moved upward.
-If dy is positive, Rect returned is moved downward.
-
-#Param dx  added to fLeft and fRight ##
-#Param dy  added to fTop and fBottom ##
-
-#Return Rect offset on axes, with original width and height ##
+#Populate
 
 #Example
     SkRect rect = { 10, 50, 20, 60 };
@@ -1248,17 +1066,7 @@
 
 #In Inset_Outset_Offset
 #Line # constructs from sides moved symmetrically about the center ##
-Returns Rect, inset by (dx, dy).
-
-If dx is negative, Rect returned is wider.
-If dx is positive, Rect returned is narrower.
-If dy is negative, Rect returned is taller.
-If dy is positive, Rect returned is shorter.
-
-#Param dx  added to fLeft and subtracted from fRight ##
-#Param dy  added to fTop and subtracted from fBottom ##
-
-#Return Rect inset symmetrically left and right, top and bottom ##
+#Populate
 
 #Example
     SkRect rect = { 10, 50, 20, 60 };
@@ -1283,17 +1091,7 @@
 
 #In Inset_Outset_Offset
 #Line # constructs from sides moved symmetrically about the center ##
-Returns Rect, outset by (dx, dy).
-
-If dx is negative, Rect returned is narrower.
-If dx is positive, Rect returned is wider.
-If dy is negative, Rect returned is shorter.
-If dy is positive, Rect returned is taller.
-
-#Param dx  subtracted to fLeft and added from fRight ##
-#Param dy  subtracted to fTop and added from fBottom ##
-
-#Return Rect outset symmetrically left and right, top and bottom ##
+#Populate
 
 #Example
     SkRect rect = { 10, 50, 20, 60 };
@@ -1318,15 +1116,7 @@
 
 #In Inset_Outset_Offset
 #Line # translates sides without changing width and height ##
-Offsets Rect by adding dx to fLeft, fRight; and by adding dy to fTop, fBottom.
-
-If dx is negative, moves Rect to the left.
-If dx is positive, moves Rect to the right.
-If dy is negative, moves Rect upward.
-If dy is positive, moves Rect downward.
-
-#Param dx  offset added to fLeft and fRight ##
-#Param dy  offset added to fTop and fBottom ##
+#Populate
 
 #Example
     SkRect rect = { 10, 14, 50, 73 };
@@ -1346,15 +1136,7 @@
 #Method void offset(const SkPoint& delta)
 
 #In Inset_Outset_Offset
-Offsets Rect by adding delta.fX to fLeft, fRight; and by adding delta.fY to
-fTop, fBottom.
-
-If delta.fX is negative, moves Rect to the left.
-If delta.fX is positive, moves Rect to the right.
-If delta.fY is negative, moves Rect upward.
-If delta.fY is positive, moves Rect downward.
-
-#Param delta  added to Rect ##
+#Populate
 
 #Example
     SkRect rect = { 10, 14, 50, 73 };
@@ -1375,11 +1157,7 @@
 
 #In Inset_Outset_Offset
 #Line # translates to (x, y) without changing width and height ##
-Offsets Rect so that fLeft equals newX, and fTop equals newY. width and height
-are unchanged.
-
-#Param newX  stored in fLeft, preserving width() ##
-#Param newY  stored in fTop, preserving height() ##
+#Populate
 
 #Example
     SkRect rect = { 10, 14, 50, 73 };
@@ -1400,15 +1178,7 @@
 
 #In Inset_Outset_Offset
 #Line # moves the sides symmetrically about the center ##
-Insets Rect by (dx, dy).
-
-If dx is positive, makes Rect narrower.
-If dx is negative, makes Rect wider.
-If dy is positive, makes Rect shorter.
-If dy is negative, makes Rect taller.
-
-#Param dx  added to fLeft and subtracted from fRight ##
-#Param dy  added to fTop and subtracted from fBottom ##
+#Populate
 
 #Example
     SkRect rect = { 10, 14, 50, 73 };
@@ -1429,15 +1199,7 @@
 
 #In Inset_Outset_Offset
 #Line # moves the sides symmetrically about the center ##
-Outsets Rect by (dx, dy).
-
-If dx is positive, makes Rect wider.
-If dx is negative, makes Rect narrower.
-If dy is positive, makes Rect taller.
-If dy is negative, makes Rect shorter.
-
-#Param dx  subtracted to fLeft and added from fRight ##
-#Param dy  subtracted to fTop and added from fBottom ##
+#Populate
 
 #Example
     SkRect rect = { 10, 14, 50, 73 };
@@ -1472,13 +1234,7 @@
 
 #In Intersection
 #Line # returns true if points are equal or inside ##
-Returns true if: fLeft <= x < fRight && fTop <= y < fBottom.
-Returns false if SkRect is empty.
-
-#Param x  test Point x-coordinate ##
-#Param y  test Point y-coordinate ##
-
-#Return true if (x, y) is inside Rect ##
+#Populate
 
 #Example
     SkRect rect = { 30, 50, 40, 60 };
@@ -1505,14 +1261,7 @@
 #Method    bool contains(const SkRect& r) const
 
 #In Intersection
-Returns true if Rect contains r.
-Returns false if Rect is empty or r is empty.
-
-Rect contains r when Rect area completely includes r area.
-
-#Param r  Rect contained ##
-
-#Return true if all sides of Rect are outside r ##
+#Populate
 
 #Example
     SkRect rect = { 30, 50, 40, 60 };
@@ -1539,14 +1288,7 @@
 #Method    bool contains(const SkIRect& r) const
 
 #In Intersection
-Returns true if Rect contains r.
-Returns false if Rect is empty or r is empty.
-
-Rect contains r when Rect area completely includes r area.
-
-#Param r  IRect contained ##
-
-#Return true if all sides of Rect are outside r ##
+#Populate
 
 #Example
     SkRect rect = { 30, 50, 40, 60 };
@@ -1574,14 +1316,7 @@
 
 #In Intersection
 #Line # sets to shared area; returns true if not empty ##
-Returns true if Rect intersects r, and sets Rect to intersection.
-Returns false if Rect does not intersect r, and leaves Rect unchanged.
-
-Returns false if either r or Rect is empty, leaving Rect unchanged.
-
-#Param r  limit of result ##
-
-#Return true if r and Rect have area in common ##
+#Populate
 
 #Example
 #Description
@@ -1608,20 +1343,7 @@
 #Method bool intersect(SkScalar left, SkScalar top, SkScalar right, SkScalar bottom)
 
 #In Intersection
-Constructs Rect to intersect from (left, top, right, bottom). Does not sort
-construction.
-
-Returns true if Rect intersects construction, and sets Rect to intersection.
-Returns false if Rect does not intersect construction, and leaves Rect unchanged.
-
-Returns false if either construction or Rect is empty, leaving Rect unchanged.
-
-#Param left  x-axis minimum of constructed Rect ##
-#Param top  y-axis minimum of constructed Rect ##
-#Param right  x-axis maximum of constructed Rect ##
-#Param bottom  y-axis maximum of constructed Rect ##
-
-#Return true if construction and Rect have area in common ##
+#Populate
 
 #Example
 #Description
@@ -1647,15 +1369,7 @@
 #Method bool intersect(const SkRect& a, const SkRect& b)
 
 #In Intersection
-Returns true if a intersects b, and sets Rect to intersection.
-Returns false if a does not intersect b, and leaves Rect unchanged.
-
-Returns false if either a or b is empty, leaving Rect unchanged.
-
-#Param a  Rect to intersect ##
-#Param b  Rect to intersect ##
-
-#Return true if a and b have area in common ##
+#Populate
 
 #Example
     SkRect result;
@@ -1677,18 +1391,7 @@
 
 #In Intersection
 #Line # returns true if areas overlap ##
-Constructs Rect to intersect from (left, top, right, bottom). Does not sort
-construction.
-
-Returns true if Rect intersects construction.
-Returns false if either construction or Rect is empty, or do not intersect.
-
-#Param left  x-axis minimum of constructed Rect ##
-#Param top  y-axis minimum of constructed Rect ##
-#Param right  x-axis maximum of constructed Rect ##
-#Param bottom  y-axis maximum of constructed Rect ##
-
-#Return true if construction and Rect have area in common ##
+#Populate
 
 #Example
     SkRect rect = { 10, 40, 50, 80 };
@@ -1707,12 +1410,7 @@
 #Method    bool intersects(const SkRect& r) const
 
 #In Intersection
-Returns true if Rect intersects r.
-Returns false if either r or Rect is empty, or do not intersect.
-
-#Param r  Rect to intersect ##
-
-#Return true if r and Rect have area in common ##
+#Populate
 
 #Example
     SkRect rect = { 10, 40, 50, 80 };
@@ -1732,13 +1430,7 @@
 
 #In Intersection
 #Line # returns true if areas overlap ##
-Returns true if a intersects b.
-Returns false if either a or b is empty, or do not intersect.
-
-#Param a  Rect to intersect ##
-#Param b  Rect to intersect ##
-
-#Return true if a and b have area in common ##
+#Populate
 
 #Example
     SkDebugf("%s intersection", SkRect::Intersects({10, 40, 50, 80}, {30, 60, 70, 90}) ? "" : "no ");
@@ -1762,18 +1454,7 @@
 
 #In Join
 #Line # sets to union of bounds ##
-Constructs Rect to intersect from (left, top, right, bottom). Does not sort
-construction.
-
-Sets Rect to the union of itself and the construction.
-
-Has no effect if construction is empty. Otherwise, if Rect is empty, sets
-Rect to construction.
-
-#Param left  x-axis minimum of constructed Rect ##
-#Param top  y-axis minimum of constructed Rect ##
-#Param right  x-axis maximum of constructed Rect ##
-#Param bottom  y-axis maximum of constructed Rect ##
+#Populate
 
 #Example
     SkRect rect = { 10, 20, 15, 25};
@@ -1793,12 +1474,7 @@
 #Method    void join(const SkRect& r)
 
 #In Join
-Sets Rect to the union of itself and r.
-
-Has no effect if r is empty. Otherwise, if Rect is empty, sets
-Rect to r.
-
-#Param r  expansion Rect ##
+#Populate
 
 #Example
     SkRect rect = { 10, 20, 15, 25};
@@ -1819,14 +1495,7 @@
 
 #In Join
 #Line # sets to union of bounds, asserting that argument is not empty ##
-Sets Rect to the union of itself and r.
-
-Asserts if r is empty and SK_DEBUG is defined.
-If Rect is empty, sets Rect to r.
-
-May produce incorrect results if r is empty.
-
-#Param r  expansion Rect ##
+#Populate
 
 #Example
 #Description
@@ -1855,11 +1524,7 @@
 
 #In Join
 #Line # sets to union of bounds; skips empty check for both ##
-Sets Rect to the union of itself and the construction.
-
-May produce incorrect results if Rect or r is empty.
-
-#Param r  expansion Rect ##
+#Populate
 
 #Example
 #Description
@@ -2051,9 +1716,7 @@
 
 #In Sorting
 #Line # orders sides from smaller to larger ##
-Swaps fLeft and fRight if fLeft is greater than fRight; and swaps
-fTop and fBottom if fTop is greater than fBottom. Result may be empty;
-and width() and height() will be zero or positive.
+#Populate
 
 #Example
     SkRect rect = { 30.5f, 50.5f, 20.5f, 10.5f };
@@ -2077,11 +1740,7 @@
 #In Sorting
 #In Constructors
 #Line # constructs Rect, ordering sides from smaller to larger ##
-Returns Rect with fLeft and fRight swapped if fLeft is greater than fRight; and
-with fTop and fBottom swapped if fTop is greater than fBottom. Result may be empty;
-and width() and height() will be zero or positive.
-
-#Return  sorted Rect ##
+#Populate
 
 #Example
     SkRect rect = { 30.5f, 50.5f, 20.5f, 10.5f };
@@ -2105,10 +1764,7 @@
 #Method    const SkScalar* asScalars() const
 #In Property
 #Line # returns pointer to members as array ##
-Returns pointer to first Scalar in Rect, to treat it as an array with four
-entries.
-
-#Return  pointer to fLeft ##
+#Populate
 
 #Example
    SkRect rect = {7, 11, 13, 17};
@@ -2127,10 +1783,7 @@
 #Method    void dump(bool asHex) const
 #In Property
 #Line # sends text representation to standard output using floats ##
-Writes text representation of Rect to standard output. Set asHex to true to
-generate exact binary representations of floating point numbers.
-
-#Param asHex  true if SkScalar values are written as hexadecimal ##
+#Populate
 
 #Example
    SkRect rect = {20, 30, 40, 50};
@@ -2155,11 +1808,7 @@
 # ------------------------------------------------------------------------------
 
 #Method    void dump() const
-
-Writes text representation of Rect to standard output. The representation may be
-directly compiled as C++ code. Floating point values are written
-with limited precision; it may not be possible to reconstruct original Rect
-from output.
+#Populate
 
 #Example
 SkRect rect = {6.f / 7, 2.f / 3, 26.f / 10, 42.f / 6};
diff --git a/docs/SkRegion_Reference.bmh b/docs/SkRegion_Reference.bmh
index 6158cfa..7e72f6a 100644
--- a/docs/SkRegion_Reference.bmh
+++ b/docs/SkRegion_Reference.bmh
@@ -56,19 +56,16 @@
 
 #Method Iterator()
 #Line # constructs Region iterator ##
-Initializes Iterator with an empty Region. done() on Iterator returns true.
-Call reset() to initialized Iterator at a later time.
-
-#Return empty Region ierator ##
+#Populate
 
 #Example
     SkRegion::Iterator iter;
-    SkRegion region;

-    region.setRect({1, 2, 3, 4});

-    iter.reset(region);

-    auto r = iter.rect();

-    SkDebugf("rect={%d,%d,%d,%d}\n", r.fLeft, r.fTop, r.fRight, r.fBottom);

-#StdOut

+    SkRegion region;
+    region.setRect({1, 2, 3, 4});
+    iter.reset(region);
+    auto r = iter.rect();
+    SkDebugf("rect={%d,%d,%d,%d}\n", r.fLeft, r.fTop, r.fRight, r.fBottom);
+#StdOut
 rect={1,2,3,4}
 ##
 ##
@@ -81,18 +78,15 @@
 
 #Method Iterator(const SkRegion& region)
 #Line # constructs Region iterator ##
-Sets Iterator to return elements of IRect array in region.
-#Param region  Region to iterate ##
-
-#Return Region iterator ##
+#Populate
 
 #Example
-    SkRegion region;

-    region.setRect({1, 2, 3, 4});

-    SkRegion::Iterator iter(region);

-    auto r = iter.rect();

-    SkDebugf("rect={%d,%d,%d,%d}\n", r.fLeft, r.fTop, r.fRight, r.fBottom);

-#StdOut

+    SkRegion region;
+    region.setRect({1, 2, 3, 4});
+    SkRegion::Iterator iter(region);
+    auto r = iter.rect();
+    SkDebugf("rect={%d,%d,%d,%d}\n", r.fLeft, r.fTop, r.fRight, r.fBottom);
+#StdOut
 rect={1,2,3,4}
 ##
 ##
@@ -105,41 +99,37 @@
 
 #Method bool rewind()
 #Line # points Iterator to start ##
-
-Points Iterator to start of Region.
-Returns true if Region was set; otherwise, returns false.
-
-#Return true if Region was set ##
+#Populate
 
 #Example
 #Bug 8186
-    auto debugster = [](const char* label, SkRegion::Iterator& iter, bool addRewind) -> void {

-        if (addRewind) {

-            bool success = iter.rewind();

-            SkDebugf("%14s rewind success=%s\n", label, success ? "true" : "false");

-        }

-        auto r = iter.rect();

-        SkDebugf("%14s rect={%d,%d,%d,%d}\n", label, r.fLeft, r.fTop, r.fRight, r.fBottom);

-    };

-    SkRegion::Iterator iter;

-    debugster("empty iter", iter, true);

-    SkRegion region;

-    iter.reset(region);

-    debugster("empty region", iter, true);

-    region.setRect({1, 2, 3, 4});

-    iter.reset(region);

-    debugster("after set rect", iter, false);

-    debugster("after rewind", iter, true);

-#StdOut

+    auto debugster = [](const char* label, SkRegion::Iterator& iter, bool addRewind) -> void {
+        if (addRewind) {
+            bool success = iter.rewind();
+            SkDebugf("%14s rewind success=%s\n", label, success ? "true" : "false");
+        }
+        auto r = iter.rect();
+        SkDebugf("%14s rect={%d,%d,%d,%d}\n", label, r.fLeft, r.fTop, r.fRight, r.fBottom);
+    };
+    SkRegion::Iterator iter;
+    debugster("empty iter", iter, true);
+    SkRegion region;
+    iter.reset(region);
+    debugster("empty region", iter, true);
+    region.setRect({1, 2, 3, 4});
+    iter.reset(region);
+    debugster("after set rect", iter, false);
+    debugster("after rewind", iter, true);
+#StdOut
 #Volatile
-    empty iter rewind success=false

-    empty iter rect={0,0,0,0}

-  empty region rewind success=true

-  empty region rect={0,0,0,0}

-after set rect rect={1,2,3,4}

-  after rewind rewind success=true

-  after rewind rect={1,2,3,4}

-##

+    empty iter rewind success=false
+    empty iter rect={0,0,0,0}
+  empty region rewind success=true
+  empty region rect={0,0,0,0}
+after set rect rect={1,2,3,4}
+  after rewind rewind success=true
+  after rewind rect={1,2,3,4}
+##
 ##
 
 #SeeAlso reset
@@ -150,27 +140,24 @@
 
 #Method void reset(const SkRegion& region)
 #Line # sets Region to iterate ##
-
-Resets iterator, using the new Region.
-
-#Param region  Region to iterate ##
+#Populate
 
 #Example
-    auto debugster = [](const char* label, SkRegion::Iterator& iter) -> void {

-        SkDebugf("%14s: done=%s\n", label, iter.done() ? "true" : "false");

-    };

-    SkRegion region;

-    SkRegion::Iterator iter(region);

-    debugster("empty region", iter);

-    region.setRect({1, 2, 3, 4});

-    debugster("after set rect", iter);

-    iter.reset(region);

-    debugster("after reset", iter);

-#StdOut

-  empty region: done=true

-after set rect: done=true

-   after reset: done=false

-##

+    auto debugster = [](const char* label, SkRegion::Iterator& iter) -> void {
+        SkDebugf("%14s: done=%s\n", label, iter.done() ? "true" : "false");
+    };
+    SkRegion region;
+    SkRegion::Iterator iter(region);
+    debugster("empty region", iter);
+    region.setRect({1, 2, 3, 4});
+    debugster("after set rect", iter);
+    iter.reset(region);
+    debugster("after reset", iter);
+#StdOut
+  empty region: done=true
+after set rect: done=true
+   after reset: done=false
+##
 ##
 
 #SeeAlso rewind
@@ -181,20 +168,17 @@
 
 #Method bool done() const
 #Line # returns if data parsing is complete ##
-
-Returns true if Iterator is pointing to final IRect in Region.
-
-#Return true if data parsing is complete ##
+#Populate
 
 #Example
-    SkRegion region;

-    SkRegion::Iterator iter(region);

-    SkDebugf("done=%s\n", iter.done() ? "true" : "false"); 

-    region.setRect({1, 2, 3, 4});

-    iter.rewind();

-    SkDebugf("done=%s\n", iter.done() ? "true" : "false"); 

+    SkRegion region;
+    SkRegion::Iterator iter(region);
+    SkDebugf("done=%s\n", iter.done() ? "true" : "false"); 
+    region.setRect({1, 2, 3, 4});
+    iter.rewind();
+    SkDebugf("done=%s\n", iter.done() ? "true" : "false"); 
 #StdOut
-done=true

+done=true
 done=false
 ##
 ##
@@ -207,21 +191,20 @@
 
 #Method void next()
 #Line # advances to next IRect ##
-
-Advances Iterator to next IRect in Region if it is not done.
+#Populate
 
 #Example
-    SkRegion region;

-    SkIRect rects[] = {{1, 2, 3, 4}, {5, 6, 7, 8}};

-    region.setRects(rects, SK_ARRAY_COUNT(rects));

-    SkRegion::Iterator iter(region);

-    do {

-        auto r2 = iter.rect();

-        SkDebugf("rect={%d,%d,%d,%d}\n", r2.fLeft, r2.fTop, r2.fRight, r2.fBottom);

-        iter.next();

-    } while (!iter.done());

+    SkRegion region;
+    SkIRect rects[] = {{1, 2, 3, 4}, {5, 6, 7, 8}};
+    region.setRects(rects, SK_ARRAY_COUNT(rects));
+    SkRegion::Iterator iter(region);
+    do {
+        auto r2 = iter.rect();
+        SkDebugf("rect={%d,%d,%d,%d}\n", r2.fLeft, r2.fTop, r2.fRight, r2.fBottom);
+        iter.next();
+    } while (!iter.done());
 #StdOut
-rect={1,2,3,4}

+rect={1,2,3,4}
 rect={5,6,7,8}
 ##
 ##
@@ -234,25 +217,21 @@
 
 #Method const SkIRect& rect() const
 #Line # returns part of Region as IRect ##
-
-Returns IRect element in Region. Does not return predictable results if Region
-is empty.
-
-#Return part of Region as IRect ##
+#Populate
 
 #Example
 #Bug 8186
-    SkRegion region;

-    SkRegion::Iterator iter(region);

-    auto r1 = iter.rect();

-    SkDebugf("rect={%d,%d,%d,%d}\n", r1.fLeft, r1.fTop, r1.fRight, r1.fBottom); 

-    region.setRect({1, 2, 3, 4});

-    iter.rewind();

-    auto r2 = iter.rect();

+    SkRegion region;
+    SkRegion::Iterator iter(region);
+    auto r1 = iter.rect();
+    SkDebugf("rect={%d,%d,%d,%d}\n", r1.fLeft, r1.fTop, r1.fRight, r1.fBottom); 
+    region.setRect({1, 2, 3, 4});
+    iter.rewind();
+    auto r2 = iter.rect();
     SkDebugf("rect={%d,%d,%d,%d}\n", r2.fLeft, r2.fTop, r2.fRight, r2.fBottom); 
 #StdOut
 #Volatile
-rect={0,0,0,0}

+rect={0,0,0,0}
 rect={1,2,3,4}
 ##
 ##
@@ -265,19 +244,16 @@
 
 #Method const SkRegion* rgn() const
 #Line # returns original Region ##
-
-Returns Region if set; otherwise, returns nullptr.
-
-#Return iterated Region ##
+#Populate
 
 #Example
-    SkRegion region;

-    SkIRect rects[] = {{1, 2, 3, 4}, {3, 4, 5, 6}};

-    region.setRects(rects, SK_ARRAY_COUNT(rects));

-    SkRegion::Iterator iter(region);

-    auto r = iter.rect();

-    SkDebugf("rect={%d,%d,%d,%d}\n", r.fLeft, r.fTop, r.fRight, r.fBottom);

-    auto b = iter.rgn()->getBounds();

+    SkRegion region;
+    SkIRect rects[] = {{1, 2, 3, 4}, {3, 4, 5, 6}};
+    region.setRects(rects, SK_ARRAY_COUNT(rects));
+    SkRegion::Iterator iter(region);
+    auto r = iter.rect();
+    SkDebugf("rect={%d,%d,%d,%d}\n", r.fLeft, r.fTop, r.fRight, r.fBottom);
+    auto b = iter.rgn()->getBounds();
     SkDebugf("bounds={%d,%d,%d,%d}\n", b.fLeft, b.fTop, b.fRight, b.fBottom);
 ##
 
@@ -309,21 +285,15 @@
 
 #Method Cliperator(const SkRegion& region, const SkIRect& clip)
 #Line # constructs Region iterator with clip ##
-
-Sets Cliperator to return elements of IRect array in Region within clip.
-
-#Param region  Region to iterate ##
-#Param clip  bounds of iteration ##
-
-#Return Region iterator ##
+#Populate
 
 #Example
-    SkRegion region;

-    region.setRect({1, 2, 3, 4});

-    SkRegion::Cliperator clipper(region, {0, 0, 2, 3});

-    auto r = clipper.rect();

-    SkDebugf("rect={%d,%d,%d,%d}\n", r.fLeft, r.fTop, r.fRight, r.fBottom);

-#StdOut

+    SkRegion region;
+    region.setRect({1, 2, 3, 4});
+    SkRegion::Cliperator clipper(region, {0, 0, 2, 3});
+    auto r = clipper.rect();
+    SkDebugf("rect={%d,%d,%d,%d}\n", r.fLeft, r.fTop, r.fRight, r.fBottom);
+#StdOut
 rect={1,2,2,3}
 ##
 ##
@@ -336,22 +306,19 @@
 
 #Method bool done()
 #Line # returns if data parsing is complete ##
-
-Returns true if Cliperator is pointing to final IRect in Region.
-
-#Return true if data parsing is complete ##
+#Populate
 
 #Example
-    auto debugster = [](const char* label, SkRegion& region) -> void {

-        SkRegion::Cliperator clipper(region, {0, 0, 5, 5});

+    auto debugster = [](const char* label, SkRegion& region) -> void {
+        SkRegion::Cliperator clipper(region, {0, 0, 5, 5});
         SkDebugf("%14s done=%s\n", label, clipper.done() ? "true" : "false"); 
-    };

-    SkRegion region;

-    debugster("empty region", region);

-    region.setRect({1, 2, 3, 4});

-    debugster("after add rect", region);

-#StdOut

-  empty region done=true

+    };
+    SkRegion region;
+    debugster("empty region", region);
+    region.setRect({1, 2, 3, 4});
+    debugster("after add rect", region);
+#StdOut
+  empty region done=true
 after add rect done=false
 ##
 ##
@@ -364,21 +331,20 @@
 
 #Method void  next()
 #Line # advances to next IRect within clip ##
-
-Advances iterator to next IRect in Region contained by clip.
+#Populate
 
 #Example
-    SkRegion region;

-    SkIRect rects[] = {{1, 2, 3, 4}, {5, 6, 7, 8}};

-    region.setRects(rects, SK_ARRAY_COUNT(rects));

-    SkRegion::Cliperator clipper(region, {0, 3, 8, 7});

-    do {

-        auto r2 = clipper.rect();

-        SkDebugf("rect={%d,%d,%d,%d}\n", r2.fLeft, r2.fTop, r2.fRight, r2.fBottom);

-        clipper.next();

+    SkRegion region;
+    SkIRect rects[] = {{1, 2, 3, 4}, {5, 6, 7, 8}};
+    region.setRects(rects, SK_ARRAY_COUNT(rects));
+    SkRegion::Cliperator clipper(region, {0, 3, 8, 7});
+    do {
+        auto r2 = clipper.rect();
+        SkDebugf("rect={%d,%d,%d,%d}\n", r2.fLeft, r2.fTop, r2.fRight, r2.fBottom);
+        clipper.next();
     } while (!clipper.done());
 #StdOut
-rect={1,3,3,4}

+rect={1,3,3,4}
 rect={5,6,7,7}
 ##
 ##
@@ -391,29 +357,24 @@
 
 #Method const SkIRect& rect() const
 #Line # returns part of Region as IRect intersected with clip ##
-
-Returns IRect element in Region, intersected with clip passed to Cliperator
-constructor. Does not return predictable results if Region
-is empty.
-
-#Return part of Region inside clip as IRect  ##
+#Populate
 
 #Example
 #Bug 8186
-    auto debugster = [](const char* label, SkRegion& region) -> void {

-        SkRegion::Cliperator clipper(region, {0, 0, 5, 3});

-        auto r = clipper.rect();

-        SkDebugf("%14s rect={%d,%d,%d,%d}\n", label, r.fLeft, r.fTop, r.fRight, r.fBottom); 

+    auto debugster = [](const char* label, SkRegion& region) -> void {
+        SkRegion::Cliperator clipper(region, {0, 0, 5, 3});
+        auto r = clipper.rect();
+        SkDebugf("%14s rect={%d,%d,%d,%d}\n", label, r.fLeft, r.fTop, r.fRight, r.fBottom); 
     };
-    SkRegion region;

-    debugster("empty region", region);

-    region.setRect({1, 2, 3, 4});

-    debugster("after set rect", region);

-#StdOut

+    SkRegion region;
+    debugster("empty region", region);
+    region.setRect({1, 2, 3, 4});
+    debugster("after set rect", region);
+#StdOut
 #Volatile
-  empty region rect={1094713344,1065353216,0,-1}

-after set rect rect={1,2,3,3}

-##

+  empty region rect={1094713344,1065353216,0,-1}
+after set rect rect={1,2,3,3}
+##
 ##
 
 #SeeAlso next done
@@ -441,24 +402,15 @@
 
 #Method Spanerator(const SkRegion& region, int y, int left, int right)
 #Line # constructs Region iterator on scan line ##
-
-Sets Spanerator to return line segments in Region on scan line.
-
-
-#Param region  Region to iterate ##
-#Param y  horizontal line to intersect ##
-#Param left  bounds of iteration ##
-#Param right  bounds of iteration ##
-
-#Return Region iterator ##
+#Populate
 
 #Example
-    SkRegion region;

-    region.setRect({1, 2, 3, 4});

-    SkRegion::Spanerator spanner(region, 3, 2, 4);

-    int left, right;

-    bool result = spanner.next(&left, &right);

-    SkDebugf("result=%s left=%d right=%d\n", result ? "true" : "false", left, right);

+    SkRegion region;
+    region.setRect({1, 2, 3, 4});
+    SkRegion::Spanerator spanner(region, 3, 2, 4);
+    int left, right;
+    bool result = spanner.next(&left, &right);
+    SkDebugf("result=%s left=%d right=%d\n", result ? "true" : "false", left, right);
 ##
 
 #SeeAlso SkRegion Iterator Cliperator
@@ -469,30 +421,23 @@
 
 #Method bool next(int* left, int* right)
 #Line # advances to next span on horizontal line ##
-
-Advances iterator to next span intersecting Region within line segment provided
-in constructor. Returns true if interval was found.
-
-#Param left  pointer to span start; may be nullptr ##
-#Param right  pointer to span end; may be nullptr ##
-
-#Return true if interval was found ##
+#Populate
 
 #Example
-    auto debugster = [](const char* label, SkRegion& region) -> void {

-        SkRegion::Spanerator spanner(region, 3, 2, 4);

-        int left, right;

-        bool result = spanner.next(&left, &right);

-        SkDebugf("%14s: result=%s", label, result ? "true" : "false");

-        if (result) SkDebugf(" left=%d right=%d", left, right);

-        SkDebugf("\n");

-    };

-    SkRegion region;

-    debugster("empty region", region);

-    region.setRect({1, 2, 3, 4});

+    auto debugster = [](const char* label, SkRegion& region) -> void {
+        SkRegion::Spanerator spanner(region, 3, 2, 4);
+        int left, right;
+        bool result = spanner.next(&left, &right);
+        SkDebugf("%14s: result=%s", label, result ? "true" : "false");
+        if (result) SkDebugf(" left=%d right=%d", left, right);
+        SkDebugf("\n");
+    };
+    SkRegion region;
+    debugster("empty region", region);
+    region.setRect({1, 2, 3, 4});
     debugster("after set rect", region);
 #StdOut
-  empty region: result=false

+  empty region: result=false
 after set rect: result=true left=2 right=3
 ##
 ##
@@ -508,11 +453,7 @@
 #Method SkRegion()
 #In Constructors
 #Line # constructs with default values ##
-
-Constructs an empty Region. Region is set to empty bounds
-at (0, 0) with zero width and height.
-
-#Return empty Region ##
+#Populate
 
 #Example
 SkRegion region;
@@ -532,23 +473,12 @@
 #Method SkRegion(const SkRegion& region)
 #In Constructors
 #Line # makes a shallow copy ##
-Constructs a copy of an existing region.
-Copy constructor makes two regions identical by value. Internally, region and
-the returned result share pointer values. The underlying Rect array is
-copied when modified.
-
-Creating a Region copy is very efficient and never allocates memory.
-Regions are always copied by value from the interface; the underlying shared
-pointers are not exposed.
-
-#Param region  Region to copy by value ##
-
-#Return copy of Region ##
+#Populate
 
 #Example
-    auto debugster = [](const char* label, SkRegion& region) -> void {

-        auto r = region.getBounds();

-        SkDebugf("%14s: {%d,%d,%d,%d}\n", label, r.fLeft, r.fTop, r.fRight, r.fBottom);

+    auto debugster = [](const char* label, SkRegion& region) -> void {
+        auto r = region.getBounds();
+        SkDebugf("%14s: {%d,%d,%d,%d}\n", label, r.fLeft, r.fTop, r.fRight, r.fBottom);
     };
     SkRegion region({1, 2, 3, 4});
     SkRegion region2(region);
@@ -559,10 +489,10 @@
     debugster("region bounds", region);
     debugster("region2 bounds", region2);
 #StdOut
- region bounds: {1,2,3,4}

-region2 bounds: {1,2,3,4}

-    after region set empty:

- region bounds: {0,0,0,0}

+ region bounds: {1,2,3,4}
+region2 bounds: {1,2,3,4}
+    after region set empty:
+ region bounds: {0,0,0,0}
 region2 bounds: {1,2,3,4}
 ##
 ##
@@ -576,11 +506,7 @@
 #Method explicit SkRegion(const SkIRect& rect)
 #In Constructors
 #Line # constructs Region matching IRect ##
-Constructs a rectangular Region matching the bounds of rect.
-
-#Param rect  bounds of constructed Region ##
-
-#Return rectangular Region ##
+#Populate
 
 #Example
     SkRegion region({1, 2, 3, 4});
@@ -598,20 +524,20 @@
 #Method ~SkRegion()
 #In Constructors
 #Line # decreases Reference_Count of owned objects ##
-Releases ownership of any shared data and deletes data if Region is sole owner.
+#Populate
 
 #Example
 #Description
-delete calls Region Destructor, but copy of original in region2 is unaffected.
+delete calls Region destructor, but copy of original in region2 is unaffected.
 ##
     SkRegion* region = new SkRegion({1, 2, 3, 4});
     SkRegion region2(*region);
     delete region;
-    auto r = region2.getBounds();

-    SkDebugf("region2 bounds: {%d,%d,%d,%d}\n", r.fLeft, r.fTop, r.fRight, r.fBottom);

-#StdOut

-region2 bounds: {1,2,3,4}

-##

+    auto r = region2.getBounds();
+    SkDebugf("region2 bounds: {%d,%d,%d,%d}\n", r.fLeft, r.fTop, r.fRight, r.fBottom);
+#StdOut
+region2 bounds: {1,2,3,4}
+##
 ##
 
 #SeeAlso SkRegion() SkRegion(const SkRegion& region) SkRegion(const SkIRect& rect) operator=(const SkRegion& region)
@@ -623,32 +549,21 @@
 #Method SkRegion& operator=(const SkRegion& region)
 #In Operators
 #Line # makes a shallow copy ##
-Constructs a copy of an existing region.
-Makes two regions identical by value. Internally, region and
-the returned result share pointer values. The underlying Rect array is
-copied when modified.
-
-Creating a Region copy is very efficient and never allocates memory.
-Regions are always copied by value from the interface; the underlying shared
-pointers are not exposed.
-
-#Param region  Region to copy by value ##
-
-#Return Region to copy by value ##
+#Populate
 
 #Example
-    auto debugster = [](const char* label, SkRegion& region) -> void {

-        auto r = region.getBounds();

-        SkDebugf("%14s: {%d,%d,%d,%d}\n", label, r.fLeft, r.fTop, r.fRight, r.fBottom);

+    auto debugster = [](const char* label, SkRegion& region) -> void {
+        auto r = region.getBounds();
+        SkDebugf("%14s: {%d,%d,%d,%d}\n", label, r.fLeft, r.fTop, r.fRight, r.fBottom);
     };
     SkRegion region1({1, 2, 3, 4});
     SkRegion region2 = region1;
     debugster("region1 bounds", region1);
     debugster("region2 bounds", region2);
-#StdOut

-region1 bounds: {1,2,3,4}

-region2 bounds: {1,2,3,4}

-##

+#StdOut
+region1 bounds: {1,2,3,4}
+region2 bounds: {1,2,3,4}
+##
 ##
 
 #SeeAlso set swap SkRegion(const SkRegion& region)
@@ -660,13 +575,7 @@
 #Method bool operator==(const SkRegion& other)_const
 #In Operators
 #Line # compares Regions for equality ##
-
-Compares Region and other; returns true if they enclose exactly
-the same area.
-
-#Param other  Region to compare ##
-
-#Return true if Region pair are equivalent ##
+#Populate
 
 #Example
     auto debugster = [](const char* prefix, const SkRegion& a, const SkRegion& b) -> void {
@@ -680,8 +589,8 @@
     one.setEmpty();
     debugster("set empty", one, two);
 #StdOut
-empty one == two

-set rect one != two

+empty one == two
+set rect one != two
 set empty one == two
 ##
 ##
@@ -695,12 +604,7 @@
 #Method bool operator!=(const SkRegion& other)_const
 #In Operators
 #Line # compares Regions for inequality ##
-
-Compares Region and other; returns true if they do not enclose the same area.
-
-#Param other  Region to compare ##
-
-#Return true if Region pair are not equivalent ##
+#Populate
 
 #Example
     auto debugster = [](const char* prefix, const SkRegion& a, const SkRegion& b) -> void {
@@ -715,8 +619,8 @@
     two.op({1, 3, 3, 4}, SkRegion::kUnion_Op);
     debugster("union rect", one, two);
 #StdOut
-empty one == two

-set rect one != two

+empty one == two
+set rect one != two
 union rect one == two
 ##
 ##
@@ -730,34 +634,22 @@
 #Method bool set(const SkRegion& src)
 #In Constructors
 #Line # makes a shallow copy ##
-
-Sets Region to src, and returns true if src bounds is not empty.
-This makes Region and src identical by value. Internally, 
-Region and src share pointer values. The underlying Rect array is
-copied when modified.
-
-Creating a Region copy is very efficient and never allocates memory.
-Regions are always copied by value from the interface; the underlying shared
-pointers are not exposed.
-
-#Param src  Region to copy ##
-
-#Return copy of src ##
+#Populate
 
 #Example
-    auto debugster = [](const char* label, SkRegion& region) -> void {

-        auto r = region.getBounds();

-        SkDebugf("%14s: {%d,%d,%d,%d}\n", label, r.fLeft, r.fTop, r.fRight, r.fBottom);

+    auto debugster = [](const char* label, SkRegion& region) -> void {
+        auto r = region.getBounds();
+        SkDebugf("%14s: {%d,%d,%d,%d}\n", label, r.fLeft, r.fTop, r.fRight, r.fBottom);
     };
     SkRegion region1({1, 2, 3, 4});
     SkRegion region2;
     region2.set(region1);
     debugster("region1 bounds", region1);
     debugster("region2 bounds", region2);
-#StdOut

-region1 bounds: {1,2,3,4}

-region2 bounds: {1,2,3,4}

-##

+#StdOut
+region1 bounds: {1,2,3,4}
+region2 bounds: {1,2,3,4}
+##
 ##
 
 #SeeAlso operator=(const SkRegion& region) swap SkRegion(const SkRegion& region)
@@ -769,30 +661,22 @@
 #Method void swap(SkRegion& other)
 #In Operators
 #Line # exchanges Region pair ##
-
-Exchanges IRect array of Region and other. swap() internally exchanges pointers,
-so it is lightweight and does not allocate memory.
-
-swap() usage has largely been replaced by operator=(const SkRegion& region).
-Paths do not copy their content on assignment until they are written to,
-making assignment as efficient as swap().
-
-#Param other  operator=(const SkRegion& region) set ##
+#Populate
 
 #Example
-    auto debugster = [](const char* label, SkRegion& region) -> void {

-        auto r = region.getBounds();

-        SkDebugf("%14s: {%d,%d,%d,%d}\n", label, r.fLeft, r.fTop, r.fRight, r.fBottom);

+    auto debugster = [](const char* label, SkRegion& region) -> void {
+        auto r = region.getBounds();
+        SkDebugf("%14s: {%d,%d,%d,%d}\n", label, r.fLeft, r.fTop, r.fRight, r.fBottom);
     };
     SkRegion region1({1, 2, 3, 4});
     SkRegion region2;
     region1.swap(region2);
     debugster("region1 bounds", region1);
     debugster("region2 bounds", region2);
-#StdOut

-region1 bounds: {0,0,0,0}

-region2 bounds: {1,2,3,4}

-##

+#StdOut
+region1 bounds: {0,0,0,0}
+region2 bounds: {1,2,3,4}
+##
 ##
 
 #SeeAlso operator=(const SkRegion& region) set SkRegion(const SkRegion& region)
@@ -804,17 +688,11 @@
 #Method bool isEmpty() const
 #In Property
 #Line # returns if bounds has no width or height ##
-
-Returns true if Region is empty.
-Empty Region has bounds width or height less than or equal to zero.
-SkRegion() constructs empty Region; setEmpty
-and setRect with dimensionless data make Region empty.
-
-#Return true if bounds has no width or height ##
+#Populate
 
 #Example
-    auto debugster = [](const char* label, SkRegion& region) -> void {

-        SkDebugf("%14s: region is %s" "empty\n", label, region.isEmpty() ? "" : "not ");

+    auto debugster = [](const char* label, SkRegion& region) -> void {
+        SkDebugf("%14s: region is %s" "empty\n", label, region.isEmpty() ? "" : "not ");
     };
     SkRegion region;
     debugster("initial", region);
@@ -823,8 +701,8 @@
     region.setEmpty();
     debugster("set empty", region);
 #StdOut
-       initial: region is empty

-      set rect: region is not empty

+       initial: region is empty
+      set rect: region is not empty
      set empty: region is empty
 ##
 ##
@@ -838,10 +716,7 @@
 #Method bool isRect() const
 #In Property
 #Line # returns if Region contains one IRect ##
-
-Returns true if Region is one IRect with positive dimensions.
-
-#Return true if Region contains one IRect ##
+#Populate
 
 #Example
     auto debugster = [](const char* label, const SkRegion& region) -> void {
@@ -854,8 +729,8 @@
     region.setEmpty();
     debugster("set empty", region);
 #StdOut
-initial: region is not rect

-set rect: region is rect

+initial: region is not rect
+set rect: region is rect
 set empty: region is not rect
 ##
 ##
@@ -869,24 +744,21 @@
 #Method bool isComplex() const
 #In Property
 #Line # returns true if Region contains more than one IRect ##
-
-Returns true if Region is described by more than one rectangle.
-
-#Return true if Region contains more than one IRect ##
+#Populate
 
 #Example
-    auto debugster = [](const char* label, const SkRegion& region) -> void {

-                SkDebugf("%s: region is %s" "complex\n", label, region.isComplex() ? "" : "not ");

-    };

-    SkRegion region;

-    debugster("initial", region);

-    region.setRect({1, 2, 3, 4});

-    debugster("set rect", region);

-    region.op({2, 3, 4, 5}, SkRegion::kUnion_Op);

+    auto debugster = [](const char* label, const SkRegion& region) -> void {
+                SkDebugf("%s: region is %s" "complex\n", label, region.isComplex() ? "" : "not ");
+    };
+    SkRegion region;
+    debugster("initial", region);
+    region.setRect({1, 2, 3, 4});
+    debugster("set rect", region);
+    region.op({2, 3, 4, 5}, SkRegion::kUnion_Op);
     debugster("op rect", region);
 #StdOut
-initial: region is not complex

-set rect: region is not complex

+initial: region is not complex
+set rect: region is not complex
 op rect: region is complex
 ##
 ##
@@ -900,20 +772,16 @@
 #Method const SkIRect& getBounds() const
 #In Property
 #Line # returns maximum and minimum of IRect array ##
-
-Returns minimum and maximum axes values of IRect array.
-Returns (0, 0, 0, 0) if Region is empty.
-
-#Return combined bounds of all IRect elements ##
+#Populate
 
 #Example
-    SkRegion region({1, 2, 3, 4});

-    region.op({2, 3, 4, 5}, SkRegion::kUnion_Op);

-    auto r = region.getBounds();

-    SkDebugf("bounds: {%d,%d,%d,%d}\n", r.fLeft, r.fTop, r.fRight, r.fBottom);

-#StdOut

-bounds: {1,2,4,5}

-##

+    SkRegion region({1, 2, 3, 4});
+    region.op({2, 3, 4, 5}, SkRegion::kUnion_Op);
+    auto r = region.getBounds();
+    SkDebugf("bounds: {%d,%d,%d,%d}\n", r.fLeft, r.fTop, r.fRight, r.fBottom);
+#StdOut
+bounds: {1,2,4,5}
+##
 ##
 
 #SeeAlso isEmpty isRect
@@ -925,29 +793,21 @@
 #Method int computeRegionComplexity() const
 #In Property
 #Line # returns relative complexity ##
-
-Returns a value that increases with the number of
-elements in Region. Returns zero if Region is empty.
-Returns one if Region equals IRect; otherwise, returns
-value greater than one indicating that Region is complex.
-
-Call to compare Regions for relative complexity.
-
-#Return relative complexity ##
+#Populate
 
 #Example
-    auto debugster = [](const char* label, const SkRegion& region) -> void {

-                SkDebugf("%s: region complexity %d\n", label, region.computeRegionComplexity());

-    };

-    SkRegion region;

-    debugster("initial", region);

-    region.setRect({1, 2, 3, 4});

-    debugster("set rect", region);

-    region.op({2, 3, 4, 5}, SkRegion::kUnion_Op);

+    auto debugster = [](const char* label, const SkRegion& region) -> void {
+                SkDebugf("%s: region complexity %d\n", label, region.computeRegionComplexity());
+    };
+    SkRegion region;
+    debugster("initial", region);
+    region.setRect({1, 2, 3, 4});
+    debugster("set rect", region);
+    region.op({2, 3, 4, 5}, SkRegion::kUnion_Op);
     debugster("op rect", region);
 #StdOut
-initial: region complexity 0

-set rect: region complexity 1

+initial: region complexity 0
+set rect: region complexity 1
 op rect: region complexity 3
 ##
 ##
@@ -961,24 +821,17 @@
 #Method bool getBoundaryPath(SkPath* path) const
 #In Property
 #Line # appends Region outline to Path ##
-
-Appends outline of Region to path.
-Returns true if Region is not empty; otherwise, returns false, and leaves path
-unmodified.
-
-#Param path  Path to append to ##
-
-#Return true if path changed ##
+#Populate
 
 #Example
 #Height 100
-    SkRegion region;

-    region.setRect({10, 20, 90, 60});

-    region.op({30, 40, 60, 80}, SkRegion::kXOR_Op);

-    canvas->drawRegion(region, SkPaint());

-    SkPath path;

-    region.getBoundaryPath(&path);

-    path.offset(100, 0);

+    SkRegion region;
+    region.setRect({10, 20, 90, 60});
+    region.op({30, 40, 60, 80}, SkRegion::kXOR_Op);
+    canvas->drawRegion(region, SkPaint());
+    SkPath path;
+    region.getBoundaryPath(&path);
+    path.offset(100, 0);
     canvas->drawPath(path, SkPaint());
 ##
 
@@ -991,16 +844,12 @@
 #Method bool setEmpty()
 #In Constructors
 #Line # constructs with default values ##
-
-Constructs an empty Region. Region is set to empty bounds
-at (0, 0) with zero width and height. Always returns false.
-
-#Return false ##
+#Populate
 
 #Example
-    auto debugster = [](const char* label, SkRegion& region) -> void {

-        auto r = region.getBounds();

-        SkDebugf("%14s: {%d,%d,%d,%d}\n", label, r.fLeft, r.fTop, r.fRight, r.fBottom);

+    auto debugster = [](const char* label, SkRegion& region) -> void {
+        auto r = region.getBounds();
+        SkDebugf("%14s: {%d,%d,%d,%d}\n", label, r.fLeft, r.fTop, r.fRight, r.fBottom);
     };
     SkRegion region({1, 2, 3, 4});
     debugster("region bounds", region);
@@ -1008,9 +857,9 @@
     SkDebugf("    after region set empty:\n");
     debugster("region bounds", region);
 #StdOut
- region bounds: {1,2,3,4}

-    after region set empty:

- region bounds: {0,0,0,0}

+ region bounds: {1,2,3,4}
+    after region set empty:
+ region bounds: {0,0,0,0}
 ##
 ##
 
@@ -1023,13 +872,7 @@
 #Method bool setRect(const SkIRect& rect)
 #In Constructors
 #Line # constructs Region matching IRect ##
-
-Constructs a rectangular Region matching the bounds of rect.
-If rect is empty, constructs empty and returns false.
-
-#Param rect  bounds of constructed Region ##
-
-#Return true if rect is not empty ##
+#Populate
 
 #Example
     SkRegion region({1, 2, 3, 4});
@@ -1038,8 +881,8 @@
     SkDebugf("region is %s" "empty\n", region.isEmpty() ? "" : "not ");
     SkDebugf("setEmpty: %s\n", setEmpty ? "true" : "false");
 #StdOut
-region is not empty

-region is empty

+region is not empty
+region is empty
 setEmpty: false
 ##
 ##
@@ -1053,23 +896,13 @@
 #Method bool setRect(int32_t left, int32_t top, int32_t right, int32_t bottom)
 #In Constructors
 #Line # constructs Region matching bounds ##
-
-Constructs Region with bounds (left, top, right, bottom).
-Returns true if left is less than right and top is less than bottom; otherwise,
-constructs empty Region and returns false.
-
-#Param left edge of bounds on x-axis ##
-#Param top  edge of bounds on y-axis ##
-#Param right  edge of bounds on x-axis ##
-#Param bottom  edge of bounds on y-axis ##
-
-#Return rectangular Region ##
+#Populate
 
 #Example
-    auto debugster = [](const char* label, bool success, SkRegion& region) -> void {

-        auto r = region.getBounds();

-        SkDebugf("%14s: success:%s {%d,%d,%d,%d}\n", label, success ? "true" : "false",

-                 r.fLeft, r.fTop, r.fRight, r.fBottom);

+    auto debugster = [](const char* label, bool success, SkRegion& region) -> void {
+        auto r = region.getBounds();
+        SkDebugf("%14s: success:%s {%d,%d,%d,%d}\n", label, success ? "true" : "false",
+                 r.fLeft, r.fTop, r.fRight, r.fBottom);
     };
     SkRegion region;
     bool success = region.setRect(1, 2, 3, 4);
@@ -1077,7 +910,7 @@
     success = region.setRect(3, 2, 1, 4);
     debugster("set to: 3,2,1,4", success, region);
 #StdOut
-set to: 1,2,3,4: success:true {1,2,3,4}

+set to: 1,2,3,4: success:true {1,2,3,4}
 set to: 3,2,1,4: success:false {0,0,0,0}
 ##
 ##
@@ -1091,28 +924,19 @@
 #Method bool setRects(const SkIRect rects[], int count)
 #In Constructors
 #Line # sets IRect array ##
-
-Constructs Region as the union of IRect in rects array. If count is
-zero, constructs empty Region. Returns false if constructed Region is empty.
-
-May be faster than repeated calls to op().
-
-#Param rects  array of IRects ##
-#Param count  array size ##
-
-#Return  true if constructed Region is not empty ##
+#Populate
 
 #Example
 #Height 70
-    SkIRect rects[] = { {10, 10, 40, 40}, {20, 20, 50, 50}, {30, 30, 60, 60} };

-    SkRegion region;

-    region.setRects(rects, SK_ARRAY_COUNT(rects));

-    canvas->drawRegion(region, SkPaint());

-    region.setEmpty();

-    for (auto add : rects) {

-        region.op(add, SkRegion::kUnion_Op);

-    }

-    region.translate(100, 0);

+    SkIRect rects[] = { {10, 10, 40, 40}, {20, 20, 50, 50}, {30, 30, 60, 60} };
+    SkRegion region;
+    region.setRects(rects, SK_ARRAY_COUNT(rects));
+    canvas->drawRegion(region, SkPaint());
+    region.setEmpty();
+    for (auto add : rects) {
+        region.op(add, SkRegion::kUnion_Op);
+    }
+    region.translate(100, 0);
     canvas->drawRegion(region, SkPaint());
 ##
 
@@ -1125,39 +949,27 @@
 #Method bool setRegion(const SkRegion& region)
 #In Constructors
 #Line # copies Region ##
-
-Constructs a copy of an existing region.
-Makes two regions identical by value. Internally, region and
-the returned result share pointer values. The underlying Rect array is
-copied when modified.
-
-Creating a Region copy is very efficient and never allocates memory.
-Regions are always copied by value from the interface; the underlying shared
-pointers are not exposed.
-
-#Param region  Region to copy by value ##
-
-#Return Region to copy by value ##
+#Populate
 
 #Example
-    auto debugster = [](const char* label, SkRegion& region) -> void {

-        auto r = region.getBounds();

-        SkDebugf("%14s: {%d,%d,%d,%d}\n", label, r.fLeft, r.fTop, r.fRight, r.fBottom);

-    };

-    SkRegion region({1, 2, 3, 4});

-    SkRegion region2;

-    region2.setRegion(region);

-    debugster("region bounds", region);

-    debugster("region2 bounds", region2);

-    region2.setEmpty();

-    SkDebugf("    after region set empty:\n");

-    debugster("region bounds", region);

+    auto debugster = [](const char* label, SkRegion& region) -> void {
+        auto r = region.getBounds();
+        SkDebugf("%14s: {%d,%d,%d,%d}\n", label, r.fLeft, r.fTop, r.fRight, r.fBottom);
+    };
+    SkRegion region({1, 2, 3, 4});
+    SkRegion region2;
+    region2.setRegion(region);
+    debugster("region bounds", region);
+    debugster("region2 bounds", region2);
+    region2.setEmpty();
+    SkDebugf("    after region set empty:\n");
+    debugster("region bounds", region);
     debugster("region2 bounds", region2);
 #StdOut
- region bounds: {1,2,3,4}

-region2 bounds: {1,2,3,4}

-    after region set empty:

- region bounds: {1,2,3,4}

+ region bounds: {1,2,3,4}
+region2 bounds: {1,2,3,4}
+    after region set empty:
+ region bounds: {1,2,3,4}
 region2 bounds: {0,0,0,0}
 ##
 ##
@@ -1171,33 +983,23 @@
 #Method bool setPath(const SkPath& path, const SkRegion& clip)
 #In Constructors
 #Line # constructs Region from clipped Path ##
-
-Constructs Region to match outline of path within clip.
-Returns false if constructed Region is empty.
-
-Constructed Region draws the same pixels as path through clip when
-Anti_Aliasing is disabled.
-
-#Param path  Path providing outline ##
-#Param clip  Region containing path ##
-
-#Return true if constructed Region is not empty ##
+#Populate
 
 #Example
 #Height 120
-    SkPaint paint;

-    paint.setTextSize(128);

-    SkPath textPath;

-    paint.getTextPath("Q", 1, 0, 110, &textPath);

-    SkIRect clipRect = {20, 20, 100, 120};

-    SkRegion clipRegion(clipRect);

-    SkRegion region;

-    region.setPath(textPath, clipRegion);

-    canvas->drawRegion(region, SkPaint());

-    clipRect.offset(100, 0);

-    textPath.offset(100, 0);

-    canvas->clipRect(SkRect::Make(clipRect), false);

-    canvas->drawPath(textPath, SkPaint());

+    SkPaint paint;
+    paint.setTextSize(128);
+    SkPath textPath;
+    paint.getTextPath("Q", 1, 0, 110, &textPath);
+    SkIRect clipRect = {20, 20, 100, 120};
+    SkRegion clipRegion(clipRect);
+    SkRegion region;
+    region.setPath(textPath, clipRegion);
+    canvas->drawRegion(region, SkPaint());
+    clipRect.offset(100, 0);
+    textPath.offset(100, 0);
+    canvas->clipRect(SkRect::Make(clipRect), false);
+    canvas->drawPath(textPath, SkPaint());
 ##
 
 #SeeAlso setRects op
@@ -1209,26 +1011,20 @@
 #Method bool intersects(const SkIRect& rect) const
 #In Intersection
 #Line # returns true if areas overlap ##
-
-Returns true if Region intersects rect.
-Returns false if either rect or Region is empty, or do not intersect.
-
-#Param rect  IRect to intersect ##
-
-#Return true if rect and Region have area in common ##
+#Populate
 
 #Example
 #Duration 4
 #Height 128
-    SkPaint paint;

-    paint.setTextSize(128);

-    SkPath textPath;

-    paint.getTextPath("W", 1, 20, 110, &textPath);

-    SkRegion region;

-    region.setPath(textPath, SkRegion({0, 0, 256, 256}));

-    canvas->drawRegion(region, SkPaint());

-    SkIRect iRect = SkIRect::MakeXYWH(frame * 160, 55, 10, 10);

-    paint.setColor(region.intersects(iRect) ? SK_ColorBLUE : SK_ColorRED);

+    SkPaint paint;
+    paint.setTextSize(128);
+    SkPath textPath;
+    paint.getTextPath("W", 1, 20, 110, &textPath);
+    SkRegion region;
+    region.setPath(textPath, SkRegion({0, 0, 256, 256}));
+    canvas->drawRegion(region, SkPaint());
+    SkIRect iRect = SkIRect::MakeXYWH(frame * 160, 55, 10, 10);
+    paint.setColor(region.intersects(iRect) ? SK_ColorBLUE : SK_ColorRED);
     canvas->drawRect(SkRect::Make(iRect), paint);
 ##
 
@@ -1239,27 +1035,21 @@
 # ------------------------------------------------------------------------------
 
 #Method bool intersects(const SkRegion& other) const
-
-Returns true if Region intersects other.
-Returns false if either other or Region is empty, or do not intersect.
-
-#Param other  Region to intersect ##
-
-#Return true if other and Region have area in common ##
+#Populate
 
 #Example
 #Duration 4
 #Height 128
-    SkPaint paint;

-    paint.setTextSize(128);

-    SkPath hPath, dotPath;

-    paint.getTextPath("H", 1, 40, 110, &hPath);

-    paint.getTextPath(",", 1, frame * 180, 95, &dotPath);

-    SkRegion hRegion, dotRegion;

-    hRegion.setPath(hPath, SkRegion({0, 0, 256, 256}));

-    dotRegion.setPath(dotPath, SkRegion({0, 0, 256, 256}));

-    canvas->drawRegion(hRegion, paint);

-    paint.setColor(hRegion.intersects(dotRegion) ? SK_ColorBLUE : SK_ColorRED);

+    SkPaint paint;
+    paint.setTextSize(128);
+    SkPath hPath, dotPath;
+    paint.getTextPath("H", 1, 40, 110, &hPath);
+    paint.getTextPath(",", 1, frame * 180, 95, &dotPath);
+    SkRegion hRegion, dotRegion;
+    hRegion.setPath(hPath, SkRegion({0, 0, 256, 256}));
+    dotRegion.setPath(dotPath, SkRegion({0, 0, 256, 256}));
+    canvas->drawRegion(hRegion, paint);
+    paint.setColor(hRegion.intersects(dotRegion) ? SK_ColorBLUE : SK_ColorRED);
     canvas->drawRegion(dotRegion, paint);
 ##
 
@@ -1272,30 +1062,23 @@
 #Method bool contains(int32_t x, int32_t y) const
 #In Intersection
 #Line # returns true if points are equal or inside ##
-
-Returns true if IPoint (x, y) is inside Region.
-Returns false if Region is empty.
-
-#Param x  test IPoint x-coordinate ##
-#Param y  test IPoint y-coordinate ##
-
-#Return true if (x, y) is inside Region ##
+#Populate
 
 #Example
 #Height 128
-    SkPaint paint;

-    paint.setTextSize(128);

-    SkPath xPath;

-    paint.getTextPath("X", 1, 20, 110, &xPath);

-    SkRegion xRegion;

-    xRegion.setPath(xPath, SkRegion({0, 0, 256, 256}));

-    canvas->drawRegion(xRegion, paint);

-    for (int y = 0; y < 128; y += 8) {

-        for (int x = 0; x < 128; x += 8) {

-           paint.setColor(xRegion.contains(x, y) ? SK_ColorWHITE : SK_ColorRED);

-           canvas->drawPoint(x, y, paint);

-        }

-    }

+    SkPaint paint;
+    paint.setTextSize(128);
+    SkPath xPath;
+    paint.getTextPath("X", 1, 20, 110, &xPath);
+    SkRegion xRegion;
+    xRegion.setPath(xPath, SkRegion({0, 0, 256, 256}));
+    canvas->drawRegion(xRegion, paint);
+    for (int y = 0; y < 128; y += 8) {
+        for (int x = 0; x < 128; x += 8) {
+           paint.setColor(xRegion.contains(x, y) ? SK_ColorWHITE : SK_ColorRED);
+           canvas->drawPoint(x, y, paint);
+        }
+    }
 ##
 
 #SeeAlso intersects SkRect::contains
@@ -1305,31 +1088,25 @@
 # ------------------------------------------------------------------------------
 
 #Method bool contains(const SkIRect& other) const
-
-Returns true if other is completely inside Region.
-Returns false if Region or other is empty.
-
-#Param other IRect to contain ##
-
-#Return true if other is inside Region ##
+#Populate
 
 #Example
 #Height 128
 #Duration 4
-    SkPaint paint;

-    paint.setTextSize(128);

-    SkPath xPath;

-    paint.getTextPath("X", 1, 20, 110, &xPath);

-    SkRegion xRegion;

-    SkIRect drawBounds = {0, 0, 128, 128};

-    xRegion.setPath(xPath, SkRegion(drawBounds));

-    xRegion.op(drawBounds, SkRegion::kReverseDifference_Op);

-    canvas->drawRegion(xRegion, paint);

-    SkIRect test = SkIRect::MakeXYWH(frame* 128, 64, 5, 5);

-    if (xRegion.contains(test)) {

-        paint.setColor(SK_ColorYELLOW);

-        canvas->drawRect(SkRect::Make(test), paint);

-    }

+    SkPaint paint;
+    paint.setTextSize(128);
+    SkPath xPath;
+    paint.getTextPath("X", 1, 20, 110, &xPath);
+    SkRegion xRegion;
+    SkIRect drawBounds = {0, 0, 128, 128};
+    xRegion.setPath(xPath, SkRegion(drawBounds));
+    xRegion.op(drawBounds, SkRegion::kReverseDifference_Op);
+    canvas->drawRegion(xRegion, paint);
+    SkIRect test = SkIRect::MakeXYWH(frame* 128, 64, 5, 5);
+    if (xRegion.contains(test)) {
+        paint.setColor(SK_ColorYELLOW);
+        canvas->drawRect(SkRect::Make(test), paint);
+    }
 ##
 
 #SeeAlso intersects SkRect::contains
@@ -1339,31 +1116,25 @@
 # ------------------------------------------------------------------------------
 
 #Method bool contains(const SkRegion& other) const
-
-Returns true if other is completely inside Region.
-Returns false if Region or other is empty.
-
-#Param other  Region to contain ##
-
-#Return true if other is inside Region ##
+#Populate
 
 #Example
 #Height 128
 #Duration 4
-    SkPaint paint;

-    paint.setTextSize(128);

-    SkPath xPath, testPath;

-    paint.getTextPath("X", 1, 20, 110, &xPath);

-    paint.getTextPath("`", 1, frame * 150 - 40, 150, &testPath);

-    SkRegion xRegion, testRegion;

-    SkIRect drawBounds = {0, 0, 128, 128};

-    xRegion.setPath(xPath, SkRegion(drawBounds));

-    testRegion.setPath(testPath, SkRegion(drawBounds));

-    xRegion.op(drawBounds, SkRegion::kReverseDifference_Op);

-    canvas->drawRegion(xRegion, paint);

-    if (xRegion.contains(testRegion)) {

-        paint.setColor(SK_ColorYELLOW);

-        canvas->drawRegion(testRegion, paint);

+    SkPaint paint;
+    paint.setTextSize(128);
+    SkPath xPath, testPath;
+    paint.getTextPath("X", 1, 20, 110, &xPath);
+    paint.getTextPath("`", 1, frame * 150 - 40, 150, &testPath);
+    SkRegion xRegion, testRegion;
+    SkIRect drawBounds = {0, 0, 128, 128};
+    xRegion.setPath(xPath, SkRegion(drawBounds));
+    testRegion.setPath(testPath, SkRegion(drawBounds));
+    xRegion.op(drawBounds, SkRegion::kReverseDifference_Op);
+    canvas->drawRegion(xRegion, paint);
+    if (xRegion.contains(testRegion)) {
+        paint.setColor(SK_ColorYELLOW);
+        canvas->drawRegion(testRegion, paint);
     }
 ##
 
@@ -1376,25 +1147,19 @@
 #Method bool quickContains(const SkIRect& r) const
 #In Intersection
 #Line # returns true quickly if points are equal or inside ##
-
-Returns true if Region is a single rectangle and contains r.
-May return false even though Region contains r.
-
-#Param r  IRect to contain ##
-
-#Return true quickly if r points are equal or inside ##
+#Populate
 
 #Example
-    SkRegion region({1, 2, 3, 4});

-    SkIRect test = {2, 2, 3, 3};

-    SkDebugf("quickContains 1: %s\n", region.quickContains(test) ? "true" : "false");

-    region.op({1, 4, 3, 6}, SkRegion::kUnion_Op);

-    SkDebugf("quickContains 2: %s\n", region.quickContains(test) ? "true" : "false");

-    region.op({1, 7, 3, 8}, SkRegion::kUnion_Op);

+    SkRegion region({1, 2, 3, 4});
+    SkIRect test = {2, 2, 3, 3};
+    SkDebugf("quickContains 1: %s\n", region.quickContains(test) ? "true" : "false");
+    region.op({1, 4, 3, 6}, SkRegion::kUnion_Op);
+    SkDebugf("quickContains 2: %s\n", region.quickContains(test) ? "true" : "false");
+    region.op({1, 7, 3, 8}, SkRegion::kUnion_Op);
     SkDebugf("quickContains 3: %s\n", region.quickContains(test) ? "true" : "false");
 #StdOut
-quickContains 1: true

-quickContains 2: true

+quickContains 1: true
+quickContains 2: true
 quickContains 3: false
 ##
 ##
@@ -1407,32 +1172,21 @@
 
 #Method bool quickContains(int32_t left, int32_t top, int32_t right,
                        int32_t bottom) const
-
-Returns true if Region is a single rectangle and contains IRect
-(left, top, right, bottom).
-Returns false if Region is empty or IRect (left, top, right, bottom) is empty.
-May return false even though Region contains (left, top, right, bottom).
-
-#Param left edge of bounds on x-axis ##
-#Param top  edge of bounds on y-axis ##
-#Param right  edge of bounds on x-axis ##
-#Param bottom  edge of bounds on y-axis ##
-
-#Return true quickly if IRect are equal or inside ##
+#Populate
 
 #Example
-    auto debugster = [](const char* label, SkRegion& region) -> void {

-        SkDebugf("%s: %s\n", label, region.quickContains(2, 2, 3, 3) ? "true" : "false");

+    auto debugster = [](const char* label, SkRegion& region) -> void {
+        SkDebugf("%s: %s\n", label, region.quickContains(2, 2, 3, 3) ? "true" : "false");
     };
-    SkRegion region({1, 2, 3, 4});

-    debugster("quickContains 1", region);

-    region.op({1, 4, 3, 6}, SkRegion::kUnion_Op);

-    debugster("quickContains 2", region);

-    region.op({1, 7, 3, 8}, SkRegion::kUnion_Op);

-    debugster("quickContains 3", region);

+    SkRegion region({1, 2, 3, 4});
+    debugster("quickContains 1", region);
+    region.op({1, 4, 3, 6}, SkRegion::kUnion_Op);
+    debugster("quickContains 2", region);
+    region.op({1, 7, 3, 8}, SkRegion::kUnion_Op);
+    debugster("quickContains 3", region);
 #StdOut
-quickContains 1: true

-quickContains 2: true

+quickContains 1: true
+quickContains 2: true
 quickContains 3: false
 ##
 ##
@@ -1446,26 +1200,19 @@
 #Method bool quickReject(const SkIRect& rect) const
 #In Intersection
 #Line # returns true quickly if points are outside ##
-
-Returns true if Region does not intersect rect.
-Returns true if rect is empty or Region is empty.
-May return false even though Region does not intersect rect.
-
-#Param rect  IRect to intersect ##
-
-#Return true if rect does not intersect ##
+#Populate
 
 #Example
-    SkRegion region({1, 2, 3, 4});

-    SkIRect test = {4, 2, 5, 3};

-    SkDebugf("quickReject 1: %s\n", region.quickReject(test) ? "true" : "false");

-    region.op({1, 4, 3, 6}, SkRegion::kUnion_Op);

-    SkDebugf("quickReject 2: %s\n", region.quickReject(test) ? "true" : "false");

-    region.op({4, 7, 5, 8}, SkRegion::kUnion_Op);

+    SkRegion region({1, 2, 3, 4});
+    SkIRect test = {4, 2, 5, 3};
+    SkDebugf("quickReject 1: %s\n", region.quickReject(test) ? "true" : "false");
+    region.op({1, 4, 3, 6}, SkRegion::kUnion_Op);
+    SkDebugf("quickReject 2: %s\n", region.quickReject(test) ? "true" : "false");
+    region.op({4, 7, 5, 8}, SkRegion::kUnion_Op);
     SkDebugf("quickReject 3: %s\n", region.quickReject(test) ? "true" : "false");
 #StdOut
-quickReject 1: true

-quickReject 2: true

+quickReject 1: true
+quickReject 2: true
 quickReject 3: false
 ##
 ##
@@ -1477,28 +1224,21 @@
 # ------------------------------------------------------------------------------
 
 #Method bool quickReject(const SkRegion& rgn) const
-
-Returns true if Region does not intersect rgn.
-Returns true if rgn is empty or Region is empty.
-May return false even though Region does not intersect rgn.
-
-#Param rgn  Region to intersect ##
-
-#Return true if rgn does not intersect ##
+#Populate
 
 #Example
-    SkRegion region({1, 2, 3, 4});

-    SkRegion test;

-    SkIRect rects[] = {{4, 2, 5, 3}, {7, 2, 8, 3}};

-    test.setRects(rects, SK_ARRAY_COUNT(rects));

-    SkDebugf("quickReject 1: %s\n", region.quickReject(test) ? "true" : "false");

-    region.op({1, 4, 3, 6}, SkRegion::kUnion_Op);

-    SkDebugf("quickReject 2: %s\n", region.quickReject(test) ? "true" : "false");

-    region.op({4, 7, 5, 8}, SkRegion::kUnion_Op);

+    SkRegion region({1, 2, 3, 4});
+    SkRegion test;
+    SkIRect rects[] = {{4, 2, 5, 3}, {7, 2, 8, 3}};
+    test.setRects(rects, SK_ARRAY_COUNT(rects));
+    SkDebugf("quickReject 1: %s\n", region.quickReject(test) ? "true" : "false");
+    region.op({1, 4, 3, 6}, SkRegion::kUnion_Op);
+    SkDebugf("quickReject 2: %s\n", region.quickReject(test) ? "true" : "false");
+    region.op({4, 7, 5, 8}, SkRegion::kUnion_Op);
     SkDebugf("quickReject 3: %s\n", region.quickReject(test) ? "true" : "false");
 #StdOut
-quickReject 1: true

-quickReject 2: true

+quickReject 1: true
+quickReject 2: true
 quickReject 3: false
 ##
 ##
@@ -1512,22 +1252,18 @@
 #Method void translate(int dx, int dy)
 #In Transform
 #Line # translates IPoints in Region ##
-
-Offsets Region by IVector (dx, dy). Has no effect if Region is empty.
-
-#Param dx  x-axis offset ##
-#Param dy  y-axis offset ##
+#Populate
 
 #Example
 #Height 90
-    SkRegion test;

-    SkIRect rects[] = {{40, 20, 50, 30}, {70, 40, 80, 50}, { 60, 10, 70, 20}};

-    test.setRects(rects, SK_ARRAY_COUNT(rects));

-    SkPaint paint;

-    for (auto color :  { SK_ColorRED, SK_ColorBLUE, SK_ColorGREEN, SK_ColorMAGENTA } ) {

-        paint.setColor(color);

-        canvas->drawRegion(test, paint);

-        test.translate(10, 10);

+    SkRegion test;
+    SkIRect rects[] = {{40, 20, 50, 30}, {70, 40, 80, 50}, { 60, 10, 70, 20}};
+    test.setRects(rects, SK_ARRAY_COUNT(rects));
+    SkPaint paint;
+    for (auto color :  { SK_ColorRED, SK_ColorBLUE, SK_ColorGREEN, SK_ColorMAGENTA } ) {
+        paint.setColor(color);
+        canvas->drawRegion(test, paint);
+        test.translate(10, 10);
     }
 ##
 
@@ -1538,28 +1274,21 @@
 # ------------------------------------------------------------------------------
 
 #Method void translate(int dx, int dy, SkRegion* dst) const
-
-Offsets Region by IVector (dx, dy), writing result to dst. Region may be passed
-as dst parameter, translating Region in place. Has no effect if dst is nullptr.
-If Region is empty, sets dst to empty.
-
-#Param dx  x-axis offset ##
-#Param dy  y-axis offset ##
-#Param dst  translated result ##
+#Populate
 
 #Example
-    SkRegion test;

-    SkIRect rects[] = {{40, 20, 50, 30}, {70, 40, 80, 50}, { 60, 10, 70, 20}};

-    test.setRects(rects, SK_ARRAY_COUNT(rects));

-    SkPaint paint;

-    for (auto color :  { SK_ColorRED, SK_ColorBLUE, SK_ColorGREEN, SK_ColorMAGENTA } ) {

-        paint.setColor(color);

-        canvas->drawRegion(test, paint);

-        SkRegion second;

-        test.translate(10, test.getBounds().fBottom, &second);

-        test.op(second, SkRegion::kXOR_Op);

-        test.translate(30, 0);

-    }

+    SkRegion test;
+    SkIRect rects[] = {{40, 20, 50, 30}, {70, 40, 80, 50}, { 60, 10, 70, 20}};
+    test.setRects(rects, SK_ARRAY_COUNT(rects));
+    SkPaint paint;
+    for (auto color :  { SK_ColorRED, SK_ColorBLUE, SK_ColorGREEN, SK_ColorMAGENTA } ) {
+        paint.setColor(color);
+        canvas->drawRegion(test, paint);
+        SkRegion second;
+        test.translate(10, test.getBounds().fBottom, &second);
+        test.op(second, SkRegion::kXOR_Op);
+        test.translate(30, 0);
+    }
 ##
 
 #SeeAlso SkCanvas::translate SkIRect::offset SkPath::offset
@@ -1614,21 +1343,21 @@
 ##
 
 #Example
-    SkRegion operand({35, 35, 85, 85});

-    const char* labels[] = {"difference", "intersect", "union", "xor", "reverse diff", "replace"};

-    int index = 0;

-    SkPaint paint;

-    for (auto op : { SkRegion::kDifference_Op, SkRegion::kIntersect_Op, SkRegion::kUnion_Op,

-                     SkRegion::kXOR_Op, SkRegion::kReverseDifference_Op, SkRegion::kReplace_Op } ) {

-        SkRegion target({10, 10, 60, 60});

-        target.op(operand, op);

-        canvas->drawRegion(target, paint);

-        canvas->drawString(labels[index++], 40, 100, paint);

-        canvas->translate(80, 0);

-        if (SkRegion::kUnion_Op == op) {

-            canvas->translate(-240, 120);

-        }

-    }

+    SkRegion operand({35, 35, 85, 85});
+    const char* labels[] = {"difference", "intersect", "union", "xor", "reverse diff", "replace"};
+    int index = 0;
+    SkPaint paint;
+    for (auto op : { SkRegion::kDifference_Op, SkRegion::kIntersect_Op, SkRegion::kUnion_Op,
+                     SkRegion::kXOR_Op, SkRegion::kReverseDifference_Op, SkRegion::kReplace_Op } ) {
+        SkRegion target({10, 10, 60, 60});
+        target.op(operand, op);
+        canvas->drawRegion(target, paint);
+        canvas->drawString(labels[index++], 40, 100, paint);
+        canvas->translate(80, 0);
+        if (SkRegion::kUnion_Op == op) {
+            canvas->translate(-240, 120);
+        }
+    }
 ##
 
 #SeeAlso SkPathOp
@@ -1647,26 +1376,18 @@
 #Method bool op(const SkIRect& rect, Op op)
 #In Transform
 #Line # applies binary operator ##
-
-Replaces Region with the result of Region op rect.
-Returns true if replaced Region is not empty.
-
-#Param rect IRect operand ##
-#Param op   operator, one of: #list_of_op_types#
-##
-
-#Return false if result is empty ##
+#Populate
 
 #Example
 #Height 128
-    SkPaint paint;

-    paint.setTextSize(128);

-    SkPath xPath;

-    paint.getTextPath("X", 1, 20, 110, &xPath);

-    SkRegion xRegion;

-    SkIRect drawBounds = {0, 0, 128, 128};

-    xRegion.setPath(xPath, SkRegion(drawBounds));

-    xRegion.op(drawBounds, SkRegion::kReverseDifference_Op);

+    SkPaint paint;
+    paint.setTextSize(128);
+    SkPath xPath;
+    paint.getTextPath("X", 1, 20, 110, &xPath);
+    SkRegion xRegion;
+    SkIRect drawBounds = {0, 0, 128, 128};
+    xRegion.setPath(xPath, SkRegion(drawBounds));
+    xRegion.op(drawBounds, SkRegion::kReverseDifference_Op);
     canvas->drawRegion(xRegion, paint);
 ##
 
@@ -1677,31 +1398,20 @@
 # ------------------------------------------------------------------------------
 
 #Method bool op(int left, int top, int right, int bottom, Op op)
-
-Replaces Region with the result of Region op IRect (left, top, right, bottom).
-Returns true if replaced Region is not empty.
-
-#Param left edge of bounds on x-axis ##
-#Param top  edge of bounds on y-axis ##
-#Param right  edge of bounds on x-axis ##
-#Param bottom  edge of bounds on y-axis ##
-#Param op   operator, one of: #list_of_op_types#
-##
-
-#Return false if result is empty ##
+#Populate
 
 #Example
 #Duration 4
 #Height 128
-    SkPaint paint;

-    paint.setTextSize(128);

-    SkPath xPath;

-    paint.getTextPath("X", 1, 20, 110, &xPath);

-    SkRegion xRegion;

-    SkIRect drawBounds = {0, 0, 128, 128};

-    xRegion.setPath(xPath, SkRegion(drawBounds));

-    xRegion.op(drawBounds.fLeft + frame * drawBounds.width(), drawBounds.fTop,

-               drawBounds.fRight, drawBounds.fBottom, SkRegion::kReverseDifference_Op);

+    SkPaint paint;
+    paint.setTextSize(128);
+    SkPath xPath;
+    paint.getTextPath("X", 1, 20, 110, &xPath);
+    SkRegion xRegion;
+    SkIRect drawBounds = {0, 0, 128, 128};
+    xRegion.setPath(xPath, SkRegion(drawBounds));
+    xRegion.op(drawBounds.fLeft + frame * drawBounds.width(), drawBounds.fTop,
+               drawBounds.fRight, drawBounds.fBottom, SkRegion::kReverseDifference_Op);
     canvas->drawRegion(xRegion, paint);
 ##
 
@@ -1712,29 +1422,21 @@
 # ------------------------------------------------------------------------------
 
 #Method bool op(const SkRegion& rgn, Op op)
-
-Replaces Region with the result of Region op rgn.
-Returns true if replaced Region is not empty.
-
-#Param rgn  Region operand ##
-#Param op   operator, one of: #list_of_op_types#
-##
-
-#Return false if result is empty ##
+#Populate
 
 #Example
 #Duration 4
 #Height 128
-    SkPaint paint;

-    paint.setTextSize(128);

-    SkPath xPath, opPath;

-    paint.getTextPath("X", 1, 20, 110, &xPath);

-    opPath.addCircle(64, 64, frame * 64);

-    SkRegion xRegion, opRegion;

-    SkIRect drawBounds = {0, 0, 128, 128};

-    opRegion.setPath(opPath, SkRegion(drawBounds));

-    xRegion.setPath(xPath, SkRegion(drawBounds));

-    xRegion.op(opRegion, SkRegion::kReverseDifference_Op);

+    SkPaint paint;
+    paint.setTextSize(128);
+    SkPath xPath, opPath;
+    paint.getTextPath("X", 1, 20, 110, &xPath);
+    opPath.addCircle(64, 64, frame * 64);
+    SkRegion xRegion, opRegion;
+    SkIRect drawBounds = {0, 0, 128, 128};
+    opRegion.setPath(opPath, SkRegion(drawBounds));
+    xRegion.setPath(xPath, SkRegion(drawBounds));
+    xRegion.op(opRegion, SkRegion::kReverseDifference_Op);
     canvas->drawRegion(xRegion, paint);
 ##
 
@@ -1745,32 +1447,23 @@
 # ------------------------------------------------------------------------------
 
 #Method bool op(const SkIRect& rect, const SkRegion& rgn, Op op)
-
-Replaces Region with the result of rect op rgn.
-Returns true if replaced Region is not empty.
-
-#Param rect  IRect operand ##
-#Param rgn  Region operand ##
-#Param op   operator, one of: #list_of_op_types#
-##
-
-#Return false if result is empty ##
+#Populate
 
 #Example
 #Duration 4
 #Height 128
-    SkPaint paint;

-    paint.setTextSize(128);

-    SkPath xPath, opPath;

-    paint.getTextPath("X", 1, 20, 110, &xPath);

-    opPath.addCircle(64, 64, frame * 64);

-    SkRegion xRegion, opRegion, rectRegion;

-    SkIRect drawBounds = {0, 0, 128, 128};

-    opRegion.setPath(opPath, SkRegion(drawBounds));

-    xRegion.setPath(xPath, SkRegion(drawBounds));

-    drawBounds.inset(frame * drawBounds.width() / 2, 0);    

-    rectRegion.op(drawBounds, opRegion, SkRegion::kIntersect_Op);

-    xRegion.op(rectRegion, SkRegion::kReverseDifference_Op);

+    SkPaint paint;
+    paint.setTextSize(128);
+    SkPath xPath, opPath;
+    paint.getTextPath("X", 1, 20, 110, &xPath);
+    opPath.addCircle(64, 64, frame * 64);
+    SkRegion xRegion, opRegion, rectRegion;
+    SkIRect drawBounds = {0, 0, 128, 128};
+    opRegion.setPath(opPath, SkRegion(drawBounds));
+    xRegion.setPath(xPath, SkRegion(drawBounds));
+    drawBounds.inset(frame * drawBounds.width() / 2, 0);    
+    rectRegion.op(drawBounds, opRegion, SkRegion::kIntersect_Op);
+    xRegion.op(rectRegion, SkRegion::kReverseDifference_Op);
     canvas->drawRegion(xRegion, paint);
 ##
 
@@ -1781,32 +1474,23 @@
 # ------------------------------------------------------------------------------
 
 #Method bool op(const SkRegion& rgn, const SkIRect& rect, Op op)
-
-Replaces Region with the result of rgn op rect.
-Returns true if replaced Region is not empty.
-
-#Param rgn  Region operand ##
-#Param rect  IRect operand ##
-#Param op   operator, one of: #list_of_op_types#
-##
-
-#Return false if result is empty ##
+#Populate
 
 #Example
 #Duration 4
 #Height 128
-    SkPaint paint;

-    paint.setTextSize(128);

-    SkPath xPath, opPath;

-    paint.getTextPath("X", 1, 20, 110, &xPath);

-    opPath.addCircle(64, 64, frame * 64);

-    SkRegion xRegion, opRegion, rectRegion;

-    SkIRect drawBounds = {0, 0, 128, 128};

-    opRegion.setPath(opPath, SkRegion(drawBounds));

-    xRegion.setPath(xPath, SkRegion(drawBounds));

-    drawBounds.inset(frame * drawBounds.width() / 2, 0);    

-    rectRegion.op(opRegion, drawBounds, SkRegion::kUnion_Op);

-    xRegion.op(rectRegion, SkRegion::kReverseDifference_Op);

+    SkPaint paint;
+    paint.setTextSize(128);
+    SkPath xPath, opPath;
+    paint.getTextPath("X", 1, 20, 110, &xPath);
+    opPath.addCircle(64, 64, frame * 64);
+    SkRegion xRegion, opRegion, rectRegion;
+    SkIRect drawBounds = {0, 0, 128, 128};
+    opRegion.setPath(opPath, SkRegion(drawBounds));
+    xRegion.setPath(xPath, SkRegion(drawBounds));
+    drawBounds.inset(frame * drawBounds.width() / 2, 0);    
+    rectRegion.op(opRegion, drawBounds, SkRegion::kUnion_Op);
+    xRegion.op(rectRegion, SkRegion::kReverseDifference_Op);
     canvas->drawRegion(xRegion, paint);
 ##
 
@@ -1817,35 +1501,26 @@
 # ------------------------------------------------------------------------------
 
 #Method bool op(const SkRegion& rgna, const SkRegion& rgnb, Op op)
-
-Replaces Region with the result of rgna op rgnb.
-Returns true if replaced Region is not empty.
-
-#Param rgna  Region operand ##
-#Param rgnb  Region operand ##
-#Param op  operator, one of: #list_of_op_types#
-##
-
-#Return false if result is empty ##
+#Populate
 
 #Example
 #Duration 4
 #Height 128
-    SkPaint paint;

-    paint.setTextSize(128);

-    SkPath xPath, opPath;

-    paint.getTextPath("X", 1, 20, 110, &xPath);

-    xPath.setFillType(SkPath::kInverseWinding_FillType);

-    opPath.addCircle(64, 64, frame * 64);

-    opPath.setFillType(SkPath::kInverseWinding_FillType);

-    SkRegion xRegion, opRegion, rectRegion;

-    SkIRect drawBounds = {0, 0, 128, 128};

-    opRegion.setPath(opPath, SkRegion(drawBounds));

-    xRegion.setPath(xPath, SkRegion(drawBounds));

-    drawBounds.inset(frame * drawBounds.width() / 2, 0);

-    rectRegion.setRect(drawBounds);    

-    rectRegion.op(xRegion, SkRegion::kIntersect_Op);

-    xRegion.op(rectRegion, opRegion, SkRegion::kReverseDifference_Op);

+    SkPaint paint;
+    paint.setTextSize(128);
+    SkPath xPath, opPath;
+    paint.getTextPath("X", 1, 20, 110, &xPath);
+    xPath.setFillType(SkPath::kInverseWinding_FillType);
+    opPath.addCircle(64, 64, frame * 64);
+    opPath.setFillType(SkPath::kInverseWinding_FillType);
+    SkRegion xRegion, opRegion, rectRegion;
+    SkIRect drawBounds = {0, 0, 128, 128};
+    opRegion.setPath(opPath, SkRegion(drawBounds));
+    xRegion.setPath(xPath, SkRegion(drawBounds));
+    drawBounds.inset(frame * drawBounds.width() / 2, 0);
+    rectRegion.setRect(drawBounds);    
+    rectRegion.op(xRegion, SkRegion::kIntersect_Op);
+    xRegion.op(rectRegion, opRegion, SkRegion::kReverseDifference_Op);
     canvas->drawRegion(xRegion, paint);
 ##
 
@@ -1870,28 +1545,22 @@
 #Method size_t writeToMemory(void* buffer) const
 #In Utility
 #Line # writes to buffer ##
-
-Writes Region to buffer, and returns number of bytes written.
-If buffer is nullptr, returns number number of bytes that would be written.
-
-#Param buffer  storage for binary data ##
-
-#Return size of Region ##
+#Populate
 
 #Example
 #Height 128
-    SkPaint paint;

-    paint.setTextSize(128);

-    SkPath xPath;

-    paint.getTextPath("X", 1, 20, 110, &xPath);

-    SkIRect drawBounds = {0, 0, 128, 128};

-    SkRegion xRegion;

-    xRegion.setPath(xPath, SkRegion(drawBounds));

-    size_t size = xRegion.writeToMemory(nullptr);

-    sk_sp<SkData> data = SkData::MakeUninitialized(size);

-    xRegion.writeToMemory(data->writable_data());

-    SkRegion copy;

-    copy.readFromMemory(data->data(), data->size());

+    SkPaint paint;
+    paint.setTextSize(128);
+    SkPath xPath;
+    paint.getTextPath("X", 1, 20, 110, &xPath);
+    SkIRect drawBounds = {0, 0, 128, 128};
+    SkRegion xRegion;
+    xRegion.setPath(xPath, SkRegion(drawBounds));
+    size_t size = xRegion.writeToMemory(nullptr);
+    sk_sp<SkData> data = SkData::MakeUninitialized(size);
+    xRegion.writeToMemory(data->writable_data());
+    SkRegion copy;
+    copy.readFromMemory(data->data(), data->size());
     canvas->drawRegion(copy, paint);
 ##
 
@@ -1904,23 +1573,16 @@
 #Method size_t readFromMemory(const void* buffer, size_t length)
 #In Utility
 #Line # reads from buffer ##
-
-Constructs Region from buffer of size length. Returns bytes read.
-Returned value will be multiple of four or zero if length was too small.
-
-#Param buffer  storage for binary data ##
-#Param length  size of buffer ##
-
-#Return  bytes read ##
+#Populate
 
 #Example
 #Height 100
-    SkRegion region({20, 20, 80, 80});

-    size_t size = region.writeToMemory(nullptr);

-    sk_sp<SkData> data = SkData::MakeUninitialized(size);

-    region.writeToMemory(data->writable_data());

-    SkRegion copy;

-    copy.readFromMemory(data->data(), data->size());

+    SkRegion region({20, 20, 80, 80});
+    size_t size = region.writeToMemory(nullptr);
+    sk_sp<SkData> data = SkData::MakeUninitialized(size);
+    region.writeToMemory(data->writable_data());
+    SkRegion copy;
+    copy.readFromMemory(data->data(), data->size());
     canvas->drawRegion(copy, SkPaint());
 ##
 
diff --git a/docs/SkSurface_Reference.bmh b/docs/SkSurface_Reference.bmh
index b98bc87..dacd00f 100644
--- a/docs/SkSurface_Reference.bmh
+++ b/docs/SkSurface_Reference.bmh
@@ -21,30 +21,7 @@
                                              const SkSurfaceProps* surfaceProps = nullptr)
 #In Constructors
 #Line # creates Surface from SkImageInfo and Pixel_Storage ##
-
-Allocates raster Surface. Canvas returned by Surface draws directly into pixels.
-
-Surface is returned if all parameters are valid.
-Valid parameters include:
-info dimensions are greater than zero;
-info contains Color_Type and Alpha_Type supported by Raster_Surface;
-pixels is not nullptr;
-rowBytes is large enough to contain info width pixels of Color_Type.
-
-Pixel buffer size should be info height times computed rowBytes.
-Pixels are not initialized.
-To access pixels after drawing, call flush() or peekPixels.
-
-#Param imageInfo  width, height, Color_Type, Alpha_Type, Color_Space,
-                  of Raster_Surface; width and height must be greater than zero
-##
-#Param pixels  pointer to destination pixels buffer ##
-#Param rowBytes  interval from one Surface row to the next ##
-#Param surfaceProps  LCD striping orientation and setting for device independent fonts;
-              may be nullptr
-##
-
-#Return Surface if all parameters are valid; otherwise, nullptr ##
+#Populate
 
 #Example
 void draw(SkCanvas* ) {
@@ -85,33 +62,7 @@
                                     void* context, const SkSurfaceProps* surfaceProps = nullptr)
 #In Constructors
 #Line # creates Surface from SkImageInfo and Pixel_Storage ##
-
-Allocates raster Surface. Canvas returned by Surface draws directly into pixels.
-releaseProc is called with pixels and context when Surface is deleted.
-
-Surface is returned if all parameters are valid.
-Valid parameters include:
-info dimensions are greater than zero;
-info contains Color_Type and Alpha_Type supported by Raster_Surface;
-pixels is not nullptr;
-rowBytes is large enough to contain info width pixels of Color_Type.
-
-Pixel buffer size should be info height times computed rowBytes.
-Pixels are not initialized.
-To access pixels after drawing, call flush() or peekPixels.
-
-#Param imageInfo  width, height, Color_Type, Alpha_Type, Color_Space,
-                  of Raster_Surface; width and height must be greater than zero
-##
-#Param pixels  pointer to destination pixels buffer ##
-#Param rowBytes  interval from one Surface row to the next ##
-#Param releaseProc  called when Surface is deleted; may be nullptr ##
-#Param context  passed to releaseProc; may be nullptr ##
-#Param surfaceProps  LCD striping orientation and setting for device independent fonts;
-              may be nullptr
-##
-
-#Return Surface if all parameters are valid; otherwise, nullptr ##
+#Populate
 
 #Example
 #Function
@@ -161,30 +112,7 @@
                                        const SkSurfaceProps* surfaceProps)
 #In Constructors
 #Line # creates Surface from SkImageInfo ##
-
-Allocates raster Surface. Canvas returned by Surface draws directly into pixels.
-Allocates and zeroes pixel memory. Pixel memory size is imageInfo.height() times
-rowBytes, or times imageInfo.minRowBytes() if rowBytes is zero.
-Pixel memory is deleted when Surface is deleted.
-
-Surface is returned if all parameters are valid.
-Valid parameters include:
-info dimensions are greater than zero;
-info contains Color_Type and Alpha_Type supported by Raster_Surface;
-rowBytes is large enough to contain info width pixels of Color_Type, or is zero.
-
-If rowBytes is not zero, subsequent images returned by makeImageSnapshot
-have the same rowBytes.
-
-#Param imageInfo  width, height, Color_Type, Alpha_Type, Color_Space,
-                  of Raster_Surface; width and height must be greater than zero
-##
-#Param rowBytes  interval from one Surface row to the next; may be zero ##
-#Param surfaceProps  LCD striping orientation and setting for device independent fonts;
-              may be nullptr
-##
-
-#Return Surface if all parameters are valid; otherwise, nullptr ##
+#Populate
 
 #Example
 void draw(SkCanvas* ) {
@@ -224,25 +152,7 @@
 
 #Method static sk_sp<SkSurface> MakeRaster(const SkImageInfo& imageInfo,
                                        const SkSurfaceProps* props = nullptr)
-
-Allocates raster Surface. Canvas returned by Surface draws directly into pixels.
-Allocates and zeroes pixel memory. Pixel memory size is imageInfo.height() times
-imageInfo.minRowBytes().
-Pixel memory is deleted when Surface is deleted.
-
-Surface is returned if all parameters are valid.
-Valid parameters include:
-info dimensions are greater than zero;
-info contains Color_Type and Alpha_Type supported by Raster_Surface.
-
-#Param imageInfo  width, height, Color_Type, Alpha_Type, Color_Space,
-                  of Raster_Surface; width and height must be greater than zero
-##
-#Param props  LCD striping orientation and setting for device independent fonts;
-              may be nullptr
-##
-
-#Return Surface if all parameters are valid; otherwise, nullptr ##
+#Populate
 
 #Example
 void draw(SkCanvas* ) {
@@ -278,26 +188,7 @@
                                                 const SkSurfaceProps* surfaceProps = nullptr)
 #In Constructors
 #Line # creates Surface from width, height matching output ##
-
-Allocates raster Surface. Canvas returned by Surface draws directly into pixels.
-Allocates and zeroes pixel memory. Pixel memory size is height times width times
-four. Pixel memory is deleted when Surface is deleted.
-
-Internally, sets Image_Info to width, height, Native_Color_Type, and
-kPremul_SkAlphaType.
-
-Surface is returned if width and height are greater than zero.
-
-Use to create Surface that matches SkPMColor, the native pixel arrangement on
-the platform. Surface drawn to output device skips converting its pixel format.
-
-#Param width  pixel column count; must be greater than zero ##
-#Param height  pixel row count; must be greater than zero ##
-#Param surfaceProps  LCD striping orientation and setting for device independent
-                     fonts; may be nullptr
-##
-
-#Return Surface if all parameters are valid; otherwise, nullptr ##
+#Populate
 
 #Example
 void draw(SkCanvas* ) {
@@ -341,32 +232,7 @@
                                                    const SkSurfaceProps* surfaceProps)
 #In Constructors
 #Line # creates Surface from GPU texture ##
-
-Wraps a GPU-backed texture into Surface. Caller must ensure the texture is
-valid for the lifetime of returned Surface. If sampleCnt greater than zero,
-creates an intermediate MSAA Surface which is used for drawing backendTexture.
-
-Surface is returned if all parameters are valid. backendTexture is valid if
-its pixel configuration agrees with colorSpace and context; for instance, if
-backendTexture has an sRGB configuration, then context must support sRGB,
-and colorSpace must be present. Further, backendTexture width and height must
-not exceed context capabilities, and the context must be able to support
-back-end textures.
-
-If SK_SUPPORT_GPU is defined as zero, has no effect and returns nullptr.
-
-#Param context  GPU_Context ##
-#Param backendTexture  texture residing on GPU ##
-#Param origin   one of: kBottomLeft_GrSurfaceOrigin, kTopLeft_GrSurfaceOrigin ##
-#Param sampleCnt  samples per pixel, or 0 to disable full scene anti-aliasing ##
-#Param colorType  one of: #list_of_color_types#
-##
-#Param colorSpace  range of colors; may be nullptr ##
-#Param surfaceProps  LCD striping orientation and setting for device independent
-                     fonts; may be nullptr
-##
-
-#Return Surface if all parameters are valid; otherwise, nullptr ##
+#Populate
 
 #Example
 #Platform gpu cpu
@@ -401,30 +267,7 @@
                                                 const SkSurfaceProps* surfaceProps)
 #In Constructors
 #Line # creates Surface from GPU render target ##
-
-Wraps a GPU-backed buffer into Surface. Caller must ensure backendRenderTarget
-is valid for the lifetime of returned Surface.
-
-Surface is returned if all parameters are valid. backendRenderTarget is valid if
-its pixel configuration agrees with colorSpace and context; for instance, if
-backendRenderTarget has an sRGB configuration, then context must support sRGB,
-and colorSpace must be present. Further, backendRenderTarget width and height must
-not exceed context capabilities, and the context must be able to support
-back-end render targets.
-
-If SK_SUPPORT_GPU is defined as zero, has no effect and returns nullptr.
-
-#Param context  GPU_Context ##
-#Param backendRenderTarget  GPU intermediate memory buffer ##
-#Param origin   one of: kBottomLeft_GrSurfaceOrigin, kTopLeft_GrSurfaceOrigin ##
-#Param colorType  one of: #list_of_color_types#
-##
-#Param colorSpace  range of colors ##
-#Param surfaceProps  LCD striping orientation and setting for device independent
-                     fonts; may be nullptr
-##
-
-#Return Surface if all parameters are valid; otherwise, nullptr ##
+#Populate
 
 #Example
 #ToDo  remove !fiddle below once backEndTextureRenderTarget is available ##
@@ -460,34 +303,7 @@
                                                             const SkSurfaceProps* surfaceProps)
 #In Constructors
 #Line # creates Surface from GPU back-end render target ##
-
-Wraps a GPU-backed texture into Surface. Caller must ensure backendTexture is
-valid for the lifetime of returned Surface. If sampleCnt greater than zero,
-creates an intermediate MSAA Surface which is used for drawing backendTexture.
-
-Surface is returned if all parameters are valid. backendTexture is valid if
-its pixel configuration agrees with colorSpace and context; for instance, if
-backendTexture has an sRGB configuration, then context must support sRGB,
-and colorSpace must be present. Further, backendTexture width and height must
-not exceed context capabilities.
-
-Returned Surface is available only for drawing into, and cannot generate an
-Image.
-
-If SK_SUPPORT_GPU is defined as zero, has no effect and returns nullptr.
-
-#Param context  GPU_Context ##
-#Param backendTexture  texture residing on GPU ##
-#Param origin   one of: kBottomLeft_GrSurfaceOrigin, kTopLeft_GrSurfaceOrigin ##
-#Param sampleCnt  samples per pixel, or 0 to disable full scene anti-aliasing ##
-#Param colorType  one of: #list_of_color_types#
-##
-#Param colorSpace  range of colors; may be nullptr ##
-#Param surfaceProps  LCD striping orientation and setting for device independent
-                     fonts; may be nullptr
-##
-
-#Return Surface if all parameters are valid; otherwise, nullptr ##
+#Populate
 
 #Example
 #ToDo example is bogus; gpuSurface should not make image ##
@@ -522,39 +338,8 @@
                                              bool shouldCreateWithMips = false)
 #In Constructors
 #Line # creates Surface pointing to new GPU memory buffer ##
+#Populate
 
-Returns Surface on GPU indicated by context. Allocates memory for
-pixels, based on the width, height, and Color_Type in ImageInfo.  budgeted
-selects whether allocation for pixels is tracked by context. imageInfo
-describes the pixel format in Color_Type, and transparency in
-Alpha_Type, and color matching in Color_Space.
-
-sampleCount requests the number of samples per pixel.
-Pass zero to disable Multi_Sample_Anti_Aliasing.  The request is rounded
-up to the next supported count, or rounded down if it is larger than the
-maximum supported count.
-
-surfaceOrigin pins either the top-left or the bottom-left corner to the origin.
-
-shouldCreateWithMips hints that Image returned by makeImageSnapshot is Mip_Map.
-
-If SK_SUPPORT_GPU is defined as zero, has no effect and returns nullptr.
-
-#Param context  GPU_Context ##
-#Param budgeted  one of: SkBudgeted::kNo, SkBudgeted::kYes ##
-#Param imageInfo  width, height, Color_Type, Alpha_Type, Color_Space;
-                  width, or height, or both, may be zero
-##
-#Param sampleCount  samples per pixel, or 0 to disable full scene anti-aliasing ##
-#Param surfaceOrigin  one of: kBottomLeft_GrSurfaceOrigin, kTopLeft_GrSurfaceOrigin ##
-#Param surfaceProps  LCD striping orientation and setting for device independent
-                     fonts; may be nullptr
-##
-#Param shouldCreateWithMips  hint that Surface will host Mip_Map images ##
-
-#Return Surface if all parameters are valid; otherwise, nullptr ##
-
-#ToDo not sure that this example is relevant; surfaceOrigin doesn't appear to do anything ##
 #Example
 #Platform gpu
 #Height 64
@@ -587,31 +372,7 @@
 #Method static sk_sp<SkSurface> MakeRenderTarget(GrContext* context, SkBudgeted budgeted,
                                              const SkImageInfo& imageInfo, int sampleCount,
                                              const SkSurfaceProps* props)
-
-Returns Surface on GPU indicated by context. Allocates memory for
-pixels, based on the width, height, and Color_Type in ImageInfo.  budgeted
-selects whether allocation for pixels is tracked by context. imageInfo
-describes the pixel format in Color_Type, and transparency in
-Alpha_Type, and color matching in Color_Space.
-
-sampleCount requests the number of samples per pixel.
-Pass zero to disable Multi_Sample_Anti_Aliasing.  The request is rounded
-up to the next supported count, or rounded down if it is larger than the
-maximum supported count.
-
-Surface bottom-left corner is pinned to the origin.
-
-#Param context  GPU_Context ##
-#Param budgeted  one of: SkBudgeted::kNo, SkBudgeted::kYes ##
-#Param imageInfo  width, height, Color_Type, Alpha_Type, Color_Space,
-                  of Raster_Surface; width, or height, or both, may be zero
-##
-#Param sampleCount  samples per pixel, or 0 to disable Multi_Sample_Anti_Aliasing ##
-#Param props  LCD striping orientation and setting for device independent
-              fonts; may be nullptr
-##
-
-#Return Surface if all parameters are valid; otherwise, nullptr ##
+#Populate
 
 #Example
 #Platform cpu gpu
@@ -659,22 +420,7 @@
 
 #Method static sk_sp<SkSurface> MakeRenderTarget(GrContext* context, SkBudgeted budgeted,
                                              const SkImageInfo& imageInfo)
-
-Returns Surface on GPU indicated by context. Allocates memory for
-pixels, based on the width, height, and Color_Type in ImageInfo.  budgeted
-selects whether allocation for pixels is tracked by context. imageInfo
-describes the pixel format in Color_Type, and transparency in
-Alpha_Type, and color matching in Color_Space.
-
-Surface bottom-left corner is pinned to the origin.
-
-#Param context  GPU_Context ##
-#Param budgeted  one of: SkBudgeted::kNo, SkBudgeted::kYes ##
-#Param imageInfo  width, height, Color_Type, Alpha_Type, Color_Space,
-                  of Raster_Surface; width, or height, or both, may be zero
-##
-
-#Return Surface if all parameters are valid; otherwise, nullptr ##
+#Populate
 
 #Example
 #Platform gpu
@@ -703,16 +449,7 @@
 #Method static sk_sp<SkSurface> MakeRenderTarget(GrContext* context,
                                              const SkSurfaceCharacterization& characterization,
                                              SkBudgeted budgeted)
-
-Returns SkSurface on GPU indicated by context that is compatible with the provided
-characterization. budgeted selects whether allocation for pixels is tracked by context.
-
-#Param context  GPU_Context ##
-#Param characterization  description of the desired SkSurface ##
-#Param budgeted  one of: SkBudgeted::kNo, SkBudgeted::kYes
-##
-
-#Return Surface if all parameters are valid; otherwise, nullptr ##
+#Populate
 
 #NoExample
 ##
@@ -727,13 +464,7 @@
 
 #In Constructors
 #Line # creates Surface without backing pixels ##
-Returns Surface without backing pixels. Drawing to Canvas returned from Surface
-has no effect. Calling makeImageSnapshot() on returned Surface returns nullptr.
-
-#Param width  one or greater ##
-#Param height  one or greater ##
-
-#Return Surface if width and height are positive; otherwise, nullptr ##
+#Populate
 
 #Example
     SkDebugf("SkSurface::MakeNull(0, 0) %c= nullptr\n", SkSurface::MakeNull(0, 0) == nullptr ?
@@ -764,9 +495,7 @@
 
 #In Property
 #Line # returns pixel column count ##
-Returns pixel count in each row; may be zero or greater.
-
-#Return number of pixel columns ##
+#Populate
 
 #Example
     const int width = 37;
@@ -789,9 +518,7 @@
 #Method int height() const
 #In Property
 #Line # returns pixel row count ##
-Returns pixel row count; may be zero or greater.
-
-#Return number of pixel rows ##
+#Populate
 
 #Example
     const int width = 37;
@@ -814,11 +541,7 @@
 #Method uint32_t generationID()
 #In Property
 #Line # returns unique ID ##
-Returns unique value identifying the content of Surface. Returned value changes
-each time the content changes. Content is changed by drawing, or by calling
-notifyContentWillChange.
-
-#Return unique content identifier ##
+#Populate
 
 #Example
     auto surface = SkSurface::MakeRasterN32Premul(1, 1);
@@ -989,17 +712,7 @@
 #Method GrBackendTexture getBackendTexture(BackendHandleAccess backendHandleAccess)
 #In Property
 #Line # returns the GPU reference to texture ##
-Retrieves the back-end texture. If Surface has no back-end texture, an invalid
-object is returned. Call GrBackendTexture::isValid to determine if the result
-is valid.
-
-The returned GrBackendTexture should be discarded if the Surface is drawn to or deleted.
-
-#Param backendHandleAccess  one of:  kFlushRead_BackendHandleAccess,
-        kFlushWrite_BackendHandleAccess, kDiscardWrite_BackendHandleAccess
-##
-
-#Return GPU texture reference; invalid on failure ##
+#Populate
 
 #NoExample
 ##
@@ -1013,19 +726,7 @@
 #Method GrBackendRenderTarget getBackendRenderTarget(BackendHandleAccess backendHandleAccess)
 #In Property
 #Line # returns the GPU reference to render target ##
-
-Retrieves the back-end render target. If Surface has no back-end render target, an invalid
-object is returned. Call GrBackendRenderTarget::isValid to determine if the result
-is valid.
-
-The returned GrBackendRenderTarget should be discarded if the Surface is drawn to
-or deleted.
-
-#Param backendHandleAccess  one of:  kFlushRead_BackendHandleAccess,
-        kFlushWrite_BackendHandleAccess, kDiscardWrite_BackendHandleAccess
-##
-
-#Return GPU render target reference; invalid on failure ##
+#Populate
 
 #NoExample
 ##
@@ -1039,11 +740,7 @@
 #Method SkCanvas* getCanvas()
 #In Property
 #Line # returns Canvas that draws into Surface ##
-Returns Canvas that draws into Surface. Subsequent calls return the same Canvas.
-Canvas returned is managed and owned by Surface, and is deleted when Surface
-is deleted.
-
-#Return drawing Canvas for Surface ##
+#Populate
 
 #Example
 #Height 64
@@ -1065,18 +762,7 @@
 #Method sk_sp<SkSurface> makeSurface(const SkImageInfo& imageInfo)
 #In Constructors
 #Line # creates a compatible Surface ##
-Returns a compatible Surface, or nullptr. Returned Surface contains
-the same raster, GPU, or null properties as the original. Returned Surface
-does not share the same pixels.
-
-Returns nullptr if imageInfo width or height are zero, or if imageInfo
-is incompatible with Surface.
-
-#Param imageInfo  width, height, Color_Type, Alpha_Type, Color_Space,
-                  of Surface; width and height must be greater than zero
-##
-
-#Return compatible Surface or nullptr ##
+#Populate
 
 #Example
 #Height 96
@@ -1106,11 +792,7 @@
 #Method sk_sp<SkImage> makeImageSnapshot()
 #In Constructors
 #Line # creates Image capturing Surface contents ##
-Returns Image capturing Surface contents. Subsequent drawing to Surface contents
-are not captured. Image allocation is accounted for if Surface was created with
-SkBudgeted::kYes.
-
-#Return Image initialized with Surface contents ##
+#Populate
 
 #Example
 #Height 64
@@ -1137,17 +819,7 @@
 #Method void draw(SkCanvas* canvas, SkScalar x, SkScalar y, const SkPaint* paint)
 #In Pixels
 #Line # draws Surface contents to canvas ##
-Draws Surface contents to canvas, with its top-left corner at (x, y).
-
-If Paint paint is not nullptr, apply Color_Filter, Color_Alpha, Image_Filter,
-Blend_Mode, and Draw_Looper.
-
-#Param canvas  Canvas drawn into ##
-#Param x  horizontal offset in Canvas ##
-#Param y  vertical offset in Canvas ##
-#Param paint  Paint containing Blend_Mode, Color_Filter, Image_Filter,
-              and so on; or nullptr
-##
+#Populate
 
 #Example
 #Height 64
@@ -1173,15 +845,7 @@
 #Method bool peekPixels(SkPixmap* pixmap)
 #In Pixels
 #Line # copies Surface parameters to Pixmap ##
-Copies Surface pixel address, row bytes, and Image_Info to Pixmap, if address
-is available, and returns true. If pixel address is not available, return
-false and leave Pixmap unchanged.
-
-pixmap contents become invalid on any future change to Surface.
-
-#Param pixmap  storage for pixel state if pixels are readable; otherwise, ignored ##
-
-#Return true if Surface has direct access to pixels ##
+#Populate
 
 #Example
 #Height 64
@@ -1407,17 +1071,17 @@
 #Example
 #Image 4
 #Height 96
-    sk_sp<SkSurface> surf(SkSurface::MakeRasterN32Premul(64, 64));

-    auto surfCanvas = surf->getCanvas();

-    surfCanvas->clear(SK_ColorRED);

-    SkPaint paint;

-    paint.setTextSize(40);

-    surfCanvas->drawString("&", 16, 40, paint);

-    SkPixmap pixmap;

-    if (surf->peekPixels(&pixmap)) {

-        surf->writePixels(pixmap, 25, 25);

-        sk_sp<SkImage> image(surf->makeImageSnapshot());

-        canvas->drawImage(image, 0, 0);

+    sk_sp<SkSurface> surf(SkSurface::MakeRasterN32Premul(64, 64));
+    auto surfCanvas = surf->getCanvas();
+    surfCanvas->clear(SK_ColorRED);
+    SkPaint paint;
+    paint.setTextSize(40);
+    surfCanvas->drawString("&", 16, 40, paint);
+    SkPixmap pixmap;
+    if (surf->peekPixels(&pixmap)) {
+        surf->writePixels(pixmap, 25, 25);
+        sk_sp<SkImage> image(surf->makeImageSnapshot());
+        canvas->drawImage(image, 0, 0);
     }
 ##
 
@@ -1462,9 +1126,7 @@
 #Method const SkSurfaceProps& props() const
 #In Property
 #Line # returns Surface_Properties ##
-Returns Surface_Properties for surface.
-
-#Return LCD striping orientation and setting for device independent fonts ##
+#Populate
 
 #Example
     const char* names[] = { "Unknown", "RGB_H", "BGR_H", "RGB_V", "BGR_V" };
@@ -1493,11 +1155,7 @@
 #Method void flush()
 #In Utility
 #Line # resolves pending I/O ##
-Issues pending Surface commands to the GPU-backed API and resolves any Surface 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
-GPU calls.
+#Populate
 
 #NoExample
 ##
@@ -1512,34 +1170,7 @@
                                                    GrBackendSemaphore signalSemaphores[])
 #In Utility
 #Line # resolves pending I/O, and signal ##
-
-Issues pending Surface commands to the GPU-backed API and resolves any Surface MSAA.
-After issuing all commands, signalSemaphores of count numSemaphores semaphores
-are signaled by the GPU.
-
-For each GrBackendSemaphore in signalSemaphores:
-if GrBackendSemaphore is initialized, the GPU back-end uses the semaphore as is;
-otherwise, a new semaphore is created and initializes GrBackendSemaphore.
-
-The caller must delete the semaphores created and returned in signalSemaphores.
-GrBackendSemaphore can be deleted as soon as this function returns.
-
-If the back-end API is OpenGL only uninitialized Backend_Semaphores are supported.
-
-If the back-end API is Vulkan semaphores may be initialized or uninitialized.
-If uninitialized, created semaphores are valid only with the VkDevice
-with which they were created.
-
-If GrSemaphoresSubmitted::kNo 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 surface commands are flushed regardless of the return result.
-
-#Param numSemaphores  size of signalSemaphores array ##
-#Param signalSemaphores  array of semaphore containers ##
-
-#Return one of: GrSemaphoresSubmitted::kYes, GrSemaphoresSubmitted::kNo ##
+#Populate
 
 #NoExample
 ##
@@ -1553,16 +1184,7 @@
 #Method bool wait(int numSemaphores, const GrBackendSemaphore* waitSemaphores)
 #In Utility
 #Line # pauses commands until signaled ##
-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 surface. 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.
-
-#Param numSemaphores  size of waitSemaphores array ##
-#Param waitSemaphores  array of semaphore containers ##
-
-#Return true if GPU is waiting on semaphores ##
+#Populate
 
 #NoExample
 #ToDo this is copy and paste silliness masquerading as an example. Probably need gpu
@@ -1609,16 +1231,7 @@
 #Method bool characterize(SkSurfaceCharacterization* characterization) const
 #In Utility
 #Line # sets Surface_Characterization for threaded GPU processing ##
-Initializes Surface_Characterization that can be used to perform GPU back-end
-processing in a separate thread. Typically this is used to divide drawing
-into multiple tiles. DeferredDisplayListRecorder records the drawing commands
-for each tile.
-
-Return true if Surface supports characterization. Raster_Surface returns false.
-
-#Param characterization  properties for parallel drawing ##
-
-#Return true if supported ##
+#Populate
 
 #Example
 #Platform gpu
@@ -1655,16 +1268,7 @@
 # ------------------------------------------------------------------------------
 
 #Method bool draw(SkDeferredDisplayList* deferredDisplayList)
-
-Draws deferred display list created using SkDeferredDisplayListRecorder.
-Has no effect and returns false if Surface_Characterization stored in
-deferredDisplayList is not compatible with Surface.
-
-Raster_Surface returns false.
-
-#Param deferredDisplayList  drawing commands ##
-
-#Return false if deferredDisplayList is not compatible ##
+#Populate
 
 #Example
 #Height 64
diff --git a/docs/SkTextBlobBuilder_Reference.bmh b/docs/SkTextBlobBuilder_Reference.bmh
index 386d720..306ac06 100644
--- a/docs/SkTextBlobBuilder_Reference.bmh
+++ b/docs/SkTextBlobBuilder_Reference.bmh
@@ -64,10 +64,7 @@
 #Method SkTextBlobBuilder()
 #In Constructors
 #Line # constructs with default values ##
-
-Constructs empty Text_Blob_Builder. By default, Text_Blob_Builder has no runs.
-
-#Return empty Text_Blob_Builder ##
+#Populate
 
 #Example
     SkTextBlobBuilder builder;
@@ -87,7 +84,7 @@
 #Method ~SkTextBlobBuilder()
 #In Constructors
 #Line # deletes storage ##
-Deletes data allocated internally by Text_Blob_Builder.
+#Populate
 
 #NoExample
 ##
@@ -101,15 +98,7 @@
 #Method sk_sp<SkTextBlob> make()
 #In Constructors
 #Line # constructs Text_Blob from bulider ##
-
-Returns Text_Blob built from runs of Glyphs added by builder. Returned
-Text_Blob is immutable; it may be copied, but its contents may not be altered.
-Returns nullptr if no runs of Glyphs were added by builder.
-
-Resets Text_Blob_Builder to its initial empty state, allowing it to be
-reused to build a new set of runs.
-
-#Return Text_Blob or nullptr ##
+#Populate
 
 #Example
     SkTextBlobBuilder builder;
@@ -343,7 +332,7 @@
 #Height 90
     SkTextBlobBuilder builder;
     SkPaint paint, font;
-    font.setTextEncoding(SkPaint::kGlyphID_TextEncoding);

+    font.setTextEncoding(SkPaint::kGlyphID_TextEncoding);
     const SkTextBlobBuilder::RunBuffer& run = builder.allocRunPos(font, 5);
     paint.textToGlyphs("hello", 5, run.glyphs);
     SkPoint positions[] = {{0, 0}, {10, 10}, {20, 20}, {40, 40}, {80, 80}};
diff --git a/docs/SkTextBlob_Reference.bmh b/docs/SkTextBlob_Reference.bmh
index a3f1dd5..54908de 100644
--- a/docs/SkTextBlob_Reference.bmh
+++ b/docs/SkTextBlob_Reference.bmh
@@ -16,12 +16,7 @@
 #Method const SkRect& bounds() const
 #In Property
 #Line # returns conservative bounding box ##
-
-Returns conservative bounding box. Uses Paint associated with each glyph to
-determine glyph bounds, and unions all bounds. Returned bounds may be
-larger than the bounds of all Glyphs in runs. 
-
-#Return conservative bounding box ##
+#Populate
 
 #Example
 #Height 70
@@ -59,10 +54,7 @@
 #Method uint32_t uniqueID() const
 #In Property
 #Line # returns identifier for Text_Blob ##
-
-Returns a non-zero value unique among all text blobs.
-
-#Return identifier for Text_Blob ##
+#Populate
 
 #Example
 for (int index = 0; index < 2; ++index) {
@@ -174,22 +166,7 @@
 #Method size_t serialize(const SkSerialProcs& procs, void* memory, size_t memory_size) const
 #In Utility
 #Line # writes Text_Blob to memory ##
-
-Writes data to allow later reconstruction of Text_Blob. memory points to storage
-to receive the encoded data, and memory_size describes the size of storage. 
-Returns bytes used if provided storage is large enough to hold all data;
-otherwise, returns zero.
-
-procs.fTypefaceProc permits supplying a custom function to encode Typeface.
-If procs.fTypefaceProc is nullptr, default encoding is used. procs.fTypefaceCtx
-may be used to provide user context to procs.fTypefaceProc; procs.fTypefaceProc
-is called with a pointer to Typeface and user context.
-
-#Param procs  custom serial data encoders; may be nullptr ##
-#Param memory  storage for data ##
-#Param size  size of storage ##
-
-#Return bytes written, or zero if required storage is larger than memory_size ##
+#Populate
 
 #Example
 #Height 64
@@ -198,9 +175,9 @@
 #include "SkSerialProcs.h"
 $$
 $$$#
-    SkFont blobFont;

-    blobFont.setSize(24);

-    sk_sp<SkTextBlob> blob = SkTextBlob::MakeFromText("Hello World", 11, blobFont);

+    SkFont blobFont;
+    blobFont.setSize(24);
+    sk_sp<SkTextBlob> blob = SkTextBlob::MakeFromText("Hello World", 11, blobFont);
     char storage[2048];
     size_t used = blob->serialize(SkSerialProcs(), storage, sizeof(storage));
     sk_sp<SkTextBlob> copy = SkTextBlob::Deserialize(storage, used, SkDeserialProcs());
@@ -218,17 +195,7 @@
 #Method sk_sp<SkData> serialize(const SkSerialProcs& procs) const
 #In Utility
 #Line # writes Text_Blob to Data ##
-Returns storage containing Data describing Text_Blob, using optional custom
-encoders.
-
-procs.fTypefaceProc permits supplying a custom function to encode Typeface.
-If procs.fTypefaceProc is nullptr, default encoding is used. procs.fTypefaceCtx
-may be used to provide user context to procs.fTypefaceProc; procs.fTypefaceProc
-is called with a pointer to Typeface and user context.
-
-#Param procs  custom serial data encoders; may be nullptr ##
-
-#Return storage containing serialized Text_Blob ##
+#Populate
 
 #Example
 #Height 24
@@ -237,8 +204,8 @@
 #include "SkSerialProcs.h"
 $$
 $$$#
-    SkFont blobFont;

-    blobFont.setSize(24);

+    SkFont blobFont;
+    blobFont.setSize(24);
     sk_sp<SkTextBlob> blob = SkTextBlob::MakeFromText("Hello World", 11, blobFont);
     sk_sp<SkData> data = blob->serialize(SkSerialProcs());
     sk_sp<SkTextBlob> copy = SkTextBlob::Deserialize(data->data(), data->size(), SkDeserialProcs());
@@ -254,21 +221,7 @@
 #Method static sk_sp<SkTextBlob> Deserialize(const void* data, size_t size, const SkDeserialProcs& procs)
 #In Constructors
 #Line # constructs Text_Blob from memory ##
-
-Recreates Text_Blob that was serialized into data. Returns constructed Text_Blob
-if successful; otherwise, returns nullptr. Fails if size is smaller than
-required data length, or if data does not permit constructing valid Text_Blob.
-
-procs.fTypefaceProc permits supplying a custom function to decode Typeface.
-If procs.fTypefaceProc is nullptr, default decoding is used. procs.fTypefaceCtx
-may be used to provide user context to procs.fTypefaceProc; procs.fTypefaceProc
-is called with a pointer to Typeface data, data byte length, and user context.
-
-#Param data  pointer for serial data ##
-#Param size  size of data ##
-#Param procs  custom serial data decoders; may be nullptr ##
-
-#Return Text_Blob constructed from data in memory ##
+#Populate
 
 #Example
 #Height 24
@@ -281,12 +234,12 @@
 #include "SkSerialProcs.h"
 $$
 $$$#
-    SkFont blobFont;

-    blobFont.setSize(24);

-    sk_sp<SkTextBlob> blob = SkTextBlob::MakeFromText("Hello World!", 12, blobFont);

-    sk_sp<SkData> data = blob->serialize(SkSerialProcs());

-    uint16_t glyphs[6];

-    SkPaint blobPaint;

+    SkFont blobFont;
+    blobFont.setSize(24);
+    sk_sp<SkTextBlob> blob = SkTextBlob::MakeFromText("Hello World!", 12, blobFont);
+    sk_sp<SkData> data = blob->serialize(SkSerialProcs());
+    uint16_t glyphs[6];
+    SkPaint blobPaint;
     blobPaint.textToGlyphs("Hacker", 6, glyphs);
     memcpy((char*)data->writable_data() + 0x54, glyphs, sizeof(glyphs));
     sk_sp<SkTextBlob> copy = SkTextBlob::Deserialize(data->data(), data->size(), SkDeserialProcs());
diff --git a/docs/spelling.txt b/docs/spelling.txt
new file mode 100644
index 0000000..68ab57e
--- /dev/null
+++ b/docs/spelling.txt
@@ -0,0 +1,242 @@
+a able abort aborted aborts about above abruptly absolute abstract abut access accessed accessible

+accompanying account accounted achieved acronym across active actual actually add added adding

+additional additionally address addressable adds adjacent adjusted adjusting adjustment

+adjustments adjusts advance advances advantage advantages affect affected affecting affects

+after again agree agrees algorithms align aligned alignment aligns alike all allocate

+allocated allocates allocating allocation allocations allow allowed allowing allows 

+along also alter altered altering alternating alternative alters although altogether

+always among amount an anchor and angle angles animating animation annotate annotation annotations

+another answer anticipating any anywhere appear appears append appended appending appends

+applied applies apply applying approach approximate approximated approximately approximates

+approximation are area argument arguments arithmetic arms arrangement arranges array arrays

+arrow artifacts as ascending ascent aspect assert asserts assigned assigning assignment

+associate associated associates associating assumed asynchronous asynchronously at

+attach attached attempt attributes auxiliary available average averaged avoid avoiding

+away axes axis 

+

+back back-end backed background backing balance balancing banding bare base based baseline

+be bearing because become becomes been before begin beginning begins behaves behavior being below

+beneath best better between bevel beveled beyond binary bit bits black bleed bleeding

+bleeds blend blended blending blends blobs blue blur blurred blurs bold bone bordered both

+bottom bottom-left bottom-right boundaries bounded bounding bounds box brace-delimited

+breaking brightened brighter brightness brush buffer bug bugs build builder building builds

+built but butt by byte bytes 

+

+cache cached caches caching calculation call callback called caller calling calls can

+cannot cap capabilities capacity caps captured captures capturing care case cases cast

+casts cause causes center centered centers change changed changes changing channel channels

+char character characteristics characters check checked checkerboard checkerboards 

+checking checks choice choose chooses choosing chosen circular clamped class classifies

+clean cleans clear cleared clearing clears client clip clipped clipping clips clock

+clockwise close closed closely closest clusters code codec codes collapse collects colored

+colors column columns combination combinations combine combined combines combining comma

+command commands commas common commonly communicates compact compare compared compares comparison

+compatibility compatible compile compiled compiler complete completely completes complex 

+complexity complicated component components composed composite compositing composition

+compressed computation computations compute computed computes computing concatenated

+concatenates concatenation concave concert condensed condition configuration conical

+connect connected connecting connects consecutive conservative conservatively

+consideration considered consistent consists const containers constant constants constrained

+constraint

+construct constructed constructing construction constructions constructor constructs

+consumption contain contained container containing containment contains content contents

+context contexts contextual contiguous continue continues continuing continuous contrast

+contribute contributing contribution control controls convenience conveniences conversion

+convert converted converting converts convex convexity coordinate coordinates copied copies

+copy copying corner corners correct correctly correspond corresponding corresponds corrupt

+corrupting

+cosine could count counterclockwise counts coverage covered covering covers crash

+create created creates creating creator criteria critical cross cull culled culling

+cumulatively current curvature curving custom 

+

+darken darker dashed dashes dashing debug decimal decode decoded decoders decodes decoding 

+decomposed decomposing decrease decreased decreases decreasing decrements default defaults

+defer deferred

+defers define defined defines defining definition deform deformations degenerate degree

+degrees delete deleted deletes deleting dependent depending depends deprecated depth

+descent describe described describes describing description descriptions descriptor

+designate desired destination destinations destruct destructed details detected determine 

+determined determines devices diagonally diameter did differ difference different

+differently differing differs digits dilates dimension dimensional dimensionless

+dimensions direct direction directly directory disable disabled disabling discard

+discarded discarding discards discrete display displayed distance distinct distribute

+distributed dither dithering divide divided divides dividing division divisions divisor do 

+document-based documentation documenting does done dot dotted double down downgrading

+downscale downward draw drawing drawn draws due duplicate duplicating during dynamically 

+

+each early easier edge edges edited editing effect effectively effects efficient

+efficiently eight either element elements eliminate ellipse elliptical else embedded

+empty enabled enables encapsulating enclose enclosed enclosing encode encoded encoder

+encoders encodes encoding encompasses end ending ends engine engines enlarge enough

+ensure ensuring entire entries entry environment equal equaling equality equally equals

+equivalent equivalents erases erroneously error evaluated even even-numbered even-odd

+evenly eventually ever every exact exactly exaggerates examined example exceed exceeds

+exceptions excess exchanged exchanges exchanging exclude excluded exclusive executing

+execution exhausted existing expanded expansion expected expecting explicitly exponent

+exposed expression extend extended extends extensive extent extra extract eye 

+

+face faces factor factored factors fail failing fails failure fake fall false far fast faster fastest

+favor feature features fewer fidelity field fields figure file fill filled filling fills

+filter filtered filtering filters final finalized find fine finite first fit fits five fix

+fixed flag flags flattening flexibility float floating floats flow flush flushed flushes

+followed following follows fonts for force forced form format formats formed former forming

+forms formula found four fourth fractional fragment frame frames framework free freed

+freedom frees fringing from front full fully function functionality functions further future 

+

+gamma gamut gap gaps general generate generated generates generator generic geometric geometrically

+geometries geometry get gets gigabyte gigabytes given gives global globally go goes

+good gradient gradients graphics gray greater green grid grows guarantee guaranteed guard

+

+had hairline hairlines half halved hand handle handling hands happens hard hardware has hash

+hashes have heap height help helper helpers helpful here hexadecimal hidden hierarchical

+high higher highest hint hinted hinting hints hit hitting hold holding holds hole holes

+horizontal horizontally host hosts hour how however hue hyperbola hyperbolic 

+

+idea identical identically identifier identifies identify identifying identity if

+ignore ignored ignores ignoring illegal image-generator images immediate immediately

+immutable imperceptible implement implementation implementations implemented implementing

+implements implicitly improve improves improving in inaccessible include included includes

+including incompatible inconsistent incorrect incorrectly increase increased increases

+increasing increment incremented increments indefinitely independent independently index indicated 

+indicating indices indistinguishable individual individually inefficient infinite infinities

+infinity

+influence info inform information initial initialize initialized initializes initializing

+initially inline inner input insert inserts inset insets inside inspected installed instance

+instantaneous instantiation instantiated instantiations instead instruct instructs integer integers

+integral

+intensity intercepted intercepts interchangeably interface interleaved interleaving 

+intermediate internal internally interpolate interpolated interpolation interpret

+interpreted interrupted interruption intersect intersected intersecting intersection

+intersections intersects interval into introduces introducing invalid invalidate inverse

+inversely inverted investigated invoked irregular is issues issuing it italic items iterate iterated

+iterates iterating iteration iterator its itself 

+

+join joins just 

+

+keep keeping key-value known 

+

+large largely larger largest last late later layout lazily leading least leave leaves

+leaving left left-aligned left-bottom left-top leftmost legacy legal length lengthens

+lengths less lessens lesser lets letters level levels lifetime lighten lighter lightness

+lightweight like likes limit limitation limited limits linear linearity list local locally

+located locates location locations logical longer look looks lookup loop loops lose loss

+lost low lower lower-case lower-left lowest luminosity 

+

+made magnified magnitude magnitudes main maintained maintains major make makes making manage

+managed manages managing mandrill manipulating many map mapped mapping mappings

+maps mark marked marking marks mashup mask masked masks match matches matching mathematically

+maximum may maybe mean

+meaning meaningful means measurable measure measured measures measuring mechanism meet

+member members memory mesh met method methods metric metrics middle midpoint might

+mimics minimally minimum minor minus minute mirrors mismatched misnamed missing

+miter mode modes modification modifications modified modifier modifies modify

+modifying modulate modulated modulo monitor monitors more most mostly move moved

+moves moving multiple multiple-pass multiplied multiplier multiplies multiply

+multiplying must muted 

+

+name named names narrower narrowing narrows native near nearby nearly necessarily necessary

+need needed needs negative nested never new newly next nibble nine no non-homogeneous

+non-square non-volatile non-zero none nor normal normalize normalized normally not

+note nothing noticeable now null null-terminated number numbers numeric numerically 

+

+object objects oblique obtain occupies odd of off offers offset offsets often on

+on-demand once one only onto opacity opaque opaqueness open opened operand operate operates

+operation operations operator operators opposite optimal optimally optimizations

+optimize optimized option optional optionally options or order ordered organization

+organizes orient orientation origin original origins other others otherwise out outcome outer

+outline outlines output outset outsets outside outstanding over overall overdraw

+overflow overflows overhead overlap overlapping overlaps overlaying overlays overridden

+override overrides overriding overwriting overwritten own owned owner owners ownership

+owning 

+

+pack packed packing padding paints pair paired pairs parabola parabolic parallel

+parameter parameters parsed parsing part partial partially parts pass passed passing past

+pattern patterns peek peeked peeking pen penalty pending per perception perform performance

+performed performing performs permit permits permitted perpendicular perspective perspective-scale

+perspective-x perspective-y physical piece pieces pin pinned pins pipeline pivot

+pixel-based pixels place placeholder placement places plane planes platform platform-specific

+platforms play playback played plus pointer pointers pointing polygon polygonal polynomial

+pop port portion position positioned positioning positions positive positives possible 

+possibly potentially power practice preceded preceding precision predefined predictable

+predicted prepare present preserve preserved preserves preserving pressure prevent

+prevents previous previously primarily primitives printed prior private process processed

+processes processing processors produce produces product progressively promoted promoting

+properties proportion proportional proportionally proportionately provide provided

+provides providing pt pulled punches purposes put 

+

+quadratic quality quantity quarter quick quickly 

+

+race radii radius range ranges ranging rarely raster rather ratio raw read read-only

+readable reader reading reads really reassign receive receiver receives receiving

+reciprocal recognized recommended recompute recomputed reconstruct reconstruction

+reconstructs recorded recording records recreates rectangle rectangles rectangular red reduce 

+reduced reducing reference referenced references referred referring refers reflect

+reflection regardless related relative relaxed release released releases releasing

+relies rely remain remainder remaining remains remove removed removes removing render

+rendered rendering repeated repeatedly replace replaced replacement replaces replacing replays

+replicate replicated replicates report reports represent representation representations

+representative represented representing represents request requested requests require 

+required requirements requires requiring reserve reset resets reside residing resolution

+resolves resource resources respect respects responsible restore restored restores restoring

+restrict restricted restriction restrictive restricts result resulting results retain

+retained retains retrieve retrieved retrieves retroactive return returned returning returns

+reused reveals reverse reversed reverses revert right right-bottom right-top rightmost root

+rotate rotate-x rotate-y rotated rotates rotating rotation roughly round rounded

+rounding rounds route routes routines row rows rule rules run runs 

+

+safe safely safer same sample sampled samples sampling satisfies satisfy satisfying

+saturation savable save saved saves scale scale-x scale-y scaled scales scaling scan

+scene scope second second-order section sections see seek segment segments select

+selecting selectively selector selects semaphore semaphores sensitive sent separate separately 

+sequence serial serialized series service set sets setting settings shadow shadows

+shallow shape shapes shaping share shareable shared shares sharing sharp shear shift

+shifts short shorter shorthand should show shows shrink shrinks side sides sign signal

+signaled signed signs similar similarity simple simplify since single single-pass singly

+six sized sizes skew skewing skews skip skipped skips slant slightly slow slower slowest

+small smaller smallest smart smooth smoother so soft sole solely solid solution some

+sometimes soon sort sorted sorts source space spaced spacing span spanned spans special 

+specialization specializations specializes specific specification specifics specified

+specifies specify specifying speed speeds square squared squares stack stage stages

+standard standards stands start started starting starts state states stationary stay

+stays std step steps still stock stop stops storage store stored stores storing straight

+straight-line streams strength stretched strictly strikeout strings stripe stripes 

+striping stroke stroked strokes stroking struct style stylistic sub-pixel subclass

+submitting subsequent subsequently subset substitution subtle subtract subtracted

+succeed succeeded succeeds success successful successfully successive such sufficient

+suggests sum summing supplied supplies supply supplying support supported supports

+suppress surrogate swapped swaps sweep sweeping sweeps switches symbol symmetrically

+synchronous system 

+

+tables take taken takes taking taller tangent tangents target targets techniques temporary

+ten terminate terminated test tested tests textual textures than that the their them then

+there therefore these they thick thickness thin thinner thinnest third third-order this

+those though thought thread threads three three-dimensional through thus tight tile

+tiles tiling time times

+to together toggled too top top-left top-right total totaling touches towards tracked tracks 

+trades trading traditional transferred transfers transform transformation transformations

+transformed transforming transforms transition transitions translate translated translates

+translating translation translucent transparency transparent travel traveled treat treated

+treating treats triangle trigger triggered triggers trivial true try turned turns twice two

+two-dimensional type types typically typographic 

+

+unaffected unaltered unchanged unchanging uncompressed undefined under underline

+underlines underlying unequal uniform uniformly uninitialized union unions unique

+unit unknown unless unlike unlikely unmodified unrelated unsigned unsorted until

+untouched unused up update updates upload uploaded upper upper-case upper-left upright upward

+usage use used useful user uses using utility 

+

+valid validate validated validity value values variable variant variants varies vary

+varying verb version vertical vertically very via video views virtual visible visibly visual

+visually volatile 

+

+wait waited waiting warning warnings was way ways wedge weight weighted well well-defined

+were whatever wheel when where whether which whichever while white whole whose wide

+wide-open widens wider width widths will wind winding windows winds with within without

+word words work works world would wrap wrapped wraps writable write writes writing 

+written wrong 

+

+x-axis x-coordinate

+

+y-axis y-coordinate

+

+z-axis zero zeroed zeroes zoom 

diff --git a/docs/undocumented.bmh b/docs/undocumented.bmh
index a6bf6ee..3eda4eb 100644
--- a/docs/undocumented.bmh
+++ b/docs/undocumented.bmh
@@ -7,14 +7,16 @@
  API
  BMP GIF HEIF ICO JPEG PNG WBMP WebP
  CPU
- GPU GPU-backed OpenGL Vulkan I/O MSAA
+ GPU GPU-backed OpenGL Vulkan VkDevice I/O MSAA
  PDF XPS
  RFC
  NaN NaNs
- U16CPU
-
+ U16CPU int int8_t int16_t int32_t int64_t uint8_t uint16_t uint32_t uint64_t size_t
+ nullptr
+ malloc() calloc() assert() std::move()
  C C++ SIZE_MAX C_FILE
  CSS HTML
+ affine destructor multitexturing representable subclasses descenders grayscale kerning unhinted
 
  Sa Da Sc Dc max min # temporary until figure out what to do
 
@@ -47,38 +49,6 @@
 
 #External ##
 
-# this jargon requires a substitute to lower-case the word. The word is uppercase because
-# it is not a dictionary word. An alternative would be to put this in an exception list
-# in the spell checker
-#Topic Destructor
-#Substitute destructor
-##
-
-# see comment for Destructor above
-#Topic Subclasses
-#Substitute subclasses
-##
-
-# see comment for Destructor above
-#Topic Descenders
-#Substitute descenders
-##
-
-# see comment for Destructor above
-#Topic Grayscale
-#Substitute grayscale
-##
-
-# see comment for Destructor above
-#Topic Kerning
-#Substitute kerning
-##
-
-# see comment for Destructor above
-#Topic Unhinted
-#Substitute unhinted
-##
-
 # this jargon requires a substitute to space the phrase.
 #Topic Little_Endian
 #Substitute little endian
@@ -260,6 +230,14 @@
 
 #Topic Deserial_Procs
 #Struct SkDeserialProcs
+#Member SkDeserialPictureProc   fPictureProc
+##
+#Member void*   fPictureCtx
+##
+#Member SkDeserialTypefaceProc   fTypefaceProc
+##
+#Member void*   fTypefaceCtx
+##
 ##
 ##
 
@@ -413,6 +391,10 @@
 
 #Topic ISize
 #Struct SkISize
+#Method int32_t width() const
+##
+#Method int32_t height() const
+##
 ##
 ##
 
@@ -444,6 +426,9 @@
 #Topic ##
 
 # to be in Topic Math
+    #Method float sqrt(float x)
+    # this permits using sqrt(x) in documentation
+    ##
     #Method static inline bool sk_64_isS32(int64_t value)
     ##
     #Method SkIntToScalar(x)
@@ -478,11 +463,10 @@
 #Topic Nine_Patch
 ##
 
-# to be in Topic Number_Types
+# to be in Topic Number_Types ?
     #Typedef uint16_t SkGlyphID
     #Typedef ##
     #Topic Scalar
-    #Alias Scalar ##
     #Alias Scalars ##
     #Typedef float SkScalar
     #Typedef ##
@@ -638,9 +622,11 @@
 # end of Topic Rasterizer
 
 #Topic Reference_Count
-#Substitute SkRefCnt
 #Class SkRefCnt
 #Class ##
+##
+
+#Topic Smart_Pointer
 #Class sk_sp
 #Class ##
 #Topic ##
@@ -655,11 +641,27 @@
 
 #Topic RSXform
 #Struct SkRSXform
+#Member SkScalar fSCos
+##
+#Member SkScalar fSSin
+##
+#Member SkScalar fTx
+##
+#Member SkScalar fTy
+##
 ##
 ##
 
 #Topic Serial_Procs
 #Struct SkSerialProcs
+#Member SkSerialPictureProc   fPictureProc
+##
+#Member void*   fPictureCtx
+##
+#Member SkSerialTypefaceProc   fTypefaceProc
+##
+#Member void*   fTypefaceCtx
+##
 ##
 ##
 
@@ -684,6 +686,10 @@
 
 #Topic Size
 #Struct SkSize
+#Method int32_t width() const
+##
+#Method int32_t height() const
+##
 ##
 ##
 
@@ -725,6 +731,9 @@
 ##
 #Subtopic Arc
 ##
+#Subtopic Sweep_Flag
+#Substitute SVG sweep-flag
+##
 ##
 
 #Topic Text
@@ -815,7 +824,3 @@
 #Class SkXfermodeImageFilter
 ##
 ##
-
-# temporary while ref is separated from overview
-#Topic Zero_Length_Contour
-##
diff --git a/docs/usingBookmaker.bmh b/docs/usingBookmaker.bmh
index 91d79ce..d241ef3 100644
--- a/docs/usingBookmaker.bmh
+++ b/docs/usingBookmaker.bmh
@@ -1,7 +1,8 @@
 #External
 SkXXX
-SkIRect_Reference
-SkSurface_Reference
+docs/SkIRect_Reference
+docs/SkSurface_Reference
+include/core/SkSurface
 SkSurface.h
 CL
 Go
diff --git a/site/user/api/SkAutoCanvasRestore_Reference.md b/site/user/api/SkAutoCanvasRestore_Reference.md
index 412cb97..a95de25 100644
--- a/site/user/api/SkAutoCanvasRestore_Reference.md
+++ b/site/user/api/SkAutoCanvasRestore_Reference.md
@@ -27,21 +27,21 @@
 <a href='#SkAutoCanvasRestore'>SkAutoCanvasRestore</a>(<a href='SkCanvas_Reference#SkCanvas'>SkCanvas</a>* canvas, bool doSave)
 </pre>
 
-Preserves <a href='SkCanvas_Reference#Canvas'>Canvas</a> save count. Optionally saves <a href='SkCanvas_Reference#Clip'>Canvas Clip</a> and <a href='SkCanvas_Reference#Matrix'>Canvas Matrix</a>.
+Preserves <a href='SkCanvas_Reference#SkCanvas'>SkCanvas</a> save 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#Canvas'>Canvas</a> to guard</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_save'>SkCanvas::save</a>()</td>
+    <td>call <a href='SkCanvas_Reference#SkCanvas'>SkCanvas</a>::save()</td>
   </tr>
 </table>
 
 ### Return Value
 
-utility to restore <a href='SkCanvas_Reference#Canvas'>Canvas</a> state on destructor
+utility to restore <a href='SkCanvas_Reference#SkCanvas'>SkCanvas</a> state on destructor
 
 ### Example
 
@@ -59,7 +59,7 @@
 <a href='#SkAutoCanvasRestore_destructor'>~SkAutoCanvasRestore</a>()
 </pre>
 
-Restores <a href='SkCanvas_Reference#Canvas'>Canvas</a> to saved state. <a href='undocumented#Destructor'>Destructor</a> is called when container goes out of
+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#Canvas'>Canvas</a> to saved state immediately. Subsequent calls and
-<a href='#SkAutoCanvasRestore_destructor'>~SkAutoCanvasRestore</a> have no effect.
+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 54433b7..949acfb 100644
--- a/site/user/api/SkBitmap_Reference.md
+++ b/site/user/api/SkBitmap_Reference.md
@@ -164,20 +164,20 @@
 virtual bool <a href='#SkBitmap_Allocator_allocPixelRef'>allocPixelRef</a>(<a href='#SkBitmap'>SkBitmap</a>* bitmap) = 0
 </pre>
 
-Allocates the pixel memory for the <a href='#SkBitmap_Allocator_allocPixelRef_bitmap'>bitmap</a>, given its dimensions and
-<a href='SkImageInfo_Reference#Color_Type'>Color Type</a>. Returns true on success, where success means either <a href='#SkBitmap_setPixels'>setPixels</a>
-or <a href='#SkBitmap_setPixelRef'>setPixelRef</a> was called.
+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='#Bitmap'>Bitmap</a> containing <a href='SkImageInfo_Reference#Image_Info'>Image Info</a> as input, and <a href='undocumented#Pixel_Ref'>Pixel Ref</a> as output</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#Pixel_Ref'>Pixel Ref</a> was allocated
+true if <a href='undocumented#SkPixelRef'>SkPixelRef</a> was allocated
 
 ### See Also
 
@@ -206,14 +206,14 @@
 bool <a href='#SkBitmap_HeapAllocator_allocPixelRef'>allocPixelRef</a>(<a href='#SkBitmap'>SkBitmap</a>* bitmap) override
 </pre>
 
-Allocates the pixel memory for the <a href='#SkBitmap_HeapAllocator_allocPixelRef_bitmap'>bitmap</a>, given its dimensions and
-<a href='SkImageInfo_Reference#Color_Type'>Color Type</a>. Returns true on success, where success means either <a href='#SkBitmap_setPixels'>setPixels</a>
-or <a href='#SkBitmap_setPixelRef'>setPixelRef</a> was called.
+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='#Bitmap'>Bitmap</a> containing <a href='SkImageInfo_Reference#Image_Info'>Image Info</a> as input, and <a href='undocumented#Pixel_Ref'>Pixel Ref</a> as output</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>
 
@@ -247,16 +247,16 @@
 <a href='#SkBitmap'>SkBitmap</a>()
 </pre>
 
-Creates an empty <a href='#Bitmap'>Bitmap</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#Pixel_Ref'>Pixel Ref</a> origin is
-set to (0, 0). <a href='#Bitmap'>Bitmap</a> is not volatile.
+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> to associate <a href='SkImageInfo_Reference#SkColorType'>SkColorType</a>, <a href='SkImageInfo_Reference#SkAlphaType'>SkAlphaType</a>, width, and height
-after <a href='#Bitmap'>Bitmap</a> has been created.
+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
 
-empty <a href='#Bitmap'>Bitmap</a>
+empty <a href='SkBitmap_Reference#SkBitmap'>SkBitmap</a>
 
 ### Example
 
@@ -283,19 +283,19 @@
 <a href='#SkBitmap'>SkBitmap</a>(const <a href='#SkBitmap'>SkBitmap</a>& src)
 </pre>
 
-Copies settings from <a href='#SkBitmap_copy_const_SkBitmap_src'>src</a> to returned <a href='#Bitmap'>Bitmap</a>. Shares pixels if <a href='#SkBitmap_copy_const_SkBitmap_src'>src</a> has pixels
-allocated, so both bitmaps reference the same pixels.
+Copies settings from <a href='#SkBitmap_SkBitmap(const SkBitmap& src)_src'>src</a> to returned <a href='SkBitmap_Reference#SkBitmap'>SkBitmap</a>. Shares pixels if <a href='#SkBitmap_SkBitmap(const SkBitmap& src)_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='#Bitmap'>Bitmap</a> to copy <a href='SkImageInfo_Reference#Image_Info'>Image Info</a>, and share <a href='undocumented#Pixel_Ref'>Pixel Ref</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>
 
 ### Return Value
 
-copy of <a href='#SkBitmap_copy_const_SkBitmap_src'>src</a>
+copy of <a href='#SkBitmap_SkBitmap(const SkBitmap& src)_src'>src</a>
 
 ### Example
 
@@ -323,19 +323,19 @@
 <a href='#SkBitmap'>SkBitmap</a>(<a href='#SkBitmap'>SkBitmap</a>&& src)
 </pre>
 
-Copies settings from <a href='#SkBitmap_move_SkBitmap_src'>src</a> to returned <a href='#Bitmap'>Bitmap</a>. Moves ownership of <a href='#SkBitmap_move_SkBitmap_src'>src</a> pixels to
-<a href='#Bitmap'>Bitmap</a>.
+Copies settings from <a href='#SkBitmap_SkBitmap(SkBitmap&& src)_src'>src</a> to returned <a href='SkBitmap_Reference#SkBitmap'>SkBitmap</a>. Moves ownership of <a href='#SkBitmap_SkBitmap(SkBitmap&& src)_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='#Bitmap'>Bitmap</a> to copy <a href='SkImageInfo_Reference#Image_Info'>Image Info</a>, and reassign <a href='undocumented#Pixel_Ref'>Pixel Ref</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>
 
 ### Return Value
 
-copy of <a href='#SkBitmap_move_SkBitmap_src'>src</a>
+copy of <a href='#SkBitmap_SkBitmap(SkBitmap&& src)_src'>src</a>
 
 ### Example
 
@@ -363,7 +363,7 @@
 <a href='#SkBitmap_destructor'>~SkBitmap</a>()
 </pre>
 
-Decrements <a href='undocumented#Pixel_Ref'>Pixel Ref</a> reference count, if <a href='undocumented#Pixel_Ref'>Pixel Ref</a> is not nullptr.
+Decrements <a href='undocumented#SkPixelRef'>SkPixelRef</a>  <a href='undocumented#Reference_Count'>reference count</a>, if <a href='undocumented#SkPixelRef'>SkPixelRef</a> is not nullptr.
 
 ### See Also
 
@@ -377,19 +377,19 @@
 <a href='#SkBitmap'>SkBitmap</a>& <a href='#SkBitmap_copy_operator'>operator=(const SkBitmap& src)</a>
 </pre>
 
-Copies settings from <a href='#SkBitmap_copy_operator_src'>src</a> to returned <a href='#Bitmap'>Bitmap</a>. Shares pixels if <a href='#SkBitmap_copy_operator_src'>src</a> has pixels
-allocated, so both bitmaps reference the same pixels.
+Copies settings from <a href='#SkBitmap_operator=(const SkBitmap& src)_src'>src</a> to returned <a href='SkBitmap_Reference#SkBitmap'>SkBitmap</a>. Shares pixels if <a href='#SkBitmap_operator=(const SkBitmap& src)_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='#Bitmap'>Bitmap</a> to copy <a href='SkImageInfo_Reference#Image_Info'>Image Info</a>, and share <a href='undocumented#Pixel_Ref'>Pixel Ref</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>
 
 ### Return Value
 
-copy of <a href='#SkBitmap_copy_operator_src'>src</a>
+copy of <a href='#SkBitmap_operator=(const SkBitmap& src)_src'>src</a>
 
 ### Example
 
@@ -417,19 +417,19 @@
 <a href='#SkBitmap'>SkBitmap</a>& <a href='#SkBitmap_move_operator'>operator=(SkBitmap&& src)</a>
 </pre>
 
-Copies settings from <a href='#SkBitmap_move_operator_src'>src</a> to returned <a href='#Bitmap'>Bitmap</a>. Moves ownership of <a href='#SkBitmap_move_operator_src'>src</a> pixels to
-<a href='#Bitmap'>Bitmap</a>.
+Copies settings from <a href='#SkBitmap_operator=(SkBitmap&& src)_src'>src</a> to returned <a href='SkBitmap_Reference#SkBitmap'>SkBitmap</a>. Moves ownership of <a href='#SkBitmap_operator=(SkBitmap&& src)_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='#Bitmap'>Bitmap</a> to copy <a href='SkImageInfo_Reference#Image_Info'>Image Info</a>, and reassign <a href='undocumented#Pixel_Ref'>Pixel Ref</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>
 
 ### Return Value
 
-copy of <a href='#SkBitmap_move_operator_src'>src</a>
+copy of <a href='#SkBitmap_operator=(SkBitmap&& src)_src'>src</a>
 
 ### Example
 
@@ -457,12 +457,12 @@
 void <a href='#SkBitmap_swap'>swap</a>(<a href='#SkBitmap'>SkBitmap</a>& other)
 </pre>
 
-Swaps the fields of the two bitmaps.
+Swaps the fields of the two <a href='SkBitmap_Reference#Bitmap'>bitmaps</a>.
 
 ### Parameters
 
 <table>  <tr>    <td><a name='SkBitmap_swap_other'><code><strong>other</strong></code></a></td>
-    <td><a href='#Bitmap'>Bitmap</a> exchanged with original</td>
+    <td><a href='SkBitmap_Reference#SkBitmap'>SkBitmap</a> exchanged with original</td>
   </tr>
 </table>
 
@@ -495,12 +495,12 @@
 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#Pixmap'>Pixmap</a> holding the <a href='#Bitmap'>Bitmap</a> pixel
-address, row bytes, and <a href='SkImageInfo_Reference#Image_Info'>Image Info</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,  <a href='#Row_Bytes'>row bytes</a>, and <a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a>.
 
 ### Return Value
 
-reference to <a href='SkPixmap_Reference#Pixmap'>Pixmap</a> describing this <a href='#Bitmap'>Bitmap</a>
+reference to <a href='SkPixmap_Reference#SkPixmap'>SkPixmap</a> describing this <a href='SkBitmap_Reference#SkBitmap'>SkBitmap</a>
 
 ### Example
 
@@ -536,11 +536,11 @@
 const <a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a>& <a href='#SkBitmap_info'>info</a>() const
 </pre>
 
-Returns width, height, <a href='SkImageInfo_Reference#Alpha_Type'>Alpha Type</a>, <a href='SkImageInfo_Reference#Color_Type'>Color Type</a>, and <a href='undocumented#Color_Space'>Color Space</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
 
-reference to <a href='SkImageInfo_Reference#Image_Info'>Image Info</a>
+reference to <a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a>
 
 ### Example
 
@@ -599,14 +599,14 @@
 int <a href='#SkBitmap_height'>height</a>() const
 </pre>
 
-Returns pixel row count.
+Returns <a href='undocumented#Pixel'>pixel</a> row count.
 
-Maybe be less than <a href='#SkBitmap_pixelRef'>pixelRef</a>().<a href='#SkBitmap_height'>height</a>(). Will not exceed <a href='#SkBitmap_pixelRef'>pixelRef</a>().<a href='#SkBitmap_height'>height</a>() less
-<a href='#SkBitmap_pixelRefOrigin'>pixelRefOrigin</a>().fY.
+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
 
-pixel height in <a href='SkImageInfo_Reference#Image_Info'>Image Info</a>
+<a href='undocumented#Pixel'>pixel</a> height in <a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a>
 
 ### Example
 
@@ -696,13 +696,13 @@
 <a href='undocumented#SkColorSpace'>SkColorSpace</a>* <a href='#SkBitmap_colorSpace'>colorSpace</a>() const
 </pre>
 
-Returns <a href='undocumented#Color_Space'>Color Space</a>, the range of colors, associated with <a href='SkImageInfo_Reference#Image_Info'>Image Info</a>. The
-reference count of <a href='undocumented#Color_Space'>Color Space</a> is unchanged. The returned <a href='undocumented#Color_Space'>Color Space</a> is
+Returns <a href='undocumented#SkColorSpace'>SkColorSpace</a>, the range of colors, associated with <a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a>. The
+<a href='undocumented#Reference_Count'>reference count</a> of <a href='undocumented#SkColorSpace'>SkColorSpace</a> is unchanged. The returned <a href='undocumented#SkColorSpace'>SkColorSpace</a> is
 immutable.
 
 ### Return Value
 
-<a href='undocumented#Color_Space'>Color Space</a> in <a href='SkImageInfo_Reference#Image_Info'>Image Info</a>, or nullptr
+<a href='undocumented#SkColorSpace'>SkColorSpace</a> in <a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a>, or nullptr
 
 ### Example
 
@@ -730,15 +730,15 @@
 <a href='undocumented#sk_sp'>sk sp</a>&lt;<a href='undocumented#SkColorSpace'>SkColorSpace</a>&gt; <a href='#SkBitmap_refColorSpace'>refColorSpace</a>() const
 </pre>
 
-Returns smart pointer to <a href='undocumented#Color_Space'>Color Space</a>, the range of colors, associated with
-<a href='SkImageInfo_Reference#Image_Info'>Image Info</a>. The smart pointer tracks the number of objects sharing this
-<a href='undocumented#Color_Space'>Color Space</a> reference so the memory is released when the owners destruct.
+Returns  <a href='undocumented#Smart_Pointer'>smart pointer</a> to <a href='undocumented#SkColorSpace'>SkColorSpace</a>, the range of colors, associated with
+<a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a>. The  <a href='undocumented#Smart_Pointer'>smart pointer</a> 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#Color_Space'>Color Space</a> is immutable.
+The returned <a href='undocumented#SkColorSpace'>SkColorSpace</a> is immutable.
 
 ### Return Value
 
-<a href='undocumented#Color_Space'>Color Space</a> in <a href='SkImageInfo_Reference#Image_Info'>Image Info</a> wrapped in a smart pointer
+<a href='undocumented#SkColorSpace'>SkColorSpace</a> in <a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a> wrapped in a  <a href='undocumented#Smart_Pointer'>smart pointer</a>
 
 ### Example
 
@@ -764,12 +764,12 @@
 int <a href='#SkBitmap_bytesPerPixel'>bytesPerPixel</a>() const
 </pre>
 
-Returns number of bytes per pixel required by <a href='SkImageInfo_Reference#Color_Type'>Color Type</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
 
-bytes in pixel
+bytes in <a href='undocumented#Pixel'>pixel</a>
 
 ### Example
 
@@ -809,7 +809,7 @@
 </pre>
 
 Returns number of pixels that fit on row. Should be greater than or equal to
-<a href='#SkBitmap_width'>width</a>().
+<a href='#SkBitmap_width'>width()</a>.
 
 ### Return Value
 
@@ -843,7 +843,7 @@
 int <a href='#SkBitmap_shiftPerPixel'>shiftPerPixel</a>() const
 </pre>
 
-Returns bit shift converting row bytes to row pixels.
+Returns bit shift converting  <a href='#Row_Bytes'>row bytes</a> to row pixels.
 Returns zero for <a href='SkImageInfo_Reference#kUnknown_SkColorType'>kUnknown_SkColorType</a>.
 
 ### Return Value
@@ -887,10 +887,10 @@
 bool <a href='#SkBitmap_empty'>empty</a>() const
 </pre>
 
-Returns true if either <a href='#SkBitmap_width'>width</a>() or <a href='#SkBitmap_height'>height</a>() are zero.
+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#Pixel_Ref'>Pixel Ref</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#Pixel_Ref'>Pixel Ref</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
 
@@ -923,14 +923,14 @@
 bool <a href='#SkBitmap_isNull'>isNull</a>() const
 </pre>
 
-Returns true if <a href='undocumented#Pixel_Ref'>Pixel Ref</a> is nullptr.
+Returns true if <a href='undocumented#SkPixelRef'>SkPixelRef</a> is nullptr.
 
-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#Pixel_Ref'>Pixel Ref</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#Pixel_Ref'>Pixel Ref</a> is associated
+true if no <a href='undocumented#SkPixelRef'>SkPixelRef</a> is associated
 
 ### Example
 
@@ -958,8 +958,8 @@
 bool <a href='#SkBitmap_drawsNothing'>drawsNothing</a>() const
 </pre>
 
-Returns true if <a href='#SkBitmap_width'>width</a>() or <a href='#SkBitmap_height'>height</a>() are zero, or if <a href='undocumented#Pixel_Ref'>Pixel Ref</a> is nullptr.
-If true, <a href='#Bitmap'>Bitmap</a> has no effect when drawn or drawn into.
+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
 
@@ -1027,40 +1027,42 @@
 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#Alpha_Type'>Alpha Type</a>, if <a href='#SkBitmap_alphaType'>alphaType</a> is compatible with <a href='SkImageInfo_Reference#Color_Type'>Color Type</a>.
-Returns true unless <a href='#SkBitmap_alphaType'>alphaType</a> is <a href='SkImageInfo_Reference#kUnknown_SkAlphaType'>kUnknown_SkAlphaType</a> and current <a href='SkImageInfo_Reference#Alpha_Type'>Alpha Type</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#Color_Type'>Color Type</a> is <a href='SkImageInfo_Reference#kUnknown_SkColorType'>kUnknown_SkColorType</a>. <a href='#SkBitmap_alphaType'>alphaType</a> is ignored, and
-<a href='SkImageInfo_Reference#Alpha_Type'>Alpha Type</a> remains <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#Color_Type'>Color Type</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_alphaType'>alphaType</a> is ignored, and <a href='SkImageInfo_Reference#Alpha_Type'>Alpha Type</a> remains <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#Color_Type'>Color Type</a> is <a href='SkImageInfo_Reference#kARGB_4444_SkColorType'>kARGB_4444_SkColorType</a>, <a href='SkImageInfo_Reference#kRGBA_8888_SkColorType'>kRGBA_8888_SkColorType</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_alphaType'>alphaType</a> is <a href='SkImageInfo_Reference#kUnknown_SkAlphaType'>kUnknown_SkAlphaType</a> and <a href='SkImageInfo_Reference#Alpha_Type'>Alpha Type</a> is not <a href='SkImageInfo_Reference#kUnknown_SkAlphaType'>kUnknown_SkAlphaType</a>.
-If <a href='SkImageInfo_Reference#Alpha_Type'>Alpha Type</a> is <a href='SkImageInfo_Reference#kUnknown_SkAlphaType'>kUnknown_SkAlphaType</a>, <a href='#SkBitmap_alphaType'>alphaType</a> is ignored.
+<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#Color_Type'>Color Type</a> is <a href='SkImageInfo_Reference#kAlpha_8_SkColorType'>kAlpha_8_SkColorType</a>, returns true unless
-<a href='#SkBitmap_alphaType'>alphaType</a> is <a href='SkImageInfo_Reference#kUnknown_SkAlphaType'>kUnknown_SkAlphaType</a> and <a href='SkImageInfo_Reference#Alpha_Type'>Alpha Type</a> is not <a href='SkImageInfo_Reference#kUnknown_SkAlphaType'>kUnknown_SkAlphaType</a>.
-If <a href='SkImageInfo_Reference#Alpha_Type'>Alpha Type</a> is <a href='SkImageInfo_Reference#kUnknown_SkAlphaType'>kUnknown_SkAlphaType</a>, <a href='#SkBitmap_alphaType'>alphaType</a> is ignored. If <a href='#SkBitmap_alphaType'>alphaType</a> is
+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#Alpha_Type'>Alpha Type</a> in <a href='undocumented#Pixel_Ref'>Pixel Ref</a>; all bitmaps sharing <a href='undocumented#Pixel_Ref'>Pixel Ref</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
 
 <table>  <tr>    <td><a name='SkBitmap_setAlphaType_alphaType'><code><strong>alphaType</strong></code></a></td>
-    <td>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> </td>
+    <td>one of:</td>
   </tr>
 </table>
 
+<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
 
-true if <a href='SkImageInfo_Reference#Alpha_Type'>Alpha Type</a> is set
+true if <a href='SkImageInfo_Reference#SkAlphaType'>SkAlphaType</a> is set
 
 ### Example
 
@@ -1082,11 +1084,11 @@
 void* <a href='#SkBitmap_getPixels'>getPixels</a>() const
 </pre>
 
-Returns pixel address, the base address corresponding to the pixel origin.
+Returns <a href='undocumented#Pixel'>pixel</a> address, the base address corresponding to the <a href='undocumented#Pixel'>pixel</a> origin.
 
 ### Return Value
 
-pixel address
+<a href='undocumented#Pixel'>pixel</a> address
 
 ### Example
 
@@ -1113,15 +1115,15 @@
 size_t <a href='#SkBitmap_computeByteSize'>computeByteSize</a>() const
 </pre>
 
-Returns minimum memory required for pixel storage.
-Does not include unused memory on last row when <a href='#SkBitmap_rowBytesAsPixels'>rowBytesAsPixels</a> exceeds <a href='#SkBitmap_width'>width</a>().
+Returns minimum memory required for  <a href='undocumented#Pixel_Storage'>pixel storage</a>.
+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>() 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>.
+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
 
-size in bytes of image buffer
+<a href='undocumented#Size'>size</a> in bytes of <a href='SkImage_Reference#Image'>image</a> buffer
 
 ### Example
 
@@ -1157,7 +1159,7 @@
 
 Returns true if pixels can not change.
 
-Most immutable <a href='#Bitmap'>Bitmap</a> checks trigger an assert only on debug builds.
+Most immutable <a href='SkBitmap_Reference#SkBitmap'>SkBitmap</a> checks trigger an assert only on debug builds.
 
 ### Return Value
 
@@ -1188,11 +1190,11 @@
 void <a href='#SkBitmap_setImmutable'>setImmutable</a>()
 </pre>
 
-Sets internal flag to mark <a href='#Bitmap'>Bitmap</a> as immutable. Once set, pixels can not change.
-Any other bitmap sharing the same <a href='undocumented#Pixel_Ref'>Pixel Ref</a> are also marked as immutable.
-Once <a href='undocumented#Pixel_Ref'>Pixel Ref</a> is marked immutable, the setting cannot be cleared.
+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='#Bitmap'>Bitmap</a> pixels triggers an assert on debug builds.
+Writing to immutable <a href='SkBitmap_Reference#SkBitmap'>SkBitmap</a> pixels triggers an assert on debug builds.
 
 ### Example
 
@@ -1211,16 +1213,16 @@
 bool <a href='#SkBitmap_isOpaque'>isOpaque</a>() const
 </pre>
 
-Returns true if <a href='SkImageInfo_Reference#Alpha_Type'>Alpha Type</a> is set to hint that all pixels are opaque; their
-<a href='SkColor_Reference#Alpha'>Color Alpha</a> value is implicitly or explicitly 1.0. If true, and all pixels are
+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#Color_Type'>Color Type</a> allows <a href='SkColor_Reference#Alpha'>Alpha</a>, or if any pixel value has
+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#Image_Info'>Image Info</a> <a href='SkImageInfo_Reference#Alpha_Type'>Alpha Type</a> is <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
 
@@ -1251,9 +1253,9 @@
 </pre>
 
 Provides a hint to caller that pixels should not be cached. Only true if
-<a href='#SkBitmap_setIsVolatile'>setIsVolatile</a> has been called to mark as volatile.
+<a href='#SkBitmap_setIsVolatile'>setIsVolatile</a>() has been called to mark as volatile.
 
-Volatile state is not shared by other bitmaps sharing the same <a href='undocumented#Pixel_Ref'>Pixel Ref</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
 
@@ -1284,12 +1286,12 @@
 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#Pixel_Ref'>Pixel Ref</a> on every access. <a href='#Bitmap'>Bitmaps</a> are not
-volatile by default; a GPU back end may upload pixel values expecting them to be
-accessed repeatedly. Marking temporary <a href='#Bitmap'>Bitmaps</a> as volatile provides a hint to
-<a href='undocumented#Device'>Device</a> that the <a href='#Bitmap'>Bitmap</a> pixels should not be cached. This can
+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#Device'>Device</a>.
+consumption on <a href='undocumented#SkBaseDevice'>SkBaseDevice</a>.
 
 ### Parameters
 
@@ -1314,14 +1316,14 @@
 void <a href='#SkBitmap_reset'>reset</a>()
 </pre>
 
-Resets to its initial state; all fields are set to zero, as if <a href='#Bitmap'>Bitmap</a> had
+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; pixel address to nullptr; <a href='SkImageInfo_Reference#SkColorType'>SkColorType</a> to
+Sets width, height,  <a href='#Row_Bytes'>row bytes</a> 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#Pixel_Ref'>Pixel Ref</a> is allocated, its reference count is decreased by one, releasing
-its memory if <a href='#Bitmap'>Bitmap</a> is the sole owner.
+If <a href='undocumented#SkPixelRef'>SkPixelRef</a> is allocated, its  <a href='undocumented#Reference_Count'>reference count</a> is decreased by one, releasing
+its memory if <a href='SkBitmap_Reference#SkBitmap'>SkBitmap</a> is the sole owner.
 
 ### Example
 
@@ -1348,16 +1350,16 @@
 static bool <a href='#SkBitmap_ComputeIsOpaque'>ComputeIsOpaque</a>(const <a href='#SkBitmap'>SkBitmap</a>& bm)
 </pre>
 
-Returns true if all pixels are opaque. <a href='SkImageInfo_Reference#Color_Type'>Color Type</a> determines how pixels
-are encoded, and whether pixel describes <a href='SkColor_Reference#Alpha'>Alpha</a>. Returns true for <a href='SkImageInfo_Reference#Color_Type'>Color Types</a>
-without alpha in each pixel; for other <a href='SkImageInfo_Reference#Color_Type'>Color Types</a>, returns true if all
-pixels have alpha values equivalent to 1.0 or greater.
+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#Color_Type'>Color Types</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#Color_Type'>Color Types</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>: returns true if all pixel <a href='SkColor_Reference#Alpha'>Alpha</a> values are 255.
-For <a href='SkImageInfo_Reference#Color_Type'>Color Type</a> <a href='SkImageInfo_Reference#kARGB_4444_SkColorType'>kARGB_4444_SkColorType</a>: returns true if all pixel <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 pixel <a href='SkColor_Reference#Alpha'>Alpha</a> values are 1.0 or
+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>: 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>.
@@ -1365,13 +1367,13 @@
 ### Parameters
 
 <table>  <tr>    <td><a name='SkBitmap_ComputeIsOpaque_bm'><code><strong>bm</strong></code></a></td>
-    <td><a href='#Bitmap'>Bitmap</a> to check</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#Color_Type'>Color Type</a> is opaque
+true if all pixels have opaque values or <a href='SkImageInfo_Reference#SkColorType'>SkColorType</a> is opaque
 
 ### Example
 
@@ -1400,12 +1402,12 @@
 void <a href='#SkBitmap_getBounds'>getBounds</a>(<a href='SkRect_Reference#SkRect'>SkRect</a>* bounds) const
 </pre>
 
-Returns <a href='SkRect_Reference#Rect'>Rect</a> { 0, 0, <a href='#SkBitmap_width'>width</a>(), <a href='#SkBitmap_height'>height</a>() }.
+Returns <a href='SkRect_Reference#SkRect'>SkRect</a> { 0, 0, <a href='#SkBitmap_width'>width()</a>, <a href='#SkBitmap_height'>height()</a> }.
 
 ### Parameters
 
 <table>  <tr>    <td><a name='SkBitmap_getBounds_bounds'><code><strong>bounds</strong></code></a></td>
-    <td>container for floating point rectangle</td>
+    <td>container for floating <a href='SkPoint_Reference#Point'>point</a> rectangle</td>
   </tr>
 </table>
 
@@ -1425,7 +1427,7 @@
 void <a href='#SkBitmap_getBounds'>getBounds</a>(<a href='SkIRect_Reference#SkIRect'>SkIRect</a>* bounds) const
 </pre>
 
-Returns <a href='SkIRect_Reference#IRect'>IRect</a> { 0, 0, <a href='#SkBitmap_width'>width</a>(), <a href='#SkBitmap_height'>height</a>() }.
+Returns <a href='SkIRect_Reference#SkIRect'>SkIRect</a> { 0, 0, <a href='#SkBitmap_width'>width()</a>, <a href='#SkBitmap_height'>height()</a> }.
 
 ### Parameters
 
@@ -1450,11 +1452,11 @@
 <a href='SkIRect_Reference#SkIRect'>SkIRect</a> <a href='#SkBitmap_bounds'>bounds</a>() const
 </pre>
 
-Returns <a href='SkIRect_Reference#IRect'>IRect</a> { 0, 0, <a href='#SkBitmap_width'>width</a>(), <a href='#SkBitmap_height'>height</a>() }.
+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>() and <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
 
@@ -1472,11 +1474,11 @@
 <a href='undocumented#SkISize'>SkISize</a> <a href='#SkBitmap_dimensions'>dimensions</a>() const
 </pre>
 
-Returns <a href='undocumented#ISize'>ISize</a> { <a href='#SkBitmap_width'>width</a>(), <a href='#SkBitmap_height'>height</a>() }.
+Returns <a href='undocumented#SkISize'>SkISize</a> { <a href='#SkBitmap_width'>width()</a>, <a href='#SkBitmap_height'>height()</a> }.
 
 ### Return Value
 
-integral size of <a href='#SkBitmap_width'>width</a>() and <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
 
@@ -1494,11 +1496,11 @@
 <a href='SkIRect_Reference#SkIRect'>SkIRect</a> <a href='#SkBitmap_getSubset'>getSubset</a>() const
 </pre>
 
-Returns the bounds of this bitmap, offset by its <a href='undocumented#Pixel_Ref'>Pixel Ref</a> origin.
+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#Pixel_Ref'>Pixel Ref</a> bounds
+bounds within <a href='undocumented#SkPixelRef'>SkPixelRef</a> bounds
 
 ### Example
 
@@ -1619,28 +1621,28 @@
 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#Image_Info'>Image Info</a> to info following the rules in <a href='#SkBitmap_setInfo'>setInfo</a> and allocates pixel
-memory. If <a href='#SkBitmap_tryAllocPixelsFlags_flags'>flags</a> is <a href='#SkBitmap_kZeroPixels_AllocFlag'>kZeroPixels AllocFlag</a>, memory is zeroed.
+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>() if <a href='SkImageInfo_Reference#Image_Info'>Image Info</a> could not be set, or memory could
+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 pixel memory may succeed even though there is
+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> is zero, and calloc(), if <a href='#SkBitmap_tryAllocPixelsFlags_flags'>flags</a> is
-<a href='#SkBitmap_kZeroPixels_AllocFlag'>kZeroPixels AllocFlag</a>.
+<a href='#SkBitmap_kZeroPixels_AllocFlag'>kZeroPixels_AllocFlag</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>.
+<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
 
 <table>  <tr>    <td><a name='SkBitmap_tryAllocPixelsFlags_info'><code><strong>info</strong></code></a></td>
-    <td>contains width, height, <a href='SkImageInfo_Reference#Alpha_Type'>Alpha Type</a>, <a href='SkImageInfo_Reference#Color_Type'>Color Type</a>, <a href='undocumented#Color_Space'>Color Space</a></td>
+    <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>, or zero</td>
+    <td><a href='#SkBitmap_kZeroPixels_AllocFlag'>kZeroPixels_AllocFlag</a>, or zero</td>
   </tr>
 </table>
 
@@ -1672,30 +1674,30 @@
 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#Image_Info'>Image Info</a> to info following the rules in <a href='#SkBitmap_setInfo'>setInfo</a> and allocates pixel
-memory. If <a href='#SkBitmap_allocPixelsFlags_flags'>flags</a> is <a href='#SkBitmap_kZeroPixels_AllocFlag'>kZeroPixels AllocFlag</a>, memory is zeroed.
+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#Image_Info'>Image Info</a> could not be set, or memory could
+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 pixel memory may succeed even though there is
+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> is zero, and calloc(), if <a href='#SkBitmap_allocPixelsFlags_flags'>flags</a> is
-<a href='#SkBitmap_kZeroPixels_AllocFlag'>kZeroPixels AllocFlag</a>.
+<a href='#SkBitmap_kZeroPixels_AllocFlag'>kZeroPixels_AllocFlag</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>.
+<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
 
 <table>  <tr>    <td><a name='SkBitmap_allocPixelsFlags_info'><code><strong>info</strong></code></a></td>
-    <td>contains width, height, <a href='SkImageInfo_Reference#Alpha_Type'>Alpha Type</a>, <a href='SkImageInfo_Reference#Color_Type'>Color Type</a>, <a href='undocumented#Color_Space'>Color Space</a></td>
+    <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>, or zero</td>
+    <td><a href='#SkBitmap_kZeroPixels_AllocFlag'>kZeroPixels_AllocFlag</a>, or zero</td>
   </tr>
 </table>
 
@@ -1717,14 +1719,14 @@
 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#Image_Info'>Image Info</a> to info following the rules in <a href='#SkBitmap_setInfo'>setInfo</a> and allocates pixel
-memory. <a href='#SkBitmap_rowBytes'>rowBytes</a> must equal or exceed info.<a href='#SkBitmap_width'>width</a>() times info.<a href='#SkBitmap_bytesPerPixel'>bytesPerPixel</a>(),
-or equal zero. Pass in zero for <a href='#SkBitmap_rowBytes'>rowBytes</a> to compute the minimum valid value.
+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>() if <a href='SkImageInfo_Reference#Image_Info'>Image Info</a> could not be set, or memory could
+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 pixel memory may succeed even though there is
+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().
@@ -1732,16 +1734,16 @@
 ### Parameters
 
 <table>  <tr>    <td><a name='SkBitmap_tryAllocPixels_info'><code><strong>info</strong></code></a></td>
-    <td>contains width, height, <a href='SkImageInfo_Reference#Alpha_Type'>Alpha Type</a>, <a href='SkImageInfo_Reference#Color_Type'>Color Type</a>, <a href='undocumented#Color_Space'>Color Space</a></td>
+    <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>size of pixel row or larger; may be zero</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 pixel storage is allocated
+true if  <a href='undocumented#Pixel_Storage'>pixel storage</a> is allocated
 
 ### Example
 
@@ -1759,15 +1761,15 @@
 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#Image_Info'>Image Info</a> to info following the rules in <a href='#SkBitmap_setInfo'>setInfo</a> and allocates pixel
-memory. <a href='#SkBitmap_rowBytes'>rowBytes</a> must equal or exceed info.<a href='#SkBitmap_width'>width</a>() times info.<a href='#SkBitmap_bytesPerPixel'>bytesPerPixel</a>(),
-or equal zero. Pass in zero for <a href='#SkBitmap_rowBytes'>rowBytes</a> to compute the minimum valid value.
+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#Image_Info'>Image Info</a> could not be set, or memory could
+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 pixel memory may succeed even though there is
+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().
@@ -1775,10 +1777,10 @@
 ### Parameters
 
 <table>  <tr>    <td><a name='SkBitmap_allocPixels_info'><code><strong>info</strong></code></a></td>
-    <td>contains width, height, <a href='SkImageInfo_Reference#Alpha_Type'>Alpha Type</a>, <a href='SkImageInfo_Reference#Color_Type'>Color Type</a>, <a href='undocumented#Color_Space'>Color Space</a></td>
+    <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>size of pixel row or larger; may be zero</td>
+    <td><a href='undocumented#Size'>size</a> of <a href='undocumented#Pixel'>pixel</a> row or larger; may be zero</td>
   </tr>
 </table>
 
@@ -1798,13 +1800,13 @@
 bool <a href='#SkBitmap_tryAllocPixels'>tryAllocPixels</a>(const <a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a>& info)
 </pre>
 
-Sets <a href='SkImageInfo_Reference#Image_Info'>Image Info</a> to info following the rules in <a href='#SkBitmap_setInfo'>setInfo</a> and allocates pixel
+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>() if <a href='SkImageInfo_Reference#Image_Info'>Image Info</a> could not be set, or memory could
+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 pixel memory may succeed even though there is
+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().
@@ -1812,13 +1814,13 @@
 ### Parameters
 
 <table>  <tr>    <td><a name='SkBitmap_tryAllocPixels_2_info'><code><strong>info</strong></code></a></td>
-    <td>contains width, height, <a href='SkImageInfo_Reference#Alpha_Type'>Alpha Type</a>, <a href='SkImageInfo_Reference#Color_Type'>Color Type</a>, <a href='undocumented#Color_Space'>Color Space</a></td>
+    <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>
 </table>
 
 ### Return Value
 
-true if pixel storage is allocated
+true if  <a href='undocumented#Pixel_Storage'>pixel storage</a> is allocated
 
 ### Example
 
@@ -1836,14 +1838,14 @@
 void <a href='#SkBitmap_allocPixels'>allocPixels</a>(const <a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a>& info)
 </pre>
 
-Sets <a href='SkImageInfo_Reference#Image_Info'>Image Info</a> to info following the rules in <a href='#SkBitmap_setInfo'>setInfo</a> and allocates pixel
+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#Image_Info'>Image Info</a> could not be set, or memory could
+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 pixel memory may succeed even though there is
+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().
@@ -1851,7 +1853,7 @@
 ### Parameters
 
 <table>  <tr>    <td><a name='SkBitmap_allocPixels_2_info'><code><strong>info</strong></code></a></td>
-    <td>contains width, height, <a href='SkImageInfo_Reference#Alpha_Type'>Alpha Type</a>, <a href='SkImageInfo_Reference#Color_Type'>Color Type</a>, <a href='undocumented#Color_Space'>Color Space</a></td>
+    <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>
 </table>
 
@@ -1871,25 +1873,25 @@
 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#Image_Info'>Image Info</a> to width, height, and <a href='SkImageInfo_Reference#kN32_SkColorType'>Native_Color_Type</a>; and allocates
-pixel memory. If <a href='#SkBitmap_isOpaque'>isOpaque</a> is true, sets <a href='SkImageInfo_Reference#Image_Info'>Image Info</a> to <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>() and returns false if width exceeds 29 bits or is negative,
-or height is negative.
+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='#Bitmap'>Bitmap</a> that matches <a href='SkColor_Reference#SkPMColor'>SkPMColor</a>, the native pixel arrangement on
-the platform. <a href='#Bitmap'>Bitmap</a> drawn to output device skips converting its pixel format.
+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>pixel column count; must be zero or greater</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>pixel row count; must be zero or greater</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>
@@ -1898,7 +1900,7 @@
 
 ### Return Value
 
-true if pixel storage is allocated
+true if  <a href='undocumented#Pixel_Storage'>pixel storage</a> is allocated
 
 ### Example
 
@@ -1916,24 +1918,24 @@
 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#Image_Info'>Image Info</a> to width, height, and the <a href='SkImageInfo_Reference#kN32_SkColorType'>Native_Color_Type</a>; and allocates
-pixel memory. If <a href='#SkBitmap_isOpaque'>isOpaque</a> is true, sets <a href='SkImageInfo_Reference#Image_Info'>Image Info</a> to <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 width exceeds 29 bits or is negative, or height is negative, or
+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='#Bitmap'>Bitmap</a> that matches <a href='SkColor_Reference#SkPMColor'>SkPMColor</a>, the native pixel arrangement on
-the platform. <a href='#Bitmap'>Bitmap</a> drawn to output device skips converting its pixel format.
+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>pixel column count; must be zero or greater</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>pixel row count; must be zero or greater</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>
@@ -1957,31 +1959,31 @@
                    (void* addr, void* context) , void* context)
 </pre>
 
-Sets <a href='SkImageInfo_Reference#Image_Info'>Image Info</a> to info following the rules in <a href='#SkBitmap_setInfo'>setInfo</a>, and creates <a href='undocumented#Pixel_Ref'>Pixel Ref</a>
-containing <a href='#SkBitmap_installPixels_pixels'>pixels</a> and <a href='#SkBitmap_rowBytes'>rowBytes</a>. <a href='#SkBitmap_installPixels_releaseProc'>releaseProc</a>, if not nullptr, is called
+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#Image_Info'>Image Info</a> could not be set, or <a href='#SkBitmap_rowBytes'>rowBytes</a> is less than info.<a href='SkImageInfo_Reference#SkImageInfo'>minRowBytes</a>:
-calls <a href='#SkBitmap_installPixels_releaseProc'>releaseProc</a> if present, calls <a href='#SkBitmap_reset'>reset</a>(), and returns false.
+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> equals nullptr: sets <a href='SkImageInfo_Reference#Image_Info'>Image Info</a>, calls <a href='#SkBitmap_installPixels_releaseProc'>releaseProc</a> if
+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#Image_Info'>Image Info</a> is set, <a href='#SkBitmap_installPixels_pixels'>pixels</a> is not nullptr, and <a href='#SkBitmap_installPixels_releaseProc'>releaseProc</a> is not nullptr:
+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
 
 <table>  <tr>    <td><a name='SkBitmap_installPixels_info'><code><strong>info</strong></code></a></td>
-    <td>contains width, height, <a href='SkImageInfo_Reference#Alpha_Type'>Alpha Type</a>, <a href='SkImageInfo_Reference#Color_Type'>Color Type</a>, <a href='undocumented#Color_Space'>Color Space</a></td>
+    <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 pixel storage; may be nullptr</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>size of pixel row or larger</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> can be deleted; may be nullptr</td>
@@ -1993,11 +1995,11 @@
 
 ### Return Value
 
-true if <a href='SkImageInfo_Reference#Image_Info'>Image Info</a> is set to info
+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> is called immediately because <a href='#SkBitmap_rowBytes'>rowBytes</a> is too small for <a href='undocumented#Pixel_Ref'>Pixel Ref</a>.
+<div><fiddle-embed name="8c4f7bf73fffa1a812ee8e88e44e639c"><div>releaseProc is called immediately because <a href='#SkBitmap_rowBytes'>rowBytes</a> is too small for <a href='undocumented#Pixel_Ref'>Pixel Ref</a>.
 </div>
 
 #### Example Output
@@ -2022,32 +2024,32 @@
 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#Image_Info'>Image Info</a> to info following the rules in <a href='#SkBitmap_setInfo'>setInfo</a>, and creates <a href='undocumented#Pixel_Ref'>Pixel Ref</a>
-containing <a href='#SkBitmap_installPixels_2_pixels'>pixels</a> and <a href='#SkBitmap_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#Image_Info'>Image Info</a> could not be set, or <a href='#SkBitmap_rowBytes'>rowBytes</a> is less than info.<a href='SkImageInfo_Reference#SkImageInfo'>minRowBytes</a>:
-calls <a href='#SkBitmap_reset'>reset</a>(), and returns false.
+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> equals nullptr: sets <a href='SkImageInfo_Reference#Image_Info'>Image Info</a>, returns true.
+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> are valid for the lifetime of <a href='#Bitmap'>Bitmap</a> and <a href='undocumented#Pixel_Ref'>Pixel Ref</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
 
 <table>  <tr>    <td><a name='SkBitmap_installPixels_2_info'><code><strong>info</strong></code></a></td>
-    <td>contains width, height, <a href='SkImageInfo_Reference#Alpha_Type'>Alpha Type</a>, <a href='SkImageInfo_Reference#Color_Type'>Color Type</a>, <a href='undocumented#Color_Space'>Color Space</a></td>
+    <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 pixel storage; may be nullptr</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>size of pixel row or larger</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#Image_Info'>Image Info</a> is set to info
+true if <a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a> is set to <a href='#SkBitmap_installPixels_2_info'>info</a>
 
 ### Example
 
@@ -2066,26 +2068,26 @@
 bool <a href='#SkBitmap_installPixels'>installPixels</a>(const <a href='SkPixmap_Reference#SkPixmap'>SkPixmap</a>& pixmap)
 </pre>
 
-Sets <a href='SkImageInfo_Reference#Image_Info'>Image Info</a> to pixmap.<a href='#SkBitmap_info'>info</a>() following the rules in <a href='#SkBitmap_setInfo'>setInfo</a>, and creates
-<a href='undocumented#Pixel_Ref'>Pixel Ref</a> containing pixmap.addr() and pixmap.<a href='#SkBitmap_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#Image_Info'>Image Info</a> could not be set, or pixmap.<a href='#SkBitmap_rowBytes'>rowBytes</a> is less than
-<a href='SkImageInfo_Reference#SkImageInfo_minRowBytes'>SkImageInfo::minRowBytes</a>: calls <a href='#SkBitmap_reset'>reset</a>(), and returns false.
+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 pixmap.addr() equals nullptr: sets <a href='SkImageInfo_Reference#Image_Info'>Image Info</a>, returns true.
+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 pixmap is valid for the lifetime of <a href='#Bitmap'>Bitmap</a> and <a href='undocumented#Pixel_Ref'>Pixel Ref</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#Image_Info'>Image Info</a>, pixel address, and <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#Image_Info'>Image Info</a> was set to pixmap.<a href='#SkBitmap_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='#SkBitmap_info'>info()</a>
 
 ### Example
 
@@ -2116,19 +2118,19 @@
 void <a href='#SkBitmap_setPixels'>setPixels</a>(void* pixels)
 </pre>
 
-Replaces <a href='undocumented#Pixel_Ref'>Pixel Ref</a> with <a href='#SkBitmap_setPixels_pixels'>pixels</a>, preserving <a href='SkImageInfo_Reference#Image_Info'>Image Info</a> and <a href='#SkBitmap_rowBytes'>rowBytes</a>.
-Sets <a href='undocumented#Pixel_Ref'>Pixel Ref</a> origin to (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> is nullptr, or if <a href='#SkBitmap_info'>info</a>().<a href='#SkBitmap_colorType'>colorType</a> equals <a href='SkImageInfo_Reference#kUnknown_SkColorType'>kUnknown_SkColorType</a>;
-release reference to <a href='undocumented#Pixel_Ref'>Pixel Ref</a>, and set <a href='undocumented#Pixel_Ref'>Pixel Ref</a> to nullptr.
+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 pixel memory for the lifetime
-of <a href='#Bitmap'>Bitmap</a> and <a href='undocumented#Pixel_Ref'>Pixel Ref</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 pixel storage, managed by caller</td>
+    <td>address of  <a href='undocumented#Pixel_Storage'>pixel storage</a>, managed by caller</td>
   </tr>
 </table>
 
@@ -2148,10 +2150,10 @@
 bool <a href='#SkBitmap_tryAllocPixels'>tryAllocPixels</a>()
 </pre>
 
-Allocates pixel memory with <a href='#SkBitmap_HeapAllocator'>HeapAllocator</a>, and replaces existing <a href='undocumented#Pixel_Ref'>Pixel Ref</a>.
-The allocation size is determined by <a href='SkImageInfo_Reference#Image_Info'>Image Info</a> width, height, and <a href='SkImageInfo_Reference#Color_Type'>Color Type</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='#SkBitmap_colorType'>colorType</a> is <a href='SkImageInfo_Reference#kUnknown_SkColorType'>kUnknown_SkColorType</a>, or allocation fails.
+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
 
@@ -2176,10 +2178,10 @@
 void <a href='#SkBitmap_allocPixels'>allocPixels</a>()
 </pre>
 
-Allocates pixel memory with <a href='#SkBitmap_HeapAllocator'>HeapAllocator</a>, and replaces existing <a href='undocumented#Pixel_Ref'>Pixel Ref</a>.
-The allocation size is determined by <a href='SkImageInfo_Reference#Image_Info'>Image Info</a> width, height, and <a href='SkImageInfo_Reference#Color_Type'>Color Type</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='#SkBitmap_colorType'>colorType</a> is <a href='SkImageInfo_Reference#kUnknown_SkColorType'>kUnknown_SkColorType</a>, or allocation fails.
+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.
 
@@ -2202,16 +2204,16 @@
 bool <a href='#SkBitmap_tryAllocPixels'>tryAllocPixels</a>(<a href='#SkBitmap_Allocator'>Allocator</a>* allocator)
 </pre>
 
-Allocates pixel memory with <a href='#SkBitmap_tryAllocPixels_4_allocator'>allocator</a>, and replaces existing <a href='undocumented#Pixel_Ref'>Pixel Ref</a>.
-The allocation size is determined by <a href='SkImageInfo_Reference#Image_Info'>Image Info</a> width, height, and <a href='SkImageInfo_Reference#Color_Type'>Color Type</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_allocPixelRef'>Allocator::allocPixelRef</a> return false.
+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_Allocator'>SkBitmap::Allocator</a> instantiation</td>
+    <td>instance of <a href='SkBitmap_Reference#SkBitmap'>SkBitmap</a>::<a href='#SkBitmap_Allocator'>Allocator</a> instantiation</td>
   </tr>
 </table>
 
@@ -2222,7 +2224,7 @@
 ### Example
 
 <div><fiddle-embed name="eb6f861ca1839146d26e40d56c2a001c"><div><a href='#SkBitmap_HeapAllocator'>HeapAllocator</a> limits the maximum size of <a href='#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
+a custom allocator, this limitation may be relaxed. This example can be
 modified to allocate an eight gigabyte <a href='#Bitmap'>Bitmap</a> on a 64-bit platform with
 sufficient memory.
 </div></fiddle-embed></div>
@@ -2239,17 +2241,17 @@
 void <a href='#SkBitmap_allocPixels'>allocPixels</a>(<a href='#SkBitmap_Allocator'>Allocator</a>* allocator)
 </pre>
 
-Allocates pixel memory with <a href='#SkBitmap_allocPixels_4_allocator'>allocator</a>, and replaces existing <a href='undocumented#Pixel_Ref'>Pixel Ref</a>.
-The allocation size is determined by <a href='SkImageInfo_Reference#Image_Info'>Image Info</a> width, height, and <a href='SkImageInfo_Reference#Color_Type'>Color Type</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_allocPixelRef'>Allocator::allocPixelRef</a> return false. Abort steps may be provided by
+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_Allocator'>SkBitmap::Allocator</a> instantiation</td>
+    <td>instance of <a href='SkBitmap_Reference#SkBitmap'>SkBitmap</a>::<a href='#SkBitmap_Allocator'>Allocator</a> instantiation</td>
   </tr>
 </table>
 
@@ -2269,14 +2271,14 @@
 <a href='undocumented#SkPixelRef'>SkPixelRef</a>* <a href='#SkBitmap_pixelRef'>pixelRef</a>() const
 </pre>
 
-Returns <a href='undocumented#Pixel_Ref'>Pixel Ref</a>, which contains: pixel 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#Pixel_Ref'>Pixel Ref</a>
-reference count. <a href='undocumented#Pixel_Ref'>Pixel Ref</a> may be shared by multiple bitmaps.
-If <a href='undocumented#Pixel_Ref'>Pixel Ref</a> has not been set, returns nullptr.
+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>
+<a href='undocumented#Reference_Count'>reference count</a>. <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#Pixel_Ref'>Pixel Ref</a>, or nullptr
+<a href='undocumented#SkPixelRef'>SkPixelRef</a>, or nullptr
 
 ### Example
 
@@ -2294,18 +2296,18 @@
 <a href='SkIPoint_Reference#SkIPoint'>SkIPoint</a> <a href='#SkBitmap_pixelRefOrigin'>pixelRefOrigin</a>() const
 </pre>
 
-Returns origin of pixels within <a href='undocumented#Pixel_Ref'>Pixel Ref</a>. <a href='#Bitmap'>Bitmap</a> bounds is always contained
-by <a href='undocumented#Pixel_Ref'>Pixel Ref</a> bounds, which may be the same size or larger. Multiple <a href='#Bitmap'>Bitmaps</a>
-can share the same <a href='undocumented#Pixel_Ref'>Pixel Ref</a>, where each <a href='#Bitmap'>Bitmap</a> has different bounds.
+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='#Bitmap'>Bitmap</a> dimensions equals or is smaller than the
-<a href='undocumented#Pixel_Ref'>Pixel Ref</a> dimensions.
+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#Pixel_Ref'>Pixel Ref</a> is nullptr.
+Returns (0, 0) if <a href='undocumented#SkPixelRef'>SkPixelRef</a> is nullptr.
 
 ### Return Value
 
-pixel origin within <a href='undocumented#Pixel_Ref'>Pixel Ref</a>
+<a href='undocumented#Pixel'>pixel</a> origin within <a href='undocumented#SkPixelRef'>SkPixelRef</a>
 
 ### Example
 
@@ -2334,25 +2336,25 @@
 void <a href='#SkBitmap_setPixelRef'>setPixelRef</a>(<a href='undocumented#sk_sp'>sk sp</a>&lt;<a href='undocumented#SkPixelRef'>SkPixelRef</a>&gt; <a href='#SkBitmap_pixelRef'>pixelRef</a>, int dx, int dy)
 </pre>
 
-Replaces <a href='#SkBitmap_pixelRef'>pixelRef</a> and origin in <a href='#Bitmap'>Bitmap</a>.  <a href='#SkBitmap_setPixelRef_dx'>dx</a> and <a href='#SkBitmap_setPixelRef_dy'>dy</a> specify the offset
-within the <a href='undocumented#Pixel_Ref'>Pixel Ref</a> pixels for the top-left corner of the bitmap.
+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> 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#Color_Type'>Color Type</a> and <a href='SkImageInfo_Reference#Alpha_Type'>Alpha Type</a> in <a href='SkImageInfo_Reference#Image_Info'>Image Info</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#Pixel_Ref'>Pixel Ref</a> describing pixel address and <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#Pixel_Ref'>Pixel Ref</a> for bitmap origin</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#Pixel_Ref'>Pixel Ref</a> for bitmap origin</td>
+    <td>row offset in <a href='undocumented#SkPixelRef'>SkPixelRef</a> for <a href='SkBitmap_Reference#Bitmap'>bitmap</a> origin</td>
   </tr>
 </table>
 
@@ -2373,7 +2375,7 @@
 bool <a href='#SkBitmap_readyToDraw'>readyToDraw</a>() const
 </pre>
 
-Returns true if <a href='#Bitmap'>Bitmap</a> is can be drawn.
+Returns true if <a href='SkBitmap_Reference#SkBitmap'>SkBitmap</a> is can be drawn.
 
 ### Return Value
 
@@ -2395,15 +2397,15 @@
 uint32_t <a href='#SkBitmap_getGenerationID'>getGenerationID</a>() const
 </pre>
 
-Returns a unique value corresponding to the pixels in <a href='undocumented#Pixel_Ref'>Pixel Ref</a>.
-Returns a different value after <a href='#SkBitmap_notifyPixelsChanged'>notifyPixelsChanged</a> has been called.
-Returns zero if <a href='undocumented#Pixel_Ref'>Pixel Ref</a> is nullptr.
+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>() has been called.
+Returns zero if <a href='undocumented#SkPixelRef'>SkPixelRef</a> is nullptr.
 
 Determines if pixels have changed since last examined.
 
 ### Return Value
 
-unique value for pixels in <a href='undocumented#Pixel_Ref'>Pixel Ref</a>
+unique value for pixels in <a href='undocumented#SkPixelRef'>SkPixelRef</a>
 
 ### Example
 
@@ -2432,7 +2434,7 @@
 void <a href='#SkBitmap_notifyPixelsChanged'>notifyPixelsChanged</a>() const
 </pre>
 
-Marks that pixels in <a href='undocumented#Pixel_Ref'>Pixel Ref</a> have changed. Subsequent calls to
+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
@@ -2453,15 +2455,15 @@
 void <a href='#SkBitmap_eraseColor'>eraseColor</a>(<a href='SkColor_Reference#SkColor'>SkColor</a> c) const
 </pre>
 
-Replaces pixel 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 k565_SkColorType, then <a href='SkColor_Reference#Alpha'>Color 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>,
+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
 
 <table>  <tr>    <td><a name='SkBitmap_eraseColor_c'><code><strong>c</strong></code></a></td>
-    <td><a href='undocumented#Unpremultiply'>Unpremultiplied</a> <a href='SkColor_Reference#Color'>Color</a></td>
+    <td><a href='undocumented#Unpremultiply'>unpremultiplied</a> <a href='SkColor_Reference#Color'>color</a></td>
   </tr>
 </table>
 
@@ -2481,16 +2483,16 @@
 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 pixel 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 k565_SkColorType, 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>,
+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'>Color Alpha</a>, from fully transparent (0) to fully opaque (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>
@@ -2519,17 +2521,17 @@
 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 pixel 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>(),
+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> is <a href='SkImageInfo_Reference#kGray_8_SkColorType'>kGray_8_SkColorType</a> or k565_SkColorType, then <a href='SkColor_Reference#Alpha'>Color 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>,
+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
 
 <table>  <tr>    <td><a name='SkBitmap_erase_c'><code><strong>c</strong></code></a></td>
-    <td><a href='undocumented#Unpremultiply'>Unpremultiplied</a> <a href='SkColor_Reference#Color'>Color</a></td>
+    <td><a href='undocumented#Unpremultiply'>unpremultiplied</a> <a href='SkColor_Reference#Color'>color</a></td>
   </tr>
   <tr>    <td><a name='SkBitmap_erase_area'><code><strong>area</strong></code></a></td>
     <td>rectangle to fill</td>
@@ -2562,31 +2564,31 @@
 <a href='SkColor_Reference#SkColor'>SkColor</a> <a href='#SkBitmap_getColor'>getColor</a>(int x, int y) const
 </pre>
 
-Returns pixel 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#Color_Type'>Color Type</a> is <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> 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#Color_Type'>Color Type</a> is <a href='SkImageInfo_Reference#kUnknown_SkColorType'>kUnknown_SkColorType</a> or
-pixel address is nullptr.
+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#Color_Space'>Color Space</a> in <a href='SkImageInfo_Reference#Image_Info'>Image Info</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 pixel data may have additional
+<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
 
 <table>  <tr>    <td><a name='SkBitmap_getColor_x'><code><strong>x</strong></code></a></td>
-    <td>column index, zero or greater, and less than <a href='#SkBitmap_width'>width</a>()</td>
+    <td>column index, zero or greater, and less than <a href='#SkBitmap_width'>width()</a></td>
   </tr>
   <tr>    <td><a name='SkBitmap_getColor_y'><code><strong>y</strong></code></a></td>
-    <td>row index, zero or greater, and less than <a href='#SkBitmap_height'>height</a>()</td>
+    <td>row index, zero or greater, and less than <a href='#SkBitmap_height'>height()</a></td>
   </tr>
 </table>
 
 ### Return Value
 
-pixel converted to <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
 
@@ -2651,28 +2653,28 @@
 void* <a href='#SkBitmap_getAddr'>getAddr</a>(int x, int y) const
 </pre>
 
-Returns pixel address at (<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> 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#Color_Type'>Color Type</a> is <a href='SkImageInfo_Reference#kUnknown_SkColorType'>kUnknown_SkColorType</a>, or <a href='undocumented#Pixel_Ref'>Pixel Ref</a> is nullptr.
+<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 pixel size; 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>.
+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
 
 <table>  <tr>    <td><a name='SkBitmap_getAddr_x'><code><strong>x</strong></code></a></td>
-    <td>column index, zero or greater, and less than <a href='#SkBitmap_width'>width</a>()</td>
+    <td>column index, zero or greater, and less than <a href='#SkBitmap_width'>width()</a></td>
   </tr>
   <tr>    <td><a name='SkBitmap_getAddr_y'><code><strong>y</strong></code></a></td>
-    <td>row index, zero or greater, and less than <a href='#SkBitmap_height'>height</a>()</td>
+    <td>row index, zero or greater, and less than <a href='#SkBitmap_height'>height()</a></td>
   </tr>
 </table>
 
 ### Return Value
 
-generic pointer to pixel
+generic pointer to <a href='undocumented#Pixel'>pixel</a>
 
 ### Example
 
@@ -2700,7 +2702,7 @@
 
 Returns address at (<a href='#SkBitmap_getAddr32_x'>x</a>, <a href='#SkBitmap_getAddr32_y'>y</a>).
 
-Input is not validated. Triggers an assert() if built with SK_DEBUG defined and:
+Input is not validated. Triggers an <a href='undocumented#assert()'>assert</a> if built with SK_DEBUG defined and:
 
 <table>  <tr>
     <td><a href='undocumented#Pixel_Ref'>Pixel Ref</a> is nullptr</td>
@@ -2753,7 +2755,7 @@
 
 Returns address at (<a href='#SkBitmap_getAddr16_x'>x</a>, <a href='#SkBitmap_getAddr16_y'>y</a>).
 
-Input is not validated. Triggers an assert() if built with SK_DEBUG defined and:
+Input is not validated. Triggers an <a href='undocumented#assert()'>assert</a> if built with SK_DEBUG defined and:
 
 <table>  <tr>
     <td><a href='undocumented#Pixel_Ref'>Pixel Ref</a> is nullptr</td>
@@ -2806,7 +2808,7 @@
 
 Returns address at (<a href='#SkBitmap_getAddr8_x'>x</a>, <a href='#SkBitmap_getAddr8_y'>y</a>).
 
-Input is not validated. Triggers an assert() if built with SK_DEBUG defined and:
+Input is not validated. Triggers an <a href='undocumented#assert()'>assert</a> if built with SK_DEBUG defined and:
 
 <table>  <tr>
     <td><a href='undocumented#Pixel_Ref'>Pixel Ref</a> is nullptr</td>
@@ -2935,7 +2937,7 @@
 Returns true if pixels are copied. Returns false if:
 
 <table>  <tr>
-    <td><a href='#SkBitmap_readPixels_dstInfo'>dstInfo</a>.addr() equals nullptr</td>
+    <td><a href='#SkBitmap_readPixels_dstInfo'>dstInfo</a> has no address</td>
   </tr>  <tr>
     <td><a href='#SkBitmap_readPixels_dstRowBytes'>dstRowBytes</a> is less than <a href='#SkBitmap_readPixels_dstInfo'>dstInfo</a>.<a href='SkImageInfo_Reference#SkImageInfo'>minRowBytes</a></td>
   </tr>  <tr>
@@ -3219,7 +3221,7 @@
 
 ### Return Value
 
-true if <a href='#SkBitmap_setHasHardwareMipMap'>setHasHardwareMipMap</a> has been called with true
+true if <a href='#SkBitmap_setHasHardwareMipMap'>setHasHardwareMipMap</a>() has been called with true
 
 ### See Also
 
@@ -3254,21 +3256,21 @@
 bool <a href='#SkBitmap_extractAlpha'>extractAlpha</a>(<a href='#SkBitmap'>SkBitmap</a>* dst) const
 </pre>
 
-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
+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> to reserve memory for <a href='#SkBitmap_extractAlpha_dst'>dst</a> <a href='undocumented#Pixel_Ref'>Pixel Ref</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#Pixel_Ref'>Pixel Ref</a> to fill with alpha layer</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> layer was constructed in <a href='#SkBitmap_extractAlpha_dst'>dst</a> <a href='undocumented#Pixel_Ref'>Pixel Ref</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
 
@@ -3286,21 +3288,21 @@
 bool <a href='#SkBitmap_extractAlpha'>extractAlpha</a>(<a href='#SkBitmap'>SkBitmap</a>* dst, const <a href='SkPaint_Reference#SkPaint'>SkPaint</a>* paint, <a href='SkIPoint_Reference#SkIPoint'>SkIPoint</a>* offset) const
 </pre>
 
-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
+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> is not nullptr and contains <a href='undocumented#Mask_Filter'>Mask Filter</a>, <a href='undocumented#SkMaskFilter'>SkMaskFilter</a>
-generates <a href='undocumented#Mask_Alpha'>Mask Alpha</a> from <a href='#Bitmap'>Bitmap</a>. Uses <a href='#SkBitmap_HeapAllocator'>HeapAllocator</a> to reserve memory for <a href='#SkBitmap_extractAlpha_2_dst'>dst</a>
-<a href='undocumented#Pixel_Ref'>Pixel Ref</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='#Bitmap'>Bitmap</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#Pixel_Ref'>Pixel Ref</a> to fill with alpha layer</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#Mask_Filter'>Mask Filter</a>; may be nullptr</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>; may be nullptr</td>
@@ -3309,7 +3311,7 @@
 
 ### Return Value
 
-true if <a href='SkColor_Reference#Alpha'>Alpha</a> layer was constructed in <a href='#SkBitmap_extractAlpha_2_dst'>dst</a> <a href='undocumented#Pixel_Ref'>Pixel Ref</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
 
@@ -3327,25 +3329,25 @@
 bool <a href='#SkBitmap_extractAlpha'>extractAlpha</a>(<a href='#SkBitmap'>SkBitmap</a>* dst, const <a href='SkPaint_Reference#SkPaint'>SkPaint</a>* paint, <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> 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
+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> is not nullptr and contains <a href='undocumented#Mask_Filter'>Mask Filter</a>, <a href='undocumented#SkMaskFilter'>SkMaskFilter</a>
-generates <a href='undocumented#Mask_Alpha'>Mask Alpha</a> from <a href='#Bitmap'>Bitmap</a>. <a href='#SkBitmap_extractAlpha_3_allocator'>allocator</a> may reference a custom allocation
+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='#Bitmap'>Bitmap</a>; (0, 0) unless <a href='undocumented#SkMaskFilter'>SkMaskFilter</a> generates
+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#Pixel_Ref'>Pixel Ref</a> to fill with alpha layer</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#Mask_Filter'>Mask Filter</a>; may be nullptr</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#Pixel_Ref'>Pixel Ref</a>; may be nullptr</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>; may be nullptr</td>
@@ -3354,7 +3356,7 @@
 
 ### Return Value
 
-true if <a href='SkColor_Reference#Alpha'>Alpha</a> layer was constructed in <a href='#SkBitmap_extractAlpha_3_dst'>dst</a> <a href='undocumented#Pixel_Ref'>Pixel Ref</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
 
@@ -3372,22 +3374,22 @@
 bool <a href='#SkBitmap_peekPixels'>peekPixels</a>(<a href='SkPixmap_Reference#SkPixmap'>SkPixmap</a>* pixmap) const
 </pre>
 
-Copies <a href='#Bitmap'>Bitmap</a> pixel address, row bytes, and <a href='SkImageInfo_Reference#Image_Info'>Image Info</a> to pixmap, if address
-is available, and returns true. If pixel address is not available, return
-false and leave pixmap unchanged.
+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.
 
-pixmap contents become invalid on any future change to <a href='#Bitmap'>Bitmap</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 pixel state if pixels are readable; otherwise, ignored</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='#Bitmap'>Bitmap</a> has direct access to pixels
+true if <a href='SkBitmap_Reference#SkBitmap'>SkBitmap</a> has direct access to pixels
 
 ### Example
 
@@ -3425,9 +3427,6 @@
 void <a href='#SkBitmap_validate'>validate</a>() const;
 </pre>
 
-Asserts if internal values are illegal or inconsistent. Only available if
-SK_DEBUG is defined at compile time.
-
 ### See Also
 
 <a href='SkImageInfo_Reference#SkImageInfo_validate'>SkImageInfo::validate</a>
diff --git a/site/user/api/SkBlendMode_Reference.md b/site/user/api/SkBlendMode_Reference.md
index 9468c8f..277357d 100644
--- a/site/user/api/SkBlendMode_Reference.md
+++ b/site/user/api/SkBlendMode_Reference.md
@@ -759,30 +759,32 @@
 ---
 
 <pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-SK_API const char* <a href='#SkBlendMode_Name'>SkBlendMode Name</a>(<a href='#SkBlendMode'>SkBlendMode</a> blendMode)
+const char* <a href='#SkBlendMode_Name'>SkBlendMode Name</a>(<a href='#SkBlendMode'>SkBlendMode</a> blendMode)
 </pre>
 
-Returns name of <a href='#SkBlendMode_Name_blendMode'>blendMode</a> as null-terminated C string.
+Returns name of <a href='#SkBlendMode_Name_blendMode'>blendMode</a> as null-terminated C <a href='undocumented#String'>string</a>.
 
 ### Parameters
 
 <table>  <tr>    <td><a name='SkBlendMode_Name_blendMode'><code><strong>blendMode</strong></code></a></td>
-    <td>one of: <a href='#SkBlendMode_kClear'>SkBlendMode::kClear</a>, <a href='#SkBlendMode_kSrc'>SkBlendMode::kSrc</a>, <a href='#SkBlendMode_kDst'>SkBlendMode::kDst</a>, <a href='#SkBlendMode_kSrcOver'>SkBlendMode::kSrcOver</a>,
-<a href='#SkBlendMode_kDstOver'>SkBlendMode::kDstOver</a>, <a href='#SkBlendMode_kSrcIn'>SkBlendMode::kSrcIn</a>, <a href='#SkBlendMode_kDstIn'>SkBlendMode::kDstIn</a>,
-<a href='#SkBlendMode_kSrcOut'>SkBlendMode::kSrcOut</a>, <a href='#SkBlendMode_kDstOut'>SkBlendMode::kDstOut</a>, <a href='#SkBlendMode_kSrcATop'>SkBlendMode::kSrcATop</a>,
-<a href='#SkBlendMode_kDstATop'>SkBlendMode::kDstATop</a>, <a href='#SkBlendMode_kXor'>SkBlendMode::kXor</a>, <a href='#SkBlendMode_kPlus'>SkBlendMode::kPlus</a>,
-<a href='#SkBlendMode_kModulate'>SkBlendMode::kModulate</a>, <a href='#SkBlendMode_kScreen'>SkBlendMode::kScreen</a>, <a href='#SkBlendMode_kOverlay'>SkBlendMode::kOverlay</a>,
-<a href='#SkBlendMode_kDarken'>SkBlendMode::kDarken</a>, <a href='#SkBlendMode_kLighten'>SkBlendMode::kLighten</a>, <a href='#SkBlendMode_kColorDodge'>SkBlendMode::kColorDodge</a>,
-<a href='#SkBlendMode_kColorBurn'>SkBlendMode::kColorBurn</a>, <a href='#SkBlendMode_kHardLight'>SkBlendMode::kHardLight</a>, <a href='#SkBlendMode_kSoftLight'>SkBlendMode::kSoftLight</a>,
-<a href='#SkBlendMode_kDifference'>SkBlendMode::kDifference</a>, <a href='#SkBlendMode_kExclusion'>SkBlendMode::kExclusion</a>, <a href='#SkBlendMode_kMultiply'>SkBlendMode::kMultiply</a>,
-<a href='#SkBlendMode_kHue'>SkBlendMode::kHue</a>, <a href='#SkBlendMode_kSaturation'>SkBlendMode::kSaturation</a>, <a href='#SkBlendMode_kColor'>SkBlendMode::kColor</a>,
-<a href='#SkBlendMode_kLuminosity'>SkBlendMode::kLuminosity</a> </td>
+    <td>one of:</td>
   </tr>
 </table>
 
+<a href='SkBlendMode_Reference#SkBlendMode'>SkBlendMode</a>::<a href='#SkBlendMode_kClear'>kClear</a>, <a href='SkBlendMode_Reference#SkBlendMode'>SkBlendMode</a>::<a href='#SkBlendMode_kSrc'>kSrc</a>, <a href='SkBlendMode_Reference#SkBlendMode'>SkBlendMode</a>::<a href='#SkBlendMode_kDst'>kDst</a>,
+<a href='SkBlendMode_Reference#SkBlendMode'>SkBlendMode</a>::<a href='#SkBlendMode_kSrcOver'>kSrcOver</a>, <a href='SkBlendMode_Reference#SkBlendMode'>SkBlendMode</a>::<a href='#SkBlendMode_kDstOver'>kDstOver</a>, <a href='SkBlendMode_Reference#SkBlendMode'>SkBlendMode</a>::<a href='#SkBlendMode_kSrcIn'>kSrcIn</a>,
+<a href='SkBlendMode_Reference#SkBlendMode'>SkBlendMode</a>::<a href='#SkBlendMode_kDstIn'>kDstIn</a>, <a href='SkBlendMode_Reference#SkBlendMode'>SkBlendMode</a>::<a href='#SkBlendMode_kSrcOut'>kSrcOut</a>, <a href='SkBlendMode_Reference#SkBlendMode'>SkBlendMode</a>::<a href='#SkBlendMode_kDstOut'>kDstOut</a>,
+<a href='SkBlendMode_Reference#SkBlendMode'>SkBlendMode</a>::<a href='#SkBlendMode_kSrcATop'>kSrcATop</a>, <a href='SkBlendMode_Reference#SkBlendMode'>SkBlendMode</a>::<a href='#SkBlendMode_kDstATop'>kDstATop</a>, <a href='SkBlendMode_Reference#SkBlendMode'>SkBlendMode</a>::<a href='#SkBlendMode_kXor'>kXor</a>,
+<a href='SkBlendMode_Reference#SkBlendMode'>SkBlendMode</a>::<a href='#SkBlendMode_kPlus'>kPlus</a>, <a href='SkBlendMode_Reference#SkBlendMode'>SkBlendMode</a>::<a href='#SkBlendMode_kModulate'>kModulate</a>, <a href='SkBlendMode_Reference#SkBlendMode'>SkBlendMode</a>::<a href='#SkBlendMode_kScreen'>kScreen</a>,
+<a href='SkBlendMode_Reference#SkBlendMode'>SkBlendMode</a>::<a href='#SkBlendMode_kOverlay'>kOverlay</a>, <a href='SkBlendMode_Reference#SkBlendMode'>SkBlendMode</a>::<a href='#SkBlendMode_kDarken'>kDarken</a>, <a href='SkBlendMode_Reference#SkBlendMode'>SkBlendMode</a>::<a href='#SkBlendMode_kLighten'>kLighten</a>,
+<a href='SkBlendMode_Reference#SkBlendMode'>SkBlendMode</a>::<a href='#SkBlendMode_kColorDodge'>kColorDodge</a>, <a href='SkBlendMode_Reference#SkBlendMode'>SkBlendMode</a>::<a href='#SkBlendMode_kColorBurn'>kColorBurn</a>, <a href='SkBlendMode_Reference#SkBlendMode'>SkBlendMode</a>::<a href='#SkBlendMode_kHardLight'>kHardLight</a>,
+<a href='SkBlendMode_Reference#SkBlendMode'>SkBlendMode</a>::<a href='#SkBlendMode_kSoftLight'>kSoftLight</a>, <a href='SkBlendMode_Reference#SkBlendMode'>SkBlendMode</a>::<a href='#SkBlendMode_kDifference'>kDifference</a>, <a href='SkBlendMode_Reference#SkBlendMode'>SkBlendMode</a>::<a href='#SkBlendMode_kExclusion'>kExclusion</a>,
+<a href='SkBlendMode_Reference#SkBlendMode'>SkBlendMode</a>::<a href='#SkBlendMode_kMultiply'>kMultiply</a>, <a href='SkBlendMode_Reference#SkBlendMode'>SkBlendMode</a>::<a href='#SkBlendMode_kHue'>kHue</a>, <a href='SkBlendMode_Reference#SkBlendMode'>SkBlendMode</a>::<a href='#SkBlendMode_kSaturation'>kSaturation</a>,
+<a href='SkBlendMode_Reference#SkBlendMode'>SkBlendMode</a>::<a href='#SkBlendMode_kColor'>kColor</a>, <a href='SkBlendMode_Reference#SkBlendMode'>SkBlendMode</a>::<a href='#SkBlendMode_kLuminosity'>kLuminosity</a>
+
 ### Return Value
 
-C string
+C <a href='undocumented#String'>string</a>
 
 ### Example
 
diff --git a/site/user/api/SkCanvas_Reference.md b/site/user/api/SkCanvas_Reference.md
index db8187b..af24d32 100644
--- a/site/user/api/SkCanvas_Reference.md
+++ b/site/user/api/SkCanvas_Reference.md
@@ -276,16 +276,14 @@
 <a href='#Canvas'>Canvas</a> generated by <a href='undocumented#GPU_Surface'>GPU Surface</a> uses Vulkan or OpenGL to draw to the GPU.
 
 To draw to a document, obtain <a href='#Canvas'>Canvas</a> from <a href='undocumented#Canvas'>SVG Canvas</a>, <a href='undocumented#PDF'>Document PDF</a>, or <a href='undocumented#Picture_Recorder'>Picture Recorder</a>.
-<a href='undocumented#Document'>Document</a> based <a href='#Canvas'>Canvas</a> and other <a href='#Canvas'>Canvas</a> <a href='undocumented#Subclasses'>Subclasses</a> reference <a href='undocumented#Device'>Device</a> describing the
+<a href='undocumented#Document'>Document</a> based <a href='#Canvas'>Canvas</a> and other <a href='#Canvas'>Canvas</a> subclasses reference <a href='undocumented#Device'>Device</a> describing the
 destination.
 
 <a href='#Canvas'>Canvas</a> can be constructed to draw to <a href='SkBitmap_Reference#Bitmap'>Bitmap</a> without first creating <a href='undocumented#Raster_Surface'>Raster Surface</a>.
 This approach may be deprecated in the future.
 
-<a name='Constructors'></a>
-
-Create the desired type of <a href='SkSurface_Reference#Surface'>Surface</a> to obtain its <a href='#Canvas'>Canvas</a> when possible. Useful
-when no <a href='SkSurface_Reference#Surface'>Surface</a> is required, and some helpers implicitly create <a href='undocumented#Raster_Surface'>Raster Surface</a>.
+<a href='#Canvas'>Canvas</a> may be created directly when no <a href='SkSurface_Reference#Surface'>Surface</a> is required; some <a href='#Canvas'>Canvas</a> methods
+implicitly create <a href='undocumented#Raster_Surface'>Raster Surface</a>.
 
 <a name='SkCanvas_MakeRasterDirect'></a>
 
@@ -297,44 +295,50 @@
                                                   const <a href='undocumented#SkSurfaceProps'>SkSurfaceProps</a>* props = nullptr)
 </pre>
 
-Allocates raster <a href='#Canvas'>Canvas</a> that will draw directly into <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='#Canvas'>Canvas</a> is returned if all parameters are valid.
+<a href='SkCanvas_Reference#SkCanvas'>SkCanvas</a> is returned if all parameters are valid.
 Valid parameters include:
 <a href='#SkCanvas_MakeRasterDirect_info'>info</a> dimensions are zero or positive;
-<a href='#SkCanvas_MakeRasterDirect_info'>info</a> contains <a href='SkImageInfo_Reference#Color_Type'>Color Type</a> and <a href='SkImageInfo_Reference#Alpha_Type'>Alpha Type</a> supported by <a href='undocumented#Raster_Surface'>Raster Surface</a>;
+<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#Color_Type'>Color Type</a>.
+<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> to compute <a href='#SkCanvas_MakeRasterDirect_rowBytes'>rowBytes</a> from <a href='#SkCanvas_MakeRasterDirect_info'>info</a> width and size of pixel.
+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#Color_Type'>Color Type</a>.
+<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> buffer size should be <a href='#SkCanvas_MakeRasterDirect_info'>info</a> height times computed <a href='#SkCanvas_MakeRasterDirect_rowBytes'>rowBytes</a>.
-<a href='#Pixels'>Pixels</a> are not initialized.
-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>.
+<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> 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#Color_Type'>Color Type</a>, <a href='SkImageInfo_Reference#Alpha_Type'>Alpha Type</a>, <a href='undocumented#Color_Space'>Color Space</a>, of <a href='undocumented#Raster_Surface'>Raster Surface</a>;
-width, or height, or both, may be zero</td>
-  </tr>
-  <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> 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#Surface'>Surface</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 device independent fonts;
-may be nullptr</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>
 
+width, or height, or both, may be zero
+
+### 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> 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> 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> independent fonts;</td>
+  </tr>
+</table>
+
+may be nullptr
+
 ### Return Value
 
-<a href='#Canvas'>Canvas</a> if all parameters are valid; otherwise, nullptr
+<a href='SkCanvas_Reference#SkCanvas'>SkCanvas</a> if all parameters are valid; otherwise, nullptr
 
 ### Example
 
@@ -365,44 +369,49 @@
                                                      size_t rowBytes)
 </pre>
 
-Allocates raster <a href='#Canvas'>Canvas</a> specified by inline image specification. Subsequent <a href='#Canvas'>Canvas</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#Color_Type'>Color Type</a> is set to <a href='SkImageInfo_Reference#kN32_SkColorType'>kN32_SkColorType</a>.
-<a href='SkImageInfo_Reference#Alpha_Type'>Alpha Type</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='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='#Canvas'>Canvas</a> is returned if all parameters are valid.
+<a href='SkCanvas_Reference#SkCanvas'>SkCanvas</a> is returned if all parameters are valid.
 Valid parameters include:
 <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> to compute <a href='#SkCanvas_MakeRasterDirectN32_rowBytes'>rowBytes</a> from <a href='#SkCanvas_MakeRasterDirectN32_width'>width</a> and size of pixel.
+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#Color_Type'>Color Type</a>.
+<a href='#SkCanvas_MakeRasterDirectN32_width'>width</a> times bytes required for <a href='SkImageInfo_Reference#SkColorType'>SkColorType</a>.
 
-<a href='undocumented#Pixel'>Pixel</a> buffer size should be <a href='#SkCanvas_MakeRasterDirectN32_height'>height</a> times <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>pixel column count on <a href='undocumented#Raster_Surface'>Raster Surface</a> created; must be zero or greater</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>pixel row count on <a href='undocumented#Raster_Surface'>Raster Surface</a> created; must be zero or greater</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> buffer; buffer size should be <a href='#SkCanvas_MakeRasterDirectN32_height'>height</a>
-times <a href='#SkCanvas_MakeRasterDirectN32_rowBytes'>rowBytes</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>
-  <tr>    <td><a name='SkCanvas_MakeRasterDirectN32_rowBytes'><code><strong>rowBytes</strong></code></a></td>
-    <td>interval from one <a href='SkSurface_Reference#Surface'>Surface</a> row to the next, or zero</td>
+</table>
+
+times <a href='#SkCanvas_MakeRasterDirectN32_rowBytes'>rowBytes</a>
+
+### 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> row to the next, or zero</td>
   </tr>
 </table>
 
 ### Return Value
 
-<a href='#Canvas'>Canvas</a> if all parameters are valid; otherwise, nullptr
+<a href='SkCanvas_Reference#SkCanvas'>SkCanvas</a> if all parameters are valid; otherwise, nullptr
 
 ### Example
 
@@ -432,12 +441,12 @@
 <a href='#SkCanvas'>SkCanvas</a>()
 </pre>
 
-Creates an empty <a href='#Canvas'>Canvas</a> with no backing device or pixels, with
+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
 
-empty <a href='#Canvas'>Canvas</a>
+empty <a href='SkCanvas_Reference#SkCanvas'>SkCanvas</a>
 
 ### Example
 
@@ -466,13 +475,13 @@
 <a href='#SkCanvas'>SkCanvas</a>(int width, int height, const <a href='undocumented#SkSurfaceProps'>SkSurfaceProps</a>* props = nullptr)
 </pre>
 
-Creates <a href='#Canvas'>Canvas</a> of the specified dimensions without a <a href='SkSurface_Reference#Surface'>Surface</a>.
-Used by <a href='undocumented#Subclasses'>Subclasses</a> with custom implementations for draw member functions.
+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> equals nullptr, <a href='undocumented#Surface_Properties'>Surface Properties</a> are created with
-<a href='undocumented#Legacy_Font_Host'>Surface Properties Legacy Font Host</a> settings, which choose the pixel striping
+If <a href='#SkCanvas_SkCanvas(int width, int height, const SkSurfaceProps* props = nullptr)_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 device is rotated, and since a platform may have multiple monitors with
+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
@@ -484,14 +493,15 @@
     <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 device independent fonts;
-may be nullptr</td>
+    <td>LCD striping orientation and setting for <a href='undocumented#Device'>device</a> independent fonts;</td>
   </tr>
 </table>
 
+may be nullptr
+
 ### Return Value
 
-<a href='#Canvas'>Canvas</a> placeholder with dimensions
+<a href='SkCanvas_Reference#SkCanvas'>SkCanvas</a> placeholder with dimensions
 
 ### Example
 
@@ -527,25 +537,26 @@
 explicit <a href='#SkCanvas'>SkCanvas</a>(const <a href='SkBitmap_Reference#SkBitmap'>SkBitmap</a>& bitmap)
 </pre>
 
-Constructs a canvas that draws into <a href='#SkCanvas_copy_const_SkBitmap_bitmap'>bitmap</a>.
-Sets <a href='undocumented#SkSurfaceProps_kLegacyFontHost_InitType'>SkSurfaceProps::kLegacyFontHost InitType</a> in constructed <a href='SkSurface_Reference#Surface'>Surface</a>.
+Constructs a <a href='SkCanvas_Reference#Canvas'>canvas</a> that draws into <a href='#SkCanvas_SkCanvas(const SkBitmap& bitmap)_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#Bitmap'>Bitmap</a> is copied so that subsequently editing <a href='#SkCanvas_copy_const_SkBitmap_bitmap'>bitmap</a> will not affect
-constructed <a href='#Canvas'>Canvas</a>.
+<a href='SkBitmap_Reference#SkBitmap'>SkBitmap</a> is copied so that subsequently editing <a href='#SkCanvas_SkCanvas(const SkBitmap& bitmap)_bitmap'>bitmap</a> will not affect
+constructed <a href='SkCanvas_Reference#SkCanvas'>SkCanvas</a>.
 
 May be deprecated in the future.
 
 ### 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#Color_Type'>Color Type</a>, <a href='SkImageInfo_Reference#Alpha_Type'>Alpha Type</a>, and pixel
-storage of <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>, and <a href='undocumented#Pixel'>pixel</a></td>
   </tr>
 </table>
 
+storage of  <a href='undocumented#Raster_Surface'>raster surface</a>
+
 ### Return Value
 
-<a href='#Canvas'>Canvas</a> that can be used to draw into <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_SkCanvas(const SkBitmap& bitmap)_bitmap'>bitmap</a>
 
 ### Example
 
@@ -614,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> for the canvas to draw into</td>
+    <td>specifies a <a href='#SkCanvas_SkCanvas(const SkBitmap& bitmap, ColorBehavior behavior)_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>
@@ -623,7 +634,7 @@
 
 ### Return Value
 
-<a href='#Canvas'>Canvas</a> that can be used to draw into <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_SkCanvas(const SkBitmap& bitmap, ColorBehavior behavior)_bitmap'>bitmap</a>
 
 <a name='SkCanvas_const_SkBitmap_const_SkSurfaceProps'></a>
 
@@ -633,27 +644,33 @@
 <a href='#SkCanvas'>SkCanvas</a>(const <a href='SkBitmap_Reference#SkBitmap'>SkBitmap</a>& bitmap, const <a href='undocumented#SkSurfaceProps'>SkSurfaceProps</a>& props)
 </pre>
 
-Constructs a canvas 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 device characteristics, like LCD striping.
+Constructs a <a href='SkCanvas_Reference#Canvas'>canvas</a> that draws into <a href='#SkCanvas_SkCanvas(const SkBitmap& bitmap, const SkSurfaceProps& props)_bitmap'>bitmap</a>.
+Use <a href='#SkCanvas_SkCanvas(const SkBitmap& bitmap, const SkSurfaceProps& props)_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> is copied so that subsequently editing <a href='#SkCanvas_const_SkBitmap_const_SkSurfaceProps_bitmap'>bitmap</a> will not affect
-constructed <a href='#Canvas'>Canvas</a>.
+<a href='#SkCanvas_SkCanvas(const SkBitmap& bitmap, const SkSurfaceProps& props)_bitmap'>bitmap</a> is copied so that subsequently editing <a href='#SkCanvas_SkCanvas(const SkBitmap& bitmap, const SkSurfaceProps& props)_bitmap'>bitmap</a> will not affect
+constructed <a href='SkCanvas_Reference#SkCanvas'>SkCanvas</a>.
 
 ### Parameters
 
 <table>  <tr>    <td><a name='SkCanvas_const_SkBitmap_const_SkSurfaceProps_bitmap'><code><strong>bitmap</strong></code></a></td>
-    <td>width, height, <a href='SkImageInfo_Reference#Color_Type'>Color Type</a>, <a href='SkImageInfo_Reference#Alpha_Type'>Alpha Type</a>,
-and pixel storage of <a href='undocumented#Raster_Surface'>Raster Surface</a></td>
-  </tr>
-  <tr>    <td><a name='SkCanvas_const_SkBitmap_const_SkSurfaceProps_props'><code><strong>props</strong></code></a></td>
-    <td>order and orientation of RGB striping; and whether to use
-device independent fonts</td>
+    <td>width, height, <a href='SkImageInfo_Reference#SkColorType'>SkColorType</a>, <a href='SkImageInfo_Reference#SkAlphaType'>SkAlphaType</a>,</td>
   </tr>
 </table>
 
+and  <a href='undocumented#Pixel_Storage'>pixel storage</a> of  <a href='undocumented#Raster_Surface'>raster surface</a>
+
+### Parameters
+
+<table>  <tr>    <td><a name='SkCanvas_const_SkBitmap_const_SkSurfaceProps_props'><code><strong>props</strong></code></a></td>
+    <td>order and orientation of RGB striping; and whether to use</td>
+  </tr>
+</table>
+
+<a href='undocumented#Device'>device</a> independent fonts
+
 ### Return Value
 
-<a href='#Canvas'>Canvas</a> that can be used to draw into <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_SkCanvas(const SkBitmap& bitmap, const SkSurfaceProps& props)_bitmap'>bitmap</a>
 
 ### Example
 
@@ -690,14 +707,14 @@
 virtual <a href='#SkCanvas_destructor'>~SkCanvas</a>()
 </pre>
 
-Draws saved <a href='#Layer'>Layers</a>, if any.
-Frees up resources used by <a href='#Canvas'>Canvas</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='#Canvas'>Canvas</a> <a href='#Layer'>Layer</a> draws into bitmap. <a href='#SkCanvas_saveLayerAlpha'>saveLayerAlpha</a> sets up an additional
 drawing surface that blends with the bitmap. When <a href='#Layer'>Layer</a> goes out of
-scope, <a href='#Layer'>Layer</a> <a href='undocumented#Destructor'>Destructor</a> is called. The saved <a href='#Layer'>Layer</a> is restored, drawing
+scope, <a href='#Layer'>Layer</a> destructor is called. The saved <a href='#Layer'>Layer</a> is restored, drawing
 transparent letters.
 </div></fiddle-embed></div>
 
@@ -715,8 +732,8 @@
 <a href='undocumented#SkMetaData'>SkMetaData</a>& <a href='#SkCanvas_getMetaData'>getMetaData</a>()
 </pre>
 
-Returns storage to associate additional data with the canvas.
-The storage is freed when <a href='#Canvas'>Canvas</a> is deleted.
+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
 
@@ -748,12 +765,12 @@
 <a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a> <a href='#SkCanvas_imageInfo'>imageInfo</a>() const
 </pre>
 
-Returns <a href='SkImageInfo_Reference#Image_Info'>Image Info</a> for <a href='#Canvas'>Canvas</a>. If <a href='#Canvas'>Canvas</a> is not associated with <a href='undocumented#Raster_Surface'>Raster Surface</a> or
-<a href='undocumented#GPU_Surface'>GPU Surface</a>, returned <a href='SkImageInfo_Reference#Color_Type'>Color Type</a> is set to <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  <a href='undocumented#Raster_Surface'>raster surface</a> or
+<a href='undocumented#GPU_Surface'>GPU 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#Color_Type'>Color Type</a> of <a href='#Canvas'>Canvas</a>
+dimensions and <a href='SkImageInfo_Reference#SkColorType'>SkColorType</a> of <a href='SkCanvas_Reference#SkCanvas'>SkCanvas</a>
 
 ### Example
 
@@ -779,8 +796,8 @@
 bool <a href='#SkCanvas_getProps'>getProps</a>(<a href='undocumented#SkSurfaceProps'>SkSurfaceProps</a>* props) const
 </pre>
 
-Copies <a href='undocumented#Surface_Properties'>Surface Properties</a>, if <a href='#Canvas'>Canvas</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.
+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
 
@@ -791,7 +808,7 @@
 
 ### Return Value
 
-true if <a href='undocumented#Surface_Properties'>Surface Properties</a> was copied
+true if <a href='undocumented#SkSurfaceProps'>SkSurfaceProps</a> was copied
 
 ### Example
 
@@ -821,8 +838,8 @@
 </pre>
 
 Triggers the immediate execution of all pending draw operations.
-If <a href='#Canvas'>Canvas</a> is associated with <a href='undocumented#GPU_Surface'>GPU Surface</a>, resolves all pending GPU operations.
-If <a href='#Canvas'>Canvas</a> is associated with <a href='undocumented#Raster_Surface'>Raster Surface</a>, has no effect; raster draw
+If <a href='SkCanvas_Reference#SkCanvas'>SkCanvas</a> is associated with  <a href='undocumented#GPU_Surface'>GPU surface</a>, resolves all pending GPU operations.
+If <a href='SkCanvas_Reference#SkCanvas'>SkCanvas</a> is associated with  <a href='undocumented#Raster_Surface'>raster surface</a>, has no effect; raster draw
 operations are never deferred.
 
 ### See Also
@@ -837,13 +854,13 @@
 virtual <a href='undocumented#SkISize'>SkISize</a> <a href='#SkCanvas_getBaseLayerSize'>getBaseLayerSize</a>() const
 </pre>
 
-Gets the size of the base or root <a href='#Layer'>Layer</a> in global canvas coordinates. The
-origin of the base <a href='#Layer'>Layer</a> is always (0,0). The area available for drawing may be
+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
 
-integral width and height of base <a href='#Layer'>Layer</a>
+integral width and height of base <a href='SkCanvas_Reference#Layer'>layer</a>
 
 ### Example
 
@@ -870,25 +887,25 @@
 <a href='undocumented#sk_sp'>sk sp</a>&lt;<a href='SkSurface_Reference#SkSurface'>SkSurface</a>&gt; <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#Surface'>Surface</a> matching <a href='#SkCanvas_makeSurface_info'>info</a> and <a href='#SkCanvas_makeSurface_props'>props</a>, and associates it with <a href='#Canvas'>Canvas</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> is nullptr, matches <a href='undocumented#Surface_Properties'>Surface Properties</a> in <a href='#Canvas'>Canvas</a>. If <a href='#SkCanvas_makeSurface_props'>props</a> is nullptr and <a href='#Canvas'>Canvas</a>
-does not have <a href='undocumented#Surface_Properties'>Surface Properties</a>, creates <a href='SkSurface_Reference#Surface'>Surface</a> with default <a href='undocumented#Surface_Properties'>Surface Properties</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#Color_Type'>Color Type</a>, <a href='SkImageInfo_Reference#Alpha_Type'>Alpha Type</a>, and <a href='undocumented#Color_Space'>Color Space</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#Surface_Properties'>Surface Properties</a> to match; may be nullptr to match <a href='#Canvas'>Canvas</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#Surface'>Surface</a> matching <a href='#SkCanvas_makeSurface_info'>info</a> and <a href='#SkCanvas_makeSurface_props'>props</a>, or nullptr if no match is available
+<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
 
@@ -915,11 +932,11 @@
 virtual <a href='undocumented#GrContext'>GrContext</a>* <a href='#SkCanvas_getGrContext'>getGrContext</a>()
 </pre>
 
-Returns <a href='undocumented#GPU_Context'>GPU Context</a> of the <a href='undocumented#GPU_Surface'>GPU Surface</a> associated with <a href='#Canvas'>Canvas</a>.
+Returns  <a href='undocumented#GPU_Context'>GPU context</a> of the  <a href='undocumented#GPU_Surface'>GPU surface</a> associated with <a href='SkCanvas_Reference#SkCanvas'>SkCanvas</a>.
 
 ### Return Value
 
-<a href='undocumented#GPU_Context'>GPU Context</a>, if available; nullptr otherwise
+<a href='undocumented#GPU_Context'>GPU context</a>, if available; nullptr otherwise
 
 ### Example
 
@@ -937,9 +954,9 @@
 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 pixel base address, <a href='SkImageInfo_Reference#Image_Info'>Image Info</a>, <a href='#SkCanvas_accessTopLayerPixels_rowBytes'>rowBytes</a>, and <a href='#SkCanvas_accessTopLayerPixels_origin'>origin</a> if the pixels
+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='#Canvas'>Canvas</a> is in scope and unchanged. Any <a href='#Canvas'>Canvas</a> call or <a href='SkSurface_Reference#Surface'>Surface</a> call
+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>, and <a href='#SkCanvas_accessTopLayerPixels_origin'>origin</a> are unchanged.
@@ -947,17 +964,18 @@
 ### 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#Image_Info'>Image Info</a>; may be nullptr</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='#Canvas'>Canvas</a> top <a href='#Layer'>Layer</a> <a href='#SkCanvas_accessTopLayerPixels_origin'>origin</a>, its top-left corner;
-may be nullptr</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>
 
+may be nullptr
+
 ### Return Value
 
 address of pixels, or nullptr if inaccessible
@@ -988,11 +1006,11 @@
 <a href='undocumented#SkRasterHandleAllocator_Handle'>SkRasterHandleAllocator::Handle</a> <a href='#SkCanvas_accessTopRasterHandle'>accessTopRasterHandle</a>() const
 </pre>
 
-Returns custom context that tracks the <a href='#Matrix'>Matrix</a> and <a href='#Clip'>Clip</a>.
+Returns custom context that tracks the <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> and clip.
 
-Use <a href='undocumented#Raster_Handle_Allocator'>Raster Handle Allocator</a> to blend Skia drawing with custom drawing, typically performed
+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_MakeCanvas'>SkRasterHandleAllocator::MakeCanvas</a>, which creates a custom canvas with raster storage for
+<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
@@ -1025,26 +1043,26 @@
 bool <a href='#SkCanvas_peekPixels'>peekPixels</a>(<a href='SkPixmap_Reference#SkPixmap'>SkPixmap</a>* pixmap)
 </pre>
 
-Returns true if <a href='#Canvas'>Canvas</a> has direct access to its pixels.
+Returns true if <a href='SkCanvas_Reference#SkCanvas'>SkCanvas</a> has direct access to its pixels.
 
-<a href='#Pixels'>Pixels</a> are readable when <a href='undocumented#Device'>Device</a> is raster. <a href='#Pixels'>Pixels</a> are not readable when <a href='#Canvas'>Canvas</a>
-is returned from <a href='undocumented#GPU_Surface'>GPU Surface</a>, returned by <a href='undocumented#SkDocument_beginPage'>SkDocument::beginPage</a>, returned by
-<a href='undocumented#SkPictureRecorder_beginRecording'>SkPictureRecorder::beginRecording</a>, or <a href='#Canvas'>Canvas</a> is the base of a utility class
+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> is valid only while <a href='#Canvas'>Canvas</a> is in scope and unchanged. Any
-<a href='#Canvas'>Canvas</a> or <a href='SkSurface_Reference#Surface'>Surface</a> call may invalidate the <a href='#SkCanvas_peekPixels_pixmap'>pixmap</a> values.
+<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 pixel state if pixels are readable; otherwise, ignored</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='#Canvas'>Canvas</a> has direct access to pixels
+true if <a href='SkCanvas_Reference#SkCanvas'>SkCanvas</a> has direct access to pixels
 
 ### Example
 
@@ -1516,17 +1534,17 @@
 int <a href='#SkCanvas_save'>save</a>()
 </pre>
 
-Saves <a href='#Matrix'>Matrix</a> and <a href='#Clip'>Clip</a>.
-Calling <a href='#SkCanvas_restore'>restore</a>() discards changes to <a href='#Matrix'>Matrix</a> and <a href='#Clip'>Clip</a>,
-restoring the <a href='#Matrix'>Matrix</a> and <a href='#Clip'>Clip</a> to their state when <a href='#SkCanvas_save'>save</a>() was called.
+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='#Matrix'>Matrix</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>. <a href='#Clip'>Clip</a> 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='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='#Canvas'>Canvas</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>().
+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> with result to restore this and subsequent saves.
+Call <a href='#SkCanvas_restoreToCount'>restoreToCount</a>() with result to restore this and subsequent saves.
 
 ### Return Value
 
@@ -1551,7 +1569,7 @@
 void <a href='#SkCanvas_restore'>restore</a>()
 </pre>
 
-Removes changes to <a href='#Matrix'>Matrix</a> and <a href='#Clip'>Clip</a> since <a href='#Canvas'>Canvas</a> state was
+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.
@@ -1572,13 +1590,13 @@
 int <a href='#SkCanvas_getSaveCount'>getSaveCount</a>() const
 </pre>
 
-Returns the number of saved states, each containing: <a href='#Matrix'>Matrix</a> and <a href='#Clip'>Clip</a>.
-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 canvas is one.
+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
 
-depth of save state stack
+depth of save  <a href='#State_Stack'>state stack</a>
 
 ### Example
 
@@ -1606,16 +1624,16 @@
 void <a href='#SkCanvas_restoreToCount'>restoreToCount</a>(int saveCount)
 </pre>
 
-Restores state to <a href='#Matrix'>Matrix</a> and <a href='#Clip'>Clip</a> 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>.
+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> is greater than state stack count.
+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
 
 <table>  <tr>    <td><a name='SkCanvas_restoreToCount_saveCount'><code><strong>saveCount</strong></code></a></td>
-    <td>depth of state stack to restore</td>
+    <td>depth of  <a href='#State_Stack'>state stack</a> to restore</td>
   </tr>
 </table>
 
@@ -1657,28 +1675,28 @@
 int <a href='#SkCanvas_saveLayer'>saveLayer</a>(const <a href='SkRect_Reference#SkRect'>SkRect</a>* bounds, const <a href='SkPaint_Reference#SkPaint'>SkPaint</a>* paint)
 </pre>
 
-Saves <a href='#Matrix'>Matrix</a> and <a href='#Clip'>Clip</a>, and allocates a <a href='SkBitmap_Reference#Bitmap'>Bitmap</a> for subsequent drawing.
-Calling <a href='#SkCanvas_restore'>restore</a>() discards changes to <a href='#Matrix'>Matrix</a> and <a href='#Clip'>Clip</a>, and draws the <a href='SkBitmap_Reference#Bitmap'>Bitmap</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='#Matrix'>Matrix</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>. <a href='#Clip'>Clip</a> 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='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#Rect'>Rect</a> <a href='#SkCanvas_saveLayer_bounds'>bounds</a> suggests but does not define the <a href='SkBitmap_Reference#Bitmap'>Bitmap</a> size. To clip drawing to
-a specific rectangle, use <a href='#SkCanvas_clipRect'>clipRect</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#Paint'>Paint</a> <a href='#SkCanvas_saveLayer_paint'>paint</a> applies <a href='SkColor_Reference#Alpha'>Color Alpha</a>, <a href='undocumented#Color_Filter'>Color Filter</a>, <a href='undocumented#Image_Filter'>Image Filter</a>, and
-<a href='SkBlendMode_Reference#Blend_Mode'>Blend Mode</a> when <a href='#SkCanvas_restore'>restore</a>() is called.
+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> with returned value to restore this and subsequent saves.
+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 size of the <a href='#Layer'>Layer</a>; may be nullptr</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='#Layer'>Layer</a>; may be nullptr</td>
+    <td>graphics state for <a href='SkCanvas_Reference#Layer'>layer</a>; may be nullptr</td>
   </tr>
 </table>
 
@@ -1704,28 +1722,28 @@
 int <a href='#SkCanvas_saveLayer'>saveLayer</a>(const <a href='SkRect_Reference#SkRect'>SkRect</a>& bounds, const <a href='SkPaint_Reference#SkPaint'>SkPaint</a>* paint)
 </pre>
 
-Saves <a href='#Matrix'>Matrix</a> and <a href='#Clip'>Clip</a>, and allocates a <a href='SkBitmap_Reference#Bitmap'>Bitmap</a> for subsequent drawing.
-Calling <a href='#SkCanvas_restore'>restore</a>() discards changes to <a href='#Matrix'>Matrix</a> and <a href='#Clip'>Clip</a>, and draws the <a href='SkBitmap_Reference#Bitmap'>Bitmap</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='#Matrix'>Matrix</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>. <a href='#Clip'>Clip</a> 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='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#Rect'>Rect</a> <a href='#SkCanvas_saveLayer_2_bounds'>bounds</a> suggests but does not define the <a href='#Layer'>Layer</a> size. To clip drawing to
-a specific rectangle, use <a href='#SkCanvas_clipRect'>clipRect</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#Paint'>Paint</a> <a href='#SkCanvas_saveLayer_2_paint'>paint</a> applies <a href='SkColor_Reference#Alpha'>Color Alpha</a>, <a href='undocumented#Color_Filter'>Color Filter</a>, <a href='undocumented#Image_Filter'>Image Filter</a>, and
-<a href='SkBlendMode_Reference#Blend_Mode'>Blend Mode</a> when <a href='#SkCanvas_restore'>restore</a>() is called.
+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> with returned value to restore this and subsequent saves.
+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 size of <a href='#Layer'>Layer</a>; may be nullptr</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='#Layer'>Layer</a>; may be nullptr</td>
+    <td>graphics state for <a href='SkCanvas_Reference#Layer'>layer</a>; may be nullptr</td>
   </tr>
 </table>
 
@@ -1752,34 +1770,34 @@
 int <a href='#SkCanvas_saveLayerPreserveLCDTextRequests'>saveLayerPreserveLCDTextRequests</a>(const <a href='SkRect_Reference#SkRect'>SkRect</a>* bounds, const <a href='SkPaint_Reference#SkPaint'>SkPaint</a>* paint)
 </pre>
 
-Saves <a href='#Matrix'>Matrix</a> and <a href='#Clip'>Clip</a>, and allocates a <a href='SkBitmap_Reference#Bitmap'>Bitmap</a> for subsequent drawing.
-<a href='SkPaint_Reference#LCD_Text'>LCD Text</a> is preserved when the <a href='#Layer'>Layer</a> is drawn to the prior <a href='#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>() discards changes to <a href='#Matrix'>Matrix</a> and <a href='#Clip'>Clip</a>, and draws <a href='#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='#Matrix'>Matrix</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>. <a href='#Clip'>Clip</a> 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='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#Rect'>Rect</a> <a href='#SkCanvas_saveLayerPreserveLCDTextRequests_bounds'>bounds</a> suggests but does not define the <a href='#Layer'>Layer</a> size. To clip drawing to
-a specific rectangle, use <a href='#SkCanvas_clipRect'>clipRect</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#Paint'>Paint</a> <a href='#SkCanvas_saveLayerPreserveLCDTextRequests_paint'>paint</a> applies <a href='SkColor_Reference#Alpha'>Color Alpha</a>, <a href='undocumented#Color_Filter'>Color Filter</a>, <a href='undocumented#Image_Filter'>Image Filter</a>, and
-<a href='SkBlendMode_Reference#Blend_Mode'>Blend Mode</a> when <a href='#SkCanvas_restore'>restore</a>() is called.
+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> with returned value to restore this and subsequent saves.
+Call <a href='#SkCanvas_restoreToCount'>restoreToCount</a>() with returned value to restore this and subsequent saves.
 
-<a href='#Draw'>Draw</a> text on an opaque background so that <a href='SkPaint_Reference#LCD_Text'>LCD Text</a> blends correctly with the
-prior <a href='#Layer'>Layer</a>. <a href='SkPaint_Reference#LCD_Text'>LCD Text</a> drawn on a background with transparency may result in
+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 size of <a href='#Layer'>Layer</a>; may be nullptr</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='#Layer'>Layer</a>; may be nullptr</td>
+    <td>graphics state for <a href='SkCanvas_Reference#Layer'>layer</a>; may be nullptr</td>
   </tr>
 </table>
 
@@ -1803,29 +1821,29 @@
 int <a href='#SkCanvas_saveLayerAlpha'>saveLayerAlpha</a>(const <a href='SkRect_Reference#SkRect'>SkRect</a>* bounds, <a href='undocumented#U8CPU'>U8CPU</a> alpha)
 </pre>
 
-Saves <a href='#Matrix'>Matrix</a> and <a href='#Clip'>Clip</a>, and allocates <a href='SkBitmap_Reference#Bitmap'>Bitmap</a> for subsequent drawing.
+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>() discards changes to <a href='#Matrix'>Matrix</a> and <a href='#Clip'>Clip</a>,
-and blends <a href='#Layer'>Layer</a> with <a href='#SkCanvas_saveLayerAlpha_alpha'>alpha</a> opacity onto prior <a href='#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='#Matrix'>Matrix</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>. <a href='#Clip'>Clip</a> 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='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#Rect'>Rect</a> <a href='#SkCanvas_saveLayerAlpha_bounds'>bounds</a> suggests but does not define <a href='#Layer'>Layer</a> size. To clip drawing to
-a specific rectangle, use <a href='#SkCanvas_clipRect'>clipRect</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> of zero is fully transparent, 255 is fully opaque.
 
-Call <a href='#SkCanvas_restoreToCount'>restoreToCount</a> with returned value to restore this and subsequent saves.
+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 size of <a href='#Layer'>Layer</a>; may be nullptr</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='#Layer'>Layer</a></td>
+    <td>opacity of <a href='SkCanvas_Reference#Layer'>layer</a></td>
   </tr>
 </table>
 
@@ -2018,7 +2036,7 @@
 
 ### Return Value
 
-empty <a href='#SkCanvas_SaveLayerRec_SaveLayerRec'>SaveLayerRec</a>
+empty <a href='#SkCanvas_SaveLayerRec'>SaveLayerRec</a>
 
 ### Example
 
@@ -2049,19 +2067,19 @@
 ### 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='#Layer'>Layer</a> dimensions; may be nullptr</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='#Layer'>Layer</a> when overlaying prior <a href='#Layer'>Layer</a>; may be nullptr</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'>SaveLayerRec</a> options to modify <a href='#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'>SaveLayerRec</a> with empty backdrop
+<a href='#SkCanvas_SaveLayerRec'>SaveLayerRec</a> with empty <a href='#SkCanvas_SaveLayerRec_fBackdrop'>fBackdrop</a>
 
 ### Example
 
@@ -2093,23 +2111,28 @@
 ### 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='#Layer'>Layer</a> dimensions; may be nullptr</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='#Layer'>Layer</a> when overlaying prior <a href='#Layer'>Layer</a>;
-may be nullptr</td>
+    <td>applied to <a href='SkCanvas_Reference#Layer'>layer</a> when overlaying prior <a href='SkCanvas_Reference#Layer'>layer</a>;</td>
   </tr>
-  <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='#Layer'>Layer</a> copied with <a href='undocumented#Image_Filter'>Image Filter</a>; may be nullptr</td>
+</table>
+
+may be nullptr
+
+### 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> 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'>SaveLayerRec</a> options to modify <a href='#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'>SaveLayerRec</a> fully specified
+<a href='#SkCanvas_SaveLayerRec'>SaveLayerRec</a> fully specified
 
 ### Example
 
@@ -2185,29 +2208,29 @@
 int <a href='#SkCanvas_saveLayer'>saveLayer</a>(const <a href='#SkCanvas_SaveLayerRec'>SaveLayerRec</a>& layerRec)
 </pre>
 
-Saves <a href='#Matrix'>Matrix</a> and <a href='#Clip'>Clip</a>, and allocates <a href='SkBitmap_Reference#Bitmap'>Bitmap</a> for subsequent drawing.
+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>() discards changes to <a href='#Matrix'>Matrix</a> and <a href='#Clip'>Clip</a>,
-and blends <a href='SkBitmap_Reference#Bitmap'>Bitmap</a> with <a href='SkColor_Reference#Alpha'>Color Alpha</a> opacity onto the prior <a href='#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='#Matrix'>Matrix</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>. <a href='#Clip'>Clip</a> 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='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> contains the state used to create the <a href='#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> with returned value to restore this and subsequent saves.
+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='#Layer'>Layer</a> state</td>
+    <td><a href='SkCanvas_Reference#Layer'>layer</a> state</td>
   </tr>
 </table>
 
 ### Return Value
 
-depth of save state stack
+depth of save  <a href='#State_Stack'>state stack</a>
 
 ### Example
 
@@ -2231,21 +2254,21 @@
 void <a href='#SkCanvas_translate'>translate</a>(<a href='undocumented#SkScalar'>SkScalar</a> dx, <a href='undocumented#SkScalar'>SkScalar</a> dy)
 </pre>
 
-Translates <a href='#Matrix'>Matrix</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.
+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='#Matrix'>Matrix</a> with a translation matrix
-<a href='undocumented#Premultiply'>Premultiplied</a> with <a href='#Matrix'>Matrix</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>) before transforming
-the result with <a href='#Matrix'>Matrix</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
 
 <table>  <tr>    <td><a name='SkCanvas_translate_dx'><code><strong>dx</strong></code></a></td>
-    <td>distance to translate in x</td>
+    <td>distance to translate on x-axis</td>
   </tr>
   <tr>    <td><a name='SkCanvas_translate_dy'><code><strong>dy</strong></code></a></td>
-    <td>distance to translate in y</td>
+    <td>distance to translate on y-axis</td>
   </tr>
 </table>
 
@@ -2272,21 +2295,21 @@
 void <a href='#SkCanvas_scale'>scale</a>(<a href='undocumented#SkScalar'>SkScalar</a> sx, <a href='undocumented#SkScalar'>SkScalar</a> sy)
 </pre>
 
-Scales <a href='#Matrix'>Matrix</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.
+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='#Matrix'>Matrix</a> with a scale matrix
-<a href='undocumented#Premultiply'>Premultiplied</a> with <a href='#Matrix'>Matrix</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>) before transforming
-the result with <a href='#Matrix'>Matrix</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
 
 <table>  <tr>    <td><a name='SkCanvas_scale_sx'><code><strong>sx</strong></code></a></td>
-    <td>amount to scale in x</td>
+    <td>amount to scale on x-axis</td>
   </tr>
   <tr>    <td><a name='SkCanvas_scale_sy'><code><strong>sy</strong></code></a></td>
-    <td>amount to scale in y</td>
+    <td>amount to scale on y-axis</td>
   </tr>
 </table>
 
@@ -2306,18 +2329,18 @@
 void <a href='#SkCanvas_rotate'>rotate</a>(<a href='undocumented#SkScalar'>SkScalar</a> degrees)
 </pre>
 
-Rotates <a href='#Matrix'>Matrix</a> by <a href='#SkCanvas_rotate_degrees'>degrees</a>. Positive <a href='#SkCanvas_rotate_degrees'>degrees</a> rotates clockwise.
+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='#Matrix'>Matrix</a> with a rotation matrix
-<a href='undocumented#Premultiply'>Premultiplied</a> with <a href='#Matrix'>Matrix</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> before transforming
-the result with <a href='#Matrix'>Matrix</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
 
 <table>  <tr>    <td><a name='SkCanvas_rotate_degrees'><code><strong>degrees</strong></code></a></td>
-    <td>amount to rotate, in <a href='#SkCanvas_rotate_degrees'>degrees</a></td>
+    <td>amount to rotate, in <a href='#SkCanvas_rotate()_degrees'>degrees</a></td>
   </tr>
 </table>
 
@@ -2339,15 +2362,15 @@
 void <a href='#SkCanvas_rotate'>rotate</a>(<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='#Matrix'>Matrix</a> by <a href='#SkCanvas_rotate_2_degrees'>degrees</a> about a point 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
+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 matrix; <a href='undocumented#Premultiply'>Premultiplies</a> the rotation matrix by
-a translation matrix; then replaces <a href='#Matrix'>Matrix</a> with the resulting matrix
-<a href='undocumented#Premultiply'>Premultiplied</a> with <a href='#Matrix'>Matrix</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 point before
-transforming the result with <a href='#Matrix'>Matrix</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
 
@@ -2355,10 +2378,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 point to rotate about</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 point to rotate about</td>
+    <td>y-axis value of the <a href='SkPoint_Reference#Point'>point</a> to rotate about</td>
   </tr>
 </table>
 
@@ -2378,14 +2401,14 @@
 void <a href='#SkCanvas_skew'>skew</a>(<a href='undocumented#SkScalar'>SkScalar</a> sx, <a href='undocumented#SkScalar'>SkScalar</a> sy)
 </pre>
 
-Skews <a href='#Matrix'>Matrix</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
+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='#Matrix'>Matrix</a> with a skew matrix <a href='undocumented#Premultiply'>Premultiplied</a> with <a href='#Matrix'>Matrix</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>) before transforming
-the result with <a href='#Matrix'>Matrix</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
 
@@ -2403,7 +2426,7 @@
 that shifts the geometry to the right as the y-axis values decrease.
 Red text uses a positive skew on y-axis to shift the geometry down
 as the x-axis values increase.
-Blue text combines <a href='#SkCanvas_skew_sx'>sx</a> and <a href='#SkCanvas_skew_sy'>sy</a> skew to rotate and scale.
+Blue text combines sx and sy skew to rotate and scale.
 </div></fiddle-embed></div>
 
 ### See Also
@@ -2418,15 +2441,15 @@
 void <a href='#SkCanvas_concat'>concat</a>(const <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a>& matrix)
 </pre>
 
-Replaces <a href='#Matrix'>Matrix</a> with <a href='#SkCanvas_concat_matrix'>matrix</a> <a href='undocumented#Premultiply'>Premultiplied</a> with existing <a href='#Matrix'>Matrix</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>, before
-transforming the result with existing <a href='#Matrix'>Matrix</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> to <a href='undocumented#Premultiply'>Premultiply</a> with existing <a href='#Matrix'>Matrix</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>
 
@@ -2446,13 +2469,13 @@
 void <a href='#SkCanvas_setMatrix'>setMatrix</a>(const <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a>& matrix)
 </pre>
 
-Replaces <a href='#Matrix'>Matrix</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.
+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> to copy, replacing existing <a href='#Matrix'>Matrix</a></td>
+    <td><a href='#SkCanvas_setMatrix_matrix'>matrix</a> to copy, replacing existing <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a></td>
   </tr>
 </table>
 
@@ -2472,8 +2495,8 @@
 void <a href='#SkCanvas_resetMatrix'>resetMatrix</a>()
 </pre>
 
-Sets <a href='#Matrix'>Matrix</a> to the identity matrix.
-Any prior matrix state is overwritten.
+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
 
@@ -2491,12 +2514,12 @@
 const <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a>& <a href='#SkCanvas_getTotalMatrix'>getTotalMatrix</a>() const
 </pre>
 
-Returns <a href='#Matrix'>Matrix</a>.
-This does not account for translation by <a href='undocumented#Device'>Device</a> or <a href='SkSurface_Reference#Surface'>Surface</a>.
+Returns <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</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='#Matrix'>Matrix</a> in <a href='#Canvas'>Canvas</a>
+<a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> in <a href='SkCanvas_Reference#SkCanvas'>SkCanvas</a>
 
 ### Example
 
@@ -2561,20 +2584,20 @@
 void <a href='#SkCanvas_clipRect'>clipRect</a>(const <a href='SkRect_Reference#SkRect'>SkRect</a>& rect, <a href='undocumented#SkClipOp'>SkClipOp</a> op, bool doAntiAlias)
 </pre>
 
-Replaces <a href='#Clip'>Clip</a> with the intersection or difference of <a href='#Clip'>Clip</a> and <a href='#SkCanvas_clipRect_rect'>rect</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='#Matrix'>Matrix</a>
-before it is combined with <a href='#Clip'>Clip</a>.
+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> 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#Rect'>Rect</a> to combine with <a href='#Clip'>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#Clip_Op'>Clip Op</a> to apply to <a href='#Clip'>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 <a href='#Clip'>Clip</a> is to be <a href='SkPaint_Reference#Anti_Alias'>Anti Aliased</a></td>
+    <td>true if clip is to be <a href='SkPaint_Reference#Anti_Alias'>anti-aliased</a></td>
   </tr>
 </table>
 
@@ -2594,17 +2617,17 @@
 void <a href='#SkCanvas_clipRect'>clipRect</a>(const <a href='SkRect_Reference#SkRect'>SkRect</a>& rect, <a href='undocumented#SkClipOp'>SkClipOp</a> op)
 </pre>
 
-Replaces <a href='#Clip'>Clip</a> with the intersection or difference of <a href='#Clip'>Clip</a> and <a href='#SkCanvas_clipRect_2_rect'>rect</a>.
-Resulting <a href='#Clip'>Clip</a> 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='#Matrix'>Matrix</a> before it is combined with <a href='#Clip'>Clip</a>.
+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>; 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#Rect'>Rect</a> to combine with <a href='#Clip'>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#Clip_Op'>Clip Op</a> to apply to <a href='#Clip'>Clip</a></td>
+    <td><a href='undocumented#SkClipOp'>SkClipOp</a> to apply to clip</td>
   </tr>
 </table>
 
@@ -2624,18 +2647,18 @@
 void <a href='#SkCanvas_clipRect'>clipRect</a>(const <a href='SkRect_Reference#SkRect'>SkRect</a>& rect, bool doAntiAlias = false)
 </pre>
 
-Replaces <a href='#Clip'>Clip</a> with the intersection of <a href='#Clip'>Clip</a> and <a href='#SkCanvas_clipRect_3_rect'>rect</a>.
-Resulting <a href='#Clip'>Clip</a> 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='#Matrix'>Matrix</a>
-before it is combined with <a href='#Clip'>Clip</a>.
+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>; 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#Rect'>Rect</a> to combine with <a href='#Clip'>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 <a href='#Clip'>Clip</a> is to be <a href='SkPaint_Reference#Anti_Alias'>Anti Aliased</a></td>
+    <td>true if clip is to be <a href='SkPaint_Reference#Anti_Alias'>anti-aliased</a></td>
   </tr>
 </table>
 
@@ -2682,21 +2705,21 @@
 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 <a href='#Clip'>Clip</a> with the intersection or difference of <a href='#Clip'>Clip</a> and <a href='#SkCanvas_clipRRect_rrect'>rrect</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='#Matrix'>Matrix</a>
-before it is combined with <a href='#Clip'>Clip</a>.
+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> 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#RRect'>Round Rect</a> to combine with <a href='#Clip'>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#Clip_Op'>Clip Op</a> to apply to <a href='#Clip'>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 <a href='#Clip'>Clip</a> is to be <a href='SkPaint_Reference#Anti_Alias'>Anti Aliased</a></td>
+    <td>true if clip is to be <a href='SkPaint_Reference#Anti_Alias'>anti-aliased</a></td>
   </tr>
 </table>
 
@@ -2716,17 +2739,17 @@
 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 <a href='#Clip'>Clip</a> with the intersection or difference of <a href='#Clip'>Clip</a> and <a href='#SkCanvas_clipRRect_2_rrect'>rrect</a>.
-Resulting <a href='#Clip'>Clip</a> 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='#Matrix'>Matrix</a> before it is combined with <a href='#Clip'>Clip</a>.
+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>; 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#RRect'>Round Rect</a> to combine with <a href='#Clip'>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#Clip_Op'>Clip Op</a> to apply to <a href='#Clip'>Clip</a></td>
+    <td><a href='undocumented#SkClipOp'>SkClipOp</a> to apply to clip</td>
   </tr>
 </table>
 
@@ -2746,17 +2769,17 @@
 void <a href='#SkCanvas_clipRRect'>clipRRect</a>(const <a href='SkRRect_Reference#SkRRect'>SkRRect</a>& rrect, bool doAntiAlias = false)
 </pre>
 
-Replaces <a href='#Clip'>Clip</a> with the intersection of <a href='#Clip'>Clip</a> and <a href='#SkCanvas_clipRRect_3_rrect'>rrect</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='#Matrix'>Matrix</a> before it is combined with <a href='#Clip'>Clip</a>.
+Replaces clip with the intersection of clip and <a href='#SkCanvas_clipRRect_3_rrect'>rrect</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#RRect'>Round Rect</a> to combine with <a href='#Clip'>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 <a href='#Clip'>Clip</a> is to be <a href='SkPaint_Reference#Anti_Alias'>Anti Aliased</a></td>
+    <td>true if clip is to be <a href='SkPaint_Reference#Anti_Alias'>anti-aliased</a></td>
   </tr>
 </table>
 
@@ -2776,22 +2799,22 @@
 void <a href='#SkCanvas_clipPath'>clipPath</a>(const <a href='SkPath_Reference#SkPath'>SkPath</a>& path, <a href='undocumented#SkClipOp'>SkClipOp</a> op, bool doAntiAlias)
 </pre>
 
-Replaces <a href='#Clip'>Clip</a> with the intersection or difference of <a href='#Clip'>Clip</a> and <a href='#SkCanvas_clipPath_path'>path</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#Fill_Type'>Path Fill Type</a> determines if <a href='#SkCanvas_clipPath_path'>path</a>
-describes the area inside or outside its contours; 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='#Matrix'>Matrix</a> before it is combined with <a href='#Clip'>Clip</a>.
+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> 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#Path'>Path</a> to combine with <a href='#Clip'>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#Clip_Op'>Clip Op</a> to apply to <a href='#Clip'>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 <a href='#Clip'>Clip</a> is to be <a href='SkPaint_Reference#Anti_Alias'>Anti Aliased</a></td>
+    <td>true if clip is to be <a href='SkPaint_Reference#Anti_Alias'>anti-aliased</a></td>
   </tr>
 </table>
 
@@ -2816,21 +2839,21 @@
 void <a href='#SkCanvas_clipPath'>clipPath</a>(const <a href='SkPath_Reference#SkPath'>SkPath</a>& path, <a href='undocumented#SkClipOp'>SkClipOp</a> op)
 </pre>
 
-Replaces <a href='#Clip'>Clip</a> with the intersection or difference of <a href='#Clip'>Clip</a> and <a href='#SkCanvas_clipPath_2_path'>path</a>.
-Resulting <a href='#Clip'>Clip</a> is <a href='undocumented#Alias'>Aliased</a>; pixels are fully contained by the clip.
-<a href='SkPath_Reference#Fill_Type'>Path Fill Type</a> determines if <a href='#SkCanvas_clipPath_2_path'>path</a>
-describes the area inside or outside its contours; 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='#Matrix'>Matrix</a>
-before it is combined with <a href='#Clip'>Clip</a>.
+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>; 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#Path'>Path</a> to combine with <a href='#Clip'>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#Clip_Op'>Clip Op</a> to apply to <a href='#Clip'>Clip</a></td>
+    <td><a href='undocumented#SkClipOp'>SkClipOp</a> to apply to clip</td>
   </tr>
 </table>
 
@@ -2853,20 +2876,20 @@
 void <a href='#SkCanvas_clipPath'>clipPath</a>(const <a href='SkPath_Reference#SkPath'>SkPath</a>& path, bool doAntiAlias = false)
 </pre>
 
-Replaces <a href='#Clip'>Clip</a> with the intersection of <a href='#Clip'>Clip</a> and <a href='#SkCanvas_clipPath_3_path'>path</a>.
-Resulting <a href='#Clip'>Clip</a> is <a href='undocumented#Alias'>Aliased</a>; pixels are fully contained by the clip.
-<a href='SkPath_Reference#Fill_Type'>Path Fill Type</a> determines if <a href='#SkCanvas_clipPath_3_path'>path</a>
-describes the area inside or outside its contours; 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='#Matrix'>Matrix</a> before it is combined with <a href='#Clip'>Clip</a>.
+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>; 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#Path'>Path</a> to combine with <a href='#Clip'>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 <a href='#Clip'>Clip</a> is to be <a href='SkPaint_Reference#Anti_Alias'>Anti Aliased</a></td>
+    <td>true if clip is to be <a href='SkPaint_Reference#Anti_Alias'>anti-aliased</a></td>
   </tr>
 </table>
 
@@ -2901,17 +2924,17 @@
 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_kIntersect'>SkClipOp::kIntersect</a>)
 </pre>
 
-Replaces <a href='#Clip'>Clip</a> with the intersection or difference of <a href='#Clip'>Clip</a> and <a href='SkRegion_Reference#Region'>Region</a> <a href='#SkCanvas_clipRegion_deviceRgn'>deviceRgn</a>.
-Resulting <a href='#Clip'>Clip</a> 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='#Matrix'>Matrix</a>.
+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>; 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#Region'>Region</a> to combine with <a href='#Clip'>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#Clip_Op'>Clip Op</a> to apply to <a href='#Clip'>Clip</a></td>
+    <td><a href='undocumented#SkClipOp'>SkClipOp</a> to apply to clip</td>
   </tr>
 </table>
 
@@ -2934,21 +2957,21 @@
 bool <a href='#SkCanvas_quickReject'>quickReject</a>(const <a href='SkRect_Reference#SkRect'>SkRect</a>& rect) const
 </pre>
 
-Returns true if <a href='SkRect_Reference#Rect'>Rect</a> <a href='#SkCanvas_quickReject_rect'>rect</a>, transformed by <a href='#Matrix'>Matrix</a>, can be quickly determined to be
-outside of <a href='#Clip'>Clip</a>. May return false even though <a href='#SkCanvas_quickReject_rect'>rect</a> is outside of <a href='#Clip'>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#Rect'>Rect</a> to compare with <a href='#Clip'>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>, transformed by <a href='#Matrix'>Matrix</a>, does not intersect <a href='#Clip'>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
 
@@ -2975,21 +2998,21 @@
 bool <a href='#SkCanvas_quickReject'>quickReject</a>(const <a href='SkPath_Reference#SkPath'>SkPath</a>& path) const
 </pre>
 
-Returns true if <a href='#SkCanvas_quickReject_2_path'>path</a>, transformed by <a href='#Matrix'>Matrix</a>, can be quickly determined to be
-outside of <a href='#Clip'>Clip</a>. May return false even though <a href='#SkCanvas_quickReject_2_path'>path</a> is outside of <a href='#Clip'>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#Path'>Path</a> to compare with <a href='#Clip'>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>, transformed by <a href='#Matrix'>Matrix</a>, does not intersect <a href='#Clip'>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
 
@@ -3016,15 +3039,15 @@
 <a href='SkRect_Reference#SkRect'>SkRect</a> <a href='#SkCanvas_getLocalClipBounds'>getLocalClipBounds</a>() const
 </pre>
 
-Returns bounds of <a href='#Clip'>Clip</a>, transformed by inverse of <a href='#Matrix'>Matrix</a>. If <a href='#Clip'>Clip</a> is empty,
-return <a href='SkRect_Reference#SkRect_MakeEmpty'>SkRect::MakeEmpty</a>, where all <a href='SkRect_Reference#Rect'>Rect</a> sides equal zero.
+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#Rect'>Rect</a> returned is outset by one to account for partial pixel coverage if <a href='#Clip'>Clip</a>
-is <a href='SkPaint_Reference#Anti_Alias'>Anti Aliased</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
 
-bounds of <a href='#Clip'>Clip</a> in local coordinates
+bounds of clip in local coordinates
 
 ### Example
 
@@ -3056,22 +3079,22 @@
 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> of <a href='#Clip'>Clip</a>, transformed by inverse of <a href='#Matrix'>Matrix</a>. If <a href='#Clip'>Clip</a> is empty,
-return false, and set <a href='#SkCanvas_getLocalClipBounds_2_bounds'>bounds</a> to <a href='SkRect_Reference#SkRect_MakeEmpty'>SkRect::MakeEmpty</a>, where all <a href='SkRect_Reference#Rect'>Rect</a> sides equal zero.
+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> is outset by one to account for partial pixel coverage if <a href='#Clip'>Clip</a>
-is <a href='SkPaint_Reference#Anti_Alias'>Anti Aliased</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#Rect'>Rect</a> of <a href='#Clip'>Clip</a> in local coordinates</td>
+    <td><a href='SkRect_Reference#SkRect'>SkRect</a> of clip in local coordinates</td>
   </tr>
 </table>
 
 ### Return Value
 
-true if <a href='#Clip'>Clip</a> <a href='#SkCanvas_getLocalClipBounds_2_bounds'>bounds</a> is not empty
+true if clip <a href='#SkCanvas_getLocalClipBounds_2_bounds'>bounds</a> is not empty
 
 ### Example
 
@@ -3098,14 +3121,14 @@
 <a href='SkIRect_Reference#SkIRect'>SkIRect</a> <a href='#SkCanvas_getDeviceClipBounds'>getDeviceClipBounds</a>() const
 </pre>
 
-Returns <a href='SkIRect_Reference#IRect'>IRect</a> bounds of <a href='#Clip'>Clip</a>, unaffected by <a href='#Matrix'>Matrix</a>. If <a href='#Clip'>Clip</a> is empty,
-return <a href='SkRect_Reference#SkRect_MakeEmpty'>SkRect::MakeEmpty</a>, where all <a href='SkRect_Reference#Rect'>Rect</a> sides equal zero.
+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>, returned <a href='SkIRect_Reference#IRect'>IRect</a> is not outset.
+Unlike <a href='#SkCanvas_getLocalClipBounds'>getLocalClipBounds</a>(), returned <a href='SkIRect_Reference#SkIRect'>SkIRect</a> is not outset.
 
 ### Return Value
 
-bounds of <a href='#Clip'>Clip</a> in <a href='undocumented#Device'>Device</a> coordinates
+bounds of clip in <a href='undocumented#SkBaseDevice'>SkBaseDevice</a> coordinates
 
 ### Example
 
@@ -3137,21 +3160,21 @@
 bool <a href='#SkCanvas_getDeviceClipBounds'>getDeviceClipBounds</a>(<a href='SkIRect_Reference#SkIRect'>SkIRect</a>* bounds) const
 </pre>
 
-Returns <a href='SkIRect_Reference#IRect'>IRect</a> <a href='#SkCanvas_getDeviceClipBounds_2_bounds'>bounds</a> of <a href='#Clip'>Clip</a>, unaffected by <a href='#Matrix'>Matrix</a>. If <a href='#Clip'>Clip</a> is empty,
-return false, and set <a href='#SkCanvas_getDeviceClipBounds_2_bounds'>bounds</a> to <a href='SkRect_Reference#SkRect_MakeEmpty'>SkRect::MakeEmpty</a>, where all <a href='SkRect_Reference#Rect'>Rect</a> sides equal zero.
+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> is not outset.
+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#Rect'>Rect</a> of <a href='#Clip'>Clip</a> in device coordinates</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 <a href='#Clip'>Clip</a> <a href='#SkCanvas_getDeviceClipBounds_2_bounds'>bounds</a> is not empty
+true if clip <a href='#SkCanvas_getDeviceClipBounds_2_bounds'>bounds</a> is not empty
 
 ### Example
 
@@ -3180,13 +3203,13 @@
 void <a href='#SkCanvas_drawColor'>drawColor</a>(<a href='SkColor_Reference#SkColor'>SkColor</a> color, <a href='SkBlendMode_Reference#SkBlendMode'>SkBlendMode</a> mode = <a href='SkBlendMode_Reference#SkBlendMode_kSrcOver'>SkBlendMode::kSrcOver</a>)
 </pre>
 
-Fills <a href='#Clip'>Clip</a> with <a href='SkColor_Reference#Color'>Color</a> <a href='#SkCanvas_drawColor_color'>color</a>.
+Fills clip with  <a href='#SkCanvas_drawColor_color'>color color</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> ARGB</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> used to combine source <a href='#SkCanvas_drawColor_color'>color</a> and destination</td>
@@ -3209,13 +3232,13 @@
 void <a href='#SkCanvas_clear'>clear</a>(<a href='SkColor_Reference#SkColor'>SkColor</a> color)
 </pre>
 
-Fills <a href='#Clip'>Clip</a> with <a href='SkColor_Reference#Color'>Color</a> <a href='#SkCanvas_clear_color'>color</a> using <a href='SkBlendMode_Reference#SkBlendMode_kSrc'>SkBlendMode::kSrc</a>.
-This has the effect of replacing all pixels contained by <a href='#Clip'>Clip</a> with <a href='#SkCanvas_clear_color'>color</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> ARGB</td>
+    <td><a href='undocumented#Unpremultiply'>unpremultiplied</a> ARGB</td>
   </tr>
 </table>
 
@@ -3235,17 +3258,17 @@
 void <a href='#SkCanvas_discard'>discard</a>()
 </pre>
 
-Makes <a href='#Canvas'>Canvas</a> contents undefined. Subsequent calls that read <a href='#Canvas'>Canvas</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 <a href='#Clip'>Clip</a> or <a href='#Matrix'>Matrix</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>() may do nothing, depending on the implementation of <a href='SkSurface_Reference#Surface'>Surface</a> or <a href='undocumented#Device'>Device</a>
-that created <a href='#Canvas'>Canvas</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>() allows optimized performance on subsequent draws by removing
-cached data associated with <a href='SkSurface_Reference#Surface'>Surface</a> or <a href='undocumented#Device'>Device</a>.
-It is not necessary to call <a href='#SkCanvas_discard'>discard</a>() once done with <a href='#Canvas'>Canvas</a>;
-any cached data is deleted when owning <a href='SkSurface_Reference#Surface'>Surface</a> or <a href='undocumented#Device'>Device</a> is deleted.
+<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
 
@@ -3259,14 +3282,14 @@
 void <a href='#SkCanvas_drawPaint'>drawPaint</a>(const <a href='SkPaint_Reference#SkPaint'>SkPaint</a>& paint)
 </pre>
 
-Fills <a href='#Clip'>Clip</a> with <a href='SkPaint_Reference#Paint'>Paint</a> <a href='#SkCanvas_drawPaint_paint'>paint</a>. <a href='SkPaint_Reference#Paint'>Paint</a> components <a href='undocumented#Mask_Filter'>Mask Filter</a>, <a href='undocumented#Shader'>Shader</a>,
-<a href='undocumented#Color_Filter'>Color Filter</a>, <a href='undocumented#Image_Filter'>Image Filter</a>, and <a href='SkBlendMode_Reference#Blend_Mode'>Blend Mode</a> affect drawing;
-<a href='undocumented#Path_Effect'>Path Effect</a> in <a href='#SkCanvas_drawPaint_paint'>paint</a> is ignored.
+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
 
 <table>  <tr>    <td><a name='SkCanvas_drawPaint_paint'><code><strong>paint</strong></code></a></td>
-    <td>graphics state used to fill <a href='#Canvas'>Canvas</a></td>
+    <td>graphics state used to fill <a href='SkCanvas_Reference#SkCanvas'>SkCanvas</a></td>
   </tr>
 </table>
 
@@ -3339,43 +3362,43 @@
 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>& paint)
 </pre>
 
-Draws <a href='#SkCanvas_drawPoints_pts'>pts</a> using <a href='#Clip'>Clip</a>, <a href='#Matrix'>Matrix</a> and <a href='SkPaint_Reference#Paint'>Paint</a> <a href='#SkCanvas_drawPoints_paint'>paint</a>.
-<a href='#SkCanvas_drawPoints_count'>count</a> is the number of points; 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>.
+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> is <a href='#SkCanvas_kPoints_PointMode'>kPoints PointMode</a>, the shape of point drawn depends on <a href='#SkCanvas_drawPoints_paint'>paint</a>
-<a href='SkPaint_Reference#Stroke_Cap'>Paint Stroke Cap</a>. If <a href='#SkCanvas_drawPoints_paint'>paint</a> is set to <a href='SkPaint_Reference#SkPaint_kRound_Cap'>SkPaint::kRound Cap</a>, each point draws a
-circle of diameter <a href='SkPaint_Reference#Stroke_Width'>Paint Stroke Width</a>. If <a href='#SkCanvas_drawPoints_paint'>paint</a> is set to <a href='SkPaint_Reference#SkPaint_kSquare_Cap'>SkPaint::kSquare Cap</a>
-or <a href='SkPaint_Reference#SkPaint_kButt_Cap'>SkPaint::kButt Cap</a>, each point draws a square of width and height
-<a href='SkPaint_Reference#Stroke_Width'>Paint Stroke 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> is <a href='#SkCanvas_kLines_PointMode'>kLines PointMode</a>, each pair of points draws a line segment.
-One line is drawn for every two points; each point is used once. If <a href='#SkCanvas_drawPoints_count'>count</a> is odd,
-the final point is ignored.
+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> is <a href='#SkCanvas_kPolygon_PointMode'>kPolygon PointMode</a>, each adjacent pair of points draws a line segment.
-<a href='#SkCanvas_drawPoints_count'>count</a> minus one lines are drawn; the first and last point are used once.
+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 line segment respects <a href='#SkCanvas_drawPoints_paint'>paint</a> <a href='SkPaint_Reference#Stroke_Cap'>Paint Stroke Cap</a> and <a href='SkPaint_Reference#Stroke_Width'>Paint Stroke Width</a>.
-<a href='SkPaint_Reference#Style'>Paint Style</a> is ignored, as if were set to <a href='SkPaint_Reference#SkPaint_kStroke_Style'>SkPaint::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#Stroke_Join'>Paint Stroke Join</a>, and unlike <a href='#SkCanvas_drawPath'>drawPath</a>, does not create a mask from all points
-and lines before drawing.
+<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> draws points or lines</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 points in the array</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 points to draw</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, color, and so on, used to draw</td>
+    <td>stroke, blend, <a href='SkColor_Reference#Color'>color</a>, and so on, used to draw</td>
   </tr>
 </table>
 
@@ -3416,24 +3439,24 @@
 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>& paint)
 </pre>
 
-Draws point at (<a href='#SkCanvas_drawPoint_x'>x</a>, <a href='#SkCanvas_drawPoint_y'>y</a>) using <a href='#Clip'>Clip</a>, <a href='#Matrix'>Matrix</a> and <a href='SkPaint_Reference#Paint'>Paint</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 point drawn depends on <a href='#SkCanvas_drawPoint_paint'>paint</a> <a href='SkPaint_Reference#Stroke_Cap'>Paint Stroke Cap</a>.
-If <a href='#SkCanvas_drawPoint_paint'>paint</a> is set to <a href='SkPaint_Reference#SkPaint_kRound_Cap'>SkPaint::kRound Cap</a>, draw a circle of diameter
-<a href='SkPaint_Reference#Stroke_Width'>Paint Stroke Width</a>. If <a href='#SkCanvas_drawPoint_paint'>paint</a> is set to <a href='SkPaint_Reference#SkPaint_kSquare_Cap'>SkPaint::kSquare Cap</a> or <a href='SkPaint_Reference#SkPaint_kButt_Cap'>SkPaint::kButt Cap</a>,
-draw a square of width and height <a href='SkPaint_Reference#Stroke_Width'>Paint Stroke Width</a>.
-<a href='SkPaint_Reference#Style'>Paint Style</a> is ignored, as if were set to <a href='SkPaint_Reference#SkPaint_kStroke_Style'>SkPaint::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 circle or square</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 circle or square</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, color, and so on, used to draw</td>
+    <td>stroke, blend, <a href='SkColor_Reference#Color'>color</a>, and so on, used to draw</td>
   </tr>
 </table>
 
@@ -3453,21 +3476,21 @@
 void <a href='#SkCanvas_drawPoint'>drawPoint</a>(<a href='SkPoint_Reference#SkPoint'>SkPoint</a> p, const <a href='SkPaint_Reference#SkPaint'>SkPaint</a>& paint)
 </pre>
 
-Draws point <a href='#SkCanvas_drawPoint_2_p'>p</a> using <a href='#Clip'>Clip</a>, <a href='#Matrix'>Matrix</a> and <a href='SkPaint_Reference#Paint'>Paint</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 point drawn depends on <a href='#SkCanvas_drawPoint_2_paint'>paint</a> <a href='SkPaint_Reference#Stroke_Cap'>Paint Stroke Cap</a>.
-If <a href='#SkCanvas_drawPoint_2_paint'>paint</a> is set to <a href='SkPaint_Reference#SkPaint_kRound_Cap'>SkPaint::kRound Cap</a>, draw a circle of diameter
-<a href='SkPaint_Reference#Stroke_Width'>Paint Stroke Width</a>. If <a href='#SkCanvas_drawPoint_2_paint'>paint</a> is set to <a href='SkPaint_Reference#SkPaint_kSquare_Cap'>SkPaint::kSquare Cap</a> or <a href='SkPaint_Reference#SkPaint_kButt_Cap'>SkPaint::kButt Cap</a>,
-draw a square of width and height <a href='SkPaint_Reference#Stroke_Width'>Paint Stroke Width</a>.
-<a href='SkPaint_Reference#Style'>Paint Style</a> is ignored, as if were set to <a href='SkPaint_Reference#SkPaint_kStroke_Style'>SkPaint::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 circle or square</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, color, and so on, used to draw</td>
+    <td>stroke, blend, <a href='SkColor_Reference#Color'>color</a>, and so on, used to draw</td>
   </tr>
 </table>
 
@@ -3487,27 +3510,27 @@
 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>& paint)
 </pre>
 
-Draws line 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 <a href='#Clip'>Clip</a>, <a href='#Matrix'>Matrix</a>, and <a href='SkPaint_Reference#Paint'>Paint</a> <a href='#SkCanvas_drawLine_paint'>paint</a>.
-In <a href='#SkCanvas_drawLine_paint'>paint</a>: <a href='SkPaint_Reference#Stroke_Width'>Paint Stroke Width</a> describes the line thickness;
-<a href='SkPaint_Reference#Stroke_Cap'>Paint Stroke Cap</a> draws the end rounded or square;
-<a href='SkPaint_Reference#Style'>Paint Style</a> is ignored, as if were set to <a href='SkPaint_Reference#SkPaint_kStroke_Style'>SkPaint::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 line segment on x-axis</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 line segment on y-axis</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 line segment on x-axis</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 line segment on y-axis</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, color, and so on, used to draw</td>
+    <td>stroke, blend, <a href='SkColor_Reference#Color'>color</a>, and so on, used to draw</td>
   </tr>
 </table>
 
@@ -3527,21 +3550,21 @@
 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>& paint)
 </pre>
 
-Draws line segment from <a href='#SkCanvas_drawLine_2_p0'>p0</a> to <a href='#SkCanvas_drawLine_2_p1'>p1</a> using <a href='#Clip'>Clip</a>, <a href='#Matrix'>Matrix</a>, and <a href='SkPaint_Reference#Paint'>Paint</a> <a href='#SkCanvas_drawLine_2_paint'>paint</a>.
-In <a href='#SkCanvas_drawLine_2_paint'>paint</a>: <a href='SkPaint_Reference#Stroke_Width'>Paint Stroke Width</a> describes the line thickness;
-<a href='SkPaint_Reference#Stroke_Cap'>Paint Stroke Cap</a> draws the end rounded or square;
-<a href='SkPaint_Reference#Style'>Paint Style</a> is ignored, as if were set to <a href='SkPaint_Reference#SkPaint_kStroke_Style'>SkPaint::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 line segment</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 line segment</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, color, and so on, used to draw</td>
+    <td>stroke, blend, <a href='SkColor_Reference#Color'>color</a>, and so on, used to draw</td>
   </tr>
 </table>
 
@@ -3561,10 +3584,10 @@
 void <a href='#SkCanvas_drawRect'>drawRect</a>(const <a href='SkRect_Reference#SkRect'>SkRect</a>& rect, const <a href='SkPaint_Reference#SkPaint'>SkPaint</a>& paint)
 </pre>
 
-Draws <a href='SkRect_Reference#Rect'>Rect</a> <a href='#SkCanvas_drawRect_rect'>rect</a> using <a href='#Clip'>Clip</a>, <a href='#Matrix'>Matrix</a>, and <a href='SkPaint_Reference#Paint'>Paint</a> <a href='#SkCanvas_drawRect_paint'>paint</a>.
-In <a href='#SkCanvas_drawRect_paint'>paint</a>: <a href='SkPaint_Reference#Style'>Paint Style</a> determines if rectangle is stroked or filled;
-if stroked, <a href='SkPaint_Reference#Stroke_Width'>Paint Stroke Width</a> describes the line thickness, and
-<a href='SkPaint_Reference#Stroke_Join'>Paint Stroke Join</a> draws the corners rounded or square.
+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
 
@@ -3572,7 +3595,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, color, and so on, used to draw</td>
+    <td>stroke or fill, blend, <a href='SkColor_Reference#Color'>color</a>, and so on, used to draw</td>
   </tr>
 </table>
 
@@ -3592,10 +3615,10 @@
 void <a href='#SkCanvas_drawIRect'>drawIRect</a>(const <a href='SkIRect_Reference#SkIRect'>SkIRect</a>& rect, const <a href='SkPaint_Reference#SkPaint'>SkPaint</a>& paint)
 </pre>
 
-Draws <a href='SkIRect_Reference#IRect'>IRect</a> <a href='#SkCanvas_drawIRect_rect'>rect</a> using <a href='#Clip'>Clip</a>, <a href='#Matrix'>Matrix</a>, and <a href='SkPaint_Reference#Paint'>Paint</a> <a href='#SkCanvas_drawIRect_paint'>paint</a>.
-In <a href='#SkCanvas_drawIRect_paint'>paint</a>: <a href='SkPaint_Reference#Style'>Paint Style</a> determines if rectangle is stroked or filled;
-if stroked, <a href='SkPaint_Reference#Stroke_Width'>Paint Stroke Width</a> describes the line thickness, and
-<a href='SkPaint_Reference#Stroke_Join'>Paint Stroke Join</a> draws the corners rounded or square.
+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
 
@@ -3603,7 +3626,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, color, and so on, used to draw</td>
+    <td>stroke or fill, blend, <a href='SkColor_Reference#Color'>color</a>, and so on, used to draw</td>
   </tr>
 </table>
 
@@ -3623,10 +3646,10 @@
 void <a href='#SkCanvas_drawRegion'>drawRegion</a>(const <a href='SkRegion_Reference#SkRegion'>SkRegion</a>& region, const <a href='SkPaint_Reference#SkPaint'>SkPaint</a>& paint)
 </pre>
 
-Draws <a href='SkRegion_Reference#Region'>Region</a> <a href='#SkCanvas_drawRegion_region'>region</a> using <a href='#Clip'>Clip</a>, <a href='#Matrix'>Matrix</a>, and <a href='SkPaint_Reference#Paint'>Paint</a> <a href='#SkCanvas_drawRegion_paint'>paint</a>.
-In <a href='#SkCanvas_drawRegion_paint'>paint</a>: <a href='SkPaint_Reference#Style'>Paint Style</a> determines if rectangle is stroked or filled;
-if stroked, <a href='SkPaint_Reference#Stroke_Width'>Paint Stroke Width</a> describes the line thickness, and
-<a href='SkPaint_Reference#Stroke_Join'>Paint Stroke Join</a> draws the corners rounded or square.
+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
 
@@ -3634,7 +3657,7 @@
     <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#Paint'>Paint</a> stroke or fill, blend, color, and so on, used to draw</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>
 
@@ -3654,17 +3677,17 @@
 void <a href='#SkCanvas_drawOval'>drawOval</a>(const <a href='SkRect_Reference#SkRect'>SkRect</a>& oval, const <a href='SkPaint_Reference#SkPaint'>SkPaint</a>& paint)
 </pre>
 
-Draws <a href='undocumented#Oval'>Oval</a> <a href='#SkCanvas_drawOval_oval'>oval</a> using <a href='#Clip'>Clip</a>, <a href='#Matrix'>Matrix</a>, and <a href='SkPaint_Reference#Paint'>Paint</a>.
-In <a href='#SkCanvas_drawOval_paint'>paint</a>: <a href='SkPaint_Reference#Style'>Paint Style</a> determines if <a href='undocumented#Oval'>Oval</a> is stroked or filled;
-if stroked, <a href='SkPaint_Reference#Stroke_Width'>Paint Stroke Width</a> describes the line thickness.
+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#Rect'>Rect</a> bounds of <a href='undocumented#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#Paint'>Paint</a> stroke or fill, blend, color, and so on, used to draw</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>
 
@@ -3684,20 +3707,20 @@
 void <a href='#SkCanvas_drawRRect'>drawRRect</a>(const <a href='SkRRect_Reference#SkRRect'>SkRRect</a>& rrect, const <a href='SkPaint_Reference#SkPaint'>SkPaint</a>& paint)
 </pre>
 
-Draws <a href='SkRRect_Reference#RRect'>Round Rect</a> <a href='#SkCanvas_drawRRect_rrect'>rrect</a> using <a href='#Clip'>Clip</a>, <a href='#Matrix'>Matrix</a>, and <a href='SkPaint_Reference#Paint'>Paint</a> <a href='#SkCanvas_drawRRect_paint'>paint</a>.
-In <a href='#SkCanvas_drawRRect_paint'>paint</a>: <a href='SkPaint_Reference#Style'>Paint Style</a> determines if <a href='#SkCanvas_drawRRect_rrect'>rrect</a> is stroked or filled;
-if stroked, <a href='SkPaint_Reference#Stroke_Width'>Paint Stroke Width</a> describes the line thickness.
+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> may represent a rectangle, circle, oval, uniformly rounded rectangle, or
+<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#RRect'>Round Rect</a> with up to eight corner radii to draw</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#Paint'>Paint</a> stroke or fill, blend, color, and so on, used to draw</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>
 
@@ -3717,28 +3740,28 @@
 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>& paint)
 </pre>
 
-Draws <a href='SkRRect_Reference#RRect'>Round Rect</a> <a href='#SkCanvas_drawDRRect_outer'>outer</a> and <a href='#SkCanvas_drawDRRect_inner'>inner</a>
-using <a href='#Clip'>Clip</a>, <a href='#Matrix'>Matrix</a>, and <a href='SkPaint_Reference#Paint'>Paint</a> <a href='#SkCanvas_drawDRRect_paint'>paint</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#Style'>Paint Style</a> determines if <a href='SkRRect_Reference#RRect'>Round Rect</a> is stroked or filled;
-if stroked, <a href='SkPaint_Reference#Stroke_Width'>Paint Stroke Width</a> describes the line thickness.
-If stroked and <a href='SkRRect_Reference#RRect'>Round Rect</a> corner has zero length radii, <a href='SkPaint_Reference#Stroke_Join'>Paint Stroke Join</a> can
+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> 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#Path'>Path</a> built with identical data as fast.
+<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#RRect'>Round Rect</a> <a href='#SkCanvas_drawDRRect_outer'>outer</a> bounds to draw</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#RRect'>Round Rect</a> <a href='#SkCanvas_drawDRRect_inner'>inner</a> bounds to draw</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#Paint'>Paint</a> stroke or fill, blend, color, and so on, used to draw</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>
 
@@ -3750,7 +3773,7 @@
 
 <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='SkRRect_Reference#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='SkRRect_Reference#RRect'>Round Rect</a> since it has no sharp corners.
+Stroke join does not affect inner <a href='SkRRect_Reference#RRect'>Round Rect</a> since it has no sharp corners.
 </div></fiddle-embed></div>
 
 ### See Also
@@ -3765,24 +3788,24 @@
 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>& paint)
 </pre>
 
-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 <a href='#Clip'>Clip</a>, <a href='#Matrix'>Matrix</a>, and <a href='SkPaint_Reference#Paint'>Paint</a> <a href='#SkCanvas_drawCircle_paint'>paint</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#Style'>Paint Style</a> determines if <a href='undocumented#Circle'>Circle</a> is stroked or filled;
-if stroked, <a href='SkPaint_Reference#Stroke_Width'>Paint Stroke Width</a> describes the line thickness.
+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> center on the x-axis</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> center on the y-axis</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>
+    <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#Paint'>Paint</a> stroke or fill, blend, color, and so on, used to draw</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>
 
@@ -3802,21 +3825,21 @@
 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>& paint)
 </pre>
 
-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 <a href='#Clip'>Clip</a>, <a href='#Matrix'>Matrix</a>, and <a href='SkPaint_Reference#Paint'>Paint</a> <a href='#SkCanvas_drawCircle_2_paint'>paint</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#Style'>Paint Style</a> determines if <a href='undocumented#Circle'>Circle</a> is stroked or filled;
-if stroked, <a href='SkPaint_Reference#Stroke_Width'>Paint Stroke Width</a> describes the line thickness.
+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
 
 <table>  <tr>    <td><a name='SkCanvas_drawCircle_2_center'><code><strong>center</strong></code></a></td>
-    <td><a href='undocumented#Circle'>Circle</a> <a href='#SkCanvas_drawCircle_2_center'>center</a></td>
+    <td><a href='undocumented#Circle'>circle</a> <a href='#SkCanvas_drawCircle_2_center'>center</a></td>
   </tr>
   <tr>    <td><a name='SkCanvas_drawCircle_2_radius'><code><strong>radius</strong></code></a></td>
-    <td>half the diameter of <a href='undocumented#Circle'>Circle</a></td>
+    <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#Paint'>Paint</a> stroke or fill, blend, color, and so on, used to draw</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>
 
@@ -3837,27 +3860,27 @@
              const <a href='SkPaint_Reference#SkPaint'>SkPaint</a>& paint)
 </pre>
 
-Draws <a href='undocumented#Arc'>Arc</a> using <a href='#Clip'>Clip</a>, <a href='#Matrix'>Matrix</a>, and <a href='SkPaint_Reference#Paint'>Paint</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> is part of <a href='undocumented#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='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> of zero places start point 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 point clockwise from start point;
-a negative <a href='#SkCanvas_drawArc_sweepAngle'>sweepAngle</a> places <a href='undocumented#Arc'>Arc</a> end point counterclockwise from start point.
-<a href='#SkCanvas_drawArc_sweepAngle'>sweepAngle</a> may exceed 360 degrees, a full circle.
-If <a href='#SkCanvas_drawArc_useCenter'>useCenter</a> is true, draw a wedge that includes lines from <a href='#SkCanvas_drawArc_oval'>oval</a>
-center to <a href='undocumented#Arc'>Arc</a> end points. If <a href='#SkCanvas_drawArc_useCenter'>useCenter</a> is false, draw <a href='undocumented#Arc'>Arc</a> between end points.
+<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#Rect'>Rect</a> <a href='#SkCanvas_drawArc_oval'>oval</a> is empty or <a href='#SkCanvas_drawArc_sweepAngle'>sweepAngle</a> is zero, nothing is drawn.
+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#Rect'>Rect</a> bounds of <a href='undocumented#Oval'>Oval</a> containing <a href='undocumented#Arc'>Arc</a> to draw</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> begins</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>
@@ -3866,7 +3889,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#Paint'>Paint</a> stroke or fill, blend, color, and so on, used to draw</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>
 
@@ -3890,29 +3913,29 @@
 void <a href='#SkCanvas_drawRoundRect'>drawRoundRect</a>(const <a href='SkRect_Reference#SkRect'>SkRect</a>& rect, <a href='undocumented#SkScalar'>SkScalar</a> rx, <a href='undocumented#SkScalar'>SkScalar</a> ry, const <a href='SkPaint_Reference#SkPaint'>SkPaint</a>& paint)
 </pre>
 
-Draws <a href='SkRRect_Reference#RRect'>Round Rect</a> bounded by <a href='SkRect_Reference#Rect'>Rect</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 <a href='#Clip'>Clip</a>,
-<a href='#Matrix'>Matrix</a>, and <a href='SkPaint_Reference#Paint'>Paint</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#Style'>Paint Style</a> determines if <a href='SkRRect_Reference#RRect'>Round Rect</a> is stroked or filled;
-if stroked, <a href='SkPaint_Reference#Stroke_Width'>Paint Stroke Width</a> describes the line thickness.
+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#RRect'>Round Rect</a> is drawn as <a href='SkRect_Reference#Rect'>Rect</a> and if stroked is affected by
-<a href='SkPaint_Reference#Stroke_Join'>Paint Stroke Join</a>.
+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#Rect'>Rect</a> bounds of <a href='SkRRect_Reference#RRect'>Round Rect</a> to draw</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 oval describing rounded corners</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 oval describing rounded corners</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, color, and so on, used to draw</td>
+    <td>stroke, blend, <a href='SkColor_Reference#Color'>color</a>, and so on, used to draw</td>
   </tr>
 </table>
 
@@ -3936,28 +3959,28 @@
 void <a href='#SkCanvas_drawPath'>drawPath</a>(const <a href='SkPath_Reference#SkPath'>SkPath</a>& path, const <a href='SkPaint_Reference#SkPaint'>SkPaint</a>& paint)
 </pre>
 
-Draws <a href='SkPath_Reference#Path'>Path</a> <a href='#SkCanvas_drawPath_path'>path</a> using <a href='#Clip'>Clip</a>, <a href='#Matrix'>Matrix</a>, and <a href='SkPaint_Reference#Paint'>Paint</a> <a href='#SkCanvas_drawPath_paint'>paint</a>.
-<a href='SkPath_Reference#Path'>Path</a> contains an array of <a href='SkPath_Overview#Contour'>Path Contour</a>, each of which may be open or closed.
+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#Style'>Paint Style</a> determines if <a href='SkRRect_Reference#RRect'>Round Rect</a> is stroked or filled:
-if filled, <a href='SkPath_Reference#Fill_Type'>Path Fill Type</a> determines whether <a href='SkPath_Overview#Contour'>Path Contour</a> describes inside or
-outside of fill; if stroked, <a href='SkPaint_Reference#Stroke_Width'>Paint Stroke Width</a> describes the line thickness,
-<a href='SkPaint_Reference#Stroke_Cap'>Paint Stroke Cap</a> describes line ends, and <a href='SkPaint_Reference#Stroke_Join'>Paint Stroke Join</a> describes how
+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#Path'>Path</a> to draw</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, color, and so on, used to draw</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> with combinations of joins and caps. The open contour
+<div><fiddle-embed name="fe2294131f422b8d6752f6a880f98ad9"><div>Top rows draw stroked path with combinations of joins and caps. The open contour
 is affected by caps; the closed contour is affected by joins.
 Bottom row draws fill the same for open and closed contour.
 First bottom column shows winding fills overlap.
@@ -3982,15 +4005,15 @@
 void <a href='#SkCanvas_drawImage'>drawImage</a>(const <a href='SkImage_Reference#SkImage'>SkImage</a>* image, <a href='undocumented#SkScalar'>SkScalar</a> left, <a href='undocumented#SkScalar'>SkScalar</a> top, const <a href='SkPaint_Reference#SkPaint'>SkPaint</a>* paint = nullptr)
 </pre>
 
-Draws <a href='SkImage_Reference#Image'>Image</a> <a href='#SkCanvas_drawImage_image'>image</a>, with its <a href='#SkCanvas_drawImage_top'>top</a>-<a href='#SkCanvas_drawImage_left'>left</a> corner at (<a href='#SkCanvas_drawImage_left'>left</a>, <a href='#SkCanvas_drawImage_top'>top</a>),
-using <a href='#Clip'>Clip</a>, <a href='#Matrix'>Matrix</a>, and optional <a href='SkPaint_Reference#Paint'>Paint</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> is supplied, apply <a href='undocumented#Color_Filter'>Color Filter</a>, <a href='SkColor_Reference#Alpha'>Color Alpha</a>, <a href='undocumented#Image_Filter'>Image Filter</a>, <a href='SkBlendMode_Reference#Blend_Mode'>Blend Mode</a>,
-and <a href='undocumented#Draw_Looper'>Draw Looper</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#Shader'>Shader</a>.
-If <a href='#SkCanvas_drawImage_paint'>paint</a> contains <a href='undocumented#Mask_Filter'>Mask Filter</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#Shader'>Shader</a>
-made from <a href='SkImage_Reference#SkImage_makeShader'>SkImage::makeShader</a> with <a href='undocumented#SkShader_kClamp_TileMode'>SkShader::kClamp TileMode</a> set replicates the
-<a href='#SkCanvas_drawImage_image'>image</a> edge color when it samples outside of its bounds.
+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
 
@@ -3998,17 +4021,18 @@
     <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</a> side of <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> 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#Paint'>Paint</a> containing <a href='SkBlendMode_Reference#Blend_Mode'>Blend Mode</a>, <a href='undocumented#Color_Filter'>Color Filter</a>, <a href='undocumented#Image_Filter'>Image Filter</a>,
-and so on; or nullptr</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>
 
+and so on; or nullptr
+
 ### Example
 
 <div><fiddle-embed name="185746dc0faa6f1df30c4afe098646ff"></fiddle-embed></div>
@@ -4026,15 +4050,15 @@
                const <a href='SkPaint_Reference#SkPaint'>SkPaint</a>* paint = nullptr)
 </pre>
 
-Draws <a href='SkImage_Reference#Image'>Image</a> <a href='#SkCanvas_drawImage_2_image'>image</a>, with its <a href='#SkCanvas_drawImage_2_top'>top</a>-<a href='#SkCanvas_drawImage_2_left'>left</a> corner at (<a href='#SkCanvas_drawImage_2_left'>left</a>, <a href='#SkCanvas_drawImage_2_top'>top</a>),
-using <a href='#Clip'>Clip</a>, <a href='#Matrix'>Matrix</a>, and optional <a href='SkPaint_Reference#Paint'>Paint</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#Paint'>Paint</a> <a href='#SkCanvas_drawImage_2_paint'>paint</a> is supplied, apply <a href='undocumented#Color_Filter'>Color Filter</a>, <a href='SkColor_Reference#Alpha'>Color Alpha</a>, <a href='undocumented#Image_Filter'>Image Filter</a>,
-<a href='SkBlendMode_Reference#Blend_Mode'>Blend Mode</a>, and <a href='undocumented#Draw_Looper'>Draw Looper</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#Shader'>Shader</a>.
-If <a href='#SkCanvas_drawImage_2_paint'>paint</a> contains <a href='undocumented#Mask_Filter'>Mask Filter</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#Shader'>Shader</a>
-made from <a href='SkImage_Reference#SkImage_makeShader'>SkImage::makeShader</a> with <a href='undocumented#SkShader_kClamp_TileMode'>SkShader::kClamp TileMode</a> set replicates the
-<a href='#SkCanvas_drawImage_2_image'>image</a> edge color when it samples outside of its bounds.
+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
 
@@ -4042,17 +4066,18 @@
     <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</a> side of <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#Paint'>Paint</a> containing <a href='SkBlendMode_Reference#Blend_Mode'>Blend Mode</a>, <a href='undocumented#Color_Filter'>Color Filter</a>, <a href='undocumented#Image_Filter'>Image Filter</a>,
-and so on; or nullptr</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>
 
+and so on; or nullptr
+
 ### Example
 
 <div><fiddle-embed name="a4e877e891b1be5faa2b7fd07f673a10"></fiddle-embed></div>
@@ -4128,37 +4153,42 @@
                    <a href='#SkCanvas_SrcRectConstraint'>SrcRectConstraint</a> constraint = <a href='#SkCanvas_kStrict_SrcRectConstraint'>kStrict SrcRectConstraint</a>)
 </pre>
 
-Draws <a href='SkRect_Reference#Rect'>Rect</a> <a href='#SkCanvas_drawImageRect_src'>src</a> of <a href='SkImage_Reference#Image'>Image</a> <a href='#SkCanvas_drawImageRect_image'>image</a>, scaled and translated to fill <a href='SkRect_Reference#Rect'>Rect</a> <a href='#SkCanvas_drawImageRect_dst'>dst</a>.
-Additionally transform draw using <a href='#Clip'>Clip</a>, <a href='#Matrix'>Matrix</a>, and optional <a href='SkPaint_Reference#Paint'>Paint</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#Paint'>Paint</a> <a href='#SkCanvas_drawImageRect_paint'>paint</a> is supplied, apply <a href='undocumented#Color_Filter'>Color Filter</a>, <a href='SkColor_Reference#Alpha'>Color Alpha</a>, <a href='undocumented#Image_Filter'>Image Filter</a>,
-<a href='SkBlendMode_Reference#Blend_Mode'>Blend Mode</a>, and <a href='undocumented#Draw_Looper'>Draw Looper</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#Shader'>Shader</a>.
-If <a href='#SkCanvas_drawImageRect_paint'>paint</a> contains <a href='undocumented#Mask_Filter'>Mask Filter</a>, generate mask from <a href='#SkCanvas_drawImageRect_image'>image</a> bounds.
+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> bounds, replicate <a href='#SkCanvas_drawImageRect_image'>image</a> edge colors, just
-as <a href='undocumented#Shader'>Shader</a> made from <a href='SkImage_Reference#SkImage_makeShader'>SkImage::makeShader</a> with <a href='undocumented#SkShader_kClamp_TileMode'>SkShader::kClamp TileMode</a> set
-replicates the <a href='#SkCanvas_drawImageRect_image'>image</a> edge color when it samples outside of its bounds.
+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> set to <a href='#SkCanvas_kStrict_SrcRectConstraint'>kStrict SrcRectConstraint</a> limits <a href='SkPaint_Reference#Paint'>Paint</a> <a href='undocumented#Filter_Quality'>Filter Quality</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
+<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#Image'>Image</a> containing pixels, dimensions, and format</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#Rect'>Rect</a> of <a href='#SkCanvas_drawImageRect_image'>image</a> to draw from</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#Rect'>Rect</a> of <a href='#SkCanvas_drawImageRect_image'>image</a> to draw to</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#Paint'>Paint</a> containing <a href='SkBlendMode_Reference#Blend_Mode'>Blend Mode</a>, <a href='undocumented#Color_Filter'>Color Filter</a>, <a href='undocumented#Image_Filter'>Image Filter</a>,
-and so on; or nullptr</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>
-  <tr>    <td><a name='SkCanvas_drawImageRect_constraint'><code><strong>constraint</strong></code></a></td>
+</table>
+
+and so on; or nullptr
+
+### 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> or draw faster</td>
   </tr>
 </table>
@@ -4185,39 +4215,44 @@
                    <a href='#SkCanvas_SrcRectConstraint'>SrcRectConstraint</a> constraint = <a href='#SkCanvas_kStrict_SrcRectConstraint'>kStrict SrcRectConstraint</a>)
 </pre>
 
-Draws <a href='SkIRect_Reference#IRect'>IRect</a> <a href='#SkCanvas_drawImageRect_2_isrc'>isrc</a> of <a href='SkImage_Reference#Image'>Image</a> <a href='#SkCanvas_drawImageRect_2_image'>image</a>, scaled and translated to fill <a href='SkRect_Reference#Rect'>Rect</a> <a href='#SkCanvas_drawImageRect_2_dst'>dst</a>.
-Note that <a href='#SkCanvas_drawImageRect_2_isrc'>isrc</a> is on integer pixel boundaries; <a href='#SkCanvas_drawImageRect_2_dst'>dst</a> may include fractional
-boundaries. Additionally transform draw using <a href='#Clip'>Clip</a>, <a href='#Matrix'>Matrix</a>, and optional <a href='SkPaint_Reference#Paint'>Paint</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#Paint'>Paint</a> <a href='#SkCanvas_drawImageRect_2_paint'>paint</a> is supplied, apply <a href='undocumented#Color_Filter'>Color Filter</a>, <a href='SkColor_Reference#Alpha'>Color Alpha</a>, <a href='undocumented#Image_Filter'>Image Filter</a>,
-<a href='SkBlendMode_Reference#Blend_Mode'>Blend Mode</a>, and <a href='undocumented#Draw_Looper'>Draw Looper</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#Shader'>Shader</a>.
-If <a href='#SkCanvas_drawImageRect_2_paint'>paint</a> contains <a href='undocumented#Mask_Filter'>Mask Filter</a>, generate mask from <a href='#SkCanvas_drawImageRect_2_image'>image</a> bounds.
+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> bounds, replicate <a href='#SkCanvas_drawImageRect_2_image'>image</a> edge colors, just
-as <a href='undocumented#Shader'>Shader</a> made from <a href='SkImage_Reference#SkImage_makeShader'>SkImage::makeShader</a> with <a href='undocumented#SkShader_kClamp_TileMode'>SkShader::kClamp TileMode</a> set
-replicates the <a href='#SkCanvas_drawImageRect_2_image'>image</a> edge color when it samples outside of its bounds.
+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> set to <a href='#SkCanvas_kStrict_SrcRectConstraint'>kStrict SrcRectConstraint</a> limits <a href='SkPaint_Reference#Paint'>Paint</a> <a href='undocumented#Filter_Quality'>Filter Quality</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
+<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#Image'>Image</a> containing pixels, dimensions, and format</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#IRect'>IRect</a> of <a href='#SkCanvas_drawImageRect_2_image'>image</a> to draw from</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#Rect'>Rect</a> of <a href='#SkCanvas_drawImageRect_2_image'>image</a> to draw to</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#Paint'>Paint</a> containing <a href='SkBlendMode_Reference#Blend_Mode'>Blend Mode</a>, <a href='undocumented#Color_Filter'>Color Filter</a>, <a href='undocumented#Image_Filter'>Image Filter</a>,
-and so on; or nullptr</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>
-  <tr>    <td><a name='SkCanvas_drawImageRect_2_constraint'><code><strong>constraint</strong></code></a></td>
+</table>
+
+and so on; or nullptr
+
+### 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> or draw faster</td>
   </tr>
 </table>
@@ -4238,31 +4273,32 @@
 void <a href='#SkCanvas_drawImageRect'>drawImageRect</a>(const <a href='SkImage_Reference#SkImage'>SkImage</a>* image, const <a href='SkRect_Reference#SkRect'>SkRect</a>& dst, const <a href='SkPaint_Reference#SkPaint'>SkPaint</a>* paint)
 </pre>
 
-Draws <a href='SkImage_Reference#Image'>Image</a> <a href='#SkCanvas_drawImageRect_3_image'>image</a>, scaled and translated to fill <a href='SkRect_Reference#Rect'>Rect</a> <a href='#SkCanvas_drawImageRect_3_dst'>dst</a>, using <a href='#Clip'>Clip</a>, <a href='#Matrix'>Matrix</a>,
-and optional <a href='SkPaint_Reference#Paint'>Paint</a> <a href='#SkCanvas_drawImageRect_3_paint'>paint</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#Paint'>Paint</a> <a href='#SkCanvas_drawImageRect_3_paint'>paint</a> is supplied, apply <a href='undocumented#Color_Filter'>Color Filter</a>, <a href='SkColor_Reference#Alpha'>Color Alpha</a>, <a href='undocumented#Image_Filter'>Image Filter</a>,
-<a href='SkBlendMode_Reference#Blend_Mode'>Blend Mode</a>, and <a href='undocumented#Draw_Looper'>Draw Looper</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#Shader'>Shader</a>.
-If <a href='#SkCanvas_drawImageRect_3_paint'>paint</a> contains <a href='undocumented#Mask_Filter'>Mask Filter</a>, generate mask from <a href='#SkCanvas_drawImageRect_3_image'>image</a> bounds.
+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> bounds, replicate <a href='#SkCanvas_drawImageRect_3_image'>image</a> edge colors, just
-as <a href='undocumented#Shader'>Shader</a> made from <a href='SkImage_Reference#SkImage_makeShader'>SkImage::makeShader</a> with <a href='undocumented#SkShader_kClamp_TileMode'>SkShader::kClamp TileMode</a> set
-replicates the <a href='#SkCanvas_drawImageRect_3_image'>image</a> edge color when it samples outside of its bounds.
+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#Image'>Image</a> containing pixels, dimensions, and format</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#Rect'>Rect</a> of <a href='#SkCanvas_drawImageRect_3_image'>image</a> to draw to</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#Paint'>Paint</a> containing <a href='SkBlendMode_Reference#Blend_Mode'>Blend Mode</a>, <a href='undocumented#Color_Filter'>Color Filter</a>, <a href='undocumented#Image_Filter'>Image Filter</a>,
-and so on; or nullptr</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>
 
+and so on; or nullptr
+
 ### Example
 
 <div><fiddle-embed name="3cf8fb639fef99993cafc064d550c739"></fiddle-embed></div>
@@ -4280,44 +4316,45 @@
                    const <a href='SkPaint_Reference#SkPaint'>SkPaint</a>* paint, <a href='#SkCanvas_SrcRectConstraint'>SrcRectConstraint</a> constraint = <a href='#SkCanvas_kStrict_SrcRectConstraint'>kStrict SrcRectConstraint</a>)
 </pre>
 
-Draws <a href='SkRect_Reference#Rect'>Rect</a> <a href='#SkCanvas_drawImageRect_4_src'>src</a> of <a href='SkImage_Reference#Image'>Image</a> <a href='#SkCanvas_drawImageRect_4_image'>image</a>, scaled and translated to fill <a href='SkRect_Reference#Rect'>Rect</a> <a href='#SkCanvas_drawImageRect_4_dst'>dst</a>.
-Additionally transform draw using <a href='#Clip'>Clip</a>, <a href='#Matrix'>Matrix</a>, and optional <a href='SkPaint_Reference#Paint'>Paint</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#Paint'>Paint</a> <a href='#SkCanvas_drawImageRect_4_paint'>paint</a> is supplied, apply <a href='undocumented#Color_Filter'>Color Filter</a>, <a href='SkColor_Reference#Alpha'>Color Alpha</a>, <a href='undocumented#Image_Filter'>Image Filter</a>,
-<a href='SkBlendMode_Reference#Blend_Mode'>Blend Mode</a>, and <a href='undocumented#Draw_Looper'>Draw Looper</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#Shader'>Shader</a>.
-If <a href='#SkCanvas_drawImageRect_4_paint'>paint</a> contains <a href='undocumented#Mask_Filter'>Mask Filter</a>, generate mask from <a href='#SkCanvas_drawImageRect_4_image'>image</a> bounds.
+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> bounds, replicate <a href='#SkCanvas_drawImageRect_4_image'>image</a> edge colors, just
-as <a href='undocumented#Shader'>Shader</a> made from <a href='SkImage_Reference#SkImage_makeShader'>SkImage::makeShader</a> with <a href='undocumented#SkShader_kClamp_TileMode'>SkShader::kClamp TileMode</a> set
-replicates the <a href='#SkCanvas_drawImageRect_4_image'>image</a> edge color when it samples outside of its bounds.
-
-<a href='#SkCanvas_drawImageRect_4_constraint'>constraint</a> set to <a href='#SkCanvas_kStrict_SrcRectConstraint'>kStrict SrcRectConstraint</a> limits <a href='SkPaint_Reference#Paint'>Paint</a> <a href='undocumented#Filter_Quality'>Filter Quality</a> to
-sample within <a href='#SkCanvas_drawImageRect_4_src'>src</a>; set to <a href='#SkCanvas_kFast_SrcRectConstraint'>kFast SrcRectConstraint</a> allows sampling outside to
-improve performance.
+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#Image'>Image</a> containing pixels, dimensions, and format</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#Rect'>Rect</a> of <a href='#SkCanvas_drawImageRect_4_image'>image</a> to draw from</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#Rect'>Rect</a> of <a href='#SkCanvas_drawImageRect_4_image'>image</a> to draw to</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#Paint'>Paint</a> containing <a href='SkBlendMode_Reference#Blend_Mode'>Blend Mode</a>, <a href='undocumented#Color_Filter'>Color Filter</a>, <a href='undocumented#Image_Filter'>Image Filter</a>,
-and so on; or nullptr</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>
-  <tr>    <td><a name='SkCanvas_drawImageRect_4_constraint'><code><strong>constraint</strong></code></a></td>
+</table>
+
+and so on; or nullptr
+
+### 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> or draw faster</td>
   </tr>
 </table>
 
 ### Example
 
-<div><fiddle-embed name="d4b35a9d24c32c042bd1f529b8de3c0d"><div><a href='#Canvas'>Canvas</a> scales and translates; transformation from <a href='#SkCanvas_drawImageRect_4_src'>src</a> to <a href='#SkCanvas_drawImageRect_4_dst'>dst</a> also scales.
+<div><fiddle-embed name="d4b35a9d24c32c042bd1f529b8de3c0d"><div><a href='#Canvas'>Canvas</a> scales and translates; transformation from src to dst also scales.
 The two matrices are concatenated to create the final transformation.
 </div></fiddle-embed></div>
 
@@ -4334,38 +4371,43 @@
                    const <a href='SkPaint_Reference#SkPaint'>SkPaint</a>* paint, <a href='#SkCanvas_SrcRectConstraint'>SrcRectConstraint</a> constraint = <a href='#SkCanvas_kStrict_SrcRectConstraint'>kStrict SrcRectConstraint</a>)
 </pre>
 
-Draws <a href='SkIRect_Reference#IRect'>IRect</a> <a href='#SkCanvas_drawImageRect_5_isrc'>isrc</a> of <a href='SkImage_Reference#Image'>Image</a> <a href='#SkCanvas_drawImageRect_5_image'>image</a>, scaled and translated to fill <a href='SkRect_Reference#Rect'>Rect</a> <a href='#SkCanvas_drawImageRect_5_dst'>dst</a>.
-<a href='#SkCanvas_drawImageRect_5_isrc'>isrc</a> is on integer pixel boundaries; <a href='#SkCanvas_drawImageRect_5_dst'>dst</a> may include fractional boundaries.
-Additionally transform draw using <a href='#Clip'>Clip</a>, <a href='#Matrix'>Matrix</a>, and optional <a href='SkPaint_Reference#Paint'>Paint</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#Paint'>Paint</a> <a href='#SkCanvas_drawImageRect_5_paint'>paint</a> is supplied, apply <a href='undocumented#Color_Filter'>Color Filter</a>, <a href='SkColor_Reference#Alpha'>Color Alpha</a>, <a href='undocumented#Image_Filter'>Image Filter</a>,
-<a href='SkBlendMode_Reference#Blend_Mode'>Blend Mode</a>, and <a href='undocumented#Draw_Looper'>Draw Looper</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#Shader'>Shader</a>.
-If <a href='#SkCanvas_drawImageRect_5_paint'>paint</a> contains <a href='undocumented#Mask_Filter'>Mask Filter</a>, generate mask from <a href='#SkCanvas_drawImageRect_5_image'>image</a> bounds.
+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> bounds, replicate <a href='#SkCanvas_drawImageRect_5_image'>image</a> edge colors, just
-as <a href='undocumented#Shader'>Shader</a> made from <a href='SkImage_Reference#SkImage_makeShader'>SkImage::makeShader</a> with <a href='undocumented#SkShader_kClamp_TileMode'>SkShader::kClamp TileMode</a> set
-replicates the <a href='#SkCanvas_drawImageRect_5_image'>image</a> edge color when it samples outside of its bounds.
+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> set to <a href='#SkCanvas_kStrict_SrcRectConstraint'>kStrict SrcRectConstraint</a> limits <a href='SkPaint_Reference#Paint'>Paint</a> <a href='undocumented#Filter_Quality'>Filter Quality</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
+<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#Image'>Image</a> containing pixels, dimensions, and format</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#IRect'>IRect</a> of <a href='#SkCanvas_drawImageRect_5_image'>image</a> to draw from</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#Rect'>Rect</a> of <a href='#SkCanvas_drawImageRect_5_image'>image</a> to draw to</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#Paint'>Paint</a> containing <a href='SkBlendMode_Reference#Blend_Mode'>Blend Mode</a>, <a href='undocumented#Color_Filter'>Color Filter</a>, <a href='undocumented#Image_Filter'>Image Filter</a>,
-and so on; or nullptr</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>
-  <tr>    <td><a name='SkCanvas_drawImageRect_5_constraint'><code><strong>constraint</strong></code></a></td>
+</table>
+
+and so on; or nullptr
+
+### 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> or draw faster</td>
   </tr>
 </table>
@@ -4386,31 +4428,36 @@
 void <a href='#SkCanvas_drawImageRect'>drawImageRect</a>(const <a href='undocumented#sk_sp'>sk sp</a>&lt;<a href='SkImage_Reference#SkImage'>SkImage</a>&gt;& image, const <a href='SkRect_Reference#SkRect'>SkRect</a>& dst, const <a href='SkPaint_Reference#SkPaint'>SkPaint</a>* paint)
 </pre>
 
-Draws <a href='SkImage_Reference#Image'>Image</a> <a href='#SkCanvas_drawImageRect_6_image'>image</a>, scaled and translated to fill <a href='SkRect_Reference#Rect'>Rect</a> <a href='#SkCanvas_drawImageRect_6_dst'>dst</a>,
-using <a href='#Clip'>Clip</a>, <a href='#Matrix'>Matrix</a>, and optional <a href='SkPaint_Reference#Paint'>Paint</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#Paint'>Paint</a> <a href='#SkCanvas_drawImageRect_6_paint'>paint</a> is supplied, apply <a href='undocumented#Color_Filter'>Color Filter</a>, <a href='SkColor_Reference#Alpha'>Color Alpha</a>, <a href='undocumented#Image_Filter'>Image Filter</a>,
-<a href='SkBlendMode_Reference#Blend_Mode'>Blend Mode</a>, and <a href='undocumented#Draw_Looper'>Draw Looper</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#Shader'>Shader</a>.
-If <a href='#SkCanvas_drawImageRect_6_paint'>paint</a> contains <a href='undocumented#Mask_Filter'>Mask Filter</a>, generate mask from <a href='#SkCanvas_drawImageRect_6_image'>image</a> bounds.
+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> bounds, replicate <a href='#SkCanvas_drawImageRect_6_image'>image</a> edge colors, just
-as <a href='undocumented#Shader'>Shader</a> made from <a href='SkImage_Reference#SkImage_makeShader'>SkImage::makeShader</a> with <a href='undocumented#SkShader_kClamp_TileMode'>SkShader::kClamp TileMode</a> set
-replicates the <a href='#SkCanvas_drawImageRect_6_image'>image</a> edge color when it samples outside of its bounds.
+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> 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#Image'>Image</a> containing pixels, dimensions, and format</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#Rect'>Rect</a> of <a href='#SkCanvas_drawImageRect_6_image'>image</a> to draw to</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#Paint'>Paint</a> containing <a href='SkBlendMode_Reference#Blend_Mode'>Blend Mode</a>, <a href='undocumented#Color_Filter'>Color Filter</a>, <a href='undocumented#Image_Filter'>Image Filter</a>,
-and so on; or nullptr</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>
 
+and so on; or nullptr
+
 ### Example
 
 <div><fiddle-embed name="3a47ef94cb70144455f80333d8653e6c"></fiddle-embed></div>
@@ -4537,35 +4584,36 @@
 void <a href='#SkCanvas_drawBitmap'>drawBitmap</a>(const <a href='SkBitmap_Reference#SkBitmap'>SkBitmap</a>& bitmap, <a href='undocumented#SkScalar'>SkScalar</a> left, <a href='undocumented#SkScalar'>SkScalar</a> top, const <a href='SkPaint_Reference#SkPaint'>SkPaint</a>* paint = nullptr)
 </pre>
 
-Draws <a href='SkBitmap_Reference#Bitmap'>Bitmap</a> <a href='#SkCanvas_drawBitmap_bitmap'>bitmap</a>, with its <a href='#SkCanvas_drawBitmap_top'>top</a>-<a href='#SkCanvas_drawBitmap_left'>left</a> corner at (<a href='#SkCanvas_drawBitmap_left'>left</a>, <a href='#SkCanvas_drawBitmap_top'>top</a>),
-using <a href='#Clip'>Clip</a>, <a href='#Matrix'>Matrix</a>, and optional <a href='SkPaint_Reference#Paint'>Paint</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#Paint'>Paint</a> <a href='#SkCanvas_drawBitmap_paint'>paint</a> is not nullptr, apply <a href='undocumented#Color_Filter'>Color Filter</a>, <a href='SkColor_Reference#Alpha'>Color Alpha</a>, <a href='undocumented#Image_Filter'>Image Filter</a>,
-<a href='SkBlendMode_Reference#Blend_Mode'>Blend Mode</a>, and <a href='undocumented#Draw_Looper'>Draw Looper</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#Shader'>Shader</a>.
-If <a href='#SkCanvas_drawBitmap_paint'>paint</a> contains <a href='undocumented#Mask_Filter'>Mask Filter</a>, generate mask from <a href='#SkCanvas_drawBitmap_bitmap'>bitmap</a> bounds.
+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> bounds, replicate <a href='#SkCanvas_drawBitmap_bitmap'>bitmap</a> edge colors,
-just as <a href='undocumented#Shader'>Shader</a> made from <a href='undocumented#SkShader_MakeBitmapShader'>SkShader::MakeBitmapShader</a> with
-<a href='undocumented#SkShader_kClamp_TileMode'>SkShader::kClamp TileMode</a> set replicates the <a href='#SkCanvas_drawBitmap_bitmap'>bitmap</a> edge color when it samples
+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#Bitmap'>Bitmap</a> containing pixels, dimensions, and format</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</a> side of <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> 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#Paint'>Paint</a> containing <a href='SkBlendMode_Reference#Blend_Mode'>Blend Mode</a>, <a href='undocumented#Color_Filter'>Color Filter</a>, <a href='undocumented#Image_Filter'>Image Filter</a>,
-and so on; or nullptr</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>
 
+and so on; or nullptr
+
 ### Example
 
 <div><fiddle-embed name="4a521be1f850058541e136a808c65e78"></fiddle-embed></div>
@@ -4583,38 +4631,43 @@
                     const <a href='SkPaint_Reference#SkPaint'>SkPaint</a>* paint, <a href='#SkCanvas_SrcRectConstraint'>SrcRectConstraint</a> constraint = <a href='#SkCanvas_kStrict_SrcRectConstraint'>kStrict SrcRectConstraint</a>)
 </pre>
 
-Draws <a href='SkRect_Reference#Rect'>Rect</a> <a href='#SkCanvas_drawBitmapRect_src'>src</a> of <a href='SkBitmap_Reference#Bitmap'>Bitmap</a> <a href='#SkCanvas_drawBitmapRect_bitmap'>bitmap</a>, scaled and translated to fill <a href='SkRect_Reference#Rect'>Rect</a> <a href='#SkCanvas_drawBitmapRect_dst'>dst</a>.
-Additionally transform draw using <a href='#Clip'>Clip</a>, <a href='#Matrix'>Matrix</a>, and optional <a href='SkPaint_Reference#Paint'>Paint</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#Paint'>Paint</a> <a href='#SkCanvas_drawBitmapRect_paint'>paint</a> is supplied, apply <a href='undocumented#Color_Filter'>Color Filter</a>, <a href='SkColor_Reference#Alpha'>Color Alpha</a>, <a href='undocumented#Image_Filter'>Image Filter</a>,
-<a href='SkBlendMode_Reference#Blend_Mode'>Blend Mode</a>, and <a href='undocumented#Draw_Looper'>Draw Looper</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#Shader'>Shader</a>.
-If <a href='#SkCanvas_drawBitmapRect_paint'>paint</a> contains <a href='undocumented#Mask_Filter'>Mask Filter</a>, generate mask from <a href='#SkCanvas_drawBitmapRect_bitmap'>bitmap</a> bounds.
+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> bounds, replicate <a href='#SkCanvas_drawBitmapRect_bitmap'>bitmap</a> edge colors,
-just as <a href='undocumented#Shader'>Shader</a> made from <a href='undocumented#SkShader_MakeBitmapShader'>SkShader::MakeBitmapShader</a> with
-<a href='undocumented#SkShader_kClamp_TileMode'>SkShader::kClamp TileMode</a> set replicates the <a href='#SkCanvas_drawBitmapRect_bitmap'>bitmap</a> edge color when it samples
+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> set to <a href='#SkCanvas_kStrict_SrcRectConstraint'>kStrict SrcRectConstraint</a> limits <a href='SkPaint_Reference#Paint'>Paint</a> <a href='undocumented#Filter_Quality'>Filter Quality</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
+<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#Bitmap'>Bitmap</a> containing pixels, dimensions, and format</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#Rect'>Rect</a> of image to draw from</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#Rect'>Rect</a> of image to draw to</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#Paint'>Paint</a> containing <a href='SkBlendMode_Reference#Blend_Mode'>Blend Mode</a>, <a href='undocumented#Color_Filter'>Color Filter</a>, <a href='undocumented#Image_Filter'>Image Filter</a>,
-and so on; or nullptr</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>
-  <tr>    <td><a name='SkCanvas_drawBitmapRect_constraint'><code><strong>constraint</strong></code></a></td>
+</table>
+
+and so on; or nullptr
+
+### 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> or draw faster</td>
   </tr>
 </table>
@@ -4636,39 +4689,44 @@
                     const <a href='SkPaint_Reference#SkPaint'>SkPaint</a>* paint, <a href='#SkCanvas_SrcRectConstraint'>SrcRectConstraint</a> constraint = <a href='#SkCanvas_kStrict_SrcRectConstraint'>kStrict SrcRectConstraint</a>)
 </pre>
 
-Draws <a href='SkIRect_Reference#IRect'>IRect</a> <a href='#SkCanvas_drawBitmapRect_2_isrc'>isrc</a> of <a href='SkBitmap_Reference#Bitmap'>Bitmap</a> <a href='#SkCanvas_drawBitmapRect_2_bitmap'>bitmap</a>, scaled and translated to fill <a href='SkRect_Reference#Rect'>Rect</a> <a href='#SkCanvas_drawBitmapRect_2_dst'>dst</a>.
-<a href='#SkCanvas_drawBitmapRect_2_isrc'>isrc</a> is on integer pixel boundaries; <a href='#SkCanvas_drawBitmapRect_2_dst'>dst</a> may include fractional boundaries.
-Additionally transform draw using <a href='#Clip'>Clip</a>, <a href='#Matrix'>Matrix</a>, and optional <a href='SkPaint_Reference#Paint'>Paint</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#Paint'>Paint</a> <a href='#SkCanvas_drawBitmapRect_2_paint'>paint</a> is supplied, apply <a href='undocumented#Color_Filter'>Color Filter</a>, <a href='SkColor_Reference#Alpha'>Color Alpha</a>, <a href='undocumented#Image_Filter'>Image Filter</a>,
-<a href='SkBlendMode_Reference#Blend_Mode'>Blend Mode</a>, and <a href='undocumented#Draw_Looper'>Draw Looper</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#Shader'>Shader</a>.
-If <a href='#SkCanvas_drawBitmapRect_2_paint'>paint</a> contains <a href='undocumented#Mask_Filter'>Mask Filter</a>, generate mask from <a href='#SkCanvas_drawBitmapRect_2_bitmap'>bitmap</a> bounds.
+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> bounds, replicate <a href='#SkCanvas_drawBitmapRect_2_bitmap'>bitmap</a> edge colors,
-just as <a href='undocumented#Shader'>Shader</a> made from <a href='undocumented#SkShader_MakeBitmapShader'>SkShader::MakeBitmapShader</a> with
-<a href='undocumented#SkShader_kClamp_TileMode'>SkShader::kClamp TileMode</a> set replicates the <a href='#SkCanvas_drawBitmapRect_2_bitmap'>bitmap</a> edge color when it samples
+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> set to <a href='#SkCanvas_kStrict_SrcRectConstraint'>kStrict SrcRectConstraint</a> limits <a href='SkPaint_Reference#Paint'>Paint</a> <a href='undocumented#Filter_Quality'>Filter Quality</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
+<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#Bitmap'>Bitmap</a> containing pixels, dimensions, and format</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#IRect'>IRect</a> of image to draw from</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#Rect'>Rect</a> of image to draw to</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#Paint'>Paint</a> containing <a href='SkBlendMode_Reference#Blend_Mode'>Blend Mode</a>, <a href='undocumented#Color_Filter'>Color Filter</a>, <a href='undocumented#Image_Filter'>Image Filter</a>,
-and so on; or nullptr</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>
-  <tr>    <td><a name='SkCanvas_drawBitmapRect_2_constraint'><code><strong>constraint</strong></code></a></td>
+</table>
+
+and so on; or nullptr
+
+### 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>, or draw faster</td>
   </tr>
 </table>
@@ -4690,36 +4748,41 @@
                     <a href='#SkCanvas_SrcRectConstraint'>SrcRectConstraint</a> constraint = <a href='#SkCanvas_kStrict_SrcRectConstraint'>kStrict SrcRectConstraint</a>)
 </pre>
 
-Draws <a href='SkBitmap_Reference#Bitmap'>Bitmap</a> <a href='#SkCanvas_drawBitmapRect_3_bitmap'>bitmap</a>, scaled and translated to fill <a href='SkRect_Reference#Rect'>Rect</a> <a href='#SkCanvas_drawBitmapRect_3_dst'>dst</a>.
-<a href='#SkCanvas_drawBitmapRect_3_bitmap'>bitmap</a> bounds is on integer pixel boundaries; <a href='#SkCanvas_drawBitmapRect_3_dst'>dst</a> may include fractional boundaries.
-Additionally transform draw using <a href='#Clip'>Clip</a>, <a href='#Matrix'>Matrix</a>, and optional <a href='SkPaint_Reference#Paint'>Paint</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#Paint'>Paint</a> <a href='#SkCanvas_drawBitmapRect_3_paint'>paint</a> is supplied, apply <a href='undocumented#Color_Filter'>Color Filter</a>, <a href='SkColor_Reference#Alpha'>Color Alpha</a>, <a href='undocumented#Image_Filter'>Image Filter</a>,
-<a href='SkBlendMode_Reference#Blend_Mode'>Blend Mode</a>, and <a href='undocumented#Draw_Looper'>Draw Looper</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#Shader'>Shader</a>.
-If <a href='#SkCanvas_drawBitmapRect_3_paint'>paint</a> contains <a href='undocumented#Mask_Filter'>Mask Filter</a>, generate mask from <a href='#SkCanvas_drawBitmapRect_3_bitmap'>bitmap</a> bounds.
+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> bounds, replicate <a href='#SkCanvas_drawBitmapRect_3_bitmap'>bitmap</a> edge colors,
-just as <a href='undocumented#Shader'>Shader</a> made from <a href='undocumented#SkShader_MakeBitmapShader'>SkShader::MakeBitmapShader</a> with
-<a href='undocumented#SkShader_kClamp_TileMode'>SkShader::kClamp TileMode</a> set replicates the <a href='#SkCanvas_drawBitmapRect_3_bitmap'>bitmap</a> edge color when it samples
+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> set to <a href='#SkCanvas_kStrict_SrcRectConstraint'>kStrict SrcRectConstraint</a> limits <a href='SkPaint_Reference#Paint'>Paint</a> <a href='undocumented#Filter_Quality'>Filter Quality</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
+<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#Bitmap'>Bitmap</a> containing pixels, dimensions, and format</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#Rect'>Rect</a> of image to draw to</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#Paint'>Paint</a> containing <a href='SkBlendMode_Reference#Blend_Mode'>Blend Mode</a>, <a href='undocumented#Color_Filter'>Color Filter</a>, <a href='undocumented#Image_Filter'>Image Filter</a>,
-and so on; or nullptr</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>
-  <tr>    <td><a name='SkCanvas_drawBitmapRect_3_constraint'><code><strong>constraint</strong></code></a></td>
+</table>
+
+and so on; or nullptr
+
+### 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> or draw faster</td>
   </tr>
 </table>
@@ -5207,41 +5270,41 @@
 void <a href='#SkCanvas_drawText'>drawText</a>(const void* text, 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>& paint)
 </pre>
 
-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 <a href='#Clip'>Clip</a>, <a href='#Matrix'>Matrix</a>, and <a href='SkPaint_Reference#Paint'>Paint</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> meaning depends on <a href='SkPaint_Reference#Text_Encoding'>Paint Text Encoding</a>; by default, <a href='#SkCanvas_drawText_text'>text</a> is encoded as
+<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> and <a href='#SkCanvas_drawText_y'>y</a> meaning depends on <a href='SkPaint_Reference#Text_Align'>Paint Text Align</a>; by default
-<a href='#SkCanvas_drawText_text'>text</a> draws left to right, positioning the first glyph left side bearing 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> size is affected by <a href='#Matrix'>Matrix</a> and <a href='SkPaint_Reference#Text_Size'>Paint Text 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>::<a href='#SkPaint_Align'>Align</a> 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#Path_Effect'>Path Effect</a>, <a href='undocumented#Mask_Filter'>Mask Filter</a>, <a href='undocumented#Shader'>Shader</a>,
-<a href='undocumented#Color_Filter'>Color Filter</a>, <a href='undocumented#Image_Filter'>Image Filter</a>, and <a href='undocumented#Draw_Looper'>Draw Looper</a>; apply to <a href='#SkCanvas_drawText_text'>text</a>. By default, draws
-filled 12 point black <a href='undocumented#Glyph'>Glyphs</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>, 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 points or <a href='undocumented#Glyph'>Glyphs</a> drawn</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> 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> on <a href='#SkCanvas_drawText_x'>x</a>-axis</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> on <a href='#SkCanvas_drawText_y'>y</a>-axis</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> size, blend, color, and so on, used to draw</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> is drawn varying <a href='SkPaint_Reference#Text_Size'>Paint Text Size</a> and varying
+<div><fiddle-embed name="55f5e59350622c5e2834d1c85789f732"><div>The same text is drawn varying <a href='SkPaint_Reference#Text_Size'>Paint Text Size</a> and varying
 <a href='#Matrix'>Matrix</a>.
 </div></fiddle-embed></div>
 
@@ -5257,34 +5320,40 @@
 void <a href='#SkCanvas_drawString'>drawString</a>(const char* string, <a href='undocumented#SkScalar'>SkScalar</a> x, <a href='undocumented#SkScalar'>SkScalar</a> y, const <a href='SkPaint_Reference#SkPaint'>SkPaint</a>& paint)
 </pre>
 
-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 <a href='#Clip'>Clip</a>, <a href='#Matrix'>Matrix</a>, and
-<a href='SkPaint_Reference#Paint'>Paint</a> <a href='#SkCanvas_drawString_paint'>paint</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> meaning depends on <a href='SkPaint_Reference#Text_Encoding'>Paint Text Encoding</a>; by default, strings are encoded
-as UTF-8. Other values of <a href='SkPaint_Reference#Text_Encoding'>Paint Text Encoding</a> are unlikely to produce the desired
+<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>.
 
-The <a href='#SkCanvas_drawString_string'>string</a> draws left to right, positioning the first glyph left side bearing 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> size is affected by <a href='#Matrix'>Matrix</a> and <a href='SkPaint_Reference#Text_Size'>Paint Text 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>::<a href='#SkPaint_Align'>Align</a> 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#Path_Effect'>Path Effect</a>, <a href='undocumented#Mask_Filter'>Mask Filter</a>, <a href='undocumented#Shader'>Shader</a>,
-<a href='undocumented#Color_Filter'>Color Filter</a>, <a href='undocumented#Image_Filter'>Image Filter</a>, and <a href='undocumented#Draw_Looper'>Draw Looper</a>; apply to text. By default, draws
-filled 12 point black <a href='undocumented#Glyph'>Glyphs</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>, 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 points or <a href='undocumented#Glyph'>Glyphs</a> drawn,
-ending with a char value of zero</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_drawString_x'><code><strong>x</strong></code></a></td>
-    <td>start of <a href='#SkCanvas_drawString_string'>string</a> on <a href='#SkCanvas_drawString_x'>x</a>-axis</td>
+</table>
+
+ending with a char value of zero
+
+### 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> 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> on <a href='#SkCanvas_drawString_y'>y</a>-axis</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>text size, blend, color, and so on, used to draw</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>
 
@@ -5304,34 +5373,40 @@
 void <a href='#SkCanvas_drawString'>drawString</a>(const <a href='undocumented#SkString'>SkString</a>& string, <a href='undocumented#SkScalar'>SkScalar</a> x, <a href='undocumented#SkScalar'>SkScalar</a> y, const <a href='SkPaint_Reference#SkPaint'>SkPaint</a>& paint)
 </pre>
 
-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 <a href='#Clip'>Clip</a>, <a href='#Matrix'>Matrix</a>, and
-<a href='SkPaint_Reference#Paint'>Paint</a> <a href='#SkCanvas_drawString_2_paint'>paint</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> meaning depends on <a href='SkPaint_Reference#Text_Encoding'>Paint Text Encoding</a>; by default, strings are encoded
-as UTF-8. Other values of <a href='SkPaint_Reference#Text_Encoding'>Paint Text Encoding</a> are unlikely to produce the desired
+<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>.
 
-The <a href='#SkCanvas_drawString_2_string'>string</a> draws left to right, positioning the first glyph left side bearing 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> size is affected by <a href='#Matrix'>Matrix</a> and <a href='SkPaint_Reference#Text_Size'>Paint Text 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>::<a href='#SkPaint_Align'>Align</a> 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#Path_Effect'>Path Effect</a>, <a href='undocumented#Mask_Filter'>Mask Filter</a>, <a href='undocumented#Shader'>Shader</a>,
-<a href='undocumented#Color_Filter'>Color Filter</a>, <a href='undocumented#Image_Filter'>Image Filter</a>, and <a href='undocumented#Draw_Looper'>Draw Looper</a>; apply to text. By default, draws
-filled 12 point black <a href='undocumented#Glyph'>Glyphs</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>, 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 points or <a href='undocumented#Glyph'>Glyphs</a> drawn,
-ending with a char value of zero</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_drawString_2_x'><code><strong>x</strong></code></a></td>
-    <td>start of <a href='#SkCanvas_drawString_2_string'>string</a> on <a href='#SkCanvas_drawString_2_x'>x</a>-axis</td>
+</table>
+
+ending with a char value of zero
+
+### 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> 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> on <a href='#SkCanvas_drawString_2_y'>y</a>-axis</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>text size, blend, color, and so on, used to draw</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>
 
@@ -5351,34 +5426,35 @@
 void <a href='#SkCanvas_drawPosText'>drawPosText</a>(const void* text, size_t byteLength, const <a href='SkPoint_Reference#SkPoint'>SkPoint</a> pos[], const <a href='SkPaint_Reference#SkPaint'>SkPaint</a>& paint)
 </pre>
 
-Draws each glyph in <a href='#SkCanvas_drawPosText_text'>text</a> with the origin in <a href='#SkCanvas_drawPosText_pos'>pos</a> array, using <a href='#Clip'>Clip</a>, <a href='#Matrix'>Matrix</a>, and
-<a href='SkPaint_Reference#Paint'>Paint</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>
+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> meaning depends on <a href='SkPaint_Reference#Text_Encoding'>Paint Text Encoding</a>; by default, <a href='#SkCanvas_drawPosText_text'>text</a> is encoded as
-UTF-8. glyph left side bearing and baseline are relative to <a href='SkPoint_Reference#Point'>Point</a> in <a href='#SkCanvas_drawPosText_pos'>pos</a> array.
-<a href='undocumented#Text'>Text</a> size is affected by <a href='#Matrix'>Matrix</a> and <a href='SkPaint_Reference#Text_Size'>Paint Text 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#Path_Effect'>Path Effect</a>, <a href='undocumented#Mask_Filter'>Mask Filter</a>, <a href='undocumented#Shader'>Shader</a>,
-<a href='undocumented#Color_Filter'>Color Filter</a>, <a href='undocumented#Image_Filter'>Image Filter</a>, and <a href='undocumented#Draw_Looper'>Draw Looper</a>; apply to <a href='#SkCanvas_drawPosText_text'>text</a>. By default, draws
-filled 12 point black <a href='undocumented#Glyph'>Glyphs</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>, 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 glyph
-rather than using the font advance widths.
+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> widths.
 
 ### Parameters
 
 <table>  <tr>    <td><a name='SkCanvas_drawPosText_text'><code><strong>text</strong></code></a></td>
-    <td>character code points or <a href='undocumented#Glyph'>Glyphs</a> drawn</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> array</td>
   </tr>
   <tr>    <td><a name='SkCanvas_drawPosText_pos'><code><strong>pos</strong></code></a></td>
-    <td>array of glyph origins</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> size, blend, color, and so on, used to draw</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>
 
@@ -5399,39 +5475,40 @@
                   const <a href='SkPaint_Reference#SkPaint'>SkPaint</a>& paint)
 </pre>
 
-Draws each glyph in <a href='#SkCanvas_drawPosTextH_text'>text</a> with its (x, y) origin composed from <a href='#SkCanvas_drawPosTextH_xpos'>xpos</a> array and
-<a href='#SkCanvas_drawPosTextH_constY'>constY</a>, using <a href='#Clip'>Clip</a>, <a href='#Matrix'>Matrix</a>, and <a href='SkPaint_Reference#Paint'>Paint</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>.
+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> meaning depends on <a href='SkPaint_Reference#Text_Encoding'>Paint Text Encoding</a>; by default, <a href='#SkCanvas_drawPosTextH_text'>text</a> is encoded as
-UTF-8. Each glyph left side bearing 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> size is affected by <a href='#Matrix'>Matrix</a> and
-<a href='SkPaint_Reference#Text_Size'>Paint Text Size</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#Path_Effect'>Path Effect</a>, <a href='undocumented#Mask_Filter'>Mask Filter</a>, <a href='undocumented#Shader'>Shader</a>,
-<a href='undocumented#Color_Filter'>Color Filter</a>, <a href='undocumented#Image_Filter'>Image Filter</a>, and <a href='undocumented#Draw_Looper'>Draw Looper</a>; apply to <a href='#SkCanvas_drawPosTextH_text'>text</a>. By default, draws
-filled 12 point black <a href='undocumented#Glyph'>Glyphs</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>, 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 glyph
-rather than using the font advance widths if all <a href='undocumented#Glyph'>Glyphs</a> share the same
+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> 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 points or <a href='undocumented#Glyph'>Glyphs</a> drawn</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> 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 glyph</td>
+    <td>array of x-axis positions, used to position each <a href='undocumented#Glyph'>glyph</a></td>
   </tr>
   <tr>    <td><a name='SkCanvas_drawPosTextH_constY'><code><strong>constY</strong></code></a></td>
     <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> size, blend, color, and so on, used to draw</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>
 
@@ -5452,35 +5529,35 @@
                      const <a href='SkRect_Reference#SkRect'>SkRect</a>* cullRect, const <a href='SkPaint_Reference#SkPaint'>SkPaint</a>& paint)
 </pre>
 
-Draws <a href='#SkCanvas_drawTextRSXform_text'>text</a>, transforming each glyph by the corresponding <a href='undocumented#SkRSXform'>SkRSXform</a>,
-using <a href='#Clip'>Clip</a>, <a href='#Matrix'>Matrix</a>, and <a href='SkPaint_Reference#Paint'>Paint</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#RSXform'>RSXform</a> <a href='#SkCanvas_drawTextRSXform_xform'>xform</a> array specifies a separate square scale, rotation, and translation
-for each glyph. <a href='#SkCanvas_drawTextRSXform_xform'>xform</a> does not affect <a href='#SkCanvas_drawTextRSXform_paint'>paint</a> <a href='undocumented#Shader'>Shader</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#Rect'>Rect</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#RSXform'>RSXform</a> and <a href='#SkCanvas_drawTextRSXform_paint'>paint</a>. If <a href='#SkCanvas_drawTextRSXform_cullRect'>cullRect</a> is outside of <a href='#Clip'>Clip</a>, canvas can skip drawing.
+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#Path_Effect'>Path Effect</a>, <a href='undocumented#Mask_Filter'>Mask Filter</a>, <a href='undocumented#Shader'>Shader</a>,
-<a href='undocumented#Color_Filter'>Color Filter</a>, <a href='undocumented#Image_Filter'>Image Filter</a>, and <a href='undocumented#Draw_Looper'>Draw Looper</a>; apply to <a href='#SkCanvas_drawTextRSXform_text'>text</a>. By default, draws
-filled 12 point black <a href='undocumented#Glyph'>Glyphs</a>.
+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>, 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 points or <a href='undocumented#Glyph'>Glyphs</a> drawn</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> array</td>
   </tr>
   <tr>    <td><a name='SkCanvas_drawTextRSXform_xform'><code><strong>xform</strong></code></a></td>
-    <td><a href='undocumented#RSXform'>RSXform</a> rotates, scales, and translates each glyph individually</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#Rect'>Rect</a> bounds of <a href='#SkCanvas_drawTextRSXform_text'>text</a> for efficient clipping; or nullptr</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> size, blend, color, and so on, used to draw</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>
 
@@ -5593,11 +5670,11 @@
 void <a href='#SkCanvas_drawPicture'>drawPicture</a>(const <a href='SkPicture_Reference#SkPicture'>SkPicture</a>* picture)
 </pre>
 
-Draws <a href='SkPicture_Reference#Picture'>Picture</a> <a href='#SkCanvas_drawPicture_picture'>picture</a>, using <a href='#Clip'>Clip</a> and <a href='#Matrix'>Matrix</a>.
-<a href='#Clip'>Clip</a> and <a href='#Matrix'>Matrix</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>.
+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#Picture'>Picture</a> records a series of draw commands for later playback.
+<a href='SkPicture_Reference#SkPicture'>SkPicture</a> records a series of draw commands for later playback.
 
 ### Parameters
 
@@ -5622,11 +5699,11 @@
 void <a href='#SkCanvas_drawPicture'>drawPicture</a>(const <a href='undocumented#sk_sp'>sk sp</a>&lt;<a href='SkPicture_Reference#SkPicture'>SkPicture</a>&gt;& picture)
 </pre>
 
-Draws <a href='SkPicture_Reference#Picture'>Picture</a> <a href='#SkCanvas_drawPicture_2_picture'>picture</a>, using <a href='#Clip'>Clip</a> and <a href='#Matrix'>Matrix</a>.
-<a href='#Clip'>Clip</a> and <a href='#Matrix'>Matrix</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>.
+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#Picture'>Picture</a> records a series of draw commands for later playback.
+<a href='SkPicture_Reference#SkPicture'>SkPicture</a> records a series of draw commands for later playback.
 
 ### Parameters
 
@@ -5651,12 +5728,12 @@
 void <a href='#SkCanvas_drawPicture'>drawPicture</a>(const <a href='SkPicture_Reference#SkPicture'>SkPicture</a>* picture, const <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a>* matrix, const <a href='SkPaint_Reference#SkPaint'>SkPaint</a>* paint)
 </pre>
 
-Draws <a href='SkPicture_Reference#Picture'>Picture</a> <a href='#SkCanvas_drawPicture_3_picture'>picture</a>, using <a href='#Clip'>Clip</a> and <a href='#Matrix'>Matrix</a>; transforming <a href='#SkCanvas_drawPicture_3_picture'>picture</a> with
-<a href='#Matrix'>Matrix</a> <a href='#SkCanvas_drawPicture_3_matrix'>matrix</a>, if provided; and use <a href='SkPaint_Reference#Paint'>Paint</a> <a href='#SkCanvas_drawPicture_3_paint'>paint</a> <a href='SkColor_Reference#Alpha'>Color Alpha</a>, <a href='undocumented#Color_Filter'>Color Filter</a>,
-<a href='undocumented#Image_Filter'>Image Filter</a>, and <a href='SkBlendMode_Reference#Blend_Mode'>Blend Mode</a>, if provided.
+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> 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>().
+<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
 
@@ -5664,10 +5741,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='#Matrix'>Matrix</a> to rotate, scale, translate, and so on; may be nullptr</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#Paint'>Paint</a> to apply transparency, filtering, and so on; may be nullptr</td>
+    <td><a href='SkPaint_Reference#SkPaint'>SkPaint</a> to apply transparency, filtering, and so on; may be nullptr</td>
   </tr>
 </table>
 
@@ -5687,12 +5764,12 @@
 void <a href='#SkCanvas_drawPicture'>drawPicture</a>(const <a href='undocumented#sk_sp'>sk sp</a>&lt;<a href='SkPicture_Reference#SkPicture'>SkPicture</a>&gt;& picture, const <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a>* matrix, const <a href='SkPaint_Reference#SkPaint'>SkPaint</a>* paint)
 </pre>
 
-Draws <a href='SkPicture_Reference#Picture'>Picture</a> <a href='#SkCanvas_drawPicture_4_picture'>picture</a>, using <a href='#Clip'>Clip</a> and <a href='#Matrix'>Matrix</a>; transforming <a href='#SkCanvas_drawPicture_4_picture'>picture</a> with
-<a href='#Matrix'>Matrix</a> <a href='#SkCanvas_drawPicture_4_matrix'>matrix</a>, if provided; and use <a href='SkPaint_Reference#Paint'>Paint</a> <a href='#SkCanvas_drawPicture_4_paint'>paint</a> <a href='SkColor_Reference#Alpha'>Color Alpha</a>, <a href='undocumented#Color_Filter'>Color Filter</a>,
-<a href='undocumented#Image_Filter'>Image Filter</a>, and <a href='SkBlendMode_Reference#Blend_Mode'>Blend Mode</a>, if provided.
+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> 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>().
+<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
 
@@ -5700,10 +5777,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='#Matrix'>Matrix</a> to rotate, scale, translate, and so on; may be nullptr</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#Paint'>Paint</a> to apply transparency, filtering, and so on; may be nullptr</td>
+    <td><a href='SkPaint_Reference#SkPaint'>SkPaint</a> to apply transparency, filtering, and so on; may be nullptr</td>
   </tr>
 </table>
 
@@ -5723,9 +5800,9 @@
 void <a href='#SkCanvas_drawVertices'>drawVertices</a>(const <a href='undocumented#SkVertices'>SkVertices</a>* vertices, <a href='SkBlendMode_Reference#SkBlendMode'>SkBlendMode</a> mode, const <a href='SkPaint_Reference#SkPaint'>SkPaint</a>& paint)
 </pre>
 
-Draws <a href='undocumented#Vertices'>Vertices</a> <a href='#SkCanvas_drawVertices_vertices'>vertices</a>, a triangle mesh, using <a href='#Clip'>Clip</a> and <a href='#Matrix'>Matrix</a>.
-If <a href='undocumented#Texs'>Vertices Texs</a> and <a href='undocumented#Colors'>Vertices Colors</a> are defined in <a href='#SkCanvas_drawVertices_vertices'>vertices</a>, and <a href='SkPaint_Reference#Paint'>Paint</a> <a href='#SkCanvas_drawVertices_paint'>paint</a>
-contains <a href='undocumented#Shader'>Shader</a>, <a href='SkBlendMode_Reference#Blend_Mode'>Blend Mode</a> <a href='#SkCanvas_drawVertices_mode'>mode</a> combines <a href='undocumented#Colors'>Vertices Colors</a> with <a href='undocumented#Shader'>Shader</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
 
@@ -5733,10 +5810,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#Colors'>Vertices Colors</a> with <a href='undocumented#Shader'>Shader</a>, if both are present</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#Shader'>Shader</a>, used as <a href='undocumented#Vertices'>Vertices</a> texture; may be nullptr</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>
 
@@ -5756,9 +5833,9 @@
 void <a href='#SkCanvas_drawVertices'>drawVertices</a>(const <a href='undocumented#sk_sp'>sk sp</a>&lt;<a href='undocumented#SkVertices'>SkVertices</a>&gt;& vertices, <a href='SkBlendMode_Reference#SkBlendMode'>SkBlendMode</a> mode, const <a href='SkPaint_Reference#SkPaint'>SkPaint</a>& paint)
 </pre>
 
-Draws <a href='undocumented#Vertices'>Vertices</a> <a href='#SkCanvas_drawVertices_2_vertices'>vertices</a>, a triangle mesh, using <a href='#Clip'>Clip</a> and <a href='#Matrix'>Matrix</a>.
-If <a href='undocumented#Texs'>Vertices Texs</a> and <a href='undocumented#Colors'>Vertices Colors</a> are defined in <a href='#SkCanvas_drawVertices_2_vertices'>vertices</a>, and <a href='SkPaint_Reference#Paint'>Paint</a> <a href='#SkCanvas_drawVertices_2_paint'>paint</a>
-contains <a href='undocumented#Shader'>Shader</a>, <a href='SkBlendMode_Reference#Blend_Mode'>Blend Mode</a> <a href='#SkCanvas_drawVertices_2_mode'>mode</a> combines <a href='undocumented#Colors'>Vertices Colors</a> with <a href='undocumented#Shader'>Shader</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
 
@@ -5766,10 +5843,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#Colors'>Vertices Colors</a> with <a href='undocumented#Shader'>Shader</a>, if both are present</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#Shader'>Shader</a>, used as <a href='undocumented#Vertices'>Vertices</a> texture, may be nullptr</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>
 
@@ -5790,14 +5867,14 @@
                   <a href='SkBlendMode_Reference#SkBlendMode'>SkBlendMode</a> mode, const <a href='SkPaint_Reference#SkPaint'>SkPaint</a>& paint)
 </pre>
 
-Draws <a href='undocumented#Vertices'>Vertices</a> <a href='#SkCanvas_drawVertices_3_vertices'>vertices</a>, a triangle mesh, using <a href='#Clip'>Clip</a> and <a href='#Matrix'>Matrix</a>. Bone data is used to
-deform <a href='#SkCanvas_drawVertices_3_vertices'>vertices</a> with bone weights.
-If <a href='undocumented#Texs'>Vertices Texs</a> and <a href='undocumented#Colors'>Vertices Colors</a> are defined in <a href='#SkCanvas_drawVertices_3_vertices'>vertices</a>, and <a href='SkPaint_Reference#Paint'>Paint</a> <a href='#SkCanvas_drawVertices_3_paint'>paint</a>
-contains <a href='undocumented#Shader'>Shader</a>, <a href='SkBlendMode_Reference#Blend_Mode'>Blend Mode</a> <a href='#SkCanvas_drawVertices_3_mode'>mode</a> combines <a href='undocumented#Colors'>Vertices Colors</a> with <a href='undocumented#Shader'>Shader</a>.
-The first element of <a href='#SkCanvas_drawVertices_3_bones'>bones</a> should be an object to world space transformation matrix that
+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 matrix.
-<a href='#SkCanvas_drawVertices_3_boneCount'>boneCount</a> must be at most 80, and thus the size of <a href='#SkCanvas_drawVertices_3_bones'>bones</a> should be at most 80.
+it should be the identity <a href='SkMatrix_Reference#Matrix'>matrix</a>.
+<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
 
@@ -5805,16 +5882,16 @@
     <td>triangle mesh to draw</td>
   </tr>
   <tr>    <td><a name='SkCanvas_drawVertices_3_bones'><code><strong>bones</strong></code></a></td>
-    <td>bone matrix data</td>
+    <td>bone <a href='SkMatrix_Reference#Matrix'>matrix</a> <a href='undocumented#Data'>data</a></td>
   </tr>
   <tr>    <td><a name='SkCanvas_drawVertices_3_boneCount'><code><strong>boneCount</strong></code></a></td>
-    <td>number of bone matrices</td>
+    <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#Colors'>Vertices Colors</a> with <a href='undocumented#Shader'>Shader</a>, if both are present</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#Shader'>Shader</a>, used as <a href='undocumented#Vertices'>Vertices</a> texture, may be nullptr</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>
 
@@ -5831,14 +5908,14 @@
                   <a href='SkBlendMode_Reference#SkBlendMode'>SkBlendMode</a> mode, const <a href='SkPaint_Reference#SkPaint'>SkPaint</a>& paint)
 </pre>
 
-Draws <a href='undocumented#Vertices'>Vertices</a> <a href='#SkCanvas_drawVertices_4_vertices'>vertices</a>, a triangle mesh, using <a href='#Clip'>Clip</a> and <a href='#Matrix'>Matrix</a>. Bone data is used to
-deform <a href='#SkCanvas_drawVertices_4_vertices'>vertices</a> with bone weights.
-If <a href='undocumented#Texs'>Vertices Texs</a> and <a href='undocumented#Colors'>Vertices Colors</a> are defined in <a href='#SkCanvas_drawVertices_4_vertices'>vertices</a>, and <a href='SkPaint_Reference#Paint'>Paint</a> <a href='#SkCanvas_drawVertices_4_paint'>paint</a>
-contains <a href='undocumented#Shader'>Shader</a>, <a href='SkBlendMode_Reference#Blend_Mode'>Blend Mode</a> <a href='#SkCanvas_drawVertices_4_mode'>mode</a> combines <a href='undocumented#Colors'>Vertices Colors</a> with <a href='undocumented#Shader'>Shader</a>.
-The first element of <a href='#SkCanvas_drawVertices_4_bones'>bones</a> should be an object to world space transformation matrix that
+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 matrix.
-<a href='#SkCanvas_drawVertices_4_boneCount'>boneCount</a> must be at most 80, and thus the size of <a href='#SkCanvas_drawVertices_4_bones'>bones</a> should be at most 80.
+it should be the identity <a href='SkMatrix_Reference#Matrix'>matrix</a>.
+<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
 
@@ -5846,16 +5923,16 @@
     <td>triangle mesh to draw</td>
   </tr>
   <tr>    <td><a name='SkCanvas_drawVertices_4_bones'><code><strong>bones</strong></code></a></td>
-    <td>bone matrix data</td>
+    <td>bone <a href='SkMatrix_Reference#Matrix'>matrix</a> <a href='undocumented#Data'>data</a></td>
   </tr>
   <tr>    <td><a name='SkCanvas_drawVertices_4_boneCount'><code><strong>boneCount</strong></code></a></td>
-    <td>number of bone matrices</td>
+    <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#Colors'>Vertices Colors</a> with <a href='undocumented#Shader'>Shader</a>, if both are present</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#Shader'>Shader</a>, used as <a href='undocumented#Vertices'>Vertices</a> texture, may be nullptr</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>
 
@@ -5872,41 +5949,46 @@
                <a href='SkBlendMode_Reference#SkBlendMode'>SkBlendMode</a> mode, const <a href='SkPaint_Reference#SkPaint'>SkPaint</a>& paint)
 </pre>
 
-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 color, and optionally a texture <a href='SkPoint_Reference#Point'>Point</a>, with each corner.
+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 <a href='#Clip'>Clip</a> and <a href='#Matrix'>Matrix</a>, <a href='#SkCanvas_drawPatch_paint'>paint</a> <a href='undocumented#Shader'>Shader</a>, <a href='undocumented#Color_Filter'>Color Filter</a>,
-<a href='SkColor_Reference#Alpha'>Color Alpha</a>, <a href='undocumented#Image_Filter'>Image Filter</a>, and <a href='SkBlendMode_Reference#Blend_Mode'>Blend Mode</a>. If <a href='undocumented#Shader'>Shader</a> is provided it is treated
-as <a href='undocumented#Coons_Patch'>Coons Patch</a> texture; <a href='SkBlendMode_Reference#Blend_Mode'>Blend Mode</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#Shader'>Shader</a> if
+<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>, 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='SkPoint_Reference#Point'>Point</a> array <a href='#SkCanvas_drawPatch_cubics'>cubics</a> specifies four <a href='SkPath_Reference#Cubic'>Cubics</a> starting at the top-left corner,
-in clockwise order, sharing every fourth point. The last <a href='SkPath_Reference#Cubic'>Cubic</a> ends at the
-first point.
+<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> array color associates <a href='#SkCanvas_drawPatch_colors'>colors</a> with corners in top-left, top-right,
+<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> contains <a href='undocumented#Shader'>Shader</a>, <a href='SkPoint_Reference#Point'>Point</a> array <a href='#SkCanvas_drawPatch_texCoords'>texCoords</a> maps <a href='undocumented#Shader'>Shader</a> as texture to
+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#Cubic'>Path Cubic</a> array, sharing common points</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> array, one for each corner</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='SkPoint_Reference#Point'>Point</a> array of texture coordinates, mapping <a href='undocumented#Shader'>Shader</a> to corners;
-may be nullptr</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>
-#  <tr>    <td><a name='SkCanvas_drawPatch_mode'><code><strong>mode</strong></code></a></td>
-    <td><a href='SkBlendMode_Reference#Blend_Mode'>Blend Mode</a> for <a href='#SkCanvas_drawPatch_colors'>colors</a>, and for <a href='undocumented#Shader'>Shader</a> if <a href='#SkCanvas_drawPatch_paint'>paint</a> has one</td>
+</table>
+
+may be nullptr
+
+### Parameters
+
+<table>  <tr>    <td><a name='SkCanvas_drawPatch_mode'><code><strong>mode</strong></code></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#Shader'>Shader</a>, <a href='undocumented#Color_Filter'>Color Filter</a>, <a href='SkBlendMode_Reference#Blend_Mode'>Blend Mode</a>, used to draw</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>
 
@@ -5927,38 +6009,43 @@
                const <a href='SkPaint_Reference#SkPaint'>SkPaint</a>& paint)
 </pre>
 
-Draws <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 color, and optionally a texture <a href='SkPoint_Reference#Point'>Point</a>, with each corner.
+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 <a href='#Clip'>Clip</a> and <a href='#Matrix'>Matrix</a>, <a href='#SkCanvas_drawPatch_2_paint'>paint</a> <a href='undocumented#Shader'>Shader</a>, <a href='undocumented#Color_Filter'>Color Filter</a>,
-<a href='SkColor_Reference#Alpha'>Color Alpha</a>, <a href='undocumented#Image_Filter'>Image Filter</a>, and <a href='SkBlendMode_Reference#Blend_Mode'>Blend Mode</a>. If <a href='undocumented#Shader'>Shader</a> is provided it is treated
-as <a href='undocumented#Coons_Patch'>Coons Patch</a> texture; <a href='SkBlendMode_Reference#Blend_Mode'>Blend Mode</a> mode combines <a href='SkColor_Reference#Color'>Color</a> <a href='#SkCanvas_drawPatch_2_colors'>colors</a> and <a href='undocumented#Shader'>Shader</a> if
+<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>, 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='SkPoint_Reference#Point'>Point</a> array <a href='#SkCanvas_drawPatch_2_cubics'>cubics</a> specifies four <a href='SkPath_Reference#Cubic'>Cubics</a> starting at the top-left corner,
-in clockwise order, sharing every fourth point. The last <a href='SkPath_Reference#Cubic'>Cubic</a> ends at the
-first point.
+<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> array color associates <a href='#SkCanvas_drawPatch_2_colors'>colors</a> with corners in top-left, top-right,
+<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> contains <a href='undocumented#Shader'>Shader</a>, <a href='SkPoint_Reference#Point'>Point</a> array <a href='#SkCanvas_drawPatch_2_texCoords'>texCoords</a> maps <a href='undocumented#Shader'>Shader</a> as texture to
+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#Cubic'>Path Cubic</a> array, sharing common points</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> array, one for each corner</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='SkPoint_Reference#Point'>Point</a> array of texture coordinates, mapping <a href='undocumented#Shader'>Shader</a> to corners;
-may be nullptr</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>
-#  <tr>    <td><a name='SkCanvas_drawPatch_2_paint'><code><strong>paint</strong></code></a></td>
-    <td><a href='undocumented#Shader'>Shader</a>, <a href='undocumented#Color_Filter'>Color Filter</a>, <a href='SkBlendMode_Reference#Blend_Mode'>Blend Mode</a>, used to draw</td>
+</table>
+
+may be nullptr
+
+### 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>, used to draw</td>
   </tr>
 </table>
 
@@ -5984,42 +6071,42 @@
                const <a href='SkPaint_Reference#SkPaint'>SkPaint</a>* paint)
 </pre>
 
-Draws a set of sprites from <a href='#SkCanvas_drawAtlas_atlas'>atlas</a>, using <a href='#Clip'>Clip</a>, <a href='#Matrix'>Matrix</a>, and optional <a href='SkPaint_Reference#Paint'>Paint</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'>Color Alpha</a>, <a href='undocumented#Color_Filter'>Color Filter</a>, <a href='undocumented#Image_Filter'>Image Filter</a>, and <a href='SkBlendMode_Reference#Blend_Mode'>Blend Mode</a>
-to draw, if present. For each entry in the array, <a href='SkRect_Reference#Rect'>Rect</a> <a href='#SkCanvas_drawAtlas_tex'>tex</a> locates sprite in
-<a href='#SkCanvas_drawAtlas_atlas'>atlas</a>, and <a href='undocumented#RSXform'>RSXform</a> <a href='#SkCanvas_drawAtlas_xform'>xform</a> transforms it into destination space.
+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>, text, 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 sprite using <a href='SkBlendMode_Reference#Blend_Mode'>Blend Mode</a> <a href='#SkCanvas_drawAtlas_mode'>mode</a>, treating
-sprite 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 sprites.
-If <a href='#SkCanvas_drawAtlas_cullRect'>cullRect</a> is outside of <a href='#Clip'>Clip</a>, canvas can skip drawing.
+<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#Image'>Image</a> containing sprites</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#RSXform'>RSXform</a> mappings for sprites in <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#Rect'>Rect</a> locations of sprites in <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 sprite, blended with sprite using <a href='SkBlendMode_Reference#Blend_Mode'>Blend Mode</a>; may be nullptr</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 sprites to draw</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#Blend_Mode'>Blend Mode</a> combining <a href='#SkCanvas_drawAtlas_colors'>colors</a> and sprites</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 sprites for efficient clipping; may be nullptr</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#Color_Filter'>Color Filter</a>, <a href='undocumented#Image_Filter'>Image Filter</a>, <a href='SkBlendMode_Reference#Blend_Mode'>Blend Mode</a>, and so on; may be nullptr</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>
 
@@ -6041,41 +6128,41 @@
                const <a href='SkPaint_Reference#SkPaint'>SkPaint</a>* paint)
 </pre>
 
-Draws a set of sprites from <a href='#SkCanvas_drawAtlas_2_atlas'>atlas</a>, using <a href='#Clip'>Clip</a>, <a href='#Matrix'>Matrix</a>, and optional <a href='SkPaint_Reference#Paint'>Paint</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'>Color Alpha</a>, <a href='undocumented#Color_Filter'>Color Filter</a>, <a href='undocumented#Image_Filter'>Image Filter</a>, and <a href='SkBlendMode_Reference#Blend_Mode'>Blend Mode</a>
-to draw, if present. For each entry in the array, <a href='SkRect_Reference#Rect'>Rect</a> <a href='#SkCanvas_drawAtlas_2_tex'>tex</a> locates sprite in
-<a href='#SkCanvas_drawAtlas_2_atlas'>atlas</a>, and <a href='undocumented#RSXform'>RSXform</a> <a href='#SkCanvas_drawAtlas_2_xform'>xform</a> transforms it into destination space.
+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>, text, 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 sprite using <a href='SkBlendMode_Reference#Blend_Mode'>Blend Mode</a>.
-Optional <a href='#SkCanvas_drawAtlas_2_cullRect'>cullRect</a> is a conservative bounds of all transformed sprites.
-If <a href='#SkCanvas_drawAtlas_2_cullRect'>cullRect</a> is outside of <a href='#Clip'>Clip</a>, canvas can skip drawing.
+<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#Image'>Image</a> containing sprites</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#RSXform'>RSXform</a> mappings for sprites in <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#Rect'>Rect</a> locations of sprites in <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 sprite, blended with sprite using <a href='SkBlendMode_Reference#Blend_Mode'>Blend Mode</a>; may be nullptr</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 sprites to draw</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#Blend_Mode'>Blend Mode</a> combining <a href='#SkCanvas_drawAtlas_2_colors'>colors</a> and sprites</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 sprites for efficient clipping; may be nullptr</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#Color_Filter'>Color Filter</a>, <a href='undocumented#Image_Filter'>Image Filter</a>, <a href='SkBlendMode_Reference#Blend_Mode'>Blend Mode</a>, and so on; may be nullptr</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>
 
@@ -6096,34 +6183,34 @@
                const <a href='SkRect_Reference#SkRect'>SkRect</a>* cullRect, const <a href='SkPaint_Reference#SkPaint'>SkPaint</a>* paint)
 </pre>
 
-Draws a set of sprites from <a href='#SkCanvas_drawAtlas_3_atlas'>atlas</a>, using <a href='#Clip'>Clip</a>, <a href='#Matrix'>Matrix</a>, and optional <a href='SkPaint_Reference#Paint'>Paint</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'>Color Alpha</a>, <a href='undocumented#Color_Filter'>Color Filter</a>, <a href='undocumented#Image_Filter'>Image Filter</a>, and <a href='SkBlendMode_Reference#Blend_Mode'>Blend Mode</a>
-to draw, if present. For each entry in the array, <a href='SkRect_Reference#Rect'>Rect</a> <a href='#SkCanvas_drawAtlas_3_tex'>tex</a> locates sprite in
-<a href='#SkCanvas_drawAtlas_3_atlas'>atlas</a>, and <a href='undocumented#RSXform'>RSXform</a> <a href='#SkCanvas_drawAtlas_3_xform'>xform</a> transforms it into destination space.
+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> and text 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 sprites.
-If <a href='#SkCanvas_drawAtlas_3_cullRect'>cullRect</a> is outside of <a href='#Clip'>Clip</a>, canvas can skip drawing.
+<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#Image'>Image</a> containing sprites</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#RSXform'>RSXform</a> mappings for sprites in <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#Rect'>Rect</a> locations of sprites in <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 sprites to draw</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 sprites for efficient clipping; may be nullptr</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#Color_Filter'>Color Filter</a>, <a href='undocumented#Image_Filter'>Image Filter</a>, <a href='SkBlendMode_Reference#Blend_Mode'>Blend Mode</a>, and so on; may be nullptr</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>
 
@@ -6144,34 +6231,34 @@
                const <a href='SkRect_Reference#SkRect'>SkRect</a>* cullRect, const <a href='SkPaint_Reference#SkPaint'>SkPaint</a>* paint)
 </pre>
 
-Draws a set of sprites from <a href='#SkCanvas_drawAtlas_4_atlas'>atlas</a>, using <a href='#Clip'>Clip</a>, <a href='#Matrix'>Matrix</a>, and optional <a href='SkPaint_Reference#Paint'>Paint</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'>Color Alpha</a>, <a href='undocumented#Color_Filter'>Color Filter</a>, <a href='undocumented#Image_Filter'>Image Filter</a>, and <a href='SkBlendMode_Reference#Blend_Mode'>Blend Mode</a>
-to draw, if present. For each entry in the array, <a href='SkRect_Reference#Rect'>Rect</a> <a href='#SkCanvas_drawAtlas_4_tex'>tex</a> locates sprite in
-<a href='#SkCanvas_drawAtlas_4_atlas'>atlas</a>, and <a href='undocumented#RSXform'>RSXform</a> <a href='#SkCanvas_drawAtlas_4_xform'>xform</a> transforms it into destination space.
+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> and text 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 sprites.
-If <a href='#SkCanvas_drawAtlas_4_cullRect'>cullRect</a> is outside of <a href='#Clip'>Clip</a>, canvas can skip drawing.
+<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#Image'>Image</a> containing sprites</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#RSXform'>RSXform</a> mappings for sprites in <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#Rect'>Rect</a> locations of sprites in <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 sprites to draw</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 sprites for efficient clipping; may be nullptr</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#Color_Filter'>Color Filter</a>, <a href='undocumented#Image_Filter'>Image Filter</a>, <a href='SkBlendMode_Reference#Blend_Mode'>Blend Mode</a>, and so on; may be nullptr</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>
 
@@ -6191,13 +6278,13 @@
 void <a href='#SkCanvas_drawDrawable'>drawDrawable</a>(<a href='undocumented#SkDrawable'>SkDrawable</a>* drawable, const <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a>* matrix = nullptr)
 </pre>
 
-Draws <a href='undocumented#Drawable'>Drawable</a> <a href='#SkCanvas_drawDrawable_drawable'>drawable</a> using <a href='#Clip'>Clip</a> and <a href='#Matrix'>Matrix</a>, concatenated with
+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='#Canvas'>Canvas</a> has an asynchronous implementation, as is the case
-when it is recording into <a href='SkPicture_Reference#Picture'>Picture</a>, then <a href='#SkCanvas_drawDrawable_drawable'>drawable</a> will be referenced,
-so that <a href='undocumented#SkDrawable_draw'>SkDrawable::draw</a>() can be called when the operation is finalized. To force
-immediate drawing, call <a href='undocumented#SkDrawable_draw'>SkDrawable::draw</a>() instead.
+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
 
@@ -6225,12 +6312,12 @@
 void <a href='#SkCanvas_drawDrawable'>drawDrawable</a>(<a href='undocumented#SkDrawable'>SkDrawable</a>* drawable, <a href='undocumented#SkScalar'>SkScalar</a> x, <a href='undocumented#SkScalar'>SkScalar</a> y)
 </pre>
 
-Draws <a href='undocumented#Drawable'>Drawable</a> <a href='#SkCanvas_drawDrawable_2_drawable'>drawable</a> using <a href='#Clip'>Clip</a> and <a href='#Matrix'>Matrix</a>, offset by (<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='#Canvas'>Canvas</a> has an asynchronous implementation, as is the case
-when it is recording into <a href='SkPicture_Reference#Picture'>Picture</a>, then <a href='#SkCanvas_drawDrawable_2_drawable'>drawable</a> will be referenced,
-so that <a href='undocumented#SkDrawable_draw'>SkDrawable::draw</a>() can be called when the operation is finalized. To force
-immediate drawing, call <a href='undocumented#SkDrawable_draw'>SkDrawable::draw</a>() instead.
+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
 
@@ -6238,10 +6325,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='#Canvas'>Canvas</a> writable pixels on <a href='#SkCanvas_drawDrawable_2_x'>x</a>-axis</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='#Canvas'>Canvas</a> writable pixels on <a href='#SkCanvas_drawDrawable_2_y'>y</a>-axis</td>
+    <td>offset into <a href='SkCanvas_Reference#SkCanvas'>SkCanvas</a> writable pixels on y-axis</td>
   </tr>
 </table>
 
@@ -6261,22 +6348,22 @@
 void <a href='#SkCanvas_drawAnnotation'>drawAnnotation</a>(const <a href='SkRect_Reference#SkRect'>SkRect</a>& rect, const char key[], <a href='undocumented#SkData'>SkData</a>* value)
 </pre>
 
-Associates <a href='SkRect_Reference#Rect'>Rect</a> on <a href='#Canvas'>Canvas</a> with an annotation; a <a href='#SkCanvas_drawAnnotation_key'>key</a>-<a href='#SkCanvas_drawAnnotation_value'>value</a> pair, where the <a href='#SkCanvas_drawAnnotation_key'>key</a> is
-a null-terminated utf8 string, and optional <a href='#SkCanvas_drawAnnotation_value'>value</a> is stored as <a href='undocumented#Data'>Data</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 canvas implementations, such as recording to <a href='SkPicture_Reference#Picture'>Picture</a>, or drawing to
-<a href='undocumented#PDF'>Document PDF</a>, use annotations.
+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#Rect'>Rect</a> extent of canvas to annotate</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>string used for lookup</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>data holding <a href='#SkCanvas_drawAnnotation_value'>value</a> stored in annotation</td>
+    <td><a href='undocumented#Data'>data</a> holding <a href='#SkCanvas_drawAnnotation_value'>value</a> stored in annotation</td>
   </tr>
 </table>
 
@@ -6296,22 +6383,22 @@
 void <a href='#SkCanvas_drawAnnotation'>drawAnnotation</a>(const <a href='SkRect_Reference#SkRect'>SkRect</a>& rect, const char key[], const <a href='undocumented#sk_sp'>sk sp</a>&lt;<a href='undocumented#SkData'>SkData</a>&gt;& value)
 </pre>
 
-Associates <a href='SkRect_Reference#Rect'>Rect</a> on <a href='#Canvas'>Canvas</a> when an annotation; a <a href='#SkCanvas_drawAnnotation_2_key'>key</a>-<a href='#SkCanvas_drawAnnotation_2_value'>value</a> pair, where the <a href='#SkCanvas_drawAnnotation_2_key'>key</a> is
-a null-terminated utf8 string, and optional <a href='#SkCanvas_drawAnnotation_2_value'>value</a> is stored as <a href='undocumented#Data'>Data</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 canvas implementations, such as recording to <a href='SkPicture_Reference#Picture'>Picture</a>, or drawing to
-<a href='undocumented#PDF'>Document PDF</a>, use annotations.
+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#Rect'>Rect</a> extent of canvas to annotate</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>string used for lookup</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>data holding <a href='#SkCanvas_drawAnnotation_2_value'>value</a> stored in annotation</td>
+    <td><a href='undocumented#Data'>data</a> holding <a href='#SkCanvas_drawAnnotation_2_value'>value</a> stored in annotation</td>
   </tr>
 </table>
 
@@ -6331,15 +6418,15 @@
 virtual bool <a href='#SkCanvas_isClipEmpty'>isClipEmpty</a>() const
 </pre>
 
-Returns true if <a href='#Clip'>Clip</a> is empty; that is, nothing will draw.
+Returns true if clip is empty; that is, nothing will draw.
 
 May do work when called; it should not be called
 more often than needed. However, once called, subsequent calls perform no
-work until <a href='#Clip'>Clip</a> changes.
+work until clip changes.
 
 ### Return Value
 
-true if <a href='#Clip'>Clip</a> is empty
+true if clip is empty
 
 ### Example
 
@@ -6366,12 +6453,12 @@
 virtual bool <a href='#SkCanvas_isClipRect'>isClipRect</a>() const
 </pre>
 
-Returns true if <a href='#Clip'>Clip</a> is <a href='SkRect_Reference#Rect'>Rect</a> and not empty.
-Returns false if the clip is empty, or if it is not <a href='SkRect_Reference#Rect'>Rect</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 <a href='#Clip'>Clip</a> is <a href='SkRect_Reference#Rect'>Rect</a> and not empty
+true if clip is <a href='SkRect_Reference#SkRect'>SkRect</a> and not empty
 
 ### Example
 
diff --git a/site/user/api/SkIPoint_Reference.md b/site/user/api/SkIPoint_Reference.md
index 80bfc97..bbc98c9 100644
--- a/site/user/api/SkIPoint_Reference.md
+++ b/site/user/api/SkIPoint_Reference.md
@@ -56,21 +56,21 @@
 static constexpr <a href='#SkIPoint'>SkIPoint</a> <a href='#SkIPoint_Make'>Make</a>(int32_t x, int32_t y)
 </pre>
 
-Sets <a href='#SkIPoint_fX'>fX</a> to x, <a href='#SkIPoint_fY'>fY</a> to y.
+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
 
 <table>  <tr>    <td><a name='SkIPoint_Make_x'><code><strong>x</strong></code></a></td>
-    <td>integer x-axis value of constructed <a href='#IPoint'>IPoint</a></td>
+    <td>integer x-axis value of constructed <a href='SkIPoint_Reference#SkIPoint'>SkIPoint</a></td>
   </tr>
   <tr>    <td><a name='SkIPoint_Make_y'><code><strong>y</strong></code></a></td>
-    <td>integer y-axis value of constructed <a href='#IPoint'>IPoint</a></td>
+    <td>integer y-axis value of constructed <a href='SkIPoint_Reference#SkIPoint'>SkIPoint</a></td>
   </tr>
 </table>
 
 ### Return Value
 
-<a href='#IPoint'>IPoint</a> (x, y)
+<a href='SkIPoint_Reference#SkIPoint'>SkIPoint</a> (<a href='#SkIPoint_Make_x'>x</a>, <a href='#SkIPoint_Make_y'>y</a>)
 
 ### Example
 
@@ -98,7 +98,7 @@
 int32_t <a href='#SkIPoint_x'>x</a>() const
 </pre>
 
-Returns x-axis value of <a href='#IPoint'>IPoint</a>.
+Returns x-axis value of <a href='SkIPoint_Reference#SkIPoint'>SkIPoint</a>.
 
 ### Return Value
 
@@ -128,7 +128,7 @@
 int32_t <a href='#SkIPoint_y'>y</a>() const
 </pre>
 
-Returns y-axis value of <a href='#IPoint'>IPoint</a>.
+Returns y-axis value of <a href='SkIPoint_Reference#SkIPoint'>SkIPoint</a>.
 
 ### Return Value
 
@@ -190,7 +190,7 @@
 void <a href='#SkIPoint_set'>set</a>(int32_t x, int32_t y)
 </pre>
 
-Sets <a href='#SkIPoint_fX'>fX</a> to x and <a href='#SkIPoint_fY'>fY</a> to y.
+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
 
@@ -226,11 +226,11 @@
 <a href='#SkIPoint'>SkIPoint</a> operator-() const
 </pre>
 
-Returns <a href='#IPoint'>IPoint</a> changing the signs of <a href='#SkIPoint_fX'>fX</a> and <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='#IPoint'>IPoint</a> as (-<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
 
@@ -309,7 +309,7 @@
 bool <a href='#SkIPoint_equals'>equals</a>(int32_t x, int32_t y) const
 </pre>
 
-Returns true if <a href='#IPoint'>IPoint</a> is equivalent to <a href='#IPoint'>IPoint</a> constructed from (x, y).
+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='#IPoint'>IPoint</a> equals (x, y)
+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
 
@@ -352,21 +352,21 @@
 bool <a href='#SkIPoint_equal_operator'>operator==(const SkIPoint& a, const SkIPoint& b)</a>
 </pre>
 
-Returns true if <a href='#SkIPoint_equal_operator_a'>a</a> is equivalent to <a href='#SkIPoint_equal_operator_b'>b</a>.
+Returns true if <a href='#SkIPoint_operator==(const SkIPoint& a, const SkIPoint& b)_a'>a</a> is equivalent to <a href='#SkIPoint_operator==(const SkIPoint& a, const SkIPoint& b)_b'>b</a>.
 
 ### Parameters
 
 <table>  <tr>    <td><a name='SkIPoint_equal_operator_a'><code><strong>a</strong></code></a></td>
-    <td><a href='#IPoint'>IPoint</a> to compare</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='#IPoint'>IPoint</a> to compare</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> 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>
+true if <a href='#SkIPoint_operator==(const SkIPoint& a, const SkIPoint& b)_a'>a</a>.<a href='#SkIPoint_fX'>fX</a> == <a href='#SkIPoint_operator==(const SkIPoint& a, const SkIPoint& b)_b'>b</a>.<a href='#SkIPoint_fX'>fX</a> and <a href='#SkIPoint_operator==(const SkIPoint& a, const SkIPoint& b)_a'>a</a>.<a href='#SkIPoint_fY'>fY</a> == <a href='#SkIPoint_operator==(const SkIPoint& a, const SkIPoint& b)_b'>b</a>.<a href='#SkIPoint_fY'>fY</a>
 
 ### Example
 
@@ -395,21 +395,21 @@
 bool <a href='#SkIPoint_notequal_operator'>operator!=(const SkIPoint& a, const SkIPoint& b)</a>
 </pre>
 
-Returns true if <a href='#SkIPoint_notequal_operator_a'>a</a> is not equivalent to <a href='#SkIPoint_notequal_operator_b'>b</a>.
+Returns true if <a href='#SkIPoint_operator!=(const SkIPoint& a, const SkIPoint& b)_a'>a</a> is not equivalent to <a href='#SkIPoint_operator!=(const SkIPoint& a, const SkIPoint& b)_b'>b</a>.
 
 ### Parameters
 
 <table>  <tr>    <td><a name='SkIPoint_notequal_operator_a'><code><strong>a</strong></code></a></td>
-    <td><a href='#IPoint'>IPoint</a> to compare</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='#IPoint'>IPoint</a> to compare</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> 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>
+true if <a href='#SkIPoint_operator!=(const SkIPoint& a, const SkIPoint& b)_a'>a</a>.<a href='#SkIPoint_fX'>fX</a> != <a href='#SkIPoint_operator!=(const SkIPoint& a, const SkIPoint& b)_b'>b</a>.<a href='#SkIPoint_fX'>fX</a> or <a href='#SkIPoint_operator!=(const SkIPoint& a, const SkIPoint& b)_a'>a</a>.<a href='#SkIPoint_fY'>fY</a> != <a href='#SkIPoint_operator!=(const SkIPoint& a, const SkIPoint& b)_b'>b</a>.<a href='#SkIPoint_fY'>fY</a>
 
 ### Example
 
diff --git a/site/user/api/SkIRect_Reference.md b/site/user/api/SkIRect_Reference.md
index bd43948..aad5f42 100644
--- a/site/user/api/SkIRect_Reference.md
+++ b/site/user/api/SkIRect_Reference.md
@@ -120,7 +120,7 @@
 static constexpr <a href='#SkIRect'>SkIRect</a> <a href='#SkIRect_MakeEmpty'>MakeEmpty</a>()
 </pre>
 
-Returns constructed <a href='#IRect'>IRect</a> set to (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.
@@ -156,16 +156,16 @@
 static constexpr <a href='#SkIRect'>SkIRect</a> <a href='#SkIRect_MakeWH'>MakeWH</a>(int32_t w, int32_t h)
 </pre>
 
-Returns constructed <a href='#IRect'>IRect</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>
+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
 
 <table>  <tr>    <td><a name='SkIRect_MakeWH_w'><code><strong>w</strong></code></a></td>
-    <td>width of constructed <a href='#IRect'>IRect</a></td>
+    <td>width of constructed <a href='SkIRect_Reference#SkIRect'>SkIRect</a></td>
   </tr>
   <tr>    <td><a name='SkIRect_MakeWH_h'><code><strong>h</strong></code></a></td>
-    <td>height of constructed <a href='#IRect'>IRect</a></td>
+    <td>height of constructed <a href='SkIRect_Reference#SkIRect'>SkIRect</a></td>
   </tr>
 </table>
 
@@ -197,19 +197,19 @@
 static constexpr <a href='#SkIRect'>SkIRect</a> <a href='#SkIRect_MakeSize'>MakeSize</a>(const <a href='undocumented#SkISize'>SkISize</a>& size)
 </pre>
 
-Returns constructed <a href='#IRect'>IRect</a> set to (0, 0, size.<a href='#SkIRect_width'>width</a>(), size.<a href='#SkIRect_height'>height</a>()).
-Does not validate input; size.<a href='#SkIRect_width'>width</a>() or size.<a href='#SkIRect_height'>height</a>() may be negative.
+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='#IRect'>IRect</a> width and height</td>
+    <td>values for <a href='SkIRect_Reference#SkIRect'>SkIRect</a> width and height</td>
   </tr>
 </table>
 
 ### Return Value
 
-bounds (0, 0, size.<a href='#SkIRect_width'>width</a>(), size.<a href='#SkIRect_height'>height</a>())
+bounds (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>)
 
 ### Example
 
@@ -236,7 +236,7 @@
 static constexpr <a href='#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='#IRect'>IRect</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='#IRect'>IRect</a> may
+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
@@ -284,7 +284,7 @@
 static constexpr <a href='#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='#IRect'>IRect</a> set to: <code>\(x, y, x&nbsp;\+&nbsp;<a href='#SkIRect_MakeXYWH_w'>w</a>, y&nbsp;\+&nbsp;<a href='#SkIRect_MakeXYWH_h'>h</a>\)</code>.
+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 x and stored in <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 y and stored in <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 (x, y) with width <a href='#SkIRect_MakeXYWH_w'>w</a> and height <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
 
@@ -334,8 +334,8 @@
 int32_t <a href='#SkIRect_left'>left</a>() const
 </pre>
 
-Returns left edge of <a href='#IRect'>IRect</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.
+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
 
@@ -366,8 +366,8 @@
 int32_t <a href='#SkIRect_top'>top</a>() const
 </pre>
 
-Returns top edge of <a href='#IRect'>IRect</a>, if sorted. Call <a href='#SkIRect_isEmpty'>isEmpty</a> to see if <a href='#IRect'>IRect</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.
+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
 
@@ -398,8 +398,8 @@
 int32_t <a href='#SkIRect_right'>right</a>() const
 </pre>
 
-Returns right edge of <a href='#IRect'>IRect</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.
+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
 
@@ -430,8 +430,8 @@
 int32_t <a href='#SkIRect_bottom'>bottom</a>() const
 </pre>
 
-Returns bottom edge of <a href='#IRect'>IRect</a>, if sorted. Call <a href='#SkIRect_isEmpty'>isEmpty</a> to see if <a href='#IRect'>IRect</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.
+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
 
@@ -462,8 +462,8 @@
 int32_t <a href='#SkIRect_x'>x</a>() const
 </pre>
 
-Returns left edge of <a href='#IRect'>IRect</a>, if sorted. Call <a href='#SkIRect_isEmpty'>isEmpty</a> to see if <a href='#IRect'>IRect</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.
+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
 
@@ -494,8 +494,8 @@
 int32_t <a href='#SkIRect_y'>y</a>() const
 </pre>
 
-Returns top edge of <a href='#IRect'>IRect</a>, if sorted. Call <a href='#SkIRect_isEmpty'>isEmpty</a> to see if <a href='#IRect'>IRect</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.
+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
 
@@ -526,7 +526,7 @@
 int32_t <a href='#SkIRect_width'>width</a>() const
 </pre>
 
-Returns span on the x-axis. This does not check if <a href='#IRect'>IRect</a> is sorted, or if
+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
@@ -558,8 +558,8 @@
 int64_t <a href='#SkIRect_width64'>width64</a>() const
 </pre>
 
-Returns span on the x-axis. This does not check if <a href='#IRect'>IRect</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
+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
@@ -590,7 +590,7 @@
 int32_t <a href='#SkIRect_height'>height</a>() const
 </pre>
 
-Returns span on the y-axis. This does not check if <a href='#IRect'>IRect</a> is sorted, or if
+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
@@ -622,8 +622,8 @@
 int64_t <a href='#SkIRect_height64'>height64</a>() const
 </pre>
 
-Returns span on the y-axis. This does not check if <a href='#IRect'>IRect</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
+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
@@ -654,12 +654,12 @@
 <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='#IRect'>IRect</a> is sorted,
+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#ISize'>ISize</a> (width, height)
+<a href='undocumented#SkISize'>SkISize</a> (width, height)
 
 ### Example
 
@@ -687,11 +687,11 @@
 bool <a href='#SkIRect_isEmpty'>isEmpty</a>() const
 </pre>
 
-Returns true if <a href='#SkIRect_width'>width</a>() or <a href='#SkIRect_height'>height</a>() are zero or negative or they exceed int32_t.
+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>() or <a href='#SkIRect_height'>height</a>() are not positive and valid
+true if <a href='#SkIRect_width'>width()</a> or <a href='#SkIRect_height'>height()</a> are zero or negative
 
 ### Example
 
@@ -721,12 +721,12 @@
 </pre>
 
 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
+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>() or <a href='#SkIRect_height64'>height64</a>() are not positive
+true if <a href='#SkIRect_width64'>width64</a>() or <a href='#SkIRect_height64'>height64</a>() are zero or negative
 
 ### Example
 
@@ -757,16 +757,16 @@
 bool <a href='#SkIRect_equal_operator'>operator==(const SkIRect& a, const SkIRect& b)</a>
 </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>, and <a href='#SkIRect_fBottom'>fBottom</a>; are
-identical to corresponding members in <a href='#SkIRect_equal_operator_b'>b</a>.
+Returns true if all members in <a href='#SkIRect_operator==(const SkIRect& a, const SkIRect& b)_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_operator==(const SkIRect& a, const SkIRect& b)_b'>b</a>.
 
 ### Parameters
 
 <table>  <tr>    <td><a name='SkIRect_equal_operator_a'><code><strong>a</strong></code></a></td>
-    <td><a href='#IRect'>IRect</a> to compare</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='#IRect'>IRect</a> to compare</td>
+    <td><a href='SkIRect_Reference#SkIRect'>SkIRect</a> to compare</td>
   </tr>
 </table>
 
@@ -798,16 +798,16 @@
 bool <a href='#SkIRect_notequal_operator'>operator!=(const SkIRect& a, const SkIRect& b)</a>
 </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>, and <a href='#SkIRect_fBottom'>fBottom</a>; is not
-identical to the corresponding member in <a href='#SkIRect_notequal_operator_b'>b</a>.
+Returns true if any member in <a href='#SkIRect_operator!=(const SkIRect& a, const SkIRect& b)_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_operator!=(const SkIRect& a, const SkIRect& b)_b'>b</a>.
 
 ### Parameters
 
 <table>  <tr>    <td><a name='SkIRect_notequal_operator_a'><code><strong>a</strong></code></a></td>
-    <td><a href='#IRect'>IRect</a> to compare</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='#IRect'>IRect</a> to compare</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='#IRect'>IRect</a> to (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 <a href='#SkIRect_set'>set</a>(int32_t left, int32_t top, int32_t right, int32_t bottom)
 </pre>
 
-Sets <a href='#IRect'>IRect</a> to (left, top, right, bottom).
-left and right are not sorted; left is not necessarily less than right.
-top and bottom are not sorted; top is not necessarily less than bottom.
+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
 
@@ -917,9 +917,9 @@
 void <a href='#SkIRect_setLTRB'>setLTRB</a>(int32_t left, int32_t top, int32_t right, int32_t bottom)
 </pre>
 
-Sets <a href='#IRect'>IRect</a> to (left, top, right, bottom).
-left and right are not sorted; left is not necessarily less than right.
-top and bottom are not sorted; top is not necessarily less than bottom.
+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
 
@@ -1008,12 +1008,12 @@
 <a href='#SkIRect'>SkIRect</a> <a href='#SkIRect_makeOffset'>makeOffset</a>(int32_t dx, int32_t dy) const
 </pre>
 
-Returns <a href='#IRect'>IRect</a> offset by (<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> is negative, <a href='#IRect'>IRect</a> returned is moved to the left.
-If <a href='#SkIRect_makeOffset_dx'>dx</a> is positive, <a href='#IRect'>IRect</a> returned is moved to the right.
-If <a href='#SkIRect_makeOffset_dy'>dy</a> is negative, <a href='#IRect'>IRect</a> returned is moved upward.
-If <a href='#SkIRect_makeOffset_dy'>dy</a> is positive, <a href='#IRect'>IRect</a> returned is moved downward.
+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
 
@@ -1027,7 +1027,7 @@
 
 ### Return Value
 
-<a href='#IRect'>IRect</a> offset by <a href='#SkIRect_makeOffset_dx'>dx</a> and <a href='#SkIRect_makeOffset_dy'>dy</a>, with original width and height
+<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
 
@@ -1054,12 +1054,12 @@
 <a href='#SkIRect'>SkIRect</a> <a href='#SkIRect_makeInset'>makeInset</a>(int32_t dx, int32_t dy) const
 </pre>
 
-Returns <a href='#IRect'>IRect</a>, inset by (<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> is negative, <a href='#IRect'>IRect</a> returned is wider.
-If <a href='#SkIRect_makeInset_dx'>dx</a> is positive, <a href='#IRect'>IRect</a> returned is narrower.
-If <a href='#SkIRect_makeInset_dy'>dy</a> is negative, <a href='#IRect'>IRect</a> returned is taller.
-If <a href='#SkIRect_makeInset_dy'>dy</a> is positive, <a href='#IRect'>IRect</a> returned is shorter.
+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
 
@@ -1073,7 +1073,7 @@
 
 ### Return Value
 
-<a href='#IRect'>IRect</a> inset symmetrically left and right, top and bottom
+<a href='SkIRect_Reference#SkIRect'>SkIRect</a> inset symmetrically left and right, top and bottom
 
 ### Example
 
@@ -1100,12 +1100,12 @@
 <a href='#SkIRect'>SkIRect</a> <a href='#SkIRect_makeOutset'>makeOutset</a>(int32_t dx, int32_t dy) const
 </pre>
 
-Returns <a href='#IRect'>IRect</a>, outset by (<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> is negative, <a href='#IRect'>IRect</a> returned is narrower.
-If <a href='#SkIRect_makeOutset_dx'>dx</a> is positive, <a href='#IRect'>IRect</a> returned is wider.
-If <a href='#SkIRect_makeOutset_dy'>dy</a> is negative, <a href='#IRect'>IRect</a> returned is shorter.
-If <a href='#SkIRect_makeOutset_dy'>dy</a> is positive, <a href='#IRect'>IRect</a> returned is taller.
+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
 
@@ -1119,7 +1119,7 @@
 
 ### Return Value
 
-<a href='#IRect'>IRect</a> outset symmetrically left and right, top and bottom
+<a href='SkIRect_Reference#SkIRect'>SkIRect</a> outset symmetrically left and right, top and bottom
 
 ### Example
 
@@ -1146,12 +1146,12 @@
 void <a href='#SkIRect_offset'>offset</a>(int32_t dx, int32_t dy)
 </pre>
 
-Offsets <a href='#IRect'>IRect</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>.
+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> is negative, moves <a href='#IRect'>IRect</a> returned to the left.
-If <a href='#SkIRect_offset_dx'>dx</a> is positive, moves <a href='#IRect'>IRect</a> returned to the right.
-If <a href='#SkIRect_offset_dy'>dy</a> is negative, moves <a href='#IRect'>IRect</a> returned upward.
-If <a href='#SkIRect_offset_dy'>dy</a> is positive, moves <a href='#IRect'>IRect</a> returned downward.
+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
 
@@ -1187,18 +1187,18 @@
 void <a href='#SkIRect_offset'>offset</a>(const <a href='SkIPoint_Reference#SkIPoint'>SkIPoint</a>& delta)
 </pre>
 
-Offsets <a href='#IRect'>IRect</a> by adding <a href='#SkIRect_offset_2_delta'>delta</a>.fX to <a href='#SkIRect_fLeft'>fLeft</a>, <a href='#SkIRect_fRight'>fRight</a>; and by adding <a href='#SkIRect_offset_2_delta'>delta</a>.fY to
+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>.fX is negative, moves <a href='#IRect'>IRect</a> returned to the left.
-If <a href='#SkIRect_offset_2_delta'>delta</a>.fX is positive, moves <a href='#IRect'>IRect</a> returned to the right.
-If <a href='#SkIRect_offset_2_delta'>delta</a>.fY is negative, moves <a href='#IRect'>IRect</a> returned upward.
-If <a href='#SkIRect_offset_2_delta'>delta</a>.fY is positive, moves <a href='#IRect'>IRect</a> returned downward.
+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
 
 <table>  <tr>    <td><a name='SkIRect_offset_2_delta'><code><strong>delta</strong></code></a></td>
-    <td>offset added to <a href='#IRect'>IRect</a></td>
+    <td>offset added to <a href='SkIRect_Reference#SkIRect'>SkIRect</a></td>
   </tr>
 </table>
 
@@ -1226,16 +1226,16 @@
 void <a href='#SkIRect_offsetTo'>offsetTo</a>(int32_t newX, int32_t newY)
 </pre>
 
-Offsets <a href='#IRect'>IRect</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
+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>, preserving <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>, preserving <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,12 +1263,12 @@
 void <a href='#SkIRect_inset'>inset</a>(int32_t dx, int32_t dy)
 </pre>
 
-Insets <a href='#IRect'>IRect</a> by (<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> is positive, makes <a href='#IRect'>IRect</a> narrower.
-If <a href='#SkIRect_inset_dx'>dx</a> is negative, makes <a href='#IRect'>IRect</a> wider.
-If <a href='#SkIRect_inset_dy'>dy</a> is positive, makes <a href='#IRect'>IRect</a> shorter.
-If <a href='#SkIRect_inset_dy'>dy</a> is negative, makes <a href='#IRect'>IRect</a> taller.
+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
 
@@ -1304,12 +1304,12 @@
 void <a href='#SkIRect_outset'>outset</a>(int32_t dx, int32_t dy)
 </pre>
 
-Outsets <a href='#IRect'>IRect</a> by (<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> is positive, makes <a href='#IRect'>IRect</a> wider.
-If <a href='#SkIRect_outset_dx'>dx</a> is negative, makes <a href='#IRect'>IRect</a> narrower.
-If <a href='#SkIRect_outset_dy'>dy</a> is positive, makes <a href='#IRect'>IRect</a> taller.
-If <a href='#SkIRect_outset_dy'>dy</a> is negative, makes <a href='#IRect'>IRect</a> shorter.
+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
 
@@ -1356,15 +1356,15 @@
 void <a href='#SkIRect_adjust'>adjust</a>(int32_t dL, int32_t dT, int32_t dR, int32_t dB)
 </pre>
 
-Adjusts <a href='#IRect'>IRect</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>.
+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> is positive, narrows <a href='#IRect'>IRect</a> on the left. If negative, widens it on the left.
-If <a href='#SkIRect_adjust_dT'>dT</a> is positive, shrinks <a href='#IRect'>IRect</a> on the top. If negative, lengthens it on the top.
-If <a href='#SkIRect_adjust_dR'>dR</a> is positive, narrows <a href='#IRect'>IRect</a> on the right. If negative, widens it on the right.
-If <a href='#SkIRect_adjust_dB'>dB</a> is positive, shrinks <a href='#IRect'>IRect</a> on the bottom. If negative, lengthens it on the bottom.
+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='#IRect'>IRect</a> is not checked for validity. Thus, if the resulting <a href='#IRect'>IRect</a> left is
-greater than right, the <a href='#IRect'>IRect</a> will be considered empty. Call <a href='#SkIRect_sort'>sort</a>() after this call
+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
@@ -1453,31 +1453,31 @@
 bool <a href='#SkIRect_contains'>contains</a>(int32_t left, int32_t top, int32_t right, int32_t bottom) const
 </pre>
 
-Constructs <a href='#IRect'>IRect</a> to intersect from (left, top, right, bottom). Does not sort
+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='#IRect'>IRect</a> contains construction.
-Returns false if <a href='#IRect'>IRect</a> is empty or construction is empty.
+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
 
 <table>  <tr>    <td><a name='SkIRect_contains_2_left'><code><strong>left</strong></code></a></td>
-    <td>x-axis minimum of constructed <a href='#IRect'>IRect</a></td>
+    <td>x-axis minimum of constructed <a href='SkIRect_Reference#SkIRect'>SkIRect</a></td>
   </tr>
   <tr>    <td><a name='SkIRect_contains_2_top'><code><strong>top</strong></code></a></td>
-    <td>y-axis minimum of constructed <a href='#IRect'>IRect</a></td>
+    <td>y-axis minimum of constructed <a href='SkIRect_Reference#SkIRect'>SkIRect</a></td>
   </tr>
   <tr>    <td><a name='SkIRect_contains_2_right'><code><strong>right</strong></code></a></td>
-    <td>x-axis maximum of constructed <a href='#IRect'>IRect</a></td>
+    <td>x-axis maximum of constructed <a href='SkIRect_Reference#SkIRect'>SkIRect</a></td>
   </tr>
   <tr>    <td><a name='SkIRect_contains_2_bottom'><code><strong>bottom</strong></code></a></td>
-    <td>y-axis maximum of constructed <a href='#IRect'>IRect</a></td>
+    <td>y-axis maximum of constructed <a href='SkIRect_Reference#SkIRect'>SkIRect</a></td>
   </tr>
 </table>
 
 ### Return Value
 
-true if all sides of <a href='#IRect'>IRect</a> are outside construction
+true if all sides of <a href='SkIRect_Reference#SkIRect'>SkIRect</a> are outside construction
 
 ### Example
 
@@ -1505,21 +1505,21 @@
 bool <a href='#SkIRect_contains'>contains</a>(const <a href='#SkIRect'>SkIRect</a>& r) const
 </pre>
 
-Returns true if <a href='#IRect'>IRect</a> contains <a href='#SkIRect_contains_3_r'>r</a>.
-Returns false if <a href='#IRect'>IRect</a> is empty or <a href='#SkIRect_contains_3_r'>r</a> is empty.
+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='#IRect'>IRect</a> contains <a href='#SkIRect_contains_3_r'>r</a> when <a href='#IRect'>IRect</a> area completely includes <a href='#SkIRect_contains_3_r'>r</a> area.
+<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='#IRect'>IRect</a> contained</td>
+    <td><a href='SkIRect_Reference#SkIRect'>SkIRect</a> contained</td>
   </tr>
 </table>
 
 ### Return Value
 
-true if all sides of <a href='#IRect'>IRect</a> are outside <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
 
@@ -1547,21 +1547,21 @@
 bool <a href='#SkIRect_contains'>contains</a>(const <a href='SkRect_Reference#SkRect'>SkRect</a>& r) const
 </pre>
 
-Returns true if <a href='#IRect'>IRect</a> contains <a href='#SkIRect_contains_4_r'>r</a>.
-Returns false if <a href='#IRect'>IRect</a> is empty or <a href='#SkIRect_contains_4_r'>r</a> is empty.
+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='#IRect'>IRect</a> contains <a href='#SkIRect_contains_4_r'>r</a> when <a href='#IRect'>IRect</a> area completely includes <a href='#SkIRect_contains_4_r'>r</a> area.
+<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#Rect'>Rect</a> contained</td>
+    <td><a href='SkRect_Reference#SkRect'>SkRect</a> contained</td>
   </tr>
 </table>
 
 ### Return Value
 
-true if all sides of <a href='#IRect'>IRect</a> are outside <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
 
@@ -1589,33 +1589,33 @@
 bool <a href='#SkIRect_containsNoEmptyCheck'>containsNoEmptyCheck</a>(int32_t left, int32_t top, int32_t right, int32_t bottom) const
 </pre>
 
-Constructs <a href='#IRect'>IRect</a> from (left, top, right, bottom). Does not sort
+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='#IRect'>IRect</a> contains construction.
-Asserts if <a href='#IRect'>IRect</a> is empty or construction is empty, and if SK_DEBUG is defined.
+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='#IRect'>IRect</a> is empty or construction is empty.
+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_left'><code><strong>left</strong></code></a></td>
-    <td>x-axis minimum of constructed <a href='#IRect'>IRect</a></td>
+    <td>x-axis minimum of constructed <a href='SkIRect_Reference#SkIRect'>SkIRect</a></td>
   </tr>
   <tr>    <td><a name='SkIRect_containsNoEmptyCheck_top'><code><strong>top</strong></code></a></td>
-    <td>y-axis minimum of constructed <a href='#IRect'>IRect</a></td>
+    <td>y-axis minimum of constructed <a href='SkIRect_Reference#SkIRect'>SkIRect</a></td>
   </tr>
   <tr>    <td><a name='SkIRect_containsNoEmptyCheck_right'><code><strong>right</strong></code></a></td>
-    <td>x-axis maximum of constructed <a href='#IRect'>IRect</a></td>
+    <td>x-axis maximum of constructed <a href='SkIRect_Reference#SkIRect'>SkIRect</a></td>
   </tr>
   <tr>    <td><a name='SkIRect_containsNoEmptyCheck_bottom'><code><strong>bottom</strong></code></a></td>
-    <td>y-axis maximum of constructed <a href='#IRect'>IRect</a></td>
+    <td>y-axis maximum of constructed <a href='SkIRect_Reference#SkIRect'>SkIRect</a></td>
   </tr>
 </table>
 
 ### Return Value
 
-true if all sides of <a href='#IRect'>IRect</a> are outside construction
+true if all sides of <a href='SkIRect_Reference#SkIRect'>SkIRect</a> are outside construction
 
 ### Example
 
@@ -1643,21 +1643,21 @@
 bool <a href='#SkIRect_containsNoEmptyCheck'>containsNoEmptyCheck</a>(const <a href='#SkIRect'>SkIRect</a>& r) const
 </pre>
 
-Returns true if <a href='#IRect'>IRect</a> contains construction.
-Asserts if <a href='#IRect'>IRect</a> is empty or construction is empty, and if SK_DEBUG is defined.
+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='#IRect'>IRect</a> is empty or construction is empty.
+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='#IRect'>IRect</a> contained</td>
+    <td><a href='SkIRect_Reference#SkIRect'>SkIRect</a> contained</td>
   </tr>
 </table>
 
 ### Return Value
 
-true if all sides of <a href='#IRect'>IRect</a> are outside <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
 
@@ -1685,10 +1685,10 @@
 bool <a href='#SkIRect_intersect'>intersect</a>(const <a href='#SkIRect'>SkIRect</a>& r)
 </pre>
 
-Returns true if <a href='#IRect'>IRect</a> intersects <a href='#SkIRect_intersect_r'>r</a>, and sets <a href='#IRect'>IRect</a> to intersection.
-Returns false if <a href='#IRect'>IRect</a> does not intersect <a href='#SkIRect_intersect_r'>r</a>, and leaves <a href='#IRect'>IRect</a> unchanged.
+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> or <a href='#IRect'>IRect</a> is empty, leaving <a href='#IRect'>IRect</a> unchanged.
+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,7 +1699,7 @@
 
 ### Return Value
 
-true if <a href='#SkIRect_intersect_r'>r</a> and <a href='#IRect'>IRect</a> have area in common
+true if <a href='#SkIRect_intersect()_r'>r</a> and <a href='SkIRect_Reference#SkIRect'>SkIRect</a> have area in common
 
 ### Example
 
@@ -1728,18 +1728,18 @@
 bool <a href='#SkIRect_intersect'>intersect</a>(const <a href='#SkIRect'>SkIRect</a>& a, const <a href='#SkIRect'>SkIRect</a>& b)
 </pre>
 
-Returns true if <a href='#SkIRect_intersect_2_a'>a</a> intersects <a href='#SkIRect_intersect_2_b'>b</a>, and sets <a href='#IRect'>IRect</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='#IRect'>IRect</a> unchanged.
+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> or <a href='#SkIRect_intersect_2_b'>b</a> is empty, leaving <a href='#IRect'>IRect</a> unchanged.
+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='#IRect'>IRect</a> to intersect</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='#IRect'>IRect</a> to intersect</td>
+    <td><a href='SkIRect_Reference#SkIRect'>SkIRect</a> to intersect</td>
   </tr>
 </table>
 
@@ -1771,18 +1771,18 @@
 bool <a href='#SkIRect_intersectNoEmptyCheck'>intersectNoEmptyCheck</a>(const <a href='#SkIRect'>SkIRect</a>& a, const <a href='#SkIRect'>SkIRect</a>& b)
 </pre>
 
-Returns true if <a href='#SkIRect_intersectNoEmptyCheck_a'>a</a> intersects <a href='#SkIRect_intersectNoEmptyCheck_b'>b</a>, and sets <a href='#IRect'>IRect</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='#IRect'>IRect</a> unchanged.
+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> 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='#IRect'>IRect</a> to intersect</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='#IRect'>IRect</a> to intersect</td>
+    <td><a href='SkIRect_Reference#SkIRect'>SkIRect</a> to intersect</td>
   </tr>
 </table>
 
@@ -1814,33 +1814,33 @@
 bool <a href='#SkIRect_intersect'>intersect</a>(int32_t left, int32_t top, int32_t right, int32_t bottom)
 </pre>
 
-Constructs <a href='#IRect'>IRect</a> to intersect from (left, top, right, bottom). Does not sort
+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='#IRect'>IRect</a> intersects construction, and sets <a href='#IRect'>IRect</a> to intersection.
-Returns false if <a href='#IRect'>IRect</a> does not intersect construction, and leaves <a href='#IRect'>IRect</a> unchanged.
+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='#IRect'>IRect</a> is empty, leaving <a href='#IRect'>IRect</a> unchanged.
+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
 
 <table>  <tr>    <td><a name='SkIRect_intersect_3_left'><code><strong>left</strong></code></a></td>
-    <td>x-axis minimum of constructed <a href='#IRect'>IRect</a></td>
+    <td>x-axis minimum of constructed <a href='SkIRect_Reference#SkIRect'>SkIRect</a></td>
   </tr>
   <tr>    <td><a name='SkIRect_intersect_3_top'><code><strong>top</strong></code></a></td>
-    <td>y-axis minimum of constructed <a href='#IRect'>IRect</a></td>
+    <td>y-axis minimum of constructed <a href='SkIRect_Reference#SkIRect'>SkIRect</a></td>
   </tr>
   <tr>    <td><a name='SkIRect_intersect_3_right'><code><strong>right</strong></code></a></td>
-    <td>x-axis maximum of constructed <a href='#IRect'>IRect</a></td>
+    <td>x-axis maximum of constructed <a href='SkIRect_Reference#SkIRect'>SkIRect</a></td>
   </tr>
   <tr>    <td><a name='SkIRect_intersect_3_bottom'><code><strong>bottom</strong></code></a></td>
-    <td>y-axis maximum of constructed <a href='#IRect'>IRect</a></td>
+    <td>y-axis maximum of constructed <a href='SkIRect_Reference#SkIRect'>SkIRect</a></td>
   </tr>
 </table>
 
 ### Return Value
 
-true if construction and <a href='#IRect'>IRect</a> have area in common
+true if construction and <a href='SkIRect_Reference#SkIRect'>SkIRect</a> have area in common
 
 ### Example
 
@@ -1875,10 +1875,10 @@
 ### Parameters
 
 <table>  <tr>    <td><a name='SkIRect_Intersects_a'><code><strong>a</strong></code></a></td>
-    <td><a href='#IRect'>IRect</a> to intersect</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='#IRect'>IRect</a> to intersect</td>
+    <td><a href='SkIRect_Reference#SkIRect'>SkIRect</a> to intersect</td>
   </tr>
 </table>
 
@@ -1916,10 +1916,10 @@
 ### Parameters
 
 <table>  <tr>    <td><a name='SkIRect_IntersectsNoEmptyCheck_a'><code><strong>a</strong></code></a></td>
-    <td><a href='#IRect'>IRect</a> to intersect</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='#IRect'>IRect</a> to intersect</td>
+    <td><a href='SkIRect_Reference#SkIRect'>SkIRect</a> to intersect</td>
   </tr>
 </table>
 
@@ -1953,27 +1953,27 @@
 void <a href='#SkIRect_join'>join</a>(int32_t left, int32_t top, int32_t right, int32_t bottom)
 </pre>
 
-Constructs <a href='#IRect'>IRect</a> to intersect from (left, top, right, bottom). Does not sort
+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='#IRect'>IRect</a> to the union of itself and the construction.
+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='#IRect'>IRect</a> is empty, sets
-<a href='#IRect'>IRect</a> to construction.
+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
 
 <table>  <tr>    <td><a name='SkIRect_join_left'><code><strong>left</strong></code></a></td>
-    <td>x-axis minimum of constructed <a href='#IRect'>IRect</a></td>
+    <td>x-axis minimum of constructed <a href='SkIRect_Reference#SkIRect'>SkIRect</a></td>
   </tr>
   <tr>    <td><a name='SkIRect_join_top'><code><strong>top</strong></code></a></td>
-    <td>y-axis minimum of constructed <a href='#IRect'>IRect</a></td>
+    <td>y-axis minimum of constructed <a href='SkIRect_Reference#SkIRect'>SkIRect</a></td>
   </tr>
   <tr>    <td><a name='SkIRect_join_right'><code><strong>right</strong></code></a></td>
-    <td>x-axis maximum of constructed <a href='#IRect'>IRect</a></td>
+    <td>x-axis maximum of constructed <a href='SkIRect_Reference#SkIRect'>SkIRect</a></td>
   </tr>
   <tr>    <td><a name='SkIRect_join_bottom'><code><strong>bottom</strong></code></a></td>
-    <td>y-axis maximum of constructed <a href='#IRect'>IRect</a></td>
+    <td>y-axis maximum of constructed <a href='SkIRect_Reference#SkIRect'>SkIRect</a></td>
   </tr>
 </table>
 
@@ -2001,14 +2001,14 @@
 void <a href='#SkIRect_join'>join</a>(const <a href='#SkIRect'>SkIRect</a>& r)
 </pre>
 
-Sets <a href='#IRect'>IRect</a> to the union of itself and <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> is empty. Otherwise, if <a href='#IRect'>IRect</a> is empty, sets <a href='#IRect'>IRect</a> to <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
 
 <table>  <tr>    <td><a name='SkIRect_join_2_r'><code><strong>r</strong></code></a></td>
-    <td>expansion <a href='#IRect'>IRect</a></td>
+    <td>expansion <a href='SkIRect_Reference#SkIRect'>SkIRect</a></td>
   </tr>
 </table>
 
@@ -2040,7 +2040,7 @@
 
 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.
+and <a href='#SkIRect_width'>width()</a> and <a href='#SkIRect_height'>height()</a> will be zero or positive.
 
 ### Example
 
@@ -2067,13 +2067,13 @@
 <a href='#SkIRect'>SkIRect</a> <a href='#SkIRect_makeSorted'>makeSorted</a>() const
 </pre>
 
-Returns <a href='#IRect'>IRect</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
+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.
+and <a href='#SkIRect_width'>width()</a> and <a href='#SkIRect_height'>height()</a> will be zero or positive.
 
 ### Return Value
 
-sorted <a href='#IRect'>IRect</a>
+sorted <a href='SkIRect_Reference#SkIRect'>SkIRect</a>
 
 ### Example
 
@@ -2100,11 +2100,11 @@
 static const <a href='#SkIRect'>SkIRect</a>& <a href='#SkIRect_EmptyIRect'>EmptyIRect</a>()
 </pre>
 
-Returns a reference to immutable empty <a href='#IRect'>IRect</a>, set to (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='#IRect'>IRect</a> set to all zeroes
+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 0f50f88..05172a2 100644
--- a/site/user/api/SkImageInfo_Reference.md
+++ b/site/user/api/SkImageInfo_Reference.md
@@ -216,23 +216,25 @@
 static inline bool <a href='#SkAlphaTypeIsOpaque'>SkAlphaTypeIsOpaque</a>(<a href='#SkAlphaType'>SkAlphaType</a> at)
 </pre>
 
-Returns true if <a href='#Alpha_Type'>Alpha Type</a> equals <a href='#kOpaque_SkAlphaType'>kOpaque_SkAlphaType</a>. <a href='#kOpaque_SkAlphaType'>kOpaque_SkAlphaType</a> is a
-hint that the <a href='#Color_Type'>Color Type</a> is opaque, or that all <a href='SkColor_Reference#Alpha'>Color Alpha</a> values are set to
-their 1.0 equivalent. If <a href='#Alpha_Type'>Alpha Type</a> is <a href='#kOpaque_SkAlphaType'>kOpaque_SkAlphaType</a>, and <a href='#Color_Type'>Color Type</a> is not
-opaque, then the result of drawing any pixel with a <a href='SkColor_Reference#Alpha'>Color Alpha</a> value less than
+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
 
 <table>  <tr>    <td><a name='SkAlphaTypeIsOpaque_at'><code><strong>at</strong></code></a></td>
-    <td>one of: <a href='#kUnknown_SkAlphaType'>kUnknown_SkAlphaType</a>, <a href='#kOpaque_SkAlphaType'>kOpaque_SkAlphaType</a>, <a href='#kPremul_SkAlphaType'>kPremul_SkAlphaType</a>,
-<a href='#kUnpremul_SkAlphaType'>kUnpremul_SkAlphaType</a> </td>
+    <td>one of:</td>
   </tr>
 </table>
 
+<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
 
-true if <a href='#SkAlphaTypeIsOpaque_at'>at</a> equals <a href='#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>
 
@@ -261,7 +263,7 @@
 </pre>
 
 Describes how pixel bits encode color. A pixel may be an alpha mask, a
-<a href='undocumented#Grayscale'>Grayscale</a>, RGB, or ARGB.
+grayscale, RGB, or ARGB.
 
 <a href='#kN32_SkColorType'>kN32_SkColorType</a> selects the native 32-bit ARGB format. On <a href='undocumented#Little_Endian'>Little Endian</a>
 processors, pixels containing 8-bit ARGB components pack into 32-bit
@@ -628,7 +630,7 @@
 
 ---
 
-<a href='#kGray_8_SkColorType'>kGray_8_SkColorType</a> encodes <a href='undocumented#Grayscale'>Grayscale</a> level in eight bits that is equivalent
+<a href='#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='#kGray_8_SkColorType'>kGray_8_SkColorType</a> are fully
 opaque as if its <a href='SkColor_Reference#Alpha'>Color Alpha</a> was set to one, and should always be paired with
@@ -720,22 +722,24 @@
 int <a href='#SkColorTypeBytesPerPixel'>SkColorTypeBytesPerPixel</a>(<a href='#SkColorType'>SkColorType</a> ct)
 </pre>
 
-Returns the number of bytes required to store a pixel, including unused padding.
-Returns zero if <a href='#SkColorTypeBytesPerPixel_ct'>ct</a> is <a href='#kUnknown_SkColorType'>kUnknown_SkColorType</a> or invalid.
+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
 
 <table>  <tr>    <td><a name='SkColorTypeBytesPerPixel_ct'><code><strong>ct</strong></code></a></td>
-    <td>one of: <a href='#kUnknown_SkColorType'>kUnknown_SkColorType</a>, <a href='#kAlpha_8_SkColorType'>kAlpha_8_SkColorType</a>, <a href='#kRGB_565_SkColorType'>kRGB_565_SkColorType</a>,
-<a href='#kARGB_4444_SkColorType'>kARGB_4444_SkColorType</a>, <a href='#kRGBA_8888_SkColorType'>kRGBA_8888_SkColorType</a>, <a href='#kRGB_888x_SkColorType'>kRGB_888x_SkColorType</a>,
-<a href='#kBGRA_8888_SkColorType'>kBGRA_8888_SkColorType</a>, <a href='#kRGBA_1010102_SkColorType'>kRGBA_1010102_SkColorType</a>, <a href='#kRGB_101010x_SkColorType'>kRGB_101010x_SkColorType</a>,
-<a href='#kGray_8_SkColorType'>kGray_8_SkColorType</a>, <a href='#kRGBA_F16_SkColorType'>kRGBA_F16_SkColorType</a> </td>
+    <td>one of:</td>
   </tr>
 </table>
 
+<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>
+
 ### Return Value
 
-bytes per pixel
+bytes per <a href='undocumented#Pixel'>pixel</a>
 
 ### Example
 
@@ -756,22 +760,24 @@
 bool <a href='#SkColorTypeIsAlwaysOpaque'>SkColorTypeIsAlwaysOpaque</a>(<a href='#SkColorType'>SkColorType</a> ct)
 </pre>
 
-Returns true if <a href='#Color_Type'>Color Type</a> always decodes <a href='SkColor_Reference#Alpha'>Color Alpha</a> to 1.0, making the pixel
-fully opaque. If true, <a href='#Color_Type'>Color Type</a> does not reserve bits to encode <a href='SkColor_Reference#Alpha'>Color 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
 
 <table>  <tr>    <td><a name='SkColorTypeIsAlwaysOpaque_ct'><code><strong>ct</strong></code></a></td>
-    <td>one of: <a href='#kUnknown_SkColorType'>kUnknown_SkColorType</a>, <a href='#kAlpha_8_SkColorType'>kAlpha_8_SkColorType</a>, <a href='#kRGB_565_SkColorType'>kRGB_565_SkColorType</a>,
-<a href='#kARGB_4444_SkColorType'>kARGB_4444_SkColorType</a>, <a href='#kRGBA_8888_SkColorType'>kRGBA_8888_SkColorType</a>, <a href='#kRGB_888x_SkColorType'>kRGB_888x_SkColorType</a>,
-<a href='#kBGRA_8888_SkColorType'>kBGRA_8888_SkColorType</a>, <a href='#kRGBA_1010102_SkColorType'>kRGBA_1010102_SkColorType</a>, <a href='#kRGB_101010x_SkColorType'>kRGB_101010x_SkColorType</a>,
-<a href='#kGray_8_SkColorType'>kGray_8_SkColorType</a>, <a href='#kRGBA_F16_SkColorType'>kRGBA_F16_SkColorType</a> </td>
+    <td>one of:</td>
   </tr>
 </table>
 
+<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>
+
 ### Return Value
 
-true if <a href='SkColor_Reference#Alpha'>Color Alpha</a> is always set to 1.0
+true if <a href='SkColor_Reference#Alpha'>alpha</a> is always set to 1.0
 
 ### Example
 
@@ -793,43 +799,55 @@
                                   <a href='#SkAlphaType'>SkAlphaType</a>* canonical = nullptr)
 </pre>
 
-Returns true if <a href='#SkColorTypeValidateAlphaType_canonical'>canonical</a> can be set to a valid <a href='#Alpha_Type'>Alpha Type</a> for <a href='#SkImageInfo_colorType'>colorType</a>. If
-there is more than one valid <a href='#SkColorTypeValidateAlphaType_canonical'>canonical</a> <a href='#Alpha_Type'>Alpha Type</a>, set to <a href='#SkImageInfo_alphaType'>alphaType</a>, if valid.
-If true is returned and <a href='#SkColorTypeValidateAlphaType_canonical'>canonical</a> is not nullptr, store valid <a href='#Alpha_Type'>Alpha Type</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='#SkImageInfo_alphaType'>alphaType</a> is <a href='#kUnknown_SkAlphaType'>kUnknown_SkAlphaType</a>, color type is not
-<a href='#kUnknown_SkColorType'>kUnknown_SkColorType</a>, and <a href='#Color_Type'>Color Type</a> is not always opaque. If false is returned,
+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='#kUnknown_SkColorType'>kUnknown_SkColorType</a>: set <a href='#SkColorTypeValidateAlphaType_canonical'>canonical</a> to <a href='#kUnknown_SkAlphaType'>kUnknown_SkAlphaType</a> and return true.
-For <a href='#kAlpha_8_SkColorType'>kAlpha_8_SkColorType</a>: set <a href='#SkColorTypeValidateAlphaType_canonical'>canonical</a> to <a href='#kPremul_SkAlphaType'>kPremul_SkAlphaType</a> or
-<a href='#kOpaque_SkAlphaType'>kOpaque_SkAlphaType</a> and return true if <a href='#SkImageInfo_alphaType'>alphaType</a> is not <a href='#kUnknown_SkAlphaType'>kUnknown_SkAlphaType</a>.
-For <a href='#kRGB_565_SkColorType'>kRGB_565_SkColorType</a>, <a href='#kRGB_888x_SkColorType'>kRGB_888x_SkColorType</a>, <a href='#kRGB_101010x_SkColorType'>kRGB_101010x_SkColorType</a>, and
-<a href='#kGray_8_SkColorType'>kGray_8_SkColorType</a>: set <a href='#SkColorTypeValidateAlphaType_canonical'>canonical</a> to <a href='#kOpaque_SkAlphaType'>kOpaque_SkAlphaType</a> and return true.
-For <a href='#kARGB_4444_SkColorType'>kARGB_4444_SkColorType</a>, <a href='#kRGBA_8888_SkColorType'>kRGBA_8888_SkColorType</a>, <a href='#kBGRA_8888_SkColorType'>kBGRA_8888_SkColorType</a>,
-<a href='#kRGBA_1010102_SkColorType'>kRGBA_1010102_SkColorType</a>, and <a href='#kRGBA_F16_SkColorType'>kRGBA_F16_SkColorType</a>: set <a href='#SkColorTypeValidateAlphaType_canonical'>canonical</a> to <a href='#SkImageInfo_alphaType'>alphaType</a>
-and return true if <a href='#SkImageInfo_alphaType'>alphaType</a> is not <a href='#kUnknown_SkAlphaType'>kUnknown_SkAlphaType</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>, 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
 
 <table>  <tr>    <td><a name='SkColorTypeValidateAlphaType_colorType'><code><strong>colorType</strong></code></a></td>
-    <td>one of: <a href='#kUnknown_SkColorType'>kUnknown_SkColorType</a>, <a href='#kAlpha_8_SkColorType'>kAlpha_8_SkColorType</a>, <a href='#kRGB_565_SkColorType'>kRGB_565_SkColorType</a>,
-<a href='#kARGB_4444_SkColorType'>kARGB_4444_SkColorType</a>, <a href='#kRGBA_8888_SkColorType'>kRGBA_8888_SkColorType</a>, <a href='#kRGB_888x_SkColorType'>kRGB_888x_SkColorType</a>,
-<a href='#kBGRA_8888_SkColorType'>kBGRA_8888_SkColorType</a>, <a href='#kRGBA_1010102_SkColorType'>kRGBA_1010102_SkColorType</a>, <a href='#kRGB_101010x_SkColorType'>kRGB_101010x_SkColorType</a>,
-<a href='#kGray_8_SkColorType'>kGray_8_SkColorType</a>, <a href='#kRGBA_F16_SkColorType'>kRGBA_F16_SkColorType</a> </td>
+    <td>one of:</td>
   </tr>
-  <tr>    <td><a name='SkColorTypeValidateAlphaType_alphaType'><code><strong>alphaType</strong></code></a></td>
-    <td>one of: <a href='#kUnknown_SkAlphaType'>kUnknown_SkAlphaType</a>, <a href='#kOpaque_SkAlphaType'>kOpaque_SkAlphaType</a>, <a href='#kPremul_SkAlphaType'>kPremul_SkAlphaType</a>,
-<a href='#kUnpremul_SkAlphaType'>kUnpremul_SkAlphaType</a> </td>
+</table>
+
+<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>
+
+### Parameters
+
+<table>  <tr>    <td><a name='SkColorTypeValidateAlphaType_alphaType'><code><strong>alphaType</strong></code></a></td>
+    <td>one of:</td>
   </tr>
-  <tr>    <td><a name='SkColorTypeValidateAlphaType_canonical'><code><strong>canonical</strong></code></a></td>
-    <td>storage for <a href='#Alpha_Type'>Alpha Type</a></td>
+</table>
+
+<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>
+
+### Parameters
+
+<table>  <tr>    <td><a name='SkColorTypeValidateAlphaType_canonical'><code><strong>canonical</strong></code></a></td>
+    <td>storage for <a href='SkImageInfo_Reference#SkAlphaType'>SkAlphaType</a></td>
   </tr>
 </table>
 
 ### Return Value
 
-true if valid <a href='#Alpha_Type'>Alpha Type</a> can be associated with <a href='#SkImageInfo_colorType'>colorType</a>
+true if valid <a href='SkImageInfo_Reference#SkAlphaType'>SkAlphaType</a> can be associated with <a href='#SkColorTypeValidateAlphaType_colorType'>colorType</a>
 
 ### Example
 
@@ -976,12 +994,12 @@
 <a href='#SkImageInfo'>SkImageInfo</a>()
 </pre>
 
-Creates an empty <a href='#Image_Info'>Image Info</a> with <a href='#kUnknown_SkColorType'>kUnknown_SkColorType</a>, <a href='#kUnknown_SkAlphaType'>kUnknown_SkAlphaType</a>,
-a width and height of zero, and no <a href='undocumented#Color_Space'>Color Space</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
 
-empty <a href='#Image_Info'>Image Info</a>
+empty <a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a>
 
 ### Example
 
@@ -1002,11 +1020,11 @@
                         <a href='undocumented#sk_sp'>sk sp</a>&lt;<a href='undocumented#SkColorSpace'>SkColorSpace</a>&gt; cs = nullptr)
 </pre>
 
-Creates <a href='#Image_Info'>Image Info</a> from integral dimensions width and height, <a href='#Color_Type'>Color Type</a> <a href='#SkImageInfo_Make_ct'>ct</a>,
-<a href='#Alpha_Type'>Alpha Type</a> <a href='#SkImageInfo_Make_at'>at</a>, and optionally <a href='undocumented#Color_Space'>Color Space</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#Color_Space'>Color Space</a> <a href='#SkImageInfo_Make_cs'>cs</a> is nullptr and <a href='#Image_Info'>Image Info</a> is part of drawing source: <a href='undocumented#Color_Space'>Color Space</a>
-defaults to sRGB, mapping into <a href='SkSurface_Reference#Surface'>Surface</a> <a href='undocumented#Color_Space'>Color Space</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
 combination is supported.
@@ -1014,29 +1032,41 @@
 ### Parameters
 
 <table>  <tr>    <td><a name='SkImageInfo_Make_width'><code><strong>width</strong></code></a></td>
-    <td>pixel column count; must be zero or greater</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>pixel row count; must be zero or greater</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: <a href='#kUnknown_SkColorType'>kUnknown_SkColorType</a>, <a href='#kAlpha_8_SkColorType'>kAlpha_8_SkColorType</a>, <a href='#kRGB_565_SkColorType'>kRGB_565_SkColorType</a>,
-<a href='#kARGB_4444_SkColorType'>kARGB_4444_SkColorType</a>, <a href='#kRGBA_8888_SkColorType'>kRGBA_8888_SkColorType</a>, <a href='#kRGB_888x_SkColorType'>kRGB_888x_SkColorType</a>,
-<a href='#kBGRA_8888_SkColorType'>kBGRA_8888_SkColorType</a>, <a href='#kRGBA_1010102_SkColorType'>kRGBA_1010102_SkColorType</a>, <a href='#kRGB_101010x_SkColorType'>kRGB_101010x_SkColorType</a>,
-<a href='#kGray_8_SkColorType'>kGray_8_SkColorType</a>, <a href='#kRGBA_F16_SkColorType'>kRGBA_F16_SkColorType</a> </td>
+    <td>one of:</td>
   </tr>
-  <tr>    <td><a name='SkImageInfo_Make_at'><code><strong>at</strong></code></a></td>
-    <td>one of: <a href='#kUnknown_SkAlphaType'>kUnknown_SkAlphaType</a>, <a href='#kOpaque_SkAlphaType'>kOpaque_SkAlphaType</a>, <a href='#kPremul_SkAlphaType'>kPremul_SkAlphaType</a>,
-<a href='#kUnpremul_SkAlphaType'>kUnpremul_SkAlphaType</a> </td>
+</table>
+
+<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>
+
+### Parameters
+
+<table>  <tr>    <td><a name='SkImageInfo_Make_at'><code><strong>at</strong></code></a></td>
+    <td>one of:</td>
   </tr>
-  <tr>    <td><a name='SkImageInfo_Make_cs'><code><strong>cs</strong></code></a></td>
+</table>
+
+<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>
+
+### Parameters
+
+<table>  <tr>    <td><a name='SkImageInfo_Make_cs'><code><strong>cs</strong></code></a></td>
     <td>range of colors; may be nullptr</td>
   </tr>
 </table>
 
 ### Return Value
 
-created <a href='#Image_Info'>Image Info</a>
+created <a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a>
 
 ### Example
 
@@ -1054,12 +1084,12 @@
 static <a href='#SkImageInfo'>SkImageInfo</a> <a href='#SkImageInfo_MakeN32'>MakeN32</a>(int width, int height, <a href='#SkAlphaType'>SkAlphaType</a> at, <a href='undocumented#sk_sp'>sk sp</a>&lt;<a href='undocumented#SkColorSpace'>SkColorSpace</a>&gt; cs = nullptr)
 </pre>
 
-Creates <a href='#Image_Info'>Image Info</a> from integral dimensions width and height, <a href='#kN32_SkColorType'>kN32_SkColorType</a>,
-<a href='#Alpha_Type'>Alpha Type</a> <a href='#SkImageInfo_MakeN32_at'>at</a>, and optionally <a href='undocumented#Color_Space'>Color Space</a> <a href='#SkImageInfo_MakeN32_cs'>cs</a>. <a href='#kN32_SkColorType'>kN32_SkColorType</a> will equal either
-<a href='#kBGRA_8888_SkColorType'>kBGRA_8888_SkColorType</a> or <a href='#kRGBA_8888_SkColorType'>kRGBA_8888_SkColorType</a>, whichever is optimal.
+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#Color_Space'>Color Space</a> <a href='#SkImageInfo_MakeN32_cs'>cs</a> is nullptr and <a href='#Image_Info'>Image Info</a> is part of drawing source: <a href='undocumented#Color_Space'>Color Space</a>
-defaults to sRGB, mapping into <a href='SkSurface_Reference#Surface'>Surface</a> <a href='undocumented#Color_Space'>Color Space</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
 combination is supported.
@@ -1067,23 +1097,29 @@
 ### Parameters
 
 <table>  <tr>    <td><a name='SkImageInfo_MakeN32_width'><code><strong>width</strong></code></a></td>
-    <td>pixel column count; must be zero or greater</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>pixel row count; must be zero or greater</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: <a href='#kUnknown_SkAlphaType'>kUnknown_SkAlphaType</a>, <a href='#kOpaque_SkAlphaType'>kOpaque_SkAlphaType</a>, <a href='#kPremul_SkAlphaType'>kPremul_SkAlphaType</a>,
-<a href='#kUnpremul_SkAlphaType'>kUnpremul_SkAlphaType</a> </td>
+    <td>one of:</td>
   </tr>
-  <tr>    <td><a name='SkImageInfo_MakeN32_cs'><code><strong>cs</strong></code></a></td>
+</table>
+
+<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>
+
+### Parameters
+
+<table>  <tr>    <td><a name='SkImageInfo_MakeN32_cs'><code><strong>cs</strong></code></a></td>
     <td>range of colors; may be nullptr</td>
   </tr>
 </table>
 
 ### Return Value
 
-created <a href='#Image_Info'>Image Info</a>
+created <a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a>
 
 ### Example
 
@@ -1101,8 +1137,8 @@
 static <a href='#SkImageInfo'>SkImageInfo</a> <a href='#SkImageInfo_MakeS32'>MakeS32</a>(int width, int height, <a href='#SkAlphaType'>SkAlphaType</a> at)
 </pre>
 
-Creates <a href='#Image_Info'>Image Info</a> from integral dimensions width and height, <a href='#kN32_SkColorType'>kN32_SkColorType</a>,
-<a href='#Alpha_Type'>Alpha Type</a> <a href='#SkImageInfo_MakeS32_at'>at</a>, with sRGB <a href='undocumented#Color_Space'>Color Space</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.
@@ -1110,20 +1146,22 @@
 ### Parameters
 
 <table>  <tr>    <td><a name='SkImageInfo_MakeS32_width'><code><strong>width</strong></code></a></td>
-    <td>pixel column count; must be zero or greater</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>pixel row count; must be zero or greater</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: <a href='#kUnknown_SkAlphaType'>kUnknown_SkAlphaType</a>, <a href='#kOpaque_SkAlphaType'>kOpaque_SkAlphaType</a>, <a href='#kPremul_SkAlphaType'>kPremul_SkAlphaType</a>,
-<a href='#kUnpremul_SkAlphaType'>kUnpremul_SkAlphaType</a> </td>
+    <td>one of:</td>
   </tr>
 </table>
 
+<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
 
-created <a href='#Image_Info'>Image Info</a>
+created <a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a>
 
 ### Example
 
@@ -1146,11 +1184,11 @@
 static <a href='#SkImageInfo'>SkImageInfo</a> <a href='#SkImageInfo_MakeN32Premul'>MakeN32Premul</a>(int width, int height, <a href='undocumented#sk_sp'>sk sp</a>&lt;<a href='undocumented#SkColorSpace'>SkColorSpace</a>&gt; cs = nullptr)
 </pre>
 
-Creates <a href='#Image_Info'>Image Info</a> from integral dimensions width and height, <a href='#kN32_SkColorType'>kN32_SkColorType</a>,
-<a href='#kPremul_SkAlphaType'>kPremul_SkAlphaType</a>, with optional <a href='undocumented#Color_Space'>Color Space</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#Color_Space'>Color Space</a> <a href='#SkImageInfo_MakeN32Premul_cs'>cs</a> is nullptr and <a href='#Image_Info'>Image Info</a> is part of drawing source: <a href='undocumented#Color_Space'>Color Space</a>
-defaults to sRGB, mapping into <a href='SkSurface_Reference#Surface'>Surface</a> <a href='undocumented#Color_Space'>Color Space</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
 combination is supported.
@@ -1158,10 +1196,10 @@
 ### Parameters
 
 <table>  <tr>    <td><a name='SkImageInfo_MakeN32Premul_width'><code><strong>width</strong></code></a></td>
-    <td>pixel column count; must be zero or greater</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>pixel row count; must be zero or greater</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>
@@ -1170,7 +1208,7 @@
 
 ### Return Value
 
-created <a href='#Image_Info'>Image Info</a>
+created <a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a>
 
 ### Example
 
@@ -1188,11 +1226,11 @@
 static <a href='#SkImageInfo'>SkImageInfo</a> <a href='#SkImageInfo_MakeN32Premul'>MakeN32Premul</a>(const <a href='undocumented#SkISize'>SkISize</a>& size)
 </pre>
 
-Creates <a href='#Image_Info'>Image Info</a> from integral dimensions width and height, <a href='#kN32_SkColorType'>kN32_SkColorType</a>,
-<a href='#kPremul_SkAlphaType'>kPremul_SkAlphaType</a>, with <a href='undocumented#Color_Space'>Color Space</a> set to nullptr.
+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='#Image_Info'>Image Info</a> is part of drawing source: <a href='undocumented#Color_Space'>Color Space</a> defaults to sRGB, mapping
-into <a href='SkSurface_Reference#Surface'>Surface</a> <a href='undocumented#Color_Space'>Color Space</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
 combination is supported.
@@ -1206,7 +1244,7 @@
 
 ### Return Value
 
-created <a href='#Image_Info'>Image Info</a>
+created <a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a>
 
 ### Example
 
@@ -1224,22 +1262,22 @@
 static <a href='#SkImageInfo'>SkImageInfo</a> <a href='#SkImageInfo_MakeA8'>MakeA8</a>(int width, int height)
 </pre>
 
-Creates <a href='#Image_Info'>Image Info</a> from integral dimensions width and height, <a href='#kAlpha_8_SkColorType'>kAlpha_8_SkColorType</a>,
-<a href='#kPremul_SkAlphaType'>kPremul_SkAlphaType</a>, with <a href='undocumented#Color_Space'>Color Space</a> set to nullptr.
+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>pixel column count; must be zero or greater</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>pixel row count; must be zero or greater</td>
+    <td><a href='undocumented#Pixel'>pixel</a> row count; must be zero or greater</td>
   </tr>
 </table>
 
 ### Return Value
 
-created <a href='#Image_Info'>Image Info</a>
+created <a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a>
 
 ### Example
 
@@ -1257,25 +1295,25 @@
 static <a href='#SkImageInfo'>SkImageInfo</a> <a href='#SkImageInfo_MakeUnknown'>MakeUnknown</a>(int width, int height)
 </pre>
 
-Creates <a href='#Image_Info'>Image Info</a> from integral dimensions width and height, <a href='#kUnknown_SkColorType'>kUnknown_SkColorType</a>,
-<a href='#kUnknown_SkAlphaType'>kUnknown_SkAlphaType</a>, with <a href='undocumented#Color_Space'>Color Space</a> set to nullptr.
+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='#Image_Info'>Image Info</a> as part of source does not draw, and as part of destination
+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>pixel column count; must be zero or greater</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>pixel row count; must be zero or greater</td>
+    <td><a href='undocumented#Pixel'>pixel</a> row count; must be zero or greater</td>
   </tr>
 </table>
 
 ### Return Value
 
-created <a href='#Image_Info'>Image Info</a>
+created <a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a>
 
 ### Example
 
@@ -1293,15 +1331,15 @@
 static <a href='#SkImageInfo'>SkImageInfo</a> <a href='#SkImageInfo_MakeUnknown'>MakeUnknown</a>()
 </pre>
 
-Creates <a href='#Image_Info'>Image Info</a> from integral dimensions width and height set to zero,
-<a href='#kUnknown_SkColorType'>kUnknown_SkColorType</a>, <a href='#kUnknown_SkAlphaType'>kUnknown_SkAlphaType</a>, with <a href='undocumented#Color_Space'>Color Space</a> set to nullptr.
+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='#Image_Info'>Image Info</a> as part of source does not draw, and as part of destination
+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
 
-created <a href='#Image_Info'>Image Info</a>
+created <a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a>
 
 ### Example
 
@@ -1321,11 +1359,11 @@
 int <a href='#SkImageInfo_width'>width</a>() const
 </pre>
 
-Returns pixel count in each row.
+Returns <a href='undocumented#Pixel'>pixel</a> count in each row.
 
 ### Return Value
 
-pixel width
+<a href='undocumented#Pixel'>pixel</a> width
 
 ### Example
 
@@ -1343,11 +1381,11 @@
 int <a href='#SkImageInfo_height'>height</a>() const
 </pre>
 
-Returns pixel row count.
+Returns <a href='undocumented#Pixel'>pixel</a> row count.
 
 ### Return Value
 
-pixel height
+<a href='undocumented#Pixel'>pixel</a> height
 
 ### Example
 
@@ -1429,12 +1467,12 @@
 <a href='undocumented#SkColorSpace'>SkColorSpace</a>* <a href='#SkImageInfo_colorSpace'>colorSpace</a>() const
 </pre>
 
-Returns <a href='undocumented#Color_Space'>Color Space</a>, the range of colors. The reference count of
-<a href='undocumented#Color_Space'>Color Space</a> is unchanged. The returned <a href='undocumented#Color_Space'>Color Space</a> is immutable.
+Returns <a href='undocumented#SkColorSpace'>SkColorSpace</a>, the range of colors. The  <a href='undocumented#Reference_Count'>reference count</a> of
+<a href='undocumented#SkColorSpace'>SkColorSpace</a> is unchanged. The returned <a href='undocumented#SkColorSpace'>SkColorSpace</a> is immutable.
 
 ### Return Value
 
-<a href='undocumented#Color_Space'>Color Space</a>, or nullptr
+<a href='undocumented#SkColorSpace'>SkColorSpace</a>, or nullptr
 
 ### Example
 
@@ -1462,15 +1500,15 @@
 <a href='undocumented#sk_sp'>sk sp</a>&lt;<a href='undocumented#SkColorSpace'>SkColorSpace</a>&gt; <a href='#SkImageInfo_refColorSpace'>refColorSpace</a>() const
 </pre>
 
-Returns smart pointer to <a href='undocumented#Color_Space'>Color Space</a>, the range of colors. The smart pointer
-tracks the number of objects sharing this <a href='undocumented#Color_Space'>Color Space</a> reference so the memory
+Returns  <a href='undocumented#Smart_Pointer'>smart pointer</a> to <a href='undocumented#SkColorSpace'>SkColorSpace</a>, the range of colors. The  <a href='undocumented#Smart_Pointer'>smart pointer</a>
+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#Color_Space'>Color Space</a> is immutable.
+The returned <a href='undocumented#SkColorSpace'>SkColorSpace</a> is immutable.
 
 ### Return Value
 
-<a href='undocumented#Color_Space'>Color Space</a> wrapped in a smart pointer
+<a href='undocumented#SkColorSpace'>SkColorSpace</a> wrapped in a  <a href='undocumented#Smart_Pointer'>smart pointer</a>
 
 ### Example
 
@@ -1488,7 +1526,7 @@
 bool <a href='#SkImageInfo_isEmpty'>isEmpty</a>() const
 </pre>
 
-Returns if <a href='#Image_Info'>Image Info</a> describes an empty area of pixels by checking if either
+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
@@ -1522,16 +1560,16 @@
 bool <a href='#SkImageInfo_isOpaque'>isOpaque</a>() const
 </pre>
 
-Returns true if <a href='#Alpha_Type'>Alpha Type</a> is set to hint that all pixels are opaque; their
-<a href='SkColor_Reference#Alpha'>Color Alpha</a> value is implicitly or explicitly 1.0. If true, and all pixels are
+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='#Color_Type'>Color Type</a> allows <a href='SkColor_Reference#Alpha'>Alpha</a>, or if any pixel value has
+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='#Alpha_Type'>Alpha Type</a> is <a href='#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
 
@@ -1560,11 +1598,11 @@
 <a href='undocumented#SkISize'>SkISize</a> <a href='#SkImageInfo_dimensions'>dimensions</a>() const
 </pre>
 
-Returns <a href='undocumented#ISize'>ISize</a> { <a href='#SkImageInfo_width'>width</a>(), <a href='#SkImageInfo_height'>height</a>() }.
+Returns <a href='undocumented#SkISize'>SkISize</a> { <a href='#SkImageInfo_width'>width()</a>, <a href='#SkImageInfo_height'>height()</a> }.
 
 ### Return Value
 
-integral size of <a href='#SkImageInfo_width'>width</a>() and <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
 
@@ -1590,11 +1628,11 @@
 <a href='SkIRect_Reference#SkIRect'>SkIRect</a> <a href='#SkImageInfo_bounds'>bounds</a>() const
 </pre>
 
-Returns <a href='SkIRect_Reference#IRect'>IRect</a> { 0, 0, <a href='#SkImageInfo_width'>width</a>(), <a href='#SkImageInfo_height'>height</a>() }.
+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>() and <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
 
@@ -1636,22 +1674,22 @@
 <a href='#SkImageInfo'>SkImageInfo</a> <a href='#SkImageInfo_makeWH'>makeWH</a>(int newWidth, int newHeight) const
 </pre>
 
-Creates <a href='#Image_Info'>Image Info</a> with the same <a href='#Color_Type'>Color Type</a>, <a href='undocumented#Color_Space'>Color Space</a>, and <a href='#Alpha_Type'>Alpha Type</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>pixel column count; must be zero or greater</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>pixel row count; must be zero or greater</td>
+    <td><a href='undocumented#Pixel'>pixel</a> row count; must be zero or greater</td>
   </tr>
 </table>
 
 ### Return Value
 
-created <a href='#Image_Info'>Image Info</a>
+created <a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a>
 
 ### Example
 
@@ -1669,23 +1707,25 @@
 <a href='#SkImageInfo'>SkImageInfo</a> <a href='#SkImageInfo_makeAlphaType'>makeAlphaType</a>(<a href='#SkAlphaType'>SkAlphaType</a> newAlphaType) const
 </pre>
 
-Creates <a href='#Image_Info'>Image Info</a> with same <a href='#Color_Type'>Color Type</a>, <a href='undocumented#Color_Space'>Color Space</a>, width, and height,
-with <a href='#Alpha_Type'>Alpha Type</a> set to <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='#Image_Info'>Image Info</a> contains <a href='#SkImageInfo_makeAlphaType_newAlphaType'>newAlphaType</a> even if it is incompatible with
-<a href='#Color_Type'>Color Type</a>, in which case <a href='#Alpha_Type'>Alpha Type</a> in <a href='#Image_Info'>Image Info</a> is ignored.
+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
 
 <table>  <tr>    <td><a name='SkImageInfo_makeAlphaType_newAlphaType'><code><strong>newAlphaType</strong></code></a></td>
-    <td>one of: <a href='#kUnknown_SkAlphaType'>kUnknown_SkAlphaType</a>, <a href='#kOpaque_SkAlphaType'>kOpaque_SkAlphaType</a>, <a href='#kPremul_SkAlphaType'>kPremul_SkAlphaType</a>,
-<a href='#kUnpremul_SkAlphaType'>kUnpremul_SkAlphaType</a> </td>
+    <td>one of:</td>
   </tr>
 </table>
 
+<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
 
-created <a href='#Image_Info'>Image Info</a>
+created <a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a>
 
 ### Example
 
@@ -1703,22 +1743,24 @@
 <a href='#SkImageInfo'>SkImageInfo</a> <a href='#SkImageInfo_makeColorType'>makeColorType</a>(<a href='#SkColorType'>SkColorType</a> newColorType) const
 </pre>
 
-Creates <a href='#Image_Info'>Image Info</a> with same <a href='#Alpha_Type'>Alpha Type</a>, <a href='undocumented#Color_Space'>Color Space</a>, width, and height,
-with <a href='#Color_Type'>Color Type</a> set to <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
 
 <table>  <tr>    <td><a name='SkImageInfo_makeColorType_newColorType'><code><strong>newColorType</strong></code></a></td>
-    <td>one of: <a href='#kUnknown_SkColorType'>kUnknown_SkColorType</a>, <a href='#kAlpha_8_SkColorType'>kAlpha_8_SkColorType</a>, <a href='#kRGB_565_SkColorType'>kRGB_565_SkColorType</a>,
-<a href='#kARGB_4444_SkColorType'>kARGB_4444_SkColorType</a>, <a href='#kRGBA_8888_SkColorType'>kRGBA_8888_SkColorType</a>, <a href='#kRGB_888x_SkColorType'>kRGB_888x_SkColorType</a>,
-<a href='#kBGRA_8888_SkColorType'>kBGRA_8888_SkColorType</a>, <a href='#kRGBA_1010102_SkColorType'>kRGBA_1010102_SkColorType</a>, <a href='#kRGB_101010x_SkColorType'>kRGB_101010x_SkColorType</a>,
-<a href='#kGray_8_SkColorType'>kGray_8_SkColorType</a>, <a href='#kRGBA_F16_SkColorType'>kRGBA_F16_SkColorType</a> </td>
+    <td>one of:</td>
   </tr>
 </table>
 
+<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>
+
 ### Return Value
 
-created <a href='#Image_Info'>Image Info</a>
+created <a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a>
 
 ### Example
 
@@ -1736,8 +1778,8 @@
 <a href='#SkImageInfo'>SkImageInfo</a> <a href='#SkImageInfo_makeColorSpace'>makeColorSpace</a>(<a href='undocumented#sk_sp'>sk sp</a>&lt;<a href='undocumented#SkColorSpace'>SkColorSpace</a>&gt; cs) const
 </pre>
 
-Creates <a href='#Image_Info'>Image Info</a> with same <a href='#Alpha_Type'>Alpha Type</a>, <a href='#Color_Type'>Color Type</a>, width, and height,
-with <a href='undocumented#Color_Space'>Color Space</a> set to <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
 
@@ -1748,7 +1790,7 @@
 
 ### Return Value
 
-created <a href='#Image_Info'>Image Info</a>
+created <a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a>
 
 ### Example
 
@@ -1766,12 +1808,12 @@
 int <a href='#SkImageInfo_bytesPerPixel'>bytesPerPixel</a>() const
 </pre>
 
-Returns number of bytes per pixel required by <a href='#Color_Type'>Color Type</a>.
-Returns zero if <a href='#SkImageInfo_colorType'>colorType</a>( is <a href='#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
 
-bytes in pixel
+bytes in <a href='undocumented#Pixel'>pixel</a>
 
 ### Example
 
@@ -1811,7 +1853,7 @@
 </pre>
 
 Returns bit shift converting row bytes to row pixels.
-Returns zero for <a href='#kUnknown_SkColorType'>kUnknown_SkColorType</a>.
+Returns zero for <a href='SkImageInfo_Reference#kUnknown_SkColorType'>kUnknown_SkColorType</a>.
 
 ### Return Value
 
@@ -1854,13 +1896,13 @@
 uint64_t <a href='#SkImageInfo_minRowBytes64'>minRowBytes64</a>() const
 </pre>
 
-Returns minimum bytes per row, computed from pixel <a href='#SkImageInfo_width'>width</a>() and <a href='#Color_Type'>Color Type</a>, which
-specifies <a href='#SkImageInfo_bytesPerPixel'>bytesPerPixel</a>(). <a href='SkBitmap_Reference#Bitmap'>Bitmap</a> maximum value for row bytes must fit
+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>() times <a href='#SkImageInfo_bytesPerPixel'>bytesPerPixel</a> as unsigned 64-bit integer
+<a href='#SkImageInfo_width'>width()</a> times <a href='#SkImageInfo_bytesPerPixel'>bytesPerPixel</a>() as unsigned 64-bit integer
 
 ### Example
 
@@ -1893,13 +1935,13 @@
 size_t <a href='#SkImageInfo_minRowBytes'>minRowBytes</a>() const
 </pre>
 
-Returns minimum bytes per row, computed from pixel <a href='#SkImageInfo_width'>width</a>() and <a href='#Color_Type'>Color Type</a>, which
-specifies <a href='#SkImageInfo_bytesPerPixel'>bytesPerPixel</a>(). <a href='SkBitmap_Reference#Bitmap'>Bitmap</a> maximum value for row bytes must fit
+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>() times <a href='#SkImageInfo_bytesPerPixel'>bytesPerPixel</a> as signed 32-bit integer
+<a href='#SkImageInfo_width'>width()</a> times <a href='#SkImageInfo_bytesPerPixel'>bytesPerPixel</a>() as signed 32-bit integer
 
 ### Example
 
@@ -1932,27 +1974,27 @@
 size_t <a href='#SkImageInfo_computeOffset'>computeOffset</a>(int x, int y, size_t rowBytes) const
 </pre>
 
-Returns byte offset of pixel from pixel base address.
+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> 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.
+<a href='#SkImageInfo_computeOffset_rowBytes'>rowBytes</a> is smaller than <a href='#SkImageInfo_minRowBytes'>minRowBytes</a>(), even though result may be incorrect.
 
 ### Parameters
 
 <table>  <tr>    <td><a name='SkImageInfo_computeOffset_x'><code><strong>x</strong></code></a></td>
-    <td>column index, zero or greater, and less than <a href='#SkImageInfo_width'>width</a>()</td>
+    <td>column index, zero or greater, and less than <a href='#SkImageInfo_width'>width()</a></td>
   </tr>
   <tr>    <td><a name='SkImageInfo_computeOffset_y'><code><strong>y</strong></code></a></td>
-    <td>row index, zero or greater, and less than <a href='#SkImageInfo_height'>height</a>()</td>
+    <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>size of pixel row or larger</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 pixel array
+offset within <a href='undocumented#Pixel'>pixel</a> array
 
 ### Example
 
@@ -1970,19 +2012,19 @@
 bool operator==(const SkImageInfo& other) const
 </pre>
 
-Compares <a href='#Image_Info'>Image Info</a> with <a href='#SkImageInfo_equal1_operator_other'>other</a>, and returns true if width, height, <a href='#Color_Type'>Color Type</a>,
-<a href='#Alpha_Type'>Alpha Type</a>, and <a href='undocumented#Color_Space'>Color Space</a> are equivalent.
+Compares <a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a> with <a href='#SkImageInfo_operator==(const SkImageInfo& other)_const_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='#Image_Info'>Image Info</a> to compare</td>
+    <td><a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a> to compare</td>
   </tr>
 </table>
 
 ### Return Value
 
-true if <a href='#Image_Info'>Image Info</a> equals <a href='#SkImageInfo_equal1_operator_other'>other</a>
+true if <a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a> equals <a href='#SkImageInfo_operator==(const SkImageInfo& other)_const_other'>other</a>
 
 ### Example
 
@@ -2011,19 +2053,19 @@
 bool operator!=(const SkImageInfo& other) const
 </pre>
 
-Compares <a href='#Image_Info'>Image Info</a> with <a href='#SkImageInfo_notequal1_operator_other'>other</a>, and returns true if width, height, <a href='#Color_Type'>Color Type</a>,
-<a href='#Alpha_Type'>Alpha Type</a>, and <a href='undocumented#Color_Space'>Color Space</a> are not equivalent.
+Compares <a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a> with <a href='#SkImageInfo_operator!=(const SkImageInfo& other)_const_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='#Image_Info'>Image Info</a> to compare</td>
+    <td><a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a> to compare</td>
   </tr>
 </table>
 
 ### Return Value
 
-true if <a href='#Image_Info'>Image Info</a> is not equal to <a href='#SkImageInfo_notequal1_operator_other'>other</a>
+true if <a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a> is not equal to <a href='#SkImageInfo_operator!=(const SkImageInfo& other)_const_other'>other</a>
 
 ### Example
 
@@ -2052,7 +2094,7 @@
 size_t <a href='#SkImageInfo_computeByteSize'>computeByteSize</a>(size_t rowBytes) const
 </pre>
 
-Returns storage required by pixel array, given <a href='#Image_Info'>Image Info</a> dimensions, <a href='#Color_Type'>Color Type</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.
@@ -2061,13 +2103,13 @@
 ### Parameters
 
 <table>  <tr>    <td><a name='SkImageInfo_computeByteSize_rowBytes'><code><strong>rowBytes</strong></code></a></td>
-    <td>size of pixel row or larger</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 pixel buffer
+memory required by <a href='undocumented#Pixel'>pixel</a> buffer
 
 ### Example
 
@@ -2085,15 +2127,15 @@
 size_t <a href='#SkImageInfo_computeMinByteSize'>computeMinByteSize</a>() const
 </pre>
 
-Returns storage required by pixel array, given <a href='#Image_Info'>Image Info</a> dimensions, and
-<a href='#Color_Type'>Color Type</a>. Uses <a href='#SkImageInfo_minRowBytes'>minRowBytes</a>() to compute bytes for pixel row.
+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 pixel buffer
+least memory required by <a href='undocumented#Pixel'>pixel</a> buffer
 
 ### Example
 
@@ -2111,19 +2153,19 @@
 static bool <a href='#SkImageInfo_ByteSizeOverflowed'>ByteSizeOverflowed</a>(size_t byteSize)
 </pre>
 
-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 size.
+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> or <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> or <a href='#SkImageInfo_computeMinByteSize'>computeMinByteSize</a> result exceeds size_t
+true if <a href='#SkImageInfo_computeByteSize'>computeByteSize</a>() or <a href='#SkImageInfo_computeMinByteSize'>computeMinByteSize</a>() result exceeds size_t
 
 ### Example
 
@@ -2153,18 +2195,18 @@
 bool <a href='#SkImageInfo_validRowBytes'>validRowBytes</a>(size_t rowBytes) const
 </pre>
 
-Returns true if <a href='#SkImageInfo_validRowBytes_rowBytes'>rowBytes</a> is smaller than width times pixel size.
+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>size of pixel row or larger</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> is large enough to contain pixel row
+true if <a href='#SkImageInfo_validRowBytes_rowBytes'>rowBytes</a> is large enough to contain <a href='undocumented#Pixel'>pixel</a> row
 
 ### Example
 
@@ -2192,8 +2234,8 @@
 void <a href='#SkImageInfo_reset'>reset</a>()
 </pre>
 
-Creates an empty <a href='#Image_Info'>Image Info</a> with <a href='#kUnknown_SkColorType'>kUnknown_SkColorType</a>, <a href='#kUnknown_SkAlphaType'>kUnknown_SkAlphaType</a>,
-a width and height of zero, and no <a href='undocumented#Color_Space'>Color Space</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
 
@@ -2223,9 +2265,6 @@
 void <a href='#SkImageInfo_validate'>validate</a>() const
 </pre>
 
-Asserts if internal values are illegal or inconsistent. Only available if
-SK_DEBUG is defined at compile time.
-
 ### See Also
 
 <a href='#SkImageInfo_validRowBytes'>validRowBytes</a> <a href='SkBitmap_Reference#SkBitmap_validate'>SkBitmap::validate</a>
diff --git a/site/user/api/SkImage_Reference.md b/site/user/api/SkImage_Reference.md
index e8ca89d..1c17f21 100644
--- a/site/user/api/SkImage_Reference.md
+++ b/site/user/api/SkImage_Reference.md
@@ -215,30 +215,30 @@
 static <a href='undocumented#sk_sp'>sk sp</a>&lt;<a href='#SkImage'>SkImage</a>&gt; <a href='#SkImage_MakeRasterCopy'>MakeRasterCopy</a>(const <a href='SkPixmap_Reference#SkPixmap'>SkPixmap</a>& pixmap)
 </pre>
 
-Creates <a href='#Image'>Image</a> from <a href='SkPixmap_Reference#Pixmap'>Pixmap</a> and copy of pixels. Since pixels are copied, <a href='SkPixmap_Reference#Pixmap'>Pixmap</a>
-pixels may be modified or deleted without affecting <a href='#Image'>Image</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='#Image'>Image</a> is returned if <a href='SkPixmap_Reference#Pixmap'>Pixmap</a> is valid. Valid <a href='SkPixmap_Reference#Pixmap'>Pixmap</a> parameters include:
+<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#Color_Type'>Color Type</a> and <a href='SkImageInfo_Reference#Alpha_Type'>Alpha Type</a> are valid, and <a href='SkImageInfo_Reference#Color_Type'>Color Type</a> is not <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;
-pixel address is not nullptr.
+<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#Image_Info'>Image Info</a>, pixel address, and row bytes</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#Pixmap'>Pixmap</a> pixels, or nullptr
+copy of <a href='SkPixmap_Reference#SkPixmap'>SkPixmap</a> pixels, or nullptr
 
 ### Example
 
-<div><fiddle-embed name="513afec5795a9504ebf6af5373d16b6b"><div>Draw a five by five bitmap, and draw a copy in an <a href='#Image'>Image</a>. Editing the <a href='#SkImage_MakeRasterCopy_pixmap'>pixmap</a>
+<div><fiddle-embed name="513afec5795a9504ebf6af5373d16b6b"><div>Draw a five by five bitmap, and draw a copy in an <a href='#Image'>Image</a>. Editing the pixmap
 alters the bitmap draw, but does not alter the <a href='#Image'>Image</a> draw since the <a href='#Image'>Image</a>
 contains a copy of the pixels.
 </div></fiddle-embed></div>
@@ -255,31 +255,31 @@
 static <a href='undocumented#sk_sp'>sk sp</a>&lt;<a href='#SkImage'>SkImage</a>&gt; <a href='#SkImage_MakeRasterData'>MakeRasterData</a>(const <a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a>& info, <a href='undocumented#sk_sp'>sk sp</a>&lt;<a href='undocumented#SkData'>SkData</a>&gt; pixels, size_t rowBytes)
 </pre>
 
-Creates <a href='#Image'>Image</a> from <a href='SkImageInfo_Reference#Image_Info'>Image Info</a>, sharing <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='#Image'>Image</a> is returned if <a href='SkImageInfo_Reference#Image_Info'>Image Info</a> is valid. Valid <a href='SkImageInfo_Reference#Image_Info'>Image Info</a> parameters include:
+<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#Color_Type'>Color Type</a> and <a href='SkImageInfo_Reference#Alpha_Type'>Alpha Type</a> are valid, and <a href='SkImageInfo_Reference#Color_Type'>Color Type</a> is not <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>;
 <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 data for <a href='#Image'>Image</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
 
 <table>  <tr>    <td><a name='SkImage_MakeRasterData_info'><code><strong>info</strong></code></a></td>
-    <td>contains width, height, <a href='SkImageInfo_Reference#Alpha_Type'>Alpha Type</a>, <a href='SkImageInfo_Reference#Color_Type'>Color Type</a>, <a href='undocumented#Color_Space'>Color Space</a></td>
+    <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='SkImage_MakeRasterData_pixels'><code><strong>pixels</strong></code></a></td>
-    <td>address or pixel storage</td>
+    <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>size of pixel row or larger</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='#Image'>Image</a> sharing <a href='#SkImage_MakeRasterData_pixels'>pixels</a>, or nullptr
+<a href='SkImage_Reference#SkImage'>SkImage</a> sharing <a href='#SkImage_MakeRasterData_pixels'>pixels</a>, or nullptr
 
 ### Example
 
@@ -327,25 +327,25 @@
                                      <a href='#SkImage_ReleaseContext'>ReleaseContext</a> releaseContext)
 </pre>
 
-Creates <a href='#Image'>Image</a> from <a href='#SkImage_MakeFromRaster_pixmap'>pixmap</a>, sharing <a href='SkPixmap_Reference#Pixmap'>Pixmap</a> pixels. <a href='#Pixels'>Pixels</a> must remain valid and
+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='#Image'>Image</a> is deleted or no longer refers to <a href='#SkImage_MakeFromRaster_pixmap'>pixmap</a> pixels.
+<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> to share <a href='SkPixmap_Reference#Pixmap'>Pixmap</a> without requiring a callback
-when <a href='#Image'>Image</a> is released. Pass nullptr for <a href='#SkImage_MakeFromRaster_releaseContext'>releaseContext</a> if <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='#Image'>Image</a> is returned if <a href='#SkImage_MakeFromRaster_pixmap'>pixmap</a> is valid. Valid <a href='SkPixmap_Reference#Pixmap'>Pixmap</a> parameters include:
+<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#Color_Type'>Color Type</a> and <a href='SkImageInfo_Reference#Alpha_Type'>Alpha Type</a> are valid, and <a href='SkImageInfo_Reference#Color_Type'>Color Type</a> is not <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;
-pixel address is not nullptr.
+<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#Image_Info'>Image Info</a>, pixel address, and row bytes</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>
@@ -357,7 +357,7 @@
 
 ### Return Value
 
-<a href='#Image'>Image</a> sharing <a href='#SkImage_MakeFromRaster_pixmap'>pixmap</a>
+<a href='SkImage_Reference#SkImage'>SkImage</a> sharing <a href='#SkImage_MakeFromRaster_pixmap'>pixmap</a>
 
 ### Example
 
@@ -384,27 +384,27 @@
 static <a href='undocumented#sk_sp'>sk sp</a>&lt;<a href='#SkImage'>SkImage</a>&gt; <a href='#SkImage_MakeFromBitmap'>MakeFromBitmap</a>(const <a href='SkBitmap_Reference#SkBitmap'>SkBitmap</a>& bitmap)
 </pre>
 
-Creates <a href='#Image'>Image</a> from <a href='#SkImage_MakeFromBitmap_bitmap'>bitmap</a>, sharing or copying <a href='#SkImage_MakeFromBitmap_bitmap'>bitmap</a> pixels. If the <a href='#SkImage_MakeFromBitmap_bitmap'>bitmap</a>
-is marked immutable, and its pixel memory is shareable, it may be shared
+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='#Image'>Image</a> is returned if <a href='#SkImage_MakeFromBitmap_bitmap'>bitmap</a> is valid. Valid <a href='SkBitmap_Reference#Bitmap'>Bitmap</a> parameters include:
+<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#Color_Type'>Color Type</a> and <a href='SkImageInfo_Reference#Alpha_Type'>Alpha Type</a> are valid, and <a href='SkImageInfo_Reference#Color_Type'>Color Type</a> is not <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;
-pixel address is not nullptr.
+<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#Image_Info'>Image Info</a>, row bytes, and pixels</td>
+    <td><a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a>, row bytes, and pixels</td>
   </tr>
 </table>
 
 ### Return Value
 
-created <a href='#Image'>Image</a>, or nullptr
+created <a href='SkImage_Reference#SkImage'>SkImage</a>, or nullptr
 
 ### Example
 
@@ -427,30 +427,30 @@
                                  const <a href='SkIRect_Reference#SkIRect'>SkIRect</a>* subset = nullptr)
 </pre>
 
-Creates <a href='#Image'>Image</a> from data returned by <a href='#SkImage_MakeFromGenerator_imageGenerator'>imageGenerator</a>. Generated data is owned by <a href='#Image'>Image</a> and may not
-be shared or accessed.
+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> allows selecting a portion of the full image. Pass nullptr to select the entire image;
-otherwise, <a href='#SkImage_MakeFromGenerator_subset'>subset</a> must be contained by image bounds.
+<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='#Image'>Image</a> is returned if generator data is valid. Valid data parameters vary by type of data
+<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> may wrap <a href='SkPicture_Reference#Picture'>Picture</a> data, codec data, or custom data.
+<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
 
 <table>  <tr>    <td><a name='SkImage_MakeFromGenerator_imageGenerator'><code><strong>imageGenerator</strong></code></a></td>
-    <td>stock or custom routines to retrieve <a href='#Image'>Image</a></td>
+    <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='#Image'>Image</a>; may be nullptr</td>
+    <td>bounds of returned <a href='SkImage_Reference#SkImage'>SkImage</a>; may be nullptr</td>
   </tr>
 </table>
 
 ### Return Value
 
-created <a href='#Image'>Image</a>, or nullptr
+created <a href='SkImage_Reference#SkImage'>SkImage</a>, or nullptr
 
 ### Example
 
@@ -469,26 +469,26 @@
 static <a href='undocumented#sk_sp'>sk sp</a>&lt;<a href='#SkImage'>SkImage</a>&gt; <a href='#SkImage_MakeFromEncoded'>MakeFromEncoded</a>(<a href='undocumented#sk_sp'>sk sp</a>&lt;<a href='undocumented#SkData'>SkData</a>&gt; encoded, const <a href='SkIRect_Reference#SkIRect'>SkIRect</a>* subset = nullptr)
 </pre>
 
-Creates <a href='#Image'>Image</a> from <a href='#SkImage_MakeFromEncoded_encoded'>encoded</a> data.
-<a href='#SkImage_MakeFromEncoded_subset'>subset</a> allows selecting a portion of the full image. Pass nullptr to select the entire image;
-otherwise, <a href='#SkImage_MakeFromEncoded_subset'>subset</a> must be contained by image bounds.
+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='#Image'>Image</a> is returned if format of the <a href='#SkImage_MakeFromEncoded_encoded'>encoded</a> data is recognized and supported.
+<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>data of <a href='#Image'>Image</a> to decode</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='#Image'>Image</a>; may be nullptr</td>
+    <td>bounds of returned <a href='SkImage_Reference#SkImage'>SkImage</a>; may be nullptr</td>
   </tr>
 </table>
 
 ### Return Value
 
-created <a href='#Image'>Image</a>, or nullptr
+created <a href='SkImage_Reference#SkImage'>SkImage</a>, or nullptr
 
 ### Example
 
@@ -522,41 +522,54 @@
                                       <a href='SkImageInfo_Reference#SkAlphaType'>SkAlphaType</a> <a href='#SkImage_alphaType'>alphaType</a>, <a href='undocumented#sk_sp'>sk sp</a>&lt;<a href='undocumented#SkColorSpace'>SkColorSpace</a>&gt; <a href='#SkImage_colorSpace'>colorSpace</a>)
 </pre>
 
-Creates <a href='#Image'>Image</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>.
+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='#Image'>Image</a> is returned if format of <a href='#SkImage_MakeFromTexture_backendTexture'>backendTexture</a> is recognized and supported.
+<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
 
 <table>  <tr>    <td><a name='SkImage_MakeFromTexture_context'><code><strong>context</strong></code></a></td>
-    <td><a href='undocumented#GPU_Context'>GPU Context</a></td>
+    <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>texture residing on GPU</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>
+    <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='SkImage_MakeFromTexture_colorType'><code><strong>colorType</strong></code></a></td>
-    <td>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> </td>
+    <td>one of:</td>
   </tr>
-  <tr>    <td><a name='SkImage_MakeFromTexture_alphaType'><code><strong>alphaType</strong></code></a></td>
-    <td>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> </td>
+</table>
+
+<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>
+
+### Parameters
+
+<table>  <tr>    <td><a name='SkImage_MakeFromTexture_alphaType'><code><strong>alphaType</strong></code></a></td>
+    <td>one of:</td>
   </tr>
-  <tr>    <td><a name='SkImage_MakeFromTexture_colorSpace'><code><strong>colorSpace</strong></code></a></td>
+</table>
+
+<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>
+
+### Parameters
+
+<table>  <tr>    <td><a name='SkImage_MakeFromTexture_colorSpace'><code><strong>colorSpace</strong></code></a></td>
     <td>range of colors; may be nullptr</td>
   </tr>
 </table>
 
 ### Return Value
 
-created <a href='#Image'>Image</a>, or nullptr
+created <a href='SkImage_Reference#SkImage'>SkImage</a>, or nullptr
 
 ### Example
 
@@ -579,39 +592,53 @@
                                       <a href='#SkImage_ReleaseContext'>ReleaseContext</a> releaseContext)
 </pre>
 
-Creates <a href='#Image'>Image</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
+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='#Image'>Image</a> is deleted or no longer refers to texture.
+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='#Image'>Image</a> is returned if format of <a href='#SkImage_MakeFromTexture_2_backendTexture'>backendTexture</a> is recognized and supported.
+<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
 
 <table>  <tr>    <td><a name='SkImage_MakeFromTexture_2_context'><code><strong>context</strong></code></a></td>
-    <td><a href='undocumented#GPU_Context'>GPU Context</a></td>
+    <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>texture residing on GPU</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>
+    <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='SkImage_MakeFromTexture_2_colorType'><code><strong>colorType</strong></code></a></td>
-    <td>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> </td>
+    <td>one of:</td>
   </tr>
-  <tr>    <td><a name='SkImage_MakeFromTexture_2_alphaType'><code><strong>alphaType</strong></code></a></td>
-    <td>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> </td>
+</table>
+
+<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>
+
+### Parameters
+
+<table>  <tr>    <td><a name='SkImage_MakeFromTexture_2_alphaType'><code><strong>alphaType</strong></code></a></td>
+    <td>one of:</td>
   </tr>
-  <tr>    <td><a name='SkImage_MakeFromTexture_2_colorSpace'><code><strong>colorSpace</strong></code></a></td>
+</table>
+
+<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>
+
+### Parameters
+
+<table>  <tr>    <td><a name='SkImage_MakeFromTexture_2_colorSpace'><code><strong>colorSpace</strong></code></a></td>
     <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 texture can be released</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>
@@ -620,7 +647,7 @@
 
 ### Return Value
 
-created <a href='#Image'>Image</a>, or nullptr
+created <a href='SkImage_Reference#SkImage'>SkImage</a>, or nullptr
 
 ### Example
 
@@ -640,46 +667,46 @@
                                                   bool limitToMaxTextureSize = false)
 </pre>
 
-Creates <a href='#Image'>Image</a> from encoded <a href='#SkImage_MakeCrossContextFromEncoded_data'>data</a>. <a href='#Image'>Image</a> is uploaded to GPU back-end using <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='#Image'>Image</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
+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='#Image'>Image</a> is no longer referenced, <a href='#SkImage_MakeCrossContextFromEncoded_context'>context</a> releases texture memory
+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#Texture'>Texture</a> decoded from <a href='#SkImage_MakeCrossContextFromEncoded_data'>data</a> is uploaded to match <a href='SkSurface_Reference#Surface'>Surface</a> created with
-<a href='#SkImage_MakeCrossContextFromEncoded_dstColorSpace'>dstColorSpace</a>. <a href='undocumented#Color_Space'>Color Space</a> of <a href='#Image'>Image</a> is determined by encoded <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='#Image'>Image</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>
+<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='#Image'>Image</a> is returned using <a href='#SkImage_MakeFromEncoded'>MakeFromEncoded</a> if <a href='#SkImage_MakeCrossContextFromEncoded_context'>context</a> is nullptr or does not support
+<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
 
 <table>  <tr>    <td><a name='SkImage_MakeCrossContextFromEncoded_context'><code><strong>context</strong></code></a></td>
-    <td><a href='undocumented#GPU_Context'>GPU Context</a></td>
+    <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='#Image'>Image</a> to decode</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='#Image'>Image</a> as <a href='undocumented#Mip_Map'>Mip Map</a> if true</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#Surface'>Surface</a> on GPU</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 image to GPU maximum texture size, if necessary</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='#Image'>Image</a>, or nullptr
+created <a href='SkImage_Reference#SkImage'>SkImage</a>, or nullptr
 
 ### Example
 
@@ -699,46 +726,46 @@
                                                  bool limitToMaxTextureSize = false)
 </pre>
 
-Creates <a href='#Image'>Image</a> from <a href='#SkImage_MakeCrossContextFromPixmap_pixmap'>pixmap</a>. <a href='#Image'>Image</a> is uploaded to GPU back-end using <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='#Image'>Image</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
+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='#Image'>Image</a> is no longer referenced, <a href='#SkImage_MakeCrossContextFromPixmap_context'>context</a> releases texture memory
+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#Texture'>Texture</a> created from <a href='#SkImage_MakeCrossContextFromPixmap_pixmap'>pixmap</a> is uploaded to match <a href='SkSurface_Reference#Surface'>Surface</a> created with
-<a href='#SkImage_MakeCrossContextFromPixmap_dstColorSpace'>dstColorSpace</a>. <a href='undocumented#Color_Space'>Color Space</a> of <a href='#Image'>Image</a> is determined by <a href='#SkImage_MakeCrossContextFromPixmap_pixmap'>pixmap</a>.<a href='#SkImage_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='#Image'>Image</a> is returned referring to GPU back-end if <a href='#SkImage_MakeCrossContextFromPixmap_context'>context</a> is not nullptr,
-format of data 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> pixel data is copied and <a href='#Image'>Image</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.
 
 ### Parameters
 
 <table>  <tr>    <td><a name='SkImage_MakeCrossContextFromPixmap_context'><code><strong>context</strong></code></a></td>
-    <td><a href='undocumented#GPU_Context'>GPU Context</a></td>
+    <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#Image_Info'>Image Info</a>, pixel address, and row bytes</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='#Image'>Image</a> as <a href='undocumented#Mip_Map'>Mip Map</a> if true</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#Surface'>Surface</a> on GPU</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 image to GPU maximum texture size, if necessary</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='#Image'>Image</a>, or nullptr
+created <a href='SkImage_Reference#SkImage'>SkImage</a>, or nullptr
 
 ### Example
 
@@ -760,41 +787,55 @@
                                              <a href='undocumented#sk_sp'>sk sp</a>&lt;<a href='undocumented#SkColorSpace'>SkColorSpace</a>&gt; <a href='#SkImage_colorSpace'>colorSpace</a> = nullptr)
 </pre>
 
-Creates <a href='#Image'>Image</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='#Image'>Image</a> are managed internally, and are released when no longer needed.
+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='#Image'>Image</a> is returned if format of <a href='#SkImage_MakeFromAdoptedTexture_backendTexture'>backendTexture</a> is recognized and supported.
+<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
 
 <table>  <tr>    <td><a name='SkImage_MakeFromAdoptedTexture_context'><code><strong>context</strong></code></a></td>
-    <td><a href='undocumented#GPU_Context'>GPU Context</a></td>
+    <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>texture residing on GPU</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>
+    <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='SkImage_MakeFromAdoptedTexture_colorType'><code><strong>colorType</strong></code></a></td>
-    <td>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> </td>
+    <td>one of:</td>
   </tr>
-  <tr>    <td><a name='SkImage_MakeFromAdoptedTexture_alphaType'><code><strong>alphaType</strong></code></a></td>
-    <td>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> </td>
+</table>
+
+<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>
+
+### Parameters
+
+<table>  <tr>    <td><a name='SkImage_MakeFromAdoptedTexture_alphaType'><code><strong>alphaType</strong></code></a></td>
+    <td>one of:</td>
   </tr>
-  <tr>    <td><a name='SkImage_MakeFromAdoptedTexture_colorSpace'><code><strong>colorSpace</strong></code></a></td>
+</table>
+
+<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>
+
+### Parameters
+
+<table>  <tr>    <td><a name='SkImage_MakeFromAdoptedTexture_colorSpace'><code><strong>colorSpace</strong></code></a></td>
     <td>range of colors; may be nullptr</td>
   </tr>
 </table>
 
 ### Return Value
 
-created <a href='#Image'>Image</a>, or nullptr
+created <a href='SkImage_Reference#SkImage'>SkImage</a>, or nullptr
 
 ### Example
 
@@ -816,41 +857,62 @@
                                                <a href='undocumented#sk_sp'>sk sp</a>&lt;<a href='undocumented#SkColorSpace'>SkColorSpace</a>&gt; imageColorSpace = nullptr)
 </pre>
 
-Creates an <a href='#SkImage'>SkImage</a> by flattening the specified YUVA planes into a single,
-interleaved RGBA image.
-<a href='#SkImage_MakeFromYUVATexturesCopy_yuvaTextures'>yuvaTextures</a> points to array of up to four YUVA textures which reside on GPU.
-YUVA textures contain YUVA planes which may be interleaved.
+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
 
 <table>  <tr>    <td><a name='SkImage_MakeFromYUVATexturesCopy_context'><code><strong>context</strong></code></a></td>
-    <td>GPU <a href='#SkImage_MakeFromYUVATexturesCopy_context'>context</a></td>
+    <td><a href='undocumented#GPU_Context'>GPU context</a></td>
   </tr>
   <tr>    <td><a name='SkImage_MakeFromYUVATexturesCopy_yuvColorSpace'><code><strong>yuvColorSpace</strong></code></a></td>
-    <td>one of: <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></td>
+    <td>How the YUV values are converted to RGB. One of:</td>
   </tr>
-  <tr>    <td><a name='SkImage_MakeFromYUVATexturesCopy_yuvaTextures'><code><strong>yuvaTextures</strong></code></a></td>
-    <td>array of YUVA textures</td>
+</table>
+
+<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>
+
+### Parameters
+
+<table>  <tr>    <td><a name='SkImage_MakeFromYUVATexturesCopy_yuvaTextures'><code><strong>yuvaTextures</strong></code></a></td>
+    <td>array of (up to four) YUVA textures on GPU which contain the,</td>
   </tr>
-  <tr>    <td><a name='SkImage_MakeFromYUVATexturesCopy_yuvaIndices'><code><strong>yuvaIndices</strong></code></a></td>
-    <td>array indicating <a href='#SkImage_MakeFromYUVATexturesCopy_yuvaTextures'>yuvaTextures</a> element and channel
-that map to Y, U, V, and A</td>
+</table>
+
+possibly interleaved, YUVA planes
+
+### 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> in <a href='#SkImage_MakeFromYUVATexturesCopy_yuvaTextures'>yuvaTextures</a>, and channel</td>
   </tr>
-  <tr>    <td><a name='SkImage_MakeFromYUVATexturesCopy_imageSize'><code><strong>imageSize</strong></code></a></td>
-    <td>size of the resulting image</td>
+</table>
+
+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> 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>one of: <a href='undocumented#kBottomLeft_GrSurfaceOrigin'>kBottomLeft GrSurfaceOrigin</a>, <a href='undocumented#kTopLeft_GrSurfaceOrigin'>kTopLeft 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>
-  <tr>    <td><a name='SkImage_MakeFromYUVATexturesCopy_imageColorSpace'><code><strong>imageColorSpace</strong></code></a></td>
-    <td>range of colors of the resulting image; may be nullptr</td>
+</table>
+
+<a href='undocumented#kTopLeft_GrSurfaceOrigin'>kTopLeft_GrSurfaceOrigin</a>
+
+### 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>; may be nullptr</td>
   </tr>
 </table>
 
 ### Return Value
 
-created <a href='#SkImage'>SkImage</a>, or nullptr
+created <a href='SkImage_Reference#SkImage'>SkImage</a>, or nullptr
 
 ### See Also
 
@@ -868,39 +930,62 @@
                                            <a href='undocumented#sk_sp'>sk sp</a>&lt;<a href='undocumented#SkColorSpace'>SkColorSpace</a>&gt; imageColorSpace = nullptr) ;
 </pre>
 
-Creates an <a href='#SkImage'>SkImage</a> by storing the specified YUVA planes into an image, to be rendered
+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
 
 <table>  <tr>    <td><a name='SkImage_MakeFromYUVATextures_context'><code><strong>context</strong></code></a></td>
-    <td>GPU <a href='#SkImage_MakeFromYUVATextures_context'>context</a></td>
+    <td><a href='undocumented#GPU_Context'>GPU context</a></td>
   </tr>
   <tr>    <td><a name='SkImage_MakeFromYUVATextures_yuvColorSpace'><code><strong>yuvColorSpace</strong></code></a></td>
-    <td>one of: <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></td>
+    <td>How the YUV values are converted to RGB. One of:</td>
   </tr>
-  <tr>    <td><a name='SkImage_MakeFromYUVATextures_yuvaTextures'><code><strong>yuvaTextures</strong></code></a></td>
-    <td>array of YUVA textures</td>
+</table>
+
+<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>
+
+### Parameters
+
+<table>  <tr>    <td><a name='SkImage_MakeFromYUVATextures_yuvaTextures'><code><strong>yuvaTextures</strong></code></a></td>
+    <td>array of (up to four) YUVA textures on GPU which contain the,</td>
   </tr>
-  <tr>    <td><a name='SkImage_MakeFromYUVATextures_yuvaIndices'><code><strong>yuvaIndices</strong></code></a></td>
-    <td>array indicating <a href='#SkImage_MakeFromYUVATextures_yuvaTextures'>yuvaTextures</a> element and channel
-that map to Y, U, V, and A</td>
+</table>
+
+possibly interleaved, YUVA planes
+
+### 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> in <a href='#SkImage_MakeFromYUVATextures_yuvaTextures'>yuvaTextures</a>, and channel</td>
   </tr>
-  <tr>    <td><a name='SkImage_MakeFromYUVATextures_imageSize'><code><strong>imageSize</strong></code></a></td>
-    <td>size of the resulting image</td>
+</table>
+
+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> 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>one of: <a href='undocumented#kBottomLeft_GrSurfaceOrigin'>kBottomLeft GrSurfaceOrigin</a>, <a href='undocumented#kTopLeft_GrSurfaceOrigin'>kTopLeft 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>
-  <tr>    <td><a name='SkImage_MakeFromYUVATextures_imageColorSpace'><code><strong>imageColorSpace</strong></code></a></td>
-    <td>range of colors of the resulting image; may be nullptr</td>
+</table>
+
+<a href='undocumented#kTopLeft_GrSurfaceOrigin'>kTopLeft_GrSurfaceOrigin</a>
+
+### 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>; may be nullptr</td>
   </tr>
 </table>
 
 ### Return Value
 
-created <a href='#SkImage'>SkImage</a>, or nullptr
+created <a href='SkImage_Reference#SkImage'>SkImage</a>, or nullptr
 
 ### See Also
 
@@ -919,44 +1004,65 @@
                         <a href='undocumented#sk_sp'>sk sp</a>&lt;<a href='undocumented#SkColorSpace'>SkColorSpace</a>&gt; imageColorSpace = nullptr)
 </pre>
 
-Creates an <a href='#SkImage'>SkImage</a> by flattening the specified YUVA planes into a single,
-interleaved RGBA image. <a href='#SkImage_MakeFromYUVATexturesCopyWithExternalBackend_backendTexture'>backendTexture</a> is used to store the result of flattening.
-<a href='#SkImage_MakeFromYUVATexturesCopyWithExternalBackend_yuvaTextures'>yuvaTextures</a> points to array of up to four YUVA textures which reside on GPU.
-YUVA textures contain YUVA planes which may be interleaved.
+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
 
 <table>  <tr>    <td><a name='SkImage_MakeFromYUVATexturesCopyWithExternalBackend_context'><code><strong>context</strong></code></a></td>
-    <td>GPU <a href='#SkImage_MakeFromYUVATexturesCopyWithExternalBackend_context'>context</a></td>
+    <td><a href='undocumented#GPU_Context'>GPU context</a></td>
   </tr>
   <tr>    <td><a name='SkImage_MakeFromYUVATexturesCopyWithExternalBackend_yuvColorSpace'><code><strong>yuvColorSpace</strong></code></a></td>
-    <td>one of: <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></td>
+    <td>How the YUV values are converted to RGB. One of:</td>
   </tr>
-  <tr>    <td><a name='SkImage_MakeFromYUVATexturesCopyWithExternalBackend_yuvaTextures'><code><strong>yuvaTextures</strong></code></a></td>
-    <td>array of YUVA textures</td>
+</table>
+
+<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>
+
+### Parameters
+
+<table>  <tr>    <td><a name='SkImage_MakeFromYUVATexturesCopyWithExternalBackend_yuvaTextures'><code><strong>yuvaTextures</strong></code></a></td>
+    <td>array of (up to four) YUVA textures on GPU which contain the,</td>
   </tr>
-  <tr>    <td><a name='SkImage_MakeFromYUVATexturesCopyWithExternalBackend_yuvaIndices'><code><strong>yuvaIndices</strong></code></a></td>
-    <td>array indicating <a href='#SkImage_MakeFromYUVATexturesCopyWithExternalBackend_yuvaTextures'>yuvaTextures</a> element and channel
-that map to Y, U, V, and A</td>
+</table>
+
+possibly interleaved, YUVA planes
+
+### 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> in <a href='#SkImage_MakeFromYUVATexturesCopyWithExternalBackend_yuvaTextures'>yuvaTextures</a>, and channel</td>
   </tr>
-  <tr>    <td><a name='SkImage_MakeFromYUVATexturesCopyWithExternalBackend_imageSize'><code><strong>imageSize</strong></code></a></td>
-    <td>size of the resulting image</td>
+</table>
+
+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> 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>one of: <a href='undocumented#kBottomLeft_GrSurfaceOrigin'>kBottomLeft GrSurfaceOrigin</a>, <a href='undocumented#kTopLeft_GrSurfaceOrigin'>kTopLeft 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>
-  <tr>    <td><a name='SkImage_MakeFromYUVATexturesCopyWithExternalBackend_backendTexture'><code><strong>backendTexture</strong></code></a></td>
-    <td>resource that stores the final pixels</td>
+</table>
+
+<a href='undocumented#kTopLeft_GrSurfaceOrigin'>kTopLeft_GrSurfaceOrigin</a>
+
+### Parameters
+
+<table>  <tr>    <td><a name='SkImage_MakeFromYUVATexturesCopyWithExternalBackend_backendTexture'><code><strong>backendTexture</strong></code></a></td>
+    <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 image; may be nullptr</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'>SkImage</a>, or nullptr
+created <a href='SkImage_Reference#SkImage'>SkImage</a>, or nullptr
 
 ### See Also
 
@@ -973,24 +1079,29 @@
                                               <a href='undocumented#sk_sp'>sk sp</a>&lt;<a href='undocumented#SkColorSpace'>SkColorSpace</a>&gt; imageColorSpace = nullptr)
 </pre>
 
-Creates <a href='#Image'>Image</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 YUV planes of <a href='#Image'>Image</a>. Returned <a href='#Image'>Image</a> has the dimensions
+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
 
 <table>  <tr>    <td><a name='SkImage_MakeFromYUVTexturesCopy_context'><code><strong>context</strong></code></a></td>
-    <td><a href='undocumented#GPU_Context'>GPU Context</a></td>
+    <td><a href='undocumented#GPU_Context'>GPU context</a></td>
   </tr>
   <tr>    <td><a name='SkImage_MakeFromYUVTexturesCopy_yuvColorSpace'><code><strong>yuvColorSpace</strong></code></a></td>
-    <td>one of: <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></td>
+    <td>one of: <a href='SkImageInfo_Reference#kJPEG_SkYUVColorSpace'>kJPEG_SkYUVColorSpace</a>, <a href='SkImageInfo_Reference#kRec601_SkYUVColorSpace'>kRec601_SkYUVColorSpace</a>,</td>
   </tr>
-  <tr>    <td><a name='SkImage_MakeFromYUVTexturesCopy_yuvTextures'><code><strong>yuvTextures</strong></code></a></td>
+</table>
+
+<a href='SkImageInfo_Reference#kRec709_SkYUVColorSpace'>kRec709_SkYUVColorSpace</a>
+
+### Parameters
+
+<table>  <tr>    <td><a name='SkImage_MakeFromYUVTexturesCopy_yuvTextures'><code><strong>yuvTextures</strong></code></a></td>
     <td>array of YUV textures on GPU</td>
   </tr>
   <tr>    <td><a name='SkImage_MakeFromYUVTexturesCopy_imageOrigin'><code><strong>imageOrigin</strong></code></a></td>
-    <td>one of: <a href='undocumented#kBottomLeft_GrSurfaceOrigin'>kBottomLeft GrSurfaceOrigin</a>, <a href='undocumented#kTopLeft_GrSurfaceOrigin'>kTopLeft GrSurfaceOrigin</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='SkImage_MakeFromYUVTexturesCopy_imageColorSpace'><code><strong>imageColorSpace</strong></code></a></td>
     <td>range of colors; may be nullptr</td>
@@ -999,7 +1110,7 @@
 
 ### Return Value
 
-created <a href='#Image'>Image</a>, or nullptr
+created <a href='SkImage_Reference#SkImage'>SkImage</a>, or nullptr
 
 ### See Also
 
@@ -1017,28 +1128,33 @@
                              <a href='undocumented#sk_sp'>sk sp</a>&lt;<a href='undocumented#SkColorSpace'>SkColorSpace</a>&gt; imageColorSpace = nullptr) ;
 </pre>
 
-Creates <a href='#Image'>Image</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 YUV planes of <a href='#Image'>Image</a>. Returned <a href='#Image'>Image</a> has the dimensions
+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
 
 <table>  <tr>    <td><a name='SkImage_MakeFromYUVTexturesCopyWithExternalBackend_context'><code><strong>context</strong></code></a></td>
-    <td><a href='undocumented#GPU_Context'>GPU Context</a></td>
+    <td><a href='undocumented#GPU_Context'>GPU context</a></td>
   </tr>
   <tr>    <td><a name='SkImage_MakeFromYUVTexturesCopyWithExternalBackend_yuvColorSpace'><code><strong>yuvColorSpace</strong></code></a></td>
-    <td>one of: <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></td>
+    <td>one of: <a href='SkImageInfo_Reference#kJPEG_SkYUVColorSpace'>kJPEG_SkYUVColorSpace</a>, <a href='SkImageInfo_Reference#kRec601_SkYUVColorSpace'>kRec601_SkYUVColorSpace</a>,</td>
   </tr>
-  <tr>    <td><a name='SkImage_MakeFromYUVTexturesCopyWithExternalBackend_yuvTextures'><code><strong>yuvTextures</strong></code></a></td>
+</table>
+
+<a href='SkImageInfo_Reference#kRec709_SkYUVColorSpace'>kRec709_SkYUVColorSpace</a>
+
+### Parameters
+
+<table>  <tr>    <td><a name='SkImage_MakeFromYUVTexturesCopyWithExternalBackend_yuvTextures'><code><strong>yuvTextures</strong></code></a></td>
     <td>array of YUV textures on GPU</td>
   </tr>
   <tr>    <td><a name='SkImage_MakeFromYUVTexturesCopyWithExternalBackend_imageOrigin'><code><strong>imageOrigin</strong></code></a></td>
-    <td>one of: <a href='undocumented#kBottomLeft_GrSurfaceOrigin'>kBottomLeft GrSurfaceOrigin</a>, <a href='undocumented#kTopLeft_GrSurfaceOrigin'>kTopLeft GrSurfaceOrigin</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='SkImage_MakeFromYUVTexturesCopyWithExternalBackend_backendTexture'><code><strong>backendTexture</strong></code></a></td>
-    <td>resource that stores final pixels</td>
+    <td>the resource that stores the final pixels</td>
   </tr>
   <tr>    <td><a name='SkImage_MakeFromYUVTexturesCopyWithExternalBackend_imageColorSpace'><code><strong>imageColorSpace</strong></code></a></td>
     <td>range of colors; may be nullptr</td>
@@ -1047,7 +1163,7 @@
 
 ### Return Value
 
-created <a href='#SkImage'>SkImage</a>, or nullptr
+created <a href='SkImage_Reference#SkImage'>SkImage</a>, or nullptr
 
 ### See Also
 
@@ -1064,27 +1180,32 @@
                                                <a href='undocumented#sk_sp'>sk sp</a>&lt;<a href='undocumented#SkColorSpace'>SkColorSpace</a>&gt; imageColorSpace = nullptr)
 </pre>
 
-Creates <a href='#Image'>Image</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='#Image'>Image</a> has the dimensions <a href='#SkImage_MakeFromNV12TexturesCopy_nv12Textures'>nv12Textures</a>[2].
+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> 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
 
 <table>  <tr>    <td><a name='SkImage_MakeFromNV12TexturesCopy_context'><code><strong>context</strong></code></a></td>
-    <td><a href='undocumented#GPU_Context'>GPU Context</a></td>
+    <td><a href='undocumented#GPU_Context'>GPU context</a></td>
   </tr>
   <tr>    <td><a name='SkImage_MakeFromNV12TexturesCopy_yuvColorSpace'><code><strong>yuvColorSpace</strong></code></a></td>
-    <td>one of: <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></td>
+    <td>one of: <a href='SkImageInfo_Reference#kJPEG_SkYUVColorSpace'>kJPEG_SkYUVColorSpace</a>, <a href='SkImageInfo_Reference#kRec601_SkYUVColorSpace'>kRec601_SkYUVColorSpace</a>,</td>
   </tr>
-  <tr>    <td><a name='SkImage_MakeFromNV12TexturesCopy_nv12Textures'><code><strong>nv12Textures</strong></code></a></td>
+</table>
+
+<a href='SkImageInfo_Reference#kRec709_SkYUVColorSpace'>kRec709_SkYUVColorSpace</a>
+
+### Parameters
+
+<table>  <tr>    <td><a name='SkImage_MakeFromNV12TexturesCopy_nv12Textures'><code><strong>nv12Textures</strong></code></a></td>
     <td>array of YUV textures on GPU</td>
   </tr>
   <tr>    <td><a name='SkImage_MakeFromNV12TexturesCopy_imageOrigin'><code><strong>imageOrigin</strong></code></a></td>
-    <td>one of: <a href='undocumented#kBottomLeft_GrSurfaceOrigin'>kBottomLeft GrSurfaceOrigin</a>, <a href='undocumented#kTopLeft_GrSurfaceOrigin'>kTopLeft GrSurfaceOrigin</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='SkImage_MakeFromNV12TexturesCopy_imageColorSpace'><code><strong>imageColorSpace</strong></code></a></td>
     <td>range of colors; may be nullptr</td>
@@ -1093,7 +1214,7 @@
 
 ### Return Value
 
-created <a href='#Image'>Image</a>, or nullptr
+created <a href='SkImage_Reference#SkImage'>SkImage</a>, or nullptr
 
 ### See Also
 
@@ -1111,30 +1232,35 @@
                         <a href='undocumented#sk_sp'>sk sp</a>&lt;<a href='undocumented#SkColorSpace'>SkColorSpace</a>&gt; imageColorSpace = nullptr) ;
 </pre>
 
-Creates <a href='#Image'>Image</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='#Image'>Image</a> has the dimensions <a href='#SkImage_MakeFromNV12TexturesCopyWithExternalBackend_nv12Textures'>nv12Textures</a>[2] and stores pixels in <a href='#SkImage_MakeFromNV12TexturesCopyWithExternalBackend_backendTexture'>backendTexture</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> 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
 
 <table>  <tr>    <td><a name='SkImage_MakeFromNV12TexturesCopyWithExternalBackend_context'><code><strong>context</strong></code></a></td>
-    <td><a href='undocumented#GPU_Context'>GPU Context</a></td>
+    <td><a href='undocumented#GPU_Context'>GPU context</a></td>
   </tr>
   <tr>    <td><a name='SkImage_MakeFromNV12TexturesCopyWithExternalBackend_yuvColorSpace'><code><strong>yuvColorSpace</strong></code></a></td>
-    <td>one of: <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></td>
+    <td>one of: <a href='SkImageInfo_Reference#kJPEG_SkYUVColorSpace'>kJPEG_SkYUVColorSpace</a>, <a href='SkImageInfo_Reference#kRec601_SkYUVColorSpace'>kRec601_SkYUVColorSpace</a>,</td>
   </tr>
-  <tr>    <td><a name='SkImage_MakeFromNV12TexturesCopyWithExternalBackend_nv12Textures'><code><strong>nv12Textures</strong></code></a></td>
+</table>
+
+<a href='SkImageInfo_Reference#kRec709_SkYUVColorSpace'>kRec709_SkYUVColorSpace</a>
+
+### Parameters
+
+<table>  <tr>    <td><a name='SkImage_MakeFromNV12TexturesCopyWithExternalBackend_nv12Textures'><code><strong>nv12Textures</strong></code></a></td>
     <td>array of YUV textures on GPU</td>
   </tr>
   <tr>    <td><a name='SkImage_MakeFromNV12TexturesCopyWithExternalBackend_imageOrigin'><code><strong>imageOrigin</strong></code></a></td>
-    <td>one of: <a href='undocumented#kBottomLeft_GrSurfaceOrigin'>kBottomLeft GrSurfaceOrigin</a>, <a href='undocumented#kTopLeft_GrSurfaceOrigin'>kTopLeft GrSurfaceOrigin</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='SkImage_MakeFromNV12TexturesCopyWithExternalBackend_backendTexture'><code><strong>backendTexture</strong></code></a></td>
-    <td>resource that stores final pixels</td>
+    <td>the resource that stores the final pixels</td>
   </tr>
   <tr>    <td><a name='SkImage_MakeFromNV12TexturesCopyWithExternalBackend_imageColorSpace'><code><strong>imageColorSpace</strong></code></a></td>
     <td>range of colors; may be nullptr</td>
@@ -1143,7 +1269,7 @@
 
 ### Return Value
 
-created <a href='#Image'>Image</a>, or nullptr
+created <a href='SkImage_Reference#SkImage'>SkImage</a>, or nullptr
 
 ### See Also
 
@@ -1196,25 +1322,25 @@
                                       <a href='#SkImage_BitDepth'>BitDepth</a> bitDepth, <a href='undocumented#sk_sp'>sk sp</a>&lt;<a href='undocumented#SkColorSpace'>SkColorSpace</a>&gt; <a href='#SkImage_colorSpace'>colorSpace</a>)
 </pre>
 
-Creates <a href='#Image'>Image</a> from <a href='#SkImage_MakeFromPicture_picture'>picture</a>. Returned <a href='#Image'>Image</a> width and height are set by dimensions.
-<a href='#Image'>Image</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_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> is nullptr, draws with identity <a href='SkMatrix_Reference#Matrix'>Matrix</a>. If <a href='#SkImage_MakeFromPicture_paint'>paint</a> is nullptr, draws
-with default <a href='SkPaint_Reference#Paint'>Paint</a>. <a href='#SkImage_colorSpace'>colorSpace</a> may be nullptr.
+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>stream of drawing commands</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#Matrix'>Matrix</a> to rotate, scale, translate, and so on; may be nullptr</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#Paint'>Paint</a> to apply transparency, filtering, and so on; may be nullptr</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>
@@ -1226,7 +1352,7 @@
 
 ### Return Value
 
-created <a href='#Image'>Image</a>, or nullptr
+created <a href='SkImage_Reference#SkImage'>SkImage</a>, or nullptr
 
 ### Example
 
@@ -1248,8 +1374,9 @@
                                    <a href='undocumented#GrSurfaceOrigin'>GrSurfaceOrigin</a> surfaceOrigin = <a href='undocumented#kTopLeft_GrSurfaceOrigin'>kTopLeft GrSurfaceOrigin</a>)
 </pre>
 
-Creates <a href='#Image'>Image</a> from Android hardware buffer.
-Returned <a href='#Image'>Image</a> takes a reference on the buffer.
+(See Skia bug 7447)
+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.
 
@@ -1259,20 +1386,26 @@
     <td>AHardwareBuffer Android hardware buffer</td>
   </tr>
   <tr>    <td><a name='SkImage_MakeFromAHardwareBuffer_alphaType'><code><strong>alphaType</strong></code></a></td>
-    <td>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> </td>
+    <td>one of:</td>
   </tr>
-  <tr>    <td><a name='SkImage_MakeFromAHardwareBuffer_colorSpace'><code><strong>colorSpace</strong></code></a></td>
+</table>
+
+<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>
+
+### Parameters
+
+<table>  <tr>    <td><a name='SkImage_MakeFromAHardwareBuffer_colorSpace'><code><strong>colorSpace</strong></code></a></td>
     <td>range of colors; may be nullptr</td>
   </tr>
   <tr>    <td><a name='SkImage_MakeFromAHardwareBuffer_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>
+    <td>one of: <a href='undocumented#kBottomLeft_GrSurfaceOrigin'>kBottomLeft_GrSurfaceOrigin</a>, <a href='undocumented#kTopLeft_GrSurfaceOrigin'>kTopLeft_GrSurfaceOrigin</a></td>
   </tr>
 </table>
 
 ### Return Value
 
-created <a href='#Image'>Image</a>, or nullptr
+created <a href='SkImage_Reference#SkImage'>SkImage</a>, or nullptr
 
 ### See Also
 
@@ -1288,11 +1421,11 @@
 int <a href='#SkImage_width'>width</a>() const
 </pre>
 
-Returns pixel count in each row.
+Returns <a href='undocumented#Pixel'>pixel</a> count in each row.
 
 ### Return Value
 
-pixel width in <a href='#Image'>Image</a>
+<a href='undocumented#Pixel'>pixel</a> width in <a href='SkImage_Reference#SkImage'>SkImage</a>
 
 ### Example
 
@@ -1310,11 +1443,11 @@
 int <a href='#SkImage_height'>height</a>() const
 </pre>
 
-Returns pixel row count.
+Returns <a href='undocumented#Pixel'>pixel</a> row count.
 
 ### Return Value
 
-pixel height in <a href='#Image'>Image</a>
+<a href='undocumented#Pixel'>pixel</a> height in <a href='SkImage_Reference#SkImage'>SkImage</a>
 
 ### Example
 
@@ -1332,11 +1465,11 @@
 <a href='undocumented#SkISize'>SkISize</a> <a href='#SkImage_dimensions'>dimensions</a>() const
 </pre>
 
-Returns <a href='undocumented#ISize'>ISize</a> { <a href='#SkImage_width'>width</a>(), <a href='#SkImage_height'>height</a>() }.
+Returns <a href='undocumented#SkISize'>SkISize</a> { <a href='#SkImage_width'>width()</a>, <a href='#SkImage_height'>height()</a> }.
 
 ### Return Value
 
-integral size of <a href='#SkImage_width'>width</a>() and <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
 
@@ -1362,11 +1495,11 @@
 <a href='SkIRect_Reference#SkIRect'>SkIRect</a> <a href='#SkImage_bounds'>bounds</a>() const
 </pre>
 
-Returns <a href='SkIRect_Reference#IRect'>IRect</a> { 0, 0, <a href='#SkImage_width'>width</a>(), <a href='#SkImage_height'>height</a>() }.
+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>() and <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
 
@@ -1384,8 +1517,8 @@
 uint32_t <a href='#SkImage_uniqueID'>uniqueID</a>() const
 </pre>
 
-Returns value unique to image. <a href='#Image'>Image</a> contents cannot change after <a href='#Image'>Image</a> is
-created. Any operation to create a new <a href='#Image'>Image</a> will receive generate a new
+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
@@ -1434,11 +1567,11 @@
 <a href='SkImageInfo_Reference#SkColorType'>SkColorType</a> <a href='#SkImage_colorType'>colorType</a>() const
 </pre>
 
-Returns <a href='SkImageInfo_Reference#Color_Type'>Color Type</a> if known; otherwise, returns <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#Color_Type'>Color Type</a> of <a href='#Image'>Image</a>
+<a href='SkImageInfo_Reference#SkColorType'>SkColorType</a> of <a href='SkImage_Reference#SkImage'>SkImage</a>
 
 ### Example
 
@@ -1456,17 +1589,17 @@
 <a href='undocumented#SkColorSpace'>SkColorSpace</a>* <a href='#SkImage_colorSpace'>colorSpace</a>() const
 </pre>
 
-Returns <a href='undocumented#Color_Space'>Color Space</a>, the range of colors, associated with <a href='#Image'>Image</a>.  The
-reference count of <a href='undocumented#Color_Space'>Color Space</a> is unchanged. The returned <a href='undocumented#Color_Space'>Color Space</a> is
+Returns <a href='undocumented#SkColorSpace'>SkColorSpace</a>, the range of colors, associated with <a href='SkImage_Reference#SkImage'>SkImage</a>.  The
+<a href='undocumented#Reference_Count'>reference count</a> of <a href='undocumented#SkColorSpace'>SkColorSpace</a> is unchanged. The returned <a href='undocumented#SkColorSpace'>SkColorSpace</a> is
 immutable.
 
-<a href='undocumented#Color_Space'>Color Space</a> returned was passed to an <a href='#Image'>Image</a> constructor,
-or was parsed from encoded data. <a href='undocumented#Color_Space'>Color Space</a> returned may be ignored when <a href='#Image'>Image</a>
-is drawn, depending on the capabilities of the <a href='SkSurface_Reference#Surface'>Surface</a> receiving the drawing.
+<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#Color_Space'>Color Space</a> in <a href='#Image'>Image</a>, or nullptr
+<a href='undocumented#SkColorSpace'>SkColorSpace</a> in <a href='SkImage_Reference#SkImage'>SkImage</a>, or nullptr
 
 ### Example
 
@@ -1484,19 +1617,19 @@
 <a href='undocumented#sk_sp'>sk sp</a>&lt;<a href='undocumented#SkColorSpace'>SkColorSpace</a>&gt; <a href='#SkImage_refColorSpace'>refColorSpace</a>() const
 </pre>
 
-Returns a smart pointer to <a href='undocumented#Color_Space'>Color Space</a>, the range of colors, associated with
-<a href='#Image'>Image</a>.  The smart pointer tracks the number of objects sharing this
+Returns a  <a href='undocumented#Smart_Pointer'>smart pointer</a> to <a href='undocumented#SkColorSpace'>SkColorSpace</a>, the range of colors, associated with
+<a href='SkImage_Reference#SkImage'>SkImage</a>.  The  <a href='undocumented#Smart_Pointer'>smart pointer</a> 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> is immutable.
 
-<a href='undocumented#Color_Space'>Color Space</a> returned was passed to an <a href='#Image'>Image</a> constructor,
-or was parsed from encoded data. <a href='undocumented#Color_Space'>Color Space</a> returned may be ignored when <a href='#Image'>Image</a>
-is drawn, depending on the capabilities of the <a href='SkSurface_Reference#Surface'>Surface</a> receiving the drawing.
+<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#Color_Space'>Color Space</a> in <a href='#Image'>Image</a>, or nullptr, wrapped in a smart pointer
+<a href='undocumented#SkColorSpace'>SkColorSpace</a> in <a href='SkImage_Reference#SkImage'>SkImage</a>, or nullptr, wrapped in a  <a href='undocumented#Smart_Pointer'>smart pointer</a>
 
 ### Example
 
@@ -1514,7 +1647,7 @@
 bool <a href='#SkImage_isAlphaOnly'>isAlphaOnly</a>() const
 </pre>
 
-Returns true if <a href='#Image'>Image</a> pixels represent transparency only. If true, each pixel
+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
@@ -1545,11 +1678,11 @@
 bool <a href='#SkImage_isOpaque'>isOpaque</a>() const
 </pre>
 
-Returns true if pixels ignore their <a href='SkColor_Reference#Alpha'>Alpha</a> value and are treated as fully opaque.
+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#Alpha_Type'>Alpha Type</a> is <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
 
@@ -1577,28 +1710,38 @@
                            const <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a>* localMatrix = nullptr) const
 </pre>
 
-Creates <a href='undocumented#Shader'>Shader</a> from <a href='#Image'>Image</a>. <a href='undocumented#Shader'>Shader</a> dimensions are taken from <a href='#Image'>Image</a>. <a href='undocumented#Shader'>Shader</a> uses
-<a href='undocumented#SkShader_TileMode'>SkShader::TileMode</a> rules to fill drawn area outside <a href='#Image'>Image</a>. <a href='#SkImage_makeShader_localMatrix'>localMatrix</a> permits
-transforming <a href='#Image'>Image</a> before <a href='SkCanvas_Reference#Matrix'>Canvas Matrix</a> is applied.
+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
 
 <table>  <tr>    <td><a name='SkImage_makeShader_tileMode1'><code><strong>tileMode1</strong></code></a></td>
-    <td>tiling on x-axis, one of: <a href='undocumented#SkShader_kClamp_TileMode'>SkShader::kClamp TileMode</a>,
-<a href='undocumented#SkShader_kRepeat_TileMode'>SkShader::kRepeat TileMode</a>, <a href='undocumented#SkShader_kMirror_TileMode'>SkShader::kMirror TileMode</a></td>
+    <td>tiling on x-axis, one of: <a href='undocumented#SkShader'>SkShader</a>::<a href='#SkShader_kClamp_TileMode'>kClamp_TileMode</a>,</td>
   </tr>
-  <tr>    <td><a name='SkImage_makeShader_tileMode2'><code><strong>tileMode2</strong></code></a></td>
-    <td>tiling on y-axis, one of: <a href='undocumented#SkShader_kClamp_TileMode'>SkShader::kClamp TileMode</a>,
-<a href='undocumented#SkShader_kRepeat_TileMode'>SkShader::kRepeat TileMode</a>, <a href='undocumented#SkShader_kMirror_TileMode'>SkShader::kMirror TileMode</a></td>
+</table>
+
+<a href='undocumented#SkShader'>SkShader</a>::<a href='#SkShader_kRepeat_TileMode'>kRepeat_TileMode</a>, <a href='undocumented#SkShader'>SkShader</a>::<a href='#SkShader_kMirror_TileMode'>kMirror_TileMode</a>
+
+### Parameters
+
+<table>  <tr>    <td><a name='SkImage_makeShader_tileMode2'><code><strong>tileMode2</strong></code></a></td>
+    <td>tiling on y-axis, one of: <a href='undocumented#SkShader'>SkShader</a>::<a href='#SkShader_kClamp_TileMode'>kClamp_TileMode</a>,</td>
   </tr>
-  <tr>    <td><a name='SkImage_makeShader_localMatrix'><code><strong>localMatrix</strong></code></a></td>
-    <td><a href='#Image'>Image</a> transformation, or nullptr</td>
+</table>
+
+<a href='undocumented#SkShader'>SkShader</a>::<a href='#SkShader_kRepeat_TileMode'>kRepeat_TileMode</a>, <a href='undocumented#SkShader'>SkShader</a>::<a href='#SkShader_kMirror_TileMode'>kMirror_TileMode</a>
+
+### Parameters
+
+<table>  <tr>    <td><a name='SkImage_makeShader_localMatrix'><code><strong>localMatrix</strong></code></a></td>
+    <td><a href='SkImage_Reference#SkImage'>SkImage</a> transformation, or nullptr</td>
   </tr>
 </table>
 
 ### Return Value
 
-<a href='undocumented#Shader'>Shader</a> containing <a href='#Image'>Image</a>
+<a href='undocumented#SkShader'>SkShader</a> containing <a href='SkImage_Reference#SkImage'>SkImage</a>
 
 ### Example
 
@@ -1616,20 +1759,20 @@
 <a href='undocumented#sk_sp'>sk sp</a>&lt;<a href='undocumented#SkShader'>SkShader</a>&gt; <a href='#SkImage_makeShader'>makeShader</a>(const <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a>* localMatrix = nullptr) const
 </pre>
 
-Creates <a href='undocumented#Shader'>Shader</a> from <a href='#Image'>Image</a>. <a href='undocumented#Shader'>Shader</a> dimensions are taken from <a href='#Image'>Image</a>. <a href='undocumented#Shader'>Shader</a> uses
-<a href='undocumented#SkShader_kClamp_TileMode'>SkShader::kClamp TileMode</a> to fill drawn area outside <a href='#Image'>Image</a>. <a href='#SkImage_makeShader_2_localMatrix'>localMatrix</a> permits
-transforming <a href='#Image'>Image</a> before <a href='SkCanvas_Reference#Matrix'>Canvas Matrix</a> is applied.
+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='#Image'>Image</a> transformation, or nullptr</td>
+    <td><a href='SkImage_Reference#SkImage'>SkImage</a> transformation, or nullptr</td>
   </tr>
 </table>
 
 ### Return Value
 
-<a href='undocumented#Shader'>Shader</a> containing <a href='#Image'>Image</a>
+<a href='undocumented#SkShader'>SkShader</a> containing <a href='SkImage_Reference#SkImage'>SkImage</a>
 
 ### Example
 
@@ -1649,20 +1792,20 @@
 bool <a href='#SkImage_peekPixels'>peekPixels</a>(<a href='SkPixmap_Reference#SkPixmap'>SkPixmap</a>* pixmap) const
 </pre>
 
-Copies <a href='#Image'>Image</a> pixel address, row bytes, and <a href='SkImageInfo_Reference#Image_Info'>Image Info</a> to <a href='#SkImage_peekPixels_pixmap'>pixmap</a>, if address
-is available, and returns true. If pixel address is not available, return
+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 pixel state if pixels are readable; otherwise, ignored</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='#Image'>Image</a> has direct access to pixels
+true if <a href='SkImage_Reference#SkImage'>SkImage</a> has direct access to pixels
 
 ### Example
 
@@ -1708,12 +1851,12 @@
 bool <a href='#SkImage_isTextureBacked'>isTextureBacked</a>() const
 </pre>
 
-Returns true the contents of <a href='#Image'>Image</a> was created on or uploaded to GPU memory,
-and is available as a <a href='undocumented#GPU_Texture'>GPU Texture</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  <a href='undocumented#GPU_Texture'>GPU texture</a>.
 
 ### Return Value
 
-true if <a href='#Image'>Image</a> is a <a href='undocumented#GPU_Texture'>GPU Texture</a>
+true if <a href='SkImage_Reference#SkImage'>SkImage</a> is a  <a href='undocumented#GPU_Texture'>GPU texture</a>
 
 ### Example
 
@@ -1731,24 +1874,24 @@
 bool <a href='#SkImage_isValid'>isValid</a>(<a href='undocumented#GrContext'>GrContext</a>* context) const
 </pre>
 
-Returns true if <a href='#Image'>Image</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='#Image'>Image</a> draws on <a href='undocumented#Raster_Surface'>Raster Surface</a>;
-otherwise, tests if <a href='#Image'>Image</a> draws on <a href='undocumented#GPU_Surface'>GPU Surface</a> associated with <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='#Image'>Image</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.
+<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.
 
 ### Parameters
 
 <table>  <tr>    <td><a name='SkImage_isValid_context'><code><strong>context</strong></code></a></td>
-    <td><a href='undocumented#GPU_Context'>GPU Context</a></td>
+    <td><a href='undocumented#GPU_Context'>GPU context</a></td>
   </tr>
 </table>
 
 ### Return Value
 
-true if <a href='#Image'>Image</a> can be drawn
+true if <a href='SkImage_Reference#SkImage'>SkImage</a> can be drawn
 
 ### Example
 
@@ -1766,13 +1909,13 @@
 <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 texture. If <a href='#Image'>Image</a> has no back-end texture, an invalid
-object is returned. Call <a href='undocumented#GrBackendTexture_isValid'>GrBackendTexture::isValid</a> to determine if the result
+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> is true, completes deferred I/O operations.
 
-If <a href='#SkImage_getBackendTexture_origin'>origin</a> in not nullptr, copies location of content drawn into <a href='#Image'>Image</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
 
@@ -1780,14 +1923,15 @@
     <td>flag to flush outstanding requests</td>
   </tr>
   <tr>    <td><a name='SkImage_getBackendTexture_origin'><code><strong>origin</strong></code></a></td>
-    <td>storage for one of: <a href='undocumented#kTopLeft_GrSurfaceOrigin'>kTopLeft GrSurfaceOrigin</a>,
-<a href='undocumented#kBottomLeft_GrSurfaceOrigin'>kBottomLeft GrSurfaceOrigin</a>; or nullptr</td>
+    <td>storage for one of: <a href='undocumented#kTopLeft_GrSurfaceOrigin'>kTopLeft_GrSurfaceOrigin</a>,</td>
   </tr>
 </table>
 
+<a href='undocumented#kBottomLeft_GrSurfaceOrigin'>kBottomLeft_GrSurfaceOrigin</a>; or nullptr
+
 ### Return Value
 
-back-end API texture handle; invalid on failure
+back-end API <a href='undocumented#Texture'>texture</a> handle; invalid on failure
 
 ### Example
 
@@ -1991,39 +2135,44 @@
                  <a href='#SkImage_CachingHint'>CachingHint</a> cachingHint = <a href='#SkImage_kAllow_CachingHint'>kAllow CachingHint</a>) const
 </pre>
 
-Copies <a href='#Image'>Image</a> to <a href='#SkImage_scalePixels_dst'>dst</a>, scaling pixels to fit <a href='#SkImage_scalePixels_dst'>dst</a>.<a href='#SkImage_width'>width</a>() and <a href='#SkImage_scalePixels_dst'>dst</a>.<a href='#SkImage_height'>height</a>(), and
-converting pixels to match <a href='#SkImage_scalePixels_dst'>dst</a>.<a href='#SkImage_colorType'>colorType</a> and <a href='#SkImage_scalePixels_dst'>dst</a>.<a href='#SkImage_alphaType'>alphaType</a>. Returns true if
-pixels are copied. Returns false if <a href='#SkImage_scalePixels_dst'>dst</a>.addr() is nullptr, or <a href='#SkImage_scalePixels_dst'>dst</a>.<a href='SkPixmap_Reference#SkPixmap'>rowBytes</a> is
-less than <a href='#SkImage_scalePixels_dst'>dst</a> <a href='SkImageInfo_Reference#SkImageInfo_minRowBytes'>SkImageInfo::minRowBytes</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>.
 
-<a href='#Pixels'>Pixels</a> are copied only if pixel conversion is possible. If <a href='#Image'>Image</a> <a href='SkImageInfo_Reference#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_scalePixels_dst'>dst</a>.<a href='#SkImage_colorType'>colorType</a> must match.
-If <a href='#Image'>Image</a> <a href='SkImageInfo_Reference#Color_Type'>Color Type</a> is <a href='SkImageInfo_Reference#kGray_8_SkColorType'>kGray_8_SkColorType</a>, <a href='#SkImage_scalePixels_dst'>dst</a>.<a href='#SkImage_colorSpace'>colorSpace</a> must match.
-If <a href='#Image'>Image</a> <a href='SkImageInfo_Reference#Alpha_Type'>Alpha Type</a> is <a href='SkImageInfo_Reference#kOpaque_SkAlphaType'>kOpaque_SkAlphaType</a>, <a href='#SkImage_scalePixels_dst'>dst</a>.<a href='#SkImage_alphaType'>alphaType</a> must
-match. If <a href='#Image'>Image</a> <a href='undocumented#Color_Space'>Color Space</a> is nullptr, <a href='#SkImage_scalePixels_dst'>dst</a>.<a href='#SkImage_colorSpace'>colorSpace</a> must match. Returns
-false if pixel conversion is not possible.
+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 image, with <a href='#SkImage_scalePixels_filterQuality'>filterQuality</a>, to match <a href='#SkImage_scalePixels_dst'>dst</a>.<a href='#SkImage_width'>width</a>() and <a href='#SkImage_scalePixels_dst'>dst</a>.<a href='#SkImage_height'>height</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'>Filter Quality Nearest Neighbor</a>. <a href='undocumented#kLow_SkFilterQuality'>kLow_SkFilterQuality</a> is typically implemented with
-<a href='undocumented#Bilerp'>Filter Quality Bilerp</a>. <a href='undocumented#kMedium_SkFilterQuality'>kMedium_SkFilterQuality</a> is typically implemented with
-<a href='undocumented#Bilerp'>Filter Quality Bilerp</a>, and <a href='undocumented#MipMap'>Filter Quality MipMap</a> when size is reduced.
-<a href='undocumented#kHigh_SkFilterQuality'>kHigh_SkFilterQuality</a> is slowest, typically implemented with <a href='undocumented#BiCubic'>Filter Quality BiCubic</a>.
+<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> 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.
+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#Pixmap'>Pixmap</a>: <a href='SkImageInfo_Reference#Image_Info'>Image Info</a>, pixels, row bytes</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>,
-<a href='undocumented#kMedium_SkFilterQuality'>kMedium_SkFilterQuality</a>, <a href='undocumented#kHigh_SkFilterQuality'>kHigh_SkFilterQuality</a></td>
+    <td>one of: <a href='undocumented#kNone_SkFilterQuality'>kNone_SkFilterQuality</a>, <a href='undocumented#kLow_SkFilterQuality'>kLow_SkFilterQuality</a>,</td>
   </tr>
-  <tr>    <td><a name='SkImage_scalePixels_cachingHint'><code><strong>cachingHint</strong></code></a></td>
-    <td>one of: <a href='#SkImage_kAllow_CachingHint'>kAllow CachingHint</a>, <a href='#SkImage_kDisallow_CachingHint'>kDisallow CachingHint</a></td>
+</table>
+
+<a href='undocumented#kMedium_SkFilterQuality'>kMedium_SkFilterQuality</a>, <a href='undocumented#kHigh_SkFilterQuality'>kHigh_SkFilterQuality</a>
+
+### Parameters
+
+<table>  <tr>    <td><a name='SkImage_scalePixels_cachingHint'><code><strong>cachingHint</strong></code></a></td>
+    <td>one of: <a href='#SkImage_kAllow_CachingHint'>kAllow_CachingHint</a>, <a href='#SkImage_kDisallow_CachingHint'>kDisallow_CachingHint</a></td>
   </tr>
 </table>
 
@@ -2047,36 +2196,41 @@
 <a href='undocumented#sk_sp'>sk sp</a>&lt;<a href='undocumented#SkData'>SkData</a>&gt; <a href='#SkImage_encodeToData'>encodeToData</a>(<a href='undocumented#SkEncodedImageFormat'>SkEncodedImageFormat</a> encodedImageFormat, int quality) const
 </pre>
 
-Encodes <a href='#Image'>Image</a> pixels, returning result as <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> is not supported.
 
-<a href='#Image'>Image</a> encoding in a format requires both building with one or more of:
+<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> can
-additionally be one of: <a href='undocumented#SkEncodedImageFormat_kICO'>SkEncodedImageFormat::kICO</a>, <a href='undocumented#SkEncodedImageFormat_kBMP'>SkEncodedImageFormat::kBMP</a>,
-<a href='undocumented#SkEncodedImageFormat_kGIF'>SkEncodedImageFormat::kGIF</a>.
+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> is a platform and format specific metric trading off size and encoding
+<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
 
 <table>  <tr>    <td><a name='SkImage_encodeToData_encodedImageFormat'><code><strong>encodedImageFormat</strong></code></a></td>
-    <td>one of: <a href='undocumented#SkEncodedImageFormat_kJPEG'>SkEncodedImageFormat::kJPEG</a>, <a href='undocumented#SkEncodedImageFormat_kPNG'>SkEncodedImageFormat::kPNG</a>,
-<a href='undocumented#SkEncodedImageFormat_kWEBP'>SkEncodedImageFormat::kWEBP</a></td>
+    <td>one of: <a href='undocumented#SkEncodedImageFormat'>SkEncodedImageFormat</a>::<a href='#SkEncodedImageFormat_kJPEG'>kJPEG</a>, <a href='undocumented#SkEncodedImageFormat'>SkEncodedImageFormat</a>::<a href='#SkEncodedImageFormat_kPNG'>kPNG</a>,</td>
   </tr>
-  <tr>    <td><a name='SkImage_encodeToData_quality'><code><strong>quality</strong></code></a></td>
+</table>
+
+<a href='undocumented#SkEncodedImageFormat'>SkEncodedImageFormat</a>::<a href='#SkEncodedImageFormat_kWEBP'>kWEBP</a>
+
+### Parameters
+
+<table>  <tr>    <td><a name='SkImage_encodeToData_quality'><code><strong>quality</strong></code></a></td>
     <td>encoder specific metric with 100 equaling best</td>
   </tr>
 </table>
 
 ### Return Value
 
-encoded <a href='#Image'>Image</a>, or nullptr
+encoded <a href='SkImage_Reference#SkImage'>SkImage</a>, or nullptr
 
 ### Example
 
@@ -2094,16 +2248,16 @@
 <a href='undocumented#sk_sp'>sk sp</a>&lt;<a href='undocumented#SkData'>SkData</a>&gt; <a href='#SkImage_encodeToData'>encodeToData</a>() const
 </pre>
 
-Encodes <a href='#Image'>Image</a> pixels, returning result as <a href='undocumented#SkData'>SkData</a>. Returns existing encoded data
-if present; otherwise, <a href='#Image'>Image</a> is encoded with <a href='undocumented#SkEncodedImageFormat_kPNG'>SkEncodedImageFormat::kPNG</a>. Skia
-must be built with SK_HAS_PNG_LIBRARY to encode <a href='#Image'>Image</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 data is missing or invalid, and
+Returns nullptr if existing encoded <a href='undocumented#Data'>data</a> is missing or invalid, and
 encoding fails.
 
 ### Return Value
 
-encoded <a href='#Image'>Image</a>, or nullptr
+encoded <a href='SkImage_Reference#SkImage'>SkImage</a>, or nullptr
 
 ### Example
 
@@ -2121,15 +2275,15 @@
 <a href='undocumented#sk_sp'>sk sp</a>&lt;<a href='undocumented#SkData'>SkData</a>&gt; <a href='#SkImage_refEncodedData'>refEncodedData</a>() const
 </pre>
 
-Returns encoded <a href='#Image'>Image</a> pixels as <a href='undocumented#SkData'>SkData</a>, if <a href='#Image'>Image</a> was created from supported
-encoded stream format. Platform support for formats vary and may require building
+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='#Image'>Image</a> contents are not encoded.
+Returns nullptr if <a href='SkImage_Reference#SkImage'>SkImage</a> contents are not encoded.
 
 ### Return Value
 
-encoded <a href='#Image'>Image</a>, or nullptr
+encoded <a href='SkImage_Reference#SkImage'>SkImage</a>, or nullptr
 
 ### Example
 
@@ -2149,22 +2303,22 @@
 <a href='undocumented#sk_sp'>sk sp</a>&lt;<a href='#SkImage'>SkImage</a>&gt; <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> of <a href='#Image'>Image</a>. <a href='#SkImage_makeSubset_subset'>subset</a> must be fully contained by <a href='#Image'>Image</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> is empty, or <a href='#SkImage_makeSubset_subset'>subset</a> is not contained by bounds, or
-pixels in <a href='#Image'>Image</a> could not be read or copied.
+pixels in <a href='SkImage_Reference#SkImage'>SkImage</a> could not be read or copied.
 
 ### Parameters
 
 <table>  <tr>    <td><a name='SkImage_makeSubset_subset'><code><strong>subset</strong></code></a></td>
-    <td>bounds of returned <a href='#Image'>Image</a></td>
+    <td>bounds of returned <a href='SkImage_Reference#SkImage'>SkImage</a></td>
   </tr>
 </table>
 
 ### Return Value
 
-partial or full <a href='#Image'>Image</a>, or nullptr
+partial or full <a href='SkImage_Reference#SkImage'>SkImage</a>, or nullptr
 
 ### Example
 
@@ -2183,31 +2337,31 @@
                                 <a href='undocumented#GrMipMapped'>GrMipMapped</a> mipMapped = <a href='undocumented#GrMipMapped_kNo'>GrMipMapped::kNo</a>) const
 </pre>
 
-Returns <a href='#Image'>Image</a> backed by <a href='undocumented#GPU_Texture'>GPU Texture</a> associated with <a href='#SkImage_makeTextureImage_context'>context</a>. Returned <a href='#Image'>Image</a> is
-compatible with <a href='SkSurface_Reference#Surface'>Surface</a> created with <a href='#SkImage_makeTextureImage_dstColorSpace'>dstColorSpace</a>. The returned <a href='#Image'>Image</a> respects
-<a href='#SkImage_makeTextureImage_mipMapped'>mipMapped</a> setting; if <a href='#SkImage_makeTextureImage_mipMapped'>mipMapped</a> equals <a href='undocumented#GrMipMapped_kYes'>GrMipMapped::kYes</a>, the backing texture
-allocates <a href='undocumented#Mip_Map'>Mip Map</a> levels. Returns original <a href='#Image'>Image</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 <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> is nullptr, or if <a href='#Image'>Image</a> was created with another
+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
 
 <table>  <tr>    <td><a name='SkImage_makeTextureImage_context'><code><strong>context</strong></code></a></td>
-    <td><a href='undocumented#GPU_Context'>GPU Context</a></td>
+    <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#Surface'>Surface</a> on GPU</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='#Image'>Image</a> texture must allocate <a href='undocumented#Mip_Map'>Mip Map</a> levels</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='#Image'>Image</a>, or nullptr
+created <a href='SkImage_Reference#SkImage'>SkImage</a>, or nullptr
 
 ### Example
 
@@ -2225,15 +2379,15 @@
 <a href='undocumented#sk_sp'>sk sp</a>&lt;<a href='#SkImage'>SkImage</a>&gt; <a href='#SkImage_makeNonTextureImage'>makeNonTextureImage</a>() const
 </pre>
 
-Returns <a href='#Raster_Image'>Raster Image</a> or <a href='#Lazy_Image'>Lazy Image</a>. Copies <a href='#Image'>Image</a> backed by <a href='undocumented#GPU_Texture'>GPU Texture</a> into
-CPU memory if needed. Returns original <a href='#Image'>Image</a> if decoded in <a href='undocumented#Raster_Bitmap'>Raster Bitmap</a>,
-or if encoded in a stream.
+Returns  <a href='#Raster_Image'>raster image</a> or  <a href='#Lazy_Image'>lazy image</a>. Copies <a href='SkImage_Reference#SkImage'>SkImage</a> backed by  <a href='undocumented#GPU_Texture'>GPU texture</a> into
+CPU memory if needed. Returns original <a href='SkImage_Reference#SkImage'>SkImage</a> if decoded in  <a href='undocumented#Raster_Bitmap'>raster bitmap</a>,
+or if encoded in a <a href='SkStream_Reference#Stream'>stream</a>.
 
-Returns nullptr if backed by <a href='undocumented#GPU_Texture'>GPU Texture</a> and copy fails.
+Returns nullptr if backed by  <a href='undocumented#GPU_Texture'>GPU texture</a> and copy fails.
 
 ### Return Value
 
-<a href='#Raster_Image'>Raster Image</a>, <a href='#Lazy_Image'>Lazy Image</a>, or nullptr
+<a href='#Raster_Image'>raster image</a>,  <a href='#Lazy_Image'>lazy image</a>, or nullptr
 
 ### Example
 
@@ -2251,15 +2405,15 @@
 <a href='undocumented#sk_sp'>sk sp</a>&lt;<a href='#SkImage'>SkImage</a>&gt; <a href='#SkImage_makeRasterImage'>makeRasterImage</a>() const
 </pre>
 
-Returns <a href='#Raster_Image'>Raster Image</a>. Copies <a href='#Image'>Image</a> backed by <a href='undocumented#GPU_Texture'>GPU Texture</a> into CPU memory,
-or decodes <a href='#Image'>Image</a> from <a href='#Lazy_Image'>Lazy Image</a>. Returns original <a href='#Image'>Image</a> if decoded in
-<a href='undocumented#Raster_Bitmap'>Raster Bitmap</a>.
+Returns  <a href='#Raster_Image'>raster image</a>. Copies <a href='SkImage_Reference#SkImage'>SkImage</a> backed by  <a href='undocumented#GPU_Texture'>GPU texture</a> into CPU memory,
+or decodes <a href='SkImage_Reference#SkImage'>SkImage</a> from  <a href='#Lazy_Image'>lazy image</a>. Returns original <a href='SkImage_Reference#SkImage'>SkImage</a> if decoded in
+<a href='undocumented#Raster_Bitmap'>raster bitmap</a>.
 
-Returns nullptr if copy, decode, or pixel read fails.
+Returns nullptr if copy, decode, or <a href='undocumented#Pixel'>pixel</a> read fails.
 
 ### Return Value
 
-<a href='#Raster_Image'>Raster Image</a>, or nullptr
+<a href='#Raster_Image'>raster image</a>, or nullptr
 
 ### Example
 
@@ -2278,48 +2432,48 @@
                               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='#Image'>Image</a>. <a href='#SkImage_makeWithFilter_filter'>filter</a> processes original <a href='#Image'>Image</a>, potentially changing
-color, position, and size. <a href='#SkImage_makeWithFilter_subset'>subset</a> is the bounds of original <a href='#Image'>Image</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='#Image'>Image</a>. <a href='#SkImage_makeWithFilter_outSubset'>outSubset</a>
-is required storage for the actual bounds of the filtered <a href='#Image'>Image</a>. <a href='#SkImage_makeWithFilter_offset'>offset</a> is
-required storage for translation of returned <a href='#Image'>Image</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='#Image'>Image</a> could not be created. If nullptr is returned, <a href='#SkImage_makeWithFilter_outSubset'>outSubset</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> that varies size from frame to frame.
-Returned <a href='#Image'>Image</a> is created larger than required by <a href='#SkImage_makeWithFilter_filter'>filter</a> so that <a href='undocumented#GPU_Texture'>GPU Texture</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='#Image'>Image</a> to keep subsequent
+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='#Image'>Image</a> is sampled when transformed</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='#Image'>Image</a> processed by <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='#Image'>Image</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='#Image'>Image</a> bounds</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='#Image'>Image</a> translation</td>
+    <td>storage for returned <a href='SkImage_Reference#SkImage'>SkImage</a> translation</td>
   </tr>
 </table>
 
 ### Return Value
 
-filtered <a href='#Image'>Image</a>, or nullptr
+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='#Image'>Image</a> is drawn in a different location.
-By translating canvas by returned <a href='#SkImage_makeWithFilter_offset'>offset</a>, <a href='#Image'>Image</a> appears stationary.
+By translating canvas by returned offset, <a href='#Image'>Image</a> appears stationary.
 </div></fiddle-embed></div>
 
 ### See Also
@@ -2349,31 +2503,31 @@
                                           <a href='#SkImage_BackendTextureReleaseProc'>BackendTextureReleaseProc</a>* backendTextureReleaseProc)
 </pre>
 
-Creates a <a href='undocumented#GrBackendTexture'>GrBackendTexture</a> from the provided <a href='#SkImage'>SkImage</a>. Returns true and
+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
-texture is created; otherwise, returns false and leaves
+<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> after deleting <a href='#SkImage_MakeBackendTextureFromSkImage_backendTexture'>backendTexture</a>.
-<a href='#SkImage_MakeBackendTextureFromSkImage_backendTextureReleaseProc'>backendTextureReleaseProc</a> cleans up auxiliary data related to returned
+<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='#Image'>Image</a> is both texture 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='#Image'>Image</a> is singly referenced
+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='#Image'>Image</a> is not texture backed, returns texture with <a href='#Image'>Image</a> contents.
+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
 
 <table>  <tr>    <td><a name='SkImage_MakeBackendTextureFromSkImage_context'><code><strong>context</strong></code></a></td>
-    <td><a href='undocumented#GPU_Context'>GPU Context</a></td>
+    <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='#Image'>Image</a> used for texture</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 texture</td>
+    <td>storage for back-end <a href='undocumented#Texture'>texture</a></td>
   </tr>
   <tr>    <td><a name='SkImage_MakeBackendTextureFromSkImage_backendTextureReleaseProc'><code><strong>backendTextureReleaseProc</strong></code></a></td>
     <td>storage for clean up function</td>
@@ -2382,7 +2536,7 @@
 
 ### Return Value
 
-true if back-end texture was created
+true if back-end <a href='undocumented#Texture'>texture</a> was created
 
 ### Example
 
@@ -2426,15 +2580,15 @@
 bool <a href='#SkImage_asLegacyBitmap'>asLegacyBitmap</a>(<a href='SkBitmap_Reference#SkBitmap'>SkBitmap</a>* bitmap, <a href='#SkImage_LegacyBitmapMode'>LegacyBitmapMode</a> legacyBitmapMode = <a href='#SkImage_kRO_LegacyBitmapMode'>kRO LegacyBitmapMode</a>) const
 </pre>
 
-Creates raster <a href='SkBitmap_Reference#Bitmap'>Bitmap</a> with same pixels as <a href='#Image'>Image</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#Bitmap'>Bitmap</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#Bitmap'>Bitmap</a> write did not succeed.
+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
 
 <table>  <tr>    <td><a name='SkImage_asLegacyBitmap_bitmap'><code><strong>bitmap</strong></code></a></td>
-    <td>storage for legacy <a href='SkBitmap_Reference#Bitmap'>Bitmap</a></td>
+    <td>storage for legacy <a href='SkBitmap_Reference#SkBitmap'>SkBitmap</a></td>
   </tr>
   <tr>    <td><a name='SkImage_asLegacyBitmap_legacyBitmapMode'><code><strong>legacyBitmapMode</strong></code></a></td>
     <td>to be deprecated</td>
@@ -2443,7 +2597,7 @@
 
 ### Return Value
 
-true if <a href='SkBitmap_Reference#Bitmap'>Bitmap</a> was created
+true if <a href='SkBitmap_Reference#SkBitmap'>SkBitmap</a> was created
 
 ### Example
 
@@ -2461,12 +2615,12 @@
 bool <a href='#SkImage_isLazyGenerated'>isLazyGenerated</a>() const
 </pre>
 
-Returns true if <a href='#Image'>Image</a> is backed by an image-generator or other service that creates
-and caches its pixels or texture on-demand.
+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='#Image'>Image</a> is created as needed
+true if <a href='SkImage_Reference#SkImage'>SkImage</a> is created as needed
 
 ### Example
 
@@ -2488,23 +2642,23 @@
 <a href='undocumented#sk_sp'>sk sp</a>&lt;<a href='#SkImage'>SkImage</a>&gt; <a href='#SkImage_makeColorSpace'>makeColorSpace</a>(<a href='undocumented#sk_sp'>sk sp</a>&lt;<a href='undocumented#SkColorSpace'>SkColorSpace</a>&gt; target) const
 </pre>
 
-Creates <a href='#Image'>Image</a> in <a href='#SkImage_makeColorSpace_target'>target</a> <a href='undocumented#Color_Space'>Color Space</a>.
-Returns nullptr if <a href='#Image'>Image</a> could not be created.
+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='#Image'>Image</a> if it is in <a href='#SkImage_makeColorSpace_target'>target</a> <a href='undocumented#Color_Space'>Color Space</a>.
-Otherwise, converts pixels from <a href='#Image'>Image</a> <a href='undocumented#Color_Space'>Color Space</a> to <a href='#SkImage_makeColorSpace_target'>target</a> <a href='undocumented#Color_Space'>Color Space</a>.
-If <a href='#Image'>Image</a> <a href='#SkImage_colorSpace'>colorSpace</a> returns nullptr, <a href='#Image'>Image</a> <a href='undocumented#Color_Space'>Color Space</a> is assumed to be sRGB.
+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#Color_Space'>Color Space</a> describing color range of returned <a href='#Image'>Image</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='#Image'>Image</a> in <a href='#SkImage_makeColorSpace_target'>target</a> <a href='undocumented#Color_Space'>Color Space</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 af70d24..6aa9d28 100644
--- a/site/user/api/SkMatrix_Reference.md
+++ b/site/user/api/SkMatrix_Reference.md
@@ -147,7 +147,7 @@
     <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'>SkMatrix</a>* remaining = nullptr) const;
-    static const <a href='#SkMatrix'>SkMatrix</a>& I();
+    static const <a href='#SkMatrix'>SkMatrix</a>& <a href='#SkMatrix_I'>I</a>();
     static const <a href='#SkMatrix'>SkMatrix</a>& <a href='#SkMatrix_InvalidMatrix'>InvalidMatrix</a>();
     static <a href='#SkMatrix'>SkMatrix</a> <a href='#SkMatrix_Concat'>Concat</a>(const <a href='#SkMatrix'>SkMatrix</a>& a, const <a href='#SkMatrix'>SkMatrix</a>& b);
     void <a href='#SkMatrix_dirtyMatrixTypeCache'>dirtyMatrixTypeCache</a>();
@@ -176,13 +176,11 @@
 static <a href='#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='#Matrix'>Matrix</a> to scale by (<a href='#SkMatrix_MakeScale_sx'>sx</a>, <a href='#SkMatrix_MakeScale_sy'>sy</a>). Returned matrix is:
+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:
 
-<pre style="padding: 1em 1em 1em 1em;width: 62.5em; background-color: #f0f0f0">
-| sx  0  0 |
-|  0 sy  0 |
+| <a href='#SkMatrix_MakeScale_sx'>sx</a>  0  0 |
+|  0 <a href='#SkMatrix_MakeScale_sy'>sy</a>  0 |
 |  0  0  1 |
-</pre>
 
 ### Parameters
 
@@ -196,7 +194,7 @@
 
 ### Return Value
 
-<a href='#Matrix'>Matrix</a> with scale
+<a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> with scale
 
 ### Example
 
@@ -214,13 +212,11 @@
 static <a href='#SkMatrix'>SkMatrix</a> <a href='#SkMatrix_MakeScale'>MakeScale</a>(<a href='undocumented#SkScalar'>SkScalar</a> scale)
 </pre>
 
-Sets <a href='#Matrix'>Matrix</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 matrix is:
+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:
 
-<pre style="padding: 1em 1em 1em 1em;width: 62.5em; background-color: #f0f0f0">
-| scale   0   0 |
-|   0   scale 0 |
+| <a href='#SkMatrix_MakeScale_2_scale'>scale</a>   0   0 |
+|   0   <a href='#SkMatrix_MakeScale_2_scale'>scale</a> 0 |
 |   0     0   1 |
-</pre>
 
 ### Parameters
 
@@ -231,7 +227,7 @@
 
 ### Return Value
 
-<a href='#Matrix'>Matrix</a> with <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
 
@@ -249,13 +245,11 @@
 static <a href='#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='#Matrix'>Matrix</a> to translate by (<a href='#SkMatrix_MakeTrans_dx'>dx</a>, <a href='#SkMatrix_MakeTrans_dy'>dy</a>). Returned matrix is:
+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:
 
-<pre style="padding: 1em 1em 1em 1em;width: 62.5em; background-color: #f0f0f0">
-| 1 0 dx |
-| 0 1 dy |
+| 1 0 <a href='#SkMatrix_MakeTrans_dx'>dx</a> |
+| 0 1 <a href='#SkMatrix_MakeTrans_dy'>dy</a> |
 | 0 0  1 |
-</pre>
 
 ### Parameters
 
@@ -269,7 +263,7 @@
 
 ### Return Value
 
-<a href='#Matrix'>Matrix</a> with translation
+<a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> with translation
 
 ### Example
 
@@ -289,13 +283,11 @@
                         <a href='undocumented#SkScalar'>SkScalar</a> pers2)
 </pre>
 
-Sets <a href='#Matrix'>Matrix</a> to:
+Sets <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> to:
 
-<pre style="padding: 1em 1em 1em 1em;width: 62.5em; background-color: #f0f0f0">
-| scaleX  skewX transX |
-|  skewY scaleY transY |
-|  pers0  pers1  pers2 |
-</pre>
+| <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> |
+|  <a href='#SkMatrix_MakeAll_pers0'>pers0</a>  <a href='#SkMatrix_MakeAll_pers1'>pers1</a>  <a href='#SkMatrix_MakeAll_pers2'>pers2</a> |
 
 ### Parameters
 
@@ -330,7 +322,7 @@
 
 ### Return Value
 
-<a href='#Matrix'>Matrix</a> constructed from parameters
+<a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> constructed from parameters
 
 ### Example
 
@@ -425,15 +417,16 @@
 <a href='#SkMatrix_TypeMask'>TypeMask</a> <a href='#SkMatrix_getType'>getType</a>() const
 </pre>
 
-Returns a bit field describing the transformations the matrix may
+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> is set, all
+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>, 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>
+<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>
 
 ### Example
 
@@ -460,17 +453,15 @@
 bool <a href='#SkMatrix_isIdentity'>isIdentity</a>() const
 </pre>
 
-Returns true if <a href='#Matrix'>Matrix</a> is identity.  Identity matrix is:
+Returns true if <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> is identity.  Identity <a href='SkMatrix_Reference#Matrix'>matrix</a> is:
 
-<pre style="padding: 1em 1em 1em 1em;width: 62.5em; background-color: #f0f0f0">
 | 1 0 0 |
 | 0 1 0 |
 | 0 0 1 |
-</pre>
 
 ### Return Value
 
-true if <a href='#Matrix'>Matrix</a> has no effect
+true if <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> has no effect
 
 ### Example
 
@@ -497,18 +488,16 @@
 bool <a href='#SkMatrix_isScaleTranslate'>isScaleTranslate</a>() const
 </pre>
 
-Returns true if <a href='#Matrix'>Matrix</a> at most scales and translates. <a href='#Matrix'>Matrix</a> may be identity,
-contain only scale elements, only translate elements, or both. <a href='#Matrix'>Matrix</a> form is:
+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:
 
-<pre style="padding: 1em 1em 1em 1em;width: 62.5em; background-color: #f0f0f0">
 | scale-x    0    translate-x |
 |    0    scale-y translate-y |
 |    0       0         1      |
-</pre>
 
 ### Return Value
 
-true if <a href='#Matrix'>Matrix</a> is identity; or scales, translates, or both
+true if <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> is identity; or scales, translates, or both
 
 ### Example
 
@@ -537,17 +526,15 @@
 bool <a href='#SkMatrix_isTranslate'>isTranslate</a>() const
 </pre>
 
-Returns true if <a href='#Matrix'>Matrix</a> is identity, or translates. <a href='#Matrix'>Matrix</a> form is:
+Returns true if <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> is identity, or translates. <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> form is:
 
-<pre style="padding: 1em 1em 1em 1em;width: 62.5em; background-color: #f0f0f0">
 | 1 0 translate-x |
 | 0 1 translate-y |
 | 0 0      1      |
-</pre>
 
 ### Return Value
 
-true if <a href='#Matrix'>Matrix</a> is identity, or translates
+true if <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> is identity, or translates
 
 ### Example
 
@@ -576,32 +563,28 @@
 bool <a href='#SkMatrix_rectStaysRect'>rectStaysRect</a>() const
 </pre>
 
-Returns true <a href='#Matrix'>Matrix</a> maps <a href='SkRect_Reference#Rect'>Rect</a> to another <a href='SkRect_Reference#Rect'>Rect</a>. If true, <a href='#Matrix'>Matrix</a> is identity,
+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='#Matrix'>Matrix</a> may also have translation. <a href='#Matrix'>Matrix</a> form is either:
+cases, <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> may also have translation. <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> form is either:
 
-<pre style="padding: 1em 1em 1em 1em;width: 62.5em; background-color: #f0f0f0">
 | scale-x    0    translate-x |
 |    0    scale-y translate-y |
 |    0       0         1      |
-</pre>
 
 or
 
-<pre style="padding: 1em 1em 1em 1em;width: 62.5em; background-color: #f0f0f0">
 |    0     rotate-x translate-x |
 | rotate-y    0     translate-y |
 |    0        0          1      |
-</pre>
 
 for non-zero values of scale-x, scale-y, rotate-x, and rotate-y.
 
-Also called <a href='#SkMatrix_preservesAxisAlignment'>preservesAxisAlignment</a>; use the one that provides better inline
+Also called <a href='#SkMatrix_preservesAxisAlignment'>preservesAxisAlignment</a>(); use the one that provides better inline
 documentation.
 
 ### Return Value
 
-true if <a href='#Matrix'>Matrix</a> maps one <a href='SkRect_Reference#Rect'>Rect</a> into another
+true if <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> maps one <a href='SkRect_Reference#SkRect'>SkRect</a> into another
 
 ### Example
 
@@ -630,32 +613,28 @@
 bool <a href='#SkMatrix_preservesAxisAlignment'>preservesAxisAlignment</a>() const
 </pre>
 
-Returns true <a href='#Matrix'>Matrix</a> maps <a href='SkRect_Reference#Rect'>Rect</a> to another <a href='SkRect_Reference#Rect'>Rect</a>. If true, <a href='#Matrix'>Matrix</a> is identity,
+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='#Matrix'>Matrix</a> may also have translation. <a href='#Matrix'>Matrix</a> form is either:
+cases, <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> may also have translation. <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> form is either:
 
-<pre style="padding: 1em 1em 1em 1em;width: 62.5em; background-color: #f0f0f0">
 | scale-x    0    translate-x |
 |    0    scale-y translate-y |
 |    0       0         1      |
-</pre>
 
 or
 
-<pre style="padding: 1em 1em 1em 1em;width: 62.5em; background-color: #f0f0f0">
 |    0     rotate-x translate-x |
 | rotate-y    0     translate-y |
 |    0        0          1      |
-</pre>
 
 for non-zero values of scale-x, scale-y, rotate-x, and rotate-y.
 
-Also called <a href='#SkMatrix_rectStaysRect'>rectStaysRect</a>; use the one that provides better inline
+Also called <a href='#SkMatrix_rectStaysRect'>rectStaysRect</a>(); use the one that provides better inline
 documentation.
 
 ### Return Value
 
-true if <a href='#Matrix'>Matrix</a> maps one <a href='SkRect_Reference#Rect'>Rect</a> into another
+true if <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> maps one <a href='SkRect_Reference#SkRect'>SkRect</a> into another
 
 ### Example
 
@@ -684,20 +663,18 @@
 bool <a href='#SkMatrix_hasPerspective'>hasPerspective</a>() const
 </pre>
 
-Returns true if the matrix contains perspective elements. <a href='#Matrix'>Matrix</a> form is:
+Returns true if the <a href='SkMatrix_Reference#Matrix'>matrix</a> contains perspective elements. <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> form is:
 
-<pre style="padding: 1em 1em 1em 1em;width: 62.5em; background-color: #f0f0f0">
 |       --            --              --          |
 |       --            --              --          |
 | perspective-x  perspective-y  perspective-scale |
-</pre>
 
 where perspective-x or perspective-y is non-zero, or perspective-scale is
 not one. All other elements may have any value.
 
 ### Return Value
 
-true if <a href='#Matrix'>Matrix</a> is in most general form
+true if <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> is in most general form
 
 ### Example
 
@@ -715,14 +692,14 @@
 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='#Matrix'>Matrix</a> contains only translation, rotation, reflection, and
+Returns true if <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> contains only translation, rotation, reflection, and
 uniform scale.
-Returns false if <a href='#Matrix'>Matrix</a> contains different scales, skewing, perspective, or
-degenerate forms that collapse to a line or point.
+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='#Matrix'>Matrix</a> makes rendering with and without the matrix are
-visually alike; a transformed circle remains a circle. Mathematically, this is
-referred to as similarity of a <a href='undocumented#Euclidean_Space'>Euclidean Space</a>, or a similarity transformation.
+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.
 
@@ -735,7 +712,7 @@
 
 ### Return Value
 
-true if <a href='#Matrix'>Matrix</a> only rotates, uniformly scales, translates
+true if <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> only rotates, uniformly scales, translates
 
 ### Example
 
@@ -755,10 +732,10 @@
 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='#Matrix'>Matrix</a> contains only translation, rotation, reflection, and
+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='#Matrix'>Matrix</a> skewing, perspective, or degenerate forms that collapse
-to a line or point.
+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.
@@ -772,7 +749,7 @@
 
 ### Return Value
 
-true if <a href='#Matrix'>Matrix</a> only rotates, scales, translates
+true if <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> only rotates, scales, translates
 
 ### Example
 
@@ -940,21 +917,6 @@
 <a href='undocumented#SkScalar'>SkScalar</a> <a href='#SkMatrix_array1_operator'>operator[](int index)</a> const
 </pre>
 
-Returns one matrix value. Asserts if <a href='#SkMatrix_array_operator_index'>index</a> is out of range and SK_DEBUG is
-defined.
-
-### Parameters
-
-<table>  <tr>    <td><a name='SkMatrix_array_operator_index'><code><strong>index</strong></code></a></td>
-    <td>one of: <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></td>
-  </tr>
-</table>
-
-### Return Value
-
-value corresponding to <a href='#SkMatrix_array_operator_index'>index</a>
-
 ### Example
 
 <div><fiddle-embed name="e8740493abdf0c6341762db9cee56b89">
@@ -980,20 +942,21 @@
 <a href='undocumented#SkScalar'>SkScalar</a> <a href='#SkMatrix_get'>get</a>(int index) const
 </pre>
 
-Returns one matrix value. Asserts if <a href='#SkMatrix_get_index'>index</a> is out of range and SK_DEBUG is
+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
 
 <table>  <tr>    <td><a name='SkMatrix_get_index'><code><strong>index</strong></code></a></td>
-    <td>one of: <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></td>
+    <td>one of: <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>,</td>
   </tr>
 </table>
 
+<a href='#SkMatrix_kMPersp0'>kMPersp0</a>, <a href='#SkMatrix_kMPersp1'>kMPersp1</a>, <a href='#SkMatrix_kMPersp2'>kMPersp2</a>
+
 ### Return Value
 
-value corresponding to <a href='#SkMatrix_get_index'>index</a>
+value corresponding to <a href='#SkMatrix_get()_index'>index</a>
 
 ### Example
 
@@ -1021,7 +984,7 @@
 </pre>
 
 Returns scale factor multiplied by x-axis input, contributing to x-axis output.
-With <a href='#SkMatrix_mapPoints'>mapPoints</a>, scales <a href='SkPoint_Reference#Point'>Points</a> along the x-axis.
+With <a href='#SkMatrix_mapPoints'>mapPoints</a>(), scales <a href='SkPoint_Reference#SkPoint'>SkPoint</a> along the x-axis.
 
 ### Return Value
 
@@ -1052,7 +1015,7 @@
 </pre>
 
 Returns scale factor multiplied by y-axis input, contributing to y-axis output.
-With <a href='#SkMatrix_mapPoints'>mapPoints</a>, scales <a href='SkPoint_Reference#Point'>Points</a> along the y-axis.
+With <a href='#SkMatrix_mapPoints'>mapPoints</a>(), scales <a href='SkPoint_Reference#SkPoint'>SkPoint</a> along the y-axis.
 
 ### Return Value
 
@@ -1083,8 +1046,8 @@
 </pre>
 
 Returns scale factor multiplied by x-axis input, contributing to y-axis output.
-With <a href='#SkMatrix_mapPoints'>mapPoints</a>, skews <a href='SkPoint_Reference#Point'>Points</a> along the y-axis.
-Skewing both axes can rotate <a href='SkPoint_Reference#Point'>Points</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
 
@@ -1115,8 +1078,8 @@
 </pre>
 
 Returns scale factor multiplied by y-axis input, contributing to x-axis output.
-With <a href='#SkMatrix_mapPoints'>mapPoints</a>, skews <a href='SkPoint_Reference#Point'>Points</a> along the x-axis.
-Skewing both axes can rotate <a href='SkPoint_Reference#Point'>Points</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
 
@@ -1147,7 +1110,7 @@
 </pre>
 
 Returns translation contributing to x-axis output.
-With <a href='#SkMatrix_mapPoints'>mapPoints</a>, moves <a href='SkPoint_Reference#Point'>Points</a> along the x-axis.
+With <a href='#SkMatrix_mapPoints'>mapPoints</a>(), moves <a href='SkPoint_Reference#SkPoint'>SkPoint</a> along the x-axis.
 
 ### Return Value
 
@@ -1178,7 +1141,7 @@
 </pre>
 
 Returns translation contributing to y-axis output.
-With <a href='#SkMatrix_mapPoints'>mapPoints</a>, moves <a href='SkPoint_Reference#Point'>Points</a> along the y-axis.
+With <a href='#SkMatrix_mapPoints'>mapPoints</a>(), moves <a href='SkPoint_Reference#SkPoint'>SkPoint</a> along the y-axis.
 
 ### Return Value
 
@@ -1252,24 +1215,6 @@
 <a href='undocumented#SkScalar'>SkScalar</a>& <a href='#SkMatrix_array1_operator'>operator[](int index)</a>
 </pre>
 
-Returns writable <a href='#Matrix'>Matrix</a> value. Asserts if <a href='#SkMatrix_array1_operator_index'>index</a> is out of range and SK_DEBUG is
-defined. Clears internal cache anticipating that caller will change <a href='#Matrix'>Matrix</a> value.
-
-Next call to read <a href='#Matrix'>Matrix</a> state may recompute cache; subsequent writes to <a href='#Matrix'>Matrix</a>
-value must be followed by <a href='#SkMatrix_dirtyMatrixTypeCache'>dirtyMatrixTypeCache</a>.
-
-### Parameters
-
-<table>  <tr>    <td><a name='SkMatrix_array1_operator_index'><code><strong>index</strong></code></a></td>
-    <td>one of: <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></td>
-  </tr>
-</table>
-
-### Return Value
-
-writable value corresponding to <a href='#SkMatrix_array1_operator_index'>index</a>
-
 ### Example
 
 <div><fiddle-embed name="f4365ef332f51f7fd25040e0771ba9a2">
@@ -1299,17 +1244,22 @@
 void <a href='#SkMatrix_set'>set</a>(int index, <a href='undocumented#SkScalar'>SkScalar</a> value)
 </pre>
 
-Sets <a href='#Matrix'>Matrix</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
+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
 
 <table>  <tr>    <td><a name='SkMatrix_set_index'><code><strong>index</strong></code></a></td>
-    <td>one of: <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></td>
+    <td>one of: <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>,</td>
   </tr>
-  <tr>    <td><a name='SkMatrix_set_value'><code><strong>value</strong></code></a></td>
-    <td><a href='undocumented#Scalar'>Scalar</a> to store in <a href='#Matrix'>Matrix</a></td>
+</table>
+
+<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_set_value'><code><strong>value</strong></code></a></td>
+    <td><a href='undocumented#Scalar'>scalar</a> to store in <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a></td>
   </tr>
 </table>
 
@@ -1489,7 +1439,7 @@
 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> to vary input x-axis values
+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
@@ -1515,7 +1465,7 @@
 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> to vary input y-axis values
+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
@@ -1542,13 +1492,11 @@
             <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 matrix to:
+Sets all values from parameters. Sets <a href='SkMatrix_Reference#Matrix'>matrix</a> to:
 
-<pre style="padding: 1em 1em 1em 1em;width: 62.5em; background-color: #f0f0f0">
-| scaleX  skewX transX |
-|  skewY scaleY transY |
-| persp0 persp1 persp2 |
-</pre>
+| <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> |
+| <a href='#SkMatrix_setAll_persp0'>persp0</a> <a href='#SkMatrix_setAll_persp1'>persp1</a> <a href='#SkMatrix_setAll_persp2'>persp2</a> |
 
 ### Parameters
 
@@ -1597,14 +1545,14 @@
 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> values contained by <a href='#Matrix'>Matrix</a> into <a href='#SkMatrix_get9_buffer'>buffer</a>, in member value
+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> values</td>
+    <td>storage for nine <a href='undocumented#Scalar'>scalar</a> values</td>
   </tr>
 </table>
 
@@ -1634,26 +1582,24 @@
 void <a href='#SkMatrix_set9'>set9</a>(const <a href='undocumented#SkScalar'>SkScalar</a> buffer[9])
 </pre>
 
-Sets <a href='#Matrix'>Matrix</a> to nine <a href='undocumented#Scalar'>Scalar</a> values in <a href='#SkMatrix_set9_buffer'>buffer</a>, in member value ascending order:
+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 matrix to:
+Sets <a href='SkMatrix_Reference#Matrix'>matrix</a> to:
 
-<pre style="padding: 1em 1em 1em 1em;width: 62.5em; background-color: #f0f0f0">
-| buffer[0] buffer[1] buffer[2] |
-| buffer[3] buffer[4] buffer[5] |
-| buffer[6] buffer[7] buffer[8] |
-</pre>
+| <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> followed by <a href='#SkMatrix_get9'>get9</a> may not return the same values. Since <a href='#Matrix'>Matrix</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> values</td>
+    <td>nine <a href='undocumented#Scalar'>scalar</a> values</td>
   </tr>
 </table>
 
@@ -1673,13 +1619,11 @@
 void <a href='#SkMatrix_reset'>reset</a>()
 </pre>
 
-Sets <a href='#Matrix'>Matrix</a> to identity; which has no effect on mapped <a href='SkPoint_Reference#Point'>Points</a>. Sets <a href='#Matrix'>Matrix</a> to:
+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:
 
-<pre style="padding: 1em 1em 1em 1em;width: 62.5em; background-color: #f0f0f0">
 | 1 0 0 |
 | 0 1 0 |
 | 0 0 1 |
-</pre>
 
 Also called <a href='#SkMatrix_setIdentity'>setIdentity</a>(); use the one that provides better inline
 documentation.
@@ -1708,15 +1652,13 @@
 void <a href='#SkMatrix_setIdentity'>setIdentity</a>()
 </pre>
 
-Sets <a href='#Matrix'>Matrix</a> to identity; which has no effect on mapped <a href='SkPoint_Reference#Point'>Points</a>. Sets <a href='#Matrix'>Matrix</a> to:
+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:
 
-<pre style="padding: 1em 1em 1em 1em;width: 62.5em; background-color: #f0f0f0">
 | 1 0 0 |
 | 0 1 0 |
 | 0 0 1 |
-</pre>
 
-Also called <a href='#SkMatrix_reset'>reset</a>(); use the one that provides better inline
+Also called <a href='#SkMatrix_reset'>reset()</a>; use the one that provides better inline
 documentation.
 
 ### Example
@@ -1743,7 +1685,7 @@
 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='#Matrix'>Matrix</a> to translate by (<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
 
@@ -1771,12 +1713,12 @@
 void <a href='#SkMatrix_setTranslate'>setTranslate</a>(const <a href='SkPoint_Reference#SkVector'>SkVector</a>& v)
 </pre>
 
-Sets <a href='#Matrix'>Matrix</a> to translate by (<a href='#SkMatrix_setTranslate_2_v'>v</a>.fX, <a href='#SkMatrix_setTranslate_2_v'>v</a>.fY).
+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> containing horizontal and vertical translation</td>
+    <td><a href='SkPoint_Reference#Vector'>vector</a> containing horizontal and vertical translation</td>
   </tr>
 </table>
 
@@ -1796,8 +1738,8 @@
 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='#Matrix'>Matrix</a> to scale by <a href='#SkMatrix_setScale_sx'>sx</a> and <a href='#SkMatrix_setScale_sy'>sy</a>, about a pivot point at (<a href='#SkMatrix_setScale_px'>px</a>, <a href='#SkMatrix_setScale_py'>py</a>).
-The pivot point is unchanged when mapped with <a href='#Matrix'>Matrix</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
 
@@ -1808,10 +1750,10 @@
     <td>vertical scale factor</td>
   </tr>
   <tr>    <td><a name='SkMatrix_setScale_px'><code><strong>px</strong></code></a></td>
-    <td>pivot x</td>
+    <td>pivot on x-axis</td>
   </tr>
   <tr>    <td><a name='SkMatrix_setScale_py'><code><strong>py</strong></code></a></td>
-    <td>pivot y</td>
+    <td>pivot on y-axis</td>
   </tr>
 </table>
 
@@ -1831,7 +1773,7 @@
 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='#Matrix'>Matrix</a> to scale by <a href='#SkMatrix_setScale_2_sx'>sx</a> and <a href='#SkMatrix_setScale_2_sy'>sy</a> about at pivot point at (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
 
@@ -1859,8 +1801,8 @@
 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='#Matrix'>Matrix</a> to rotate by <a href='#SkMatrix_setRotate_degrees'>degrees</a> about a pivot point at (<a href='#SkMatrix_setRotate_px'>px</a>, <a href='#SkMatrix_setRotate_py'>py</a>).
-The pivot point is unchanged when mapped with <a href='#Matrix'>Matrix</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> rotates clockwise.
 
@@ -1870,10 +1812,10 @@
     <td>angle of axes relative to upright axes</td>
   </tr>
   <tr>    <td><a name='SkMatrix_setRotate_px'><code><strong>px</strong></code></a></td>
-    <td>pivot x</td>
+    <td>pivot on x-axis</td>
   </tr>
   <tr>    <td><a name='SkMatrix_setRotate_py'><code><strong>py</strong></code></a></td>
-    <td>pivot y</td>
+    <td>pivot on y-axis</td>
   </tr>
 </table>
 
@@ -1893,7 +1835,7 @@
 void <a href='#SkMatrix_setRotate'>setRotate</a>(<a href='undocumented#SkScalar'>SkScalar</a> degrees)
 </pre>
 
-Sets <a href='#Matrix'>Matrix</a> to rotate by <a href='#SkMatrix_setRotate_2_degrees'>degrees</a> about a pivot point at (0, 0).
+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
@@ -1919,8 +1861,8 @@
 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='#Matrix'>Matrix</a> to rotate by <a href='#SkMatrix_setSinCos_sinValue'>sinValue</a> and <a href='#SkMatrix_setSinCos_cosValue'>cosValue</a>, about a pivot point at (<a href='#SkMatrix_setSinCos_px'>px</a>, <a href='#SkMatrix_setSinCos_py'>py</a>).
-The pivot point is unchanged when mapped with <a href='#Matrix'>Matrix</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>) describes the angle of rotation relative to (0, 1).
 <a href='SkPoint_Reference#Vector'>Vector</a> length specifies scale.
@@ -1928,16 +1870,16 @@
 ### Parameters
 
 <table>  <tr>    <td><a name='SkMatrix_setSinCos_sinValue'><code><strong>sinValue</strong></code></a></td>
-    <td>rotation vector x-axis component</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 vector y-axis component</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 x-axis</td>
+    <td>pivot on x-axis</td>
   </tr>
   <tr>    <td><a name='SkMatrix_setSinCos_py'><code><strong>py</strong></code></a></td>
-    <td>pivot y-axis</td>
+    <td>pivot on y-axis</td>
   </tr>
 </table>
 
@@ -1957,7 +1899,7 @@
 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='#Matrix'>Matrix</a> to rotate by <a href='#SkMatrix_setSinCos_2_sinValue'>sinValue</a> and <a href='#SkMatrix_setSinCos_2_cosValue'>cosValue</a>, about a pivot point at (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>) describes the angle of rotation relative to (0, 1).
 <a href='SkPoint_Reference#Vector'>Vector</a> length specifies scale.
@@ -1965,10 +1907,10 @@
 ### Parameters
 
 <table>  <tr>    <td><a name='SkMatrix_setSinCos_2_sinValue'><code><strong>sinValue</strong></code></a></td>
-    <td>rotation vector x-axis component</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 vector y-axis component</td>
+    <td>rotation <a href='SkPoint_Reference#Vector'>vector</a> y-axis component</td>
   </tr>
 </table>
 
@@ -1989,22 +1931,22 @@
 <a href='#SkMatrix'>SkMatrix</a>& <a href='#SkMatrix_setRSXform'>setRSXform</a>(const <a href='undocumented#SkRSXform'>SkRSXform</a>& rsxForm)
 </pre>
 
-Sets <a href='#Matrix'>Matrix</a> to rotate, scale, and translate using a compressed matrix form.
+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>.fSSin, <a href='#SkMatrix_setRSXform_rsxForm'>rsxForm</a>.fSCos) describes the angle of rotation relative
-to (0, 1). <a href='SkPoint_Reference#Vector'>Vector</a> length specifies scale. Mapped point is rotated and scaled
-by <a href='SkPoint_Reference#Vector'>Vector</a>, then translated by (<a href='#SkMatrix_setRSXform_rsxForm'>rsxForm</a>.fTx, <a href='#SkMatrix_setRSXform_rsxForm'>rsxForm</a>.fTy).
+<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
 
 <table>  <tr>    <td><a name='SkMatrix_setRSXform_rsxForm'><code><strong>rsxForm</strong></code></a></td>
-    <td>compressed <a href='undocumented#RSXform'>RSXform</a> matrix</td>
+    <td>compressed <a href='undocumented#SkRSXform'>SkRSXform</a> <a href='SkMatrix_Reference#Matrix'>matrix</a></td>
   </tr>
 </table>
 
 ### Return Value
 
-reference to <a href='#Matrix'>Matrix</a>
+reference to <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a>
 
 ### Example
 
@@ -2023,8 +1965,8 @@
 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='#Matrix'>Matrix</a> to skew by <a href='#SkMatrix_setSkew_kx'>kx</a> and <a href='#SkMatrix_setSkew_ky'>ky</a>, about a pivot point at (<a href='#SkMatrix_setSkew_px'>px</a>, <a href='#SkMatrix_setSkew_py'>py</a>).
-The pivot point is unchanged when mapped with <a href='#Matrix'>Matrix</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
 
@@ -2035,10 +1977,10 @@
     <td>vertical skew factor</td>
   </tr>
   <tr>    <td><a name='SkMatrix_setSkew_px'><code><strong>px</strong></code></a></td>
-    <td>pivot x</td>
+    <td>pivot on x-axis</td>
   </tr>
   <tr>    <td><a name='SkMatrix_setSkew_py'><code><strong>py</strong></code></a></td>
-    <td>pivot y</td>
+    <td>pivot on y-axis</td>
   </tr>
 </table>
 
@@ -2058,7 +2000,7 @@
 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='#Matrix'>Matrix</a> to skew by <a href='#SkMatrix_setSkew_2_kx'>kx</a> and <a href='#SkMatrix_setSkew_2_ky'>ky</a>, about a pivot point at (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
 
@@ -2086,31 +2028,27 @@
 void <a href='#SkMatrix_setConcat'>setConcat</a>(const <a href='#SkMatrix'>SkMatrix</a>& a, const <a href='#SkMatrix'>SkMatrix</a>& b)
 </pre>
 
-Sets <a href='#Matrix'>Matrix</a> to <a href='#Matrix'>Matrix</a> <a href='#SkMatrix_setConcat_a'>a</a> multiplied by <a href='#Matrix'>Matrix</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.
+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:
 
-<pre style="padding: 1em 1em 1em 1em;width: 62.5em; background-color: #f0f0f0">
-    | A B C |      | J K L |
-a = | D E F |, b = | M N O |
-    | G H I |      | P Q R |
-</pre>
+| A B C |      | J K L |
+<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='#Matrix'>Matrix</a> to:
+sets <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> to:
 
-<pre style="padding: 1em 1em 1em 1em;width: 62.5em; background-color: #f0f0f0">
-        | A B C |   | J K L |   | AJ+BM+CP AK+BN+CQ AL+BO+CR |
-a * b = | D E F | * | M N O | = | DJ+EM+FP DK+EN+FQ DL+EO+FR |
-        | G H I |   | P Q R |   | GJ+HM+IP GK+HN+IQ GL+HO+IR |
-</pre>
+| 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> = | 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='#Matrix'>Matrix</a> on left side of multiply expression</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='#Matrix'>Matrix</a> on right side of multiply expression</td>
+    <td><a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> on  right side of multiply expression</td>
   </tr>
 </table>
 
@@ -2132,32 +2070,28 @@
 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='#Matrix'>Matrix</a> to <a href='#Matrix'>Matrix</a> multiplied by <a href='#Matrix'>Matrix</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 point to be mapped before applying <a href='#Matrix'>Matrix</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:
 
-<pre style="padding: 1em 1em 1em 1em;width: 62.5em; background-color: #f0f0f0">
-         | A B C |               | 1 0 dx |
-Matrix = | D E F |,  T(dx, dy) = | 0 1 dy |
-         | G H I |               | 0 0  1 |
-</pre>
+| A B C |               | 1 0 <a href='#SkMatrix_preTranslate_dx'>dx</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='#Matrix'>Matrix</a> to:
+sets <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> to:
 
-<pre style="padding: 1em 1em 1em 1em;width: 62.5em; background-color: #f0f0f0">
-                     | A B C | | 1 0 dx |   | A B A*dx+B*dy+C |
-Matrix * T(dx, dy) = | D E F | | 0 1 dy | = | D E D*dx+E*dy+F |
-                     | G H I | | 0 0  1 |   | G H G*dx+H*dy+I |
-</pre>
+| 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
 
 <table>  <tr>    <td><a name='SkMatrix_preTranslate_dx'><code><strong>dx</strong></code></a></td>
-    <td>x-axis translation before applying <a href='#Matrix'>Matrix</a></td>
+    <td>x-axis translation before applying <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a></td>
   </tr>
   <tr>    <td><a name='SkMatrix_preTranslate_dy'><code><strong>dy</strong></code></a></td>
-    <td>y-axis translation before applying <a href='#Matrix'>Matrix</a></td>
+    <td>y-axis translation before applying <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a></td>
   </tr>
 </table>
 
@@ -2177,32 +2111,26 @@
 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='#Matrix'>Matrix</a> to <a href='#Matrix'>Matrix</a> multiplied by <a href='#Matrix'>Matrix</a> constructed from scaling by (<a href='#SkMatrix_preScale_sx'>sx</a>, <a href='#SkMatrix_preScale_sy'>sy</a>)
-about pivot point (<a href='#SkMatrix_preScale_px'>px</a>, <a href='#SkMatrix_preScale_py'>py</a>).
-This can be thought of as scaling about a pivot point before applying <a href='#Matrix'>Matrix</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> before applying <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a>.
 
 Given:
 
-<pre style="padding: 1em 1em 1em 1em;width: 62.5em; background-color: #f0f0f0">
-         | A B C |                       | sx  0 dx |
-Matrix = | D E F |,  S(sx, sy, px, py) = |  0 sy dy |
-         | G H I |                       |  0  0  1 |
-</pre>
+| 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
 
-<pre style="padding: 1em 1em 1em 1em;width: 62.5em; background-color: #f0f0f0">
-dx = px - sx * px
-dy = py - sy * py
-</pre>
+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='#Matrix'>Matrix</a> to:
+sets <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> to:
 
-<pre style="padding: 1em 1em 1em 1em;width: 62.5em; background-color: #f0f0f0">
-                             | A B C | | sx  0 dx |   | A*sx B*sy A*dx+B*dy+C |
-Matrix * S(sx, sy, px, py) = | D E F | |  0 sy dy | = | D*sx E*sy D*dx+E*dy+F |
-                             | G H I | |  0  0  1 |   | G*sx H*sy G*dx+H*dy+I |
-</pre>
+| 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
 
@@ -2213,10 +2141,10 @@
     <td>vertical scale factor</td>
   </tr>
   <tr>    <td><a name='SkMatrix_preScale_px'><code><strong>px</strong></code></a></td>
-    <td>pivot x</td>
+    <td>pivot on x-axis</td>
   </tr>
   <tr>    <td><a name='SkMatrix_preScale_py'><code><strong>py</strong></code></a></td>
-    <td>pivot y</td>
+    <td>pivot on y-axis</td>
   </tr>
 </table>
 
@@ -2236,25 +2164,21 @@
 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='#Matrix'>Matrix</a> to <a href='#Matrix'>Matrix</a> multiplied by <a href='#Matrix'>Matrix</a> constructed from scaling by (<a href='#SkMatrix_preScale_2_sx'>sx</a>, <a href='#SkMatrix_preScale_2_sy'>sy</a>)
-about pivot point (0, 0).
-This can be thought of as scaling about the origin before applying <a href='#Matrix'>Matrix</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:
 
-<pre style="padding: 1em 1em 1em 1em;width: 62.5em; background-color: #f0f0f0">
-         | A B C |               | sx  0  0 |
-Matrix = | D E F |,  S(sx, sy) = |  0 sy  0 |
-         | G H I |               |  0  0  1 |
-</pre>
+| A B C |               | <a href='#SkMatrix_preScale_2_sx'>sx</a>  0  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='#Matrix'>Matrix</a> to:
+sets <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> to:
 
-<pre style="padding: 1em 1em 1em 1em;width: 62.5em; background-color: #f0f0f0">
-                     | A B C | | sx  0  0 |   | A*sx B*sy C |
-Matrix * S(sx, sy) = | D E F | |  0 sy  0 | = | D*sx E*sy F |
-                     | G H I | |  0  0  1 |   | G*sx H*sy I |
-</pre>
+| 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
 
@@ -2282,36 +2206,30 @@
 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='#Matrix'>Matrix</a> to <a href='#Matrix'>Matrix</a> multiplied by <a href='#Matrix'>Matrix</a> constructed from rotating by <a href='#SkMatrix_preRotate_degrees'>degrees</a>
-about pivot point (<a href='#SkMatrix_preRotate_px'>px</a>, <a href='#SkMatrix_preRotate_py'>py</a>).
-This can be thought of as rotating about a pivot point before applying <a href='#Matrix'>Matrix</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> before applying <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a>.
 
 Positive <a href='#SkMatrix_preRotate_degrees'>degrees</a> rotates clockwise.
 
 Given:
 
-<pre style="padding: 1em 1em 1em 1em;width: 62.5em; background-color: #f0f0f0">
-         | A B C |                        | c -s dx |
-Matrix = | D E F |,  R(degrees, px, py) = | s  c dy |
-         | G H I |                        | 0  0  1 |
-</pre>
+| A B C |                        | c -s dx |
+<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
 
-<pre style="padding: 1em 1em 1em 1em;width: 62.5em; background-color: #f0f0f0">
-c  = cos(degrees)
-s  = sin(degrees)
-dx =  s * py + (1 - c) * px
-dy = -s * px + (1 - c) * py
-</pre>
+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 - 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='#Matrix'>Matrix</a> to:
+sets <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> to:
 
-<pre style="padding: 1em 1em 1em 1em;width: 62.5em; background-color: #f0f0f0">
-                              | A B C | | c -s dx |   | Ac+Bs -As+Bc A*dx+B*dy+C |
-Matrix * R(degrees, px, py) = | D E F | | s  c dy | = | Dc+Es -Ds+Ec D*dx+E*dy+F |
-                              | G H I | | 0  0  1 |   | Gc+Hs -Gs+Hc G*dx+H*dy+I |
-</pre>
+| A B C | | c -s dx |   | Ac+Bs -As+Bc A*dx+B*dy+C |
+<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
 
@@ -2319,10 +2237,10 @@
     <td>angle of axes relative to upright axes</td>
   </tr>
   <tr>    <td><a name='SkMatrix_preRotate_px'><code><strong>px</strong></code></a></td>
-    <td>pivot x</td>
+    <td>pivot on x-axis</td>
   </tr>
   <tr>    <td><a name='SkMatrix_preRotate_py'><code><strong>py</strong></code></a></td>
-    <td>pivot y</td>
+    <td>pivot on y-axis</td>
   </tr>
 </table>
 
@@ -2342,34 +2260,28 @@
 void <a href='#SkMatrix_preRotate'>preRotate</a>(<a href='undocumented#SkScalar'>SkScalar</a> degrees)
 </pre>
 
-Sets <a href='#Matrix'>Matrix</a> to <a href='#Matrix'>Matrix</a> multiplied by <a href='#Matrix'>Matrix</a> constructed from rotating by <a href='#SkMatrix_preRotate_2_degrees'>degrees</a>
-about pivot point (0, 0).
-This can be thought of as rotating about the origin before applying <a href='#Matrix'>Matrix</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> rotates clockwise.
 
 Given:
 
-<pre style="padding: 1em 1em 1em 1em;width: 62.5em; background-color: #f0f0f0">
-         | A B C |                        | c -s 0 |
-Matrix = | D E F |,  R(degrees, px, py) = | s  c 0 |
-         | G H I |                        | 0  0 1 |
-</pre>
+| A B C |                        | c -s 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
 
-<pre style="padding: 1em 1em 1em 1em;width: 62.5em; background-color: #f0f0f0">
-c  = cos(degrees)
-s  = sin(degrees)
-</pre>
+c  = cos(<a href='#SkMatrix_preRotate_2_degrees'>degrees</a>)
+s  = sin(<a href='#SkMatrix_preRotate_2_degrees'>degrees</a>)
 
-sets <a href='#Matrix'>Matrix</a> to:
+sets <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> to:
 
-<pre style="padding: 1em 1em 1em 1em;width: 62.5em; background-color: #f0f0f0">
-                              | A B C | | c -s 0 |   | Ac+Bs -As+Bc C |
-Matrix * R(degrees, px, py) = | D E F | | s  c 0 | = | Dc+Es -Ds+Ec F |
-                              | G H I | | 0  0 1 |   | Gc+Hs -Gs+Hc I |
-</pre>
+| A B C | | c -s 0 |   | Ac+Bs -As+Bc C |
+<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
 
@@ -2394,32 +2306,26 @@
 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='#Matrix'>Matrix</a> to <a href='#Matrix'>Matrix</a> multiplied by <a href='#Matrix'>Matrix</a> constructed from skewing by (<a href='#SkMatrix_preSkew_kx'>kx</a>, <a href='#SkMatrix_preSkew_ky'>ky</a>)
-about pivot point (<a href='#SkMatrix_preSkew_px'>px</a>, <a href='#SkMatrix_preSkew_py'>py</a>).
-This can be thought of as skewing about a pivot point before applying <a href='#Matrix'>Matrix</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> before applying <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a>.
 
 Given:
 
-<pre style="padding: 1em 1em 1em 1em;width: 62.5em; background-color: #f0f0f0">
-         | A B C |                       |  1 kx dx |
-Matrix = | D E F |,  K(kx, ky, px, py) = | ky  1 dy |
-         | G H I |                       |  0  0  1 |
-</pre>
+| 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
 
-<pre style="padding: 1em 1em 1em 1em;width: 62.5em; background-color: #f0f0f0">
-dx = -kx * py
-dy = -ky * px
-</pre>
+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='#Matrix'>Matrix</a> to:
+sets <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> to:
 
-<pre style="padding: 1em 1em 1em 1em;width: 62.5em; background-color: #f0f0f0">
-                             | A B C | |  1 kx dx |   | A+B*ky A*kx+B A*dx+B*dy+C |
-Matrix * K(kx, ky, px, py) = | D E F | | ky  1 dy | = | D+E*ky D*kx+E D*dx+E*dy+F |
-                             | G H I | |  0  0  1 |   | G+H*ky G*kx+H G*dx+H*dy+I |
-</pre>
+| 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
 
@@ -2430,10 +2336,10 @@
     <td>vertical skew factor</td>
   </tr>
   <tr>    <td><a name='SkMatrix_preSkew_px'><code><strong>px</strong></code></a></td>
-    <td>pivot x</td>
+    <td>pivot on x-axis</td>
   </tr>
   <tr>    <td><a name='SkMatrix_preSkew_py'><code><strong>py</strong></code></a></td>
-    <td>pivot y</td>
+    <td>pivot on y-axis</td>
   </tr>
 </table>
 
@@ -2453,25 +2359,21 @@
 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='#Matrix'>Matrix</a> to <a href='#Matrix'>Matrix</a> multiplied by <a href='#Matrix'>Matrix</a> constructed from skewing by (<a href='#SkMatrix_preSkew_2_kx'>kx</a>, <a href='#SkMatrix_preSkew_2_ky'>ky</a>)
-about pivot point (0, 0).
-This can be thought of as skewing about the origin before applying <a href='#Matrix'>Matrix</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:
 
-<pre style="padding: 1em 1em 1em 1em;width: 62.5em; background-color: #f0f0f0">
-         | A B C |               |  1 kx 0 |
-Matrix = | D E F |,  K(kx, ky) = | ky  1 0 |
-         | G H I |               |  0  0 1 |
-</pre>
+| A B C |               |  1 <a href='#SkMatrix_preSkew_2_kx'>kx</a> 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='#Matrix'>Matrix</a> to:
+sets <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> to:
 
-<pre style="padding: 1em 1em 1em 1em;width: 62.5em; background-color: #f0f0f0">
-                     | A B C | |  1 kx 0 |   | A+B*ky A*kx+B C |
-Matrix * K(kx, ky) = | D E F | | ky  1 0 | = | D+E*ky D*kx+E F |
-                     | G H I | |  0  0 1 |   | G+H*ky G*kx+H I |
-</pre>
+| 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
 
@@ -2499,35 +2401,31 @@
 void <a href='#SkMatrix_preConcat'>preConcat</a>(const <a href='#SkMatrix'>SkMatrix</a>& other)
 </pre>
 
-Sets <a href='#Matrix'>Matrix</a> to <a href='#Matrix'>Matrix</a> multiplied by <a href='#Matrix'>Matrix</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='#Matrix'>Matrix</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:
 
-<pre style="padding: 1em 1em 1em 1em;width: 62.5em; background-color: #f0f0f0">
-         | A B C |          | J K L |
-Matrix = | D E F |, other = | M N O |
-         | G H I |          | P Q R |
-</pre>
+| A B C |          | J K L |
+<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='#Matrix'>Matrix</a> to:
+sets <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> to:
 
-<pre style="padding: 1em 1em 1em 1em;width: 62.5em; background-color: #f0f0f0">
-                 | A B C |   | J K L |   | AJ+BM+CP AK+BN+CQ AL+BO+CR |
-Matrix * other = | D E F | * | M N O | = | DJ+EM+FP DK+EN+FQ DL+EO+FR |
-                 | G H I |   | P Q R |   | GJ+HM+IP GK+HN+IQ GL+HO+IR |
-</pre>
+| 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> = | 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='#Matrix'>Matrix</a> on right side of multiply expression</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> creates perspective matrices, one the inverse of the <a href='#SkMatrix_preConcat_other'>other</a>.
+<div><fiddle-embed name="b07e62298e7b0ab5683db199faffceb2"><div><a href='#SkMatrix_setPolyToPoly'>setPolyToPoly</a> creates perspective matrices, one the inverse of the other.
 Multiplying the matrix by its inverse turns into an identity matrix.
 </div></fiddle-embed></div>
 
@@ -2543,32 +2441,28 @@
 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='#Matrix'>Matrix</a> to <a href='#Matrix'>Matrix</a> constructed from translation (<a href='#SkMatrix_postTranslate_dx'>dx</a>, <a href='#SkMatrix_postTranslate_dy'>dy</a>) multiplied by <a href='#Matrix'>Matrix</a>.
-This can be thought of as moving the point to be mapped after applying <a href='#Matrix'>Matrix</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:
 
-<pre style="padding: 1em 1em 1em 1em;width: 62.5em; background-color: #f0f0f0">
-         | J K L |               | 1 0 dx |
-Matrix = | M N O |,  T(dx, dy) = | 0 1 dy |
-         | P Q R |               | 0 0  1 |
-</pre>
+| J K L |               | 1 0 <a href='#SkMatrix_postTranslate_dx'>dx</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='#Matrix'>Matrix</a> to:
+sets <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> to:
 
-<pre style="padding: 1em 1em 1em 1em;width: 62.5em; background-color: #f0f0f0">
-                     | 1 0 dx | | J K L |   | J+dx*P K+dx*Q L+dx*R |
-T(dx, dy) * Matrix = | 0 1 dy | | M N O | = | M+dy*P N+dy*Q O+dy*R |
-                     | 0 0  1 | | P Q R |   |      P      Q      R |
-</pre>
+| 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
 
 <table>  <tr>    <td><a name='SkMatrix_postTranslate_dx'><code><strong>dx</strong></code></a></td>
-    <td>x-axis translation after applying <a href='#Matrix'>Matrix</a></td>
+    <td>x-axis translation after applying <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a></td>
   </tr>
   <tr>    <td><a name='SkMatrix_postTranslate_dy'><code><strong>dy</strong></code></a></td>
-    <td>y-axis translation after applying <a href='#Matrix'>Matrix</a></td>
+    <td>y-axis translation after applying <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a></td>
   </tr>
 </table>
 
@@ -2589,32 +2483,26 @@
 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='#Matrix'>Matrix</a> to <a href='#Matrix'>Matrix</a> constructed from scaling by (<a href='#SkMatrix_postScale_sx'>sx</a>, <a href='#SkMatrix_postScale_sy'>sy</a>) about pivot point
-(<a href='#SkMatrix_postScale_px'>px</a>, <a href='#SkMatrix_postScale_py'>py</a>), multiplied by <a href='#Matrix'>Matrix</a>.
-This can be thought of as scaling about a pivot point after applying <a href='#Matrix'>Matrix</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:
 
-<pre style="padding: 1em 1em 1em 1em;width: 62.5em; background-color: #f0f0f0">
-         | J K L |                       | sx  0 dx |
-Matrix = | M N O |,  S(sx, sy, px, py) = |  0 sy dy |
-         | P Q R |                       |  0  0  1 |
-</pre>
+| 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
 
-<pre style="padding: 1em 1em 1em 1em;width: 62.5em; background-color: #f0f0f0">
-dx = px - sx * px
-dy = py - sy * py
-</pre>
+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='#Matrix'>Matrix</a> to:
+sets <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> to:
 
-<pre style="padding: 1em 1em 1em 1em;width: 62.5em; background-color: #f0f0f0">
-                             | sx  0 dx | | J K L |   | sx*J+dx*P sx*K+dx*Q sx*L+dx+R |
-S(sx, sy, px, py) * Matrix = |  0 sy dy | | M N O | = | sy*M+dy*P sy*N+dy*Q sy*O+dy*R |
-                             |  0  0  1 | | P Q R |   |         P         Q         R |
-</pre>
+| <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
 
@@ -2625,10 +2513,10 @@
     <td>vertical scale factor</td>
   </tr>
   <tr>    <td><a name='SkMatrix_postScale_px'><code><strong>px</strong></code></a></td>
-    <td>pivot x</td>
+    <td>pivot on x-axis</td>
   </tr>
   <tr>    <td><a name='SkMatrix_postScale_py'><code><strong>py</strong></code></a></td>
-    <td>pivot y</td>
+    <td>pivot on y-axis</td>
   </tr>
 </table>
 
@@ -2648,25 +2536,21 @@
 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='#Matrix'>Matrix</a> to <a href='#Matrix'>Matrix</a> constructed from scaling by (<a href='#SkMatrix_postScale_2_sx'>sx</a>, <a href='#SkMatrix_postScale_2_sy'>sy</a>) about pivot point
-(0, 0), multiplied by <a href='#Matrix'>Matrix</a>.
-This can be thought of as scaling about the origin after applying <a href='#Matrix'>Matrix</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:
 
-<pre style="padding: 1em 1em 1em 1em;width: 62.5em; background-color: #f0f0f0">
-         | J K L |               | sx  0  0 |
-Matrix = | M N O |,  S(sx, sy) = |  0 sy  0 |
-         | P Q R |               |  0  0  1 |
-</pre>
+| J K L |               | <a href='#SkMatrix_postScale_2_sx'>sx</a>  0  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='#Matrix'>Matrix</a> to:
+sets <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</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 |
-S(sx, sy) * Matrix = |  0 sy  0 | | M N O | = | sy*M sy*N sy*O |
-                     |  0  0  1 | | P Q R |   |    P    Q    R |
-</pre>
+| <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
 
@@ -2752,36 +2636,30 @@
 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='#Matrix'>Matrix</a> to <a href='#Matrix'>Matrix</a> constructed from rotating by <a href='#SkMatrix_postRotate_degrees'>degrees</a> about pivot point
-(<a href='#SkMatrix_postRotate_px'>px</a>, <a href='#SkMatrix_postRotate_py'>py</a>), multiplied by <a href='#Matrix'>Matrix</a>.
-This can be thought of as rotating about a pivot point after applying <a href='#Matrix'>Matrix</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> rotates clockwise.
 
 Given:
 
-<pre style="padding: 1em 1em 1em 1em;width: 62.5em; background-color: #f0f0f0">
-         | J K L |                        | c -s dx |
-Matrix = | M N O |,  R(degrees, px, py) = | s  c dy |
-         | P Q R |                        | 0  0  1 |
-</pre>
+| J K L |                        | c -s dx |
+<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
 
-<pre style="padding: 1em 1em 1em 1em;width: 62.5em; background-color: #f0f0f0">
-c  = cos(degrees)
-s  = sin(degrees)
-dx =  s * py + (1 - c) * px
-dy = -s * px + (1 - c) * py
-</pre>
+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 - 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='#Matrix'>Matrix</a> to:
+sets <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> to:
 
-<pre style="padding: 1em 1em 1em 1em;width: 62.5em; background-color: #f0f0f0">
-                              |c -s dx| |J K L|   |cJ-sM+dx*P cK-sN+dx*Q cL-sO+dx+R|
-R(degrees, px, py) * Matrix = |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|
-</pre>
+|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> = |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
 
@@ -2789,10 +2667,10 @@
     <td>angle of axes relative to upright axes</td>
   </tr>
   <tr>    <td><a name='SkMatrix_postRotate_px'><code><strong>px</strong></code></a></td>
-    <td>pivot x</td>
+    <td>pivot on x-axis</td>
   </tr>
   <tr>    <td><a name='SkMatrix_postRotate_py'><code><strong>py</strong></code></a></td>
-    <td>pivot y</td>
+    <td>pivot on y-axis</td>
   </tr>
 </table>
 
@@ -2812,34 +2690,28 @@
 void <a href='#SkMatrix_postRotate'>postRotate</a>(<a href='undocumented#SkScalar'>SkScalar</a> degrees)
 </pre>
 
-Sets <a href='#Matrix'>Matrix</a> to <a href='#Matrix'>Matrix</a> constructed from rotating by <a href='#SkMatrix_postRotate_2_degrees'>degrees</a> about pivot point
-(0, 0), multiplied by <a href='#Matrix'>Matrix</a>.
-This can be thought of as rotating about the origin after applying <a href='#Matrix'>Matrix</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> rotates clockwise.
 
 Given:
 
-<pre style="padding: 1em 1em 1em 1em;width: 62.5em; background-color: #f0f0f0">
-         | J K L |                        | c -s 0 |
-Matrix = | M N O |,  R(degrees, px, py) = | s  c 0 |
-         | P Q R |                        | 0  0 1 |
-</pre>
+| J K L |                        | c -s 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
 
-<pre style="padding: 1em 1em 1em 1em;width: 62.5em; background-color: #f0f0f0">
-c  = cos(degrees)
-s  = sin(degrees)
-</pre>
+c  = cos(<a href='#SkMatrix_postRotate_2_degrees'>degrees</a>)
+s  = sin(<a href='#SkMatrix_postRotate_2_degrees'>degrees</a>)
 
-sets <a href='#Matrix'>Matrix</a> to:
+sets <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> to:
 
-<pre style="padding: 1em 1em 1em 1em;width: 62.5em; background-color: #f0f0f0">
-                              | c -s dx | | J K L |   | cJ-sM cK-sN cL-sO |
-R(degrees, px, py) * Matrix = | s  c dy | | M N O | = | sJ+cM sK+cN sL+cO |
-                              | 0  0  1 | | P Q R |   |     P     Q     R |
-</pre>
+| c -s dx | | J K L |   | cJ-sM cK-sN cL-sO |
+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
 
@@ -2864,32 +2736,26 @@
 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='#Matrix'>Matrix</a> to <a href='#Matrix'>Matrix</a> constructed from skewing by (<a href='#SkMatrix_postSkew_kx'>kx</a>, <a href='#SkMatrix_postSkew_ky'>ky</a>) about pivot point
-(<a href='#SkMatrix_postSkew_px'>px</a>, <a href='#SkMatrix_postSkew_py'>py</a>), multiplied by <a href='#Matrix'>Matrix</a>.
-This can be thought of as skewing about a pivot point after applying <a href='#Matrix'>Matrix</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:
 
-<pre style="padding: 1em 1em 1em 1em;width: 62.5em; background-color: #f0f0f0">
-         | J K L |                       |  1 kx dx |
-Matrix = | M N O |,  K(kx, ky, px, py) = | ky  1 dy |
-         | P Q R |                       |  0  0  1 |
-</pre>
+| 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
 
-<pre style="padding: 1em 1em 1em 1em;width: 62.5em; background-color: #f0f0f0">
-dx = -kx * py
-dy = -ky * px
-</pre>
+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='#Matrix'>Matrix</a> to:
+sets <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> to:
 
-<pre style="padding: 1em 1em 1em 1em;width: 62.5em; background-color: #f0f0f0">
-                             | 1 kx dx| |J K L|   |J+kx*M+dx*P K+kx*N+dx*Q L+kx*O+dx+R|
-K(kx, ky, px, py) * Matrix = |ky  1 dy| |M N O| = |ky*J+M+dy*P ky*K+N+dy*Q ky*L+O+dy*R|
-                             | 0  0  1| |P Q R|   |          P           Q           R|
-</pre>
+| 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
 
@@ -2900,10 +2766,10 @@
     <td>vertical skew factor</td>
   </tr>
   <tr>    <td><a name='SkMatrix_postSkew_px'><code><strong>px</strong></code></a></td>
-    <td>pivot x</td>
+    <td>pivot on x-axis</td>
   </tr>
   <tr>    <td><a name='SkMatrix_postSkew_py'><code><strong>py</strong></code></a></td>
-    <td>pivot y</td>
+    <td>pivot on y-axis</td>
   </tr>
 </table>
 
@@ -2923,25 +2789,21 @@
 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='#Matrix'>Matrix</a> to <a href='#Matrix'>Matrix</a> constructed from skewing by (<a href='#SkMatrix_postSkew_2_kx'>kx</a>, <a href='#SkMatrix_postSkew_2_ky'>ky</a>) about pivot point
-(0, 0), multiplied by <a href='#Matrix'>Matrix</a>.
-This can be thought of as skewing about the origin after applying <a href='#Matrix'>Matrix</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:
 
-<pre style="padding: 1em 1em 1em 1em;width: 62.5em; background-color: #f0f0f0">
-         | J K L |               |  1 kx 0 |
-Matrix = | M N O |,  K(kx, ky) = | ky  1 0 |
-         | P Q R |               |  0  0 1 |
-</pre>
+| J K L |               |  1 <a href='#SkMatrix_postSkew_2_kx'>kx</a> 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='#Matrix'>Matrix</a> to:
+sets <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> to:
 
-<pre style="padding: 1em 1em 1em 1em;width: 62.5em; background-color: #f0f0f0">
-                     |  1 kx 0 | | J K L |   | J+kx*M K+kx*N L+kx*O |
-K(kx, ky) * Matrix = | ky  1 0 | | M N O | = | ky*J+M ky*K+N ky*L+O |
-                     |  0  0 1 | | P Q R |   |      P      Q      R |
-</pre>
+|  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
 
@@ -2969,29 +2831,25 @@
 void <a href='#SkMatrix_postConcat'>postConcat</a>(const <a href='#SkMatrix'>SkMatrix</a>& other)
 </pre>
 
-Sets <a href='#Matrix'>Matrix</a> to <a href='#Matrix'>Matrix</a> <a href='#SkMatrix_postConcat_other'>other</a> multiplied by <a href='#Matrix'>Matrix</a>.
-This can be thought of mapping by <a href='#SkMatrix_postConcat_other'>other</a> after applying <a href='#Matrix'>Matrix</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:
 
-<pre style="padding: 1em 1em 1em 1em;width: 62.5em; background-color: #f0f0f0">
-         | J K L |           | A B C |
-Matrix = | M N O |,  other = | D E F |
-         | P Q R |           | G H I |
-</pre>
+| J K L |           | A B C |
+<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='#Matrix'>Matrix</a> to:
+sets <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> to:
 
-<pre style="padding: 1em 1em 1em 1em;width: 62.5em; background-color: #f0f0f0">
-                 | A B C |   | J K L |   | AJ+BM+CP AK+BN+CQ AL+BO+CR |
-other * Matrix = | D E F | * | M N O | = | DJ+EM+FP DK+EN+FQ DL+EO+FR |
-                 | G H I |   | P Q R |   | GJ+HM+IP GK+HN+IQ GL+HO+IR |
-</pre>
+| 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> = | 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='#Matrix'>Matrix</a> on left side of multiply expression</td>
+    <td><a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> on  left side of multiply expression</td>
   </tr>
 </table>
 
@@ -3081,34 +2939,33 @@
 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='#Matrix'>Matrix</a> to scale and translate <a href='#SkMatrix_setRectToRect_src'>src</a> <a href='SkRect_Reference#Rect'>Rect</a> to <a href='#SkMatrix_setRectToRect_dst'>dst</a> <a href='SkRect_Reference#Rect'>Rect</a>. <a href='#SkMatrix_setRectToRect_stf'>stf</a> selects whether
+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='#Matrix'>Matrix</a> to identity.
-Returns true if <a href='#SkMatrix_setRectToRect_dst'>dst</a> is empty, and sets <a href='#Matrix'>Matrix</a> to:
+<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:
 
-<pre style="padding: 1em 1em 1em 1em;width: 62.5em; background-color: #f0f0f0">
 | 0 0 0 |
 | 0 0 0 |
 | 0 0 1 |
-</pre>
 
 ### Parameters
 
 <table>  <tr>    <td><a name='SkMatrix_setRectToRect_src'><code><strong>src</strong></code></a></td>
-    <td><a href='SkRect_Reference#Rect'>Rect</a> to map from</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#Rect'>Rect</a> to map to</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>,
-<a href='#SkMatrix_kCenter_ScaleToFit'>kCenter ScaleToFit</a>, <a href='#SkMatrix_kEnd_ScaleToFit'>kEnd ScaleToFit</a></td>
+    <td>one of: <a href='#SkMatrix_kFill_ScaleToFit'>kFill_ScaleToFit</a>, <a href='#SkMatrix_kStart_ScaleToFit'>kStart_ScaleToFit</a>,</td>
   </tr>
 </table>
 
+<a href='#SkMatrix_kCenter_ScaleToFit'>kCenter_ScaleToFit</a>, <a href='#SkMatrix_kEnd_ScaleToFit'>kEnd_ScaleToFit</a>
+
 ### Return Value
 
-true if <a href='#Matrix'>Matrix</a> can represent <a href='SkRect_Reference#Rect'>Rect</a> mapping
+true if <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> can represent <a href='SkRect_Reference#SkRect'>SkRect</a> mapping
 
 ### Example
 
@@ -3141,34 +2998,33 @@
 static <a href='#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='#Matrix'>Matrix</a> set to scale and translate <a href='#SkMatrix_MakeRectToRect_src'>src</a> <a href='SkRect_Reference#Rect'>Rect</a> to <a href='#SkMatrix_MakeRectToRect_dst'>dst</a> <a href='SkRect_Reference#Rect'>Rect</a>. <a href='#SkMatrix_MakeRectToRect_stf'>stf</a> selects
+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='#Matrix'>Matrix</a> if <a href='#SkMatrix_MakeRectToRect_src'>src</a> is empty. If <a href='#SkMatrix_MakeRectToRect_dst'>dst</a> is
-empty, returns <a href='#Matrix'>Matrix</a> set 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:
 
-<pre style="padding: 1em 1em 1em 1em;width: 62.5em; background-color: #f0f0f0">
 | 0 0 0 |
 | 0 0 0 |
 | 0 0 1 |
-</pre>
 
 ### Parameters
 
 <table>  <tr>    <td><a name='SkMatrix_MakeRectToRect_src'><code><strong>src</strong></code></a></td>
-    <td><a href='SkRect_Reference#Rect'>Rect</a> to map from</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#Rect'>Rect</a> to map to</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>,
-<a href='#SkMatrix_kCenter_ScaleToFit'>kCenter ScaleToFit</a>, <a href='#SkMatrix_kEnd_ScaleToFit'>kEnd ScaleToFit</a></td>
+    <td>one of: <a href='#SkMatrix_kFill_ScaleToFit'>kFill_ScaleToFit</a>, <a href='#SkMatrix_kStart_ScaleToFit'>kStart_ScaleToFit</a>,</td>
   </tr>
 </table>
 
+<a href='#SkMatrix_kCenter_ScaleToFit'>kCenter_ScaleToFit</a>, <a href='#SkMatrix_kEnd_ScaleToFit'>kEnd_ScaleToFit</a>
+
 ### Return Value
 
-<a href='#Matrix'>Matrix</a> mapping <a href='#SkMatrix_MakeRectToRect_src'>src</a> to <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
 
@@ -3201,30 +3057,30 @@
 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='#Matrix'>Matrix</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.
+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> is zero, sets <a href='#Matrix'>Matrix</a> to identity and returns true.
-If <a href='#SkMatrix_setPolyToPoly_count'>count</a> is one, sets <a href='#Matrix'>Matrix</a> to translate and returns true.
-If <a href='#SkMatrix_setPolyToPoly_count'>count</a> is two or more, sets <a href='#Matrix'>Matrix</a> to map <a href='SkPoint_Reference#Point'>Points</a> if possible; returns false
-if <a href='#Matrix'>Matrix</a> cannot be constructed. If <a href='#SkMatrix_setPolyToPoly_count'>count</a> is four, <a href='#Matrix'>Matrix</a> may include
+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#Point'>Points</a> to map from</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#Point'>Points</a> to map to</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#Point'>Points</a> in <a href='#SkMatrix_setPolyToPoly_src'>src</a> and <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='#Matrix'>Matrix</a> was constructed successfully
+true if <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> was constructed successfully
 
 ### Example
 
@@ -3242,21 +3098,21 @@
 bool <a href='#SkMatrix_invert'>invert</a>(<a href='#SkMatrix'>SkMatrix</a>* inverse) const
 </pre>
 
-Sets <a href='#SkMatrix_invert_inverse'>inverse</a> to reciprocal matrix, returning true if <a href='#Matrix'>Matrix</a> can be inverted.
-Geometrically, if <a href='#Matrix'>Matrix</a> maps from source to destination, <a href='#SkMatrix_invert_inverse'>inverse</a> <a href='#Matrix'>Matrix</a>
-maps from destination to source. If <a href='#Matrix'>Matrix</a> can not be inverted, <a href='#SkMatrix_invert_inverse'>inverse</a> is
+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='#Matrix'>Matrix</a>; may be nullptr</td>
+    <td>storage for inverted <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a>; may be nullptr</td>
   </tr>
 </table>
 
 ### Return Value
 
-true if <a href='#Matrix'>Matrix</a> can be inverted
+true if <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> can be inverted
 
 ### Example
 
@@ -3277,17 +3133,15 @@
 Fills <a href='#SkMatrix_SetAffineIdentity_affine'>affine</a> with identity values in column major order.
 Sets <a href='#SkMatrix_SetAffineIdentity_affine'>affine</a> to:
 
-<pre style="padding: 1em 1em 1em 1em;width: 62.5em; background-color: #f0f0f0">
 | 1 0 0 |
 | 0 1 0 |
-</pre>
 
-Affine 3x2 matrices in column major order are used by OpenGL and XPS.
+Affine 3 by 2 <a href='SkMatrix_Reference#Matrix'>matrices</a> in column major order are used by OpenGL and XPS.
 
 ### Parameters
 
 <table>  <tr>    <td><a name='SkMatrix_SetAffineIdentity_affine'><code><strong>affine</strong></code></a></td>
-    <td>storage for 3x2 <a href='#SkMatrix_SetAffineIdentity_affine'>affine</a> matrix</td>
+    <td>storage for 3 by 2 <a href='#SkMatrix_SetAffineIdentity_affine'>affine</a> <a href='SkMatrix_Reference#Matrix'>matrix</a></td>
   </tr>
 </table>
 
@@ -3317,23 +3171,21 @@
 
 Fills <a href='#SkMatrix_asAffine_affine'>affine</a> in column major order. Sets <a href='#SkMatrix_asAffine_affine'>affine</a> to:
 
-<pre style="padding: 1em 1em 1em 1em;width: 62.5em; background-color: #f0f0f0">
 | scale-x  skew-x translate-x |
 | skew-y  scale-y translate-y |
-</pre>
 
-If <a href='#Matrix'>Matrix</a> contains perspective, returns false and leaves <a href='#SkMatrix_asAffine_affine'>affine</a> unchanged.
+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 3x2 <a href='#SkMatrix_asAffine_affine'>affine</a> matrix; may be nullptr</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='#Matrix'>Matrix</a> does not contain perspective
+true if <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> does not contain perspective
 
 ### Example
 
@@ -3359,26 +3211,22 @@
 void <a href='#SkMatrix_setAffine'>setAffine</a>(const <a href='undocumented#SkScalar'>SkScalar</a> affine[6])
 </pre>
 
-Sets <a href='#Matrix'>Matrix</a> to <a href='#SkMatrix_setAffine_affine'>affine</a> values, passed in column major order. Given <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:
 
-<pre style="padding: 1em 1em 1em 1em;width: 62.5em; background-color: #f0f0f0">
 | scale-x  skew-x translate-x |
 |  skew-y scale-y translate-y |
-</pre>
 
-<a href='#Matrix'>Matrix</a> is set, row, then column, to:
+<a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> is set, row, then column, to:
 
-<pre style="padding: 1em 1em 1em 1em;width: 62.5em; background-color: #f0f0f0">
 | scale-x  skew-x translate-x |
 |  skew-y scale-y translate-y |
 |       0       0           1 |
-</pre>
 
 ### Parameters
 
 <table>  <tr>    <td><a name='SkMatrix_setAffine_affine'><code><strong>affine</strong></code></a></td>
-    <td>3x2 <a href='#SkMatrix_setAffine_affine'>affine</a> matrix</td>
+    <td>3 by 2 <a href='#SkMatrix_setAffine_affine'>affine</a> <a href='SkMatrix_Reference#Matrix'>matrix</a></td>
   </tr>
 </table>
 
@@ -3409,44 +3257,38 @@
 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='SkPoint_Reference#Point'>Point</a> array of length <a href='#SkMatrix_mapPoints_count'>count</a> to <a href='#SkMatrix_mapPoints_dst'>dst</a> <a href='SkPoint_Reference#Point'>Point</a> array of equal or greater
-length. <a href='SkPoint_Reference#Point'>Points</a> are mapped by multiplying each <a href='SkPoint_Reference#Point'>Point</a> by <a href='#Matrix'>Matrix</a>. Given:
+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:
 
-<pre style="padding: 1em 1em 1em 1em;width: 62.5em; background-color: #f0f0f0">
-         | A B C |        | x |
-Matrix = | D E F |,  pt = | y |
-         | G H I |        | 1 |
-</pre>
+| A B C |        | x |
+<a href='SkMatrix_Reference#Matrix'>Matrix</a> = | D E F |,  pt = | y |
+| G H <a href='#SkMatrix_I'>I</a> |        | 1 |
 
 where
 
-<pre style="padding: 1em 1em 1em 1em;width: 62.5em; background-color: #f0f0f0">
-for (i = 0; i < count; ++i) {
-    x = src[i].fX
-    y = src[i].fY
+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
 }
-</pre>
 
-each <a href='#SkMatrix_mapPoints_dst'>dst</a> <a href='SkPoint_Reference#Point'>Point</a> is computed as:
+each <a href='#SkMatrix_mapPoints_dst'>dst</a> <a href='SkPoint_Reference#SkPoint'>SkPoint</a> is computed as:
 
-<pre style="padding: 1em 1em 1em 1em;width: 62.5em; background-color: #f0f0f0">
-              |A B C| |x|                               Ax+By+C   Dx+Ey+F
-Matrix * pt = |D E F| |y| = |Ax+By+C Dx+Ey+F Gx+Hy+I| = ------- , -------
-              |G H I| |1|                               Gx+Hy+I   Gx+Hy+I
-</pre>
+|A B C| |x|                               Ax+By+C   Dx+Ey+F
+<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> and <a href='#SkMatrix_mapPoints_dst'>dst</a> may point to the same storage.
+<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
 
 <table>  <tr>    <td><a name='SkMatrix_mapPoints_dst'><code><strong>dst</strong></code></a></td>
-    <td>storage for mapped <a href='SkPoint_Reference#Point'>Points</a></td>
+    <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#Point'>Points</a> to transform</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#Point'>Points</a> to transform</td>
+    <td>number of <a href='SkPoint_Reference#SkPoint'>SkPoint</a> to transform</td>
   </tr>
 </table>
 
@@ -3466,39 +3308,33 @@
 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='SkPoint_Reference#Point'>Point</a> array of length <a href='#SkMatrix_mapPoints_2_count'>count</a> in place. <a href='SkPoint_Reference#Point'>Points</a> are mapped by multiplying
-each <a href='SkPoint_Reference#Point'>Point</a> by <a href='#Matrix'>Matrix</a>. Given:
+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:
 
-<pre style="padding: 1em 1em 1em 1em;width: 62.5em; background-color: #f0f0f0">
-         | A B C |        | x |
-Matrix = | D E F |,  pt = | y |
-         | G H I |        | 1 |
-</pre>
+| A B C |        | x |
+<a href='SkMatrix_Reference#Matrix'>Matrix</a> = | D E F |,  pt = | y |
+| G H <a href='#SkMatrix_I'>I</a> |        | 1 |
 
 where
 
-<pre style="padding: 1em 1em 1em 1em;width: 62.5em; background-color: #f0f0f0">
-for (i = 0; i < count; ++i) {
-    x = pts[i].fX
-    y = pts[i].fY
+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
 }
-</pre>
 
-each resulting <a href='#SkMatrix_mapPoints_2_pts'>pts</a> <a href='SkPoint_Reference#Point'>Point</a> is computed as:
+each resulting <a href='#SkMatrix_mapPoints_2_pts'>pts</a> <a href='SkPoint_Reference#SkPoint'>SkPoint</a> is computed as:
 
-<pre style="padding: 1em 1em 1em 1em;width: 62.5em; background-color: #f0f0f0">
-              |A B C| |x|                               Ax+By+C   Dx+Ey+F
-Matrix * pt = |D E F| |y| = |Ax+By+C Dx+Ey+F Gx+Hy+I| = ------- , -------
-              |G H I| |1|                               Gx+Hy+I   Gx+Hy+I
-</pre>
+|A B C| |x|                               Ax+By+C   Dx+Ey+F
+<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
 
 <table>  <tr>    <td><a name='SkMatrix_mapPoints_2_pts'><code><strong>pts</strong></code></a></td>
-    <td>storage for mapped <a href='SkPoint_Reference#Point'>Points</a></td>
+    <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#Point'>Points</a> to transform</td>
+    <td>number of <a href='SkPoint_Reference#SkPoint'>SkPoint</a> to transform</td>
   </tr>
 </table>
 
@@ -3518,33 +3354,29 @@
 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#Point3'>Point3</a> array of length <a href='#SkMatrix_mapHomogeneousPoints_count'>count</a> to <a href='#SkMatrix_mapHomogeneousPoints_dst'>dst</a> <a href='undocumented#Point3'>Point3</a> array, which must of length <a href='#SkMatrix_mapHomogeneousPoints_count'>count</a> or
-greater. <a href='undocumented#Point3'>Point3</a> array is mapped by multiplying each <a href='undocumented#Point3'>Point3</a> by <a href='#Matrix'>Matrix</a>. Given:
+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:
 
-<pre style="padding: 1em 1em 1em 1em;width: 62.5em; background-color: #f0f0f0">
-         | A B C |         | x |
-Matrix = | D E F |,  src = | y |
-         | G H I |         | z |
-</pre>
+| A B C |         | x |
+<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#Point'>Point</a> is computed as:
+each resulting <a href='#SkMatrix_mapHomogeneousPoints_dst'>dst</a> <a href='SkPoint_Reference#SkPoint'>SkPoint</a> is computed as:
 
-<pre style="padding: 1em 1em 1em 1em;width: 62.5em; background-color: #f0f0f0">
-               |A B C| |x|
-Matrix * src = |D E F| |y| = |Ax+By+Cz Dx+Ey+Fz Gx+Hy+Iz|
-               |G H I| |z|
-</pre>
+|A B C| |x|
+<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#Point3'>Point3</a> array</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#Point3'>Point3</a> array to transform</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#Point3'>Point3</a> array to transform</td>
+    <td>items in <a href='undocumented#SkPoint3'>SkPoint3</a> array to transform</td>
   </tr>
 </table>
 
@@ -3564,32 +3396,28 @@
 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#Point'>Point</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#Point'>Point</a> is mapped by multiplying by <a href='#Matrix'>Matrix</a>. Given:
+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:
 
-<pre style="padding: 1em 1em 1em 1em;width: 62.5em; background-color: #f0f0f0">
-         | A B C |        | x |
-Matrix = | D E F |,  pt = | y |
-         | G H I |        | 1 |
-</pre>
+| A B C |        | <a href='#SkMatrix_mapXY_x'>x</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> is computed as:
 
-<pre style="padding: 1em 1em 1em 1em;width: 62.5em; background-color: #f0f0f0">
-              |A B C| |x|                               Ax+By+C   Dx+Ey+F
-Matrix * pt = |D E F| |y| = |Ax+By+C Dx+Ey+F Gx+Hy+I| = ------- , -------
-              |G H I| |1|                               Gx+Hy+I   Gx+Hy+I
-</pre>
+|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><a href='#SkMatrix_mapXY_x'>x</a>-axis value of <a href='SkPoint_Reference#Point'>Point</a> to map</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><a href='#SkMatrix_mapXY_y'>y</a>-axis value of <a href='SkPoint_Reference#Point'>Point</a> to map</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#Point'>Point</a></td>
+    <td>storage for mapped <a href='SkPoint_Reference#SkPoint'>SkPoint</a></td>
   </tr>
 </table>
 
@@ -3609,35 +3437,31 @@
 <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#Point'>Point</a> (<a href='#SkMatrix_mapXY_2_x'>x</a>, <a href='#SkMatrix_mapXY_2_y'>y</a>) multiplied by <a href='#Matrix'>Matrix</a>. Given:
+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:
 
-<pre style="padding: 1em 1em 1em 1em;width: 62.5em; background-color: #f0f0f0">
-         | A B C |        | x |
-Matrix = | D E F |,  pt = | y |
-         | G H I |        | 1 |
-</pre>
+| A B C |        | <a href='#SkMatrix_mapXY_2_x'>x</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:
 
-<pre style="padding: 1em 1em 1em 1em;width: 62.5em; background-color: #f0f0f0">
-              |A B C| |x|                               Ax+By+C   Dx+Ey+F
-Matrix * pt = |D E F| |y| = |Ax+By+C Dx+Ey+F Gx+Hy+I| = ------- , -------
-              |G H I| |1|                               Gx+Hy+I   Gx+Hy+I
-</pre>
+|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><a href='#SkMatrix_mapXY_2_x'>x</a>-axis value of <a href='SkPoint_Reference#Point'>Point</a> to map</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><a href='#SkMatrix_mapXY_2_y'>y</a>-axis value of <a href='SkPoint_Reference#Point'>Point</a> to map</td>
+    <td>y-axis value of <a href='SkPoint_Reference#SkPoint'>SkPoint</a> to map</td>
   </tr>
 </table>
 
 ### Return Value
 
-mapped <a href='SkPoint_Reference#Point'>Point</a>
+mapped <a href='SkPoint_Reference#SkPoint'>SkPoint</a>
 
 ### Example
 
@@ -3655,45 +3479,39 @@
 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> array of length <a href='#SkMatrix_mapVectors_count'>count</a> to <a href='SkPoint_Reference#Vector'>Vector</a> <a href='SkPoint_Reference#Point'>Point</a> array 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='#Matrix'>Matrix</a>, treating
-<a href='#Matrix'>Matrix</a> translation as zero. Given:
+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:
 
-<pre style="padding: 1em 1em 1em 1em;width: 62.5em; background-color: #f0f0f0">
-         | A B 0 |         | x |
-Matrix = | D E 0 |,  src = | y |
-         | G H I |         | 1 |
-</pre>
+| A B 0 |         | x |
+<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
 
-<pre style="padding: 1em 1em 1em 1em;width: 62.5em; background-color: #f0f0f0">
-for (i = 0; i < count; ++i) {
-    x = src[i].fX
-    y = src[i].fY
+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
 }
-</pre>
 
-each <a href='#SkMatrix_mapVectors_dst'>dst</a> <a href='SkPoint_Reference#Vector'>Vector</a> is computed as:
+each <a href='#SkMatrix_mapVectors_dst'>dst</a> <a href='SkPoint_Reference#Vector'>vector</a> is computed as:
 
-<pre style="padding: 1em 1em 1em 1em;width: 62.5em; background-color: #f0f0f0">
-               |A B 0| |x|                            Ax+By     Dx+Ey
-Matrix * src = |D E 0| |y| = |Ax+By Dx+Ey Gx+Hy+I| = ------- , -------
-               |G H I| |1|                           Gx+Hy+I   Gx+Hy+I
-</pre>
+|A B 0| |x|                            Ax+By     Dx+Ey
+<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> and <a href='#SkMatrix_mapVectors_dst'>dst</a> may point to the same storage.
+<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
 
 <table>  <tr>    <td><a name='SkMatrix_mapVectors_dst'><code><strong>dst</strong></code></a></td>
-    <td>storage for mapped <a href='SkPoint_Reference#Vector'>Vectors</a></td>
+    <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> to transform</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> to transform</td>
+    <td>number of <a href='SkPoint_Reference#Vector'>vectors</a> to transform</td>
   </tr>
 </table>
 
@@ -3713,39 +3531,33 @@
 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> 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='#Matrix'>Matrix</a>, treating <a href='#Matrix'>Matrix</a> translation as zero. Given:
+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:
 
-<pre style="padding: 1em 1em 1em 1em;width: 62.5em; background-color: #f0f0f0">
-         | A B 0 |         | x |
-Matrix = | D E 0 |,  vec = | y |
-         | G H I |         | 1 |
-</pre>
+| A B 0 |         | x |
+<a href='SkMatrix_Reference#Matrix'>Matrix</a> = | D E 0 |,  vec = | y |
+| G H <a href='#SkMatrix_I'>I</a> |         | 1 |
 
 where
 
-<pre style="padding: 1em 1em 1em 1em;width: 62.5em; background-color: #f0f0f0">
-for (i = 0; i < count; ++i) {
-    x = vecs[i].fX
-    y = vecs[i].fY
+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
 }
-</pre>
 
-each result <a href='SkPoint_Reference#Vector'>Vector</a> is computed as:
+each result <a href='SkPoint_Reference#Vector'>vector</a> is computed as:
 
-<pre style="padding: 1em 1em 1em 1em;width: 62.5em; background-color: #f0f0f0">
-               |A B 0| |x|                            Ax+By     Dx+Ey
-Matrix * vec = |D E 0| |y| = |Ax+By Dx+Ey Gx+Hy+I| = ------- , -------
-               |G H I| |1|                           Gx+Hy+I   Gx+Hy+I
-</pre>
+|A B 0| |x|                            Ax+By     Dx+Ey
+<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> to transform, and storage for mapped <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> to transform</td>
+    <td>number of <a href='SkPoint_Reference#Vector'>vectors</a> to transform</td>
   </tr>
 </table>
 
@@ -3765,33 +3577,29 @@
 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> (x, y) to <a href='#SkMatrix_mapVector_result'>result</a>. <a href='SkPoint_Reference#Vector'>Vector</a> is mapped by multiplying by <a href='#Matrix'>Matrix</a>,
-treating <a href='#Matrix'>Matrix</a> translation as zero. Given:
+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:
 
-<pre style="padding: 1em 1em 1em 1em;width: 62.5em; background-color: #f0f0f0">
-         | A B 0 |         | dx |
-Matrix = | D E 0 |,  vec = | dy |
-         | G H I |         |  1 |
-</pre>
+| A B 0 |         | <a href='#SkMatrix_mapVector_dx'>dx</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> is computed as:
+each <a href='#SkMatrix_mapVector_result'>result</a> <a href='SkPoint_Reference#Vector'>vector</a> is computed as:
 
-<pre style="padding: 1em 1em 1em 1em;width: 62.5em; background-color: #f0f0f0">
-               |A B 0| |dx|                                        A*dx+B*dy     D*dx+E*dy
-Matrix * vec = |D E 0| |dy| = |A*dx+B*dy D*dx+E*dy G*dx+H*dy+I| = ----------- , -----------
-               |G H I| | 1|                                       G*dx+H*dy+I   G*dx+*dHy+I
-</pre>
+|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> to map</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> to map</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>
+    <td>storage for mapped <a href='SkPoint_Reference#Vector'>vector</a></td>
   </tr>
 </table>
 
@@ -3811,36 +3619,32 @@
 <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> (x, y) multiplied by <a href='#Matrix'>Matrix</a>, treating <a href='#Matrix'>Matrix</a> translation as zero.
+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:
 
-<pre style="padding: 1em 1em 1em 1em;width: 62.5em; background-color: #f0f0f0">
-         | A B 0 |         | dx |
-Matrix = | D E 0 |,  vec = | dy |
-         | G H I |         |  1 |
-</pre>
+| A B 0 |         | <a href='#SkMatrix_mapVector_2_dx'>dx</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> is computed as:
+each result <a href='SkPoint_Reference#Vector'>vector</a> is computed as:
 
-<pre style="padding: 1em 1em 1em 1em;width: 62.5em; background-color: #f0f0f0">
-               |A B 0| |dx|                                        A*dx+B*dy     D*dx+E*dy
-Matrix * vec = |D E 0| |dy| = |A*dx+B*dy D*dx+E*dy G*dx+H*dy+I| = ----------- , -----------
-               |G H I| | 1|                                       G*dx+H*dy+I   G*dx+*dHy+I
-</pre>
+|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> to map</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> to map</td>
+    <td>y-axis value of <a href='SkPoint_Reference#Vector'>vector</a> to map</td>
   </tr>
 </table>
 
 ### Return Value
 
-mapped <a href='SkPoint_Reference#Vector'>Vector</a>
+mapped <a href='SkPoint_Reference#Vector'>vector</a>
 
 ### Example
 
@@ -3858,18 +3662,18 @@
 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> to bounds of <a href='#SkMatrix_mapRect_src'>src</a> corners mapped by <a href='#Matrix'>Matrix</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>.
+Returned value is the same as calling <a href='#SkMatrix_rectStaysRect'>rectStaysRect</a>().
 
 ### Parameters
 
 <table>  <tr>    <td><a name='SkMatrix_mapRect_dst'><code><strong>dst</strong></code></a></td>
-    <td>storage for bounds of mapped <a href='SkPoint_Reference#Point'>Points</a></td>
+    <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#Rect'>Rect</a> to map</td>
+    <td><a href='SkRect_Reference#SkRect'>SkRect</a> to map</td>
   </tr>
 </table>
 
@@ -3893,10 +3697,10 @@
 bool <a href='#SkMatrix_mapRect'>mapRect</a>(<a href='SkRect_Reference#SkRect'>SkRect</a>* rect) const
 </pre>
 
-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='#Matrix'>Matrix</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>.
+Returned value is the same as calling <a href='#SkMatrix_rectStaysRect'>rectStaysRect</a>().
 
 ### Parameters
 
@@ -3925,7 +3729,7 @@
 <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> corners mapped by <a href='#Matrix'>Matrix</a>.
+Returns bounds of <a href='#SkMatrix_mapRect_3_src'>src</a> corners mapped by <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a>.
 
 ### Parameters
 
@@ -3954,39 +3758,35 @@
 void <a href='#SkMatrix_mapRectToQuad'>mapRectToQuad</a>(<a href='SkPoint_Reference#SkPoint'>SkPoint</a> dst[4], const <a href='SkRect_Reference#SkRect'>SkRect</a>& rect) const
 </pre>
 
-Maps four corners of <a href='#SkMatrix_mapRectToQuad_rect'>rect</a> to <a href='#SkMatrix_mapRectToQuad_dst'>dst</a>. <a href='SkPoint_Reference#Point'>Points</a> are mapped by multiplying each
-<a href='#SkMatrix_mapRectToQuad_rect'>rect</a> corner by <a href='#Matrix'>Matrix</a>. <a href='#SkMatrix_mapRectToQuad_rect'>rect</a> corner is processed in this order:
-(<a href='#SkMatrix_mapRectToQuad_rect'>rect</a>.fLeft, <a href='#SkMatrix_mapRectToQuad_rect'>rect</a>.fTop), (<a href='#SkMatrix_mapRectToQuad_rect'>rect</a>.fRight, <a href='#SkMatrix_mapRectToQuad_rect'>rect</a>.fTop), (<a href='#SkMatrix_mapRectToQuad_rect'>rect</a>.fRight, <a href='#SkMatrix_mapRectToQuad_rect'>rect</a>.fBottom),
-(<a href='#SkMatrix_mapRectToQuad_rect'>rect</a>.fLeft, <a href='#SkMatrix_mapRectToQuad_rect'>rect</a>.fBottom).
+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> may be empty: <a href='#SkMatrix_mapRectToQuad_rect'>rect</a>.fLeft may be greater than or equal to <a href='#SkMatrix_mapRectToQuad_rect'>rect</a>.fRight;
-<a href='#SkMatrix_mapRectToQuad_rect'>rect</a>.fTop may be greater than or equal to <a href='#SkMatrix_mapRectToQuad_rect'>rect</a>.fBottom.
+<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:
 
-<pre style="padding: 1em 1em 1em 1em;width: 62.5em; background-color: #f0f0f0">
-         | A B C |        | x |
-Matrix = | D E F |,  pt = | y |
-         | G H I |        | 1 |
-</pre>
+| A B C |        | x |
+<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>.fLeft, <a href='#SkMatrix_mapRectToQuad_rect'>rect</a>.fTop),
-(<a href='#SkMatrix_mapRectToQuad_rect'>rect</a>.fRight, <a href='#SkMatrix_mapRectToQuad_rect'>rect</a>.fTop), (<a href='#SkMatrix_mapRectToQuad_rect'>rect</a>.fRight, <a href='#SkMatrix_mapRectToQuad_rect'>rect</a>.fBottom), (<a href='#SkMatrix_mapRectToQuad_rect'>rect</a>.fLeft, <a href='#SkMatrix_mapRectToQuad_rect'>rect</a>.fBottom),
-each <a href='#SkMatrix_mapRectToQuad_dst'>dst</a> <a href='SkPoint_Reference#Point'>Point</a> is computed as:
+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> is computed as:
 
-<pre style="padding: 1em 1em 1em 1em;width: 62.5em; background-color: #f0f0f0">
-              |A B C| |x|                               Ax+By+C   Dx+Ey+F
-Matrix * pt = |D E F| |y| = |Ax+By+C Dx+Ey+F Gx+Hy+I| = ------- , -------
-              |G H I| |1|                               Gx+Hy+I   Gx+Hy+I
-</pre>
+|A B C| |x|                               Ax+By+C   Dx+Ey+F
+<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
 
 <table>  <tr>    <td><a name='SkMatrix_mapRectToQuad_dst'><code><strong>dst</strong></code></a></td>
-    <td>storage for mapped corner <a href='SkPoint_Reference#Point'>Points</a></td>
+    <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#Rect'>Rect</a> to map</td>
+    <td><a href='SkRect_Reference#SkRect'>SkRect</a> to map</td>
   </tr>
 </table>
 
@@ -4006,17 +3806,17 @@
 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> to bounds of <a href='#SkMatrix_mapRectScaleTranslate_src'>src</a> corners mapped by <a href='#Matrix'>Matrix</a>. If matrix contains
+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.
 
 ### Parameters
 
 <table>  <tr>    <td><a name='SkMatrix_mapRectScaleTranslate_dst'><code><strong>dst</strong></code></a></td>
-    <td>storage for bounds of mapped <a href='SkPoint_Reference#Point'>Points</a></td>
+    <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#Rect'>Rect</a> to map</td>
+    <td><a href='SkRect_Reference#SkRect'>SkRect</a> to map</td>
   </tr>
 </table>
 
@@ -4036,15 +3836,15 @@
 <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> of ellipse formed by constructing <a href='undocumented#Circle'>Circle</a> of
-size <a href='#SkMatrix_mapRadius_radius'>radius</a>, and mapping constructed <a href='undocumented#Circle'>Circle</a> with <a href='#Matrix'>Matrix</a>. The result squared is
+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='#Matrix'>Matrix</a> contains perspective elements.
+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> size to map</td>
+    <td><a href='undocumented#Circle'>circle</a> <a href='undocumented#Size'>size</a> to map</td>
   </tr>
 </table>
 
@@ -4070,16 +3870,16 @@
 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='#Matrix'>Matrix</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>.
+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>. 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> returns <a href='#SkMatrix_kPerspective_Mask'>kPerspective Mask</a>, but only when <a href='#Matrix'>Matrix</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='#Matrix'>Matrix</a> does not have complex perspective
+true if <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> does not have complex perspective
 
 ### Example
 
@@ -4120,19 +3920,19 @@
 <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> representing a unit step on x-axis at <a href='#SkMatrix_fixedStepInX_y'>y</a> mapped through <a href='#Matrix'>Matrix</a>.
-If <a href='#SkMatrix_isFixedStepInX'>isFixedStepInX</a> is false, returned value is undefined.
+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 line parallel to x-axis</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> advance of mapped unit step on x-axis
+<a href='SkPoint_Reference#Vector'>vector</a> advance of mapped unit step on x-axis
 
 ### Example
 
@@ -4150,12 +3950,12 @@
 bool <a href='#SkMatrix_cheapEqualTo'>cheapEqualTo</a>(const <a href='#SkMatrix'>SkMatrix</a>& m) const
 </pre>
 
-Returns true if <a href='#Matrix'>Matrix</a> equals <a href='#SkMatrix_cheapEqualTo_m'>m</a>, using an efficient comparison.
+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
-matrix has positive zero value and the other has negative zero value.
+<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='#Matrix'>Matrices</a> contain NaN.
+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.
@@ -4163,13 +3963,13 @@
 ### Parameters
 
 <table>  <tr>    <td><a name='SkMatrix_cheapEqualTo_m'><code><strong>m</strong></code></a></td>
-    <td><a href='#Matrix'>Matrix</a> to compare</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> and <a href='#Matrix'>Matrix</a> are represented by identical bit patterns
+true if <a href='#SkMatrix_cheapEqualTo_m'>m</a> and <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> are represented by identical bit patterns
 
 ### Example
 
@@ -4198,23 +3998,23 @@
 bool <a href='#SkMatrix_equal_operator'>operator==(const SkMatrix& a, const SkMatrix& b)</a>
 </pre>
 
-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='#Matrix'>Matrix</a>
-contains NaN, even if the other <a href='#Matrix'>Matrix</a> also contains NaN.
+Compares <a href='#SkMatrix_operator==(const SkMatrix& a, const SkMatrix& b)_a'>a</a> and <a href='#SkMatrix_operator==(const SkMatrix& a, const SkMatrix& b)_b'>b</a>; returns true if <a href='#SkMatrix_operator==(const SkMatrix& a, const SkMatrix& b)_a'>a</a> and <a href='#SkMatrix_operator==(const SkMatrix& a, const SkMatrix& b)_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> also contains NaN.
 
 ### Parameters
 
 <table>  <tr>    <td><a name='SkMatrix_equal_operator_a'><code><strong>a</strong></code></a></td>
-    <td><a href='#Matrix'>Matrix</a> to compare</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='#Matrix'>Matrix</a> to compare</td>
+    <td><a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> to compare</td>
   </tr>
 </table>
 
 ### Return Value
 
-true if <a href='#Matrix'>Matrix</a> <a href='#SkMatrix_equal_operator_a'>a</a> and <a href='#Matrix'>Matrix</a> <a href='#SkMatrix_equal_operator_b'>b</a> are numerically equal
+true if <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> <a href='#SkMatrix_operator==(const SkMatrix& a, const SkMatrix& b)_a'>a</a> and <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> <a href='#SkMatrix_operator==(const SkMatrix& a, const SkMatrix& b)_b'>b</a> are numerically equal
 
 ### Example
 
@@ -4240,23 +4040,23 @@
 bool <a href='#SkMatrix_notequal_operator'>operator!=(const SkMatrix& a, const SkMatrix& b)</a>
 </pre>
 
-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='#Matrix'>Matrix</a>
-contains NaN, even if the other <a href='#Matrix'>Matrix</a> also contains NaN.
+Compares <a href='#SkMatrix_operator!=(const SkMatrix& a, const SkMatrix& b)_a'>a</a> and <a href='#SkMatrix_operator!=(const SkMatrix& a, const SkMatrix& b)_b'>b</a>; returns true if <a href='#SkMatrix_operator!=(const SkMatrix& a, const SkMatrix& b)_a'>a</a> and <a href='#SkMatrix_operator!=(const SkMatrix& a, const SkMatrix& b)_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> also contains NaN.
 
 ### Parameters
 
 <table>  <tr>    <td><a name='SkMatrix_notequal_operator_a'><code><strong>a</strong></code></a></td>
-    <td><a href='#Matrix'>Matrix</a> to compare</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='#Matrix'>Matrix</a> to compare</td>
+    <td><a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> to compare</td>
   </tr>
 </table>
 
 ### Return Value
 
-true if <a href='#Matrix'>Matrix</a> <a href='#SkMatrix_notequal_operator_a'>a</a> and <a href='#Matrix'>Matrix</a> <a href='#SkMatrix_notequal_operator_b'>b</a> are numerically not equal
+true if <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> <a href='#SkMatrix_operator!=(const SkMatrix& a, const SkMatrix& b)_a'>a</a> and <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> <a href='#SkMatrix_operator!=(const SkMatrix& a, const SkMatrix& b)_b'>b</a> are numerically not equal
 
 ### Example
 
@@ -4276,9 +4076,9 @@
 void <a href='#SkMatrix_dump'>dump</a>() const
 </pre>
 
-Writes text representation of <a href='#Matrix'>Matrix</a> to standard output. Floating point values
+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='#Matrix'>Matrix</a> from output.
+original <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> from output.
 
 ### Example
 
@@ -4306,9 +4106,9 @@
 <a href='undocumented#SkScalar'>SkScalar</a> <a href='#SkMatrix_getMinScale'>getMinScale</a>() const
 </pre>
 
-Returns the minimum scaling factor of <a href='#Matrix'>Matrix</a> by decomposing the scaling and
+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='#Matrix'>Matrix</a> contains perspective.
+Returns -1 if scale factor overflows or <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> contains perspective.
 
 ### Return Value
 
@@ -4338,9 +4138,9 @@
 <a href='undocumented#SkScalar'>SkScalar</a> <a href='#SkMatrix_getMaxScale'>getMaxScale</a>() const
 </pre>
 
-Returns the maximum scaling factor of <a href='#Matrix'>Matrix</a> by decomposing the scaling and
+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='#Matrix'>Matrix</a> contains perspective.
+Returns -1 if scale factor overflows or <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> contains perspective.
 
 ### Return Value
 
@@ -4372,7 +4172,7 @@
 
 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='#Matrix'>Matrix</a> scaling and skewing elements.
+the <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> scaling and skewing elements.
 
 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.
@@ -4463,20 +4263,18 @@
 ---
 
 <pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-static const <a href='#SkMatrix'>SkMatrix</a>& I()
+static const <a href='#SkMatrix'>SkMatrix</a>& <a href='#SkMatrix_I'>I</a>()
 </pre>
 
-Returns reference to const identity <a href='#Matrix'>Matrix</a>. Returned <a href='#Matrix'>Matrix</a> is set to:
+Returns reference to const identity <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a>. Returned <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> is set to:
 
-<pre style="padding: 1em 1em 1em 1em;width: 62.5em; background-color: #f0f0f0">
 | 1 0 0 |
 | 0 1 0 |
 | 0 0 1 |
-</pre>
 
 ### Return Value
 
-const identity <a href='#Matrix'>Matrix</a>
+const identity <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a>
 
 ### Example
 
@@ -4503,18 +4301,16 @@
 static const <a href='#SkMatrix'>SkMatrix</a>& <a href='#SkMatrix_InvalidMatrix'>InvalidMatrix</a>()
 </pre>
 
-Returns reference to a const <a href='#Matrix'>Matrix</a> with invalid values. Returned <a href='#Matrix'>Matrix</a> is set
+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:
 
-<pre style="padding: 1em 1em 1em 1em;width: 62.5em; background-color: #f0f0f0">
-| SK_ScalarMax SK_ScalarMax SK_ScalarMax |
-| SK_ScalarMax SK_ScalarMax SK_ScalarMax |
-| SK_ScalarMax SK_ScalarMax SK_ScalarMax |
-</pre>
+| <a href='undocumented#SK_ScalarMax'>SK_ScalarMax</a> <a href='undocumented#SK_ScalarMax'>SK_ScalarMax</a> <a href='undocumented#SK_ScalarMax'>SK_ScalarMax</a> |
+| <a href='undocumented#SK_ScalarMax'>SK_ScalarMax</a> <a href='undocumented#SK_ScalarMax'>SK_ScalarMax</a> <a href='undocumented#SK_ScalarMax'>SK_ScalarMax</a> |
+| <a href='undocumented#SK_ScalarMax'>SK_ScalarMax</a> <a href='undocumented#SK_ScalarMax'>SK_ScalarMax</a> <a href='undocumented#SK_ScalarMax'>SK_ScalarMax</a> |
 
 ### Return Value
 
-const invalid <a href='#Matrix'>Matrix</a>
+const invalid <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a>
 
 ### Example
 
@@ -4540,37 +4336,33 @@
 static <a href='#SkMatrix'>SkMatrix</a> <a href='#SkMatrix_Concat'>Concat</a>(const <a href='#SkMatrix'>SkMatrix</a>& a, const <a href='#SkMatrix'>SkMatrix</a>& b)
 </pre>
 
-Returns <a href='#Matrix'>Matrix</a> <a href='#SkMatrix_Concat_a'>a</a> multiplied by <a href='#Matrix'>Matrix</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:
 
-<pre style="padding: 1em 1em 1em 1em;width: 62.5em; background-color: #f0f0f0">
-    | A B C |      | J K L |
-a = | D E F |, b = | M N O |
-    | G H I |      | P Q R |
-</pre>
+| A B C |      | J K L |
+<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='#Matrix'>Matrix</a> to:
+sets <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> to:
 
-<pre style="padding: 1em 1em 1em 1em;width: 62.5em; background-color: #f0f0f0">
-        | A B C |   | J K L |   | AJ+BM+CP AK+BN+CQ AL+BO+CR |
-a * b = | D E F | * | M N O | = | DJ+EM+FP DK+EN+FQ DL+EO+FR |
-        | G H I |   | P Q R |   | GJ+HM+IP GK+HN+IQ GL+HO+IR |
-</pre>
+| 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> = | 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='#Matrix'>Matrix</a> on left side of multiply expression</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='#Matrix'>Matrix</a> on right side of multiply expression</td>
+    <td><a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> on  right side of multiply expression</td>
   </tr>
 </table>
 
 ### Return Value
 
-<a href='#Matrix'>Matrix</a> computed from <a href='#SkMatrix_Concat_a'>a</a> times <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
 
@@ -4591,7 +4383,7 @@
 </pre>
 
 Sets internal cache to unknown state. Use to force update after repeated
-modifications to <a href='#Matrix'>Matrix</a> element reference returned by <a href='#SkMatrix_array1_operator'>operator[](int index)</a>.
+modifications to <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> element reference returned by <a href='#SkMatrix_array1_operator'>operator[](int index)</a>.
 
 ### Example
 
@@ -4620,13 +4412,11 @@
 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='#Matrix'>Matrix</a> with scale and translate elements.
+Initializes <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> with scale and translate elements.
 
-<pre style="padding: 1em 1em 1em 1em;width: 62.5em; background-color: #f0f0f0">
-| sx  0 tx |
-|  0 sy ty |
+| <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> |
 |  0  0  1 |
-</pre>
 
 ### Parameters
 
@@ -4668,12 +4458,12 @@
 bool <a href='#SkMatrix_isFinite'>isFinite</a>() const
 </pre>
 
-Returns true if all elements of the matrix are finite. Returns false if any
+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 matrix has only finite elements
+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 84f97fa..da8e1ca 100644
--- a/site/user/api/SkPaint_Reference.md
+++ b/site/user/api/SkPaint_Reference.md
@@ -329,14 +329,14 @@
 <a href='#SkPaint'>SkPaint</a>(const <a href='#SkPaint'>SkPaint</a>& paint)
 </pre>
 
-Makes a shallow copy of <a href='#Paint'>Paint</a>. <a href='undocumented#Typeface'>Typeface</a>, <a href='undocumented#Path_Effect'>Path Effect</a>, <a href='undocumented#Shader'>Shader</a>,
-<a href='undocumented#Mask_Filter'>Mask Filter</a>, <a href='undocumented#Color_Filter'>Color Filter</a>, <a href='undocumented#Draw_Looper'>Draw Looper</a>, and <a href='undocumented#Image_Filter'>Image Filter</a> are shared
-between the original <a href='#SkPaint_copy_const_SkPaint_paint'>paint</a> and the copy. Objects containing <a href='undocumented#Reference_Count'>Reference Count</a> increment
+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>, and <a href='undocumented#SkImageFilter'>SkImageFilter</a> are shared
+between the original <a href='#SkPaint_SkPaint(const SkPaint& paint)_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#Path_Effect'>Path Effect</a>, <a href='undocumented#Shader'>Shader</a>, <a href='undocumented#Mask_Filter'>Mask Filter</a>, <a href='undocumented#Color_Filter'>Color Filter</a>,
-<a href='undocumented#Draw_Looper'>Draw Looper</a>, and <a href='undocumented#Image_Filter'>Image Filter</a> cannot be modified after they are created.
-This prevents objects with <a href='undocumented#Reference_Count'>Reference Count</a> from being modified once <a href='#Paint'>Paint</a> refers to them.
+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>, 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
 
@@ -347,7 +347,7 @@
 
 ### Return Value
 
-shallow copy of <a href='#SkPaint_copy_const_SkPaint_paint'>paint</a>
+shallow copy of <a href='#SkPaint_SkPaint(const SkPaint& paint)_paint'>paint</a>
 
 ### Example
 
@@ -371,9 +371,9 @@
 </pre>
 
 Implements a move constructor to avoid increasing the reference counts
-of objects referenced by the <a href='#SkPaint_move_SkPaint_paint'>paint</a>.
+of objects referenced by the <a href='#SkPaint_SkPaint(SkPaint&& paint)_paint'>paint</a>.
 
-After the call, <a href='#SkPaint_move_SkPaint_paint'>paint</a> is undefined, and can be safely destructed.
+After the call, <a href='#SkPaint_SkPaint(SkPaint&& paint)_paint'>paint</a> is undefined, and can be safely destructed.
 
 ### Parameters
 
@@ -384,7 +384,7 @@
 
 ### Return Value
 
-content of <a href='#SkPaint_move_SkPaint_paint'>paint</a>
+content of <a href='#SkPaint_SkPaint(SkPaint&& paint)_paint'>paint</a>
 
 ### Example
 
@@ -406,8 +406,8 @@
 void <a href='#SkPaint_reset'>reset</a>()
 </pre>
 
-Sets all <a href='#Paint'>Paint</a> contents to their initial values. This is equivalent to replacing
-<a href='#Paint'>Paint</a> with the result of <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
 
@@ -429,9 +429,9 @@
 <a href='#SkPaint_destructor'>~SkPaint</a>()
 </pre>
 
-Decreases <a href='#Paint'>Paint</a> <a href='undocumented#Reference_Count'>Reference Count</a> of owned objects: <a href='undocumented#Typeface'>Typeface</a>, <a href='undocumented#Path_Effect'>Path Effect</a>, <a href='undocumented#Shader'>Shader</a>,
-<a href='undocumented#Mask_Filter'>Mask Filter</a>, <a href='undocumented#Color_Filter'>Color Filter</a>, <a href='undocumented#Draw_Looper'>Draw Looper</a>, and <a href='undocumented#Image_Filter'>Image Filter</a>. If the
-objects containing <a href='undocumented#Reference_Count'>Reference Count</a> go to zero, they are deleted.
+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>
 
@@ -443,12 +443,12 @@
 <a href='#SkPaint'>SkPaint</a>& <a href='#SkPaint_copy_operator'>operator=(const SkPaint& paint)</a>
 </pre>
 
-Makes a shallow copy of <a href='#Paint'>Paint</a>. <a href='undocumented#Typeface'>Typeface</a>, <a href='undocumented#Path_Effect'>Path Effect</a>, <a href='undocumented#Shader'>Shader</a>,
-<a href='undocumented#Mask_Filter'>Mask Filter</a>, <a href='undocumented#Color_Filter'>Color Filter</a>, <a href='undocumented#Draw_Looper'>Draw Looper</a>, and <a href='undocumented#Image_Filter'>Image Filter</a> are shared
-between the original <a href='#SkPaint_copy_operator_paint'>paint</a> and the copy. Objects containing <a href='undocumented#Reference_Count'>Reference Count</a> in the
+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>, and <a href='undocumented#SkImageFilter'>SkImageFilter</a> are shared
+between the original <a href='#SkPaint_operator=(const SkPaint& paint)_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#Reference_Count'>Reference Count</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.
+resulting count is zero. Objects containing <a href='undocumented#SkRefCnt'>SkRefCnt</a> in the parameter <a href='#SkPaint_operator=(const SkPaint& paint)_paint'>paint</a>
+are increased by one. <a href='#SkPaint_operator=(const SkPaint& paint)_paint'>paint</a> is unmodified.
 
 ### Parameters
 
@@ -459,7 +459,7 @@
 
 ### Return Value
 
-content of <a href='#SkPaint_copy_operator_paint'>paint</a>
+content of <a href='#SkPaint_operator=(const SkPaint& paint)_paint'>paint</a>
 
 ### Example
 
@@ -482,12 +482,12 @@
 <a href='#SkPaint'>SkPaint</a>& <a href='#SkPaint_move_operator'>operator=(SkPaint&& paint)</a>
 </pre>
 
-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#Reference_Count'>Reference Count</a> in the
+Moves the <a href='#SkPaint_operator=(SkPaint&& paint)_paint'>paint</a> to avoid increasing the reference counts
+of objects referenced by the <a href='#SkPaint_operator=(SkPaint&& paint)_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> is undefined, and can be safely destructed.
+After the call, <a href='#SkPaint_operator=(SkPaint&& paint)_paint'>paint</a> is undefined, and can be safely destructed.
 
 ### Parameters
 
@@ -498,7 +498,7 @@
 
 ### Return Value
 
-content of <a href='#SkPaint_move_operator_paint'>paint</a>
+content of <a href='#SkPaint_operator=(SkPaint&& paint)_paint'>paint</a>
 
 ### Example
 
@@ -520,23 +520,23 @@
 bool <a href='#SkPaint_equal_operator'>operator==(const SkPaint& a, const SkPaint& b)</a>
 </pre>
 
-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#Typeface'>Typeface</a>, <a href='undocumented#Path_Effect'>Path Effect</a>, <a href='undocumented#Shader'>Shader</a>, <a href='undocumented#Mask_Filter'>Mask Filter</a>, <a href='undocumented#Color_Filter'>Color Filter</a>,
-<a href='undocumented#Draw_Looper'>Draw Looper</a>, or <a href='undocumented#Image_Filter'>Image Filter</a> have identical contents but different pointers.
+Compares <a href='#SkPaint_operator==(const SkPaint& a, const SkPaint& b)_a'>a</a> and <a href='#SkPaint_operator==(const SkPaint& a, const SkPaint& b)_b'>b</a>, and returns true if <a href='#SkPaint_operator==(const SkPaint& a, const SkPaint& b)_a'>a</a> and <a href='#SkPaint_operator==(const SkPaint& a, const SkPaint& b)_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>, 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='#Paint'>Paint</a> to compare</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='#Paint'>Paint</a> to compare</td>
+    <td><a href='SkPaint_Reference#SkPaint'>SkPaint</a> to compare</td>
   </tr>
 </table>
 
 ### Return Value
 
-true if <a href='#Paint'>Paint</a> pair are equivalent
+true if <a href='SkPaint_Reference#SkPaint'>SkPaint</a> pair are equivalent
 
 ### Example
 
@@ -563,23 +563,23 @@
 bool <a href='#SkPaint_notequal_operator'>operator!=(const SkPaint& a, const SkPaint& b)</a>
 </pre>
 
-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#Typeface'>Typeface</a>, <a href='undocumented#Path_Effect'>Path Effect</a>, <a href='undocumented#Shader'>Shader</a>, <a href='undocumented#Mask_Filter'>Mask Filter</a>, <a href='undocumented#Color_Filter'>Color Filter</a>,
-<a href='undocumented#Draw_Looper'>Draw Looper</a>, or <a href='undocumented#Image_Filter'>Image Filter</a> have identical contents but different pointers.
+Compares <a href='#SkPaint_operator!=(const SkPaint& a, const SkPaint& b)_a'>a</a> and <a href='#SkPaint_operator!=(const SkPaint& a, const SkPaint& b)_b'>b</a>, and returns true if <a href='#SkPaint_operator!=(const SkPaint& a, const SkPaint& b)_a'>a</a> and <a href='#SkPaint_operator!=(const SkPaint& a, const SkPaint& b)_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>, 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='#Paint'>Paint</a> to compare</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='#Paint'>Paint</a> to compare</td>
+    <td><a href='SkPaint_Reference#SkPaint'>SkPaint</a> to compare</td>
   </tr>
 </table>
 
 ### Return Value
 
-true if <a href='#Paint'>Paint</a> pair are not equivalent
+true if <a href='SkPaint_Reference#SkPaint'>SkPaint</a> pair are not equivalent
 
 ### Example
 
@@ -606,7 +606,7 @@
 uint32_t <a href='#SkPaint_getHash'>getHash</a>() const
 </pre>
 
-Returns a hash generated from <a href='#Paint'>Paint</a> values and pointers.
+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.
@@ -707,9 +707,9 @@
 </table>
 
 On <a href='undocumented#OS_X'>OS X</a> and iOS, hinting controls whether <a href='undocumented#Core_Graphics'>Core Graphics</a> dilates the font outlines
-to account for LCD text. No hinting uses <a href='undocumented#Core_Text'>Core Text</a> <a href='undocumented#Grayscale'>Grayscale</a> output.
+to account for LCD text. No hinting uses <a href='undocumented#Core_Text'>Core Text</a> grayscale output.
 Normal hinting uses <a href='undocumented#Core_Text'>Core Text</a> LCD output. If <a href='#SkPaint_kLCDRenderText_Flag'>kLCDRenderText Flag</a> is clear,
-the LCD output is reduced to a single <a href='undocumented#Grayscale'>Grayscale</a> channel.
+the LCD output is reduced to a single grayscale channel.
 
 On Windows with DirectWrite, <a href='#SkPaint_Hinting'>Hinting</a> has no effect.
 
@@ -724,11 +724,11 @@
 <a href='#SkPaint_Hinting'>Hinting</a> <a href='#SkPaint_getHinting'>getHinting</a>() const
 </pre>
 
-Returns level of glyph outline adjustment.
+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='#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>
 
 ### Example
 
@@ -915,12 +915,12 @@
 uint32_t <a href='#SkPaint_getFlags'>getFlags</a>() const
 </pre>
 
-Returns paint settings described by <a href='#SkPaint_Flags'>Flags</a>. Each setting uses one
-bit, and can be tested with <a href='#SkPaint_Flags'>Flags</a> members.
+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
 
-zero, one, or more bits described by <a href='#SkPaint_Flags'>Flags</a>
+zero, one, or more bits described by <a href='SkPaint_Reference#SkPaint'>SkPaint</a>::<a href='#SkPaint_Flags'>Flags</a>
 
 ### Example
 
@@ -942,13 +942,13 @@
 void <a href='#SkPaint_setFlags'>setFlags</a>(uint32_t flags)
 </pre>
 
-Replaces <a href='#SkPaint_Flags'>Flags</a> with <a href='#SkPaint_setFlags_flags'>flags</a>, the union of the <a href='#SkPaint_Flags'>Flags</a> members.
-All <a href='#SkPaint_Flags'>Flags</a> members may be cleared, or one or more may be set.
+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_Flags'>Flags</a> for <a href='#Paint'>Paint</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>
 
@@ -1005,13 +1005,13 @@
 bool <a href='#SkPaint_isAntiAlias'>isAntiAlias</a>() const
 </pre>
 
-Returns true if pixels on the active edges of <a href='SkPath_Reference#Path'>Path</a> may be drawn with partial transparency.
+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> masked with <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> state
+<a href='#SkPaint_kAntiAlias_Flag'>kAntiAlias_Flag</a> state
 
 ### Example
 
@@ -1034,16 +1034,16 @@
 void <a href='#SkPaint_setAntiAlias'>setAntiAlias</a>(bool aa)
 </pre>
 
-Requests, but does not require, that <a href='SkPath_Reference#Path'>Path</a> edge pixels draw opaque or with
+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> 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.
+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
 
 <table>  <tr>    <td><a name='SkPaint_setAntiAlias_aa'><code><strong>aa</strong></code></a></td>
-    <td>setting for <a href='#SkPaint_kAntiAlias_Flag'>kAntiAlias Flag</a></td>
+    <td>setting for <a href='#SkPaint_kAntiAlias_Flag'>kAntiAlias_Flag</a></td>
   </tr>
 </table>
 
@@ -1105,13 +1105,13 @@
 bool <a href='#SkPaint_isDither'>isDither</a>() const
 </pre>
 
-Returns true if color error may be distributed to smooth color transition.
+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> masked with <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> state
+<a href='#SkPaint_kDither_Flag'>kDither_Flag</a> state
 
 ### Example
 
@@ -1134,15 +1134,15 @@
 void <a href='#SkPaint_setDither'>setDither</a>(bool dither)
 </pre>
 
-Requests, but does not require, to distribute color error.
+Requests, but does not require, to distribute <a href='SkColor_Reference#Color'>color</a> error.
 
-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.
+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
 
 <table>  <tr>    <td><a name='SkPaint_setDither_dither'><code><strong>dither</strong></code></a></td>
-    <td>setting for <a href='#SkPaint_kDither_Flag'>kDither Flag</a></td>
+    <td>setting for <a href='#SkPaint_kDither_Flag'>kDither_Flag</a></td>
   </tr>
 </table>
 
@@ -1204,13 +1204,13 @@
 bool <a href='#SkPaint_isLinearText'>isLinearText</a>() const
 </pre>
 
-Returns true if text is converted to <a href='SkPath_Reference#Path'>Path</a> before drawing and measuring.
+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> masked with <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> state
+<a href='#SkPaint_kLinearText_Flag'>kLinearText_Flag</a> state
 
 ### Example
 
@@ -1228,16 +1228,16 @@
 void <a href='#SkPaint_setLinearText'>setLinearText</a>(bool linearText)
 </pre>
 
-Returns true if text is converted to <a href='SkPath_Reference#Path'>Path</a> before drawing and measuring.
-By default, <a href='#SkPaint_kLinearText_Flag'>kLinearText Flag</a> is clear.
+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> 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.
+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
 
 <table>  <tr>    <td><a name='SkPaint_setLinearText_linearText'><code><strong>linearText</strong></code></a></td>
-    <td>setting for <a href='#SkPaint_kLinearText_Flag'>kLinearText Flag</a></td>
+    <td>setting for <a href='#SkPaint_kLinearText_Flag'>kLinearText_Flag</a></td>
   </tr>
 </table>
 
@@ -1263,13 +1263,13 @@
 bool <a href='#SkPaint_isSubpixelText'>isSubpixelText</a>() const
 </pre>
 
-Returns true if <a href='undocumented#Glyph'>Glyphs</a> at different sub-pixel positions may differ on pixel edge coverage.
+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> masked with <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> state
+<a href='#SkPaint_kSubpixelText_Flag'>kSubpixelText_Flag</a> state
 
 ### Example
 
@@ -1292,15 +1292,15 @@
 void <a href='#SkPaint_setSubpixelText'>setSubpixelText</a>(bool subpixelText)
 </pre>
 
-Requests, but does not require, that <a href='undocumented#Glyph'>Glyphs</a> respect sub-pixel positioning.
+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> 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.
+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
 
 <table>  <tr>    <td><a name='SkPaint_setSubpixelText_subpixelText'><code><strong>subpixelText</strong></code></a></td>
-    <td>setting for <a href='#SkPaint_kSubpixelText_Flag'>kSubpixelText Flag</a></td>
+    <td>setting for <a href='#SkPaint_kSubpixelText_Flag'>kSubpixelText_Flag</a></td>
   </tr>
 </table>
 
@@ -1332,13 +1332,13 @@
 bool <a href='#SkPaint_isLCDRenderText'>isLCDRenderText</a>() const
 </pre>
 
-Returns true if <a href='undocumented#Glyph'>Glyphs</a> may use LCD striping to improve glyph edges.
+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_Flags'>Flags</a> <a href='#SkPaint_kLCDRenderText_Flag'>kLCDRenderText Flag</a> is set.
+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> state
+<a href='#SkPaint_kLCDRenderText_Flag'>kLCDRenderText_Flag</a> state
 
 ### Example
 
@@ -1361,15 +1361,15 @@
 void <a href='#SkPaint_setLCDRenderText'>setLCDRenderText</a>(bool lcdText)
 </pre>
 
-Requests, but does not require, that <a href='undocumented#Glyph'>Glyphs</a> use LCD striping for glyph edges.
+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> 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.
+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
 
 <table>  <tr>    <td><a name='SkPaint_setLCDRenderText_lcdText'><code><strong>lcdText</strong></code></a></td>
-    <td>setting for <a href='#SkPaint_kLCDRenderText_Flag'>kLCDRenderText Flag</a></td>
+    <td>setting for <a href='#SkPaint_kLCDRenderText_Flag'>kLCDRenderText_Flag</a></td>
   </tr>
 </table>
 
@@ -1435,13 +1435,13 @@
 bool <a href='#SkPaint_isEmbeddedBitmapText'>isEmbeddedBitmapText</a>() const
 </pre>
 
-Returns true if <a href='undocumented#Engine'>Font Engine</a> may return <a href='undocumented#Glyph'>Glyphs</a> from font bitmaps instead of from outlines.
+Returns true if  <a href='undocumented#Font_Engine'>font engine</a> 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> masked with <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> state
+<a href='#SkPaint_kEmbeddedBitmapText_Flag'>kEmbeddedBitmapText_Flag</a> state
 
 ### Example
 
@@ -1464,15 +1464,15 @@
 void <a href='#SkPaint_setEmbeddedBitmapText'>setEmbeddedBitmapText</a>(bool useEmbeddedBitmapText)
 </pre>
 
-Requests, but does not require, to use bitmaps in fonts instead of outlines.
+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> 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.
+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
 
 <table>  <tr>    <td><a name='SkPaint_setEmbeddedBitmapText_useEmbeddedBitmapText'><code><strong>useEmbeddedBitmapText</strong></code></a></td>
-    <td>setting for <a href='#SkPaint_kEmbeddedBitmapText_Flag'>kEmbeddedBitmapText Flag</a></td>
+    <td>setting for <a href='#SkPaint_kEmbeddedBitmapText_Flag'>kEmbeddedBitmapText_Flag</a></td>
   </tr>
 </table>
 
@@ -1505,15 +1505,15 @@
 bool <a href='#SkPaint_isAutohinted'>isAutohinted</a>() const
 </pre>
 
-Returns true if <a href='#SkPaint_Hinting'>Hinting</a> is set to <a href='#SkPaint_kNormal_Hinting'>kNormal Hinting</a> or <a href='#SkPaint_kFull_Hinting'>kFull Hinting</a>, and if
-platform uses FreeType as the <a href='undocumented#Font_Manager'>Font Manager</a>. If true, instructs
-the <a href='undocumented#Font_Manager'>Font Manager</a> to always hint <a href='undocumented#Glyph'>Glyphs</a>.
+Returns true if <a href='SkPaint_Reference#SkPaint'>SkPaint</a>::<a href='#SkPaint_Hinting'>Hinting</a> is set to <a href='#SkPaint_kNormal_Hinting'>kNormal_Hinting</a> or <a href='#SkPaint_kFull_Hinting'>kFull_Hinting</a>, and if
+platform uses FreeType as the  <a href='undocumented#Font_Manager'>font manager</a>. If true, instructs
+the  <a href='undocumented#Font_Manager'>font manager</a> to always hint <a href='undocumented#Glyph'>glyphs</a>.
 
-Equivalent to <a href='#SkPaint_getFlags'>getFlags</a> masked with <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> state
+<a href='#SkPaint_kAutoHinting_Flag'>kAutoHinting_Flag</a> state
 
 ### Example
 
@@ -1540,21 +1540,21 @@
 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_Hinting'>Hinting</a> is set to <a href='#SkPaint_kNormal_Hinting'>kNormal Hinting</a> or <a href='#SkPaint_kFull_Hinting'>kFull Hinting</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='#Automatic_Hinting'>Automatic Hinting</a> has no effect if <a href='#SkPaint_Hinting'>Hinting</a> is set to <a href='#SkPaint_kNo_Hinting'>kNo Hinting</a> or
-<a href='#SkPaint_kSlight_Hinting'>kSlight Hinting</a>.
+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> is set to <a href='#SkPaint_kNormal_Hinting'>kNormal_Hinting</a> or <a href='#SkPaint_kFull_Hinting'>kFull_Hinting</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>::<a href='#SkPaint_Hinting'>Hinting</a> is set to <a href='#SkPaint_kNo_Hinting'>kNo_Hinting</a> or
+<a href='#SkPaint_kSlight_Hinting'>kSlight_Hinting</a>.
 
-Only affects platforms that use FreeType as the <a href='undocumented#Font_Manager'>Font Manager</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> 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.
+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
 
 <table>  <tr>    <td><a name='SkPaint_setAutohinted_useAutohinter'><code><strong>useAutohinter</strong></code></a></td>
-    <td>setting for <a href='#SkPaint_kAutoHinting_Flag'>kAutoHinting Flag</a></td>
+    <td>setting for <a href='#SkPaint_kAutoHinting_Flag'>kAutoHinting_Flag</a></td>
   </tr>
 </table>
 
@@ -1595,14 +1595,14 @@
 bool <a href='#SkPaint_isFakeBoldText'>isFakeBoldText</a>() const
 </pre>
 
-Returns true if approximate bold by increasing the stroke width when creating glyph bitmaps
+Returns true if approximate bold by increasing the  <a href='#Stroke_Width'>stroke width</a> 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> masked with <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> state
+<a href='#SkPaint_kFakeBoldText_Flag'>kFakeBoldText_Flag</a> state
 
 ### Example
 
@@ -1625,15 +1625,15 @@
 void <a href='#SkPaint_setFakeBoldText'>setFakeBoldText</a>(bool fakeBoldText)
 </pre>
 
-Increases stroke width when creating glyph bitmaps to approximate a bold typeface.
+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> 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.
+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
 
 <table>  <tr>    <td><a name='SkPaint_setFakeBoldText_fakeBoldText'><code><strong>fakeBoldText</strong></code></a></td>
-    <td>setting for <a href='#SkPaint_kFakeBoldText_Flag'>kFakeBoldText Flag</a></td>
+    <td>setting for <a href='#SkPaint_kFakeBoldText_Flag'>kFakeBoldText_Flag</a></td>
   </tr>
 </table>
 
@@ -1652,12 +1652,12 @@
 <a name='Full_Hinting_Spacing'></a>
 
 if <a href='#SkPaint_Hinting'>Hinting</a> is set to <a href='#SkPaint_kFull_Hinting'>kFull Hinting</a>, <a href='#Full_Hinting_Spacing'>Full Hinting Spacing</a> adjusts the character
-spacing by the difference of the hinted and <a href='undocumented#Unhinted'>Unhinted</a> <a href='undocumented#Left_Side_Bearing'>Left Side Bearing</a> and
+spacing by the difference of the hinted and unhinted <a href='undocumented#Left_Side_Bearing'>Left Side Bearing</a> and
 <a href='undocumented#Right_Side_Bearing'>Right Side Bearing</a>. <a href='#Full_Hinting_Spacing'>Full Hinting Spacing</a> only applies to platforms that use
 FreeType as their <a href='undocumented#Engine'>Font Engine</a>.
 
-<a href='#Full_Hinting_Spacing'>Full Hinting Spacing</a> is not related to text <a href='undocumented#Kerning'>Kerning</a>, where the space between
-a specific pair of characters is adjusted using data in the font <a href='undocumented#Kerning'>Kerning</a> tables.
+<a href='#Full_Hinting_Spacing'>Full Hinting Spacing</a> is not related to text kerning, where the space between
+a specific pair of characters is adjusted using data in the font kerning tables.
 
 <a name='SkPaint_isDevKernText'></a>
 
@@ -1718,12 +1718,13 @@
 <a href='undocumented#SkFilterQuality'>SkFilterQuality</a> <a href='#SkPaint_getFilterQuality'>getFilterQuality</a>() const
 </pre>
 
-Returns <a href='undocumented#Filter_Quality'>Filter Quality</a>, the image filtering level. A lower setting
-draws faster; a higher setting looks better when the image is scaled.
+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
 
 one of: <a href='undocumented#kNone_SkFilterQuality'>kNone_SkFilterQuality</a>, <a href='undocumented#kLow_SkFilterQuality'>kLow_SkFilterQuality</a>,
+
 <a href='undocumented#kMedium_SkFilterQuality'>kMedium_SkFilterQuality</a>, <a href='undocumented#kHigh_SkFilterQuality'>kHigh_SkFilterQuality</a>
 
 ### Example
@@ -1746,18 +1747,19 @@
 void <a href='#SkPaint_setFilterQuality'>setFilterQuality</a>(<a href='undocumented#SkFilterQuality'>SkFilterQuality</a> quality)
 </pre>
 
-Sets <a href='undocumented#Filter_Quality'>Filter Quality</a>, the image filtering level. A lower setting
-draws faster; a higher setting looks better when the image is scaled.
+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
 
 <table>  <tr>    <td><a name='SkPaint_setFilterQuality_quality'><code><strong>quality</strong></code></a></td>
-    <td>one of: <a href='undocumented#kNone_SkFilterQuality'>kNone_SkFilterQuality</a>, <a href='undocumented#kLow_SkFilterQuality'>kLow_SkFilterQuality</a>,
-<a href='undocumented#kMedium_SkFilterQuality'>kMedium_SkFilterQuality</a>, <a href='undocumented#kHigh_SkFilterQuality'>kHigh_SkFilterQuality</a></td>
+    <td>one of: <a href='undocumented#kNone_SkFilterQuality'>kNone_SkFilterQuality</a>, <a href='undocumented#kLow_SkFilterQuality'>kLow_SkFilterQuality</a>,</td>
   </tr>
 </table>
 
+<a href='undocumented#kMedium_SkFilterQuality'>kMedium_SkFilterQuality</a>, <a href='undocumented#kHigh_SkFilterQuality'>kHigh_SkFilterQuality</a>
+
 ### Example
 
 <div><fiddle-embed name="e4288fabf24ee60b645e8bb6ea0afadf">
@@ -1811,13 +1813,13 @@
 <a href='SkColor_Reference#SkColor'>SkColor</a> <a href='#SkPaint_getColor'>getColor</a>() const
 </pre>
 
-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 color component.
+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> ARGB
+<a href='undocumented#Unpremultiply'>unpremultiplied</a> ARGB
 
 ### Example
 
@@ -1843,12 +1845,12 @@
 <a href='SkColor4f_Reference#SkColor4f'>SkColor4f</a> <a href='#SkPaint_getColor4f'>getColor4f</a>() const
 </pre>
 
-Retrieves alpha and RGB, unpmreultiplied, as four floating point values. RGB are
+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> RGBA
+<a href='undocumented#Unpremultiply'>unpremultiplied</a> RGBA
 
 ### Example
 
@@ -1874,13 +1876,13 @@
 void <a href='#SkPaint_setColor'>setColor</a>(<a href='SkColor_Reference#SkColor'>SkColor</a> color)
 </pre>
 
-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.
+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> ARGB</td>
+    <td><a href='undocumented#Unpremultiply'>unpremultiplied</a> ARGB</td>
   </tr>
 </table>
 
@@ -1908,18 +1910,18 @@
 void <a href='#SkPaint_setColor4f'>setColor4f</a>(const <a href='SkColor4f_Reference#SkColor4f'>SkColor4f</a>& color, <a href='undocumented#SkColorSpace'>SkColorSpace</a>* colorSpace)
 </pre>
 
-Sets alpha and RGB used when stroking and filling. The <a href='#SkPaint_setColor4f_color'>color</a> is four floating
-point values, unpremultiplied. The <a href='#SkPaint_setColor4f_color'>color</a> values are interpreted as being in
+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='#SkPaint_setColor4f_color'>color</a> space.
+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> RGBA</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#Color_Space'>Color Space</a> describing the encoding of <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>
 
@@ -1951,11 +1953,11 @@
 uint8_t <a href='#SkPaint_getAlpha'>getAlpha</a>() const
 </pre>
 
-Retrieves <a href='SkColor_Reference#Alpha'>Alpha</a> from the <a href='SkColor_Reference#Color'>Color</a> used when stroking and filling.
+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> ranging from zero, fully transparent, to 255, fully opaque
+<a href='SkColor_Reference#Alpha'>alpha</a> ranging from zero, fully transparent, to 255, fully opaque
 
 ### Example
 
@@ -1977,16 +1979,16 @@
 void <a href='#SkPaint_setAlpha'>setAlpha</a>(<a href='undocumented#U8CPU'>U8CPU</a> a)
 </pre>
 
-Replaces <a href='SkColor_Reference#Alpha'>Alpha</a>, leaving RGB
+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> 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>
+<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> component of <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>
 
@@ -2010,13 +2012,13 @@
 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> used when drawing solid fills. The color components range from 0 to 255.
-The color is <a href='undocumented#Unpremultiply'>Unpremultiplied</a>; <a href='SkColor_Reference#Alpha'>Alpha</a> sets the transparency independent of RGB.
+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'>Color Alpha</a>, from fully transparent (0) to fully opaque (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>
@@ -2170,7 +2172,7 @@
 
 ### Return Value
 
-one of:<a href='#SkPaint_kFill_Style'>kFill Style</a>, <a href='#SkPaint_kStroke_Style'>kStroke Style</a>, <a href='#SkPaint_kStrokeAndFill_Style'>kStrokeAndFill Style</a>
+one of:<a href='#SkPaint_kFill_Style'>kFill_Style</a>, <a href='#SkPaint_kStroke_Style'>kStroke_Style</a>, <a href='#SkPaint_kStrokeAndFill_Style'>kStrokeAndFill_Style</a>
 
 ### Example
 
@@ -2197,12 +2199,12 @@
 </pre>
 
 Sets whether the geometry is filled, stroked, or filled and stroked.
-Has no effect if <a href='#SkPaint_setStyle_style'>style</a> is not a legal <a href='#SkPaint_Style'>Style</a> value.
+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
 
 <table>  <tr>    <td><a name='SkPaint_setStyle_style'><code><strong>style</strong></code></a></td>
-    <td>one of: <a href='#SkPaint_kFill_Style'>kFill Style</a>, <a href='#SkPaint_kStroke_Style'>kStroke Style</a>, <a href='#SkPaint_kStrokeAndFill_Style'>kStrokeAndFill Style</a></td>
+    <td>one of: <a href='#SkPaint_kFill_Style'>kFill_Style</a>, <a href='#SkPaint_kStroke_Style'>kStroke_Style</a>, <a href='#SkPaint_kStrokeAndFill_Style'>kStrokeAndFill_Style</a></td>
   </tr>
 </table>
 
@@ -2245,12 +2247,12 @@
 <a href='undocumented#SkScalar'>SkScalar</a> <a href='#SkPaint_getStrokeWidth'>getStrokeWidth</a>() const
 </pre>
 
-Returns the thickness of the pen used by <a href='#Paint'>Paint</a> to
+Returns the thickness of the pen used by <a href='SkPaint_Reference#SkPaint'>SkPaint</a> to
 outline the shape.
 
 ### Return Value
 
-zero for <a href='#Hairline'>Hairline</a>, greater than zero for pen thickness
+zero for hairline, greater than zero for pen thickness
 
 ### Example
 
@@ -2272,14 +2274,14 @@
 void <a href='#SkPaint_setStrokeWidth'>setStrokeWidth</a>(<a href='undocumented#SkScalar'>SkScalar</a> width)
 </pre>
 
-Sets the thickness of the pen used by the paint to
+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> is less than zero.
 
 ### Parameters
 
 <table>  <tr>    <td><a name='SkPaint_setStrokeWidth_width'><code><strong>width</strong></code></a></td>
-    <td>zero thickness for <a href='#Hairline'>Hairline</a>; greater than zero for pen thickness</td>
+    <td>zero thickness for hairline; greater than zero for pen thickness</td>
   </tr>
 </table>
 
@@ -2350,7 +2352,7 @@
 
 ### Return Value
 
-zero and greater <a href='#Miter_Limit'>Miter Limit</a>
+zero and greater  <a href='#Miter_Limit'>miter limit</a>
 
 ### Example
 
@@ -2383,7 +2385,7 @@
 ### Parameters
 
 <table>  <tr>    <td><a name='SkPaint_setStrokeMiter_miter'><code><strong>miter</strong></code></a></td>
-    <td>zero and greater <a href='#Miter_Limit'>Miter Limit</a></td>
+    <td>zero and greater  <a href='#Miter_Limit'>miter limit</a></td>
   </tr>
 </table>
 
@@ -2510,7 +2512,7 @@
 
 ### Return Value
 
-one of: <a href='#SkPaint_kButt_Cap'>kButt Cap</a>, <a href='#SkPaint_kRound_Cap'>kRound Cap</a>, <a href='#SkPaint_kSquare_Cap'>kSquare Cap</a>
+one of: <a href='#SkPaint_kButt_Cap'>kButt_Cap</a>, <a href='#SkPaint_kRound_Cap'>kRound_Cap</a>, <a href='#SkPaint_kSquare_Cap'>kSquare_Cap</a>
 
 ### Example
 
@@ -2541,11 +2543,12 @@
 ### Parameters
 
 <table>  <tr>    <td><a name='SkPaint_setStrokeCap_cap'><code><strong>cap</strong></code></a></td>
-    <td>one of: <a href='#SkPaint_kButt_Cap'>kButt Cap</a>, <a href='#SkPaint_kRound_Cap'>kRound Cap</a>, <a href='#SkPaint_kSquare_Cap'>kSquare Cap</a>;
-has no effect if <a href='#SkPaint_setStrokeCap_cap'>cap</a> is not valid</td>
+    <td>one of: <a href='#SkPaint_kButt_Cap'>kButt_Cap</a>, <a href='#SkPaint_kRound_Cap'>kRound_Cap</a>, <a href='#SkPaint_kSquare_Cap'>kSquare_Cap</a>;</td>
   </tr>
 </table>
 
+has no effect if <a href='#SkPaint_setStrokeCap_cap'>cap</a> is not valid
+
 ### Example
 
 <div><fiddle-embed name="de83fbd848a4625345b4b87a6e55d98a">
@@ -2677,7 +2680,7 @@
 
 ### Return Value
 
-one of: <a href='#SkPaint_kMiter_Join'>kMiter Join</a>, <a href='#SkPaint_kRound_Join'>kRound Join</a>, <a href='#SkPaint_kBevel_Join'>kBevel Join</a>
+one of: <a href='#SkPaint_kMiter_Join'>kMiter_Join</a>, <a href='#SkPaint_kRound_Join'>kRound_Join</a>, <a href='#SkPaint_kBevel_Join'>kBevel_Join</a>
 
 ### Example
 
@@ -2708,11 +2711,12 @@
 ### Parameters
 
 <table>  <tr>    <td><a name='SkPaint_setStrokeJoin_join'><code><strong>join</strong></code></a></td>
-    <td>one of: <a href='#SkPaint_kMiter_Join'>kMiter Join</a>, <a href='#SkPaint_kRound_Join'>kRound Join</a>, <a href='#SkPaint_kBevel_Join'>kBevel Join</a>;
-otherwise, has no effect</td>
+    <td>one of: <a href='#SkPaint_kMiter_Join'>kMiter_Join</a>, <a href='#SkPaint_kRound_Join'>kRound_Join</a>, <a href='#SkPaint_kBevel_Join'>kBevel_Join</a>;</td>
   </tr>
 </table>
 
+otherwise, has no effect
+
 ### Example
 
 <div><fiddle-embed name="48d963ad4286eddf680f9c511eb6da91">
@@ -2767,28 +2771,29 @@
 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 path.
+Returns the filled equivalent of the stroked <a href='SkPath_Reference#Path'>path</a>.
 
 ### Parameters
 
 <table>  <tr>    <td><a name='SkPaint_getFillPath_src'><code><strong>src</strong></code></a></td>
-    <td><a href='SkPath_Reference#Path'>Path</a> read to create a filled version</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#Path'>Path</a>; may be the same as <a href='#SkPaint_getFillPath_src'>src</a>, but may not be nullptr</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#Path_Effect'>Path Effect</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 < res < 1) reduce precision
-to favor speed and size</td>
+    <td>if > 1, increase precision, else if (0 < <a href='#SkPaint_getFillPath_resScale'>resScale</a> < 1) reduce precision</td>
   </tr>
 </table>
 
+to favor speed and <a href='undocumented#Size'>size</a>
+
 ### Return Value
 
-true if the path represents <a href='#Style_Fill'>Style Fill</a>, or false if it represents <a href='#Hairline'>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
 
@@ -2805,24 +2810,24 @@
 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 path.
+Returns the filled equivalent of the stroked <a href='SkPath_Reference#Path'>path</a>.
 
-Replaces <a href='#SkPaint_getFillPath_2_dst'>dst</a> with the <a href='#SkPaint_getFillPath_2_src'>src</a> path modified by <a href='undocumented#Path_Effect'>Path Effect</a> and <a href='#Style_Stroke'>Style Stroke</a>.
-<a href='undocumented#Path_Effect'>Path Effect</a>, if any, is not culled. <a href='#Stroke_Width'>Stroke Width</a> is created with default precision.
+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#Path'>Path</a> read to create a filled version</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#Path'>Path</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>
+    <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 path represents <a href='#Style_Fill'>Style Fill</a>, or false if it represents <a href='#Hairline'>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
 
@@ -2860,13 +2865,13 @@
 <a href='undocumented#SkShader'>SkShader</a>* <a href='#SkPaint_getShader'>getShader</a>() const
 </pre>
 
-Returns optional colors used when filling a path, such as a gradient.
+Returns optional colors used when filling a <a href='SkPath_Reference#Path'>path</a>, such as a gradient.
 
-Does not alter <a href='undocumented#Shader'>Shader</a> <a href='undocumented#Reference_Count'>Reference Count</a>.
+Does not alter <a href='undocumented#SkShader'>SkShader</a> <a href='undocumented#SkRefCnt'>SkRefCnt</a>.
 
 ### Return Value
 
-<a href='undocumented#Shader'>Shader</a> if previously set, nullptr otherwise
+<a href='undocumented#SkShader'>SkShader</a> if previously set, nullptr otherwise
 
 ### Example
 
@@ -2889,13 +2894,13 @@
 <a href='undocumented#sk_sp'>sk sp</a>&lt;<a href='undocumented#SkShader'>SkShader</a>&gt; <a href='#SkPaint_refShader'>refShader</a>() const
 </pre>
 
-Returns optional colors used when filling a path, such as a gradient.
+Returns optional colors used when filling a <a href='SkPath_Reference#Path'>path</a>, such as a gradient.
 
-Increases <a href='undocumented#Shader'>Shader</a> <a href='undocumented#Reference_Count'>Reference Count</a> by one.
+Increases <a href='undocumented#SkShader'>SkShader</a> <a href='undocumented#SkRefCnt'>SkRefCnt</a> by one.
 
 ### Return Value
 
-<a href='undocumented#Shader'>Shader</a> if previously set, nullptr otherwise
+<a href='undocumented#SkShader'>SkShader</a> if previously set, nullptr otherwise
 
 ### Example
 
@@ -2918,15 +2923,15 @@
 void <a href='#SkPaint_setShader'>setShader</a>(<a href='undocumented#sk_sp'>sk sp</a>&lt;<a href='undocumented#SkShader'>SkShader</a>&gt; shader)
 </pre>
 
-Sets optional colors used when filling a path, such as a gradient.
+Sets optional colors used when filling a <a href='SkPath_Reference#Path'>path</a>, such as a gradient.
 
-Sets <a href='undocumented#Shader'>Shader</a> to <a href='#SkPaint_setShader_shader'>shader</a>, decreasing <a href='undocumented#Reference_Count'>Reference Count</a> of the previous <a href='undocumented#Shader'>Shader</a>.
-Increments <a href='#SkPaint_setShader_shader'>shader</a> <a href='undocumented#Reference_Count'>Reference Count</a> by one.
+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 color; if nullptr, <a href='SkColor_Reference#Color'>Color</a> is used instead</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>
 
@@ -2956,12 +2961,12 @@
 <a href='undocumented#SkColorFilter'>SkColorFilter</a>* <a href='#SkPaint_getColorFilter'>getColorFilter</a>() const
 </pre>
 
-Returns <a href='undocumented#Color_Filter'>Color Filter</a> if set, or nullptr.
-Does not alter <a href='undocumented#Color_Filter'>Color Filter</a> <a href='undocumented#Reference_Count'>Reference Count</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#Color_Filter'>Color Filter</a> if previously set, nullptr otherwise
+<a href='undocumented#SkColorFilter'>SkColorFilter</a> if previously set, nullptr otherwise
 
 ### Example
 
@@ -2984,12 +2989,12 @@
 <a href='undocumented#sk_sp'>sk sp</a>&lt;<a href='undocumented#SkColorFilter'>SkColorFilter</a>&gt; <a href='#SkPaint_refColorFilter'>refColorFilter</a>() const
 </pre>
 
-Returns <a href='undocumented#Color_Filter'>Color Filter</a> if set, or nullptr.
-Increases <a href='undocumented#Color_Filter'>Color Filter</a> <a href='undocumented#Reference_Count'>Reference Count</a> by one.
+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#Color_Filter'>Color Filter</a> if set, or nullptr
+<a href='undocumented#SkColorFilter'>SkColorFilter</a> if set, or nullptr
 
 ### Example
 
@@ -3012,15 +3017,15 @@
 void <a href='#SkPaint_setColorFilter'>setColorFilter</a>(<a href='undocumented#sk_sp'>sk sp</a>&lt;<a href='undocumented#SkColorFilter'>SkColorFilter</a>&gt; colorFilter)
 </pre>
 
-Sets <a href='undocumented#Color_Filter'>Color Filter</a> to filter, decreasing <a href='undocumented#Reference_Count'>Reference Count</a> of the previous
-<a href='undocumented#Color_Filter'>Color Filter</a>. Pass nullptr to clear <a href='undocumented#Color_Filter'>Color Filter</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#Reference_Count'>Reference Count</a> by one.
+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#Color_Filter'>Color Filter</a> to apply to subsequent draw</td>
+    <td><a href='undocumented#SkColorFilter'>SkColorFilter</a> to apply to subsequent draw</td>
   </tr>
 </table>
 
@@ -3052,12 +3057,12 @@
 <a href='SkBlendMode_Reference#SkBlendMode'>SkBlendMode</a> <a href='#SkPaint_getBlendMode'>getBlendMode</a>() const
 </pre>
 
-Returns <a href='SkBlendMode_Reference#Blend_Mode'>Blend Mode</a>.
-By default, returns <a href='SkBlendMode_Reference#SkBlendMode_kSrcOver'>SkBlendMode::kSrcOver</a>.
+Returns <a href='SkBlendMode_Reference#SkBlendMode'>SkBlendMode</a>.
+By default, returns <a href='SkBlendMode_Reference#SkBlendMode'>SkBlendMode</a>::<a href='#SkBlendMode_kSrcOver'>kSrcOver</a>.
 
 ### Return Value
 
-mode used to combine source color with destination color
+mode used to combine source <a href='SkColor_Reference#Color'>color</a> with destination <a href='SkColor_Reference#Color'>color</a>
 
 ### Example
 
@@ -3080,11 +3085,11 @@
 bool <a href='#SkPaint_isSrcOver'>isSrcOver</a>() const
 </pre>
 
-Returns true if <a href='SkBlendMode_Reference#Blend_Mode'>Blend Mode</a> is <a href='SkBlendMode_Reference#SkBlendMode_kSrcOver'>SkBlendMode::kSrcOver</a>, the default.
+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#Blend_Mode'>Blend Mode</a> is <a href='SkBlendMode_Reference#SkBlendMode_kSrcOver'>SkBlendMode::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
 
@@ -3107,13 +3112,13 @@
 void <a href='#SkPaint_setBlendMode'>setBlendMode</a>(<a href='SkBlendMode_Reference#SkBlendMode'>SkBlendMode</a> mode)
 </pre>
 
-Sets <a href='SkBlendMode_Reference#Blend_Mode'>Blend Mode</a> to <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> used to combine source color and destination</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>
 
@@ -3154,12 +3159,12 @@
 <a href='undocumented#SkPathEffect'>SkPathEffect</a>* <a href='#SkPaint_getPathEffect'>getPathEffect</a>() const
 </pre>
 
-Returns <a href='undocumented#Path_Effect'>Path Effect</a> if set, or nullptr.
-Does not alter <a href='undocumented#Path_Effect'>Path Effect</a> <a href='undocumented#Reference_Count'>Reference Count</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#Path_Effect'>Path Effect</a> if previously set, nullptr otherwise
+<a href='undocumented#SkPathEffect'>SkPathEffect</a> if previously set, nullptr otherwise
 
 ### Example
 
@@ -3182,12 +3187,12 @@
 <a href='undocumented#sk_sp'>sk sp</a>&lt;<a href='undocumented#SkPathEffect'>SkPathEffect</a>&gt; <a href='#SkPaint_refPathEffect'>refPathEffect</a>() const
 </pre>
 
-Returns <a href='undocumented#Path_Effect'>Path Effect</a> if set, or nullptr.
-Increases <a href='undocumented#Path_Effect'>Path Effect</a> <a href='undocumented#Reference_Count'>Reference Count</a> by one.
+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#Path_Effect'>Path Effect</a> if previously set, nullptr otherwise
+<a href='undocumented#SkPathEffect'>SkPathEffect</a> if previously set, nullptr otherwise
 
 ### Example
 
@@ -3210,15 +3215,15 @@
 void <a href='#SkPaint_setPathEffect'>setPathEffect</a>(<a href='undocumented#sk_sp'>sk sp</a>&lt;<a href='undocumented#SkPathEffect'>SkPathEffect</a>&gt; pathEffect)
 </pre>
 
-Sets <a href='undocumented#Path_Effect'>Path Effect</a> to <a href='#SkPaint_setPathEffect_pathEffect'>pathEffect</a>, decreasing <a href='undocumented#Reference_Count'>Reference Count</a> of the previous
-<a href='undocumented#Path_Effect'>Path Effect</a>. Pass nullptr to leave the path geometry unaltered.
+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#Reference_Count'>Reference Count</a> by one.
+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#Path'>Path</a> with a modification when drawn</td>
+    <td>replace <a href='SkPath_Reference#SkPath'>SkPath</a> with a modification when drawn</td>
   </tr>
 </table>
 
@@ -3249,12 +3254,12 @@
 <a href='undocumented#SkMaskFilter'>SkMaskFilter</a>* <a href='#SkPaint_getMaskFilter'>getMaskFilter</a>() const
 </pre>
 
-Returns <a href='undocumented#Mask_Filter'>Mask Filter</a> if set, or nullptr.
-Does not alter <a href='undocumented#Mask_Filter'>Mask Filter</a> <a href='undocumented#Reference_Count'>Reference Count</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#Mask_Filter'>Mask Filter</a> if previously set, nullptr otherwise
+<a href='undocumented#SkMaskFilter'>SkMaskFilter</a> if previously set, nullptr otherwise
 
 ### Example
 
@@ -3277,13 +3282,13 @@
 <a href='undocumented#sk_sp'>sk sp</a>&lt;<a href='undocumented#SkMaskFilter'>SkMaskFilter</a>&gt; <a href='#SkPaint_refMaskFilter'>refMaskFilter</a>() const
 </pre>
 
-Returns <a href='undocumented#Mask_Filter'>Mask Filter</a> if set, or nullptr.
+Returns <a href='undocumented#SkMaskFilter'>SkMaskFilter</a> if set, or nullptr.
 
-Increases <a href='undocumented#Mask_Filter'>Mask Filter</a> <a href='undocumented#Reference_Count'>Reference Count</a> by one.
+Increases <a href='undocumented#SkMaskFilter'>SkMaskFilter</a> <a href='undocumented#SkRefCnt'>SkRefCnt</a> by one.
 
 ### Return Value
 
-<a href='undocumented#Mask_Filter'>Mask Filter</a> if previously set, nullptr otherwise
+<a href='undocumented#SkMaskFilter'>SkMaskFilter</a> if previously set, nullptr otherwise
 
 ### Example
 
@@ -3306,11 +3311,11 @@
 void <a href='#SkPaint_setMaskFilter'>setMaskFilter</a>(<a href='undocumented#sk_sp'>sk sp</a>&lt;<a href='undocumented#SkMaskFilter'>SkMaskFilter</a>&gt; maskFilter)
 </pre>
 
-Sets <a href='undocumented#Mask_Filter'>Mask Filter</a> to <a href='#SkPaint_setMaskFilter_maskFilter'>maskFilter</a>, decreasing <a href='undocumented#Reference_Count'>Reference Count</a> of the previous
-<a href='undocumented#Mask_Filter'>Mask Filter</a>. Pass nullptr to clear <a href='undocumented#Mask_Filter'>Mask Filter</a> and leave <a href='undocumented#Mask_Filter'>Mask Filter</a> effect on
-<a href='undocumented#Mask_Alpha'>Mask Alpha</a> unaltered.
+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#Reference_Count'>Reference Count</a> by one.
+Increments <a href='#SkPaint_setMaskFilter_maskFilter'>maskFilter</a> <a href='undocumented#SkRefCnt'>SkRefCnt</a> by one.
 
 ### Parameters
 
@@ -3344,12 +3349,12 @@
 <a href='undocumented#SkTypeface'>SkTypeface</a>* <a href='#SkPaint_getTypeface'>getTypeface</a>() const
 </pre>
 
-Returns <a href='undocumented#Typeface'>Typeface</a> if set, or nullptr.
-Does not alter <a href='undocumented#Typeface'>Typeface</a> <a href='undocumented#Reference_Count'>Reference Count</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#Typeface'>Typeface</a> if previously set, nullptr otherwise
+<a href='undocumented#SkTypeface'>SkTypeface</a> if previously set, nullptr otherwise
 
 ### Example
 
@@ -3372,11 +3377,11 @@
 <a href='undocumented#sk_sp'>sk sp</a>&lt;<a href='undocumented#SkTypeface'>SkTypeface</a>&gt; <a href='#SkPaint_refTypeface'>refTypeface</a>() const
 </pre>
 
-Increases <a href='undocumented#Typeface'>Typeface</a> <a href='undocumented#Reference_Count'>Reference Count</a> by one.
+Increases <a href='undocumented#SkTypeface'>SkTypeface</a> <a href='undocumented#SkRefCnt'>SkRefCnt</a> by one.
 
 ### Return Value
 
-<a href='undocumented#Typeface'>Typeface</a> if previously set, nullptr otherwise
+<a href='undocumented#SkTypeface'>SkTypeface</a> if previously set, nullptr otherwise
 
 ### Example
 
@@ -3399,14 +3404,14 @@
 void <a href='#SkPaint_setTypeface'>setTypeface</a>(<a href='undocumented#sk_sp'>sk sp</a>&lt;<a href='undocumented#SkTypeface'>SkTypeface</a>&gt; typeface)
 </pre>
 
-Sets <a href='undocumented#Typeface'>Typeface</a> to <a href='#SkPaint_setTypeface_typeface'>typeface</a>, decreasing <a href='undocumented#Reference_Count'>Reference Count</a> of the previous <a href='undocumented#Typeface'>Typeface</a>.
-Pass nullptr to clear <a href='undocumented#Typeface'>Typeface</a> and use the default <a href='#SkPaint_setTypeface_typeface'>typeface</a>. Increments
-<a href='#SkPaint_setTypeface_typeface'>typeface</a> <a href='undocumented#Reference_Count'>Reference Count</a> by one.
+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>font and style used to draw text</td>
+    <td><a href='undocumented#Font'>font</a> and style used to draw <a href='undocumented#Text'>text</a></td>
   </tr>
 </table>
 
@@ -3439,12 +3444,12 @@
 <a href='undocumented#SkImageFilter'>SkImageFilter</a>* <a href='#SkPaint_getImageFilter'>getImageFilter</a>() const
 </pre>
 
-Returns <a href='undocumented#Image_Filter'>Image Filter</a> if set, or nullptr.
-Does not alter <a href='undocumented#Image_Filter'>Image Filter</a> <a href='undocumented#Reference_Count'>Reference Count</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#Image_Filter'>Image Filter</a> if previously set, nullptr otherwise
+<a href='undocumented#SkImageFilter'>SkImageFilter</a> if previously set, nullptr otherwise
 
 ### Example
 
@@ -3467,12 +3472,12 @@
 <a href='undocumented#sk_sp'>sk sp</a>&lt;<a href='undocumented#SkImageFilter'>SkImageFilter</a>&gt; <a href='#SkPaint_refImageFilter'>refImageFilter</a>() const
 </pre>
 
-Returns <a href='undocumented#Image_Filter'>Image Filter</a> if set, or nullptr.
-Increases <a href='undocumented#Image_Filter'>Image Filter</a> <a href='undocumented#Reference_Count'>Reference Count</a> by one.
+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#Image_Filter'>Image Filter</a> if previously set, nullptr otherwise
+<a href='undocumented#SkImageFilter'>SkImageFilter</a> if previously set, nullptr otherwise
 
 ### Example
 
@@ -3495,16 +3500,16 @@
 void <a href='#SkPaint_setImageFilter'>setImageFilter</a>(<a href='undocumented#sk_sp'>sk sp</a>&lt;<a href='undocumented#SkImageFilter'>SkImageFilter</a>&gt; imageFilter)
 </pre>
 
-Sets <a href='undocumented#Image_Filter'>Image Filter</a> to <a href='#SkPaint_setImageFilter_imageFilter'>imageFilter</a>, decreasing <a href='undocumented#Reference_Count'>Reference Count</a> of the previous
-<a href='undocumented#Image_Filter'>Image Filter</a>. Pass nullptr to clear <a href='undocumented#Image_Filter'>Image Filter</a>, and remove <a href='undocumented#Image_Filter'>Image Filter</a> effect
+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#Reference_Count'>Reference Count</a> by one.
+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#Image'>Image</a> is sampled when transformed</td>
+    <td>how <a href='SkImage_Reference#SkImage'>SkImage</a> is sampled when transformed</td>
   </tr>
 </table>
 
@@ -3535,12 +3540,12 @@
 <a href='undocumented#SkDrawLooper'>SkDrawLooper</a>* <a href='#SkPaint_getDrawLooper'>getDrawLooper</a>() const
 </pre>
 
-Returns <a href='undocumented#Draw_Looper'>Draw Looper</a> if set, or nullptr.
-Does not alter <a href='undocumented#Draw_Looper'>Draw Looper</a> <a href='undocumented#Reference_Count'>Reference Count</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#Draw_Looper'>Draw Looper</a> if previously set, nullptr otherwise
+<a href='undocumented#SkDrawLooper'>SkDrawLooper</a> if previously set, nullptr otherwise
 
 ### Example
 
@@ -3563,12 +3568,12 @@
 <a href='undocumented#sk_sp'>sk sp</a>&lt;<a href='undocumented#SkDrawLooper'>SkDrawLooper</a>&gt; <a href='#SkPaint_refDrawLooper'>refDrawLooper</a>() const
 </pre>
 
-Returns <a href='undocumented#Draw_Looper'>Draw Looper</a> if set, or nullptr.
-Increases <a href='undocumented#Draw_Looper'>Draw Looper</a> <a href='undocumented#Reference_Count'>Reference Count</a> by one.
+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#Draw_Looper'>Draw Looper</a> if previously set, nullptr otherwise
+<a href='undocumented#SkDrawLooper'>SkDrawLooper</a> if previously set, nullptr otherwise
 
 ### Example
 
@@ -3601,16 +3606,16 @@
 void <a href='#SkPaint_setDrawLooper'>setDrawLooper</a>(<a href='undocumented#sk_sp'>sk sp</a>&lt;<a href='undocumented#SkDrawLooper'>SkDrawLooper</a>&gt; drawLooper)
 </pre>
 
-Sets <a href='undocumented#Draw_Looper'>Draw Looper</a> to <a href='#SkPaint_setDrawLooper_drawLooper'>drawLooper</a>, decreasing <a href='undocumented#Reference_Count'>Reference Count</a> of the previous
-<a href='#SkPaint_setDrawLooper_drawLooper'>drawLooper</a>.  Pass nullptr to clear <a href='undocumented#Draw_Looper'>Draw Looper</a> and leave <a href='undocumented#Draw_Looper'>Draw Looper</a> effect on
+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#Reference_Count'>Reference Count</a> by one.
+Increments <a href='#SkPaint_setDrawLooper_drawLooper'>drawLooper</a> <a href='undocumented#SkRefCnt'>SkRefCnt</a> by one.
 
 ### Parameters
 
 <table>  <tr>    <td><a name='SkPaint_setDrawLooper_drawLooper'><code><strong>drawLooper</strong></code></a></td>
-    <td>iterates through drawing one or more time, altering <a href='#Paint'>Paint</a></td>
+    <td>iterates through drawing one or more time, altering <a href='SkPaint_Reference#SkPaint'>SkPaint</a></td>
   </tr>
 </table>
 
@@ -3733,11 +3738,11 @@
 <a href='undocumented#SkScalar'>SkScalar</a> <a href='#SkPaint_getTextSize'>getTextSize</a>() const
 </pre>
 
-Returns <a href='#Text_Size'>Text Size</a> in points.
+Returns  <a href='#Text_Size'>text size</a> in <a href='SkPoint_Reference#Point'>points</a>.
 
 ### Return Value
 
-typographic height of text
+typographic height of <a href='undocumented#Text'>text</a>
 
 ### Example
 
@@ -3751,13 +3756,13 @@
 void <a href='#SkPaint_setTextSize'>setTextSize</a>(<a href='undocumented#SkScalar'>SkScalar</a> textSize)
 </pre>
 
-Sets <a href='#Text_Size'>Text Size</a> in points.
+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
 
 <table>  <tr>    <td><a name='SkPaint_setTextSize_textSize'><code><strong>textSize</strong></code></a></td>
-    <td>typographic height of text</td>
+    <td>typographic height of <a href='undocumented#Text'>text</a></td>
   </tr>
 </table>
 
@@ -3787,12 +3792,12 @@
 <a href='undocumented#SkScalar'>SkScalar</a> <a href='#SkPaint_getTextScaleX'>getTextScaleX</a>() const
 </pre>
 
-Returns <a href='#Text_Scale_X'>Text Scale X</a>.
+Returns  <a href='undocumented#Text'>text scale</a> on x-axis.
 Default value is 1.
 
 ### Return Value
 
-text horizontal scale
+<a href='undocumented#Text'>text</a> horizontal scale
 
 ### Example
 
@@ -3806,13 +3811,13 @@
 void <a href='#SkPaint_setTextScaleX'>setTextScaleX</a>(<a href='undocumented#SkScalar'>SkScalar</a> scaleX)
 </pre>
 
-Sets <a href='#Text_Scale_X'>Text Scale X</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>text horizontal scale</td>
+    <td><a href='undocumented#Text'>text</a> horizontal scale</td>
   </tr>
 </table>
 
@@ -3842,12 +3847,12 @@
 <a href='undocumented#SkScalar'>SkScalar</a> <a href='#SkPaint_getTextSkewX'>getTextSkewX</a>() const
 </pre>
 
-Returns <a href='#Text_Skew_X'>Text Skew X</a>.
+Returns  <a href='undocumented#Text'>text skew</a> on x-axis.
 Default value is zero.
 
 ### Return Value
 
-additional shear in x-axis relative to y-axis
+additional shear on x-axis relative to y-axis
 
 ### Example
 
@@ -3861,13 +3866,13 @@
 void <a href='#SkPaint_setTextSkewX'>setTextSkewX</a>(<a href='undocumented#SkScalar'>SkScalar</a> skewX)
 </pre>
 
-Sets <a href='#Text_Skew_X'>Text Skew X</a>.
+Sets  <a href='undocumented#Text'>text skew</a> on x-axis.
 Default value is zero.
 
 ### Parameters
 
 <table>  <tr>    <td><a name='SkPaint_setTextSkewX_skewX'><code><strong>skewX</strong></code></a></td>
-    <td>additional shear in x-axis relative to y-axis</td>
+    <td>additional shear on x-axis relative to y-axis</td>
   </tr>
 </table>
 
@@ -3958,13 +3963,14 @@
 <a href='#SkPaint_TextEncoding'>TextEncoding</a> <a href='#SkPaint_getTextEncoding'>getTextEncoding</a>() const
 </pre>
 
-Returns <a href='#Text_Encoding'>Text Encoding</a>.
-<a href='#Text_Encoding'>Text Encoding</a> determines how character code points are mapped to font glyph indices.
+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> 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>, or
-<a href='#SkPaint_kGlyphID_TextEncoding'>kGlyphID TextEncoding</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>
 
 ### Example
 
@@ -3987,20 +3993,19 @@
 void <a href='#SkPaint_setTextEncoding'>setTextEncoding</a>(<a href='#SkPaint_TextEncoding'>TextEncoding</a> encoding)
 </pre>
 
-Sets <a href='#Text_Encoding'>Text Encoding</a> to <a href='#SkPaint_setTextEncoding_encoding'>encoding</a>.
-<a href='#Text_Encoding'>Text Encoding</a> determines how character code points are mapped to font glyph indices.
+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>, or
-<a href='#SkPaint_kGlyphID_TextEncoding'>kGlyphID TextEncoding</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>
 
+<a href='#SkPaint_kGlyphID_TextEncoding'>kGlyphID_TextEncoding</a>
+
 ### Example
 
 <div><fiddle-embed name="6d9ffdd3c5543e9f12972a06dd4a0ce5">
@@ -4271,7 +4276,7 @@
 bool <a href='#SkPaint_FontMetrics_hasUnderlineThickness'>hasUnderlineThickness</a>(<a href='undocumented#SkScalar'>SkScalar</a>* thickness) const
 </pre>
 
-Returns true if <a href='#Font_Metrics'>Font Metrics</a> has a valid underline <a href='#SkPaint_FontMetrics_hasUnderlineThickness_thickness'>thickness</a>, and sets
+Returns true if <a href='SkPaint_Reference#SkPaint'>SkPaint</a>::<a href='#SkPaint_FontMetrics'>FontMetrics</a> has a valid underline <a href='#SkPaint_FontMetrics_hasUnderlineThickness_thickness'>thickness</a>, and sets
 <a href='#SkPaint_FontMetrics_hasUnderlineThickness_thickness'>thickness</a> to that value. If the underline <a href='#SkPaint_FontMetrics_hasUnderlineThickness_thickness'>thickness</a> is not valid,
 return false, and ignore <a href='#SkPaint_FontMetrics_hasUnderlineThickness_thickness'>thickness</a>.
 
@@ -4284,7 +4289,7 @@
 
 ### Return Value
 
-true if font specifies underline width
+true if <a href='undocumented#Font'>font</a> specifies underline width
 
 <a name='SkPaint_FontMetrics_hasUnderlinePosition'></a>
 
@@ -4294,7 +4299,7 @@
 bool <a href='#SkPaint_FontMetrics_hasUnderlinePosition'>hasUnderlinePosition</a>(<a href='undocumented#SkScalar'>SkScalar</a>* position) const
 </pre>
 
-Returns true if <a href='#Font_Metrics'>Font Metrics</a> has a valid underline <a href='#SkPaint_FontMetrics_hasUnderlinePosition_position'>position</a>, and sets
+Returns true if <a href='SkPaint_Reference#SkPaint'>SkPaint</a>::<a href='#SkPaint_FontMetrics'>FontMetrics</a> has a valid underline <a href='#SkPaint_FontMetrics_hasUnderlinePosition_position'>position</a>, and sets
 <a href='#SkPaint_FontMetrics_hasUnderlinePosition_position'>position</a> to that value. If the underline <a href='#SkPaint_FontMetrics_hasUnderlinePosition_position'>position</a> is not valid,
 return false, and ignore <a href='#SkPaint_FontMetrics_hasUnderlinePosition_position'>position</a>.
 
@@ -4307,7 +4312,7 @@
 
 ### Return Value
 
-true if font specifies underline <a href='#SkPaint_FontMetrics_hasUnderlinePosition_position'>position</a>
+true if <a href='undocumented#Font'>font</a> specifies underline <a href='#SkPaint_FontMetrics_hasUnderlinePosition_position'>position</a>
 
 <a name='SkPaint_FontMetrics_hasStrikeoutThickness'></a>
 
@@ -4317,7 +4322,7 @@
 bool <a href='#SkPaint_FontMetrics_hasStrikeoutThickness'>hasStrikeoutThickness</a>(<a href='undocumented#SkScalar'>SkScalar</a>* thickness) const
 </pre>
 
-Returns true if <a href='#Font_Metrics'>Font Metrics</a> has a valid strikeout <a href='#SkPaint_FontMetrics_hasStrikeoutThickness_thickness'>thickness</a>, and sets
+Returns true if <a href='SkPaint_Reference#SkPaint'>SkPaint</a>::<a href='#SkPaint_FontMetrics'>FontMetrics</a> has a valid strikeout <a href='#SkPaint_FontMetrics_hasStrikeoutThickness_thickness'>thickness</a>, and sets
 <a href='#SkPaint_FontMetrics_hasStrikeoutThickness_thickness'>thickness</a> to that value. If the underline <a href='#SkPaint_FontMetrics_hasStrikeoutThickness_thickness'>thickness</a> is not valid,
 return false, and ignore <a href='#SkPaint_FontMetrics_hasStrikeoutThickness_thickness'>thickness</a>.
 
@@ -4330,7 +4335,7 @@
 
 ### Return Value
 
-true if font specifies strikeout width
+true if <a href='undocumented#Font'>font</a> specifies strikeout width
 
 <a name='SkPaint_FontMetrics_hasStrikeoutPosition'></a>
 
@@ -4340,7 +4345,7 @@
 bool <a href='#SkPaint_FontMetrics_hasStrikeoutPosition'>hasStrikeoutPosition</a>(<a href='undocumented#SkScalar'>SkScalar</a>* position) const
 </pre>
 
-Returns true if <a href='#Font_Metrics'>Font Metrics</a> has a valid strikeout <a href='#SkPaint_FontMetrics_hasStrikeoutPosition_position'>position</a>, and sets
+Returns true if <a href='SkPaint_Reference#SkPaint'>SkPaint</a>::<a href='#SkPaint_FontMetrics'>FontMetrics</a> has a valid strikeout <a href='#SkPaint_FontMetrics_hasStrikeoutPosition_position'>position</a>, and sets
 <a href='#SkPaint_FontMetrics_hasStrikeoutPosition_position'>position</a> to that value. If the underline <a href='#SkPaint_FontMetrics_hasStrikeoutPosition_position'>position</a> is not valid,
 return false, and ignore <a href='#SkPaint_FontMetrics_hasStrikeoutPosition_position'>position</a>.
 
@@ -4353,7 +4358,7 @@
 
 ### Return Value
 
-true if font specifies strikeout <a href='#SkPaint_FontMetrics_hasStrikeoutPosition_position'>position</a>
+true if <a href='undocumented#Font'>font</a> specifies strikeout <a href='#SkPaint_FontMetrics_hasStrikeoutPosition_position'>position</a>
 
 <a name='SkPaint_getFontMetrics'></a>
 
@@ -4363,20 +4368,20 @@
 <a href='undocumented#SkScalar'>SkScalar</a> <a href='#SkPaint_getFontMetrics'>getFontMetrics</a>(<a href='#SkPaint_FontMetrics'>FontMetrics</a>* metrics, <a href='undocumented#SkScalar'>SkScalar</a> scale = 0) const
 </pre>
 
-Returns <a href='#Font_Metrics'>Font Metrics</a> associated with <a href='undocumented#Typeface'>Typeface</a>.
-The return value is the recommended spacing between lines: the sum of <a href='#SkPaint_getFontMetrics_metrics'>metrics</a>
+Returns <a href='SkPaint_Reference#SkPaint'>SkPaint</a>::<a href='#SkPaint_FontMetrics'>FontMetrics</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> is not nullptr, <a href='#Font_Metrics'>Font Metrics</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#Path_Effect'>Path Effect</a>.
+If <a href='#SkPaint_getFontMetrics_metrics'>metrics</a> is not nullptr, <a href='SkPaint_Reference#SkPaint'>SkPaint</a>::<a href='#SkPaint_FontMetrics'>FontMetrics</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>.
 Results can be additionally scaled by <a href='#SkPaint_getFontMetrics_scale'>scale</a>; a <a href='#SkPaint_getFontMetrics_scale'>scale</a> of zero
 is ignored.
 
 ### Parameters
 
 <table>  <tr>    <td><a name='SkPaint_getFontMetrics_metrics'><code><strong>metrics</strong></code></a></td>
-    <td>storage for <a href='#Font_Metrics'>Font Metrics</a> from <a href='undocumented#Typeface'>Typeface</a>; may be nullptr</td>
+    <td>storage for <a href='SkPaint_Reference#SkPaint'>SkPaint</a>::<a href='#SkPaint_FontMetrics'>FontMetrics</a> from <a href='undocumented#SkTypeface'>SkTypeface</a>; may be nullptr</td>
   </tr>
   <tr>    <td><a name='SkPaint_getFontMetrics_scale'><code><strong>scale</strong></code></a></td>
     <td>additional multiplier for returned values</td>
@@ -4385,7 +4390,7 @@
 
 ### Return Value
 
-recommended spacing between lines
+recommended spacing between <a href='undocumented#Line'>lines</a>
 
 ### Example
 
@@ -4403,15 +4408,15 @@
 <a href='undocumented#SkScalar'>SkScalar</a> <a href='#SkPaint_getFontSpacing'>getFontSpacing</a>() const
 </pre>
 
-Returns the recommended spacing between lines: the sum of metrics
+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='#Text_Size'>Text Size</a> but does not take into account
-dimensions required by stroking and <a href='undocumented#Path_Effect'>Path Effect</a>.
-Returns the same result as <a href='#SkPaint_getFontMetrics'>getFontMetrics</a>.
+Result is scaled by  <a href='#Text_Size'>text 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>().
 
 ### Return Value
 
-recommended spacing between lines
+recommended spacing between <a href='undocumented#Line'>lines</a>
 
 ### Example
 
@@ -4436,18 +4441,18 @@
 <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_Manager'>Font Manager</a> from font data,
-ignoring <a href='#SkPaint_Hinting'>Hinting</a>. Includes <a href='#Text_Size'>Text Size</a>, <a href='#Text_Scale_X'>Text Scale X</a>,
-and <a href='#Text_Skew_X'>Text Skew X</a>, but not <a href='#Fake_Bold'>Fake Bold</a> or <a href='undocumented#Path_Effect'>Path Effect</a>.
+Returns the union of bounds of all <a href='undocumented#Glyph'>glyphs</a>.
+Returned dimensions are computed by  <a href='undocumented#Font_Manager'>font manager</a> from <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>. Includes  <a href='#Text_Size'>text size</a>,   <a href='#Text_Scale_X'>text scale x</a>,
+and   <a href='#Text_Skew_X'>text skew x</a>, but not  <a href='#Fake_Bold'>fake bold</a> or <a href='undocumented#SkPathEffect'>SkPathEffect</a>.
 
-If <a href='#Text_Size'>Text Size</a> is large, <a href='#Text_Scale_X'>Text Scale X</a> is one, and <a href='#Text_Skew_X'>Text Skew X</a> is zero,
-returns the same bounds as <a href='#Font_Metrics'>Font Metrics</a> { <a href='#SkPaint_FontMetrics_fXMin'>FontMetrics::fXMin</a>,
-<a href='#SkPaint_FontMetrics_fTop'>FontMetrics::fTop</a>, <a href='#SkPaint_FontMetrics_fXMax'>FontMetrics::fXMax</a>, <a href='#SkPaint_FontMetrics_fBottom'>FontMetrics::fBottom</a> }.
+If  <a href='#Text_Size'>text size</a> is large,   <a href='#Text_Scale_X'>text scale x</a> is one, and   <a href='#Text_Skew_X'>text skew x</a> is zero,
+returns the same bounds as:
+{ <a href='#SkPaint_FontMetrics'>FontMetrics</a>::<a href='#SkPaint_FontMetrics_fXMin'>fXMin</a>, <a href='#SkPaint_FontMetrics'>FontMetrics</a>::<a href='#SkPaint_FontMetrics_fTop'>fTop</a>, <a href='#SkPaint_FontMetrics'>FontMetrics</a>::<a href='#SkPaint_FontMetrics_fXMax'>fXMax</a>, <a href='#SkPaint_FontMetrics'>FontMetrics</a>::<a href='#SkPaint_FontMetrics_fBottom'>fBottom</a> }.
 
 ### Return Value
 
-union of bounds of all <a href='undocumented#Glyph'>Glyphs</a>
+union of bounds of all <a href='undocumented#Glyph'>glyphs</a>
 
 ### Example
 
@@ -4470,29 +4475,29 @@
 int <a href='#SkPaint_textToGlyphs'>textToGlyphs</a>(const void* text, size_t byteLength, <a href='undocumented#SkGlyphID'>SkGlyphID</a> glyphs[]) const
 </pre>
 
-Converts <a href='#SkPaint_textToGlyphs_text'>text</a> into glyph indices.
-Returns the number of glyph indices represented by <a href='#SkPaint_textToGlyphs_text'>text</a>.
-<a href='#Text_Encoding'>Text Encoding</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 glyph count.
+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> for valid character codes or valid glyph indices.
+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> equals zero, returns zero.
 If <a href='#SkPaint_textToGlyphs_byteLength'>byteLength</a> includes a partial character, the partial character is ignored.
 
-If <a href='#Text_Encoding'>Text Encoding</a> is <a href='#SkPaint_kUTF8_TextEncoding'>kUTF8 TextEncoding</a> and
+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
 
 <table>  <tr>    <td><a name='SkPaint_textToGlyphs_text'><code><strong>text</strong></code></a></td>
-    <td>character storage encoded with <a href='#Text_Encoding'>Text Encoding</a></td>
+    <td>character storage encoded with <a href='SkPaint_Reference#SkPaint'>SkPaint</a>::<a href='#SkPaint_TextEncoding'>TextEncoding</a></td>
   </tr>
   <tr>    <td><a name='SkPaint_textToGlyphs_byteLength'><code><strong>byteLength</strong></code></a></td>
     <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 glyph indices; may be nullptr</td>
+    <td>storage for <a href='undocumented#Glyph'>glyph</a> indices; may be nullptr</td>
   </tr>
 </table>
 
@@ -4512,14 +4517,14 @@
 int <a href='#SkPaint_countText'>countText</a>(const void* text, size_t byteLength) const
 </pre>
 
-Returns the number of <a href='undocumented#Glyph'>Glyphs</a> in <a href='#SkPaint_countText_text'>text</a>.
-Uses <a href='#Text_Encoding'>Text Encoding</a> to count the <a href='undocumented#Glyph'>Glyphs</a>.
-Returns the same result as <a href='#SkPaint_textToGlyphs'>textToGlyphs</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
 
 <table>  <tr>    <td><a name='SkPaint_countText_text'><code><strong>text</strong></code></a></td>
-    <td>character storage encoded with <a href='#Text_Encoding'>Text Encoding</a></td>
+    <td>character storage encoded with <a href='SkPaint_Reference#SkPaint'>SkPaint</a>::<a href='#SkPaint_TextEncoding'>TextEncoding</a></td>
   </tr>
   <tr>    <td><a name='SkPaint_countText_byteLength'><code><strong>byteLength</strong></code></a></td>
     <td>length of character storage in bytes</td>
@@ -4528,7 +4533,7 @@
 
 ### Return Value
 
-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>
+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
 
@@ -4550,20 +4555,20 @@
 bool <a href='#SkPaint_containsText'>containsText</a>(const void* text, size_t byteLength) const
 </pre>
 
-Returns true if all <a href='#SkPaint_containsText_text'>text</a> corresponds to a non-zero glyph index.
+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#Typeface'>Typeface</a>.
+<a href='undocumented#SkTypeface'>SkTypeface</a>.
 
-If <a href='#Text_Encoding'>Text Encoding</a> is <a href='#SkPaint_kGlyphID_TextEncoding'>kGlyphID TextEncoding</a>,
-returns true if all glyph 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 glyph indices for <a href='undocumented#Typeface'>Typeface</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> is zero.
 
 ### Parameters
 
 <table>  <tr>    <td><a name='SkPaint_containsText_text'><code><strong>text</strong></code></a></td>
-    <td>array of characters or <a href='undocumented#Glyph'>Glyphs</a></td>
+    <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> array</td>
@@ -4572,7 +4577,7 @@
 
 ### Return Value
 
-true if all <a href='#SkPaint_containsText_text'>text</a> corresponds to a non-zero glyph index
+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> succeeds for degree symbol, but cannot find a glyph index
 corresponding to the Unicode surrogate code point.
@@ -4615,27 +4620,27 @@
 
 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#Typeface'>Typeface</a>, but is unaffected
-by <a href='#Text_Encoding'>Text Encoding</a>; the <a href='#SkPaint_glyphsToUnichars_text'>text</a> values returned are equivalent to <a href='#SkPaint_kUTF32_TextEncoding'>kUTF32 TextEncoding</a>.
+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#Engine'>Font Engine</a>.
+Only supported on platforms that use FreeType as the  <a href='undocumented#Font_Engine'>font engine</a>.
 
 ### Parameters
 
 <table>  <tr>    <td><a name='SkPaint_glyphsToUnichars_glyphs'><code><strong>glyphs</strong></code></a></td>
-    <td>array of indices into font</td>
+    <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 glyph array</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 glyph</td>
+    <td>storage for character codes, one per <a href='undocumented#Glyph'>glyph</a></td>
   </tr>
 </table>
 
 ### Example
 
-<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 points.
+<div><fiddle-embed name="c12686b0b3e0a87d0a248bbfc57e9492"><div>Convert UTF-8 text to glyphs; then convert glyphs to Unichar code points.
 </div></fiddle-embed></div>
 
 <a name='Measure_Text'></a>
@@ -4650,16 +4655,16 @@
 
 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='#Text_Encoding'>Text Encoding</a> to decode <a href='#SkPaint_measureText_text'>text</a>, <a href='undocumented#Typeface'>Typeface</a> to get the font metrics,
-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#Path_Effect'>Path Effect</a> to scale the metrics and <a href='#SkPaint_measureText_bounds'>bounds</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 glyph indices to be measured</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> to measure</td>
@@ -4687,14 +4692,14 @@
 
 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='#Text_Encoding'>Text Encoding</a> to decode <a href='#SkPaint_measureText_2_text'>text</a>, <a href='undocumented#Typeface'>Typeface</a> to get the font metrics,
-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#Path_Effect'>Path Effect</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 glyph indices to be measured</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> to measure</td>
@@ -4731,14 +4736,14 @@
 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> fragment in <a href='#SkPaint_breakText_measuredWidth'>measuredWidth</a> if it not nullptr.
-Uses <a href='#Text_Encoding'>Text Encoding</a> to decode <a href='#SkPaint_breakText_text'>text</a>, <a href='undocumented#Typeface'>Typeface</a> to get the font metrics,
-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#Path_Effect'>Path Effect</a>.
+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 glyph indices to be measured</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> to measure</td>
@@ -4758,7 +4763,7 @@
 ### Example
 
 <div><fiddle-embed name="fd0033470ccbd5c7059670fdbf96cffc"><div><a href='undocumented#Line'>Line</a> under "" shows desired width, shorter than available characters.
-<a href='undocumented#Line'>Line</a> under "" shows measured width after breaking <a href='#SkPaint_breakText_text'>text</a>.
+<a href='undocumented#Line'>Line</a> under "" shows measured width after breaking text.
 </div></fiddle-embed></div>
 
 <a name='SkPaint_getTextWidths'></a>
@@ -4769,41 +4774,40 @@
 int <a href='#SkPaint_getTextWidths'>getTextWidths</a>(const void* text, 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> for each glyph in <a href='#SkPaint_getTextWidths_text'>text</a>, and returns
-the glyph count in <a href='#SkPaint_getTextWidths_text'>text</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 glyph 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 glyph count entries.
-Widths returns the horizontal advance.
-Uses <a href='#Text_Encoding'>Text Encoding</a> to decode <a href='#SkPaint_getTextWidths_text'>text</a>, <a href='undocumented#Typeface'>Typeface</a> to get the font metrics,
-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#Path_Effect'>Path Effect</a>.
-Does include <a href='#Fake_Bold'>Fake Bold</a> and <a href='undocumented#Path_Effect'>Path Effect</a> in the <a href='#SkPaint_getTextWidths_bounds'>bounds</a>.
+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> 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 glyph indices to be measured</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> 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> advances for each glyph; may be nullptr</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> for each glyph relative to (0, 0); may be nullptr</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
 
-glyph count in <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> 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 name="6b9e101f49e9c2c28755c5bdcef64dfb"><div>Bounds of <a href='undocumented#Glyph'>Glyphs</a> increase for stroked text, but text advance remains the same.
+The underlines show the text advance, spaced to keep them distinct.
 </div></fiddle-embed></div>
 
 <a name='Text_Path'></a>
@@ -4818,28 +4822,28 @@
 void <a href='#SkPaint_getTextPath'>getTextPath</a>(const void* text, size_t length, <a href='undocumented#SkScalar'>SkScalar</a> x, <a href='undocumented#SkScalar'>SkScalar</a> y, <a href='SkPath_Reference#SkPath'>SkPath</a>* path) const
 </pre>
 
-Returns the geometry as <a href='SkPath_Reference#Path'>Path</a> equivalent to the drawn <a href='#SkPaint_getTextPath_text'>text</a>.
-Uses <a href='#Text_Encoding'>Text Encoding</a> to decode <a href='#SkPaint_getTextPath_text'>text</a>, <a href='undocumented#Typeface'>Typeface</a> to get the glyph paths,
-and <a href='#Text_Size'>Text Size</a>, <a href='#Fake_Bold'>Fake Bold</a>, and <a href='undocumented#Path_Effect'>Path Effect</a> to scale and modify the glyph paths.
-All of the glyph paths 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>, and <a href='#Text_Align'>Text Align</a> to position <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>, and <a href='SkPaint_Reference#SkPaint'>SkPaint</a>::<a href='#SkPaint_Align'>Align</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 glyph indices</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>
   </tr>
   <tr>    <td><a name='SkPaint_getTextPath_x'><code><strong>x</strong></code></a></td>
-    <td><a href='#SkPaint_getTextPath_x'>x</a>-axis value of the origin of the <a href='#SkPaint_getTextPath_text'>text</a></td>
+    <td>x-axis value of the origin of the <a href='#SkPaint_getTextPath_text'>text</a></td>
   </tr>
   <tr>    <td><a name='SkPaint_getTextPath_y'><code><strong>y</strong></code></a></td>
-    <td><a href='#SkPaint_getTextPath_y'>y</a>-axis value of the origin of the <a href='#SkPaint_getTextPath_text'>text</a></td>
+    <td>y-axis value of the origin of the <a href='#SkPaint_getTextPath_text'>text</a></td>
   </tr>
   <tr>    <td><a name='SkPaint_getTextPath_path'><code><strong>path</strong></code></a></td>
-    <td>geometry of the <a href='undocumented#Glyph'>Glyphs</a></td>
+    <td>geometry of the <a href='undocumented#Glyph'>glyphs</a></td>
   </tr>
 </table>
 
@@ -4857,26 +4861,26 @@
 void <a href='#SkPaint_getPosTextPath'>getPosTextPath</a>(const void* text, size_t length, const <a href='SkPoint_Reference#SkPoint'>SkPoint</a> pos[], <a href='SkPath_Reference#SkPath'>SkPath</a>* path) const
 </pre>
 
-Returns the geometry as <a href='SkPath_Reference#Path'>Path</a> equivalent to the drawn <a href='#SkPaint_getPosTextPath_text'>text</a>.
-Uses <a href='#Text_Encoding'>Text Encoding</a> to decode <a href='#SkPaint_getPosTextPath_text'>text</a>, <a href='undocumented#Typeface'>Typeface</a> to get the glyph paths,
-and <a href='#Text_Size'>Text Size</a>, <a href='#Fake_Bold'>Fake Bold</a>, and <a href='undocumented#Path_Effect'>Path Effect</a> to scale and modify the glyph paths.
-All of the glyph paths are stored in <a href='#SkPaint_getPosTextPath_path'>path</a>.
-Uses <a href='#SkPaint_getPosTextPath_pos'>pos</a> array and <a href='#Text_Align'>Text Align</a> to position <a href='#SkPaint_getPosTextPath_path'>path</a>.
-<a href='#SkPaint_getPosTextPath_pos'>pos</a> contains a position for each glyph.
+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 and <a href='SkPaint_Reference#SkPaint'>SkPaint</a>::<a href='#SkPaint_Align'>Align</a> 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 glyph indices</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>
   </tr>
   <tr>    <td><a name='SkPaint_getPosTextPath_pos'><code><strong>pos</strong></code></a></td>
-    <td>positions of each glyph</td>
+    <td>positions of each <a href='undocumented#Glyph'>glyph</a></td>
   </tr>
   <tr>    <td><a name='SkPaint_getPosTextPath_path'><code><strong>path</strong></code></a></td>
-    <td>geometry of the <a href='undocumented#Glyph'>Glyphs</a></td>
+    <td>geometry of the <a href='undocumented#Glyph'>glyphs</a></td>
   </tr>
 </table>
 
@@ -4889,7 +4893,7 @@
 
 <a href='#Text_Intercepts'>Text Intercepts</a> describe the intersection of drawn text <a href='undocumented#Glyph'>Glyphs</a> with a pair
 of lines parallel to the text advance. <a href='#Text_Intercepts'>Text Intercepts</a> permits creating a
-underline that skips <a href='undocumented#Descenders'>Descenders</a>.
+underline that skips Descenders.
 
 <a name='SkPaint_getTextIntercepts'></a>
 
@@ -4901,33 +4905,33 @@
 </pre>
 
 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 lines 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 string.
-Uses <a href='#Text_Encoding'>Text Encoding</a> to decode <a href='#SkPaint_getTextIntercepts_text'>text</a>, <a href='undocumented#Typeface'>Typeface</a> to get the glyph paths,
-and <a href='#Text_Size'>Text Size</a>, <a href='#Fake_Bold'>Fake Bold</a>, and <a href='undocumented#Path_Effect'>Path Effect</a> to scale and modify the glyph paths.
-Uses <a href='#SkPaint_getTextIntercepts_x'>x</a>, <a href='#SkPaint_getTextIntercepts_y'>y</a>, and <a href='#Text_Align'>Text Align</a> to position <a href='#SkPaint_getTextIntercepts_intervals'>intervals</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> 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>, and <a href='SkPaint_Reference#SkPaint'>SkPaint</a>::<a href='#SkPaint_Align'>Align</a> to position <a href='#SkPaint_getTextIntercepts_intervals'>intervals</a>.
 
-Pass nullptr for <a href='#SkPaint_getTextIntercepts_intervals'>intervals</a> to determine the size of the interval array.
+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> 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 glyph indices</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>
   </tr>
   <tr>    <td><a name='SkPaint_getTextIntercepts_x'><code><strong>x</strong></code></a></td>
-    <td><a href='#SkPaint_getTextIntercepts_x'>x</a>-axis value of the origin of the <a href='#SkPaint_getTextIntercepts_text'>text</a></td>
+    <td>x-axis value of the origin of the <a href='#SkPaint_getTextIntercepts_text'>text</a></td>
   </tr>
   <tr>    <td><a name='SkPaint_getTextIntercepts_y'><code><strong>y</strong></code></a></td>
-    <td><a href='#SkPaint_getTextIntercepts_y'>y</a>-axis value of the origin of the <a href='#SkPaint_getTextIntercepts_text'>text</a></td>
+    <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 line parallel to the advance</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>
@@ -4953,30 +4957,30 @@
 </pre>
 
 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 lines 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 string.
-Uses <a href='#Text_Encoding'>Text Encoding</a> to decode <a href='#SkPaint_getPosTextIntercepts_text'>text</a>, <a href='undocumented#Typeface'>Typeface</a> to get the glyph paths,
-and <a href='#Text_Size'>Text Size</a>, <a href='#Fake_Bold'>Fake Bold</a>, and <a href='undocumented#Path_Effect'>Path Effect</a> to scale and modify the glyph paths.
-Uses <a href='#SkPaint_getPosTextIntercepts_pos'>pos</a> array and <a href='#Text_Align'>Text Align</a> to position <a href='#SkPaint_getPosTextIntercepts_intervals'>intervals</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> 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 and <a href='SkPaint_Reference#SkPaint'>SkPaint</a>::<a href='#SkPaint_Align'>Align</a> to position <a href='#SkPaint_getPosTextIntercepts_intervals'>intervals</a>.
 
-Pass nullptr for <a href='#SkPaint_getPosTextIntercepts_intervals'>intervals</a> to determine the size of the interval array.
+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> 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 glyph indices</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>
   </tr>
   <tr>    <td><a name='SkPaint_getPosTextIntercepts_pos'><code><strong>pos</strong></code></a></td>
-    <td>positions of each glyph</td>
+    <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 line parallel to the advance</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>
@@ -5002,33 +5006,33 @@
 </pre>
 
 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 lines 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 string.
-Uses <a href='#Text_Encoding'>Text Encoding</a> to decode <a href='#SkPaint_getPosTextHIntercepts_text'>text</a>, <a href='undocumented#Typeface'>Typeface</a> to get the glyph paths,
-and <a href='#Text_Size'>Text Size</a>, <a href='#Fake_Bold'>Fake Bold</a>, and <a href='undocumented#Path_Effect'>Path Effect</a> to scale and modify the glyph paths.
-Uses <a href='#SkPaint_getPosTextHIntercepts_xpos'>xpos</a> array, <a href='#SkPaint_getPosTextHIntercepts_constY'>constY</a>, and <a href='#Text_Align'>Text Align</a> to position <a href='#SkPaint_getPosTextHIntercepts_intervals'>intervals</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> 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>, and <a href='SkPaint_Reference#SkPaint'>SkPaint</a>::<a href='#SkPaint_Align'>Align</a> to position <a href='#SkPaint_getPosTextHIntercepts_intervals'>intervals</a>.
 
-Pass nullptr for <a href='#SkPaint_getPosTextHIntercepts_intervals'>intervals</a> to determine the size of the interval array.
+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> 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 glyph indices</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 glyph in x</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 glyph in y</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 line parallel to the advance</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>
@@ -5053,26 +5057,26 @@
 </pre>
 
 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 lines parallel to the text 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 string.
-Uses <a href='undocumented#Typeface'>Typeface</a> to get the glyph paths,
-and <a href='#Text_Size'>Text Size</a>, <a href='#Fake_Bold'>Fake Bold</a>, and <a href='undocumented#Path_Effect'>Path Effect</a> to scale and modify the glyph paths.
-Uses run array and <a href='#Text_Align'>Text Align</a> to position <a href='#SkPaint_getTextBlobIntercepts_intervals'>intervals</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> 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 and <a href='SkPaint_Reference#SkPaint'>SkPaint</a>::<a href='#SkPaint_Align'>Align</a> to position <a href='#SkPaint_getTextBlobIntercepts_intervals'>intervals</a>.
 
-<a href='#Text_Encoding'>Text Encoding</a> must be set to <a href='#SkPaint_kGlyphID_TextEncoding'>SkPaint::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> to determine the size of the interval array.
+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> 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>, positions, and text paint attributes</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 line parallel to the advance</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>
@@ -5095,15 +5099,15 @@
 bool <a href='#SkPaint_nothingToDraw'>nothingToDraw</a>() const
 </pre>
 
-Returns true if <a href='#Paint'>Paint</a> prevents all drawing;
-otherwise, the <a href='#Paint'>Paint</a> may or may not allow drawing.
+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#Blend_Mode'>Blend Mode</a> combined with <a href='SkColor_Reference#Alpha'>Color Alpha</a> computes a
-new <a href='SkColor_Reference#Alpha'>Alpha</a> of zero.
+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='#Paint'>Paint</a> prevents all drawing
+true if <a href='SkPaint_Reference#SkPaint'>SkPaint</a> prevents all drawing
 
 ### Example
 
diff --git a/site/user/api/SkPath_Reference.md b/site/user/api/SkPath_Reference.md
index ee2c38f..2fbad00 100644
--- a/site/user/api/SkPath_Reference.md
+++ b/site/user/api/SkPath_Reference.md
@@ -405,12 +405,12 @@
 <a href='#SkPath'>SkPath</a>()
 </pre>
 
-Constucts an empty <a href='#Path'>Path</a>. By default, <a href='#Path'>Path</a> has no <a href='#Verb'>Verbs</a>, no <a href='SkPoint_Reference#Point'>Points</a>, and no <a href='#Conic_Weight'>Weights</a>.
-<a href='#Fill_Type'>Fill Type</a> is set to <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
 
-empty <a href='#Path'>Path</a>
+empty <a href='SkPath_Reference#SkPath'>SkPath</a>
 
 ### Example
 
@@ -436,29 +436,29 @@
 <a href='#SkPath'>SkPath</a>(const <a href='#SkPath'>SkPath</a>& path)
 </pre>
 
-Constructs a copy of an existing <a href='#SkPath_copy_const_SkPath_path'>path</a>.
-Copy constructor makes two paths 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='#Point_Array'>Point Array</a>
-and <a href='#Conic_Weight'>Weights</a> are copied when modified.
+Constructs a copy of an existing <a href='#SkPath_SkPath(const SkPath& path)_path'>path</a>.
+Copy constructor makes two <a href='SkPath_Reference#Path'>paths</a> identical by value. Internally, <a href='#SkPath_SkPath(const SkPath& path)_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> are copied when modified.
 
-Creating a <a href='#Path'>Path</a> copy is very efficient and never allocates memory.
-<a href='#Path'>Paths</a> are always copied by value from the interface; the underlying shared
+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='#Path'>Path</a> to copy by value</td>
+    <td><a href='SkPath_Reference#SkPath'>SkPath</a> to copy by value</td>
   </tr>
 </table>
 
 ### Return Value
 
-copy of <a href='#Path'>Path</a>
+copy of <a href='SkPath_Reference#SkPath'>SkPath</a>
 
 ### Example
 
-<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
+<div><fiddle-embed name="647312aacd946c8a6eabaca797140432"><div>Modifying one path does not effect another, even if they started as copies
 of each other.
 </div>
 
@@ -486,11 +486,11 @@
 <a href='#SkPath_destructor'>~SkPath</a>()
 </pre>
 
-Releases ownership of any shared data and deletes data if <a href='#Path'>Path</a> is sole owner.
+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='#Path'>Path</a> <a href='undocumented#Destructor'>Destructor</a>, but copy of original in path2 is unaffected.
+<div><fiddle-embed name="01ad6be9b7d15a2217daea273eb3d466"><div>delete calls <a href='#Path'>Path</a> destructor, but copy of original in path2 is unaffected.
 </div></fiddle-embed></div>
 
 ### See Also
@@ -505,25 +505,25 @@
 <a href='#SkPath'>SkPath</a>& <a href='#SkPath_copy_operator'>operator=(const SkPath& path)</a>
 </pre>
 
-Constructs a copy of an existing <a href='#SkPath_copy_operator_path'>path</a>.
-<a href='#Path'>Path</a> assignment makes two paths identical by value. Internally, assignment
-shares pointer values. The underlying <a href='#Verb_Array'>Verb Array</a>, <a href='#Point_Array'>Point Array</a> and <a href='#Conic_Weight'>Weights</a>
+Constructs a copy of an existing <a href='#SkPath_operator=(const SkPath& path)_path'>path</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='#Path'>Paths</a> by assignment is very efficient and never allocates memory.
-<a href='#Path'>Paths</a> are always copied by value from the interface; the underlying shared
+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='#Point_Array'>Point Array</a>, <a href='#Conic_Weight'>Weights</a>, and <a href='#Fill_Type'>Fill Type</a> to copy</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='#Path'>Path</a> copied by value
+<a href='SkPath_Reference#SkPath'>SkPath</a> copied by value
 
 ### Example
 
@@ -550,22 +550,22 @@
 bool <a href='#SkPath_equal_operator'>operator==(const SkPath& a, const SkPath& b)</a>
 </pre>
 
-Compares <a href='#SkPath_equal_operator_a'>a</a> and <a href='#SkPath_equal_operator_b'>b</a>; returns true if <a href='#Fill_Type'>Fill Type</a>, <a href='#Verb_Array'>Verb Array</a>, <a href='#Point_Array'>Point Array</a>, and <a href='#Conic_Weight'>Weights</a>
+Compares <a href='#SkPath_operator==(const SkPath& a, const SkPath& b)_a'>a</a> and <a href='#SkPath_operator==(const SkPath& a, const SkPath& b)_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='#Path'>Path</a> to compare</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='#Path'>Path</a> to compare</td>
+    <td><a href='SkPath_Reference#SkPath'>SkPath</a> to compare</td>
   </tr>
 </table>
 
 ### Return Value
 
-true if <a href='#Path'>Path</a> pair are equivalent
+true if <a href='SkPath_Reference#SkPath'>SkPath</a> pair are equivalent
 
 ### Example
 
@@ -596,22 +596,22 @@
 bool <a href='#SkPath_notequal_operator'>operator!=(const SkPath& a, const SkPath& b)</a>
 </pre>
 
-Compares <a href='#SkPath_notequal_operator_a'>a</a> and <a href='#SkPath_notequal_operator_b'>b</a>; returns true if <a href='#Fill_Type'>Fill Type</a>, <a href='#Verb_Array'>Verb Array</a>, <a href='#Point_Array'>Point Array</a>, and <a href='#Conic_Weight'>Weights</a>
+Compares <a href='#SkPath_operator!=(const SkPath& a, const SkPath& b)_a'>a</a> and <a href='#SkPath_operator!=(const SkPath& a, const SkPath& b)_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='#Path'>Path</a> to compare</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='#Path'>Path</a> to compare</td>
+    <td><a href='SkPath_Reference#SkPath'>SkPath</a> to compare</td>
   </tr>
 </table>
 
 ### Return Value
 
-true if <a href='#Path'>Path</a> pair are not equivalent
+true if <a href='SkPath_Reference#SkPath'>SkPath</a> pair are not equivalent
 
 ### Example
 
@@ -639,23 +639,23 @@
 bool <a href='#SkPath_isInterpolatable'>isInterpolatable</a>(const <a href='#SkPath'>SkPath</a>& compare) const
 </pre>
 
-Returns true if <a href='#Path'>Paths</a> contain equal <a href='#Verb'>Verbs</a> and equal <a href='#Conic_Weight'>Weights</a>.
-If <a href='#Path'>Paths</a> contain one or more <a href='#Conic'>Conics</a>, the <a href='#Conic_Weight'>Weights</a> must match.
+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> may add different <a href='#Verb'>Verbs</a> depending on <a href='#Conic_Weight'>Conic Weight</a>, so it is not
-trivial to interpolate a pair of <a href='#Path'>Paths</a> containing <a href='#Conic'>Conics</a> with different
-<a href='#Conic_Weight'>Conic Weight</a> values.
+<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='#Path'>Path</a> to <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='#Path'>Paths</a> <a href='#Verb_Array'>Verb Array</a> and <a href='#Conic_Weight'>Weights</a> are equivalent
+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
 
@@ -813,13 +813,14 @@
 <a href='#SkPath_FillType'>FillType</a> <a href='#SkPath_getFillType'>getFillType</a>() const
 </pre>
 
-Returns <a href='#SkPath_FillType'>FillType</a>, the rule used to fill <a href='#Path'>Path</a>. <a href='#SkPath_FillType'>FillType</a> of a new <a href='#Path'>Path</a> is
-<a href='#SkPath_kWinding_FillType'>kWinding FillType</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
 
-one of: <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>
+one of: <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>
 
 ### Example
 
@@ -845,17 +846,18 @@
 void <a href='#SkPath_setFillType'>setFillType</a>(<a href='#SkPath_FillType'>FillType</a> ft)
 </pre>
 
-Sets <a href='#SkPath_FillType'>FillType</a>, the rule used to fill <a href='#Path'>Path</a>. While there is no check
+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
 
 <table>  <tr>    <td><a name='SkPath_setFillType_ft'><code><strong>ft</strong></code></a></td>
-    <td>one of: <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></td>
+    <td>one of: <a href='#SkPath_kWinding_FillType'>kWinding_FillType</a>, <a href='#SkPath_kEvenOdd_FillType'>kEvenOdd_FillType</a>,  <a href='#SkPath_kInverseWinding_FillType'>kInverseWinding_FillType</a>,</td>
   </tr>
 </table>
 
+<a href='#SkPath_kInverseEvenOdd_FillType'>kInverseEvenOdd_FillType</a>
+
 ### Example
 
 <div><fiddle-embed name="b4a91cd7f50b2a0a0d1bec6d0ac823d2"><div>If empty <a href='#Path'>Path</a> is set to inverse <a href='#SkPath_FillType'>FillType</a>, it fills all pixels.
@@ -873,12 +875,12 @@
 bool <a href='#SkPath_isInverseFillType'>isInverseFillType</a>() const
 </pre>
 
-Returns if <a href='#SkPath_FillType'>FillType</a> describes area outside <a href='#Path'>Path</a> geometry. The inverse fill area
+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> is <a href='#SkPath_kInverseWinding_FillType'>kInverseWinding FillType</a> or <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
 
@@ -990,13 +992,13 @@
 <a href='#SkPath_Convexity'>Convexity</a> <a href='#SkPath_getConvexity'>getConvexity</a>() const
 </pre>
 
-Computes <a href='#SkPath_Convexity'>Convexity</a> if required, and returns stored value.
-<a href='#SkPath_Convexity'>Convexity</a> is computed if stored value is <a href='#SkPath_kUnknown_Convexity'>kUnknown Convexity</a>,
-or if <a href='#Path'>Path</a> has been altered since <a href='#SkPath_Convexity'>Convexity</a> was computed or set.
+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
 
-computed or stored <a href='#SkPath_Convexity'>Convexity</a>
+computed or stored <a href='SkPath_Reference#SkPath'>SkPath</a>::<a href='#SkPath_Convexity'>Convexity</a>
 
 ### Example
 
@@ -1014,12 +1016,12 @@
 <a href='#SkPath_Convexity'>Convexity</a> <a href='#SkPath_getConvexityOrUnknown'>getConvexityOrUnknown</a>() const
 </pre>
 
-Returns last computed <a href='#SkPath_Convexity'>Convexity</a>, or <a href='#SkPath_kUnknown_Convexity'>kUnknown Convexity</a> if
-<a href='#Path'>Path</a> has been altered since <a href='#SkPath_Convexity'>Convexity</a> was computed or set.
+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
 
-stored <a href='#SkPath_Convexity'>Convexity</a>
+stored <a href='SkPath_Reference#SkPath'>SkPath</a>::<a href='#SkPath_Convexity'>Convexity</a>
 
 ### Example
 
@@ -1039,21 +1041,21 @@
 void <a href='#SkPath_setConvexity'>setConvexity</a>(<a href='#SkPath_Convexity'>Convexity</a> convexity)
 </pre>
 
-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
+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> is <a href='#SkPath_kUnknown_Convexity'>kUnknown Convexity</a>: <a href='#SkPath_getConvexity'>getConvexity</a> will
-compute <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> 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> 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 path is
+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>, or <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,13 +1075,13 @@
 bool <a href='#SkPath_isConvex'>isConvex</a>() const
 </pre>
 
-Computes <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 path has not been altered, <a href='#SkPath_Convexity'>Convexity</a> is not recomputed.
+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_Convexity'>Convexity</a> stored or computed is <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,22 +1101,22 @@
 bool <a href='#SkPath_isOval'>isOval</a>(<a href='SkRect_Reference#SkRect'>SkRect</a>* bounds) const
 </pre>
 
-Returns true if this path is recognized as an oval or circle.
+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> receives <a href='#SkPath_isOval_bounds'>bounds</a> of <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> is unmodified if <a href='undocumented#Oval'>Oval</a> is not found.
+<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#Rect'>Rect</a> of <a href='undocumented#Oval'>Oval</a>; may be nullptr</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='#Path'>Path</a> is recognized as an oval or circle
+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,22 +1134,23 @@
 bool <a href='#SkPath_isRRect'>isRRect</a>(<a href='SkRRect_Reference#SkRRect'>SkRRect</a>* rrect) const
 </pre>
 
-Returns true if this path is recognized as a <a href='SkRRect_Reference#SkRRect'>SkRRect</a> (but not an oval/circle or rect).
+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> receives bounds of <a href='SkRRect_Reference#RRect'>Round Rect</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> is unmodified if <a href='SkRRect_Reference#RRect'>Round Rect</a> is not found.
+<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#Rect'>Rect</a> of <a href='SkRRect_Reference#RRect'>Round Rect</a>; may be nullptr</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='#Path'>Path</a> contains only <a href='SkRRect_Reference#RRect'>Round Rect</a>
+true if <a href='SkPath_Reference#SkPath'>SkPath</a> contains only <a href='SkRRect_Reference#SkRRect'>SkRRect</a>
 
 ### Example
 
@@ -1166,13 +1169,13 @@
 <a href='#SkPath'>SkPath</a>& <a href='#SkPath_reset'>reset</a>()
 </pre>
 
-Sets <a href='#Path'>Path</a> to its initial state.
-Removes <a href='#Verb_Array'>Verb Array</a>, <a href='#Point_Array'>Point Array</a>, and <a href='#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='#Path'>Path</a> is released.
+Sets <a href='SkPath_Reference#SkPath'>SkPath</a> to its initial state.
+Removes  <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>, 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
 
-reference to <a href='#Path'>Path</a>
+reference to <a href='SkPath_Reference#SkPath'>SkPath</a>
 
 ### Example
 
@@ -1190,16 +1193,16 @@
 <a href='#SkPath'>SkPath</a>& <a href='#SkPath_rewind'>rewind</a>()
 </pre>
 
-Sets <a href='#Path'>Path</a> to its initial state, preserving internal storage.
-Removes <a href='#Verb_Array'>Verb Array</a>, <a href='#Point_Array'>Point Array</a>, and <a href='#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='#Path'>Path</a> is retained.
+Sets <a href='SkPath_Reference#SkPath'>SkPath</a> to its initial state, preserving internal storage.
+Removes  <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>, 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>() instead of <a href='#SkPath_reset'>reset</a>() if <a href='#Path'>Path</a> storage will be reused and performance
+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
 
-reference to <a href='#Path'>Path</a>
+reference to <a href='SkPath_Reference#SkPath'>SkPath</a>
 
 ### Example
 
@@ -1219,13 +1222,13 @@
 bool <a href='#SkPath_isEmpty'>isEmpty</a>() const
 </pre>
 
-Returns if <a href='#Path'>Path</a> is empty.
-Empty <a href='#Path'>Path</a> may have <a href='#SkPath_FillType'>FillType</a> but has no <a href='SkPoint_Reference#SkPoint'>SkPoint</a>, <a href='#SkPath_Verb'>Verb</a>, or <a href='#Conic_Weight'>Conic Weight</a>.
-<a href='#SkPath_empty_constructor'>SkPath()</a> constructs empty <a href='#Path'>Path</a>; <a href='#SkPath_reset'>reset</a>() and <a href='#SkPath_rewind'>rewind</a>() make <a href='#Path'>Path</a> empty.
+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='#Conic_Weight'>conic weight</a>.
+<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 path contains no <a href='#SkPath_Verb'>Verb</a> array
+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
 
@@ -1255,14 +1258,13 @@
 bool <a href='#SkPath_isLastContourClosed'>isLastContourClosed</a>() const
 </pre>
 
-Returns if <a href='SkPath_Overview#Contour'>Contour</a> is closed.
-<a href='SkPath_Overview#Contour'>Contour</a> is closed if <a href='#Path'>Path</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#Stroke_Join'>Paint Stroke Join</a> instead of <a href='SkPaint_Reference#Stroke_Cap'>Paint Stroke Cap</a> at first and
-last <a href='SkPoint_Reference#Point'>Point</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> ends with 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
 
@@ -1293,13 +1295,13 @@
 bool <a href='#SkPath_isFinite'>isFinite</a>() const
 </pre>
 
-Returns true for finite <a href='SkPoint_Reference#Point'>Point</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#Point'>Point</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>.
+Returns true for finite  <a href='SkPath_Reference#Point_Array'>SkPoint array</a> 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='SkPath_Reference#Point_Array'>SkPoint array</a> 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#Point'>Point</a> values are finite
+true if all <a href='SkPoint_Reference#SkPoint'>SkPoint</a> values are finite
 
 ### Example
 
@@ -1327,14 +1329,14 @@
 bool <a href='#SkPath_isVolatile'>isVolatile</a>() const
 </pre>
 
-Returns true if the path is volatile; it will not be altered or discarded
-by the caller after it is drawn. <a href='#Path'>Paths</a> by default have volatile set false, allowing
-<a href='SkSurface_Reference#Surface'>Surface</a> to attach a cache of data which speeds repeated drawing. If true, <a href='SkSurface_Reference#Surface'>Surface</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='#Path'>Path</a> after drawing
+true if caller will alter <a href='SkPath_Reference#SkPath'>SkPath</a> after drawing
 
 ### Example
 
@@ -1362,23 +1364,23 @@
 void <a href='#SkPath_setIsVolatile'>setIsVolatile</a>(bool <a href='#SkPath_isVolatile'>isVolatile</a>)
 </pre>
 
-Specifies whether <a href='#Path'>Path</a> is volatile; whether it will be altered or discarded
-by the caller after it is drawn. <a href='#Path'>Paths</a> by default have volatile set false, allowing
-<a href='undocumented#Device'>Device</a> to attach a cache of data which speeds repeated drawing.
+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 paths, discarded or modified after use, as volatile
-to inform <a href='undocumented#Device'>Device</a> that the path need not be cached.
+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='#Path'>Path</a> volatile to improve performance.
-Mark unchanging <a href='#Path'>Path</a> non-volatile to improve repeated rendering.
+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='#Path'>Path</a> draws are affected by volatile for some shadows.
-<a href='undocumented#GPU_Surface'>GPU Surface</a> <a href='#Path'>Path</a> draws are affected by volatile for some shadows and concave geometries.
+<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='#Path'>Path</a> after drawing</td>
+    <td>true if caller will alter <a href='SkPath_Reference#SkPath'>SkPath</a> after drawing</td>
   </tr>
 </table>
 
@@ -1398,9 +1400,9 @@
 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> between <a href='SkPoint_Reference#Point'>Point</a> pair is degenerate.
+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 point.
+treated as a <a href='SkPoint_Reference#Point'>point</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>.
@@ -1408,10 +1410,10 @@
 ### Parameters
 
 <table>  <tr>    <td><a name='SkPath_IsLineDegenerate_p1'><code><strong>p1</strong></code></a></td>
-    <td>line start point</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>line end point</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>
@@ -1420,7 +1422,7 @@
 
 ### Return Value
 
-true if <a href='undocumented#Line'>Line</a> is degenerate; its length is effectively zero
+true if <a href='undocumented#Line'>line</a> is degenerate; its length is effectively zero
 
 ### Example
 
@@ -1452,30 +1454,31 @@
 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='#Quad'>Quad</a> is degenerate.
-<a href='#Quad'>Quad</a> with no length or that moves a very short distance is degenerate; it is
-treated as a point.
+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='#Quad'>Quad</a> start point</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='#Quad'>Quad</a> control point</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='#Quad'>Quad</a> end point</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>, and <a href='#SkPath_IsQuadDegenerate_p3'>p3</a> are equal;
-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</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>, and <a href='#SkPath_IsQuadDegenerate_p3'>p3</a> are equal or nearly equal
+
 ### Return Value
 
-true if <a href='#Quad'>Quad</a> is degenerate; its length is effectively zero
+true if <a href='SkPath_Reference#Quad'>quad</a> is degenerate; its length is effectively zero
 
 ### Example
 
@@ -1508,33 +1511,34 @@
                               const <a href='SkPoint_Reference#SkPoint'>SkPoint</a>& p4, bool exact)
 </pre>
 
-Tests if <a href='#Cubic'>Cubic</a> is degenerate.
-<a href='#Cubic'>Cubic</a> with no length or that moves a very short distance is degenerate; it is
-treated as a point.
+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='#Cubic'>Cubic</a> start point</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='#Cubic'>Cubic</a> control point 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='#Cubic'>Cubic</a> control point 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='#Cubic'>Cubic</a> end point</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>, and <a href='#SkPath_IsCubicDegenerate_p4'>p4</a> are equal;
-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</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>, and <a href='#SkPath_IsCubicDegenerate_p4'>p4</a> are equal or nearly equal
+
 ### Return Value
 
-true if <a href='#Cubic'>Cubic</a> is degenerate; its length is effectively zero
+true if <a href='SkPath_Reference#Cubic'>cubic</a> is degenerate; its length is effectively zero
 
 ### Example
 
@@ -1557,22 +1561,22 @@
 bool <a href='#SkPath_isLine'>isLine</a>(<a href='SkPoint_Reference#SkPoint'>SkPoint</a> line[2]) const
 </pre>
 
-Returns true if <a href='#Path'>Path</a> contains only one <a href='undocumented#Line'>Line</a>;
-<a href='#Verb'>Path 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='#Path'>Path</a> contains one <a href='undocumented#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='undocumented#Line'>Line</a> start point and <a href='undocumented#Line'>Line</a> end point.
-Returns false if <a href='#Path'>Path</a> is not one <a href='undocumented#Line'>Line</a>; <a href='#SkPath_isLine_line'>line</a> is unaltered.
+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='undocumented#Line'>Line</a>. May be nullptr</td>
+    <td>storage for <a href='#SkPath_isLine_line'>line</a>. May be nullptr</td>
   </tr>
 </table>
 
 ### Return Value
 
-true if <a href='#Path'>Path</a> contains exactly one <a href='undocumented#Line'>Line</a>
+true if <a href='SkPath_Reference#SkPath'>SkPath</a> contains exactly one <a href='#SkPath_isLine_line'>line</a>
 
 ### Example
 
@@ -1607,14 +1611,14 @@
 int <a href='#SkPath_getPoints'>getPoints</a>(<a href='SkPoint_Reference#SkPoint'>SkPoint</a> points[], int max) const
 </pre>
 
-Returns number of <a href='#SkPath_getPoints_points'>points</a> in <a href='#Path'>Path</a>. Up to max <a href='#SkPath_getPoints_points'>points</a> are copied.
-<a href='#SkPath_getPoints_points'>points</a> may be nullptr; then, max must be zero.
-If max is greater than number of <a href='#SkPath_getPoints_points'>points</a>, excess <a href='#SkPath_getPoints_points'>points</a> storage is unaltered.
+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='#Path'>Path</a> <a href='SkPoint_Reference#Point'>Point</a> array. May be nullptr</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>
@@ -1623,7 +1627,7 @@
 
 ### Return Value
 
-<a href='#Path'>Path</a> <a href='SkPoint_Reference#Point'>Point</a> array length
+<a href='SkPath_Reference#SkPath'>SkPath</a>  <a href='SkPath_Reference#Point_Array'>SkPoint array</a> length
 
 ### Example
 
@@ -1652,12 +1656,12 @@
 int <a href='#SkPath_countPoints'>countPoints</a>() const
 </pre>
 
-Returns the number of points in <a href='#Path'>Path</a>.
-<a href='SkPoint_Reference#Point'>Point</a> count is initially zero.
+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='#Path'>Path</a> <a href='SkPoint_Reference#Point'>Point</a> array length
+<a href='SkPath_Reference#SkPath'>SkPath</a>  <a href='SkPath_Reference#Point_Array'>SkPoint array</a> length
 
 ### Example
 
@@ -1686,20 +1690,20 @@
 <a href='SkPoint_Reference#SkPoint'>SkPoint</a> <a href='#SkPath_getPoint'>getPoint</a>(int index) const
 </pre>
 
-Returns <a href='SkPoint_Reference#Point'>Point</a> at <a href='#SkPath_getPoint_index'>index</a> in <a href='#Point_Array'>Point Array</a>. Valid range for <a href='#SkPath_getPoint_index'>index</a> is
-0 to <a href='#SkPath_countPoints'>countPoints</a> - 1.
+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> is out of range.
 
 ### Parameters
 
 <table>  <tr>    <td><a name='SkPath_getPoint_index'><code><strong>index</strong></code></a></td>
-    <td><a href='SkPoint_Reference#Point'>Point</a> array element selector</td>
+    <td><a href='SkPath_Reference#Point_Array'>SkPoint array</a> element selector</td>
   </tr>
 </table>
 
 ### Return Value
 
-<a href='SkPoint_Reference#Point'>Point</a> array value or (0, 0)
+<a href='SkPath_Reference#Point_Array'>SkPoint array</a> value or (0, 0)
 
 ### Example
 
@@ -1737,12 +1741,12 @@
 int <a href='#SkPath_countVerbs'>countVerbs</a>() const
 </pre>
 
-Returns the number of <a href='#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>, and <a href='#SkPath_kClose_Verb'>kClose Verb</a>; added to <a href='#Path'>Path</a>.
+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>, and <a href='#SkPath_kClose_Verb'>kClose_Verb</a>; added to <a href='SkPath_Reference#SkPath'>SkPath</a>.
 
 ### Return Value
 
-length of <a href='#Verb_Array'>Verb Array</a>
+length of  <a href='#Verb_Array'>verb array</a>
 
 ### Example
 
@@ -1769,7 +1773,7 @@
 int <a href='#SkPath_getVerbs'>getVerbs</a>(uint8_t verbs[], int max) const
 </pre>
 
-Returns the number of <a href='#SkPath_getVerbs_verbs'>verbs</a> in the path. Up to max <a href='#SkPath_getVerbs_verbs'>verbs</a> are copied. The
+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
@@ -1784,7 +1788,7 @@
 
 ### Return Value
 
-the actual number of <a href='#SkPath_getVerbs_verbs'>verbs</a> in the path
+the actual number of <a href='#SkPath_getVerbs_verbs'>verbs</a> in the <a href='SkPath_Reference#Path'>path</a>
 
 ### Example
 
@@ -1813,18 +1817,18 @@
 void <a href='#SkPath_swap'>swap</a>(<a href='#SkPath'>SkPath</a>& other)
 </pre>
 
-Exchanges the <a href='#Verb_Array'>Verb Array</a>, <a href='#Point_Array'>Point Array</a>, <a href='#Conic_Weight'>Weights</a>, and <a href='#Fill_Type'>Fill Type</a> with <a href='#SkPath_swap_other'>other</a>.
-Cached state is also exchanged. <a href='#SkPath_swap'>swap</a>() internally exchanges pointers, so
+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>() usage has largely been replaced by <a href='#SkPath_copy_operator'>operator=(const SkPath& path)</a>.
-<a href='#Path'>Paths</a> do not copy their content on assignment until they are written to,
-making assignment as efficient as <a href='#SkPath_swap'>swap</a>().
+<a href='#SkPath_swap'>swap()</a> usage has largely been replaced 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='#Path'>Path</a> exchanged by value</td>
+    <td><a href='SkPath_Reference#SkPath'>SkPath</a> exchanged by value</td>
   </tr>
 </table>
 
@@ -1853,16 +1857,16 @@
 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='#Point_Array'>Point Array</a>.
-Returns (0, 0, 0, 0) if <a href='#Path'>Path</a> contains no points. Returned bounds width and height may
-be larger or smaller than area affected when <a href='#Path'>Path</a> is drawn.
+Returns minimum and maximum axes values of  <a href='SkPath_Reference#Point_Array'>SkPoint array</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> is drawn.
 
-<a href='SkRect_Reference#Rect'>Rect</a> returned includes all <a href='SkPoint_Reference#Point'>Points</a> added to <a href='#Path'>Path</a>, including <a href='SkPoint_Reference#Point'>Points</a> associated with
-<a href='#SkPath_kMove_Verb'>kMove Verb</a> that define empty <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#Point'>Points</a> in <a href='#Point_Array'>Point Array</a>
+bounds of all <a href='SkPoint_Reference#SkPoint'>SkPoint</a> in  <a href='SkPath_Reference#Point_Array'>SkPoint array</a>
 
 ### Example
 
@@ -1894,12 +1898,12 @@
 void <a href='#SkPath_updateBoundsCache'>updateBoundsCache</a>() const
 </pre>
 
-Updates internal bounds so that subsequent calls to <a href='#SkPath_getBounds'>getBounds</a> are instantaneous.
-Unaltered copies of <a href='#Path'>Path</a> may also access cached bounds through <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> and ignoring the returned value.
+For now, identical to calling <a href='#SkPath_getBounds'>getBounds</a>() and ignoring the returned value.
 
-Call to prepare <a href='#Path'>Path</a> subsequently drawn from multiple threads,
+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
@@ -1928,22 +1932,22 @@
 <a href='SkRect_Reference#SkRect'>SkRect</a> <a href='#SkPath_computeTightBounds'>computeTightBounds</a>() const
 </pre>
 
-Returns minimum and maximum axes values of the lines and curves in <a href='#Path'>Path</a>.
-Returns (0, 0, 0, 0) if <a href='#Path'>Path</a> contains no points.
+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='#Path'>Path</a> is drawn.
+when <a href='SkPath_Reference#SkPath'>SkPath</a> is drawn.
 
-Includes <a href='SkPoint_Reference#Point'>Points</a> associated with <a href='#SkPath_kMove_Verb'>kMove Verb</a> that define empty
-<a href='SkPath_Overview#Contour'>Contours</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> when <a href='#Path'>Path</a> contains
-only lines. If <a href='#Path'>Path</a> contains curves, computed bounds includes
-the maximum extent of the <a href='#Quad'>Quad</a>, <a href='#Conic'>Conic</a>, or <a href='#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.
+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>, conic, 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 curves in <a href='#Path'>Path</a>
+tight bounds of <a href='undocumented#Curve'>curves</a> in <a href='SkPath_Reference#SkPath'>SkPath</a>
 
 ### Example
 
@@ -1971,18 +1975,18 @@
 bool <a href='#SkPath_conservativelyContainsRect'>conservativelyContainsRect</a>(const <a href='SkRect_Reference#SkRect'>SkRect</a>& rect) const
 </pre>
 
-Returns true if <a href='#SkPath_conservativelyContainsRect_rect'>rect</a> is contained by <a href='#Path'>Path</a>.
-May return false when <a href='#SkPath_conservativelyContainsRect_rect'>rect</a> is contained by <a href='#Path'>Path</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='#Path'>Path</a> has one <a href='SkPath_Overview#Contour'>Contour</a> and is convex.
-<a href='#SkPath_conservativelyContainsRect_rect'>rect</a> may share points and edges with <a href='#Path'>Path</a> and be contained.
+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#Point'>Point</a> or <a href='undocumented#Line'>Line</a> described by <a href='#SkPath_conservativelyContainsRect_rect'>rect</a> is contained by <a href='#Path'>Path</a>.
+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#Rect'>Rect</a>, <a href='undocumented#Line'>Line</a>, or <a href='SkPoint_Reference#Point'>Point</a> checked for containment</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>
 
@@ -2007,14 +2011,14 @@
 void <a href='#SkPath_incReserve'>incReserve</a>(int extraPtCount)
 </pre>
 
-Grows <a href='#Path'>Path</a> <a href='#Verb_Array'>Verb Array</a> and <a href='#Point_Array'>Point Array</a> to contain <a href='#SkPath_incReserve_extraPtCount'>extraPtCount</a> additional <a href='SkPoint_Reference#Point'>Points</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 size of allocations when creating <a href='#Path'>Path</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#Point'>Points</a> to allocate</td>
+    <td>number of additional <a href='SkPoint_Reference#SkPoint'>SkPoint</a> to allocate</td>
   </tr>
 </table>
 
@@ -2034,8 +2038,8 @@
 void <a href='#SkPath_shrinkToFit'>shrinkToFit</a>()
 </pre>
 
-Shrinks <a href='#Path'>Path</a> <a href='#Verb_Array'>Verb Array</a> and <a href='#Point_Array'>Point Array</a> storage to discard unused capacity.
-May reduce the heap overhead for <a href='#Path'>Paths</a> known to be fully constructed.
+Shrinks <a href='SkPath_Reference#SkPath'>SkPath</a>  <a href='#Verb_Array'>verb array</a> and  <a href='SkPath_Reference#Point_Array'>SkPoint array</a> 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
 
@@ -2051,21 +2055,21 @@
 <a href='#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> at <a href='SkPoint_Reference#Point'>Point</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><a href='#SkPath_moveTo_x'>x</a>-axis value of <a href='SkPath_Overview#Contour'>Contour</a> start</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><a href='#SkPath_moveTo_y'>y</a>-axis value of <a href='SkPath_Overview#Contour'>Contour</a> start</td>
+    <td>y-axis value of <a href='SkPath_Overview#Contour'>contour</a> start</td>
   </tr>
 </table>
 
 ### Return Value
 
-reference to <a href='#Path'>Path</a>
+reference to <a href='SkPath_Reference#SkPath'>SkPath</a>
 
 ### Example
 
@@ -2083,18 +2087,18 @@
 <a href='#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> at <a href='SkPoint_Reference#Point'>Point</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>contour start</td>
+    <td><a href='SkPath_Overview#Contour'>contour</a> start</td>
   </tr>
 </table>
 
 ### Return Value
 
-reference to <a href='#Path'>Path</a>
+reference to <a href='SkPath_Reference#SkPath'>SkPath</a>
 
 ### Example
 
@@ -2112,24 +2116,24 @@
 <a href='#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> relative to <a href='#Last_Point'>Last Point</a>.
-If <a href='#Path'>Path</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>).
+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> start on x-axis</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> start on y-axis</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>
 
 ### Return Value
 
-reference to <a href='#Path'>Path</a>
+reference to <a href='SkPath_Reference#SkPath'>SkPath</a>
 
 ### Example
 
@@ -2147,25 +2151,25 @@
 <a href='#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> 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='#Path'>Path</a> is empty, or last <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>.
+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> appends <a href='#SkPath_kMove_Verb'>kMove Verb</a> to <a href='#Verb_Array'>Verb Array</a> and (0, 0) to <a href='#Point_Array'>Point 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='#Point_Array'>Point 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> in <a href='#SkPath_lineTo_x'>x</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> in <a href='#SkPath_lineTo_y'>y</a></td>
+    <td>end of added <a href='undocumented#Line'>line</a> on y-axis</td>
   </tr>
 </table>
 
 ### Return Value
 
-reference to <a href='#Path'>Path</a>
+reference to <a href='SkPath_Reference#SkPath'>SkPath</a>
 
 ### Example
 
@@ -2183,22 +2187,22 @@
 <a href='#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> from <a href='#Last_Point'>Last Point</a> to <a href='SkPoint_Reference#Point'>Point</a> <a href='#SkPath_lineTo_2_p'>p</a>. If <a href='#Path'>Path</a> is empty, or last <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>.
+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> first appends <a href='#SkPath_kMove_Verb'>kMove Verb</a> to <a href='#Verb_Array'>Verb Array</a> and (0, 0) to <a href='#Point_Array'>Point 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#Point'>Point</a> <a href='#SkPath_lineTo_2_p'>p</a> to <a href='#Point_Array'>Point 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#Point'>Point</a> of added <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>
 
 ### Return Value
 
-reference to <a href='#Path'>Path</a>
+reference to <a href='SkPath_Reference#SkPath'>SkPath</a>
 
 ### Example
 
@@ -2216,27 +2220,27 @@
 <a href='#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> 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='#Path'>Path</a> is empty, or last <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>.
+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> to <a href='#Verb_Array'>Verb Array</a> and (0, 0) to <a href='#Point_Array'>Point 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='#Point_Array'>Point 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 line to".
+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> end on x-axis</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> end on y-axis</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>
 
 ### Return Value
 
-reference to <a href='#Path'>Path</a>
+reference to <a href='SkPath_Reference#SkPath'>SkPath</a>
 
 ### Example
 
@@ -2276,33 +2280,33 @@
 <a href='#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='#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='#Path'>Path</a> is empty, or last <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='#Quad'>Quad</a>.
+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> to <a href='#Verb_Array'>Verb Array</a> and (0, 0) to <a href='#Point_Array'>Point 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='#Point_Array'>Point 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;
+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#Point'>Point</a> of <a href='#Quad'>Quad</a> in x</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#Point'>Point</a> of <a href='#Quad'>Quad</a> in y</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#Point'>Point</a> of <a href='#Quad'>Quad</a> in x</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#Point'>Point</a> of <a href='#Quad'>Quad</a> in y</td>
+    <td>end <a href='SkPoint_Reference#SkPoint'>SkPoint</a> of <a href='SkPath_Reference#Quad'>quad</a> on y-axis</td>
   </tr>
 </table>
 
 ### Return Value
 
-reference to <a href='#Path'>Path</a>
+reference to <a href='SkPath_Reference#SkPath'>SkPath</a>
 
 ### Example
 
@@ -2320,27 +2324,27 @@
 <a href='#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='#Quad'>Quad</a> from <a href='#Last_Point'>Last Point</a> towards <a href='SkPoint_Reference#Point'>Point</a> <a href='#SkPath_quadTo_2_p1'>p1</a>, to <a href='SkPoint_Reference#Point'>Point</a> <a href='#SkPath_quadTo_2_p2'>p2</a>.
-If <a href='#Path'>Path</a> is empty, or last <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='#Quad'>Quad</a>.
+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> to <a href='#Verb_Array'>Verb Array</a> and (0, 0) to <a href='#Point_Array'>Point 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#Point'>Points</a> <a href='#SkPath_quadTo_2_p1'>p1</a>, <a href='#SkPath_quadTo_2_p2'>p2</a>
-to <a href='#Point_Array'>Point 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;
+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#Point'>Point</a> of added <a href='#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#Point'>Point</a> of added <a href='#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>
 
 ### Return Value
 
-reference to <a href='#Path'>Path</a>
+reference to <a href='SkPath_Reference#SkPath'>SkPath</a>
 
 ### Example
 
@@ -2358,36 +2362,36 @@
 <a href='#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='#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='#Path'>Path</a> is empty, or last <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='#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> to <a href='#Verb_Array'>Verb Array</a> and (0, 0) to <a href='#Point_Array'>Point 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='#Quad'>Quad</a>
-control and <a href='#Quad'>Quad</a> end to <a href='#Point_Array'>Point Array</a>.
-<a href='#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='#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 quad to".
+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='#Quad'>Quad</a> control on x-axis</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='#Quad'>Quad</a> control on y-axis</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='#Quad'>Quad</a> end on x-axis</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='#Quad'>Quad</a> end on y-axis</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>
 
 ### Return Value
 
-reference to <a href='#Path'>Path</a>
+reference to <a href='SkPath_Reference#SkPath'>SkPath</a>
 
 ### Example
 
@@ -2479,43 +2483,43 @@
 <a href='#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='#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='#Path'>Path</a> is empty, or last <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='#Conic'>Conic</a>.
+Adds conic 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 conic.
 
-Appends <a href='#SkPath_kMove_Verb'>kMove Verb</a> to <a href='#Verb_Array'>Verb Array</a> and (0, 0) to <a href='#Point_Array'>Point Array</a>, if needed.
+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> 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='#Point_Array'>Point Array</a>; and <a href='#SkPath_conicTo_w'>w</a> to <a href='#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> 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='#Point_Array'>Point 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> 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='#Point_Array'>Point 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#Point'>Point</a> of <a href='#Conic'>Conic</a> in x</td>
+    <td>control <a href='SkPoint_Reference#SkPoint'>SkPoint</a> of conic 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#Point'>Point</a> of <a href='#Conic'>Conic</a> in y</td>
+    <td>control <a href='SkPoint_Reference#SkPoint'>SkPoint</a> of conic 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#Point'>Point</a> of <a href='#Conic'>Conic</a> in x</td>
+    <td>end <a href='SkPoint_Reference#SkPoint'>SkPoint</a> of conic 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#Point'>Point</a> of <a href='#Conic'>Conic</a> in y</td>
+    <td>end <a href='SkPoint_Reference#SkPoint'>SkPoint</a> of conic 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='#Conic'>Conic</a></td>
+    <td>weight of added conic</td>
   </tr>
 </table>
 
 ### Return Value
 
-reference to <a href='#Path'>Path</a>
+reference to <a href='SkPath_Reference#SkPath'>SkPath</a>
 
 ### Example
 
@@ -2536,37 +2540,37 @@
 <a href='#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='#Conic'>Conic</a> from <a href='#Last_Point'>Last Point</a> towards <a href='SkPoint_Reference#Point'>Point</a> <a href='#SkPath_conicTo_2_p1'>p1</a>, to <a href='SkPoint_Reference#Point'>Point</a> <a href='#SkPath_conicTo_2_p2'>p2</a>, weighted by <a href='#SkPath_conicTo_2_w'>w</a>.
-If <a href='#Path'>Path</a> is empty, or last <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='#Conic'>Conic</a>.
+Adds conic 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 conic.
 
-Appends <a href='#SkPath_kMove_Verb'>kMove Verb</a> to <a href='#Verb_Array'>Verb Array</a> and (0, 0) to <a href='#Point_Array'>Point Array</a>, if needed.
+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> 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#Point'>Points</a> <a href='#SkPath_conicTo_2_p1'>p1</a>, <a href='#SkPath_conicTo_2_p2'>p2</a> to <a href='#Point_Array'>Point Array</a>; and <a href='#SkPath_conicTo_2_w'>w</a> to <a href='#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> is one, appends <a href='#SkPath_kQuad_Verb'>kQuad Verb</a> to <a href='#Verb_Array'>Verb Array</a>, and <a href='SkPoint_Reference#Point'>Points</a> <a href='#SkPath_conicTo_2_p1'>p1</a>, <a href='#SkPath_conicTo_2_p2'>p2</a>
-to <a href='#Point_Array'>Point Array</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> 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#Point'>Points</a> <a href='#SkPath_conicTo_2_p1'>p1</a>, <a href='#SkPath_conicTo_2_p2'>p2</a> to <a href='#Point_Array'>Point 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#Point'>Point</a> of added <a href='#Conic'>Conic</a></td>
+    <td>control <a href='SkPoint_Reference#SkPoint'>SkPoint</a> of added conic</td>
   </tr>
   <tr>    <td><a name='SkPath_conicTo_2_p2'><code><strong>p2</strong></code></a></td>
-    <td>end <a href='SkPoint_Reference#Point'>Point</a> of added <a href='#Conic'>Conic</a></td>
+    <td>end <a href='SkPoint_Reference#SkPoint'>SkPoint</a> of added conic</td>
   </tr>
   <tr>    <td><a name='SkPath_conicTo_2_w'><code><strong>w</strong></code></a></td>
-    <td>weight of added <a href='#Conic'>Conic</a></td>
+    <td>weight of added conic</td>
   </tr>
 </table>
 
 ### Return Value
 
-reference to <a href='#Path'>Path</a>
+reference to <a href='SkPath_Reference#SkPath'>SkPath</a>
 
 ### Example
 
@@ -2586,46 +2590,46 @@
 <a href='#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='#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='#Path'>Path</a> is empty, or last <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='#Conic'>Conic</a>.
+Adds conic 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 conic.
 
-Appends <a href='#SkPath_kMove_Verb'>kMove Verb</a> to <a href='#Verb_Array'>Verb Array</a> and (0, 0) to <a href='#Point_Array'>Point 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> 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>.
+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#Point'>Points</a> control and end to <a href='#Point_Array'>Point 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>).
+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 conic 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='#Conic'>Conic</a> control on x-axis</td>
+    <td>offset from  <a href='#Last_Point'>last point</a> to conic 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='#Conic'>Conic</a> control on y-axis</td>
+    <td>offset from  <a href='#Last_Point'>last point</a> to conic 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='#Conic'>Conic</a> end on x-axis</td>
+    <td>offset from  <a href='#Last_Point'>last point</a> to conic 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='#Conic'>Conic</a> end on y-axis</td>
+    <td>offset from  <a href='#Last_Point'>last point</a> to conic 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='#Conic'>Conic</a></td>
+    <td>weight of added conic</td>
   </tr>
 </table>
 
 ### Return Value
 
-reference to <a href='#Path'>Path</a>
+reference to <a href='SkPath_Reference#SkPath'>SkPath</a>
 
 ### Example
 
@@ -2655,39 +2659,39 @@
 <a href='#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='#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='#Path'>Path</a> is empty, or last <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='#Cubic'>Cubic</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> to <a href='#Verb_Array'>Verb Array</a> and (0, 0) to <a href='#Point_Array'>Point 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='#Point_Array'>Point 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;
+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#Point'>Point</a> of <a href='#Cubic'>Cubic</a> in x</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#Point'>Point</a> of <a href='#Cubic'>Cubic</a> in y</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#Point'>Point</a> of <a href='#Cubic'>Cubic</a> in x</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#Point'>Point</a> of <a href='#Cubic'>Cubic</a> in y</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#Point'>Point</a> of <a href='#Cubic'>Cubic</a> in x</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#Point'>Point</a> of <a href='#Cubic'>Cubic</a> in y</td>
+    <td>end <a href='SkPoint_Reference#SkPoint'>SkPoint</a> of <a href='SkPath_Reference#Cubic'>cubic</a> on y-axis</td>
   </tr>
 </table>
 
 ### Return Value
 
-reference to <a href='#Path'>Path</a>
+reference to <a href='SkPath_Reference#SkPath'>SkPath</a>
 
 ### Example
 
@@ -2705,30 +2709,30 @@
 <a href='#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='#Cubic'>Cubic</a> from <a href='#Last_Point'>Last Point</a> towards <a href='SkPoint_Reference#Point'>Point</a> <a href='#SkPath_cubicTo_2_p1'>p1</a>, then towards <a href='SkPoint_Reference#Point'>Point</a> <a href='#SkPath_cubicTo_2_p2'>p2</a>, ending at
-<a href='SkPoint_Reference#Point'>Point</a> <a href='#SkPath_cubicTo_2_p3'>p3</a>. If <a href='#Path'>Path</a> is empty, or last <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='#Cubic'>Cubic</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> to <a href='#Verb_Array'>Verb Array</a> and (0, 0) to <a href='#Point_Array'>Point 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#Point'>Points</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='#Point_Array'>Point 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;
+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#Point'>Point</a> of <a href='#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#Point'>Point</a> of <a href='#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#Point'>Point</a> of <a href='#Cubic'>Cubic</a></td>
+    <td>end <a href='SkPoint_Reference#SkPoint'>SkPoint</a> of <a href='SkPath_Reference#Cubic'>cubic</a></td>
   </tr>
 </table>
 
 ### Return Value
 
-reference to <a href='#Path'>Path</a>
+reference to <a href='SkPath_Reference#SkPath'>SkPath</a>
 
 ### Example
 
@@ -2746,43 +2750,43 @@
 <a href='#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='#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='#Path'>Path</a> is empty, or last <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='#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> to <a href='#Verb_Array'>Verb Array</a> and (0, 0) to <a href='#Point_Array'>Point 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='#Cubic'>Cubic</a>
-control and <a href='#Cubic'>Cubic</a> end to <a href='#Point_Array'>Point Array</a>.
-<a href='#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='#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 cubic to".
+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='#Cubic'>Cubic</a> control on x-axis</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='#Cubic'>Cubic</a> control on y-axis</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='#Cubic'>Cubic</a> control on x-axis</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='#Cubic'>Cubic</a> control on y-axis</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='#Cubic'>Cubic</a> end on x-axis</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='#Cubic'>Cubic</a> end on y-axis</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>
 
 ### Return Value
 
-reference to <a href='#Path'>Path</a>
+reference to <a href='SkPath_Reference#SkPath'>SkPath</a>
 
 ### Example
 
@@ -2869,38 +2873,38 @@
 <a href='#SkPath'>SkPath</a>& <a href='#SkPath_arcTo'>arcTo</a>(const <a href='SkRect_Reference#SkRect'>SkRect</a>& oval, <a href='undocumented#SkScalar'>SkScalar</a> startAngle, <a href='undocumented#SkScalar'>SkScalar</a> sweepAngle, bool forceMoveTo)
 </pre>
 
-Appends <a href='#Arc'>Arc</a> to <a href='#Path'>Path</a>. <a href='#Arc'>Arc</a> added is part of ellipse
+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='#Arc'>Arc</a> clockwise.
+positive x-axis, and positive sweeps extends <a href='undocumented#Arc'>arc</a> clockwise.
 
-<a href='#SkPath_arcTo'>arcTo</a> adds <a href='undocumented#Line'>Line</a> connecting <a href='#Path'>Path</a> last <a href='SkPoint_Reference#Point'>Point</a> to initial <a href='#Arc'>Arc</a> <a href='SkPoint_Reference#Point'>Point</a> if <a href='#SkPath_arcTo_forceMoveTo'>forceMoveTo</a>
-is false and <a href='#Path'>Path</a> is not empty. Otherwise, added <a href='SkPath_Overview#Contour'>Contour</a> begins with first point
-of <a href='#Arc'>Arc</a>. Angles greater than -360 and less than 360 are treated modulo 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
 
 <table>  <tr>    <td><a name='SkPath_arcTo_oval'><code><strong>oval</strong></code></a></td>
-    <td>bounds of ellipse containing <a href='#Arc'>Arc</a></td>
+    <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='#Arc'>Arc</a> in degrees</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 contour with <a href='#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>
 
 ### Return Value
 
-reference to <a href='#Path'>Path</a>
+reference to <a href='SkPath_Reference#SkPath'>SkPath</a>
 
 ### Example
 
-<div><fiddle-embed name="5f02890edaa10cb5e1a4243a82b6a382"><div><a href='#SkPath_arcTo'>arcTo</a> continues a previous contour when <a href='#SkPath_arcTo_forceMoveTo'>forceMoveTo</a> is false and when <a href='#Path'>Path</a>
+<div><fiddle-embed name="5f02890edaa10cb5e1a4243a82b6a382"><div><a href='#SkPath_arcTo'>arcTo</a> continues a previous contour when forceMoveTo is false and when <a href='#Path'>Path</a>
 is not empty.
 </div></fiddle-embed></div>
 
@@ -2916,27 +2920,19 @@
 <a href='#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='#Arc'>Arc</a> to <a href='#Path'>Path</a>, after appending <a href='undocumented#Line'>Line</a> if needed. <a href='#Arc'>Arc</a> is implemented by <a href='#Conic'>Conic</a>
-weighted to describe part of <a href='undocumented#Circle'>Circle</a>. <a href='#Arc'>Arc</a> is contained by tangent from
-last <a href='#Path'>Path</a> point (x0, y0) 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='#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 lines.
+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 conic
+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>.
 
-### Example
+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>.
 
-<div><fiddle-embed name="386000684073fccabc224d7d6dc81cd9"></fiddle-embed></div>
+<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>).
 
-If last <a href='#Path'>Path</a> <a href='SkPoint_Reference#Point'>Point</a> does not start <a href='#Arc'>Arc</a>, <a href='#SkPath_arcTo'>arcTo</a> appends connecting <a href='undocumented#Line'>Line</a> to <a href='#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='#Arc'>Arc</a>.
-
-### Example
-
-<div><fiddle-embed name="78f3c65fa900610bb52518989b547095"></fiddle-embed></div>
-
-<a href='#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='#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> appends at most one <a href='undocumented#Line'>Line</a> and one <a href='#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>.
+<a href='#SkPath_arcTo'>arcTo</a> appends at most one <a href='undocumented#Line'>Line</a> and one conic.
+<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
 
@@ -2953,13 +2949,21 @@
     <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='#Arc'>Arc</a> to <a href='undocumented#Circle'>Circle</a> center</td>
+    <td>distance from <a href='undocumented#Arc'>arc</a> to <a href='undocumented#Circle'>circle</a> center</td>
   </tr>
 </table>
 
 ### Return Value
 
-reference to <a href='#Path'>Path</a>
+reference to <a href='SkPath_Reference#SkPath'>SkPath</a>
+
+### Example
+
+<div><fiddle-embed name="386000684073fccabc224d7d6dc81cd9"></fiddle-embed></div>
+
+### Example
+
+<div><fiddle-embed name="78f3c65fa900610bb52518989b547095"></fiddle-embed></div>
 
 ### Example
 
@@ -2988,41 +2992,41 @@
 <a href='#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='#Arc'>Arc</a> to <a href='#Path'>Path</a>, after appending <a href='undocumented#Line'>Line</a> if needed. <a href='#Arc'>Arc</a> is implemented by <a href='#Conic'>Conic</a>
-weighted to describe part of <a href='undocumented#Circle'>Circle</a>. <a href='#Arc'>Arc</a> is contained by tangent from
-last <a href='#Path'>Path</a> point 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='#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 lines.
+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 conic
+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='#Path'>Path</a> <a href='SkPoint_Reference#Point'>Point</a> does not start <a href='#Arc'>Arc</a>, <a href='#SkPath_arcTo'>arcTo</a> appends connecting <a href='undocumented#Line'>Line</a> to <a href='#Path'>Path</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='#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='#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='#Path'>Path</a> <a href='SkPoint_Reference#Point'>Point</a> to <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> appends at most one <a href='undocumented#Line'>Line</a> and one <a href='#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>.
+<a href='#SkPath_arcTo'>arcTo</a>() appends at most one <a href='undocumented#Line'>line</a> and one conic.
+<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#Point'>Point</a> common to pair of tangents</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='#Arc'>Arc</a> to <a href='undocumented#Circle'>Circle</a> center</td>
+    <td>distance from <a href='undocumented#Arc'>arc</a> to <a href='undocumented#Circle'>circle</a> center</td>
   </tr>
 </table>
 
 ### Return Value
 
-reference to <a href='#Path'>Path</a>
+reference to <a href='SkPath_Reference#SkPath'>SkPath</a>
 
 ### Example
 
 <div><fiddle-embed name="0c056264a361579c18e5d02d3172d4d4"><div>Because tangent lines are parallel, <a href='#SkPath_arcTo'>arcTo</a> appends line from last <a href='#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='#Conic'>Conic</a>.
+p1, but does not append a circular <a href='#Conic'>Conic</a>.
 </div>
 
 #### Example Output
@@ -3092,49 +3096,49 @@
               <a href='undocumented#SkScalar'>SkScalar</a> x, <a href='undocumented#SkScalar'>SkScalar</a> y)
 </pre>
 
-Appends <a href='#Arc'>Arc</a> to <a href='#Path'>Path</a>. <a href='#Arc'>Arc</a> is implemented by one or more <a href='#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='#Arc'>Arc</a>
-curves from last <a href='#Path'>Path</a> <a href='SkPoint_Reference#Point'>Point</a> to (<a href='#SkPath_arcTo_4_x'>x</a>, <a href='#SkPath_arcTo_4_y'>y</a>), choosing one of four possible routes:
+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='#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='#Path'>Path</a> <a href='SkPoint_Reference#Point'>Point</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='#Path'>Path</a> <a href='SkPoint_Reference#Point'>Point</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
+<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> appends up to four <a href='#Conic'>Conic</a> curves.
-<a href='#SkPath_arcTo'>arcTo</a> implements the functionality of <a href='undocumented#Arc'>SVG Arc</a>, although <a href='undocumented#SVG'>SVG</a> "<a href='#SkPath_arcTo_4_sweep'>sweep</a>-flag" value
-is opposite the integer value of <a href='#SkPath_arcTo_4_sweep'>sweep</a>; <a href='undocumented#SVG'>SVG</a> "<a href='#SkPath_arcTo_4_sweep'>sweep</a>-flag" uses 1 for clockwise,
-while <a href='#SkPath_kCW_Direction'>kCW Direction</a>  cast to int is zero.
+<a href='#SkPath_arcTo'>arcTo</a>() appends up to four conic <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
 
 <table>  <tr>    <td><a name='SkPath_arcTo_4_rx'><code><strong>rx</strong></code></a></td>
-    <td>radius in <a href='#SkPath_arcTo_4_x'>x</a> before <a href='#SkPath_arcTo_4_x'>x</a>-axis rotation</td>
+    <td>radius on x-axis before x-axis rotation</td>
   </tr>
   <tr>    <td><a name='SkPath_arcTo_4_ry'><code><strong>ry</strong></code></a></td>
-    <td>radius in <a href='#SkPath_arcTo_4_y'>y</a> before <a href='#SkPath_arcTo_4_x'>x</a>-axis rotation</td>
+    <td>radius on y-axis before x-axis rotation</td>
   </tr>
   <tr>    <td><a name='SkPath_arcTo_4_xAxisRotate'><code><strong>xAxisRotate</strong></code></a></td>
-    <td><a href='#SkPath_arcTo_4_x'>x</a>-axis rotation in degrees; positive values are clockwise</td>
+    <td>x-axis rotation in degrees; positive values are clockwise</td>
   </tr>
   <tr>    <td><a name='SkPath_arcTo_4_largeArc'><code><strong>largeArc</strong></code></a></td>
-    <td>chooses smaller or larger <a href='#Arc'>Arc</a></td>
+    <td>chooses smaller or larger <a href='undocumented#Arc'>arc</a></td>
   </tr>
   <tr>    <td><a name='SkPath_arcTo_4_sweep'><code><strong>sweep</strong></code></a></td>
-    <td>chooses clockwise or counterclockwise <a href='#Arc'>Arc</a></td>
+    <td>chooses clockwise or counterclockwise <a href='undocumented#Arc'>arc</a></td>
   </tr>
   <tr>    <td><a name='SkPath_arcTo_4_x'><code><strong>x</strong></code></a></td>
-    <td>end of <a href='#Arc'>Arc</a></td>
+    <td>end of <a href='undocumented#Arc'>arc</a></td>
   </tr>
   <tr>    <td><a name='SkPath_arcTo_4_y'><code><strong>y</strong></code></a></td>
-    <td>end of <a href='#Arc'>Arc</a></td>
+    <td>end of <a href='undocumented#Arc'>arc</a></td>
   </tr>
 </table>
 
 ### Return Value
 
-reference to <a href='#Path'>Path</a>
+reference to <a href='SkPath_Reference#SkPath'>SkPath</a>
 
 ### Example
 
@@ -3153,21 +3157,21 @@
               const <a href='SkPoint_Reference#SkPoint'>SkPoint</a> xy)
 </pre>
 
-Appends <a href='#Arc'>Arc</a> to <a href='#Path'>Path</a>. <a href='#Arc'>Arc</a> is implemented by one or more <a href='#Conic'>Conic</a> weighted to describe
-part of <a href='undocumented#Oval'>Oval</a> with radii (<a href='#SkPath_arcTo_5_r'>r</a>.fX, <a href='#SkPath_arcTo_5_r'>r</a>.fY) rotated by <a href='#SkPath_arcTo_5_xAxisRotate'>xAxisRotate</a> degrees. <a href='#Arc'>Arc</a> curves
-from last <a href='#Path'>Path</a> <a href='SkPoint_Reference#Point'>Point</a> to (<a href='#SkPath_arcTo_5_xy'>xy</a>.fX, <a href='#SkPath_arcTo_5_xy'>xy</a>.fY), choosing one of four possible routes:
+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 conic 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='#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='#Path'>Path</a> <a href='SkPoint_Reference#Point'>Point</a> equals (x, y). <a href='#SkPath_arcTo'>arcTo</a> scales radii <a href='#SkPath_arcTo_5_r'>r</a> to fit
-last <a href='#Path'>Path</a> <a href='SkPoint_Reference#Point'>Point</a> and <a href='#SkPath_arcTo_5_xy'>xy</a> if both are greater than zero but too small to describe
-an arc.
+<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> appends up to four <a href='#Conic'>Conic</a> curves.
-<a href='#SkPath_arcTo'>arcTo</a> implements the functionality of <a href='undocumented#Arc'>SVG Arc</a>, although <a href='undocumented#SVG'>SVG</a> "<a href='#SkPath_arcTo_5_sweep'>sweep</a>-flag" value is
-opposite the integer value of <a href='#SkPath_arcTo_5_sweep'>sweep</a>; <a href='undocumented#SVG'>SVG</a> "<a href='#SkPath_arcTo_5_sweep'>sweep</a>-flag" uses 1 for clockwise, while
-<a href='#SkPath_kCW_Direction'>kCW Direction</a> cast to int is zero.
+<a href='#SkPath_arcTo'>arcTo</a>() appends up to four conic <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
 
@@ -3178,19 +3182,19 @@
     <td>x-axis rotation in degrees; positive values are clockwise</td>
   </tr>
   <tr>    <td><a name='SkPath_arcTo_5_largeArc'><code><strong>largeArc</strong></code></a></td>
-    <td>chooses smaller or larger <a href='#Arc'>Arc</a></td>
+    <td>chooses smaller or larger <a href='undocumented#Arc'>arc</a></td>
   </tr>
   <tr>    <td><a name='SkPath_arcTo_5_sweep'><code><strong>sweep</strong></code></a></td>
-    <td>chooses clockwise or counterclockwise <a href='#Arc'>Arc</a></td>
+    <td>chooses clockwise or counterclockwise <a href='undocumented#Arc'>arc</a></td>
   </tr>
   <tr>    <td><a name='SkPath_arcTo_5_xy'><code><strong>xy</strong></code></a></td>
-    <td>end of <a href='#Arc'>Arc</a></td>
+    <td>end of <a href='undocumented#Arc'>arc</a></td>
   </tr>
 </table>
 
 ### Return Value
 
-reference to <a href='#Path'>Path</a>
+reference to <a href='SkPath_Reference#SkPath'>SkPath</a>
 
 ### Example
 
@@ -3271,17 +3275,17 @@
 <a href='#SkPath'>SkPath</a>& <a href='#SkPath_close'>close</a>()
 </pre>
 
-Appends <a href='#SkPath_kClose_Verb'>kClose Verb</a> to <a href='#Path'>Path</a>. A closed <a href='SkPath_Overview#Contour'>Contour</a> connects the first and last <a href='SkPoint_Reference#Point'>Point</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_kFill_Style'>SkPaint::kFill Style</a>. With <a href='SkPaint_Reference#SkPaint_kStroke_Style'>SkPaint::kStroke Style</a>, open <a href='SkPath_Overview#Contour'>Contour</a> draws
-<a href='SkPaint_Reference#Stroke_Cap'>Paint Stroke 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#Stroke_Join'>Paint Stroke Join</a> at <a href='SkPath_Overview#Contour'>Contour</a> start and end.
+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>() has no effect if <a href='#Path'>Path</a> is empty or last <a href='#Path'>Path</a> <a href='#SkPath_Verb'>Verb</a> is <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
 
-reference to <a href='#Path'>Path</a>
+reference to <a href='SkPath_Reference#SkPath'>SkPath</a>
 
 ### Example
 
@@ -3459,35 +3463,35 @@
 bool <a href='#SkPath_isRect'>isRect</a>(<a href='SkRect_Reference#SkRect'>SkRect</a>* rect, bool* isClosed = nullptr, <a href='#SkPath_Direction'>Direction</a>* direction = nullptr) const
 </pre>
 
-Returns true if <a href='#Path'>Path</a> is equivalent to <a href='SkRect_Reference#Rect'>Rect</a> when filled.
+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> may be smaller than the <a href='#Path'>Path</a> bounds. <a href='#Path'>Path</a> bounds may include <a href='#SkPath_kMove_Verb'>kMove Verb</a> points
+<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#Rect'>Rect</a>; may be nullptr</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='#Path'>Path</a> is closed; may be nullptr</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#Rect'>Rect</a> <a href='#SkPath_isRect_direction'>direction</a>; may be nullptr</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='#Path'>Path</a> contains <a href='SkRect_Reference#Rect'>Rect</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> 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 line segments.
+following <a href='#SkPath_lineTo'>lineTo</a> does not. <a href='#SkPath_addPoly'>addPoly</a> returns true even though rect is not closed, and one
+side of rect is made up of consecutive line segments.
 </div>
 
 #### Example Output
@@ -3514,26 +3518,26 @@
 bool <a href='#SkPath_isNestedFillRects'>isNestedFillRects</a>(<a href='SkRect_Reference#SkRect'>SkRect</a> rect[2], <a href='#SkPath_Direction'>Direction</a> dirs[2] = nullptr) const
 </pre>
 
-Returns true if <a href='#Path'>Path</a> is equivalent to nested <a href='SkRect_Reference#Rect'>Rect</a> pair when filled.
+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#Rect'>Rect</a>, and <a href='#SkPath_isNestedFillRects_rect'>rect</a>[1] to inner <a href='SkRect_Reference#Rect'>Rect</a>;
-setting <a href='#SkPath_isNestedFillRects_dirs'>dirs</a>[0] to <a href='#SkPath_Direction'>Direction</a> of outer <a href='SkRect_Reference#Rect'>Rect</a>, and <a href='#SkPath_isNestedFillRects_dirs'>dirs</a>[1] to <a href='#SkPath_Direction'>Direction</a> of inner
-<a href='SkRect_Reference#Rect'>Rect</a>.
+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#Rect'>Rect</a> pair; may be nullptr</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_Direction'>Direction</a> pair; may be nullptr</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='#Path'>Path</a> contains nested <a href='SkRect_Reference#Rect'>Rect</a> pair
+true if <a href='SkPath_Reference#SkPath'>SkPath</a> contains nested <a href='SkRect_Reference#SkRect'>SkRect</a> pair
 
 ### Example
 
@@ -3560,24 +3564,24 @@
 <a href='#SkPath'>SkPath</a>& <a href='#SkPath_addRect'>addRect</a>(const <a href='SkRect_Reference#SkRect'>SkRect</a>& rect, <a href='#SkPath_Direction'>Direction</a> dir = <a href='#SkPath_kCW_Direction'>kCW Direction</a>)
 </pre>
 
-Adds <a href='SkRect_Reference#Rect'>Rect</a> to <a href='#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>,
-starting with top-left corner of <a href='SkRect_Reference#Rect'>Rect</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>.
+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#Rect'>Rect</a> to add as a closed contour</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_Direction'>Direction</a> to wind added contour</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>
 
 ### Return Value
 
-reference to <a href='#Path'>Path</a>
+reference to <a href='SkPath_Reference#SkPath'>SkPath</a>
 
 ### Example
 
@@ -3645,39 +3649,39 @@
                 <a href='#SkPath_Direction'>Direction</a> dir = <a href='#SkPath_kCW_Direction'>kCW Direction</a>)
 </pre>
 
-Adds <a href='SkRect_Reference#Rect'>Rect</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='#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>,
-starting with <a href='#SkPath_addRect_3_top'>top</a>-<a href='#SkPath_addRect_3_left'>left</a> corner of <a href='SkRect_Reference#Rect'>Rect</a>; followed by <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_right'>right</a>,
-and <a href='#SkPath_addRect_3_bottom'>bottom</a>-<a href='#SkPath_addRect_3_left'>left</a> if <a href='#SkPath_addRect_3_dir'>dir</a> is <a href='#SkPath_kCW_Direction'>kCW Direction</a>; or followed by <a href='#SkPath_addRect_3_bottom'>bottom</a>-<a href='#SkPath_addRect_3_left'>left</a>,
-<a href='#SkPath_addRect_3_bottom'>bottom</a>-<a href='#SkPath_addRect_3_right'>right</a>, and <a href='#SkPath_addRect_3_top'>top</a>-<a href='#SkPath_addRect_3_right'>right</a> if <a href='#SkPath_addRect_3_dir'>dir</a> is <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
 
 <table>  <tr>    <td><a name='SkPath_addRect_3_left'><code><strong>left</strong></code></a></td>
-    <td>smaller x-axis value of <a href='SkRect_Reference#Rect'>Rect</a></td>
+    <td>smaller x-axis value of <a href='SkRect_Reference#SkRect'>SkRect</a></td>
   </tr>
   <tr>    <td><a name='SkPath_addRect_3_top'><code><strong>top</strong></code></a></td>
-    <td>smaller y-axis value of <a href='SkRect_Reference#Rect'>Rect</a></td>
+    <td>smaller y-axis value of <a href='SkRect_Reference#SkRect'>SkRect</a></td>
   </tr>
   <tr>    <td><a name='SkPath_addRect_3_right'><code><strong>right</strong></code></a></td>
-    <td>larger x-axis value of <a href='SkRect_Reference#Rect'>Rect</a></td>
+    <td>larger x-axis value of <a href='SkRect_Reference#SkRect'>SkRect</a></td>
   </tr>
   <tr>    <td><a name='SkPath_addRect_3_bottom'><code><strong>bottom</strong></code></a></td>
-    <td>larger y-axis value of <a href='SkRect_Reference#Rect'>Rect</a></td>
+    <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_Direction'>Direction</a> to wind added contour</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>
 
 ### Return Value
 
-reference to <a href='#Path'>Path</a>
+reference to <a href='SkPath_Reference#SkPath'>SkPath</a>
 
 ### Example
 
-<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 <a href='#SkPath_addRect_3_top'>top</a>-<a href='#SkPath_addRect_3_left'>left</a> 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 <a href='#SkPath_addRect_3_top'>top</a>-<a href='#SkPath_addRect_3_left'>left</a> corner, and continue down.
+<div><fiddle-embed name="3837827310e8b88b8c2e128ef9fbbd65"><div>The left <a href='SkRect_Reference#Rect'>Rect</a> dashes start at the top-left corner, and continue to the right.
+The right <a href='SkRect_Reference#Rect'>Rect</a> dashes start at the top-left corner, and continue down.
 </div></fiddle-embed></div>
 
 ### See Also
@@ -3692,10 +3696,10 @@
 <a href='#SkPath'>SkPath</a>& <a href='#SkPath_addOval'>addOval</a>(const <a href='SkRect_Reference#SkRect'>SkRect</a>& oval, <a href='#SkPath_Direction'>Direction</a> dir = <a href='#SkPath_kCW_Direction'>kCW Direction</a>)
 </pre>
 
-Adds <a href='undocumented#Oval'>Oval</a> to path, 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_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>.fRight, <a href='#SkPath_addOval_oval'>oval</a>.centerY()) 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>.
+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
 
@@ -3703,13 +3707,13 @@
     <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_Direction'>Direction</a> to wind ellipse</td>
+    <td><a href='SkPath_Reference#SkPath'>SkPath</a>::<a href='#SkPath_Direction'>Direction</a> to wind ellipse</td>
   </tr>
 </table>
 
 ### Return Value
 
-reference to <a href='#Path'>Path</a>
+reference to <a href='SkPath_Reference#SkPath'>SkPath</a>
 
 ### Example
 
@@ -3814,22 +3818,22 @@
 <a href='#SkPath'>SkPath</a>& <a href='#SkPath_addArc'>addArc</a>(const <a href='SkRect_Reference#SkRect'>SkRect</a>& oval, <a href='undocumented#SkScalar'>SkScalar</a> startAngle, <a href='undocumented#SkScalar'>SkScalar</a> sweepAngle)
 </pre>
 
-Appends <a href='#Arc'>Arc</a> to <a href='#Path'>Path</a>, as the start of new <a href='SkPath_Overview#Contour'>Contour</a>. <a href='#Arc'>Arc</a> added is part of ellipse
+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='#Arc'>Arc</a> clockwise.
+positive x-axis, and positive sweeps extends <a href='undocumented#Arc'>arc</a> clockwise.
 
 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='undocumented#Oval'>Oval</a> instead of <a href='#Arc'>Arc</a>. Otherwise, <a href='#SkPath_addArc_sweepAngle'>sweepAngle</a> values are treated
-modulo 360, and <a href='#Arc'>Arc</a> may or may not draw depending on numeric rounding.
+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
 
 <table>  <tr>    <td><a name='SkPath_addArc_oval'><code><strong>oval</strong></code></a></td>
-    <td>bounds of ellipse containing <a href='#Arc'>Arc</a></td>
+    <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='#Arc'>Arc</a> in degrees</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>
@@ -3838,13 +3842,13 @@
 
 ### Return Value
 
-reference to <a href='#Path'>Path</a>
+reference to <a href='SkPath_Reference#SkPath'>SkPath</a>
 
 ### 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> is outside of the range of +/-360,
-and <a href='#SkPath_addArc_startAngle'>startAngle</a> modulo 90 is not zero.
+above and below because sweepAngle is outside of the range of +/-360,
+and startAngle modulo 90 is not zero.
 </div></fiddle-embed></div>
 
 ### See Also
@@ -3859,37 +3863,37 @@
 <a href='#SkPath'>SkPath</a>& <a href='#SkPath_addRoundRect'>addRoundRect</a>(const <a href='SkRect_Reference#SkRect'>SkRect</a>& rect, <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#RRect'>Round Rect</a> to <a href='#Path'>Path</a>, creating a new closed <a href='SkPath_Overview#Contour'>Contour</a>. <a href='SkRRect_Reference#RRect'>Round Rect</a> has bounds
+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#RRect'>Round Rect</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#RRect'>Round Rect</a> starts at the bottom-left
+<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> 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#Rect'>Rect</a> <a href='#SkPath_addRoundRect_rect'>rect</a> to <a href='#Path'>Path</a>.
+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='#Path'>Path</a> may be empty, or may contain: <a href='SkRect_Reference#Rect'>Rect</a>, <a href='undocumented#Oval'>Oval</a>, or RoundRect.
+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
 
 <table>  <tr>    <td><a name='SkPath_addRoundRect_rect'><code><strong>rect</strong></code></a></td>
-    <td>bounds of <a href='SkRRect_Reference#RRect'>Round Rect</a></td>
+    <td>bounds of <a href='SkRRect_Reference#SkRRect'>SkRRect</a></td>
   </tr>
   <tr>    <td><a name='SkPath_addRoundRect_rx'><code><strong>rx</strong></code></a></td>
-    <td>x-axis radius of rounded corners on the <a href='SkRRect_Reference#RRect'>Round Rect</a></td>
+    <td>x-axis radius of rounded corners on the <a href='SkRRect_Reference#SkRRect'>SkRRect</a></td>
   </tr>
   <tr>    <td><a name='SkPath_addRoundRect_ry'><code><strong>ry</strong></code></a></td>
-    <td>y-axis radius of rounded corners on the <a href='SkRRect_Reference#RRect'>Round Rect</a></td>
+    <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_Direction'>Direction</a> to wind <a href='SkRRect_Reference#RRect'>Round Rect</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>
 
 ### Return Value
 
-reference to <a href='#Path'>Path</a>
+reference to <a href='SkPath_Reference#SkPath'>SkPath</a>
 
 ### Example
 
@@ -3970,12 +3974,12 @@
 <a href='#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> to <a href='#Path'>Path</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
+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='#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='SkRRect_Reference#RRect'>Round Rect</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
 
@@ -3983,13 +3987,13 @@
     <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_Direction'>Direction</a> to wind <a href='SkRRect_Reference#RRect'>Round Rect</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>
 
 ### Return Value
 
-reference to <a href='#Path'>Path</a>
+reference to <a href='SkPath_Reference#SkPath'>SkPath</a>
 
 ### Example
 
@@ -4057,30 +4061,30 @@
 <a href='#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> 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 line for every additional <a href='SkPoint_Reference#Point'>Point</a>
-in <a href='#SkPath_addPoly_pts'>pts</a> array. If close is true, appends <a href='#SkPath_kClose_Verb'>kClose Verb</a> to <a href='#Path'>Path</a>, connecting
+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> is zero, append <a href='#SkPath_kMove_Verb'>kMove Verb</a> to path.
+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> sharing end and start <a href='SkPoint_Reference#Point'>Point</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='SkPoint_Reference#Point'>Point</a> array</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> connecting <a href='SkPath_Overview#Contour'>Contour</a> end and start</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>
 
 ### Return Value
 
-reference to <a href='#Path'>Path</a>
+reference to <a href='SkPath_Reference#SkPath'>SkPath</a>
 
 ### Example
 
@@ -4098,25 +4102,25 @@
 <a href='#SkPath'>SkPath</a>& <a href='#SkPath_addPoly'>addPoly</a>(const std::initializer_list&lt;<a href='SkPoint_Reference#SkPoint'>SkPoint</a>&gt;& list, bool close)
 </pre>
 
-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 line
-for every additional <a href='SkPoint_Reference#Point'>Point</a> in <a href='#SkPath_addPoly_2_list'>list</a>. If close is true, appends <a href='#SkPath_kClose_Verb'>kClose Verb</a> to <a href='#Path'>Path</a>,
-connecting last and first <a href='SkPoint_Reference#Point'>Point</a> in <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> is empty, append <a href='#SkPath_kMove_Verb'>kMove Verb</a> to path.
+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
 
 <table>  <tr>    <td><a name='SkPath_addPoly_2_list'><code><strong>list</strong></code></a></td>
-    <td>array of <a href='SkPoint_Reference#Point'>Points</a></td>
+    <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> connecting <a href='SkPath_Overview#Contour'>Contour</a> end and start</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>
 
 ### Return Value
 
-reference to <a href='#Path'>Path</a>
+reference to <a href='SkPath_Reference#SkPath'>SkPath</a>
 
 ### Example
 
@@ -4185,31 +4189,31 @@
 <a href='#SkPath'>SkPath</a>& <a href='#SkPath_addPath'>addPath</a>(const <a href='#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> to <a href='#Path'>Path</a>, offset by (<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> 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='#Point_Array'>Point Array</a>, and <a href='#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='#Verb'>Verbs</a>, <a href='SkPoint_Reference#Point'>Points</a>, and <a href='#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='#Path'>Path</a> <a href='#Verb'>Verbs</a>, <a href='SkPoint_Reference#Point'>Points</a>, and <a href='#Conic_Weight'>Conic Weights</a> to add</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='#Point_Array'>Point Array</a> x-axis coordinates</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='#Point_Array'>Point Array</a> y-axis coordinates</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> or <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>
 
 ### Return Value
 
-reference to <a href='#Path'>Path</a>
+reference to <a href='SkPath_Reference#SkPath'>SkPath</a>
 
 ### Example
 
@@ -4227,25 +4231,25 @@
 <a href='#SkPath'>SkPath</a>& <a href='#SkPath_addPath'>addPath</a>(const <a href='#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> to <a href='#Path'>Path</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> 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='#Point_Array'>Point Array</a>, and <a href='#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='#Verb'>Verbs</a>, <a href='SkPoint_Reference#Point'>Points</a>, and <a href='#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='#Path'>Path</a> <a href='#Verb'>Verbs</a>, <a href='SkPoint_Reference#Point'>Points</a>, and <a href='#Conic_Weight'>Conic Weights</a> to add</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> or <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>
 
 ### Return Value
 
-reference to <a href='#Path'>Path</a>
+reference to <a href='SkPath_Reference#SkPath'>SkPath</a>
 
 ### Example
 
@@ -4263,29 +4267,29 @@
 <a href='#SkPath'>SkPath</a>& <a href='#SkPath_addPath'>addPath</a>(const <a href='#SkPath'>SkPath</a>& src, const <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a>& matrix, <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> to <a href='#Path'>Path</a>, transformed by <a href='#SkPath_addPath_3_matrix'>matrix</a>. Transformed curves may have different
-<a href='#Verb'>Verbs</a>, <a href='SkPoint_Reference#Point'>Points</a>, and <a href='#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> 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='#Point_Array'>Point Array</a>, and <a href='#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='#Verb'>Verbs</a>, <a href='SkPoint_Reference#Point'>Points</a>, and <a href='#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='#Path'>Path</a> <a href='#Verb'>Verbs</a>, <a href='SkPoint_Reference#Point'>Points</a>, and <a href='#Conic_Weight'>Conic Weights</a> to add</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> or <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>
 
 ### Return Value
 
-reference to <a href='#Path'>Path</a>
+reference to <a href='SkPath_Reference#SkPath'>SkPath</a>
 
 ### Example
 
@@ -4303,19 +4307,19 @@
 <a href='#SkPath'>SkPath</a>& <a href='#SkPath_reverseAddPath'>reverseAddPath</a>(const <a href='#SkPath'>SkPath</a>& src)
 </pre>
 
-Appends <a href='#SkPath_reverseAddPath_src'>src</a> to <a href='#Path'>Path</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='#Path'>Path</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='#Path'>Path</a> <a href='#Verb'>Verbs</a>, <a href='SkPoint_Reference#Point'>Points</a>, and <a href='#Conic_Weight'>Conic Weights</a> to add</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>
 
 ### Return Value
 
-reference to <a href='#Path'>Path</a>
+reference to <a href='SkPath_Reference#SkPath'>SkPath</a>
 
 ### Example
 
@@ -4333,19 +4337,19 @@
 void <a href='#SkPath_offset'>offset</a>(<a href='undocumented#SkScalar'>SkScalar</a> dx, <a href='undocumented#SkScalar'>SkScalar</a> dy, <a href='#SkPath'>SkPath</a>* dst) const
 </pre>
 
-Offsets <a href='#Point_Array'>Point Array</a> by (<a href='#SkPath_offset_dx'>dx</a>, <a href='#SkPath_offset_dy'>dy</a>). Offset <a href='#Path'>Path</a> replaces <a href='#SkPath_offset_dst'>dst</a>.
-If <a href='#SkPath_offset_dst'>dst</a> is nullptr, <a href='#Path'>Path</a> is replaced by offset data.
+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='#Point_Array'>Point Array</a> x-axis coordinates</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='#Point_Array'>Point Array</a> y-axis coordinates</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='#Path'>Path</a>; may be nullptr</td>
+    <td>overwritten, translated copy of <a href='SkPath_Reference#SkPath'>SkPath</a>; may be nullptr</td>
   </tr>
 </table>
 
@@ -4367,15 +4371,15 @@
 void <a href='#SkPath_offset'>offset</a>(<a href='undocumented#SkScalar'>SkScalar</a> dx, <a href='undocumented#SkScalar'>SkScalar</a> dy)
 </pre>
 
-Offsets <a href='#Point_Array'>Point Array</a> by (<a href='#SkPath_offset_2_dx'>dx</a>, <a href='#SkPath_offset_2_dy'>dy</a>). <a href='#Path'>Path</a> is replaced by offset data.
+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='#Point_Array'>Point Array</a> x-axis coordinates</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='#Point_Array'>Point Array</a> y-axis coordinates</td>
+    <td>offset added to  <a href='SkPath_Reference#Point_Array'>SkPoint array</a> y-axis coordinates</td>
   </tr>
 </table>
 
@@ -4395,18 +4399,18 @@
 void <a href='#SkPath_transform'>transform</a>(const <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a>& matrix, <a href='#SkPath'>SkPath</a>* dst) const
 </pre>
 
-Transforms <a href='#Verb_Array'>Verb Array</a>, <a href='#Point_Array'>Point Array</a>, and weight by <a href='#SkPath_transform_matrix'>matrix</a>.
-transform may change <a href='#Verb'>Verbs</a> and increase their number.
-Transformed <a href='#Path'>Path</a> replaces <a href='#SkPath_transform_dst'>dst</a>; if <a href='#SkPath_transform_dst'>dst</a> is nullptr, original data
+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#Matrix'>Matrix</a> to apply to <a href='#Path'>Path</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='#Path'>Path</a>; may be nullptr</td>
+    <td>overwritten, transformed copy of <a href='SkPath_Reference#SkPath'>SkPath</a>; may be nullptr</td>
   </tr>
 </table>
 
@@ -4426,14 +4430,14 @@
 void <a href='#SkPath_transform'>transform</a>(const <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a>& matrix)
 </pre>
 
-Transforms <a href='#Verb_Array'>Verb Array</a>, <a href='#Point_Array'>Point Array</a>, and weight by <a href='#SkPath_transform_2_matrix'>matrix</a>.
-transform may change <a href='#Verb'>Verbs</a> and increase their number.
-<a href='#Path'>Path</a> is replaced by transformed data.
+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#Matrix'>Matrix</a> to apply to <a href='#Path'>Path</a></td>
+    <td><a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> to apply to <a href='SkPath_Reference#SkPath'>SkPath</a></td>
   </tr>
 </table>
 
@@ -4459,19 +4463,19 @@
 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='#Path'>Path</a> in <a href='#SkPath_getLastPt_lastPt'>lastPt</a>. Returns false if <a href='#Point_Array'>Point Array</a> is empty,
+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#Point'>Point</a> in <a href='#Point_Array'>Point Array</a>; may be nullptr</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='#Point_Array'>Point Array</a> contains one or more <a href='SkPoint_Reference#Point'>Points</a>
+true if  <a href='SkPath_Reference#Point_Array'>SkPoint array</a> contains one or more <a href='SkPoint_Reference#SkPoint'>SkPoint</a>
 
 ### Example
 
@@ -4497,16 +4501,16 @@
 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>). If <a href='#Point_Array'>Point 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='#Point_Array'>Point 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
 
 <table>  <tr>    <td><a name='SkPath_setLastPt_x'><code><strong>x</strong></code></a></td>
-    <td>set <a href='#SkPath_setLastPt_x'>x</a>-axis value of <a href='#Last_Point'>Last Point</a></td>
+    <td>set x-axis value of  <a href='#Last_Point'>last point</a></td>
   </tr>
   <tr>    <td><a name='SkPath_setLastPt_y'><code><strong>y</strong></code></a></td>
-    <td>set <a href='#SkPath_setLastPt_y'>y</a>-axis value of <a href='#Last_Point'>Last Point</a></td>
+    <td>set y-axis value of  <a href='#Last_Point'>last point</a></td>
   </tr>
 </table>
 
@@ -4526,13 +4530,13 @@
 void <a href='#SkPath_setLastPt'>setLastPt</a>(const <a href='SkPoint_Reference#SkPoint'>SkPoint</a>& p)
 </pre>
 
-Sets the last point on the path. If <a href='#Point_Array'>Point 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='#Point_Array'>Point 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
 
 <table>  <tr>    <td><a name='SkPath_setLastPt_2_p'><code><strong>p</strong></code></a></td>
-    <td>set value of <a href='#Last_Point'>Last Point</a></td>
+    <td>set value of  <a href='#Last_Point'>last point</a></td>
   </tr>
 </table>
 
@@ -4623,8 +4627,8 @@
 </pre>
 
 Returns a mask, where each set bit corresponds to a <a href='#SkPath_SegmentMask'>SegmentMask</a> constant
-if <a href='#Path'>Path</a> contains one or more <a href='#Verb'>Verbs</a> of that type.
-Returns zero if <a href='#Path'>Path</a> contains no <a href='undocumented#Line'>Lines</a>, or <a href='undocumented#Curve'>Curves</a>: <a href='#Quad'>Quads</a>, <a href='#Conic'>Conics</a>, or <a href='#Cubic'>Cubics</a>.
+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>() returns a cached result; it is very fast.
 
@@ -4696,18 +4700,18 @@
 void <a href='#SkPath_dump'>dump</a>(<a href='SkWStream_Reference#SkWStream'>SkWStream</a>* stream, bool forceClose, bool dumpAsHex) const
 </pre>
 
-Writes text representation of <a href='#Path'>Path</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='#Path'>Path</a>.
-Set <a href='#SkPath_dump_dumpAsHex'>dumpAsHex</a> true to generate exact binary representations
-of floating point numbers used in <a href='#Point_Array'>Point Array</a> and <a href='#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#WStream'>WStream</a> receiving <a href='#Path'>Path</a> text representation; may be nullptr</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> is output</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> values are written as hexadecimal</td>
@@ -4753,9 +4757,9 @@
 void <a href='#SkPath_dump'>dump</a>() const
 </pre>
 
-Writes text representation of <a href='#Path'>Path</a> to standard output. The representation may be
-directly compiled as C++ code. Floating point values are written
-with limited precision; it may not be possible to reconstruct original <a href='#Path'>Path</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.
 
 ### Example
@@ -4819,25 +4823,25 @@
 size_t <a href='#SkPath_writeToMemory'>writeToMemory</a>(void* buffer) const
 </pre>
 
-Writes <a href='#Path'>Path</a> to <a href='#SkPath_writeToMemory_buffer'>buffer</a>, returning the number of bytes written.
-Pass nullptr to obtain the storage size.
+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='#Fill_Type'>Fill Type</a>, <a href='#Verb_Array'>Verb Array</a>, <a href='#Point_Array'>Point Array</a>, <a href='#Conic_Weight'>Conic Weight</a>, and
-additionally writes computed information like <a href='#SkPath_Convexity'>Convexity</a> and bounds.
+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='#Path'>Path</a> in memory is not guaranteed.
+Use 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.
 
 ### Parameters
 
 <table>  <tr>    <td><a name='SkPath_writeToMemory_buffer'><code><strong>buffer</strong></code></a></td>
-    <td>storage for <a href='#Path'>Path</a>; may be nullptr</td>
+    <td>storage for <a href='SkPath_Reference#SkPath'>SkPath</a>; may be nullptr</td>
   </tr>
 </table>
 
 ### Return Value
 
-size of storage required for <a href='#Path'>Path</a>; always a multiple of 4
+<a href='undocumented#Size'>size</a> of storage required for <a href='SkPath_Reference#SkPath'>SkPath</a>; always a multiple of 4
 
 ### Example
 
@@ -4863,17 +4867,17 @@
 <a href='undocumented#sk_sp'>sk sp</a>&lt;<a href='undocumented#SkData'>SkData</a>&gt; <a href='#SkPath_serialize'>serialize</a>() const
 </pre>
 
-Writes <a href='#Path'>Path</a> to buffer, returning the buffer written to, wrapped in <a href='undocumented#Data'>Data</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>() writes <a href='#Fill_Type'>Fill Type</a>, <a href='#Verb_Array'>Verb Array</a>, <a href='#Point_Array'>Point Array</a>, <a href='#Conic_Weight'>Conic Weight</a>, and
-additionally writes computed information like <a href='#SkPath_Convexity'>Convexity</a> and bounds.
+<a href='#SkPath_serialize'>serialize()</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.
 
-<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='#Path'>Path</a> in memory is not guaranteed.
+<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='#Path'>Path</a> data wrapped in <a href='undocumented#Data'>Data</a> buffer
+<a href='SkPath_Reference#SkPath'>SkPath</a> <a href='undocumented#Data'>data</a> wrapped in <a href='undocumented#SkData'>SkData</a> buffer
 
 ### Example
 
@@ -4899,22 +4903,22 @@
 size_t <a href='#SkPath_readFromMemory'>readFromMemory</a>(const void* buffer, size_t length)
 </pre>
 
-Initializes <a href='#Path'>Path</a> from <a href='#SkPath_readFromMemory_buffer'>buffer</a> of size <a href='#SkPath_readFromMemory_length'>length</a>. Returns zero if the <a href='#SkPath_readFromMemory_buffer'>buffer</a> is
-data is inconsistent, or the <a href='#SkPath_readFromMemory_length'>length</a> is too small.
+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='#Fill_Type'>Fill Type</a>, <a href='#Verb_Array'>Verb Array</a>, <a href='#Point_Array'>Point Array</a>, <a href='#Conic_Weight'>Conic Weight</a>, and
-additionally reads computed information like <a href='#SkPath_Convexity'>Convexity</a> and bounds.
+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='#Path'>Path</a> in memory is not guaranteed.
+Used only in concert with <a href='#SkPath_writeToMemory'>writeToMemory</a>();
+the format used for <a href='SkPath_Reference#SkPath'>SkPath</a> in memory is not guaranteed.
 
 ### Parameters
 
 <table>  <tr>    <td><a name='SkPath_readFromMemory_buffer'><code><strong>buffer</strong></code></a></td>
-    <td>storage for <a href='#Path'>Path</a></td>
+    <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> size in bytes; must be multiple of 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>
 
@@ -4955,14 +4959,14 @@
 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 <a href='#Verb_Array'>Verb Array</a>, <a href='#Point_Array'>Point Array</a>, or <a href='#Conic_Weight'>Conic Weight</a> changes.
+if  <a href='#Verb_Array'>verb array</a>,  <a href='SkPath_Reference#Point_Array'>SkPoint array</a>, or  <a href='#Conic_Weight'>conic weight</a> changes.
 
-Setting <a href='#Fill_Type'>Fill Type</a> does not change <a href='#Generation_ID'>Generation ID</a>.
+Setting <a href='SkPath_Reference#SkPath'>SkPath</a>::<a href='#SkPath_FillType'>FillType</a> does not change generation identifier.
 
-Each time the path is modified, a different <a href='#Generation_ID'>Generation ID</a> will be returned.
-
-<a href='#Fill_Type'>Fill Type</a> does affect <a href='#Generation_ID'>Generation ID</a> on Android framework.
+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
 
@@ -4995,13 +4999,13 @@
 bool <a href='#SkPath_isValid'>isValid</a>() const
 </pre>
 
-Returns if <a href='#Path'>Path</a> data is consistent. Corrupt <a href='#Path'>Path</a> data is detected if
+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='#Path'>Path</a> data is consistent
+true if <a href='SkPath_Reference#SkPath'>SkPath</a> <a href='undocumented#Data'>data</a> is consistent
 
 <a name='SkPath_pathRefIsValid'></a>
 
@@ -5052,12 +5056,13 @@
 <a href='#SkPath_Iter_Iter'>Iter</a>()
 </pre>
 
-Initializes <a href='#SkPath_Iter_Iter'>Iter</a> with an empty <a href='#Path'>Path</a>. <a href='#SkPath_Iter_next'>next</a>() on <a href='#SkPath_Iter_Iter'>Iter</a> returns <a href='#SkPath_kDone_Verb'>kDone Verb</a>.
-Call <a href='#SkPath_Iter_setPath'>setPath</a> to initialize <a href='#SkPath_Iter_Iter'>Iter</a> at a later time.
+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> to initialize <a href='SkPath_Reference#SkPath'>SkPath</a>::<a href='#SkPath_Iter'>Iter</a> at a later time.
 
 ### Return Value
 
-<a href='#SkPath_Iter_Iter'>Iter</a> of empty <a href='#Path'>Path</a>
+<a href='SkPath_Reference#SkPath'>SkPath</a>::<a href='#SkPath_Iter'>Iter</a> of empty <a href='SkPath_Reference#SkPath'>SkPath</a>
 
 ### Example
 
@@ -5084,23 +5089,23 @@
 <a href='#SkPath_Iter_Iter'>Iter</a>(const <a href='#SkPath'>SkPath</a>& path, bool forceClose)
 </pre>
 
-Sets <a href='#SkPath_Iter_Iter'>Iter</a> to return elements of <a href='#Verb_Array'>Verb Array</a>, <a href='#Point_Array'>Point 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_Iter_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.
+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_Iter(const SkPath& path, bool forceClose)_path'>path</a>. If <a href='#SkPath_Iter_Iter(const SkPath& path, bool forceClose)_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_Iter(const SkPath& path, bool forceClose)_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='#Path'>Path</a> to iterate</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> generate <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_Iter_Iter'>Iter</a> of <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_Iter(const SkPath& path, bool forceClose)_path'>path</a>
 
 ### Example
 
@@ -5135,17 +5140,17 @@
 void <a href='#SkPath_Iter_setPath'>setPath</a>(const <a href='#SkPath'>SkPath</a>& path, bool forceClose)
 </pre>
 
-Sets <a href='#SkPath_Iter_Iter'>Iter</a> to return elements of <a href='#Verb_Array'>Verb Array</a>, <a href='#Point_Array'>Point 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_Iter_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.
+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='#Path'>Path</a> to iterate</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> generate <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>
 
@@ -5182,40 +5187,40 @@
 <a href='#SkPath_Verb'>Verb</a> <a href='#SkPath_Iter_next'>next</a>(<a href='SkPoint_Reference#SkPoint'>SkPoint</a> pts[4], bool doConsumeDegenerates = true, bool exact = false)
 </pre>
 
-Returns next <a href='#SkPath_Verb'>Verb</a> in <a href='#Verb_Array'>Verb Array</a>, and advances <a href='#SkPath_Iter_Iter'>Iter</a>.
-When <a href='#Verb_Array'>Verb Array</a> is exhausted, returns <a href='#SkPath_kDone_Verb'>kDone Verb</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#Point'>Points</a> are stored in <a href='#SkPath_Iter_next_pts'>pts</a>, depending on the returned <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> 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='#Quad'>Quads</a>, and <a href='#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='#Quad'>Quads</a>, and
-<a href='#Conic'>Conics</a> with zero lengths.
+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#Point'>Point</a> data describing returned <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='#Verb'>Verbs</a></td>
+    <td>if true, skip degenerate <a href='SkPath_Reference#Verb'>verbs</a></td>
   </tr>
   <tr>    <td><a name='SkPath_Iter_next_exact'><code><strong>exact</strong></code></a></td>
-    <td>skip zero length curves</td>
+    <td>skip  zero length <a href='undocumented#Curve'>curves</a></td>
   </tr>
 </table>
 
 ### Return Value
 
-next <a href='#SkPath_Verb'>Verb</a> from <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> 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>.
 
-skip degenerate if <a href='#SkPath_Iter_next_exact'>exact</a> skips the same as skip degenerate, but shows
+skip degenerate if exact skips the same as skip degenerate, but shows
 the very small <a href='undocumented#Line'>Line</a>.
 
 skip none shows all of the <a href='#Verb'>Verbs</a> and <a href='SkPoint_Reference#Point'>Points</a> in <a href='#Path'>Path</a>.
@@ -5261,14 +5266,14 @@
 <a href='undocumented#SkScalar'>SkScalar</a> <a href='#SkPath_Iter_conicWeight'>conicWeight</a>() const
 </pre>
 
-Returns <a href='#Conic_Weight'>Conic Weight</a> if <a href='#SkPath_Iter_next'>next</a>() returned <a href='#SkPath_kConic_Verb'>kConic Verb</a>.
+Returns  <a href='#Conic_Weight'>conic weight</a> 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>() has not been called, or <a href='#SkPath_Iter_next'>next</a>() did not return <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='#Conic_Weight'>Conic Weight</a> for <a href='#Conic'>Conic</a> <a href='SkPoint_Reference#Point'>Points</a> returned by <a href='#SkPath_Iter_next'>next</a>()
+<a href='#Conic_Weight'>conic weight</a> for conic <a href='SkPoint_Reference#SkPoint'>SkPoint</a> returned by <a href='#SkPath_Iter_next'>next()</a>
 
 ### Example
 
@@ -5297,16 +5302,16 @@
 bool <a href='#SkPath_Iter_isCloseLine'>isCloseLine</a>() const
 </pre>
 
-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 point returned by <a href='#SkPath_Iter_next'>next</a>() is
-also the start point of <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>() has not been called, or <a href='#SkPath_Iter_next'>next</a>() did not return <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> was generated by <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
 
@@ -5338,13 +5343,13 @@
 bool <a href='#SkPath_Iter_isClosedContour'>isClosedContour</a>() const
 </pre>
 
-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_Iter_Iter'>Iter</a> is processing may end with <a href='#SkPath_kClose_Verb'>kClose Verb</a>, or
-<a href='#SkPath_Iter_Iter'>Iter</a> may have been initialized with force close set to true.
+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> is closed
+true if <a href='SkPath_Overview#Contour'>contour</a> is closed
 
 ### Example
 
@@ -5392,12 +5397,12 @@
 <a href='#SkPath_RawIter_RawIter'>RawIter</a>()
 </pre>
 
-Initializes <a href='#SkPath_RawIter_RawIter'>RawIter</a> with an empty <a href='#Path'>Path</a>. <a href='#SkPath_RawIter_next'>next</a>() on <a href='#SkPath_RawIter_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_Iter'>SkPath::Iter</a> at a later time.
+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'>RawIter</a> of empty <a href='#Path'>Path</a>
+<a href='#SkPath_RawIter'>RawIter</a> of empty <a href='SkPath_Reference#SkPath'>SkPath</a>
 
 <a name='SkPath_RawIter_copy_const_SkPath'></a>
 
@@ -5407,18 +5412,18 @@
 <a href='#SkPath_RawIter_RawIter'>RawIter</a>(const <a href='#SkPath'>SkPath</a>& path)
 </pre>
 
-Sets <a href='#SkPath_RawIter_RawIter'>RawIter</a> to return elements of <a href='#Verb_Array'>Verb Array</a>, <a href='#Point_Array'>Point Array</a>, and <a href='#Conic_Weight'>Conic Weight</a> in <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_RawIter(const SkPath& path)_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='#Path'>Path</a> to iterate</td>
+    <td><a href='SkPath_Reference#SkPath'>SkPath</a> to iterate</td>
   </tr>
 </table>
 
 ### Return Value
 
-<a href='#SkPath_RawIter_RawIter'>RawIter</a> of <a href='#SkPath_RawIter_copy_const_SkPath_path'>path</a>
+<a href='#SkPath_RawIter'>RawIter</a> of <a href='#SkPath_RawIter_RawIter(const SkPath& path)_path'>path</a>
 
 <a name='SkPath_RawIter_setPath'></a>
 
@@ -5428,12 +5433,13 @@
 void <a href='#SkPath_RawIter_setPath'>setPath</a>(const <a href='#SkPath'>SkPath</a>& path)
 </pre>
 
-Sets <a href='#SkPath_Iter'>SkPath::Iter</a> to return elements of <a href='#Verb_Array'>Verb Array</a>, <a href='#Point_Array'>Point Array</a>, and <a href='#Conic_Weight'>Conic Weight</a> in <a href='#SkPath_RawIter_setPath_path'>path</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='#Path'>Path</a> to iterate</td>
+    <td><a href='SkPath_Reference#SkPath'>SkPath</a> to iterate</td>
   </tr>
 </table>
 
@@ -5445,20 +5451,20 @@
 <a href='#SkPath_Verb'>Verb</a> <a href='#SkPath_RawIter_next'>next</a>(<a href='SkPoint_Reference#SkPoint'>SkPoint</a> pts[4])
 </pre>
 
-Returns next <a href='#SkPath_Verb'>Verb</a> in <a href='#Verb_Array'>Verb Array</a>, and advances <a href='#SkPath_RawIter_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#Point'>Points</a> are stored in <a href='#SkPath_RawIter_next_pts'>pts</a>, depending on the returned <a href='#SkPath_Verb'>Verb</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> 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#Point'>Point</a> data describing returned <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_Verb'>Verb</a> from <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
 
@@ -5491,11 +5497,11 @@
 <a href='#SkPath_Verb'>Verb</a> <a href='#SkPath_RawIter_peek'>peek</a>() const
 </pre>
 
-Returns next <a href='#SkPath_Verb'>Verb</a>, but does not advance <a href='#SkPath_RawIter_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_Verb'>Verb</a> from <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
 
@@ -5515,11 +5521,6 @@
 
 </fiddle-embed></div>
 
-StdOut is not really volatile, it just produces the wrong result.
-A simple fix changes the output of hairlines and needs to be
-investigated to see if the change is correct or not.
-see change 21340 (abandoned for now)
-
 ### See Also
 
 <a href='#SkPath_RawIter_next'>next</a>
@@ -5532,14 +5533,14 @@
 <a href='undocumented#SkScalar'>SkScalar</a> <a href='#SkPath_RawIter_conicWeight'>conicWeight</a>() const
 </pre>
 
-Returns <a href='#Conic_Weight'>Conic Weight</a> if <a href='#SkPath_RawIter_next'>next</a>() returned <a href='#SkPath_kConic_Verb'>kConic Verb</a>.
+Returns  <a href='#Conic_Weight'>conic weight</a> 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>() has not been called, or <a href='#SkPath_RawIter_next'>next</a>() did not return <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='#Conic_Weight'>Conic Weight</a> for <a href='#Conic'>Conic</a> <a href='SkPoint_Reference#Point'>Points</a> returned by <a href='#SkPath_RawIter_next'>next</a>()
+<a href='#Conic_Weight'>conic weight</a> for conic <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 93771c9..c4e48aa 100644
--- a/site/user/api/SkPicture_Reference.md
+++ b/site/user/api/SkPicture_Reference.md
@@ -104,15 +104,15 @@
 virtual bool <a href='#SkPicture_AbortCallback_abort'>abort</a>() = 0
 </pre>
 
-Stops <a href='#Picture'>Picture</a> playback when some condition is met. A subclass of
-<a href='#SkPicture_AbortCallback_AbortCallback'>AbortCallback</a> provides an override for <a href='#SkPicture_AbortCallback_abort'>abort</a>() that can stop <a href='#SkPicture_playback'>SkPicture::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>::playback.
 
-The part of <a href='#Picture'>Picture</a> drawn when aborted is undefined. <a href='#Picture'>Picture</a> instantiations are
-free to stop drawing at different points during playback.
+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_save'>SkCanvas::save</a>(), stack
-of <a href='SkCanvas_Reference#Matrix'>Canvas Matrix</a> and <a href='SkCanvas_Reference#Clip'>Canvas Clip</a> values is restored to its state before
-<a href='#SkPicture_playback'>SkPicture::playback</a> was called.
+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>::playback was called.
 
 ### Return Value
 
@@ -136,28 +136,28 @@
 static <a href='undocumented#sk_sp'>sk sp</a>&lt;<a href='#SkPicture'>SkPicture</a>&gt; <a href='#SkPicture_MakeFromStream'>MakeFromStream</a>(<a href='SkStream_Reference#SkStream'>SkStream</a>* stream, const <a href='undocumented#SkDeserialProcs'>SkDeserialProcs</a>* procs = nullptr)
 </pre>
 
-Recreates <a href='#Picture'>Picture</a> that was serialized into a <a href='#SkPicture_MakeFromStream_stream'>stream</a>. Returns constructed <a href='#Picture'>Picture</a>
-if successful; otherwise, returns nullptr. Fails if data does not permit
-constructing valid <a href='#Picture'>Picture</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>.fPictureProc permits supplying a custom function to decode <a href='#Picture'>Picture</a>.
-If <a href='#SkPicture_MakeFromStream_procs'>procs</a>.fPictureProc is nullptr, default decoding is used. <a href='#SkPicture_MakeFromStream_procs'>procs</a>.fPictureCtx
-may be used to provide user context to <a href='#SkPicture_MakeFromStream_procs'>procs</a>.fPictureProc; <a href='#SkPicture_MakeFromStream_procs'>procs</a>.fPictureProc
-is called with a pointer to data, data byte length, and user context.
+<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> byte length, and user context.
 
 ### Parameters
 
 <table>  <tr>    <td><a name='SkPicture_MakeFromStream_stream'><code><strong>stream</strong></code></a></td>
-    <td>container for serial data</td>
+    <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 data decoders; may be nullptr</td>
+    <td>custom serial <a href='undocumented#Data'>data</a> decoders; may be nullptr</td>
   </tr>
 </table>
 
 ### Return Value
 
-<a href='#Picture'>Picture</a> constructed from <a href='#SkPicture_MakeFromStream_stream'>stream</a> data
+<a href='SkPicture_Reference#SkPicture'>SkPicture</a> constructed from <a href='#SkPicture_MakeFromStream_stream'>stream</a> <a href='undocumented#Data'>data</a>
 
 ### Example
 
@@ -175,13 +175,13 @@
 static <a href='undocumented#sk_sp'>sk sp</a>&lt;<a href='#SkPicture'>SkPicture</a>&gt; <a href='#SkPicture_MakeFromData'>MakeFromData</a>(const <a href='undocumented#SkData'>SkData</a>* data, const <a href='undocumented#SkDeserialProcs'>SkDeserialProcs</a>* procs = nullptr)
 </pre>
 
-Recreates <a href='#Picture'>Picture</a> that was serialized into <a href='#SkPicture_MakeFromData_data'>data</a>. Returns constructed <a href='#Picture'>Picture</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='#Picture'>Picture</a>.
+constructing valid <a href='SkPicture_Reference#SkPicture'>SkPicture</a>.
 
-<a href='#SkPicture_MakeFromData_procs'>procs</a>.fPictureProc permits supplying a custom function to decode <a href='#Picture'>Picture</a>.
-If <a href='#SkPicture_MakeFromData_procs'>procs</a>.fPictureProc is nullptr, default decoding is used. <a href='#SkPicture_MakeFromData_procs'>procs</a>.fPictureCtx
-may be used to provide user context to <a href='#SkPicture_MakeFromData_procs'>procs</a>.fPictureProc; <a href='#SkPicture_MakeFromData_procs'>procs</a>.fPictureProc
+<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> byte length, and user context.
 
 ### Parameters
@@ -196,7 +196,7 @@
 
 ### Return Value
 
-<a href='#Picture'>Picture</a> constructed from <a href='#SkPicture_MakeFromData_data'>data</a>
+<a href='SkPicture_Reference#SkPicture'>SkPicture</a> constructed from <a href='#SkPicture_MakeFromData_data'>data</a>
 
 ### Example
 
@@ -226,20 +226,11 @@
   <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> decoders; may be nullptr</td>
   </tr>
-Recreates <a href='#Picture'>Picture</a> that was serialized into <a href='#SkPicture_MakeFromData_2_data'>data</a>. Returns constructed <a href='#Picture'>Picture</a>
-if successful; otherwise, returns nullptr. Fails if <a href='#SkPicture_MakeFromData_2_size'>size</a> is smaller than
-required <a href='#SkPicture_MakeFromData_2_data'>data</a> length, or if <a href='#SkPicture_MakeFromData_2_data'>data</a> does not permit constructing valid <a href='#Picture'>Picture</a>.
-
-<a href='#SkPicture_MakeFromData_2_procs'>procs</a>.fPictureProc permits supplying a custom function to decode <a href='#Picture'>Picture</a>.
-If <a href='#SkPicture_MakeFromData_2_procs'>procs</a>.fPictureProc is nullptr, default decoding is used. <a href='#SkPicture_MakeFromData_2_procs'>procs</a>.fPictureCtx
-may be used to provide user context to <a href='#SkPicture_MakeFromData_2_procs'>procs</a>.fPictureProc; <a href='#SkPicture_MakeFromData_2_procs'>procs</a>.fPictureProc
-is called with a pointer to <a href='#SkPicture_MakeFromData_2_data'>data</a>, <a href='#SkPicture_MakeFromData_2_data'>data</a> byte length, and user context.
-
 </table>
 
 ### Return Value
 
-<a href='#Picture'>Picture</a> constructed from <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
 
@@ -257,11 +248,11 @@
 virtual void <a href='#SkPicture_playback'>playback</a>(<a href='SkCanvas_Reference#SkCanvas'>SkCanvas</a>* canvas, <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>. In the case that the
-commands are recorded, each command in the <a href='#Picture'>Picture</a> is sent separately to <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='#Picture'>Picture</a> to recording <a href='#SkPicture_playback_canvas'>canvas</a>, call
-<a href='SkCanvas_Reference#SkCanvas_drawPicture'>SkCanvas::drawPicture</a> instead.
+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
 
@@ -289,16 +280,16 @@
 virtual <a href='SkRect_Reference#SkRect'>SkRect</a> <a href='#SkPicture_cullRect'>cullRect</a>() const = 0
 </pre>
 
-Returns cull <a href='SkRect_Reference#Rect'>Rect</a> for this picture, passed in when <a href='#Picture'>Picture</a> was created.
-Returned <a href='SkRect_Reference#Rect'>Rect</a> does not specify clipping <a href='SkRect_Reference#Rect'>Rect</a> for <a href='#Picture'>Picture</a>; cull is hint
-of <a href='#Picture'>Picture</a> bounds.
+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='#Picture'>Picture</a> is free to discard recorded drawing commands that fall outside
+<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='#Picture'>Picture</a> was created
+bounds passed when <a href='SkPicture_Reference#SkPicture'>SkPicture</a> was created
 
 ### Example
 
@@ -318,11 +309,11 @@
 uint32_t <a href='#SkPicture_uniqueID'>uniqueID</a>() const
 </pre>
 
-Returns a non-zero value unique among <a href='#Picture'>Pictures</a> in Skia process.
+Returns a non-zero value unique among <a href='SkPicture_Reference#SkPicture'>SkPicture</a> in Skia process.
 
 ### Return Value
 
-identifier for <a href='#Picture'>Picture</a>
+identifier for <a href='SkPicture_Reference#SkPicture'>SkPicture</a>
 
 ### Example
 
@@ -349,24 +340,24 @@
 <a href='undocumented#sk_sp'>sk sp</a>&lt;<a href='undocumented#SkData'>SkData</a>&gt; <a href='#SkPicture_serialize'>serialize</a>(const <a href='undocumented#SkSerialProcs'>SkSerialProcs</a>* procs = nullptr) const
 </pre>
 
-Returns storage containing <a href='undocumented#Data'>Data</a> describing <a href='#Picture'>Picture</a>, using optional custom
+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>.fPictureProc permits supplying a custom function to encode <a href='#Picture'>Picture</a>.
-If <a href='#SkPicture_serialize_procs'>procs</a>.fPictureProc is nullptr, default encoding is used. <a href='#SkPicture_serialize_procs'>procs</a>.fPictureCtx
-may be used to provide user context to <a href='#SkPicture_serialize_procs'>procs</a>.fPictureProc; <a href='#SkPicture_serialize_procs'>procs</a>.fPictureProc
-is called with a pointer to <a href='#Picture'>Picture</a> and user context.
+<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> and user context.
 
 ### Parameters
 
 <table>  <tr>    <td><a name='SkPicture_serialize_procs'><code><strong>procs</strong></code></a></td>
-    <td>custom serial data encoders; may be nullptr</td>
+    <td>custom serial <a href='undocumented#Data'>data</a> encoders; may be nullptr</td>
   </tr>
 </table>
 
 ### Return Value
 
-storage containing serialized <a href='#Picture'>Picture</a>
+storage containing serialized <a href='SkPicture_Reference#SkPicture'>SkPicture</a>
 
 ### Example
 
@@ -384,20 +375,20 @@
 void <a href='#SkPicture_serialize'>serialize</a>(<a href='SkWStream_Reference#SkWStream'>SkWStream</a>* stream, const <a href='undocumented#SkSerialProcs'>SkSerialProcs</a>* procs = nullptr) const
 </pre>
 
-Writes picture to <a href='#SkPicture_serialize_2_stream'>stream</a>, using optional custom encoders.
+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>.fPictureProc permits supplying a custom function to encode <a href='#Picture'>Picture</a>.
-If <a href='#SkPicture_serialize_2_procs'>procs</a>.fPictureProc is nullptr, default encoding is used. <a href='#SkPicture_serialize_2_procs'>procs</a>.fPictureCtx
-may be used to provide user context to <a href='#SkPicture_serialize_2_procs'>procs</a>.fPictureProc; <a href='#SkPicture_serialize_2_procs'>procs</a>.fPictureProc
-is called with a pointer to <a href='#Picture'>Picture</a> and user context.
+<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> and user context.
 
 ### Parameters
 
 <table>  <tr>    <td><a name='SkPicture_serialize_2_stream'><code><strong>stream</strong></code></a></td>
-    <td>writable serial data <a href='#SkPicture_serialize_2_stream'>stream</a></td>
+    <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 data encoders; may be nullptr</td>
+    <td>custom serial <a href='undocumented#Data'>data</a> encoders; may be nullptr</td>
   </tr>
 </table>
 
@@ -417,12 +408,12 @@
 static <a href='undocumented#sk_sp'>sk sp</a>&lt;<a href='#SkPicture'>SkPicture</a>&gt; <a href='#SkPicture_MakePlaceholder'>MakePlaceholder</a>(<a href='SkRect_Reference#SkRect'>SkRect</a> cull)
 </pre>
 
-Returns a placeholder <a href='#SkPicture'>SkPicture</a>. Result does not draw, and contains only
-<a href='#SkPicture_MakePlaceholder_cull'>cull</a> <a href='SkRect_Reference#Rect'>Rect</a>, a hint of its bounds. Result is immutable; it cannot be changed
+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#Canvas'>Canvas</a> draw stream.
+commands into <a href='SkCanvas_Reference#SkCanvas'>SkCanvas</a> draw <a href='SkStream_Reference#Stream'>stream</a>.
 
 ### Parameters
 
@@ -451,7 +442,7 @@
 virtual int <a href='#SkPicture_approximateOpCount'>approximateOpCount</a>() const = 0
 </pre>
 
-Returns the approximate number of operations in <a href='#Picture'>Picture</a>. Returned value
+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.
@@ -476,12 +467,12 @@
 virtual size_t <a href='#SkPicture_approximateBytesUsed'>approximateBytesUsed</a>() const = 0
 </pre>
 
-Returns the approximate byte size of <a href='#Picture'>Picture</a>. Does not include large objects
-referenced by <a href='#Picture'>Picture</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
 
-approximate size
+approximate <a href='undocumented#Size'>size</a>
 
 ### Example
 
diff --git a/site/user/api/SkPixmap_Reference.md b/site/user/api/SkPixmap_Reference.md
index 1dc58fe..89c847e 100644
--- a/site/user/api/SkPixmap_Reference.md
+++ b/site/user/api/SkPixmap_Reference.md
@@ -83,14 +83,14 @@
 <a href='#SkPixmap'>SkPixmap</a>()
 </pre>
 
-Creates an empty <a href='#Pixmap'>Pixmap</a> without pixels, with <a href='SkImageInfo_Reference#kUnknown_SkColorType'>kUnknown_SkColorType</a>, with
+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='#Pixmap'>Pixmap</a> has been created.
+<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
 
-empty <a href='#Pixmap'>Pixmap</a>
+empty <a href='SkPixmap_Reference#SkPixmap'>SkPixmap</a>
 
 ### Example
 
@@ -117,35 +117,35 @@
 <a href='#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='#Pixmap'>Pixmap</a> from info width, height, <a href='SkImageInfo_Reference#SkAlphaType'>SkAlphaType</a>, and <a href='SkImageInfo_Reference#SkColorType'>SkColorType</a>.
-addr points to pixels, or nullptr. <a href='#SkPixmap_rowBytes'>rowBytes</a> should be info.<a href='#SkPixmap_width'>width</a>() times
-info.bytesPerPixel(), or larger.
+Creates <a href='SkPixmap_Reference#SkPixmap'>SkPixmap</a> from <a href='#SkPixmap_SkPixmap(const SkImageInfo& info, const void* addr, size_t rowBytes)_info'>info</a> width, height, <a href='SkImageInfo_Reference#SkAlphaType'>SkAlphaType</a>, and <a href='SkImageInfo_Reference#SkColorType'>SkColorType</a>.
+<a href='#SkPixmap_SkPixmap(const SkImageInfo& info, const void* addr, size_t rowBytes)_addr'>addr</a> <a href='SkPoint_Reference#Point'>points</a> to pixels, or nullptr. <a href='#SkPixmap_SkPixmap(const SkImageInfo& info, const void* addr, size_t rowBytes)_rowBytes'>rowBytes</a> should be <a href='#SkPixmap_SkPixmap(const SkImageInfo& info, const void* addr, size_t rowBytes)_info'>info</a>.<a href='#SkImageInfo_width'>width()</a> times
+<a href='#SkPixmap_SkPixmap(const SkImageInfo& info, const void* addr, size_t rowBytes)_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
-addr and <a href='#SkPixmap_rowBytes'>rowBytes</a> agree with info.
+<a href='#SkPixmap_SkPixmap(const SkImageInfo& info, const void* addr, size_t rowBytes)_addr'>addr</a> and <a href='#SkPixmap_SkPixmap(const SkImageInfo& info, const void* addr, size_t rowBytes)_rowBytes'>rowBytes</a> agree with <a href='#SkPixmap_SkPixmap(const SkImageInfo& info, const void* addr, size_t rowBytes)_info'>info</a>.
 
-The memory lifetime of pixels is managed by the caller. When <a href='#Pixmap'>Pixmap</a> goes
-out of scope, addr is unaffected.
+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_SkPixmap(const SkImageInfo& info, const void* addr, size_t rowBytes)_addr'>addr</a> is unaffected.
 
-<a href='#Pixmap'>Pixmap</a> may be later modified by <a href='#SkPixmap_reset'>reset</a>() to change its size, pixel type, or
+<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> of <a href='SkImageInfo_Reference#Image_Info'>Image Info</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>size of one row of addr; width times pixel size, or larger</td>
+    <td><a href='undocumented#Size'>size</a> of one row of <a href='#SkPixmap_SkPixmap(const SkImageInfo& info, const void* addr, size_t rowBytes)_addr'>addr</a>; width times <a href='undocumented#Pixel'>pixel</a> <a href='undocumented#Size'>size</a>, or larger</td>
   </tr>
 </table>
 
 ### Return Value
 
-initialized <a href='#Pixmap'>Pixmap</a>
+initialized <a href='SkPixmap_Reference#SkPixmap'>SkPixmap</a>
 
 ### Example
 
@@ -174,7 +174,7 @@
 void <a href='#SkPixmap_reset'>reset</a>()
 </pre>
 
-Sets width, height, row bytes to zero; pixel address to nullptr; <a href='SkImageInfo_Reference#SkColorType'>SkColorType</a> to
+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
@@ -205,27 +205,27 @@
 void <a href='#SkPixmap_reset'>reset</a>(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>, and <a href='SkImageInfo_Reference#SkColorType'>SkColorType</a> from info.
-Sets pixel address from addr, which may be nullptr.
-Sets row bytes from <a href='#SkPixmap_rowBytes'>rowBytes</a>, which should be info.<a href='#SkPixmap_width'>width</a>() times
-info.bytesPerPixel(), or larger.
+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 addr. Asserts if built with SK_DEBUG defined and if <a href='#SkPixmap_rowBytes'>rowBytes</a> is
+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='#Pixmap'>Pixmap</a> goes
-out of scope, addr is unaffected.
+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> of <a href='SkImageInfo_Reference#Image_Info'>Image Info</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>size of one row of addr; width times pixel size, or larger</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>
 
@@ -245,14 +245,14 @@
 void <a href='#SkPixmap_setColorSpace'>setColorSpace</a>(<a href='undocumented#sk_sp'>sk sp</a>&lt;<a href='undocumented#SkColorSpace'>SkColorSpace</a>&gt; <a href='#SkPixmap_colorSpace'>colorSpace</a>)
 </pre>
 
-Changes <a href='undocumented#Color_Space'>Color Space</a> in <a href='SkImageInfo_Reference#Image_Info'>Image Info</a>; preserves width, height, <a href='SkImageInfo_Reference#SkAlphaType'>SkAlphaType</a>, and
-<a href='SkImageInfo_Reference#SkColorType'>SkColorType</a> in <a href='SkImage_Reference#Image'>Image</a>, and leaves pixel address and row bytes unchanged.
-<a href='undocumented#Color_Space'>Color Space</a> reference count is incremented.
+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#Color_Space'>Color Space</a> moved to <a href='SkImageInfo_Reference#Image_Info'>Image Info</a></td>
+    <td><a href='undocumented#SkColorSpace'>SkColorSpace</a> moved to <a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a></td>
   </tr>
 </table>
 
@@ -291,7 +291,7 @@
 bool <a href='#SkPixmap_extractSubset'>extractSubset</a>(<a href='#SkPixmap'>SkPixmap</a>* subset, const <a href='SkIRect_Reference#SkIRect'>SkIRect</a>& area) const
 </pre>
 
-Sets <a href='#SkPixmap_extractSubset_subset'>subset</a> width, height, pixel address to intersection of <a href='#Pixmap'>Pixmap</a> with <a href='#SkPixmap_extractSubset_area'>area</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.
 
@@ -300,16 +300,16 @@
 ### Parameters
 
 <table>  <tr>    <td><a name='SkPixmap_extractSubset_subset'><code><strong>subset</strong></code></a></td>
-    <td>storage for width, height, pixel address of intersection</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='#Pixmap'>Pixmap</a></td>
+    <td>bounds to intersect with <a href='SkPixmap_Reference#SkPixmap'>SkPixmap</a></td>
   </tr>
 </table>
 
 ### Return Value
 
-true if intersection of <a href='#Pixmap'>Pixmap</a> and <a href='#SkPixmap_extractSubset_area'>area</a> is not empty
+true if intersection of <a href='SkPixmap_Reference#SkPixmap'>SkPixmap</a> and <a href='#SkPixmap_extractSubset_area'>area</a> is not empty
 
 ### Example
 
@@ -329,11 +329,11 @@
 const <a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a>& <a href='#SkPixmap_info'>info</a>() const
 </pre>
 
-Returns width, height, <a href='SkImageInfo_Reference#Alpha_Type'>Alpha Type</a>, <a href='SkImageInfo_Reference#Color_Type'>Color Type</a>, and <a href='undocumented#Color_Space'>Color Space</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
 
-reference to ImageInfo
+reference to <a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a>
 
 ### Example
 
@@ -394,13 +394,13 @@
 const void* <a href='#SkPixmap_addr'>addr</a>() const
 </pre>
 
-Returns pixel address, the base address corresponding to the pixel origin.
+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='#Pixmap'>Pixmap</a> creator to ensure that pixel address is a useful value.
+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
 
-pixel address
+<a href='undocumented#Pixel'>pixel</a> address
 
 ### Example
 
@@ -460,11 +460,11 @@
 int <a href='#SkPixmap_height'>height</a>() const
 </pre>
 
-Returns pixel row count.
+Returns <a href='undocumented#Pixel'>pixel</a> row count.
 
 ### Return Value
 
-pixel height in <a href='SkImageInfo_Reference#Image_Info'>Image Info</a>
+<a href='undocumented#Pixel'>pixel</a> height in <a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a>
 
 ### Example
 
@@ -554,13 +554,13 @@
 <a href='undocumented#SkColorSpace'>SkColorSpace</a>* <a href='#SkPixmap_colorSpace'>colorSpace</a>() const
 </pre>
 
-Returns <a href='undocumented#Color_Space'>Color Space</a>, the range of colors, associated with <a href='SkImageInfo_Reference#Image_Info'>Image Info</a>. The
-reference count of <a href='undocumented#Color_Space'>Color Space</a> is unchanged. The returned <a href='undocumented#Color_Space'>Color Space</a> is
+Returns <a href='undocumented#SkColorSpace'>SkColorSpace</a>, the range of colors, associated with <a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a>. The
+<a href='undocumented#Reference_Count'>reference count</a> of <a href='undocumented#SkColorSpace'>SkColorSpace</a> is unchanged. The returned <a href='undocumented#SkColorSpace'>SkColorSpace</a> is
 immutable.
 
 ### Return Value
 
-<a href='undocumented#Color_Space'>Color Space</a> in <a href='SkImageInfo_Reference#Image_Info'>Image Info</a>, or nullptr
+<a href='undocumented#SkColorSpace'>SkColorSpace</a> in <a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a>, or nullptr
 
 ### Example
 
@@ -588,13 +588,13 @@
 bool <a href='#SkPixmap_isOpaque'>isOpaque</a>() const
 </pre>
 
-Returns true if <a href='SkImageInfo_Reference#Alpha_Type'>Alpha Type</a> is <a href='SkImageInfo_Reference#kOpaque_SkAlphaType'>kOpaque_SkAlphaType</a>.
-Does not check if <a href='SkImageInfo_Reference#Color_Type'>Color Type</a> allows <a href='SkColor_Reference#Alpha'>Alpha</a>, or if any pixel value has
+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#Image_Info'>Image Info</a> has opaque <a href='SkImageInfo_Reference#Alpha_Type'>Alpha Type</a>
+true if <a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a> has opaque <a href='SkImageInfo_Reference#SkAlphaType'>SkAlphaType</a>
 
 ### Example
 
@@ -624,11 +624,11 @@
 <a href='SkIRect_Reference#SkIRect'>SkIRect</a> <a href='#SkPixmap_bounds'>bounds</a>() const
 </pre>
 
-Returns <a href='SkIRect_Reference#IRect'>IRect</a> { 0, 0, <a href='#SkPixmap_width'>width</a>(), <a href='#SkPixmap_height'>height</a>() }.
+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>() and <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
 
@@ -658,7 +658,7 @@
 </pre>
 
 Returns number of pixels that fit on row. Should be greater than or equal to
-<a href='#SkPixmap_width'>width</a>().
+<a href='#SkPixmap_width'>width()</a>.
 
 ### Return Value
 
@@ -730,15 +730,15 @@
 size_t <a href='#SkPixmap_computeByteSize'>computeByteSize</a>() const
 </pre>
 
-Returns minimum memory required for pixel storage.
-Does not include unused memory on last row when <a href='#SkPixmap_rowBytesAsPixels'>rowBytesAsPixels</a> exceeds <a href='#SkPixmap_width'>width</a>().
+Returns minimum memory required for  <a href='undocumented#Pixel_Storage'>pixel storage</a>.
+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>() 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>.
+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
 
-size in bytes of image buffer
+<a href='undocumented#Size'>size</a> in bytes of <a href='SkImage_Reference#Image'>image</a> buffer
 
 ### Example
 
@@ -774,23 +774,23 @@
 bool <a href='#SkPixmap_computeIsOpaque'>computeIsOpaque</a>() const
 </pre>
 
-Returns true if all pixels are opaque. <a href='SkImageInfo_Reference#Color_Type'>Color Type</a> determines how pixels
-are encoded, and whether pixel describes <a href='SkColor_Reference#Alpha'>Alpha</a>. Returns true for <a href='SkImageInfo_Reference#Color_Type'>Color Types</a>
-without alpha in each pixel; for other <a href='SkImageInfo_Reference#Color_Type'>Color Types</a>, returns true if all
-pixels have alpha values equivalent to 1.0 or greater.
+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#Color_Type'>Color Types</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#Color_Type'>Color Types</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>: returns true if all pixel <a href='SkColor_Reference#Alpha'>Alpha</a> values are 255.
-For <a href='SkImageInfo_Reference#Color_Type'>Color Type</a> <a href='SkImageInfo_Reference#kARGB_4444_SkColorType'>kARGB_4444_SkColorType</a>: returns true if all pixel <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 pixel <a href='SkColor_Reference#Alpha'>Alpha</a> values are 1.0 or
+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>: 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#Color_Type'>Color Type</a> is opaque
+true if all pixels have opaque values or <a href='SkImageInfo_Reference#SkColorType'>SkColorType</a> is opaque
 
 ### Example
 
@@ -819,31 +819,31 @@
 <a href='SkColor_Reference#SkColor'>SkColor</a> <a href='#SkPixmap_getColor'>getColor</a>(int x, int y) const
 </pre>
 
-Returns pixel 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#Color_Type'>Color Type</a> is <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> 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#Color_Type'>Color Type</a> is <a href='SkImageInfo_Reference#kUnknown_SkColorType'>kUnknown_SkColorType</a> or
-pixel address is nullptr.
+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#Color_Space'>Color Space</a> in <a href='SkImageInfo_Reference#Image_Info'>Image Info</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 pixel data may have additional
+<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
 
 <table>  <tr>    <td><a name='SkPixmap_getColor_x'><code><strong>x</strong></code></a></td>
-    <td>column index, zero or greater, and less than <a href='#SkPixmap_width'>width</a>()</td>
+    <td>column index, zero or greater, and less than <a href='#SkPixmap_width'>width()</a></td>
   </tr>
   <tr>    <td><a name='SkPixmap_getColor_y'><code><strong>y</strong></code></a></td>
-    <td>row index, zero or greater, and less than <a href='#SkPixmap_height'>height</a>()</td>
+    <td>row index, zero or greater, and less than <a href='#SkPixmap_height'>height()</a></td>
   </tr>
 </table>
 
 ### Return Value
 
-pixel converted to <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
 
@@ -910,27 +910,27 @@
 const void* <a href='#SkPixmap_addr'>addr</a>(int x, int y) const
 </pre>
 
-Returns readable pixel address at (<a href='#SkPixmap_addr_2_x'>x</a>, <a href='#SkPixmap_addr_2_y'>y</a>). Returns nullptr if <a href='undocumented#Pixel_Ref'>Pixel Ref</a> is nullptr.
+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> 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#Color_Type'>Color Type</a> is <a href='SkImageInfo_Reference#kUnknown_SkColorType'>kUnknown_SkColorType</a>.
+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 pixel size; 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>.
+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
 
 <table>  <tr>    <td><a name='SkPixmap_addr_2_x'><code><strong>x</strong></code></a></td>
-    <td>column index, zero or greater, and less than <a href='#SkPixmap_width'>width</a>()</td>
+    <td>column index, zero or greater, and less than <a href='#SkPixmap_width'>width()</a></td>
   </tr>
   <tr>    <td><a name='SkPixmap_addr_2_y'><code><strong>y</strong></code></a></td>
-    <td>row index, zero or greater, and less than <a href='#SkPixmap_height'>height</a>()</td>
+    <td>row index, zero or greater, and less than <a href='#SkPixmap_height'>height()</a></td>
   </tr>
 </table>
 
 ### Return Value
 
-readable generic pointer to pixel
+readable generic pointer to <a href='undocumented#Pixel'>pixel</a>
 
 ### Example
 
@@ -956,11 +956,11 @@
 const uint8_t* <a href='#SkPixmap_addr8'>addr8</a>() const
 </pre>
 
-Returns readable base pixel address. Result is addressable as unsigned 8-bit bytes.
-Will trigger an assert() if <a href='SkImageInfo_Reference#Color_Type'>Color Type</a> is not <a href='SkImageInfo_Reference#kAlpha_8_SkColorType'>kAlpha_8_SkColorType</a> or
+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 pixel.
+One byte corresponds to one <a href='undocumented#Pixel'>pixel</a>.
 
 ### Return Value
 
@@ -990,11 +990,11 @@
 const uint16_t* <a href='#SkPixmap_addr16'>addr16</a>() const
 </pre>
 
-Returns readable base pixel address. Result is addressable as unsigned 16-bit words.
-Will trigger an assert() if <a href='SkImageInfo_Reference#Color_Type'>Color Type</a> is not <a href='SkImageInfo_Reference#kRGB_565_SkColorType'>kRGB_565_SkColorType</a> or
+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 pixel.
+One word corresponds to one <a href='undocumented#Pixel'>pixel</a>.
 
 ### Return Value
 
@@ -1024,11 +1024,11 @@
 const uint32_t* <a href='#SkPixmap_addr32'>addr32</a>() const
 </pre>
 
-Returns readable base pixel address. Result is addressable as unsigned 32-bit words.
-Will trigger an assert() if <a href='SkImageInfo_Reference#Color_Type'>Color Type</a> is not <a href='SkImageInfo_Reference#kRGBA_8888_SkColorType'>kRGBA_8888_SkColorType</a> or
+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 pixel.
+One word corresponds to one <a href='undocumented#Pixel'>pixel</a>.
 
 ### Return Value
 
@@ -1058,11 +1058,11 @@
 const uint64_t* <a href='#SkPixmap_addr64'>addr64</a>() const
 </pre>
 
-Returns readable base pixel address. Result is addressable as unsigned 64-bit words.
-Will trigger an assert() if <a href='SkImageInfo_Reference#Color_Type'>Color Type</a> is not <a href='SkImageInfo_Reference#kRGBA_F16_SkColorType'>kRGBA_F16_SkColorType</a> and is built
+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 pixel.
+One word corresponds to one <a href='undocumented#Pixel'>pixel</a>.
 
 ### Return Value
 
@@ -1092,12 +1092,12 @@
 const uint16_t* <a href='#SkPixmap_addrF16'>addrF16</a>() const
 </pre>
 
-Returns readable base pixel address. Result is addressable as unsigned 16-bit words.
-Will trigger an assert() if <a href='SkImageInfo_Reference#Color_Type'>Color Type</a> is not <a href='SkImageInfo_Reference#kRGBA_F16_SkColorType'>kRGBA_F16_SkColorType</a> and is built
+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 color component encoded as a half float.
-Four words correspond to one pixel.
+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
 
@@ -1127,27 +1127,27 @@
 const uint8_t* <a href='#SkPixmap_addr8'>addr8</a>(int x, int y) const
 </pre>
 
-Returns readable pixel address at (<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> 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#Color_Type'>Color Type</a> is not <a href='SkImageInfo_Reference#kAlpha_8_SkColorType'>kAlpha_8_SkColorType</a> or
+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
 
 <table>  <tr>    <td><a name='SkPixmap_addr8_2_x'><code><strong>x</strong></code></a></td>
-    <td>column index, zero or greater, and less than <a href='#SkPixmap_width'>width</a>()</td>
+    <td>column index, zero or greater, and less than <a href='#SkPixmap_width'>width()</a></td>
   </tr>
   <tr>    <td><a name='SkPixmap_addr8_2_y'><code><strong>y</strong></code></a></td>
-    <td>row index, zero or greater, and less than <a href='#SkPixmap_height'>height</a>()</td>
+    <td>row index, zero or greater, and less than <a href='#SkPixmap_height'>height()</a></td>
   </tr>
 </table>
 
 ### Return Value
 
-readable unsigned 8-bit pointer to pixel at (<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
 
@@ -1173,27 +1173,27 @@
 const uint16_t* <a href='#SkPixmap_addr16'>addr16</a>(int x, int y) const
 </pre>
 
-Returns readable pixel address at (<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> 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#Color_Type'>Color Type</a> is not <a href='SkImageInfo_Reference#kRGB_565_SkColorType'>kRGB_565_SkColorType</a> or
+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
 
 <table>  <tr>    <td><a name='SkPixmap_addr16_2_x'><code><strong>x</strong></code></a></td>
-    <td>column index, zero or greater, and less than <a href='#SkPixmap_width'>width</a>()</td>
+    <td>column index, zero or greater, and less than <a href='#SkPixmap_width'>width()</a></td>
   </tr>
   <tr>    <td><a name='SkPixmap_addr16_2_y'><code><strong>y</strong></code></a></td>
-    <td>row index, zero or greater, and less than <a href='#SkPixmap_height'>height</a>()</td>
+    <td>row index, zero or greater, and less than <a href='#SkPixmap_height'>height()</a></td>
   </tr>
 </table>
 
 ### Return Value
 
-readable unsigned 16-bit pointer to pixel at (<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
 
@@ -1219,27 +1219,27 @@
 const uint32_t* <a href='#SkPixmap_addr32'>addr32</a>(int x, int y) const
 </pre>
 
-Returns readable pixel address at (<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> 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#Color_Type'>Color Type</a> is not <a href='SkImageInfo_Reference#kRGBA_8888_SkColorType'>kRGBA_8888_SkColorType</a> or
+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
 
 <table>  <tr>    <td><a name='SkPixmap_addr32_2_x'><code><strong>x</strong></code></a></td>
-    <td>column index, zero or greater, and less than <a href='#SkPixmap_width'>width</a>()</td>
+    <td>column index, zero or greater, and less than <a href='#SkPixmap_width'>width()</a></td>
   </tr>
   <tr>    <td><a name='SkPixmap_addr32_2_y'><code><strong>y</strong></code></a></td>
-    <td>row index, zero or greater, and less than <a href='#SkPixmap_height'>height</a>()</td>
+    <td>row index, zero or greater, and less than <a href='#SkPixmap_height'>height()</a></td>
   </tr>
 </table>
 
 ### Return Value
 
-readable unsigned 32-bit pointer to pixel at (<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
 
@@ -1265,27 +1265,27 @@
 const uint64_t* <a href='#SkPixmap_addr64'>addr64</a>(int x, int y) const
 </pre>
 
-Returns readable pixel address at (<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> 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#Color_Type'>Color Type</a> is not <a href='SkImageInfo_Reference#kRGBA_F16_SkColorType'>kRGBA_F16_SkColorType</a> and is built
+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
 
 <table>  <tr>    <td><a name='SkPixmap_addr64_2_x'><code><strong>x</strong></code></a></td>
-    <td>column index, zero or greater, and less than <a href='#SkPixmap_width'>width</a>()</td>
+    <td>column index, zero or greater, and less than <a href='#SkPixmap_width'>width()</a></td>
   </tr>
   <tr>    <td><a name='SkPixmap_addr64_2_y'><code><strong>y</strong></code></a></td>
-    <td>row index, zero or greater, and less than <a href='#SkPixmap_height'>height</a>()</td>
+    <td>row index, zero or greater, and less than <a href='#SkPixmap_height'>height()</a></td>
   </tr>
 </table>
 
 ### Return Value
 
-readable unsigned 64-bit pointer to pixel at (<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
 
@@ -1311,30 +1311,30 @@
 const uint16_t* <a href='#SkPixmap_addrF16'>addrF16</a>(int x, int y) const
 </pre>
 
-Returns readable pixel address at (<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> 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#Color_Type'>Color Type</a> is not <a href='SkImageInfo_Reference#kRGBA_F16_SkColorType'>kRGBA_F16_SkColorType</a> and is built
+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 color component encoded as a half float.
-Four words correspond to one pixel.
+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
 
 <table>  <tr>    <td><a name='SkPixmap_addrF16_2_x'><code><strong>x</strong></code></a></td>
-    <td>column index, zero or greater, and less than <a href='#SkPixmap_width'>width</a>()</td>
+    <td>column index, zero or greater, and less than <a href='#SkPixmap_width'>width()</a></td>
   </tr>
   <tr>    <td><a name='SkPixmap_addrF16_2_y'><code><strong>y</strong></code></a></td>
-    <td>row index, zero or greater, and less than <a href='#SkPixmap_height'>height</a>()</td>
+    <td>row index, zero or greater, and less than <a href='#SkPixmap_height'>height()</a></td>
   </tr>
 </table>
 
 ### Return Value
 
-readable unsigned 16-bit pointer to pixel component at (<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
 
@@ -1362,7 +1362,7 @@
 void* <a href='#SkPixmap_writable_addr'>writable addr</a>() const
 </pre>
 
-Returns writable base pixel address.
+Returns writable base <a href='undocumented#Pixel'>pixel</a> address.
 
 ### Return Value
 
@@ -1394,24 +1394,24 @@
 void* <a href='#SkPixmap_writable_addr'>writable addr</a>(int x, int y) const
 </pre>
 
-Returns writable pixel address at (<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> 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#Color_Type'>Color Type</a> is <a href='SkImageInfo_Reference#kUnknown_SkColorType'>kUnknown_SkColorType</a>.
+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
 
 <table>  <tr>    <td><a name='SkPixmap_writable_addr_2_x'><code><strong>x</strong></code></a></td>
-    <td>column index, zero or greater, and less than <a href='#SkPixmap_width'>width</a>()</td>
+    <td>column index, zero or greater, and less than <a href='#SkPixmap_width'>width()</a></td>
   </tr>
   <tr>    <td><a name='SkPixmap_writable_addr_2_y'><code><strong>y</strong></code></a></td>
-    <td>row index, zero or greater, and less than <a href='#SkPixmap_height'>height</a>()</td>
+    <td>row index, zero or greater, and less than <a href='#SkPixmap_height'>height()</a></td>
   </tr>
 </table>
 
 ### Return Value
 
-writable generic pointer to pixel
+writable generic pointer to <a href='undocumented#Pixel'>pixel</a>
 
 ### Example
 
@@ -1439,19 +1439,19 @@
 uint8_t* <a href='#SkPixmap_writable_addr8'>writable addr8</a>(int x, int y) const
 </pre>
 
-Returns writable pixel 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#Color_Type'>Color Type</a> is not <a href='SkImageInfo_Reference#kAlpha_8_SkColorType'>kAlpha_8_SkColorType</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 pixel.
+One byte corresponds to one <a href='undocumented#Pixel'>pixel</a>.
 
 ### Parameters
 
 <table>  <tr>    <td><a name='SkPixmap_writable_addr8_x'><code><strong>x</strong></code></a></td>
-    <td>column index, zero or greater, and less than <a href='#SkPixmap_width'>width</a>()</td>
+    <td>column index, zero or greater, and less than <a href='#SkPixmap_width'>width()</a></td>
   </tr>
   <tr>    <td><a name='SkPixmap_writable_addr8_y'><code><strong>y</strong></code></a></td>
-    <td>row index, zero or greater, and less than <a href='#SkPixmap_height'>height</a>()</td>
+    <td>row index, zero or greater, and less than <a href='#SkPixmap_height'>height()</a></td>
   </tr>
 </table>
 
@@ -1478,25 +1478,25 @@
 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> pixel 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#Color_Type'>Color Type</a> is not <a href='SkImageInfo_Reference#kRGB_565_SkColorType'>kRGB_565_SkColorType</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 pixel.
+One word corresponds to one <a href='undocumented#Pixel'>pixel</a>.
 
 ### Parameters
 
 <table>  <tr>    <td><a name='SkPixmap_writable_addr16_x'><code><strong>x</strong></code></a></td>
-    <td>column index, zero or greater, and less than <a href='#SkPixmap_width'>width</a>()</td>
+    <td>column index, zero or greater, and less than <a href='#SkPixmap_width'>width()</a></td>
   </tr>
   <tr>    <td><a name='SkPixmap_writable_addr16_y'><code><strong>y</strong></code></a></td>
-    <td>row index, zero or greater, and less than <a href='#SkPixmap_height'>height</a>()</td>
+    <td>row index, zero or greater, and less than <a href='#SkPixmap_height'>height()</a></td>
   </tr>
 </table>
 
 ### Return Value
 
-writable unsigned 16-bit pointer to pixel
+writable unsigned 16-bit pointer to <a href='undocumented#Pixel'>pixel</a>
 
 ### Example
 
@@ -1516,26 +1516,26 @@
 uint32_t* <a href='#SkPixmap_writable_addr32'>writable addr32</a>(int x, int y) const
 </pre>
 
-Returns writable pixel 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#Color_Type'>Color Type</a> is not
+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 pixel.
+One word corresponds to one <a href='undocumented#Pixel'>pixel</a>.
 
 ### Parameters
 
 <table>  <tr>    <td><a name='SkPixmap_writable_addr32_x'><code><strong>x</strong></code></a></td>
-    <td>column index, zero or greater, and less than <a href='#SkPixmap_width'>width</a>()</td>
+    <td>column index, zero or greater, and less than <a href='#SkPixmap_width'>width()</a></td>
   </tr>
   <tr>    <td><a name='SkPixmap_writable_addr32_y'><code><strong>y</strong></code></a></td>
-    <td>row index, zero or greater, and less than <a href='#SkPixmap_height'>height</a>()</td>
+    <td>row index, zero or greater, and less than <a href='#SkPixmap_height'>height()</a></td>
   </tr>
 </table>
 
 ### Return Value
 
-writable unsigned 32-bit pointer to pixel
+writable unsigned 32-bit pointer to <a href='undocumented#Pixel'>pixel</a>
 
 ### Example
 
@@ -1553,25 +1553,25 @@
 uint64_t* <a href='#SkPixmap_writable_addr64'>writable addr64</a>(int x, int y) const
 </pre>
 
-Returns writable pixel 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#Color_Type'>Color Type</a> is not
+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 pixel.
+One word corresponds to one <a href='undocumented#Pixel'>pixel</a>.
 
 ### Parameters
 
 <table>  <tr>    <td><a name='SkPixmap_writable_addr64_x'><code><strong>x</strong></code></a></td>
-    <td>column index, zero or greater, and less than <a href='#SkPixmap_width'>width</a>()</td>
+    <td>column index, zero or greater, and less than <a href='#SkPixmap_width'>width()</a></td>
   </tr>
   <tr>    <td><a name='SkPixmap_writable_addr64_y'><code><strong>y</strong></code></a></td>
-    <td>row index, zero or greater, and less than <a href='#SkPixmap_height'>height</a>()</td>
+    <td>row index, zero or greater, and less than <a href='#SkPixmap_height'>height()</a></td>
   </tr>
 </table>
 
 ### Return Value
 
-writable unsigned 64-bit pointer to pixel
+writable unsigned 64-bit pointer to <a href='undocumented#Pixel'>pixel</a>
 
 ### Example
 
@@ -1589,26 +1589,26 @@
 uint16_t* <a href='#SkPixmap_writable_addrF16'>writable addrF16</a>(int x, int y) const
 </pre>
 
-Returns writable pixel 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#Color_Type'>Color Type</a> is not
+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 color component encoded as a half float.
-Four words correspond to one pixel.
+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
 
 <table>  <tr>    <td><a name='SkPixmap_writable_addrF16_x'><code><strong>x</strong></code></a></td>
-    <td>column index, zero or greater, and less than <a href='#SkPixmap_width'>width</a>()</td>
+    <td>column index, zero or greater, and less than <a href='#SkPixmap_width'>width()</a></td>
   </tr>
   <tr>    <td><a name='SkPixmap_writable_addrF16_y'><code><strong>y</strong></code></a></td>
-    <td>row index, zero or greater, and less than <a href='#SkPixmap_height'>height</a>()</td>
+    <td>row index, zero or greater, and less than <a href='#SkPixmap_height'>height()</a></td>
   </tr>
 </table>
 
 ### Return Value
 
-writable unsigned 16-bit pointer to first component of pixel
+writable unsigned 16-bit pointer to first component of <a href='undocumented#Pixel'>pixel</a>
 
 ### Example
 
@@ -1630,30 +1630,30 @@
 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#Rect'>Rect</a> of pixels to <a href='#SkPixmap_readPixels_dstPixels'>dstPixels</a>. Copy starts at (0, 0), and does not
-exceed <a href='#Pixmap'>Pixmap</a> (<a href='#SkPixmap_width'>width</a>(), <a href='#SkPixmap_height'>height</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> specifies width, height, <a href='SkImageInfo_Reference#Color_Type'>Color Type</a>, <a href='SkImageInfo_Reference#Alpha_Type'>Alpha Type</a>, and
-<a href='undocumented#Color_Space'>Color Space</a> of destination. <a href='#SkPixmap_readPixels_dstRowBytes'>dstRowBytes</a> specifics the gap from one destination
+<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_addr'>addr</a>() equals nullptr, or <a href='#SkPixmap_readPixels_dstRowBytes'>dstRowBytes</a> is less than <a href='#SkPixmap_readPixels_dstInfo'>dstInfo</a>.<a href='SkImageInfo_Reference#SkImageInfo'>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>().
 
-<a href='#Pixels'>Pixels</a> are copied only if pixel conversion is possible. If <a href='#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_dstInfo'>dstInfo</a>.<a href='#SkPixmap_colorType'>colorType</a> must match.
-If <a href='#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_dstInfo'>dstInfo</a>.<a href='#SkPixmap_colorSpace'>colorSpace</a> must match.
-If <a href='#Pixmap'>Pixmap</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='#SkPixmap_alphaType'>alphaType</a> must
-match. If <a href='#Pixmap'>Pixmap</a> <a href='#SkPixmap_colorSpace'>colorSpace</a> is nullptr, <a href='#SkPixmap_readPixels_dstInfo'>dstInfo</a>.<a href='#SkPixmap_colorSpace'>colorSpace</a> must match. Returns
-false if pixel conversion is not possible.
+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='#Pixmap'>Pixmap</a> <a href='#SkPixmap_width'>width</a>() or <a href='#SkPixmap_height'>height</a>() is zero or negative.
+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_dstInfo'><code><strong>dstInfo</strong></code></a></td>
-    <td>destination width, height, <a href='SkImageInfo_Reference#Color_Type'>Color Type</a>, <a href='SkImageInfo_Reference#Alpha_Type'>Alpha Type</a>, <a href='undocumented#Color_Space'>Color Space</a></td>
+    <td>destination width, height, <a href='SkImageInfo_Reference#SkColorType'>SkColorType</a>, <a href='SkImageInfo_Reference#SkAlphaType'>SkAlphaType</a>, <a href='undocumented#SkColorSpace'>SkColorSpace</a></td>
   </tr>
   <tr>    <td><a name='SkPixmap_readPixels_dstPixels'><code><strong>dstPixels</strong></code></a></td>
-    <td>destination pixel storage</td>
+    <td>destination  <a href='undocumented#Pixel_Storage'>pixel storage</a></td>
   </tr>
   <tr>    <td><a name='SkPixmap_readPixels_dstRowBytes'><code><strong>dstRowBytes</strong></code></a></td>
     <td>destination row length</td>
@@ -1792,24 +1792,24 @@
 bool <a href='#SkPixmap_readPixels'>readPixels</a>(const <a href='#SkPixmap'>SkPixmap</a>& dst) const
 </pre>
 
-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#Color_Type'>Color Type</a>,
-<a href='SkImageInfo_Reference#Alpha_Type'>Alpha Type</a>, and <a href='undocumented#Color_Space'>Color Space</a> of destination.  Returns true if pixels are copied.
-Returns false if <a href='#SkPixmap_readPixels_4_dst'>dst</a>.<a href='#SkPixmap_addr'>addr</a>() 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_minRowBytes'>SkImageInfo::minRowBytes</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>.
 
-<a href='#Pixels'>Pixels</a> are copied only if pixel conversion is possible. If <a href='#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_4_dst'>dst</a> <a href='SkImageInfo_Reference#Color_Type'>Color Type</a> must match.
-If <a href='#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_4_dst'>dst</a> <a href='undocumented#Color_Space'>Color Space</a> must match.
-If <a href='#Pixmap'>Pixmap</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#Alpha_Type'>Alpha Type</a> must
-match. If <a href='#Pixmap'>Pixmap</a> <a href='#SkPixmap_colorSpace'>colorSpace</a> is nullptr, <a href='#SkPixmap_readPixels_4_dst'>dst</a> <a href='undocumented#Color_Space'>Color Space</a> must match. Returns
-false if pixel conversion is not possible.
+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='#Pixmap'>Pixmap</a> <a href='#SkPixmap_width'>width</a>() or <a href='#SkPixmap_height'>height</a>() is zero or negative.
+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#Image_Info'>Image Info</a> and pixel address to write to</td>
+    <td><a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a> and <a href='undocumented#Pixel'>pixel</a> address to write to</td>
   </tr>
 </table>
 
@@ -1833,38 +1833,39 @@
 bool <a href='#SkPixmap_scalePixels'>scalePixels</a>(const <a href='#SkPixmap'>SkPixmap</a>& dst, <a href='undocumented#SkFilterQuality'>SkFilterQuality</a> filterQuality) const
 </pre>
 
-Copies <a href='SkBitmap_Reference#Bitmap'>Bitmap</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>.<a href='#SkPixmap_addr'>addr</a>() 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_minRowBytes'>SkImageInfo::minRowBytes</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>.
 
-<a href='#Pixels'>Pixels</a> are copied only if pixel conversion is possible. If <a href='#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_scalePixels_dst'>dst</a> <a href='SkImageInfo_Reference#Color_Type'>Color Type</a> must match.
-If <a href='#Pixmap'>Pixmap</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#Color_Space'>Color Space</a> must match.
-If <a href='#Pixmap'>Pixmap</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#Alpha_Type'>Alpha Type</a> must
-match. If <a href='#Pixmap'>Pixmap</a> <a href='#SkPixmap_colorSpace'>colorSpace</a> is nullptr, <a href='#SkPixmap_scalePixels_dst'>dst</a> <a href='undocumented#Color_Space'>Color Space</a> must match. Returns
-false if pixel conversion is not possible.
+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#Bitmap'>Bitmap</a> <a href='#SkPixmap_width'>width</a>() or <a href='#SkPixmap_height'>height</a>() is zero or negative.
+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 image, 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>().
+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'>Filter Quality Nearest Neighbor</a>. <a href='undocumented#kLow_SkFilterQuality'>kLow_SkFilterQuality</a> is typically implemented with
-<a href='undocumented#Bilerp'>Filter Quality Bilerp</a>. <a href='undocumented#kMedium_SkFilterQuality'>kMedium_SkFilterQuality</a> is typically implemented with
-<a href='undocumented#Bilerp'>Filter Quality Bilerp</a>, and <a href='undocumented#MipMap'>Filter Quality MipMap</a> when size is reduced.
-<a href='undocumented#kHigh_SkFilterQuality'>kHigh_SkFilterQuality</a> is slowest, typically implemented with <a href='undocumented#BiCubic'>Filter Quality BiCubic</a>.
+<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#Image_Info'>Image Info</a> and pixel address to write to</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>,
-<a href='undocumented#kMedium_SkFilterQuality'>kMedium_SkFilterQuality</a>, <a href='undocumented#kHigh_SkFilterQuality'>kHigh_SkFilterQuality</a></td>
+    <td>one of: <a href='undocumented#kNone_SkFilterQuality'>kNone_SkFilterQuality</a>, <a href='undocumented#kLow_SkFilterQuality'>kLow_SkFilterQuality</a>,</td>
   </tr>
 </table>
 
+<a href='undocumented#kMedium_SkFilterQuality'>kMedium_SkFilterQuality</a>, <a href='undocumented#kHigh_SkFilterQuality'>kHigh_SkFilterQuality</a>
+
 ### Return Value
 
 true if pixels are scaled to fit <a href='#SkPixmap_scalePixels_dst'>dst</a>
@@ -1885,17 +1886,17 @@
 bool <a href='#SkPixmap_erase'>erase</a>(<a href='SkColor_Reference#SkColor'>SkColor</a> color, const <a href='SkIRect_Reference#SkIRect'>SkIRect</a>& subset) const
 </pre>
 
-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>().
+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='SkColor_Reference#Color'>Color</a> to write</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#Rect'>Rect</a> of written pixels</td>
+    <td>bounding integer <a href='SkRect_Reference#SkRect'>SkRect</a> of written pixels</td>
   </tr>
 </table>
 
@@ -1919,14 +1920,14 @@
 bool <a href='#SkPixmap_erase'>erase</a>(<a href='SkColor_Reference#SkColor'>SkColor</a> color) const
 </pre>
 
-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>()
+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='SkColor_Reference#Color'>Color</a> to write</td>
+    <td><a href='undocumented#Unpremultiply'>unpremultiplied</a> <a href='#SkPixmap_erase_2_color'>color</a> to write</td>
   </tr>
 </table>
 
@@ -1951,17 +1952,17 @@
 </pre>
 
 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.
+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='SkColor_Reference#Color'>Color</a> to write</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#Rect'>Rect</a> of pixels to write; may be nullptr</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 11f5d06..d0a461d 100644
--- a/site/user/api/SkPoint_Reference.md
+++ b/site/user/api/SkPoint_Reference.md
@@ -83,21 +83,21 @@
 static constexpr <a href='#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> to x, <a href='#SkPoint_fY'>fY</a> to y. Used both to set <a href='#Point'>Point</a> and <a href='#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> x-axis value of constructed <a href='#Point'>Point</a> or <a href='#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> y-axis value of constructed <a href='#Point'>Point</a> or <a href='#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>
 
 ### Return Value
 
-<a href='#Point'>Point</a> (x, y)
+<a href='SkPoint_Reference#SkPoint'>SkPoint</a> (<a href='#SkPoint_Make_x'>x</a>, <a href='#SkPoint_Make_y'>y</a>)
 
 ### Example
 
@@ -125,7 +125,7 @@
 <a href='undocumented#SkScalar'>SkScalar</a> <a href='#SkPoint_x'>x</a>() const
 </pre>
 
-Returns x-axis value of <a href='#Point'>Point</a> or <a href='#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
 
@@ -155,7 +155,7 @@
 <a href='undocumented#SkScalar'>SkScalar</a> <a href='#SkPoint_y'>y</a>() const
 </pre>
 
-Returns y-axis value of <a href='#Point'>Point</a> or <a href='#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
 
@@ -218,7 +218,7 @@
 void <a href='#SkPoint_set'>set</a>(<a href='undocumented#SkScalar'>SkScalar</a> x, <a href='undocumented#SkScalar'>SkScalar</a> y)
 </pre>
 
-Sets <a href='#SkPoint_fX'>fX</a> to x and <a href='#SkPoint_fY'>fY</a> to y.
+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
 
@@ -254,11 +254,11 @@
 void <a href='#SkPoint_iset'>iset</a>(int32_t x, int32_t y)
 </pre>
 
-Sets <a href='#SkPoint_fX'>fX</a> to x and <a href='#SkPoint_fY'>fY</a> to y, promoting integers to <a href='undocumented#SkScalar'>SkScalar</a> values.
+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> 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 x and y to avoid the error.
+casts <a href='#SkPoint_iset()_x'>x</a> and <a href='#SkPoint_iset()_y'>y</a> to avoid the error.
 
 ### Parameters
 
@@ -286,16 +286,16 @@
 void <a href='#SkPoint_iset'>iset</a>(const <a href='SkIPoint_Reference#SkIPoint'>SkIPoint</a>& p)
 </pre>
 
-Sets <a href='#SkPoint_fX'>fX</a> to <a href='#SkPoint_iset_2_p'>p</a>.<a href='#SkPoint_fX'>fX</a> and <a href='#SkPoint_fY'>fY</a> to <a href='#SkPoint_iset_2_p'>p</a>.<a href='#SkPoint_fY'>fY</a>, promoting integers to <a href='undocumented#SkScalar'>SkScalar</a> values.
+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#IPoint'>IPoint</a> containing a large integer value directly to <a href='#SkPoint_fX'>fX</a> or <a href='#SkPoint_fY'>fY</a> may
+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='#SkPoint_fX'>fX</a> and <a href='#SkPoint_iset_2_p'>p</a>.<a href='#SkPoint_fY'>fY</a> to avoid the error.
+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#IPoint'>IPoint</a> members promoted to <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>
 
@@ -362,18 +362,18 @@
 static void <a href='#SkPoint_Offset'>Offset</a>(<a href='#SkPoint'>SkPoint</a> points[], int count, const <a href='#SkVector'>SkVector</a>& offset)
 </pre>
 
-Adds offset to each <a href='#Point'>Point</a> in <a href='#SkPoint_Offset_points'>points</a> array with <a href='#SkPoint_Offset_count'>count</a> entries.
+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
 
 <table>  <tr>    <td><a name='SkPoint_Offset_points'><code><strong>points</strong></code></a></td>
-    <td><a href='#Point'>Point</a> array</td>
+    <td><a href='SkPath_Reference#Point_Array'>SkPoint array</a></td>
   </tr>
   <tr>    <td><a name='SkPoint_Offset_count'><code><strong>count</strong></code></a></td>
     <td>entries in array</td>
   </tr>
   <tr>    <td><a name='SkPoint_Offset_offset'><code><strong>offset</strong></code></a></td>
-    <td><a href='#Vector'>Vector</a> added to <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>
 
@@ -393,12 +393,12 @@
 static void <a href='#SkPoint_Offset'>Offset</a>(<a href='#SkPoint'>SkPoint</a> points[], 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>) to each <a href='#Point'>Point</a> in <a href='#SkPoint_Offset_2_points'>points</a> array of length <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
 
 <table>  <tr>    <td><a name='SkPoint_Offset_2_points'><code><strong>points</strong></code></a></td>
-    <td><a href='#Point'>Point</a> array</td>
+    <td><a href='SkPath_Reference#Point_Array'>SkPoint array</a></td>
   </tr>
   <tr>    <td><a name='SkPoint_Offset_2_count'><code><strong>count</strong></code></a></td>
     <td>entries in array</td>
@@ -427,7 +427,7 @@
 void <a href='#SkPoint_offset'>offset</a>(<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>) to <a href='#Point'>Point</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
 
@@ -455,11 +455,9 @@
 <a href='undocumented#SkScalar'>SkScalar</a> <a href='#SkPoint_length'>length</a>() const
 </pre>
 
-Returns the <a href='undocumented#Euclidean_Distance'>Euclidean Distance</a> from origin, computed as:
+Returns the  <a href='undocumented#Euclidean_Distance'>Euclidean distance</a> from origin, computed as:
 
-<pre style="padding: 1em 1em 1em 1em;width: 62.5em; background-color: #f0f0f0">
-sqrt(fX * fX + fY * fY)
-</pre>
+sqrt(<a href='#SkPoint_fX'>fX</a> * <a href='#SkPoint_fX'>fX</a> + <a href='#SkPoint_fY'>fY</a> * <a href='#SkPoint_fY'>fY</a>)
 
 .
 
@@ -483,11 +481,9 @@
 <a href='undocumented#SkScalar'>SkScalar</a> <a href='#SkPoint_distanceToOrigin'>distanceToOrigin</a>() const
 </pre>
 
-Returns the <a href='undocumented#Euclidean_Distance'>Euclidean Distance</a> from origin, computed as:
+Returns the  <a href='undocumented#Euclidean_Distance'>Euclidean distance</a> from origin, computed as:
 
-<pre style="padding: 1em 1em 1em 1em;width: 62.5em; background-color: #f0f0f0">
-sqrt(fX * fX + fY * fY)
-</pre>
+sqrt(<a href='#SkPoint_fX'>fX</a> * <a href='#SkPoint_fX'>fX</a> + <a href='#SkPoint_fY'>fY</a> * <a href='#SkPoint_fY'>fY</a>)
 
 .
 
@@ -511,8 +507,8 @@
 bool <a href='#SkPoint_normalize'>normalize</a>()
 </pre>
 
-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='#Vector'>Vector</a> to (0, 0) and returns
+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
@@ -535,9 +531,9 @@
 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='#Vector'>Vector</a> to (x, y) 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 (x, y).  If (x, y) length is nearly zero,
-sets <a href='#Vector'>Vector</a> to (0, 0) and returns false; otherwise returns true.
+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
 
@@ -551,7 +547,7 @@
 
 ### Return Value
 
-true if (x, y) length is not zero or nearly zero
+true if (<a href='#SkPoint_setNormalize_x'>x</a>, <a href='#SkPoint_setNormalize_y'>y</a>) length is not zero or nearly zero
 
 ### Example
 
@@ -569,8 +565,8 @@
 bool <a href='#SkPoint_setLength'>setLength</a>(<a href='undocumented#SkScalar'>SkScalar</a> length)
 </pre>
 
-Scales <a href='#Vector'>Vector</a> so that <a href='#SkPoint_distanceToOrigin'>distanceToOrigin</a> returns length, if possible. If former
-length is nearly zero, sets <a href='#Vector'>Vector</a> to (0, 0) and return false; otherwise returns
+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
@@ -582,7 +578,7 @@
 
 ### Return Value
 
-true if former length is not zero or nearly zero
+true if former <a href='#SkPoint_setLength_length'>length</a> is not zero or nearly zero
 
 ### Example
 
@@ -600,8 +596,8 @@
 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='#Vector'>Vector</a> to (x, y) scaled to length, if possible. If former
-length is nearly zero, sets <a href='#Vector'>Vector</a> to (0, 0) and return false; otherwise returns
+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
@@ -619,7 +615,7 @@
 
 ### Return Value
 
-true if (x, y) length is not zero or nearly zero
+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
 
@@ -637,15 +633,15 @@
 void <a href='#SkPoint_scale'>scale</a>(<a href='undocumented#SkScalar'>SkScalar</a> scale, <a href='#SkPoint'>SkPoint</a>* dst) const
 </pre>
 
-Sets <a href='#SkPoint_scale_dst'>dst</a> to <a href='#Point'>Point</a> times scale. <a href='#SkPoint_scale_dst'>dst</a> may be <a href='#Point'>Point</a> to modify <a href='#Point'>Point</a> in place.
+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='#Point'>Point</a> by</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='#Point'>Point</a></td>
+    <td>storage for scaled <a href='SkPoint_Reference#SkPoint'>SkPoint</a></td>
   </tr>
 </table>
 
@@ -665,12 +661,12 @@
 void <a href='#SkPoint_scale'>scale</a>(<a href='undocumented#SkScalar'>SkScalar</a> value)
 </pre>
 
-Scales <a href='#Point'>Point</a> in place by scale.
+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='#Point'>Point</a> by</td>
+    <td>factor to multiply <a href='SkPoint_Reference#SkPoint'>SkPoint</a> by</td>
   </tr>
 </table>
 
@@ -719,11 +715,11 @@
 <a href='#SkPoint'>SkPoint</a> operator-() const
 </pre>
 
-Returns <a href='#Point'>Point</a> changing the signs of <a href='#SkPoint_fX'>fX</a> and <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='#Point'>Point</a> as (-<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
 
@@ -802,18 +798,18 @@
 <a href='#SkPoint'>SkPoint</a> operator*(SkScalar scale) const
 </pre>
 
-Returns <a href='#Point'>Point</a> multiplied by scale.
+Returns <a href='SkPoint_Reference#SkPoint'>SkPoint</a> multiplied by <a href='#SkPoint_operator*(SkScalar scale)_const_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> to multiply by</td>
+    <td><a href='undocumented#Scalar'>scalar</a> to multiply by</td>
   </tr>
 </table>
 
 ### Return Value
 
-<a href='#Point'>Point</a> as (<a href='#SkPoint_fX'>fX</a> * scale, <a href='#SkPoint_fY'>fY</a> * scale)
+<a href='SkPoint_Reference#SkPoint'>SkPoint</a> as (<a href='#SkPoint_fX'>fX</a> * <a href='#SkPoint_operator*(SkScalar scale)_const_scale'>scale</a>, <a href='#SkPoint_fY'>fY</a> * <a href='#SkPoint_operator*(SkScalar scale)_const_scale'>scale</a>)
 
 ### Example
 
@@ -893,7 +889,7 @@
 bool <a href='#SkPoint_equals'>equals</a>(<a href='undocumented#SkScalar'>SkScalar</a> x, <a href='undocumented#SkScalar'>SkScalar</a> y) const
 </pre>
 
-Returns true if <a href='#Point'>Point</a> is equivalent to <a href='#Point'>Point</a> constructed from (x, y).
+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
 
@@ -907,7 +903,7 @@
 
 ### Return Value
 
-true if <a href='#Point'>Point</a> equals (x, y)
+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
 
@@ -936,21 +932,21 @@
 bool <a href='#SkPoint_equal_operator'>operator==(const SkPoint& a, const SkPoint& b)</a>
 </pre>
 
-Returns true if <a href='#SkPoint_equal_operator_a'>a</a> is equivalent to <a href='#SkPoint_equal_operator_b'>b</a>.
+Returns true if <a href='#SkPoint_operator==(const SkPoint& a, const SkPoint& b)_a'>a</a> is equivalent to <a href='#SkPoint_operator==(const SkPoint& a, const SkPoint& b)_b'>b</a>.
 
 ### Parameters
 
 <table>  <tr>    <td><a name='SkPoint_equal_operator_a'><code><strong>a</strong></code></a></td>
-    <td><a href='#Point'>Point</a> to compare</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='#Point'>Point</a> to compare</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> 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>
+true if <a href='#SkPoint_operator==(const SkPoint& a, const SkPoint& b)_a'>a</a>.<a href='#SkPoint_fX'>fX</a> == <a href='#SkPoint_operator==(const SkPoint& a, const SkPoint& b)_b'>b</a>.<a href='#SkPoint_fX'>fX</a> and <a href='#SkPoint_operator==(const SkPoint& a, const SkPoint& b)_a'>a</a>.<a href='#SkPoint_fY'>fY</a> == <a href='#SkPoint_operator==(const SkPoint& a, const SkPoint& b)_b'>b</a>.<a href='#SkPoint_fY'>fY</a>
 
 ### Example
 
@@ -979,21 +975,21 @@
 bool <a href='#SkPoint_notequal_operator'>operator!=(const SkPoint& a, const SkPoint& b)</a>
 </pre>
 
-Returns true if <a href='#SkPoint_notequal_operator_a'>a</a> is not equivalent to <a href='#SkPoint_notequal_operator_b'>b</a>.
+Returns true if <a href='#SkPoint_operator!=(const SkPoint& a, const SkPoint& b)_a'>a</a> is not equivalent to <a href='#SkPoint_operator!=(const SkPoint& a, const SkPoint& b)_b'>b</a>.
 
 ### Parameters
 
 <table>  <tr>    <td><a name='SkPoint_notequal_operator_a'><code><strong>a</strong></code></a></td>
-    <td><a href='#Point'>Point</a> to compare</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='#Point'>Point</a> to compare</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> 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>
+true if <a href='#SkPoint_operator!=(const SkPoint& a, const SkPoint& b)_a'>a</a>.<a href='#SkPoint_fX'>fX</a> != <a href='#SkPoint_operator!=(const SkPoint& a, const SkPoint& b)_b'>b</a>.<a href='#SkPoint_fX'>fX</a> or <a href='#SkPoint_operator!=(const SkPoint& a, const SkPoint& b)_a'>a</a>.<a href='#SkPoint_fY'>fY</a> != <a href='#SkPoint_operator!=(const SkPoint& a, const SkPoint& b)_b'>b</a>.<a href='#SkPoint_fY'>fY</a>
 
 ### Example
 
@@ -1093,11 +1089,9 @@
 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:
+Returns the  <a href='undocumented#Euclidean_Distance'>Euclidean distance</a> from origin, computed as:
 
-<pre style="padding: 1em 1em 1em 1em;width: 62.5em; background-color: #f0f0f0">
-sqrt(x * x + y * y)
-</pre>
+sqrt(<a href='#SkPoint_Length_x'>x</a> * <a href='#SkPoint_Length_x'>x</a> + <a href='#SkPoint_Length_y'>y</a> * <a href='#SkPoint_Length_y'>y</a>)
 
 .
 
@@ -1131,13 +1125,13 @@
 static <a href='undocumented#SkScalar'>SkScalar</a> <a href='#SkPoint_Normalize'>Normalize</a>(<a href='#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>) 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.
+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> if it can not be represented by <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>() is faster if prior length is not required.
+Note that <a href='#SkPoint_normalize'>normalize()</a> is faster if prior length is not required.
 
 ### Parameters
 
@@ -1166,15 +1160,15 @@
 static <a href='undocumented#SkScalar'>SkScalar</a> <a href='#SkPoint_Distance'>Distance</a>(const <a href='#SkPoint'>SkPoint</a>& a, const <a href='#SkPoint'>SkPoint</a>& b)
 </pre>
 
-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>.
+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>line end point</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>line end point</td>
+    <td><a href='undocumented#Line'>line</a> end <a href='SkPoint_Reference#Point'>point</a></td>
   </tr>
 </table>
 
@@ -1198,7 +1192,7 @@
 static <a href='undocumented#SkScalar'>SkScalar</a> <a href='#SkPoint_DotProduct'>DotProduct</a>(const <a href='#SkVector'>SkVector</a>& a, const <a href='#SkVector'>SkVector</a>& b)
 </pre>
 
-Returns the dot product of <a href='#Vector'>Vector</a> <a href='#SkPoint_DotProduct_a'>a</a> and <a href='#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
 
@@ -1230,10 +1224,10 @@
 static <a href='undocumented#SkScalar'>SkScalar</a> <a href='#SkPoint_CrossProduct'>CrossProduct</a>(const <a href='#SkVector'>SkVector</a>& a, const <a href='#SkVector'>SkVector</a>& b)
 </pre>
 
-Returns the cross product of <a href='#Vector'>Vector</a> <a href='#SkPoint_CrossProduct_a'>a</a> and <a href='#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> and <a href='#SkPoint_CrossProduct_b'>b</a> form three-dimensional vectors with z-axis value equal to zero. The
-cross product is <a href='#SkPoint_CrossProduct_a'>a</a> three-dimensional vector with x-axis and y-axis values equal
+<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
@@ -1248,7 +1242,7 @@
 
 ### Return Value
 
-area spanned by <a href='#Vector'>Vectors</a> signed by angle direction
+area spanned by <a href='SkPoint_Reference#Vector'>vectors</a> signed by angle direction
 
 ### Example
 
@@ -1266,10 +1260,10 @@
 <a href='undocumented#SkScalar'>SkScalar</a> <a href='#SkPoint_cross'>cross</a>(const <a href='#SkVector'>SkVector</a>& vec) const
 </pre>
 
-Returns the cross product of <a href='#Vector'>Vector</a> and <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='#Vector'>Vector</a> and <a href='#SkPoint_cross_vec'>vec</a> form three-dimensional vectors with z-axis value equal to zero.
-The cross product is a three-dimensional vector with x-axis and y-axis values
+<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
@@ -1281,7 +1275,7 @@
 
 ### Return Value
 
-area spanned by <a href='#Vector'>Vectors</a> signed by angle direction
+area spanned by <a href='SkPoint_Reference#Vector'>vectors</a> signed by angle direction
 
 ### Example
 
@@ -1299,7 +1293,7 @@
 <a href='undocumented#SkScalar'>SkScalar</a> <a href='#SkPoint_dot'>dot</a>(const <a href='#SkVector'>SkVector</a>& vec) const
 </pre>
 
-Returns the dot product of <a href='#Vector'>Vector</a> and <a href='#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
 
diff --git a/site/user/api/SkRRect_Reference.md b/site/user/api/SkRRect_Reference.md
index 2977611..196d56f 100644
--- a/site/user/api/SkRRect_Reference.md
+++ b/site/user/api/SkRRect_Reference.md
@@ -99,11 +99,11 @@
 </pre>
 
 Initializes bounds at (0, 0), the origin, with zero width and height.
-Initializes corner radii to (0, 0), and sets type of <a href='#SkRRect_kEmpty_Type'>kEmpty Type</a>.
+Initializes corner radii to (0, 0), and sets type of <a href='#SkRRect_kEmpty_Type'>kEmpty_Type</a>.
 
 ### Return Value
 
-empty <a href='#RRect'>Round Rect</a>
+empty <a href='SkRRect_Reference#SkRRect'>SkRRect</a>
 
 ### Example
 
@@ -121,7 +121,7 @@
 <a href='#SkRRect'>SkRRect</a>(const <a href='#SkRRect'>SkRRect</a>& rrect)
 </pre>
 
-Initializes to copy of <a href='#SkRRect_copy_const_SkRRect_rrect'>rrect</a> bounds and corner radii.
+Initializes to copy of <a href='#SkRRect_SkRRect(const SkRRect& rrect)_rrect'>rrect</a> bounds and corner radii.
 
 ### Parameters
 
@@ -132,7 +132,7 @@
 
 ### Return Value
 
-copy of <a href='#SkRRect_copy_const_SkRRect_rrect'>rrect</a>
+copy of <a href='#SkRRect_SkRRect(const SkRRect& rrect)_rrect'>rrect</a>
 
 ### Example
 
@@ -150,7 +150,7 @@
 <a href='#SkRRect'>SkRRect</a>& <a href='#SkRRect_copy_operator'>operator=(const SkRRect& rrect)</a>
 </pre>
 
-Copies <a href='#SkRRect_copy_operator_rrect'>rrect</a> bounds and corner radii.
+Copies <a href='#SkRRect_operator=(const SkRRect& rrect)_rrect'>rrect</a> bounds and corner radii.
 
 ### Parameters
 
@@ -161,7 +161,7 @@
 
 ### Return Value
 
-copy of <a href='#SkRRect_copy_operator_rrect'>rrect</a>
+copy of <a href='#SkRRect_operator=(const SkRRect& rrect)_rrect'>rrect</a>
 
 ### Example
 
@@ -326,13 +326,6 @@
 bool <a href='#SkRRect_isEmpty'>isEmpty</a>() const
 </pre>
 
-Returns true if <a href='#SkRRect_rect'>rect</a>().fLeft is equal to <a href='#SkRRect_rect'>rect</a>().fRight, or if <a href='#SkRRect_rect'>rect</a>().fTop is equal
-to <a href='#SkRRect_rect'>rect</a>().fBottom.
-
-### Return Value
-
-true if <a href='#SkRRect_width'>width</a>() or <a href='#SkRRect_height'>height</a>() are zero
-
 ### Example
 
 <div><fiddle-embed name="099d79ecfbdfb0a19c10deb7201859c3"></fiddle-embed></div>
@@ -349,13 +342,6 @@
 bool <a href='#SkRRect_isRect'>isRect</a>() const
 </pre>
 
-Returns true if not empty, and if either x-axis or y-axis radius at each corner
-is zero.
-
-### Return Value
-
-true if not empty, and one radius at each corner is zero
-
 ### Example
 
 <div><fiddle-embed name="bc931c9a6eb8ffe7ea8d3fb47e07a475"></fiddle-embed></div>
@@ -372,14 +358,6 @@
 bool <a href='#SkRRect_isOval'>isOval</a>() const
 </pre>
 
-Returns true if not empty, if all x-axis radii are equal, if all y-axis radii
-are equal, x-axis radii are at least half the width, and y-axis radii are at
-least half the height.
-
-### Return Value
-
-true if has identical geometry to <a href='undocumented#Oval'>Oval</a>
-
 ### Example
 
 <div><fiddle-embed name="4dfdb28d8343958425f2c1323fe8170d"><div>The first radii are scaled down proportionately until both x-axis and y-axis fit
@@ -400,14 +378,6 @@
 bool <a href='#SkRRect_isSimple'>isSimple</a>() const
 </pre>
 
-Returns true if not empty, if all x-axis radii are equal but not zero,
-if all y-axis radii are equal but not zero; and x-axis radius is less than half
-<a href='#SkRRect_width'>width</a>(), or y-axis radius is less than half <a href='#SkRRect_height'>height</a>().
-
-### Return Value
-
-true if not empty, <a href='SkRect_Reference#Rect'>Rect</a> or <a href='undocumented#Oval'>Oval</a>; and axes radii are equal
-
 ### Example
 
 <div><fiddle-embed name="f6959ea422a7c6e98ddfad216a52c707"></fiddle-embed></div>
@@ -424,14 +394,6 @@
 bool <a href='#SkRRect_isNinePatch'>isNinePatch</a>() const
 </pre>
 
-Returns true if <a href='#SkRRect_isEmpty'>isEmpty</a>, <a href='#SkRRect_isRect'>isRect</a>, <a href='#SkRRect_isOval'>isOval</a>, and <a href='#SkRRect_isSimple'>isSimple</a> return false; and if
-left x-axis radii are equal, right x-axis radii are equal, top y-axis radii are
-equal, and bottom y-axis radii are equal.
-
-### Return Value
-
-true if not empty, <a href='SkRect_Reference#Rect'>Rect</a>, <a href='undocumented#Oval'>Oval</a> or simple; and radii are axis-aligned
-
 ### Example
 
 <div><fiddle-embed name="429f6dfd4cf6287df3c3c77fa7681c99"></fiddle-embed></div>
@@ -448,16 +410,6 @@
 bool <a href='#SkRRect_isComplex'>isComplex</a>() const
 </pre>
 
-Returns true if <a href='#SkRRect_isEmpty'>isEmpty</a>, <a href='#SkRRect_isRect'>isRect</a>, <a href='#SkRRect_isOval'>isOval</a>, <a href='#SkRRect_isSimple'>isSimple</a>, and <a href='#SkRRect_isNinePatch'>isNinePatch</a> return false.
-If true: width and height are greater than zero, at least one corner radii are
-both greater than zero; left x-axis radii are not equal, or right x-axis radii
-are not equal, or top y-axis radii are not equal, or bottom y-axis radii are not
-equal.
-
-### Return Value
-
-true if not empty, <a href='SkRect_Reference#Rect'>Rect</a>, <a href='undocumented#Oval'>Oval</a>, simple, or nine-patch
-
 ### Example
 
 <div><fiddle-embed name="b62c183dc435d1fc091111fb2f3c3f8e"></fiddle-embed></div>
@@ -479,7 +431,7 @@
 
 ### Return Value
 
-bounds().fRight minus bounds().fLeft
+<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
 
@@ -512,7 +464,7 @@
 
 ### Return Value
 
-bounds().fBottom minus bounds().fTop
+<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
 
@@ -540,9 +492,9 @@
 <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>() 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
+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
@@ -566,7 +518,7 @@
 </pre>
 
 Sets bounds to zero width and height at (0, 0), the origin. Sets
-corner radii to zero and sets type to <a href='#SkRRect_kEmpty_Type'>kEmpty Type</a>.
+corner radii to zero and sets type to <a href='#SkRRect_kEmpty_Type'>kEmpty_Type</a>.
 
 ### Example
 
@@ -585,9 +537,9 @@
 void <a href='#SkRRect_setRect'>setRect</a>(const <a href='SkRect_Reference#SkRect'>SkRect</a>& rect)
 </pre>
 
-Sets bounds to sorted rect, 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>.
+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>.
 
 ### Parameters
 
@@ -613,11 +565,11 @@
 </pre>
 
 Initializes bounds at (0, 0), the origin, with zero width and height.
-Initializes corner radii to (0, 0), and sets type of <a href='#SkRRect_kEmpty_Type'>kEmpty Type</a>.
+Initializes corner radii to (0, 0), and sets type of <a href='#SkRRect_kEmpty_Type'>kEmpty_Type</a>.
 
 ### Return Value
 
-empty <a href='#RRect'>Round Rect</a>
+empty <a href='SkRRect_Reference#SkRRect'>SkRRect</a>
 
 ### Example
 
@@ -664,20 +616,20 @@
 static <a href='#SkRRect'>SkRRect</a> <a href='#SkRRect_MakeOval'>MakeOval</a>(const <a href='SkRect_Reference#SkRect'>SkRect</a>& oval)
 </pre>
 
-Sets bounds to <a href='#SkRRect_MakeOval_oval'>oval</a>, x-axis radii to half <a href='#SkRRect_MakeOval_oval'>oval</a>.<a href='#SkRRect_width'>width</a>(), and all y-axis radii
-to half <a href='#SkRRect_MakeOval_oval'>oval</a>.<a href='#SkRRect_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>.
+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
 
 <table>  <tr>    <td><a name='SkRRect_MakeOval_oval'><code><strong>oval</strong></code></a></td>
-    <td>bounds of <a href='undocumented#Oval'>Oval</a></td>
+    <td>bounds of <a href='#SkRRect_MakeOval_oval'>oval</a></td>
   </tr>
 </table>
 
 ### Return Value
 
-<a href='undocumented#Oval'>Oval</a>
+<a href='#SkRRect_MakeOval_oval'>oval</a>
 
 ### Example
 
@@ -696,11 +648,11 @@
 </pre>
 
 Sets to rounded rectangle with the same radii for all four corners.
-If rect 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 rect.<a href='#SkRRect_width'>width</a>() and <a href='#SkRRect_MakeRectXY_yRad'>yRad</a> is at least half
-rect.<a href='#SkRRect_height'>height</a>(), sets to <a href='#SkRRect_kOval_Type'>kOval Type</a>.
-Otherwise, sets to <a href='#SkRRect_kSimple_Type'>kSimple 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
 
@@ -735,14 +687,14 @@
 void <a href='#SkRRect_setOval'>setOval</a>(const <a href='SkRect_Reference#SkRect'>SkRect</a>& oval)
 </pre>
 
-Sets bounds to <a href='#SkRRect_setOval_oval'>oval</a>, x-axis radii to half <a href='#SkRRect_setOval_oval'>oval</a>.<a href='#SkRRect_width'>width</a>(), and all y-axis radii
-to half <a href='#SkRRect_setOval_oval'>oval</a>.<a href='#SkRRect_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>.
+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
 
 <table>  <tr>    <td><a name='SkRRect_setOval_oval'><code><strong>oval</strong></code></a></td>
-    <td>bounds of <a href='undocumented#Oval'>Oval</a></td>
+    <td>bounds of <a href='#SkRRect_setOval_oval'>oval</a></td>
   </tr>
 </table>
 
@@ -763,11 +715,11 @@
 </pre>
 
 Sets to rounded rectangle with the same radii for all four corners.
-If rect 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 rect.<a href='#SkRRect_width'>width</a>() and <a href='#SkRRect_setRectXY_yRad'>yRad</a> is at least half
-rect.<a href='#SkRRect_height'>height</a>(), sets to <a href='#SkRRect_kOval_Type'>kOval Type</a>.
-Otherwise, sets to <a href='#SkRRect_kSimple_Type'>kSimple 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
 
@@ -799,19 +751,19 @@
                   <a href='undocumented#SkScalar'>SkScalar</a> bottomRad)
 </pre>
 
-Sets bounds to rect. 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>),
+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 rect 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 rect.<a href='#SkRRect_width'>width</a>(), and
-<a href='#SkRRect_setNinePatch_topRad'>topRad</a> and <a href='#SkRRect_setNinePatch_bottomRad'>bottomRad</a> are equal at least half rect.<a href='#SkRRect_height'>height</a>(), sets to <a href='#SkRRect_kOval_Type'>kOval 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>.
+sets to <a href='#SkRRect_kSimple_Type'>kSimple_Type</a>. Otherwise, sets to <a href='#SkRRect_kNinePatch_Type'>kNinePatch_Type</a>.
 
-Nine patch refers to the nine parts defined by the radii: one center rectangle,
-four edge patches, and four corner patches.
+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
 
@@ -848,14 +800,14 @@
 void <a href='#SkRRect_setRectRadii'>setRectRadii</a>(const <a href='SkRect_Reference#SkRect'>SkRect</a>& rect, const <a href='SkPoint_Reference#SkVector'>SkVector</a> radii[4])
 </pre>
 
-Sets bounds to rect. Sets radii array for individual control of all for corners.
+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 rect is empty, sets to <a href='#SkRRect_kEmpty_Type'>kEmpty Type</a>.
-Otherwise, if one of each corner radii are zero, sets to <a href='#SkRRect_kRect_Type'>kRect Type</a>.
-Otherwise, if all x-axis radii are equal and at least half rect.<a href='#SkRRect_width'>width</a>(), and
-all y-axis radii are equal at least half rect.<a href='#SkRRect_height'>height</a>(), sets to <a href='#SkRRect_kOval_Type'>kOval Type</a>.
-Otherwise, if all x-axis radii are equal, and all y-axis radii are equal,
-sets to <a href='#SkRRect_kSimple_Type'>kSimple Type</a>. Otherwise, sets to <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
 
@@ -863,7 +815,7 @@
     <td>bounds of rounded rectangle</td>
   </tr>
   <tr>    <td><a name='SkRRect_setRectRadii_radii'><code><strong>radii</strong></code></a></td>
-    <td>corner x-axis and y-axis radii</td>
+    <td>corner x-axis and y-axis <a href='#SkRRect_setRectRadii_radii'>radii</a></td>
   </tr>
 </table>
 
@@ -940,7 +892,7 @@
 
 Returns bounds. Bounds may have zero width or zero height. Bounds right is
 greater than or equal to left; bounds bottom is greater than or equal to top.
-Result is identical to <a href='#SkRRect_getBounds'>getBounds</a>.
+Result is identical to <a href='#SkRRect_getBounds'>getBounds</a>().
 
 ### Return Value
 
@@ -974,26 +926,27 @@
 <a href='SkPoint_Reference#SkVector'>SkVector</a> <a href='#SkRRect_radii'>radii</a>(<a href='#SkRRect_Corner'>Corner</a> corner) const
 </pre>
 
-Returns <a href='undocumented#Scalar'>Scalar</a> pair for radius of curve on x-axis and y-axis for one <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
 
 <table>  <tr>    <td><a name='SkRRect_radii_corner'><code><strong>corner</strong></code></a></td>
-    <td>one of: <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></td>
+    <td>one of: <a href='#SkRRect_kUpperLeft_Corner'>kUpperLeft_Corner</a>, <a href='#SkRRect_kUpperRight_Corner'>kUpperRight_Corner</a>,</td>
   </tr>
 </table>
 
+<a href='#SkRRect_kLowerRight_Corner'>kLowerRight_Corner</a>, <a href='#SkRRect_kLowerLeft_Corner'>kLowerLeft_Corner</a>
+
 ### Return Value
 
-x-axis and y-axis radii for one <a href='#SkRRect_radii_corner'>corner</a>
+x-axis and y-axis radii for one <a href='#SkRRect_radii()_corner'>corner</a>
 
 ### 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> width.
-Small scaled values are halved to scale in proportion to the y-axis <a href='#SkRRect_radii_corner'>corner</a>
+Small scaled values are halved to scale in proportion to the y-axis corner
 radius, which is twice the bounds height.
 </div>
 
@@ -1023,7 +976,7 @@
 
 Returns bounds. Bounds may have zero width or zero height. Bounds right is
 greater than or equal to left; bounds bottom is greater than or equal to top.
-Result is identical to <a href='#SkRRect_rect'>rect</a>().
+Result is identical to <a href='#SkRRect_rect'>rect()</a>.
 
 ### Return Value
 
@@ -1045,18 +998,18 @@
 bool <a href='#SkRRect_equal_operator'>operator==(const SkRRect& a, const SkRRect& b)</a>
 </pre>
 
-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>.
+Returns true if bounds and radii in <a href='#SkRRect_operator==(const SkRRect& a, const SkRRect& b)_a'>a</a> are equal to bounds and radii in <a href='#SkRRect_operator==(const SkRRect& a, const SkRRect& b)_b'>b</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 width different signs.
+<a href='#SkRRect_operator==(const SkRRect& a, const SkRRect& b)_a'>a</a> and <a href='#SkRRect_operator==(const SkRRect& a, const SkRRect& b)_b'>b</a> are not equal if either contain NaN. <a href='#SkRRect_operator==(const SkRRect& a, const SkRRect& b)_a'>a</a> and <a href='#SkRRect_operator==(const SkRRect& a, const SkRRect& b)_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#Rect'>Rect</a> bounds and radii to compare</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#Rect'>Rect</a> bounds and radii to compare</td>
+    <td><a href='SkRect_Reference#SkRect'>SkRect</a> bounds and radii to compare</td>
   </tr>
 </table>
 
@@ -1080,18 +1033,18 @@
 bool <a href='#SkRRect_notequal_operator'>operator!=(const SkRRect& a, const SkRRect& b)</a>
 </pre>
 
-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>.
+Returns true if bounds and radii in <a href='#SkRRect_operator!=(const SkRRect& a, const SkRRect& b)_a'>a</a> are not equal to bounds and radii in <a href='#SkRRect_operator!=(const SkRRect& a, const SkRRect& b)_b'>b</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 width different signs.
+<a href='#SkRRect_operator!=(const SkRRect& a, const SkRRect& b)_a'>a</a> and <a href='#SkRRect_operator!=(const SkRRect& a, const SkRRect& b)_b'>b</a> are not equal if either contain NaN. <a href='#SkRRect_operator!=(const SkRRect& a, const SkRRect& b)_a'>a</a> and <a href='#SkRRect_operator!=(const SkRRect& a, const SkRRect& b)_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#Rect'>Rect</a> bounds and radii to compare</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#Rect'>Rect</a> bounds and radii to compare</td>
+    <td><a href='SkRect_Reference#SkRect'>SkRect</a> bounds and radii to compare</td>
   </tr>
 </table>
 
@@ -1115,25 +1068,25 @@
 void <a href='#SkRRect_inset'>inset</a>(<a href='undocumented#SkScalar'>SkScalar</a> dx, <a href='undocumented#SkScalar'>SkScalar</a> dy, <a href='#SkRRect'>SkRRect</a>* dst) const
 </pre>
 
-Copies <a href='#RRect'>Round Rect</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='#RRect'>Round Rect</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> 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
+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> or <a href='#SkRRect_inset_dy'>dy</a> cause the bounds to become infinite, <a href='#SkRRect_inset_dst'>dst</a> bounds is zeroed.
+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>().fLeft, and subtracted from <a href='#SkRRect_rect'>rect</a>().fRight</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>().fTop, and subtracted from <a href='#SkRRect_rect'>rect</a>().fBottom</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>
@@ -1170,10 +1123,10 @@
 ### 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>().fLeft, and subtracted from <a href='#SkRRect_rect'>rect</a>().fRight</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>().fTop, and subtracted from <a href='#SkRRect_rect'>rect</a>().fBottom</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>
 
@@ -1193,24 +1146,24 @@
 void <a href='#SkRRect_outset'>outset</a>(<a href='undocumented#SkScalar'>SkScalar</a> dx, <a href='undocumented#SkScalar'>SkScalar</a> dy, <a href='#SkRRect'>SkRRect</a>* dst) const
 </pre>
 
-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
+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> 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
+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> or <a href='#SkRRect_outset_dy'>dy</a> cause the bounds to become infinite, <a href='#SkRRect_outset_dst'>dst</a> bounds is zeroed.
+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>().fLeft, and added to <a href='#SkRRect_rect'>rect</a>().fRight</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>().fTop, and added to <a href='#SkRRect_rect'>rect</a>().fBottom</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>
@@ -1247,10 +1200,10 @@
 ### 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>().fLeft, and added to <a href='#SkRRect_rect'>rect</a>().fRight</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>().fTop, and added to <a href='#SkRRect_rect'>rect</a>().fBottom</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>
 
@@ -1270,15 +1223,15 @@
 void <a href='#SkRRect_offset'>offset</a>(<a href='undocumented#SkScalar'>SkScalar</a> dx, <a href='undocumented#SkScalar'>SkScalar</a> dy)
 </pre>
 
-Translates <a href='#RRect'>Round Rect</a> by (<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>().fLeft and <a href='#SkRRect_rect'>rect</a>().fRight</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>().fTop and <a href='#SkRRect_rect'>rect</a>().fBottom</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>
 
@@ -1298,21 +1251,21 @@
 <a href='#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='#RRect'>Round Rect</a> translated by (<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>().fLeft and <a href='#SkRRect_rect'>rect</a>().fRight</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>().fTop and <a href='#SkRRect_rect'>rect</a>().fBottom</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='#RRect'>Round Rect</a> bounds offset by (<a href='#SkRRect_makeOffset_dx'>dx</a>, <a href='#SkRRect_makeOffset_dy'>dy</a>), with unchanged corner radii
+<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
 
@@ -1330,8 +1283,8 @@
 bool <a href='#SkRRect_contains'>contains</a>(const <a href='SkRect_Reference#SkRect'>SkRect</a>& rect) const
 </pre>
 
-Returns true if rect is inside the bounds and corner radii, and if
-<a href='#RRect'>Round Rect</a> and rect are not empty.
+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
 
@@ -1342,7 +1295,7 @@
 
 ### Return Value
 
-true if <a href='#RRect'>Round Rect</a> contains rect
+true if <a href='SkRRect_Reference#SkRRect'>SkRRect</a> contains <a href='#SkRRect_contains()_rect'>rect</a>
 
 ### Example
 
@@ -1360,14 +1313,14 @@
 bool <a href='#SkRRect_isValid'>isValid</a>() const
 </pre>
 
-Returns true if bounds and radii values are finite and describe a <a href='#RRect'>Round Rect</a>
-<a href='#SkRRect_Type'>Type</a> that matches <a href='#SkRRect_getType'>getType</a>. All <a href='#RRect'>Round Rect</a> methods construct valid types,
-even if the input values are not valid. Invalid <a href='#RRect'>Round Rect</a> data can only
+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> 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
 
-true if bounds and radii match <a href='#SkRRect_type'>type</a>()
+true if bounds and radii match <a href='#SkRRect_type'>type()</a>
 
 ### Example
 
@@ -1400,13 +1353,13 @@
 size_t <a href='#SkRRect_writeToMemory'>writeToMemory</a>(void* buffer) const
 </pre>
 
-Writes <a href='#RRect'>Round Rect</a> to <a href='#SkRRect_writeToMemory_buffer'>buffer</a>. Writes <a href='#SkRRect_kSizeInMemory'>kSizeInMemory</a> bytes, and returns
+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
 
 <table>  <tr>    <td><a name='SkRRect_writeToMemory_buffer'><code><strong>buffer</strong></code></a></td>
-    <td>storage for <a href='#RRect'>Round Rect</a></td>
+    <td>storage for <a href='SkRRect_Reference#SkRRect'>SkRRect</a></td>
   </tr>
 </table>
 
@@ -1430,7 +1383,7 @@
 size_t <a href='#SkRRect_readFromMemory'>readFromMemory</a>(const void* buffer, size_t length)
 </pre>
 
-Reads <a href='#RRect'>Round Rect</a> from <a href='#SkRRect_readFromMemory_buffer'>buffer</a>, reading <a href='#SkRRect_kSizeInMemory'>kSizeInMemory</a> bytes.
+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.
 
@@ -1440,7 +1393,7 @@
     <td>memory to read from</td>
   </tr>
   <tr>    <td><a name='SkRRect_readFromMemory_length'><code><strong>length</strong></code></a></td>
-    <td>size of <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>
 
@@ -1464,11 +1417,11 @@
 bool <a href='#SkRRect_transform'>transform</a>(const <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a>& matrix, <a href='#SkRRect'>SkRRect</a>* dst) const
 </pre>
 
-Transforms by <a href='#RRect'>Round Rect</a> by <a href='#SkRRect_transform_matrix'>matrix</a>, storing result in <a href='#SkRRect_transform_dst'>dst</a>.
-Returns true if <a href='#RRect'>Round Rect</a> transformed can be represented by another <a href='#RRect'>Round Rect</a>.
-Returns false if <a href='#SkRRect_transform_matrix'>matrix</a> contains transformations other than scale and translate.
+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='#RRect'>Round Rect</a> equals <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
 
@@ -1476,7 +1429,7 @@
     <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'>SkRRect</a> to store the result</td>
+    <td><a href='SkRRect_Reference#SkRRect'>SkRRect</a> to store the result</td>
   </tr>
 </table>
 
@@ -1500,9 +1453,9 @@
 void <a href='#SkRRect_dump'>dump</a>(bool asHex) const
 </pre>
 
-Writes text representation of <a href='#RRect'>Round Rect</a> to standard output.
-Set <a href='#SkRRect_dump_asHex'>asHex</a> true to generate exact binary representations
-of floating point numbers.
+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
 
@@ -1551,10 +1504,10 @@
 void <a href='#SkRRect_dump'>dump</a>() const
 </pre>
 
-Writes text representation of <a href='#RRect'>Round Rect</a> to standard output. The representation
-may be directly compiled as C++ code. Floating point values are written
+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='#RRect'>Round Rect</a> from output.
+<a href='SkRRect_Reference#SkRRect'>SkRRect</a> from output.
 
 ### Example
 
@@ -1587,10 +1540,10 @@
 void <a href='#SkRRect_dumpHex'>dumpHex</a>() const
 </pre>
 
-Writes text representation of <a href='#RRect'>Round Rect</a> to standard output. The representation
-may be directly compiled as C++ code. Floating point values are written
+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='#RRect'>Round Rect</a>.
+original <a href='SkRRect_Reference#SkRRect'>SkRRect</a>.
 
 ### Example
 
diff --git a/site/user/api/SkRect_Reference.md b/site/user/api/SkRect_Reference.md
index 4129b38..8fe1fda 100644
--- a/site/user/api/SkRect_Reference.md
+++ b/site/user/api/SkRect_Reference.md
@@ -142,7 +142,7 @@
 static constexpr <a href='#SkRect'>SkRect</a> <a href='#SkRect_MakeEmpty'>MakeEmpty</a>()
 </pre>
 
-Returns constructed <a href='#Rect'>Rect</a> set to (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.
@@ -178,19 +178,19 @@
 static constexpr <a href='#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='#Rect'>Rect</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
+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='#Rect'>Rect</a> cannot
+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> width of constructed <a href='#Rect'>Rect</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> height of constructed <a href='#Rect'>Rect</a></td>
+    <td><a href='undocumented#SkScalar'>SkScalar</a> height of constructed <a href='SkRect_Reference#SkRect'>SkRect</a></td>
   </tr>
 </table>
 
@@ -222,7 +222,7 @@
 static <a href='#SkRect'>SkRect</a> <a href='#SkRect_MakeIWH'>MakeIWH</a>(int w, int h)
 </pre>
 
-Returns constructed <a href='#Rect'>Rect</a> set to integer values (0, 0, <a href='#SkRect_MakeIWH_w'>w</a>, <a href='#SkRect_MakeIWH_h'>h</a>). Does not validate
+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.
@@ -231,10 +231,10 @@
 ### Parameters
 
 <table>  <tr>    <td><a name='SkRect_MakeIWH_w'><code><strong>w</strong></code></a></td>
-    <td>integer width of constructed <a href='#Rect'>Rect</a></td>
+    <td>integer width of constructed <a href='SkRect_Reference#SkRect'>SkRect</a></td>
   </tr>
   <tr>    <td><a name='SkRect_MakeIWH_h'><code><strong>h</strong></code></a></td>
-    <td>integer height of constructed <a href='#Rect'>Rect</a></td>
+    <td>integer height of constructed <a href='SkRect_Reference#SkRect'>SkRect</a></td>
   </tr>
 </table>
 
@@ -267,19 +267,19 @@
 static constexpr <a href='#SkRect'>SkRect</a> <a href='#SkRect_MakeSize'>MakeSize</a>(const <a href='undocumented#SkSize'>SkSize</a>& size)
 </pre>
 
-Returns constructed <a href='#Rect'>Rect</a> set to (0, 0, <a href='#SkRect_MakeSize_size'>size</a>.<a href='#SkRect_width'>width</a>(), <a href='#SkRect_MakeSize_size'>size</a>.<a href='#SkRect_height'>height</a>()). Does not
-validate input; <a href='#SkRect_MakeSize_size'>size</a>.<a href='#SkRect_width'>width</a>() or <a href='#SkRect_MakeSize_size'>size</a>.<a href='#SkRect_height'>height</a>() may be negative.
+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> values for <a href='#Rect'>Rect</a> width and height</td>
+    <td><a href='undocumented#SkScalar'>SkScalar</a> values for <a href='SkRect_Reference#SkRect'>SkRect</a> width and height</td>
   </tr>
 </table>
 
 ### Return Value
 
-bounds (0, 0, <a href='#SkRect_MakeSize_size'>size</a>.<a href='#SkRect_width'>width</a>(), <a href='#SkRect_MakeSize_size'>size</a>.<a href='#SkRect_height'>height</a>())
+bounds (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>)
 
 ### Example
 
@@ -306,7 +306,7 @@
 static constexpr <a href='#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='#Rect'>Rect</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='#Rect'>Rect</a> may
+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
@@ -402,19 +402,19 @@
 static <a href='#SkRect'>SkRect</a> <a href='#SkRect_Make'>Make</a>(const <a href='undocumented#SkISize'>SkISize</a>& size)
 </pre>
 
-Returns constructed <a href='SkIRect_Reference#SkIRect'>SkIRect</a> set to (0, 0, <a href='#SkRect_Make_size'>size</a>.<a href='#SkRect_width'>width</a>(), <a href='#SkRect_Make_size'>size</a>.<a href='#SkRect_height'>height</a>()).
-Does not validate input; <a href='#SkRect_Make_size'>size</a>.<a href='#SkRect_width'>width</a>() or <a href='#SkRect_Make_size'>size</a>.<a href='#SkRect_height'>height</a>() may be negative.
+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'>SkRect</a> width and height</td>
+    <td>integer values for <a href='SkRect_Reference#SkRect'>SkRect</a> width and height</td>
   </tr>
 </table>
 
 ### Return Value
 
-bounds (0, 0, <a href='#SkRect_Make_size'>size</a>.<a href='#SkRect_width'>width</a>(), <a href='#SkRect_Make_size'>size</a>.<a href='#SkRect_height'>height</a>())
+bounds (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>)
 
 ### Example
 
@@ -440,7 +440,7 @@
 static <a href='#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#IRect'>IRect</a> set to <a href='#SkRect_Make_2_irect'>irect</a>, promoting integers to <a href='undocumented#Scalar'>Scalar</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>.
 
@@ -474,12 +474,12 @@
 </pre>
 
 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>().
+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>() or <a href='#SkRect_height'>height</a>() are not positive and valid
+true if <a href='#SkRect_width'>width()</a> or <a href='#SkRect_height'>height()</a> are zero or negative
 
 ### Example
 
@@ -509,12 +509,12 @@
 </pre>
 
 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>().
+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>() or <a href='#SkRect_height'>height</a>() are zero or positive
+true if <a href='#SkRect_width'>width()</a> or <a href='#SkRect_height'>height()</a> are zero or positive
 
 ### Example
 
@@ -543,8 +543,8 @@
 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> or larger,
-and <a href='undocumented#SK_ScalarMax'>SK ScalarMax</a> or smaller.
+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
 
@@ -576,8 +576,8 @@
 <a href='undocumented#SkScalar'>SkScalar</a>    <a href='#SkRect_x'>x</a>() const
 </pre>
 
-Returns left edge of <a href='#Rect'>Rect</a>, if sorted. Call <a href='#SkRect_isSorted'>isSorted</a> to see if <a href='#Rect'>Rect</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.
+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
 
@@ -608,8 +608,8 @@
 <a href='undocumented#SkScalar'>SkScalar</a>    <a href='#SkRect_y'>y</a>() const
 </pre>
 
-Returns top edge of <a href='#Rect'>Rect</a>, if sorted. Call <a href='#SkRect_isEmpty'>isEmpty</a> to see if <a href='#Rect'>Rect</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.
+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
 
@@ -640,8 +640,8 @@
 <a href='undocumented#SkScalar'>SkScalar</a>    <a href='#SkRect_left'>left</a>() const
 </pre>
 
-Returns left edge of <a href='#Rect'>Rect</a>, if sorted. Call <a href='#SkRect_isSorted'>isSorted</a> to see if <a href='#Rect'>Rect</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.
+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
 
@@ -672,8 +672,8 @@
 <a href='undocumented#SkScalar'>SkScalar</a>    <a href='#SkRect_top'>top</a>() const
 </pre>
 
-Returns top edge of <a href='#Rect'>Rect</a>, if sorted. Call <a href='#SkRect_isEmpty'>isEmpty</a> to see if <a href='#Rect'>Rect</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.
+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
 
@@ -704,8 +704,8 @@
 <a href='undocumented#SkScalar'>SkScalar</a>    <a href='#SkRect_right'>right</a>() const
 </pre>
 
-Returns right edge of <a href='#Rect'>Rect</a>, if sorted. Call <a href='#SkRect_isSorted'>isSorted</a> to see if <a href='#Rect'>Rect</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.
+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
 
@@ -736,8 +736,8 @@
 <a href='undocumented#SkScalar'>SkScalar</a>    <a href='#SkRect_bottom'>bottom</a>() const
 </pre>
 
-Returns bottom edge of <a href='#Rect'>Rect</a>, if sorted. Call <a href='#SkRect_isEmpty'>isEmpty</a> to see if <a href='#Rect'>Rect</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.
+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
 
@@ -768,7 +768,7 @@
 <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='#Rect'>Rect</a> is sorted, or if
+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
@@ -801,7 +801,7 @@
 <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='#Rect'>Rect</a> is sorted, or if
+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
@@ -834,12 +834,12 @@
 <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='#Rect'>Rect</a>
-is sorted. Result may overflow to infinity if <a href='#Rect'>Rect</a> is far from the origin.
+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> is far from the origin.
 
 ### Return Value
 
-midpoint in x
+midpoint on x-axis
 
 ### Example
 
@@ -868,12 +868,12 @@
 <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='#Rect'>Rect</a>
+Returns average of top edge and bottom edge. Result does not change if <a href='SkRect_Reference#SkRect'>SkRect</a>
 is sorted.
 
 ### Return Value
 
-midpoint in y
+midpoint on y-axis
 
 ### Example
 
@@ -901,19 +901,19 @@
 bool <a href='#SkRect_equal_operator'>operator==(const SkRect& a, const SkRect& b)</a>
 </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>, and <a href='#SkRect_fBottom'>fBottom</a>; are
-equal to the corresponding members in <a href='#SkRect_equal_operator_b'>b</a>.
+Returns true if all members in <a href='#SkRect_operator==(const SkRect& a, const SkRect& b)_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_operator==(const SkRect& a, const SkRect& b)_b'>b</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 width different signs.
+<a href='#SkRect_operator==(const SkRect& a, const SkRect& b)_a'>a</a> and <a href='#SkRect_operator==(const SkRect& a, const SkRect& b)_b'>b</a> are not equal if either contain NaN. <a href='#SkRect_operator==(const SkRect& a, const SkRect& b)_a'>a</a> and <a href='#SkRect_operator==(const SkRect& a, const SkRect& b)_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='#Rect'>Rect</a> to compare</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='#Rect'>Rect</a> to compare</td>
+    <td><a href='SkRect_Reference#SkRect'>SkRect</a> to compare</td>
   </tr>
 </table>
 
@@ -948,19 +948,19 @@
 bool <a href='#SkRect_notequal_operator'>operator!=(const SkRect& a, const SkRect& b)</a>
 </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>, and <a href='#SkRect_fBottom'>fBottom</a>; does not
-equal the corresponding members in <a href='#SkRect_notequal_operator_b'>b</a>.
+Returns true if any in <a href='#SkRect_operator!=(const SkRect& a, const SkRect& b)_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_operator!=(const SkRect& a, const SkRect& b)_b'>b</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 width different signs.
+<a href='#SkRect_operator!=(const SkRect& a, const SkRect& b)_a'>a</a> and <a href='#SkRect_operator!=(const SkRect& a, const SkRect& b)_b'>b</a> are not equal if either contain NaN. <a href='#SkRect_operator!=(const SkRect& a, const SkRect& b)_a'>a</a> and <a href='#SkRect_operator!=(const SkRect& a, const SkRect& b)_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='#Rect'>Rect</a> to compare</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='#Rect'>Rect</a> to compare</td>
+    <td><a href='SkRect_Reference#SkRect'>SkRect</a> to compare</td>
   </tr>
 </table>
 
@@ -1031,8 +1031,8 @@
 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='SkPoint_Reference#Point'>Point</a> array 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='SkPoint_Reference#Point'>Point</a> array contains an infinity or NaN, sets to (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> 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>.
@@ -1040,7 +1040,7 @@
 ### Parameters
 
 <table>  <tr>    <td><a name='SkRect_setBounds_pts'><code><strong>pts</strong></code></a></td>
-    <td><a href='SkPoint_Reference#Point'>Point</a> array</td>
+    <td><a href='SkPath_Reference#Point_Array'>SkPoint array</a></td>
   </tr>
   <tr>    <td><a name='SkRect_setBounds_count'><code><strong>count</strong></code></a></td>
     <td>entries in array</td>
@@ -1075,9 +1075,9 @@
 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='SkPoint_Reference#Point'>Point</a> array 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='SkPoint_Reference#Point'>Point</a> array contains an infinity or NaN; in these cases
-sets <a href='#Rect'>Rect</a> to (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> 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>.
@@ -1085,7 +1085,7 @@
 ### Parameters
 
 <table>  <tr>    <td><a name='SkRect_setBoundsCheck_pts'><code><strong>pts</strong></code></a></td>
-    <td><a href='SkPoint_Reference#Point'>Point</a> array</td>
+    <td><a href='SkPath_Reference#Point_Array'>SkPoint array</a></td>
   </tr>
   <tr>    <td><a name='SkRect_setBoundsCheck_count'><code><strong>count</strong></code></a></td>
     <td>entries in array</td>
@@ -1094,7 +1094,7 @@
 
 ### Return Value
 
-true if all <a href='SkPoint_Reference#Point'>Point</a> values are finite
+true if all <a href='SkPoint_Reference#SkPoint'>SkPoint</a> values are finite
 
 ### Example
 
@@ -1126,13 +1126,13 @@
 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#Point'>Point</a> <a href='#SkRect_setBoundsNoCheck_pts'>pts</a> array with <a href='#SkRect_setBoundsNoCheck_count'>count</a> entries. If any <a href='SkPoint_Reference#Point'>Point</a> in <a href='#SkRect_setBoundsNoCheck_pts'>pts</a>
-contains infinity or NaN, all <a href='#Rect'>Rect</a> dimensions are set to NaN.
+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
 
 <table>  <tr>    <td><a name='SkRect_setBoundsNoCheck_pts'><code><strong>pts</strong></code></a></td>
-    <td><a href='SkPoint_Reference#Point'>Point</a> array</td>
+    <td><a href='SkPath_Reference#Point_Array'>SkPoint array</a></td>
   </tr>
   <tr>    <td><a name='SkRect_setBoundsNoCheck_count'><code><strong>count</strong></code></a></td>
     <td>entries in array</td>
@@ -1155,7 +1155,7 @@
 void <a href='#SkRect_setEmpty'>setEmpty</a>()
 </pre>
 
-Sets <a href='#Rect'>Rect</a> to (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
@@ -1186,13 +1186,13 @@
 void <a href='#SkRect_set'>set</a>(const <a href='SkIRect_Reference#SkIRect'>SkIRect</a>& src)
 </pre>
 
-Sets <a href='#Rect'>Rect</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.
+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
 
 <table>  <tr>    <td><a name='SkRect_set_src'><code><strong>src</strong></code></a></td>
-    <td>integer <a href='#Rect'>Rect</a></td>
+    <td>integer <a href='SkRect_Reference#SkRect'>SkRect</a></td>
   </tr>
 </table>
 
@@ -1221,9 +1221,9 @@
 void <a href='#SkRect_set'>set</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='#Rect'>Rect</a> to (left, top, right, bottom).
-left and right are not sorted; left is not necessarily less than right.
-top and bottom are not sorted; top is not necessarily less than bottom.
+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
 
@@ -1266,9 +1266,9 @@
 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='#Rect'>Rect</a> to (left, top, right, bottom).
-left and right are not sorted; left is not necessarily less than right.
-top and bottom are not sorted; top is not necessarily less than bottom.
+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
 
@@ -1311,8 +1311,8 @@
 void <a href='#SkRect_set'>set</a>(const <a href='SkPoint_Reference#SkPoint'>SkPoint</a> pts[], int count)
 </pre>
 
-Sets to bounds of <a href='SkPoint_Reference#Point'>Point</a> array 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='SkPoint_Reference#Point'>Point</a> array contains an infinity or NaN, sets <a href='#Rect'>Rect</a> to (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> 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>.
@@ -1320,7 +1320,7 @@
 ### Parameters
 
 <table>  <tr>    <td><a name='SkRect_set_3_pts'><code><strong>pts</strong></code></a></td>
-    <td><a href='SkPoint_Reference#Point'>Point</a> array</td>
+    <td><a href='SkPath_Reference#Point_Array'>SkPoint array</a></td>
   </tr>
   <tr>    <td><a name='SkRect_set_3_count'><code><strong>count</strong></code></a></td>
     <td>entries in array</td>
@@ -1355,7 +1355,7 @@
 void <a href='#SkRect_set'>set</a>(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='#Rect'>Rect</a> enclosing <a href='SkPoint_Reference#Point'>Points</a> <a href='#SkRect_set_4_p0'>p0</a> and <a href='#SkRect_set_4_p1'>p1</a>. The result is
+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> and <a href='#SkRect_set_4_p1'>p1</a> may be swapped and have the same effect unless one contains NaN.
+<div><fiddle-embed name="ee72450381f768f3869153cdbeccdc3e"><div>p0 and p1 may be swapped and have the same effect unless one contains NaN.
 </div></fiddle-embed></div>
 
 ### See Also
@@ -1429,8 +1429,8 @@
 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='#Rect'>Rect</a> to (0, 0, width, height). Does not validate input;
-width or height may be negative.
+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
 
@@ -1469,10 +1469,10 @@
 void <a href='#SkRect_iset'>iset</a>(int left, int top, int right, int bottom)
 </pre>
 
-Sets <a href='#Rect'>Rect</a> to (left, top, right, bottom).
-All parameters are promoted from integer to <a href='undocumented#Scalar'>Scalar</a>.
-left and right are not sorted; left is not necessarily less than right.
-top and bottom are not sorted; top is not necessarily less than bottom.
+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> 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
 
@@ -1515,8 +1515,8 @@
 void <a href='#SkRect_isetWH'>isetWH</a>(int width, int height)
 </pre>
 
-Sets <a href='#Rect'>Rect</a> to (0, 0, width, height).
-width and height may be zero or negative. width and height are promoted from
+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
@@ -1556,12 +1556,12 @@
 <a href='#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='#Rect'>Rect</a> offset by (<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> is negative, <a href='#Rect'>Rect</a> returned is moved to the left.
-If <a href='#SkRect_makeOffset_dx'>dx</a> is positive, <a href='#Rect'>Rect</a> returned is moved to the right.
-If <a href='#SkRect_makeOffset_dy'>dy</a> is negative, <a href='#Rect'>Rect</a> returned is moved upward.
-If <a href='#SkRect_makeOffset_dy'>dy</a> is positive, <a href='#Rect'>Rect</a> returned is moved downward.
+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
 
@@ -1575,7 +1575,7 @@
 
 ### Return Value
 
-<a href='#Rect'>Rect</a> offset on axes, with original width and height
+<a href='SkRect_Reference#SkRect'>SkRect</a> offset on axes, with original width and height
 
 ### Example
 
@@ -1602,12 +1602,12 @@
 <a href='#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='#Rect'>Rect</a>, inset by (<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> is negative, <a href='#Rect'>Rect</a> returned is wider.
-If <a href='#SkRect_makeInset_dx'>dx</a> is positive, <a href='#Rect'>Rect</a> returned is narrower.
-If <a href='#SkRect_makeInset_dy'>dy</a> is negative, <a href='#Rect'>Rect</a> returned is taller.
-If <a href='#SkRect_makeInset_dy'>dy</a> is positive, <a href='#Rect'>Rect</a> returned is shorter.
+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
 
@@ -1621,7 +1621,7 @@
 
 ### Return Value
 
-<a href='#Rect'>Rect</a> inset symmetrically left and right, top and bottom
+<a href='SkRect_Reference#SkRect'>SkRect</a> inset symmetrically left and right, top and bottom
 
 ### Example
 
@@ -1648,12 +1648,12 @@
 <a href='#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='#Rect'>Rect</a>, outset by (<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> is negative, <a href='#Rect'>Rect</a> returned is narrower.
-If <a href='#SkRect_makeOutset_dx'>dx</a> is positive, <a href='#Rect'>Rect</a> returned is wider.
-If <a href='#SkRect_makeOutset_dy'>dy</a> is negative, <a href='#Rect'>Rect</a> returned is shorter.
-If <a href='#SkRect_makeOutset_dy'>dy</a> is positive, <a href='#Rect'>Rect</a> returned is taller.
+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
 
@@ -1667,7 +1667,7 @@
 
 ### Return Value
 
-<a href='#Rect'>Rect</a> outset symmetrically left and right, top and bottom
+<a href='SkRect_Reference#SkRect'>SkRect</a> outset symmetrically left and right, top and bottom
 
 ### Example
 
@@ -1694,12 +1694,12 @@
 void <a href='#SkRect_offset'>offset</a>(<a href='undocumented#SkScalar'>SkScalar</a> dx, <a href='undocumented#SkScalar'>SkScalar</a> dy)
 </pre>
 
-Offsets <a href='#Rect'>Rect</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>.
+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> is negative, moves <a href='#Rect'>Rect</a> to the left.
-If <a href='#SkRect_offset_dx'>dx</a> is positive, moves <a href='#Rect'>Rect</a> to the right.
-If <a href='#SkRect_offset_dy'>dy</a> is negative, moves <a href='#Rect'>Rect</a> upward.
-If <a href='#SkRect_offset_dy'>dy</a> is positive, moves <a href='#Rect'>Rect</a> downward.
+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
 
@@ -1735,18 +1735,18 @@
 void <a href='#SkRect_offset'>offset</a>(const <a href='SkPoint_Reference#SkPoint'>SkPoint</a>& delta)
 </pre>
 
-Offsets <a href='#Rect'>Rect</a> by adding <a href='#SkRect_offset_2_delta'>delta</a>.fX to <a href='#SkRect_fLeft'>fLeft</a>, <a href='#SkRect_fRight'>fRight</a>; and by adding <a href='#SkRect_offset_2_delta'>delta</a>.fY to
+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>.fX is negative, moves <a href='#Rect'>Rect</a> to the left.
-If <a href='#SkRect_offset_2_delta'>delta</a>.fX is positive, moves <a href='#Rect'>Rect</a> to the right.
-If <a href='#SkRect_offset_2_delta'>delta</a>.fY is negative, moves <a href='#Rect'>Rect</a> upward.
-If <a href='#SkRect_offset_2_delta'>delta</a>.fY is positive, moves <a href='#Rect'>Rect</a> downward.
+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
 
 <table>  <tr>    <td><a name='SkRect_offset_2_delta'><code><strong>delta</strong></code></a></td>
-    <td>added to <a href='#Rect'>Rect</a></td>
+    <td>added to <a href='SkRect_Reference#SkRect'>SkRect</a></td>
   </tr>
 </table>
 
@@ -1774,16 +1774,16 @@
 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='#Rect'>Rect</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
+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>, preserving <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>, preserving <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>
 
@@ -1811,12 +1811,12 @@
 void <a href='#SkRect_inset'>inset</a>(<a href='undocumented#SkScalar'>SkScalar</a> dx, <a href='undocumented#SkScalar'>SkScalar</a> dy)
 </pre>
 
-Insets <a href='#Rect'>Rect</a> by (<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> is positive, makes <a href='#Rect'>Rect</a> narrower.
-If <a href='#SkRect_inset_dx'>dx</a> is negative, makes <a href='#Rect'>Rect</a> wider.
-If <a href='#SkRect_inset_dy'>dy</a> is positive, makes <a href='#Rect'>Rect</a> shorter.
-If <a href='#SkRect_inset_dy'>dy</a> is negative, makes <a href='#Rect'>Rect</a> taller.
+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
 
@@ -1852,12 +1852,12 @@
 void <a href='#SkRect_outset'>outset</a>(<a href='undocumented#SkScalar'>SkScalar</a> dx, <a href='undocumented#SkScalar'>SkScalar</a> dy)
 </pre>
 
-Outsets <a href='#Rect'>Rect</a> by (<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> is positive, makes <a href='#Rect'>Rect</a> wider.
-If <a href='#SkRect_outset_dx'>dx</a> is negative, makes <a href='#Rect'>Rect</a> narrower.
-If <a href='#SkRect_outset_dy'>dy</a> is positive, makes <a href='#Rect'>Rect</a> taller.
-If <a href='#SkRect_outset_dy'>dy</a> is negative, makes <a href='#Rect'>Rect</a> shorter.
+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
 
@@ -1904,22 +1904,22 @@
 bool <a href='#SkRect_contains'>contains</a>(<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> <= x < <a href='#SkRect_fRight'>fRight</a> && <a href='#SkRect_fTop'>fTop</a> <= y < <a href='#SkRect_fBottom'>fBottom</a>.
-Returns false if <a href='#SkRect'>SkRect</a> is empty.
+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> is empty.
 
 ### Parameters
 
 <table>  <tr>    <td><a name='SkRect_contains_x'><code><strong>x</strong></code></a></td>
-    <td>test <a href='SkPoint_Reference#Point'>Point</a> x-coordinate</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#Point'>Point</a> y-coordinate</td>
+    <td>test <a href='SkPoint_Reference#SkPoint'>SkPoint</a> y-coordinate</td>
   </tr>
 </table>
 
 ### Return Value
 
-true if (x, y) is inside <a href='#Rect'>Rect</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
 
@@ -1947,21 +1947,21 @@
 bool <a href='#SkRect_contains'>contains</a>(const <a href='#SkRect'>SkRect</a>& r) const
 </pre>
 
-Returns true if <a href='#Rect'>Rect</a> contains <a href='#SkRect_contains_2_r'>r</a>.
-Returns false if <a href='#Rect'>Rect</a> is empty or <a href='#SkRect_contains_2_r'>r</a> is empty.
+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='#Rect'>Rect</a> contains <a href='#SkRect_contains_2_r'>r</a> when <a href='#Rect'>Rect</a> area completely includes <a href='#SkRect_contains_2_r'>r</a> area.
+<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='#Rect'>Rect</a> contained</td>
+    <td><a href='SkRect_Reference#SkRect'>SkRect</a> contained</td>
   </tr>
 </table>
 
 ### Return Value
 
-true if all sides of <a href='#Rect'>Rect</a> are outside <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
 
@@ -1989,21 +1989,21 @@
 bool <a href='#SkRect_contains'>contains</a>(const <a href='SkIRect_Reference#SkIRect'>SkIRect</a>& r) const
 </pre>
 
-Returns true if <a href='#Rect'>Rect</a> contains <a href='#SkRect_contains_3_r'>r</a>.
-Returns false if <a href='#Rect'>Rect</a> is empty or <a href='#SkRect_contains_3_r'>r</a> is empty.
+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='#Rect'>Rect</a> contains <a href='#SkRect_contains_3_r'>r</a> when <a href='#Rect'>Rect</a> area completely includes <a href='#SkRect_contains_3_r'>r</a> area.
+<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#IRect'>IRect</a> contained</td>
+    <td><a href='SkIRect_Reference#SkIRect'>SkIRect</a> contained</td>
   </tr>
 </table>
 
 ### Return Value
 
-true if all sides of <a href='#Rect'>Rect</a> are outside <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
 
@@ -2031,10 +2031,10 @@
 bool <a href='#SkRect_intersect'>intersect</a>(const <a href='#SkRect'>SkRect</a>& r)
 </pre>
 
-Returns true if <a href='#Rect'>Rect</a> intersects <a href='#SkRect_intersect_r'>r</a>, and sets <a href='#Rect'>Rect</a> to intersection.
-Returns false if <a href='#Rect'>Rect</a> does not intersect <a href='#SkRect_intersect_r'>r</a>, and leaves <a href='#Rect'>Rect</a> unchanged.
+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> or <a href='#Rect'>Rect</a> is empty, leaving <a href='#Rect'>Rect</a> unchanged.
+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,7 +2045,7 @@
 
 ### Return Value
 
-true if <a href='#SkRect_intersect_r'>r</a> and <a href='#Rect'>Rect</a> have area in common
+true if <a href='#SkRect_intersect()_r'>r</a> and <a href='SkRect_Reference#SkRect'>SkRect</a> have area in common
 
 ### Example
 
@@ -2074,33 +2074,33 @@
 bool <a href='#SkRect_intersect'>intersect</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>
 
-Constructs <a href='#Rect'>Rect</a> to intersect from (left, top, right, bottom). Does not sort
+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='#Rect'>Rect</a> intersects construction, and sets <a href='#Rect'>Rect</a> to intersection.
-Returns false if <a href='#Rect'>Rect</a> does not intersect construction, and leaves <a href='#Rect'>Rect</a> unchanged.
+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='#Rect'>Rect</a> is empty, leaving <a href='#Rect'>Rect</a> unchanged.
+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
 
 <table>  <tr>    <td><a name='SkRect_intersect_2_left'><code><strong>left</strong></code></a></td>
-    <td>x-axis minimum of constructed <a href='#Rect'>Rect</a></td>
+    <td>x-axis minimum of constructed <a href='SkRect_Reference#SkRect'>SkRect</a></td>
   </tr>
   <tr>    <td><a name='SkRect_intersect_2_top'><code><strong>top</strong></code></a></td>
-    <td>y-axis minimum of constructed <a href='#Rect'>Rect</a></td>
+    <td>y-axis minimum of constructed <a href='SkRect_Reference#SkRect'>SkRect</a></td>
   </tr>
   <tr>    <td><a name='SkRect_intersect_2_right'><code><strong>right</strong></code></a></td>
-    <td>x-axis maximum of constructed <a href='#Rect'>Rect</a></td>
+    <td>x-axis maximum of constructed <a href='SkRect_Reference#SkRect'>SkRect</a></td>
   </tr>
   <tr>    <td><a name='SkRect_intersect_2_bottom'><code><strong>bottom</strong></code></a></td>
-    <td>y-axis maximum of constructed <a href='#Rect'>Rect</a></td>
+    <td>y-axis maximum of constructed <a href='SkRect_Reference#SkRect'>SkRect</a></td>
   </tr>
 </table>
 
 ### Return Value
 
-true if construction and <a href='#Rect'>Rect</a> have area in common
+true if construction and <a href='SkRect_Reference#SkRect'>SkRect</a> have area in common
 
 ### Example
 
@@ -2129,18 +2129,18 @@
 bool <a href='#SkRect_intersect'>intersect</a>(const <a href='#SkRect'>SkRect</a>& a, const <a href='#SkRect'>SkRect</a>& b)
 </pre>
 
-Returns true if <a href='#SkRect_intersect_3_a'>a</a> intersects <a href='#SkRect_intersect_3_b'>b</a>, and sets <a href='#Rect'>Rect</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='#Rect'>Rect</a> unchanged.
+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> or <a href='#SkRect_intersect_3_b'>b</a> is empty, leaving <a href='#Rect'>Rect</a> unchanged.
+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='#Rect'>Rect</a> to intersect</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='#Rect'>Rect</a> to intersect</td>
+    <td><a href='SkRect_Reference#SkRect'>SkRect</a> to intersect</td>
   </tr>
 </table>
 
@@ -2172,31 +2172,31 @@
 bool <a href='#SkRect_intersects'>intersects</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) const
 </pre>
 
-Constructs <a href='#Rect'>Rect</a> to intersect from (left, top, right, bottom). Does not sort
+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='#Rect'>Rect</a> intersects construction.
-Returns false if either construction or <a href='#Rect'>Rect</a> is empty, or do not intersect.
+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
 
 <table>  <tr>    <td><a name='SkRect_intersects_left'><code><strong>left</strong></code></a></td>
-    <td>x-axis minimum of constructed <a href='#Rect'>Rect</a></td>
+    <td>x-axis minimum of constructed <a href='SkRect_Reference#SkRect'>SkRect</a></td>
   </tr>
   <tr>    <td><a name='SkRect_intersects_top'><code><strong>top</strong></code></a></td>
-    <td>y-axis minimum of constructed <a href='#Rect'>Rect</a></td>
+    <td>y-axis minimum of constructed <a href='SkRect_Reference#SkRect'>SkRect</a></td>
   </tr>
   <tr>    <td><a name='SkRect_intersects_right'><code><strong>right</strong></code></a></td>
-    <td>x-axis maximum of constructed <a href='#Rect'>Rect</a></td>
+    <td>x-axis maximum of constructed <a href='SkRect_Reference#SkRect'>SkRect</a></td>
   </tr>
   <tr>    <td><a name='SkRect_intersects_bottom'><code><strong>bottom</strong></code></a></td>
-    <td>y-axis maximum of constructed <a href='#Rect'>Rect</a></td>
+    <td>y-axis maximum of constructed <a href='SkRect_Reference#SkRect'>SkRect</a></td>
   </tr>
 </table>
 
 ### Return Value
 
-true if construction and <a href='#Rect'>Rect</a> have area in common
+true if construction and <a href='SkRect_Reference#SkRect'>SkRect</a> have area in common
 
 ### Example
 
@@ -2222,19 +2222,19 @@
 bool <a href='#SkRect_intersects'>intersects</a>(const <a href='#SkRect'>SkRect</a>& r) const
 </pre>
 
-Returns true if <a href='#Rect'>Rect</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='#Rect'>Rect</a> is empty, or do not intersect.
+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='#Rect'>Rect</a> to intersect</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> and <a href='#Rect'>Rect</a> have area in common
+true if <a href='#SkRect_intersects_2_r'>r</a> and <a href='SkRect_Reference#SkRect'>SkRect</a> have area in common
 
 ### Example
 
@@ -2266,10 +2266,10 @@
 ### Parameters
 
 <table>  <tr>    <td><a name='SkRect_Intersects_a'><code><strong>a</strong></code></a></td>
-    <td><a href='#Rect'>Rect</a> to intersect</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='#Rect'>Rect</a> to intersect</td>
+    <td><a href='SkRect_Reference#SkRect'>SkRect</a> to intersect</td>
   </tr>
 </table>
 
@@ -2303,27 +2303,27 @@
 void <a href='#SkRect_join'>join</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>
 
-Constructs <a href='#Rect'>Rect</a> to intersect from (left, top, right, bottom). Does not sort
+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='#Rect'>Rect</a> to the union of itself and the construction.
+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='#Rect'>Rect</a> is empty, sets
-<a href='#Rect'>Rect</a> to construction.
+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
 
 <table>  <tr>    <td><a name='SkRect_join_left'><code><strong>left</strong></code></a></td>
-    <td>x-axis minimum of constructed <a href='#Rect'>Rect</a></td>
+    <td>x-axis minimum of constructed <a href='SkRect_Reference#SkRect'>SkRect</a></td>
   </tr>
   <tr>    <td><a name='SkRect_join_top'><code><strong>top</strong></code></a></td>
-    <td>y-axis minimum of constructed <a href='#Rect'>Rect</a></td>
+    <td>y-axis minimum of constructed <a href='SkRect_Reference#SkRect'>SkRect</a></td>
   </tr>
   <tr>    <td><a name='SkRect_join_right'><code><strong>right</strong></code></a></td>
-    <td>x-axis maximum of constructed <a href='#Rect'>Rect</a></td>
+    <td>x-axis maximum of constructed <a href='SkRect_Reference#SkRect'>SkRect</a></td>
   </tr>
   <tr>    <td><a name='SkRect_join_bottom'><code><strong>bottom</strong></code></a></td>
-    <td>y-axis maximum of constructed <a href='#Rect'>Rect</a></td>
+    <td>y-axis maximum of constructed <a href='SkRect_Reference#SkRect'>SkRect</a></td>
   </tr>
 </table>
 
@@ -2351,15 +2351,15 @@
 void <a href='#SkRect_join'>join</a>(const <a href='#SkRect'>SkRect</a>& r)
 </pre>
 
-Sets <a href='#Rect'>Rect</a> to the union of itself and <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> is empty. Otherwise, if <a href='#Rect'>Rect</a> is empty, sets
-<a href='#Rect'>Rect</a> to <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
 
 <table>  <tr>    <td><a name='SkRect_join_2_r'><code><strong>r</strong></code></a></td>
-    <td>expansion <a href='#Rect'>Rect</a></td>
+    <td>expansion <a href='SkRect_Reference#SkRect'>SkRect</a></td>
   </tr>
 </table>
 
@@ -2387,17 +2387,17 @@
 void <a href='#SkRect_joinNonEmptyArg'>joinNonEmptyArg</a>(const <a href='#SkRect'>SkRect</a>& r)
 </pre>
 
-Sets <a href='#Rect'>Rect</a> to the union of itself and <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> is empty and SK_DEBUG is defined.
-If <a href='#Rect'>Rect</a> is empty, sets <a href='#Rect'>Rect</a> to <a href='#SkRect_joinNonEmptyArg_r'>r</a>.
+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> is empty.
 
 ### Parameters
 
 <table>  <tr>    <td><a name='SkRect_joinNonEmptyArg_r'><code><strong>r</strong></code></a></td>
-    <td>expansion <a href='#Rect'>Rect</a></td>
+    <td>expansion <a href='SkRect_Reference#SkRect'>SkRect</a></td>
   </tr>
 </table>
 
@@ -2427,14 +2427,14 @@
 void <a href='#SkRect_joinPossiblyEmptyRect'>joinPossiblyEmptyRect</a>(const <a href='#SkRect'>SkRect</a>& r)
 </pre>
 
-Sets <a href='#Rect'>Rect</a> to the union of itself and the construction.
+Sets <a href='SkRect_Reference#SkRect'>SkRect</a> to the union of itself and the construction.
 
-May produce incorrect results if <a href='#Rect'>Rect</a> or <a href='#SkRect_joinPossiblyEmptyRect_r'>r</a> is empty.
+May produce incorrect results if <a href='SkRect_Reference#SkRect'>SkRect</a> or <a href='#SkRect_joinPossiblyEmptyRect_r'>r</a> is empty.
 
 ### Parameters
 
 <table>  <tr>    <td><a name='SkRect_joinPossiblyEmptyRect_r'><code><strong>r</strong></code></a></td>
-    <td>expansion <a href='#Rect'>Rect</a></td>
+    <td>expansion <a href='SkRect_Reference#SkRect'>SkRect</a></td>
   </tr>
 </table>
 
@@ -2674,7 +2674,7 @@
 
 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.
+and <a href='#SkRect_width'>width()</a> and <a href='#SkRect_height'>height()</a> will be zero or positive.
 
 ### Example
 
@@ -2701,13 +2701,13 @@
 <a href='#SkRect'>SkRect</a> <a href='#SkRect_makeSorted'>makeSorted</a>() const
 </pre>
 
-Returns <a href='#Rect'>Rect</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
+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.
+and <a href='#SkRect_width'>width()</a> and <a href='#SkRect_height'>height()</a> will be zero or positive.
 
 ### Return Value
 
-sorted <a href='#Rect'>Rect</a>
+sorted <a href='SkRect_Reference#SkRect'>SkRect</a>
 
 ### Example
 
@@ -2734,7 +2734,7 @@
 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> in <a href='#Rect'>Rect</a>, to treat it as an array with four
+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
@@ -2765,8 +2765,8 @@
 void <a href='#SkRect_dump'>dump</a>(bool asHex) const
 </pre>
 
-Writes text representation of <a href='#Rect'>Rect</a> to standard output. <a href='#Set'>Set</a> <a href='#SkRect_dump_asHex'>asHex</a> to true to
-generate exact binary representations of floating point numbers.
+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
 
@@ -2803,9 +2803,9 @@
 void <a href='#SkRect_dump'>dump</a>() const
 </pre>
 
-Writes text representation of <a href='#Rect'>Rect</a> to standard output. The representation may be
-directly compiled as C++ code. Floating point values are written
-with limited precision; it may not be possible to reconstruct original <a href='#Rect'>Rect</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.
 
 ### Example
diff --git a/site/user/api/SkRegion_Reference.md b/site/user/api/SkRegion_Reference.md
index 821e9cb..3e76d20 100644
--- a/site/user/api/SkRegion_Reference.md
+++ b/site/user/api/SkRegion_Reference.md
@@ -137,12 +137,13 @@
 <a href='#SkRegion_Iterator_Iterator'>Iterator</a>()
 </pre>
 
-Initializes <a href='#SkRegion_Iterator_Iterator'>Iterator</a> with an empty <a href='#Region'>Region</a>. <a href='#SkRegion_Iterator_done'>done</a>() on <a href='#SkRegion_Iterator_Iterator'>Iterator</a> returns true.
-Call <a href='#SkRegion_Iterator_reset'>reset</a>() to initialized <a href='#SkRegion_Iterator_Iterator'>Iterator</a> at a later time.
+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> to initialized <a href='SkRegion_Reference#SkRegion'>SkRegion</a>::<a href='#SkRegion_Iterator'>Iterator</a> at a later time.
 
 ### Return Value
 
-empty <a href='#Region'>Region</a> ierator
+empty <a href='SkRegion_Reference#SkRegion'>SkRegion</a> iterator
 
 ### Example
 
@@ -168,18 +169,18 @@
 <a href='#SkRegion_Iterator_Iterator'>Iterator</a>(const <a href='#SkRegion'>SkRegion</a>& region)
 </pre>
 
-Sets <a href='#SkRegion_Iterator_Iterator'>Iterator</a> to return elements of <a href='SkIRect_Reference#IRect'>IRect</a> array in <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_Iterator(const SkRegion& region)_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='#Region'>Region</a> to iterate</td>
+    <td><a href='SkRegion_Reference#SkRegion'>SkRegion</a> to iterate</td>
   </tr>
 </table>
 
 ### Return Value
 
-<a href='#Region'>Region</a> iterator
+<a href='SkRegion_Reference#SkRegion'>SkRegion</a> iterator
 
 ### Example
 
@@ -205,12 +206,12 @@
 bool <a href='#SkRegion_Iterator_rewind'>rewind</a>()
 </pre>
 
-<a href='SkPoint_Reference#Point'>Points</a> <a href='#SkRegion_Iterator_Iterator'>Iterator</a> to start of <a href='#Region'>Region</a>.
-Returns true if <a href='#Region'>Region</a> was set; otherwise, returns false.
+<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='#Region'>Region</a> was set
+true if <a href='SkRegion_Reference#SkRegion'>SkRegion</a> was set
 
 ### Example
 
@@ -243,12 +244,12 @@
 void <a href='#SkRegion_Iterator_reset'>reset</a>(const <a href='#SkRegion'>SkRegion</a>& region)
 </pre>
 
-Resets iterator, using the new <a href='#Region'>Region</a>.
+Resets iterator, using the new <a href='SkRegion_Reference#SkRegion'>SkRegion</a>.
 
 ### Parameters
 
 <table>  <tr>    <td><a name='SkRegion_Iterator_reset_region'><code><strong>region</strong></code></a></td>
-    <td><a href='#Region'>Region</a> to iterate</td>
+    <td><a href='SkRegion_Reference#SkRegion'>SkRegion</a> to iterate</td>
   </tr>
 </table>
 
@@ -278,11 +279,11 @@
 bool <a href='#SkRegion_Iterator_done'>done</a>() const
 </pre>
 
-Returns true if <a href='#SkRegion_Iterator_Iterator'>Iterator</a> is pointing to final <a href='SkIRect_Reference#IRect'>IRect</a> in <a href='#Region'>Region</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 data parsing is complete
+true if <a href='undocumented#Data'>data</a> parsing is complete
 
 ### Example
 
@@ -309,7 +310,7 @@
 void <a href='#SkRegion_Iterator_next'>next</a>()
 </pre>
 
-Advances <a href='#SkRegion_Iterator_Iterator'>Iterator</a> to next <a href='SkIRect_Reference#IRect'>IRect</a> in <a href='#Region'>Region</a> if it is not done.
+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
 
@@ -336,12 +337,12 @@
 const <a href='SkIRect_Reference#SkIRect'>SkIRect</a>& <a href='#SkRegion_Iterator_rect'>rect</a>() const
 </pre>
 
-Returns <a href='SkIRect_Reference#IRect'>IRect</a> element in <a href='#Region'>Region</a>. Does not return predictable results if <a href='#Region'>Region</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='#Region'>Region</a> as <a href='SkIRect_Reference#IRect'>IRect</a>
+part of <a href='SkRegion_Reference#SkRegion'>SkRegion</a> as <a href='SkIRect_Reference#SkIRect'>SkIRect</a>
 
 ### Example
 
@@ -369,11 +370,11 @@
 const <a href='#SkRegion'>SkRegion</a>* <a href='#SkRegion_Iterator_rgn'>rgn</a>() const
 </pre>
 
-Returns <a href='#Region'>Region</a> if set; otherwise, returns nullptr.
+Returns <a href='SkRegion_Reference#SkRegion'>SkRegion</a> if set; otherwise, returns nullptr.
 
 ### Return Value
 
-iterated <a href='#Region'>Region</a>
+iterated <a href='SkRegion_Reference#SkRegion'>SkRegion</a>
 
 ### Example
 
@@ -408,12 +409,12 @@
 <a href='#SkRegion_Cliperator'>Cliperator</a>(const <a href='#SkRegion'>SkRegion</a>& region, const <a href='SkIRect_Reference#SkIRect'>SkIRect</a>& clip)
 </pre>
 
-Sets <a href='#SkRegion_Cliperator'>Cliperator</a> to return elements of <a href='SkIRect_Reference#IRect'>IRect</a> array in <a href='#Region'>Region</a> within <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_Cliperator(const SkRegion& region, const SkIRect& clip)_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='#Region'>Region</a> to iterate</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>
@@ -422,7 +423,7 @@
 
 ### Return Value
 
-<a href='#Region'>Region</a> iterator
+<a href='SkRegion_Reference#SkRegion'>SkRegion</a> iterator
 
 ### Example
 
@@ -448,11 +449,11 @@
 bool <a href='#SkRegion_Cliperator_done'>done</a>()
 </pre>
 
-Returns true if <a href='#SkRegion_Cliperator'>Cliperator</a> is pointing to final <a href='SkIRect_Reference#IRect'>IRect</a> in <a href='#Region'>Region</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 data parsing is complete
+true if <a href='undocumented#Data'>data</a> parsing is complete
 
 ### Example
 
@@ -479,7 +480,7 @@
 void  <a href='#SkRegion_Cliperator_next'>next</a>()
 </pre>
 
-Advances iterator to next <a href='SkIRect_Reference#IRect'>IRect</a> in <a href='#Region'>Region</a> contained by clip.
+Advances iterator to next <a href='SkIRect_Reference#SkIRect'>SkIRect</a> in <a href='SkRegion_Reference#SkRegion'>SkRegion</a> contained by clip.
 
 ### Example
 
@@ -506,13 +507,13 @@
 const <a href='SkIRect_Reference#SkIRect'>SkIRect</a>& <a href='#SkRegion_Cliperator_rect'>rect</a>() const
 </pre>
 
-Returns <a href='SkIRect_Reference#IRect'>IRect</a> element in <a href='#Region'>Region</a>, intersected with clip passed to <a href='#SkRegion_Cliperator'>Cliperator</a>
-constructor. Does not return predictable results if <a href='#Region'>Region</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='#Region'>Region</a> inside clip as <a href='SkIRect_Reference#IRect'>IRect</a>
+part of <a href='SkRegion_Reference#SkRegion'>SkRegion</a> inside clip as <a href='SkIRect_Reference#SkIRect'>SkIRect</a>
 
 ### Example
 
@@ -554,15 +555,15 @@
 <a href='#SkRegion_Spanerator'>Spanerator</a>(const <a href='#SkRegion'>SkRegion</a>& region, int y, int left, int right)
 </pre>
 
-Sets <a href='#SkRegion_Spanerator'>Spanerator</a> to return line segments in <a href='#Region'>Region</a> on scan line.
+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='#Region'>Region</a> to iterate</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 line to intersect</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>
@@ -574,7 +575,7 @@
 
 ### Return Value
 
-<a href='#Region'>Region</a> iterator
+<a href='SkRegion_Reference#SkRegion'>SkRegion</a> iterator
 
 ### Example
 
@@ -592,7 +593,7 @@
 bool <a href='#SkRegion_Spanerator_next'>next</a>(int* left, int* right)
 </pre>
 
-Advances iterator to next span intersecting <a href='#Region'>Region</a> within line segment provided
+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
@@ -634,12 +635,12 @@
 <a href='#SkRegion'>SkRegion</a>()
 </pre>
 
-Constructs an empty <a href='#Region'>Region</a>. <a href='#Region'>Region</a> is set to empty bounds
+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
 
-empty <a href='#Region'>Region</a>
+empty <a href='SkRegion_Reference#SkRegion'>SkRegion</a>
 
 ### Example
 
@@ -665,25 +666,25 @@
 <a href='#SkRegion'>SkRegion</a>(const <a href='#SkRegion'>SkRegion</a>& region)
 </pre>
 
-Constructs a copy of an existing <a href='#SkRegion_copy_const_SkRegion_region'>region</a>.
-Copy constructor makes two regions 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#Rect'>Rect</a> array is
+Constructs a copy of an existing <a href='#SkRegion_SkRegion(const SkRegion& region)_region'>region</a>.
+Copy constructor makes two <a href='SkRegion_Reference#Region'>regions</a> identical by value. Internally, <a href='#SkRegion_SkRegion(const SkRegion& region)_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='#Region'>Region</a> copy is very efficient and never allocates memory.
-<a href='#Region'>Regions</a> are always copied by value from the interface; the underlying shared
+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='#Region'>Region</a> to copy by value</td>
+    <td><a href='SkRegion_Reference#SkRegion'>SkRegion</a> to copy by value</td>
   </tr>
 </table>
 
 ### Return Value
 
-copy of <a href='#Region'>Region</a>
+copy of <a href='SkRegion_Reference#SkRegion'>SkRegion</a>
 
 ### Example
 
@@ -713,18 +714,18 @@
 explicit <a href='#SkRegion'>SkRegion</a>(const <a href='SkIRect_Reference#SkIRect'>SkIRect</a>& rect)
 </pre>
 
-Constructs a rectangular <a href='#Region'>Region</a> matching the bounds of <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_SkRegion(const SkIRect& rect)_rect'>rect</a>.
 
 ### Parameters
 
 <table>  <tr>    <td><a name='SkRegion_copy_const_SkIRect_rect'><code><strong>rect</strong></code></a></td>
-    <td>bounds of constructed <a href='#Region'>Region</a></td>
+    <td>bounds of constructed <a href='SkRegion_Reference#SkRegion'>SkRegion</a></td>
   </tr>
 </table>
 
 ### Return Value
 
-rectangular <a href='#Region'>Region</a>
+rectangular <a href='SkRegion_Reference#SkRegion'>SkRegion</a>
 
 ### Example
 
@@ -742,11 +743,11 @@
 <a href='#SkRegion_destructor'>~SkRegion</a>()
 </pre>
 
-Releases ownership of any shared data and deletes data if <a href='#Region'>Region</a> is sole owner.
+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='#Region'>Region</a> <a href='undocumented#Destructor'>Destructor</a>, but copy of original in region2 is unaffected.
+<div><fiddle-embed name="985ff654a6b67288d322c748132a088e"><div>delete calls <a href='#Region'>Region</a> destructor, but copy of original in region2 is unaffected.
 </div>
 
 #### Example Output
@@ -769,25 +770,25 @@
 <a href='#SkRegion'>SkRegion</a>& <a href='#SkRegion_copy_operator'>operator=(const SkRegion& region)</a>
 </pre>
 
-Constructs a copy of an existing <a href='#SkRegion_copy_operator_region'>region</a>.
-Makes two regions 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#Rect'>Rect</a> array is
+Constructs a copy of an existing <a href='#SkRegion_operator=(const SkRegion& region)_region'>region</a>.
+Makes two <a href='SkRegion_Reference#Region'>regions</a> identical by value. Internally, <a href='#SkRegion_operator=(const SkRegion& region)_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='#Region'>Region</a> copy is very efficient and never allocates memory.
-<a href='#Region'>Regions</a> are always copied by value from the interface; the underlying shared
+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='#Region'>Region</a> to copy by value</td>
+    <td><a href='SkRegion_Reference#SkRegion'>SkRegion</a> to copy by value</td>
   </tr>
 </table>
 
 ### Return Value
 
-<a href='#Region'>Region</a> to copy by value
+<a href='SkRegion_Reference#SkRegion'>SkRegion</a> to copy by value
 
 ### Example
 
@@ -814,19 +815,19 @@
 bool operator==(const SkRegion& other) const
 </pre>
 
-Compares <a href='#Region'>Region</a> and <a href='#SkRegion_equal1_operator_other'>other</a>; returns true if they enclose exactly
+Compares <a href='SkRegion_Reference#SkRegion'>SkRegion</a> and <a href='#SkRegion_operator==(const SkRegion& other)_const_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='#Region'>Region</a> to compare</td>
+    <td><a href='SkRegion_Reference#SkRegion'>SkRegion</a> to compare</td>
   </tr>
 </table>
 
 ### Return Value
 
-true if <a href='#Region'>Region</a> pair are equivalent
+true if <a href='SkRegion_Reference#SkRegion'>SkRegion</a> pair are equivalent
 
 ### Example
 
@@ -854,18 +855,18 @@
 bool operator!=(const SkRegion& other) const
 </pre>
 
-Compares <a href='#Region'>Region</a> and <a href='#SkRegion_notequal1_operator_other'>other</a>; returns true if they do not enclose the same area.
+Compares <a href='SkRegion_Reference#SkRegion'>SkRegion</a> and <a href='#SkRegion_operator!=(const SkRegion& other)_const_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='#Region'>Region</a> to compare</td>
+    <td><a href='SkRegion_Reference#SkRegion'>SkRegion</a> to compare</td>
   </tr>
 </table>
 
 ### Return Value
 
-true if <a href='#Region'>Region</a> pair are not equivalent
+true if <a href='SkRegion_Reference#SkRegion'>SkRegion</a> pair are not equivalent
 
 ### Example
 
@@ -893,25 +894,25 @@
 bool <a href='#SkRegion_set'>set</a>(const <a href='#SkRegion'>SkRegion</a>& src)
 </pre>
 
-Sets <a href='#Region'>Region</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='#Region'>Region</a> and <a href='#SkRegion_set_src'>src</a> identical by value. Internally,
-<a href='#Region'>Region</a> and <a href='#SkRegion_set_src'>src</a> share pointer values. The underlying <a href='SkRect_Reference#Rect'>Rect</a> array is
+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='#Region'>Region</a> copy is very efficient and never allocates memory.
-<a href='#Region'>Regions</a> are always copied by value from the interface; the underlying shared
+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='#Region'>Region</a> to copy</td>
+    <td><a href='SkRegion_Reference#SkRegion'>SkRegion</a> to copy</td>
   </tr>
 </table>
 
 ### Return Value
 
-copy of <a href='#SkRegion_set_src'>src</a>
+copy of <a href='#SkRegion_set()_src'>src</a>
 
 ### Example
 
@@ -938,12 +939,12 @@
 void <a href='#SkRegion_swap'>swap</a>(<a href='#SkRegion'>SkRegion</a>& other)
 </pre>
 
-Exchanges <a href='SkIRect_Reference#IRect'>IRect</a> array of <a href='#Region'>Region</a> and <a href='#SkRegion_swap_other'>other</a>. <a href='#SkRegion_swap'>swap</a>() internally exchanges pointers,
+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>() usage has largely been replaced by <a href='#SkRegion_copy_operator'>operator=(const SkRegion& region)</a>.
-<a href='SkPath_Reference#Path'>Paths</a> do not copy their content on assignment until they are written to,
-making assignment as efficient as <a href='#SkRegion_swap'>swap</a>().
+<a href='#SkRegion_swap'>swap()</a> usage has largely been replaced 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
 
@@ -977,10 +978,10 @@
 bool <a href='#SkRegion_isEmpty'>isEmpty</a>() const
 </pre>
 
-Returns true if <a href='#Region'>Region</a> is empty.
-Empty <a href='#Region'>Region</a> has bounds width or height less than or equal to zero.
-<a href='#SkRegion_empty_constructor'>SkRegion()</a> constructs empty <a href='#Region'>Region</a>; <a href='#SkRegion_setEmpty'>setEmpty</a>
-and <a href='#SkRegion_setRect'>setRect</a> with dimensionless data make <a href='#Region'>Region</a> empty.
+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
 
@@ -1012,11 +1013,11 @@
 bool <a href='#SkRegion_isRect'>isRect</a>() const
 </pre>
 
-Returns true if <a href='#Region'>Region</a> is one <a href='SkIRect_Reference#IRect'>IRect</a> with positive dimensions.
+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='#Region'>Region</a> contains one <a href='SkIRect_Reference#IRect'>IRect</a>
+true if <a href='SkRegion_Reference#SkRegion'>SkRegion</a> contains one <a href='SkIRect_Reference#SkIRect'>SkIRect</a>
 
 ### Example
 
@@ -1044,11 +1045,11 @@
 bool <a href='#SkRegion_isComplex'>isComplex</a>() const
 </pre>
 
-Returns true if <a href='#Region'>Region</a> is described by more than one rectangle.
+Returns true if <a href='SkRegion_Reference#SkRegion'>SkRegion</a> is described by more than one rectangle.
 
 ### Return Value
 
-true if <a href='#Region'>Region</a> contains more than one <a href='SkIRect_Reference#IRect'>IRect</a>
+true if <a href='SkRegion_Reference#SkRegion'>SkRegion</a> contains more than one <a href='SkIRect_Reference#SkIRect'>SkIRect</a>
 
 ### Example
 
@@ -1076,12 +1077,12 @@
 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#IRect'>IRect</a> array.
-Returns (0, 0, 0, 0) if <a href='#Region'>Region</a> is empty.
+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#IRect'>IRect</a> elements
+combined bounds of all <a href='SkIRect_Reference#SkIRect'>SkIRect</a> elements
 
 ### Example
 
@@ -1108,11 +1109,11 @@
 </pre>
 
 Returns a value that increases with the number of
-elements in <a href='#Region'>Region</a>. Returns zero if <a href='#Region'>Region</a> is empty.
-Returns one if <a href='#Region'>Region</a> equals <a href='SkIRect_Reference#IRect'>IRect</a>; otherwise, returns
-value greater than one indicating that <a href='#Region'>Region</a> is complex.
+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='#Region'>Regions</a> for relative complexity.
+Call to compare <a href='SkRegion_Reference#SkRegion'>SkRegion</a> for relative complexity.
 
 ### Return Value
 
@@ -1144,14 +1145,14 @@
 bool <a href='#SkRegion_getBoundaryPath'>getBoundaryPath</a>(<a href='SkPath_Reference#SkPath'>SkPath</a>* path) const
 </pre>
 
-Appends outline of <a href='#Region'>Region</a> to <a href='#SkRegion_getBoundaryPath_path'>path</a>.
-Returns true if <a href='#Region'>Region</a> is not empty; otherwise, returns false, and leaves <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#Path'>Path</a> to append to</td>
+    <td><a href='SkPath_Reference#SkPath'>SkPath</a> to append to</td>
   </tr>
 </table>
 
@@ -1175,7 +1176,7 @@
 bool <a href='#SkRegion_setEmpty'>setEmpty</a>()
 </pre>
 
-Constructs an empty <a href='#Region'>Region</a>. <a href='#Region'>Region</a> is set to empty bounds
+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
@@ -1208,13 +1209,13 @@
 bool <a href='#SkRegion_setRect'>setRect</a>(const <a href='SkIRect_Reference#SkIRect'>SkIRect</a>& rect)
 </pre>
 
-Constructs a rectangular <a href='#Region'>Region</a> matching the bounds of <a href='#SkRegion_setRect_rect'>rect</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
 
 <table>  <tr>    <td><a name='SkRegion_setRect_rect'><code><strong>rect</strong></code></a></td>
-    <td>bounds of constructed <a href='#Region'>Region</a></td>
+    <td>bounds of constructed <a href='SkRegion_Reference#SkRegion'>SkRegion</a></td>
   </tr>
 </table>
 
@@ -1248,9 +1249,9 @@
 bool <a href='#SkRegion_setRect'>setRect</a>(int32_t left, int32_t top, int32_t right, int32_t bottom)
 </pre>
 
-Constructs <a href='#Region'>Region</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>).
+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='#Region'>Region</a> and returns false.
+constructs empty <a href='SkRegion_Reference#SkRegion'>SkRegion</a> and returns false.
 
 ### Parameters
 
@@ -1270,7 +1271,7 @@
 
 ### Return Value
 
-rectangular <a href='#Region'>Region</a>
+rectangular <a href='SkRegion_Reference#SkRegion'>SkRegion</a>
 
 ### Example
 
@@ -1297,24 +1298,24 @@
 bool <a href='#SkRegion_setRects'>setRects</a>(const <a href='SkIRect_Reference#SkIRect'>SkIRect</a> rects[], int count)
 </pre>
 
-Constructs <a href='#Region'>Region</a> as the union of <a href='SkIRect_Reference#IRect'>IRect</a> in <a href='#SkRegion_setRects_rects'>rects</a> array. If <a href='#SkRegion_setRects_count'>count</a> is
-zero, constructs empty <a href='#Region'>Region</a>. Returns false if constructed <a href='#Region'>Region</a> is empty.
+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>().
+May be faster than repeated calls to <a href='#SkRegion_op'>op()</a>.
 
 ### Parameters
 
 <table>  <tr>    <td><a name='SkRegion_setRects_rects'><code><strong>rects</strong></code></a></td>
-    <td>array of <a href='SkIRect_Reference#IRect'>IRects</a></td>
+    <td>array of <a href='SkIRect_Reference#SkIRect'>SkIRect</a></td>
   </tr>
   <tr>    <td><a name='SkRegion_setRects_count'><code><strong>count</strong></code></a></td>
-    <td>array size</td>
+    <td>array <a href='undocumented#Size'>size</a></td>
   </tr>
 </table>
 
 ### Return Value
 
-true if constructed <a href='#Region'>Region</a> is not empty
+true if constructed <a href='SkRegion_Reference#SkRegion'>SkRegion</a> is not empty
 
 ### Example
 
@@ -1333,24 +1334,24 @@
 </pre>
 
 Constructs a copy of an existing <a href='#SkRegion_setRegion_region'>region</a>.
-Makes two regions identical by value. Internally, <a href='#SkRegion_setRegion_region'>region</a> and
-the returned result share pointer values. The underlying <a href='SkRect_Reference#Rect'>Rect</a> array is
+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='#Region'>Region</a> copy is very efficient and never allocates memory.
-<a href='#Region'>Regions</a> are always copied by value from the interface; the underlying shared
+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='#Region'>Region</a> to copy by value</td>
+    <td><a href='SkRegion_Reference#SkRegion'>SkRegion</a> to copy by value</td>
   </tr>
 </table>
 
 ### Return Value
 
-<a href='#Region'>Region</a> to copy by value
+<a href='SkRegion_Reference#SkRegion'>SkRegion</a> to copy by value
 
 ### Example
 
@@ -1380,25 +1381,25 @@
 bool <a href='#SkRegion_setPath'>setPath</a>(const <a href='SkPath_Reference#SkPath'>SkPath</a>& path, const <a href='#SkRegion'>SkRegion</a>& clip)
 </pre>
 
-Constructs <a href='#Region'>Region</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='#Region'>Region</a> is empty.
+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='#Region'>Region</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.
+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#Path'>Path</a> providing outline</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='#Region'>Region</a> containing <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='#Region'>Region</a> is not empty
+true if constructed <a href='SkRegion_Reference#SkRegion'>SkRegion</a> is not empty
 
 ### Example
 
@@ -1416,19 +1417,19 @@
 bool <a href='#SkRegion_intersects'>intersects</a>(const <a href='SkIRect_Reference#SkIRect'>SkIRect</a>& rect) const
 </pre>
 
-Returns true if <a href='#Region'>Region</a> intersects <a href='#SkRegion_intersects_rect'>rect</a>.
-Returns false if either <a href='#SkRegion_intersects_rect'>rect</a> or <a href='#Region'>Region</a> is empty, or do not intersect.
+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#IRect'>IRect</a> to intersect</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> and <a href='#Region'>Region</a> have area in common
+true if <a href='#SkRegion_intersects()_rect'>rect</a> and <a href='SkRegion_Reference#SkRegion'>SkRegion</a> have area in common
 
 ### Example
 
@@ -1446,19 +1447,19 @@
 bool <a href='#SkRegion_intersects'>intersects</a>(const <a href='#SkRegion'>SkRegion</a>& other) const
 </pre>
 
-Returns true if <a href='#Region'>Region</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='#Region'>Region</a> is empty, or do not intersect.
+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='#Region'>Region</a> to intersect</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> and <a href='#Region'>Region</a> have area in common
+true if <a href='#SkRegion_intersects_2_other'>other</a> and <a href='SkRegion_Reference#SkRegion'>SkRegion</a> have area in common
 
 ### Example
 
@@ -1476,22 +1477,22 @@
 bool <a href='#SkRegion_contains'>contains</a>(int32_t x, int32_t y) const
 </pre>
 
-Returns true if <a href='SkIPoint_Reference#IPoint'>IPoint</a> (<a href='#SkRegion_contains_x'>x</a>, <a href='#SkRegion_contains_y'>y</a>) is inside <a href='#Region'>Region</a>.
-Returns false if <a href='#Region'>Region</a> is empty.
+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#IPoint'>IPoint</a> <a href='#SkRegion_contains_x'>x</a>-coordinate</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#IPoint'>IPoint</a> <a href='#SkRegion_contains_y'>y</a>-coordinate</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>) is inside <a href='#Region'>Region</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
 
@@ -1509,19 +1510,19 @@
 bool <a href='#SkRegion_contains'>contains</a>(const <a href='SkIRect_Reference#SkIRect'>SkIRect</a>& other) const
 </pre>
 
-Returns true if <a href='#SkRegion_contains_2_other'>other</a> is completely inside <a href='#Region'>Region</a>.
-Returns false if <a href='#Region'>Region</a> or <a href='#SkRegion_contains_2_other'>other</a> is empty.
+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#IRect'>IRect</a> to contain</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> is inside <a href='#Region'>Region</a>
+true if <a href='#SkRegion_contains_2_other'>other</a> is inside <a href='SkRegion_Reference#SkRegion'>SkRegion</a>
 
 ### Example
 
@@ -1539,19 +1540,19 @@
 bool <a href='#SkRegion_contains'>contains</a>(const <a href='#SkRegion'>SkRegion</a>& other) const
 </pre>
 
-Returns true if <a href='#SkRegion_contains_3_other'>other</a> is completely inside <a href='#Region'>Region</a>.
-Returns false if <a href='#Region'>Region</a> or <a href='#SkRegion_contains_3_other'>other</a> is empty.
+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='#Region'>Region</a> to contain</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> is inside <a href='#Region'>Region</a>
+true if <a href='#SkRegion_contains_3_other'>other</a> is inside <a href='SkRegion_Reference#SkRegion'>SkRegion</a>
 
 ### Example
 
@@ -1569,19 +1570,19 @@
 bool <a href='#SkRegion_quickContains'>quickContains</a>(const <a href='SkIRect_Reference#SkIRect'>SkIRect</a>& r) const
 </pre>
 
-Returns true if <a href='#Region'>Region</a> is a single rectangle and contains <a href='#SkRegion_quickContains_r'>r</a>.
-May return false even though <a href='#Region'>Region</a> contains <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#IRect'>IRect</a> to contain</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> points are equal or inside
+true quickly if <a href='#SkRegion_quickContains_r'>r</a> <a href='SkPoint_Reference#Point'>points</a> are equal or inside
 
 ### Example
 
@@ -1609,10 +1610,10 @@
 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='#Region'>Region</a> is a single rectangle and contains <a href='SkIRect_Reference#IRect'>IRect</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='#Region'>Region</a> is empty or <a href='SkIRect_Reference#IRect'>IRect</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='#Region'>Region</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>).
+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
 
@@ -1632,7 +1633,7 @@
 
 ### Return Value
 
-true quickly if <a href='SkIRect_Reference#IRect'>IRect</a> are equal or inside
+true quickly if <a href='SkIRect_Reference#SkIRect'>SkIRect</a> are equal or inside
 
 ### Example
 
@@ -1660,14 +1661,14 @@
 bool <a href='#SkRegion_quickReject'>quickReject</a>(const <a href='SkIRect_Reference#SkIRect'>SkIRect</a>& rect) const
 </pre>
 
-Returns true if <a href='#Region'>Region</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='#Region'>Region</a> is empty.
-May return false even though <a href='#Region'>Region</a> does not intersect <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#IRect'>IRect</a> to intersect</td>
+    <td><a href='SkIRect_Reference#SkIRect'>SkIRect</a> to intersect</td>
   </tr>
 </table>
 
@@ -1701,14 +1702,14 @@
 bool <a href='#SkRegion_quickReject'>quickReject</a>(const <a href='#SkRegion'>SkRegion</a>& rgn) const
 </pre>
 
-Returns true if <a href='#Region'>Region</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='#Region'>Region</a> is empty.
-May return false even though <a href='#Region'>Region</a> does not intersect <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='#Region'>Region</a> to intersect</td>
+    <td><a href='SkRegion_Reference#SkRegion'>SkRegion</a> to intersect</td>
   </tr>
 </table>
 
@@ -1742,7 +1743,7 @@
 void <a href='#SkRegion_translate'>translate</a>(int dx, int dy)
 </pre>
 
-Offsets <a href='#Region'>Region</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='#Region'>Region</a> is empty.
+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
 
@@ -1770,9 +1771,9 @@
 void <a href='#SkRegion_translate'>translate</a>(int dx, int dy, <a href='#SkRegion'>SkRegion</a>* dst) const
 </pre>
 
-Offsets <a href='#Region'>Region</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='#Region'>Region</a> may be passed
-as <a href='#SkRegion_translate_2_dst'>dst</a> parameter, translating <a href='#Region'>Region</a> in place. Has no effect if <a href='#SkRegion_translate_2_dst'>dst</a> is nullptr.
-If <a href='#Region'>Region</a> is empty, sets <a href='#SkRegion_translate_2_dst'>dst</a> to empty.
+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
 
@@ -1899,20 +1900,22 @@
 bool <a href='#SkRegion_op'>op</a>(const <a href='SkIRect_Reference#SkIRect'>SkIRect</a>& rect, <a href='undocumented#Op'>Op</a> op)
 </pre>
 
-Replaces <a href='#Region'>Region</a> with the result of <a href='#Region'>Region</a> op <a href='#SkRegion_op_rect'>rect</a>.
-Returns true if replaced <a href='#Region'>Region</a> is not empty.
+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#IRect'>IRect</a> operand</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: <a href='#SkRegion_kDifference_Op'>kDifference Op</a>, <a href='#SkRegion_kIntersect_Op'>kIntersect Op</a>, <a href='#SkRegion_kUnion_Op'>kUnion Op</a>, <a href='#SkRegion_kXOR_Op'>kXOR Op</a>, <a href='#SkRegion_kReverseDifference_Op'>kReverseDifference Op</a>,
-<a href='#SkRegion_kReplace_Op'>kReplace Op</a> </td>
+    <td>operator, one of:</td>
   </tr>
 </table>
 
+<a href='#SkRegion_kDifference_Op'>kDifference_Op</a>, <a href='#SkRegion_kIntersect_Op'>kIntersect_Op</a>, <a href='#SkRegion_kUnion_Op'>kUnion_Op</a>, <a href='#SkRegion_kXOR_Op'>kXOR_Op</a>, <a href='#SkRegion_kReverseDifference_Op'>kReverseDifference_Op</a>,
+<a href='#SkRegion_kReplace_Op'>kReplace_Op</a>
+
 ### Return Value
 
 false if result is empty
@@ -1933,8 +1936,8 @@
 bool <a href='#SkRegion_op'>op</a>(int left, int top, int right, int bottom, <a href='undocumented#Op'>Op</a> op)
 </pre>
 
-Replaces <a href='#Region'>Region</a> with the result of <a href='#Region'>Region</a> op <a href='SkIRect_Reference#IRect'>IRect</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='#Region'>Region</a> is not empty.
+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
 
@@ -1951,11 +1954,13 @@
     <td>edge of bounds on y-axis</td>
   </tr>
   <tr>    <td><a name='SkRegion_op_2_op'><code><strong>op</strong></code></a></td>
-    <td>operator, one of: <a href='#SkRegion_kDifference_Op'>kDifference Op</a>, <a href='#SkRegion_kIntersect_Op'>kIntersect Op</a>, <a href='#SkRegion_kUnion_Op'>kUnion Op</a>, <a href='#SkRegion_kXOR_Op'>kXOR Op</a>, <a href='#SkRegion_kReverseDifference_Op'>kReverseDifference Op</a>,
-<a href='#SkRegion_kReplace_Op'>kReplace Op</a> </td>
+    <td>operator, one of:</td>
   </tr>
 </table>
 
+<a href='#SkRegion_kDifference_Op'>kDifference_Op</a>, <a href='#SkRegion_kIntersect_Op'>kIntersect_Op</a>, <a href='#SkRegion_kUnion_Op'>kUnion_Op</a>, <a href='#SkRegion_kXOR_Op'>kXOR_Op</a>, <a href='#SkRegion_kReverseDifference_Op'>kReverseDifference_Op</a>,
+<a href='#SkRegion_kReplace_Op'>kReplace_Op</a>
+
 ### Return Value
 
 false if result is empty
@@ -1976,20 +1981,22 @@
 bool <a href='#SkRegion_op'>op</a>(const <a href='#SkRegion'>SkRegion</a>& rgn, <a href='undocumented#Op'>Op</a> op)
 </pre>
 
-Replaces <a href='#Region'>Region</a> with the result of <a href='#Region'>Region</a> op <a href='#SkRegion_op_3_rgn'>rgn</a>.
-Returns true if replaced <a href='#Region'>Region</a> is not empty.
+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='#Region'>Region</a> operand</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: <a href='#SkRegion_kDifference_Op'>kDifference Op</a>, <a href='#SkRegion_kIntersect_Op'>kIntersect Op</a>, <a href='#SkRegion_kUnion_Op'>kUnion Op</a>, <a href='#SkRegion_kXOR_Op'>kXOR Op</a>, <a href='#SkRegion_kReverseDifference_Op'>kReverseDifference Op</a>,
-<a href='#SkRegion_kReplace_Op'>kReplace Op</a> </td>
+    <td>operator, one of:</td>
   </tr>
 </table>
 
+<a href='#SkRegion_kDifference_Op'>kDifference_Op</a>, <a href='#SkRegion_kIntersect_Op'>kIntersect_Op</a>, <a href='#SkRegion_kUnion_Op'>kUnion_Op</a>, <a href='#SkRegion_kXOR_Op'>kXOR_Op</a>, <a href='#SkRegion_kReverseDifference_Op'>kReverseDifference_Op</a>,
+<a href='#SkRegion_kReplace_Op'>kReplace_Op</a>
+
 ### Return Value
 
 false if result is empty
@@ -2010,23 +2017,25 @@
 bool <a href='#SkRegion_op'>op</a>(const <a href='SkIRect_Reference#SkIRect'>SkIRect</a>& rect, const <a href='#SkRegion'>SkRegion</a>& rgn, <a href='undocumented#Op'>Op</a> op)
 </pre>
 
-Replaces <a href='#Region'>Region</a> with the result of <a href='#SkRegion_op_4_rect'>rect</a> op <a href='#SkRegion_op_4_rgn'>rgn</a>.
-Returns true if replaced <a href='#Region'>Region</a> is not empty.
+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#IRect'>IRect</a> operand</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='#Region'>Region</a> operand</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: <a href='#SkRegion_kDifference_Op'>kDifference Op</a>, <a href='#SkRegion_kIntersect_Op'>kIntersect Op</a>, <a href='#SkRegion_kUnion_Op'>kUnion Op</a>, <a href='#SkRegion_kXOR_Op'>kXOR Op</a>, <a href='#SkRegion_kReverseDifference_Op'>kReverseDifference Op</a>,
-<a href='#SkRegion_kReplace_Op'>kReplace Op</a> </td>
+    <td>operator, one of:</td>
   </tr>
 </table>
 
+<a href='#SkRegion_kDifference_Op'>kDifference_Op</a>, <a href='#SkRegion_kIntersect_Op'>kIntersect_Op</a>, <a href='#SkRegion_kUnion_Op'>kUnion_Op</a>, <a href='#SkRegion_kXOR_Op'>kXOR_Op</a>, <a href='#SkRegion_kReverseDifference_Op'>kReverseDifference_Op</a>,
+<a href='#SkRegion_kReplace_Op'>kReplace_Op</a>
+
 ### Return Value
 
 false if result is empty
@@ -2047,23 +2056,25 @@
 bool <a href='#SkRegion_op'>op</a>(const <a href='#SkRegion'>SkRegion</a>& rgn, const <a href='SkIRect_Reference#SkIRect'>SkIRect</a>& rect, <a href='undocumented#Op'>Op</a> op)
 </pre>
 
-Replaces <a href='#Region'>Region</a> with the result of <a href='#SkRegion_op_5_rgn'>rgn</a> op <a href='#SkRegion_op_5_rect'>rect</a>.
-Returns true if replaced <a href='#Region'>Region</a> is not empty.
+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='#Region'>Region</a> operand</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#IRect'>IRect</a> operand</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: <a href='#SkRegion_kDifference_Op'>kDifference Op</a>, <a href='#SkRegion_kIntersect_Op'>kIntersect Op</a>, <a href='#SkRegion_kUnion_Op'>kUnion Op</a>, <a href='#SkRegion_kXOR_Op'>kXOR Op</a>, <a href='#SkRegion_kReverseDifference_Op'>kReverseDifference Op</a>,
-<a href='#SkRegion_kReplace_Op'>kReplace Op</a> </td>
+    <td>operator, one of:</td>
   </tr>
 </table>
 
+<a href='#SkRegion_kDifference_Op'>kDifference_Op</a>, <a href='#SkRegion_kIntersect_Op'>kIntersect_Op</a>, <a href='#SkRegion_kUnion_Op'>kUnion_Op</a>, <a href='#SkRegion_kXOR_Op'>kXOR_Op</a>, <a href='#SkRegion_kReverseDifference_Op'>kReverseDifference_Op</a>,
+<a href='#SkRegion_kReplace_Op'>kReplace_Op</a>
+
 ### Return Value
 
 false if result is empty
@@ -2084,23 +2095,25 @@
 bool <a href='#SkRegion_op'>op</a>(const <a href='#SkRegion'>SkRegion</a>& rgna, const <a href='#SkRegion'>SkRegion</a>& rgnb, <a href='undocumented#Op'>Op</a> op)
 </pre>
 
-Replaces <a href='#Region'>Region</a> with the result of <a href='#SkRegion_op_6_rgna'>rgna</a> op <a href='#SkRegion_op_6_rgnb'>rgnb</a>.
-Returns true if replaced <a href='#Region'>Region</a> is not empty.
+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='#Region'>Region</a> operand</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='#Region'>Region</a> operand</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: <a href='#SkRegion_kDifference_Op'>kDifference Op</a>, <a href='#SkRegion_kIntersect_Op'>kIntersect Op</a>, <a href='#SkRegion_kUnion_Op'>kUnion Op</a>, <a href='#SkRegion_kXOR_Op'>kXOR Op</a>, <a href='#SkRegion_kReverseDifference_Op'>kReverseDifference Op</a>,
-<a href='#SkRegion_kReplace_Op'>kReplace Op</a> </td>
+    <td>operator, one of:</td>
   </tr>
 </table>
 
+<a href='#SkRegion_kDifference_Op'>kDifference_Op</a>, <a href='#SkRegion_kIntersect_Op'>kIntersect_Op</a>, <a href='#SkRegion_kUnion_Op'>kUnion_Op</a>, <a href='#SkRegion_kXOR_Op'>kXOR_Op</a>, <a href='#SkRegion_kReverseDifference_Op'>kReverseDifference_Op</a>,
+<a href='#SkRegion_kReplace_Op'>kReplace_Op</a>
+
 ### Return Value
 
 false if result is empty
@@ -2135,19 +2148,19 @@
 size_t <a href='#SkRegion_writeToMemory'>writeToMemory</a>(void* buffer) const
 </pre>
 
-Writes <a href='#Region'>Region</a> to <a href='#SkRegion_writeToMemory_buffer'>buffer</a>, and returns number of bytes written.
+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
 
 <table>  <tr>    <td><a name='SkRegion_writeToMemory_buffer'><code><strong>buffer</strong></code></a></td>
-    <td>storage for binary data</td>
+    <td>storage for binary <a href='undocumented#Data'>data</a></td>
   </tr>
 </table>
 
 ### Return Value
 
-size of <a href='#Region'>Region</a>
+<a href='undocumented#Size'>size</a> of <a href='SkRegion_Reference#SkRegion'>SkRegion</a>
 
 ### Example
 
@@ -2165,16 +2178,16 @@
 size_t <a href='#SkRegion_readFromMemory'>readFromMemory</a>(const void* buffer, size_t length)
 </pre>
 
-Constructs <a href='#Region'>Region</a> from <a href='#SkRegion_readFromMemory_buffer'>buffer</a> of size <a href='#SkRegion_readFromMemory_length'>length</a>. Returns bytes read.
+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
 
 <table>  <tr>    <td><a name='SkRegion_readFromMemory_buffer'><code><strong>buffer</strong></code></a></td>
-    <td>storage for binary data</td>
+    <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>size of <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 5d2d5d7..6c896a3 100644
--- a/site/user/api/SkSurface_Reference.md
+++ b/site/user/api/SkSurface_Reference.md
@@ -118,40 +118,46 @@
                                          const <a href='undocumented#SkSurfaceProps'>SkSurfaceProps</a>* surfaceProps = nullptr)
 </pre>
 
-Allocates raster <a href='#Surface'>Surface</a>. <a href='SkCanvas_Reference#Canvas'>Canvas</a> returned by <a href='#Surface'>Surface</a> draws directly into <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='#Surface'>Surface</a> is returned if all parameters are valid.
+<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#Color_Type'>Color Type</a> and <a href='SkImageInfo_Reference#Alpha_Type'>Alpha Type</a> supported by <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>;
 <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#Color_Type'>Color Type</a>.
+<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> buffer size should be info height times computed <a href='#SkSurface_MakeRasterDirect_rowBytes'>rowBytes</a>.
-<a href='#Pixels'>Pixels</a> are not initialized.
-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>.
+<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> after drawing, call <a href='#SkSurface_flush'>flush()</a> or <a href='#SkSurface_peekPixels'>peekPixels</a>().
 
 ### Parameters
 
 <table>  <tr>    <td><a name='SkSurface_MakeRasterDirect_imageInfo'><code><strong>imageInfo</strong></code></a></td>
-    <td>width, height, <a href='SkImageInfo_Reference#Color_Type'>Color Type</a>, <a href='SkImageInfo_Reference#Alpha_Type'>Alpha Type</a>, <a href='undocumented#Color_Space'>Color Space</a>,
-of <a href='undocumented#Raster_Surface'>Raster Surface</a>; width and height must be greater than zero</td>
-  </tr>
-  <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> buffer</td>
-  </tr>
-  <tr>    <td><a name='SkSurface_MakeRasterDirect_rowBytes'><code><strong>rowBytes</strong></code></a></td>
-    <td>interval from one <a href='#Surface'>Surface</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 device independent fonts;
-may be nullptr</td>
+    <td>width, height, <a href='SkImageInfo_Reference#SkColorType'>SkColorType</a>, <a href='SkImageInfo_Reference#SkAlphaType'>SkAlphaType</a>, <a href='undocumented#SkColorSpace'>SkColorSpace</a>,</td>
   </tr>
 </table>
 
+of  <a href='undocumented#Raster_Surface'>raster surface</a>; width and height must be greater than zero
+
+### 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> 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> 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> independent fonts;</td>
+  </tr>
+</table>
+
+may be nullptr
+
 ### Return Value
 
-<a href='#Surface'>Surface</a> if all parameters are valid; otherwise, nullptr
+<a href='SkSurface_Reference#SkSurface'>SkSurface</a> if all parameters are valid; otherwise, nullptr
 
 ### Example
 
@@ -182,47 +188,53 @@
                                            const <a href='undocumented#SkSurfaceProps'>SkSurfaceProps</a>* surfaceProps = nullptr)
 </pre>
 
-Allocates raster <a href='#Surface'>Surface</a>. <a href='SkCanvas_Reference#Canvas'>Canvas</a> returned by <a href='#Surface'>Surface</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='#Surface'>Surface</a> is deleted.
+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='#Surface'>Surface</a> is returned if all parameters are valid.
+<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#Color_Type'>Color Type</a> and <a href='SkImageInfo_Reference#Alpha_Type'>Alpha Type</a> supported by <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>;
 <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#Color_Type'>Color Type</a>.
+<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> buffer size should be info height times computed <a href='#SkSurface_MakeRasterDirectReleaseProc_rowBytes'>rowBytes</a>.
-<a href='#Pixels'>Pixels</a> are not initialized.
-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>.
+<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> after drawing, call <a href='#SkSurface_flush'>flush()</a> or <a href='#SkSurface_peekPixels'>peekPixels</a>().
 
 ### Parameters
 
 <table>  <tr>    <td><a name='SkSurface_MakeRasterDirectReleaseProc_imageInfo'><code><strong>imageInfo</strong></code></a></td>
-    <td>width, height, <a href='SkImageInfo_Reference#Color_Type'>Color Type</a>, <a href='SkImageInfo_Reference#Alpha_Type'>Alpha Type</a>, <a href='undocumented#Color_Space'>Color Space</a>,
-of <a href='undocumented#Raster_Surface'>Raster Surface</a>; width and height must be greater than zero</td>
+    <td>width, height, <a href='SkImageInfo_Reference#SkColorType'>SkColorType</a>, <a href='SkImageInfo_Reference#SkAlphaType'>SkAlphaType</a>, <a href='undocumented#SkColorSpace'>SkColorSpace</a>,</td>
   </tr>
-  <tr>    <td><a name='SkSurface_MakeRasterDirectReleaseProc_pixels'><code><strong>pixels</strong></code></a></td>
+</table>
+
+of  <a href='undocumented#Raster_Surface'>raster surface</a>; width and height must be greater than zero
+
+### 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> buffer</td>
   </tr>
   <tr>    <td><a name='SkSurface_MakeRasterDirectReleaseProc_rowBytes'><code><strong>rowBytes</strong></code></a></td>
-    <td>interval from one <a href='#Surface'>Surface</a> row to the next</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='#Surface'>Surface</a> is deleted; may be nullptr</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>; 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 device independent fonts;
-may be nullptr</td>
+    <td>LCD striping orientation and setting for <a href='undocumented#Device'>device</a> independent fonts;</td>
   </tr>
 </table>
 
+may be nullptr
+
 ### Return Value
 
-<a href='#Surface'>Surface</a> if all parameters are valid; otherwise, nullptr
+<a href='SkSurface_Reference#SkSurface'>SkSurface</a> if all parameters are valid; otherwise, nullptr
 
 ### Example
 
@@ -252,38 +264,44 @@
                                    const <a href='undocumented#SkSurfaceProps'>SkSurfaceProps</a>* surfaceProps)
 </pre>
 
-Allocates raster <a href='#Surface'>Surface</a>. <a href='SkCanvas_Reference#Canvas'>Canvas</a> returned by <a href='#Surface'>Surface</a> draws directly into pixels.
-Allocates and zeroes pixel memory. <a href='undocumented#Pixel'>Pixel</a> memory size is <a href='#SkSurface_MakeRaster_imageInfo'>imageInfo</a>.<a href='#SkSurface_height'>height</a>() times
-<a href='#SkSurface_MakeRaster_rowBytes'>rowBytes</a>, or times <a href='#SkSurface_MakeRaster_imageInfo'>imageInfo</a>.minRowBytes() if <a href='#SkSurface_MakeRaster_rowBytes'>rowBytes</a> is zero.
-<a href='undocumented#Pixel'>Pixel</a> memory is deleted when <a href='#Surface'>Surface</a> is deleted.
+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='#Surface'>Surface</a> is returned if all parameters are valid.
+<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#Color_Type'>Color Type</a> and <a href='SkImageInfo_Reference#Alpha_Type'>Alpha Type</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#Color_Type'>Color Type</a>, or is zero.
+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> is not zero, subsequent images returned by <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
 
 <table>  <tr>    <td><a name='SkSurface_MakeRaster_imageInfo'><code><strong>imageInfo</strong></code></a></td>
-    <td>width, height, <a href='SkImageInfo_Reference#Color_Type'>Color Type</a>, <a href='SkImageInfo_Reference#Alpha_Type'>Alpha Type</a>, <a href='undocumented#Color_Space'>Color Space</a>,
-of <a href='undocumented#Raster_Surface'>Raster Surface</a>; width and height must be greater than zero</td>
-  </tr>
-  <tr>    <td><a name='SkSurface_MakeRaster_rowBytes'><code><strong>rowBytes</strong></code></a></td>
-    <td>interval from one <a href='#Surface'>Surface</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 device independent fonts;
-may be nullptr</td>
+    <td>width, height, <a href='SkImageInfo_Reference#SkColorType'>SkColorType</a>, <a href='SkImageInfo_Reference#SkAlphaType'>SkAlphaType</a>, <a href='undocumented#SkColorSpace'>SkColorSpace</a>,</td>
   </tr>
 </table>
 
+of  <a href='undocumented#Raster_Surface'>raster surface</a>; width and height must be greater than zero
+
+### 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> 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> independent fonts;</td>
+  </tr>
+</table>
+
+may be nullptr
+
 ### Return Value
 
-<a href='#Surface'>Surface</a> if all parameters are valid; otherwise, nullptr
+<a href='SkSurface_Reference#SkSurface'>SkSurface</a> if all parameters are valid; otherwise, nullptr
 
 ### Example
 
@@ -312,31 +330,37 @@
                                    const <a href='undocumented#SkSurfaceProps'>SkSurfaceProps</a>* props = nullptr)
 </pre>
 
-Allocates raster <a href='#Surface'>Surface</a>. <a href='SkCanvas_Reference#Canvas'>Canvas</a> returned by <a href='#Surface'>Surface</a> draws directly into pixels.
-Allocates and zeroes pixel memory. <a href='undocumented#Pixel'>Pixel</a> memory size is <a href='#SkSurface_MakeRaster_2_imageInfo'>imageInfo</a>.<a href='#SkSurface_height'>height</a>() times
-<a href='#SkSurface_MakeRaster_2_imageInfo'>imageInfo</a>.minRowBytes().
-<a href='undocumented#Pixel'>Pixel</a> memory is deleted when <a href='#Surface'>Surface</a> is deleted.
+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> memory is deleted when <a href='SkSurface_Reference#SkSurface'>SkSurface</a> is deleted.
 
-<a href='#Surface'>Surface</a> is returned if all parameters are valid.
+<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#Color_Type'>Color Type</a> and <a href='SkImageInfo_Reference#Alpha_Type'>Alpha Type</a> supported by <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
 
 <table>  <tr>    <td><a name='SkSurface_MakeRaster_2_imageInfo'><code><strong>imageInfo</strong></code></a></td>
-    <td>width, height, <a href='SkImageInfo_Reference#Color_Type'>Color Type</a>, <a href='SkImageInfo_Reference#Alpha_Type'>Alpha Type</a>, <a href='undocumented#Color_Space'>Color Space</a>,
-of <a href='undocumented#Raster_Surface'>Raster Surface</a>; width and height must be greater than zero</td>
-  </tr>
-  <tr>    <td><a name='SkSurface_MakeRaster_2_props'><code><strong>props</strong></code></a></td>
-    <td>LCD striping orientation and setting for device independent fonts;
-may be nullptr</td>
+    <td>width, height, <a href='SkImageInfo_Reference#SkColorType'>SkColorType</a>, <a href='SkImageInfo_Reference#SkAlphaType'>SkAlphaType</a>, <a href='undocumented#SkColorSpace'>SkColorSpace</a>,</td>
   </tr>
 </table>
 
+of  <a href='undocumented#Raster_Surface'>raster surface</a>; width and height must be greater than zero
+
+### 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> independent fonts;</td>
+  </tr>
+</table>
+
+may be nullptr
+
 ### Return Value
 
-<a href='#Surface'>Surface</a> if all parameters are valid; otherwise, nullptr
+<a href='SkSurface_Reference#SkSurface'>SkSurface</a> if all parameters are valid; otherwise, nullptr
 
 ### Example
 
@@ -355,35 +379,36 @@
                                             const <a href='undocumented#SkSurfaceProps'>SkSurfaceProps</a>* surfaceProps = nullptr)
 </pre>
 
-Allocates raster <a href='#Surface'>Surface</a>. <a href='SkCanvas_Reference#Canvas'>Canvas</a> returned by <a href='#Surface'>Surface</a> draws directly into pixels.
-Allocates and zeroes pixel memory. <a href='undocumented#Pixel'>Pixel</a> memory size is height times width times
-four. <a href='undocumented#Pixel'>Pixel</a> memory is deleted when <a href='#Surface'>Surface</a> is deleted.
+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#Image_Info'>Image Info</a> to width, height, <a href='SkImageInfo_Reference#kN32_SkColorType'>Native_Color_Type</a>, and
+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='#Surface'>Surface</a> is returned if width and height are greater than zero.
+<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='#Surface'>Surface</a> that matches <a href='SkColor_Reference#SkPMColor'>SkPMColor</a>, the native pixel arrangement on
-the platform. <a href='#Surface'>Surface</a> drawn to output device skips converting its pixel format.
+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>pixel column count; must be greater than zero</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>pixel row count; must be greater than zero</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 device independent
-fonts; may be nullptr</td>
+    <td>LCD striping orientation and setting for <a href='undocumented#Device'>device</a> independent</td>
   </tr>
 </table>
 
+fonts; may be nullptr
+
 ### Return Value
 
-<a href='#Surface'>Surface</a> if all parameters are valid; otherwise, nullptr
+<a href='SkSurface_Reference#SkSurface'>SkSurface</a> if all parameters are valid; otherwise, nullptr
 
 ### Example
 
@@ -416,12 +441,12 @@
                                                const <a href='undocumented#SkSurfaceProps'>SkSurfaceProps</a>* surfaceProps)
 </pre>
 
-Wraps a GPU-backed texture into <a href='#Surface'>Surface</a>. Caller must ensure the texture is
-valid for the lifetime of returned <a href='#Surface'>Surface</a>. If <a href='#SkSurface_MakeFromBackendTexture_sampleCnt'>sampleCnt</a> greater than zero,
-creates an intermediate MSAA <a href='#Surface'>Surface</a> which is used for drawing <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='#Surface'>Surface</a> is returned if all parameters are valid. <a href='#SkSurface_MakeFromBackendTexture_backendTexture'>backendTexture</a> is valid if
-its pixel configuration agrees with <a href='#SkSurface_MakeFromBackendTexture_colorSpace'>colorSpace</a> and <a href='#SkSurface_MakeFromBackendTexture_context'>context</a>; for instance, if
+<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
@@ -432,35 +457,43 @@
 ### Parameters
 
 <table>  <tr>    <td><a name='SkSurface_MakeFromBackendTexture_context'><code><strong>context</strong></code></a></td>
-    <td><a href='undocumented#GPU_Context'>GPU Context</a></td>
+    <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>texture residing on GPU</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>
+    <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 pixel, or 0 to disable full scene anti-aliasing</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: <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> </td>
-  </tr>
-  <tr>    <td><a name='SkSurface_MakeFromBackendTexture_colorSpace'><code><strong>colorSpace</strong></code></a></td>
-    <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 device independent
-fonts; may be nullptr</td>
+    <td>one of:</td>
   </tr>
 </table>
 
+<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>
+
+### Parameters
+
+<table>  <tr>    <td><a name='SkSurface_MakeFromBackendTexture_colorSpace'><code><strong>colorSpace</strong></code></a></td>
+    <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> independent</td>
+  </tr>
+</table>
+
+fonts; may be nullptr
+
 ### Return Value
 
-<a href='#Surface'>Surface</a> if all parameters are valid; otherwise, nullptr
+<a href='SkSurface_Reference#SkSurface'>SkSurface</a> if all parameters are valid; otherwise, nullptr
 
 ### Example
 
@@ -482,11 +515,11 @@
                                                    const <a href='undocumented#SkSurfaceProps'>SkSurfaceProps</a>* surfaceProps)
 </pre>
 
-Wraps a GPU-backed buffer into <a href='#Surface'>Surface</a>. Caller must ensure <a href='#SkSurface_MakeFromBackendRenderTarget_backendRenderTarget'>backendRenderTarget</a>
-is valid for the lifetime of returned <a href='#Surface'>Surface</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='#Surface'>Surface</a> is returned if all parameters are valid. <a href='#SkSurface_MakeFromBackendRenderTarget_backendRenderTarget'>backendRenderTarget</a> is valid if
-its pixel configuration agrees with <a href='#SkSurface_MakeFromBackendRenderTarget_colorSpace'>colorSpace</a> and <a href='#SkSurface_MakeFromBackendRenderTarget_context'>context</a>; for instance, if
+<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
@@ -497,32 +530,41 @@
 ### Parameters
 
 <table>  <tr>    <td><a name='SkSurface_MakeFromBackendRenderTarget_context'><code><strong>context</strong></code></a></td>
-    <td><a href='undocumented#GPU_Context'>GPU Context</a></td>
+    <td><a href='undocumented#GPU_Context'>GPU context</a></td>
   </tr>
   <tr>    <td><a name='SkSurface_MakeFromBackendRenderTarget_backendRenderTarget'><code><strong>backendRenderTarget</strong></code></a></td>
     <td>GPU intermediate memory buffer</td>
   </tr>
   <tr>    <td><a name='SkSurface_MakeFromBackendRenderTarget_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>
+    <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_MakeFromBackendRenderTarget_colorType'><code><strong>colorType</strong></code></a></td>
-    <td>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> </td>
-  </tr>
-  <tr>    <td><a name='SkSurface_MakeFromBackendRenderTarget_colorSpace'><code><strong>colorSpace</strong></code></a></td>
-    <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 device independent
-fonts; may be nullptr</td>
+    <td>one of:</td>
   </tr>
 </table>
 
+<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>
+
+### Parameters
+
+<table>  <tr>    <td><a name='SkSurface_MakeFromBackendRenderTarget_colorSpace'><code><strong>colorSpace</strong></code></a></td>
+    <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> independent</td>
+  </tr>
+</table>
+
+fonts; may be nullptr
+
 ### Return Value
 
-<a href='#Surface'>Surface</a> if all parameters are valid; otherwise, nullptr
+<a href='SkSurface_Reference#SkSurface'>SkSurface</a> if all parameters are valid; otherwise, nullptr
 
 ### Example
 
@@ -561,53 +603,61 @@
                                             const <a href='undocumented#SkSurfaceProps'>SkSurfaceProps</a>* surfaceProps)
 </pre>
 
-Wraps a GPU-backed texture into <a href='#Surface'>Surface</a>. Caller must ensure <a href='#SkSurface_MakeFromBackendTextureAsRenderTarget_backendTexture'>backendTexture</a> is
-valid for the lifetime of returned <a href='#Surface'>Surface</a>. If <a href='#SkSurface_MakeFromBackendTextureAsRenderTarget_sampleCnt'>sampleCnt</a> greater than zero,
-creates an intermediate MSAA <a href='#Surface'>Surface</a> which is used for drawing <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='#Surface'>Surface</a> is returned if all parameters are valid. <a href='#SkSurface_MakeFromBackendTextureAsRenderTarget_backendTexture'>backendTexture</a> is valid if
-its pixel configuration agrees with <a href='#SkSurface_MakeFromBackendTextureAsRenderTarget_colorSpace'>colorSpace</a> and <a href='#SkSurface_MakeFromBackendTextureAsRenderTarget_context'>context</a>; for instance, if
+<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='#Surface'>Surface</a> is available only for drawing into, and cannot generate an
-<a href='SkImage_Reference#Image'>Image</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.
 
 ### Parameters
 
 <table>  <tr>    <td><a name='SkSurface_MakeFromBackendTextureAsRenderTarget_context'><code><strong>context</strong></code></a></td>
-    <td><a href='undocumented#GPU_Context'>GPU Context</a></td>
+    <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>texture residing on GPU</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>
+    <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 pixel, or 0 to disable full scene anti-aliasing</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: <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> </td>
-  </tr>
-  <tr>    <td><a name='SkSurface_MakeFromBackendTextureAsRenderTarget_colorSpace'><code><strong>colorSpace</strong></code></a></td>
-    <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 device independent
-fonts; may be nullptr</td>
+    <td>one of:</td>
   </tr>
 </table>
 
+<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>
+
+### Parameters
+
+<table>  <tr>    <td><a name='SkSurface_MakeFromBackendTextureAsRenderTarget_colorSpace'><code><strong>colorSpace</strong></code></a></td>
+    <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> independent</td>
+  </tr>
+</table>
+
+fonts; may be nullptr
+
 ### Return Value
 
-<a href='#Surface'>Surface</a> if all parameters are valid; otherwise, nullptr
+<a href='SkSurface_Reference#SkSurface'>SkSurface</a> if all parameters are valid; otherwise, nullptr
 
 ### Example
 
@@ -629,53 +679,63 @@
                                          bool shouldCreateWithMips = false)
 </pre>
 
-Returns <a href='#Surface'>Surface</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#Color_Type'>Color Type</a> in ImageInfo.  <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 pixel format in <a href='SkImageInfo_Reference#Color_Type'>Color Type</a>, and transparency in
-<a href='SkImageInfo_Reference#Alpha_Type'>Alpha Type</a>, and color matching in <a href='undocumented#Color_Space'>Color Space</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> requests the number of samples per pixel.
-Pass zero to disable <a href='undocumented#Multi_Sample_Anti_Aliasing'>Multi Sample Anti Aliasing</a>.  The request is rounded
+<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> pins either the top-left or the bottom-left corner to the origin.
 
-<a href='#SkSurface_MakeRenderTarget_shouldCreateWithMips'>shouldCreateWithMips</a> hints that <a href='SkImage_Reference#Image'>Image</a> returned by <a href='#SkSurface_makeImageSnapshot'>makeImageSnapshot</a> is <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.
 
 ### Parameters
 
 <table>  <tr>    <td><a name='SkSurface_MakeRenderTarget_context'><code><strong>context</strong></code></a></td>
-    <td><a href='undocumented#GPU_Context'>GPU Context</a></td>
+    <td><a href='undocumented#GPU_Context'>GPU context</a></td>
   </tr>
   <tr>    <td><a name='SkSurface_MakeRenderTarget_budgeted'><code><strong>budgeted</strong></code></a></td>
-    <td>one of: <a href='undocumented#SkBudgeted_kNo'>SkBudgeted::kNo</a>, <a href='undocumented#SkBudgeted_kYes'>SkBudgeted::kYes</a></td>
+    <td>one of: <a href='undocumented#SkBudgeted'>SkBudgeted</a>::<a href='#SkBudgeted_kNo'>kNo</a>, <a href='undocumented#SkBudgeted'>SkBudgeted</a>::<a href='#SkBudgeted_kYes'>kYes</a></td>
   </tr>
   <tr>    <td><a name='SkSurface_MakeRenderTarget_imageInfo'><code><strong>imageInfo</strong></code></a></td>
-    <td>width, height, <a href='SkImageInfo_Reference#Color_Type'>Color Type</a>, <a href='SkImageInfo_Reference#Alpha_Type'>Alpha Type</a>, <a href='undocumented#Color_Space'>Color Space</a>;
-width, or height, or both, may be zero</td>
+    <td>width, height, <a href='SkImageInfo_Reference#SkColorType'>SkColorType</a>, <a href='SkImageInfo_Reference#SkAlphaType'>SkAlphaType</a>, <a href='undocumented#SkColorSpace'>SkColorSpace</a>;</td>
   </tr>
-  <tr>    <td><a name='SkSurface_MakeRenderTarget_sampleCount'><code><strong>sampleCount</strong></code></a></td>
-    <td>samples per pixel, or 0 to disable full scene anti-aliasing</td>
+</table>
+
+width, or height, or both, may be zero
+
+### 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>, 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>
+    <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 device independent
-fonts; may be nullptr</td>
+    <td>LCD striping orientation and setting for <a href='undocumented#Device'>device</a> independent</td>
   </tr>
-  <tr>    <td><a name='SkSurface_MakeRenderTarget_shouldCreateWithMips'><code><strong>shouldCreateWithMips</strong></code></a></td>
-    <td>hint that <a href='#Surface'>Surface</a> will host <a href='undocumented#Mip_Map'>Mip Map</a> images</td>
+</table>
+
+fonts; may be nullptr
+
+### 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> will host  <a href='undocumented#Mip_Map'>mip map</a> images</td>
   </tr>
 </table>
 
 ### Return Value
 
-<a href='#Surface'>Surface</a> if all parameters are valid; otherwise, nullptr
+<a href='SkSurface_Reference#SkSurface'>SkSurface</a> if all parameters are valid; otherwise, nullptr
 
 ### Example
 
@@ -695,43 +755,49 @@
                                          const <a href='undocumented#SkSurfaceProps'>SkSurfaceProps</a>* props)
 </pre>
 
-Returns <a href='#Surface'>Surface</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#Color_Type'>Color Type</a> in ImageInfo.  <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 pixel format in <a href='SkImageInfo_Reference#Color_Type'>Color Type</a>, and transparency in
-<a href='SkImageInfo_Reference#Alpha_Type'>Alpha Type</a>, and color matching in <a href='undocumented#Color_Space'>Color Space</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> requests the number of samples per pixel.
-Pass zero to disable <a href='undocumented#Multi_Sample_Anti_Aliasing'>Multi Sample Anti Aliasing</a>.  The request is rounded
+<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='#Surface'>Surface</a> bottom-left corner is pinned to the origin.
+<a href='SkSurface_Reference#SkSurface'>SkSurface</a> bottom-left corner is pinned to the origin.
 
 ### Parameters
 
 <table>  <tr>    <td><a name='SkSurface_MakeRenderTarget_2_context'><code><strong>context</strong></code></a></td>
-    <td><a href='undocumented#GPU_Context'>GPU Context</a></td>
+    <td><a href='undocumented#GPU_Context'>GPU context</a></td>
   </tr>
   <tr>    <td><a name='SkSurface_MakeRenderTarget_2_budgeted'><code><strong>budgeted</strong></code></a></td>
-    <td>one of: <a href='undocumented#SkBudgeted_kNo'>SkBudgeted::kNo</a>, <a href='undocumented#SkBudgeted_kYes'>SkBudgeted::kYes</a></td>
+    <td>one of: <a href='undocumented#SkBudgeted'>SkBudgeted</a>::<a href='#SkBudgeted_kNo'>kNo</a>, <a href='undocumented#SkBudgeted'>SkBudgeted</a>::<a href='#SkBudgeted_kYes'>kYes</a></td>
   </tr>
   <tr>    <td><a name='SkSurface_MakeRenderTarget_2_imageInfo'><code><strong>imageInfo</strong></code></a></td>
-    <td>width, height, <a href='SkImageInfo_Reference#Color_Type'>Color Type</a>, <a href='SkImageInfo_Reference#Alpha_Type'>Alpha Type</a>, <a href='undocumented#Color_Space'>Color Space</a>,
-of <a href='undocumented#Raster_Surface'>Raster Surface</a>; width, or height, or both, may be zero</td>
-  </tr>
-  <tr>    <td><a name='SkSurface_MakeRenderTarget_2_sampleCount'><code><strong>sampleCount</strong></code></a></td>
-    <td>samples per pixel, 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 device independent
-fonts; may be nullptr</td>
+    <td>width, height, <a href='SkImageInfo_Reference#SkColorType'>SkColorType</a>, <a href='SkImageInfo_Reference#SkAlphaType'>SkAlphaType</a>, <a href='undocumented#SkColorSpace'>SkColorSpace</a>,</td>
   </tr>
 </table>
 
+of  <a href='undocumented#Raster_Surface'>raster surface</a>; width, or height, or both, may be zero
+
+### 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>, 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> independent</td>
+  </tr>
+</table>
+
+fonts; may be nullptr
+
 ### Return Value
 
-<a href='#Surface'>Surface</a> if all parameters are valid; otherwise, nullptr
+<a href='SkSurface_Reference#SkSurface'>SkSurface</a> if all parameters are valid; otherwise, nullptr
 
 ### Example
 
@@ -754,31 +820,32 @@
                                          const <a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a>& imageInfo)
 </pre>
 
-Returns <a href='#Surface'>Surface</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#Color_Type'>Color Type</a> in ImageInfo.  <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 pixel format in <a href='SkImageInfo_Reference#Color_Type'>Color Type</a>, and transparency in
-<a href='SkImageInfo_Reference#Alpha_Type'>Alpha Type</a>, and color matching in <a href='undocumented#Color_Space'>Color Space</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='#Surface'>Surface</a> bottom-left corner is pinned to the origin.
+<a href='SkSurface_Reference#SkSurface'>SkSurface</a> bottom-left corner is pinned to the origin.
 
 ### Parameters
 
 <table>  <tr>    <td><a name='SkSurface_MakeRenderTarget_3_context'><code><strong>context</strong></code></a></td>
-    <td><a href='undocumented#GPU_Context'>GPU Context</a></td>
+    <td><a href='undocumented#GPU_Context'>GPU context</a></td>
   </tr>
   <tr>    <td><a name='SkSurface_MakeRenderTarget_3_budgeted'><code><strong>budgeted</strong></code></a></td>
-    <td>one of: <a href='undocumented#SkBudgeted_kNo'>SkBudgeted::kNo</a>, <a href='undocumented#SkBudgeted_kYes'>SkBudgeted::kYes</a></td>
+    <td>one of: <a href='undocumented#SkBudgeted'>SkBudgeted</a>::<a href='#SkBudgeted_kNo'>kNo</a>, <a href='undocumented#SkBudgeted'>SkBudgeted</a>::<a href='#SkBudgeted_kYes'>kYes</a></td>
   </tr>
   <tr>    <td><a name='SkSurface_MakeRenderTarget_3_imageInfo'><code><strong>imageInfo</strong></code></a></td>
-    <td>width, height, <a href='SkImageInfo_Reference#Color_Type'>Color Type</a>, <a href='SkImageInfo_Reference#Alpha_Type'>Alpha Type</a>, <a href='undocumented#Color_Space'>Color Space</a>,
-of <a href='undocumented#Raster_Surface'>Raster Surface</a>; width, or height, or both, may be zero</td>
+    <td>width, height, <a href='SkImageInfo_Reference#SkColorType'>SkColorType</a>, <a href='SkImageInfo_Reference#SkAlphaType'>SkAlphaType</a>, <a href='undocumented#SkColorSpace'>SkColorSpace</a>,</td>
   </tr>
 </table>
 
+of  <a href='undocumented#Raster_Surface'>raster surface</a>; width, or height, or both, may be zero
+
 ### Return Value
 
-<a href='#Surface'>Surface</a> if all parameters are valid; otherwise, nullptr
+<a href='SkSurface_Reference#SkSurface'>SkSurface</a> if all parameters are valid; otherwise, nullptr
 
 ### Example
 
@@ -798,25 +865,25 @@
                                          <a href='undocumented#SkBudgeted'>SkBudgeted</a> budgeted)
 </pre>
 
-Returns <a href='#SkSurface'>SkSurface</a> on GPU indicated by <a href='#SkSurface_MakeRenderTarget_4_context'>context</a> that is compatible with the provided
+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
 
 <table>  <tr>    <td><a name='SkSurface_MakeRenderTarget_4_context'><code><strong>context</strong></code></a></td>
-    <td><a href='undocumented#GPU_Context'>GPU Context</a></td>
+    <td><a href='undocumented#GPU_Context'>GPU context</a></td>
   </tr>
   <tr>    <td><a name='SkSurface_MakeRenderTarget_4_characterization'><code><strong>characterization</strong></code></a></td>
-    <td>description of the desired <a href='#SkSurface'>SkSurface</a></td>
+    <td>description of the desired <a href='SkSurface_Reference#SkSurface'>SkSurface</a></td>
   </tr>
   <tr>    <td><a name='SkSurface_MakeRenderTarget_4_budgeted'><code><strong>budgeted</strong></code></a></td>
-    <td>one of: <a href='undocumented#SkBudgeted_kNo'>SkBudgeted::kNo</a>, <a href='undocumented#SkBudgeted_kYes'>SkBudgeted::kYes</a></td>
+    <td>one of: <a href='undocumented#SkBudgeted'>SkBudgeted</a>::<a href='#SkBudgeted_kNo'>kNo</a>, <a href='undocumented#SkBudgeted'>SkBudgeted</a>::<a href='#SkBudgeted_kYes'>kYes</a></td>
   </tr>
 </table>
 
 ### Return Value
 
-<a href='#Surface'>Surface</a> if all parameters are valid; otherwise, nullptr
+<a href='SkSurface_Reference#SkSurface'>SkSurface</a> if all parameters are valid; otherwise, nullptr
 
 ### See Also
 
@@ -830,8 +897,8 @@
 static <a href='undocumented#sk_sp'>sk sp</a>&lt;<a href='#SkSurface'>SkSurface</a>&gt; <a href='#SkSurface_MakeNull'>MakeNull</a>(int width, int height)
 </pre>
 
-Returns <a href='#Surface'>Surface</a> without backing pixels. Drawing to <a href='SkCanvas_Reference#Canvas'>Canvas</a> returned from <a href='#Surface'>Surface</a>
-has no effect. Calling <a href='#SkSurface_makeImageSnapshot'>makeImageSnapshot</a>() on returned <a href='#Surface'>Surface</a> returns nullptr.
+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
 
@@ -845,7 +912,7 @@
 
 ### Return Value
 
-<a href='#Surface'>Surface</a> if width and height are positive; otherwise, nullptr
+<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
 
@@ -874,11 +941,11 @@
 int <a href='#SkSurface_width'>width</a>() const
 </pre>
 
-Returns pixel count in each row; may be zero or greater.
+Returns <a href='undocumented#Pixel'>pixel</a> count in each row; may be zero or greater.
 
 ### Return Value
 
-number of pixel columns
+number of <a href='undocumented#Pixel'>pixel</a> columns
 
 ### Example
 
@@ -904,11 +971,11 @@
 int <a href='#SkSurface_height'>height</a>() const
 </pre>
 
-Returns pixel row count; may be zero or greater.
+Returns <a href='undocumented#Pixel'>pixel</a> row count; may be zero or greater.
 
 ### Return Value
 
-number of pixel rows
+number of <a href='undocumented#Pixel'>pixel</a> rows
 
 ### Example
 
@@ -934,9 +1001,9 @@
 uint32_t <a href='#SkSurface_generationID'>generationID</a>()
 </pre>
 
-Returns unique value identifying the content of <a href='#Surface'>Surface</a>. Returned value changes
+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>.
+<a href='#SkSurface_notifyContentWillChange'>notifyContentWillChange</a>().
 
 ### Return Value
 
@@ -1117,23 +1184,25 @@
 <a href='undocumented#GrBackendTexture'>GrBackendTexture</a> <a href='#SkSurface_getBackendTexture'>getBackendTexture</a>(<a href='#SkSurface_BackendHandleAccess'>BackendHandleAccess</a> backendHandleAccess)
 </pre>
 
-Retrieves the back-end texture. If <a href='#Surface'>Surface</a> has no back-end texture, an invalid
-object is returned. Call <a href='undocumented#GrBackendTexture_isValid'>GrBackendTexture::isValid</a> to determine if the result
+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> should be discarded if the <a href='#Surface'>Surface</a> is drawn to or deleted.
+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
 
 <table>  <tr>    <td><a name='SkSurface_getBackendTexture_backendHandleAccess'><code><strong>backendHandleAccess</strong></code></a></td>
-    <td>one of:  <a href='#SkSurface_kFlushRead_BackendHandleAccess'>kFlushRead BackendHandleAccess</a>,
-<a href='#SkSurface_kFlushWrite_BackendHandleAccess'>kFlushWrite BackendHandleAccess</a>, <a href='#SkSurface_kDiscardWrite_BackendHandleAccess'>kDiscardWrite BackendHandleAccess</a></td>
+    <td>one of:  <a href='#SkSurface_kFlushRead_BackendHandleAccess'>kFlushRead_BackendHandleAccess</a>,</td>
   </tr>
 </table>
 
+<a href='#SkSurface_kFlushWrite_BackendHandleAccess'>kFlushWrite_BackendHandleAccess</a>,
+<a href='#SkSurface_kDiscardWrite_BackendHandleAccess'>kDiscardWrite_BackendHandleAccess</a>
+
 ### Return Value
 
-GPU texture reference; invalid on failure
+<a href='undocumented#GPU_Texture'>GPU texture</a> reference; invalid on failure
 
 ### See Also
 
@@ -1147,24 +1216,26 @@
 <a href='undocumented#GrBackendRenderTarget'>GrBackendRenderTarget</a> <a href='#SkSurface_getBackendRenderTarget'>getBackendRenderTarget</a>(<a href='#SkSurface_BackendHandleAccess'>BackendHandleAccess</a> backendHandleAccess)
 </pre>
 
-Retrieves the back-end render target. If <a href='#Surface'>Surface</a> has no back-end render target, an invalid
-object is returned. Call <a href='undocumented#GrBackendRenderTarget_isValid'>GrBackendRenderTarget::isValid</a> to determine if the result
+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> should be discarded if the <a href='#Surface'>Surface</a> is drawn to
+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
 
 <table>  <tr>    <td><a name='SkSurface_getBackendRenderTarget_backendHandleAccess'><code><strong>backendHandleAccess</strong></code></a></td>
-    <td>one of:  <a href='#SkSurface_kFlushRead_BackendHandleAccess'>kFlushRead BackendHandleAccess</a>,
-<a href='#SkSurface_kFlushWrite_BackendHandleAccess'>kFlushWrite BackendHandleAccess</a>, <a href='#SkSurface_kDiscardWrite_BackendHandleAccess'>kDiscardWrite BackendHandleAccess</a></td>
+    <td>one of:  <a href='#SkSurface_kFlushRead_BackendHandleAccess'>kFlushRead_BackendHandleAccess</a>,</td>
   </tr>
 </table>
 
+<a href='#SkSurface_kFlushWrite_BackendHandleAccess'>kFlushWrite_BackendHandleAccess</a>,
+<a href='#SkSurface_kDiscardWrite_BackendHandleAccess'>kDiscardWrite_BackendHandleAccess</a>
+
 ### Return Value
 
-GPU render target reference; invalid on failure
+GPU  <a href='undocumented#Render_Target'>render target</a> reference; invalid on failure
 
 ### See Also
 
@@ -1178,13 +1249,13 @@
 <a href='SkCanvas_Reference#SkCanvas'>SkCanvas</a>* <a href='#SkSurface_getCanvas'>getCanvas</a>()
 </pre>
 
-Returns <a href='SkCanvas_Reference#Canvas'>Canvas</a> that draws into <a href='#Surface'>Surface</a>. Subsequent calls return the same <a href='SkCanvas_Reference#Canvas'>Canvas</a>.
-<a href='SkCanvas_Reference#Canvas'>Canvas</a> returned is managed and owned by <a href='#Surface'>Surface</a>, and is deleted when <a href='#Surface'>Surface</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#Canvas'>Canvas</a> for <a href='#Surface'>Surface</a>
+drawing <a href='SkCanvas_Reference#SkCanvas'>SkCanvas</a> for <a href='SkSurface_Reference#SkSurface'>SkSurface</a>
 
 ### Example
 
@@ -1202,24 +1273,25 @@
 <a href='undocumented#sk_sp'>sk sp</a>&lt;<a href='#SkSurface'>SkSurface</a>&gt; <a href='#SkSurface_makeSurface'>makeSurface</a>(const <a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a>& imageInfo)
 </pre>
 
-Returns a compatible <a href='#Surface'>Surface</a>, or nullptr. Returned <a href='#Surface'>Surface</a> contains
-the same raster, GPU, or null properties as the original. Returned <a href='#Surface'>Surface</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> width or height are zero, or if <a href='#SkSurface_makeSurface_imageInfo'>imageInfo</a>
-is incompatible with <a href='#Surface'>Surface</a>.
+is incompatible with <a href='SkSurface_Reference#SkSurface'>SkSurface</a>.
 
 ### Parameters
 
 <table>  <tr>    <td><a name='SkSurface_makeSurface_imageInfo'><code><strong>imageInfo</strong></code></a></td>
-    <td>width, height, <a href='SkImageInfo_Reference#Color_Type'>Color Type</a>, <a href='SkImageInfo_Reference#Alpha_Type'>Alpha Type</a>, <a href='undocumented#Color_Space'>Color Space</a>,
-of <a href='#Surface'>Surface</a>; width and height must be greater than zero</td>
+    <td>width, height, <a href='SkImageInfo_Reference#SkColorType'>SkColorType</a>, <a href='SkImageInfo_Reference#SkAlphaType'>SkAlphaType</a>, <a href='undocumented#SkColorSpace'>SkColorSpace</a>,</td>
   </tr>
 </table>
 
+of <a href='SkSurface_Reference#SkSurface'>SkSurface</a>; width and height must be greater than zero
+
 ### Return Value
 
-compatible <a href='#Surface'>Surface</a> or nullptr
+compatible <a href='SkSurface_Reference#SkSurface'>SkSurface</a> or nullptr
 
 ### Example
 
@@ -1237,13 +1309,13 @@
 <a href='undocumented#sk_sp'>sk sp</a>&lt;<a href='SkImage_Reference#SkImage'>SkImage</a>&gt; <a href='#SkSurface_makeImageSnapshot'>makeImageSnapshot</a>()
 </pre>
 
-Returns <a href='SkImage_Reference#Image'>Image</a> capturing <a href='#Surface'>Surface</a> contents. Subsequent drawing to <a href='#Surface'>Surface</a> contents
-are not captured. <a href='SkImage_Reference#Image'>Image</a> allocation is accounted for if <a href='#Surface'>Surface</a> was created with
-<a href='undocumented#SkBudgeted_kYes'>SkBudgeted::kYes</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#Image'>Image</a> initialized with <a href='#Surface'>Surface</a> contents
+<a href='SkImage_Reference#SkImage'>SkImage</a> initialized with <a href='SkSurface_Reference#SkSurface'>SkSurface</a> contents
 
 ### Example
 
@@ -1263,28 +1335,29 @@
 void <a href='#SkSurface_draw'>draw</a>(<a href='SkCanvas_Reference#SkCanvas'>SkCanvas</a>* canvas, <a href='undocumented#SkScalar'>SkScalar</a> x, <a href='undocumented#SkScalar'>SkScalar</a> y, const <a href='SkPaint_Reference#SkPaint'>SkPaint</a>* paint)
 </pre>
 
-Draws <a href='#Surface'>Surface</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>).
+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#Paint'>Paint</a> <a href='#SkSurface_draw_paint'>paint</a> is not nullptr, apply <a href='undocumented#Color_Filter'>Color Filter</a>, <a href='SkColor_Reference#Alpha'>Color Alpha</a>, <a href='undocumented#Image_Filter'>Image Filter</a>,
-<a href='SkBlendMode_Reference#Blend_Mode'>Blend Mode</a>, and <a href='undocumented#Draw_Looper'>Draw Looper</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#Canvas'>Canvas</a> drawn into</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#Canvas'>Canvas</a></td>
+    <td>horizontal offset in <a href='SkCanvas_Reference#SkCanvas'>SkCanvas</a></td>
   </tr>
   <tr>    <td><a name='SkSurface_draw_y'><code><strong>y</strong></code></a></td>
-    <td>vertical offset in <a href='SkCanvas_Reference#Canvas'>Canvas</a></td>
+    <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#Paint'>Paint</a> containing <a href='SkBlendMode_Reference#Blend_Mode'>Blend Mode</a>, <a href='undocumented#Color_Filter'>Color Filter</a>, <a href='undocumented#Image_Filter'>Image Filter</a>,
-and so on; or nullptr</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>
 
+and so on; or nullptr
+
 ### Example
 
 <div><fiddle-embed name="0de693f4d8dd898a60be8cfba23952be"></fiddle-embed></div>
@@ -1301,22 +1374,22 @@
 bool <a href='#SkSurface_peekPixels'>peekPixels</a>(<a href='SkPixmap_Reference#SkPixmap'>SkPixmap</a>* pixmap)
 </pre>
 
-Copies <a href='#Surface'>Surface</a> pixel address, row bytes, and <a href='SkImageInfo_Reference#Image_Info'>Image Info</a> to <a href='SkPixmap_Reference#Pixmap'>Pixmap</a>, if address
-is available, and returns true. If pixel address is not available, return
-false and leave <a href='SkPixmap_Reference#Pixmap'>Pixmap</a> unchanged.
+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> contents become invalid on any future change to <a href='#Surface'>Surface</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 pixel state if pixels are readable; otherwise, ignored</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='#Surface'>Surface</a> has direct access to pixels
+true if <a href='SkSurface_Reference#SkSurface'>SkSurface</a> has direct access to pixels
 
 ### Example
 
@@ -1602,11 +1675,11 @@
 const <a href='undocumented#SkSurfaceProps'>SkSurfaceProps</a>& <a href='#SkSurface_props'>props</a>() const
 </pre>
 
-Returns <a href='undocumented#Surface_Properties'>Surface Properties</a> for surface.
+Returns <a href='undocumented#SkSurfaceProps'>SkSurfaceProps</a> for <a href='SkSurface_Reference#Surface'>surface</a>.
 
 ### Return Value
 
-LCD striping orientation and setting for device independent fonts
+LCD striping orientation and setting for <a href='undocumented#Device'>device</a> independent fonts
 
 ### Example
 
@@ -1644,7 +1717,7 @@
 void <a href='#SkSurface_flush'>flush</a>()
 </pre>
 
-Issues pending <a href='#Surface'>Surface</a> commands to the GPU-backed API and resolves any <a href='#Surface'>Surface</a> MSAA.
+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
@@ -1663,7 +1736,7 @@
                                                <a href='undocumented#GrBackendSemaphore'>GrBackendSemaphore</a> signalSemaphores[])
 </pre>
 
-Issues pending <a href='#Surface'>Surface</a> commands to the GPU-backed API and resolves any <a href='#Surface'>Surface</a> MSAA.
+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.
 
@@ -1674,22 +1747,22 @@
 The caller must delete the semaphores created and returned in <a href='#SkSurface_flushAndSignalSemaphores_signalSemaphores'>signalSemaphores</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.
+If the back-end API is OpenGL only uninitialized  <a href='undocumented#Backend_Semaphore'>backend semaphores</a> are supported.
 
 If the back-end API is Vulkan semaphores may be initialized or uninitialized.
 If uninitialized, created semaphores are valid only with the VkDevice
 with which they were created.
 
-If <a href='undocumented#GrSemaphoresSubmitted_kNo'>GrSemaphoresSubmitted::kNo</a> is returned, the GPU back-end did not create or
+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 surface commands are flushed regardless of the return result.
+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>size of <a href='#SkSurface_flushAndSignalSemaphores_signalSemaphores'>signalSemaphores</a> array</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>
@@ -1698,7 +1771,7 @@
 
 ### Return Value
 
-one of: <a href='undocumented#GrSemaphoresSubmitted_kYes'>GrSemaphoresSubmitted::kYes</a>, <a href='undocumented#GrSemaphoresSubmitted_kNo'>GrSemaphoresSubmitted::kNo</a>
+one of: <a href='undocumented#GrSemaphoresSubmitted'>GrSemaphoresSubmitted</a>::<a href='#GrSemaphoresSubmitted_kYes'>kYes</a>, <a href='undocumented#GrSemaphoresSubmitted'>GrSemaphoresSubmitted</a>::<a href='#GrSemaphoresSubmitted_kNo'>kNo</a>
 
 ### See Also
 
@@ -1713,7 +1786,7 @@
 </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 surface. Skia will take ownership of the
+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.
@@ -1721,7 +1794,7 @@
 ### Parameters
 
 <table>  <tr>    <td><a name='SkSurface_wait_numSemaphores'><code><strong>numSemaphores</strong></code></a></td>
-    <td>size of <a href='#SkSurface_wait_waitSemaphores'>waitSemaphores</a> array</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>
@@ -1744,12 +1817,12 @@
 bool <a href='#SkSurface_characterize'>characterize</a>(<a href='undocumented#SkSurfaceCharacterization'>SkSurfaceCharacterization</a>* characterization) const
 </pre>
 
-Initializes <a href='undocumented#Surface_Characterization'>Surface Characterization</a> that can be used to perform GPU back-end
+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. DeferredDisplayListRecorder records the drawing commands
+into multiple tiles. <a href='undocumented#SkDeferredDisplayListRecorder'>SkDeferredDisplayListRecorder</a> records the drawing commands
 for each tile.
 
-Return true if <a href='#Surface'>Surface</a> supports <a href='#SkSurface_characterize_characterization'>characterization</a>. <a href='undocumented#Raster_Surface'>Raster Surface</a> returns false.
+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
 
@@ -1778,11 +1851,11 @@
 bool <a href='#SkSurface_draw'>draw</a>(<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#Surface_Characterization'>Surface Characterization</a> stored in
-<a href='#SkSurface_draw_2_deferredDisplayList'>deferredDisplayList</a> is not compatible with <a href='#Surface'>Surface</a>.
+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> 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.
+<a href='undocumented#Raster_Surface'>raster surface</a> returns false.
 
 ### Parameters
 
diff --git a/site/user/api/SkTextBlobBuilder_Reference.md b/site/user/api/SkTextBlobBuilder_Reference.md
index a290e89..4800c6f 100644
--- a/site/user/api/SkTextBlobBuilder_Reference.md
+++ b/site/user/api/SkTextBlobBuilder_Reference.md
@@ -107,11 +107,11 @@
 <a href='#SkTextBlobBuilder'>SkTextBlobBuilder</a>()
 </pre>
 
-Constructs empty <a href='#Text_Blob_Builder'>Text Blob Builder</a>. By default, <a href='#Text_Blob_Builder'>Text Blob Builder</a> has no runs.
+Constructs empty <a href='SkTextBlobBuilder_Reference#SkTextBlobBuilder'>SkTextBlobBuilder</a>. By default, <a href='SkTextBlobBuilder_Reference#SkTextBlobBuilder'>SkTextBlobBuilder</a> has no runs.
 
 ### Return Value
 
-empty <a href='#Text_Blob_Builder'>Text Blob Builder</a>
+empty <a href='SkTextBlobBuilder_Reference#SkTextBlobBuilder'>SkTextBlobBuilder</a>
 
 ### Example
 
@@ -137,7 +137,7 @@
 <a href='#SkTextBlobBuilder_destructor'>~SkTextBlobBuilder</a>()
 </pre>
 
-Deletes data allocated internally by <a href='#Text_Blob_Builder'>Text Blob Builder</a>.
+Deletes <a href='undocumented#Data'>data</a> allocated internally by <a href='SkTextBlobBuilder_Reference#SkTextBlobBuilder'>SkTextBlobBuilder</a>.
 
 ### See Also
 
@@ -151,16 +151,16 @@
 <a href='undocumented#sk_sp'>sk sp</a>&lt;<a href='SkTextBlob_Reference#SkTextBlob'>SkTextBlob</a>&gt; <a href='#SkTextBlobBuilder_make'>make</a>()
 </pre>
 
-Returns <a href='SkTextBlob_Reference#Text_Blob'>Text Blob</a> built from runs of <a href='undocumented#Glyph'>Glyphs</a> added by builder. Returned
-<a href='SkTextBlob_Reference#Text_Blob'>Text Blob</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.
+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='#Text_Blob_Builder'>Text Blob Builder</a> to its initial empty state, allowing it to be
+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#Text_Blob'>Text Blob</a> or nullptr
+<a href='SkTextBlob_Reference#SkTextBlob'>SkTextBlob</a> or nullptr
 
 ### Example
 
diff --git a/site/user/api/SkTextBlob_Reference.md b/site/user/api/SkTextBlob_Reference.md
index 04b160a..7baa09c 100644
--- a/site/user/api/SkTextBlob_Reference.md
+++ b/site/user/api/SkTextBlob_Reference.md
@@ -34,9 +34,9 @@
 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#Paint'>Paint</a> associated with each glyph to
-determine glyph bounds, and unions all bounds. Returned bounds may be
-larger than the bounds of all <a href='undocumented#Glyph'>Glyphs</a> in runs.
+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
 
@@ -58,11 +58,11 @@
 uint32_t <a href='#SkTextBlob_uniqueID'>uniqueID</a>() const
 </pre>
 
-Returns a non-zero value unique among all text blobs.
+Returns a non-zero value unique among all <a href='undocumented#Text'>text</a> blobs.
 
 ### Return Value
 
-identifier for <a href='#Text_Blob'>Text Blob</a>
+identifier for <a href='SkTextBlob_Reference#SkTextBlob'>SkTextBlob</a>
 
 ### Example
 
@@ -169,32 +169,32 @@
 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 data to allow later reconstruction of <a href='#Text_Blob'>Text Blob</a>. <a href='#SkTextBlob_serialize_memory'>memory</a> points to storage
-to receive the encoded data, and memory_size describes the <a href='#SkTextBlob_serialize_size'>size</a> of storage.
-Returns bytes used if provided storage is large enough to hold all data;
+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>.fTypefaceProc permits supplying a custom function to encode <a href='undocumented#Typeface'>Typeface</a>.
-If <a href='#SkTextBlob_serialize_procs'>procs</a>.fTypefaceProc is nullptr, default encoding is used. <a href='#SkTextBlob_serialize_procs'>procs</a>.fTypefaceCtx
-may be used to provide user context to <a href='#SkTextBlob_serialize_procs'>procs</a>.fTypefaceProc; <a href='#SkTextBlob_serialize_procs'>procs</a>.fTypefaceProc
-is called with a pointer to <a href='undocumented#Typeface'>Typeface</a> and user context.
+<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> and user context.
 
 ### Parameters
 
 <table>  <tr>    <td><a name='SkTextBlob_serialize_procs'><code><strong>procs</strong></code></a></td>
-    <td>custom serial data encoders; may be nullptr</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 data</td>
+    <td>storage for <a href='undocumented#Data'>data</a></td>
   </tr>
-  <tr>    <td><a name='SkTextBlob_serialize_size'><code><strong>size</strong></code></a></td>
-    <td><a href='#SkTextBlob_serialize_size'>size</a> of storage</td>
+  <tr>    <td><a name='SkTextBlob_serialize_memory_size'><code><strong>memory_size</strong></code></a></td>
+    <td><a href='undocumented#Size'>size</a> of storage</td>
   </tr>
 </table>
 
 ### Return Value
 
-bytes written, or zero if required storage is larger than memory_size
+bytes written, or zero if required storage is larger than <a href='#SkTextBlob_serialize()_memory_size'>memory_size</a>
 
 ### Example
 
@@ -212,24 +212,24 @@
 <a href='undocumented#sk_sp'>sk sp</a>&lt;<a href='undocumented#SkData'>SkData</a>&gt; <a href='#SkTextBlob_serialize'>serialize</a>(const <a href='undocumented#SkSerialProcs'>SkSerialProcs</a>& procs) const
 </pre>
 
-Returns storage containing <a href='undocumented#Data'>Data</a> describing <a href='#Text_Blob'>Text Blob</a>, using optional custom
+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>.fTypefaceProc permits supplying a custom function to encode <a href='undocumented#Typeface'>Typeface</a>.
-If <a href='#SkTextBlob_serialize_2_procs'>procs</a>.fTypefaceProc is nullptr, default encoding is used. <a href='#SkTextBlob_serialize_2_procs'>procs</a>.fTypefaceCtx
-may be used to provide user context to <a href='#SkTextBlob_serialize_2_procs'>procs</a>.fTypefaceProc; <a href='#SkTextBlob_serialize_2_procs'>procs</a>.fTypefaceProc
-is called with a pointer to <a href='undocumented#Typeface'>Typeface</a> and user context.
+<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> and user context.
 
 ### Parameters
 
 <table>  <tr>    <td><a name='SkTextBlob_serialize_2_procs'><code><strong>procs</strong></code></a></td>
-    <td>custom serial data encoders; may be nullptr</td>
+    <td>custom serial <a href='undocumented#Data'>data</a> encoders; may be nullptr</td>
   </tr>
 </table>
 
 ### Return Value
 
-storage containing serialized <a href='#Text_Blob'>Text Blob</a>
+storage containing serialized <a href='SkTextBlob_Reference#SkTextBlob'>SkTextBlob</a>
 
 ### Example
 
@@ -247,14 +247,14 @@
 static <a href='undocumented#sk_sp'>sk sp</a>&lt;<a href='#SkTextBlob'>SkTextBlob</a>&gt; <a href='#SkTextBlob_Deserialize'>Deserialize</a>(const void* data, size_t size, const <a href='undocumented#SkDeserialProcs'>SkDeserialProcs</a>& procs)
 </pre>
 
-Recreates <a href='#Text_Blob'>Text Blob</a> that was serialized into <a href='#SkTextBlob_Deserialize_data'>data</a>. Returns constructed <a href='#Text_Blob'>Text Blob</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='#Text_Blob'>Text Blob</a>.
+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>.fTypefaceProc permits supplying a custom function to decode <a href='undocumented#Typeface'>Typeface</a>.
-If <a href='#SkTextBlob_Deserialize_procs'>procs</a>.fTypefaceProc is nullptr, default decoding is used. <a href='#SkTextBlob_Deserialize_procs'>procs</a>.fTypefaceCtx
-may be used to provide user context to <a href='#SkTextBlob_Deserialize_procs'>procs</a>.fTypefaceProc; <a href='#SkTextBlob_Deserialize_procs'>procs</a>.fTypefaceProc
-is called with a pointer to <a href='undocumented#Typeface'>Typeface</a> <a href='#SkTextBlob_Deserialize_data'>data</a>, <a href='#SkTextBlob_Deserialize_data'>data</a> byte length, and user context.
+<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> byte length, and user context.
 
 ### Parameters
 
@@ -271,7 +271,7 @@
 
 ### Return Value
 
-<a href='#Text_Blob'>Text Blob</a> constructed from <a href='#SkTextBlob_Deserialize_data'>data</a> in memory
+<a href='SkTextBlob_Reference#SkTextBlob'>SkTextBlob</a> constructed from <a href='#SkTextBlob_Deserialize_data'>data</a> in memory
 
 ### Example
 
diff --git a/site/user/api/undocumented.md b/site/user/api/undocumented.md
index a72f93f..82afd7d 100644
--- a/site/user/api/undocumented.md
+++ b/site/user/api/undocumented.md
@@ -103,7 +103,36 @@
 
 <a name='SkDeserialProcs'></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>
+<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; '>SkDeserialPictureProc</td>
+    <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a name='SkDeserialProcs_fPictureProc'><code>fPictureProc</code></a></td>
+    <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>
+</td>
+  </tr>
+  <tr>
+    <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>void*</td>
+    <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a name='SkDeserialProcs_fPictureCtx'><code>fPictureCtx</code></a></td>
+    <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>
+</td>
+  </tr>
+  <tr style='background-color: #f0f0f0; '>
+    <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>SkDeserialTypefaceProc</td>
+    <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a name='SkDeserialProcs_fTypefaceProc'><code>fTypefaceProc</code></a></td>
+    <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>
+</td>
+  </tr>
+  <tr>
+    <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>void*</td>
+    <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a name='SkDeserialProcs_fTypefaceCtx'><code>fTypefaceCtx</code></a></td>
+    <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>
+</td>
+  </tr>
+</table>
 
 <a name='SkBaseDevice'></a>
 
@@ -247,6 +276,22 @@
 
 ---
 
+<a name='SkISize_width'></a>
+
+---
+
+<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
+int32_t <a href='#SkISize_width'>width</a>() const
+</pre>
+
+<a name='SkISize_height'></a>
+
+---
+
+<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
+int32_t <a href='#SkISize_height'>height</a>() const
+</pre>
+
 <a name='SkImageFilter'></a>
 
 ---
@@ -368,7 +413,36 @@
 
 <a name='SkRSXform'></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>
+<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; '>SkScalar</td>
+    <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a name='SkRSXform_fSCos'><code>fSCos</code></a></td>
+    <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>
+</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='SkRSXform_fSSin'><code>fSSin</code></a></td>
+    <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>
+</td>
+  </tr>
+  <tr style='background-color: #f0f0f0; '>
+    <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='SkRSXform_fTx'><code>fTx</code></a></td>
+    <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>
+</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='SkRSXform_fTy'><code>fTy</code></a></td>
+    <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>
+</td>
+  </tr>
+</table>
 
 <a name='SkRasterHandleAllocator'></a>
 
@@ -395,10 +469,6 @@
 
 ---
 
-<a name='sk_sp'></a>
-
----
-
 <a name='GrBackendRenderTarget'></a>
 
 ---
@@ -419,13 +489,44 @@
 
 <a name='Arc'></a>
 
+<a name='Sweep_Flag'></a>
+
 <a name='SkScalar'></a>
 
 ---
 
 <a name='SkSerialProcs'></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>
+<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; '>SkSerialPictureProc</td>
+    <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a name='SkSerialProcs_fPictureProc'><code>fPictureProc</code></a></td>
+    <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>
+</td>
+  </tr>
+  <tr>
+    <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>void*</td>
+    <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a name='SkSerialProcs_fPictureCtx'><code>fPictureCtx</code></a></td>
+    <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>
+</td>
+  </tr>
+  <tr style='background-color: #f0f0f0; '>
+    <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>SkSerialTypefaceProc</td>
+    <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a name='SkSerialProcs_fTypefaceProc'><code>fTypefaceProc</code></a></td>
+    <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>
+</td>
+  </tr>
+  <tr>
+    <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>void*</td>
+    <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a name='SkSerialProcs_fTypefaceCtx'><code>fTypefaceCtx</code></a></td>
+    <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>
+</td>
+  </tr>
+</table>
 
 <a name='SkShader'></a>
 
@@ -483,6 +584,26 @@
 
 ---
 
+<a name='SkSize_width'></a>
+
+---
+
+<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
+int32_t <a href='#SkSize_width'>width</a>() const
+</pre>
+
+<a name='SkSize_height'></a>
+
+---
+
+<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
+int32_t <a href='#SkSize_height'>height</a>() const
+</pre>
+
+<a name='sk_sp'></a>
+
+---
+
 <a name='SkStreamAsset'></a>
 
 ---
diff --git a/site/user/api/usingBookmaker.md b/site/user/api/usingBookmaker.md
index 0ee0814..a0a2db6 100644
--- a/site/user/api/usingBookmaker.md
+++ b/site/user/api/usingBookmaker.md
@@ -159,7 +159,7 @@
 If a method or function has an unnamed parameter, bookmaker generates an error:
 
 <pre style="padding: 1em 1em 1em 1em;width: 62.5em; background-color: #f0f0f0">
-C:/puregit/include/core/<a href='SkPixmap_Reference#SkPixmap'>SkPixmap</a>.h(208): error: #Method missing param name
+C:/puregit/include/core/SkPixmap.h(208): error: #Method missing param name
 bool erase(const SkColor4f&, const SkIRect* subset = nullptr) const
            ^
 </pre>
diff --git a/tools/bookmaker/bookmaker.cpp b/tools/bookmaker/bookmaker.cpp
index 7f0b9f9..beb7dd6 100644
--- a/tools/bookmaker/bookmaker.cpp
+++ b/tools/bookmaker/bookmaker.cpp
@@ -12,6 +12,8 @@
 #include <Windows.h>
 #endif
 
+const string kSpellingFileName("spelling.txt");
+
 DEFINE_string2(status, a, "", "File containing status of documentation. (Use in place of -b -i)");
 DEFINE_string2(bmh, b, "", "Path to a *.bmh file or a directory.");
 DEFINE_bool2(catalog, c, false, "Write example catalog.htm. (Requires -b -f -r)");
@@ -32,6 +34,8 @@
 DEFINE_bool2(validate, V, false, "Validate that all anchor references have definitions. (Requires -r)");
 DEFINE_bool2(skip, z, false, "Skip degenerate missed in legacy preprocessor.");
 
+// -b docs -i include/core/SkRect.h -f fiddleout.json -r site/user/api
+// -b docs/SkIRect_Reference.bmh -H
 /* todos:
 
 if #Subtopic contains #SeeAlso or #Example generate horizontal rule at end
@@ -217,6 +221,9 @@
             if (nullptr == fRoot) {
                 fRoot = this->findBmhObject(markType, name);
                 fRoot->fFileName = fFileName;
+                fRoot->fName = name;
+                fRoot->fNames.fName = name;
+                fRoot->fNames.fParent = &fGlobalNames;
                 definition = fRoot;
             } else {
                 if (nullptr == fParent) {
@@ -241,6 +248,10 @@
                         (fRoot->fBranches)[name] = childRoot;
                         childRoot->setRootParent(fRoot);
                         childRoot->fFileName = fFileName;
+                        SkASSERT(MarkType::kSubtopic != fRoot->fMarkType
+                                && MarkType::kTopic != fRoot->fMarkType);
+                        childRoot->fNames.fName = name;
+                        childRoot->fNames.fParent = &fRoot->fNames;
                         fRoot = childRoot;
                         definition = fRoot;
                     } else {
@@ -353,6 +364,7 @@
                     definition->fName += typeNameBuilder[0];
                     definition->fFiddle = parent->fFiddle + '_';
                 }
+                rootDefinition->fNames.fName = rootDefinition->fName;
                 definition->fFiddle += Definition::NormalizedName(typeNameBuilder[0]);
                 this->setAsParent(definition);
             }
@@ -897,7 +909,7 @@
         }
         this->skipToAlpha();
         const char* wordStart = fChar;
-        this->skipToNonName();
+        this->skipToWhiteSpace();
         if (fChar - wordStart > 0) {
             fExternals.emplace_front(MarkType::kExternal, wordStart, fChar, fLineCount, fParent,
                     fMC);
@@ -1225,6 +1237,237 @@
     return result;
 }
 
+string BmhParser::loweredTopic(string name, Definition* def) {
+    string lowered;
+    SkASSERT('_' != name[0]);
+    char last = '_';
+    for (char c : name) {
+        SkASSERT(' ' != c);
+        if (isupper(last)) {
+            lowered += islower(c) ? tolower(last) : last;
+            last = '\0';
+        }
+        if ('_' == c) {
+            last = c;
+            c = ' ';
+        } else if ('_' == last && isupper(c)) {
+            last = c;
+            continue;
+        }
+        lowered += c;
+        if (' ' == c) {
+            this->setUpPartialSubstitute(lowered);
+        }
+    }
+    if (isupper(last)) {
+        lowered += tolower(last);
+    }
+    return lowered;
+}
+
+void BmhParser::setUpGlobalSubstitutes() {
+    for (auto& entry : fExternals) {
+        string externalName = entry.fName;
+        SkASSERT(fGlobalNames.fRefMap.end() == fGlobalNames.fRefMap.find(externalName));
+        fGlobalNames.fRefMap[externalName] = nullptr;
+    }
+    for (auto bMap : { &fClassMap, &fConstMap, &fDefineMap, &fEnumMap, &fMethodMap,
+            &fTypedefMap } ) {
+        for (auto& entry : *bMap) {
+            Definition* parent = (Definition*) &entry.second;
+            string name = parent->fName;
+            SkASSERT(fGlobalNames.fLinkMap.end() == fGlobalNames.fLinkMap.find(name));
+            string ref = ParserCommon::HtmlFileName(parent->fFileName) + '#' + parent->fFiddle;
+            fGlobalNames.fLinkMap[name] = ref;
+            SkASSERT(fGlobalNames.fRefMap.end() == fGlobalNames.fRefMap.find(name));
+            fGlobalNames.fRefMap[name] = const_cast<Definition*>(parent);
+            NameMap* names = MarkType::kClass == parent->fMarkType
+                    || MarkType::kStruct == parent->fMarkType
+                    || MarkType::kEnumClass == parent->fMarkType ? &parent->asRoot()->fNames :
+                    &fGlobalNames;
+            this->setUpSubstitutes(parent, names);
+            if (names != &fGlobalNames) {
+                names->copyToParent(&fGlobalNames);
+            }
+        }
+    }
+    for (auto& topic : fTopicMap) {
+        bool hasSubstitute = false;
+        for (auto& child : topic.second->fChildren) {
+            bool isAlias = MarkType::kAlias == child->fMarkType;
+            bool isSubstitute = MarkType::kSubstitute == child->fMarkType;
+            if (!isAlias && !isSubstitute) {
+                continue;
+            }
+            hasSubstitute |= isSubstitute;
+            string name(child->fContentStart, child->length());
+            if (isAlias) {
+                name = ParserCommon::ConvertRef(name, false);
+                for (auto aliasChild : child->fChildren) {
+                    if (MarkType::kSubstitute == aliasChild->fMarkType) {
+                        string sub(aliasChild->fContentStart, aliasChild->length());
+                        this->setUpSubstitute(sub, topic.second);
+                    }
+                }
+            }
+            this->setUpSubstitute(name, topic.second);
+        }
+        if (hasSubstitute) {
+            continue;
+        }
+        string lowered = this->loweredTopic(topic.first, topic.second);
+        SkDEBUGCODE(auto globalIter = fGlobalNames.fLinkMap.find(lowered));
+        SkASSERT(fGlobalNames.fLinkMap.end() == globalIter);
+        fGlobalNames.fLinkMap[lowered] =
+                ParserCommon::HtmlFileName(topic.second->fFileName) + '#' + topic.first;
+        SkASSERT(fGlobalNames.fRefMap.end() == fGlobalNames.fRefMap.find(lowered));
+        fGlobalNames.fRefMap[lowered] = topic.second;
+    }
+    size_t slash = fRawFilePathDir.rfind('/');
+    size_t bslash = fRawFilePathDir.rfind('\\');
+    string spellFile;
+    if (string::npos == slash && string::npos == bslash) {
+        spellFile = fRawFilePathDir;
+    } else {
+        if (string::npos != bslash && bslash > slash) {
+            slash = bslash;
+        }
+        spellFile = fRawFilePathDir.substr(0, slash);
+    }
+    spellFile += '/';
+    spellFile += kSpellingFileName;
+    FILE* file = fopen(spellFile.c_str(), "r");
+    if (!file) {
+        SkDebugf("missing %s\n", spellFile.c_str());
+        return;
+    }
+    fseek(file, 0L, SEEK_END);
+    int sz = (int) ftell(file);
+    rewind(file);
+    char* buffer = new char[sz];
+    memset(buffer, ' ', sz);
+    int read = (int)fread(buffer, 1, sz, file);
+    SkAssertResult(read > 0);
+    sz = read;  // FIXME: ? why are sz and read different?
+    fclose(file);
+    int i = 0;
+    int start = i;
+    string word;
+    do {
+        if (' ' < buffer[i]) {
+            ++i;
+            continue;
+        }
+        word = string(&buffer[start], i - start);
+        if (fGlobalNames.fRefMap.end() == fGlobalNames.fRefMap.find(word)) {
+            fGlobalNames.fRefMap[word] = nullptr;
+        } else {
+            SkDebugf("%s ", word.c_str());  // debugging: word missing from spelling list
+        }
+        do {
+            ++i;
+        } while (i < sz && ' ' >= buffer[i]);
+        start = i;
+    } while (i < sz);
+    delete[] buffer;
+}
+
+void BmhParser::setUpSubstitutes(const Definition* parent, NameMap* names) {
+    for (const auto& child : parent->fChildren) {
+        MarkType markType = child->fMarkType;
+        if (MarkType::kAlias == markType) {
+            continue;
+        }
+        if (MarkType::kSubstitute == markType) {
+            continue;
+        }
+        string name(child->fName);
+        if (&fGlobalNames != names) {
+            size_t lastDC = name.rfind("::");
+            if (string::npos != lastDC) {
+                name = name.substr(lastDC + 2);
+            }
+            if ("" == name) {
+                continue;
+            }
+        }
+        size_t lastUnder = name.rfind('_');
+        if (string::npos != lastUnder && ++lastUnder < name.length()) {
+            bool numbers = true;
+            for (size_t index = lastUnder; index < name.length(); ++index) {
+                numbers &= (bool) isdigit(name[index]);
+            }
+            if (numbers) {
+                continue;
+            }
+        }
+        string ref;
+        if (&fGlobalNames == names) {
+            ref = ParserCommon::HtmlFileName(child->fFileName);
+        }
+        ref += '#' + child->fFiddle;
+        if (MarkType::kClass == markType || MarkType::kStruct == markType
+                || MarkType::kMethod == markType || MarkType::kEnum == markType
+                || MarkType::kEnumClass == markType || MarkType::kConst == markType
+                || MarkType::kMember == markType || MarkType::kDefine == markType
+                || MarkType::kTypedef == markType) {
+            SkASSERT(names->fLinkMap.end() == names->fLinkMap.find(name));
+            names->fLinkMap[name] = ref;
+            SkASSERT(names->fRefMap.end() == names->fRefMap.find(name));
+            names->fRefMap[name] = child;
+        }
+        if (MarkType::kClass == markType || MarkType::kStruct == markType
+                || MarkType::kEnumClass == markType) {
+            RootDefinition* rootDef = child->asRoot();
+            NameMap* nameMap = &rootDef->fNames;
+            this->setUpSubstitutes(child, nameMap);
+            nameMap->copyToParent(names);
+        }
+        if (MarkType::kEnum == markType) {
+            this->setUpSubstitutes(child, names);
+        }
+        if (MarkType::kSubtopic == markType) {
+            if (&fGlobalNames != names && string::npos != child->fName.find('_')) {
+                string lowered = this->loweredTopic(child->fName, child);
+                SkDEBUGCODE(auto refIter = names->fRefMap.find(lowered));
+                SkDEBUGCODE(auto iter = names->fLinkMap.find(lowered));
+                SkASSERT(names->fLinkMap.end() == iter);
+                names->fLinkMap[lowered] = '#' + child->fName;
+                SkASSERT(names->fRefMap.end() == refIter);
+                names->fRefMap[lowered] = child;
+            }
+            this->setUpSubstitutes(child, names);
+        }
+    }
+}
+
+void BmhParser::setUpPartialSubstitute(string name) {
+    auto iter = fGlobalNames.fRefMap.find(name);
+    if (fGlobalNames.fRefMap.end() != iter) {
+        SkASSERT(nullptr == iter->second);
+        return;
+    }
+    fGlobalNames.fRefMap[name] = nullptr;
+}
+
+void BmhParser::setUpSubstitute(string name, Definition* def) {
+    SkASSERT(fGlobalNames.fRefMap.end() == fGlobalNames.fRefMap.find(name));
+    fGlobalNames.fRefMap[name] = def;
+    SkASSERT(fGlobalNames.fLinkMap.end() == fGlobalNames.fLinkMap.find(name));
+    string str = ParserCommon::HtmlFileName(def->fFileName) + '#' + def->fName;
+    fGlobalNames.fLinkMap[name] = str;
+    size_t stop = name.length();
+    do {
+        size_t space = name.rfind(' ', stop);
+        if (string::npos == space) {
+            break;
+        }
+        string partial = name.substr(0, space + 1);
+        stop = space - 1;
+        this->setUpPartialSubstitute(partial);
+    } while (true);
+}
+
 void BmhParser::setWrapper(Definition* def) const {
     const char drawWrapper[] = "void draw(SkCanvas* canvas) {";
     const char drawNoCanvas[] = "void draw(SkCanvas* ) {";
@@ -1489,9 +1732,8 @@
     return MarkType::kNone;
 }
 
-    // write #In to show containing #Topic
-	// write #Line with one liner from Member_Functions, Constructors, Operators if method,
-	//    from Constants if enum, otherwise from #Subtopic containing match
+    // replace #Method description, #Param, #Return with #Populate
+    // if description, params, return are free of phrase refs
 bool HackParser::hackFiles() {
     string filename(fFileName);
     size_t len = filename.length() - 1;
@@ -1511,7 +1753,10 @@
         return false;
     }
     auto mapEntry = fBmhParser.fClassMap.find(className);
-    SkASSERT(fBmhParser.fClassMap.end() != mapEntry);
+    if (fBmhParser.fClassMap.end() == mapEntry) {
+        remove(filename.c_str());
+        return true;
+    }
     const Definition* classMarkup = &mapEntry->second;
     const Definition* root = classMarkup->fParent;
     SkASSERT(root);
@@ -1520,16 +1765,12 @@
     SkASSERT(!root->fParent);
     fStart = root->fStart;
     fChar = fStart;
-    fClasses = nullptr;
-    fConstants = nullptr;
-    fConstructors = nullptr;
-    fMemberFunctions = nullptr;
-    fMembers = nullptr;
-    fOperators = nullptr;
-    fRelatedFunctions = nullptr;
-    fStructs = nullptr;
-    this->topicIter(root);
-    fprintf(fOut, "%.*s", (int) (fEnd - fChar), fChar);
+    fEnd = root->fTerminator;
+    this->replaceWithPop(root);
+    FPRINTF("%.*s", (int) (fEnd - fChar), fChar);
+    if ('\n' != fEnd[-1]) {
+        FPRINTF("\n");
+    }
     fclose(fOut);
     if (ParserCommon::WrittenFileDiffers(filename, root->fFileName)) {
         SkDebugf("wrote %s\n", filename.c_str());
@@ -1539,186 +1780,59 @@
     return true;
 }
 
-string HackParser::searchTable(const Definition* tableHolder, const Definition* match) {
-    if (!tableHolder) {
-        return "";
-    }
-    string bestMatch;
-    string result;
-    for (auto table : tableHolder->fChildren) {
-        if (MarkType::kTable == table->fMarkType) {
-            for (auto row : table->fChildren) {
-                if (MarkType::kRow == row->fMarkType) {
-                    const Definition* col0 = row->fChildren[0];
-                    size_t len = col0->fContentEnd - col0->fContentStart;
-                    string method = string(col0->fContentStart, len);
-                    if (len - 2 == method.find("()") && islower(method[0])
-                            && Definition::MethodType::kOperator != match->fMethodType) {
-                        method = method.substr(0, len - 2);
-                    }
-                    if (string::npos == match->fName.find(method)) {
-                        continue;
-                    }
-                    if (bestMatch.length() < method.length()) {
-                        bestMatch = method;
-                        const Definition * col1 = row->fChildren[1];
-                        if (col1->fContentEnd <= col1->fContentStart) {
-                            SkASSERT(string::npos != col1->fFileName.find("SkImageInfo"));
-                            result = "incomplete";
-                        } else {
-                            result = string(col1->fContentStart, col1->fContentEnd -
-                                    col1->fContentStart);
-                        }
-                    }
-                }
-            }
-        }
-    }
-    return result;
-}
-
 // returns true if topic has method
-void HackParser::topicIter(const Definition* topic) {
-    if (string::npos != topic->fName.find(SubtopicKeys::kClasses)) {
-        SkASSERT(!fClasses);
-        fClasses = topic;
-    }
-    if (string::npos != topic->fName.find(SubtopicKeys::kStructs)) {
-        SkASSERT(!fStructs);
-        fStructs = topic;
-    }
-    if (string::npos != topic->fName.find(SubtopicKeys::kConstants)) {
-        SkASSERT(!fConstants);
-        fConstants = topic;
-    }
-    if (string::npos != topic->fName.find(SubtopicKeys::kConstructors)) {
-        SkASSERT(!fConstructors);
-        fConstructors = topic;
-    }
-    if (string::npos != topic->fName.find(SubtopicKeys::kMemberFunctions)) {
-        SkASSERT(!fMemberFunctions);
-        fMemberFunctions = topic;
-    }
-    if (string::npos != topic->fName.find(SubtopicKeys::kMembers)) {
-        SkASSERT(!fMembers);
-        fMembers = topic;
-    }
-    if (string::npos != topic->fName.find(SubtopicKeys::kOperators)) {
-        SkASSERT(!fOperators);
-        fOperators = topic;
-    }
-    if (string::npos != topic->fName.find(SubtopicKeys::kRelatedFunctions)) {
-        SkASSERT(!fRelatedFunctions);
-        fRelatedFunctions = topic;
-    }
-    for (auto child : topic->fChildren) {
-        string oneLiner;
-        bool hasIn = false;
-        bool hasLine = false;
-        for (auto part : child->fChildren) {
-            hasIn |= MarkType::kIn == part->fMarkType;
-            hasLine |= MarkType::kLine == part->fMarkType;
+void HackParser::replaceWithPop(const Definition* root) {
+    for (auto child : root->fChildren) {
+        if (MarkType::kClass == child->fMarkType || MarkType::kStruct == child->fMarkType
+                || MarkType::kSubtopic == child->fMarkType) {
+            this->replaceWithPop(child);
         }
-        switch (child->fMarkType) {
-            case MarkType::kMethod: {
-                hasIn |= MarkType::kTopic != topic->fMarkType &&
-                        MarkType::kSubtopic != topic->fMarkType;  // don't write #In if parent is class
-                hasLine |= child->fClone;
-                if (!hasLine) {
-                    // find member_functions, add entry 2nd column text to #Line
-                    for (auto tableHolder : { fMemberFunctions, fConstructors, fOperators }) {
-                        if (!tableHolder) {
-                            continue;
-                        }
-                        if (Definition::MethodType::kConstructor == child->fMethodType
-                                && fConstructors != tableHolder) {
-                            continue;
-                        }
-                        if (Definition::MethodType::kOperator == child->fMethodType
-                                && fOperators != tableHolder) {
-                            continue;
-                        }
-                        string temp = this->searchTable(tableHolder, child);
-                        if ("" != temp) {
-                            SkASSERT("" == oneLiner || temp == oneLiner);
-                            oneLiner = temp;
-                        }
-                    }
-                    if ("" == oneLiner) {
-    #ifdef SK_DEBUG
-                        const Definition* rootParent = topic;
-                        while (rootParent->fParent && MarkType::kClass != rootParent->fMarkType
-                                 && MarkType::kStruct != rootParent->fMarkType) {
-                            rootParent = rootParent->fParent;
-                        }
-    #endif
-                        SkASSERT(rootParent);
-                        SkASSERT(MarkType::kClass == rootParent->fMarkType
-                                || MarkType::kStruct == rootParent->fMarkType);
-                        hasLine = true;
-                    }
-                }
-
-                if (hasIn && hasLine) {
-                    continue;
-                }
-                const char* start = fChar;
-                const char* end = child->fContentStart;
-                fprintf(fOut, "%.*s", (int) (end - start), start);
-                fChar = end;
-                // write to method markup header end
-                if (!hasIn) {
-                    fprintf(fOut, "\n#In %s", topic->fName.c_str());
-                }
-                if (!hasLine) {
-                    fprintf(fOut, "\n#Line # %s ##", oneLiner.c_str());
-                }
-                } break;
-            case MarkType::kTopic:
-            case MarkType::kSubtopic:
-                this->addOneLiner(fRelatedFunctions, child, hasLine, true);
-                this->topicIter(child);
-                break;
-            case MarkType::kStruct:
-                this->addOneLiner(fStructs, child, hasLine, false);
-                this->topicIter(child);
-                break;
-            case MarkType::kClass:
-                this->addOneLiner(fClasses, child, hasLine, false);
-                this->topicIter(child);
-                break;
-            case MarkType::kEnum:
-            case MarkType::kEnumClass:
-                this->addOneLiner(fConstants, child, hasLine, true);
-                break;
-            case MarkType::kMember:
-                this->addOneLiner(fMembers, child, hasLine, false);
-                break;
-            default:
-                ;
+        if (MarkType::kMethod != child->fMarkType) {
+            continue;
         }
-    }
-}
-
-void HackParser::addOneLiner(const Definition* defTable, const Definition* child, bool hasLine,
-        bool lfAfter) {
-    if (hasLine) {
-        return;
-    }
-    string oneLiner = this->searchTable(defTable, child);
-    if ("" == oneLiner) {
-        return;
-    }
-    const char* start = fChar;
-    const char* end = child->fContentStart;
-    fprintf(fOut, "%.*s", (int) (end - start), start);
-    fChar = end;
-    if (!lfAfter) {
-        fprintf(fOut, "\n");
-    }
-    fprintf(fOut, "#Line # %s ##", oneLiner.c_str());
-    if (lfAfter) {
-        fprintf(fOut, "\n");
+        auto& grans = child->fChildren;
+        if (grans.end() != std::find_if(grans.begin(), grans.end(),
+                [](const Definition* def) {
+                    return MarkType::kPopulate == def->fMarkType
+                        || MarkType::kPhraseRef == def->fMarkType
+                        || MarkType::kFormula == def->fMarkType
+                        || MarkType::kAnchor == def->fMarkType
+                        || MarkType::kList == def->fMarkType
+                        || MarkType::kTable == def->fMarkType
+                        || MarkType::kDeprecated == def->fMarkType
+                        || MarkType::kExperimental == def->fMarkType
+                        || MarkType::kPrivate == def->fMarkType;
+                } )) {
+            continue;
+        }
+        // write #Populate in place of description, #Param(s), #Return (if present)
+        const char* keep = child->fContentStart;
+        const char* next = nullptr;
+        for (auto gran : grans) {
+            if (MarkType::kIn == gran->fMarkType || MarkType::kLine == gran->fMarkType) {
+                keep = gran->fTerminator;
+                continue;
+            }
+            if (MarkType::kExample == gran->fMarkType
+                    || MarkType::kNoExample == gran->fMarkType) {
+                next = gran->fStart;
+                break;
+            }
+            if (MarkType::kParam == gran->fMarkType
+                    || MarkType::kReturn == gran->fMarkType
+                    || MarkType::kToDo == gran->fMarkType
+                    || MarkType::kComment == gran->fMarkType) {
+                continue;
+            }
+            SkDebugf("");  // convenient place to set a breakpoint
+        }
+        SkASSERT(next);
+        FPRINTF("%.*s", (int) (keep - fChar), fChar);
+        if ('\n' != keep[-1]) {
+            FPRINTF("\n");
+        }
+        FPRINTF("#Populate\n\n");
+        fChar = next;
     }
 }
 
@@ -2674,13 +2788,20 @@
         }
     }
     if (FLAGS_hack) {
-        if (FLAGS_bmh.isEmpty()) {
-            SkDebugf("-k or --hack requires -b\n");
+        if (FLAGS_bmh.isEmpty() && FLAGS_status.isEmpty()) {
+            SkDebugf("-H or --hack requires -a or -b\n");
             SkCommandLineFlags::PrintUsage();
             return 1;
         }
         HackParser hacker(bmhParser);
-        if (!hacker.parseFile(FLAGS_bmh[0], ".bmh", ParserCommon::OneFile::kNo)) {
+        hacker.fDebugOut = FLAGS_stdout;
+        if (!FLAGS_status.isEmpty() && !hacker.parseStatus(FLAGS_status[0], ".bmh",
+                StatusFilter::kInProgress)) {
+            SkDebugf("hack failed\n");
+            return -1;
+        }
+        if (!FLAGS_bmh.isEmpty() && !hacker.parseFile(FLAGS_bmh[0], ".bmh",
+                ParserCommon::OneFile::kNo)) {
             SkDebugf("hack failed\n");
             return -1;
         }
@@ -2827,3 +2948,18 @@
     }
     return 0;
 }
+
+void NameMap::copyToParent(NameMap* parent) const {
+    size_t colons = fName.rfind("::");
+    string topName = string::npos == colons ? fName : fName.substr(colons + 2);
+    for (auto& entry : fRefMap) {
+        string scoped = topName + "::" + entry.first;
+        SkASSERT(parent->fRefMap.end() == parent->fRefMap.find(scoped));
+        parent->fRefMap[scoped] = entry.second;
+        auto scopedLinkIter = fLinkMap.find(entry.first);
+        if (fLinkMap.end() != scopedLinkIter) {
+            SkASSERT(parent->fLinkMap.end() == parent->fLinkMap.find(scoped));
+            parent->fLinkMap[scoped] = scopedLinkIter->second;
+        }
+    }
+}
diff --git a/tools/bookmaker/bookmaker.h b/tools/bookmaker/bookmaker.h
index 950bad7..5a72315 100644
--- a/tools/bookmaker/bookmaker.h
+++ b/tools/bookmaker/bookmaker.h
@@ -21,6 +21,13 @@
 #include <unordered_map>
 #include <vector>
 
+#define FPRINTF(...)                \
+    if (fDebugOut) {                \
+        SkDebugf(__VA_ARGS__);      \
+    }                               \
+    fprintf(fOut, __VA_ARGS__)
+
+
 // std::to_string isn't implemented on android
 #include <sstream>
 
@@ -290,6 +297,19 @@
         return nullptr;
     }
 
+    bool back(const char* pattern) {
+        size_t len = strlen(pattern);
+        const char* start = fChar - len;
+        if (start <= fStart) {
+            return false;
+        }
+        if (strncmp(start, pattern, len)) {
+            return false;
+        }
+        fChar = start;
+        return true;
+    }
+
     char backup(const char* pattern) const {
         size_t len = strlen(pattern);
         const char* start = fChar - len;
@@ -302,6 +322,12 @@
         return start[-1];
     }
 
+    void backupWord() {
+        while (fChar > fStart && isalpha(fChar[-1])) {
+            --fChar;
+        }
+    }
+
     bool contains(const char* match, const char* lineEnd, const char** loc) const {
         const char* result = this->strnstr(match, lineEnd);
         if (loc) {
@@ -310,6 +336,25 @@
         return result;
     }
 
+    bool containsWord(const char* match, const char* lineEnd, const char** loc) {
+        size_t len = strlen(match);
+        do {
+            const char* result = this->strnstr(match, lineEnd);
+            if (!result) {
+                return false;
+            }
+            if ((result > fStart && isalnum(result[-1])) || (result + len < fEnd
+                    && isalnum(result[len]))) {
+                fChar = result + len;
+                continue;
+            }
+            if (loc) {
+                *loc = result;
+            }
+            return true;
+        } while (true);
+    }
+
     // either /n/n or /n# will stop parsing a typedef
     const char* doubleLF() const {
         const char* ptr = fChar - 1;
@@ -484,14 +529,22 @@
     // differs from skipToNonAlphaNum in that a.b isn't considered a full name,
     // since a.b can't be found as a named definition
     void skipFullName() {
-        while (fChar < fEnd && (isalnum(fChar[0])
-                || '_' == fChar[0]  /* || '-' == fChar[0] */
-                || (':' == fChar[0] && fChar +1 < fEnd && ':' == fChar[1]))) {
-            if (':' == fChar[0] && fChar +1 < fEnd && ':' == fChar[1]) {
+        do {
+            char last = '\0';
+            while (fChar < fEnd && (isalnum(fChar[0])
+                    || '_' == fChar[0]  /* || '-' == fChar[0] */
+                    || (':' == fChar[0] && fChar + 1 < fEnd && ':' == fChar[1]))) {
+                if (':' == fChar[0] && fChar + 1 < fEnd && ':' == fChar[1]) {
+                    fChar++;
+                }
+                last = fChar[0];
                 fChar++;
             }
-            fChar++;
-        }
+            if (fChar + 1 >= fEnd || '/' != fChar[0] || !isalpha(last) || !isalpha(fChar[1])) {
+                break;  // stop unless pattern is xxx/xxx as in I/O
+            }
+            fChar++; // skip slash
+        } while (true);
     }
 
     int skipToLineBalance(char open, char close) {
@@ -1091,6 +1144,16 @@
     static const char* kGeneratedSubtopics[];
 };
 
+struct NameMap {
+    void copyToParent(NameMap* parent) const;
+
+    string fName;
+    NameMap* fParent = nullptr;
+    unordered_map<string, string> fLinkMap;   // from SkRect to #Rect
+    // ref map includes "xxx", "xxx ", "xxx yyy", "xxx zzz", etc.
+    unordered_map<string, Definition*> fRefMap;    // e.g., from #Substitute entry to #Topic entry
+};
+
 class RootDefinition : public Definition {
 public:
     enum class AllowParens {
@@ -1112,10 +1175,16 @@
 
     RootDefinition(MarkType markType, const char* start, int line, Definition* parent, char mc)
             : Definition(markType, start, line, parent, mc) {
+        if (MarkType::kSubtopic != markType && MarkType::kTopic != markType) {
+            if (parent) {
+                fNames.fName = parent->fName;
+                fNames.fParent = &parent->asRoot()->fNames;
+            }
+        }
     }
 
     RootDefinition(MarkType markType, const char* start, const char* end, int line,
-            Definition* parent, char mc) : Definition(markType, start, end,  line, parent, mc) {
+            Definition* parent, char mc) : Definition(markType, start, end, line, parent, mc) {
     }
 
     ~RootDefinition() override {
@@ -1141,6 +1210,7 @@
     unordered_map<string, RootDefinition*> fBranches;
     unordered_map<string, Definition> fLeaves;
     unordered_map<string, SubtopicContents> fPopulators;
+    NameMap fNames;
 private:
     RootDefinition* fRootParent = nullptr;
 };
@@ -1219,9 +1289,10 @@
     }
 
     void checkLineLength(size_t len, const char* str);
+    static string ConvertRef(const string str, bool first);
     static void CopyToFile(string oldFile, string newFile);
-
     static char* FindDateTime(char* buffer, int size);
+    static string HtmlFileName(string bmhFileName);
 
     void indentIn(IndentKind kind) {
         fIndent += 4;
@@ -1239,10 +1310,7 @@
         SkASSERT(column >= fColumn);
         SkASSERT(!fReturnOnWrite);
         SkASSERT(column < 80);
-        if (fDebugOut) {
-            SkDebugf("%*s", column - fColumn, "");
-        }
-        fprintf(fOut, "%*s", column - fColumn, "");
+        FPRINTF("%*s", column - fColumn, "");
         fColumn = column;
         fSpaces += column - fColumn;
     }
@@ -1384,6 +1452,7 @@
     vector<IndentState> fIndentStack;
     Definition* fParent;
     FILE* fOut;
+    string fRawFilePathDir;
     int fLinefeeds;    // number of linefeeds last written, zeroed on non-space
     int fMaxLF;        // number of linefeeds allowed
     int fPendingLF;    // number of linefeeds to write (can be suppressed)
@@ -1455,6 +1524,7 @@
         kLiteral, // output untouched
 		kClone,   // resolved, output, with references to clones as well
         kSimple,  // resolve simple words (used to resolve method declarations)
+        kInclude, // like simple, plus reverse resolve SkXXX to XXX
     };
 
     enum class ExampleOptions {
@@ -1482,7 +1552,7 @@
 
     enum class TrimExtract {
         kNo,
-        kYes
+        kYes,
     };
 
     BmhParser(bool skip) : ParserCommon()
@@ -1524,6 +1594,7 @@
     MarkType getMarkType(MarkLookup lookup) const;
     bool hasEndToken() const;
     static bool IsExemplary(const Definition* );
+    string loweredTopic(string name, Definition* def);
     string memberName();
     string methodName();
     const Definition* parentSpace() const;
@@ -1558,6 +1629,10 @@
         fCheckMethods = false;
     }
 
+    void setUpGlobalSubstitutes();
+    void setUpPartialSubstitute(string name);
+    void setUpSubstitute(string name, Definition* def);
+    void setUpSubstitutes(const Definition* parent, NameMap* );
     void setWrapper(Definition* def) const;
     bool skipNoName();
     bool skipToDefinitionEnd(MarkType markType);
@@ -1602,6 +1677,7 @@
     unordered_map<string, Definition*> fTopicMap;
     unordered_map<string, Definition*> fAliasMap;
     unordered_map<string, Definition*> fPhraseMap;
+    NameMap fGlobalNames;
     RootDefinition* fRoot;
     Definition* fWorkingColumn;
     Definition* fRow;
@@ -2363,9 +2439,6 @@
         this->reset();
     }
 
-    void addOneLiner(const Definition* defTable, const Definition* child, bool hasLine,
-            bool lfAfter);
-
     bool parseFromFile(const char* path) override {
         if (!INHERITED::parseSetup(path)) {
             return false;
@@ -2377,20 +2450,10 @@
         INHERITED::resetCommon();
     }
 
-    string searchTable(const Definition* tableHolder, const Definition* match);
-
-    void topicIter(const Definition* );
+    void replaceWithPop(const Definition* );
 
 private:
     const BmhParser& fBmhParser;
-    const Definition* fClasses;
-    const Definition* fConstants;
-    const Definition* fConstructors;
-    const Definition* fMemberFunctions;
-    const Definition* fMembers;
-    const Definition* fOperators;
-    const Definition* fRelatedFunctions;
-    const Definition* fStructs;
     bool hackFiles();
 
     typedef ParserCommon INHERITED;
@@ -2410,6 +2473,7 @@
         , fIncludeParser(inc) {
         this->reset();
         this->addPopulators();
+        fBmhParser.setUpGlobalSubstitutes();
     }
 
     bool buildReferences(const char* docDir, const char* mdOutDirOrFile);
@@ -2430,19 +2494,21 @@
 
     void addCodeBlock(const Definition* def, string& str) const;
     void addPopulators();
+    string addIncludeReferences(const char* refStart, const char* refEnd);
     string addReferences(const char* start, const char* end, BmhParser::Resolvable );
     string anchorDef(string def, string name);
     string anchorLocalRef(string ref, string name);
     string anchorRef(string def, string name);
-
     bool buildRefFromFile(const char* fileName, const char* outDir);
     bool checkParamReturnBody(const Definition* def);
     Definition* checkParentsForMatch(Definition* test, string ref) const;
     void childrenOut(Definition* def, const char* contentStart);
     Definition* csParent();
+    bool findLink(string ref, string* link);
     Definition* findParamType();
     string getMemberTypeName(const Definition* def, string* memberType);
     static bool HasDetails(const Definition* def);
+    bool hasWordSpace(string ) const;
     void htmlOut(string );
     Definition* isDefined(const TextParser& , string ref, BmhParser::Resolvable );
     Definition* isDefinedByParent(RootDefinition* root, string ref);
@@ -2454,6 +2520,7 @@
     void parameterHeaderOut(TextParser& paramParser, const Definition** prior, Definition* def);
     void parameterTrailerOut();
     bool parseFromFile(const char* path) override { return true; }
+    bool phraseContinues(string phrase, string* priorWord, string* priorLink) const;
     void populateOne(Definition* def,
             unordered_map<string, RootDefinition::SubtopicContents>& populator);
     void populateTables(const Definition* def, RootDefinition* );
@@ -2522,7 +2589,7 @@
     vector<const Definition*> fClassStack;
     unordered_map<string, vector<AnchorDef> > fAllAnchorDefs;
     unordered_map<string, vector<string> > fAllAnchorRefs;
-
+    NameMap* fNames;
     BmhParser& fBmhParser;
     IncludeParser& fIncludeParser;
     const Definition* fEnumClass;
@@ -2604,6 +2671,7 @@
             }
         }
         if (BmhParser::Resolvable::kSimple != resolvable
+                && BmhParser::Resolvable::kInclude != resolvable
                 && (this->startsWith(name.c_str()) || this->startsWith("operator"))) {
             const char* ptr = this->anyOf("\n (");
             if (ptr && '(' ==  *ptr && strncmp(ptr, "(...", 4)) {
diff --git a/tools/bookmaker/definition.cpp b/tools/bookmaker/definition.cpp
index 52620f8..fb96ed1 100644
--- a/tools/bookmaker/definition.cpp
+++ b/tools/bookmaker/definition.cpp
@@ -912,7 +912,7 @@
         if (!parser.skipExact("@param ")) {
             continue;
         }
-        if (parser.skipExact(ref.c_str())) {
+        if (parser.skipExact(ref.c_str()) && ' ' == parser.peek()) {
             return &iter;
         }
     }
diff --git a/tools/bookmaker/includeParser.cpp b/tools/bookmaker/includeParser.cpp
index 0b4576c..2fdd7ae 100644
--- a/tools/bookmaker/includeParser.cpp
+++ b/tools/bookmaker/includeParser.cpp
@@ -1852,8 +1852,12 @@
 }
 
 Definition* IncludeParser::findMethod(const Definition& bmhDef) {
-    auto doubleColon = bmhDef.fName.find("::");
-    SkASSERT(string::npos != doubleColon);  // more work to do to support global refs
+    auto doubleColon = bmhDef.fName.rfind("::");
+    if (string::npos == doubleColon) {
+        const auto& iGlobalMethod = fIFunctionMap.find(bmhDef.fName);
+        SkASSERT(fIFunctionMap.end() != iGlobalMethod);
+        return iGlobalMethod->second;
+    }
     string className = bmhDef.fName.substr(0, doubleColon);
     const auto& iClass = fIClassMap.find(className);
     SkASSERT(fIClassMap.end() != iClass);
@@ -1861,9 +1865,66 @@
     auto& iTokens = iClass->second.fTokens;
     const auto& iMethod = std::find_if(iTokens.begin(), iTokens.end(),
             [methodName](Definition& token) {
-            return MarkType::kMethod == token.fMarkType && methodName == token.fName; } );
-    SkASSERT(iTokens.end() != iMethod);
-    return &*iMethod;
+            return MarkType::kMethod == token.fMarkType
+                    && (methodName == token.fName
+                    || methodName == token.fName + "()"); } );
+    if (iTokens.end() != iMethod) {
+        return &*iMethod;
+    }
+    size_t subClassPos = className.rfind("::");
+    if (string::npos != subClassPos) {
+        className = className.substr(subClassPos + 2);
+    }
+    // match may be constructor; compare strings to see if this is so
+    SkASSERT(string::npos != methodName.find('('));
+    auto stripper = [](string s) -> string {
+        bool last = false;
+        string result;
+        for (char c : s) {
+            if (' ' >= c) {
+                if (!last) {
+                    last = true;
+                    result += ' ';
+                }
+                continue;
+            }
+            result += c;
+            last = false;
+        }
+        return result;
+    };
+    string strippedMethodName = stripper(methodName);
+    if (strippedMethodName == methodName) {
+        strippedMethodName = "";
+    }
+    const auto& cMethod = std::find_if(iTokens.begin(), iTokens.end(),
+            [className, methodName, stripper, strippedMethodName](Definition& token) {
+        if (MarkType::kMethod != token.fMarkType) {
+            return false;
+        }
+        TextParser parser(&token);
+        const char* match = parser.strnstr(className.c_str(), parser.fEnd);
+        if (!match) {
+            return false;
+        }
+        parser.skipTo(match);
+        parser.skipExact(className.c_str());
+        if ('(' != parser.peek()) {
+            return false;
+        }
+        parser.skipToBalancedEndBracket('(', ')');
+        string iMethodName(match, parser.fChar - match);
+        if (methodName == iMethodName) {
+            return true;
+        }
+        if ("" == strippedMethodName) {
+            return false;
+        }
+        string strippedIName = stripper(iMethodName);
+        return strippedIName == strippedMethodName;
+    } );
+    SkAssertResult(iTokens.end() != cMethod);
+    return &*cMethod;
 }
 
 Definition* IncludeParser::parentBracket(Definition* parent) const {
@@ -2570,7 +2631,6 @@
     markupDef->fTokens.emplace_back(MarkType::kMethod, start, end, tokenIter->fLineCount,
             markupDef, '\0');
     Definition* markupChild = &markupDef->fTokens.back();
-    // TODO: I wonder if there is a way to prevent looking up by operator[] (creating empty) ?
     {
         auto mapIter = fIClassMap.find(markupDef->fName);
         SkASSERT(fIClassMap.end() != mapIter);
diff --git a/tools/bookmaker/includeWriter.cpp b/tools/bookmaker/includeWriter.cpp
index 768ccf6..ef854a7 100644
--- a/tools/bookmaker/includeWriter.cpp
+++ b/tools/bookmaker/includeWriter.cpp
@@ -895,7 +895,7 @@
         int commentIndex = child.fParentIndex;
         auto iter = child.fParent->fTokens.begin();
         std::advance(iter, commentIndex);
-        SkDEBUGCODE(bool sawMethod = false);
+        SkDEBUGCODE(bool sawMethod = MarkType::kMethod == iter->fMarkType);
         while (--commentIndex >= 0) {
             std::advance(iter, -1);
             if (Bracket::kSlashStar == iter->fBracket) {
@@ -2157,21 +2157,6 @@
     return allPassed;
 }
 
-// change Xxx_Xxx to xxx xxx
-static string ConvertRef(const string str, bool first) {
-    string substitute;
-    for (char c : str) {
-        if ('_' == c) {
-            c = ' ';  // change Xxx_Xxx to xxx xxx
-        } else if (isupper(c) && !first) {
-            c = tolower(c);
-        }
-        substitute += c;
-        first = false;
-    }
-    return substitute;
-}
-
 string IncludeWriter::resolveMethod(const char* start, const char* end, bool first) {
     string methodname(start, end - start);
     if (string::npos != methodname.find("()")) {
@@ -2322,6 +2307,7 @@
                 // prefer the one mostly closely matching in text
                 if ((MarkType::kClass == child->fMarkType ||
                     MarkType::kStruct == child->fMarkType ||
+                    MarkType::kTypedef == child->fMarkType ||
                     (MarkType::kEnum == child->fMarkType && !child->fAnonymous) ||
                     MarkType::kEnumClass == child->fMarkType) && (match == child->fName ||
                     skmatch == child->fName)) {
@@ -2372,7 +2358,7 @@
                     if (parent->fParent != fRootTopic) {
                         substitute = parent->fName;
                         substitute += ' ';
-                        substitute += ConvertRef(rootDef->fName, false);
+                        substitute += ParserCommon::ConvertRef(rootDef->fName, false);
                     } else {
                         size_t underpos = undername.find('_');
                         if (string::npos != underpos) {
@@ -2390,7 +2376,7 @@
                                 return this->reportError<string>("remove underline");
                             }
                         }
-                        substitute += ConvertRef(undername, first);
+                        substitute += ParserCommon::ConvertRef(undername, first);
                     }
                 }
             }
@@ -2454,7 +2440,7 @@
     string temp = this->resolveRef(&data[start], &data[end], Word::kFirst == word, &refType);
     if (!temp.length()) {
         if (Word::kFirst != word && '_' != last) {
-            temp = ConvertRef(resolved, false);
+            temp = ParserCommon::ConvertRef(resolved, false);
         }
     }
     if (temp.length()) {
diff --git a/tools/bookmaker/mdOut.cpp b/tools/bookmaker/mdOut.cpp
index 7cca263..ced107d 100644
--- a/tools/bookmaker/mdOut.cpp
+++ b/tools/bookmaker/mdOut.cpp
@@ -10,12 +10,6 @@
 #include "SkOSFile.h"
 #include "SkOSPath.h"
 
-#define FPRINTF(...)                \
-    if (fDebugOut) {                \
-        SkDebugf(__VA_ARGS__);      \
-    }                               \
-    fprintf(fOut, __VA_ARGS__)
-
 const char* SubtopicKeys::kGeneratedSubtopics[] = {
     kConstants, kDefines, kTypedefs, kMembers, kClasses, kStructs, kConstructors,
     kOperators, kMemberFunctions, kRelatedFunctions
@@ -55,17 +49,9 @@
 const char* kTopicsTableHeader    = "  <tr>" kTH_Left   "Topic</th>"                            "\n"
                                              kTH_Left   "Description</th>" "</tr>";
 
-static string html_file_name(string bmhFileName) {
-    SkASSERT("docs" == bmhFileName.substr(0, 4));
-    SkASSERT('\\' == bmhFileName[4] || '/' == bmhFileName[4]);
-    SkASSERT(".bmh" == bmhFileName.substr(bmhFileName.length() - 4));
-    string result = bmhFileName.substr(5, bmhFileName.length() - 4 - 5);
-    return result;
-}
-
 string MdOut::anchorDef(string str, string name) {
     if (fValidate) {
-        string htmlName = html_file_name(fFileName);
+        string htmlName = ParserCommon::HtmlFileName(fFileName);
         vector<AnchorDef>& allDefs = fAllAnchorDefs[htmlName];
         if (!std::any_of(allDefs.begin(), allDefs.end(),
                 [str](AnchorDef compare) { return compare.fDef == str; } )) {
@@ -91,7 +77,7 @@
         size_t hashIndex = ref.find('#');
         if (string::npos != hashIndex && "https://" != ref.substr(0, 8)) {
             if (0 == hashIndex) {
-                htmlName = html_file_name(fFileName);
+                htmlName = ParserCommon::HtmlFileName(fFileName);
             } else {
                 htmlName = ref.substr(0, hashIndex);
             }
@@ -303,9 +289,228 @@
     int fBraceCount;
 };
 
+bool MdOut::hasWordSpace(string wordSpace) const {
+    for (NameMap* names = fNames; names; names = names->fParent) {
+        if (names->fRefMap.end() != names->fRefMap.find(wordSpace)) {
+            return true;
+        }
+    }
+    return false;
+}
+
+bool MdOut::phraseContinues(string phrase, string* priorWord, string* priorLink) const {
+    for (NameMap* names = fNames; names; names = names->fParent) {
+        if (names->fRefMap.end() != names->fRefMap.find(phrase + ' ')) {
+            *priorWord = phrase;
+            return true;
+        }
+        if (names->fRefMap.end() != names->fRefMap.find(phrase)) {
+            *priorWord = phrase;
+            *priorLink = names->fLinkMap.end() == names->fLinkMap.find(phrase) ? "" :
+                    names->fLinkMap[phrase];
+            return true;
+        }
+    }
+    return false;
+}
+
+// adds spaces to see if found word is part of registered phrase
+// adds parens to see if found word is all-lowercase function (parens must be in source as well)
+string MdOut::addIncludeReferences(const char* refStart, const char* refEnd) {
+    TextParser matrixParser(fMethod->fFileName, refStart, refEnd, fMethod->fLineCount);
+    const char* bracket = matrixParser.anyOf("|=\n");
+    bool inMatrix = bracket && ('|' == bracket[0] || '=' == bracket[0]);
+    auto& globals = fBmhParser.fGlobalNames;
+    string result;
+    const char* start = refStart;
+    string priorWord;
+    string priorLink;
+    string priorSeparator;
+    do {
+        const char* separatorStart = start;
+        bool whiteSpace = start < refEnd && ' ' >= start[0];
+        while (start < refEnd && !isalpha(start[0])) {
+            whiteSpace &= ' ' >= start[0];
+            ++start;
+        }
+        bool priorSpace = false;
+        string separator(separatorStart, start - separatorStart);
+        if ("" != priorWord && whiteSpace) {
+            string wordSpace = priorWord + ' ';
+            if (this->hasWordSpace(wordSpace)) {
+                priorWord = wordSpace;
+                priorSpace = true;
+            }
+        }
+        if ("()" == separator.substr(0, 2)) {
+            string funcRef = priorWord + "()";
+            if (this->findLink(funcRef, &priorLink)) {
+                priorWord = funcRef;
+                separator = separator.substr(2);
+            }
+        }
+        result += priorSeparator;
+        priorSeparator = separator;
+        const char* end = start;
+        do {
+            while (end < refEnd && (isalnum(end[0]) || '-' == end[0] || '_' == end[0])) {
+                ++end;
+            }
+            if (end + 1 >= refEnd || '/' != end[0] || start == end || !isalpha(end[-1])
+                    || !isalpha(end[1])) {
+                break;  // stop unless pattern is xxx/xxx as in I/O
+            }
+            ++end; // skip slash
+        } while (true);
+        while (start != end && '-' == end[-1]) {
+            --end;
+        }
+        if (start != end && end + 2 < refEnd && "()" == string(end, 2)) {
+            string check = string(start, end - start);
+            if (std::all_of(check.begin(), check.end(), [](char c) { return islower(c); })) {
+                end += 2;
+            }
+        }
+        if (start == end) {
+            break;
+        }
+        string word(start, end - start);
+        if (priorSpace) {
+            string phrase = priorWord + word;
+            if (this->phraseContinues(phrase, &priorWord, &priorLink)) {
+                start = end;
+                continue;
+            }
+            priorWord = priorWord.substr(0, priorWord.length() - 1);
+        }
+        string link;
+        bool found;
+        // TODO: operators have complicated parsing possibilities; handle the easiest for now
+        if ("operator" == priorWord && '(' == separator.back()) {
+            TextParser parser(fMethod->fFileName, separatorStart, refEnd, fMethod->fLineCount);
+            parser.skipToEndBracket('(');
+            const char* parenStart = parser.fChar;
+            parser.skipToBalancedEndBracket('(', ')');
+            word = priorWord + separator + string(parenStart + 1, parser.fChar - parenStart - 1);
+            end = parser.fChar;
+            priorWord = "";
+            priorLink = "";
+            priorSeparator = "";
+        }
+        {
+            auto paramIter = fNames->fRefMap.find(word);
+            if ((found = fNames->fRefMap.end() != paramIter) && paramIter->second) {
+                SkAssertResult(fNames->fLinkMap.end() != fNames->fLinkMap.find(word));
+                link = fNames->fLinkMap[word];
+            }
+        }
+        if (!found && ("." == separator || "->" == separator || "()." == separator
+                    || "()->" == separator)) {
+            if (('f' == word[0] && isupper(word[1])) || "()" == word.substr(word.length() - 2)
+                    || (end + 2 <= refEnd && "()" == string(end, 2))) {
+                if (fNames->fRefMap.end() != fNames->fRefMap.find(priorWord)) {
+            // find prior word's type in fMethod
+                    TextParser parser(fMethod);
+                    SkAssertResult(parser.containsWord(priorWord.c_str(), parser.fEnd,
+                            &parser.fChar));
+            // look up class or struct; trival lookup only class/struct [& * const]
+                    while (parser.back(" ") || parser.back("&") || parser.back("*")
+                            || parser.back("const"))
+                        ;
+                    const char* structEnd = parser.fChar;
+                    parser.backupWord();
+                    if (structEnd != parser.fChar) {
+                        string structName(parser.fChar, structEnd - parser.fChar);
+                        if ("SkVector" == structName) {
+                            // TODO: populate global refmap with typedefs as well as structs
+                            structName = "SkPoint";
+                        }
+                        structName += "::" + word;
+            // look for word as member of class or struct
+                        auto defIter = globals.fRefMap.find(structName);
+                        if (globals.fRefMap.end() == defIter) {
+                            structName += "()";
+                            defIter = globals.fRefMap.find(structName);
+                        }
+                        if (globals.fRefMap.end() != defIter) {
+                            found = true;
+                            SkASSERT(globals.fLinkMap.end() != globals.fLinkMap.find(structName));
+                            link = globals.fLinkMap[structName];
+                        } else {
+                            SkDebugf("probably missing struct or class member in bmh: ");
+                            SkDebugf("%s\n", structName.c_str());
+                        }
+                    }
+                }
+                if (!found) {
+                    auto& parentRefMap = fNames->fParent->fRefMap;
+                    auto priorIter = parentRefMap.find(priorWord);
+                    if (parentRefMap.end() == priorIter) {
+                        priorIter = parentRefMap.find(priorWord + "()");
+                    }
+                    if (parentRefMap.end() != priorIter) {
+                        Definition* priorDef = priorIter->second;
+                        TextParser parser(priorDef->fFileName, priorDef->fStart,
+                                priorDef->fContentStart, priorDef->fLineCount);
+                        parser.skipExact("#Method ");
+                        parser.skipSpace();
+                        parser.skipExact("const ");  // optional
+                        parser.skipSpace();
+                        const char* start = parser.fChar;
+                        parser.skipToNonAlphaNum();
+                        string structName(start, parser.fChar - start);
+                        structName += "::" + word;
+                        auto defIter = globals.fRefMap.find(structName);
+                        if (globals.fRefMap.end() != defIter) {
+                            found = true;
+                            SkASSERT(globals.fLinkMap.end() != globals.fLinkMap.find(structName));
+                            link = globals.fLinkMap[structName];
+                        }
+                    }
+                }
+            } else {
+                SkDebugf("probably missing () after function:");
+                const char* debugStart = end - 20 < refStart ? refStart : end - 20;
+                const char* debugEnd = end + 10 > refEnd ? refEnd : end + 10;
+                SkDebugf("%.*s\n", debugEnd - debugStart, debugStart);
+                SkDebugf("");
+            }
+        }
+        if (!found && "::" == separator) {
+            string fullRef = priorWord + "::" + word;
+            found = this->findLink(fullRef, &link);
+        }
+        if (!found) {
+            found = this->findLink(word, &link);
+        }
+        if (!found) {
+            found = globals.fRefMap.end() != globals.fRefMap.find(word + ' ');
+        }
+        if (!found) {
+            found = globals.fRefMap.end() != globals.fRefMap.find(word + "()");
+        }
+        if (!found) {
+            if (!inMatrix) {
+                SkDebugf("word %s not found\n", word.c_str());
+                fBmhParser.fGlobalNames.fRefMap[word] = nullptr;
+            }
+        }
+        result += "" == priorLink ? priorWord : this->anchorRef(priorLink, priorWord);
+        priorWord = word;
+        priorLink = link;
+        start = end;
+    } while (true);
+    result += "" == priorLink ? priorWord : this->anchorRef(priorLink, priorWord);
+    result += priorSeparator;
+    return result;
+}
+
 // FIXME: preserve inter-line spaces and don't add new ones
 string MdOut::addReferences(const char* refStart, const char* refEnd,
         BmhParser::Resolvable resolvable) {
+    if (BmhParser::Resolvable::kInclude == resolvable) {  // test include resolving
+        return this->addIncludeReferences(refStart, refEnd);
+    }
     string result;
     MethodParser t(fRoot ? fRoot->fName : string(), fFileName, refStart, refEnd, fLineCount);
     bool lineStart = true;
@@ -448,6 +653,7 @@
             }
             SkASSERT(def->fFiddle.length());
             if (BmhParser::Resolvable::kSimple != resolvable
+                    && BmhParser::Resolvable::kInclude != resolvable
                     && !t.eof() && '(' == t.peek() && t.strnchr(')', t.fEnd)) {
                 TextParserSave tSave(&t);
                 if (!t.skipToBalancedEndBracket('(', ')')) {
@@ -511,6 +717,12 @@
             }
 			result += linkRef(leadingSpaces, def, ref, resolvable);
             if (!t.eof() && '(' == t.peek()) {
+                if (BmhParser::Resolvable::kInclude == resolvable
+                       && std::any_of(ref.begin(), ref.end(), [](char c){ return !islower(c); } )) {
+                    t.next();  // skip open paren
+                    SkAssertResult(')' == t.next());  // skip close paren
+                    continue;
+                }
                 result += t.next();  // skip open paren
             }
             continue;
@@ -577,6 +789,7 @@
                         }
                     }
                     if (BmhParser::Resolvable::kSimple != resolvable
+                            && BmhParser::Resolvable::kInclude != resolvable
                             && BmhParser::Resolvable::kOut != resolvable
                             && !formula_or_code(resolvable)) {
                         t.reportError("missed camelCase");
@@ -970,6 +1183,33 @@
     return csParent;
 }
 
+bool MdOut::findLink(string word, string* linkPtr) {
+    NameMap* names = fNames;
+    while ((names = names->fParent)) {
+        auto localIter = names->fRefMap.find(word);
+        if (names->fRefMap.end() != localIter) {
+            if (localIter->second) {
+                SkAssertResult(names->fLinkMap.end() != names->fLinkMap.find(word));
+                *linkPtr = names->fLinkMap[word];
+            }
+            return true;
+        }
+        if (!names->fParent && isupper(word[0])) {
+            SkASSERT(names == &fBmhParser.fGlobalNames);
+            string lower = (char) tolower(word[0]) + word.substr(1);
+            auto globalIter = names->fRefMap.find(lower);
+            if (names->fRefMap.end() != globalIter) {
+                if (globalIter->second) {
+                    SkAssertResult(names->fLinkMap.end() != names->fLinkMap.find(lower));
+                    *linkPtr = names->fLinkMap[lower];
+                }
+                return true;
+            }
+        }
+    }
+    return false;
+}
+
 Definition* MdOut::findParamType() {
     SkASSERT(fMethod);
     TextParser parser(fMethod->fFileName, fMethod->fStart, fMethod->fContentStart,
@@ -1244,6 +1484,15 @@
 // def should not include SkXXX_
 string MdOut::linkRef(string leadingSpaces, Definition* def,
         string ref, BmhParser::Resolvable resolvable) {
+    bool trimRef = BmhParser::Resolvable::kInclude == resolvable && "Sk" == ref.substr(0, 2);
+    if (trimRef) {
+#ifdef SK_DEBUG
+    for (auto c : ref) {
+            SkASSERT(isalpha(c) || isdigit(c));
+        }
+#endif
+        ref = ref.substr(2);
+    }
     string buildup;
     string refName;
     const string* str = &def->fFiddle;
@@ -1253,7 +1502,17 @@
         const Definition* parent = def->csParent();
         SkASSERT(parent);
         classPart = parent->fName;
-        refName = classPart + '_' + def->fParent->fName + '_' + ref;
+        auto bmhMap = fBmhParser.fClassMap.find(classPart);
+        auto defName = def->fParent->fName;
+        SkASSERT(fBmhParser.fClassMap.end() != bmhMap);
+        string fullName = classPart + "::" + defName;
+        auto bmhDef = bmhMap->second.fLeaves.find(fullName);
+        if (bmhMap->second.fLeaves.end() == bmhDef) {
+            bmhDef = bmhMap->second.fLeaves.find(fullName + "()");
+        }
+        SkASSERT(bmhMap->second.fLeaves.end() != bmhDef);
+        refName = bmhDef->second.fFiddle;
+        refName += '_' + ref;
     }
     SkASSERT(classPart.length() > 0);
     bool globalEnumMember = false;
@@ -1285,6 +1544,15 @@
         }
         if (!fromInclude) {
             refName = def->fFiddle;
+            if (trimRef) {
+                SkASSERT("Sk" == refName.substr(0, 2));
+#ifdef SK_DEBUG
+                for (auto c : refName) {
+                    SkASSERT(isalpha(c) || isdigit(c));
+                }
+#endif
+                refName = refName.substr(2);
+            }
         }
     }
     bool classMatch = fRoot->fFileName == def->fFileName || fromInclude;
@@ -1893,9 +2161,41 @@
                 SkASSERT(MarkType::kMethod == parent->fMarkType);
                 // retrieve parameters, return, description from include
                 Definition* iMethod = fIncludeParser.findMethod(*parent);
-                SkDebugf("");
                 bool wroteParam = false;
                 fMethod = iMethod;
+                NameMap paramMap;
+                Definition* pParent = def->csParent();
+                string parentName;
+                NameMap* parentMap;
+                if (pParent) {
+                    parentName = pParent->fName + "::";
+                    parentMap = &pParent->asRoot()->fNames;
+                } else {
+                    parentMap = &fBmhParser.fGlobalNames;
+                }
+                paramMap.fName = parentName + iMethod->fName;
+                paramMap.fParent = parentMap;
+                fNames = &paramMap;
+                for (auto& param : iMethod->fTokens) {
+                    if (MarkType::kComment != param.fMarkType) {
+                        continue;
+                    }
+                    TextParser paramParser(&param);
+                    if (!paramParser.skipExact("@param ")) { // write parameters, if any
+                        continue;
+                    }
+                    paramParser.skipSpace();
+                    const char* start = paramParser.fChar;
+                    paramParser.skipToSpace();
+                    string paramName(start, paramParser.fChar - start);
+                #ifdef SK_DEBUG
+                    for (char c : paramName) {
+                        SkASSERT(isalnum(c) || '_' == c);
+                    }
+                #endif
+                    paramMap.fRefMap[paramName] = &param;
+                    paramMap.fLinkMap[paramName] = '#' + def->fFiddle + '_' + paramName;
+                }
                 for (auto& entry : iMethod->fTokens) {
                     if (MarkType::kComment != entry.fMarkType) {
                         continue;
@@ -1903,7 +2203,8 @@
                     TextParser parser(&entry);
                     if (parser.skipExact("@param ")) { // write parameters, if any
                         this->parameterHeaderOut(parser, prior, def);
-                        this->resolveOut(parser.fChar, parser.fEnd, BmhParser::Resolvable::kYes);
+                        this->resolveOut(parser.fChar, parser.fEnd,
+                                BmhParser::Resolvable::kInclude);
                         this->parameterTrailerOut();
                         wroteParam = true;
                         continue;
@@ -1917,18 +2218,29 @@
                     }
                     if (parser.skipExact("@return ")) { // write return, if any
                         this->returnHeaderOut(prior, def);
-                        this->resolveOut(parser.fChar, parser.fEnd, BmhParser::Resolvable::kYes);
+                        this->resolveOut(parser.fChar, parser.fEnd,
+                                BmhParser::Resolvable::kInclude);
                         this->lf(2);
                         continue;
                     }
                     if (1 == entry.length() && '/' == entry.fContentStart[0]) {
                         continue;
                     }
+                    if ("/!< " == string(entry.fContentStart, entry.length()).substr(0, 4)) {
+                        continue;
+                    }
+                    const char* backwards = entry.fContentStart;
+                    while (' ' == *--backwards)
+                        ;
+                    if ('\n' == backwards[0] && '\n' == backwards[-1]) {
+                        this->lf(2);
+                    }
                     this->resolveOut(entry.fContentStart, entry.fContentEnd,
-                            BmhParser::Resolvable::kYes);  // write description
+                            BmhParser::Resolvable::kInclude);  // write description
                     this->lf(1);
                 }
                 fMethod = nullptr;
+                fNames = fNames->fParent;
             }
             } break;
         case MarkType::kPrivate:
diff --git a/tools/bookmaker/parserCommon.cpp b/tools/bookmaker/parserCommon.cpp
index 5500a1b..c3bab1a 100644
--- a/tools/bookmaker/parserCommon.cpp
+++ b/tools/bookmaker/parserCommon.cpp
@@ -9,11 +9,6 @@
 #include "SkOSFile.h"
 #include "SkOSPath.h"
 
-static void debug_out(int len, const char* data) {
-    // convenient place to intercept arbitrary output
-    SkDebugf("%.*s", len, data);
-}
-
 void ParserCommon::checkLineLength(size_t len, const char* str) {
     if (!fWritingIncludes) {
         return;
@@ -36,6 +31,21 @@
     }
 }
 
+// change Xxx_Xxx to xxx xxx
+string ParserCommon::ConvertRef(const string str, bool first) {
+    string substitute;
+    for (char c : str) {
+        if ('_' == c) {
+            c = ' ';
+        } else if (isupper(c) && !first) {
+            c = tolower(c);
+        }
+        substitute += c;
+        first = false;
+    }
+    return substitute;
+}
+
 void ParserCommon::CopyToFile(string oldFile, string newFile) {
     int bufferSize;
     char* buffer = ParserCommon::ReadToBuffer(newFile, &bufferSize);
@@ -49,7 +59,16 @@
     remove(newFile.c_str());
 }
 
+string ParserCommon::HtmlFileName(string bmhFileName) {
+    SkASSERT("docs" == bmhFileName.substr(0, 4));
+    SkASSERT('\\' == bmhFileName[4] || '/' == bmhFileName[4]);
+    SkASSERT(".bmh" == bmhFileName.substr(bmhFileName.length() - 4));
+    string result = bmhFileName.substr(5, bmhFileName.length() - 4 - 5);
+    return result;
+}
+
 bool ParserCommon::parseFile(const char* fileOrPath, const char* suffix, OneFile oneFile) {
+    fRawFilePathDir = string(fileOrPath);
     if (!sk_isdir(fileOrPath)) {
         if (!this->parseFromFile(fileOrPath)) {
             SkDebugf("failed to parse %s\n", fileOrPath);
@@ -80,6 +99,7 @@
 }
 
 bool ParserCommon::parseStatus(const char* statusFile, const char* suffix, StatusFilter filter) {
+    fRawFilePathDir = string(statusFile);
     StatusIter iter(statusFile, suffix, filter);
     if (iter.empty()) {
         return false;
@@ -198,10 +218,7 @@
         int len = lineEnd ? (int) (lineEnd - data) : size;
         this->writePending();
         this->indentToColumn(indent);
-        if (fDebugOut) {
-            debug_out(len, data);
-        }
-        fprintf(fOut, "%.*s", len, data);
+        FPRINTF("%.*s", len, data);
         checkLineLength(len, data);
         size -= len;
         data += len;
@@ -241,10 +258,7 @@
         fPendingSpace = 0;
     }
     this->writePending();
-    if (fDebugOut) {
-        debug_out(size, data);
-    }
-    fprintf(fOut, "%.*s", size, data);
+    FPRINTF("%.*s", size, data);
     checkLineLength(size, data);
     fWroteSomething = true;
     int added = 0;
@@ -311,10 +325,7 @@
         fPendingSpace = 0;
     }
     this->writePending();
-    if (fDebugOut) {
-        debug_out((int) strlen(str), str);
-    }
-    fprintf(fOut, "%s", str);
+    FPRINTF("%s", str);
     checkLineLength(strlen(str), str);
     fColumn += len;
     fSpaces = 0;