fix SkPath documentation

SkPath now returns reference to itself.
There's also a new addPoly() variant.
Update the docs to match.

TBR=reed@google.com,kjlubick@google.com

Docs-Preview: https://skia.org/?cl=147216
Bug: skia:6818
Change-Id: I0e40e942cc46a8994285dfea4c81e2042a4e689c
Reviewed-on: https://skia-review.googlesource.com/147216
Commit-Queue: Cary Clark <caryclark@skia.org>
Commit-Queue: Kevin Lubick <kjlubick@google.com>
Auto-Submit: Cary Clark <caryclark@skia.org>
Reviewed-by: Kevin Lubick <kjlubick@google.com>
Reviewed-by: Cary Clark <caryclark@skia.org>
diff --git a/docs/SkPath_Reference.bmh b/docs/SkPath_Reference.bmh
index 55cd01a..b41fe22 100644
--- a/docs/SkPath_Reference.bmh
+++ b/docs/SkPath_Reference.bmh
@@ -1221,13 +1221,15 @@
 
 # ------------------------------------------------------------------------------
 
-#Method void reset()
+#Method SkPath& reset()
 #In Constructor
 #Line # removes Verb_Array, Point_Array, and Weights; frees memory ##
 Sets Path to its initial state.
 Removes Verb_Array, Point_Array, and Weights, and sets FillType to kWinding_FillType.
 Internal storage associated with Path is released.
 
+#Return reference to Path ##
+
 #Example
    SkPath path1, path2;
    path1.setFillType(SkPath::kInverseWinding_FillType);
@@ -1243,7 +1245,7 @@
 
 # ------------------------------------------------------------------------------
 
-#Method void rewind()
+#Method SkPath& rewind()
 #In Constructor
 #Line # removes Verb_Array, Point_Array, and Weights, keeping memory ##
 Sets Path to its initial state, preserving internal storage.
@@ -1253,6 +1255,8 @@
 Use rewind() instead of reset() if Path storage will be reused and performance
 is critical.
 
+#Return reference to Path ##
+
 #Example
 #Description
 Although path1 retains its internal storage, it is indistinguishable from
@@ -2119,7 +2123,7 @@
 #Line # adds points and verbs to path ##
 ##
 
-#Method void moveTo(SkScalar x, SkScalar y)
+#Method SkPath& moveTo(SkScalar x, SkScalar y)
 #In Build
 #Line # starts Contour ##
 Adds beginning of Contour at Point (x, y).
@@ -2127,6 +2131,8 @@
 #Param x  x-axis value of Contour start ##
 #Param y  y-axis value of Contour start ##
 
+#Return reference to Path ##
+
 #Example
     #Width 140
     #Height 100
@@ -2148,12 +2154,14 @@
 
 ##
 
-#Method void moveTo(const SkPoint& p)
+#Method SkPath& moveTo(const SkPoint& p)
 
 Adds beginning of Contour at Point p.
 
 #Param p  contour start ##
 
+#Return reference to Path ##
+
 #Example
     #Width 128
     #Height 128
@@ -2176,7 +2184,7 @@
 
 ##
 
-#Method void rMoveTo(SkScalar dx, SkScalar dy)
+#Method SkPath& rMoveTo(SkScalar dx, SkScalar dy)
 #In Build
 #Line # starts Contour relative to Last_Point ##
 Adds beginning of Contour relative to Last_Point.
@@ -2187,6 +2195,8 @@
 #Param dx  offset from Last_Point to Contour start on x-axis ##
 #Param dy  offset from Last_Point to Contour start on y-axis ##
 
+#Return reference to Path ##
+
 #Example
     #Height 100
     SkPath path;
@@ -2209,7 +2219,7 @@
 
 # ------------------------------------------------------------------------------
 
-#Method void lineTo(SkScalar x, SkScalar y)
+#Method SkPath& lineTo(SkScalar x, SkScalar y)
 #In Build
 #Line # appends Line ##
 Adds Line from Last_Point to (x, y). If Path is empty, or last Verb is
@@ -2221,6 +2231,8 @@
 #Param x  end of added Line in x ##
 #Param y  end of added Line in y ##
 
+#Return reference to Path ##
+
 #Example
 #Height 100
 ###$
@@ -2252,7 +2264,7 @@
 
 # ------------------------------------------------------------------------------
 
-#Method void lineTo(const SkPoint& p)
+#Method SkPath& lineTo(const SkPoint& p)
 
 Adds Line from Last_Point to Point p. If Path is empty, or last Verb is
 kClose_Verb, Last_Point is set to (0, 0) before adding Line.
@@ -2262,6 +2274,8 @@
 
 #Param p  end Point of added Line ##
 
+#Return reference to Path ##
+
 #Example
 #Height 100
     SkPath path;
@@ -2283,7 +2297,7 @@
 
 # ------------------------------------------------------------------------------
 
-#Method void rLineTo(SkScalar dx, SkScalar dy)
+#Method SkPath& rLineTo(SkScalar dx, SkScalar dy)
 #In Build
 #Line # appends Line relative to Last_Point ##
 Adds Line from Last_Point to Vector (dx, dy). If Path is empty, or last Verb is
@@ -2297,6 +2311,8 @@
 #Param dx  offset from Last_Point to Line end on x-axis ##
 #Param dy  offset from Last_Point to Line end on y-axis ##
 
+#Return reference to Path ##
+
 #Example
 #Height 128
 void draw(SkCanvas* canvas) {
@@ -2379,7 +2395,7 @@
 }
 ##
 
-#Method void quadTo(SkScalar x1, SkScalar y1, SkScalar x2, SkScalar y2)
+#Method SkPath& quadTo(SkScalar x1, SkScalar y1, SkScalar x2, SkScalar y2)
 
 #In Quad
 #Line # appends Quad ##
@@ -2396,6 +2412,8 @@
     #Param x2  end Point of Quad in x ##
     #Param y2  end Point of Quad in y ##
 
+    #Return reference to Path ##
+
     #Example
     void draw(SkCanvas* canvas) {
         SkPaint paint;
@@ -2418,7 +2436,7 @@
 
 ##
 
-#Method void quadTo(const SkPoint& p1, const SkPoint& p2)
+#Method SkPath& quadTo(const SkPoint& p1, const SkPoint& p2)
 #In Build
 #In Quad
     Adds Quad from Last_Point towards Point p1, to Point p2.
@@ -2432,6 +2450,8 @@
     #Param p1  control Point of added Quad ##
     #Param p2  end Point of added Quad ##
 
+    #Return reference to Path ##
+
     #Example
     void draw(SkCanvas* canvas) {
         SkPaint paint;
@@ -2451,7 +2471,7 @@
 
 ##
 
-#Method void rQuadTo(SkScalar dx1, SkScalar dy1, SkScalar dx2, SkScalar dy2)
+#Method SkPath& rQuadTo(SkScalar dx1, SkScalar dy1, SkScalar dx2, SkScalar dy2)
 #In Build
 #In Quad
 #Line # appends Quad relative to Last_Point ##
@@ -2471,6 +2491,8 @@
     #Param dx2  offset from Last_Point to Quad end on x-axis ##
     #Param dy2  offset from Last_Point to Quad end on y-axis ##
 
+    #Return reference to Path ##
+
     #Example
     void draw(SkCanvas* canvas) {
         SkPaint paint;
@@ -2624,7 +2646,7 @@
 
 #Subtopic Weight ##
 
-#Method void conicTo(SkScalar x1, SkScalar y1, SkScalar x2, SkScalar y2,
+#Method SkPath& conicTo(SkScalar x1, SkScalar y1, SkScalar x2, SkScalar y2,
                  SkScalar w)
 #In Conic
 #In Build
@@ -2651,6 +2673,8 @@
     #Param y2  end Point of Conic in y ##
     #Param w   weight of added Conic ##
 
+    #Return reference to Path ##
+
     #Example
     #Height 160
     #Description
@@ -2683,7 +2707,7 @@
 
 ##
 
-#Method void conicTo(const SkPoint& p1, const SkPoint& p2, SkScalar w)
+#Method SkPath& conicTo(const SkPoint& p1, const SkPoint& p2, SkScalar w)
 #In Build
 #In Conic
     Adds Conic from Last_Point towards Point p1, to Point p2, weighted by w.
@@ -2705,6 +2729,8 @@
     #Param p2  end Point of added Conic ##
     #Param w   weight of added Conic ##
 
+    #Return reference to Path ##
+
     #Example
     #Height 128
     #Description
@@ -2740,7 +2766,7 @@
 
 ##
 
-#Method void rConicTo(SkScalar dx1, SkScalar dy1, SkScalar dx2, SkScalar dy2,
+#Method SkPath& rConicTo(SkScalar dx1, SkScalar dy1, SkScalar dx2, SkScalar dy2,
                   SkScalar w)
 #In Build
 #In Conic
@@ -2770,6 +2796,8 @@
     #Param dy2  offset from Last_Point to Conic end on y-axis ##
     #Param w    weight of added Conic ##
 
+    #Return reference to Path ##
+
     #Example
     #Height 140
     void draw(SkCanvas* canvas) {
@@ -2830,7 +2858,7 @@
 }
 ##
 
-#Method void cubicTo(SkScalar x1, SkScalar y1, SkScalar x2, SkScalar y2,
+#Method SkPath& cubicTo(SkScalar x1, SkScalar y1, SkScalar x2, SkScalar y2,
                  SkScalar x3, SkScalar y3)
 #In Build
 #In Cubic
@@ -2851,6 +2879,8 @@
 #Param x3  end Point of Cubic in x ##
 #Param y3  end Point of Cubic in y ##
 
+#Return reference to Path ##
+
 #Example
 void draw(SkCanvas* canvas) {
     SkPaint paint;
@@ -2876,7 +2906,7 @@
 
 # ------------------------------------------------------------------------------
 
-#Method void cubicTo(const SkPoint& p1, const SkPoint& p2, const SkPoint& p3)
+#Method SkPath& cubicTo(const SkPoint& p1, const SkPoint& p2, const SkPoint& p3)
 
 #In Build
 #In Cubic
@@ -2892,6 +2922,8 @@
 #Param p2  second control Point of Cubic ##
 #Param p3  end Point of Cubic ##
 
+#Return reference to Path ##
+
 #Example
 #Height 84
     SkPaint paint;
@@ -2910,7 +2942,7 @@
 
 # ------------------------------------------------------------------------------
 
-#Method void rCubicTo(SkScalar x1, SkScalar y1, SkScalar x2, SkScalar y2,
+#Method SkPath& rCubicTo(SkScalar x1, SkScalar y1, SkScalar x2, SkScalar y2,
                   SkScalar x3, SkScalar y3)
 #In Build
 #In Cubic
@@ -2935,6 +2967,8 @@
     #Param x3  offset from Last_Point to Cubic end on x-axis ##
     #Param y3  offset from Last_Point to Cubic end on y-axis ##
 
+    #Return reference to Path ##
+
 #Example
     void draw(SkCanvas* canvas) {
         SkPaint paint;
@@ -3147,7 +3181,7 @@
 #Example ##
 
 
-#Method void arcTo(const SkRect& oval, SkScalar startAngle, SkScalar sweepAngle, bool forceMoveTo)
+#Method SkPath& arcTo(const SkRect& oval, SkScalar startAngle, SkScalar sweepAngle, bool forceMoveTo)
 #In Build
 #In Arc
 #Line # appends Arc ##
@@ -3165,6 +3199,8 @@
 #Param sweepAngle  sweep, in degrees. Positive is clockwise; treated modulo 360 ##
 #Param forceMoveTo  true to start a new contour with Arc ##
 
+#Return reference to Path ##
+
 #Example
 #Height 200
 #Description
@@ -3195,7 +3231,7 @@
 
 # ------------------------------------------------------------------------------
 
-#Method void arcTo(SkScalar x1, SkScalar y1, SkScalar x2, SkScalar y2, SkScalar radius)
+#Method SkPath& arcTo(SkScalar x1, SkScalar y1, SkScalar x2, SkScalar y2, SkScalar radius)
 #In Build
 #In Arc
 Appends Arc to Path, after appending Line if needed. Arc is implemented by Conic
@@ -3303,6 +3339,8 @@
 #Param y2      y-axis value end of second tangent ##
 #Param radius  distance from Arc to Circle center ##
 
+#Return reference to Path ##
+
 #Example
 #Description
 arcTo is represented by Line and circular Conic in Path.
@@ -3344,7 +3382,7 @@
 
 # ------------------------------------------------------------------------------
 
-#Method void arcTo(const SkPoint p1, const SkPoint p2, SkScalar radius)
+#Method SkPath& arcTo(const SkPoint p1, const SkPoint p2, SkScalar radius)
 #In Build
 #In Arc
 Appends Arc to Path, after appending Line if needed. Arc is implemented by Conic
@@ -3365,6 +3403,8 @@
 #Param p2      end of second tangent ##
 #Param radius  distance from Arc to Circle center ##
 
+#Return reference to Path ##
+
 #Example
 #Description
 Because tangent lines are parallel, arcTo appends line from last Path Point to
@@ -3458,7 +3498,7 @@
 
 # ------------------------------------------------------------------------------
 
-#Method void arcTo(SkScalar rx, SkScalar ry, SkScalar xAxisRotate, ArcSize largeArc,
+#Method SkPath& arcTo(SkScalar rx, SkScalar ry, SkScalar xAxisRotate, ArcSize largeArc,
                Direction sweep, SkScalar x, SkScalar y)
 #In Build
 #In Arc
@@ -3486,6 +3526,8 @@
 #Param x            end of Arc ##
 #Param y            end of Arc ##
 
+#Return reference to Path ##
+
 #Example
 #Height 160
 void draw(SkCanvas* canvas) {
@@ -3513,7 +3555,7 @@
 
 # ------------------------------------------------------------------------------
 
-#Method void arcTo(const SkPoint r, SkScalar xAxisRotate, ArcSize largeArc, Direction sweep,
+#Method SkPath& arcTo(const SkPoint r, SkScalar xAxisRotate, ArcSize largeArc, Direction sweep,
                const SkPoint xy)
 #In Build
 #In Arc
@@ -3538,6 +3580,8 @@
 #Param sweep        chooses clockwise or counterclockwise Arc ##
 #Param xy           end of Arc ##
 
+#Return reference to Path ##
+
 #Example
 #Height 108
 void draw(SkCanvas* canvas) {
@@ -3558,7 +3602,7 @@
 
 # ------------------------------------------------------------------------------
 
-#Method void rArcTo(SkScalar rx, SkScalar ry, SkScalar xAxisRotate, ArcSize largeArc,
+#Method SkPath& rArcTo(SkScalar rx, SkScalar ry, SkScalar xAxisRotate, ArcSize largeArc,
                 Direction sweep, SkScalar dx, SkScalar dy)
 #In Build
 #In Arc
@@ -3593,6 +3637,8 @@
 #Param dx           x-axis offset end of Arc from last Path Point ##
 #Param dy           y-axis offset end of Arc from last Path Point ##
 
+#Return reference to Path ##
+
 #Example
 #Height 108
 void draw(SkCanvas* canvas) {
@@ -3615,7 +3661,7 @@
 
 # ------------------------------------------------------------------------------
 
-#Method void close()
+#Method SkPath& close()
 #In Build
 #Line # makes last Contour a loop ##
 Appends kClose_Verb to Path. A closed Contour connects the first and last Point
@@ -3626,6 +3672,8 @@
 
 close() has no effect if Path is empty or last Path Verb is kClose_Verb.
 
+#Return reference to Path ##
+
 #Example
 void draw(SkCanvas* canvas) {
     SkPaint paint;
@@ -3952,7 +4000,7 @@
 
 # ------------------------------------------------------------------------------
 
-#Method void addRect(const SkRect& rect, Direction dir = kCW_Direction)
+#Method SkPath& addRect(const SkRect& rect, Direction dir = kCW_Direction)
 #In Build
 #Line # adds one Contour containing Rect ##
 Adds Rect to Path, appending kMove_Verb, three kLine_Verb, and kClose_Verb,
@@ -3963,6 +4011,8 @@
 #Param rect  Rect to add as a closed contour ##
 #Param dir   Direction to wind added contour ##
 
+#Return reference to Path ##
+
 #Example
 #Description
 The left Rect dashes starting at the top-left corner, to the right.
@@ -3991,7 +4041,7 @@
 
 # ------------------------------------------------------------------------------
 
-#Method void addRect(const SkRect& rect, Direction dir, unsigned start)
+#Method SkPath& addRect(const SkRect& rect, Direction dir, unsigned start)
 
 Adds Rect to Path, appending kMove_Verb, three kLine_Verb, and kClose_Verb.
 If dir is kCW_Direction, Rect corners are added clockwise; if dir is
@@ -4012,6 +4062,8 @@
 #Param dir    Direction to wind added contour ##
 #Param start  initial corner of Rect to add ##
 
+#Return reference to Path ##
+
 #Example
 #Height 128
 #Description
@@ -4048,7 +4100,7 @@
 
 # ------------------------------------------------------------------------------
 
-#Method void addRect(SkScalar left, SkScalar top, SkScalar right, SkScalar bottom,
+#Method SkPath& addRect(SkScalar left, SkScalar top, SkScalar right, SkScalar bottom,
                  Direction dir = kCW_Direction)
 
 Adds Rect (left, top, right, bottom) to Path,
@@ -4063,6 +4115,8 @@
 #Param bottom  larger y-axis value of Rect ##
 #Param dir     Direction to wind added contour ##
 
+#Return reference to Path ##
+
 #Example
 #Description
 The left Rect dashes start at the top-left corner, and continue to the right.
@@ -4091,7 +4145,7 @@
 
 # ------------------------------------------------------------------------------
 
-#Method void addOval(const SkRect& oval, Direction dir = kCW_Direction)
+#Method SkPath& addOval(const SkRect& oval, Direction dir = kCW_Direction)
 #In Build
 #Line # adds one Contour containing Oval ##
 Adds Oval to path, appending kMove_Verb, four kConic_Verb, and kClose_Verb.
@@ -4102,6 +4156,8 @@
 #Param oval  bounds of ellipse added ##
 #Param dir   Direction to wind ellipse ##
 
+#Return reference to Path ##
+
 #Example
 #Height 120
     SkPaint paint;
@@ -4116,7 +4172,7 @@
 
 # ------------------------------------------------------------------------------
 
-#Method void addOval(const SkRect& oval, Direction dir, unsigned start)
+#Method SkPath& addOval(const SkRect& oval, Direction dir, unsigned start)
 
 Adds Oval to Path, appending kMove_Verb, four kConic_Verb, and kClose_Verb.
 Oval is upright ellipse bounded by Rect oval with radii equal to half oval width
@@ -4137,6 +4193,8 @@
 #Param dir    Direction to wind ellipse ##
 #Param start  index of initial point of ellipse ##
 
+#Return reference to Path ##
+
 #Example
 #Height 160
 void draw(SkCanvas* canvas) {
@@ -4174,7 +4232,7 @@
 
 # ------------------------------------------------------------------------------
 
-#Method void addCircle(SkScalar x, SkScalar y, SkScalar radius,
+#Method SkPath& addCircle(SkScalar x, SkScalar y, SkScalar radius,
                    Direction dir = kCW_Direction)
 #In Build
 #Line # adds one Contour containing Circle ##
@@ -4194,6 +4252,8 @@
 #Param radius  distance from center to edge ##
 #Param dir     Direction to wind Circle ##
 
+#Return reference to Path ##
+
 #Example
 void draw(SkCanvas* canvas) {
     SkPaint paint;
@@ -4214,7 +4274,7 @@
 
 # ------------------------------------------------------------------------------
 
-#Method void addArc(const SkRect& oval, SkScalar startAngle, SkScalar sweepAngle)
+#Method SkPath& addArc(const SkRect& oval, SkScalar startAngle, SkScalar sweepAngle)
 #In Build
 #Line # adds one Contour containing Arc ##
 Appends Arc to Path, as the start of new Contour. Arc added is part of ellipse
@@ -4230,6 +4290,8 @@
 #Param startAngle  starting angle of Arc in degrees ##
 #Param sweepAngle  sweep, in degrees. Positive is clockwise; treated modulo 360 ##
 
+#Return reference to Path ##
+
 #Example
 #Description
 The middle row of the left and right columns draw differently from the entries
@@ -4256,7 +4318,7 @@
 
 # ------------------------------------------------------------------------------
 
-#Method void addRoundRect(const SkRect& rect, SkScalar rx, SkScalar ry,
+#Method SkPath& addRoundRect(const SkRect& rect, SkScalar rx, SkScalar ry,
                       Direction dir = kCW_Direction)
 #In Build
 #Line # adds one Contour containing Round_Rect with common corner radii ##
@@ -4278,6 +4340,8 @@
 #Param ry    y-axis radius of rounded corners on the Round_Rect ##
 #Param dir   Direction to wind Round_Rect ##
 
+#Return reference to Path ##
+
 #Example
 #Description
 If either radius is zero, path contains Rect and is drawn red.
@@ -4309,7 +4373,7 @@
 
 # ------------------------------------------------------------------------------
 
-#Method void addRoundRect(const SkRect& rect, const SkScalar radii[],
+#Method SkPath& addRoundRect(const SkRect& rect, const SkScalar radii[],
                       Direction dir = kCW_Direction)
 
 Appends Round_Rect to Path, creating a new closed Contour. Round_Rect has bounds
@@ -4344,6 +4408,8 @@
 #Param radii  array of 8 SkScalar values, a radius pair for each corner ##
 #Param dir    Direction to wind Round_Rect ##
 
+#Return reference to Path ##
+
 #Example
 void draw(SkCanvas* canvas) {
     SkPaint paint;
@@ -4366,7 +4432,7 @@
 
 # ------------------------------------------------------------------------------
 
-#Method void addRRect(const SkRRect& rrect, Direction dir = kCW_Direction)
+#Method SkPath& addRRect(const SkRRect& rrect, Direction dir = kCW_Direction)
 #In Build
 #Line # adds one Contour containing Round_Rect ##
 Adds rrect to Path, creating a new closed Contour. If
@@ -4379,6 +4445,8 @@
 #Param rrect  bounds and radii of rounded rectangle ##
 #Param dir   Direction to wind Round_Rect ##
 
+#Return reference to Path ##
+
 #Example
 void draw(SkCanvas* canvas) {
     SkPaint paint;
@@ -4403,7 +4471,7 @@
 
 # ------------------------------------------------------------------------------
 
-#Method void addRRect(const SkRRect& rrect, Direction dir, unsigned start)
+#Method SkPath& addRRect(const SkRRect& rrect, Direction dir, unsigned start)
 
 Adds rrect to Path, creating a new closed Contour. If dir is kCW_Direction, rrect
 winds clockwise; if dir is kCCW_Direction, rrect winds counterclockwise.
@@ -4429,6 +4497,8 @@
 #Param dir    Direction to wind Round_Rect ##
 #Param start  index of initial point of Round_Rect ##
 
+#Return reference to Path ##
+
 #Example
 void draw(SkCanvas* canvas) {
     SkPaint paint;
@@ -4452,12 +4522,12 @@
 
 # ------------------------------------------------------------------------------
 
-#Method void addPoly(const SkPoint pts[], int count, bool close)
+#Method SkPath& addPoly(const SkPoint pts[], int count, bool close)
 #In Build
 #Line # adds one Contour containing connected lines ##
 Adds Contour created from Line array, adding (count - 1) Line segments.
 Contour added starts at pts[0], then adds a line for every additional Point
-in pts array. If close is true,appends kClose_Verb to Path, connecting
+in pts array. If close is true, appends kClose_Verb to Path, connecting
 pts[count - 1] and pts[0].
 
 If count is zero, append kMove_Verb to path.
@@ -4467,6 +4537,8 @@
 #Param count  length of Point array ##
 #Param close  true to add Line connecting Contour end and start ##
 
+#Return reference to Path ##
+
 #Example
 void draw(SkCanvas* canvas) {
     SkPaint paint;
@@ -4491,6 +4563,42 @@
 
 ##
 
+#Method SkPath& addPoly(const std::initializer_list<SkPoint>& list, bool close)
+
+Adds Contour created from list. Contour added starts at list[0], then adds a line
+for every additional Point in list. If close is true, appends kClose_Verb to Path,
+connecting last and first Point in list.
+
+If list is empty, append kMove_Verb to path.
+
+#Param list   array of Points ##
+#Param close  true to add Line connecting Contour end and start ##
+
+#Return reference to Path ##
+
+#Example
+void draw(SkCanvas* canvas) {
+    SkPaint paint;
+    paint.setStrokeWidth(15);
+    paint.setStrokeCap(SkPaint::kRound_Cap);
+    for (bool close : { false, true } ) {
+        SkPath path;
+        path.addPoly({{20, 20}, {70, 20}, {40, 90}}, close);
+        for (auto style : {SkPaint::kStroke_Style, SkPaint::kFill_Style,
+                SkPaint::kStrokeAndFill_Style} ) {
+            paint.setStyle(style);
+            canvas->drawPath(path, paint);
+            canvas->translate(85, 0);
+        }
+        canvas->translate(-255, 128);
+    }
+}
+##
+
+#SeeAlso SkCanvas::drawPoints
+
+##
+
 # ------------------------------------------------------------------------------
 
 #Enum AddPathMode
@@ -4553,7 +4661,7 @@
 
 # ------------------------------------------------------------------------------
 
-#Method void addPath(const SkPath& src, SkScalar dx, SkScalar dy,
+#Method SkPath& addPath(const SkPath& src, SkScalar dx, SkScalar dy,
                  AddPathMode mode = kAppend_AddPathMode)
 #In Build
 #Line # adds contents of Path ##
@@ -4569,6 +4677,8 @@
 #Param dy   offset added to src Point_Array y-axis coordinates ##
 #Param mode kAppend_AddPathMode or kExtend_AddPathMode ##
 
+#Return reference to Path ##
+
 #Example
 #Height 180
     SkPaint paint;
@@ -4591,7 +4701,7 @@
 
 # ------------------------------------------------------------------------------
 
-#Method void addPath(const SkPath& src, AddPathMode mode = kAppend_AddPathMode)
+#Method SkPath& addPath(const SkPath& src, AddPathMode mode = kAppend_AddPathMode)
 
 Appends src to Path.
 
@@ -4602,6 +4712,8 @@
 #Param src  Path Verbs, Points, and Conic_Weights to add ##
 #Param mode kAppend_AddPathMode or kExtend_AddPathMode ##
 
+#Return reference to Path ##
+
 #Example
 #Height 80
     SkPaint paint;
@@ -4621,7 +4733,7 @@
 
 # ------------------------------------------------------------------------------
 
-#Method void addPath(const SkPath& src, const SkMatrix& matrix, AddPathMode mode = kAppend_AddPathMode)
+#Method SkPath& addPath(const SkPath& src, const SkMatrix& matrix, AddPathMode mode = kAppend_AddPathMode)
 
 Appends src to Path, transformed by matrix. Transformed curves may have different
 Verbs, Points, and Conic_Weights.
@@ -4634,6 +4746,8 @@
 #Param matrix  transform applied to src ##
 #Param mode    kAppend_AddPathMode or kExtend_AddPathMode ##
 
+#Return reference to Path ##
+
 #Example
 #Height 160
     SkPaint paint;
@@ -4655,7 +4769,7 @@
 
 # ------------------------------------------------------------------------------
 
-#Method void reverseAddPath(const SkPath& src)
+#Method SkPath& reverseAddPath(const SkPath& src)
 #In Build
 #Line # adds contents of Path back to front ##
 Appends src to Path, from back to front.
@@ -4663,6 +4777,8 @@
 
 #Param src     Path Verbs, Points, and Conic_Weights to add ##
 
+#Return reference to Path ##
+
 #Example
 #Height 200
     SkPath path;
diff --git a/include/core/SkPath.h b/include/core/SkPath.h
index 371097f..75331eb 100644
--- a/include/core/SkPath.h
+++ b/include/core/SkPath.h
@@ -6,7 +6,7 @@
  */
 
 /* Generated by tools/bookmaker from include/core/SkPath.h and docs/SkPath_Reference.bmh
-   on 2018-08-10 12:59:44. Additional documentation and examples can be found at:
+   on 2018-08-15 15:11:20. Additional documentation and examples can be found at:
    https://skia.org/user/api/SkPath_Reference
 
    You may edit either file directly. Structural changes to public interfaces require
@@ -301,6 +301,8 @@
     /** Sets SkPath to its initial state.
         Removes verb array, SkPoint array, and weights, and sets FillType to kWinding_FillType.
         Internal storage associated with SkPath is released.
+
+        @return  reference to SkPath
     */
     SkPath& reset();
 
@@ -310,6 +312,8 @@
 
         Use rewind() instead of reset() if SkPath storage will be reused and performance
         is critical.
+
+        @return  reference to SkPath
     */
     SkPath& rewind();
 
@@ -549,13 +553,14 @@
 
         @param x  x-axis value of contour start
         @param y  y-axis value of contour start
-        @return this path
+        @return   reference to SkPath
     */
     SkPath& moveTo(SkScalar x, SkScalar y);
 
     /** Adds beginning of contour at SkPoint p.
 
         @param p  contour start
+        @return   reference to SkPath
     */
     SkPath& moveTo(const SkPoint& p) {
         return this->moveTo(p.fX, p.fY);
@@ -568,6 +573,7 @@
 
         @param dx  offset from last point to contour start on x-axis
         @param dy  offset from last point to contour start on y-axis
+        @return    reference to SkPath
     */
     SkPath& rMoveTo(SkScalar dx, SkScalar dy);
 
@@ -579,6 +585,7 @@
 
         @param x  end of added line in x
         @param y  end of added line in y
+        @return   reference to SkPath
     */
     SkPath& lineTo(SkScalar x, SkScalar y);
 
@@ -589,6 +596,7 @@
         lineTo() then appends kLine_Verb to verb array and SkPoint p to SkPoint array.
 
         @param p  end SkPoint of added line
+        @return   reference to SkPath
     */
     SkPath& lineTo(const SkPoint& p) {
         return this->lineTo(p.fX, p.fY);
@@ -604,6 +612,7 @@
 
         @param dx  offset from last point to line end on x-axis
         @param dy  offset from last point to line end on y-axis
+        @return    reference to SkPath
     */
     SkPath& rLineTo(SkScalar dx, SkScalar dy);
 
@@ -619,6 +628,7 @@
         @param y1  control SkPoint of quad in y
         @param x2  end SkPoint of quad in x
         @param y2  end SkPoint of quad in y
+        @return    reference to SkPath
     */
     SkPath& quadTo(SkScalar x1, SkScalar y1, SkScalar x2, SkScalar y2);
 
@@ -632,6 +642,7 @@
 
         @param p1  control SkPoint of added quad
         @param p2  end SkPoint of added quad
+        @return    reference to SkPath
     */
     SkPath& quadTo(const SkPoint& p1, const SkPoint& p2) {
         return this->quadTo(p1.fX, p1.fY, p2.fX, p2.fY);
@@ -652,6 +663,7 @@
         @param dy1  offset from last point to quad control on y-axis
         @param dx2  offset from last point to quad end on x-axis
         @param dy2  offset from last point to quad end on y-axis
+        @return     reference to SkPath
     */
     SkPath& rQuadTo(SkScalar dx1, SkScalar dy1, SkScalar dx2, SkScalar dy2);
 
@@ -675,6 +687,7 @@
         @param x2  end SkPoint of conic in x
         @param y2  end SkPoint of conic in y
         @param w   weight of added conic
+        @return    reference to SkPath
     */
     SkPath& conicTo(SkScalar x1, SkScalar y1, SkScalar x2, SkScalar y2,
                     SkScalar w);
@@ -697,6 +710,7 @@
         @param p1  control SkPoint of added conic
         @param p2  end SkPoint of added conic
         @param w   weight of added conic
+        @return    reference to SkPath
     */
     SkPath& conicTo(const SkPoint& p1, const SkPoint& p2, SkScalar w) {
         return this->conicTo(p1.fX, p1.fY, p2.fX, p2.fY, w);
@@ -725,6 +739,7 @@
         @param dx2  offset from last point to conic end on x-axis
         @param dy2  offset from last point to conic end on y-axis
         @param w    weight of added conic
+        @return     reference to SkPath
     */
     SkPath& rConicTo(SkScalar dx1, SkScalar dy1, SkScalar dx2, SkScalar dy2,
                      SkScalar w);
@@ -743,6 +758,7 @@
         @param y2  second control SkPoint of cubic in y
         @param x3  end SkPoint of cubic in x
         @param y3  end SkPoint of cubic in y
+        @return    reference to SkPath
     */
     SkPath& cubicTo(SkScalar x1, SkScalar y1, SkScalar x2, SkScalar y2,
                     SkScalar x3, SkScalar y3);
@@ -758,6 +774,7 @@
         @param p1  first control SkPoint of cubic
         @param p2  second control SkPoint of cubic
         @param p3  end SkPoint of cubic
+        @return    reference to SkPath
     */
     SkPath& cubicTo(const SkPoint& p1, const SkPoint& p2, const SkPoint& p3) {
         return this->cubicTo(p1.fX, p1.fY, p2.fX, p2.fY, p3.fX, p3.fY);
@@ -781,6 +798,7 @@
         @param y2  offset from last point to second cubic control on y-axis
         @param x3  offset from last point to cubic end on x-axis
         @param y3  offset from last point to cubic end on y-axis
+        @return    reference to SkPath
     */
     SkPath& rCubicTo(SkScalar x1, SkScalar y1, SkScalar x2, SkScalar y2,
                      SkScalar x3, SkScalar y3);
@@ -798,6 +816,7 @@
         @param startAngle   starting angle of arc in degrees
         @param sweepAngle   sweep, in degrees. Positive is clockwise; treated modulo 360
         @param forceMoveTo  true to start a new contour with arc
+        @return             reference to SkPath
     */
     SkPath& arcTo(const SkRect& oval, SkScalar startAngle, SkScalar sweepAngle, bool forceMoveTo);
 
@@ -811,6 +830,7 @@
         @param x2      x-axis value end of second tangent
         @param y2      y-axis value end of second tangent
         @param radius  distance from arc to circle center
+        @return        reference to SkPath
     */
     SkPath& arcTo(SkScalar x1, SkScalar y1, SkScalar x2, SkScalar y2, SkScalar radius);
 
@@ -831,6 +851,7 @@
         @param p1      SkPoint common to pair of tangents
         @param p2      end of second tangent
         @param radius  distance from arc to circle center
+        @return        reference to SkPath
     */
     SkPath& arcTo(const SkPoint p1, const SkPoint p2, SkScalar radius) {
         return this->arcTo(p1.fX, p1.fY, p2.fX, p2.fY, radius);
@@ -867,6 +888,7 @@
         @param sweep        chooses clockwise or counterclockwise arc
         @param x            end of arc
         @param y            end of arc
+        @return             reference to SkPath
     */
     SkPath& arcTo(SkScalar rx, SkScalar ry, SkScalar xAxisRotate, ArcSize largeArc,
                   Direction sweep, SkScalar x, SkScalar y);
@@ -890,6 +912,7 @@
         @param largeArc     chooses smaller or larger arc
         @param sweep        chooses clockwise or counterclockwise arc
         @param xy           end of arc
+        @return             reference to SkPath
     */
     SkPath& arcTo(const SkPoint r, SkScalar xAxisRotate, ArcSize largeArc, Direction sweep,
                const SkPoint xy) {
@@ -920,6 +943,7 @@
         @param sweep        chooses clockwise or counterclockwise arc
         @param dx           x-axis offset end of arc from last SkPath SkPoint
         @param dy           y-axis offset end of arc from last SkPath SkPoint
+        @return             reference to SkPath
     */
     SkPath& rArcTo(SkScalar rx, SkScalar ry, SkScalar xAxisRotate, ArcSize largeArc,
                    Direction sweep, SkScalar dx, SkScalar dy);
@@ -931,6 +955,8 @@
         SkPaint::Join at contour start and end.
 
         close() has no effect if SkPath is empty or last SkPath SkPath::Verb is kClose_Verb.
+
+        @return  reference to SkPath
     */
     SkPath& close();
 
@@ -1026,6 +1052,7 @@
 
         @param rect  SkRect to add as a closed contour
         @param dir   SkPath::Direction to wind added contour
+        @return      reference to SkPath
     */
     SkPath& addRect(const SkRect& rect, Direction dir = kCW_Direction);
 
@@ -1037,6 +1064,7 @@
         @param rect   SkRect to add as a closed contour
         @param dir    SkPath::Direction to wind added contour
         @param start  initial corner of SkRect to add
+        @return       reference to SkPath
     */
     SkPath& addRect(const SkRect& rect, Direction dir, unsigned start);
 
@@ -1051,6 +1079,7 @@
         @param right   larger x-axis value of SkRect
         @param bottom  larger y-axis value of SkRect
         @param dir     SkPath::Direction to wind added contour
+        @return        reference to SkPath
     */
     SkPath& addRect(SkScalar left, SkScalar top, SkScalar right, SkScalar bottom,
                     Direction dir = kCW_Direction);
@@ -1062,6 +1091,7 @@
 
         @param oval  bounds of ellipse added
         @param dir   SkPath::Direction to wind ellipse
+        @return      reference to SkPath
     */
     SkPath& addOval(const SkRect& oval, Direction dir = kCW_Direction);
 
@@ -1073,6 +1103,7 @@
         @param oval   bounds of ellipse added
         @param dir    SkPath::Direction to wind ellipse
         @param start  index of initial point of ellipse
+        @return       reference to SkPath
     */
     SkPath& addOval(const SkRect& oval, Direction dir, unsigned start);
 
@@ -1086,6 +1117,7 @@
         @param y       center of circle
         @param radius  distance from center to edge
         @param dir     SkPath::Direction to wind circle
+        @return        reference to SkPath
     */
     SkPath& addCircle(SkScalar x, SkScalar y, SkScalar radius,
                       Direction dir = kCW_Direction);
@@ -1102,6 +1134,7 @@
         @param oval        bounds of ellipse containing arc
         @param startAngle  starting angle of arc in degrees
         @param sweepAngle  sweep, in degrees. Positive is clockwise; treated modulo 360
+        @return            reference to SkPath
     */
     SkPath& addArc(const SkRect& oval, SkScalar startAngle, SkScalar sweepAngle);
 
@@ -1121,6 +1154,7 @@
         @param rx    x-axis radius of rounded corners on the SkRRect
         @param ry    y-axis radius of rounded corners on the SkRRect
         @param dir   SkPath::Direction to wind SkRRect
+        @return      reference to SkPath
     */
     SkPath& addRoundRect(const SkRect& rect, SkScalar rx, SkScalar ry,
                          Direction dir = kCW_Direction);
@@ -1132,6 +1166,7 @@
         @param rect   bounds of SkRRect
         @param radii  array of 8 SkScalar values, a radius pair for each corner
         @param dir    SkPath::Direction to wind SkRRect
+        @return       reference to SkPath
     */
     SkPath& addRoundRect(const SkRect& rect, const SkScalar radii[],
                          Direction dir = kCW_Direction);
@@ -1145,6 +1180,7 @@
 
         @param rrect  bounds and radii of rounded rectangle
         @param dir    SkPath::Direction to wind SkRRect
+        @return       reference to SkPath
     */
     SkPath& addRRect(const SkRRect& rrect, Direction dir = kCW_Direction);
 
@@ -1155,12 +1191,13 @@
         @param rrect  bounds and radii of rounded rectangle
         @param dir    SkPath::Direction to wind SkRRect
         @param start  index of initial point of SkRRect
+        @return       reference to SkPath
     */
     SkPath& addRRect(const SkRRect& rrect, Direction dir, unsigned start);
 
     /** Adds contour created from line array, adding (count - 1) line segments.
         Contour added starts at pts[0], then adds a line for every additional SkPoint
-        in pts array. If close is true,appends kClose_Verb to SkPath, connecting
+        in pts array. If close is true, appends kClose_Verb to SkPath, connecting
         pts[count - 1] and pts[0].
 
         If count is zero, append kMove_Verb to path.
@@ -1169,9 +1206,20 @@
         @param pts    array of line sharing end and start SkPoint
         @param count  length of SkPoint array
         @param close  true to add line connecting contour end and start
+        @return       reference to SkPath
     */
     SkPath& addPoly(const SkPoint pts[], int count, bool close);
 
+    /** Adds contour created from list. Contour added starts at list[0], then adds a line
+        for every additional SkPoint in list. If close is true, appends kClose_Verb to SkPath,
+        connecting last and first SkPoint in list.
+
+        If list is empty, append kMove_Verb to path.
+
+        @param list   array of SkPoint
+        @param close  true to add line connecting contour end and start
+        @return       reference to SkPath
+    */
     SkPath& addPoly(const std::initializer_list<SkPoint>& list, bool close) {
         return this->addPoly(list.begin(), SkToInt(list.size()), close);
     }
@@ -1195,6 +1243,7 @@
         @param dx    offset added to src SkPoint array x-axis coordinates
         @param dy    offset added to src SkPoint array y-axis coordinates
         @param mode  kAppend_AddPathMode or kExtend_AddPathMode
+        @return      reference to SkPath
     */
     SkPath& addPath(const SkPath& src, SkScalar dx, SkScalar dy,
                     AddPathMode mode = kAppend_AddPathMode);
@@ -1207,6 +1256,7 @@
 
         @param src   SkPath verbs, SkPoint, and conic weights to add
         @param mode  kAppend_AddPathMode or kExtend_AddPathMode
+        @return      reference to SkPath
     */
     SkPath& addPath(const SkPath& src, AddPathMode mode = kAppend_AddPathMode) {
         SkMatrix m;
@@ -1224,6 +1274,7 @@
         @param src     SkPath verbs, SkPoint, and conic weights to add
         @param matrix  transform applied to src
         @param mode    kAppend_AddPathMode or kExtend_AddPathMode
+        @return        reference to SkPath
     */
     SkPath& addPath(const SkPath& src, const SkMatrix& matrix,
                     AddPathMode mode = kAppend_AddPathMode);
@@ -1232,6 +1283,7 @@
         Reversed src always appends a new contour to SkPath.
 
         @param src  SkPath verbs, SkPoint, and conic weights to add
+        @return     reference to SkPath
     */
     SkPath& reverseAddPath(const SkPath& src);
 
diff --git a/site/user/api/SkPath_Reference.md b/site/user/api/SkPath_Reference.md
index 76ad5ec..d78cee9 100644
--- a/site/user/api/SkPath_Reference.md
+++ b/site/user/api/SkPath_Reference.md
@@ -1776,13 +1776,17 @@
 ## reset
 
 <pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-void <a href='#SkPath_reset'>reset</a>()
+<a href='#SkPath'>SkPath</a>& <a href='#SkPath_reset'>reset</a>()
 </pre>
 
 Sets <a href='#Path'>Path</a> to its initial state.
 Removes <a href='#Verb_Array'>Verb Array</a>, <a href='#Point_Array'>Point Array</a>, and <a href='#Conic_Weight'>Weights</a>, and sets <a href='#SkPath_FillType'>FillType</a> to <a href='#SkPath_kWinding_FillType'>kWinding FillType</a>.
 Internal storage associated with <a href='#Path'>Path</a> is released.
 
+### Return Value
+
+reference to <a href='#Path'>Path</a>
+
 ### Example
 
 <div><fiddle-embed name="8cdca35d2964bbbecb93d79a13f71c65"></fiddle-embed></div>
@@ -1797,7 +1801,7 @@
 ## rewind
 
 <pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-void <a href='#SkPath_rewind'>rewind</a>()
+<a href='#SkPath'>SkPath</a>& <a href='#SkPath_rewind'>rewind</a>()
 </pre>
 
 Sets <a href='#Path'>Path</a> to its initial state, preserving internal storage.
@@ -1807,6 +1811,10 @@
 Use <a href='#SkPath_rewind'>rewind</a> instead of <a href='#SkPath_reset'>reset</a> if <a href='#Path'>Path</a> storage will be reused and performance
 is critical.
 
+### Return Value
+
+reference to <a href='#Path'>Path</a>
+
 ### Example
 
 <div><fiddle-embed name="f1fedbb89da9c2a33a91805175663012"><div>Although path1 retains its internal storage, it is indistinguishable from
@@ -2772,6 +2780,14 @@
     <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>adds one <a href='#Contour'>Contour</a> containing connected lines</td>
   </tr>
   <tr style='background-color: #f0f0f0; '>
+    <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '></td>
+    <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a href='#SkPath_addPoly'>addPoly(const SkPoint pts[], int count, bool close)</a></td>
+  </tr>
+  <tr>
+    <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '></td>
+    <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a href='#SkPath_addPoly_2'>addPoly(const std::initializer list&lt;SkPoint&gt;& list, bool close)</a></td>
+  </tr>
+  <tr style='background-color: #f0f0f0; '>
     <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a href='#SkPath_addRRect'>addRRect</a></td>
     <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>adds one <a href='#Contour'>Contour</a> containing <a href='SkRRect_Reference#RRect'>Round Rect</a></td>
   </tr>
@@ -2889,7 +2905,7 @@
 ## moveTo
 
 <pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-void <a href='#SkPath_moveTo'>moveTo</a>(<a href='undocumented#SkScalar'>SkScalar</a> x, <a href='undocumented#SkScalar'>SkScalar</a> y)
+<a href='#SkPath'>SkPath</a>& <a href='#SkPath_moveTo'>moveTo</a>(<a href='undocumented#SkScalar'>SkScalar</a> x, <a href='undocumented#SkScalar'>SkScalar</a> y)
 </pre>
 
 Adds beginning of <a href='#Contour'>Contour</a> at <a href='SkPoint_Reference#Point'>Point</a> (<a href='#SkPath_moveTo_x'>x</a>, <a href='#SkPath_moveTo_y'>y</a>).
@@ -2904,6 +2920,10 @@
   </tr>
 </table>
 
+### Return Value
+
+reference to <a href='#Path'>Path</a>
+
 ### Example
 
 <div><fiddle-embed name="84101d341e934a535a41ad6cf42218ce"></fiddle-embed></div>
@@ -2917,7 +2937,7 @@
 <a name='SkPath_moveTo_2'></a>
 
 <pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-void <a href='#SkPath_moveTo'>moveTo</a>(const <a href='SkPoint_Reference#SkPoint'>SkPoint</a>& p)
+<a href='#SkPath'>SkPath</a>& <a href='#SkPath_moveTo'>moveTo</a>(const <a href='SkPoint_Reference#SkPoint'>SkPoint</a>& p)
 </pre>
 
 Adds beginning of <a href='#Contour'>Contour</a> at <a href='SkPoint_Reference#Point'>Point</a> <a href='#SkPath_moveTo_2_p'>p</a>.
@@ -2929,6 +2949,10 @@
   </tr>
 </table>
 
+### Return Value
+
+reference to <a href='#Path'>Path</a>
+
 ### Example
 
 <div><fiddle-embed name="cb8d37990f6e7df3bcc85e7240c81274"></fiddle-embed></div>
@@ -2943,7 +2967,7 @@
 ## rMoveTo
 
 <pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-void <a href='#SkPath_rMoveTo'>rMoveTo</a>(<a href='undocumented#SkScalar'>SkScalar</a> dx, <a href='undocumented#SkScalar'>SkScalar</a> dy)
+<a href='#SkPath'>SkPath</a>& <a href='#SkPath_rMoveTo'>rMoveTo</a>(<a href='undocumented#SkScalar'>SkScalar</a> dx, <a href='undocumented#SkScalar'>SkScalar</a> dy)
 </pre>
 
 Adds beginning of <a href='#Contour'>Contour</a> relative to <a href='#Last_Point'>Last Point</a>.
@@ -2961,6 +2985,10 @@
   </tr>
 </table>
 
+### Return Value
+
+reference to <a href='#Path'>Path</a>
+
 ### Example
 
 <div><fiddle-embed name="63e32dec4b2d8440b427f368bf8313a4"></fiddle-embed></div>
@@ -2975,7 +3003,7 @@
 ## lineTo
 
 <pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-void <a href='#SkPath_lineTo'>lineTo</a>(<a href='undocumented#SkScalar'>SkScalar</a> x, <a href='undocumented#SkScalar'>SkScalar</a> y)
+<a href='#SkPath'>SkPath</a>& <a href='#SkPath_lineTo'>lineTo</a>(<a href='undocumented#SkScalar'>SkScalar</a> x, <a href='undocumented#SkScalar'>SkScalar</a> y)
 </pre>
 
 Adds <a href='undocumented#Line'>Line</a> from <a href='#Last_Point'>Last Point</a> to (<a href='#SkPath_lineTo_x'>x</a>, <a href='#SkPath_lineTo_y'>y</a>). If <a href='#Path'>Path</a> is empty, or last <a href='#SkPath_Verb'>Verb</a> is
@@ -2994,6 +3022,10 @@
   </tr>
 </table>
 
+### Return Value
+
+reference to <a href='#Path'>Path</a>
+
 ### Example
 
 <div><fiddle-embed name="e311cdd451edacec33b50cc22a4dd5dc"></fiddle-embed></div>
@@ -3007,7 +3039,7 @@
 <a name='SkPath_lineTo_2'></a>
 
 <pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-void <a href='#SkPath_lineTo'>lineTo</a>(const <a href='SkPoint_Reference#SkPoint'>SkPoint</a>& p)
+<a href='#SkPath'>SkPath</a>& <a href='#SkPath_lineTo'>lineTo</a>(const <a href='SkPoint_Reference#SkPoint'>SkPoint</a>& p)
 </pre>
 
 Adds <a href='undocumented#Line'>Line</a> from <a href='#Last_Point'>Last Point</a> to <a href='SkPoint_Reference#Point'>Point</a> <a href='#SkPath_lineTo_2_p'>p</a>. If <a href='#Path'>Path</a> is empty, or last <a href='#SkPath_Verb'>Verb</a> is
@@ -3023,6 +3055,10 @@
   </tr>
 </table>
 
+### Return Value
+
+reference to <a href='#Path'>Path</a>
+
 ### Example
 
 <div><fiddle-embed name="41001546a7f7927d08e5a818bcc304f5"></fiddle-embed></div>
@@ -3037,7 +3073,7 @@
 ## rLineTo
 
 <pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-void <a href='#SkPath_rLineTo'>rLineTo</a>(<a href='undocumented#SkScalar'>SkScalar</a> dx, <a href='undocumented#SkScalar'>SkScalar</a> dy)
+<a href='#SkPath'>SkPath</a>& <a href='#SkPath_rLineTo'>rLineTo</a>(<a href='undocumented#SkScalar'>SkScalar</a> dx, <a href='undocumented#SkScalar'>SkScalar</a> dy)
 </pre>
 
 Adds <a href='undocumented#Line'>Line</a> from <a href='#Last_Point'>Last Point</a> to <a href='SkPoint_Reference#Vector'>Vector</a> (<a href='#SkPath_rLineTo_dx'>dx</a>, <a href='#SkPath_rLineTo_dy'>dy</a>). If <a href='#Path'>Path</a> is empty, or last <a href='#SkPath_Verb'>Verb</a> is
@@ -3058,6 +3094,10 @@
   </tr>
 </table>
 
+### Return Value
+
+reference to <a href='#Path'>Path</a>
+
 ### Example
 
 <div><fiddle-embed name="6e0be0766b8ca320da51640326e608b3"></fiddle-embed></div>
@@ -3092,7 +3132,7 @@
 ## quadTo
 
 <pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-void <a href='#SkPath_quadTo'>quadTo</a>(<a href='undocumented#SkScalar'>SkScalar</a> x1, <a href='undocumented#SkScalar'>SkScalar</a> y1, <a href='undocumented#SkScalar'>SkScalar</a> x2, <a href='undocumented#SkScalar'>SkScalar</a> y2)
+<a href='#SkPath'>SkPath</a>& <a href='#SkPath_quadTo'>quadTo</a>(<a href='undocumented#SkScalar'>SkScalar</a> x1, <a href='undocumented#SkScalar'>SkScalar</a> y1, <a href='undocumented#SkScalar'>SkScalar</a> x2, <a href='undocumented#SkScalar'>SkScalar</a> y2)
 </pre>
 
 Adds <a href='#Quad'>Quad</a> from <a href='#Last_Point'>Last Point</a> towards (<a href='#SkPath_quadTo_x1'>x1</a>, <a href='#SkPath_quadTo_y1'>y1</a>), to (<a href='#SkPath_quadTo_x2'>x2</a>, <a href='#SkPath_quadTo_y2'>y2</a>).
@@ -3119,6 +3159,10 @@
   </tr>
 </table>
 
+### Return Value
+
+reference to <a href='#Path'>Path</a>
+
 ### Example
 
 <div><fiddle-embed name="60ee3eb747474f5781b0f0dd3a17a866"></fiddle-embed></div>
@@ -3132,7 +3176,7 @@
 <a name='SkPath_quadTo_2'></a>
 
 <pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-void <a href='#SkPath_quadTo'>quadTo</a>(const <a href='SkPoint_Reference#SkPoint'>SkPoint</a>& p1, const <a href='SkPoint_Reference#SkPoint'>SkPoint</a>& p2)
+<a href='#SkPath'>SkPath</a>& <a href='#SkPath_quadTo'>quadTo</a>(const <a href='SkPoint_Reference#SkPoint'>SkPoint</a>& p1, const <a href='SkPoint_Reference#SkPoint'>SkPoint</a>& p2)
 </pre>
 
 Adds <a href='#Quad'>Quad</a> from <a href='#Last_Point'>Last Point</a> towards <a href='SkPoint_Reference#Point'>Point</a> <a href='#SkPath_quadTo_2_p1'>p1</a>, to <a href='SkPoint_Reference#Point'>Point</a> <a href='#SkPath_quadTo_2_p2'>p2</a>.
@@ -3153,6 +3197,10 @@
   </tr>
 </table>
 
+### Return Value
+
+reference to <a href='#Path'>Path</a>
+
 ### Example
 
 <div><fiddle-embed name="82621c4df8da1e589d9e627494067826"></fiddle-embed></div>
@@ -3167,7 +3215,7 @@
 ## rQuadTo
 
 <pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-void <a href='#SkPath_rQuadTo'>rQuadTo</a>(<a href='undocumented#SkScalar'>SkScalar</a> dx1, <a href='undocumented#SkScalar'>SkScalar</a> dy1, <a href='undocumented#SkScalar'>SkScalar</a> dx2, <a href='undocumented#SkScalar'>SkScalar</a> dy2)
+<a href='#SkPath'>SkPath</a>& <a href='#SkPath_rQuadTo'>rQuadTo</a>(<a href='undocumented#SkScalar'>SkScalar</a> dx1, <a href='undocumented#SkScalar'>SkScalar</a> dy1, <a href='undocumented#SkScalar'>SkScalar</a> dx2, <a href='undocumented#SkScalar'>SkScalar</a> dy2)
 </pre>
 
 Adds <a href='#Quad'>Quad</a> from <a href='#Last_Point'>Last Point</a> towards <a href='SkPoint_Reference#Vector'>Vector</a> (<a href='#SkPath_rQuadTo_dx1'>dx1</a>, <a href='#SkPath_rQuadTo_dy1'>dy1</a>), to <a href='SkPoint_Reference#Vector'>Vector</a> (<a href='#SkPath_rQuadTo_dx2'>dx2</a>, <a href='#SkPath_rQuadTo_dy2'>dy2</a>).
@@ -3197,6 +3245,10 @@
   </tr>
 </table>
 
+### Return Value
+
+reference to <a href='#Path'>Path</a>
+
 ### Example
 
 <div><fiddle-embed name="1c1f4cdef1c572c9aa8fdf3e461191d0"></fiddle-embed></div>
@@ -3283,7 +3335,7 @@
 ## conicTo
 
 <pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-void <a href='#SkPath_conicTo'>conicTo</a>(<a href='undocumented#SkScalar'>SkScalar</a> x1, <a href='undocumented#SkScalar'>SkScalar</a> y1, <a href='undocumented#SkScalar'>SkScalar</a> x2, <a href='undocumented#SkScalar'>SkScalar</a> y2, <a href='undocumented#SkScalar'>SkScalar</a> w)
+<a href='#SkPath'>SkPath</a>& <a href='#SkPath_conicTo'>conicTo</a>(<a href='undocumented#SkScalar'>SkScalar</a> x1, <a href='undocumented#SkScalar'>SkScalar</a> y1, <a href='undocumented#SkScalar'>SkScalar</a> x2, <a href='undocumented#SkScalar'>SkScalar</a> y2, <a href='undocumented#SkScalar'>SkScalar</a> w)
 </pre>
 
 Adds <a href='#Conic'>Conic</a> from <a href='#Last_Point'>Last Point</a> towards (<a href='#SkPath_conicTo_x1'>x1</a>, <a href='#SkPath_conicTo_y1'>y1</a>), to (<a href='#SkPath_conicTo_x2'>x2</a>, <a href='#SkPath_conicTo_y2'>y2</a>), weighted by <a href='#SkPath_conicTo_w'>w</a>.
@@ -3320,6 +3372,10 @@
   </tr>
 </table>
 
+### Return Value
+
+reference to <a href='#Path'>Path</a>
+
 ### Example
 
 <div><fiddle-embed name="358d9b6060b528b0923c007420f09c13"><div>As weight increases, curve is pulled towards control point.
@@ -3336,7 +3392,7 @@
 <a name='SkPath_conicTo_2'></a>
 
 <pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-void <a href='#SkPath_conicTo'>conicTo</a>(const <a href='SkPoint_Reference#SkPoint'>SkPoint</a>& p1, const <a href='SkPoint_Reference#SkPoint'>SkPoint</a>& p2, <a href='undocumented#SkScalar'>SkScalar</a> w)
+<a href='#SkPath'>SkPath</a>& <a href='#SkPath_conicTo'>conicTo</a>(const <a href='SkPoint_Reference#SkPoint'>SkPoint</a>& p1, const <a href='SkPoint_Reference#SkPoint'>SkPoint</a>& p2, <a href='undocumented#SkScalar'>SkScalar</a> w)
 </pre>
 
 Adds <a href='#Conic'>Conic</a> from <a href='#Last_Point'>Last Point</a> towards <a href='SkPoint_Reference#Point'>Point</a> <a href='#SkPath_conicTo_2_p1'>p1</a>, to <a href='SkPoint_Reference#Point'>Point</a> <a href='#SkPath_conicTo_2_p2'>p2</a>, weighted by <a href='#SkPath_conicTo_2_w'>w</a>.
@@ -3367,6 +3423,10 @@
   </tr>
 </table>
 
+### Return Value
+
+reference to <a href='#Path'>Path</a>
+
 ### Example
 
 <div><fiddle-embed name="22d25e03b19d5bae92118877e462361b"><div><a href='#Conic'>Conics</a> and arcs use identical representations. As the arc sweep increases
@@ -3383,7 +3443,7 @@
 ## rConicTo
 
 <pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-void <a href='#SkPath_rConicTo'>rConicTo</a>(<a href='undocumented#SkScalar'>SkScalar</a> dx1, <a href='undocumented#SkScalar'>SkScalar</a> dy1, <a href='undocumented#SkScalar'>SkScalar</a> dx2, <a href='undocumented#SkScalar'>SkScalar</a> dy2, <a href='undocumented#SkScalar'>SkScalar</a> w)
+<a href='#SkPath'>SkPath</a>& <a href='#SkPath_rConicTo'>rConicTo</a>(<a href='undocumented#SkScalar'>SkScalar</a> dx1, <a href='undocumented#SkScalar'>SkScalar</a> dy1, <a href='undocumented#SkScalar'>SkScalar</a> dx2, <a href='undocumented#SkScalar'>SkScalar</a> dy2, <a href='undocumented#SkScalar'>SkScalar</a> w)
 </pre>
 
 Adds <a href='#Conic'>Conic</a> from <a href='#Last_Point'>Last Point</a> towards <a href='SkPoint_Reference#Vector'>Vector</a> (<a href='#SkPath_rConicTo_dx1'>dx1</a>, <a href='#SkPath_rConicTo_dy1'>dy1</a>), to <a href='SkPoint_Reference#Vector'>Vector</a> (<a href='#SkPath_rConicTo_dx2'>dx2</a>, <a href='#SkPath_rConicTo_dy2'>dy2</a>),
@@ -3423,6 +3483,10 @@
   </tr>
 </table>
 
+### Return Value
+
+reference to <a href='#Path'>Path</a>
+
 ### Example
 
 <div><fiddle-embed name="3d52763e7c0e20c0b1d484a0afa622d2"></fiddle-embed></div>
@@ -3447,7 +3511,7 @@
 ## cubicTo
 
 <pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-void <a href='#SkPath_cubicTo'>cubicTo</a>(<a href='undocumented#SkScalar'>SkScalar</a> x1, <a href='undocumented#SkScalar'>SkScalar</a> y1, <a href='undocumented#SkScalar'>SkScalar</a> x2, <a href='undocumented#SkScalar'>SkScalar</a> y2, <a href='undocumented#SkScalar'>SkScalar</a> x3, <a href='undocumented#SkScalar'>SkScalar</a> y3)
+<a href='#SkPath'>SkPath</a>& <a href='#SkPath_cubicTo'>cubicTo</a>(<a href='undocumented#SkScalar'>SkScalar</a> x1, <a href='undocumented#SkScalar'>SkScalar</a> y1, <a href='undocumented#SkScalar'>SkScalar</a> x2, <a href='undocumented#SkScalar'>SkScalar</a> y2, <a href='undocumented#SkScalar'>SkScalar</a> x3, <a href='undocumented#SkScalar'>SkScalar</a> y3)
 </pre>
 
 Adds <a href='#Cubic'>Cubic</a> from <a href='#Last_Point'>Last Point</a> towards (<a href='#SkPath_cubicTo_x1'>x1</a>, <a href='#SkPath_cubicTo_y1'>y1</a>), then towards (<a href='#SkPath_cubicTo_x2'>x2</a>, <a href='#SkPath_cubicTo_y2'>y2</a>), ending at
@@ -3480,6 +3544,10 @@
   </tr>
 </table>
 
+### Return Value
+
+reference to <a href='#Path'>Path</a>
+
 ### Example
 
 <div><fiddle-embed name="3e476378e3e0550ab134bbaf61112d98"></fiddle-embed></div>
@@ -3493,7 +3561,7 @@
 <a name='SkPath_cubicTo_2'></a>
 
 <pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-void <a href='#SkPath_cubicTo'>cubicTo</a>(const <a href='SkPoint_Reference#SkPoint'>SkPoint</a>& p1, const <a href='SkPoint_Reference#SkPoint'>SkPoint</a>& p2, const <a href='SkPoint_Reference#SkPoint'>SkPoint</a>& p3)
+<a href='#SkPath'>SkPath</a>& <a href='#SkPath_cubicTo'>cubicTo</a>(const <a href='SkPoint_Reference#SkPoint'>SkPoint</a>& p1, const <a href='SkPoint_Reference#SkPoint'>SkPoint</a>& p2, const <a href='SkPoint_Reference#SkPoint'>SkPoint</a>& p3)
 </pre>
 
 Adds <a href='#Cubic'>Cubic</a> from <a href='#Last_Point'>Last Point</a> towards <a href='SkPoint_Reference#Point'>Point</a> <a href='#SkPath_cubicTo_2_p1'>p1</a>, then towards <a href='SkPoint_Reference#Point'>Point</a> <a href='#SkPath_cubicTo_2_p2'>p2</a>, ending at
@@ -3517,6 +3585,10 @@
   </tr>
 </table>
 
+### Return Value
+
+reference to <a href='#Path'>Path</a>
+
 ### Example
 
 <div><fiddle-embed name="d38aaf12c6ff5b8d901a2201bcee5476"></fiddle-embed></div>
@@ -3531,7 +3603,7 @@
 ## rCubicTo
 
 <pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-void <a href='#SkPath_rCubicTo'>rCubicTo</a>(<a href='undocumented#SkScalar'>SkScalar</a> x1, <a href='undocumented#SkScalar'>SkScalar</a> y1, <a href='undocumented#SkScalar'>SkScalar</a> x2, <a href='undocumented#SkScalar'>SkScalar</a> y2, <a href='undocumented#SkScalar'>SkScalar</a> x3, <a href='undocumented#SkScalar'>SkScalar</a> y3)
+<a href='#SkPath'>SkPath</a>& <a href='#SkPath_rCubicTo'>rCubicTo</a>(<a href='undocumented#SkScalar'>SkScalar</a> x1, <a href='undocumented#SkScalar'>SkScalar</a> y1, <a href='undocumented#SkScalar'>SkScalar</a> x2, <a href='undocumented#SkScalar'>SkScalar</a> y2, <a href='undocumented#SkScalar'>SkScalar</a> x3, <a href='undocumented#SkScalar'>SkScalar</a> y3)
 </pre>
 
 Adds <a href='#Cubic'>Cubic</a> from <a href='#Last_Point'>Last Point</a> towards <a href='SkPoint_Reference#Vector'>Vector</a> (dx1, dy1), then towards
@@ -3568,6 +3640,10 @@
   </tr>
 </table>
 
+### Return Value
+
+reference to <a href='#Path'>Path</a>
+
 ### Example
 
 <div><fiddle-embed name="19f0cfc7eeba8937fe19446ec0b5f932"></fiddle-embed></div>
@@ -3642,7 +3718,7 @@
 ## arcTo
 
 <pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-void <a href='#SkPath_arcTo'>arcTo</a>(const <a href='SkRect_Reference#SkRect'>SkRect</a>& oval, <a href='undocumented#SkScalar'>SkScalar</a> startAngle, <a href='undocumented#SkScalar'>SkScalar</a> sweepAngle, bool forceMoveTo)
+<a href='#SkPath'>SkPath</a>& <a href='#SkPath_arcTo'>arcTo</a>(const <a href='SkRect_Reference#SkRect'>SkRect</a>& oval, <a href='undocumented#SkScalar'>SkScalar</a> startAngle, <a href='undocumented#SkScalar'>SkScalar</a> sweepAngle, bool forceMoveTo)
 </pre>
 
 Appends <a href='#Arc'>Arc</a> to <a href='#Path'>Path</a>. <a href='#Arc'>Arc</a> added is part of ellipse
@@ -3670,6 +3746,10 @@
   </tr>
 </table>
 
+### Return Value
+
+reference to <a href='#Path'>Path</a>
+
 ### Example
 
 <div><fiddle-embed name="5f02890edaa10cb5e1a4243a82b6a382"><div><a href='#SkPath_arcTo'>arcTo</a> continues a previous contour when <a href='#SkPath_arcTo_forceMoveTo'>forceMoveTo</a> is false and when <a href='#Path'>Path</a>
@@ -3685,7 +3765,7 @@
 <a name='SkPath_arcTo_2'></a>
 
 <pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-void <a href='#SkPath_arcTo'>arcTo</a>(<a href='undocumented#SkScalar'>SkScalar</a> x1, <a href='undocumented#SkScalar'>SkScalar</a> y1, <a href='undocumented#SkScalar'>SkScalar</a> x2, <a href='undocumented#SkScalar'>SkScalar</a> y2, <a href='undocumented#SkScalar'>SkScalar</a> radius)
+<a href='#SkPath'>SkPath</a>& <a href='#SkPath_arcTo'>arcTo</a>(<a href='undocumented#SkScalar'>SkScalar</a> x1, <a href='undocumented#SkScalar'>SkScalar</a> y1, <a href='undocumented#SkScalar'>SkScalar</a> x2, <a href='undocumented#SkScalar'>SkScalar</a> y2, <a href='undocumented#SkScalar'>SkScalar</a> radius)
 </pre>
 
 Appends <a href='#Arc'>Arc</a> to <a href='#Path'>Path</a>, after appending <a href='undocumented#Line'>Line</a> if needed. <a href='#Arc'>Arc</a> is implemented by <a href='#Conic'>Conic</a>
@@ -3729,6 +3809,10 @@
   </tr>
 </table>
 
+### Return Value
+
+reference to <a href='#Path'>Path</a>
+
 ### Example
 
 <div><fiddle-embed name="498360fa0a201cc5db04b1c27256358f"><div><a href='#SkPath_arcTo'>arcTo</a> is represented by <a href='undocumented#Line'>Line</a> and circular <a href='#Conic'>Conic</a> in <a href='#Path'>Path</a>.
@@ -3753,7 +3837,7 @@
 <a name='SkPath_arcTo_3'></a>
 
 <pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-void <a href='#SkPath_arcTo'>arcTo</a>(const <a href='SkPoint_Reference#SkPoint'>SkPoint</a> p1, const <a href='SkPoint_Reference#SkPoint'>SkPoint</a> p2, <a href='undocumented#SkScalar'>SkScalar</a> radius)
+<a href='#SkPath'>SkPath</a>& <a href='#SkPath_arcTo'>arcTo</a>(const <a href='SkPoint_Reference#SkPoint'>SkPoint</a> p1, const <a href='SkPoint_Reference#SkPoint'>SkPoint</a> p2, <a href='undocumented#SkScalar'>SkScalar</a> radius)
 </pre>
 
 Appends <a href='#Arc'>Arc</a> to <a href='#Path'>Path</a>, after appending <a href='undocumented#Line'>Line</a> if needed. <a href='#Arc'>Arc</a> is implemented by <a href='#Conic'>Conic</a>
@@ -3783,6 +3867,10 @@
   </tr>
 </table>
 
+### Return Value
+
+reference to <a href='#Path'>Path</a>
+
 ### Example
 
 <div><fiddle-embed name="0c056264a361579c18e5d02d3172d4d4"><div>Because tangent lines are parallel, <a href='#SkPath_arcTo'>arcTo</a> appends line from last <a href='#Path'>Path</a> <a href='SkPoint_Reference#Point'>Point</a> to
@@ -3850,8 +3938,8 @@
 <a name='SkPath_arcTo_4'></a>
 
 <pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-void <a href='#SkPath_arcTo'>arcTo</a>(<a href='undocumented#SkScalar'>SkScalar</a> rx, <a href='undocumented#SkScalar'>SkScalar</a> ry, <a href='undocumented#SkScalar'>SkScalar</a> xAxisRotate, <a href='#SkPath_ArcSize'>ArcSize</a> largeArc, <a href='#SkPath_Direction'>Direction</a> sweep,
-           <a href='undocumented#SkScalar'>SkScalar</a> x, <a href='undocumented#SkScalar'>SkScalar</a> y)
+<a href='#SkPath'>SkPath</a>& <a href='#SkPath_arcTo'>arcTo</a>(<a href='undocumented#SkScalar'>SkScalar</a> rx, <a href='undocumented#SkScalar'>SkScalar</a> ry, <a href='undocumented#SkScalar'>SkScalar</a> xAxisRotate, <a href='#SkPath_ArcSize'>ArcSize</a> largeArc, <a href='#SkPath_Direction'>Direction</a> sweep,
+              <a href='undocumented#SkScalar'>SkScalar</a> x, <a href='undocumented#SkScalar'>SkScalar</a> y)
 </pre>
 
 Appends <a href='#Arc'>Arc</a> to <a href='#Path'>Path</a>. <a href='#Arc'>Arc</a> is implemented by one or more <a href='#Conic'>Conics</a> weighted to
@@ -3894,6 +3982,10 @@
   </tr>
 </table>
 
+### Return Value
+
+reference to <a href='#Path'>Path</a>
+
 ### Example
 
 <div><fiddle-embed name="6b6ea44f659b27918f3a6fa621bf6173"></fiddle-embed></div>
@@ -3907,7 +3999,8 @@
 <a name='SkPath_arcTo_5'></a>
 
 <pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-void <a href='#SkPath_arcTo'>arcTo</a>(const <a href='SkPoint_Reference#SkPoint'>SkPoint</a> r, <a href='undocumented#SkScalar'>SkScalar</a> xAxisRotate, <a href='#SkPath_ArcSize'>ArcSize</a> largeArc, <a href='#SkPath_Direction'>Direction</a> sweep, const <a href='SkPoint_Reference#SkPoint'>SkPoint</a> xy)
+<a href='#SkPath'>SkPath</a>& <a href='#SkPath_arcTo'>arcTo</a>(const <a href='SkPoint_Reference#SkPoint'>SkPoint</a> r, <a href='undocumented#SkScalar'>SkScalar</a> xAxisRotate, <a href='#SkPath_ArcSize'>ArcSize</a> largeArc, <a href='#SkPath_Direction'>Direction</a> sweep,
+              const <a href='SkPoint_Reference#SkPoint'>SkPoint</a> xy)
 </pre>
 
 Appends <a href='#Arc'>Arc</a> to <a href='#Path'>Path</a>. <a href='#Arc'>Arc</a> is implemented by one or more <a href='#Conic'>Conic</a> weighted to describe part of <a href='undocumented#Oval'>Oval</a>
@@ -3943,6 +4036,10 @@
   </tr>
 </table>
 
+### Return Value
+
+reference to <a href='#Path'>Path</a>
+
 ### Example
 
 <div><fiddle-embed name="3f76a1007416181a4848c1a87fc81dbd"></fiddle-embed></div>
@@ -3957,8 +4054,8 @@
 ## rArcTo
 
 <pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-void <a href='#SkPath_rArcTo'>rArcTo</a>(<a href='undocumented#SkScalar'>SkScalar</a> rx, <a href='undocumented#SkScalar'>SkScalar</a> ry, <a href='undocumented#SkScalar'>SkScalar</a> xAxisRotate, <a href='#SkPath_ArcSize'>ArcSize</a> largeArc, <a href='#SkPath_Direction'>Direction</a> sweep,
-            <a href='undocumented#SkScalar'>SkScalar</a> dx, <a href='undocumented#SkScalar'>SkScalar</a> dy)
+<a href='#SkPath'>SkPath</a>& <a href='#SkPath_rArcTo'>rArcTo</a>(<a href='undocumented#SkScalar'>SkScalar</a> rx, <a href='undocumented#SkScalar'>SkScalar</a> ry, <a href='undocumented#SkScalar'>SkScalar</a> xAxisRotate, <a href='#SkPath_ArcSize'>ArcSize</a> largeArc, <a href='#SkPath_Direction'>Direction</a> sweep,
+               <a href='undocumented#SkScalar'>SkScalar</a> dx, <a href='undocumented#SkScalar'>SkScalar</a> dy)
 </pre>
 
 Appends <a href='#Arc'>Arc</a> to <a href='#Path'>Path</a>, relative to last <a href='#Path'>Path</a> <a href='SkPoint_Reference#Point'>Point</a>. <a href='#Arc'>Arc</a> is implemented by one or
@@ -4006,6 +4103,10 @@
   </tr>
 </table>
 
+### Return Value
+
+reference to <a href='#Path'>Path</a>
+
 ### Example
 
 <div><fiddle-embed name="3f76a1007416181a4848c1a87fc81dbd"></fiddle-embed></div>
@@ -4020,7 +4121,7 @@
 ## close
 
 <pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-void <a href='#SkPath_close'>close</a>()
+<a href='#SkPath'>SkPath</a>& <a href='#SkPath_close'>close</a>()
 </pre>
 
 Appends <a href='#SkPath_kClose_Verb'>kClose Verb</a> to <a href='#Path'>Path</a>. A closed <a href='#Contour'>Contour</a> connects the first and last <a href='SkPoint_Reference#Point'>Point</a>
@@ -4031,6 +4132,10 @@
 
 <a href='#SkPath_close'>close</a> has no effect if <a href='#Path'>Path</a> is empty or last <a href='#Path'>Path</a> <a href='#SkPath_Verb'>Verb</a> is <a href='#SkPath_kClose_Verb'>kClose Verb</a>.
 
+### Return Value
+
+reference to <a href='#Path'>Path</a>
+
 ### Example
 
 <div><fiddle-embed name="9235f6309271d6420fa5c45dc28664c5"></fiddle-embed></div>
@@ -4311,7 +4416,7 @@
 ## addRect
 
 <pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-void <a href='#SkPath_addRect'>addRect</a>(const <a href='SkRect_Reference#SkRect'>SkRect</a>& rect, <a href='#SkPath_Direction'>Direction</a> dir = <a href='#SkPath_kCW_Direction'>kCW Direction</a>)
+<a href='#SkPath'>SkPath</a>& <a href='#SkPath_addRect'>addRect</a>(const <a href='SkRect_Reference#SkRect'>SkRect</a>& rect, <a href='#SkPath_Direction'>Direction</a> dir = <a href='#SkPath_kCW_Direction'>kCW Direction</a>)
 </pre>
 
 Adds <a href='SkRect_Reference#Rect'>Rect</a> to <a href='#Path'>Path</a>, appending <a href='#SkPath_kMove_Verb'>kMove Verb</a>, three <a href='#SkPath_kLine_Verb'>kLine Verb</a>, and <a href='#SkPath_kClose_Verb'>kClose Verb</a>,
@@ -4329,6 +4434,10 @@
   </tr>
 </table>
 
+### Return Value
+
+reference to <a href='#Path'>Path</a>
+
 ### Example
 
 <div><fiddle-embed name="0f841e4eaebb613b5069800567917c2d"><div>The left <a href='SkRect_Reference#Rect'>Rect</a> dashes starting at the top-left corner, to the right.
@@ -4344,7 +4453,7 @@
 <a name='SkPath_addRect_2'></a>
 
 <pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-void <a href='#SkPath_addRect'>addRect</a>(const <a href='SkRect_Reference#SkRect'>SkRect</a>& rect, <a href='#SkPath_Direction'>Direction</a> dir, unsigned start)
+<a href='#SkPath'>SkPath</a>& <a href='#SkPath_addRect'>addRect</a>(const <a href='SkRect_Reference#SkRect'>SkRect</a>& rect, <a href='#SkPath_Direction'>Direction</a> dir, unsigned start)
 </pre>
 
 Adds <a href='SkRect_Reference#Rect'>Rect</a> to <a href='#Path'>Path</a>, appending <a href='#SkPath_kMove_Verb'>kMove Verb</a>, three <a href='#SkPath_kLine_Verb'>kLine Verb</a>, and <a href='#SkPath_kClose_Verb'>kClose Verb</a>.
@@ -4372,6 +4481,10 @@
   </tr>
 </table>
 
+### Return Value
+
+reference to <a href='#Path'>Path</a>
+
 ### Example
 
 <div><fiddle-embed name="9202430b3f4f5275af8eec5cc9d7baa8"><div>The arrow is just after the initial corner and points towards the next
@@ -4387,8 +4500,8 @@
 <a name='SkPath_addRect_3'></a>
 
 <pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-void <a href='#SkPath_addRect'>addRect</a>(<a href='undocumented#SkScalar'>SkScalar</a> left, <a href='undocumented#SkScalar'>SkScalar</a> top, <a href='undocumented#SkScalar'>SkScalar</a> right, <a href='undocumented#SkScalar'>SkScalar</a> bottom,
-             <a href='#SkPath_Direction'>Direction</a> dir = <a href='#SkPath_kCW_Direction'>kCW Direction</a>)
+<a href='#SkPath'>SkPath</a>& <a href='#SkPath_addRect'>addRect</a>(<a href='undocumented#SkScalar'>SkScalar</a> left, <a href='undocumented#SkScalar'>SkScalar</a> top, <a href='undocumented#SkScalar'>SkScalar</a> right, <a href='undocumented#SkScalar'>SkScalar</a> bottom,
+                <a href='#SkPath_Direction'>Direction</a> dir = <a href='#SkPath_kCW_Direction'>kCW Direction</a>)
 </pre>
 
 Adds <a href='SkRect_Reference#Rect'>Rect</a> (<a href='#SkPath_addRect_3_left'>left</a>, <a href='#SkPath_addRect_3_top'>top</a>, <a href='#SkPath_addRect_3_right'>right</a>, <a href='#SkPath_addRect_3_bottom'>bottom</a>) to <a href='#Path'>Path</a>,
@@ -4416,6 +4529,10 @@
   </tr>
 </table>
 
+### Return Value
+
+reference to <a href='#Path'>Path</a>
+
 ### Example
 
 <div><fiddle-embed name="3837827310e8b88b8c2e128ef9fbbd65"><div>The <a href='#SkPath_addRect_3_left'>left</a> <a href='SkRect_Reference#Rect'>Rect</a> dashes start at the <a href='#SkPath_addRect_3_top'>top</a>-<a href='#SkPath_addRect_3_left'>left</a> corner, and continue to the <a href='#SkPath_addRect_3_right'>right</a>.
@@ -4432,7 +4549,7 @@
 ## addOval
 
 <pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-void <a href='#SkPath_addOval'>addOval</a>(const <a href='SkRect_Reference#SkRect'>SkRect</a>& oval, <a href='#SkPath_Direction'>Direction</a> dir = <a href='#SkPath_kCW_Direction'>kCW Direction</a>)
+<a href='#SkPath'>SkPath</a>& <a href='#SkPath_addOval'>addOval</a>(const <a href='SkRect_Reference#SkRect'>SkRect</a>& oval, <a href='#SkPath_Direction'>Direction</a> dir = <a href='#SkPath_kCW_Direction'>kCW Direction</a>)
 </pre>
 
 Adds <a href='undocumented#Oval'>Oval</a> to path, appending <a href='#SkPath_kMove_Verb'>kMove Verb</a>, four <a href='#SkPath_kConic_Verb'>kConic Verb</a>, and <a href='#SkPath_kClose_Verb'>kClose Verb</a>.
@@ -4450,6 +4567,10 @@
   </tr>
 </table>
 
+### Return Value
+
+reference to <a href='#Path'>Path</a>
+
 ### Example
 
 <div><fiddle-embed name="cac84cf68e63a453c2a8b64c91537704"></fiddle-embed></div>
@@ -4463,7 +4584,7 @@
 <a name='SkPath_addOval_2'></a>
 
 <pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-void <a href='#SkPath_addOval'>addOval</a>(const <a href='SkRect_Reference#SkRect'>SkRect</a>& oval, <a href='#SkPath_Direction'>Direction</a> dir, unsigned start)
+<a href='#SkPath'>SkPath</a>& <a href='#SkPath_addOval'>addOval</a>(const <a href='SkRect_Reference#SkRect'>SkRect</a>& oval, <a href='#SkPath_Direction'>Direction</a> dir, unsigned start)
 </pre>
 
 Adds <a href='undocumented#Oval'>Oval</a> to <a href='#Path'>Path</a>, appending <a href='#SkPath_kMove_Verb'>kMove Verb</a>, four <a href='#SkPath_kConic_Verb'>kConic Verb</a>, and <a href='#SkPath_kClose_Verb'>kClose Verb</a>.
@@ -4491,6 +4612,10 @@
   </tr>
 </table>
 
+### Return Value
+
+reference to <a href='#Path'>Path</a>
+
 ### Example
 
 <div><fiddle-embed name="ab9753174060e4a551727ef3af12924d"></fiddle-embed></div>
@@ -4505,7 +4630,7 @@
 ## addCircle
 
 <pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-void <a href='#SkPath_addCircle'>addCircle</a>(<a href='undocumented#SkScalar'>SkScalar</a> x, <a href='undocumented#SkScalar'>SkScalar</a> y, <a href='undocumented#SkScalar'>SkScalar</a> radius, <a href='#SkPath_Direction'>Direction</a> dir = <a href='#SkPath_kCW_Direction'>kCW Direction</a>)
+<a href='#SkPath'>SkPath</a>& <a href='#SkPath_addCircle'>addCircle</a>(<a href='undocumented#SkScalar'>SkScalar</a> x, <a href='undocumented#SkScalar'>SkScalar</a> y, <a href='undocumented#SkScalar'>SkScalar</a> radius, <a href='#SkPath_Direction'>Direction</a> dir = <a href='#SkPath_kCW_Direction'>kCW Direction</a>)
 </pre>
 
 Adds <a href='undocumented#Circle'>Circle</a> centered at (<a href='#SkPath_addCircle_x'>x</a>, <a href='#SkPath_addCircle_y'>y</a>) of size <a href='#SkPath_addCircle_radius'>radius</a> to <a href='#Path'>Path</a>, appending <a href='#SkPath_kMove_Verb'>kMove Verb</a>,
@@ -4533,6 +4658,10 @@
   </tr>
 </table>
 
+### Return Value
+
+reference to <a href='#Path'>Path</a>
+
 ### Example
 
 <div><fiddle-embed name="bd5286cb9a5e5c32cd980f72b8f400fb"></fiddle-embed></div>
@@ -4547,7 +4676,7 @@
 ## addArc
 
 <pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-void <a href='#SkPath_addArc'>addArc</a>(const <a href='SkRect_Reference#SkRect'>SkRect</a>& oval, <a href='undocumented#SkScalar'>SkScalar</a> startAngle, <a href='undocumented#SkScalar'>SkScalar</a> sweepAngle)
+<a href='#SkPath'>SkPath</a>& <a href='#SkPath_addArc'>addArc</a>(const <a href='SkRect_Reference#SkRect'>SkRect</a>& oval, <a href='undocumented#SkScalar'>SkScalar</a> startAngle, <a href='undocumented#SkScalar'>SkScalar</a> sweepAngle)
 </pre>
 
 Appends <a href='#Arc'>Arc</a> to <a href='#Path'>Path</a>, as the start of new <a href='#Contour'>Contour</a>. <a href='#Arc'>Arc</a> added is part of ellipse
@@ -4572,6 +4701,10 @@
   </tr>
 </table>
 
+### Return Value
+
+reference to <a href='#Path'>Path</a>
+
 ### Example
 
 <div><fiddle-embed name="9cf5122475624e4cf39f06c698f80b1a"><div>The middle row of the left and right columns draw differently from the entries
@@ -4589,7 +4722,7 @@
 ## addRoundRect
 
 <pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-void <a href='#SkPath_addRoundRect'>addRoundRect</a>(const <a href='SkRect_Reference#SkRect'>SkRect</a>& rect, <a href='undocumented#SkScalar'>SkScalar</a> rx, <a href='undocumented#SkScalar'>SkScalar</a> ry, <a href='#SkPath_Direction'>Direction</a> dir = <a href='#SkPath_kCW_Direction'>kCW Direction</a>)
+<a href='#SkPath'>SkPath</a>& <a href='#SkPath_addRoundRect'>addRoundRect</a>(const <a href='SkRect_Reference#SkRect'>SkRect</a>& rect, <a href='undocumented#SkScalar'>SkScalar</a> rx, <a href='undocumented#SkScalar'>SkScalar</a> ry, <a href='#SkPath_Direction'>Direction</a> dir = <a href='#SkPath_kCW_Direction'>kCW Direction</a>)
 </pre>
 
 Appends <a href='SkRRect_Reference#RRect'>Round Rect</a> to <a href='#Path'>Path</a>, creating a new closed <a href='#Contour'>Contour</a>. <a href='SkRRect_Reference#RRect'>Round Rect</a> has bounds
@@ -4620,6 +4753,10 @@
   </tr>
 </table>
 
+### Return Value
+
+reference to <a href='#Path'>Path</a>
+
 ### Example
 
 <div><fiddle-embed name="24736f685f265cf533f1700c042db353"><div>If either radius is zero, path contains <a href='SkRect_Reference#Rect'>Rect</a> and is drawn red.
@@ -4638,7 +4775,7 @@
 <a name='SkPath_addRoundRect_2'></a>
 
 <pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-void <a href='#SkPath_addRoundRect'>addRoundRect</a>(const <a href='SkRect_Reference#SkRect'>SkRect</a>& rect, const <a href='undocumented#SkScalar'>SkScalar</a> radii[], <a href='#SkPath_Direction'>Direction</a> dir = <a href='#SkPath_kCW_Direction'>kCW Direction</a>)
+<a href='#SkPath'>SkPath</a>& <a href='#SkPath_addRoundRect'>addRoundRect</a>(const <a href='SkRect_Reference#SkRect'>SkRect</a>& rect, const <a href='undocumented#SkScalar'>SkScalar</a> radii[], <a href='#SkPath_Direction'>Direction</a> dir = <a href='#SkPath_kCW_Direction'>kCW Direction</a>)
 </pre>
 
 Appends <a href='SkRRect_Reference#RRect'>Round Rect</a> to <a href='#Path'>Path</a>, creating a new closed <a href='#Contour'>Contour</a>. <a href='SkRRect_Reference#RRect'>Round Rect</a> has bounds
@@ -4679,6 +4816,10 @@
   </tr>
 </table>
 
+### Return Value
+
+reference to <a href='#Path'>Path</a>
+
 ### Example
 
 <div><fiddle-embed name="c43d70606b4ee464d2befbcf448c5e73"></fiddle-embed></div>
@@ -4693,7 +4834,7 @@
 ## addRRect
 
 <pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-void <a href='#SkPath_addRRect'>addRRect</a>(const <a href='SkRRect_Reference#SkRRect'>SkRRect</a>& rrect, <a href='#SkPath_Direction'>Direction</a> dir = <a href='#SkPath_kCW_Direction'>kCW Direction</a>)
+<a href='#SkPath'>SkPath</a>& <a href='#SkPath_addRRect'>addRRect</a>(const <a href='SkRRect_Reference#SkRRect'>SkRRect</a>& rrect, <a href='#SkPath_Direction'>Direction</a> dir = <a href='#SkPath_kCW_Direction'>kCW Direction</a>)
 </pre>
 
 Adds <a href='#SkPath_addRRect_rrect'>rrect</a> to <a href='#Path'>Path</a>, creating a new closed <a href='#Contour'>Contour</a>. If
@@ -4713,6 +4854,10 @@
   </tr>
 </table>
 
+### Return Value
+
+reference to <a href='#Path'>Path</a>
+
 ### Example
 
 <div><fiddle-embed name="d9ecd58081b5bc77a157636fcb345dc6"></fiddle-embed></div>
@@ -4726,7 +4871,7 @@
 <a name='SkPath_addRRect_2'></a>
 
 <pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-void <a href='#SkPath_addRRect'>addRRect</a>(const <a href='SkRRect_Reference#SkRRect'>SkRRect</a>& rrect, <a href='#SkPath_Direction'>Direction</a> dir, unsigned start)
+<a href='#SkPath'>SkPath</a>& <a href='#SkPath_addRRect'>addRRect</a>(const <a href='SkRRect_Reference#SkRRect'>SkRRect</a>& rrect, <a href='#SkPath_Direction'>Direction</a> dir, unsigned start)
 </pre>
 
 Adds <a href='#SkPath_addRRect_2_rrect'>rrect</a> to <a href='#Path'>Path</a>, creating a new closed <a href='#Contour'>Contour</a>. If <a href='#SkPath_addRRect_2_dir'>dir</a> is <a href='#SkPath_kCW_Direction'>kCW Direction</a>, <a href='#SkPath_addRRect_2_rrect'>rrect</a>
@@ -4759,6 +4904,10 @@
   </tr>
 </table>
 
+### Return Value
+
+reference to <a href='#Path'>Path</a>
+
 ### Example
 
 <div><fiddle-embed name="f18740ffcb10a499007488948c2cd60d"></fiddle-embed></div>
@@ -4773,12 +4922,12 @@
 ## addPoly
 
 <pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-void <a href='#SkPath_addPoly'>addPoly</a>(const <a href='SkPoint_Reference#SkPoint'>SkPoint</a> pts[], int count, bool close)
+<a href='#SkPath'>SkPath</a>& <a href='#SkPath_addPoly'>addPoly</a>(const <a href='SkPoint_Reference#SkPoint'>SkPoint</a> pts[], int count, bool close)
 </pre>
 
 Adds <a href='#Contour'>Contour</a> created from <a href='undocumented#Line'>Line</a> array, adding (<a href='#SkPath_addPoly_count'>count</a> - 1) <a href='undocumented#Line'>Line</a> segments.
 <a href='#Contour'>Contour</a> added starts at <a href='#SkPath_addPoly_pts'>pts</a>[0], then adds a line for every additional <a href='SkPoint_Reference#Point'>Point</a>
-in <a href='#SkPath_addPoly_pts'>pts</a> array. If close is true,appends <a href='#SkPath_kClose_Verb'>kClose Verb</a> to <a href='#Path'>Path</a>, connecting
+in <a href='#SkPath_addPoly_pts'>pts</a> array. If close is true, appends <a href='#SkPath_kClose_Verb'>kClose Verb</a> to <a href='#Path'>Path</a>, connecting
 <a href='#SkPath_addPoly_pts'>pts</a>[<a href='#SkPath_addPoly_count'>count</a> - 1] and <a href='#SkPath_addPoly_pts'>pts</a>[0].
 
 If <a href='#SkPath_addPoly_count'>count</a> is zero, append <a href='#SkPath_kMove_Verb'>kMove Verb</a> to path.
@@ -4797,6 +4946,10 @@
   </tr>
 </table>
 
+### Return Value
+
+reference to <a href='#Path'>Path</a>
+
 ### Example
 
 <div><fiddle-embed name="182b3999772f330f3b0b891b492634ae"></fiddle-embed></div>
@@ -4807,6 +4960,42 @@
 
 ---
 
+<a name='SkPath_addPoly_2'></a>
+
+<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
+<a href='#SkPath'>SkPath</a>& <a href='#SkPath_addPoly'>addPoly</a>(const std::initializer_list&lt;<a href='SkPoint_Reference#SkPoint'>SkPoint</a>&gt;& list, bool close)
+</pre>
+
+Adds <a href='#Contour'>Contour</a> created from <a href='#SkPath_addPoly_2_list'>list</a>. <a href='#Contour'>Contour</a> added starts at <a href='#SkPath_addPoly_2_list'>list</a>[0], then adds a line
+for every additional <a href='SkPoint_Reference#Point'>Point</a> in <a href='#SkPath_addPoly_2_list'>list</a>. If close is true, appends <a href='#SkPath_kClose_Verb'>kClose Verb</a> to <a href='#Path'>Path</a>,
+connecting last and first <a href='SkPoint_Reference#Point'>Point</a> in <a href='#SkPath_addPoly_2_list'>list</a>.
+
+If <a href='#SkPath_addPoly_2_list'>list</a> is empty, append <a href='#SkPath_kMove_Verb'>kMove Verb</a> to path.
+
+### Parameters
+
+<table>  <tr>    <td><a name='SkPath_addPoly_2_list'><code><strong>list</strong></code></a></td>
+    <td>array of <a href='SkPoint_Reference#Point'>Points</a></td>
+  </tr>
+  <tr>    <td><a name='SkPath_addPoly_2_close'><code><strong>close</strong></code></a></td>
+    <td>true to add <a href='undocumented#Line'>Line</a> connecting <a href='#Contour'>Contour</a> end and start</td>
+  </tr>
+</table>
+
+### Return Value
+
+reference to <a href='#Path'>Path</a>
+
+### Example
+
+<div><fiddle-embed name="1a6b69acad5ceafede3c5984ec6634cb"></fiddle-embed></div>
+
+### See Also
+
+<a href='SkCanvas_Reference#SkCanvas_drawPoints'>SkCanvas::drawPoints</a>
+
+---
+
 ## <a name='SkPath_AddPathMode'>Enum SkPath::AddPathMode</a>
 
 <pre style="padding: 1em 1em 1em 1em;width: 62.5em; background-color: #f0f0f0">
@@ -4860,7 +5049,7 @@
 ## addPath
 
 <pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-void <a href='#SkPath_addPath'>addPath</a>(const <a href='#SkPath'>SkPath</a>& src, <a href='undocumented#SkScalar'>SkScalar</a> dx, <a href='undocumented#SkScalar'>SkScalar</a> dy, <a href='#SkPath_AddPathMode'>AddPathMode</a> mode = <a href='#SkPath_kAppend_AddPathMode'>kAppend AddPathMode</a>)
+<a href='#SkPath'>SkPath</a>& <a href='#SkPath_addPath'>addPath</a>(const <a href='#SkPath'>SkPath</a>& src, <a href='undocumented#SkScalar'>SkScalar</a> dx, <a href='undocumented#SkScalar'>SkScalar</a> dy, <a href='#SkPath_AddPathMode'>AddPathMode</a> mode = <a href='#SkPath_kAppend_AddPathMode'>kAppend AddPathMode</a>)
 </pre>
 
 Appends <a href='#SkPath_addPath_src'>src</a> to <a href='#Path'>Path</a>, offset by (<a href='#SkPath_addPath_dx'>dx</a>, <a href='#SkPath_addPath_dy'>dy</a>).
@@ -4885,6 +5074,10 @@
   </tr>
 </table>
 
+### Return Value
+
+reference to <a href='#Path'>Path</a>
+
 ### Example
 
 <div><fiddle-embed name="c416bddfe286628974e1c7f0fd66f3f4"></fiddle-embed></div>
@@ -4898,7 +5091,7 @@
 <a name='SkPath_addPath_2'></a>
 
 <pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-void <a href='#SkPath_addPath'>addPath</a>(const <a href='#SkPath'>SkPath</a>& src, <a href='#SkPath_AddPathMode'>AddPathMode</a> mode = <a href='#SkPath_kAppend_AddPathMode'>kAppend AddPathMode</a>)
+<a href='#SkPath'>SkPath</a>& <a href='#SkPath_addPath'>addPath</a>(const <a href='#SkPath'>SkPath</a>& src, <a href='#SkPath_AddPathMode'>AddPathMode</a> mode = <a href='#SkPath_kAppend_AddPathMode'>kAppend AddPathMode</a>)
 </pre>
 
 Appends <a href='#SkPath_addPath_2_src'>src</a> to <a href='#Path'>Path</a>.
@@ -4917,6 +5110,10 @@
   </tr>
 </table>
 
+### Return Value
+
+reference to <a href='#Path'>Path</a>
+
 ### Example
 
 <div><fiddle-embed name="84b2d1c0fc29f1b35e855b6fc6672f9e"></fiddle-embed></div>
@@ -4930,7 +5127,7 @@
 <a name='SkPath_addPath_3'></a>
 
 <pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-void <a href='#SkPath_addPath'>addPath</a>(const <a href='#SkPath'>SkPath</a>& src, const <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a>& matrix, <a href='#SkPath_AddPathMode'>AddPathMode</a> mode = <a href='#SkPath_kAppend_AddPathMode'>kAppend AddPathMode</a>)
+<a href='#SkPath'>SkPath</a>& <a href='#SkPath_addPath'>addPath</a>(const <a href='#SkPath'>SkPath</a>& src, const <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a>& matrix, <a href='#SkPath_AddPathMode'>AddPathMode</a> mode = <a href='#SkPath_kAppend_AddPathMode'>kAppend AddPathMode</a>)
 </pre>
 
 Appends <a href='#SkPath_addPath_3_src'>src</a> to <a href='#Path'>Path</a>, transformed by <a href='#SkPath_addPath_3_matrix'>matrix</a>. Transformed curves may have different
@@ -4953,6 +5150,10 @@
   </tr>
 </table>
 
+### Return Value
+
+reference to <a href='#Path'>Path</a>
+
 ### Example
 
 <div><fiddle-embed name="3a90a91030f7289d5df0671d342dbbad"></fiddle-embed></div>
@@ -4967,7 +5168,7 @@
 ## reverseAddPath
 
 <pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-void <a href='#SkPath_reverseAddPath'>reverseAddPath</a>(const <a href='#SkPath'>SkPath</a>& src)
+<a href='#SkPath'>SkPath</a>& <a href='#SkPath_reverseAddPath'>reverseAddPath</a>(const <a href='#SkPath'>SkPath</a>& src)
 </pre>
 
 Appends <a href='#SkPath_reverseAddPath_src'>src</a> to <a href='#Path'>Path</a>, from back to front.
@@ -4980,6 +5181,10 @@
   </tr>
 </table>
 
+### Return Value
+
+reference to <a href='#Path'>Path</a>
+
 ### Example
 
 <div><fiddle-embed name="5e8513f073db09acde3ff616f6426e3d"></fiddle-embed></div>
diff --git a/site/user/api/SkRect_Reference.md b/site/user/api/SkRect_Reference.md
index 0259ab0..488866d 100644
--- a/site/user/api/SkRect_Reference.md
+++ b/site/user/api/SkRect_Reference.md
@@ -1530,7 +1530,7 @@
 
 ### See Also
 
-<a href='#SkRect_set'>set</a><sup><a href='#SkRect_set_2'>[2]</a></sup><sup><a href='#SkRect_set_3'>[3]</a></sup><sup><a href='#SkRect_set_4'>[4]</a></sup> <a href='#SkRect_setBoundsCheck'>setBoundsCheck</a> <a href='SkPath_Reference#SkPath_addPoly'>SkPath::addPoly</a>
+<a href='#SkRect_set'>set</a><sup><a href='#SkRect_set_2'>[2]</a></sup><sup><a href='#SkRect_set_3'>[3]</a></sup><sup><a href='#SkRect_set_4'>[4]</a></sup> <a href='#SkRect_setBoundsCheck'>setBoundsCheck</a> <a href='SkPath_Reference#SkPath_addPoly'>SkPath::addPoly</a><sup><a href='SkPath_Reference#SkPath_addPoly_2'>[2]</a></sup>
 
 ---
 
@@ -1580,7 +1580,7 @@
 
 ### See Also
 
-<a href='#SkRect_set'>set</a><sup><a href='#SkRect_set_2'>[2]</a></sup><sup><a href='#SkRect_set_3'>[3]</a></sup><sup><a href='#SkRect_set_4'>[4]</a></sup> <a href='#SkRect_setBounds'>setBounds</a> <a href='SkPath_Reference#SkPath_addPoly'>SkPath::addPoly</a>
+<a href='#SkRect_set'>set</a><sup><a href='#SkRect_set_2'>[2]</a></sup><sup><a href='#SkRect_set_3'>[3]</a></sup><sup><a href='#SkRect_set_4'>[4]</a></sup> <a href='#SkRect_setBounds'>setBounds</a> <a href='SkPath_Reference#SkPath_addPoly'>SkPath::addPoly</a><sup><a href='SkPath_Reference#SkPath_addPoly_2'>[2]</a></sup>
 
 ---
 
@@ -1849,7 +1849,7 @@
 
 ### See Also
 
-<a href='#SkRect_setBounds'>setBounds</a> <a href='#SkRect_setBoundsCheck'>setBoundsCheck</a> <a href='SkPath_Reference#SkPath_addPoly'>SkPath::addPoly</a>
+<a href='#SkRect_setBounds'>setBounds</a> <a href='#SkRect_setBoundsCheck'>setBoundsCheck</a> <a href='SkPath_Reference#SkPath_addPoly'>SkPath::addPoly</a><sup><a href='SkPath_Reference#SkPath_addPoly_2'>[2]</a></sup>
 
 ---
 
diff --git a/site/user/api/catalog.htm b/site/user/api/catalog.htm
index 5b9aea5..2313cfd 100644
--- a/site/user/api/catalog.htm
+++ b/site/user/api/catalog.htm
@@ -7498,6 +7498,14 @@
     "file": "SkPath_Reference",
     "name": "SkPath::addPoly"
 },
+    "SkPath_addPoly_2": {
+    "code": "void draw(SkCanvas* canvas) {\n    SkPaint paint;\n    paint.setStrokeWidth(15);\n    paint.setStrokeCap(SkPaint::kRound_Cap);\n    for (bool close : { false, true } ) {\n        SkPath path;\n        path.addPoly({{20, 20}, {70, 20}, {40, 90}}, close);\n        for (auto style : {SkPaint::kStroke_Style, SkPaint::kFill_Style,\n                SkPaint::kStrokeAndFill_Style} ) {\n            paint.setStyle(style);\n            canvas->drawPath(path, paint);\n            canvas->translate(85, 0);\n        }\n        canvas->translate(-255, 128);\n    }\n}\n",
+    "width": 256,
+    "height": 256,
+    "hash": "1a6b69acad5ceafede3c5984ec6634cb",
+    "file": "SkPath_Reference",
+    "name": "SkPath::addPoly_2"
+},
     "SkPath_addRRect": {
     "code": "void draw(SkCanvas* canvas) {\n    SkPaint paint;\n    paint.setAntiAlias(true);\n    SkRRect rrect;\n    SkVector radii[] = {{50, 50}, {0, 0}, {0, 0}, {50, 50}};\n    rrect.setRectRadii({10, 10, 110, 110}, radii);\n    SkPath path;\n    SkMatrix rotate90;\n    rotate90.setRotate(90, 128, 128);\n    for (int i = 0; i < 4; ++i) {\n        path.addRRect(rrect);\n        path.transform(rotate90);\n    }\n    canvas->drawPath(path, paint);\n}\n",
     "width": 256,