aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorGravatar Cary Clark <caryclark@skia.org>2018-01-22 07:55:48 -0500
committerGravatar Skia Commit-Bot <skia-commit-bot@chromium.org>2018-01-22 14:04:18 +0000
commit5081eede67601e5c5c0fc343b787490603e058cc (patch)
tree607f095f636eca498e62e14e3c6d760f477052d4
parent8a67c4c2aa4debca84a68fbc25f048ce55118916 (diff)
self check and corrections
Add self-checking code that looks to see that overview is populated and alphabetized. Eventually, this will self-check to see if methods are collected into subtopics and have reciprocal 'see also' data. Standardize phrases so that they don't start with a capital or end with a period. Self-check is a work in progress, so it is not yet run by the bookmaker bots. The self-check should run cleanly, however. To run it: ./out/skia/bookmaker -b docs -k The expected output is doc stats. Self-check errors such as missing methods in the overview would be reported here if there are any. TBR=caryclark@google.com Docs-Preview: https://skia.org/?cl=93621 Bug: skia:6898 Change-Id: I8f1f817a7b083b13138ee33d1aa090445e9304c6 Reviewed-on: https://skia-review.googlesource.com/93621 Reviewed-by: Cary Clark <caryclark@skia.org> Commit-Queue: Cary Clark <caryclark@skia.org>
-rw-r--r--docs/SkAutoCanvasRestore_Reference.bmh122
-rw-r--r--docs/SkBitmap_Reference.bmh158
-rw-r--r--docs/SkCanvas_Reference.bmh295
-rw-r--r--docs/SkIPoint16_Reference.bmh33
-rw-r--r--docs/SkIPoint_Reference.bmh50
-rw-r--r--docs/SkIRect_Reference.bmh119
-rw-r--r--docs/SkImage_Reference.bmh36
-rw-r--r--docs/SkMatrix_Reference.bmh14
-rw-r--r--docs/SkPaint_Reference.bmh344
-rw-r--r--docs/SkPath_Reference.bmh250
-rw-r--r--docs/SkPixmap_Reference.bmh95
-rw-r--r--docs/SkPoint_Reference.bmh15
-rw-r--r--docs/SkRect_Reference.bmh135
-rw-r--r--docs/SkSurface_Reference.bmh75
-rw-r--r--docs/status.json1
-rw-r--r--site/user/api/SkAutoCanvasRestore_Reference.md113
-rw-r--r--site/user/api/SkBitmap_Reference.md158
-rw-r--r--site/user/api/SkCanvas_Reference.md294
-rw-r--r--site/user/api/SkIPoint16_Reference.md26
-rw-r--r--site/user/api/SkIPoint_Reference.md43
-rw-r--r--site/user/api/SkIRect_Reference.md115
-rw-r--r--site/user/api/SkImage_Reference.md33
-rw-r--r--site/user/api/SkMatrix_Reference.md11
-rw-r--r--site/user/api/SkPaint_Reference.md343
-rw-r--r--site/user/api/SkPath_Reference.md229
-rw-r--r--site/user/api/SkPixmap_Reference.md92
-rw-r--r--site/user/api/SkPoint_Reference.md12
-rw-r--r--site/user/api/SkRect_Reference.md132
-rw-r--r--site/user/api/SkSurface_Reference.md72
-rw-r--r--site/user/api/catalog.htm34
-rw-r--r--site/user/api/undocumented.md4
-rw-r--r--tools/bookmaker/bookmaker.cpp9
-rw-r--r--tools/bookmaker/mdOut.cpp5
-rw-r--r--tools/bookmaker/selfCheck.cpp400
34 files changed, 2257 insertions, 1610 deletions
diff --git a/docs/SkAutoCanvasRestore_Reference.bmh b/docs/SkAutoCanvasRestore_Reference.bmh
new file mode 100644
index 0000000000..a01aa793c7
--- /dev/null
+++ b/docs/SkAutoCanvasRestore_Reference.bmh
@@ -0,0 +1,122 @@
+#Topic Automatic_Canvas_Restore
+
+#Class SkAutoCanvasRestore
+
+Stack helper class calls SkCanvas::restoreToCount() when SkAutoCanvasRestore
+goes out of scope. Use this to guarantee that the canvas is restored to a known
+state.
+
+#Topic Overview
+
+#Subtopic Subtopics
+#ToDo manually add subtopics ##
+#Table
+#Legend
+# name # description ##
+#Legend ##
+# Constructors # functions that construct SkAutoCanvasRestore ##
+# Member_Functions # static functions and member methods ##
+#Table ##
+#Subtopic ##
+
+#Subtopic Constructors
+#Table
+#Legend
+# name # description ##
+#Legend ##
+# SkAutoCanvasRestore(SkCanvas* canvas, bool doSave) # Preserves Canvas save count. ##
+# ~SkAutoCanvasRestore() # Restores Canvas to saved state. ##
+#Table ##
+#Subtopic ##
+
+#Subtopic Member_Functions
+#Table
+#Legend
+# name # description ##
+#Legend ##
+# restore() # Restores Canvas to saved state. ##
+#Table ##
+#Subtopic ##
+
+#Topic Overview ##
+
+#Method SkAutoCanvasRestore(SkCanvas* canvas, bool doSave)
+
+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 ##
+
+#Example
+#Height 128
+ SkPaint p;
+ p.setAntiAlias(true);
+ p.setTextSize(64);
+ for (SkScalar sx : { -1, 1 } ) {
+ for (SkScalar sy : { -1, 1 } ) {
+ SkAutoCanvasRestore autoRestore(canvas, true);
+ SkMatrix m = SkMatrix::MakeAll(sx, 1, 96, 0, sy, 64, 0, 0, 1);
+ canvas->concat(m);
+ canvas->drawString("R", 0, 0, p);
+ }
+ }
+##
+
+#SeeAlso SkCanvas::save SkCanvas::restore
+
+##
+
+#Method ~SkAutoCanvasRestore()
+
+Restores Canvas to saved state. Destructor is called when container goes out of
+scope.
+
+#NoExample
+##
+
+#SeeAlso SkCanvas::save SkCanvas::restore
+
+##
+
+#Method void restore()
+
+Restores Canvas to saved state immediately. Subsequent calls and
+~SkAutoCanvasRestore have no effect.
+
+#Example
+for (bool callRestore : { false, true } ) {
+ for (bool saveCanvas : {false, true} ) {
+ SkAutoCanvasRestore autoRestore(canvas, saveCanvas);
+ if (!saveCanvas) {
+ canvas->save();
+ }
+ SkDebugf("saveCanvas: %s before restore: %d\n",
+ saveCanvas ? "true" : "false", canvas->getSaveCount());
+ if (callRestore) autoRestore.restore();
+ SkDebugf("saveCanvas: %s after restore: %d\n",
+ saveCanvas ? "true" : "false", canvas->getSaveCount());
+ }
+}
+SkDebugf("final count: %d\n", canvas->getSaveCount());
+#StdOut
+saveCanvas: false before restore: 2
+saveCanvas: false after restore: 2
+saveCanvas: true before restore: 2
+saveCanvas: true after restore: 2
+saveCanvas: false before restore: 2
+saveCanvas: false after restore: 1
+saveCanvas: true before restore: 2
+saveCanvas: true after restore: 1
+final count: 1
+##
+##
+
+#SeeAlso SkCanvas::save SkCanvas::restore
+
+##
+
+#Class SkAutoCanvasRestore ##
+
+#Topic Automatic_Canvas_Restore ##
diff --git a/docs/SkBitmap_Reference.bmh b/docs/SkBitmap_Reference.bmh
index e9755bf89f..5aae6272a5 100644
--- a/docs/SkBitmap_Reference.bmh
+++ b/docs/SkBitmap_Reference.bmh
@@ -38,15 +38,19 @@ is useful to position one or more Bitmaps within a shared pixel array.
#ToDo manually add subtopics ##
#Table
#Legend
-# topics # description ##
+# name # description ##
#Legend ##
+# Classes_and_Structs # embedded struct and class members ##
+# Constructors # functions that construct SkPath ##
+# Member_Functions # static functions and member methods ##
+# Operators # operator overloading methods ##
#Table ##
##
-#Subtopic Structs
+#Subtopic Classes_and_Structs
#Table
#Legend
-# description # struct ##
+# name # description ##
#Legend ##
# Allocator # ##
# HeapAllocator # ##
@@ -56,95 +60,95 @@ is useful to position one or more Bitmaps within a shared pixel array.
#Subtopic Constructors
#Table
#Legend
-# description # function ##
+# name # description ##
#Legend ##
-# SkBitmap() # Constructs with default values. ##
-# SkBitmap(SkBitmap&& src) # Takes ownership of pixels. ##
-# SkBitmap(const SkBitmap& src) # Shares ownership of pixels. ##
-# ~SkBitmap() # Releases ownership of pixels. ##
+# SkBitmap() # constructs with default values ##
+# SkBitmap(SkBitmap&& src) # takes ownership of pixels ##
+# SkBitmap(const SkBitmap& src) # shares ownership of pixels ##
+# ~SkBitmap() # releases ownership of pixels ##
#Table ##
#Subtopic ##
#Subtopic Operators
#Table
#Legend
-# description # function ##
+# name # description ##
#Legend ##
-# SkBitmap& operator=(SkBitmap&& src) # Takes ownership of pixels. ##
-# SkBitmap& operator=(const SkBitmap& src) # Shares ownership of pixels. ##
+# SkBitmap& operator=(SkBitmap&& src) # takes ownership of pixels ##
+# SkBitmap& operator=(const SkBitmap& src) # shares ownership of pixels ##
#Table ##
#Subtopic ##
#Subtopic Member_Functions
#Table
#Legend
-# description # function ##
+# name # description ##
#Legend ##
-# ComputeIsOpaque # Returns true if all pixels are opaque. ##
-# allocN32Pixels # Allocates compatible Color_ARGB pixels, or aborts. ##
-# allocPixels # Allocates pixels from Image_Info, or aborts. ##
-# allocPixelsFlags # Allocates pixels from Image_Info with options, or aborts. ##
-# alphaType # Returns Image_Info Alpha_Type. ##
-# bounds() # Returns width() and height() as Rectangle. ##
-# bytesPerPixel # Returns number of bytes in pixel based on Color_Type. ##
-# colorSpace # Returns Image_Info Color_Space. ##
-# colorType # Returns Image_Info Color_Type. ##
-# computeByteSize # Returns size required for pixels. ##
-# dimensions() # Returns width() and height(). ##
-# drawsNothing # Returns true if no width(), no height(), or no Pixel_Ref. ##
-# empty() # Returns true if Image_Info has zero width() or height(). ##
-# erase() # Writes Color to rectangle of pixels. ##
-# eraseARGB # Writes Color to pixels. ##
-# eraseArea # Deprecated ##
-# eraseColor # Writes Color to pixels. ##
-# eraseRGB # Deprecated ##
-# extractAlpha # Creates Bitmap containing Alpha of pixels. ##
-# extractSubset # Creates Bitmap, sharing pixels if possible. ##
-# getAddr # Returns readable pixel address as void pointer. ##
-# getAddr16 # Returns readable pixel address as 16-bit pointer. ##
-# getAddr32 # Returns readable pixel address as 32-bit pointer. ##
-# getAddr8 # Returns readable pixel address as 8-bit pointer. ##
-# getBounds # Returns width() and height() as Rectangle. ##
-# getColor # Returns one pixel as Unpremultiplied Color. ##
-# getGenerationID # Returns unique ID. ##
-# getPixels # Returns address of pixels. ##
-# getSubset # Returns bounds offset by origin. ##
-# hasHardwareMipMap # Returns Mip_Map support present; Android only. ##
-# height() # Returns pixel row count. ##
-# info() # Returns Image_Info. ##
-# installMaskPixels # Creates Pixel_Ref from Mask. ##
-# installPixels # Creates Pixel_Ref, with optional release function. ##
-# isImmutable # Returns true if pixels will not change. ##
-# isNull # Returns true if Pixel_Ref is nullptr. ##
-# isOpaque # Returns true if Image_Info describes opaque pixels. ##
-# isVolatile # Returns true if pixels should not be cached. ##
-# notifyPixelsChanged # Marks pixels as changed, altering the unique ID. ##
-# peekPixels # Returns Pixmap if possible. ##
-# pixelRef # Returns Pixel_Ref, or nullptr. ##
-# pixelRefOrigin # Returns offset within Pixel_Ref. ##
-# pixmap() # Returns Pixmap. ##
-# readPixels # Copies and converts pixels. ##
-# readyToDraw # Returns true if address of pixels is not nullptr. ##
-# refColorSpace # Returns Image_Info Color_Space. ##
-# reset() # Sets to default values, releases pixel ownership. ##
-# rowBytes # Returns interval between rows in bytes. ##
-# rowBytesAsPixels # Returns interval between rows in pixels. ##
-# setAlphaType # Sets Alpha_Type of shared pixels. ##
-# setHasHardwareMipMap # Sets Mip_Map support present; Android only. ##
-# setImmutable # Marks that pixels will not change. ##
-# setInfo # Sets height, width, Color_Type, and so on, releasing pixels. ##
-# setIsVolatile # Marks if pixels should not be cached. ##
-# setPixelRef # Sets Pixel_Ref and offset. ##
-# setPixels # Sets Pixel_Ref without an offset. ##
-# shiftPerPixel # Returns bit shift from pixels to bytes. ##
-# swap() # Exchanges Bitmap pair. ##
-# toString # Converts Bitmap to machine readable form. ##
-# tryAllocN32Pixels # Allocates compatible Color_ARGB pixels if possible. ##
-# tryAllocPixels # Allocates pixels from Image_Info if possible. ##
-# tryAllocPixelsFlags # Allocates pixels from Image_Info with options if possible. ##
-# validate() # Asserts if Bitmap is invalid (debug only). ##
-# width() # Returns pixel column count. ##
-# writePixels # Copies and converts pixels. ##
+# ComputeIsOpaque # returns true if all pixels are opaque ##
+# allocN32Pixels # allocates compatible Color_ARGB pixels, or aborts ##
+# allocPixels # allocates pixels from Image_Info, or aborts ##
+# allocPixelsFlags # allocates pixels from Image_Info with options, or aborts ##
+# alphaType # returns Image_Info Alpha_Type ##
+# bounds() # returns width() and height() as Rectangle ##
+# bytesPerPixel # returns number of bytes in pixel based on Color_Type ##
+# colorSpace # returns Image_Info Color_Space ##
+# colorType # returns Image_Info Color_Type ##
+# computeByteSize # returns size required for pixels ##
+# dimensions() # returns width() and height() ##
+# drawsNothing # returns true if no width(), no height(), or no Pixel_Ref ##
+# empty() # returns true if Image_Info has zero width() or height() ##
+# erase() # writes Color to rectangle of pixels ##
+# eraseARGB # writes Color to pixels ##
+# eraseArea # deprecated ##
+# eraseColor # writes Color to pixels ##
+# eraseRGB # deprecated ##
+# extractAlpha # creates Bitmap containing Alpha of pixels ##
+# extractSubset # creates Bitmap, sharing pixels if possible ##
+# getAddr # returns readable pixel address as void pointer ##
+# getAddr16 # returns readable pixel address as 16-bit pointer ##
+# getAddr32 # returns readable pixel address as 32-bit pointer ##
+# getAddr8 # returns readable pixel address as 8-bit pointer ##
+# getBounds # returns width() and height() as Rectangle ##
+# getColor # returns one pixel as Unpremultiplied Color ##
+# getGenerationID # returns unique ID ##
+# getPixels # returns address of pixels ##
+# getSubset # returns bounds offset by origin ##
+# hasHardwareMipMap # returns Mip_Map support present; Android only ##
+# height() # returns pixel row count ##
+# info() # returns Image_Info ##
+# installMaskPixels # creates Pixel_Ref from Mask ##
+# installPixels # creates Pixel_Ref, with optional release function ##
+# isImmutable # returns true if pixels will not change ##
+# isNull # returns true if Pixel_Ref is nullptr ##
+# isOpaque # returns true if Image_Info describes opaque pixels ##
+# isVolatile # returns true if pixels should not be cached ##
+# notifyPixelsChanged # marks pixels as changed, altering the unique ID ##
+# peekPixels # returns Pixmap if possible ##
+# pixelRef # returns Pixel_Ref, or nullptr ##
+# pixelRefOrigin # returns offset within Pixel_Ref ##
+# pixmap() # returns Pixmap ##
+# readPixels # copies and converts pixels ##
+# readyToDraw # returns true if address of pixels is not nullptr ##
+# refColorSpace # returns Image_Info Color_Space ##
+# reset() # sets to default values, releases pixel ownership ##
+# rowBytes # returns interval between rows in bytes ##
+# rowBytesAsPixels # returns interval between rows in pixels ##
+# setAlphaType # sets Alpha_Type of shared pixels ##
+# setHasHardwareMipMap # sets Mip_Map support present; Android only ##
+# setImmutable # marks that pixels will not change ##
+# setInfo # sets height, width, Color_Type, and so on, releasing pixels ##
+# setIsVolatile # marks if pixels should not be cached ##
+# setPixelRef # sets Pixel_Ref and offset ##
+# setPixels # sets Pixel_Ref without an offset ##
+# shiftPerPixel # returns bit shift from pixels to bytes ##
+# swap() # exchanges Bitmap pair ##
+# toString # converts Bitmap to machine readable form ##
+# tryAllocN32Pixels # allocates compatible Color_ARGB pixels if possible ##
+# tryAllocPixels # allocates pixels from Image_Info if possible ##
+# tryAllocPixelsFlags # allocates pixels from Image_Info with options if possible ##
+# validate() # asserts if Bitmap is invalid (debug only) ##
+# width() # returns pixel column count ##
+# writePixels # copies and converts pixels ##
#Table ##
#Subtopic ##
diff --git a/docs/SkCanvas_Reference.bmh b/docs/SkCanvas_Reference.bmh
index 24e1e0a41b..4463ea6b3a 100644
--- a/docs/SkCanvas_Reference.bmh
+++ b/docs/SkCanvas_Reference.bmh
@@ -29,31 +29,35 @@ This approach may be deprecated in the future.
#Subtopic Subtopics
#Table
#Legend
-# topics # description ##
+# name # description ##
#Legend ##
-#ToDo generate a TOC here ##
+# Classes_and_Structs # embedded struct and class members ##
+# Constants # enum and enum class, const values ##
+# Constructors # functions that construct SkPath ##
+# Member_Functions # static functions and member methods ##
+# Operators # operator overloading methods ##
#Table ##
#Subtopic ##
#Subtopic Constants
#Table
#Legend
-# constants # description ##
+# name # description ##
#Legend ##
-# Lattice::Flags # Controls Lattice transparency. ##
-# PointMode # Sets drawPoints options. ##
-# SaveLayerFlags # Sets SaveLayerRec options. ##
-# SrcRectConstraint # Sets drawImageRect options. ##
+# Lattice::Flags # controls Lattice transparency ##
+# PointMode # sets drawPoints options ##
+# SaveLayerFlags # sets SaveLayerRec options ##
+# SrcRectConstraint # sets drawImageRect options ##
#Table ##
#Subtopic ##
-#Subtopic Structs
+#Subtopic Classes_and_Structs
#Table
#Legend
-# struct # description ##
+# name # description ##
#Legend ##
-# Lattice # Divides Bitmap, Image into a rectangular grid. ##
-# SaveLayerRec # Contains state to create Layer. ##
+# Lattice # divides Bitmap, Image into a rectangular grid ##
+# SaveLayerRec # contains state to create Layer ##
#Table ##
#Subtopic ##
@@ -64,103 +68,105 @@ when no Surface is required, and some helpers implicitly create Raster_Surface.
#Table
#Legend
-# # description ##
+# name # description ##
#Legend ##
-# SkCanvas() # No Surface, no dimensions. ##
-# SkCanvas(int width, int height, const SkSurfaceProps* props = nullptr) # No Surface, set dimensions, Surface_Properties. ##
-# SkCanvas(SkBaseDevice* device) # Existing Device. (SkBaseDevice is private.) ##
-# SkCanvas(const SkBitmap& bitmap) # Uses existing Bitmap. ##
-# SkCanvas(const SkBitmap& bitmap, const SkSurfaceProps& props) # Uses existing Bitmap and Surface_Properties. ##
-# MakeRasterDirect # Creates from SkImageInfo and Pixel_Storage. ##
-# MakeRasterDirectN32 # Creates from image data and Pixel_Storage. ##
+# MakeRasterDirect # creates from SkImageInfo and Pixel_Storage ##
+# MakeRasterDirectN32 # creates from image data and Pixel_Storage ##
+# SkCanvas() # creates with no Surface, no dimensions ##
+# SkCanvas(SkBaseDevice* device) # to be deprecated ##
+# SkCanvas(const SkBitmap& bitmap) # uses existing Bitmap ##
+# SkCanvas(const SkBitmap& bitmap, ColorBehavior behavior) # Android framework only ##
+# SkCanvas(const SkBitmap& bitmap, const SkSurfaceProps& props) # uses existing Bitmap and Surface_Properties ##
+# SkCanvas(int width, int height, const SkSurfaceProps* props = nullptr) # no Surface, set dimensions, Surface_Properties ##
+# ~SkCanvas() # draws saved Layers, frees resources ##
#Table ##
#Subtopic ##
#Subtopic Member_Functions
#Table
#Legend
-# function # description ##
+# name # description ##
#Legend ##
-# accessTopLayerPixels # Returns writable pixel access if available. ##
-# accessTopRasterHandle # Returns context that tracks Clip and Matrix. ##
-# clear() # Fills Clip with Color. ##
-# clipPath # Combines Clip with Path. ##
-# clipRRect # Combines Clip with Round_Rect. ##
-# clipRect # Combines Clip with Rect. ##
-# clipRegion # Combines Clip with Region. ##
-# concat() # Multiplies Matrix by Matrix. ##
-# discard() # Makes Canvas contents undefined. ##
-# drawAnnotation # Associates a Rect with a key-value pair.##
-# drawArc # Draws Arc using Clip, Matrix, and Paint.##
-# drawAtlas # Draws sprites using Clip, Matrix, and Paint.##
-# drawBitmap # Draws Bitmap at (x, y) position. ##
-# drawBitmapLattice # Draws proportionally stretched Bitmap. ##
-# drawBitmapNine # Draws Nine_Patch Bitmap. ##
-# drawBitmapRect # Draws Bitmap, source Rect to destination Rect. ##
-# drawCircle # Draws Circle using Clip, Matrix, and Paint. ##
-# drawColor # Fills Clip with Color and Blend_Mode. ##
-# drawDRRect # Draws double Round_Rect stroked or filled. ##
-# drawDrawable # Draws Drawable, encapsulated drawing commands. ##
-# drawIRect # Draws IRect using Clip, Matrix, and Paint. ##
-# drawImage # Draws Image at (x, y) position. ##
-# drawImageLattice # Draws proportionally stretched Image. ##
-# drawImageNine # Draws Nine_Patch Image. ##
-# drawImageRect # Draws Image, source Rect to destination Rect. ##
-# drawLine # Draws line segment between two points.##
-# drawOval # Draws Oval using Clip, Matrix, and Paint. ##
-# drawPaint # Fills Clip with Paint. ##
-# drawPatch # Draws Coons_Patch. ##
-# drawPath # Draws Path using Clip, Matrix, and Paint. ##
-# drawPicture # Draws Picture using Clip and Matrix. ##
-# drawPoint # Draws point at (x, y) position. ##
-# drawPoints # Draws array as points, lines, polygon. ##
-# drawPosText # Draws text at array of (x, y) positions. ##
-# drawPosTextH # Draws text at x positions with common baseline. ##
-# drawRRect # Draws Round_Rect using Clip, Matrix, and Paint. ##
-# drawRect # Draws Rect using Clip, Matrix, and Paint. ##
-# drawRegion # Draws Region using Clip, Matrix, and Paint. ##
-# drawRoundRect # Draws Round_Rect using Clip, Matrix, and Paint. ##
-# drawText # Draws text at (x, y), using font advance. ##
-# drawTextBlob # Draws text with arrays of positions and Paint. ##
-# drawTextOnPath # Draws text following Path contour. ##
-# drawTextOnPathHV # Draws text following Path with offsets. ##
-# drawTextRSXform # Draws text with array of RSXform. ##
-# drawString # Draws null terminated string at (x, y) using font advance. ##
-# drawVertices # Draws Vertices, a triangle mesh. ##
-# flush() # Triggers execution of all pending draw operations. ##
-# getBaseLayerSize # Gets size of base Layer in global coordinates. ##
-# getDeviceClipBounds # Returns IRect bounds of Clip. ##
-# getDrawFilter # Legacy; to be deprecated. ##
-# getGrContext # Returns GPU_Context of the GPU_Surface. ##
-# getLocalClipBounds # Returns Clip bounds in source coordinates. ##
-# getMetaData # Associates additional data with the canvas. ##
-# getProps # Copies Surface_Properties if available. ##
-# getSaveCount # Returns depth of stack containing Clip and Matrix. ##
-# getTotalMatrix # Returns Matrix. ##
-# imageInfo # Returns Image_Info for Canvas. ##
-# isClipEmpty # Returns if Clip is empty. ##
-# isClipRect # Returns if Clip is Rect and not empty. ##
-# MakeRasterDirect # Creates Canvas from SkImageInfo and pixel data. ##
-# MakeRasterDirectN32 # Creates Canvas from image specifications and pixel data. ##
-# makeSurface # Creates Surface matching SkImageInfo and SkSurfaceProps. ##
-# peekPixels # Returns if Canvas has direct access to its pixels. ##
-# quickReject # Returns if Rect is outside Clip. ##
-# readPixels # Copies and converts rectangle of pixels from Canvas. ##
-# resetMatrix # Resets Matrix to identity. ##
-# restore() # Restores changes to Clip and Matrix, pops save stack. ##
-# restoreToCount # Restores changes to Clip and Matrix to given depth. ##
-# rotate() # Rotates Matrix. ##
-# save() # Saves Clip and Matrix on stack. ##
-# saveLayer # Saves Clip and Matrix on stack; creates Layer. ##
-# saveLayerAlpha # Saves Clip and Matrix on stack; creates Layer; sets opacity. ##
-# saveLayerPreserveLCDTextRequests # Saves Clip and Matrix on stack; creates Layer for LCD text. ##
-# scale() # Scales Matrix. ##
-# setAllowSimplifyClip # Experimental. ##
-# setDrawFilter # Legacy; to be deprecated. ##
-# setMatrix # Sets Matrix. ##
-# skew() # Skews Matrix. #
-# translate() # Translates Matrix. ##
-# writePixels # Copies and converts rectangle of pixels to Canvas. ##
+# MakeRasterDirect # creates Canvas from SkImageInfo and pixel data ##
+# MakeRasterDirectN32 # creates Canvas from image specifications and pixel data ##
+# accessTopLayerPixels # returns writable pixel access if available ##
+# accessTopRasterHandle # returns context that tracks Clip and Matrix ##
+# clear() # fills Clip with Color ##
+# clipPath # combines Clip with Path ##
+# clipRRect # combines Clip with Round_Rect ##
+# clipRect # combines Clip with Rect ##
+# clipRegion # combines Clip with Region ##
+# concat() # multiplies Matrix by Matrix ##
+# discard() # makes Canvas contents undefined ##
+# drawAnnotation # associates a Rect with a key-value pair ##
+# drawArc # draws Arc using Clip, Matrix, and Paint ##
+# drawAtlas # draws sprites using Clip, Matrix, and Paint ##
+# drawBitmap # draws Bitmap at (x, y) position ##
+# drawBitmapLattice # draws proportionally stretched Bitmap ##
+# drawBitmapNine # draws Nine_Patch Bitmap ##
+# drawBitmapRect # draws Bitmap, source Rect to destination Rect ##
+# drawCircle # draws Circle using Clip, Matrix, and Paint ##
+# drawColor # fills Clip with Color and Blend_Mode ##
+# drawDRRect # draws double Round_Rect stroked or filled ##
+# drawDrawable # draws Drawable, encapsulated drawing commands ##
+# drawIRect # draws IRect using Clip, Matrix, and Paint ##
+# drawImage # draws Image at (x, y) position ##
+# drawImageLattice # draws proportionally stretched Image ##
+# drawImageNine # draws Nine_Patch Image ##
+# drawImageRect # draws Image, source Rect to destination Rect ##
+# drawLine # draws line segment between two points ##
+# drawOval # draws Oval using Clip, Matrix, and Paint ##
+# drawPaint # fills Clip with Paint ##
+# drawPatch # draws Coons_Patch ##
+# drawPath # draws Path using Clip, Matrix, and Paint ##
+# drawPicture # draws Picture using Clip and Matrix ##
+# drawPoint # draws point at (x, y) position ##
+# drawPoints # draws array as points, lines, polygon ##
+# drawPosText # draws text at array of (x, y) positions ##
+# drawPosTextH # draws text at x positions with common baseline ##
+# drawRRect # draws Round_Rect using Clip, Matrix, and Paint ##
+# drawRect # draws Rect using Clip, Matrix, and Paint ##
+# drawRegion # draws Region using Clip, Matrix, and Paint ##
+# drawRoundRect # draws Round_Rect using Clip, Matrix, and Paint ##
+# drawString # draws null terminated string at (x, y) using font advance ##
+# drawText # draws text at (x, y), using font advance ##
+# drawTextBlob # draws text with arrays of positions and Paint ##
+# drawTextOnPath # draws text following Path contour ##
+# drawTextOnPathHV # draws text following Path with offsets ##
+# drawTextRSXform # draws text with array of RSXform ##
+# drawVertices # draws Vertices, a triangle mesh ##
+# flush() # triggers execution of all pending draw operations ##
+# getBaseLayerSize # returns size of base Layer in global coordinates ##
+# getDeviceClipBounds # returns IRect bounds of Clip ##
+# getDrawFilter # legacy; to be deprecated ##
+# getGrContext # returns GPU_Context of the GPU_Surface ##
+# getLocalClipBounds # returns Clip bounds in source coordinates ##
+# getMetaData # associates additional data with the canvas ##
+# getProps # copies Surface_Properties if available ##
+# getSaveCount # returns depth of stack containing Clip and Matrix ##
+# getTotalMatrix # returns Matrix ##
+# imageInfo # returns Image_Info for Canvas ##
+# isClipEmpty # returns if Clip is empty ##
+# isClipRect # returns if Clip is Rect and not empty ##
+# makeSurface # creates Surface matching SkImageInfo and SkSurfaceProps ##
+# peekPixels # returns if Canvas has direct access to its pixels ##
+# quickReject # returns if Rect is outside Clip ##
+# readPixels # copies and converts rectangle of pixels from Canvas ##
+# resetMatrix # resets Matrix to identity ##
+# restore() # restores changes to Clip and Matrix, pops save stack ##
+# restoreToCount # restores changes to Clip and Matrix to given depth ##
+# rotate() # rotates Matrix ##
+# save() # saves Clip and Matrix on stack ##
+# saveLayer # saves Clip and Matrix on stack; creates Layer ##
+# saveLayerAlpha # saves Clip and Matrix on stack; creates Layer; sets opacity ##
+# saveLayerPreserveLCDTextRequests # saves Clip and Matrix on stack; creates Layer for LCD text ##
+# scale() # scales Matrix ##
+# setAllowSimplifyClip # experimental ##
+# setDrawFilter # legacy; to be deprecated ##
+# setMatrix # sets Matrix ##
+# skew() # skews Matrix. #
+# translate() # translates Matrix ##
+# writePixels # copies and converts rectangle of pixels to Canvas ##
#Table ##
#Subtopic ##
@@ -584,8 +590,8 @@ The actual output depends on the installed fonts.
#Method virtual ~SkCanvas()
-Draw saved Layers, if any.
-Free up resources used by Canvas.
+Draws saved Layers, if any.
+Frees up resources used by Canvas.
#Example
#Description
@@ -6165,89 +6171,4 @@ Returns false if the clip is empty, or if it is not Rect.
#Class SkCanvas ##
-#Class SkAutoCanvasRestore
-
-Stack helper class calls SkCanvas::restoreToCount() when SkAutoCanvasRestore
-goes out of scope. Use this to guarantee that the canvas is restored to a known
-state.
-
-#Method SkAutoCanvasRestore(SkCanvas* canvas, bool doSave)
-
-Preserves Canvas save count. Optionally saves Canvas Clip and Matrix.
-
-#Param canvas Canvas to guard ##
-#Param doSave call SkCanvas::save() ##
-
-#Return utility to restore Canvas state on destructor ##
-
-#Example
-#Height 128
- SkPaint p;
- p.setAntiAlias(true);
- p.setTextSize(64);
- for (SkScalar sx : { -1, 1 } ) {
- for (SkScalar sy : { -1, 1 } ) {
- SkAutoCanvasRestore autoRestore(canvas, true);
- SkMatrix m = SkMatrix::MakeAll(sx, 1, 96, 0, sy, 64, 0, 0, 1);
- canvas->concat(m);
- canvas->drawString("R", 0, 0, p);
- }
- }
-##
-
-#SeeAlso SkCanvas::save SkCanvas::restore
-
-##
-
-#Method ~SkAutoCanvasRestore()
-
-Restores Canvas to saved state. Destructor is called when container goes out of
-scope.
-
-#NoExample
-##
-
-#SeeAlso SkCanvas::save SkCanvas::restore
-
-##
-
-#Method void restore()
-
-Restores Canvas to saved state immediately. Subsequent calls and
-~SkAutoCanvasRestore have no effect.
-
-#Example
-for (bool callRestore : { false, true } ) {
- for (bool saveCanvas : {false, true} ) {
- SkAutoCanvasRestore autoRestore(canvas, saveCanvas);
- if (!saveCanvas) {
- canvas->save();
- }
- SkDebugf("saveCanvas: %s before restore: %d\n",
- saveCanvas ? "true" : "false", canvas->getSaveCount());
- if (callRestore) autoRestore.restore();
- SkDebugf("saveCanvas: %s after restore: %d\n",
- saveCanvas ? "true" : "false", canvas->getSaveCount());
- }
-}
-SkDebugf("final count: %d\n", canvas->getSaveCount());
-#StdOut
-saveCanvas: false before restore: 2
-saveCanvas: false after restore: 2
-saveCanvas: true before restore: 2
-saveCanvas: true after restore: 2
-saveCanvas: false before restore: 2
-saveCanvas: false after restore: 1
-saveCanvas: true before restore: 2
-saveCanvas: true after restore: 1
-final count: 1
-##
-##
-
-#SeeAlso SkCanvas::save SkCanvas::restore
-
-##
-
-#Class SkAutoCanvasRestore ##
-
#Topic Canvas ##
diff --git a/docs/SkIPoint16_Reference.bmh b/docs/SkIPoint16_Reference.bmh
index b5c3cfee99..4f3d53b28b 100644
--- a/docs/SkIPoint16_Reference.bmh
+++ b/docs/SkIPoint16_Reference.bmh
@@ -3,7 +3,7 @@
#Struct SkIPoint16
-SkIPoint holds two 16 bit integer coordinates
+SkIPoint holds two 16 bit integer coordinates.
#Topic Overview
@@ -11,31 +11,42 @@ SkIPoint holds two 16 bit integer coordinates
#ToDo manually add subtopics ##
#Table
#Legend
-# topics # description ##
+# name # description ##
#Legend ##
+# Constructors # functions that construct SkIPoint16 ##
+# Member_Functions # static functions and member methods ##
#Table ##
-##
+#Subtopic ##
+
+#Subtopic Constructors
+#Table
+#Legend
+# name # description ##
+#Legend ##
+# Make # constructs from integer inputs ##
+#Table ##
+#Subtopic ##
#Subtopic Member_Functions
#Table
#Legend
-# description # function ##
+# name # description ##
#Legend ##
-# Make # Constructs from integer inputs. ##
-# set() # Sets to integer input. ##
-# x() # Returns fX. ##
-# y() # Returns fY. ##
+# Make # constructs from integer inputs ##
+# set() # sets to integer input ##
+# x() # returns fX ##
+# y() # returns fY ##
#Table ##
#Subtopic ##
-#Topic ##
+#Topic Overview ##
#Member int16_t fX
-x-axis value used by IPoint16.
+x-axis value used by IPoint16
##
#Member int16_t fY
-y-axis value used by IPoint16.
+y-axis value used by IPoint16
##
# ------------------------------------------------------------------------------
diff --git a/docs/SkIPoint_Reference.bmh b/docs/SkIPoint_Reference.bmh
index ed37167a12..3a431dee10 100644
--- a/docs/SkIPoint_Reference.bmh
+++ b/docs/SkIPoint_Reference.bmh
@@ -4,7 +4,7 @@
#Struct SkIPoint
-SkIPoint holds two 32 bit integer coordinates
+SkIPoint holds two 32 bit integer coordinates.
#Topic Overview
@@ -12,41 +12,53 @@ SkIPoint holds two 32 bit integer coordinates
#ToDo manually add subtopics ##
#Table
#Legend
-# topics # description ##
+# name # description ##
#Legend ##
+# Constructors # functions that construct SkIPoint16 ##
+# Member_Functions # static functions and member methods ##
+# Operators # operator overloading methods ##
#Table ##
-##
+#Subtopic ##
+
+#Subtopic Constructors
+#Table
+#Legend
+# name # description ##
+#Legend ##
+# Make # constructs from integer inputs ##
+#Table ##
+#Subtopic ##
#Subtopic Operators
#Table
#Legend
-# description # function ##
+# name # description ##
#Legend ##
-# SkIPoint operator-()_const # Reverses sign of IPoint. ##
-# SkIPoint operator+(const SkIPoint& a, const SkIVector& b) # Returns IPoint offset by IVector. ##
-# SkIVector operator-(const SkIPoint& a, const SkIPoint& b) # Returns IVector between IPoints. ##
-# bool operator!=(const SkIPoint& a, const SkIPoint& b) # Returns true if IPoints are unequal. ##
-# bool operator==(const SkIPoint& a, const SkIPoint& b) # Returns true if IPoints are equal. ##
-# void operator+=(const SkIVector& v) # Adds IVector to IPoint. ##
-# void operator-=(const SkIVector& v) # Subtracts IVector from IPoint. ##
+# SkIPoint operator+(const SkIPoint& a, const SkIVector& b) # returns IPoint offset by IVector ##
+# SkIPoint operator-()_const # reverses sign of IPoint ##
+# SkIVector operator-(const SkIPoint& a, const SkIPoint& b) # returns IVector between IPoints ##
+# bool operator!=(const SkIPoint& a, const SkIPoint& b) # returns true if IPoints are unequal ##
+# bool operator==(const SkIPoint& a, const SkIPoint& b) # returns true if IPoints are equal ##
+# void operator+=(const SkIVector& v) # adds IVector to IPoint ##
+# void operator-=(const SkIVector& v) # subtracts IVector from IPoint ##
#Table ##
#Subtopic ##
#Subtopic Member_Functions
#Table
#Legend
-# description # function ##
+# name # description ##
#Legend ##
-# Make # Constructs from integer inputs. ##
-# equals() # Returns true if members are equal. ##
-# isZero # Returns true if both members equal zero. ##
-# set() # Sets to integer input. ##
-# x() # Returns fX. ##
-# y() # Returns fY. ##
+# Make # constructs from integer inputs ##
+# equals() # returns true if members are equal ##
+# isZero # returns true if both members equal zero ##
+# set() # sets to integer input ##
+# x() # returns fX ##
+# y() # returns fY ##
#Table ##
#Subtopic ##
-#Topic ##
+#Topic Overview ##
#Member int32_t fX
x-axis value used by IPoint.
diff --git a/docs/SkIRect_Reference.bmh b/docs/SkIRect_Reference.bmh
index 708ac56551..eb0a3c06b0 100644
--- a/docs/SkIRect_Reference.bmh
+++ b/docs/SkIRect_Reference.bmh
@@ -12,72 +12,93 @@ its top, it is considered empty.
#Topic Overview
#Subtopic Subtopics
-#ToDo manually add subtopics ##
#Table
#Legend
-# topics # description ##
+# name # description ##
#Legend ##
+# Constructors # list of functions that construct SkPath ##
+# Member_Functions # list of static functions and member methods ##
+# Operators # operator overloading methods ##
#Table ##
##
+#Subtopic Constructors
+#Table
+#Legend
+# name # description ##
+#Legend ##
+# MakeEmpty # returns bounds of (0, 0, 0, 0) ##
+# MakeLTRB # constructs from int left, top, right, bottom ##
+# MakeLargest # deprecated ##
+# MakeSize # constructs from ISize returning (0, 0, width, height) ##
+# MakeWH # constructs from int input returning (0, 0, width, height) ##
+# MakeXYWH # constructs from int input returning (x, y, width, height) ##
+# makeInset # constructs from sides moved symmetrically about the center ##
+# makeOffset # constructs from translated sides ##
+# makeOutset # constructs from sides moved symmetrically about the center ##
+# makeSorted # constructs, ordering sides from smaller to larger ##
+#Table ##
+#Subtopic ##
+
#Subtopic Operators
#Table
#Legend
-# description # function ##
+# name # description ##
#Legend ##
-# bool operator!=(const SkIRect& a, const SkIRect& b) # Returns true if members are unequal. ##
-# bool operator==(const SkIRect& a, const SkIRect& b) # Returns true if members are equal. ##
+# bool operator!=(const SkIRect& a, const SkIRect& b) # returns true if members are unequal ##
+# bool operator==(const SkIRect& a, const SkIRect& b) # returns true if members are equal ##
#Table ##
#Subtopic ##
#Subtopic Member_Functions
#Table
#Legend
-# description # function ##
+# name # description ##
#Legend ##
-# EmptyIRect # Returns immutable bounds of (0, 0, 0, 0). ##
-# Intersects # Returns true if areas overlap. ##
-# IntersectsNoEmptyCheck # Returns true if areas overlap. Skips empty check. ##
-# MakeEmpty # Returns bounds of (0, 0, 0, 0). ##
-# MakeLTRB # Constructs from int left, top, right, bottom. ##
-# MakeSize # Constructs from ISize returning (0, 0, width, height). ##
-# MakeWH # Constructs from int input returning (0, 0, width, height). ##
-# MakeXYWH # Constructs from int input returning (x, y, width, height). ##
-# bottom() # Returns larger bounds in y, if sorted. ##
-# centerX # Returns midpoint in x. ##
-# centerY # Returns midpoint in y. ##
-# contains() # Returns true if points are equal or inside. ##
-# containsNoEmptyCheck # Returns true if points are equal or inside. Skips empty check. ##
-# height() # Returns span in y. ##
-# height64() # Returns span in y as int64_t. ##
-# inset() # Moves the sides symmetrically about the center. ##
-# intersect # Sets to shared area; returns true if not empty. ##
-# intersectNoEmptyCheck # Sets to shared area; returns true if not empty. Skips empty check. ##
-# is16Bit # Returns true if members fit in 16-bit word. ##
-# isEmpty # Returns true if width or height are zero or negative or they exceed int32_t. ##
-# isEmpty64 # Returns true if width or height are zero or negative. ##
-# join() # Sets to union of bounds. ##
-# left() # Returns smaller bounds in x, if sorted. ##
-# makeInset # Constructs from sides moved symmetrically about the center. ##
-# makeOffset # Constructs from translated sides. ##
-# makeOutset # Constructs from sides moved symmetrically about the center. ##
-# makeSorted # Constructs, ordering sides from smaller to larger. ##
-# offset() # Translates sides without changing width and height. ##
-# offsetTo # Translates to (x, y) without changing width and height. ##
-# outset() # Moves the sides symmetrically about the center. ##
-# quickReject # Returns true if rectangles do not intersect. ##
-# right() # Returns larger bounds in x, if sorted. ##
-# set() # Sets to (left, top, right, bottom). ##
-# setEmpty # Sets to (0, 0, 0, 0). ##
-# setLTRB # Sets to SkScalar input (left, top, right, bottom). ##
-# setXYWH # Sets to (x, y, width, height). ##
-# size() # Returns ISize (width, height). ##
-# sort() # Orders sides from smaller to larger. ##
-# top() # Returns smaller bounds in y, if sorted. ##
-# width() # Returns span in x. ##
-# width64() # Returns span in y as int64_t. ##
-# x() # Returns bounds left. ##
-# y() # Returns bounds top. ##
+# EmptyIRect # returns immutable bounds of (0, 0, 0, 0) ##
+# Intersects # returns true if areas overlap ##
+# IntersectsNoEmptyCheck # returns true if areas overlap skips empty check ##
+# MakeEmpty # returns bounds of (0, 0, 0, 0) ##
+# MakeLTRB # constructs from int left, top, right, bottom ##
+# MakeLargest # deprecated ##
+# MakeSize # constructs from ISize returning (0, 0, width, height) ##
+# MakeWH # constructs from int input returning (0, 0, width, height) ##
+# MakeXYWH # constructs from int input returning (x, y, width, height) ##
+# bottom() # returns larger bounds in y, if sorted ##
+# centerX # returns midpoint in x ##
+# centerY # returns midpoint in y ##
+# contains() # returns true if points are equal or inside ##
+# containsNoEmptyCheck # returns true if points are equal or inside skips empty check ##
+# height() # returns span in y ##
+# height64 # returns span in y as int64_t ##
+# inset() # moves the sides symmetrically about the center ##
+# intersect # sets to shared area; returns true if not empty ##
+# intersectNoEmptyCheck # sets to shared area; returns true if not empty skips empty check ##
+# is16Bit # returns true if members fit in 16-bit word ##
+# isEmpty # returns true if width or height are zero or negative or they exceed int32_t ##
+# isEmpty64 # returns true if width or height are zero or negative ##
+# join() # sets to union of bounds ##
+# left() # returns smaller bounds in x, if sorted ##
+# makeInset # constructs from sides moved symmetrically about the center ##
+# makeOffset # constructs from translated sides ##
+# makeOutset # constructs from sides moved symmetrically about the center ##
+# makeSorted # constructs, ordering sides from smaller to larger ##
+# offset() # translates sides without changing width and height ##
+# offsetTo # translates to (x, y) without changing width and height ##
+# outset() # moves the sides symmetrically about the center ##
+# quickReject # returns true if rectangles do not intersect ##
+# right() # returns larger bounds in x, if sorted ##
+# set() # sets to (left, top, right, bottom) ##
+# setEmpty # sets to (0, 0, 0, 0) ##
+# setLTRB # sets to SkScalar input (left, top, right, bottom) ##
+# setXYWH # sets to (x, y, width, height) ##
+# size() # returns ISize (width, height) ##
+# sort() # orders sides from smaller to larger ##
+# top() # returns smaller bounds in y, if sorted ##
+# width() # returns span in x ##
+# width64 # returns span in y as int64_t ##
+# x() # returns bounds left ##
+# y() # returns bounds top ##
#Table ##
#Subtopic ##
diff --git a/docs/SkImage_Reference.bmh b/docs/SkImage_Reference.bmh
index ffcd6fe60a..a0e29c2ff5 100644
--- a/docs/SkImage_Reference.bmh
+++ b/docs/SkImage_Reference.bmh
@@ -49,6 +49,37 @@ drawing.
#Table ##
##
+#Subtopic Constructors
+#Table
+#Legend
+# name # description ##
+#Legend ##
+# MakeBackendTextureFromSkImage # Creates GPU_Texture from Image. ##
+# MakeCrossContextFromEncoded # Creates Image from encoded data, and uploads to GPU. ##
+# MakeCrossContextFromPixmap # Creates Image from Pixmap, and uploads to GPU. ##
+# MakeFromAHardwareBuffer # Creates Image from Android hardware buffer. ##
+# MakeFromAdoptedTexture # Creates Image from GPU_Texture, managed internally. ##
+# MakeFromBitmap # Creates Image from Bitmap, sharing or copying pixels. ##
+# MakeFromDeferredTextureImageData # To be deprecated. ##
+# MakeFromEncoded # Creates Image from encoded data. ##
+# MakeFromGenerator # Creates Image from a stream of data. ##
+# MakeFromNV12TexturesCopy # Creates Image from YUV_ColorSpace data in two planes. ##
+# MakeFromPicture # Creates Image from Picture. ##
+# MakeFromRaster # Creates Image from Pixmap, with release. ##
+# MakeFromTexture # Creates Image from GPU_Texture, managed externally. ##
+# MakeFromYUVTexturesCopy # Creates Image from YUV_ColorSpace data in three planes. ##
+# MakeRasterCopy # Creates Image from Pixmap and copied pixels. ##
+# MakeRasterData # Creates Image from Image_Info and shared pixels. ##
+# SkSurface::makeImageSnapshot # Creates Image capturing Surface contents. ##
+# makeColorSpace # Creates Image matching Color_Space if possible. ##
+# makeNonTextureImage # Creates Image without dependency on GPU_Texture. ##
+# makeRasterImage # Creates Image compatible with Raster_Surface if possible. ##
+# makeSubset # Creates Image containing part of original. ##
+# makeTextureImage # Creates Image matching Color_Space if possible. ##
+# makeWithFilter # Creates filtered, clipped Image. ##
+#Table ##
+#Subtopic ##
+
#Subtopic Member_Functions
#Table
#Legend
@@ -56,10 +87,11 @@ drawing.
#Legend ##
# MakeBackendTextureFromSkImage # Creates GPU_Texture from Image. ##
# MakeCrossContextFromEncoded # Creates Image from encoded data, and uploads to GPU. ##
+# MakeCrossContextFromPixmap # Creates Image from Pixmap, and uploads to GPU. ##
# MakeFromAHardwareBuffer # Creates Image from Android hardware buffer. ##
# MakeFromAdoptedTexture # Creates Image from GPU_Texture, managed internally. ##
# MakeFromBitmap # Creates Image from Bitmap, sharing or copying pixels. ##
-# MakeFromDeferredTextureImageData # ##
+# MakeFromDeferredTextureImageData # To be deprecated. ##
# MakeFromEncoded # Creates Image from encoded data. ##
# MakeFromGenerator # Creates Image from a stream of data. ##
# MakeFromNV12TexturesCopy # Creates Image from YUV_ColorSpace data in two planes. ##
@@ -75,7 +107,7 @@ drawing.
# colorSpace # Returns Color_Space. ##
# dimensions() # Returns width() and height(). ##
# encodeToData # Returns encoded Image as SkData. ##
-# getDeferredTextureImageData # ##
+# getDeferredTextureImageData # To be deprecated. ##
# getTexture # Deprecated. ##
# getTextureHandle # Returns GPU reference to Image as texture. ##
# height() # Returns pixel row count. ##
diff --git a/docs/SkMatrix_Reference.bmh b/docs/SkMatrix_Reference.bmh
index cd49206454..d348acb441 100644
--- a/docs/SkMatrix_Reference.bmh
+++ b/docs/SkMatrix_Reference.bmh
@@ -27,6 +27,18 @@ improve performance. Matrix is not thread safe unless getType is called first.
#Table ##
##
+#Subtopic Constructors
+#Table
+#Legend
+# name # description ##
+#Legend ##
+# MakeAll # Constructs all nine values. ##
+# MakeRectToRect # Constructs from source Rect to destination Rect. ##
+# MakeScale # Constructs from scale in x and y. ##
+# MakeTrans # Constructs from translate in x and y. ##
+#Table ##
+#Subtopic ##
+
#Subtopic Operators
#Table
#Legend
@@ -34,8 +46,8 @@ improve performance. Matrix is not thread safe unless getType is called first.
#Legend ##
# operator!=(const SkMatrix& a, const SkMatrix& b) # Returns true if members are unequal. ##
# operator==(const SkMatrix& a, const SkMatrix& b) # Returns true if members are equal. ##
-# operator[](int index)_const # Returns Matrix value. ##
# operator[](int index) # Returns writable reference to Matrix value. ##
+# operator[](int index)_const # Returns Matrix value. ##
#Table ##
#Subtopic ##
diff --git a/docs/SkPaint_Reference.bmh b/docs/SkPaint_Reference.bmh
index 31031e76fa..801df43109 100644
--- a/docs/SkPaint_Reference.bmh
+++ b/docs/SkPaint_Reference.bmh
@@ -32,208 +32,220 @@ Shader attached to Paint.
#Topic Overview
#Subtopic Subtopics
-#ToDo not all methods are in topics ##
-#ToDo subtopics are not in topics ##
#Table
#Legend
-# topics # description ##
+# name # description ##
#Legend ##
-# Initializers # Constructors and initialization. ##
-# Destructor # Paint termination. ##
-# Management # Paint copying, moving, comparing. ##
-# Hinting # Glyph outline adjustment. ##
-# Flags # Attributes represented by single bits. ##
-# Anti-alias # Approximating coverage with transparency. ##
-# Dither # Distributing color error. ##
-# Device_Text # Increase precision of glyph position. ##
-# Font_Embedded_Bitmaps # Custom sized bitmap Glyphs. ##
-# Automatic_Hinting # Always adjust glyph paths. ##
-# Vertical_Text # Orient text from top to bottom. ##
-# Fake_Bold # Approximate font styles. ##
-# Full_Hinting_Spacing # Glyph spacing affected by hinting. ##
-# Filter_Quality_Methods # Get and set Filter_Quality. ##
-# Color_Methods # Get and set Color. ##
-# Style # Geometry filling, stroking. ##
-# Stroke_Width # Thickness perpendicular to geometry. ##
-# Miter_Limit # Maximum length of stroked corners. ##
-# Stroke_Cap # Decorations at ends of open strokes. ##
-# Stroke_Join # Decoration at corners of strokes. ##
-# Fill_Path # Make Path from Path_Effect, stroking. ##
-# Shader_Methods # Get and set Shader. ##
-# Color_Filter_Methods # Get and set Color_Filter. ##
-# Blend_Mode_Methods # Get and set Blend_Mode. ##
-# Path_Effect_Methods # Get and set Path_Effect. ##
-# Mask_Filter_Methods # Get and set Mask_Filter. ##
-# Typeface_Methods # Get and set Typeface. ##
-# Image_Filter_Methods # Get and set Image_Filter. ##
-# Draw_Looper_Methods # Get and set Draw_Looper. ##
-# Text_Align # Text placement relative to position. ##
-# Text_Size # Overall height in points. ##
-# Text_Scale_X # Text horizontal scale. ##
-# Text_Skew_X # Text horizontal slant. ##
-# Text_Encoding # Text encoded as characters or Glyphs. ##
-# Font_Metrics # Common glyph dimensions. ##
-# Measure_Text # Width, height, bounds of text. ##
-# Text_Path # Geometry of Glyphs. ##
-# Text_Intercepts # Advanced underline, strike through. ##
-# Fast_Bounds # Approximate area required by Paint. ##
+# Classes_and_Structs # embedded struct and class members ##
+# Constants # enum and enum class, const values ##
+# Constructors # list of functions that construct SkPath ##
+# Member_Functions # list of static functions and member methods ##
+# Operators # operator overloading methods ##
+# Related_Functions # similar methods grouped together ##
+#Table ##
+#Subtopic ##
+
+#Subtopic Related_Functions
+#Table
+#Legend
+# name # description ##
+#Legend ##
+# Anti-alias # approximating coverage with transparency ##
+# Automatic_Hinting # always adjust glyph paths ##
+# Blend_Mode_Methods # get and set Blend_Mode ##
+# Color_Filter_Methods # get and set Color_Filter ##
+# Color_Methods # get and set Color ##
+# Destructor # paint termination ##
+# Device_Text # increase precision of glyph position ##
+# Dither # distributing color error ##
+# Draw_Looper_Methods # get and set Draw_Looper ##
+# Fake_Bold # approximate font styles ##
+# Fast_Bounds # approximate area required by Paint ##
+# Fill_Path # make Path from Path_Effect, stroking ##
+# Filter_Quality_Methods # get and set Filter_Quality ##
+# Flags # attributes represented by single bits ##
+# Font_Embedded_Bitmaps # custom sized bitmap Glyphs ##
+# Font_Metrics # common glyph dimensions ##
+# Full_Hinting_Spacing # glyph spacing affected by hinting ##
+# Hinting # glyph outline adjustment ##
+# Image_Filter_Methods # get and set Image_Filter ##
+# Initializers # constructors and initialization ##
+# Management # paint copying, moving, comparing ##
+# Mask_Filter_Methods # get and set Mask_Filter ##
+# Measure_Text # width, height, bounds of text ##
+# Miter_Limit # maximum length of stroked corners ##
+# Path_Effect_Methods # get and set Path_Effect ##
+# Shader_Methods # get and set Shader ##
+# Stroke_Cap # decorations at ends of open strokes ##
+# Stroke_Join # decoration at corners of strokes ##
+# Stroke_Width # thickness perpendicular to geometry ##
+# Style # geometry filling, stroking ##
+# Text_Align # text placement relative to position ##
+# Text_Encoding # text encoded as characters or Glyphs ##
+# Text_Intercepts # advanced underline, strike through ##
+# Text_Path # geometry of Glyphs ##
+# Text_Scale_X # text horizontal scale ##
+# Text_Size # overall height in points ##
+# Text_Skew_X # text horizontal slant ##
+# Typeface_Methods # get and set Typeface ##
+# Vertical_Text # orient text from top to bottom ##
#Table ##
#Subtopic ##
#Subtopic Constants
#Table
#Legend
-# constants # description ##
+# name # description ##
#Legend ##
-# Align # Glyph locations relative to text position. ##
-# Cap # Start and end geometry on stroked shapes. ##
-# Flags # Values described by bits and masks. ##
-# FontMetrics::FontMetricsFlags # Valid Font_Metrics. ##
-# Hinting # Level of glyph outline adjustment. ##
-# Join # Corner geometry on stroked shapes. ##
-# Style # Stroke, fill, or both. ##
-# TextEncoding # Character or glyph encoded size. ##
+# Align # glyph locations relative to text position ##
+# Cap # start and end geometry on stroked shapes ##
+# Flags # values described by bits and masks ##
+# FontMetrics::FontMetricsFlags # valid Font_Metrics ##
+# Hinting # level of glyph outline adjustment ##
+# Join # corner geometry on stroked shapes ##
+# Style # stroke, fill, or both ##
+# TextEncoding # character or glyph encoded size ##
#Table ##
#Subtopic ##
-#Subtopic Structs
+#Subtopic Classes_and_Structs
#Table
#Legend
-# struct # description ##
+# name # description ##
#Legend ##
-# FontMetrics # Typeface values. ##
+# FontMetrics # typeface values ##
#Table ##
#Subtopic ##
#Subtopic Constructors
#Table
#Legend
-# # description ##
+# name # description ##
#Legend ##
-# SkPaint() # Constructs with default values. ##
-# SkPaint(const SkPaint& paint) # Makes a shallow copy. ##
-# SkPaint(SkPaint&& paint) # Moves paint without copying it. ##
-# ~SkPaint() # Decreases Reference_Count of owned objects. ##
+# SkPaint() # constructs with default values ##
+# SkPaint(SkPaint&& paint) # moves paint without copying it ##
+# SkPaint(const SkPaint& paint) # makes a shallow copy ##
+# ~SkPaint() # decreases Reference_Count of owned objects ##
#Table ##
#Subtopic ##
#Subtopic Operators
#Table
#Legend
-# operator # description ##
+# name # description ##
#Legend ##
-# operator=(const SkPaint& paint) # Makes a shallow copy. ##
-# operator=(SkPaint&& paint) # Moves paint without copying it. ##
-# operator==(const SkPaint& a, const SkPaint& b) # Compares paints for equality. ##
-# operator!=(const SkPaint& a, const SkPaint& b) # Compares paints for inequality. ##
+# operator!=(const SkPaint& a, const SkPaint& b) # compares paints for inequality ##
+# operator=(SkPaint&& paint) # moves paint without copying it ##
+# operator=(const SkPaint& paint) # makes a shallow copy ##
+# operator==(const SkPaint& a, const SkPaint& b) # compares paints for equality ##
#Table ##
#Subtopic ##
#Subtopic Member_Functions
#Table
#Legend
-# function # description ##
+# name # description ##
#Legend ##
-# breakText # Returns text that fits in a width. ##
-# canComputeFastBounds # Returns true if settings allow for fast bounds computation. ##
-# computeFastBounds # Returns fill bounds for quick reject tests. ##
-# computeFastStrokeBounds # Returns stroke bounds for quick reject tests. ##
-# containsText # Returns if all text corresponds to Glyphs. ##
-# countText # Returns number of Glyphs in text. ##
-# doComputeFastBounds # Returns bounds for quick reject tests. ##
-# flatten() # Serializes into a buffer. ##
-# getAlpha # Returns Color_Alpha, color opacity. ##
-# getBlendMode # Returns Blend_Mode, how colors combine with Device. ##
-# getColor # Returns Color_Alpha and Color_RGB, one drawing color. ##
-# getColorFilter # Returns Color_Filter, how colors are altered. ##
-# getDrawLooper # Returns Draw_Looper, multiple layers. ##
-# getFillPath # Returns fill path equivalent to stroke. ##
-# getFilterQuality # Returns Filter_Quality, image filtering level. ##
-# getFlags # Returns Flags stored in a bit field. ##
-# getFontBounds # Returns union all glyph bounds. ##
-# getFontMetrics # Returns Typeface metrics scaled by text size. ##
-# getFontSpacing # Returns recommended spacing between lines. ##
-# getHash # Returns a shallow hash for equality checks. ##
-# getHinting # Returns Hinting, glyph outline adjustment level. ##
-# getImageFilter # Returns Image_Filter, alter pixels; blur. ##
-# getMaskFilter # Returns Mask_Filter, alterations to Mask_Alpha. ##
-# getPathEffect # Returns Path_Effect, modifications to path geometry; dashing. ##
-# getPosTextPath # Returns Path equivalent to positioned text. ##
-# getPosTextIntercepts # Returns where lines intersect positioned text; underlines. ##
-# getPosTextHIntercepts # Returns where lines intersect horizontally positioned text; underlines. ##
-# getShader # Returns Shader, multiple drawing colors; gradients. ##
-# getStrokeCap # Returns Cap, the area drawn at path ends. ##
-# getStrokeJoin # Returns Join, geometry on path corners. ##
-# getStrokeMiter # Returns Miter_Limit, angles with sharp corners. ##
-# getStrokeWidth # Returns thickness of the stroke. ##
-# getStyle # Returns Style: stroke, fill, or both. ##
-# getTextAlign # Returns Align: left, center, or right. ##
-# getTextBlobIntercepts # Returns where lines intersect Text_Blob; underlines. ##
-# getTextEncoding # Returns character or glyph encoded size. b ##
-# getTextIntercepts # Returns where lines intersect text; underlines. ##
-# getTextPath # Returns Path equivalent to text. ##
-# getTextScaleX # Returns the text horizontal scale; condensed text. ##
-# getTextSkewX # Returns the text horizontal skew; oblique text. ##
-# getTextSize # Returns text size in points. ##
-# getTextWidths # Returns advance and bounds for each glyph in text. ##
-# getTypeface # Returns Typeface, font description. ##
-# glyphsToUnichars # Converts Glyphs into text. ##
-# isAntiAlias # Returns true if Anti-alias is set. ##
-# isAutohinted # Returns true if Glyphs are always hinted. ##
-# isDevKernText # Returns true if Full_Hinting_Spacing is set. ##
-# isDither # Returns true if Dither is set. ##
-# isEmbeddedBitmapText # Returns true if Font_Embedded_Bitmaps is set. ##
-# isFakeBoldText # Returns true if Fake_Bold is set. ##
-# isLCDRenderText # Returns true if LCD_Text is set. ##
-# isSrcOver # Returns true if Blend_Mode is SkBlendMode::kSrcOver. ##
-# isSubpixelText # Returns true if Subpixel_Text is set. ##
-# isVerticalText # Returns true if Vertical_Text is set. ##
-# measureText # Returns advance width and bounds of text. ##
-# nothingToDraw # Returns true if Paint prevents all drawing. ##
-# refColorFilter # References Color_Filter, how colors are altered. ##
-# refDrawLooper # References Draw_Looper, multiple layers. ##
-# refImageFilter # References Image_Filter, alter pixels; blur. ##
-# refMaskFilter # References Mask_Filter, alterations to Mask_Alpha. ##
-# refPathEffect # References Path_Effect, modifications to path geometry; dashing. ##
-# refShader # References Shader, multiple drawing colors; gradients. ##
-# refTypeface # References Typeface, font description. ##
-# reset() # Sets to default values. ##
-# setAlpha # Sets Color_Alpha, color opacity. ##
-# setAntiAlias # Sets or clears Anti-alias. ##
-# setARGB # Sets color by component. ##
-# setAutohinted # Sets Glyphs to always be hinted. ##
-# setBlendMode # Sets Blend_Mode, how colors combine with destination. ##
-# setColor # Sets Color_Alpha and Color_RGB, one drawing color. ##
-# setColorFilter # Sets Color_Filter, alters color. ##
-# setDevKernText # Sets or clears Full_Hinting_Spacing. ##
-# setDither # Sets or clears Dither. ##
-# setDrawLooper # Sets Draw_Looper, multiple layers. ##
-# setEmbeddedBitmapText # Sets or clears Font_Embedded_Bitmaps. ##
-# setFakeBoldText # Sets or clears Fake_Bold. ##
-# setFilterQuality # Sets Filter_Quality, the image filtering level. ##
-# setFlags # Sets multiple Flags in a bit field. ##
-# setHinting # Sets Hinting, glyph outline adjustment level. ##
-# setLCDRenderText # Sets or clears LCD_Text. ##
-# setMaskFilter # Sets Mask_Filter, alterations to Mask_Alpha. ##
-# setPathEffect # Sets Path_Effect, modifications to path geometry; dashing. ##
-# setImageFilter # Sets Image_Filter, alter pixels; blur. ##
-# setShader # Sets Shader, multiple drawing colors; gradients. ##
-# setStrokeCap # Sets Cap, the area drawn at path ends. ##
-# setStrokeJoin # Sets Join, geometry on path corners. ##
-# setStrokeMiter # Sets Miter_Limit, angles with sharp corners. ##
-# setStrokeWidth # Sets thickness of the stroke. ##
-# setStyle # Sets Style: stroke, fill, or both. ##
-# setSubpixelText # Sets or clears Subpixel_Text. ##
-# setTextAlign # Sets Align: left, center, or right. ##
-# setTextEncoding # Sets character or glyph encoded size. ##
-# setTextScaleX # Sets the text horizontal scale; condensed text. ##
-# setTextSkewX # Sets the text horizontal skew; oblique text. ##
-# setTextSize # Sets text size in points. ##
-# setTypeface # Sets Typeface, font description. ##
-# setVerticalText # Sets or clears Vertical_Text. ##
-# textToGlyphs # Converts text into glyph indices. ##
-# toString # Converts Paint to machine readable form. ##
-# unflatten() # Populates from a serialized stream. ##
+# breakText # returns text that fits in a width ##
+# canComputeFastBounds # returns true if settings allow for fast bounds computation ##
+# computeFastBounds # returns fill bounds for quick reject tests ##
+# computeFastStrokeBounds # returns stroke bounds for quick reject tests ##
+# containsText # returns if all text corresponds to Glyphs ##
+# countText # returns number of Glyphs in text ##
+# doComputeFastBounds # returns bounds for quick reject tests ##
+# flatten() # serializes into a buffer ##
+# getAlpha # returns Color_Alpha, color opacity ##
+# getBlendMode # returns Blend_Mode, how colors combine with Device ##
+# getColor # returns Color_Alpha and Color_RGB, one drawing color ##
+# getColorFilter # returns Color_Filter, how colors are altered ##
+# getDrawLooper # returns Draw_Looper, multiple layers ##
+# getFillPath # returns fill path equivalent to stroke ##
+# getFilterQuality # returns Filter_Quality, image filtering level ##
+# getFlags # returns Flags stored in a bit field ##
+# getFontBounds # returns union all glyph bounds ##
+# getFontMetrics # returns Typeface metrics scaled by text size ##
+# getFontSpacing # returns recommended spacing between lines ##
+# getHash # returns a shallow hash for equality checks ##
+# getHinting # returns Hinting, glyph outline adjustment level ##
+# getImageFilter # returns Image_Filter, alter pixels; blur ##
+# getMaskFilter # returns Mask_Filter, alterations to Mask_Alpha ##
+# getPathEffect # returns Path_Effect, modifications to path geometry; dashing ##
+# getPosTextHIntercepts # returns where lines intersect horizontally positioned text; underlines ##
+# getPosTextIntercepts # returns where lines intersect positioned text; underlines ##
+# getPosTextPath # returns Path equivalent to positioned text ##
+# getShader # returns Shader, multiple drawing colors; gradients ##
+# getStrokeCap # returns Cap, the area drawn at path ends ##
+# getStrokeJoin # returns Join, geometry on path corners ##
+# getStrokeMiter # returns Miter_Limit, angles with sharp corners ##
+# getStrokeWidth # returns thickness of the stroke ##
+# getStyle # returns Style: stroke, fill, or both ##
+# getTextAlign # returns Align: left, center, or right ##
+# getTextBlobIntercepts # returns where lines intersect Text_Blob; underlines ##
+# getTextEncoding # returns character or glyph encoded size ##
+# getTextIntercepts # returns where lines intersect text; underlines ##
+# getTextPath # returns Path equivalent to text ##
+# getTextScaleX # returns the text horizontal scale; condensed text ##
+# getTextSize # returns text size in points ##
+# getTextSkewX # returns the text horizontal skew; oblique text ##
+# getTextWidths # returns advance and bounds for each glyph in text ##
+# getTypeface # returns Typeface, font description ##
+# glyphsToUnichars # converts Glyphs into text ##
+# isAntiAlias # returns true if Anti-alias is set ##
+# isAutohinted # returns true if Glyphs are always hinted ##
+# isDevKernText # returns true if Full_Hinting_Spacing is set ##
+# isDither # returns true if Dither is set ##
+# isEmbeddedBitmapText # returns true if Font_Embedded_Bitmaps is set ##
+# isFakeBoldText # returns true if Fake_Bold is set ##
+# isLCDRenderText # returns true if LCD_Text is set ##
+# isSrcOver # returns true if Blend_Mode is SkBlendMode::kSrcOver ##
+# isSubpixelText # returns true if Subpixel_Text is set ##
+# isVerticalText # returns true if Vertical_Text is set ##
+# measureText # returns advance width and bounds of text ##
+# nothingToDraw # returns true if Paint prevents all drawing ##
+# refColorFilter # references Color_Filter, how colors are altered ##
+# refDrawLooper # references Draw_Looper, multiple layers ##
+# refImageFilter # references Image_Filter, alter pixels; blur ##
+# refMaskFilter # references Mask_Filter, alterations to Mask_Alpha ##
+# refPathEffect # references Path_Effect, modifications to path geometry; dashing ##
+# refShader # references Shader, multiple drawing colors; gradients ##
+# refTypeface # references Typeface, font description ##
+# reset() # sets to default values ##
+# setARGB # sets color by component ##
+# setAlpha # sets Color_Alpha, color opacity ##
+# setAntiAlias # sets or clears Anti-alias ##
+# setAutohinted # sets Glyphs to always be hinted ##
+# setBlendMode # sets Blend_Mode, how colors combine with destination ##
+# setColor # sets Color_Alpha and Color_RGB, one drawing color ##
+# setColorFilter # sets Color_Filter, alters color ##
+# setDevKernText # sets or clears Full_Hinting_Spacing ##
+# setDither # sets or clears Dither ##
+# setDrawLooper # sets Draw_Looper, multiple layers ##
+# setEmbeddedBitmapText # sets or clears Font_Embedded_Bitmaps ##
+# setFakeBoldText # sets or clears Fake_Bold ##
+# setFilterQuality # sets Filter_Quality, the image filtering level ##
+# setFlags # sets multiple Flags in a bit field ##
+# setHinting # sets Hinting, glyph outline adjustment level ##
+# setImageFilter # sets Image_Filter, alter pixels; blur ##
+# setLCDRenderText # sets or clears LCD_Text ##
+# setMaskFilter # sets Mask_Filter, alterations to Mask_Alpha ##
+# setPathEffect # sets Path_Effect, modifications to path geometry; dashing ##
+# setShader # sets Shader, multiple drawing colors; gradients ##
+# setStrokeCap # sets Cap, the area drawn at path ends ##
+# setStrokeJoin # sets Join, geometry on path corners ##
+# setStrokeMiter # sets Miter_Limit, angles with sharp corners ##
+# setStrokeWidth # sets thickness of the stroke ##
+# setStyle # sets Style: stroke, fill, or both ##
+# setSubpixelText # sets or clears Subpixel_Text ##
+# setTextAlign # sets Align: left, center, or right ##
+# setTextEncoding # sets character or glyph encoded size ##
+# setTextScaleX # sets the text horizontal scale; condensed text ##
+# setTextSize # sets text size in points ##
+# setTextSkewX # sets the text horizontal skew; oblique text ##
+# setTypeface # sets Typeface, font description ##
+# setVerticalText # sets or clears Vertical_Text ##
+# textToGlyphs # converts text into glyph indices ##
+# toString # converts Paint to machine readable form ##
+# unflatten() # populates from a serialized stream ##
#Table ##
#Subtopic ##
@@ -582,7 +594,7 @@ by the client.
#Param buffer serialized data describing Paint content ##
-#Return false if the buffer contained invalid data for initializing the paint. ##
+#Return false if the buffer contains invalid data ##
# why is unflatten() public?
#Bug 6172 ##
diff --git a/docs/SkPath_Reference.bmh b/docs/SkPath_Reference.bmh
index 7f77b8b914..17232fd528 100644
--- a/docs/SkPath_Reference.bmh
+++ b/docs/SkPath_Reference.bmh
@@ -75,25 +75,6 @@ Path contents are never shared. Copying Path by value effectively creates
a new Path independent of the original. Internally, the copy does not duplicate
its contents until it is edited, to reduce memory use and improve performance.
-#Subtopic Subtopics
-#ToDo not all methods are in topics ##
-#ToDo subtopics are not in topics ##
-#Table
-#Legend
-# topics # description ##
-#Legend ##
-#Table ##
-# Contour # A loop of lines and curves. ##
-# Convexity # Whether Path contains simple loop. ##
-# Last_Point # Final Point in Contour. ##
-# Point_Array # All Points in Path. ##
-# Verb # How Points and Contours are defined. ##
-# Verb_Array # All Verbs in Path. ##
-# Verb # How Points and Contours are defined. ##
-# Conic_Weight # Strength of control Point in Conic. ##
-#Subtopic ##
-
-
#Subtopic Contour
#Alias Contours
Contour contains one or more Verbs, and as many Points as
@@ -203,134 +184,171 @@ SkPath::updateBoundsCache to make Path thread safe.
#Topic Overview
+#Subtopic Subtopics
+#Table
+#Legend
+# name # description ##
+#Legend ##
+# Classes_and_Structs # embedded struct and class members ##
+# Constants # enum and enum class, const values ##
+# Constructors # functions that construct SkPath ##
+# Member_Functions # static functions and member methods ##
+# Operators # operator overloading methods ##
+# Related_Functions # similar methods grouped together ##
+#Table ##
+#Subtopic ##
+
+
+#Subtopic Related_Functions
+#Table
+#Legend
+# name # description ##
+#Legend ##
+# Conic # conic section defined by three points and a weight ##
+# Conic_Weight # strength of control Point in Conic ##
+# Contour # loop of lines and curves ##
+# Convexity # if Path is concave or convex ##
+# Cubic_Bezier # third order curve defined by four points ##
+# Direction # Path contour orientation ##
+# Fill_Type # Path fill rule, normal and inverted ##
+# Last_Point # final Point in Contour ##
+# Point_Array # end points and control points for lines and curves ##
+# Quadratic_Bezier # parabolic section defined by three points ##
+# Verb_Array # line and curve type for points ##
+# Verbs # Path line and curve type ##
+# Zero_Length_Contour # consideration when contour has no length ##
+#Table ##
+#Subtopic ##
+
#Subtopic Constants
#Table
#Legend
-# constants # description ##
+# name # description ##
#Legend ##
-# AddPathMode # Sets addPath options. ##
-# ArcSize # Used by arcTo(SkScalar rx, SkScalar ry, SkScalar xAxisRotate, ArcSize largeArc, Direction sweep, SkScalar x, SkScalar y).##
-# Convexity # Returns if Path is convex or concave. ##
-# Direction # Sets Contour clockwise or counterclockwise. ##
-# FillType # Sets winding rule and inverse fill. ##
-# SegmentMask # Returns Verb types in Path. ##
-# Verb # Controls how Path Points are interpreted. ##
+# AddPathMode # sets addPath options ##
+# ArcSize # used by arcTo variation ##
+# Convexity # returns if Path is convex or concave ##
+# Direction # sets Contour clockwise or counterclockwise ##
+# FillType # sets winding rule and inverse fill ##
+# SegmentMask # returns Verb types in Path ##
+# Verb # controls how Path Points are interpreted ##
#Table ##
#Subtopic ##
#Subtopic Classes_and_Structs
#Table
#Legend
-# class or struct # description ##
+# name # description ##
#Legend ##
-# Iter # Iterates through lines and curves, skipping degenerates. ##
-# RawIter # Iterates through lines and curves, including degenerates. ##
+# Iter # iterates through lines and curves, skipping degenerates ##
+# RawIter # iterates through lines and curves, including degenerates ##
#Table ##
#Subtopic ##
#Subtopic Constructors
#Table
#Legend
-# # description ##
+# name # description ##
#Legend ##
-# SkPath() # Constructs with default values. ##
-# SkPath(const SkPath& path) # Makes a shallow copy. ##
-# ~SkPath() # Decreases Reference_Count of owned objects. ##
+# SkPath() # constructs with default values ##
+# SkPath(const SkPath& path) # makes a shallow copy ##
+# ~SkPath() # decreases Reference_Count of owned objects ##
#Table ##
#Subtopic ##
#Subtopic Operators
#Table
#Legend
-# operator # description ##
+# name # description ##
#Legend ##
-# operator=(const SkPath& path) # Makes a shallow copy. ##
-# operator==(const SkPath& a, const SkPath& b) # Compares paths for equality. ##
-# operator!=(const SkPath& a, const SkPath& b) # Compares paths for inequality. ##
+# operator!=(const SkPath& a, const SkPath& b) # compares paths for inequality ##
+# operator=(const SkPath& path) # makes a shallow copy ##
+# operator==(const SkPath& a, const SkPath& b) # compares paths for equality ##
#Table ##
#Subtopic ##
#Subtopic Member_Functions
#Table
#Legend
-# function # description ##
+# name # description ##
#Legend ##
-# ConvertConicToQuads # Approximates Conic with Quad array. ##
-# ConvertToNonInverseFillType # Returns Fill_Type representing inside geometry. ##
-# IsCubicDegenerate # Returns if Cubic is very small. ##
-# IsInverseFillType # Returns if Fill_Type represents outside geometry. ##
-# IsLineDegenerate # Returns if Line is very small. ##
-# IsQuadDegenerate # Returns if Quad is very small. ##
-# addArc # Adds one Contour containing Arc. ##
-# addCircle # Adds one Contour containing Circle. ##
-# addOval # Adds one Contour containing Oval. ##
-# addPath # Adds contents of Path. ##
-# addPoly # Adds one Contour containing connected lines. ##
-# addRRect # Adds one Contour containing Round_Rect. ##
-# addRect # Adds one Contour containing Rect. ##
-# addRoundRect # Adds one Contour containing Round_Rect with common corner radii. ##
-# arcTo # Appends Arc. ##
-# close() # Makes last Contour a loop. ##
-# computeTightBounds # Returns extent of geometry. ##
-# conicTo # Appends Conic. ##
-# conservativelyContainsRect # Returns true if Rect may be inside. ##
-# contains() # Returns if Point is in fill area. ##
-# countPoints # Returns Point_Array length. ##
-# countVerbs # Returns Verb_Array length. ##
-# cubicTo # Appends Cubic. ##
-# dump() # Sends text representation using floats to standard output. ##
-# dumpHex # Sends text representation using hexadecimal to standard output. ##
-# getBounds # Returns maximum and minimum of Point_Array. ##
-# getConvexity # Returns geometry convexity, computing if necessary. ##
-# getConvexityOrUnknown # Returns geometry convexity if known. ##
-# getFillType # Returns Fill_Type: winding, even-odd, inverse. ##
-# getGenerationID # Returns unique ID. ##
-# getLastPt # Returns Last_Point. ##
-# getPoint # Returns entry from Point_Array. ##
-# getPoints # Returns Point_Array. ##
-# getSegmentMasks # Returns types in Verb_Array. ##
-# getVerbs # Returns Verb_Array. ##
-# incReserve # Hint to reserve space for additional data. ##
-# interpolate() # Interpolates between Path pair. ##
-# isConvex # Returns if geometry is convex. ##
-# isEmpty # Returns if verb count is zero. ##
-# isFinite # Returns if all Point values are finite. ##
-# isInterpolatable # Returns if pair contains equal counts of Verb_Array and Weights. ##
-# isInverseFillType # Returns if Fill_Type fills outside geometry. ##
-# isLastContourClosed # Returns if final Contour forms a loop. ##
-# isLine # Returns if describes Line. ##
-# isNestedFillRects # Returns if describes Rect pair, one inside the other. ##
-# isOval # Returns if describes Oval. ##
-# isRRect # Returns if describes Round_Rect. ##
-# isRect # Returns if describes Rect. ##
-# isValid # Returns if data is internally consistent. ##
-# isVolatile # Returns if Device should not cache. ##
-# lineTo # Appends Line. ##
-# moveTo # Starts Contour. ##
-# offset() # Translates Point_Array. ##
-# quadTo # Appends Quad. ##
-# rArcTo # Appends Arc relative to Last_Point. ##
-# rConicTo # Appends Conic relative to Last_Point. ##
-# rCubicTo # Appends Cubic relative to Last_Point. ##
-# rLineTo # Appends Line relative to Last_Point. ##
-# rMoveTo # Starts Contour relative to Last_Point. ##
-# rQuadTo # Appends Quad relative to Last_Point. ##
-# readFromMemory # Initializes from buffer. ##
-# reset() # Removes Verb_Array, Point_Array, and Weights; frees memory. ##
-# reverseAddPath # Adds contents of Path back to front. ##
-# rewind() # Removes Verb_Array, Point_Array, and Weights; leaves memory allocated. ##
-# serialize() # Copies data to buffer. ##
-# setConvexity # Sets if geometry is convex to avoid future computation. ##
-# setFillType # Sets Fill_Type: winding, even-odd, inverse. ##
-# setIsConvex # Deprecated. ##
-# setIsVolatile # Sets if Device should not cache. ##
-# setLastPt # Replaces Last_Point. ##
-# swap() # Exchanges Path pair. ##
-# toggleInverseFillType # Toggles Fill_Type between inside and outside geometry. ##
-# transform() # Applies Matrix to Point_Array and Weights. ##
-# unique() # Returns if data has single owner. ##
-# updateBoundsCache # Refreshes result of getBounds. ##
-# writeToMemory # Copies data to buffer. ##
+# ConvertConicToQuads # approximates Conic with Quad array ##
+# ConvertToNonInverseFillType # returns Fill_Type representing inside geometry ##
+# IsCubicDegenerate # returns if Cubic is very small ##
+# IsInverseFillType # returns if Fill_Type represents outside geometry ##
+# IsLineDegenerate # returns if Line is very small ##
+# IsQuadDegenerate # returns if Quad is very small ##
+# addArc # adds one Contour containing Arc ##
+# addCircle # adds one Contour containing Circle ##
+# addOval # adds one Contour containing Oval ##
+# addPath # adds contents of Path ##
+# addPoly # adds one Contour containing connected lines ##
+# addRRect # adds one Contour containing Round_Rect ##
+# addRect # adds one Contour containing Rect ##
+# addRoundRect # adds one Contour containing Round_Rect with common corner radii ##
+# arcTo # appends Arc ##
+# close() # makes last Contour a loop ##
+# computeTightBounds # returns extent of geometry ##
+# conicTo # appends Conic ##
+# conservativelyContainsRect # returns true if Rect may be inside ##
+# contains() # returns if Point is in fill area ##
+# countPoints # returns Point_Array length ##
+# countVerbs # returns Verb_Array length ##
+# cubicTo # appends Cubic ##
+# dump() # sends text representation using floats to standard output ##
+# dumpHex # sends text representation using hexadecimal to standard output ##
+# getBounds # returns maximum and minimum of Point_Array ##
+# getConvexity # returns geometry convexity, computing if necessary ##
+# getConvexityOrUnknown # returns geometry convexity if known ##
+# getFillType # returns Fill_Type: winding, even-odd, inverse ##
+# getGenerationID # returns unique ID ##
+# getLastPt # returns Last_Point ##
+# getPoint # returns entry from Point_Array ##
+# getPoints # returns Point_Array ##
+# getSegmentMasks # returns types in Verb_Array ##
+# getVerbs # returns Verb_Array ##
+# incReserve # reserves space for additional data ##
+# interpolate() # interpolates between Path pair ##
+# isConvex # returns if geometry is convex ##
+# isEmpty # returns if verb count is zero ##
+# isFinite # returns if all Point values are finite ##
+# isInterpolatable # returns if pair contains equal counts of Verb_Array and Weights ##
+# isInverseFillType # returns if Fill_Type fills outside geometry ##
+# isLastContourClosed # returns if final Contour forms a loop ##
+# isLine # returns if describes Line ##
+# isNestedFillRects # returns if describes Rect pair, one inside the other ##
+# isOval # returns if describes Oval ##
+# isRRect # returns if describes Round_Rect ##
+# isRect # returns if describes Rect ##
+# isValid # returns if data is internally consistent ##
+# isVolatile # returns if Device should not cache ##
+# lineTo # appends Line ##
+# moveTo # starts Contour ##
+# offset() # translates Point_Array ##
+# pathRefIsValid # to be deprecated ##
+# quadTo # appends Quad ##
+# rArcTo # appends Arc relative to Last_Point ##
+# rConicTo # appends Conic relative to Last_Point ##
+# rCubicTo # appends Cubic relative to Last_Point ##
+# rLineTo # appends Line relative to Last_Point ##
+# rMoveTo # starts Contour relative to Last_Point ##
+# rQuadTo # appends Quad relative to Last_Point ##
+# readFromMemory # Initializes from buffer ##
+# reset() # removes Verb_Array, Point_Array, and Weights; frees memory ##
+# reverseAddPath # adds contents of Path back to front ##
+# rewind() # removes Verb_Array, Point_Array, and Weights, keeping memory ##
+# serialize() # copies data to buffer ##
+# setConvexity # sets if geometry is convex to avoid future computation ##
+# setFillType # sets Fill_Type: winding, even-odd, inverse ##
+# setIsConvex # deprecated ##
+# setIsVolatile # sets if Device should not cache ##
+# setLastPt # replaces Last_Point ##
+# swap() # exchanges Path pair ##
+# toggleInverseFillType # toggles Fill_Type between inside and outside geometry ##
+# transform() # applies Matrix to Point_Array and Weights ##
+# unique() # returns if data has single owner ##
+# updateBoundsCache # refreshes result of getBounds ##
+# writeToMemory # copies data to buffer ##
#Table ##
#Subtopic Path_Member_Functions ##
#Topic Overview ##
@@ -3050,7 +3068,7 @@ constructions are converted to Conic data when added to Path.
#List
# <sup>1</sup> arcTo(const SkRect& oval, SkScalar startAngle, SkScalar sweepAngle, bool forceMoveTo) ##
# <sup>2</sup> parameter sets force MoveTo ##
-# <sup>3</sup> start angle must be multiple of 90 degrees. ##
+# <sup>3</sup> start angle must be multiple of 90 degrees ##
# <sup>4</sup> arcTo(SkScalar x1, SkScalar y1, SkScalar x2, SkScalar y2, SkScalar radius) ##
# <sup>5</sup> arcTo(SkScalar rx, SkScalar ry, SkScalar xAxisRotate, ArcSize largeArc,
Direction sweep, SkScalar x, SkScalar y) ##
diff --git a/docs/SkPixmap_Reference.bmh b/docs/SkPixmap_Reference.bmh
index c2b98663f6..74881545d0 100644
--- a/docs/SkPixmap_Reference.bmh
+++ b/docs/SkPixmap_Reference.bmh
@@ -19,14 +19,25 @@ to manage pixel memory; Pixel_Ref is safe across threads.
#Subtopic Subtopics
#Table
#Legend
-# topics # description ##
+# name # description ##
#Legend ##
-# Image_Info_Access # Returns all or part of Image_Info. ##
-# Initialization # Sets fields for use. ##
-# Reader # Examine pixel value. ##
-# Writer # Copy to pixel values. ##
-# Readable_Address # Returns read only pixels. ##
-# Writable_Address # Returns writable pixels. ##
+# Constructors # list of functions that construct SkPath ##
+# Member_Functions # list of static functions and member methods ##
+# Related_Functions # similar methods grouped together ##
+#Table ##
+##
+
+#Subtopic Related_Functions
+#Table
+#Legend
+# name # description ##
+#Legend ##
+# Image_Info_Access # returns all or part of Image_Info ##
+# Initialization # sets fields for use ##
+# Readable_Address # returns read only pixels ##
+# Reader # examine pixel value ##
+# Writable_Address # returns writable pixels ##
+# Writer # copy to pixel values ##
#Table ##
#Subtopic ##
@@ -35,48 +46,48 @@ to manage pixel memory; Pixel_Ref is safe across threads.
#Legend
# # description ##
#Legend ##
-# SkPixmap() # Constructs with default values. ##
-# SkPixmap(const SkImageInfo& info, const void* addr, size_t rowBytes) # Constructs from Image_Info, pixels. ##
+# SkPixmap() # constructs with default values ##
+# SkPixmap(const SkImageInfo& info, const void* addr, size_t rowBytes) # constructs from Image_Info, pixels ##
#Table ##
#Subtopic ##
#Subtopic Member_Functions
#Table
#Legend
-# function # description ##
+# name # description ##
#Legend ##
-# addr() # Returns readable pixel address as void pointer. ##
-# addr16 # Returns readable pixel address as 16-bit pointer. ##
-# addr32 # Returns readable pixel address as 32-bit pointer. ##
-# addr64 # Returns readable pixel address as 64-bit pointer. ##
-# addr8 # Returns readable pixel address as 8-bit pointer. ##
-# addrF16 # Returns readable pixel component address as 16-bit pointer. ##
-# alphaType # Returns Image_Info Alpha_Type. ##
-# bounds() # Returns width and height as Rectangle. ##
-# colorSpace # Returns Image_Info Color_Space. ##
-# colorType # Returns Image_Info Color_Type. ##
-# computeByteSize # Returns size required for pixels. ##
-# computeIsOpaque # Returns true if all pixels are opaque. ##
-# erase() # Writes Color to pixels. ##
-# extractSubset # Sets pointer to portion of original. ##
-# getColor # Returns one pixel as Unpremultiplied Color. ##
-# height() # Returns pixel row count. ##
-# info() # Returns Image_Info. ##
-# isOpaque # Returns true if Image_Info describes opaque pixels. ##
-# readPixels # Copies and converts pixels. ##
-# reset() # Reuses existing Pixmap with replacement values. ##
-# rowBytes # Returns interval between rows in bytes. ##
-# rowBytesAsPixels # Returns interval between rows in pixels. ##
-# scalePixels # Scales and converts pixels. ##
-# setColorSpace # Sets Image_Info Color_Space. ##
-# shiftPerPixel # Returns bit shift from pixels to bytes. ##
-# width() # Returns pixel column count. ##
-# writable_addr # Returns writable pixel address as void pointer. ##
-# writable_addr16 # Returns writable pixel address as 16-bit pointer. ##
-# writable_addr32 # Returns writable pixel address as 32-bit pointer. ##
-# writable_addr64 # Returns writable pixel address as 64-bit pointer. ##
-# writable_addr8 # Returns writable pixel address as 8-bit pointer. ##
-# writable_addrF16 # Returns writable pixel component address as 16-bit pointer. ##
+# addr() # returns readable pixel address as void pointer ##
+# addr16 # returns readable pixel address as 16-bit pointer ##
+# addr32 # returns readable pixel address as 32-bit pointer ##
+# addr64 # returns readable pixel address as 64-bit pointer ##
+# addr8 # returns readable pixel address as 8-bit pointer ##
+# addrF16 # returns readable pixel component address as 16-bit pointer ##
+# alphaType # returns Image_Info Alpha_Type ##
+# bounds() # returns width and height as Rectangle ##
+# colorSpace # returns Image_Info Color_Space ##
+# colorType # returns Image_Info Color_Type ##
+# computeByteSize # returns size required for pixels ##
+# computeIsOpaque # returns true if all pixels are opaque ##
+# erase() # writes Color to pixels ##
+# extractSubset # sets pointer to portion of original ##
+# getColor # returns one pixel as Unpremultiplied Color ##
+# height() # returns pixel row count ##
+# info() # returns Image_Info ##
+# isOpaque # returns true if Image_Info describes opaque pixels ##
+# readPixels # copies and converts pixels ##
+# reset() # reuses existing Pixmap with replacement values ##
+# rowBytes # returns interval between rows in bytes ##
+# rowBytesAsPixels # returns interval between rows in pixels ##
+# scalePixels # scales and converts pixels ##
+# setColorSpace # sets Image_Info Color_Space ##
+# shiftPerPixel # returns bit shift from pixels to bytes ##
+# width() # returns pixel column count ##
+# writable_addr # returns writable pixel address as void pointer ##
+# writable_addr16 # returns writable pixel address as 16-bit pointer ##
+# writable_addr32 # returns writable pixel address as 32-bit pointer ##
+# writable_addr64 # returns writable pixel address as 64-bit pointer ##
+# writable_addr8 # returns writable pixel address as 8-bit pointer ##
+# writable_addrF16 # returns writable pixel component address as 16-bit pointer ##
#Table ##
#Subtopic ##
diff --git a/docs/SkPoint_Reference.bmh b/docs/SkPoint_Reference.bmh
index 6eeb1a5703..72c73e49a4 100644
--- a/docs/SkPoint_Reference.bmh
+++ b/docs/SkPoint_Reference.bmh
@@ -15,15 +15,24 @@
#Table ##
##
+#Subtopic Constructors
+#Table
+#Legend
+# name # description ##
+#Legend ##
+# Make # Constructs from SkScalar inputs. ##
+#Table ##
+#Subtopic ##
+
#Subtopic Operators
#Table
#Legend
-# description # function ##
+# name # description ##
#Legend ##
# SkPoint operator*(SkScalar scale)_const # Returns Point multiplied by scale. ##
+# SkPoint operator+(const SkPoint& a, const SkVector& b) # Returns Point offset by Vector. ##
# SkPoint operator-()_const # Reverses sign of Point. ##
# SkPoint& operator*=(SkScalar scale) # Multiplies Point by scale factor. ##
-# SkPoint operator+(const SkPoint& a, const SkVector& b) # Returns Point offset by Vector. ##
# SkVector operator-(const SkPoint& a, const SkPoint& b) # Returns Vector between Points. ##
# bool operator!=(const SkPoint& a, const SkPoint& b) # Returns true if Point are unequal. ##
# bool operator==(const SkPoint& a, const SkPoint& b) # Returns true if Point are equal. ##
@@ -35,7 +44,7 @@
#Subtopic Member_Functions
#Table
#Legend
-# description # function ##
+# name # description ##
#Legend ##
# CrossProduct # Returns cross product. ##
# Distance # Returns straight-line distance between points. ##
diff --git a/docs/SkRect_Reference.bmh b/docs/SkRect_Reference.bmh
index 7aeb90eb52..0df650b668 100644
--- a/docs/SkRect_Reference.bmh
+++ b/docs/SkRect_Reference.bmh
@@ -22,16 +22,40 @@ integer input cannot convert to SkScalar without loss of precision.
#Legend
# topics # description ##
#Legend ##
+# Constructors # functions that construct SkPath ##
+# Member_Functions # static functions and member methods ##
+# Operators # operator overloading methods ##
#Table ##
##
+#Subtopic Constructors
+#Table
+#Legend
+# name # description ##
+#Legend ##
+# Make # constructs from ISize returning (0, 0, width, height) ##
+# MakeEmpty # constructs from bounds of (0, 0, 0, 0) ##
+# MakeFromIRect # deprecated ##
+# MakeIWH # constructs from int input returning (0, 0, width, height) ##
+# MakeLTRB # constructs from SkScalar left, top, right, bottom ##
+# MakeLargest # deprecated ##
+# MakeSize # constructs from Size returning (0, 0, width, height) ##
+# MakeWH # constructs from SkScalar input returning (0, 0, width, height) ##
+# MakeXYWH # constructs from SkScalar input returning (x, y, width, height) ##
+# makeInset # constructs from sides moved symmetrically about the center ##
+# makeOffset # constructs from translated sides ##
+# makeOutset # constructs from sides moved symmetrically about the center ##
+# makeSorted # constructs, ordering sides from smaller to larger ##
+#Table ##
+#Subtopic ##
+
#Subtopic Operators
#Table
#Legend
# description # function ##
#Legend ##
-# bool operator!=(const SkRect& a, const SkRect& b) # Returns true if members are unequal. ##
-# bool operator==(const SkRect& a, const SkRect& b) # Returns true if members are equal. ##
+# bool operator!=(const SkRect& a, const SkRect& b) # returns true if members are unequal ##
+# bool operator==(const SkRect& a, const SkRect& b) # returns true if members are equal ##
#Table ##
#Subtopic ##
@@ -40,59 +64,60 @@ integer input cannot convert to SkScalar without loss of precision.
#Legend
# description # function ##
#Legend ##
-# Intersects # Returns true if areas overlap. ##
-# Make # Constructs from ISize returning (0, 0, width, height). ##
-# MakeEmpty # Constructs from bounds of (0, 0, 0, 0). ##
-# MakeFromIRect # Deprecated. ##
-# MakeIWH # Constructs from int input returning (0, 0, width, height). ##
-# MakeLTRB # Constructs from SkScalar left, top, right, bottom. ##
-# MakeSize # Constructs from Size returning (0, 0, width, height). ##
-# MakeWH # Constructs from SkScalar input returning (0, 0, width, height). ##
-# MakeXYWH # Constructs from SkScalar input returning (x, y, width, height). ##
-# asScalars # Returns pointer to members as array. ##
-# bottom() # Returns larger bounds in y, if sorted. ##
-# centerX # Returns midpoint in x. ##
-# centerY # Returns midpoint in y. ##
-# contains() # Returns true if points are equal or inside. ##
-# dump() # Sends text representation using floats to standard output. ##
-# dumpHex # Sends text representation using hexadecimal to standard output. ##
-# height # Returns span in y. ##
-# inset() # Moves the sides symmetrically about the center. ##
-# intersect() # Sets to shared area; returns true if not empty. ##
-# intersects() # Returns true if areas overlap. ##
-# isEmpty # Returns true if width or height are zero or negative. ##
-# isFinite # Returns true if no member is infinite or NaN. ##
-# isSorted # Returns true if width or height are zero or positive. ##
-# iset() # Sets to int input (left, top, right, bottom). ##
-# isetWH # Sets to int input (0, 0, width, height). ##
-# join() # Sets to union of bounds. ##
-# joinNonEmptyArg # Sets to union of bounds, asserting that argument is not empty. ##
-# joinPossiblyEmptyRect # Sets to union of bounds. Skips empty check for both. ##
-# left() # Returns smaller bounds in x, if sorted. ##
-# makeInset # Constructs from sides moved symmetrically about the center. ##
-# makeOffset # Constructs from translated sides. ##
-# makeOutset # Constructs from sides moved symmetrically about the center. ##
-# makeSorted # Constructs, ordering sides from smaller to larger. ##
-# offset() # Translates sides without changing width and height. ##
-# offsetTo # Translates to (x, y) without changing width and height. ##
-# outset() # Moves the sides symmetrically about the center. ##
-# right() # Returns larger bounds in x, if sorted. ##
-# round() # Sets members to nearest integer value. ##
-# roundIn # Sets members to nearest integer value towards opposite. ##
-# roundOut # Sets members to nearest integer value away from opposite. ##
-# set() # Sets to SkScalar input (left, top, right, bottom) and others. ##
-# setBounds # Sets to upper and lower limits of Point array. ##
-# setBoundsCheck # Sets to upper and lower limits of Point array. ##
-# setEmpty # Sets to (0, 0, 0, 0). ##
-# setLTRB # Sets to SkScalar input (left, top, right, bottom). ##
-# setWH # Sets to SkScalar input (0, 0, width, height). ##
-# setXYWH # Sets to SkScalar input (x, y, width, height). ##
-# sort() # Orders sides from smaller to larger. ##
-# toQuad # Returns four corners as Point. ##
-# top() # Returns smaller bounds in y, if sorted. ##
-# width() # Returns span in x. ##
-# x() # Returns bounds left. ##
-# y() # Returns bounds top. ##
+# Intersects # returns true if areas overlap ##
+# Make # constructs from ISize returning (0, 0, width, height) ##
+# MakeEmpty # constructs from bounds of (0, 0, 0, 0) ##
+# MakeFromIRect # deprecated ##
+# MakeIWH # constructs from int input returning (0, 0, width, height) ##
+# MakeLTRB # constructs from SkScalar left, top, right, bottom ##
+# MakeLargest # deprecated ##
+# MakeSize # constructs from Size returning (0, 0, width, height) ##
+# MakeWH # constructs from SkScalar input returning (0, 0, width, height) ##
+# MakeXYWH # constructs from SkScalar input returning (x, y, width, height) ##
+# asScalars # returns pointer to members as array ##
+# bottom() # returns larger bounds in y, if sorted ##
+# centerX # returns midpoint in x ##
+# centerY # returns midpoint in y ##
+# contains() # returns true if points are equal or inside ##
+# dump() # sends text representation to standard output using floats ##
+# dumpHex # sends text representation to standard output using hexadecimal ##
+# height() # returns span in y ##
+# inset() # moves the sides symmetrically about the center ##
+# intersect() # sets to shared area; returns true if not empty ##
+# intersects() # returns true if areas overlap ##
+# isEmpty # returns true if width or height are zero or negative ##
+# isFinite # returns true if no member is infinite or NaN ##
+# isSorted # returns true if width or height are zero or positive ##
+# iset() # sets to int input (left, top, right, bottom) ##
+# isetWH # sets to int input (0, 0, width, height) ##
+# join() # sets to union of bounds ##
+# joinNonEmptyArg # sets to union of bounds, asserting that argument is not empty ##
+# joinPossiblyEmptyRect # sets to union of bounds. Skips empty check for both ##
+# left() # returns smaller bounds in x, if sorted ##
+# makeInset # constructs from sides moved symmetrically about the center ##
+# makeOffset # constructs from translated sides ##
+# makeOutset # constructs from sides moved symmetrically about the center ##
+# makeSorted # constructs, ordering sides from smaller to larger ##
+# offset() # translates sides without changing width and height ##
+# offsetTo # translates to (x, y) without changing width and height ##
+# outset() # moves the sides symmetrically about the center ##
+# right() # returns larger bounds in x, if sorted ##
+# round() # sets members to nearest integer value ##
+# roundIn # sets members to nearest integer value towards opposite ##
+# roundOut # sets members to nearest integer value away from opposite ##
+# set() # sets to SkScalar input (left, top, right, bottom) and others ##
+# setBounds # sets to upper and lower limits of Point array ##
+# setBoundsCheck # sets to upper and lower limits of Point array ##
+# setEmpty # sets to (0, 0, 0, 0) ##
+# setLTRB # sets to SkScalar input (left, top, right, bottom) ##
+# setWH # sets to SkScalar input (0, 0, width, height) ##
+# setXYWH # sets to SkScalar input (x, y, width, height) ##
+# sort() # orders sides from smaller to larger ##
+# toQuad # returns four corners as Point ##
+# top() # returns smaller bounds in y, if sorted ##
+# width() # returns span in x ##
+# x() # returns bounds left ##
+# y() # returns bounds top ##
#Table ##
#Subtopic ##
diff --git a/docs/SkSurface_Reference.bmh b/docs/SkSurface_Reference.bmh
index 3ab33c7d22..164570d422 100644
--- a/docs/SkSurface_Reference.bmh
+++ b/docs/SkSurface_Reference.bmh
@@ -18,41 +18,62 @@ of the requested dimensions are zero, then nullptr will be returned.
#Legend
# topics # description ##
#Legend ##
+# Constructors # functions that construct SkIPoint16 ##
+# Member_Functions # static functions and member methods ##
#Table ##
##
+#Subtopic Constructors
+#Table
+#Legend
+# name # description ##
+#Legend ##
+# MakeFromBackendRenderTarget # creates Surface from GPU memory buffer ##
+# MakeFromBackendTexture # creates Surface from GPU-backed texture ##
+# MakeFromBackendTextureAsRenderTarget # creates Surface from GPU-backed texture ##
+# MakeNull # creates Surface without backing pixels ##
+# MakeRaster # creates Surface from SkImageInfo ##
+# MakeRasterDirect # creates Surface from SkImageInfo and Pixel_Storage ##
+# MakeRasterDirectReleaseProc # creates Surface from SkImageInfo and Pixel_Storage ##
+# MakeRasterN32Premul # creates Surface from width, height matching output ##
+# MakeRenderTarget # creates Surface pointing to new GPU memory buffer ##
+# SkCanvas::makeSurface # creates Surface matching Canvas Image_Info, Surface_Properties ##
+# makeSurface # creates a compatible Surface ##
+#Table ##
+#Subtopic ##
+
#Subtopic Member_Functions
#Table
#Legend
# description # function ##
#Legend ##
-# MakeFromBackendRenderTarget # Creates Surface from GPU memory buffer. ##
-# MakeFromBackendTexture # Creates Surface from GPU-backed texture. ##
-# MakeFromBackendTextureAsRenderTarget # Creates Surface from GPU-backed texture. ##
-# MakeNull # Creates Surface without backing pixels. ##
-# MakeRaster # Creates Surface from SkImageInfo. ##
-# MakeRasterDirect # Creates Surface from SkImageInfo and Pixel_Storage. ##
-# MakeRasterDirectReleaseProc # Creates Surface from SkImageInfo and Pixel_Storage. ##
-# MakeRasterN32Premul # Creates Surface from width, height matching output. ##
-# MakeRenderTarget # Creates Surface pointing to new GPU memory buffer. ##
-# characterize() # Set up Surface_Characterization for threaded pre-processing. ##
-# draw() # Draws Surface contents to canvas. ##
-# flush() # Resolve pending I/O. ##
-# flushAndSignalSemaphores # Resolve pending I/O, and signal. ##
-# generationID # Returns unique ID. ##
-# getCanvas # Returns Canvas that draws into Surface. ##
-# getRenderTargetHandle # Returns the GPU reference to render target. ##
-# getTextureHandle # Returns the GPU reference to texture. ##
-# height() # Returns pixel row count. ##
-# makeImageSnapshot # Returns Image capturing Surface contents. ##
-# makeSurface # Returns a compatible Surface. ##
-# notifyContentWillChange # Notifies that contents will be changed outside of Skia. ##
-# peekPixels # Copies Surface parameters to Pixmap. ##
-# prepareForExternalIO # To be deprecated. ##
-# props() # Returns Surface_Properties. ##
-# readPixels # Copies Rect of pixels. ##
-# wait() # Pause commands until signaled. ##
-# width() # Returns pixel column count. ##
+# MakeFromBackendRenderTarget # creates Surface from GPU memory buffer ##
+# MakeFromBackendTexture # creates Surface from GPU-backed texture ##
+# MakeFromBackendTextureAsRenderTarget # creates Surface from GPU-backed texture ##
+# MakeNull # creates Surface without backing pixels ##
+# MakeRaster # creates Surface from SkImageInfo ##
+# MakeRasterDirect # creates Surface from SkImageInfo and Pixel_Storage ##
+# MakeRasterDirectReleaseProc # creates Surface from SkImageInfo and Pixel_Storage ##
+# MakeRasterN32Premul # creates Surface from width, height matching output ##
+# MakeRenderTarget # creates Surface pointing to new GPU memory buffer ##
+# characterize() # sets Surface_Characterization for threaded pre-processing ##
+# draw() # draws Surface contents to canvas ##
+# flush() # resolve pending I/O ##
+# flushAndSignalSemaphores # resolve pending I/O, and signal ##
+# generationID # returns unique ID ##
+# getCanvas # returns Canvas that draws into Surface ##
+# getRenderTargetHandle # returns the GPU reference to render target ##
+# getTextureHandle # returns the GPU reference to texture ##
+# height() # returns pixel row count ##
+# makeImageSnapshot # creates Image capturing Surface contents ##
+# makeSurface # creates a compatible Surface ##
+# notifyContentWillChange # notifies that contents will be changed outside of Skia ##
+# peekPixels # copies Surface parameters to Pixmap ##
+# prepareForExternalIO # to be deprecated ##
+# props() # returns Surface_Properties ##
+# readPixels # copies Rect of pixels ##
+# wait() # rause commands until signaled ##
+# width() # returns pixel column count ##
#Table ##
#Subtopic ##
diff --git a/docs/status.json b/docs/status.json
index 43be98cdf3..3aeea76992 100644
--- a/docs/status.json
+++ b/docs/status.json
@@ -14,6 +14,7 @@
]
},
"docs": [
+ "SkAutoCanvasRestore_Reference.bmh",
"SkCanvas_Reference.bmh",
"SkIPoint16_Reference.bmh",
"SkPaint_Reference.bmh",
diff --git a/site/user/api/SkAutoCanvasRestore_Reference.md b/site/user/api/SkAutoCanvasRestore_Reference.md
new file mode 100644
index 0000000000..8e39b36c85
--- /dev/null
+++ b/site/user/api/SkAutoCanvasRestore_Reference.md
@@ -0,0 +1,113 @@
+SkAutoCanvasRestore Reference
+===
+
+# <a name="Automatic_Canvas_Restore"></a> Automatic Canvas Restore
+
+# <a name="SkAutoCanvasRestore"></a> Class SkAutoCanvasRestore
+Stack helper class calls
+
+# <a name="Overview"></a> Overview
+
+## <a name="Subtopics"></a> Subtopics
+
+| name | description |
+| --- | --- |
+| <a href="SkAutoCanvasRestore_Reference#Automatic_Canvas_Restore_Overview_Constructors">Constructors</a> | functions that construct <a href="#SkAutoCanvasRestore">SkAutoCanvasRestore</a> |
+| <a href="SkAutoCanvasRestore_Reference#Automatic_Canvas_Restore_Overview_Member_Functions">Member Functions</a> | static functions and member methods |
+
+## <a name="Constructors"></a> Constructors
+
+| name | description |
+| --- | --- |
+| <a href="#SkAutoCanvasRestore_SkCanvas_star">SkAutoCanvasRestore(SkCanvas* canvas, bool doSave)</a> | Preserves <a href="SkCanvas_Reference#Canvas">Canvas</a> save count. |
+| | Restores <a href="SkCanvas_Reference#Canvas">Canvas</a> to saved state. |
+
+## <a name="Member_Functions"></a> Member Functions
+
+| name | description |
+| --- | --- |
+| <a href="#SkAutoCanvasRestore_restore">restore</a> | Restores <a href="SkCanvas_Reference#Canvas">Canvas</a> to saved state. |
+
+<a name="SkAutoCanvasRestore_SkCanvas_star"></a>
+## SkAutoCanvasRestore
+
+<pre style="padding: 1em 1em 1em 1em;width: 62.5em; background-color: #f0f0f0">
+SkAutoCanvasRestore(SkCanvas* canvas, bool doSave)
+</pre>
+
+Preserves <a href="SkCanvas_Reference#Canvas">Canvas</a> save count. Optionally saves <a href="#Clip">Canvas Clip</a> and <a href="#Matrix">Canvas 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>
+ </tr> <tr> <td><a name="SkAutoCanvasRestore_SkCanvas_star_doSave"> <code><strong>doSave </strong></code> </a></td> <td>
+call <a href="#SkCanvas_save">SkCanvas::save()</a></td>
+ </tr>
+</table>
+
+### Return Value
+
+utility to <a href="#SkAutoCanvasRestore_restore">restore</a> <a href="SkCanvas_Reference#Canvas">Canvas</a> state on destructor
+
+### Example
+
+<div><fiddle-embed name="466ef576b88e29d7252422db7adeed1c"></fiddle-embed></div>
+
+### See Also
+
+<a href="#SkCanvas_save">SkCanvas::save</a> <a href="#SkCanvas_restore">SkCanvas::restore</a>
+
+---
+
+<a name="SkAutoCanvasRestore_destructor"></a>
+## ~SkAutoCanvasRestore
+
+<pre style="padding: 1em 1em 1em 1em;width: 62.5em; background-color: #f0f0f0">
+~SkAutoCanvasRestore()
+</pre>
+
+Restores <a href="SkCanvas_Reference#Canvas">Canvas</a> to saved state. Destructor is called when container goes out of
+scope.
+
+### See Also
+
+<a href="#SkCanvas_save">SkCanvas::save</a> <a href="#SkCanvas_restore">SkCanvas::restore</a>
+
+---
+
+<a name="SkAutoCanvasRestore_restore"></a>
+## restore
+
+<pre style="padding: 1em 1em 1em 1em;width: 62.5em; background-color: #f0f0f0">
+void restore()
+</pre>
+
+Restores <a href="SkCanvas_Reference#Canvas">Canvas</a> to saved state immediately. Subsequent calls and
+
+### Example
+
+<div><fiddle-embed name="9f459b218ec079c1ada23f4412968f9a">
+
+#### Example Output
+
+~~~~
+saveCanvas: false before restore: 2
+saveCanvas: false after restore: 2
+saveCanvas: true before restore: 2
+saveCanvas: true after restore: 2
+saveCanvas: false before restore: 2
+saveCanvas: false after restore: 1
+saveCanvas: true before restore: 2
+saveCanvas: true after restore: 1
+final count: 1
+~~~~
+
+</fiddle-embed></div>
+
+### See Also
+
+<a href="#SkCanvas_save">SkCanvas::save</a> <a href="#SkCanvas_restore">SkCanvas::restore</a>
+
+---
+
diff --git a/site/user/api/SkBitmap_Reference.md b/site/user/api/SkBitmap_Reference.md
index 4de5c7b6ac..a624fb1f55 100644
--- a/site/user/api/SkBitmap_Reference.md
+++ b/site/user/api/SkBitmap_Reference.md
@@ -35,101 +35,105 @@ is useful to position one or more <a href="#Bitmap">Bitmaps</a> within a shared
## <a name="Subtopics"></a> Subtopics
-| topics | description |
+| name | description |
| --- | --- |
+| <a href="#Overview_Classes_and_Structs">Classes and Structs</a> | embedded struct and class members |
+| <a href="#Overview_Constructors">Constructors</a> | functions that construct <a href="SkPath_Reference#SkPath">SkPath</a> |
+| <a href="#Overview_Member_Functions">Member Functions</a> | static functions and member methods |
+| <a href="#Overview_Operators">Operators</a> | operator overloading methods |
-## <a name="Structs"></a> Structs
+## <a name="Classes_and_Structs"></a> Classes and Structs
-| description | struct |
+| name | description |
| --- | --- |
| <a href="#SkBitmap_Allocator">Allocator</a> | |
| <a href="#SkBitmap_HeapAllocator">HeapAllocator</a> | |
## <a name="Constructors"></a> Constructors
-| description | function |
+| name | description |
| --- | --- |
-| <a href="#SkBitmap_empty_constructor">SkBitmap()</a> | Constructs with default values. |
-| <a href="#SkBitmap_move_SkBitmap">SkBitmap(SkBitmap&& src)</a> | Takes ownership of pixels. |
-| <a href="#SkBitmap_copy_const_SkBitmap">SkBitmap(const SkBitmap& src)</a> | Shares ownership of pixels. |
-| | Releases ownership of pixels. |
+| <a href="#SkBitmap_empty_constructor">SkBitmap()</a> | constructs with default values |
+| <a href="#SkBitmap_move_SkBitmap">SkBitmap(SkBitmap&& src)</a> | takes ownership of pixels |
+| <a href="#SkBitmap_copy_const_SkBitmap">SkBitmap(const SkBitmap& src)</a> | shares ownership of pixels |
+| | releases ownership of pixels |
## <a name="Operators"></a> Operators
-| description | function |
+| name | description |
| --- | --- |
-| <a href="#SkBitmap">SkBitmap</a>& <a href="#SkBitmap_move_operator">operator=(SkBitmap&& src)</a> | Takes ownership of pixels. |
-| <a href="#SkBitmap">SkBitmap</a>& <a href="#SkBitmap_copy_operator">operator=(const SkBitmap& src)</a> | Shares ownership of pixels. |
+| <a href="#SkBitmap">SkBitmap</a>& <a href="#SkBitmap_move_operator">operator=(SkBitmap&& src)</a> | takes ownership of pixels |
+| <a href="#SkBitmap">SkBitmap</a>& <a href="#SkBitmap_copy_operator">operator=(const SkBitmap& src)</a> | shares ownership of pixels |
## <a name="Member_Functions"></a> Member Functions
-| description | function |
+| name | description |
| --- | --- |
-| <a href="#SkBitmap_ComputeIsOpaque">ComputeIsOpaque</a> | Returns true if all pixels are opaque. |
-| <a href="#SkBitmap_allocN32Pixels">allocN32Pixels</a> | Allocates compatible <a href="#ARGB">Color ARGB</a> pixels, or aborts. |
-| <a href="#SkBitmap_allocPixels">allocPixels</a> | Allocates pixels from <a href="undocumented#Image_Info">Image Info</a>, or aborts. |
-| <a href="#SkBitmap_allocPixelsFlags">allocPixelsFlags</a> | Allocates pixels from <a href="undocumented#Image_Info">Image Info</a> with options, or aborts. |
-| <a href="#SkBitmap_alphaType">alphaType</a> | Returns <a href="undocumented#Image_Info">Image Info</a> <a href="undocumented#Image_Alpha_Type">Alpha Type</a>. |
-| <a href="#SkBitmap_bounds">bounds</a> | Returns <a href="#SkBitmap_width">width</a> and <a href="#SkBitmap_height">height</a> as Rectangle. |
-| <a href="#SkBitmap_bytesPerPixel">bytesPerPixel</a> | Returns number of bytes in pixel based on <a href="undocumented#Image_Color_Type">Color Type</a>. |
-| <a href="#SkBitmap_colorSpace">colorSpace</a> | Returns <a href="undocumented#Image_Info">Image Info</a> <a href="undocumented#Color_Space">Color Space</a>. |
-| <a href="#SkBitmap_colorType">colorType</a> | Returns <a href="undocumented#Image_Info">Image Info</a> <a href="undocumented#Image_Color_Type">Color Type</a>. |
-| <a href="#SkBitmap_computeByteSize">computeByteSize</a> | Returns size required for pixels. |
-| <a href="#SkBitmap_dimensions">dimensions</a> | Returns <a href="#SkBitmap_width">width</a> and <a href="#SkBitmap_height">height</a>. |
-| <a href="#SkBitmap_drawsNothing">drawsNothing</a> | Returns true if no <a href="#SkBitmap_width">width</a>, no <a href="#SkBitmap_height">height</a>, or no <a href="undocumented#Pixel_Ref">Pixel Ref</a>. |
-| <a href="#SkBitmap_empty">empty</a> | Returns true if <a href="undocumented#Image_Info">Image Info</a> has zero <a href="#SkBitmap_width">width</a> or <a href="#SkBitmap_height">height</a>. |
-| <a href="#SkBitmap_erase">erase</a> | Writes <a href="undocumented#Color">Color</a> to rectangle of pixels. |
-| <a href="#SkBitmap_eraseARGB">eraseARGB</a> | Writes <a href="undocumented#Color">Color</a> to pixels. |
-| <a href="#SkBitmap_eraseArea">eraseArea</a> | Deprecated |
-| <a href="#SkBitmap_eraseColor">eraseColor</a> | Writes <a href="undocumented#Color">Color</a> to pixels. |
-| <a href="#SkBitmap_eraseRGB">eraseRGB</a> | Deprecated |
-| <a href="#SkBitmap_extractAlpha">extractAlpha</a> | Creates <a href="#Bitmap">Bitmap</a> containing <a href="#Alpha">Alpha</a> of pixels. |
-| <a href="#SkBitmap_extractSubset">extractSubset</a> | Creates <a href="#Bitmap">Bitmap</a>, sharing pixels if possible. |
-| <a href="#SkBitmap_getAddr">getAddr</a> | Returns readable pixel address as void pointer. |
-| <a href="#SkBitmap_getAddr16">getAddr16</a> | Returns readable pixel address as 16-bit pointer. |
-| <a href="#SkBitmap_getAddr32">getAddr32</a> | Returns readable pixel address as 32-bit pointer. |
-| <a href="#SkBitmap_getAddr8">getAddr8</a> | Returns readable pixel address as 8-bit pointer. |
-| <a href="#SkBitmap_getBounds">getBounds</a> | Returns <a href="#SkBitmap_width">width</a> and <a href="#SkBitmap_height">height</a> as Rectangle. |
-| <a href="#SkBitmap_getColor">getColor</a> | Returns one pixel as <a href="#Unpremultiply">Unpremultiplied</a> <a href="undocumented#Color">Color</a>. |
-| <a href="#SkBitmap_getGenerationID">getGenerationID</a> | Returns unique ID. |
-| <a href="#SkBitmap_getPixels">getPixels</a> | Returns address of pixels. |
-| <a href="#SkBitmap_getSubset">getSubset</a> | Returns <a href="#SkBitmap_bounds">bounds</a> offset by origin. |
-| <a href="#SkBitmap_hasHardwareMipMap">hasHardwareMipMap</a> | Returns <a href="undocumented#Mip_Map">Mip Map</a> support present; Android only. |
-| <a href="#SkBitmap_height">height</a> | Returns pixel row count. |
-| <a href="#SkBitmap_info">info</a> | Returns <a href="undocumented#Image_Info">Image Info</a>. |
-| <a href="#SkBitmap_installMaskPixels">installMaskPixels</a> | Creates <a href="undocumented#Pixel_Ref">Pixel Ref</a> from <a href="undocumented#Mask">Mask</a>. |
-| <a href="#SkBitmap_installPixels">installPixels</a> | Creates <a href="undocumented#Pixel_Ref">Pixel Ref</a>, with optional release function. |
-| <a href="#SkBitmap_isImmutable">isImmutable</a> | Returns true if pixels will not change. |
-| <a href="#SkBitmap_isNull">isNull</a> | Returns true if <a href="undocumented#Pixel_Ref">Pixel Ref</a> is nullptr. |
-| <a href="#SkBitmap_isOpaque">isOpaque</a> | Returns true if <a href="undocumented#Image_Info">Image Info</a> describes opaque pixels. |
-| <a href="#SkBitmap_isVolatile">isVolatile</a> | Returns true if pixels should not be cached. |
-| <a href="#SkBitmap_notifyPixelsChanged">notifyPixelsChanged</a> | Marks pixels as changed, altering the unique ID. |
-| <a href="#SkBitmap_peekPixels">peekPixels</a> | Returns <a href="SkPixmap_Reference#Pixmap">Pixmap</a> if possible. |
-| <a href="#SkBitmap_pixelRef">pixelRef</a> | Returns <a href="undocumented#Pixel_Ref">Pixel Ref</a>, or nullptr. |
-| <a href="#SkBitmap_pixelRefOrigin">pixelRefOrigin</a> | Returns offset within <a href="undocumented#Pixel_Ref">Pixel Ref</a>. |
-| <a href="#SkBitmap_pixmap">pixmap</a> | Returns <a href="SkPixmap_Reference#Pixmap">Pixmap</a>. |
-| <a href="#SkBitmap_readPixels">readPixels</a> | Copies and converts pixels. |
-| <a href="#SkBitmap_readyToDraw">readyToDraw</a> | Returns true if address of pixels is not nullptr. |
-| <a href="#SkBitmap_refColorSpace">refColorSpace</a> | Returns <a href="undocumented#Image_Info">Image Info</a> <a href="undocumented#Color_Space">Color Space</a>. |
-| <a href="#SkBitmap_reset">reset</a> | Sets to default values, releases pixel ownership. |
-| <a href="#SkBitmap_rowBytes">rowBytes</a> | Returns interval between rows in bytes. |
-| <a href="#SkBitmap_rowBytesAsPixels">rowBytesAsPixels</a> | Returns interval between rows in pixels. |
-| <a href="#SkBitmap_setAlphaType">setAlphaType</a> | Sets <a href="undocumented#Image_Alpha_Type">Alpha Type</a> of shared pixels. |
-| <a href="#SkBitmap_setHasHardwareMipMap">setHasHardwareMipMap</a> | Sets <a href="undocumented#Mip_Map">Mip Map</a> support present; Android only. |
-| <a href="#SkBitmap_setImmutable">setImmutable</a> | Marks that pixels will not change. |
-| <a href="#SkBitmap_setInfo">setInfo</a> | Sets <a href="#SkBitmap_height">height</a>, <a href="#SkBitmap_width">width</a>, <a href="undocumented#Image_Color_Type">Color Type</a>, and so on, releasing pixels. |
-| <a href="#SkBitmap_setIsVolatile">setIsVolatile</a> | Marks if pixels should not be cached. |
-| <a href="#SkBitmap_setPixelRef">setPixelRef</a> | Sets <a href="undocumented#Pixel_Ref">Pixel Ref</a> and offset. |
-| <a href="#SkBitmap_setPixels">setPixels</a> | Sets <a href="undocumented#Pixel_Ref">Pixel Ref</a> without an offset. |
-| <a href="#SkBitmap_shiftPerPixel">shiftPerPixel</a> | Returns bit shift from pixels to bytes. |
-| <a href="#SkBitmap_swap">swap</a> | Exchanges <a href="#Bitmap">Bitmap</a> pair. |
-| <a href="#SkBitmap_toString">toString</a> | Converts <a href="#Bitmap">Bitmap</a> to machine readable form. |
-| <a href="#SkBitmap_tryAllocN32Pixels">tryAllocN32Pixels</a> | Allocates compatible <a href="#ARGB">Color ARGB</a> pixels if possible. |
-| <a href="#SkBitmap_tryAllocPixels">tryAllocPixels</a> | Allocates pixels from <a href="undocumented#Image_Info">Image Info</a> if possible. |
-| <a href="#SkBitmap_tryAllocPixelsFlags">tryAllocPixelsFlags</a> | Allocates pixels from <a href="undocumented#Image_Info">Image Info</a> with options if possible. |
-| <a href="#SkBitmap_validate">validate</a> | Asserts if <a href="#Bitmap">Bitmap</a> is invalid (debug only). |
-| <a href="#SkBitmap_width">width</a> | Returns pixel column count. |
-| <a href="#SkBitmap_writePixels">writePixels</a> | Copies and converts pixels. |
+| <a href="#SkBitmap_ComputeIsOpaque">ComputeIsOpaque</a> | returns true if all pixels are opaque |
+| <a href="#SkBitmap_allocN32Pixels">allocN32Pixels</a> | allocates compatible <a href="#ARGB">Color ARGB</a> pixels, or aborts |
+| <a href="#SkBitmap_allocPixels">allocPixels</a> | allocates pixels from <a href="undocumented#Image_Info">Image Info</a>, or aborts |
+| <a href="#SkBitmap_allocPixelsFlags">allocPixelsFlags</a> | allocates pixels from <a href="undocumented#Image_Info">Image Info</a> with options, or aborts |
+| <a href="#SkBitmap_alphaType">alphaType</a> | returns <a href="undocumented#Image_Info">Image Info</a> <a href="undocumented#Image_Alpha_Type">Alpha Type</a> |
+| <a href="#SkBitmap_bounds">bounds</a> | returns <a href="#SkBitmap_width">width</a> and <a href="#SkBitmap_height">height</a> as Rectangle |
+| <a href="#SkBitmap_bytesPerPixel">bytesPerPixel</a> | returns number of bytes in pixel based on <a href="undocumented#Image_Color_Type">Color Type</a> |
+| <a href="#SkBitmap_colorSpace">colorSpace</a> | returns <a href="undocumented#Image_Info">Image Info</a> <a href="undocumented#Color_Space">Color Space</a> |
+| <a href="#SkBitmap_colorType">colorType</a> | returns <a href="undocumented#Image_Info">Image Info</a> <a href="undocumented#Image_Color_Type">Color Type</a> |
+| <a href="#SkBitmap_computeByteSize">computeByteSize</a> | returns size required for pixels |
+| <a href="#SkBitmap_dimensions">dimensions</a> | returns <a href="#SkBitmap_width">width</a> and <a href="#SkBitmap_height">height</a> |
+| <a href="#SkBitmap_drawsNothing">drawsNothing</a> | returns true if no <a href="#SkBitmap_width">width</a>, no <a href="#SkBitmap_height">height</a>, or no <a href="undocumented#Pixel_Ref">Pixel Ref</a> |
+| <a href="#SkBitmap_empty">empty</a> | returns true if <a href="undocumented#Image_Info">Image Info</a> has zero <a href="#SkBitmap_width">width</a> or <a href="#SkBitmap_height">height</a> |
+| <a href="#SkBitmap_erase">erase</a> | writes <a href="undocumented#Color">Color</a> to rectangle of pixels |
+| <a href="#SkBitmap_eraseARGB">eraseARGB</a> | writes <a href="undocumented#Color">Color</a> to pixels |
+| <a href="#SkBitmap_eraseArea">eraseArea</a> | deprecated |
+| <a href="#SkBitmap_eraseColor">eraseColor</a> | writes <a href="undocumented#Color">Color</a> to pixels |
+| <a href="#SkBitmap_eraseRGB">eraseRGB</a> | deprecated |
+| <a href="#SkBitmap_extractAlpha">extractAlpha</a> | creates <a href="#Bitmap">Bitmap</a> containing <a href="#Alpha">Alpha</a> of pixels |
+| <a href="#SkBitmap_extractSubset">extractSubset</a> | creates <a href="#Bitmap">Bitmap</a>, sharing pixels if possible |
+| <a href="#SkBitmap_getAddr">getAddr</a> | returns readable pixel address as void pointer |
+| <a href="#SkBitmap_getAddr16">getAddr16</a> | returns readable pixel address as 16-bit pointer |
+| <a href="#SkBitmap_getAddr32">getAddr32</a> | returns readable pixel address as 32-bit pointer |
+| <a href="#SkBitmap_getAddr8">getAddr8</a> | returns readable pixel address as 8-bit pointer |
+| <a href="#SkBitmap_getBounds">getBounds</a> | returns <a href="#SkBitmap_width">width</a> and <a href="#SkBitmap_height">height</a> as Rectangle |
+| <a href="#SkBitmap_getColor">getColor</a> | returns one pixel as <a href="#Unpremultiply">Unpremultiplied</a> <a href="undocumented#Color">Color</a> |
+| <a href="#SkBitmap_getGenerationID">getGenerationID</a> | returns unique ID |
+| <a href="#SkBitmap_getPixels">getPixels</a> | returns address of pixels |
+| <a href="#SkBitmap_getSubset">getSubset</a> | returns <a href="#SkBitmap_bounds">bounds</a> offset by origin |
+| <a href="#SkBitmap_hasHardwareMipMap">hasHardwareMipMap</a> | returns <a href="undocumented#Mip_Map">Mip Map</a> support present; Android only |
+| <a href="#SkBitmap_height">height</a> | returns pixel row count |
+| <a href="#SkBitmap_info">info</a> | returns <a href="undocumented#Image_Info">Image Info</a> |
+| <a href="#SkBitmap_installMaskPixels">installMaskPixels</a> | creates <a href="undocumented#Pixel_Ref">Pixel Ref</a> from <a href="undocumented#Mask">Mask</a> |
+| <a href="#SkBitmap_installPixels">installPixels</a> | creates <a href="undocumented#Pixel_Ref">Pixel Ref</a>, with optional release function |
+| <a href="#SkBitmap_isImmutable">isImmutable</a> | returns true if pixels will not change |
+| <a href="#SkBitmap_isNull">isNull</a> | returns true if <a href="undocumented#Pixel_Ref">Pixel Ref</a> is nullptr |
+| <a href="#SkBitmap_isOpaque">isOpaque</a> | returns true if <a href="undocumented#Image_Info">Image Info</a> describes opaque pixels |
+| <a href="#SkBitmap_isVolatile">isVolatile</a> | returns true if pixels should not be cached |
+| <a href="#SkBitmap_notifyPixelsChanged">notifyPixelsChanged</a> | marks pixels as changed, altering the unique ID |
+| <a href="#SkBitmap_peekPixels">peekPixels</a> | returns <a href="SkPixmap_Reference#Pixmap">Pixmap</a> if possible |
+| <a href="#SkBitmap_pixelRef">pixelRef</a> | returns <a href="undocumented#Pixel_Ref">Pixel Ref</a>, or nullptr |
+| <a href="#SkBitmap_pixelRefOrigin">pixelRefOrigin</a> | returns offset within <a href="undocumented#Pixel_Ref">Pixel Ref</a> |
+| <a href="#SkBitmap_pixmap">pixmap</a> | returns <a href="SkPixmap_Reference#Pixmap">Pixmap</a> |
+| <a href="#SkBitmap_readPixels">readPixels</a> | copies and converts pixels |
+| <a href="#SkBitmap_readyToDraw">readyToDraw</a> | returns true if address of pixels is not nullptr |
+| <a href="#SkBitmap_refColorSpace">refColorSpace</a> | returns <a href="undocumented#Image_Info">Image Info</a> <a href="undocumented#Color_Space">Color Space</a> |
+| <a href="#SkBitmap_reset">reset</a> | sets to default values, releases pixel ownership |
+| <a href="#SkBitmap_rowBytes">rowBytes</a> | returns interval between rows in bytes |
+| <a href="#SkBitmap_rowBytesAsPixels">rowBytesAsPixels</a> | returns interval between rows in pixels |
+| <a href="#SkBitmap_setAlphaType">setAlphaType</a> | sets <a href="undocumented#Image_Alpha_Type">Alpha Type</a> of shared pixels |
+| <a href="#SkBitmap_setHasHardwareMipMap">setHasHardwareMipMap</a> | sets <a href="undocumented#Mip_Map">Mip Map</a> support present; Android only |
+| <a href="#SkBitmap_setImmutable">setImmutable</a> | marks that pixels will not change |
+| <a href="#SkBitmap_setInfo">setInfo</a> | sets <a href="#SkBitmap_height">height</a>, <a href="#SkBitmap_width">width</a>, <a href="undocumented#Image_Color_Type">Color Type</a>, and so on, releasing pixels |
+| <a href="#SkBitmap_setIsVolatile">setIsVolatile</a> | marks if pixels should not be cached |
+| <a href="#SkBitmap_setPixelRef">setPixelRef</a> | sets <a href="undocumented#Pixel_Ref">Pixel Ref</a> and offset |
+| <a href="#SkBitmap_setPixels">setPixels</a> | sets <a href="undocumented#Pixel_Ref">Pixel Ref</a> without an offset |
+| <a href="#SkBitmap_shiftPerPixel">shiftPerPixel</a> | returns bit shift from pixels to bytes |
+| <a href="#SkBitmap_swap">swap</a> | exchanges <a href="#Bitmap">Bitmap</a> pair |
+| <a href="#SkBitmap_toString">toString</a> | converts <a href="#Bitmap">Bitmap</a> to machine readable form |
+| <a href="#SkBitmap_tryAllocN32Pixels">tryAllocN32Pixels</a> | allocates compatible <a href="#ARGB">Color ARGB</a> pixels if possible |
+| <a href="#SkBitmap_tryAllocPixels">tryAllocPixels</a> | allocates pixels from <a href="undocumented#Image_Info">Image Info</a> if possible |
+| <a href="#SkBitmap_tryAllocPixelsFlags">tryAllocPixelsFlags</a> | allocates pixels from <a href="undocumented#Image_Info">Image Info</a> with options if possible |
+| <a href="#SkBitmap_validate">validate</a> | asserts if <a href="#Bitmap">Bitmap</a> is invalid (debug only) |
+| <a href="#SkBitmap_width">width</a> | returns pixel column count |
+| <a href="#SkBitmap_writePixels">writePixels</a> | copies and converts pixels |
# <a name="SkBitmap::Allocator"></a> Class SkBitmap::Allocator
diff --git a/site/user/api/SkCanvas_Reference.md b/site/user/api/SkCanvas_Reference.md
index 76506fb4cb..9576df1d6c 100644
--- a/site/user/api/SkCanvas_Reference.md
+++ b/site/user/api/SkCanvas_Reference.md
@@ -29,123 +29,130 @@ This approach may be deprecated in the future.
## <a name="Subtopics"></a> Subtopics
-| topics | description |
+| name | description |
| --- | --- |
+| <a href="#Overview_Classes_and_Structs">Classes and Structs</a> | embedded struct and class members |
+| <a href="#Overview_Constants">Constants</a> | enum and enum class, const values |
+| <a href="#Overview_Constructors">Constructors</a> | functions that construct <a href="SkPath_Reference#SkPath">SkPath</a> |
+| <a href="#Overview_Member_Functions">Member Functions</a> | static functions and member methods |
+| Operators | operator overloading methods |
## <a name="Constants"></a> Constants
-| constants | description |
+| name | description |
| --- | --- |
-| Lattice::Flags | Controls <a href="#SkCanvas_Lattice">Lattice</a> transparency. |
-| <a href="#SkCanvas_PointMode">PointMode</a> | Sets <a href="#SkCanvas_drawPoints">drawPoints</a> options. |
-| <a href="#SkCanvas_SaveLayerFlags">SaveLayerFlags</a> | Sets <a href="#SkCanvas_SaveLayerRec">SaveLayerRec</a> options. |
-| <a href="#SkCanvas_SrcRectConstraint">SrcRectConstraint</a> | Sets <a href="#SkCanvas_drawImageRect">drawImageRect</a> options. |
+| Lattice::Flags | controls <a href="#SkCanvas_Lattice">Lattice</a> transparency |
+| <a href="#SkCanvas_PointMode">PointMode</a> | sets <a href="#SkCanvas_drawPoints">drawPoints</a> options |
+| <a href="#SkCanvas_SaveLayerFlags">SaveLayerFlags</a> | sets <a href="#SkCanvas_SaveLayerRec">SaveLayerRec</a> options |
+| <a href="#SkCanvas_SrcRectConstraint">SrcRectConstraint</a> | sets <a href="#SkCanvas_drawImageRect">drawImageRect</a> options |
-## <a name="Structs"></a> Structs
+## <a name="Classes_and_Structs"></a> Classes and Structs
-| struct | description |
+| name | description |
| --- | --- |
-| <a href="#SkCanvas_Lattice">Lattice</a> | Divides <a href="SkBitmap_Reference#Bitmap">Bitmap</a>, <a href="SkImage_Reference#Image">Image</a> into a rectangular grid. |
-| <a href="#SkCanvas_SaveLayerRec">SaveLayerRec</a> | Contains state to create <a href="#Layer">Layer</a>. |
+| <a href="#SkCanvas_Lattice">Lattice</a> | divides <a href="SkBitmap_Reference#Bitmap">Bitmap</a>, <a href="SkImage_Reference#Image">Image</a> into a rectangular grid |
+| <a href="#SkCanvas_SaveLayerRec">SaveLayerRec</a> | contains state to create <a href="#Layer">Layer</a> |
## <a name="Constructors"></a> Constructors
Create the desired type of <a href="SkSurface_Reference#Surface">Surface</a> to obtain its <a href="#Canvas">Canvas</a> when possible. <a href="#Overview_Constructors">Constructors</a> are 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>.
-| | description |
+| name | description |
| --- | --- |
-| <a href="#SkCanvas_empty_constructor">SkCanvas()</a> | No <a href="SkSurface_Reference#Surface">Surface</a>, no dimensions. |
-| <a href="#SkCanvas_int_int_const_SkSurfaceProps_star">SkCanvas(int width, int height, const SkSurfaceProps* props = nullptr)</a> | No <a href="SkSurface_Reference#Surface">Surface</a>, set dimensions, <a href="undocumented#Surface_Properties">Surface Properties</a>. |
-| <a href="#SkCanvas_copy_SkBaseDevice_star">SkCanvas(SkBaseDevice* device)</a> | Existing <a href="undocumented#Device">Device</a>. (<a href="undocumented#SkBaseDevice">SkBaseDevice</a> is private.) |
-| <a href="#SkCanvas_copy_const_SkBitmap">SkCanvas(const SkBitmap& bitmap)</a> | Uses existing <a href="SkBitmap_Reference#Bitmap">Bitmap</a>. |
-| <a href="#SkCanvas_const_SkBitmap_const_SkSurfaceProps">SkCanvas(const SkBitmap& bitmap, const SkSurfaceProps& props)</a> | Uses existing <a href="SkBitmap_Reference#Bitmap">Bitmap</a> and <a href="undocumented#Surface_Properties">Surface Properties</a>. |
-| <a href="#SkCanvas_MakeRasterDirect">MakeRasterDirect</a> | Creates from <a href="undocumented#SkImageInfo">SkImageInfo</a> and <a href="#Storage">Pixel Storage</a>. |
-| <a href="#SkCanvas_MakeRasterDirectN32">MakeRasterDirectN32</a> | Creates from image data and <a href="#Storage">Pixel Storage</a>. |
+| <a href="#SkCanvas_MakeRasterDirect">MakeRasterDirect</a> | creates from <a href="undocumented#SkImageInfo">SkImageInfo</a> and <a href="#Storage">Pixel Storage</a> |
+| <a href="#SkCanvas_MakeRasterDirectN32">MakeRasterDirectN32</a> | creates from image data and <a href="#Storage">Pixel Storage</a> |
+| <a href="#SkCanvas_empty_constructor">SkCanvas()</a> | creates with no <a href="SkSurface_Reference#Surface">Surface</a>, no dimensions |
+| <a href="#SkCanvas_copy_SkBaseDevice_star">SkCanvas(SkBaseDevice* device)</a> | to be deprecated |
+| <a href="#SkCanvas_copy_const_SkBitmap">SkCanvas(const SkBitmap& bitmap)</a> | uses existing <a href="SkBitmap_Reference#Bitmap">Bitmap</a> |
+| <a href="#SkCanvas_const_SkBitmap">SkCanvas(const SkBitmap& bitmap, ColorBehavior behavior)</a> | Android framework only |
+| <a href="#SkCanvas_const_SkBitmap_const_SkSurfaceProps">SkCanvas(const SkBitmap& bitmap, const SkSurfaceProps& props)</a> | uses existing <a href="SkBitmap_Reference#Bitmap">Bitmap</a> and <a href="undocumented#Surface_Properties">Surface Properties</a> |
+| <a href="#SkCanvas_int_int_const_SkSurfaceProps_star">SkCanvas(int width, int height, const SkSurfaceProps* props = nullptr)</a> | no <a href="SkSurface_Reference#Surface">Surface</a>, set dimensions, <a href="undocumented#Surface_Properties">Surface Properties</a> |
+| | draws saved <a href="#Layer">Layers</a>, frees resources |
## <a name="Member_Functions"></a> Member Functions
-| function | description |
+| name | description |
| --- | --- |
-| <a href="#SkCanvas_accessTopLayerPixels">accessTopLayerPixels</a> | Returns writable pixel access if available. |
-| <a href="#SkCanvas_accessTopRasterHandle">accessTopRasterHandle</a> | Returns context that tracks <a href="#Clip">Clip</a> and <a href="#Matrix">Matrix</a>. |
-| <a href="#SkCanvas_clear">clear</a> | Fills <a href="#Clip">Clip</a> with <a href="undocumented#Color">Color</a>. |
-| <a href="#SkCanvas_clipPath">clipPath</a> | Combines <a href="#Clip">Clip</a> with <a href="SkPath_Reference#Path">Path</a>. |
-| <a href="#SkCanvas_clipRRect">clipRRect</a> | Combines <a href="#Clip">Clip</a> with <a href="undocumented#Round_Rect">Round Rect</a>. |
-| <a href="#SkCanvas_clipRect">clipRect</a> | Combines <a href="#Clip">Clip</a> with <a href="SkRect_Reference#Rect">Rect</a>. |
-| <a href="#SkCanvas_clipRegion">clipRegion</a> | Combines <a href="#Clip">Clip</a> with <a href="undocumented#Region">Region</a>. |
-| <a href="#SkCanvas_concat">concat</a> | Multiplies <a href="#Matrix">Matrix</a> by <a href="#Matrix">Matrix</a>. |
-| <a href="#SkCanvas_discard">discard</a> | Makes <a href="#Canvas">Canvas</a> contents undefined. |
-| <a href="#SkCanvas_drawAnnotation">drawAnnotation</a> | Associates a <a href="SkRect_Reference#Rect">Rect</a> with a key-value pair. |
-| <a href="#SkCanvas_drawArc">drawArc</a> | 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_drawAtlas">drawAtlas</a> | Draws sprites using <a href="#Clip">Clip</a>, <a href="#Matrix">Matrix</a>, and <a href="SkPaint_Reference#Paint">Paint</a>. |
-| <a href="#SkCanvas_drawBitmap">drawBitmap</a> | Draws <a href="SkBitmap_Reference#Bitmap">Bitmap</a> at (x, y) position. |
-| <a href="#SkCanvas_drawBitmapLattice">drawBitmapLattice</a> | Draws proportionally stretched <a href="SkBitmap_Reference#Bitmap">Bitmap</a>. |
-| <a href="#SkCanvas_drawBitmapNine">drawBitmapNine</a> | Draws <a href="undocumented#Nine_Patch">Nine Patch</a> <a href="SkBitmap_Reference#Bitmap">Bitmap</a>. |
-| <a href="#SkCanvas_drawBitmapRect">drawBitmapRect</a> | Draws <a href="SkBitmap_Reference#Bitmap">Bitmap</a>, source <a href="SkRect_Reference#Rect">Rect</a> to destination <a href="SkRect_Reference#Rect">Rect</a>. |
-| <a href="#SkCanvas_drawCircle">drawCircle</a> | Draws <a href="undocumented#Circle">Circle</a> using <a href="#Clip">Clip</a>, <a href="#Matrix">Matrix</a>, and <a href="SkPaint_Reference#Paint">Paint</a>. |
-| <a href="#SkCanvas_drawColor">drawColor</a> | Fills <a href="#Clip">Clip</a> with <a href="undocumented#Color">Color</a> and <a href="undocumented#Blend_Mode">Blend Mode</a>. |
-| <a href="#SkCanvas_drawDRRect">drawDRRect</a> | Draws double <a href="undocumented#Round_Rect">Round Rect</a> stroked or filled. |
-| <a href="#SkCanvas_drawDrawable">drawDrawable</a> | Draws <a href="undocumented#Drawable">Drawable</a>, encapsulated drawing commands. |
-| <a href="#SkCanvas_drawIRect">drawIRect</a> | Draws <a href="SkIRect_Reference#IRect">IRect</a> using <a href="#Clip">Clip</a>, <a href="#Matrix">Matrix</a>, and <a href="SkPaint_Reference#Paint">Paint</a>. |
-| <a href="#SkCanvas_drawImage">drawImage</a> | Draws <a href="SkImage_Reference#Image">Image</a> at (x, y) position. |
-| <a href="#SkCanvas_drawImageLattice">drawImageLattice</a> | Draws proportionally stretched <a href="SkImage_Reference#Image">Image</a>. |
-| <a href="#SkCanvas_drawImageNine">drawImageNine</a> | Draws <a href="undocumented#Nine_Patch">Nine Patch</a> <a href="SkImage_Reference#Image">Image</a>. |
-| <a href="#SkCanvas_drawImageRect">drawImageRect</a> | Draws <a href="SkImage_Reference#Image">Image</a>, source <a href="SkRect_Reference#Rect">Rect</a> to destination <a href="SkRect_Reference#Rect">Rect</a>. |
-| <a href="#SkCanvas_drawLine">drawLine</a> | Draws line segment between two points. |
-| <a href="#SkCanvas_drawOval">drawOval</a> | Draws <a href="undocumented#Oval">Oval</a> using <a href="#Clip">Clip</a>, <a href="#Matrix">Matrix</a>, and <a href="SkPaint_Reference#Paint">Paint</a>. |
-| <a href="#SkCanvas_drawPaint">drawPaint</a> | Fills <a href="#Clip">Clip</a> with <a href="SkPaint_Reference#Paint">Paint</a>. |
-| <a href="#SkCanvas_drawPatch">drawPatch</a> | Draws Coons_Patch. |
-| <a href="#SkCanvas_drawPath">drawPath</a> | Draws <a href="SkPath_Reference#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_drawPicture">drawPicture</a> | Draws <a href="undocumented#Picture">Picture</a> using <a href="#Clip">Clip</a> and <a href="#Matrix">Matrix</a>. |
-| <a href="#SkCanvas_drawPoint">drawPoint</a> | Draws point at (x, y) position. |
-| <a href="#SkCanvas_drawPoints">drawPoints</a> | Draws array as points, lines, polygon. |
-| <a href="#SkCanvas_drawPosText">drawPosText</a> | Draws text at array of (x, y) positions. |
-| <a href="#SkCanvas_drawPosTextH">drawPosTextH</a> | Draws text at x positions with common baseline. |
-| <a href="#SkCanvas_drawRRect">drawRRect</a> | Draws <a href="undocumented#Round_Rect">Round 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">drawRect</a> | Draws <a href="SkRect_Reference#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_drawRegion">drawRegion</a> | Draws <a href="undocumented#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_drawRoundRect">drawRoundRect</a> | Draws <a href="undocumented#Round_Rect">Round Rect</a> using <a href="#Clip">Clip</a>, <a href="#Matrix">Matrix</a>, and <a href="SkPaint_Reference#Paint">Paint</a>. |
-| <a href="#SkCanvas_drawText">drawText</a> | Draws text at (x, y), using font advance. |
-| <a href="#SkCanvas_drawTextBlob">drawTextBlob</a> | Draws text with arrays of positions and <a href="SkPaint_Reference#Paint">Paint</a>. |
-| <a href="#SkCanvas_drawTextOnPath">drawTextOnPath</a> | Draws text following <a href="SkPath_Reference#Path">Path</a> contour. |
-| <a href="#SkCanvas_drawTextOnPathHV">drawTextOnPathHV</a> | Draws text following <a href="SkPath_Reference#Path">Path</a> with offsets. |
-| <a href="#SkCanvas_drawTextRSXform">drawTextRSXform</a> | Draws text with array of <a href="undocumented#RSXform">RSXform</a>. |
-| <a href="#SkCanvas_drawString">drawString</a> | Draws null terminated string at (x, y) using font advance. |
-| <a href="#SkCanvas_drawVertices">drawVertices</a> | Draws <a href="undocumented#Vertices">Vertices</a>, a triangle mesh. |
-| <a href="#SkCanvas_flush">flush</a> | Triggers execution of all pending draw operations. |
-| <a href="#SkCanvas_getBaseLayerSize">getBaseLayerSize</a> | Gets size of base <a href="#Layer">Layer</a> in global coordinates. |
-| <a href="#SkCanvas_getDeviceClipBounds">getDeviceClipBounds</a> | Returns <a href="SkIRect_Reference#IRect">IRect</a> bounds of <a href="#Clip">Clip</a>. |
-| <a href="#SkCanvas_getDrawFilter">getDrawFilter</a> | Legacy; to be deprecated. |
-| <a href="#SkCanvas_getGrContext">getGrContext</a> | Returns <a href="undocumented#GPU_Context">GPU Context</a> of the <a href="undocumented#GPU_Surface">GPU Surface</a>. |
-| <a href="#SkCanvas_getLocalClipBounds">getLocalClipBounds</a> | Returns <a href="#Clip">Clip</a> bounds in source coordinates. |
-| <a href="#SkCanvas_getMetaData">getMetaData</a> | Associates additional data with the canvas. |
-| <a href="#SkCanvas_getProps">getProps</a> | Copies <a href="undocumented#Surface_Properties">Surface Properties</a> if available. |
-| <a href="#SkCanvas_getSaveCount">getSaveCount</a> | Returns depth of stack containing <a href="#Clip">Clip</a> and <a href="#Matrix">Matrix</a>. |
-| <a href="#SkCanvas_getTotalMatrix">getTotalMatrix</a> | Returns <a href="#Matrix">Matrix</a>. |
-| <a href="#SkCanvas_imageInfo">imageInfo</a> | Returns <a href="undocumented#Image_Info">Image Info</a> for <a href="#Canvas">Canvas</a>. |
-| <a href="#SkCanvas_isClipEmpty">isClipEmpty</a> | Returns if <a href="#Clip">Clip</a> is empty. |
-| <a href="#SkCanvas_isClipRect">isClipRect</a> | Returns if <a href="#Clip">Clip</a> is <a href="SkRect_Reference#Rect">Rect</a> and not empty. |
-| <a href="#SkCanvas_MakeRasterDirect">MakeRasterDirect</a> | Creates <a href="#Canvas">Canvas</a> from <a href="undocumented#SkImageInfo">SkImageInfo</a> and pixel data. |
-| <a href="#SkCanvas_MakeRasterDirectN32">MakeRasterDirectN32</a> | Creates <a href="#Canvas">Canvas</a> from image specifications and pixel data. |
-| <a href="#SkCanvas_makeSurface">makeSurface</a> | Creates <a href="SkSurface_Reference#Surface">Surface</a> matching <a href="undocumented#SkImageInfo">SkImageInfo</a> and <a href="undocumented#SkSurfaceProps">SkSurfaceProps</a>. |
-| <a href="#SkCanvas_peekPixels">peekPixels</a> | Returns if <a href="#Canvas">Canvas</a> has direct access to its pixels. |
-| <a href="#SkCanvas_quickReject">quickReject</a> | Returns if <a href="SkRect_Reference#Rect">Rect</a> is outside <a href="#Clip">Clip</a>. |
-| <a href="#SkCanvas_readPixels">readPixels</a> | Copies and converts rectangle of pixels from <a href="#Canvas">Canvas</a>. |
-| <a href="#SkCanvas_resetMatrix">resetMatrix</a> | Resets <a href="#Matrix">Matrix</a> to identity. |
-| <a href="#SkCanvas_restore">restore</a> | Restores changes to <a href="#Clip">Clip</a> and <a href="#Matrix">Matrix</a>, pops <a href="#SkCanvas_save">save</a> stack. |
-| <a href="#SkCanvas_restoreToCount">restoreToCount</a> | Restores changes to <a href="#Clip">Clip</a> and <a href="#Matrix">Matrix</a> to given depth. |
-| <a href="#SkCanvas_rotate">rotate</a> | Rotates <a href="#Matrix">Matrix</a>. |
-| <a href="#SkCanvas_save">save</a> | Saves <a href="#Clip">Clip</a> and <a href="#Matrix">Matrix</a> on stack. |
-| <a href="#SkCanvas_saveLayer">saveLayer</a> | Saves <a href="#Clip">Clip</a> and <a href="#Matrix">Matrix</a> on stack; creates <a href="#Layer">Layer</a>. |
-| <a href="#SkCanvas_saveLayerAlpha">saveLayerAlpha</a> | Saves <a href="#Clip">Clip</a> and <a href="#Matrix">Matrix</a> on stack; creates <a href="#Layer">Layer</a>; sets opacity. |
-| <a href="#SkCanvas_saveLayerPreserveLCDTextRequests">saveLayerPreserveLCDTextRequests</a> | Saves <a href="#Clip">Clip</a> and <a href="#Matrix">Matrix</a> on stack; creates <a href="#Layer">Layer</a> for LCD text. |
-| <a href="#SkCanvas_scale">scale</a> | Scales <a href="#Matrix">Matrix</a>. |
-| <a href="#SkCanvas_setAllowSimplifyClip">setAllowSimplifyClip</a> | Experimental. |
-| <a href="#SkCanvas_setDrawFilter">setDrawFilter</a> | Legacy; to be deprecated. |
-| <a href="#SkCanvas_setMatrix">setMatrix</a> | Sets <a href="#Matrix">Matrix</a>. |
-| <a href="#SkCanvas_skew">skew</a> | Skews <a href="#Matrix">Matrix</a>. | <a href="#SkCanvas_translate">translate</a> | Translates <a href="#Matrix">Matrix</a>. |
-| <a href="#SkCanvas_writePixels">writePixels</a> | Copies and converts rectangle of pixels to <a href="#Canvas">Canvas</a>. |
+| <a href="#SkCanvas_MakeRasterDirect">MakeRasterDirect</a> | creates <a href="#Canvas">Canvas</a> from <a href="undocumented#SkImageInfo">SkImageInfo</a> and pixel data |
+| <a href="#SkCanvas_MakeRasterDirectN32">MakeRasterDirectN32</a> | creates <a href="#Canvas">Canvas</a> from image specifications and pixel data |
+| <a href="#SkCanvas_accessTopLayerPixels">accessTopLayerPixels</a> | returns writable pixel access if available |
+| <a href="#SkCanvas_accessTopRasterHandle">accessTopRasterHandle</a> | returns context that tracks <a href="#Clip">Clip</a> and <a href="#Matrix">Matrix</a> |
+| <a href="#SkCanvas_clear">clear</a> | fills <a href="#Clip">Clip</a> with <a href="undocumented#Color">Color</a> |
+| <a href="#SkCanvas_clipPath">clipPath</a> | combines <a href="#Clip">Clip</a> with <a href="SkPath_Reference#Path">Path</a> |
+| <a href="#SkCanvas_clipRRect">clipRRect</a> | combines <a href="#Clip">Clip</a> with <a href="undocumented#Round_Rect">Round Rect</a> |
+| <a href="#SkCanvas_clipRect">clipRect</a> | combines <a href="#Clip">Clip</a> with <a href="SkRect_Reference#Rect">Rect</a> |
+| <a href="#SkCanvas_clipRegion">clipRegion</a> | combines <a href="#Clip">Clip</a> with <a href="undocumented#Region">Region</a> |
+| <a href="#SkCanvas_concat">concat</a> | multiplies <a href="#Matrix">Matrix</a> by <a href="#Matrix">Matrix</a> |
+| <a href="#SkCanvas_discard">discard</a> | makes <a href="#Canvas">Canvas</a> contents undefined |
+| <a href="#SkCanvas_drawAnnotation">drawAnnotation</a> | associates a <a href="SkRect_Reference#Rect">Rect</a> with a key-value pair |
+| <a href="#SkCanvas_drawArc">drawArc</a> | 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_drawAtlas">drawAtlas</a> | draws sprites using <a href="#Clip">Clip</a>, <a href="#Matrix">Matrix</a>, and <a href="SkPaint_Reference#Paint">Paint</a> |
+| <a href="#SkCanvas_drawBitmap">drawBitmap</a> | draws <a href="SkBitmap_Reference#Bitmap">Bitmap</a> at (x, y) position |
+| <a href="#SkCanvas_drawBitmapLattice">drawBitmapLattice</a> | draws proportionally stretched <a href="SkBitmap_Reference#Bitmap">Bitmap</a> |
+| <a href="#SkCanvas_drawBitmapNine">drawBitmapNine</a> | draws <a href="undocumented#Nine_Patch">Nine Patch</a> <a href="SkBitmap_Reference#Bitmap">Bitmap</a> |
+| <a href="#SkCanvas_drawBitmapRect">drawBitmapRect</a> | draws <a href="SkBitmap_Reference#Bitmap">Bitmap</a>, source <a href="SkRect_Reference#Rect">Rect</a> to destination <a href="SkRect_Reference#Rect">Rect</a> |
+| <a href="#SkCanvas_drawCircle">drawCircle</a> | draws <a href="undocumented#Circle">Circle</a> using <a href="#Clip">Clip</a>, <a href="#Matrix">Matrix</a>, and <a href="SkPaint_Reference#Paint">Paint</a> |
+| <a href="#SkCanvas_drawColor">drawColor</a> | fills <a href="#Clip">Clip</a> with <a href="undocumented#Color">Color</a> and <a href="undocumented#Blend_Mode">Blend Mode</a> |
+| <a href="#SkCanvas_drawDRRect">drawDRRect</a> | draws double <a href="undocumented#Round_Rect">Round Rect</a> stroked or filled |
+| <a href="#SkCanvas_drawDrawable">drawDrawable</a> | draws <a href="undocumented#Drawable">Drawable</a>, encapsulated drawing commands |
+| <a href="#SkCanvas_drawIRect">drawIRect</a> | draws <a href="SkIRect_Reference#IRect">IRect</a> using <a href="#Clip">Clip</a>, <a href="#Matrix">Matrix</a>, and <a href="SkPaint_Reference#Paint">Paint</a> |
+| <a href="#SkCanvas_drawImage">drawImage</a> | draws <a href="SkImage_Reference#Image">Image</a> at (x, y) position |
+| <a href="#SkCanvas_drawImageLattice">drawImageLattice</a> | draws proportionally stretched <a href="SkImage_Reference#Image">Image</a> |
+| <a href="#SkCanvas_drawImageNine">drawImageNine</a> | draws <a href="undocumented#Nine_Patch">Nine Patch</a> <a href="SkImage_Reference#Image">Image</a> |
+| <a href="#SkCanvas_drawImageRect">drawImageRect</a> | draws <a href="SkImage_Reference#Image">Image</a>, source <a href="SkRect_Reference#Rect">Rect</a> to destination <a href="SkRect_Reference#Rect">Rect</a> |
+| <a href="#SkCanvas_drawLine">drawLine</a> | draws line segment between two points |
+| <a href="#SkCanvas_drawOval">drawOval</a> | draws <a href="undocumented#Oval">Oval</a> using <a href="#Clip">Clip</a>, <a href="#Matrix">Matrix</a>, and <a href="SkPaint_Reference#Paint">Paint</a> |
+| <a href="#SkCanvas_drawPaint">drawPaint</a> | fills <a href="#Clip">Clip</a> with <a href="SkPaint_Reference#Paint">Paint</a> |
+| <a href="#SkCanvas_drawPatch">drawPatch</a> | draws Coons_Patch |
+| <a href="#SkCanvas_drawPath">drawPath</a> | draws <a href="SkPath_Reference#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_drawPicture">drawPicture</a> | draws <a href="undocumented#Picture">Picture</a> using <a href="#Clip">Clip</a> and <a href="#Matrix">Matrix</a> |
+| <a href="#SkCanvas_drawPoint">drawPoint</a> | draws point at (x, y) position |
+| <a href="#SkCanvas_drawPoints">drawPoints</a> | draws array as points, lines, polygon |
+| <a href="#SkCanvas_drawPosText">drawPosText</a> | draws text at array of (x, y) positions |
+| <a href="#SkCanvas_drawPosTextH">drawPosTextH</a> | draws text at x positions with common baseline |
+| <a href="#SkCanvas_drawRRect">drawRRect</a> | draws <a href="undocumented#Round_Rect">Round 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">drawRect</a> | draws <a href="SkRect_Reference#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_drawRegion">drawRegion</a> | draws <a href="undocumented#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_drawRoundRect">drawRoundRect</a> | draws <a href="undocumented#Round_Rect">Round Rect</a> using <a href="#Clip">Clip</a>, <a href="#Matrix">Matrix</a>, and <a href="SkPaint_Reference#Paint">Paint</a> |
+| <a href="#SkCanvas_drawString">drawString</a> | draws null terminated string at (x, y) using font advance |
+| <a href="#SkCanvas_drawText">drawText</a> | draws text at (x, y), using font advance |
+| <a href="#SkCanvas_drawTextBlob">drawTextBlob</a> | draws text with arrays of positions and <a href="SkPaint_Reference#Paint">Paint</a> |
+| <a href="#SkCanvas_drawTextOnPath">drawTextOnPath</a> | draws text following <a href="SkPath_Reference#Path">Path</a> contour |
+| <a href="#SkCanvas_drawTextOnPathHV">drawTextOnPathHV</a> | draws text following <a href="SkPath_Reference#Path">Path</a> with offsets |
+| <a href="#SkCanvas_drawTextRSXform">drawTextRSXform</a> | draws text with array of <a href="undocumented#RSXform">RSXform</a> |
+| <a href="#SkCanvas_drawVertices">drawVertices</a> | draws <a href="undocumented#Vertices">Vertices</a>, a triangle mesh |
+| <a href="#SkCanvas_flush">flush</a> | triggers execution of all pending draw operations |
+| <a href="#SkCanvas_getBaseLayerSize">getBaseLayerSize</a> | returns size of base <a href="#Layer">Layer</a> in global coordinates |
+| <a href="#SkCanvas_getDeviceClipBounds">getDeviceClipBounds</a> | returns <a href="SkIRect_Reference#IRect">IRect</a> bounds of <a href="#Clip">Clip</a> |
+| <a href="#SkCanvas_getDrawFilter">getDrawFilter</a> | legacy; to be deprecated |
+| <a href="#SkCanvas_getGrContext">getGrContext</a> | returns <a href="undocumented#GPU_Context">GPU Context</a> of the <a href="undocumented#GPU_Surface">GPU Surface</a> |
+| <a href="#SkCanvas_getLocalClipBounds">getLocalClipBounds</a> | returns <a href="#Clip">Clip</a> bounds in source coordinates |
+| <a href="#SkCanvas_getMetaData">getMetaData</a> | associates additional data with the canvas |
+| <a href="#SkCanvas_getProps">getProps</a> | copies <a href="undocumented#Surface_Properties">Surface Properties</a> if available |
+| <a href="#SkCanvas_getSaveCount">getSaveCount</a> | returns depth of stack containing <a href="#Clip">Clip</a> and <a href="#Matrix">Matrix</a> |
+| <a href="#SkCanvas_getTotalMatrix">getTotalMatrix</a> | returns <a href="#Matrix">Matrix</a> |
+| <a href="#SkCanvas_imageInfo">imageInfo</a> | returns <a href="undocumented#Image_Info">Image Info</a> for <a href="#Canvas">Canvas</a> |
+| <a href="#SkCanvas_isClipEmpty">isClipEmpty</a> | returns if <a href="#Clip">Clip</a> is empty |
+| <a href="#SkCanvas_isClipRect">isClipRect</a> | returns if <a href="#Clip">Clip</a> is <a href="SkRect_Reference#Rect">Rect</a> and not empty |
+| <a href="#SkCanvas_makeSurface">makeSurface</a> | creates <a href="SkSurface_Reference#Surface">Surface</a> matching <a href="undocumented#SkImageInfo">SkImageInfo</a> and <a href="undocumented#SkSurfaceProps">SkSurfaceProps</a> |
+| <a href="#SkCanvas_peekPixels">peekPixels</a> | returns if <a href="#Canvas">Canvas</a> has direct access to its pixels |
+| <a href="#SkCanvas_quickReject">quickReject</a> | returns if <a href="SkRect_Reference#Rect">Rect</a> is outside <a href="#Clip">Clip</a> |
+| <a href="#SkCanvas_readPixels">readPixels</a> | copies and converts rectangle of pixels from <a href="#Canvas">Canvas</a> |
+| <a href="#SkCanvas_resetMatrix">resetMatrix</a> | resets <a href="#Matrix">Matrix</a> to identity |
+| <a href="#SkCanvas_restore">restore</a> | restores changes to <a href="#Clip">Clip</a> and <a href="#Matrix">Matrix</a>, pops <a href="#SkCanvas_save">save</a> stack |
+| <a href="#SkCanvas_restoreToCount">restoreToCount</a> | restores changes to <a href="#Clip">Clip</a> and <a href="#Matrix">Matrix</a> to given depth |
+| <a href="#SkCanvas_rotate">rotate</a> | rotates <a href="#Matrix">Matrix</a> |
+| <a href="#SkCanvas_save">save</a> | saves <a href="#Clip">Clip</a> and <a href="#Matrix">Matrix</a> on stack |
+| <a href="#SkCanvas_saveLayer">saveLayer</a> | saves <a href="#Clip">Clip</a> and <a href="#Matrix">Matrix</a> on stack; creates <a href="#Layer">Layer</a> |
+| <a href="#SkCanvas_saveLayerAlpha">saveLayerAlpha</a> | saves <a href="#Clip">Clip</a> and <a href="#Matrix">Matrix</a> on stack; creates <a href="#Layer">Layer</a>; sets opacity |
+| <a href="#SkCanvas_saveLayerPreserveLCDTextRequests">saveLayerPreserveLCDTextRequests</a> | saves <a href="#Clip">Clip</a> and <a href="#Matrix">Matrix</a> on stack; creates <a href="#Layer">Layer</a> for LCD text |
+| <a href="#SkCanvas_scale">scale</a> | scales <a href="#Matrix">Matrix</a> |
+| <a href="#SkCanvas_setAllowSimplifyClip">setAllowSimplifyClip</a> | experimental |
+| <a href="#SkCanvas_setDrawFilter">setDrawFilter</a> | legacy; to be deprecated |
+| <a href="#SkCanvas_setMatrix">setMatrix</a> | sets <a href="#Matrix">Matrix</a> |
+| <a href="#SkCanvas_skew">skew</a> | skews <a href="#Matrix">Matrix</a>. | <a href="#SkCanvas_translate">translate</a> | translates <a href="#Matrix">Matrix</a> |
+| <a href="#SkCanvas_writePixels">writePixels</a> | copies and converts rectangle of pixels to <a href="#Canvas">Canvas</a> |
<a name="SkCanvas_MakeRasterDirect"></a>
## MakeRasterDirect
@@ -550,8 +557,8 @@ device independent fonts</td>
virtual ~SkCanvas()
</pre>
-Draw saved <a href="#Layer">Layers</a>, if any.
-Free up resources used by <a href="#Canvas">Canvas</a>.
+Draws saved <a href="#Layer">Layers</a>, if any.
+Frees up resources used by <a href="#Canvas">Canvas</a>.
### Example
@@ -5717,90 +5724,3 @@ clip is not rect
---
-# <a name="SkAutoCanvasRestore"></a> Class SkAutoCanvasRestore
-Stack helper class calls
-
-<a name="SkAutoCanvasRestore_SkCanvas_star"></a>
-## SkAutoCanvasRestore
-
-<pre style="padding: 1em 1em 1em 1em;width: 62.5em; background-color: #f0f0f0">
-SkAutoCanvasRestore(SkCanvas* canvas, bool doSave)
-</pre>
-
-Preserves <a href="#Canvas">Canvas</a> save count. Optionally saves <a href="#Canvas">Canvas</a> <a href="#Clip">Clip</a> and <a href="#Matrix">Matrix</a>.
-
-### Parameters
-
-<table> <tr> <td><a name="SkAutoCanvasRestore_SkCanvas_star_canvas"> <code><strong>canvas </strong></code> </a></td> <td>
-<a href="#Canvas">Canvas</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_save">SkCanvas::save()</a></td>
- </tr>
-</table>
-
-### Return Value
-
-utility to <a href="#SkAutoCanvasRestore_restore">restore</a> <a href="#Canvas">Canvas</a> state on destructor
-
-### Example
-
-<div><fiddle-embed name="466ef576b88e29d7252422db7adeed1c"></fiddle-embed></div>
-
-### See Also
-
-<a href="#SkCanvas_save">SkCanvas::save</a> <a href="#SkCanvas_restore">SkCanvas::restore</a>
-
----
-
-<a name="SkAutoCanvasRestore_destructor"></a>
-## ~SkAutoCanvasRestore
-
-<pre style="padding: 1em 1em 1em 1em;width: 62.5em; background-color: #f0f0f0">
-~SkAutoCanvasRestore()
-</pre>
-
-Restores <a href="#Canvas">Canvas</a> to saved state. Destructor is called when container goes out of
-scope.
-
-### See Also
-
-<a href="#SkCanvas_save">SkCanvas::save</a> <a href="#SkCanvas_restore">SkCanvas::restore</a>
-
----
-
-<a name="SkAutoCanvasRestore_restore"></a>
-## restore
-
-<pre style="padding: 1em 1em 1em 1em;width: 62.5em; background-color: #f0f0f0">
-void restore()
-</pre>
-
-Restores <a href="#Canvas">Canvas</a> to saved state immediately. Subsequent calls and
-<a href="#SkAutoCanvasRestore_destructor">~SkAutoCanvasRestore</a> have no effect.
-
-### Example
-
-<div><fiddle-embed name="9f459b218ec079c1ada23f4412968f9a">
-
-#### Example Output
-
-~~~~
-saveCanvas: false before restore: 2
-saveCanvas: false after restore: 2
-saveCanvas: true before restore: 2
-saveCanvas: true after restore: 2
-saveCanvas: false before restore: 2
-saveCanvas: false after restore: 1
-saveCanvas: true before restore: 2
-saveCanvas: true after restore: 1
-final count: 1
-~~~~
-
-</fiddle-embed></div>
-
-### See Also
-
-<a href="#SkCanvas_save">SkCanvas::save</a> <a href="#SkCanvas_restore">SkCanvas::restore</a>
-
----
-
diff --git a/site/user/api/SkIPoint16_Reference.md b/site/user/api/SkIPoint16_Reference.md
index f534e9d4e7..b067a2b5d3 100644
--- a/site/user/api/SkIPoint16_Reference.md
+++ b/site/user/api/SkIPoint16_Reference.md
@@ -4,31 +4,39 @@ SkIPoint16 Reference
# <a name="IPoint16"></a> IPoint16
# <a name="SkIPoint16"></a> Struct SkIPoint16
-<a href="SkIPoint_Reference#SkIPoint">SkIPoint</a> holds two 16 bit integer coordinates
+<a href="SkIPoint_Reference#SkIPoint">SkIPoint</a> holds two 16 bit integer coordinates.
# <a name="Overview"></a> Overview
## <a name="Subtopics"></a> Subtopics
-| topics | description |
+| name | description |
| --- | --- |
+| <a href="#Overview_Constructors">Constructors</a> | functions that construct <a href="#SkIPoint16">SkIPoint16</a> |
+| <a href="#Overview_Member_Functions">Member Functions</a> | static functions and member methods |
+
+## <a name="Constructors"></a> Constructors
+
+| name | description |
+| --- | --- |
+| <a href="#SkIPoint16_Make">Make</a> | constructs from integer inputs |
## <a name="Member_Functions"></a> Member Functions
-| description | function |
+| name | description |
| --- | --- |
-| <a href="#SkIPoint16_Make">Make</a> | Constructs from integer inputs. |
-| <a href="#SkIPoint16_set">set</a> | Sets to integer input. |
-| <a href="#SkIPoint16_x">x</a> | Returns <a href="#SkIPoint16_fX">fX</a>. |
-| <a href="#SkIPoint16_y">y</a> | Returns <a href="#SkIPoint16_fY">fY</a>. |
+| <a href="#SkIPoint16_Make">Make</a> | constructs from integer inputs |
+| <a href="#SkIPoint16_set">set</a> | sets to integer input |
+| <a href="#SkIPoint16_x">x</a> | returns <a href="#SkIPoint16_fX">fX</a> |
+| <a href="#SkIPoint16_y">y</a> | returns <a href="#SkIPoint16_fY">fY</a> |
<a name="SkIPoint16_fX"> <code><strong>int16_t fX</strong></code> </a>
-<a href="#SkIPoint16_x">x</a>-axis value used by <a href="#IPoint16">IPoint16</a>.
+<a href="#SkIPoint16_x">x</a>-axis value used by <a href="#IPoint16">IPoint16</a>
<a name="SkIPoint16_fY"> <code><strong>int16_t fY</strong></code> </a>
-<a href="#SkIPoint16_y">y</a>-axis value used by <a href="#IPoint16">IPoint16</a>.
+<a href="#SkIPoint16_y">y</a>-axis value used by <a href="#IPoint16">IPoint16</a>
<a name="SkIPoint16_Make"></a>
## Make
diff --git a/site/user/api/SkIPoint_Reference.md b/site/user/api/SkIPoint_Reference.md
index fa55436ecc..0089478b1b 100644
--- a/site/user/api/SkIPoint_Reference.md
+++ b/site/user/api/SkIPoint_Reference.md
@@ -4,37 +4,46 @@ SkIPoint Reference
# <a name="IPoint"></a> IPoint
# <a name="SkIPoint"></a> Struct SkIPoint
-<a href="#SkIPoint">SkIPoint</a> holds two 32 bit integer coordinates
+<a href="#SkIPoint">SkIPoint</a> holds two 32 bit integer coordinates.
# <a name="Overview"></a> Overview
## <a name="Subtopics"></a> Subtopics
-| topics | description |
+| name | description |
| --- | --- |
+| <a href="#Overview_Constructors">Constructors</a> | functions that construct <a href="SkIPoint16_Reference#SkIPoint16">SkIPoint16</a> |
+| <a href="#Overview_Member_Functions">Member Functions</a> | static functions and member methods |
+| <a href="#Overview_Operators">Operators</a> | operator overloading methods |
+
+## <a name="Constructors"></a> Constructors
+
+| name | description |
+| --- | --- |
+| <a href="#SkIPoint_Make">Make</a> | constructs from integer inputs |
## <a name="Operators"></a> Operators
-| description | function |
+| name | description |
| --- | --- |
-| <a href="#SkIPoint">SkIPoint</a> <a href="#SkIPoint_minus_operator">operator-() const</a> | Reverses sign of <a href="#IPoint">IPoint</a>. |
-| <a href="#SkIPoint">SkIPoint</a> <a href="#SkIPoint_add_operator">operator+(const SkIPoint& a, const SkIVector& b)</a> | Returns <a href="#IPoint">IPoint</a> offset by <a href="SkIPoint_Reference#IVector">IVector</a>. |
-| <a href="SkIPoint_Reference#SkIVector">SkIVector</a> <a href="#SkIPoint_subtract_operator">operator-(const SkIPoint& a, const SkIPoint& b)</a> | Returns <a href="SkIPoint_Reference#IVector">IVector</a> between <a href="#IPoint">IPoints</a>. |
-| bool <a href="#SkIPoint_notequal_operator">operator!=(const SkIPoint& a, const SkIPoint& b)</a> | Returns true if <a href="#IPoint">IPoints</a> are unequal. |
-| bool <a href="#SkIPoint_equal_operator">operator==(const SkIPoint& a, const SkIPoint& b)</a> | Returns true if <a href="#IPoint">IPoints</a> are equal. |
-| void <a href="#SkIPoint_addto_operator">operator+=(const SkIVector& v)</a> | Adds <a href="SkIPoint_Reference#IVector">IVector</a> to <a href="#IPoint">IPoint</a>. |
-| void <a href="#SkIPoint_subtractfrom_operator">operator-=(const SkIVector& v)</a> | Subtracts <a href="SkIPoint_Reference#IVector">IVector</a> from <a href="#IPoint">IPoint</a>. |
+| <a href="#SkIPoint">SkIPoint</a> <a href="#SkIPoint_add_operator">operator+(const SkIPoint& a, const SkIVector& b)</a> | returns <a href="#IPoint">IPoint</a> offset by <a href="SkIPoint_Reference#IVector">IVector</a> |
+| <a href="#SkIPoint">SkIPoint</a> <a href="#SkIPoint_minus_operator">operator-() const</a> | reverses sign of <a href="#IPoint">IPoint</a> |
+| <a href="SkIPoint_Reference#SkIVector">SkIVector</a> <a href="#SkIPoint_subtract_operator">operator-(const SkIPoint& a, const SkIPoint& b)</a> | returns <a href="SkIPoint_Reference#IVector">IVector</a> between <a href="#IPoint">IPoints</a> |
+| bool <a href="#SkIPoint_notequal_operator">operator!=(const SkIPoint& a, const SkIPoint& b)</a> | returns true if <a href="#IPoint">IPoints</a> are unequal |
+| bool <a href="#SkIPoint_equal_operator">operator==(const SkIPoint& a, const SkIPoint& b)</a> | returns true if <a href="#IPoint">IPoints</a> are equal |
+| void <a href="#SkIPoint_addto_operator">operator+=(const SkIVector& v)</a> | adds <a href="SkIPoint_Reference#IVector">IVector</a> to <a href="#IPoint">IPoint</a> |
+| void <a href="#SkIPoint_subtractfrom_operator">operator-=(const SkIVector& v)</a> | subtracts <a href="SkIPoint_Reference#IVector">IVector</a> from <a href="#IPoint">IPoint</a> |
## <a name="Member_Functions"></a> Member Functions
-| description | function |
+| name | description |
| --- | --- |
-| <a href="#SkIPoint_Make">Make</a> | Constructs from integer inputs. |
-| <a href="#SkIPoint_equals">equals</a> | Returns true if members are equal. |
-| <a href="#SkIPoint_isZero">isZero</a> | Returns true if both members equal zero. |
-| <a href="#SkIPoint_set">set</a> | Sets to integer input. |
-| <a href="#SkIPoint_x">x</a> | Returns <a href="#SkIPoint_fX">fX</a>. |
-| <a href="#SkIPoint_y">y</a> | Returns <a href="#SkIPoint_fY">fY</a>. |
+| <a href="#SkIPoint_Make">Make</a> | constructs from integer inputs |
+| <a href="#SkIPoint_equals">equals</a> | returns true if members are equal |
+| <a href="#SkIPoint_isZero">isZero</a> | returns true if both members equal zero |
+| <a href="#SkIPoint_set">set</a> | sets to integer input |
+| <a href="#SkIPoint_x">x</a> | returns <a href="#SkIPoint_fX">fX</a> |
+| <a href="#SkIPoint_y">y</a> | returns <a href="#SkIPoint_fY">fY</a> |
<a name="SkIPoint_fX"> <code><strong>int32_t fX</strong></code> </a>
diff --git a/site/user/api/SkIRect_Reference.md b/site/user/api/SkIRect_Reference.md
index 7afb05edaa..6d351cd194 100644
--- a/site/user/api/SkIRect_Reference.md
+++ b/site/user/api/SkIRect_Reference.md
@@ -14,63 +14,82 @@ its <a href="#SkIRect_top">top</a>, it is considered empty.
## <a name="Subtopics"></a> Subtopics
-| topics | description |
+| name | description |
| --- | --- |
+| <a href="#Overview_Constructors">Constructors</a> | list of functions that construct <a href="SkPath_Reference#SkPath">SkPath</a> |
+| <a href="#Overview_Member_Functions">Member Functions</a> | list of static functions and member methods |
+| <a href="#Overview_Operators">Operators</a> | operator overloading methods |
+
+## <a name="Constructors"></a> Constructors
+
+| name | description |
+| --- | --- |
+| <a href="#SkIRect_MakeEmpty">MakeEmpty</a> | returns bounds of (0, 0, 0, 0) |
+| <a href="#SkIRect_MakeLTRB">MakeLTRB</a> | constructs from int <a href="#SkIRect_left">left</a>, <a href="#SkIRect_top">top</a>, <a href="#SkIRect_right">right</a>, <a href="#SkIRect_bottom">bottom</a> |
+| <a href="#SkIRect_MakeLargest">MakeLargest</a> | deprecated |
+| <a href="#SkIRect_MakeSize">MakeSize</a> | constructs from <a href="undocumented#ISize">ISize</a> returning (0, 0, <a href="#SkIRect_width">width</a>, <a href="#SkIRect_height">height</a>) |
+| <a href="#SkIRect_MakeWH">MakeWH</a> | constructs from int input returning (0, 0, <a href="#SkIRect_width">width</a>, <a href="#SkIRect_height">height</a>) |
+| <a href="#SkIRect_MakeXYWH">MakeXYWH</a> | constructs from int input returning (<a href="#SkIRect_x">x</a>, <a href="#SkIRect_y">y</a>, <a href="#SkIRect_width">width</a>, <a href="#SkIRect_height">height</a>) |
+| <a href="#SkIRect_makeInset">makeInset</a> | constructs from sides moved symmetrically about the center |
+| <a href="#SkIRect_makeOffset">makeOffset</a> | constructs from translated sides |
+| <a href="#SkIRect_makeOutset">makeOutset</a> | constructs from sides moved symmetrically about the center |
+| <a href="#SkIRect_makeSorted">makeSorted</a> | constructs, ordering sides from smaller to larger |
## <a name="Operators"></a> Operators
-| description | function |
+| name | description |
| --- | --- |
-| bool <a href="#SkIRect_notequal_operator">operator!=(const SkIRect& a, const SkIRect& b)</a> | Returns true if members are unequal. |
-| bool <a href="#SkIRect_equal_operator">operator==(const SkIRect& a, const SkIRect& b)</a> | Returns true if members are equal. |
+| bool <a href="#SkIRect_notequal_operator">operator!=(const SkIRect& a, const SkIRect& b)</a> | returns true if members are unequal |
+| bool <a href="#SkIRect_equal_operator">operator==(const SkIRect& a, const SkIRect& b)</a> | returns true if members are equal |
## <a name="Member_Functions"></a> Member Functions
-| description | function |
+| name | description |
| --- | --- |
-| <a href="#SkIRect_EmptyIRect">EmptyIRect</a> | Returns immutable bounds of (0, 0, 0, 0). |
-| <a href="#SkIRect_Intersects">Intersects</a> | Returns true if areas overlap. |
-| <a href="#SkIRect_IntersectsNoEmptyCheck">IntersectsNoEmptyCheck</a> | Returns true if areas overlap. Skips empty check. |
-| <a href="#SkIRect_MakeEmpty">MakeEmpty</a> | Returns bounds of (0, 0, 0, 0). |
-| <a href="#SkIRect_MakeLTRB">MakeLTRB</a> | Constructs from int <a href="#SkIRect_left">left</a>, <a href="#SkIRect_top">top</a>, <a href="#SkIRect_right">right</a>, <a href="#SkIRect_bottom">bottom</a>. |
-| <a href="#SkIRect_MakeSize">MakeSize</a> | Constructs from <a href="undocumented#ISize">ISize</a> returning (0, 0, <a href="#SkIRect_width">width</a>, <a href="#SkIRect_height">height</a>). |
-| <a href="#SkIRect_MakeWH">MakeWH</a> | Constructs from int input returning (0, 0, <a href="#SkIRect_width">width</a>, <a href="#SkIRect_height">height</a>). |
-| <a href="#SkIRect_MakeXYWH">MakeXYWH</a> | Constructs from int input returning (<a href="#SkIRect_x">x</a>, <a href="#SkIRect_y">y</a>, <a href="#SkIRect_width">width</a>, <a href="#SkIRect_height">height</a>). |
-| <a href="#SkIRect_bottom">bottom</a> | Returns larger bounds in <a href="#SkIRect_y">y</a>, if sorted. |
-| <a href="#SkIRect_centerX">centerX</a> | Returns midpoint in <a href="#SkIRect_x">x</a>. |
-| <a href="#SkIRect_centerY">centerY</a> | Returns midpoint in <a href="#SkIRect_y">y</a>. |
-| <a href="#SkIRect_contains">contains</a> | Returns true if points are equal or inside. |
-| <a href="#SkIRect_containsNoEmptyCheck">containsNoEmptyCheck</a> | Returns true if points are equal or inside. Skips empty check. |
-| <a href="#SkIRect_height">height</a> | Returns span in <a href="#SkIRect_y">y</a>. |
-| <a href="#SkIRect_height64">height64</a> | Returns span in <a href="#SkIRect_y">y</a> as int64_t. |
-| <a href="#SkIRect_inset">inset</a> | Moves the sides symmetrically about the center. |
-| <a href="#SkIRect_intersect">intersect</a> | Sets to shared area; returns true if not empty. |
-| <a href="#SkIRect_intersectNoEmptyCheck">intersectNoEmptyCheck</a> | Sets to shared area; returns true if not empty. Skips empty check. |
-| <a href="#SkIRect_is16Bit">is16Bit</a> | Returns true if members fit in 16-bit word. |
-| <a href="#SkIRect_isEmpty">isEmpty</a> | 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. |
-| <a href="#SkIRect_isEmpty64">isEmpty64</a> | Returns true if <a href="#SkIRect_width">width</a> or <a href="#SkIRect_height">height</a> are zero or negative. |
-| <a href="#SkIRect_join">join</a> | Sets to union of bounds. |
-| <a href="#SkIRect_left">left</a> | Returns smaller bounds in <a href="#SkIRect_x">x</a>, if sorted. |
-| <a href="#SkIRect_makeInset">makeInset</a> | Constructs from sides moved symmetrically about the center. |
-| <a href="#SkIRect_makeOffset">makeOffset</a> | Constructs from translated sides. |
-| <a href="#SkIRect_makeOutset">makeOutset</a> | Constructs from sides moved symmetrically about the center. |
-| <a href="#SkIRect_makeSorted">makeSorted</a> | Constructs, ordering sides from smaller to larger. |
-| <a href="#SkIRect_offset">offset</a> | Translates sides without changing <a href="#SkIRect_width">width</a> and <a href="#SkIRect_height">height</a>. |
-| <a href="#SkIRect_offsetTo">offsetTo</a> | Translates to (<a href="#SkIRect_x">x</a>, <a href="#SkIRect_y">y</a>) without changing <a href="#SkIRect_width">width</a> and <a href="#SkIRect_height">height</a>. |
-| <a href="#SkIRect_outset">outset</a> | Moves the sides symmetrically about the center. |
-| <a href="#SkIRect_quickReject">quickReject</a> | Returns true if rectangles do not <a href="#SkIRect_intersect">intersect</a>. |
-| <a href="#SkIRect_right">right</a> | Returns larger bounds in <a href="#SkIRect_x">x</a>, if sorted. |
-| <a href="#SkIRect_set">set</a> | Sets to (<a href="#SkIRect_left">left</a>, <a href="#SkIRect_top">top</a>, <a href="#SkIRect_right">right</a>, <a href="#SkIRect_bottom">bottom</a>). |
-| <a href="#SkIRect_setEmpty">setEmpty</a> | Sets to (0, 0, 0, 0). |
-| <a href="#SkIRect_setLTRB">setLTRB</a> | Sets to <a href="undocumented#SkScalar">SkScalar</a> input (<a href="#SkIRect_left">left</a>, <a href="#SkIRect_top">top</a>, <a href="#SkIRect_right">right</a>, <a href="#SkIRect_bottom">bottom</a>). |
-| <a href="#SkIRect_setXYWH">setXYWH</a> | Sets to (<a href="#SkIRect_x">x</a>, <a href="#SkIRect_y">y</a>, <a href="#SkIRect_width">width</a>, <a href="#SkIRect_height">height</a>). |
-| <a href="#SkIRect_size">size</a> | Returns <a href="undocumented#ISize">ISize</a> (<a href="#SkIRect_width">width</a>, <a href="#SkIRect_height">height</a>). |
-| <a href="#SkIRect_sort">sort</a> | Orders sides from smaller to larger. |
-| <a href="#SkIRect_top">top</a> | Returns smaller bounds in <a href="#SkIRect_y">y</a>, if sorted. |
-| <a href="#SkIRect_width">width</a> | Returns span in <a href="#SkIRect_x">x</a>. |
-| <a href="#SkIRect_width64">width64</a> | Returns span in <a href="#SkIRect_y">y</a> as int64_t. |
-| <a href="#SkIRect_x">x</a> | Returns bounds <a href="#SkIRect_left">left</a>. |
-| <a href="#SkIRect_y">y</a> | Returns bounds <a href="#SkIRect_top">top</a>. |
+| <a href="#SkIRect_EmptyIRect">EmptyIRect</a> | returns immutable bounds of (0, 0, 0, 0) |
+| <a href="#SkIRect_Intersects">Intersects</a> | returns true if areas overlap |
+| <a href="#SkIRect_IntersectsNoEmptyCheck">IntersectsNoEmptyCheck</a> | returns true if areas overlap skips empty check |
+| <a href="#SkIRect_MakeEmpty">MakeEmpty</a> | returns bounds of (0, 0, 0, 0) |
+| <a href="#SkIRect_MakeLTRB">MakeLTRB</a> | constructs from int <a href="#SkIRect_left">left</a>, <a href="#SkIRect_top">top</a>, <a href="#SkIRect_right">right</a>, <a href="#SkIRect_bottom">bottom</a> |
+| <a href="#SkIRect_MakeLargest">MakeLargest</a> | deprecated |
+| <a href="#SkIRect_MakeSize">MakeSize</a> | constructs from <a href="undocumented#ISize">ISize</a> returning (0, 0, <a href="#SkIRect_width">width</a>, <a href="#SkIRect_height">height</a>) |
+| <a href="#SkIRect_MakeWH">MakeWH</a> | constructs from int input returning (0, 0, <a href="#SkIRect_width">width</a>, <a href="#SkIRect_height">height</a>) |
+| <a href="#SkIRect_MakeXYWH">MakeXYWH</a> | constructs from int input returning (<a href="#SkIRect_x">x</a>, <a href="#SkIRect_y">y</a>, <a href="#SkIRect_width">width</a>, <a href="#SkIRect_height">height</a>) |
+| <a href="#SkIRect_bottom">bottom</a> | returns larger bounds in <a href="#SkIRect_y">y</a>, if sorted |
+| <a href="#SkIRect_centerX">centerX</a> | returns midpoint in <a href="#SkIRect_x">x</a> |
+| <a href="#SkIRect_centerY">centerY</a> | returns midpoint in <a href="#SkIRect_y">y</a> |
+| <a href="#SkIRect_contains">contains</a> | returns true if points are equal or inside |
+| <a href="#SkIRect_containsNoEmptyCheck">containsNoEmptyCheck</a> | returns true if points are equal or inside skips empty check |
+| <a href="#SkIRect_height">height</a> | returns span in <a href="#SkIRect_y">y</a> |
+| <a href="#SkIRect_height64">height64</a> | returns span in <a href="#SkIRect_y">y</a> as int64_t |
+| <a href="#SkIRect_inset">inset</a> | moves the sides symmetrically about the center |
+| <a href="#SkIRect_intersect">intersect</a> | sets to shared area; returns true if not empty |
+| <a href="#SkIRect_intersectNoEmptyCheck">intersectNoEmptyCheck</a> | sets to shared area; returns true if not empty skips empty check |
+| <a href="#SkIRect_is16Bit">is16Bit</a> | returns true if members fit in 16-bit word |
+| <a href="#SkIRect_isEmpty">isEmpty</a> | 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 |
+| <a href="#SkIRect_isEmpty64">isEmpty64</a> | returns true if <a href="#SkIRect_width">width</a> or <a href="#SkIRect_height">height</a> are zero or negative |
+| <a href="#SkIRect_join">join</a> | sets to union of bounds |
+| <a href="#SkIRect_left">left</a> | returns smaller bounds in <a href="#SkIRect_x">x</a>, if sorted |
+| <a href="#SkIRect_makeInset">makeInset</a> | constructs from sides moved symmetrically about the center |
+| <a href="#SkIRect_makeOffset">makeOffset</a> | constructs from translated sides |
+| <a href="#SkIRect_makeOutset">makeOutset</a> | constructs from sides moved symmetrically about the center |
+| <a href="#SkIRect_makeSorted">makeSorted</a> | constructs, ordering sides from smaller to larger |
+| <a href="#SkIRect_offset">offset</a> | translates sides without changing <a href="#SkIRect_width">width</a> and <a href="#SkIRect_height">height</a> |
+| <a href="#SkIRect_offsetTo">offsetTo</a> | translates to (<a href="#SkIRect_x">x</a>, <a href="#SkIRect_y">y</a>) without changing <a href="#SkIRect_width">width</a> and <a href="#SkIRect_height">height</a> |
+| <a href="#SkIRect_outset">outset</a> | moves the sides symmetrically about the center |
+| <a href="#SkIRect_quickReject">quickReject</a> | returns true if rectangles do not <a href="#SkIRect_intersect">intersect</a> |
+| <a href="#SkIRect_right">right</a> | returns larger bounds in <a href="#SkIRect_x">x</a>, if sorted |
+| <a href="#SkIRect_set">set</a> | sets to (<a href="#SkIRect_left">left</a>, <a href="#SkIRect_top">top</a>, <a href="#SkIRect_right">right</a>, <a href="#SkIRect_bottom">bottom</a>) |
+| <a href="#SkIRect_setEmpty">setEmpty</a> | sets to (0, 0, 0, 0) |
+| <a href="#SkIRect_setLTRB">setLTRB</a> | sets to <a href="undocumented#SkScalar">SkScalar</a> input (<a href="#SkIRect_left">left</a>, <a href="#SkIRect_top">top</a>, <a href="#SkIRect_right">right</a>, <a href="#SkIRect_bottom">bottom</a>) |
+| <a href="#SkIRect_setXYWH">setXYWH</a> | sets to (<a href="#SkIRect_x">x</a>, <a href="#SkIRect_y">y</a>, <a href="#SkIRect_width">width</a>, <a href="#SkIRect_height">height</a>) |
+| <a href="#SkIRect_size">size</a> | returns <a href="undocumented#ISize">ISize</a> (<a href="#SkIRect_width">width</a>, <a href="#SkIRect_height">height</a>) |
+| <a href="#SkIRect_sort">sort</a> | orders sides from smaller to larger |
+| <a href="#SkIRect_top">top</a> | returns smaller bounds in <a href="#SkIRect_y">y</a>, if sorted |
+| <a href="#SkIRect_width">width</a> | returns span in <a href="#SkIRect_x">x</a> |
+| <a href="#SkIRect_width64">width64</a> | returns span in <a href="#SkIRect_y">y</a> as int64_t |
+| <a href="#SkIRect_x">x</a> | returns bounds <a href="#SkIRect_left">left</a> |
+| <a href="#SkIRect_y">y</a> | returns bounds <a href="#SkIRect_top">top</a> |
<a name="SkIRect_fLeft"> <code><strong>int32_t fLeft</strong></code> </a>
diff --git a/site/user/api/SkImage_Reference.md b/site/user/api/SkImage_Reference.md
index f0c9b302f5..c40c478068 100644
--- a/site/user/api/SkImage_Reference.md
+++ b/site/user/api/SkImage_Reference.md
@@ -42,16 +42,45 @@ drawing.
| topics | description |
| --- | --- |
+## <a name="Constructors"></a> Constructors
+
+| name | description |
+| --- | --- |
+| <a href="#SkImage_MakeBackendTextureFromSkImage">MakeBackendTextureFromSkImage</a> | Creates <a href="undocumented#GPU_Texture">GPU Texture</a> from <a href="#Image">Image</a>. |
+| <a href="#SkImage_MakeCrossContextFromEncoded">MakeCrossContextFromEncoded</a> | Creates <a href="#Image">Image</a> from encoded data, and uploads to GPU. |
+| <a href="#SkImage_MakeCrossContextFromPixmap">MakeCrossContextFromPixmap</a> | Creates <a href="#Image">Image</a> from <a href="SkPixmap_Reference#Pixmap">Pixmap</a>, and uploads to GPU. |
+| <a href="#SkImage_MakeFromAHardwareBuffer">MakeFromAHardwareBuffer</a> | Creates <a href="#Image">Image</a> from Android hardware buffer. |
+| <a href="#SkImage_MakeFromAdoptedTexture">MakeFromAdoptedTexture</a> | Creates <a href="#Image">Image</a> from <a href="undocumented#GPU_Texture">GPU Texture</a>, managed internally. |
+| <a href="#SkImage_MakeFromBitmap">MakeFromBitmap</a> | Creates <a href="#Image">Image</a> from <a href="SkBitmap_Reference#Bitmap">Bitmap</a>, sharing or copying pixels. |
+| <a href="#SkImage_MakeFromDeferredTextureImageData">MakeFromDeferredTextureImageData</a> | To be deprecated. |
+| <a href="#SkImage_MakeFromEncoded">MakeFromEncoded</a> | Creates <a href="#Image">Image</a> from encoded data. |
+| <a href="#SkImage_MakeFromGenerator">MakeFromGenerator</a> | Creates <a href="#Image">Image</a> from a stream of data. |
+| <a href="#SkImage_MakeFromNV12TexturesCopy">MakeFromNV12TexturesCopy</a> | Creates <a href="#Image">Image</a> from <a href="undocumented#YUV_ColorSpace">YUV ColorSpace</a> data in two planes. |
+| <a href="#SkImage_MakeFromPicture">MakeFromPicture</a> | Creates <a href="#Image">Image</a> from <a href="undocumented#Picture">Picture</a>. |
+| <a href="#SkImage_MakeFromRaster">MakeFromRaster</a> | Creates <a href="#Image">Image</a> from <a href="SkPixmap_Reference#Pixmap">Pixmap</a>, with release. |
+| <a href="#SkImage_MakeFromTexture">MakeFromTexture</a> | Creates <a href="#Image">Image</a> from <a href="undocumented#GPU_Texture">GPU Texture</a>, managed externally. |
+| <a href="#SkImage_MakeFromYUVTexturesCopy">MakeFromYUVTexturesCopy</a> | Creates <a href="#Image">Image</a> from <a href="undocumented#YUV_ColorSpace">YUV ColorSpace</a> data in three planes. |
+| <a href="#SkImage_MakeRasterCopy">MakeRasterCopy</a> | Creates <a href="#Image">Image</a> from <a href="SkPixmap_Reference#Pixmap">Pixmap</a> and copied pixels. |
+| <a href="#SkImage_MakeRasterData">MakeRasterData</a> | Creates <a href="#Image">Image</a> from <a href="#Info">Image Info</a> and shared pixels. |
+| <a href="#SkSurface_makeImageSnapshot">SkSurface::makeImageSnapshot</a> | Creates <a href="#Image">Image</a> capturing <a href="SkSurface_Reference#Surface">Surface</a> contents. |
+| <a href="#SkImage_makeColorSpace">makeColorSpace</a> | Creates <a href="#Image">Image</a> matching <a href="undocumented#Color_Space">Color Space</a> if possible. |
+| <a href="#SkImage_makeNonTextureImage">makeNonTextureImage</a> | Creates <a href="#Image">Image</a> without dependency on <a href="undocumented#GPU_Texture">GPU Texture</a>. |
+| <a href="#SkImage_makeRasterImage">makeRasterImage</a> | Creates <a href="#Image">Image</a> compatible with <a href="undocumented#Raster_Surface">Raster Surface</a> if possible. |
+| <a href="#SkImage_makeSubset">makeSubset</a> | Creates <a href="#Image">Image</a> containing part of original. |
+| <a href="#SkImage_makeTextureImage">makeTextureImage</a> | Creates <a href="#Image">Image</a> matching <a href="undocumented#Color_Space">Color Space</a> if possible. |
+| <a href="#SkImage_makeWithFilter">makeWithFilter</a> | Creates filtered, clipped <a href="#Image">Image</a>. |
+
## <a name="Member_Functions"></a> Member Functions
| description | function |
| --- | --- |
| <a href="#SkImage_MakeBackendTextureFromSkImage">MakeBackendTextureFromSkImage</a> | Creates <a href="undocumented#GPU_Texture">GPU Texture</a> from <a href="#Image">Image</a>. |
| <a href="#SkImage_MakeCrossContextFromEncoded">MakeCrossContextFromEncoded</a> | Creates <a href="#Image">Image</a> from encoded data, and uploads to GPU. |
+| <a href="#SkImage_MakeCrossContextFromPixmap">MakeCrossContextFromPixmap</a> | Creates <a href="#Image">Image</a> from <a href="SkPixmap_Reference#Pixmap">Pixmap</a>, and uploads to GPU. |
| <a href="#SkImage_MakeFromAHardwareBuffer">MakeFromAHardwareBuffer</a> | Creates <a href="#Image">Image</a> from Android hardware buffer. |
| <a href="#SkImage_MakeFromAdoptedTexture">MakeFromAdoptedTexture</a> | Creates <a href="#Image">Image</a> from <a href="undocumented#GPU_Texture">GPU Texture</a>, managed internally. |
| <a href="#SkImage_MakeFromBitmap">MakeFromBitmap</a> | Creates <a href="#Image">Image</a> from <a href="SkBitmap_Reference#Bitmap">Bitmap</a>, sharing or copying pixels. |
-| <a href="#SkImage_MakeFromDeferredTextureImageData">MakeFromDeferredTextureImageData</a> | |
+| <a href="#SkImage_MakeFromDeferredTextureImageData">MakeFromDeferredTextureImageData</a> | To be deprecated. |
| <a href="#SkImage_MakeFromEncoded">MakeFromEncoded</a> | Creates <a href="#Image">Image</a> from encoded data. |
| <a href="#SkImage_MakeFromGenerator">MakeFromGenerator</a> | Creates <a href="#Image">Image</a> from a stream of data. |
| <a href="#SkImage_MakeFromNV12TexturesCopy">MakeFromNV12TexturesCopy</a> | Creates <a href="#Image">Image</a> from <a href="undocumented#YUV_ColorSpace">YUV ColorSpace</a> data in two planes. |
@@ -67,7 +96,7 @@ drawing.
| <a href="#SkImage_colorSpace">colorSpace</a> | Returns <a href="undocumented#Color_Space">Color Space</a>. |
| <a href="#SkImage_dimensions">dimensions</a> | Returns <a href="#SkImage_width">width</a> and <a href="#SkImage_height">height</a>. |
| <a href="#SkImage_encodeToData">encodeToData</a> | Returns encoded <a href="#Image">Image</a> as <a href="undocumented#SkData">SkData</a>. |
-| <a href="#SkImage_getDeferredTextureImageData">getDeferredTextureImageData</a> | |
+| <a href="#SkImage_getDeferredTextureImageData">getDeferredTextureImageData</a> | To be deprecated. |
| <a href="#SkImage_getTexture">getTexture</a> | Deprecated. |
| <a href="#SkImage_getTextureHandle">getTextureHandle</a> | Returns GPU reference to <a href="#Image">Image</a> as texture. |
| <a href="#SkImage_height">height</a> | Returns pixel row count. |
diff --git a/site/user/api/SkMatrix_Reference.md b/site/user/api/SkMatrix_Reference.md
index c6479f2fda..1818a39c3e 100644
--- a/site/user/api/SkMatrix_Reference.md
+++ b/site/user/api/SkMatrix_Reference.md
@@ -23,14 +23,23 @@ improve performance. <a href="#Matrix">Matrix</a> is not thread safe unless <a h
| topics | description |
| --- | --- |
+## <a name="Constructors"></a> Constructors
+
+| name | description |
+| --- | --- |
+| <a href="#SkMatrix_MakeAll">MakeAll</a> | Constructs all nine values. |
+| <a href="#SkMatrix_MakeRectToRect">MakeRectToRect</a> | Constructs from source <a href="SkRect_Reference#Rect">Rect</a> to destination <a href="SkRect_Reference#Rect">Rect</a>. |
+| <a href="#SkMatrix_MakeScale">MakeScale</a> | Constructs from scale in x and y. |
+| <a href="#SkMatrix_MakeTrans">MakeTrans</a> | Constructs from translate in x and y. |
+
## <a name="Operators"></a> Operators
| function | description |
| --- | --- |
| <a href="#SkMatrix_notequal_operator">operator!=(const SkMatrix& a, const SkMatrix& b)</a> | Returns true if members are unequal. |
| <a href="#SkMatrix_equal_operator">operator==(const SkMatrix& a, const SkMatrix& b)</a> | Returns true if members are equal. |
-| <a href="#SkMatrix_array_operator">operator[](int index) const</a> | Returns <a href="#Matrix">Matrix</a> value. |
| <a href="#SkMatrix_array1_operator">operator[](int index)</a> | Returns writable reference to <a href="#Matrix">Matrix</a> value. |
+| <a href="#SkMatrix_array_operator">operator[](int index) const</a> | Returns <a href="#Matrix">Matrix</a> value. |
## <a name="Member_Functions"></a> Member Functions
diff --git a/site/user/api/SkPaint_Reference.md b/site/user/api/SkPaint_Reference.md
index 7695f98c43..a75c89a4f8 100644
--- a/site/user/api/SkPaint_Reference.md
+++ b/site/user/api/SkPaint_Reference.md
@@ -34,189 +34,200 @@ Multiple colors are drawn either by using multiple paints or with objects like
## <a name="Subtopics"></a> Subtopics
-| topics | description |
+| name | description |
| --- | --- |
-| <a href="#Initializers">Initializers</a> | Constructors and initialization. |
-| Destructor | <a href="#Paint">Paint</a> termination. |
-| <a href="#Management">Management</a> | <a href="#Paint">Paint</a> copying, moving, comparing. |
-| <a href="#SkPaint_Hinting">Hinting</a> | <a href="undocumented#Glyph">Glyph</a> outline adjustment. |
-| <a href="#SkPaint_Flags">Flags</a> | Attributes represented by single bits. |
-| Anti-alias | Approximating coverage with transparency. |
-| <a href="#Dither">Dither</a> | Distributing color error. |
-| <a href="#Device_Text">Device Text</a> | Increase precision of glyph position. |
-| <a href="SkPaint_Reference#Font_Embedded_Bitmaps">Font Embedded Bitmaps</a> | Custom sized bitmap <a href="#Glyph">Glyphs</a>. |
-| <a href="#Automatic_Hinting">Automatic Hinting</a> | Always adjust glyph paths. |
-| <a href="#Vertical_Text">Vertical Text</a> | Orient text from top to bottom. |
-| <a href="#Fake_Bold">Fake Bold</a> | Approximate font styles. |
-| <a href="SkPaint_Reference#Full_Hinting_Spacing">Full Hinting Spacing</a> | <a href="undocumented#Glyph">Glyph</a> spacing affected by hinting. |
-| <a href="#Filter_Quality_Methods">Filter Quality Methods</a> | Get and set <a href="undocumented#Filter_Quality">Filter Quality</a>. |
-| <a href="#Color_Methods">Color Methods</a> | Get and set <a href="undocumented#Color">Color</a>. |
-| <a href="#SkPaint_Style">Style</a> | Geometry filling, stroking. |
-| <a href="#Stroke_Width">Stroke Width</a> | Thickness perpendicular to geometry. |
-| <a href="#Miter_Limit">Miter Limit</a> | Maximum length of stroked corners. |
-| <a href="#Stroke_Cap">Stroke Cap</a> | Decorations at ends of open strokes. |
-| <a href="#Stroke_Join">Stroke Join</a> | Decoration at corners of strokes. |
-| <a href="#Fill_Path">Fill Path</a> | Make <a href="SkPath_Reference#Path">Path</a> from <a href="undocumented#Path_Effect">Path Effect</a>, stroking. |
-| <a href="#Shader_Methods">Shader Methods</a> | Get and set <a href="undocumented#Shader">Shader</a>. |
-| <a href="#Color_Filter_Methods">Color Filter Methods</a> | Get and set <a href="undocumented#Color_Filter">Color Filter</a>. |
-| <a href="#Blend_Mode_Methods">Blend Mode Methods</a> | Get and set <a href="undocumented#Blend_Mode">Blend Mode</a>. |
-| <a href="#Path_Effect_Methods">Path Effect Methods</a> | Get and set <a href="undocumented#Path_Effect">Path Effect</a>. |
-| <a href="#Mask_Filter_Methods">Mask Filter Methods</a> | Get and set <a href="undocumented#Mask_Filter">Mask Filter</a>. |
-| <a href="#Typeface_Methods">Typeface Methods</a> | Get and set <a href="undocumented#Typeface">Typeface</a>. |
-| <a href="#Image_Filter_Methods">Image Filter Methods</a> | Get and set <a href="undocumented#Image_Filter">Image Filter</a>. |
-| <a href="#Draw_Looper_Methods">Draw Looper Methods</a> | Get and set <a href="undocumented#Draw_Looper">Draw Looper</a>. |
-| <a href="#Text_Align">Text Align</a> | <a href="undocumented#Text">Text</a> placement relative to position. |
-| <a href="#Text_Size">Text Size</a> | Overall height in points. |
-| <a href="#Text_Scale_X">Text Scale X</a> | <a href="undocumented#Text">Text</a> horizontal scale. |
-| <a href="#Text_Skew_X">Text Skew X</a> | <a href="undocumented#Text">Text</a> horizontal slant. |
-| <a href="#Text_Encoding">Text Encoding</a> | <a href="undocumented#Text">Text</a> encoded as characters or <a href="#Glyph">Glyphs</a>. |
-| <a href="#Font_Metrics">Font Metrics</a> | Common glyph dimensions. |
-| <a href="#Measure_Text">Measure Text</a> | Width, height, bounds of text. |
-| <a href="#Text_Path">Text Path</a> | Geometry of <a href="#Glyph">Glyphs</a>. |
-| <a href="#Text_Intercepts">Text Intercepts</a> | Advanced underline, strike through. |
-| <a href="#Fast_Bounds">Fast Bounds</a> | Approximate area required by <a href="#Paint">Paint</a>. |
+| <a href="#Overview_Classes_and_Structs">Classes and Structs</a> | embedded struct and class members |
+| <a href="#Overview_Constants">Constants</a> | enum and enum class, const values |
+| <a href="#Overview_Constructors">Constructors</a> | list of functions that construct <a href="SkPath_Reference#SkPath">SkPath</a> |
+| <a href="#Overview_Member_Functions">Member Functions</a> | list of static functions and member methods |
+| <a href="#Overview_Operators">Operators</a> | operator overloading methods |
+| <a href="#Overview_Related_Functions">Related Functions</a> | similar methods grouped together |
+
+## <a name="Related_Functions"></a> Related Functions
+
+| name | description |
+| --- | --- |
+| Anti-alias | approximating coverage with transparency |
+| <a href="#Automatic_Hinting">Automatic Hinting</a> | always adjust glyph paths |
+| <a href="#Blend_Mode_Methods">Blend Mode Methods</a> | get and set <a href="undocumented#Blend_Mode">Blend Mode</a> |
+| <a href="#Color_Filter_Methods">Color Filter Methods</a> | get and set <a href="undocumented#Color_Filter">Color Filter</a> |
+| <a href="#Color_Methods">Color Methods</a> | get and set <a href="undocumented#Color">Color</a> |
+| Destructor | paint termination |
+| <a href="#Device_Text">Device Text</a> | increase precision of glyph position |
+| <a href="#Dither">Dither</a> | distributing color error |
+| <a href="#Draw_Looper_Methods">Draw Looper Methods</a> | get and set <a href="undocumented#Draw_Looper">Draw Looper</a> |
+| <a href="#Fake_Bold">Fake Bold</a> | approximate font styles |
+| <a href="#Fast_Bounds">Fast Bounds</a> | approximate area required by <a href="#Paint">Paint</a> |
+| <a href="#Fill_Path">Fill Path</a> | make <a href="SkPath_Reference#Path">Path</a> from <a href="undocumented#Path_Effect">Path Effect</a>, stroking |
+| <a href="#Filter_Quality_Methods">Filter Quality Methods</a> | get and set <a href="undocumented#Filter_Quality">Filter Quality</a> |
+| <a href="#SkPaint_Flags">Flags</a> | attributes represented by single bits |
+| <a href="SkPaint_Reference#Font_Embedded_Bitmaps">Font Embedded Bitmaps</a> | custom sized bitmap <a href="#Glyph">Glyphs</a> |
+| <a href="#Font_Metrics">Font Metrics</a> | common glyph dimensions |
+| <a href="SkPaint_Reference#Full_Hinting_Spacing">Full Hinting Spacing</a> | glyph spacing affected by hinting |
+| <a href="#SkPaint_Hinting">Hinting</a> | glyph outline adjustment |
+| <a href="#Image_Filter_Methods">Image Filter Methods</a> | get and set <a href="undocumented#Image_Filter">Image Filter</a> |
+| <a href="#Initializers">Initializers</a> | constructors and initialization |
+| <a href="#Management">Management</a> | paint copying, moving, comparing |
+| <a href="#Mask_Filter_Methods">Mask Filter Methods</a> | get and set <a href="undocumented#Mask_Filter">Mask Filter</a> |
+| <a href="#Measure_Text">Measure Text</a> | width, height, bounds of text |
+| <a href="#Miter_Limit">Miter Limit</a> | maximum length of stroked corners |
+| <a href="#Path_Effect_Methods">Path Effect Methods</a> | get and set <a href="undocumented#Path_Effect">Path Effect</a> |
+| <a href="#Shader_Methods">Shader Methods</a> | get and set <a href="undocumented#Shader">Shader</a> |
+| <a href="#Stroke_Cap">Stroke Cap</a> | decorations at ends of open strokes |
+| <a href="#Stroke_Join">Stroke Join</a> | decoration at corners of strokes |
+| <a href="#Stroke_Width">Stroke Width</a> | thickness perpendicular to geometry |
+| <a href="#SkPaint_Style">Style</a> | geometry filling, stroking |
+| <a href="#Text_Align">Text Align</a> | text placement relative to position |
+| <a href="#Text_Encoding">Text Encoding</a> | text encoded as characters or <a href="#Glyph">Glyphs</a> |
+| <a href="#Text_Intercepts">Text Intercepts</a> | advanced underline, strike through |
+| <a href="#Text_Path">Text Path</a> | geometry of <a href="#Glyph">Glyphs</a> |
+| <a href="#Text_Scale_X">Text Scale X</a> | text horizontal scale |
+| <a href="#Text_Size">Text Size</a> | overall height in points |
+| <a href="#Text_Skew_X">Text Skew X</a> | text horizontal slant |
+| <a href="#Typeface_Methods">Typeface Methods</a> | get and set <a href="undocumented#Typeface">Typeface</a> |
+| <a href="#Vertical_Text">Vertical Text</a> | orient text from top to bottom |
## <a name="Constants"></a> Constants
-| constants | description |
+| name | description |
| --- | --- |
-| <a href="#SkPaint_Align">Align</a> | <a href="undocumented#Glyph">Glyph</a> locations relative to text position. |
-| <a href="#SkPaint_Cap">Cap</a> | Start and end geometry on stroked shapes. |
-| <a href="#SkPaint_Flags">Flags</a> | Values described by bits and masks. |
-| <a href="#SkPaint_FontMetrics_FontMetricsFlags">FontMetrics::FontMetricsFlags</a> | Valid <a href="#Font_Metrics">Font Metrics</a>. |
-| <a href="#SkPaint_Hinting">Hinting</a> | Level of glyph outline adjustment. |
-| <a href="#SkPaint_Join">Join</a> | Corner geometry on stroked shapes. |
-| <a href="#SkPaint_Style">Style</a> | Stroke, fill, or both. |
-| <a href="#SkPaint_TextEncoding">TextEncoding</a> | Character or glyph encoded size. |
-
-## <a name="Structs"></a> Structs
-
-| struct | description |
+| <a href="#SkPaint_Align">Align</a> | glyph locations relative to text position |
+| <a href="#SkPaint_Cap">Cap</a> | start and end geometry on stroked shapes |
+| <a href="#SkPaint_Flags">Flags</a> | values described by bits and masks |
+| <a href="#SkPaint_FontMetrics_FontMetricsFlags">FontMetrics::FontMetricsFlags</a> | valid <a href="#Font_Metrics">Font Metrics</a> |
+| <a href="#SkPaint_Hinting">Hinting</a> | level of glyph outline adjustment |
+| <a href="#SkPaint_Join">Join</a> | corner geometry on stroked shapes |
+| <a href="#SkPaint_Style">Style</a> | stroke, fill, or both |
+| <a href="#SkPaint_TextEncoding">TextEncoding</a> | character or glyph encoded size |
+
+## <a name="Classes_and_Structs"></a> Classes and Structs
+
+| name | description |
| --- | --- |
-| <a href="#SkPaint_FontMetrics">FontMetrics</a> | <a href="undocumented#Typeface">Typeface</a> values. |
+| <a href="#SkPaint_FontMetrics">FontMetrics</a> | typeface values |
## <a name="Constructors"></a> Constructors
-| | description |
+| name | description |
| --- | --- |
-| <a href="#SkPaint_empty_constructor">SkPaint()</a> | Constructs with default values. |
-| <a href="#SkPaint_copy_const_SkPaint">SkPaint(const SkPaint& paint)</a> | Makes a shallow copy. |
-| <a href="#SkPaint_move_SkPaint">SkPaint(SkPaint&& paint)</a> | Moves paint without copying it. |
-| | Decreases <a href="undocumented#Reference_Count">Reference Count</a> of owned objects. |
+| <a href="#SkPaint_empty_constructor">SkPaint()</a> | constructs with default values |
+| <a href="#SkPaint_move_SkPaint">SkPaint(SkPaint&& paint)</a> | moves paint without copying it |
+| <a href="#SkPaint_copy_const_SkPaint">SkPaint(const SkPaint& paint)</a> | makes a shallow copy |
+| | decreases <a href="undocumented#Reference_Count">Reference Count</a> of owned objects |
## <a name="Operators"></a> Operators
-| operator | description |
+| name | description |
| --- | --- |
-| <a href="#SkPaint_copy_operator">operator=(const SkPaint& paint)</a> | Makes a shallow copy. |
-| <a href="#SkPaint_move_operator">operator=(SkPaint&& paint)</a> | Moves paint without copying it. |
-| <a href="#SkPaint_equal_operator">operator==(const SkPaint& a, const SkPaint& b)</a> | Compares paints for equality. |
-| <a href="#SkPaint_notequal_operator">operator!=(const SkPaint& a, const SkPaint& b)</a> | Compares paints for inequality. |
+| <a href="#SkPaint_notequal_operator">operator!=(const SkPaint& a, const SkPaint& b)</a> | compares paints for inequality |
+| <a href="#SkPaint_move_operator">operator=(SkPaint&& paint)</a> | moves paint without copying it |
+| <a href="#SkPaint_copy_operator">operator=(const SkPaint& paint)</a> | makes a shallow copy |
+| <a href="#SkPaint_equal_operator">operator==(const SkPaint& a, const SkPaint& b)</a> | compares paints for equality |
## <a name="Member_Functions"></a> Member Functions
-| function | description |
+| name | description |
| --- | --- |
-| <a href="#SkPaint_breakText">breakText</a> | Returns text that fits in a width. |
-| <a href="#SkPaint_canComputeFastBounds">canComputeFastBounds</a> | Returns true if settings allow for fast bounds computation. |
-| <a href="#SkPaint_computeFastBounds">computeFastBounds</a> | Returns fill bounds for quick reject tests. |
-| <a href="#SkPaint_computeFastStrokeBounds">computeFastStrokeBounds</a> | Returns stroke bounds for quick reject tests. |
-| <a href="#SkPaint_containsText">containsText</a> | Returns if all text corresponds to <a href="#Glyph">Glyphs</a>. |
-| <a href="#SkPaint_countText">countText</a> | Returns number of <a href="#Glyph">Glyphs</a> in text. |
-| <a href="#SkPaint_doComputeFastBounds">doComputeFastBounds</a> | Returns bounds for quick reject tests. |
-| <a href="#SkPaint_flatten">flatten</a> | Serializes into a buffer. |
-| <a href="#SkPaint_getAlpha">getAlpha</a> | Returns <a href="#Alpha">Color Alpha</a>, color opacity. |
-| <a href="#SkPaint_getBlendMode">getBlendMode</a> | Returns <a href="undocumented#Blend_Mode">Blend Mode</a>, how colors combine with <a href="undocumented#Device">Device</a>. |
-| <a href="#SkPaint_getColor">getColor</a> | Returns <a href="#Alpha">Color Alpha</a> and <a href="#RGB">Color RGB</a>, one drawing color. |
-| <a href="#SkPaint_getColorFilter">getColorFilter</a> | Returns <a href="undocumented#Color_Filter">Color Filter</a>, how colors are altered. |
-| <a href="#SkPaint_getDrawLooper">getDrawLooper</a> | Returns <a href="undocumented#Draw_Looper">Draw Looper</a>, multiple layers. |
-| <a href="#SkPaint_getFillPath">getFillPath</a> | Returns fill path equivalent to stroke. |
-| <a href="#SkPaint_getFilterQuality">getFilterQuality</a> | Returns <a href="undocumented#Filter_Quality">Filter Quality</a>, image filtering level. |
-| <a href="#SkPaint_getFlags">getFlags</a> | Returns <a href="#SkPaint_Flags">Flags</a> stored in a bit field. |
-| <a href="#SkPaint_getFontBounds">getFontBounds</a> | Returns union all glyph bounds. |
-| <a href="#SkPaint_getFontMetrics">getFontMetrics</a> | Returns <a href="undocumented#Typeface">Typeface</a> metrics scaled by text size. |
-| <a href="#SkPaint_getFontSpacing">getFontSpacing</a> | Returns recommended spacing between lines. |
-| <a href="#SkPaint_getHash">getHash</a> | Returns a shallow hash for equality checks. |
-| <a href="#SkPaint_getHinting">getHinting</a> | Returns <a href="#SkPaint_Hinting">Hinting</a>, glyph outline adjustment level. |
-| <a href="#SkPaint_getImageFilter">getImageFilter</a> | Returns <a href="undocumented#Image_Filter">Image Filter</a>, alter pixels; blur. |
-| <a href="#SkPaint_getMaskFilter">getMaskFilter</a> | Returns <a href="undocumented#Mask_Filter">Mask Filter</a>, alterations to <a href="undocumented#Mask_Alpha">Mask Alpha</a>. |
-| <a href="#SkPaint_getPathEffect">getPathEffect</a> | Returns <a href="undocumented#Path_Effect">Path Effect</a>, modifications to path geometry; dashing. |
-| <a href="#SkPaint_getPosTextPath">getPosTextPath</a> | Returns <a href="SkPath_Reference#Path">Path</a> equivalent to positioned text. |
-| <a href="#SkPaint_getPosTextIntercepts">getPosTextIntercepts</a> | Returns where lines intersect positioned text; underlines. |
-| <a href="#SkPaint_getPosTextHIntercepts">getPosTextHIntercepts</a> | Returns where lines intersect horizontally positioned text; underlines. |
-| <a href="#SkPaint_getShader">getShader</a> | Returns <a href="undocumented#Shader">Shader</a>, multiple drawing colors; gradients. |
-| <a href="#SkPaint_getStrokeCap">getStrokeCap</a> | Returns <a href="#SkPaint_Cap">Cap</a>, the area drawn at path ends. |
-| <a href="#SkPaint_getStrokeJoin">getStrokeJoin</a> | Returns <a href="#SkPaint_Join">Join</a>, geometry on path corners. |
-| <a href="#SkPaint_getStrokeMiter">getStrokeMiter</a> | Returns <a href="#Miter_Limit">Miter Limit</a>, angles with sharp corners. |
-| <a href="#SkPaint_getStrokeWidth">getStrokeWidth</a> | Returns thickness of the stroke. |
-| <a href="#SkPaint_getStyle">getStyle</a> | Returns <a href="#SkPaint_Style">Style</a>: stroke, fill, or both. |
-| <a href="#SkPaint_getTextAlign">getTextAlign</a> | Returns <a href="#SkPaint_Align">Align</a>: left, center, or right. |
-| <a href="#SkPaint_getTextBlobIntercepts">getTextBlobIntercepts</a> | Returns where lines intersect <a href="undocumented#Text_Blob">Text Blob</a>; underlines. |
-| <a href="#SkPaint_getTextEncoding">getTextEncoding</a> | Returns character or glyph encoded size. b |
-| <a href="#SkPaint_getTextIntercepts">getTextIntercepts</a> | Returns where lines intersect text; underlines. |
-| <a href="#SkPaint_getTextPath">getTextPath</a> | Returns <a href="SkPath_Reference#Path">Path</a> equivalent to text. |
-| <a href="#SkPaint_getTextScaleX">getTextScaleX</a> | Returns the text horizontal scale; condensed text. |
-| <a href="#SkPaint_getTextSkewX">getTextSkewX</a> | Returns the text horizontal skew; oblique text. |
-| <a href="#SkPaint_getTextSize">getTextSize</a> | Returns text size in points. |
-| <a href="#SkPaint_getTextWidths">getTextWidths</a> | Returns advance and bounds for each glyph in text. |
-| <a href="#SkPaint_getTypeface">getTypeface</a> | Returns <a href="undocumented#Typeface">Typeface</a>, font description. |
-| <a href="#SkPaint_glyphsToUnichars">glyphsToUnichars</a> | Converts <a href="#Glyph">Glyphs</a> into text. |
-| <a href="#SkPaint_isAntiAlias">isAntiAlias</a> | Returns true if Anti-alias is set. |
-| <a href="#SkPaint_isAutohinted">isAutohinted</a> | Returns true if <a href="#Glyph">Glyphs</a> are always hinted. |
-| <a href="#SkPaint_isDevKernText">isDevKernText</a> | Returns true if <a href="SkPaint_Reference#Full_Hinting_Spacing">Full Hinting Spacing</a> is set. |
-| <a href="#SkPaint_isDither">isDither</a> | Returns true if <a href="#Dither">Dither</a> is set. |
-| <a href="#SkPaint_isEmbeddedBitmapText">isEmbeddedBitmapText</a> | Returns true if <a href="SkPaint_Reference#Font_Embedded_Bitmaps">Font Embedded Bitmaps</a> is set. |
-| <a href="#SkPaint_isFakeBoldText">isFakeBoldText</a> | Returns true if <a href="#Fake_Bold">Fake Bold</a> is set. |
-| <a href="#SkPaint_isLCDRenderText">isLCDRenderText</a> | Returns true if <a href="SkPaint_Reference#LCD_Text">LCD Text</a> is set. |
-| <a href="#SkPaint_isSrcOver">isSrcOver</a> | Returns true if <a href="undocumented#Blend_Mode">Blend Mode</a> is <a href="#SkBlendMode_kSrcOver">SkBlendMode::kSrcOver</a>. |
-| <a href="#SkPaint_isSubpixelText">isSubpixelText</a> | Returns true if <a href="SkPaint_Reference#Subpixel_Text">Subpixel Text</a> is set. |
-| <a href="#SkPaint_isVerticalText">isVerticalText</a> | Returns true if <a href="#Vertical_Text">Vertical Text</a> is set. |
-| <a href="#SkPaint_measureText">measureText</a> | Returns advance width and bounds of text. |
-| <a href="#SkPaint_nothingToDraw">nothingToDraw</a> | Returns true if <a href="#Paint">Paint</a> prevents all drawing. |
-| <a href="#SkPaint_refColorFilter">refColorFilter</a> | References <a href="undocumented#Color_Filter">Color Filter</a>, how colors are altered. |
-| <a href="#SkPaint_refDrawLooper">refDrawLooper</a> | References <a href="undocumented#Draw_Looper">Draw Looper</a>, multiple layers. |
-| <a href="#SkPaint_refImageFilter">refImageFilter</a> | References <a href="undocumented#Image_Filter">Image Filter</a>, alter pixels; blur. |
-| <a href="#SkPaint_refMaskFilter">refMaskFilter</a> | References <a href="undocumented#Mask_Filter">Mask Filter</a>, alterations to <a href="undocumented#Mask_Alpha">Mask Alpha</a>. |
-| <a href="#SkPaint_refPathEffect">refPathEffect</a> | References <a href="undocumented#Path_Effect">Path Effect</a>, modifications to path geometry; dashing. |
-| <a href="#SkPaint_refShader">refShader</a> | References <a href="undocumented#Shader">Shader</a>, multiple drawing colors; gradients. |
-| <a href="#SkPaint_refTypeface">refTypeface</a> | References <a href="undocumented#Typeface">Typeface</a>, font description. |
-| <a href="#SkPaint_reset">reset</a> | Sets to default values. |
-| <a href="#SkPaint_setAlpha">setAlpha</a> | Sets <a href="#Alpha">Color Alpha</a>, color opacity. |
-| <a href="#SkPaint_setAntiAlias">setAntiAlias</a> | Sets or clears Anti-alias. |
-| <a href="#SkPaint_setARGB">setARGB</a> | Sets color by component. |
-| <a href="#SkPaint_setAutohinted">setAutohinted</a> | Sets <a href="#Glyph">Glyphs</a> to always be hinted. |
-| <a href="#SkPaint_setBlendMode">setBlendMode</a> | Sets <a href="undocumented#Blend_Mode">Blend Mode</a>, how colors combine with destination. |
-| <a href="#SkPaint_setColor">setColor</a> | Sets <a href="#Alpha">Color Alpha</a> and <a href="#RGB">Color RGB</a>, one drawing color. |
-| <a href="#SkPaint_setColorFilter">setColorFilter</a> | Sets <a href="undocumented#Color_Filter">Color Filter</a>, alters color. |
-| <a href="#SkPaint_setDevKernText">setDevKernText</a> | Sets or clears <a href="SkPaint_Reference#Full_Hinting_Spacing">Full Hinting Spacing</a>. |
-| <a href="#SkPaint_setDither">setDither</a> | Sets or clears <a href="#Dither">Dither</a>. |
-| <a href="#SkPaint_setDrawLooper">setDrawLooper</a> | Sets <a href="undocumented#Draw_Looper">Draw Looper</a>, multiple layers. |
-| <a href="#SkPaint_setEmbeddedBitmapText">setEmbeddedBitmapText</a> | Sets or clears <a href="SkPaint_Reference#Font_Embedded_Bitmaps">Font Embedded Bitmaps</a>. |
-| <a href="#SkPaint_setFakeBoldText">setFakeBoldText</a> | Sets or clears <a href="#Fake_Bold">Fake Bold</a>. |
-| <a href="#SkPaint_setFilterQuality">setFilterQuality</a> | Sets <a href="undocumented#Filter_Quality">Filter Quality</a>, the image filtering level. |
-| <a href="#SkPaint_setFlags">setFlags</a> | Sets multiple <a href="#SkPaint_Flags">Flags</a> in a bit field. |
-| <a href="#SkPaint_setHinting">setHinting</a> | Sets <a href="#SkPaint_Hinting">Hinting</a>, glyph outline adjustment level. |
-| <a href="#SkPaint_setLCDRenderText">setLCDRenderText</a> | Sets or clears <a href="SkPaint_Reference#LCD_Text">LCD Text</a>. |
-| <a href="#SkPaint_setMaskFilter">setMaskFilter</a> | Sets <a href="undocumented#Mask_Filter">Mask Filter</a>, alterations to <a href="undocumented#Mask_Alpha">Mask Alpha</a>. |
-| <a href="#SkPaint_setPathEffect">setPathEffect</a> | Sets <a href="undocumented#Path_Effect">Path Effect</a>, modifications to path geometry; dashing. |
-| <a href="#SkPaint_setImageFilter">setImageFilter</a> | Sets <a href="undocumented#Image_Filter">Image Filter</a>, alter pixels; blur. |
-| <a href="#SkPaint_setShader">setShader</a> | Sets <a href="undocumented#Shader">Shader</a>, multiple drawing colors; gradients. |
-| <a href="#SkPaint_setStrokeCap">setStrokeCap</a> | Sets <a href="#SkPaint_Cap">Cap</a>, the area drawn at path ends. |
-| <a href="#SkPaint_setStrokeJoin">setStrokeJoin</a> | Sets <a href="#SkPaint_Join">Join</a>, geometry on path corners. |
-| <a href="#SkPaint_setStrokeMiter">setStrokeMiter</a> | Sets <a href="#Miter_Limit">Miter Limit</a>, angles with sharp corners. |
-| <a href="#SkPaint_setStrokeWidth">setStrokeWidth</a> | Sets thickness of the stroke. |
-| <a href="#SkPaint_setStyle">setStyle</a> | Sets <a href="#SkPaint_Style">Style</a>: stroke, fill, or both. |
-| <a href="#SkPaint_setSubpixelText">setSubpixelText</a> | Sets or clears <a href="SkPaint_Reference#Subpixel_Text">Subpixel Text</a>. |
-| <a href="#SkPaint_setTextAlign">setTextAlign</a> | Sets <a href="#SkPaint_Align">Align</a>: left, center, or right. |
-| <a href="#SkPaint_setTextEncoding">setTextEncoding</a> | Sets character or glyph encoded size. |
-| <a href="#SkPaint_setTextScaleX">setTextScaleX</a> | Sets the text horizontal scale; condensed text. |
-| <a href="#SkPaint_setTextSkewX">setTextSkewX</a> | Sets the text horizontal skew; oblique text. |
-| <a href="#SkPaint_setTextSize">setTextSize</a> | Sets text size in points. |
-| <a href="#SkPaint_setTypeface">setTypeface</a> | Sets <a href="undocumented#Typeface">Typeface</a>, font description. |
-| <a href="#SkPaint_setVerticalText">setVerticalText</a> | Sets or clears <a href="#Vertical_Text">Vertical Text</a>. |
-| <a href="#SkPaint_textToGlyphs">textToGlyphs</a> | Converts text into glyph indices. |
-| <a href="#SkPaint_toString">toString</a> | Converts <a href="#Paint">Paint</a> to machine readable form. |
-| <a href="#SkPaint_unflatten">unflatten</a> | Populates from a serialized stream. |
+| <a href="#SkPaint_breakText">breakText</a> | returns text that fits in a width |
+| <a href="#SkPaint_canComputeFastBounds">canComputeFastBounds</a> | returns true if settings allow for fast bounds computation |
+| <a href="#SkPaint_computeFastBounds">computeFastBounds</a> | returns fill bounds for quick reject tests |
+| <a href="#SkPaint_computeFastStrokeBounds">computeFastStrokeBounds</a> | returns stroke bounds for quick reject tests |
+| <a href="#SkPaint_containsText">containsText</a> | returns if all text corresponds to <a href="#Glyph">Glyphs</a> |
+| <a href="#SkPaint_countText">countText</a> | returns number of <a href="#Glyph">Glyphs</a> in text |
+| <a href="#SkPaint_doComputeFastBounds">doComputeFastBounds</a> | returns bounds for quick reject tests |
+| <a href="#SkPaint_flatten">flatten</a> | serializes into a buffer |
+| <a href="#SkPaint_getAlpha">getAlpha</a> | returns <a href="#Alpha">Color Alpha</a>, color opacity |
+| <a href="#SkPaint_getBlendMode">getBlendMode</a> | returns <a href="undocumented#Blend_Mode">Blend Mode</a>, how colors combine with <a href="undocumented#Device">Device</a> |
+| <a href="#SkPaint_getColor">getColor</a> | returns <a href="#Alpha">Color Alpha</a> and <a href="#RGB">Color RGB</a>, one drawing color |
+| <a href="#SkPaint_getColorFilter">getColorFilter</a> | returns <a href="undocumented#Color_Filter">Color Filter</a>, how colors are altered |
+| <a href="#SkPaint_getDrawLooper">getDrawLooper</a> | returns <a href="undocumented#Draw_Looper">Draw Looper</a>, multiple layers |
+| <a href="#SkPaint_getFillPath">getFillPath</a> | returns fill path equivalent to stroke |
+| <a href="#SkPaint_getFilterQuality">getFilterQuality</a> | returns <a href="undocumented#Filter_Quality">Filter Quality</a>, image filtering level |
+| <a href="#SkPaint_getFlags">getFlags</a> | returns <a href="#SkPaint_Flags">Flags</a> stored in a bit field |
+| <a href="#SkPaint_getFontBounds">getFontBounds</a> | returns union all glyph bounds |
+| <a href="#SkPaint_getFontMetrics">getFontMetrics</a> | returns <a href="undocumented#Typeface">Typeface</a> metrics scaled by text size |
+| <a href="#SkPaint_getFontSpacing">getFontSpacing</a> | returns recommended spacing between lines |
+| <a href="#SkPaint_getHash">getHash</a> | returns a shallow hash for equality checks |
+| <a href="#SkPaint_getHinting">getHinting</a> | returns <a href="#SkPaint_Hinting">Hinting</a>, glyph outline adjustment level |
+| <a href="#SkPaint_getImageFilter">getImageFilter</a> | returns <a href="undocumented#Image_Filter">Image Filter</a>, alter pixels; blur |
+| <a href="#SkPaint_getMaskFilter">getMaskFilter</a> | returns <a href="undocumented#Mask_Filter">Mask Filter</a>, alterations to <a href="undocumented#Mask_Alpha">Mask Alpha</a> |
+| <a href="#SkPaint_getPathEffect">getPathEffect</a> | returns <a href="undocumented#Path_Effect">Path Effect</a>, modifications to path geometry; dashing |
+| <a href="#SkPaint_getPosTextHIntercepts">getPosTextHIntercepts</a> | returns where lines intersect horizontally positioned text; underlines |
+| <a href="#SkPaint_getPosTextIntercepts">getPosTextIntercepts</a> | returns where lines intersect positioned text; underlines |
+| <a href="#SkPaint_getPosTextPath">getPosTextPath</a> | returns <a href="SkPath_Reference#Path">Path</a> equivalent to positioned text |
+| <a href="#SkPaint_getShader">getShader</a> | returns <a href="undocumented#Shader">Shader</a>, multiple drawing colors; gradients |
+| <a href="#SkPaint_getStrokeCap">getStrokeCap</a> | returns <a href="#SkPaint_Cap">Cap</a>, the area drawn at path ends |
+| <a href="#SkPaint_getStrokeJoin">getStrokeJoin</a> | returns <a href="#SkPaint_Join">Join</a>, geometry on path corners |
+| <a href="#SkPaint_getStrokeMiter">getStrokeMiter</a> | returns <a href="#Miter_Limit">Miter Limit</a>, angles with sharp corners |
+| <a href="#SkPaint_getStrokeWidth">getStrokeWidth</a> | returns thickness of the stroke |
+| <a href="#SkPaint_getStyle">getStyle</a> | returns <a href="#SkPaint_Style">Style</a>: stroke, fill, or both |
+| <a href="#SkPaint_getTextAlign">getTextAlign</a> | returns <a href="#SkPaint_Align">Align</a>: left, center, or right |
+| <a href="#SkPaint_getTextBlobIntercepts">getTextBlobIntercepts</a> | returns where lines intersect <a href="undocumented#Text_Blob">Text Blob</a>; underlines |
+| <a href="#SkPaint_getTextEncoding">getTextEncoding</a> | returns character or glyph encoded size |
+| <a href="#SkPaint_getTextIntercepts">getTextIntercepts</a> | returns where lines intersect text; underlines |
+| <a href="#SkPaint_getTextPath">getTextPath</a> | returns <a href="SkPath_Reference#Path">Path</a> equivalent to text |
+| <a href="#SkPaint_getTextScaleX">getTextScaleX</a> | returns the text horizontal scale; condensed text |
+| <a href="#SkPaint_getTextSize">getTextSize</a> | returns text size in points |
+| <a href="#SkPaint_getTextSkewX">getTextSkewX</a> | returns the text horizontal skew; oblique text |
+| <a href="#SkPaint_getTextWidths">getTextWidths</a> | returns advance and bounds for each glyph in text |
+| <a href="#SkPaint_getTypeface">getTypeface</a> | returns <a href="undocumented#Typeface">Typeface</a>, font description |
+| <a href="#SkPaint_glyphsToUnichars">glyphsToUnichars</a> | converts <a href="#Glyph">Glyphs</a> into text |
+| <a href="#SkPaint_isAntiAlias">isAntiAlias</a> | returns true if Anti-alias is set |
+| <a href="#SkPaint_isAutohinted">isAutohinted</a> | returns true if <a href="#Glyph">Glyphs</a> are always hinted |
+| <a href="#SkPaint_isDevKernText">isDevKernText</a> | returns true if <a href="SkPaint_Reference#Full_Hinting_Spacing">Full Hinting Spacing</a> is set |
+| <a href="#SkPaint_isDither">isDither</a> | returns true if <a href="#Dither">Dither</a> is set |
+| <a href="#SkPaint_isEmbeddedBitmapText">isEmbeddedBitmapText</a> | returns true if <a href="SkPaint_Reference#Font_Embedded_Bitmaps">Font Embedded Bitmaps</a> is set |
+| <a href="#SkPaint_isFakeBoldText">isFakeBoldText</a> | returns true if <a href="#Fake_Bold">Fake Bold</a> is set |
+| <a href="#SkPaint_isLCDRenderText">isLCDRenderText</a> | returns true if <a href="SkPaint_Reference#LCD_Text">LCD Text</a> is set |
+| <a href="#SkPaint_isSrcOver">isSrcOver</a> | returns true if <a href="undocumented#Blend_Mode">Blend Mode</a> is <a href="#SkBlendMode_kSrcOver">SkBlendMode::kSrcOver</a> |
+| <a href="#SkPaint_isSubpixelText">isSubpixelText</a> | returns true if <a href="SkPaint_Reference#Subpixel_Text">Subpixel Text</a> is set |
+| <a href="#SkPaint_isVerticalText">isVerticalText</a> | returns true if <a href="#Vertical_Text">Vertical Text</a> is set |
+| <a href="#SkPaint_measureText">measureText</a> | returns advance width and bounds of text |
+| <a href="#SkPaint_nothingToDraw">nothingToDraw</a> | returns true if <a href="#Paint">Paint</a> prevents all drawing |
+| <a href="#SkPaint_refColorFilter">refColorFilter</a> | references <a href="undocumented#Color_Filter">Color Filter</a>, how colors are altered |
+| <a href="#SkPaint_refDrawLooper">refDrawLooper</a> | references <a href="undocumented#Draw_Looper">Draw Looper</a>, multiple layers |
+| <a href="#SkPaint_refImageFilter">refImageFilter</a> | references <a href="undocumented#Image_Filter">Image Filter</a>, alter pixels; blur |
+| <a href="#SkPaint_refMaskFilter">refMaskFilter</a> | references <a href="undocumented#Mask_Filter">Mask Filter</a>, alterations to <a href="undocumented#Mask_Alpha">Mask Alpha</a> |
+| <a href="#SkPaint_refPathEffect">refPathEffect</a> | references <a href="undocumented#Path_Effect">Path Effect</a>, modifications to path geometry; dashing |
+| <a href="#SkPaint_refShader">refShader</a> | references <a href="undocumented#Shader">Shader</a>, multiple drawing colors; gradients |
+| <a href="#SkPaint_refTypeface">refTypeface</a> | references <a href="undocumented#Typeface">Typeface</a>, font description |
+| <a href="#SkPaint_reset">reset</a> | sets to default values |
+| <a href="#SkPaint_setARGB">setARGB</a> | sets color by component |
+| <a href="#SkPaint_setAlpha">setAlpha</a> | sets <a href="#Alpha">Color Alpha</a>, color opacity |
+| <a href="#SkPaint_setAntiAlias">setAntiAlias</a> | sets or clears Anti-alias |
+| <a href="#SkPaint_setAutohinted">setAutohinted</a> | sets <a href="#Glyph">Glyphs</a> to always be hinted |
+| <a href="#SkPaint_setBlendMode">setBlendMode</a> | sets <a href="undocumented#Blend_Mode">Blend Mode</a>, how colors combine with destination |
+| <a href="#SkPaint_setColor">setColor</a> | sets <a href="#Alpha">Color Alpha</a> and <a href="#RGB">Color RGB</a>, one drawing color |
+| <a href="#SkPaint_setColorFilter">setColorFilter</a> | sets <a href="undocumented#Color_Filter">Color Filter</a>, alters color |
+| <a href="#SkPaint_setDevKernText">setDevKernText</a> | sets or clears <a href="SkPaint_Reference#Full_Hinting_Spacing">Full Hinting Spacing</a> |
+| <a href="#SkPaint_setDither">setDither</a> | sets or clears <a href="#Dither">Dither</a> |
+| <a href="#SkPaint_setDrawLooper">setDrawLooper</a> | sets <a href="undocumented#Draw_Looper">Draw Looper</a>, multiple layers |
+| <a href="#SkPaint_setEmbeddedBitmapText">setEmbeddedBitmapText</a> | sets or clears <a href="SkPaint_Reference#Font_Embedded_Bitmaps">Font Embedded Bitmaps</a> |
+| <a href="#SkPaint_setFakeBoldText">setFakeBoldText</a> | sets or clears <a href="#Fake_Bold">Fake Bold</a> |
+| <a href="#SkPaint_setFilterQuality">setFilterQuality</a> | sets <a href="undocumented#Filter_Quality">Filter Quality</a>, the image filtering level |
+| <a href="#SkPaint_setFlags">setFlags</a> | sets multiple <a href="#SkPaint_Flags">Flags</a> in a bit field |
+| <a href="#SkPaint_setHinting">setHinting</a> | sets <a href="#SkPaint_Hinting">Hinting</a>, glyph outline adjustment level |
+| <a href="#SkPaint_setImageFilter">setImageFilter</a> | sets <a href="undocumented#Image_Filter">Image Filter</a>, alter pixels; blur |
+| <a href="#SkPaint_setLCDRenderText">setLCDRenderText</a> | sets or clears <a href="SkPaint_Reference#LCD_Text">LCD Text</a> |
+| <a href="#SkPaint_setMaskFilter">setMaskFilter</a> | sets <a href="undocumented#Mask_Filter">Mask Filter</a>, alterations to <a href="undocumented#Mask_Alpha">Mask Alpha</a> |
+| <a href="#SkPaint_setPathEffect">setPathEffect</a> | sets <a href="undocumented#Path_Effect">Path Effect</a>, modifications to path geometry; dashing |
+| <a href="#SkPaint_setShader">setShader</a> | sets <a href="undocumented#Shader">Shader</a>, multiple drawing colors; gradients |
+| <a href="#SkPaint_setStrokeCap">setStrokeCap</a> | sets <a href="#SkPaint_Cap">Cap</a>, the area drawn at path ends |
+| <a href="#SkPaint_setStrokeJoin">setStrokeJoin</a> | sets <a href="#SkPaint_Join">Join</a>, geometry on path corners |
+| <a href="#SkPaint_setStrokeMiter">setStrokeMiter</a> | sets <a href="#Miter_Limit">Miter Limit</a>, angles with sharp corners |
+| <a href="#SkPaint_setStrokeWidth">setStrokeWidth</a> | sets thickness of the stroke |
+| <a href="#SkPaint_setStyle">setStyle</a> | sets <a href="#SkPaint_Style">Style</a>: stroke, fill, or both |
+| <a href="#SkPaint_setSubpixelText">setSubpixelText</a> | sets or clears <a href="SkPaint_Reference#Subpixel_Text">Subpixel Text</a> |
+| <a href="#SkPaint_setTextAlign">setTextAlign</a> | sets <a href="#SkPaint_Align">Align</a>: left, center, or right |
+| <a href="#SkPaint_setTextEncoding">setTextEncoding</a> | sets character or glyph encoded size |
+| <a href="#SkPaint_setTextScaleX">setTextScaleX</a> | sets the text horizontal scale; condensed text |
+| <a href="#SkPaint_setTextSize">setTextSize</a> | sets text size in points |
+| <a href="#SkPaint_setTextSkewX">setTextSkewX</a> | sets the text horizontal skew; oblique text |
+| <a href="#SkPaint_setTypeface">setTypeface</a> | sets <a href="undocumented#Typeface">Typeface</a>, font description |
+| <a href="#SkPaint_setVerticalText">setVerticalText</a> | sets or clears <a href="#Vertical_Text">Vertical Text</a> |
+| <a href="#SkPaint_textToGlyphs">textToGlyphs</a> | converts text into glyph indices |
+| <a href="#SkPaint_toString">toString</a> | converts <a href="#Paint">Paint</a> to machine readable form |
+| <a href="#SkPaint_unflatten">unflatten</a> | populates from a serialized stream |
# <a name="Initializers"></a> Initializers
@@ -632,6 +643,8 @@ serialized data describing <a href="#Paint">Paint</a> content</td>
### Return Value
+false if the <a href="#SkPaint_unflatten_buffer">buffer</a> contains invalid data
+
### See Also
<a href="undocumented#SkReadBuffer">SkReadBuffer</a>
diff --git a/site/user/api/SkPath_Reference.md b/site/user/api/SkPath_Reference.md
index e5900b364a..0924a80ff7 100644
--- a/site/user/api/SkPath_Reference.md
+++ b/site/user/api/SkPath_Reference.md
@@ -37,11 +37,6 @@ form fills or holes. <a href="#Fill_Type">Fill Type</a> also determines whether
a new <a href="#Path">Path</a> independent of the original. Internally, the copy does not duplicate
its contents until it is edited, to reduce memory use and improve performance.
-## <a name="Subtopics"></a> Subtopics
-
-| topics | description |
-| --- | --- |
-
## <a name="Contour"></a> Contour
<a href="#Contour">Contour</a> contains one or more <a href="#Verb">Verbs</a>, and as many <a href="#Point">Points</a> as
@@ -97,121 +92,151 @@ Internally, <a href="#Path">Path</a> lazily computes metrics likes bounds and co
# <a name="Overview"></a> Overview
+## <a name="Subtopics"></a> Subtopics
+
+| name | description |
+| --- | --- |
+| <a href="#Overview_Classes_and_Structs">Classes and Structs</a> | embedded struct and class members |
+| <a href="#Overview_Constants">Constants</a> | enum and enum class, const values |
+| <a href="#Overview_Constructors">Constructors</a> | functions that construct <a href="#SkPath">SkPath</a> |
+| <a href="#Overview_Member_Functions">Member Functions</a> | static functions and member methods |
+| <a href="#Overview_Operators">Operators</a> | operator overloading methods |
+| <a href="#Overview_Related_Functions">Related Functions</a> | similar methods grouped together |
+
+## <a name="Related_Functions"></a> Related Functions
+
+| name | description |
+| --- | --- |
+| <a href="#Conic">Conic</a> | conic section defined by three points and a weight |
+| <a href="#Conic_Weight">Conic Weight</a> | strength of control <a href="SkPoint_Reference#Point">Point</a> in <a href="#Conic">Conic</a> |
+| <a href="#Contour">Contour</a> | loop of lines and curves |
+| <a href="#SkPath_Convexity">Convexity</a> | if <a href="#Path">Path</a> is concave or convex |
+| <a href="#Cubic">Cubic Bezier</a> | third order curve defined by four points |
+| <a href="#SkPath_Direction">Direction</a> | <a href="#Path">Path</a> contour orientation |
+| <a href="#Fill_Type">Fill Type</a> | <a href="#Path">Path</a> fill rule, normal and inverted |
+| <a href="#Last_Point">Last Point</a> | final <a href="SkPoint_Reference#Point">Point</a> in <a href="#Contour">Contour</a> |
+| <a href="#Point_Array">Point Array</a> | end points and control points for lines and curves |
+| <a href="#Quad">Quadratic Bezier</a> | parabolic section defined by three points |
+| <a href="#Verb_Array">Verb Array</a> | line and curve type for points |
+| <a href="#Verb">Verbs</a> | <a href="#Path">Path</a> line and curve type |
+| <a href="SkPath_Reference#Zero_Length">Zero Length Contour</a> | consideration when contour has no length |
+
## <a name="Constants"></a> Constants
-| constants | description |
+| name | description |
| --- | --- |
-| <a href="#SkPath_AddPathMode">AddPathMode</a> | Sets <a href="#SkPath_addPath">addPath</a> options. |
-| <a href="#SkPath_ArcSize">ArcSize</a> | Used by <a href="#SkPath_arcTo_4">arcTo(SkScalar rx, SkScalar ry, SkScalar xAxisRotate, ArcSize largeArc, Direction sweep, SkScalar x, SkScalar y)</a>. |
-| <a href="#SkPath_Convexity">Convexity</a> | Returns if <a href="#Path">Path</a> is convex or concave. |
-| <a href="#SkPath_Direction">Direction</a> | Sets <a href="#Contour">Contour</a> clockwise or counterclockwise. |
-| <a href="#SkPath_FillType">FillType</a> | Sets winding rule and inverse fill. |
-| <a href="#SkPath_SegmentMask">SegmentMask</a> | Returns <a href="#SkPath_Verb">Verb</a> types in <a href="#Path">Path</a>. |
-| <a href="#SkPath_Verb">Verb</a> | Controls how <a href="#Path">Path</a> <a href="#Point">Points</a> are interpreted. |
+| <a href="#SkPath_AddPathMode">AddPathMode</a> | sets <a href="#SkPath_addPath">addPath</a> options |
+| <a href="#SkPath_ArcSize">ArcSize</a> | used by <a href="#SkPath_arcTo">arcTo</a> variation |
+| <a href="#SkPath_Convexity">Convexity</a> | returns if <a href="#Path">Path</a> is convex or concave |
+| <a href="#SkPath_Direction">Direction</a> | sets <a href="#Contour">Contour</a> clockwise or counterclockwise |
+| <a href="#SkPath_FillType">FillType</a> | sets winding rule and inverse fill |
+| <a href="#SkPath_SegmentMask">SegmentMask</a> | returns <a href="#SkPath_Verb">Verb</a> types in <a href="#Path">Path</a> |
+| <a href="#SkPath_Verb">Verb</a> | controls how <a href="#Path">Path</a> <a href="#Point">Points</a> are interpreted |
## <a name="Classes_and_Structs"></a> Classes and Structs
-| class or struct | description |
+| name | description |
| --- | --- |
-| <a href="#SkPath_Iter">Iter</a> | Iterates through lines and curves, skipping degenerates. |
-| <a href="#SkPath_RawIter">RawIter</a> | Iterates through lines and curves, including degenerates. |
+| <a href="#SkPath_Iter">Iter</a> | iterates through lines and curves, skipping degenerates |
+| <a href="#SkPath_RawIter">RawIter</a> | iterates through lines and curves, including degenerates |
## <a name="Constructors"></a> Constructors
-| | description |
+| name | description |
| --- | --- |
-| <a href="#SkPath_empty_constructor">SkPath()</a> | Constructs with default values. |
-| <a href="#SkPath_copy_const_SkPath">SkPath(const SkPath& path)</a> | Makes a shallow copy. |
-| | Decreases <a href="undocumented#Reference_Count">Reference Count</a> of owned objects. |
+| <a href="#SkPath_empty_constructor">SkPath()</a> | constructs with default values |
+| <a href="#SkPath_copy_const_SkPath">SkPath(const SkPath& path)</a> | makes a shallow copy |
+| | decreases <a href="undocumented#Reference_Count">Reference Count</a> of owned objects |
## <a name="Operators"></a> Operators
-| operator | description |
+| name | description |
| --- | --- |
-| <a href="#SkPath_copy_operator">operator=(const SkPath& path)</a> | Makes a shallow copy. |
-| <a href="#SkPath_equal_operator">operator==(const SkPath& a, const SkPath& b)</a> | Compares paths for equality. |
-| <a href="#SkPath_notequal_operator">operator!=(const SkPath& a, const SkPath& b)</a> | Compares paths for inequality. |
+| <a href="#SkPath_notequal_operator">operator!=(const SkPath& a, const SkPath& b)</a> | compares paths for inequality |
+| <a href="#SkPath_copy_operator">operator=(const SkPath& path)</a> | makes a shallow copy |
+| <a href="#SkPath_equal_operator">operator==(const SkPath& a, const SkPath& b)</a> | compares paths for equality |
## <a name="Member_Functions"></a> Member Functions
-| function | description |
+| name | description |
| --- | --- |
-| <a href="#SkPath_ConvertConicToQuads">ConvertConicToQuads</a> | Approximates <a href="#Conic">Conic</a> with <a href="#Quad">Quad</a> array. |
-| <a href="#SkPath_ConvertToNonInverseFillType">ConvertToNonInverseFillType</a> | Returns <a href="#Fill_Type">Fill Type</a> representing inside geometry. |
-| <a href="#SkPath_IsCubicDegenerate">IsCubicDegenerate</a> | Returns if <a href="#Cubic">Cubic</a> is very small. |
-| <a href="#SkPath_IsInverseFillType">IsInverseFillType</a> | Returns if <a href="#Fill_Type">Fill Type</a> represents outside geometry. |
-| <a href="#SkPath_IsLineDegenerate">IsLineDegenerate</a> | Returns if <a href="undocumented#Line">Line</a> is very small. |
-| <a href="#SkPath_IsQuadDegenerate">IsQuadDegenerate</a> | Returns if <a href="#Quad">Quad</a> is very small. |
-| <a href="#SkPath_addArc">addArc</a> | Adds one <a href="#Contour">Contour</a> containing <a href="#Arc">Arc</a>. |
-| <a href="#SkPath_addCircle">addCircle</a> | Adds one <a href="#Contour">Contour</a> containing <a href="undocumented#Circle">Circle</a>. |
-| <a href="#SkPath_addOval">addOval</a> | Adds one <a href="#Contour">Contour</a> containing <a href="undocumented#Oval">Oval</a>. |
-| <a href="#SkPath_addPath">addPath</a> | Adds contents of <a href="#Path">Path</a>. |
-| <a href="#SkPath_addPoly">addPoly</a> | Adds one <a href="#Contour">Contour</a> containing connected lines. |
-| <a href="#SkPath_addRRect">addRRect</a> | Adds one <a href="#Contour">Contour</a> containing <a href="undocumented#Round_Rect">Round Rect</a>. |
-| <a href="#SkPath_addRect">addRect</a> | Adds one <a href="#Contour">Contour</a> containing <a href="SkRect_Reference#Rect">Rect</a>. |
-| <a href="#SkPath_addRoundRect">addRoundRect</a> | Adds one <a href="#Contour">Contour</a> containing <a href="undocumented#Round_Rect">Round Rect</a> with common corner radii. |
-| <a href="#SkPath_arcTo">arcTo</a> | Appends <a href="#Arc">Arc</a>. |
-| <a href="#SkPath_close">close</a> | Makes last <a href="#Contour">Contour</a> a loop. |
-| <a href="#SkPath_computeTightBounds">computeTightBounds</a> | Returns extent of geometry. |
-| <a href="#SkPath_conicTo">conicTo</a> | Appends <a href="#Conic">Conic</a>. |
-| <a href="#SkPath_conservativelyContainsRect">conservativelyContainsRect</a> | Returns true if <a href="SkRect_Reference#Rect">Rect</a> may be inside. |
-| <a href="#SkPath_contains">contains</a> | Returns if <a href="SkPoint_Reference#Point">Point</a> is in fill area. |
-| <a href="#SkPath_countPoints">countPoints</a> | Returns <a href="#Point_Array">Point Array</a> length. |
-| <a href="#SkPath_countVerbs">countVerbs</a> | Returns <a href="#Verb_Array">Verb Array</a> length. |
-| <a href="#SkPath_cubicTo">cubicTo</a> | Appends <a href="#Cubic">Cubic</a>. |
-| <a href="#SkPath_dump_2">dump</a> | Sends text representation using floats to standard output. |
-| <a href="#SkPath_dumpHex">dumpHex</a> | Sends text representation using hexadecimal to standard output. |
-| <a href="#SkPath_getBounds">getBounds</a> | Returns maximum and minimum of <a href="#Point_Array">Point Array</a>. |
-| <a href="#SkPath_getConvexity">getConvexity</a> | Returns geometry convexity, computing if necessary. |
-| <a href="#SkPath_getConvexityOrUnknown">getConvexityOrUnknown</a> | Returns geometry convexity if known. |
-| <a href="#SkPath_getFillType">getFillType</a> | Returns <a href="#Fill_Type">Fill Type</a>: winding, even-odd, inverse. |
-| <a href="#SkPath_getGenerationID">getGenerationID</a> | Returns <a href="#SkPath_unique">unique</a> ID. |
-| <a href="#SkPath_getLastPt">getLastPt</a> | Returns <a href="#Last_Point">Last Point</a>. |
-| <a href="#SkPath_getPoint">getPoint</a> | Returns entry from <a href="#Point_Array">Point Array</a>. |
-| <a href="#SkPath_getPoints">getPoints</a> | Returns <a href="#Point_Array">Point Array</a>. |
-| <a href="#SkPath_getSegmentMasks">getSegmentMasks</a> | Returns types in <a href="#Verb_Array">Verb Array</a>. |
-| <a href="#SkPath_getVerbs">getVerbs</a> | Returns <a href="#Verb_Array">Verb Array</a>. |
-| <a href="#SkPath_incReserve">incReserve</a> | Hint to reserve space for additional data. |
-| <a href="#SkPath_interpolate">interpolate</a> | Interpolates between <a href="#Path">Path</a> pair. |
-| <a href="#SkPath_isConvex">isConvex</a> | Returns if geometry is convex. |
-| <a href="#SkPath_isEmpty">isEmpty</a> | Returns if verb count is zero. |
-| <a href="#SkPath_isFinite">isFinite</a> | Returns if all <a href="SkPoint_Reference#Point">Point</a> values are finite. |
-| <a href="#SkPath_isInterpolatable">isInterpolatable</a> | Returns if pair <a href="#SkPath_contains">contains</a> equal counts of <a href="#Verb_Array">Verb Array</a> and <a href="#Weight">Weights</a>. |
-| <a href="#SkPath_isInverseFillType">isInverseFillType</a> | Returns if <a href="#Fill_Type">Fill Type</a> fills outside geometry. |
-| <a href="#SkPath_isLastContourClosed">isLastContourClosed</a> | Returns if final <a href="#Contour">Contour</a> forms a loop. |
-| <a href="#SkPath_isLine">isLine</a> | Returns if describes <a href="undocumented#Line">Line</a>. |
-| <a href="#SkPath_isNestedFillRects">isNestedFillRects</a> | Returns if describes <a href="SkRect_Reference#Rect">Rect</a> pair, one inside the other. |
-| <a href="#SkPath_isOval">isOval</a> | Returns if describes <a href="undocumented#Oval">Oval</a>. |
-| <a href="#SkPath_isRRect">isRRect</a> | Returns if describes <a href="undocumented#Round_Rect">Round Rect</a>. |
-| <a href="#SkPath_isRect">isRect</a> | Returns if describes <a href="SkRect_Reference#Rect">Rect</a>. |
-| <a href="#SkPath_isValid">isValid</a> | Returns if data is internally consistent. |
-| <a href="#SkPath_isVolatile">isVolatile</a> | Returns if <a href="undocumented#Device">Device</a> should not cache. |
-| <a href="#SkPath_lineTo">lineTo</a> | Appends <a href="undocumented#Line">Line</a>. |
-| <a href="#SkPath_moveTo">moveTo</a> | Starts <a href="#Contour">Contour</a>. |
-| <a href="#SkPath_offset">offset</a> | Translates <a href="#Point_Array">Point Array</a>. |
-| <a href="#SkPath_quadTo">quadTo</a> | Appends <a href="#Quad">Quad</a>. |
-| <a href="#SkPath_rArcTo">rArcTo</a> | Appends <a href="#Arc">Arc</a> relative to <a href="#Last_Point">Last Point</a>. |
-| <a href="#SkPath_rConicTo">rConicTo</a> | Appends <a href="#Conic">Conic</a> relative to <a href="#Last_Point">Last Point</a>. |
-| <a href="#SkPath_rCubicTo">rCubicTo</a> | Appends <a href="#Cubic">Cubic</a> relative to <a href="#Last_Point">Last Point</a>. |
-| <a href="#SkPath_rLineTo">rLineTo</a> | Appends <a href="undocumented#Line">Line</a> relative to <a href="#Last_Point">Last Point</a>. |
-| <a href="#SkPath_rMoveTo">rMoveTo</a> | Starts <a href="#Contour">Contour</a> relative to <a href="#Last_Point">Last Point</a>. |
-| <a href="#SkPath_rQuadTo">rQuadTo</a> | Appends <a href="#Quad">Quad</a> relative to <a href="#Last_Point">Last Point</a>. |
-| <a href="#SkPath_readFromMemory">readFromMemory</a> | Initializes from buffer. |
-| <a href="#SkPath_reset">reset</a> | Removes <a href="#Verb_Array">Verb Array</a>, <a href="#Point_Array">Point Array</a>, and <a href="#Weight">Weights</a>; frees memory. |
-| <a href="#SkPath_reverseAddPath">reverseAddPath</a> | Adds contents of <a href="#Path">Path</a> back to front. |
-| <a href="#SkPath_rewind">rewind</a> | Removes <a href="#Verb_Array">Verb Array</a>, <a href="#Point_Array">Point Array</a>, and <a href="#Weight">Weights</a>; leaves memory allocated. |
-| <a href="#SkPath_serialize">serialize</a> | Copies data to buffer. |
-| <a href="#SkPath_setConvexity">setConvexity</a> | Sets if geometry is convex to avoid future computation. |
-| <a href="#SkPath_setFillType">setFillType</a> | Sets <a href="#Fill_Type">Fill Type</a>: winding, even-odd, inverse. |
-| <a href="#SkPath_setIsConvex">setIsConvex</a> | Deprecated. |
-| <a href="#SkPath_setIsVolatile">setIsVolatile</a> | Sets if <a href="undocumented#Device">Device</a> should not cache. |
-| <a href="#SkPath_setLastPt">setLastPt</a> | Replaces <a href="#Last_Point">Last Point</a>. |
-| <a href="#SkPath_swap">swap</a> | Exchanges <a href="#Path">Path</a> pair. |
-| <a href="#SkPath_toggleInverseFillType">toggleInverseFillType</a> | Toggles <a href="#Fill_Type">Fill Type</a> between inside and outside geometry. |
-| <a href="#SkPath_transform">transform</a> | Applies <a href="SkMatrix_Reference#Matrix">Matrix</a> to <a href="#Point_Array">Point Array</a> and <a href="#Weight">Weights</a>. |
-| <a href="#SkPath_unique">unique</a> | Returns if data has single owner. |
-| <a href="#SkPath_updateBoundsCache">updateBoundsCache</a> | Refreshes result of <a href="#SkPath_getBounds">getBounds</a>. |
-| <a href="#SkPath_writeToMemory">writeToMemory</a> | Copies data to buffer. |
+| <a href="#SkPath_ConvertConicToQuads">ConvertConicToQuads</a> | approximates <a href="#Conic">Conic</a> with <a href="#Quad">Quad</a> array |
+| <a href="#SkPath_ConvertToNonInverseFillType">ConvertToNonInverseFillType</a> | returns <a href="#Fill_Type">Fill Type</a> representing inside geometry |
+| <a href="#SkPath_IsCubicDegenerate">IsCubicDegenerate</a> | returns if <a href="#Cubic">Cubic</a> is very small |
+| <a href="#SkPath_IsInverseFillType">IsInverseFillType</a> | returns if <a href="#Fill_Type">Fill Type</a> represents outside geometry |
+| <a href="#SkPath_IsLineDegenerate">IsLineDegenerate</a> | returns if <a href="undocumented#Line">Line</a> is very small |
+| <a href="#SkPath_IsQuadDegenerate">IsQuadDegenerate</a> | returns if <a href="#Quad">Quad</a> is very small |
+| <a href="#SkPath_addArc">addArc</a> | adds one <a href="#Contour">Contour</a> containing <a href="#Arc">Arc</a> |
+| <a href="#SkPath_addCircle">addCircle</a> | adds one <a href="#Contour">Contour</a> containing <a href="undocumented#Circle">Circle</a> |
+| <a href="#SkPath_addOval">addOval</a> | adds one <a href="#Contour">Contour</a> containing <a href="undocumented#Oval">Oval</a> |
+| <a href="#SkPath_addPath">addPath</a> | adds contents of <a href="#Path">Path</a> |
+| <a href="#SkPath_addPoly">addPoly</a> | adds one <a href="#Contour">Contour</a> containing connected lines |
+| <a href="#SkPath_addRRect">addRRect</a> | adds one <a href="#Contour">Contour</a> containing <a href="undocumented#Round_Rect">Round Rect</a> |
+| <a href="#SkPath_addRect">addRect</a> | adds one <a href="#Contour">Contour</a> containing <a href="SkRect_Reference#Rect">Rect</a> |
+| <a href="#SkPath_addRoundRect">addRoundRect</a> | adds one <a href="#Contour">Contour</a> containing <a href="undocumented#Round_Rect">Round Rect</a> with common corner radii |
+| <a href="#SkPath_arcTo">arcTo</a> | appends <a href="#Arc">Arc</a> |
+| <a href="#SkPath_close">close</a> | makes last <a href="#Contour">Contour</a> a loop |
+| <a href="#SkPath_computeTightBounds">computeTightBounds</a> | returns extent of geometry |
+| <a href="#SkPath_conicTo">conicTo</a> | appends <a href="#Conic">Conic</a> |
+| <a href="#SkPath_conservativelyContainsRect">conservativelyContainsRect</a> | returns true if <a href="SkRect_Reference#Rect">Rect</a> may be inside |
+| <a href="#SkPath_contains">contains</a> | returns if <a href="SkPoint_Reference#Point">Point</a> is in fill area |
+| <a href="#SkPath_countPoints">countPoints</a> | returns <a href="#Point_Array">Point Array</a> length |
+| <a href="#SkPath_countVerbs">countVerbs</a> | returns <a href="#Verb_Array">Verb Array</a> length |
+| <a href="#SkPath_cubicTo">cubicTo</a> | appends <a href="#Cubic">Cubic</a> |
+| <a href="#SkPath_dump_2">dump</a> | sends text representation using floats to standard output |
+| <a href="#SkPath_dumpHex">dumpHex</a> | sends text representation using hexadecimal to standard output |
+| <a href="#SkPath_getBounds">getBounds</a> | returns maximum and minimum of <a href="#Point_Array">Point Array</a> |
+| <a href="#SkPath_getConvexity">getConvexity</a> | returns geometry convexity, computing if necessary |
+| <a href="#SkPath_getConvexityOrUnknown">getConvexityOrUnknown</a> | returns geometry convexity if known |
+| <a href="#SkPath_getFillType">getFillType</a> | returns <a href="#Fill_Type">Fill Type</a>: winding, even-odd, inverse |
+| <a href="#SkPath_getGenerationID">getGenerationID</a> | returns <a href="#SkPath_unique">unique</a> ID |
+| <a href="#SkPath_getLastPt">getLastPt</a> | returns <a href="#Last_Point">Last Point</a> |
+| <a href="#SkPath_getPoint">getPoint</a> | returns entry from <a href="#Point_Array">Point Array</a> |
+| <a href="#SkPath_getPoints">getPoints</a> | returns <a href="#Point_Array">Point Array</a> |
+| <a href="#SkPath_getSegmentMasks">getSegmentMasks</a> | returns types in <a href="#Verb_Array">Verb Array</a> |
+| <a href="#SkPath_getVerbs">getVerbs</a> | returns <a href="#Verb_Array">Verb Array</a> |
+| <a href="#SkPath_incReserve">incReserve</a> | reserves space for additional data |
+| <a href="#SkPath_interpolate">interpolate</a> | interpolates between <a href="#Path">Path</a> pair |
+| <a href="#SkPath_isConvex">isConvex</a> | returns if geometry is convex |
+| <a href="#SkPath_isEmpty">isEmpty</a> | returns if verb count is zero |
+| <a href="#SkPath_isFinite">isFinite</a> | returns if all <a href="SkPoint_Reference#Point">Point</a> values are finite |
+| <a href="#SkPath_isInterpolatable">isInterpolatable</a> | returns if pair <a href="#SkPath_contains">contains</a> equal counts of <a href="#Verb_Array">Verb Array</a> and <a href="#Weight">Weights</a> |
+| <a href="#SkPath_isInverseFillType">isInverseFillType</a> | returns if <a href="#Fill_Type">Fill Type</a> fills outside geometry |
+| <a href="#SkPath_isLastContourClosed">isLastContourClosed</a> | returns if final <a href="#Contour">Contour</a> forms a loop |
+| <a href="#SkPath_isLine">isLine</a> | returns if describes <a href="undocumented#Line">Line</a> |
+| <a href="#SkPath_isNestedFillRects">isNestedFillRects</a> | returns if describes <a href="SkRect_Reference#Rect">Rect</a> pair, one inside the other |
+| <a href="#SkPath_isOval">isOval</a> | returns if describes <a href="undocumented#Oval">Oval</a> |
+| <a href="#SkPath_isRRect">isRRect</a> | returns if describes <a href="undocumented#Round_Rect">Round Rect</a> |
+| <a href="#SkPath_isRect">isRect</a> | returns if describes <a href="SkRect_Reference#Rect">Rect</a> |
+| <a href="#SkPath_isValid">isValid</a> | returns if data is internally consistent |
+| <a href="#SkPath_isVolatile">isVolatile</a> | returns if <a href="undocumented#Device">Device</a> should not cache |
+| <a href="#SkPath_lineTo">lineTo</a> | appends <a href="undocumented#Line">Line</a> |
+| <a href="#SkPath_moveTo">moveTo</a> | starts <a href="#Contour">Contour</a> |
+| <a href="#SkPath_offset">offset</a> | translates <a href="#Point_Array">Point Array</a> |
+| <a href="#SkPath_pathRefIsValid">pathRefIsValid</a> | to be deprecated |
+| <a href="#SkPath_quadTo">quadTo</a> | appends <a href="#Quad">Quad</a> |
+| <a href="#SkPath_rArcTo">rArcTo</a> | appends <a href="#Arc">Arc</a> relative to <a href="#Last_Point">Last Point</a> |
+| <a href="#SkPath_rConicTo">rConicTo</a> | appends <a href="#Conic">Conic</a> relative to <a href="#Last_Point">Last Point</a> |
+| <a href="#SkPath_rCubicTo">rCubicTo</a> | appends <a href="#Cubic">Cubic</a> relative to <a href="#Last_Point">Last Point</a> |
+| <a href="#SkPath_rLineTo">rLineTo</a> | appends <a href="undocumented#Line">Line</a> relative to <a href="#Last_Point">Last Point</a> |
+| <a href="#SkPath_rMoveTo">rMoveTo</a> | starts <a href="#Contour">Contour</a> relative to <a href="#Last_Point">Last Point</a> |
+| <a href="#SkPath_rQuadTo">rQuadTo</a> | appends <a href="#Quad">Quad</a> relative to <a href="#Last_Point">Last Point</a> |
+| <a href="#SkPath_readFromMemory">readFromMemory</a> | Initializes from buffer |
+| <a href="#SkPath_reset">reset</a> | removes <a href="#Verb_Array">Verb Array</a>, <a href="#Point_Array">Point Array</a>, and <a href="#Weight">Weights</a>; frees memory |
+| <a href="#SkPath_reverseAddPath">reverseAddPath</a> | adds contents of <a href="#Path">Path</a> back to front |
+| <a href="#SkPath_rewind">rewind</a> | removes <a href="#Verb_Array">Verb Array</a>, <a href="#Point_Array">Point Array</a>, and <a href="#Weight">Weights</a>, keeping memory |
+| <a href="#SkPath_serialize">serialize</a> | copies data to buffer |
+| <a href="#SkPath_setConvexity">setConvexity</a> | sets if geometry is convex to avoid future computation |
+| <a href="#SkPath_setFillType">setFillType</a> | sets <a href="#Fill_Type">Fill Type</a>: winding, even-odd, inverse |
+| <a href="#SkPath_setIsConvex">setIsConvex</a> | deprecated |
+| <a href="#SkPath_setIsVolatile">setIsVolatile</a> | sets if <a href="undocumented#Device">Device</a> should not cache |
+| <a href="#SkPath_setLastPt">setLastPt</a> | replaces <a href="#Last_Point">Last Point</a> |
+| <a href="#SkPath_swap">swap</a> | exchanges <a href="#Path">Path</a> pair |
+| <a href="#SkPath_toggleInverseFillType">toggleInverseFillType</a> | toggles <a href="#Fill_Type">Fill Type</a> between inside and outside geometry |
+| <a href="#SkPath_transform">transform</a> | applies <a href="SkMatrix_Reference#Matrix">Matrix</a> to <a href="#Point_Array">Point Array</a> and <a href="#Weight">Weights</a> |
+| <a href="#SkPath_unique">unique</a> | returns if data has single owner |
+| <a href="#SkPath_updateBoundsCache">updateBoundsCache</a> | refreshes result of <a href="#SkPath_getBounds">getBounds</a> |
+| <a href="#SkPath_writeToMemory">writeToMemory</a> | copies data to buffer |
## <a name="Verb"></a> Verb
@@ -2634,7 +2659,7 @@ constructions are converted to <a href="#Conic">Conic</a> data when added to <a
<table> <tr>
<td><sup>1</sup> <a href="#SkPath_arcTo">arcTo(const SkRect& oval, SkScalar startAngle, SkScalar sweepAngle, bool forceMoveTo)</a></td> </tr> <tr>
<td><sup>2</sup> parameter sets force MoveTo</td> </tr> <tr>
- <td><sup>3</sup> start angle must be multiple of 90 degrees.</td> </tr> <tr>
+ <td><sup>3</sup> start angle must be multiple of 90 degrees</td> </tr> <tr>
<td><sup>4</sup> <a href="#SkPath_arcTo_2">arcTo(SkScalar x1, SkScalar y1, SkScalar x2, SkScalar y2, SkScalar radius)</a></td> </tr> <tr>
<td><sup>5</sup> <a href="#SkPath_arcTo_4">arcTo(SkScalar rx, SkScalar ry, SkScalar xAxisRotate, ArcSize largeArc,
Direction sweep, SkScalar x, SkScalar y)</a></td> </tr>
diff --git a/site/user/api/SkPixmap_Reference.md b/site/user/api/SkPixmap_Reference.md
index 7fa4bb7aa2..678fbec0bc 100644
--- a/site/user/api/SkPixmap_Reference.md
+++ b/site/user/api/SkPixmap_Reference.md
@@ -19,58 +19,66 @@ to manage pixel memory; <a href="undocumented#Pixel_Ref">Pixel Ref</a> is safe a
## <a name="Subtopics"></a> Subtopics
-| topics | description |
+| name | description |
| --- | --- |
-| <a href="#Image_Info_Access">Image Info Access</a> | Returns all or part of <a href="undocumented#Image_Info">Image Info</a>. |
-| <a href="#Initialization">Initialization</a> | Sets fields for use. |
-| <a href="#Reader">Reader</a> | Examine pixel value. |
-| <a href="#Writer">Writer</a> | Copy to pixel values. |
-| <a href="#Readable_Address">Readable Address</a> | Returns read only pixels. |
-| <a href="#Writable_Address">Writable Address</a> | Returns writable pixels. |
+| <a href="#Overview_Constructors">Constructors</a> | list of functions that construct <a href="SkPath_Reference#SkPath">SkPath</a> |
+| <a href="#Overview_Member_Functions">Member Functions</a> | list of static functions and member methods |
+| <a href="#Overview_Related_Functions">Related Functions</a> | similar methods grouped together |
+
+## <a name="Related_Functions"></a> Related Functions
+
+| name | description |
+| --- | --- |
+| <a href="#Image_Info_Access">Image Info Access</a> | returns all or part of <a href="undocumented#Image_Info">Image Info</a> |
+| <a href="#Initialization">Initialization</a> | sets fields for use |
+| <a href="#Readable_Address">Readable Address</a> | returns read only pixels |
+| <a href="#Reader">Reader</a> | examine pixel value |
+| <a href="#Writable_Address">Writable Address</a> | returns writable pixels |
+| <a href="#Writer">Writer</a> | copy to pixel values |
## <a name="Constructors"></a> Constructors
| | description |
| --- | --- |
-| <a href="#SkPixmap_empty_constructor">SkPixmap()</a> | Constructs with default values. |
-| <a href="#SkPixmap_const_SkImageInfo_const_star">SkPixmap(const SkImageInfo& info, const void* addr, size t rowBytes)</a> | Constructs from <a href="undocumented#Image_Info">Image Info</a>, pixels. |
+| <a href="#SkPixmap_empty_constructor">SkPixmap()</a> | constructs with default values |
+| <a href="#SkPixmap_const_SkImageInfo_const_star">SkPixmap(const SkImageInfo& info, const void* addr, size t rowBytes)</a> | constructs from <a href="undocumented#Image_Info">Image Info</a>, pixels |
## <a name="Member_Functions"></a> Member Functions
-| function | description |
+| name | description |
| --- | --- |
-| <a href="#SkPixmap_addr">addr</a> | Returns readable pixel address as void pointer. |
-| <a href="#SkPixmap_addr16">addr16</a> | Returns readable pixel address as 16-bit pointer. |
-| <a href="#SkPixmap_addr32">addr32</a> | Returns readable pixel address as 32-bit pointer. |
-| <a href="#SkPixmap_addr64">addr64</a> | Returns readable pixel address as 64-bit pointer. |
-| <a href="#SkPixmap_addr8">addr8</a> | Returns readable pixel address as 8-bit pointer. |
-| <a href="#SkPixmap_addrF16">addrF16</a> | Returns readable pixel component address as 16-bit pointer. |
-| <a href="#SkPixmap_alphaType">alphaType</a> | Returns <a href="undocumented#Image_Info">Image Info</a> <a href="undocumented#Image_Alpha_Type">Alpha Type</a>. |
-| <a href="#SkPixmap_bounds">bounds</a> | Returns <a href="#SkPixmap_width">width</a> and <a href="#SkPixmap_height">height</a> as Rectangle. |
-| <a href="#SkPixmap_colorSpace">colorSpace</a> | Returns <a href="undocumented#Image_Info">Image Info</a> <a href="undocumented#Color_Space">Color Space</a>. |
-| <a href="#SkPixmap_colorType">colorType</a> | Returns <a href="undocumented#Image_Info">Image Info</a> <a href="undocumented#Image_Color_Type">Color Type</a>. |
-| <a href="#SkPixmap_computeByteSize">computeByteSize</a> | Returns size required for pixels. |
-| <a href="#SkPixmap_computeIsOpaque">computeIsOpaque</a> | Returns true if all pixels are opaque. |
-| <a href="#SkPixmap_erase">erase</a> | Writes <a href="undocumented#Color">Color</a> to pixels. |
-| <a href="#SkPixmap_extractSubset">extractSubset</a> | Sets pointer to portion of original. |
-| <a href="#SkPixmap_getColor">getColor</a> | Returns one pixel as <a href="#Unpremultiply">Unpremultiplied</a> <a href="undocumented#Color">Color</a>. |
-| <a href="#SkPixmap_height">height</a> | Returns pixel row count. |
-| <a href="#SkPixmap_info">info</a> | Returns <a href="undocumented#Image_Info">Image Info</a>. |
-| <a href="#SkPixmap_isOpaque">isOpaque</a> | Returns true if <a href="undocumented#Image_Info">Image Info</a> describes opaque pixels. |
-| <a href="#SkPixmap_readPixels">readPixels</a> | Copies and converts pixels. |
-| <a href="#SkPixmap_reset">reset</a> | Reuses existing <a href="#Pixmap">Pixmap</a> with replacement values. |
-| <a href="#SkPixmap_rowBytes">rowBytes</a> | Returns interval between rows in bytes. |
-| <a href="#SkPixmap_rowBytesAsPixels">rowBytesAsPixels</a> | Returns interval between rows in pixels. |
-| <a href="#SkPixmap_scalePixels">scalePixels</a> | Scales and converts pixels. |
-| <a href="#SkPixmap_setColorSpace">setColorSpace</a> | Sets <a href="undocumented#Image_Info">Image Info</a> <a href="undocumented#Color_Space">Color Space</a>. |
-| <a href="#SkPixmap_shiftPerPixel">shiftPerPixel</a> | Returns bit shift from pixels to bytes. |
-| <a href="#SkPixmap_width">width</a> | Returns pixel column count. |
-| <a href="#SkPixmap_writable_addr">writable addr</a> | Returns writable pixel address as void pointer. |
-| <a href="#SkPixmap_writable_addr16">writable addr16</a> | Returns writable pixel address as 16-bit pointer. |
-| <a href="#SkPixmap_writable_addr32">writable addr32</a> | Returns writable pixel address as 32-bit pointer. |
-| <a href="#SkPixmap_writable_addr64">writable addr64</a> | Returns writable pixel address as 64-bit pointer. |
-| <a href="#SkPixmap_writable_addr8">writable addr8</a> | Returns writable pixel address as 8-bit pointer. |
-| <a href="#SkPixmap_writable_addrF16">writable addrF16</a> | Returns writable pixel component address as 16-bit pointer. |
+| <a href="#SkPixmap_addr">addr</a> | returns readable pixel address as void pointer |
+| <a href="#SkPixmap_addr16">addr16</a> | returns readable pixel address as 16-bit pointer |
+| <a href="#SkPixmap_addr32">addr32</a> | returns readable pixel address as 32-bit pointer |
+| <a href="#SkPixmap_addr64">addr64</a> | returns readable pixel address as 64-bit pointer |
+| <a href="#SkPixmap_addr8">addr8</a> | returns readable pixel address as 8-bit pointer |
+| <a href="#SkPixmap_addrF16">addrF16</a> | returns readable pixel component address as 16-bit pointer |
+| <a href="#SkPixmap_alphaType">alphaType</a> | returns <a href="undocumented#Image_Info">Image Info</a> <a href="undocumented#Image_Alpha_Type">Alpha Type</a> |
+| <a href="#SkPixmap_bounds">bounds</a> | returns <a href="#SkPixmap_width">width</a> and <a href="#SkPixmap_height">height</a> as Rectangle |
+| <a href="#SkPixmap_colorSpace">colorSpace</a> | returns <a href="undocumented#Image_Info">Image Info</a> <a href="undocumented#Color_Space">Color Space</a> |
+| <a href="#SkPixmap_colorType">colorType</a> | returns <a href="undocumented#Image_Info">Image Info</a> <a href="undocumented#Image_Color_Type">Color Type</a> |
+| <a href="#SkPixmap_computeByteSize">computeByteSize</a> | returns size required for pixels |
+| <a href="#SkPixmap_computeIsOpaque">computeIsOpaque</a> | returns true if all pixels are opaque |
+| <a href="#SkPixmap_erase">erase</a> | writes <a href="undocumented#Color">Color</a> to pixels |
+| <a href="#SkPixmap_extractSubset">extractSubset</a> | sets pointer to portion of original |
+| <a href="#SkPixmap_getColor">getColor</a> | returns one pixel as <a href="#Unpremultiply">Unpremultiplied</a> <a href="undocumented#Color">Color</a> |
+| <a href="#SkPixmap_height">height</a> | returns pixel row count |
+| <a href="#SkPixmap_info">info</a> | returns <a href="undocumented#Image_Info">Image Info</a> |
+| <a href="#SkPixmap_isOpaque">isOpaque</a> | returns true if <a href="undocumented#Image_Info">Image Info</a> describes opaque pixels |
+| <a href="#SkPixmap_readPixels">readPixels</a> | copies and converts pixels |
+| <a href="#SkPixmap_reset">reset</a> | reuses existing <a href="#Pixmap">Pixmap</a> with replacement values |
+| <a href="#SkPixmap_rowBytes">rowBytes</a> | returns interval between rows in bytes |
+| <a href="#SkPixmap_rowBytesAsPixels">rowBytesAsPixels</a> | returns interval between rows in pixels |
+| <a href="#SkPixmap_scalePixels">scalePixels</a> | scales and converts pixels |
+| <a href="#SkPixmap_setColorSpace">setColorSpace</a> | sets <a href="undocumented#Image_Info">Image Info</a> <a href="undocumented#Color_Space">Color Space</a> |
+| <a href="#SkPixmap_shiftPerPixel">shiftPerPixel</a> | returns bit shift from pixels to bytes |
+| <a href="#SkPixmap_width">width</a> | returns pixel column count |
+| <a href="#SkPixmap_writable_addr">writable addr</a> | returns writable pixel address as void pointer |
+| <a href="#SkPixmap_writable_addr16">writable addr16</a> | returns writable pixel address as 16-bit pointer |
+| <a href="#SkPixmap_writable_addr32">writable addr32</a> | returns writable pixel address as 32-bit pointer |
+| <a href="#SkPixmap_writable_addr64">writable addr64</a> | returns writable pixel address as 64-bit pointer |
+| <a href="#SkPixmap_writable_addr8">writable addr8</a> | returns writable pixel address as 8-bit pointer |
+| <a href="#SkPixmap_writable_addrF16">writable addrF16</a> | returns writable pixel component address as 16-bit pointer |
## <a name="Initialization"></a> Initialization
diff --git a/site/user/api/SkPoint_Reference.md b/site/user/api/SkPoint_Reference.md
index 9e64611897..8c49256df0 100644
--- a/site/user/api/SkPoint_Reference.md
+++ b/site/user/api/SkPoint_Reference.md
@@ -12,14 +12,20 @@ SkPoint Reference
| topics | description |
| --- | --- |
+## <a name="Constructors"></a> Constructors
+
+| name | description |
+| --- | --- |
+| <a href="#SkPoint_Make">Make</a> | Constructs from <a href="undocumented#SkScalar">SkScalar</a> inputs. |
+
## <a name="Operators"></a> Operators
-| description | function |
+| name | description |
| --- | --- |
| <a href="#SkPoint">SkPoint</a> <a href="#SkPoint_multiply_operator">operator*(SkScalar scale) const</a> | Returns <a href="#Point">Point</a> multiplied by <a href="#SkPoint_scale">scale</a>. |
+| <a href="#SkPoint">SkPoint</a> <a href="#SkPoint_add_operator">operator+(const SkPoint& a, const SkVector& b)</a> | Returns <a href="#Point">Point</a> <a href="#SkPoint_offset">offset</a> by <a href="SkPoint_Reference#Vector">Vector</a>. |
| <a href="#SkPoint">SkPoint</a> <a href="#SkPoint_minus_operator">operator-() const</a> | Reverses sign of <a href="#Point">Point</a>. |
| <a href="#SkPoint">SkPoint</a>& <a href="#SkPoint_multiplyby_operator">operator*=(SkScalar scale)</a> | Multiplies <a href="#Point">Point</a> by <a href="#SkPoint_scale">scale</a> factor. |
-| <a href="#SkPoint">SkPoint</a> <a href="#SkPoint_add_operator">operator+(const SkPoint& a, const SkVector& b)</a> | Returns <a href="#Point">Point</a> <a href="#SkPoint_offset">offset</a> by <a href="SkPoint_Reference#Vector">Vector</a>. |
| <a href="SkPoint_Reference#SkVector">SkVector</a> <a href="#SkPoint_subtract_operator">operator-(const SkPoint& a, const SkPoint& b)</a> | Returns <a href="SkPoint_Reference#Vector">Vector</a> between <a href="#Point">Points</a>. |
| bool <a href="#SkPoint_notequal_operator">operator!=(const SkPoint& a, const SkPoint& b)</a> | Returns true if <a href="#Point">Point</a> are unequal. |
| bool <a href="#SkPoint_equal_operator">operator==(const SkPoint& a, const SkPoint& b)</a> | Returns true if <a href="#Point">Point</a> are equal. |
@@ -28,7 +34,7 @@ SkPoint Reference
## <a name="Member_Functions"></a> Member Functions
-| description | function |
+| name | description |
| --- | --- |
| <a href="#SkPoint_CrossProduct">CrossProduct</a> | Returns <a href="#SkPoint_cross">cross</a> product. |
| <a href="#SkPoint_Distance">Distance</a> | Returns straight-line distance between points. |
diff --git a/site/user/api/SkRect_Reference.md b/site/user/api/SkRect_Reference.md
index 4a571751a7..a8bd2e7415 100644
--- a/site/user/api/SkRect_Reference.md
+++ b/site/user/api/SkRect_Reference.md
@@ -19,71 +19,93 @@ integer input cannot convert to <a href="undocumented#SkScalar">SkScalar</a> wit
| topics | description |
| --- | --- |
+| <a href="#Overview_Constructors">Constructors</a> | functions that construct <a href="SkPath_Reference#SkPath">SkPath</a> |
+| <a href="#Overview_Member_Functions">Member Functions</a> | static functions and member methods |
+| <a href="#Overview_Operators">Operators</a> | operator overloading methods |
+
+## <a name="Constructors"></a> Constructors
+
+| name | description |
+| --- | --- |
+| <a href="#SkRect_Make">Make</a> | constructs from <a href="undocumented#ISize">ISize</a> returning (0, 0, <a href="#SkRect_width">width</a>, <a href="#SkRect_height">height</a>) |
+| <a href="#SkRect_MakeEmpty">MakeEmpty</a> | constructs from bounds of (0, 0, 0, 0) |
+| <a href="#SkRect_MakeFromIRect">MakeFromIRect</a> | deprecated |
+| <a href="#SkRect_MakeIWH">MakeIWH</a> | constructs from int input returning (0, 0, <a href="#SkRect_width">width</a>, <a href="#SkRect_height">height</a>) |
+| <a href="#SkRect_MakeLTRB">MakeLTRB</a> | constructs from <a href="undocumented#SkScalar">SkScalar</a> <a href="#SkRect_left">left</a>, <a href="#SkRect_top">top</a>, <a href="#SkRect_right">right</a>, <a href="#SkRect_bottom">bottom</a> |
+| <a href="#SkRect_MakeLargest">MakeLargest</a> | deprecated |
+| <a href="#SkRect_MakeSize">MakeSize</a> | constructs from <a href="undocumented#Size">Size</a> returning (0, 0, <a href="#SkRect_width">width</a>, <a href="#SkRect_height">height</a>) |
+| <a href="#SkRect_MakeWH">MakeWH</a> | constructs from <a href="undocumented#SkScalar">SkScalar</a> input returning (0, 0, <a href="#SkRect_width">width</a>, <a href="#SkRect_height">height</a>) |
+| <a href="#SkRect_MakeXYWH">MakeXYWH</a> | constructs from <a href="undocumented#SkScalar">SkScalar</a> input returning (<a href="#SkRect_x">x</a>, <a href="#SkRect_y">y</a>, <a href="#SkRect_width">width</a>, <a href="#SkRect_height">height</a>) |
+| <a href="#SkRect_makeInset">makeInset</a> | constructs from sides moved symmetrically about the center |
+| <a href="#SkRect_makeOffset">makeOffset</a> | constructs from translated sides |
+| <a href="#SkRect_makeOutset">makeOutset</a> | constructs from sides moved symmetrically about the center |
+| <a href="#SkRect_makeSorted">makeSorted</a> | constructs, ordering sides from smaller to larger |
## <a name="Operators"></a> Operators
| description | function |
| --- | --- |
-| bool <a href="#SkRect_notequal_operator">operator!=(const SkRect& a, const SkRect& b)</a> | Returns true if members are unequal. |
-| bool <a href="#SkRect_equal_operator">operator==(const SkRect& a, const SkRect& b)</a> | Returns true if members are equal. |
+| bool <a href="#SkRect_notequal_operator">operator!=(const SkRect& a, const SkRect& b)</a> | returns true if members are unequal |
+| bool <a href="#SkRect_equal_operator">operator==(const SkRect& a, const SkRect& b)</a> | returns true if members are equal |
## <a name="Member_Functions"></a> Member Functions
| description | function |
| --- | --- |
-| <a href="#SkRect_Intersects">Intersects</a> | Returns true if areas overlap. |
-| <a href="#SkRect_Make">Make</a> | Constructs from <a href="undocumented#ISize">ISize</a> returning (0, 0, <a href="#SkRect_width">width</a>, <a href="#SkRect_height">height</a>). |
-| <a href="#SkRect_MakeEmpty">MakeEmpty</a> | Constructs from bounds of (0, 0, 0, 0). |
-| <a href="#SkRect_MakeFromIRect">MakeFromIRect</a> | Deprecated. |
-| <a href="#SkRect_MakeIWH">MakeIWH</a> | Constructs from int input returning (0, 0, <a href="#SkRect_width">width</a>, <a href="#SkRect_height">height</a>). |
-| <a href="#SkRect_MakeLTRB">MakeLTRB</a> | Constructs from <a href="undocumented#SkScalar">SkScalar</a> <a href="#SkRect_left">left</a>, <a href="#SkRect_top">top</a>, <a href="#SkRect_right">right</a>, <a href="#SkRect_bottom">bottom</a>. |
-| <a href="#SkRect_MakeSize">MakeSize</a> | Constructs from <a href="undocumented#Size">Size</a> returning (0, 0, <a href="#SkRect_width">width</a>, <a href="#SkRect_height">height</a>). |
-| <a href="#SkRect_MakeWH">MakeWH</a> | Constructs from <a href="undocumented#SkScalar">SkScalar</a> input returning (0, 0, <a href="#SkRect_width">width</a>, <a href="#SkRect_height">height</a>). |
-| <a href="#SkRect_MakeXYWH">MakeXYWH</a> | Constructs from <a href="undocumented#SkScalar">SkScalar</a> input returning (<a href="#SkRect_x">x</a>, <a href="#SkRect_y">y</a>, <a href="#SkRect_width">width</a>, <a href="#SkRect_height">height</a>). |
-| <a href="#SkRect_asScalars">asScalars</a> | Returns pointer to members as array. |
-| <a href="#SkRect_bottom">bottom</a> | Returns larger bounds in <a href="#SkRect_y">y</a>, if sorted. |
-| <a href="#SkRect_centerX">centerX</a> | Returns midpoint in <a href="#SkRect_x">x</a>. |
-| <a href="#SkRect_centerY">centerY</a> | Returns midpoint in <a href="#SkRect_y">y</a>. |
-| <a href="#SkRect_contains">contains</a> | Returns true if points are equal or inside. |
-| <a href="#SkRect_dump_2">dump</a> | Sends text representation using floats to standard output. |
-| <a href="#SkRect_dumpHex">dumpHex</a> | Sends text representation using hexadecimal to standard output. |
-| <a href="#SkRect_height">height</a> | Returns span in <a href="#SkRect_y">y</a>. |
-| <a href="#SkRect_inset">inset</a> | Moves the sides symmetrically about the center. |
-| <a href="#SkRect_intersect">intersect</a> | Sets to shared area; returns true if not empty. |
-| <a href="#SkRect_intersects">intersects</a> | Returns true if areas overlap. |
-| <a href="#SkRect_isEmpty">isEmpty</a> | Returns true if <a href="#SkRect_width">width</a> or <a href="#SkRect_height">height</a> are zero or negative. |
-| <a href="#SkRect_isFinite">isFinite</a> | Returns true if no member is infinite or NaN. |
-| <a href="#SkRect_isSorted">isSorted</a> | Returns true if <a href="#SkRect_width">width</a> or <a href="#SkRect_height">height</a> are zero or positive. |
-| <a href="#SkRect_iset">iset</a> | Sets to int input (<a href="#SkRect_left">left</a>, <a href="#SkRect_top">top</a>, <a href="#SkRect_right">right</a>, <a href="#SkRect_bottom">bottom</a>). |
-| <a href="#SkRect_isetWH">isetWH</a> | Sets to int input (0, 0, <a href="#SkRect_width">width</a>, <a href="#SkRect_height">height</a>). |
-| <a href="#SkRect_join">join</a> | Sets to union of bounds. |
-| <a href="#SkRect_joinNonEmptyArg">joinNonEmptyArg</a> | Sets to union of bounds, asserting that argument is not empty. |
-| <a href="#SkRect_joinPossiblyEmptyRect">joinPossiblyEmptyRect</a> | Sets to union of bounds. Skips empty check for both. |
-| <a href="#SkRect_left">left</a> | Returns smaller bounds in <a href="#SkRect_x">x</a>, if sorted. |
-| <a href="#SkRect_makeInset">makeInset</a> | Constructs from sides moved symmetrically about the center. |
-| <a href="#SkRect_makeOffset">makeOffset</a> | Constructs from translated sides. |
-| <a href="#SkRect_makeOutset">makeOutset</a> | Constructs from sides moved symmetrically about the center. |
-| <a href="#SkRect_makeSorted">makeSorted</a> | Constructs, ordering sides from smaller to larger. |
-| <a href="#SkRect_offset">offset</a> | Translates sides without changing <a href="#SkRect_width">width</a> and <a href="#SkRect_height">height</a>. |
-| <a href="#SkRect_offsetTo">offsetTo</a> | Translates to (<a href="#SkRect_x">x</a>, <a href="#SkRect_y">y</a>) without changing <a href="#SkRect_width">width</a> and <a href="#SkRect_height">height</a>. |
-| <a href="#SkRect_outset">outset</a> | Moves the sides symmetrically about the center. |
-| <a href="#SkRect_right">right</a> | Returns larger bounds in <a href="#SkRect_x">x</a>, if sorted. |
-| <a href="#SkRect_round_2">round</a> | Sets members to nearest integer value. |
-| <a href="#SkRect_roundIn">roundIn</a> | Sets members to nearest integer value towards opposite. |
-| <a href="#SkRect_roundOut">roundOut</a> | Sets members to nearest integer value away from opposite. |
-| <a href="#SkRect_set">set</a> | Sets to <a href="undocumented#SkScalar">SkScalar</a> input (<a href="#SkRect_left">left</a>, <a href="#SkRect_top">top</a>, <a href="#SkRect_right">right</a>, <a href="#SkRect_bottom">bottom</a>) and others. |
-| <a href="#SkRect_setBounds">setBounds</a> | Sets to upper and lower limits of <a href="SkPoint_Reference#Point">Point</a> array. |
-| <a href="#SkRect_setBoundsCheck">setBoundsCheck</a> | Sets to upper and lower limits of <a href="SkPoint_Reference#Point">Point</a> array. |
-| <a href="#SkRect_setEmpty">setEmpty</a> | Sets to (0, 0, 0, 0). |
-| <a href="#SkRect_setLTRB">setLTRB</a> | Sets to <a href="undocumented#SkScalar">SkScalar</a> input (<a href="#SkRect_left">left</a>, <a href="#SkRect_top">top</a>, <a href="#SkRect_right">right</a>, <a href="#SkRect_bottom">bottom</a>). |
-| <a href="#SkRect_setWH">setWH</a> | Sets to <a href="undocumented#SkScalar">SkScalar</a> input (0, 0, <a href="#SkRect_width">width</a>, <a href="#SkRect_height">height</a>). |
-| <a href="#SkRect_setXYWH">setXYWH</a> | Sets to <a href="undocumented#SkScalar">SkScalar</a> input (<a href="#SkRect_x">x</a>, <a href="#SkRect_y">y</a>, <a href="#SkRect_width">width</a>, <a href="#SkRect_height">height</a>). |
-| <a href="#SkRect_sort">sort</a> | Orders sides from smaller to larger. |
-| <a href="#SkRect_toQuad">toQuad</a> | Returns four corners as <a href="SkPoint_Reference#Point">Point</a>. |
-| <a href="#SkRect_top">top</a> | Returns smaller bounds in <a href="#SkRect_y">y</a>, if sorted. |
-| <a href="#SkRect_width">width</a> | Returns span in <a href="#SkRect_x">x</a>. |
-| <a href="#SkRect_x">x</a> | Returns bounds <a href="#SkRect_left">left</a>. |
-| <a href="#SkRect_y">y</a> | Returns bounds <a href="#SkRect_top">top</a>. |
+| <a href="#SkRect_Intersects">Intersects</a> | returns true if areas overlap |
+| <a href="#SkRect_Make">Make</a> | constructs from <a href="undocumented#ISize">ISize</a> returning (0, 0, <a href="#SkRect_width">width</a>, <a href="#SkRect_height">height</a>) |
+| <a href="#SkRect_MakeEmpty">MakeEmpty</a> | constructs from bounds of (0, 0, 0, 0) |
+| <a href="#SkRect_MakeFromIRect">MakeFromIRect</a> | deprecated |
+| <a href="#SkRect_MakeIWH">MakeIWH</a> | constructs from int input returning (0, 0, <a href="#SkRect_width">width</a>, <a href="#SkRect_height">height</a>) |
+| <a href="#SkRect_MakeLTRB">MakeLTRB</a> | constructs from <a href="undocumented#SkScalar">SkScalar</a> <a href="#SkRect_left">left</a>, <a href="#SkRect_top">top</a>, <a href="#SkRect_right">right</a>, <a href="#SkRect_bottom">bottom</a> |
+| <a href="#SkRect_MakeLargest">MakeLargest</a> | deprecated |
+| <a href="#SkRect_MakeSize">MakeSize</a> | constructs from <a href="undocumented#Size">Size</a> returning (0, 0, <a href="#SkRect_width">width</a>, <a href="#SkRect_height">height</a>) |
+| <a href="#SkRect_MakeWH">MakeWH</a> | constructs from <a href="undocumented#SkScalar">SkScalar</a> input returning (0, 0, <a href="#SkRect_width">width</a>, <a href="#SkRect_height">height</a>) |
+| <a href="#SkRect_MakeXYWH">MakeXYWH</a> | constructs from <a href="undocumented#SkScalar">SkScalar</a> input returning (<a href="#SkRect_x">x</a>, <a href="#SkRect_y">y</a>, <a href="#SkRect_width">width</a>, <a href="#SkRect_height">height</a>) |
+| <a href="#SkRect_asScalars">asScalars</a> | returns pointer to members as array |
+| <a href="#SkRect_bottom">bottom</a> | returns larger bounds in <a href="#SkRect_y">y</a>, if sorted |
+| <a href="#SkRect_centerX">centerX</a> | returns midpoint in <a href="#SkRect_x">x</a> |
+| <a href="#SkRect_centerY">centerY</a> | returns midpoint in <a href="#SkRect_y">y</a> |
+| <a href="#SkRect_contains">contains</a> | returns true if points are equal or inside |
+| <a href="#SkRect_dump_2">dump</a> | sends text representation to standard output using floats |
+| <a href="#SkRect_dumpHex">dumpHex</a> | sends text representation to standard output using hexadecimal |
+| <a href="#SkRect_height">height</a> | returns span in <a href="#SkRect_y">y</a> |
+| <a href="#SkRect_inset">inset</a> | moves the sides symmetrically about the center |
+| <a href="#SkRect_intersect">intersect</a> | sets to shared area; returns true if not empty |
+| <a href="#SkRect_intersects">intersects</a> | returns true if areas overlap |
+| <a href="#SkRect_isEmpty">isEmpty</a> | returns true if <a href="#SkRect_width">width</a> or <a href="#SkRect_height">height</a> are zero or negative |
+| <a href="#SkRect_isFinite">isFinite</a> | returns true if no member is infinite or NaN |
+| <a href="#SkRect_isSorted">isSorted</a> | returns true if <a href="#SkRect_width">width</a> or <a href="#SkRect_height">height</a> are zero or positive |
+| <a href="#SkRect_iset">iset</a> | sets to int input (<a href="#SkRect_left">left</a>, <a href="#SkRect_top">top</a>, <a href="#SkRect_right">right</a>, <a href="#SkRect_bottom">bottom</a>) |
+| <a href="#SkRect_isetWH">isetWH</a> | sets to int input (0, 0, <a href="#SkRect_width">width</a>, <a href="#SkRect_height">height</a>) |
+| <a href="#SkRect_join">join</a> | sets to union of bounds |
+| <a href="#SkRect_joinNonEmptyArg">joinNonEmptyArg</a> | sets to union of bounds, asserting that argument is not empty |
+| <a href="#SkRect_joinPossiblyEmptyRect">joinPossiblyEmptyRect</a> | sets to union of bounds. Skips empty check for both |
+| <a href="#SkRect_left">left</a> | returns smaller bounds in <a href="#SkRect_x">x</a>, if sorted |
+| <a href="#SkRect_makeInset">makeInset</a> | constructs from sides moved symmetrically about the center |
+| <a href="#SkRect_makeOffset">makeOffset</a> | constructs from translated sides |
+| <a href="#SkRect_makeOutset">makeOutset</a> | constructs from sides moved symmetrically about the center |
+| <a href="#SkRect_makeSorted">makeSorted</a> | constructs, ordering sides from smaller to larger |
+| <a href="#SkRect_offset">offset</a> | translates sides without changing <a href="#SkRect_width">width</a> and <a href="#SkRect_height">height</a> |
+| <a href="#SkRect_offsetTo">offsetTo</a> | translates to (<a href="#SkRect_x">x</a>, <a href="#SkRect_y">y</a>) without changing <a href="#SkRect_width">width</a> and <a href="#SkRect_height">height</a> |
+| <a href="#SkRect_outset">outset</a> | moves the sides symmetrically about the center |
+| <a href="#SkRect_right">right</a> | returns larger bounds in <a href="#SkRect_x">x</a>, if sorted |
+| <a href="#SkRect_round_2">round</a> | sets members to nearest integer value |
+| <a href="#SkRect_roundIn">roundIn</a> | sets members to nearest integer value towards opposite |
+| <a href="#SkRect_roundOut">roundOut</a> | sets members to nearest integer value away from opposite |
+| <a href="#SkRect_set">set</a> | sets to <a href="undocumented#SkScalar">SkScalar</a> input (<a href="#SkRect_left">left</a>, <a href="#SkRect_top">top</a>, <a href="#SkRect_right">right</a>, <a href="#SkRect_bottom">bottom</a>) and others |
+| <a href="#SkRect_setBounds">setBounds</a> | sets to upper and lower limits of <a href="SkPoint_Reference#Point">Point</a> array |
+| <a href="#SkRect_setBoundsCheck">setBoundsCheck</a> | sets to upper and lower limits of <a href="SkPoint_Reference#Point">Point</a> array |
+| <a href="#SkRect_setEmpty">setEmpty</a> | sets to (0, 0, 0, 0) |
+| <a href="#SkRect_setLTRB">setLTRB</a> | sets to <a href="undocumented#SkScalar">SkScalar</a> input (<a href="#SkRect_left">left</a>, <a href="#SkRect_top">top</a>, <a href="#SkRect_right">right</a>, <a href="#SkRect_bottom">bottom</a>) |
+| <a href="#SkRect_setWH">setWH</a> | sets to <a href="undocumented#SkScalar">SkScalar</a> input (0, 0, <a href="#SkRect_width">width</a>, <a href="#SkRect_height">height</a>) |
+| <a href="#SkRect_setXYWH">setXYWH</a> | sets to <a href="undocumented#SkScalar">SkScalar</a> input (<a href="#SkRect_x">x</a>, <a href="#SkRect_y">y</a>, <a href="#SkRect_width">width</a>, <a href="#SkRect_height">height</a>) |
+| <a href="#SkRect_sort">sort</a> | orders sides from smaller to larger |
+| <a href="#SkRect_toQuad">toQuad</a> | returns four corners as <a href="SkPoint_Reference#Point">Point</a> |
+| <a href="#SkRect_top">top</a> | returns smaller bounds in <a href="#SkRect_y">y</a>, if sorted |
+| <a href="#SkRect_width">width</a> | returns span in <a href="#SkRect_x">x</a> |
+| <a href="#SkRect_x">x</a> | returns bounds <a href="#SkRect_left">left</a> |
+| <a href="#SkRect_y">y</a> | returns bounds <a href="#SkRect_top">top</a> |
<a name="SkRect_fLeft"> <code><strong>SkScalar fLeft</strong></code> </a>
diff --git a/site/user/api/SkSurface_Reference.md b/site/user/api/SkSurface_Reference.md
index 58ec8ce6d9..3120e738c5 100644
--- a/site/user/api/SkSurface_Reference.md
+++ b/site/user/api/SkSurface_Reference.md
@@ -17,38 +17,56 @@ of the requested dimensions are zero, then nullptr will be returned.
| topics | description |
| --- | --- |
+| <a href="#Overview_Constructors">Constructors</a> | functions that construct <a href="SkIPoint16_Reference#SkIPoint16">SkIPoint16</a> |
+| <a href="#Overview_Member_Functions">Member Functions</a> | static functions and member methods |
+
+## <a name="Constructors"></a> Constructors
+
+| name | description |
+| --- | --- |
+| <a href="#SkSurface_MakeFromBackendRenderTarget">MakeFromBackendRenderTarget</a> | creates <a href="#Surface">Surface</a> from GPU memory buffer |
+| <a href="#SkSurface_MakeFromBackendTexture">MakeFromBackendTexture</a> | creates <a href="#Surface">Surface</a> from GPU-backed texture |
+| <a href="#SkSurface_MakeFromBackendTextureAsRenderTarget">MakeFromBackendTextureAsRenderTarget</a> | creates <a href="#Surface">Surface</a> from GPU-backed texture |
+| <a href="#SkSurface_MakeNull">MakeNull</a> | creates <a href="#Surface">Surface</a> without backing pixels |
+| <a href="#SkSurface_MakeRaster">MakeRaster</a> | creates <a href="#Surface">Surface</a> from <a href="undocumented#SkImageInfo">SkImageInfo</a> |
+| <a href="#SkSurface_MakeRasterDirect">MakeRasterDirect</a> | creates <a href="#Surface">Surface</a> from <a href="undocumented#SkImageInfo">SkImageInfo</a> and <a href="#Storage">Pixel Storage</a> |
+| <a href="#SkSurface_MakeRasterDirectReleaseProc">MakeRasterDirectReleaseProc</a> | creates <a href="#Surface">Surface</a> from <a href="undocumented#SkImageInfo">SkImageInfo</a> and <a href="#Storage">Pixel Storage</a> |
+| <a href="#SkSurface_MakeRasterN32Premul">MakeRasterN32Premul</a> | creates <a href="#Surface">Surface</a> from <a href="#SkSurface_width">width</a>, <a href="#SkSurface_height">height</a> matching output |
+| <a href="#SkSurface_MakeRenderTarget">MakeRenderTarget</a> | creates <a href="#Surface">Surface</a> pointing to new GPU memory buffer |
+| <a href="#SkCanvas_makeSurface">SkCanvas::makeSurface</a> | creates <a href="#Surface">Surface</a> matching <a href="SkCanvas_Reference#Canvas">Canvas</a> <a href="undocumented#Image_Info">Image Info</a>, <a href="#Properties">Surface Properties</a> |
+| <a href="#SkSurface_makeSurface">makeSurface</a> | creates a compatible <a href="#Surface">Surface</a> |
## <a name="Member_Functions"></a> Member Functions
| description | function |
| --- | --- |
-| <a href="#SkSurface_MakeFromBackendRenderTarget">MakeFromBackendRenderTarget</a> | Creates <a href="#Surface">Surface</a> from GPU memory buffer. |
-| <a href="#SkSurface_MakeFromBackendTexture">MakeFromBackendTexture</a> | Creates <a href="#Surface">Surface</a> from GPU-backed texture. |
-| <a href="#SkSurface_MakeFromBackendTextureAsRenderTarget">MakeFromBackendTextureAsRenderTarget</a> | Creates <a href="#Surface">Surface</a> from GPU-backed texture. |
-| <a href="#SkSurface_MakeNull">MakeNull</a> | Creates <a href="#Surface">Surface</a> without backing pixels. |
-| <a href="#SkSurface_MakeRaster">MakeRaster</a> | Creates <a href="#Surface">Surface</a> from <a href="undocumented#SkImageInfo">SkImageInfo</a>. |
-| <a href="#SkSurface_MakeRasterDirect">MakeRasterDirect</a> | Creates <a href="#Surface">Surface</a> from <a href="undocumented#SkImageInfo">SkImageInfo</a> and <a href="#Storage">Pixel Storage</a>. |
-| <a href="#SkSurface_MakeRasterDirectReleaseProc">MakeRasterDirectReleaseProc</a> | Creates <a href="#Surface">Surface</a> from <a href="undocumented#SkImageInfo">SkImageInfo</a> and <a href="#Storage">Pixel Storage</a>. |
-| <a href="#SkSurface_MakeRasterN32Premul">MakeRasterN32Premul</a> | Creates <a href="#Surface">Surface</a> from <a href="#SkSurface_width">width</a>, <a href="#SkSurface_height">height</a> matching output. |
-| <a href="#SkSurface_MakeRenderTarget">MakeRenderTarget</a> | Creates <a href="#Surface">Surface</a> pointing to new GPU memory buffer. |
-| <a href="#SkSurface_characterize">characterize</a> | Set up <a href="#Characterization">Surface Characterization</a> for threaded pre-processing. |
-| <a href="#SkSurface_draw">draw</a> | Draws <a href="#Surface">Surface</a> contents to canvas. |
-| <a href="#SkSurface_flush">flush</a> | Resolve pending I/O. |
-| <a href="#SkSurface_flushAndSignalSemaphores">flushAndSignalSemaphores</a> | Resolve pending I/O, and signal. |
-| <a href="#SkSurface_generationID">generationID</a> | Returns unique ID. |
-| <a href="#SkSurface_getCanvas">getCanvas</a> | Returns <a href="SkCanvas_Reference#Canvas">Canvas</a> that draws into <a href="#Surface">Surface</a>. |
-| <a href="#SkSurface_getRenderTargetHandle">getRenderTargetHandle</a> | Returns the GPU reference to render target. |
-| <a href="#SkSurface_getTextureHandle">getTextureHandle</a> | Returns the GPU reference to texture. |
-| <a href="#SkSurface_height">height</a> | Returns pixel row count. |
-| <a href="#SkSurface_makeImageSnapshot">makeImageSnapshot</a> | Returns <a href="SkImage_Reference#Image">Image</a> capturing <a href="#Surface">Surface</a> contents. |
-| <a href="#SkSurface_makeSurface">makeSurface</a> | Returns a compatible <a href="#Surface">Surface</a>. |
-| <a href="#SkSurface_notifyContentWillChange">notifyContentWillChange</a> | Notifies that contents will be changed outside of Skia. |
-| <a href="#SkSurface_peekPixels">peekPixels</a> | Copies <a href="#Surface">Surface</a> parameters to <a href="SkPixmap_Reference#Pixmap">Pixmap</a>. |
-| <a href="#SkSurface_prepareForExternalIO">prepareForExternalIO</a> | To be deprecated. |
-| <a href="#SkSurface_props">props</a> | Returns <a href="#Properties">Surface Properties</a>. |
-| <a href="#SkSurface_readPixels">readPixels</a> | Copies <a href="SkRect_Reference#Rect">Rect</a> of pixels. |
-| <a href="#SkSurface_wait">wait</a> | Pause commands until signaled. |
-| <a href="#SkSurface_width">width</a> | Returns pixel column count. |
+| <a href="#SkSurface_MakeFromBackendRenderTarget">MakeFromBackendRenderTarget</a> | creates <a href="#Surface">Surface</a> from GPU memory buffer |
+| <a href="#SkSurface_MakeFromBackendTexture">MakeFromBackendTexture</a> | creates <a href="#Surface">Surface</a> from GPU-backed texture |
+| <a href="#SkSurface_MakeFromBackendTextureAsRenderTarget">MakeFromBackendTextureAsRenderTarget</a> | creates <a href="#Surface">Surface</a> from GPU-backed texture |
+| <a href="#SkSurface_MakeNull">MakeNull</a> | creates <a href="#Surface">Surface</a> without backing pixels |
+| <a href="#SkSurface_MakeRaster">MakeRaster</a> | creates <a href="#Surface">Surface</a> from <a href="undocumented#SkImageInfo">SkImageInfo</a> |
+| <a href="#SkSurface_MakeRasterDirect">MakeRasterDirect</a> | creates <a href="#Surface">Surface</a> from <a href="undocumented#SkImageInfo">SkImageInfo</a> and <a href="#Storage">Pixel Storage</a> |
+| <a href="#SkSurface_MakeRasterDirectReleaseProc">MakeRasterDirectReleaseProc</a> | creates <a href="#Surface">Surface</a> from <a href="undocumented#SkImageInfo">SkImageInfo</a> and <a href="#Storage">Pixel Storage</a> |
+| <a href="#SkSurface_MakeRasterN32Premul">MakeRasterN32Premul</a> | creates <a href="#Surface">Surface</a> from <a href="#SkSurface_width">width</a>, <a href="#SkSurface_height">height</a> matching output |
+| <a href="#SkSurface_MakeRenderTarget">MakeRenderTarget</a> | creates <a href="#Surface">Surface</a> pointing to new GPU memory buffer |
+| <a href="#SkSurface_characterize">characterize</a> | sets <a href="#Characterization">Surface Characterization</a> for threaded pre-processing |
+| <a href="#SkSurface_draw">draw</a> | draws <a href="#Surface">Surface</a> contents to canvas |
+| <a href="#SkSurface_flush">flush</a> | resolve pending I/O |
+| <a href="#SkSurface_flushAndSignalSemaphores">flushAndSignalSemaphores</a> | resolve pending I/O, and signal |
+| <a href="#SkSurface_generationID">generationID</a> | returns unique ID |
+| <a href="#SkSurface_getCanvas">getCanvas</a> | returns <a href="SkCanvas_Reference#Canvas">Canvas</a> that draws into <a href="#Surface">Surface</a> |
+| <a href="#SkSurface_getRenderTargetHandle">getRenderTargetHandle</a> | returns the GPU reference to render target |
+| <a href="#SkSurface_getTextureHandle">getTextureHandle</a> | returns the GPU reference to texture |
+| <a href="#SkSurface_height">height</a> | returns pixel row count |
+| <a href="#SkSurface_makeImageSnapshot">makeImageSnapshot</a> | creates <a href="SkImage_Reference#Image">Image</a> capturing <a href="#Surface">Surface</a> contents |
+| <a href="#SkSurface_makeSurface">makeSurface</a> | creates a compatible <a href="#Surface">Surface</a> |
+| <a href="#SkSurface_notifyContentWillChange">notifyContentWillChange</a> | notifies that contents will be changed outside of Skia |
+| <a href="#SkSurface_peekPixels">peekPixels</a> | copies <a href="#Surface">Surface</a> parameters to <a href="SkPixmap_Reference#Pixmap">Pixmap</a> |
+| <a href="#SkSurface_prepareForExternalIO">prepareForExternalIO</a> | to be deprecated |
+| <a href="#SkSurface_props">props</a> | returns <a href="#Properties">Surface Properties</a> |
+| <a href="#SkSurface_readPixels">readPixels</a> | copies <a href="SkRect_Reference#Rect">Rect</a> of pixels |
+| <a href="#SkSurface_wait">wait</a> | rause commands until signaled |
+| <a href="#SkSurface_width">width</a> | returns pixel column count |
<a name="SkSurface_MakeRasterDirect"></a>
## MakeRasterDirect
diff --git a/site/user/api/catalog.htm b/site/user/api/catalog.htm
index 21c8e730bc..64b29b29e8 100644
--- a/site/user/api/catalog.htm
+++ b/site/user/api/catalog.htm
@@ -31,7 +31,7 @@
"SkAutoCanvasRestore_restore": {
"code": "void draw(SkCanvas* canvas) {\n for (bool callRestore : { false, true } ) {\n for (bool saveCanvas : {false, true} ) {\n SkAutoCanvasRestore autoRestore(canvas, saveCanvas);\n if (!saveCanvas) {\n canvas->save();\n }\n SkDebugf(\"saveCanvas: %s before restore: %d\\n\",\n saveCanvas ? \"true\" : \"false\", canvas->getSaveCount());\n if (callRestore) autoRestore.restore();\n SkDebugf(\"saveCanvas: %s after restore: %d\\n\",\n saveCanvas ? \"true\" : \"false\", canvas->getSaveCount());\n }\n }\n SkDebugf(\"final count: %d\\n\", canvas->getSaveCount());\n}",
"hash": "9f459b218ec079c1ada23f4412968f9a",
- "file": "SkCanvas_Reference",
+ "file": "SkAutoCanvasRestore_Reference",
"name": "SkAutoCanvasRestore::restore()",
"stdout": "saveCanvas: false before restore: 2\\nsaveCanvas: false after restore: 2\\nsaveCanvas: true before restore: 2\\nsaveCanvas: true after restore: 2\\nsaveCanvas: false before restore: 2\\nsaveCanvas: false after restore: 1\\nsaveCanvas: true before restore: 2\\nsaveCanvas: true after restore: 1\\nfinal count: 1\\n"
},
@@ -1470,13 +1470,6 @@
"name": "SkPaint::getPathEffect",
"stdout": "nullptr == path effect\\nnullptr != path effect\\n"
},
- "SkPaint_getRasterizer": {
- "code": "class DummyRasterizer : public SkRasterizer {\npublic:\n SK_DECLARE_PUBLIC_FLATTENABLE_DESERIALIZATION_PROCS(DummyRasterizer)\n};\nsk_sp<SkFlattenable> DummyRasterizer::CreateProc(SkReadBuffer&) {\n return sk_make_sp<DummyRasterizer>();\n}\n\nvoid draw(SkCanvas* canvas) {\n SkPaint paint;\n DummyRasterizer dummy;\n SkDebugf(\"nullptr %c= rasterizer\\n\", paint.getRasterizer() ? '!' : '=');\n paint.setRasterizer(sk_make_sp<DummyRasterizer>());\n SkDebugf(\"nullptr %c= rasterizer\\n\", paint.getRasterizer() ? '!' : '=');\n}\n",
- "hash": "0707d407c3a14388b107af8ae5873e55",
- "file": "SkPaint_Reference",
- "name": "SkPaint::getRasterizer",
- "stdout": "nullptr == rasterizer\\nnullptr != rasterizer\\n"
- },
"SkPaint_getShader": {
"code": "void draw(SkCanvas* canvas) {\n SkPaint paint;\n SkDebugf(\"nullptr %c= shader\\n\", paint.getShader() ? '!' : '=');\n paint.setShader(SkShader::MakeEmptyShader());\n SkDebugf(\"nullptr %c= shader\\n\", paint.getShader() ? '!' : '=');\n}\n",
"hash": "09f15b9fd88882850da2d235eb86292f",
@@ -1701,13 +1694,6 @@
"name": "SkPaint::refPathEffect",
"stdout": "path effect unique: true\\npath effect unique: false\\n"
},
- "SkPaint_refRasterizer": {
- "code": "void draw(SkCanvas* canvas) {\n SkLayerRasterizer::Builder layerBuilder;\n SkPaint paint1, paint2;\n layerBuilder.addLayer(paint2);\n paint1.setRasterizer(layerBuilder.detach());\n SkDebugf(\"rasterizer unique: %s\\n\", paint1.getRasterizer()->unique() ? \"true\" : \"false\");\n paint2.setRasterizer(paint1.refRasterizer());\n SkDebugf(\"rasterizer unique: %s\\n\", paint1.getRasterizer()->unique() ? \"true\" : \"false\");\n}\n",
- "hash": "c0855ce19a33cb7e5747750ef341b7b3",
- "file": "SkPaint_Reference",
- "name": "SkPaint::refRasterizer",
- "stdout": "rasterizer unique: true\\nrasterizer unique: false\\n"
- },
"SkPaint_refShader": {
"code": "void draw(SkCanvas* canvas) {\n SkPaint paint1, paint2;\n paint1.setShader(SkShader::MakeEmptyShader());\n SkDebugf(\"shader unique: %s\\n\", paint1.getShader()->unique() ? \"true\" : \"false\");\n paint2.setShader(paint1.refShader());\n SkDebugf(\"shader unique: %s\\n\", paint1.getShader()->unique() ? \"true\" : \"false\");\n}\n",
"hash": "53da0295972a418cbc9607bbb17feaa8",
@@ -3331,14 +3317,6 @@
"file": "SkPaint_Reference",
"name": "Path_Effect_Methods"
},
- "Paint_Rasterizer_Methods": {
- "code": "void draw(SkCanvas* canvas) {\n SkLayerRasterizer::Builder layerBuilder;\n SkPaint paint;\n paint.setAntiAlias(true);\n paint.setStyle(SkPaint::kStroke_Style);\n paint.setStrokeWidth(1);\n layerBuilder.addLayer(paint);\n paint.setAlpha(0x10);\n paint.setStyle(SkPaint::kFill_Style);\n paint.setBlendMode(SkBlendMode::kSrc);\n layerBuilder.addLayer(paint);\n paint.reset();\n paint.setAntiAlias(true);\n paint.setTextSize(50);\n paint.setRasterizer(layerBuilder.detach());\n canvas->drawString(\"outline\", 10, 50, paint);\n}\n",
- "width": 256,
- "height": 64,
- "hash": "e63f8a50996699342a14c6e54d684108",
- "file": "SkPaint_Reference",
- "name": "Rasterizer_Methods"
-},
"Paint_Shader_Methods": {
"code": "void draw(SkCanvas* canvas) {\n SkPaint paint;\n SkPoint center = { 50, 50 };\n SkScalar radius = 50;\n const SkColor colors[] = { 0xFFFFFFFF, 0xFF000000 };\n paint.setShader(SkGradientShader::MakeRadial(center, radius, colors,\n nullptr, SK_ARRAY_COUNT(colors), SkShader::kClamp_TileMode));\n for (SkScalar a : { 0.3f, 0.6f, 1.0f } ) {\n paint.setAlpha((int) (a * 255));\n canvas->drawCircle(center.fX, center.fY, radius, paint);\n canvas->translate(70, 70);\n }\n}\n",
"width": 256,
@@ -3528,7 +3506,7 @@
"width": 256,
"height": 128,
"hash": "466ef576b88e29d7252422db7adeed1c",
- "file": "SkCanvas_Reference",
+ "file": "SkAutoCanvasRestore_Reference",
"name": "SkAutoCanvasRestore::SkAutoCanvasRestore(SkCanvas* canvas, bool doSave)"
},
"SkBitmap_allocN32Pixels": {
@@ -5747,14 +5725,6 @@
"file": "SkPaint_Reference",
"name": "SkPaint::setPathEffect"
},
- "SkPaint_setRasterizer": {
- "code": "void draw(SkCanvas* canvas) {\n SkLayerRasterizer::Builder layerBuilder;\n SkPaint paint;\n paint.setAntiAlias(true);\n paint.setStyle(SkPaint::kStroke_Style);\n paint.setStrokeWidth(2);\n layerBuilder.addLayer(paint);\n paint.reset();\n paint.setAntiAlias(true);\n paint.setTextSize(50);\n paint.setMaskFilter(SkBlurMaskFilter::Make(kNormal_SkBlurStyle, 3));\n paint.setRasterizer(layerBuilder.detach());\n canvas->drawString(\"blurry out\", 0, 50, paint);\n}",
- "width": 256,
- "height": 64,
- "hash": "aec8ed9296c1628073086a33039f62b7",
- "file": "SkPaint_Reference",
- "name": "SkPaint::setRasterizer"
-},
"SkPaint_setShader": {
"code": "void draw(SkCanvas* canvas) {\n SkPaint paint;\n paint.setColor(SK_ColorBLUE);\n paint.setShader(SkShader::MakeColorShader(SK_ColorRED));\n canvas->drawRect(SkRect::MakeWH(40, 40), paint);\n paint.setShader(nullptr);\n canvas->translate(50, 0);\n canvas->drawRect(SkRect::MakeWH(40, 40), paint);\n}\n",
"width": 256,
diff --git a/site/user/api/undocumented.md b/site/user/api/undocumented.md
index 8de6faf503..8e9e7f058d 100644
--- a/site/user/api/undocumented.md
+++ b/site/user/api/undocumented.md
@@ -943,10 +943,6 @@ void setImmutable()
---
-# <a name="Pixel_Serializer"></a> Pixel Serializer
-
-# <a name="SkPixelSerializer"></a> Class SkPixelSerializer
-
# <a name="Point3"></a> Point3
# <a name="SkPoint3"></a> Struct SkPoint3
diff --git a/tools/bookmaker/bookmaker.cpp b/tools/bookmaker/bookmaker.cpp
index b63813d667..217a696420 100644
--- a/tools/bookmaker/bookmaker.cpp
+++ b/tools/bookmaker/bookmaker.cpp
@@ -12,21 +12,25 @@ 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)");
DEFINE_string2(examples, e, "", "File of fiddlecli input, usually fiddle.json (For now, disables -r -f -s)");
DEFINE_string2(fiddle, f, "", "File of fiddlecli output, usually fiddleout.json.");
-DEFINE_bool2(hack, h, false, "Do a find/replace hack to update all *.bmh files. (Requires -b)");
+DEFINE_bool2(hack, H, false, "Do a find/replace hack to update all *.bmh files. (Requires -b)");
+// h is reserved for help
DEFINE_string2(include, i, "", "Path to a *.h file or a directory.");
DEFINE_bool2(selfcheck, k, false, "Check bmh against itself. (Requires -b)");
DEFINE_bool2(stdout, o, false, "Write file out to standard out.");
DEFINE_bool2(populate, p, false, "Populate include from bmh. (Requires -b -i)");
+// q is reserved for quiet
DEFINE_string2(ref, r, "", "Resolve refs and write *.md files to path. (Requires -b -f)");
DEFINE_string2(spellcheck, s, "", "Spell-check [once, all, mispelling]. (Requires -b)");
DEFINE_bool2(tokens, t, false, "Write bmh from include. (Requires -b -i)");
DEFINE_bool2(crosscheck, x, false, "Check bmh against includes. (Requires -b -i)");
+// v is reserved for verbose
DEFINE_bool2(skip, z, false, "Skip degenerate missed in legacy preprocessor.");
/* recipe for generating timestamps for existing doxygen comments
find include/core -type f -name '*.h' -print -exec git blame {} \; > ~/all.blame.txt
todos:
+check column 1 of subtopic tables to see that they start lowercase and don't have a trailing period
space table better for Constants
should Return be on same line as 'Return Value'?
remove anonymous header, e.g. Enum SkPaint::::anonymous_2
@@ -186,6 +190,9 @@ bool BmhParser::addDefinition(const char* defStart, bool hasEnd, MarkType markTy
}
definition->fFiddle = parent ? parent->fFiddle + '_' : "";
definition->fFiddle += Definition::NormalizedName(typeNameBuilder[0]);
+ if (string::npos != typeNameBuilder[0].find("Member_Functions")) {
+ SkDebugf("");
+ }
this->setAsParent(definition);
}
{
diff --git a/tools/bookmaker/mdOut.cpp b/tools/bookmaker/mdOut.cpp
index 24009d02f8..13514683bf 100644
--- a/tools/bookmaker/mdOut.cpp
+++ b/tools/bookmaker/mdOut.cpp
@@ -502,6 +502,11 @@ const Definition* MdOut::isDefined(const TextParser& parser, const string& ref,
}
}
}
+ string fiddlePrefixed = root->fFiddle + "_" + ref;
+ auto topicIter = fBmhParser.fTopicMap.find(fiddlePrefixed);
+ if (topicIter != fBmhParser.fTopicMap.end()) {
+ return topicIter->second;
+ }
} while ((test = test->fParent));
}
size_t doubleColon = ref.find("::");
diff --git a/tools/bookmaker/selfCheck.cpp b/tools/bookmaker/selfCheck.cpp
index 0b28d16c70..7f112697c0 100644
--- a/tools/bookmaker/selfCheck.cpp
+++ b/tools/bookmaker/selfCheck.cpp
@@ -7,15 +7,11 @@
#include "bookmaker.h"
-// Check that summary contains all methods
// Check that mutiple like-named methods are under one Subtopic
// Check that all subtopics are in table of contents
-// Check that all constructors are in a table of contents
-// should be 'creators' instead of constructors?
-
// Check that SeeAlso reference each other
// Would be nice to check if other classes have 'create' methods that are included
@@ -43,10 +39,13 @@ public:
if (!this->checkMethodSubtopic()) {
return false;
}
- if (!this->checkSubtopicContents()) {
+ if (!this->checkSubtopicSummary()) {
+ return false;
+ }
+ if (!this->checkConstructorsSummary()) {
return false;
}
- if (!this->checkConstructors()) {
+ if (!this->checkOperatorsSummary()) {
return false;
}
if (!this->checkSeeAlso()) {
@@ -60,7 +59,74 @@ public:
}
protected:
- bool checkConstructors() {
+ // Check that all constructors are in a table of contents
+ // should be 'creators' instead of constructors?
+ bool checkConstructorsSummary() {
+ for (auto& rootChild : fRoot->fChildren) {
+ if (!this->isStructOrClass(rootChild)) {
+ continue;
+ }
+ auto& cs = rootChild;
+ auto overview = this->findOverview(cs);
+ if (!overview) {
+ return false;
+ }
+ Definition* constructors = nullptr;
+ for (auto& overChild : overview->fChildren) {
+ if ("Constructors" == overChild->fName) {
+ constructors = overChild;
+ break;
+ }
+ }
+ if (constructors && MarkType::kSubtopic != constructors->fMarkType) {
+ return constructors->reportError<bool>("expected #Subtopic Constructors");
+ }
+ vector<string> constructorEntries;
+ if (constructors) {
+ if (!this->collectEntries(constructors, &constructorEntries)) {
+ return false;
+ }
+ }
+ // mark corresponding methods as visited (may be more than one per entry)
+ for (auto& csChild : cs->fChildren) {
+ if (MarkType::kMethod != csChild->fMarkType) {
+ // only check methods for now
+ continue;
+ }
+ string name;
+ if (!this->childName(csChild, &name)) {
+ return false;
+ }
+ string returnType;
+ if (Definition::MethodType::kConstructor != csChild->fMethodType &&
+ Definition::MethodType::kDestructor != csChild->fMethodType) {
+ string makeCheck = name.substr(0, 4);
+ if ("Make" != makeCheck && "make" != makeCheck) {
+ continue;
+ }
+ // for now, assume return type of interest is first word to start Sk
+ string search(csChild->fStart, csChild->fContentStart - csChild->fStart);
+ auto end = search.find(makeCheck);
+ if (string::npos == end) {
+ return csChild->reportError<bool>("expected Make in content");
+ }
+ search = search.substr(0, end);
+ if (string::npos == search.find(cs->fName)) {
+ // if return value doesn't match current struct or class, look in
+ // returned struct / class instead
+ auto sk = search.find("Sk");
+ if (string::npos != sk) {
+ // todo: build class name, find it, search for match in its overview
+ continue;
+ }
+ }
+ }
+ if (constructorEntries.end() ==
+ std::find(constructorEntries.begin(), constructorEntries.end(), name)) {
+ return csChild->reportError<bool>("missing constructor in Constructors");
+ }
+ }
+ }
return true;
}
@@ -72,105 +138,273 @@ protected:
return true;
}
+ // Check that summary contains all methods
bool checkMethodSummary() {
- SkDebugf("");
// look for struct or class in fChildren
for (auto& rootChild : fRoot->fChildren) {
- if (MarkType::kStruct == rootChild->fMarkType ||
- MarkType::kClass == rootChild->fMarkType) {
- auto& cs = rootChild;
- // expect Overview as Topic in every main class or struct
- Definition* overview = nullptr;
- for (auto& csChild : cs->fChildren) {
- if ("Overview" == csChild->fName) {
- if (!overview) {
- return cs->reportError<bool>("expected only one Overview");
- }
- overview = csChild;
- }
+ if (!this->isStructOrClass(rootChild)) {
+ continue;
+ }
+ auto& cs = rootChild;
+ // expect Overview as Topic in every main class or struct
+ auto overview = this->findOverview(cs);
+ if (!overview) {
+ return false;
+ }
+ Definition* memberFunctions = nullptr;
+ for (auto& overChild : overview->fChildren) {
+ if ("Member_Functions" == overChild->fName) {
+ memberFunctions = overChild;
+ break;
+ }
+ }
+ if (!memberFunctions) {
+ return overview->reportError<bool>("missing #Subtopic Member_Functions");
+ }
+ if (MarkType::kSubtopic != memberFunctions->fMarkType) {
+ return memberFunctions->reportError<bool>("expected #Subtopic Member_Functions");
+ }
+ vector<string> overviewEntries; // build map of overview entries
+ if (!this->collectEntries(memberFunctions, &overviewEntries)) {
+ return false;
+ }
+ // mark corresponding methods as visited (may be more than one per entry)
+ for (auto& csChild : cs->fChildren) {
+ if (MarkType::kMethod != csChild->fMarkType) {
+ // only check methods for now
+ continue;
+ }
+ if (Definition::MethodType::kConstructor == csChild->fMethodType) {
+ continue;
}
- if (!overview) {
- return cs->reportError<bool>("missing #Topic Overview");
+ if (Definition::MethodType::kDestructor == csChild->fMethodType) {
+ continue;
}
- Definition* memberFunctions = nullptr;
- for (auto& overChild : overview->fChildren) {
- if ("Member_Functions" == overChild->fName) {
- memberFunctions = overChild;
+ if (Definition::MethodType::kOperator == csChild->fMethodType) {
+ continue;
+ }
+ string name;
+ if (!this->childName(csChild, &name)) {
+ return false;
+ }
+ if (overviewEntries.end() ==
+ std::find(overviewEntries.begin(), overviewEntries.end(), name)) {
+ return csChild->reportError<bool>("missing method in Member_Functions");
+ }
+ }
+ }
+ return true;
+ }
+
+ // Check that all operators are in a table of contents
+ bool checkOperatorsSummary() {
+ for (auto& rootChild : fRoot->fChildren) {
+ if (!this->isStructOrClass(rootChild)) {
+ continue;
+ }
+ auto& cs = rootChild;
+ auto overview = this->findOverview(cs);
+ if (!overview) {
+ return false;
+ }
+ Definition* operators = nullptr;
+ for (auto& overChild : overview->fChildren) {
+ if ("Operators" == overChild->fName) {
+ operators = overChild;
+ break;
+ }
+ }
+ if (operators && MarkType::kSubtopic != operators->fMarkType) {
+ return operators->reportError<bool>("expected #Subtopic Operators");
+ }
+ vector<string> operatorEntries;
+ if (operators) {
+ if (!this->collectEntries(operators, &operatorEntries)) {
+ return false;
+ }
+ }
+ for (auto& csChild : cs->fChildren) {
+ if (Definition::MethodType::kOperator != csChild->fMethodType) {
+ continue;
+ }
+ string name;
+ if (!this->childName(csChild, &name)) {
+ return false;
+ }
+ bool found = false;
+ for (auto str : operatorEntries) {
+ if (string::npos != str.find(name)) {
+ found = true;
break;
}
}
- if (!memberFunctions) {
- return overview->reportError<bool>("missing #Subtopic Member_Functions");
+ if (!found) {
+ return csChild->reportError<bool>("missing operator in Operators");
+ }
+ }
+ }
+ return true;
+ }
+
+ bool checkSeeAlso() {
+ return true;
+ }
+
+ bool checkSubtopicSummary() {
+ for (auto& rootChild : fRoot->fChildren) {
+ if (!this->isStructOrClass(rootChild)) {
+ continue;
+ }
+ auto& cs = rootChild;
+ auto overview = this->findOverview(cs);
+ if (!overview) {
+ return false;
+ }
+ Definition* subtopics = nullptr;
+ Definition* relatedFunctions = nullptr;
+ for (auto& overChild : overview->fChildren) {
+ if ("Subtopics" == overChild->fName) {
+ subtopics = overChild;
+ } else if ("Related_Functions" == overChild->fName) {
+ relatedFunctions = overChild;
}
- if (MarkType::kSubtopic != memberFunctions->fMarkType) {
- return memberFunctions->reportError<bool>("expected #Subtopic Member_Functions");
+ }
+ if (!subtopics) {
+ return overview->reportError<bool>("missing #Subtopic Subtopics");
+ }
+ if (MarkType::kSubtopic != subtopics->fMarkType) {
+ return subtopics->reportError<bool>("expected #Subtopic Subtopics");
+ }
+ if (relatedFunctions && MarkType::kSubtopic != relatedFunctions->fMarkType) {
+ return relatedFunctions->reportError<bool>("expected #Subtopic Related_Functions");
+ }
+ vector<string> subtopicEntries;
+ if (!this->collectEntries(subtopics, &subtopicEntries)) {
+ return false;
+ }
+ if (relatedFunctions && !this->collectEntries(relatedFunctions, &subtopicEntries)) {
+ return false;
+ }
+ for (auto& csChild : cs->fChildren) {
+ if (MarkType::kSubtopic != csChild->fMarkType) {
+ continue;
}
- Definition* memberTable = nullptr;
- for (auto& memberChild : memberFunctions->fChildren) {
- if (MarkType::kTable == memberChild->fMarkType &&
- memberChild->fName == memberFunctions->fName) {
- memberTable = memberChild;
+ string name;
+ if (!this->childName(csChild, &name)) {
+ return false;
+ }
+ bool found = false;
+ for (auto str : subtopicEntries) {
+ if (string::npos != str.find(name)) {
+ found = true;
break;
}
}
- if (!memberTable) {
- return memberFunctions->reportError<bool>("missing #Table in Member_Functions");
+ if (!found) {
+ return csChild->reportError<bool>("missing SubTopic in SubTopics");
}
- vector<string> overviewEntries; // build map of overview entries
- bool expectLegend = true;
- string prior = " "; // expect entries to be alphabetical
- for (auto& memberRow : memberTable->fChildren) {
- if (MarkType::kLegend == memberRow->fMarkType) {
- if (!expectLegend) {
- return memberRow->reportError<bool>("expect #Legend only once");
- }
- // todo: check if legend format matches table's rows' format
- expectLegend = false;
- } else if (expectLegend) {
- return memberRow->reportError<bool>("expect #Legend first");
- }
- if (MarkType::kRow != memberRow->fMarkType) {
- continue; // let anything through for now; can tighten up in the future
- }
- // expect column 0 to point to function name
- // todo: content end points past space; could tighten that up
- Definition* column0 = memberRow->fChildren[0];
- string name = string(column0->fContentStart,
- column0->fTerminator - column0->fContentStart);
- if (prior > name) {
- return memberRow->reportError<bool>("expect alphabetical order");
- }
- if (prior == name) {
- return memberRow->reportError<bool>("expect unique names");
- }
- // todo: error if name is all lower case and doesn't end in ()
- overviewEntries.push_back(name);
- prior = name;
- }
- // mark corresponding methods as visited (may be more than one per entry)
- for (auto& csChild : cs->fChildren) {
- if (MarkType::kMethod != csChild->fMarkType) {
- // only check methods for now
- continue;
- }
- auto start = csChild->fName.find_last_of(':');
- start = string::npos == start ? 0 : start + 1;
- string name = csChild->fName.substr(start);
- if (overviewEntries.end() ==
- std::find(overviewEntries.begin(), overviewEntries.end(), name)) {
- return csChild->reportError<bool>("missing in Overview");
- }
+ }
+ }
+ return true;
+ }
+
+ bool childName(const Definition* def, string* name) {
+ auto start = def->fName.find_last_of(':');
+ start = string::npos == start ? 0 : start + 1;
+ *name = def->fName.substr(start);
+ if (def->fClone) {
+ auto lastUnderline = name->find_last_of('_');
+ if (string::npos == lastUnderline) {
+ return def->reportError<bool>("expect _ in name");
+ }
+ if (lastUnderline + 1 >= name->length()) {
+ return def->reportError<bool>("expect char after _ in name");
+ }
+ for (auto index = lastUnderline + 1; index < name->length(); ++index) {
+ if (!isdigit((*name)[index])) {
+ return def->reportError<bool>("expect digit after _ in name");
}
}
+ *name = name->substr(0, lastUnderline);
+ bool allLower = true;
+ for (auto ch : *name) {
+ allLower &= (bool) islower(ch);
+ }
+ if (allLower) {
+ *name += "()";
+ }
}
return true;
}
- bool checkSeeAlso() {
+ const Definition* findOverview(const Definition* parent) {
+ // expect Overview as Topic in every main class or struct
+ Definition* overview = nullptr;
+ for (auto& csChild : parent->fChildren) {
+ if ("Overview" == csChild->fName) {
+ if (overview) {
+ return csChild->reportError<const Definition*>("expected only one Overview");
+ }
+ overview = csChild;
+ }
+ }
+ if (!overview) {
+ return parent->reportError<const Definition*>("missing #Topic Overview");
+ }
+ return overview;
+ }
+
+ bool collectEntries(const Definition* entries, vector<string>* strings) {
+ const Definition* table = nullptr;
+ for (auto& child : entries->fChildren) {
+ if (MarkType::kTable == child->fMarkType && child->fName == entries->fName) {
+ table = child;
+ break;
+ }
+ }
+ if (!table) {
+ return entries->reportError<bool>("missing #Table in Overview Subtopic");
+ }
+ bool expectLegend = true;
+ string prior = " "; // expect entries to be alphabetical
+ for (auto& row : table->fChildren) {
+ if (MarkType::kLegend == row->fMarkType) {
+ if (!expectLegend) {
+ return row->reportError<bool>("expect #Legend only once");
+ }
+ // todo: check if legend format matches table's rows' format
+ expectLegend = false;
+ } else if (expectLegend) {
+ return row->reportError<bool>("expect #Legend first");
+ }
+ if (MarkType::kRow != row->fMarkType) {
+ continue; // let anything through for now; can tighten up in the future
+ }
+ // expect column 0 to point to function name
+ Definition* column0 = row->fChildren[0];
+ string name = string(column0->fContentStart,
+ column0->fContentEnd - column0->fContentStart);
+ if (prior > name) {
+ return row->reportError<bool>("expect alphabetical order");
+ }
+ if (prior == name) {
+ return row->reportError<bool>("expect unique names");
+ }
+ // todo: error if name is all lower case and doesn't end in ()
+ strings->push_back(name);
+ prior = name;
+ }
return true;
}
- bool checkSubtopicContents() {
+ bool isStructOrClass(const Definition* definition) {
+ if (MarkType::kStruct != definition->fMarkType &&
+ MarkType::kClass != definition->fMarkType) {
+ return false;
+ }
+ if (string::npos != definition->fFileName.find("undocumented.bmh")) {
+ return false;
+ }
return true;
}